File manager - Edit - /home/vblioqus/unfreezetiktok.com/wp-content/plugins/hummingbird-performance/admin/assets/js/wphb-sui.min.js.map
Back
{"version":3,"file":"js/wphb-sui.min.js","mappings":"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,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,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,IAAQ,IACR,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,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,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,KACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,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,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAQ,KACR,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,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,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,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,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,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,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,IAAQ,IACR,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,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,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,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,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,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,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,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAQ,IACR,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV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","sources":["webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/sticky-box.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/dropdowns.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/tabs.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/select2.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/accordion.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/notifications.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/modal-dialog.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/code-snippet.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/select2.full.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/side-tabs.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/reviews.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/scores.js","webpack://wp-hummingbird/./node_modules/@wpmudev/shared-ui/dist/js/_src/password.js","webpack://wp-hummingbird/webpack/bootstrap","webpack://wp-hummingbird/./_src/js/shared-ui.js"],"sourcesContent":["(function ($) {\n // Enable strict mode.\n 'use strict';\n\n var _$stickies = [].slice.call(document.querySelectorAll('.sui-box-sticky'));\n\n _$stickies.forEach(function (_$sticky) {\n if (CSS.supports && CSS.supports('position', 'sticky')) {\n if (null !== _$sticky.offsetParent) {\n apply_sticky_class(_$sticky);\n }\n\n window.addEventListener('scroll', function () {\n if (null !== _$sticky.offsetParent) {\n apply_sticky_class(_$sticky);\n }\n });\n }\n });\n\n function apply_sticky_class(_$sticky) {\n var currentOffset = _$sticky.getBoundingClientRect().top;\n\n var stickyOffset = parseInt(getComputedStyle(_$sticky).top.replace('px', ''));\n var isStuck = currentOffset <= stickyOffset;\n\n if (isStuck) {\n _$sticky.classList.add('sui-is-sticky');\n } else {\n _$sticky.classList.remove('sui-is-sticky');\n }\n }\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Define global SUI object if it doesn't exist.\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.linkDropdown = function () {\n function closeAllDropdowns($except) {\n var $dropdowns = $('.sui-2-12-23 .sui-dropdown');\n\n if ($except) {\n $dropdowns = $dropdowns.not($except);\n }\n\n $dropdowns.removeClass('open');\n }\n\n $('body').on('click', '.sui-dropdown-anchor', function (e) {\n var $button = $(this),\n $parent = $button.parent();\n closeAllDropdowns($parent);\n\n if ($parent.hasClass('sui-dropdown')) {\n $parent.toggleClass('open');\n }\n\n e.preventDefault();\n });\n $('body').on('mouseup', function (e) {\n var $anchor = $('.sui-2-12-23 .sui-dropdown-anchor');\n\n if (!$anchor.is(e.target) && 0 === $anchor.has(e.target).length) {\n closeAllDropdowns();\n }\n });\n };\n\n SUI.linkDropdown();\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Define global SUI object if it doesn't exist.\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.suiTabs = function (config) {\n var data;\n var types = ['tab', 'pane'];\n var type;\n var groups = [];\n var activeGroups = [];\n var activeChildren = [];\n var activeItems = [];\n var indexGroup;\n var indexItem;\n var memory = [];\n\n function init(options) {\n var groupIndex;\n var tabItems;\n var itemIndex;\n var hashId;\n data = options;\n setDefaults();\n groups.tab = document.querySelectorAll(data.tabGroup);\n groups.pane = document.querySelectorAll(data.paneGroup);\n\n for (groupIndex = 0; groupIndex < groups.tab.length; groupIndex++) {\n tabItems = groups.tab[groupIndex].children;\n\n for (itemIndex = 0; itemIndex < tabItems.length; itemIndex++) {\n tabItems[itemIndex].addEventListener('click', onClick.bind(this, groupIndex, itemIndex), false);\n indexGroup = groupIndex;\n indexItem = itemIndex;\n\n if (window.location.hash) {\n hashId = window.location.hash.replace(/[^\\w-_]/g, '');\n\n if (hashId === tabItems[itemIndex].id) {\n setNodes(groupIndex, itemIndex);\n }\n }\n }\n }\n }\n\n function onClick(groupIndex, itemIndex) {\n setNodes(groupIndex, itemIndex);\n setCallback();\n }\n\n function setNodes(groupIndex, itemIndex) {\n var i;\n indexGroup = groupIndex;\n indexItem = itemIndex;\n\n for (i = 0; i < types.length; i++) {\n type = types[i];\n setActiveGroup();\n setActiveChildren();\n setActiveItems();\n putActiveClass();\n }\n\n memory[groupIndex] = [];\n memory[groupIndex][itemIndex] = true;\n }\n\n function putActiveClass() {\n var i;\n\n for (i = 0; i < activeChildren[type].length; i++) {\n activeChildren[type][i].classList.remove(data[type + 'Active']);\n }\n\n activeItems[type].classList.add(data[type + 'Active']);\n }\n\n function setDefaults() {\n var i;\n\n for (i = 0; i < types.length; i++) {\n type = types[i];\n setOption(type + 'Group', '[data-' + type + 's]');\n setOption(type + 'Active', 'active');\n }\n }\n\n function setOption(key, value) {\n data = data || [];\n data[key] = data[key] || value;\n }\n\n function setActiveGroup() {\n activeGroups[type] = groups[type][indexGroup];\n }\n\n function setActiveChildren() {\n activeChildren[type] = activeGroups[type].children;\n }\n\n function setActiveItems() {\n activeItems[type] = activeChildren[type][indexItem];\n }\n\n function setCallback() {\n if ('function' === typeof data.callback) {\n data.callback(activeItems.tab, activeItems.pane);\n }\n }\n\n init(config);\n return;\n };\n\n SUI.tabsOverflow = function ($el) {\n var tabs = $el.closest('.sui-tabs').find('[data-tabs], [role=\"tablist\"]'),\n leftButton = $el.find('.sui-tabs-navigation--left'),\n rightButton = $el.find('.sui-tabs-navigation--right');\n\n function overflowing() {\n if (tabs[0].scrollWidth > tabs.width()) {\n if (0 === tabs.scrollLeft()) {\n leftButton.addClass('sui-tabs-navigation--hidden');\n } else {\n leftButton.removeClass('sui-tabs-navigation--hidden');\n }\n\n reachedEnd(0);\n return true;\n } else {\n leftButton.addClass('sui-tabs-navigation--hidden');\n rightButton.addClass('sui-tabs-navigation--hidden');\n return false;\n }\n }\n\n overflowing();\n\n function reachedEnd(offset) {\n var newScrollLeft, width, scrollWidth;\n newScrollLeft = tabs.scrollLeft() + offset;\n width = tabs.outerWidth();\n scrollWidth = tabs.get(0).scrollWidth;\n\n if (scrollWidth - newScrollLeft <= width) {\n rightButton.addClass('sui-tabs-navigation--hidden');\n } else {\n rightButton.removeClass('sui-tabs-navigation--hidden');\n }\n }\n\n leftButton.on('click', function () {\n rightButton.removeClass('sui-tabs-navigation--hidden');\n\n if (0 >= tabs.scrollLeft() - 150) {\n leftButton.addClass('sui-tabs-navigation--hidden');\n }\n\n tabs.animate({\n scrollLeft: '-=150'\n }, 400, function () {});\n return false;\n });\n rightButton.on('click', function () {\n leftButton.removeClass('sui-tabs-navigation--hidden');\n reachedEnd(150);\n tabs.animate({\n scrollLeft: '+=150'\n }, 400, function () {});\n return false;\n });\n $(window).on('resize', function () {\n overflowing();\n });\n tabs.on('scroll', function () {\n overflowing();\n });\n };\n\n SUI.tabs = function (config) {\n var tablist = $('.sui-tabs > div[role=\"tablist\"]');\n var data = config; // For easy reference.\n\n var keys = {\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n \"delete\": 46,\n enter: 13,\n space: 32\n }; // Add or substract depending on key pressed.\n\n var direction = {\n 37: -1,\n 38: -1,\n 39: 1,\n 40: 1\n }; // Prevent function from running if tablist does not exist.\n\n if (!tablist.length) {\n return;\n } // Deactivate all tabs and tab panels.\n\n\n function deactivateTabs(tabs, panels, inputs) {\n tabs.removeClass('active');\n tabs.attr('tabindex', '-1');\n tabs.attr('aria-selected', false);\n inputs.prop('checked', false);\n panels.removeClass('active');\n panels.prop('hidden', true);\n } // Activate current tab panel.\n\n\n function activateTab(tab) {\n var tabs = $(tab).closest('[role=\"tablist\"]').find('[role=\"tab\"]'),\n inputs = $(tab).closest('[role=\"tablist\"]').find('input[type=\"radio\"]'),\n panels = $(tab).closest('.sui-tabs').find('> .sui-tabs-content > [role=\"tabpanel\"]'),\n controls = $(tab).attr('aria-controls'),\n input = $(tab).next('input[type=\"radio\"]'),\n panel = $('#' + controls);\n deactivateTabs(tabs, panels, inputs);\n $(tab).addClass('active');\n $(tab).removeAttr('tabindex');\n $(tab).attr('aria-selected', true);\n input.prop('checked', true);\n panel.addClass('active');\n panel.prop('hidden', false);\n } // When a \"tablist\" aria-orientation is set to vertical,\n // only up and down arrow should function.\n // In all other cases only left and right should function.\n\n\n function determineOrientation(event, index, tablist) {\n var key = event.keyCode || event.which,\n vertical = 'vertical' === $(tablist).attr('aria-orientation'),\n proceed = false; // Check if aria orientation is set to vertical.\n\n if (vertical) {\n if (keys.up === key || keys.down === key) {\n event.preventDefault();\n proceed = true;\n }\n } else {\n if (keys.left === key || keys.right === key) {\n proceed = true;\n }\n }\n\n if (true === proceed) {\n switchTabOnArrowPress(event, index);\n }\n } // Either focus the next, previous, first, or last tab\n // depending on key pressed.\n\n\n function switchTabOnArrowPress(event, index) {\n var pressed, target, tabs;\n pressed = event.keyCode || event.which;\n\n if (direction[pressed]) {\n target = event.target;\n tabs = $(target).closest('[role=\"tablist\"]').find('> [role=\"tab\"]');\n\n if (undefined !== index) {\n if (tabs[index + direction[pressed]]) {\n tabs[index + direction[pressed]].focus();\n } else if (keys.left === pressed || keys.up === pressed) {\n tabs[tabs.length - 1].focus();\n } else if (keys.right === pressed || keys.down === pressed) {\n tabs[0].focus();\n }\n }\n }\n } // Callback function.\n\n\n function setCallback(currentTab) {\n var tab = $(currentTab),\n controls = tab.attr('aria-controls'),\n panel = $('#' + controls);\n\n if ('function' === typeof data.callback) {\n data.callback(tab, panel);\n }\n } // When a tab is clicked, activateTab is fired to activate it.\n\n\n function clickEventListener(event) {\n var tab = event.target;\n activateTab(tab);\n\n if (undefined !== data && 'undefined' !== data) {\n setCallback(tab);\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n function keydownEventListener(event, index, tablist) {\n var key = event.keyCode || event.which;\n\n switch (key) {\n case keys.end:\n case keys.home:\n event.preventDefault();\n break;\n // Up and down are in keydown\n // because we need to prevent page scroll.\n\n case keys.up:\n case keys.down:\n determineOrientation(event, index, tablist);\n break;\n }\n }\n\n function keyupEventListener(event, index, tablist) {\n var key = event.keyCode || event.which;\n\n switch (key) {\n case keys.left:\n case keys.right:\n determineOrientation(event, index, tablist);\n break;\n\n case keys.enter:\n case keys.space:\n activateTab(event);\n break;\n }\n }\n\n function init() {\n var tabgroup = tablist.closest('.sui-tabs'); // Run the function for each group of tabs to prevent conflicts\n // when having child tabs.\n\n tabgroup.each(function () {\n var tabs, index;\n tabgroup = $(this);\n tablist = tabgroup.find('> [role=\"tablist\"]');\n tabs = tablist.find('> [role=\"tab\"]'); // Trigger events on click.\n\n tabs.on('click', function (e) {\n clickEventListener(e); // Trigger events when pressing key.\n }).on('keydown', function (e) {\n index = $(this).index();\n keydownEventListener(e, index, tablist); // Trigger events when releasing key.\n }).on('keyup', function (e) {\n index = $(this).index();\n keyupEventListener(e, index, tablist);\n });\n });\n }\n\n init();\n return this;\n };\n\n if (0 !== $('.sui-2-12-23 .sui-tabs').length) {\n // Support tabs new markup.\n SUI.tabs(); // Support legacy tabs.\n\n SUI.suiTabs();\n $('.sui-2-12-23 .sui-tabs-navigation').each(function () {\n SUI.tabsOverflow($(this));\n });\n }\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n;\n\n(function ($) {\n // Define global SUI object if it doesn't exist.\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.select = {};\n\n SUI.select.escapeJS = function (string) {\n // Create a temporary <div> element using jQuery and set the HTML content.\n var div = $('<div>').html(string); // Get the text content of the <div> element and remove script tags\n\n var text = div.text().replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, ''); // Return the escaped text\n\n return text;\n };\n\n SUI.select.formatIcon = function (data, container) {\n var markup;\n var label = SUI.select.escapeJS(data.text);\n var icon = $(data.element).attr('data-icon');\n\n if (!data.id) {\n return label; // optgroup.\n }\n\n if ('undefined' !== typeof icon) {\n markup = '<span class=\"sui-icon-' + icon.toLowerCase() + '\" aria-hidden=\"true\"></span> ' + label;\n } else {\n markup = label;\n }\n\n return markup;\n };\n\n SUI.select.formatIconSelection = function (data, container) {\n var markup;\n var label = SUI.select.escapeJS(data.text);\n var icon = $(data.element).attr('data-icon');\n\n if ('undefined' !== typeof icon) {\n markup = '<span class=\"sui-icon-' + icon.toLowerCase() + '\" aria-hidden=\"true\"></span> ' + label;\n } else {\n markup = label;\n }\n\n return markup;\n };\n\n SUI.select.formatColor = function (data, container) {\n var markup, border;\n var label = SUI.select.escapeJS(data.text);\n var color = $(data.element).attr('data-color');\n\n if (!data.id) {\n return label; // optgroup.\n }\n\n if ('undefined' !== typeof color) {\n switch (color) {\n case '#FFF':\n case 'white':\n case '#FFFFFF':\n border = '#000';\n break;\n\n case '#FAFAFA':\n case '#F8F8F8':\n case '#F2F2F2':\n border = '#333';\n break;\n\n default:\n border = color;\n break;\n }\n\n markup = '<span class=\"sui-color\" style=\"border-color: ' + border + '; background-color: ' + color + ';\" aria-hidden=\"true\"></span> ' + label;\n } else {\n markup = label;\n }\n\n return markup;\n };\n\n SUI.select.formatColorSelection = function (data, container) {\n var markup;\n var label = SUI.select.escapeJS(data.text);\n var color = $(data.element).attr('data-color');\n\n if ('undefined' !== typeof color) {\n switch (color) {\n case '#FFF':\n case 'white':\n case '#FFFFFF':\n border = '#000';\n break;\n\n case '#FAFAFA':\n case '#F8F8F8':\n case '#F2F2F2':\n border = '#333';\n break;\n\n default:\n border = color;\n break;\n }\n\n markup = '<span class=\"sui-color\" style=\"border-color: ' + border + '; background-color: ' + color + ';\" aria-hidden=\"true\"></span> ' + label;\n } else {\n markup = label;\n }\n\n return markup;\n };\n\n SUI.select.formatVars = function (data, container) {\n var markup;\n var label = SUI.select.escapeJS(data.text);\n var content = $(data.element).val();\n\n if (!data.id) {\n return label; // optgroup.\n }\n\n if ('undefined' !== typeof content) {\n markup = '<span class=\"sui-variable-name\">' + label + '</span><span class=\"sui-variable-value\">' + content + '</span> ';\n } else {\n markup = label;\n }\n\n return markup;\n };\n\n SUI.select.formatVarsSelection = function (data, container) {\n var markup;\n var label = SUI.select.escapeJS(data.text);\n markup = '<span class=\"sui-icon-plus-circle sui-md\" aria-hidden=\"true\"></span>';\n markup += '<span class=\"sui-screen-reader-text\">' + label + '</span>';\n return markup;\n };\n\n SUI.select.init = function (select) {\n var getParent = select.closest('.sui-modal-content'),\n getParentId = getParent.attr('id'),\n selectParent = getParent.length ? $('#' + getParentId) : $('.sui-2-12-23'),\n hasSearch = 'true' === select.attr('data-search') ? 0 : -1,\n isSmall = select.hasClass('sui-select-sm') ? 'sui-select-dropdown-sm' : '';\n select.SUIselect2({\n dropdownParent: selectParent,\n minimumResultsForSearch: hasSearch,\n dropdownCssClass: isSmall\n });\n };\n\n SUI.select.initIcon = function (select) {\n var getParent = select.closest('.sui-modal-content'),\n getParentId = getParent.attr('id'),\n selectParent = getParent.length ? $('#' + getParentId) : $('.sui-2-12-23'),\n hasSearch = 'true' === select.attr('data-search') ? 0 : -1,\n isSmall = select.hasClass('sui-select-sm') ? 'sui-select-dropdown-sm' : '';\n select.SUIselect2({\n dropdownParent: selectParent,\n templateResult: SUI.select.formatIcon,\n templateSelection: SUI.select.formatIconSelection,\n escapeMarkup: function escapeMarkup(markup) {\n return markup;\n },\n minimumResultsForSearch: hasSearch,\n dropdownCssClass: isSmall\n });\n };\n\n SUI.select.initColor = function (select) {\n var getParent = select.closest('.sui-modal-content'),\n getParentId = getParent.attr('id'),\n selectParent = getParent.length ? $('#' + getParentId) : $('.sui-2-12-23'),\n hasSearch = 'true' === select.attr('data-search') ? 0 : -1,\n isSmall = select.hasClass('sui-select-sm') ? 'sui-select-dropdown-sm' : '';\n select.SUIselect2({\n dropdownParent: selectParent,\n templateResult: SUI.select.formatColor,\n templateSelection: SUI.select.formatColorSelection,\n escapeMarkup: function escapeMarkup(markup) {\n return markup;\n },\n minimumResultsForSearch: hasSearch,\n dropdownCssClass: isSmall\n });\n };\n\n SUI.select.initSearch = function (select) {\n var getParent = select.closest('.sui-modal-content'),\n getParentId = getParent.attr('id'),\n selectParent = getParent.length ? $('#' + getParentId) : $('.sui-2-12-23'),\n isSmall = select.hasClass('sui-select-sm') ? 'sui-select-dropdown-sm' : '';\n select.SUIselect2({\n dropdownParent: selectParent,\n minimumInputLength: 2,\n maximumSelectionLength: 1,\n dropdownCssClass: isSmall\n });\n };\n\n SUI.select.initVars = function (select) {\n var getParent = select.closest('.sui-modal-content'),\n getParentId = getParent.attr('id'),\n selectParent = getParent.length ? $('#' + getParentId) : $('.sui-2-12-23'),\n hasSearch = 'true' === select.attr('data-search') ? 0 : -1;\n select.SUIselect2({\n theme: 'vars',\n dropdownParent: selectParent,\n templateResult: SUI.select.formatVars,\n templateSelection: SUI.select.formatVarsSelection,\n escapeMarkup: function escapeMarkup(markup) {\n return markup;\n },\n minimumResultsForSearch: hasSearch\n }).on('select2:open', function () {\n $(this).val(null);\n });\n select.val(null);\n };\n\n $('.sui-select').each(function () {\n var select = $(this); // return if select2 already initalized for element.\n\n if (select.hasClass('select2-hidden-accessible') || select.hasClass('select2')) {\n return;\n }\n\n if ('icon' === select.data('theme')) {\n SUI.select.initIcon(select);\n } else if ('color' === select.data('theme')) {\n SUI.select.initColor(select);\n } else if ('search' === select.data('theme')) {\n SUI.select.initSearch(select);\n } else {\n SUI.select.init(select);\n }\n });\n $('.sui-variables').each(function () {\n var select = $(this); // return if select2 already initalized for element.\n\n if (select.hasClass('select2-hidden-accessible') || select.hasClass('select2')) {\n return;\n }\n\n SUI.select.initVars(select);\n });\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Create the defaults once\n\n var pluginName = 'SUIAccordion',\n defaults = {}; // The actual plugin constructor\n\n function SUIAccordion(element, options) {\n this.element = element;\n this.$element = $(this.element);\n this.settings = $.extend({}, defaults, options);\n this._defaults = defaults;\n this._name = pluginName;\n this.init();\n } // Avoid Plugin.prototype conflicts\n\n\n $.extend(SUIAccordion.prototype, {\n init: function init() {\n var self = this;\n this.$element.on('click', 'div.sui-accordion-item-header, tr.sui-accordion-item', function (event) {\n var getItem = $(this).closest('.sui-accordion-item'),\n getContent = getItem.nextUntil('.sui-accordion-item').filter('.sui-accordion-item-content'),\n getParent = getItem.closest('.sui-accordion'),\n getChart = getItem.find('.sui-chartjs-animated');\n var clickedTarget = $(event.target);\n var flexHeader = $(this),\n flexItem = flexHeader.parent(),\n flexChart = flexItem.find('.sui-chartjs-animated'),\n flexParent = flexItem.parent(),\n flexContent = flexHeader.next('.sui-accordion-item-body').find(' .sui-box');\n var tableItem = $(this),\n tableContent = tableItem.nextUntil('.sui-accordion-item').filter('.sui-accordion-item-content'),\n tableBox = tableContent.find('.sui-box');\n var button = $(this).find('.sui-accordion-open-indicator > .sui-screen-reader-text'),\n buttonText = button === null || button === void 0 ? void 0 : button.text(),\n dataContent = button === null || button === void 0 ? void 0 : button.data('content');\n\n if (clickedTarget.closest('.sui-accordion-item-action').length) {\n return true;\n } // CHECK: Flexbox\n\n\n if (flexHeader.hasClass('sui-accordion-item-header')) {\n if (flexItem.hasClass('sui-accordion-item--disabled')) {\n flexItem.removeClass('sui-accordion-item--open');\n } else {\n if (flexItem.hasClass('sui-accordion-item--open')) {\n flexItem.removeClass('sui-accordion-item--open');\n } else {\n flexItem.addClass('sui-accordion-item--open');\n flexContent.attr('tabindex', '0').trigger('focus');\n }\n } // CHECK: Accordion Blocks\n\n\n if (flexParent.hasClass('sui-accordion-block') && 0 !== flexChart.length) {\n flexItem.find('.sui-accordion-item-data').addClass('sui-onload');\n flexChart.removeClass('sui-chartjs-loaded');\n\n if (flexItem.hasClass('sui-accordion-item--open')) {\n setTimeout(function () {\n flexItem.find('.sui-accordion-item-data').removeClass('sui-onload');\n flexChart.addClass('sui-chartjs-loaded');\n }, 1200);\n }\n }\n } // CHECK: Table\n\n\n if (tableItem.hasClass('sui-accordion-item')) {\n if (tableItem.hasClass('sui-accordion-item--disabled')) {\n tableContent.removeClass('sui-accordion-item--open');\n } else {\n if (tableItem.hasClass('sui-accordion-item--open')) {\n tableItem.removeClass('sui-accordion-item--open');\n tableContent.removeClass('sui-accordion-item--open');\n } else {\n tableItem.addClass('sui-accordion-item--open');\n tableContent.addClass('sui-accordion-item--open');\n tableBox.attr('tabindex', '0').trigger('focus');\n }\n }\n } // Change button accessiblity content based on accordin open and close.\n\n\n if (dataContent) {\n button.html(dataContent);\n button.data('content', buttonText);\n }\n\n event.stopPropagation();\n });\n }\n }); // A really lightweight plugin wrapper around the constructor,\n // preventing against multiple instantiations\n\n $.fn[pluginName] = function (options) {\n return this.each(function () {\n // instance of SUIAccordion can be called with $(element).data('SUIAccordion')\n if (!$.data(this, pluginName)) {\n $.data(this, pluginName, new SUIAccordion(this, options));\n }\n });\n };\n})(jQuery, window, document);\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Define global SUI object if it doesn't exist.\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.suiAccordion = function (el) {\n var accordionTable = $(el);\n\n function init() {\n accordionTable.SUIAccordion({});\n }\n\n init();\n return this;\n };\n\n if (0 !== $('.sui-2-12-23 .sui-accordion').length) {\n $('.sui-2-12-23 .sui-accordion').each(function () {\n SUI.suiAccordion(this);\n });\n }\n})(jQuery);","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Define global SUI object if it does not exist.\n\n var _this = this;\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n /**\n * @desc Notifications function to show when alert.\n *\n * Assumptions: The element serving as the alert container is present in the\n * DOM and hidden. The alert container has role='alert'.\n *\n * @param noticeId\n * The ID of the element serving as the alert container.\n *\n * @param noticeMessage\n * The content to be printed when the alert shows up. It accepts HTML.\n *\n * @param noticeOptions\n * An object with different paramethers to modify the alert appearance.\n */\n\n\n SUI.openNotice = function (noticeId, noticeMessage, noticeOptions) {\n // Get notification node by ID.\n var noticeNode = $('#' + noticeId);\n var nodeWrapper = noticeNode.parent(); // Check if element ID exists.\n\n if (null === typeof noticeNode || 'undefined' === typeof noticeNode) {\n throw new Error('No element found with id=\"' + noticeId + '\".');\n } // Check if element has correct attribute.\n\n\n if ('alert' !== noticeNode.attr('role')) {\n throw new Error('Notice requires a DOM element with ARIA role of alert.');\n } // Check if notice message is empty.\n\n\n if (null === typeof noticeMessage || 'undefined' === typeof noticeMessage || '' === noticeMessage) {\n throw new Error('Notice requires a message to print.');\n }\n\n var utils = utils || {};\n /**\n * @desc Allowed types for notification.\n */\n\n utils.allowedNotices = ['info', 'blue', 'green', 'success', 'yellow', 'warning', 'red', 'error', 'purple', 'upsell'];\n /**\n * @desc Verify if property is an array.\n */\n\n utils.isObject = function (obj) {\n if ((null !== obj || 'undefined' !== obj) && $.isPlainObject(obj)) {\n return true;\n }\n\n return false;\n };\n /**\n * @desc Deep merge two objects.\n * Watch out for infinite recursion on circular references.\n */\n\n\n utils.deepMerge = function (target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (!sources.length) {\n return target;\n }\n\n var source = sources.shift();\n\n if (utils.isObject(target) && utils.isObject(source)) {\n for (var key in source) {\n if (utils.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, _defineProperty({}, key, {}));\n }\n\n utils.deepMerge(target[key], source[key]);\n } else {\n Object.assign(target, _defineProperty({}, key, source[key]));\n }\n }\n }\n\n return utils.deepMerge.apply(utils, [target].concat(sources));\n };\n /**\n * @desc Declare default styling options for notifications.\n */\n\n\n utils.setProperties = function () {\n var incomingOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n utils.options = [];\n var defaults = {\n type: 'default',\n icon: 'info',\n dismiss: {\n show: false,\n label: 'Close this notice',\n tooltip: ''\n },\n autoclose: {\n show: true,\n timeout: 3000\n }\n };\n utils.options[0] = utils.deepMerge(defaults, incomingOptions);\n };\n\n utils.setProperties(noticeOptions);\n /**\n * @desc Build notice dismiss.\n */\n\n utils.buildDismiss = function () {\n var html = '';\n var dismiss = utils.options[0].dismiss;\n\n if (true === dismiss.show) {\n html = document.createElement('div');\n html.className = 'sui-notice-actions';\n var innerHTML = '';\n\n if ('' !== dismiss.tooltip) {\n if (nodeWrapper.hasClass('sui-floating-notices')) {\n innerHTML += '<div class=\"sui-tooltip sui-tooltip-bottom\" data-tooltip=\"' + dismiss.tooltip + '\">';\n } else {\n innerHTML += '<div class=\"sui-tooltip\" data-tooltip=\"' + dismiss.tooltip + '\">';\n }\n }\n\n innerHTML += '<button class=\"sui-button-icon\">';\n innerHTML += '<span class=\"sui-icon-check\" aria-hidden=\"true\"></span>';\n\n if ('' !== dismiss.label) {\n innerHTML += '<span class=\"sui-screen-reader-text\">' + dismiss.label + '</span>';\n }\n\n innerHTML += '</button>';\n\n if ('' !== dismiss.tooltip) {\n innerHTML += '</div>';\n }\n\n html.innerHTML = innerHTML;\n }\n\n return html;\n };\n /**\n * @desc Build notice icon.\n */\n\n\n utils.buildIcon = function () {\n var html = '';\n var icon = utils.options[0].icon;\n\n if ('' !== icon || 'undefined' !== typeof icon || null !== typeof icon) {\n html = document.createElement('span');\n html.className += 'sui-notice-icon sui-icon-' + icon + ' sui-md';\n html.setAttribute('aria-hidden', true);\n\n if ('loader' === icon) {\n html.classList.add('sui-loading');\n }\n }\n\n return html;\n };\n /**\n * @desc Build notice message.\n */\n\n\n utils.buildMessage = function () {\n var html = document.createElement('div');\n html.className = 'sui-notice-message';\n html.innerHTML = noticeMessage;\n html.prepend(utils.buildIcon());\n return html;\n };\n /**\n * @desc Build notice markup.\n */\n\n\n utils.buildNotice = function () {\n var html = document.createElement('div');\n html.className = 'sui-notice-content';\n html.append(utils.buildMessage(), utils.buildDismiss());\n return html;\n };\n /**\n * @desc Show notification message.\n */\n\n\n utils.showNotice = function (animation) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;\n var type = utils.options[0].type;\n var dismiss = utils.options[0].dismiss;\n var autoclose = utils.options[0].autoclose; // Add active class.\n\n noticeNode.addClass('sui-active'); // Check for allowed notification types.\n\n $.each(utils.allowedNotices, function (key, value) {\n if (value === type) {\n noticeNode.addClass('sui-notice-' + value);\n }\n }); // Remove tabindex.\n\n noticeNode.removeAttr('tabindex'); // Print notification message.\n\n noticeNode.html(utils.buildNotice()); // Show animation.\n\n if ('slide' === animation) {\n noticeNode.slideDown(timeout, function () {\n // Check if dismiss button enabled.\n if (true === dismiss.show) {\n // Focus dismiss button.\n noticeNode.find('.sui-notice-actions button').trigger('focus'); // Dismiss button.\n\n noticeNode.find('.sui-notice-actions button').on('click', function () {\n SUI.closeNotice(noticeId);\n });\n } else {\n // Check if notice auto-closes.\n if (true === autoclose.show) {\n setTimeout(function () {\n return SUI.closeNotice(noticeId);\n }, parseInt(autoclose.timeout));\n }\n }\n });\n } else if ('fade' === animation) {\n noticeNode.fadeIn(timeout, function () {\n // Check if dismiss button enabled.\n if (true === dismiss.show) {\n // Focus dismiss button.\n noticeNode.find('.sui-notice-actions button').trigger('focus'); // Dismiss button.\n\n noticeNode.find('.sui-notice-actions button').on('click', function () {\n SUI.closeNotice(noticeId);\n });\n } else {\n // Check if notice auto-closes.\n if (true === autoclose.show) {\n setTimeout(function () {\n return SUI.closeNotice(noticeId);\n }, parseInt(autoclose.timeout));\n }\n }\n });\n } else {\n noticeNode.show(timeout, function () {\n // Check if dismiss button enabled.\n if (true === dismiss.show) {\n // Focus dismiss button.\n noticeNode.find('.sui-notice-actions button').trigger('focus'); // Dismiss button.\n\n noticeNode.find('.sui-notice-actions button').on('click', function () {\n SUI.closeNotice(noticeId);\n });\n } else {\n // Check if notice auto-closes.\n if (true === autoclose.show) {\n setTimeout(function () {\n return SUI.closeNotice(noticeId);\n }, parseInt(autoclose.timeout));\n }\n }\n });\n }\n };\n /**\n * @desc Open notification message.\n */\n\n\n utils.openNotice = function (animation) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;\n\n if (noticeNode.hasClass('sui-active')) {\n if ('slide' === animation) {\n noticeNode.slideUp(timeout, function () {\n utils.showNotice('slide', timeout);\n });\n } else if ('fade' === animation) {\n noticeNode.fadeOut(timeout, function () {\n utils.showNotice('fade', timeout);\n });\n } else {\n noticeNode.hide(timeout, function () {\n utils.showNotice(null, timeout);\n });\n }\n } else {\n // Show notice.\n utils.showNotice(animation, timeout);\n }\n };\n /**\n * @desc Initialize function.\n */\n\n\n var init = function init() {\n /**\n * When notice should float, it needs to be wrapped inside:\n * <div class=\"sui-floating-notices\"></div>\n *\n * IMPORTANT: This wrapper goes before \"sui-wrap\" closing tag\n * and after modals markup.\n */\n if (nodeWrapper.hasClass('sui-floating-notices')) {\n utils.openNotice('slide');\n } else {\n utils.openNotice('fade');\n }\n };\n\n init();\n return _this;\n };\n /**\n * @desc Close and clear the alert.\n *\n * Assumptions: The element that will trigger this function is part of alert content.\n *\n * @param noticeId\n * The ID of the element serving as the alert container.\n *\n */\n\n\n SUI.closeNotice = function (noticeId) {\n // Get notification node by ID.\n var noticeNode = $('#' + noticeId);\n var nodeWrapper = noticeNode.parent(); // Check if element ID exists.\n\n if (null === typeof noticeNode || 'undefined' === typeof noticeNode) {\n throw new Error('No element found with id=\"' + noticeId + '\".');\n }\n\n var utils = utils || {};\n /**\n * @desc Allowed types for notification.\n */\n\n utils.allowedNotices = ['info', 'blue', 'green', 'success', 'yellow', 'warning', 'red', 'error', 'purple', 'upsell'];\n /**\n * @desc Destroy notification.\n */\n\n utils.hideNotice = function () {\n // Remove active class.\n noticeNode.removeClass('sui-active'); // Remove styling classes.\n\n $.each(utils.allowedNotices, function (key, value) {\n noticeNode.removeClass('sui-notice-' + value);\n }); // Prevent TAB key from accessing the element.\n\n noticeNode.attr('tabindex', '-1'); // Remove all content from notification.\n\n noticeNode.empty();\n };\n /**\n * @desc Close notification message.\n */\n\n\n utils.closeNotice = function (animation) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;\n\n // Close animation.\n if ('slide' === animation) {\n noticeNode.slideUp(timeout, function () {\n return utils.hideNotice();\n });\n } else if ('fade' === animation) {\n noticeNode.fadeOut(timeout, function () {\n return utils.hideNotice();\n });\n } else {\n noticeNode.hide(timeout, function () {\n return utils.hideNotice();\n });\n }\n };\n /**\n * @desc Initialize function.\n */\n\n\n var init = function init() {\n /**\n * When notice should float, it needs to be wrapped inside:\n * <div class=\"sui-floating-notices\"></div>\n *\n * IMPORTANT: This wrapper goes before \"sui-wrap\" closing tag\n * and after modals markup.\n */\n if (nodeWrapper.hasClass('sui-floating-notices')) {\n utils.closeNotice('slide');\n } else {\n utils.closeNotice('fade');\n }\n };\n\n init();\n return _this;\n };\n /**\n * @desc Trigger open and close alert notification functions through element attributes.\n *\n * Assumptions: Elements in charge of triggering the actions will be a button or a non-hyperlink element.\n *\n */\n\n\n SUI.notice = function () {\n var notice = notice || {};\n notice.Utils = notice.Utils || {};\n /**\n * @desc Click an element to open a notification.\n */\n\n notice.Utils.Open = function (element) {\n element.on('click', function () {\n self = $(this); // Define main variables for open function.\n\n var noticeId = self.attr('data-notice-open');\n var noticeMessage = '';\n var noticeOptions = {}; // Define index to use on for loops.\n\n var i; // Define maximum number of paragraphs.\n\n var numbLines = 4; // Check if `data-notice-message` exists.\n\n if (self.is('[data-notice-message]') && '' !== self.attr('data-notice-message')) {\n noticeMessage += self.attr('data-notice-message'); // If `data-notice-message` doesn't exists, look for `data-notice-paragraph-[i]` attributes.\n } else {\n for (i = 0; i < numbLines; i++) {\n var index = i + 1;\n var paragraph = 'data-notice-paragraph-' + index;\n\n if (self.is('[' + paragraph + ']') && '' !== self.attr(paragraph)) {\n noticeMessage += '<p>' + self.attr(paragraph) + '</p>';\n }\n }\n } // Check if `data-notice-type` exists.\n\n\n if (self.is('[data-notice-type]') && '' !== self.attr('data-notice-dismiss-type')) {\n noticeOptions.type = self.attr('data-notice-type');\n } // Check if `data-notice-icon` exists.\n\n\n if (self.is('[data-notice-icon]')) {\n noticeOptions.icon = self.attr('data-notice-icon');\n } // Check if `data-notice-dismiss` exists.\n\n\n if (self.is('[data-notice-dismiss]')) {\n noticeOptions.dismiss = {};\n\n if ('true' === self.attr('data-notice-dismiss')) {\n noticeOptions.dismiss.show = true;\n } else if ('false' === self.attr('data-notice-dismiss')) {\n noticeOptions.dismiss.show = false;\n }\n } // Check if `data-notice-dismiss-label` exists.\n\n\n if (self.is('[data-notice-dismiss-label]') && '' !== self.attr('data-notice-dismiss-label')) {\n noticeOptions.dismiss.label = self.attr('data-notice-dismiss-label');\n } // Check if `data-notice-dismiss-label` exists.\n\n\n if (self.is('[data-notice-dismiss-tooltip]') && '' !== self.attr('data-notice-dismiss-tooltip')) {\n noticeOptions.dismiss.tooltip = self.attr('data-notice-dismiss-tooltip');\n } // Check if `data-notice-autoclose` exists.\n\n\n if (self.is('[data-notice-autoclose]')) {\n noticeOptions.autoclose = {};\n\n if ('true' === self.attr('data-notice-autoclose')) {\n noticeOptions.autoclose.show = true;\n } else if ('false' === self.attr('data-notice-autoclose')) {\n noticeOptions.autoclose.show = false;\n }\n } // Check if `data-notice-autoclose-timeout` exists.\n\n\n if (self.is('[data-notice-autoclose-timeout]')) {\n noticeOptions.autoclose = noticeOptions.autoclose || {};\n noticeOptions.autoclose.timeout = parseInt(self.attr('data-notice-autoclose-timeout'));\n }\n\n SUI.openNotice(noticeId, noticeMessage, noticeOptions);\n });\n };\n /**\n * @desc Close a notification.\n */\n\n\n notice.Utils.Close = function (element) {\n element.on('click', function () {\n self = $(this);\n var noticeId;\n\n if (self.is('[data-notice-close]')) {\n noticeId = self.closest('.sui-notice').attr('id');\n\n if ('' !== self.attr('[data-notice-close]')) {\n noticeId = self.attr('data-notice-close');\n }\n\n SUI.closeNotice(noticeId);\n }\n });\n };\n\n var init = function init() {\n // Open a notification.\n var btnOpen = $('[data-notice-open]');\n notice.Utils.Open(btnOpen); // Close a notification.\n\n var btnClose = $('[data-notice-close]');\n notice.Utils.Close(btnClose);\n };\n\n init();\n return _this;\n };\n\n SUI.notice();\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function () {\n // Enable strict mode.\n 'use strict';\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n /**\n * @namespace aria\n */\n\n\n var aria = aria || {}; // REF: Key codes.\n\n aria.KeyCode = {\n BACKSPACE: 8,\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n aria.Utils = aria.Utils || {}; // UTILS: Remove function.\n\n aria.Utils.remove = function (item) {\n if (item.remove && 'function' === typeof item.remove) {\n return item.remove();\n }\n\n if (item.parentNode && item.parentNode.removeChild && 'function' === typeof item.parentNode.removeChild) {\n return item.parentNode.removeChild(item);\n }\n\n return false;\n }; // UTILS: Verify if element can be focused.\n\n\n aria.Utils.isFocusable = function (element) {\n if (0 < element.tabIndex || 0 === element.tabIndex && null !== element.getAttribute('tabIndex')) {\n return true;\n }\n\n if (element.disabled) {\n return false;\n }\n\n switch (element.nodeName) {\n case 'A':\n return !!element.href && 'ignore' != element.rel;\n\n case 'INPUT':\n return 'hidden' != element.type && 'file' != element.type;\n\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n\n default:\n return false;\n }\n };\n /**\n * Simulate a click event.\n * @public\n * @param {Element} element the element to simulate a click on\n */\n\n\n aria.Utils.simulateClick = function (element) {\n // Create our event (with options)\n var evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n }); // If cancelled, don't dispatch our event\n\n var canceled = !element.dispatchEvent(evt);\n }; // When util functions move focus around, set this true so\n // the focus listener can ignore the events.\n\n\n aria.Utils.IgnoreUtilFocusChanges = false;\n aria.Utils.dialogOpenClass = 'sui-has-modal';\n /**\n * @desc Set focus on descendant nodes until the first\n * focusable element is found.\n *\n * @param element\n * DOM node for which to find the first focusable descendant.\n *\n * @returns\n * true if a focusable element is found and focus is set.\n */\n\n aria.Utils.focusFirstDescendant = function (element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n\n if (aria.Utils.attemptFocus(child) || aria.Utils.focusFirstDescendant(child)) {\n return true;\n }\n }\n\n return false;\n }; // end focusFirstDescendant\n\n /**\n * @desc Find the last descendant node that is focusable.\n *\n * @param element\n * DOM node for which to find the last focusable descendant.\n *\n * @returns\n * true if a focusable element is found and focus is set.\n */\n\n\n aria.Utils.focusLastDescendant = function (element) {\n for (var i = element.childNodes.length - 1; 0 <= i; i--) {\n var child = element.childNodes[i];\n\n if (aria.Utils.attemptFocus(child) || aria.Utils.focusLastDescendant(child)) {\n return true;\n }\n }\n\n return false;\n }; // end focusLastDescendant\n\n /**\n * @desc Set Attempt to set focus on the current node.\n *\n * @param element\n * The node to attempt to focus on.\n *\n * @returns\n * true if element is focused.\n */\n\n\n aria.Utils.attemptFocus = function (element) {\n if (!aria.Utils.isFocusable(element)) {\n return false;\n }\n\n aria.Utils.IgnoreUtilFocusChanges = true;\n\n try {\n element.focus();\n } catch (e) {// Done.\n }\n\n aria.Utils.IgnoreUtilFocusChanges = false;\n return document.activeElement === element;\n }; // end attemptFocus\n // Modals can open modals. Keep track of them with this array.\n\n\n aria.OpenDialogList = aria.OpenDialogList || new Array(0);\n /**\n * @returns the last opened dialog (the current dialog)\n */\n\n aria.getCurrentDialog = function () {\n if (aria.OpenDialogList && aria.OpenDialogList.length) {\n return aria.OpenDialogList[aria.OpenDialogList.length - 1];\n }\n };\n\n aria.closeCurrentDialog = function () {\n var currentDialog = aria.getCurrentDialog();\n\n if (currentDialog) {\n currentDialog.close();\n return true;\n }\n\n return false;\n };\n\n aria.handleEscape = function (event) {\n var key = event.which || event.keyCode;\n\n if (key === aria.KeyCode.ESC && aria.closeCurrentDialog()) {\n event.stopPropagation();\n }\n };\n /**\n * @constructor\n * @desc Dialog object providing modal focus management.\n *\n * Assumptions: The element serving as the dialog container is present in the\n * DOM and hidden. The dialog container has role='dialog'.\n *\n * @param dialogId\n * The ID of the element serving as the dialog container.\n *\n * @param focusAfterClosed\n * Either the DOM node or the ID of the DOM node to focus when the\n * dialog closes.\n *\n * @param focusFirst\n * Optional parameter containing either the DOM node or the ID of the\n * DOM node to focus when the dialog opens. If not specified, the\n * first focusable element in the dialog will receive focus.\n *\n * @param hasOverlayMask\n * Optional boolean parameter that when is set to \"true\" will enable\n * a clickable overlay mask. This mask will fire close modal function\n * when you click on it.\n *\n * @param isCloseOnEsc\n * Default: true\n * Optional boolean parameter that when it's set to \"true\", it will enable closing the\n * dialog with the Esc key.\n *\n * @param isAnimated\n * Default: true\n * Optional boolean parameter that when it's set to \"true\", it will enable animation in dialog box.\n */\n\n\n aria.Dialog = function (dialogId, focusAfterClosed, focusFirst, hasOverlayMask) {\n var isCloseOnEsc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var isAnimated = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n this.dialogNode = document.getElementById(dialogId);\n\n if (null === this.dialogNode) {\n throw new Error('No element found with id=\"' + dialogId + '\".');\n }\n\n var validRoles = ['dialog', 'alertdialog'];\n var isDialog = (this.dialogNode.getAttribute('role') || '').trim().split(/\\s+/g).some(function (token) {\n return validRoles.some(function (role) {\n return token === role;\n });\n });\n\n if (!isDialog) {\n throw new Error('Dialog() requires a DOM element with ARIA role of dialog or alertdialog.');\n }\n\n this.isCloseOnEsc = isCloseOnEsc; // Trigger the 'open' event at the beginning of the opening process.\n // After validating the modal's attributes.\n\n var openEvent = new Event('open');\n this.dialogNode.dispatchEvent(openEvent); // Wrap in an individual backdrop element if one doesn't exist\n // Native <dialog> elements use the ::backdrop pseudo-element, which\n // works similarly.\n\n var backdropClass = 'sui-modal';\n\n if (this.dialogNode.parentNode.classList.contains(backdropClass)) {\n this.backdropNode = this.dialogNode.parentNode;\n } else {\n this.backdropNode = document.createElement('div');\n this.backdropNode.className = backdropClass;\n this.backdropNode.setAttribute('data-markup', 'new');\n this.dialogNode.parentNode.insertBefore(this.backdropNode, this.dialogNodev);\n this.backdropNode.appendChild(this.dialogNode);\n }\n\n this.backdropNode.classList.add('sui-active'); // Disable scroll on the body element\n\n document.body.parentNode.classList.add(aria.Utils.dialogOpenClass);\n\n if ('string' === typeof focusAfterClosed) {\n this.focusAfterClosed = document.getElementById(focusAfterClosed);\n } else if ('object' === _typeof(focusAfterClosed)) {\n this.focusAfterClosed = focusAfterClosed;\n } else {\n throw new Error('the focusAfterClosed parameter is required for the aria.Dialog constructor.');\n }\n\n if ('string' === typeof focusFirst) {\n this.focusFirst = document.getElementById(focusFirst);\n } else if ('object' === _typeof(focusFirst)) {\n this.focusFirst = focusFirst;\n } else {\n this.focusFirst = null;\n } // Bracket the dialog node with two invisible, focusable nodes.\n // While this dialog is open, we use these to make sure that focus never\n // leaves the document even if dialogNode is the first or last node.\n\n\n var preDiv = document.createElement('div');\n this.preNode = this.dialogNode.parentNode.insertBefore(preDiv, this.dialogNode);\n this.preNode.tabIndex = 0;\n\n if ('boolean' === typeof hasOverlayMask && true === hasOverlayMask) {\n this.preNode.classList.add('sui-modal-overlay');\n\n this.preNode.onclick = function () {\n aria.getCurrentDialog().close();\n };\n }\n\n var postDiv = document.createElement('div');\n this.postNode = this.dialogNode.parentNode.insertBefore(postDiv, this.dialogNode.nextSibling);\n this.postNode.tabIndex = 0; // If this modal is opening on top of one that is already open,\n // get rid of the document focus listener of the open dialog.\n\n if (0 < aria.OpenDialogList.length) {\n aria.getCurrentDialog().removeListeners();\n }\n\n this.addListeners();\n aria.OpenDialogList.push(this); // If isAnimated is set true then modal box will animate.\n\n if (isAnimated) {\n this.dialogNode.classList.add('sui-content-fade-in'); // make visible\n\n this.dialogNode.classList.remove('sui-content-fade-out');\n } else {\n this.dialogNode.classList.remove('sui-content-fade-in');\n this.dialogNode.classList.remove('sui-content-fade-out');\n }\n\n if (this.focusFirst) {\n this.focusFirst.focus();\n } else {\n aria.Utils.focusFirstDescendant(this.dialogNode);\n }\n\n this.lastFocus = document.activeElement; // Trigger the 'afteropen' event at the end of the opening process.\n\n var afterOpenEvent = new Event('afterOpen');\n this.dialogNode.dispatchEvent(afterOpenEvent);\n }; // end Dialog constructor.\n\n /**\n * @desc Hides the current top dialog, removes listeners of the top dialog,\n * restore listeners of a parent dialog if one was open under the one that\n * just closed, and sets focus on the element specified for focusAfterClosed.\n *\n * @param isAnimated\n * Default: true\n * Optional boolean parameter that when it's set to \"true\", it will enable animation in dialog box.\n */\n\n\n aria.Dialog.prototype.close = function () {\n var isAnimated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var self = this; // Trigger the 'close' event at the beginning of the closing process.\n\n var closeEvent = new Event('close');\n this.dialogNode.dispatchEvent(closeEvent);\n aria.OpenDialogList.pop();\n this.removeListeners();\n this.preNode.parentNode.removeChild(this.preNode);\n this.postNode.parentNode.removeChild(this.postNode); // If isAnimated is set true then modal box will animate.\n\n if (isAnimated) {\n this.dialogNode.classList.add('sui-content-fade-out');\n this.dialogNode.classList.remove('sui-content-fade-in');\n } else {\n this.dialogNode.classList.remove('sui-content-fade-in');\n this.dialogNode.classList.remove('sui-content-fade-out');\n }\n\n this.focusAfterClosed.focus();\n setTimeout(function () {\n self.backdropNode.classList.remove('sui-active');\n }, 300);\n setTimeout(function () {\n var slides = self.dialogNode.querySelectorAll('.sui-modal-slide');\n\n if (0 < slides.length) {\n // Hide all slides.\n for (var i = 0; i < slides.length; i++) {\n slides[i].setAttribute('disabled', true);\n slides[i].classList.remove('sui-loaded');\n slides[i].classList.remove('sui-active');\n slides[i].setAttribute('tabindex', '-1');\n slides[i].setAttribute('aria-hidden', true);\n } // Change modal size.\n\n\n if (slides[0].hasAttribute('data-modal-size')) {\n var newDialogSize = slides[0].getAttribute('data-modal-size');\n\n switch (newDialogSize) {\n case 'sm':\n case 'small':\n newDialogSize = 'sm';\n break;\n\n case 'md':\n case 'med':\n case 'medium':\n newDialogSize = 'md';\n break;\n\n case 'lg':\n case 'large':\n newDialogSize = 'lg';\n break;\n\n case 'xl':\n case 'extralarge':\n case 'extraLarge':\n case 'extra-large':\n newDialogSize = 'xl';\n break;\n\n default:\n newDialogSize = undefined;\n }\n\n if (undefined !== newDialogSize) {\n // Remove others sizes from dialog to prevent any conflicts with styles.\n self.dialogNode.parentNode.classList.remove('sui-modal-sm');\n self.dialogNode.parentNode.classList.remove('sui-modal-md');\n self.dialogNode.parentNode.classList.remove('sui-modal-lg');\n self.dialogNode.parentNode.classList.remove('sui-modal-xl'); // Apply the new size to dialog.\n\n self.dialogNode.parentNode.classList.add('sui-modal-' + newDialogSize);\n }\n } // Show first slide.\n\n\n slides[0].classList.add('sui-active');\n slides[0].classList.add('sui-loaded');\n slides[0].removeAttribute('disabled');\n slides[0].removeAttribute('tabindex');\n slides[0].removeAttribute('aria-hidden'); // Change modal label.\n\n if (slides[0].hasAttribute('data-modal-labelledby')) {\n var newDialogLabel, getDialogLabel;\n newDialogLabel = '';\n getDialogLabel = slides[0].getAttribute('data-modal-labelledby');\n\n if ('' !== getDialogLabel || undefined !== getDialogLabel) {\n newDialogLabel = getDialogLabel;\n }\n\n self.dialogNode.setAttribute('aria-labelledby', newDialogLabel);\n } // Change modal description.\n\n\n if (slides[0].hasAttribute('data-modal-describedby')) {\n var newDialogDesc, getDialogDesc;\n newDialogDesc = '';\n getDialogDesc = slides[0].getAttribute('data-modal-describedby');\n\n if ('' !== getDialogDesc || undefined !== getDialogDesc) {\n newDialogDesc = getDialogDesc;\n }\n\n self.dialogNode.setAttribute('aria-describedby', newDialogDesc);\n }\n }\n }, 350); // If a dialog was open underneath this one, restore its listeners.\n\n if (0 < aria.OpenDialogList.length) {\n aria.getCurrentDialog().addListeners();\n } else {\n document.body.parentNode.classList.remove(aria.Utils.dialogOpenClass);\n } // Trigger the 'afterclose' event at the end of the closing process.\n\n\n var afterCloseEvent = new Event('afterClose');\n this.dialogNode.dispatchEvent(afterCloseEvent);\n }; // end close.\n\n /**\n * @desc Hides the current dialog and replaces it with another.\n *\n * @param newDialogId\n * ID of the dialog that will replace the currently open top dialog.\n *\n * @param newFocusAfterClosed\n * Optional ID or DOM node specifying where to place focus when the new dialog closes.\n * If not specified, focus will be placed on the element specified by the dialog being replaced.\n *\n * @param newFocusFirst\n * Optional ID or DOM node specifying where to place focus in the new dialog when it opens.\n * If not specified, the first focusable element will receive focus.\n *\n * @param hasOverlayMask\n * Optional boolean parameter that when is set to \"true\" will enable a clickable overlay\n * mask to the new opened dialog. This mask will fire close dialog function when you click it.\n *\n * @param isCloseOnEsc\n * Default: true\n * Optional boolean parameter that when it's set to \"true\", it will enable closing the\n * dialog with the Esc key.\n *\n * @param isAnimated\n * Default: true\n * Optional boolean parameter that when it's set to \"true\", it will enable animation in dialog box.\n */\n\n\n aria.Dialog.prototype.replace = function (newDialogId, newFocusAfterClosed, newFocusFirst, hasOverlayMask) {\n var isCloseOnEsc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var isAnimated = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var self = this;\n aria.OpenDialogList.pop();\n this.removeListeners();\n aria.Utils.remove(this.preNode);\n aria.Utils.remove(this.postNode); // If isAnimated is set true then modal box will animate.\n\n if (isAnimated) {\n this.dialogNode.classList.add('sui-content-fade-in'); // make visible\n\n this.dialogNode.classList.remove('sui-content-fade-out');\n } else {\n this.dialogNode.classList.remove('sui-content-fade-in');\n this.dialogNode.classList.remove('sui-content-fade-out');\n }\n\n this.backdropNode.classList.remove('sui-active');\n setTimeout(function () {\n var slides = self.dialogNode.querySelectorAll('.sui-modal-slide');\n\n if (0 < slides.length) {\n // Hide all slides.\n for (var i = 0; i < slides.length; i++) {\n slides[i].setAttribute('disabled', true);\n slides[i].classList.remove('sui-loaded');\n slides[i].classList.remove('sui-active');\n slides[i].setAttribute('tabindex', '-1');\n slides[i].setAttribute('aria-hidden', true);\n } // Change modal size.\n\n\n if (slides[0].hasAttribute('data-modal-size')) {\n var newDialogSize = slides[0].getAttribute('data-modal-size');\n\n switch (newDialogSize) {\n case 'sm':\n case 'small':\n newDialogSize = 'sm';\n break;\n\n case 'md':\n case 'med':\n case 'medium':\n newDialogSize = 'md';\n break;\n\n case 'lg':\n case 'large':\n newDialogSize = 'lg';\n break;\n\n case 'xl':\n case 'extralarge':\n case 'extraLarge':\n case 'extra-large':\n newDialogSize = 'xl';\n break;\n\n default:\n newDialogSize = undefined;\n }\n\n if (undefined !== newDialogSize) {\n // Remove others sizes from dialog to prevent any conflicts with styles.\n self.dialogNode.parentNode.classList.remove('sui-modal-sm');\n self.dialogNode.parentNode.classList.remove('sui-modal-md');\n self.dialogNode.parentNode.classList.remove('sui-modal-lg');\n self.dialogNode.parentNode.classList.remove('sui-modal-xl'); // Apply the new size to dialog.\n\n self.dialogNode.parentNode.classList.add('sui-modal-' + newDialogSize);\n }\n } // Show first slide.\n\n\n slides[0].classList.add('sui-active');\n slides[0].classList.add('sui-loaded');\n slides[0].removeAttribute('disabled');\n slides[0].removeAttribute('tabindex');\n slides[0].removeAttribute('aria-hidden'); // Change modal label.\n\n if (slides[0].hasAttribute('data-modal-labelledby')) {\n var newDialogLabel, getDialogLabel;\n newDialogLabel = '';\n getDialogLabel = slides[0].getAttribute('data-modal-labelledby');\n\n if ('' !== getDialogLabel || undefined !== getDialogLabel) {\n newDialogLabel = getDialogLabel;\n }\n\n self.dialogNode.setAttribute('aria-labelledby', newDialogLabel);\n } // Change modal description.\n\n\n if (slides[0].hasAttribute('data-modal-describedby')) {\n var newDialogDesc, getDialogDesc;\n newDialogDesc = '';\n getDialogDesc = slides[0].getAttribute('data-modal-describedby');\n\n if ('' !== getDialogDesc || undefined !== getDialogDesc) {\n newDialogDesc = getDialogDesc;\n }\n\n self.dialogNode.setAttribute('aria-describedby', newDialogDesc);\n }\n }\n }, 350);\n var focusAfterClosed = newFocusAfterClosed || this.focusAfterClosed;\n var dialog = new aria.Dialog(newDialogId, focusAfterClosed, newFocusFirst, hasOverlayMask, isCloseOnEsc, isAnimated);\n }; // end replace\n\n /**\n * @desc Uses the same dialog to display different content that will slide to show.\n *\n * @param newSlideId\n * ID of the slide that will replace the currently active slide content.\n *\n * @param newSlideFocus\n * Optional ID or DOM node specifying where to place focus in the new slide when it shows.\n * If not specified, the first focusable element will receive focus.\n *\n * @param newSlideEntrance\n * Determine if the new slide will show up from \"left\" or \"right\" of the screen.\n * If not specified, the slide entrance animation will be \"fade in\".\n */\n\n\n aria.Dialog.prototype.slide = function (newSlideId, newSlideFocus, newSlideEntrance) {\n var animation = 'sui-fadein',\n currentDialog = aria.getCurrentDialog(),\n getAllSlides = this.dialogNode.querySelectorAll('.sui-modal-slide'),\n getNewSlide = document.getElementById(newSlideId);\n\n switch (newSlideEntrance) {\n case 'back':\n case 'left':\n animation = 'sui-fadein-left';\n break;\n\n case 'next':\n case 'right':\n animation = 'sui-fadein-right';\n break;\n\n default:\n animation = 'sui-fadein';\n break;\n } // Hide all slides.\n\n\n for (var i = 0; i < getAllSlides.length; i++) {\n getAllSlides[i].setAttribute('disabled', true);\n getAllSlides[i].classList.remove('sui-loaded');\n getAllSlides[i].classList.remove('sui-active');\n getAllSlides[i].setAttribute('tabindex', '-1');\n getAllSlides[i].setAttribute('aria-hidden', true);\n } // Change modal size.\n\n\n if (getNewSlide.hasAttribute('data-modal-size')) {\n var newDialogSize = getNewSlide.getAttribute('data-modal-size');\n\n switch (newDialogSize) {\n case 'sm':\n case 'small':\n newDialogSize = 'sm';\n break;\n\n case 'md':\n case 'med':\n case 'medium':\n newDialogSize = 'md';\n break;\n\n case 'lg':\n case 'large':\n newDialogSize = 'lg';\n break;\n\n case 'xl':\n case 'extralarge':\n case 'extraLarge':\n case 'extra-large':\n newDialogSize = 'xl';\n break;\n\n default:\n newDialogSize = undefined;\n }\n\n if (undefined !== newDialogSize) {\n // Remove others sizes from dialog to prevent any conflicts with styles.\n this.dialogNode.parentNode.classList.remove('sui-modal-sm');\n this.dialogNode.parentNode.classList.remove('sui-modal-md');\n this.dialogNode.parentNode.classList.remove('sui-modal-lg');\n this.dialogNode.parentNode.classList.remove('sui-modal-xl'); // Apply the new size to dialog.\n\n this.dialogNode.parentNode.classList.add('sui-modal-' + newDialogSize);\n }\n } // Change modal label.\n\n\n if (getNewSlide.hasAttribute('data-modal-labelledby')) {\n var newDialogLabel, getDialogLabel;\n newDialogLabel = '';\n getDialogLabel = getNewSlide.getAttribute('data-modal-labelledby');\n\n if ('' !== getDialogLabel || undefined !== getDialogLabel) {\n newDialogLabel = getDialogLabel;\n }\n\n this.dialogNode.setAttribute('aria-labelledby', newDialogLabel);\n } // Change modal description.\n\n\n if (getNewSlide.hasAttribute('data-modal-describedby')) {\n var newDialogDesc, getDialogDesc;\n newDialogDesc = '';\n getDialogDesc = getNewSlide.getAttribute('data-modal-describedby');\n\n if ('' !== getDialogDesc || undefined !== getDialogDesc) {\n newDialogDesc = getDialogDesc;\n }\n\n this.dialogNode.setAttribute('aria-describedby', newDialogDesc);\n } // Show new slide.\n\n\n getNewSlide.classList.add('sui-active');\n getNewSlide.classList.add(animation);\n getNewSlide.removeAttribute('tabindex');\n getNewSlide.removeAttribute('aria-hidden');\n setTimeout(function () {\n getNewSlide.classList.add('sui-loaded');\n getNewSlide.classList.remove(animation);\n getNewSlide.removeAttribute('disabled');\n }, 600);\n\n if ('string' === typeof newSlideFocus) {\n this.newSlideFocus = document.getElementById(newSlideFocus);\n } else if ('object' === _typeof(newSlideFocus)) {\n this.newSlideFocus = newSlideFocus;\n } else {\n this.newSlideFocus = null;\n }\n\n if (this.newSlideFocus) {\n this.newSlideFocus.focus();\n } else {\n aria.Utils.focusFirstDescendant(this.dialogNode);\n }\n }; // end slide.\n\n\n aria.Dialog.prototype.addListeners = function () {\n document.addEventListener('focus', this.trapFocus, true);\n\n if (this.isCloseOnEsc) {\n this.dialogNode.addEventListener('keyup', aria.handleEscape);\n }\n }; // end addListeners.\n\n\n aria.Dialog.prototype.removeListeners = function () {\n document.removeEventListener('focus', this.trapFocus, true);\n }; // end removeListeners.\n\n\n aria.Dialog.prototype.trapFocus = function (event) {\n var parentElement = event.target.parentElement;\n\n if (aria.Utils.IgnoreUtilFocusChanges || parentElement && parentElement.classList.contains('wp-link-input')) {\n return;\n }\n\n var currentDialog = aria.getCurrentDialog();\n\n if (currentDialog.dialogNode.contains(event.target)) {\n currentDialog.lastFocus = event.target;\n } else {\n aria.Utils.focusFirstDescendant(currentDialog.dialogNode);\n\n if (currentDialog.lastFocus == document.activeElement) {\n aria.Utils.focusLastDescendant(currentDialog.dialogNode);\n }\n\n currentDialog.lastFocus = document.activeElement;\n }\n }; // end trapFocus.\n\n\n SUI.openModal = function (dialogId, focusAfterClosed, focusFirst, dialogOverlay) {\n var isCloseOnEsc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var isAnimated = arguments.length > 5 ? arguments[5] : undefined;\n var dialog = new aria.Dialog(dialogId, focusAfterClosed, focusFirst, dialogOverlay, isCloseOnEsc, isAnimated);\n }; // end openModal.\n\n\n SUI.closeModal = function (isAnimated) {\n var topDialog = aria.getCurrentDialog();\n topDialog.close(isAnimated);\n }; // end closeDialog.\n\n\n SUI.replaceModal = function (newDialogId, newFocusAfterClosed, newFocusFirst, hasOverlayMask) {\n var isCloseOnEsc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var isAnimated = arguments.length > 5 ? arguments[5] : undefined;\n var topDialog = aria.getCurrentDialog();\n /**\n * BUG #1:\n * When validating document.activeElement it always returns \"false\" but\n * even when \"false\" on Chrome function is fired correctly while on Firefox\n * and Safari this validation prevents function to be fired on click.\n *\n * if ( topDialog.dialogNode.contains( document.activeElement ) ) { ... }\n */\n\n topDialog.replace(newDialogId, newFocusAfterClosed, newFocusFirst, hasOverlayMask, isCloseOnEsc, isAnimated);\n }; // end replaceModal.\n\n\n SUI.slideModal = function (newSlideId, newSlideFocus, newSlideEntrance) {\n var topDialog = aria.getCurrentDialog();\n topDialog.slide(newSlideId, newSlideFocus, newSlideEntrance);\n }; // end slideModal.\n\n})();\n\n(function ($) {\n // Enable strict mode.\n 'use strict';\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.modalDialog = function () {\n function init() {\n var button, buttonOpen, buttonClose, buttonReplace, buttonSlide, overlayMask, modalId, slideId, closeFocus, newFocus, animation, isAnimated;\n buttonOpen = $('[data-modal-open]');\n buttonClose = $('[data-modal-close]');\n buttonReplace = $('[data-modal-replace]');\n buttonSlide = $('[data-modal-slide]');\n overlayMask = $('.sui-modal-overlay');\n buttonOpen.on('click', function (e) {\n button = $(this);\n modalId = button.attr('data-modal-open');\n closeFocus = button.attr('data-modal-close-focus');\n newFocus = button.attr('data-modal-open-focus');\n overlayMask = button.attr('data-modal-mask');\n isAnimated = button.attr('data-modal-animated');\n var isCloseOnEsc = 'false' === button.attr('data-esc-close') ? false : true;\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) === _typeof(closeFocus) || false === closeFocus || '' === closeFocus) {\n closeFocus = this;\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) === _typeof(newFocus) || false === newFocus || '' === newFocus) {\n newFocus = undefined;\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) !== _typeof(overlayMask) && false !== overlayMask && 'true' === overlayMask) {\n overlayMask = true;\n } else {\n overlayMask = false;\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) !== _typeof(isAnimated) && false !== isAnimated && 'false' === isAnimated) {\n isAnimated = false;\n } else {\n isAnimated = true;\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) !== _typeof(modalId) && false !== modalId && '' !== modalId) {\n SUI.openModal(modalId, closeFocus, newFocus, overlayMask, isCloseOnEsc, isAnimated);\n }\n\n e.preventDefault();\n });\n buttonReplace.on('click', function (e) {\n button = $(this);\n modalId = button.attr('data-modal-replace');\n closeFocus = button.attr('data-modal-close-focus');\n newFocus = button.attr('data-modal-open-focus');\n overlayMask = button.attr('data-modal-replace-mask');\n var isCloseOnEsc = 'false' === button.attr('data-esc-close') ? false : true;\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) === _typeof(closeFocus) || false === closeFocus || '' === closeFocus) {\n closeFocus = undefined;\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) === _typeof(newFocus) || false === newFocus || '' === newFocus) {\n newFocus = undefined;\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) !== _typeof(overlayMask) && false !== overlayMask && 'true' === overlayMask) {\n overlayMask = true;\n } else {\n overlayMask = false;\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) !== _typeof(modalId) && false !== modalId && '' !== modalId) {\n SUI.replaceModal(modalId, closeFocus, newFocus, overlayMask, isCloseOnEsc, isAnimated);\n }\n\n e.preventDefault();\n });\n buttonSlide.on('click', function (e) {\n button = $(this);\n slideId = button.attr('data-modal-slide');\n newFocus = button.attr('data-modal-slide-focus');\n animation = button.attr('data-modal-slide-intro');\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) === _typeof(newFocus) || false === newFocus || '' === newFocus) {\n newFocus = undefined;\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) === _typeof(animation) || false === animation || '' === animation) {\n animation = '';\n }\n\n if ((typeof undefined === \"undefined\" ? \"undefined\" : _typeof(undefined)) !== _typeof(slideId) && false !== slideId && '' !== slideId) {\n SUI.slideModal(slideId, newFocus, animation);\n }\n\n e.preventDefault();\n });\n buttonClose.on('click', function (e) {\n SUI.closeModal(isAnimated);\n e.preventDefault();\n });\n }\n\n init();\n return this;\n };\n\n SUI.modalDialog();\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n// the semi-colon before function invocation is a safety net against concatenated\n// scripts and/or other plugins which may not be closed properly.\n;\n\n(function ($, ClipboardJS, window, document, undefined) {\n 'use strict'; // undefined is used here as the undefined global variable in ECMAScript 3 is\n // mutable (ie. it can be changed by someone else). undefined isn't really being\n // passed in so we can ensure the value of it is truly undefined. In ES5, undefined\n // can no longer be modified.\n // window and document are passed through as local variables rather than global\n // as this (slightly) quickens the resolution process and can be more efficiently\n // minified (especially when both are regularly referenced in your plugin).\n // Create the defaults once\n\n var pluginName = 'SUICodeSnippet',\n defaults = {\n copyText: 'Copy',\n copiedText: 'Copied!'\n }; // The actual plugin constructor\n\n function SUICodeSnippet(element, options) {\n this.element = element;\n this.$element = $(this.element); // jQuery has an extend method which merges the contents of two or\n // more objects, storing the result in the first object. The first object\n // is generally empty as we don't want to alter the default options for\n // future instances of the plugin\n\n this.settings = $.extend({}, defaults, options);\n this._defaults = defaults;\n this._name = pluginName;\n this._clipboardJs = null;\n this._clipboardId = '';\n this.init();\n } // Avoid Plugin.prototype conflicts\n\n\n $.extend(SUICodeSnippet.prototype, {\n init: function init() {\n var self = this,\n button = ''; // check if its already wrapped\n\n if (0 === this.$element.parent('sui-code-snippet-wrapper').length) {\n // build markup\n this.$element.wrap('<div class=\"sui-code-snippet-wrapper\"></div>');\n this._clipboardId = this.generateUniqueId();\n button = '<button type=\"button\" class=\"sui-button\" id=\"sui-code-snippet-button-' + this._clipboardId + '\" data-clipboard-target=\"#sui-code-snippet-' + this._clipboardId + '\">' + this.settings.copyText + '</button>';\n this.$element.attr('id', 'sui-code-snippet-' + this._clipboardId).after(button);\n this._clipboardJs = new ClipboardJS('#sui-code-snippet-button-' + this._clipboardId); // attach events\n\n this._clipboardJs.on('success', function (e) {\n e.clearSelection();\n self.showTooltip(e.trigger, self.settings.copiedText);\n });\n\n $('#sui-code-snippet-button-' + this._clipboardId).on('mouseleave.SUICodeSnippet', function () {\n $(this).removeClass('sui-tooltip');\n $(this).removeAttr('aria-label');\n $(this).removeAttr('data-tooltip');\n });\n }\n },\n getClipboardJs: function getClipboardJs() {\n return this._clipboardJs;\n },\n showTooltip: function showTooltip(e, msg) {\n $(e).addClass('sui-tooltip');\n $(e).attr('aria-label', msg);\n $(e).attr('data-tooltip', msg);\n },\n generateUniqueId: function generateUniqueId() {\n // Math.random should be unique because of its seeding algorithm.\n // Convert it to base 36 (numbers + letters), and grab the first 9 characters\n // after the decimal.\n return '_' + Math.random().toString(36).substr(2, 9);\n },\n destroy: function destroy() {\n if (null !== this._clipboardJs) {\n this._clipboardJs.destroy();\n\n this.$element.attr('id', '');\n this.$element.unwrap('.sui-code-snippet-wrapper');\n $('#sui-code-snippet-button-' + this._clipboardId).remove();\n }\n }\n }); // A really lightweight plugin wrapper around the constructor,\n // preventing against multiple instantiations\n\n $.fn[pluginName] = function (options) {\n return this.each(function () {\n // instance of SUICodeSnippet can be called with $(element).data('SUICodeSnippet')\n if (!$.data(this, pluginName)) {\n $.data(this, pluginName, new SUICodeSnippet(this, options));\n }\n });\n };\n})(jQuery, ClipboardJS, window, document);\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Define global SUI object if it doesn't exist.\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.suiCodeSnippet = function () {\n // Convert all code snippet.\n $('.sui-2-12-23 .sui-code-snippet:not(.sui-no-copy)').each(function () {\n // backward compat of instantiate new accordion\n $(this).SUICodeSnippet({});\n });\n }; // wait document ready first\n\n\n $(document).ready(function () {\n SUI.suiCodeSnippet();\n });\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * Select2 4.1.0-rc.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n *\n * Modified logic/function,etc besides formatting should be marked with //SUI-SELECT2\n * For easy debugging process or update upstream of select\n */\n;\n\n(function (factory) {\n // Disable AMD and module exports. @edited\n if (false && typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (false && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n})(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 = function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\n\n var S2;\n\n (function () {\n if (!S2 || !S2.requirejs) {\n if (!S2) {\n S2 = {};\n } else {\n require = S2;\n }\n /**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n //Going sloppy to avoid 'use strict' string cost, but strict practices should\n //be followed.\n\n /*global setTimeout: false */\n\n\n var requirejs, require, define;\n\n (function (undef) {\n var main,\n _req,\n makeMap,\n handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n\n\n function normalize(name, baseName) {\n var nameParts,\n nameSegment,\n mapValue,\n foundMap,\n lastIndex,\n foundI,\n foundStarMap,\n starI,\n i,\n j,\n part,\n normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = map && map['*'] || {}; //Adjust any relative paths.\n\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1; // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n } // Starts with a '.' so need the baseName\n\n\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n } //start trimDots\n\n\n for (i = 0; i < name.length; i++) {\n part = name[i];\n\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || i === 1 && name[2] === '..' || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n } //end trimDots\n\n\n name = name.join('/');\n } //Apply map config if available.\n\n\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')]; //baseName segment has config, find if it has one for\n //this name.\n\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n } //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n\n\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0); //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n\n return _req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n\n return defined[name];\n } //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n\n\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n\n return [prefix, name];\n } //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n\n\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n\n\n makeMap = function makeMap(name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n } //Normalize according\n\n\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n\n if (prefix) {\n plugin = callDep(prefix);\n }\n } //Using ridiculous property names for space reasons\n\n\n return {\n f: prefix ? prefix + '!' + name : name,\n //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return config && config.config && config.config[name] || {};\n };\n }\n\n handlers = {\n require: function require(name) {\n return makeRequire(name);\n },\n exports: function exports(name) {\n var e = defined[name];\n\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return defined[name] = {};\n }\n },\n module: function module(name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function main(name, deps, callback, relName) {\n var cjsModule,\n depName,\n ret,\n map,\n i,\n relParts,\n args = [],\n callbackType = _typeof(callback),\n usingExports; //Use name if no relName\n\n\n relName = relName || name;\n relParts = makeRelParts(relName); //Call the callback to define the module, if necessary.\n\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f; //Fast path CommonJS standard dependencies.\n\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) || hasProp(waiting, depName) || hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef && cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = _req = function req(deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n } //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n\n\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n\n if (config.deps) {\n _req(config.deps, config.callback);\n }\n\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n } //Support require(['a'])\n\n\n callback = callback || function () {}; //If relName is a function, it is an errback handler,\n //so remove it.\n\n\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n } //Simulate async callback;\n\n\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return _req;\n };\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n\n\n _req.config = function (cfg) {\n return _req(cfg);\n };\n /**\n * Expose module registry for debugging and tooling\n */\n\n\n requirejs._defined = defined;\n\n define = function define(name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n } //This module may not have dependencies\n\n\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n })();\n\n S2.requirejs = requirejs;\n S2.require = require;\n S2.define = define;\n }\n })();\n\n S2.define(\"almond\", function () {});\n /* global jQuery:false, $:false */\n\n S2.define('jquery', [], function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error('Select2: An instance of jQuery or a jQuery-compatible library was not ' + 'found. Make sure that you are including jQuery before Select2 on your ' + 'web page.');\n }\n\n return _$;\n });\n S2.define('select2/utils', ['jquery'], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor() {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n return ChildClass;\n };\n\n function getMethods(theClass) {\n var proto = theClass.prototype;\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass() {\n var unshift = Array.prototype.unshift;\n var argCount = DecoratorClass.prototype.constructor.length;\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr() {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function calledMethod(methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function originalMethod() {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n return function () {\n var unshift = Array.prototype.unshift;\n unshift.call(arguments, originalMethod);\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function Observable() {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n this.listeners = this.listeners || {}; // Params should always come in as an array\n\n if (params == null) {\n params = [];\n } // If there are no arguments to the event, use a temporary object\n\n\n if (params.length === 0) {\n params.push({});\n } // Set the `_type` of the first object to the event\n\n\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]; // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY; //Check both x and y declarations\n\n if (overflowX === overflowY && (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return $el.innerHeight() < el.scrollHeight || $el.innerWidth() < el.scrollWidth;\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n }; // Do not try to escape the markup if it's not a string\n\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n }; // Cache objects in Utils.__cache instead of $.data (see #4346)\n\n\n Utils.__cache = {};\n var id = 0;\n\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id with a prefix.\n // If an id already exists, it simply returns it with a prefix.\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id != null) {\n return select2Id;\n } // If element has id, use it.\n\n\n if (element.id) {\n select2Id = 'select2-data-' + element.id;\n } else {\n select2Id = 'select2-data-' + (++id).toString() + '-' + Utils.generateChars(4);\n }\n\n element.setAttribute('data-select2-id', select2Id);\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n Utils.copyNonInternalCssClasses = function (dest, src) {\n var classes;\n var destinationClasses = dest.getAttribute('class').trim().split(/\\s+/);\n destinationClasses = destinationClasses.filter(function (clazz) {\n // Save all Select2 classes\n return clazz.indexOf('select2-') === 0;\n });\n var sourceClasses = src.getAttribute('class').trim().split(/\\s+/);\n sourceClasses = sourceClasses.filter(function (clazz) {\n // Only copy non-Select2 classes\n return clazz.indexOf('select2-') !== 0;\n });\n var replacements = destinationClasses.concat(sourceClasses);\n dest.setAttribute('class', replacements.join(' '));\n };\n\n return Utils;\n });\n S2.define('select2/results', ['jquery', './utils'], function ($, Utils) {\n function Results($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $('<ul class=\"select2-results__options\" role=\"listbox\"></ul>');\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n this.clear();\n this.hideLoading();\n var $message = $('<li role=\"alert\" aria-live=\"assertive\"' + ' class=\"select2-results__option\"></li>');\n var message = this.options.get('translations').get(params.message);\n $message.append(escapeMarkup(message(params.args)));\n $message[0].className += ' select2-results__message';\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n var $option = this.option(item);\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results.find('.select2-results__option--selectable');\n var $selected = $options.filter('.select2-results__option--selected'); // Check if there are any selected options\n\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n this.data.current(function (selected) {\n var selectedIds = selected.map(function (s) {\n return s.id.toString();\n });\n var $options = self.$results.find('.select2-results__option--selectable');\n $options.each(function () {\n var $option = $(this);\n var item = Utils.GetData(this, 'data'); // id needs to be converted to a string when comparing\n\n var id = '' + item.id;\n\n if (item.element != null && item.element.selected || item.element == null && selectedIds.indexOf(id) > -1) {\n this.classList.add('select2-results__option--selected');\n $option.attr('aria-selected', 'true');\n } else {\n this.classList.remove('select2-results__option--selected');\n $option.attr('aria-selected', 'false');\n }\n });\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n var loadingMore = this.options.get('translations').get('searching');\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.classList.add('select2-results__option');\n option.classList.add('select2-results__option--selectable');\n var attrs = {\n 'role': 'option'\n };\n var matches = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;\n\n if (data.element != null && matches.call(data.element, ':disabled') || data.element == null && data.disabled) {\n attrs['aria-disabled'] = 'true';\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--disabled');\n }\n\n if (data.id == null) {\n option.classList.remove('select2-results__option--selectable');\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n option.classList.remove('select2-results__option--selectable');\n option.classList.add('select2-results__option--group');\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n this.template(data, label);\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n var $child = this.option(child);\n $children.push($child);\n }\n\n var $childrenContainer = $('<ul></ul>', {\n 'class': 'select2-results__options select2-results__options--nested',\n 'role': 'none'\n });\n $childrenContainer.append($children);\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n var id = container.id + '-results';\n this.$results.attr('id', id);\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n self.setClasses();\n self.ensureHighlightVisible();\n });\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.hasClass('select2-results__option--selected')) {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n var $options = self.$results.find('.select2-results__option--selectable');\n var currentIndex = $options.index($highlighted); // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first\n\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n $next.trigger('mouseenter');\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n var $options = self.$results.find('.select2-results__option--selectable');\n var currentIndex = $options.index($highlighted);\n var nextIndex = currentIndex + 1; // If we are at the last option, stay there\n\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n $next.trigger('mouseenter');\n var currentOffset = self.$results.offset().top + self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n container.on('results:focus', function (params) {\n params.element[0].classList.add('select2-results__option--highlighted');\n params.element[0].setAttribute('aria-selected', 'true');\n });\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(self.$results.get(0).scrollHeight - self.$results.height());\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option--selectable', function (evt) {\n var $this = $(this);\n var data = Utils.GetData(this, 'data');\n\n if ($this.hasClass('select2-results__option--selected')) {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n this.$results.on('mouseenter', '.select2-results__option--selectable', function (evt) {\n var data = Utils.GetData(this, 'data');\n self.getHighlightedResults().removeClass('select2-results__option--highlighted').attr('aria-selected', 'false');\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results.find('.select2-results__option--highlighted');\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('.select2-results__option--selectable');\n var currentIndex = $options.index($highlighted);\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n });\n S2.define('select2/keys', [], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n return KEYS;\n });\n S2.define('select2/selection/base', ['jquery', '../utils', '../keys'], function ($, Utils, KEYS) {\n function BaseSelection($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $('<span class=\"select2-selection\" role=\"combobox\" ' + ' aria-haspopup=\"true\" aria-expanded=\"false\">' + '</span>');\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n this.$selection = $selection;\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n this.container = container;\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this; // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (document.activeElement == self.$selection[0] || $.contains(self.$selection[0], document.activeElement)) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n var $select = $target.closest('.select2');\n var $all = $('.select2.select2-container--open');\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element'); // Renamed function. @edited\n // old: $element.select2('close');\n\n $element.SUIselect2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n\n\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n\n\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n });\n S2.define('select2/selection/single', ['jquery', './base', '../utils', '../keys'], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection() {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--single'); // Assign SUI icon to select button. @edited\n\n $selection.html('<span class=\"select2-selection__rendered\"></span>' + '<span class=\"select2-selection__arrow\" role=\"presentation\">' + '<span class=\"sui-icon-chevron-down sui-sm\" aria-hidden=\"true\"></span>' + '</span>');\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id).attr('role', 'textbox').attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n this.$selection.attr('aria-controls', id);\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n this.$selection.on('focus', function (evt) {// User focuses on the container\n });\n this.$selection.on('blur', function (evt) {// User exits the container\n });\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('<span></span>');\n };\n\n SingleSelection.prototype.update = function (data) {\n // Add icon when variables is empty. @edited\n if (data.length === 0) {\n this.clear();\n\n if ('vars' === this.options.get('theme')) {\n this.$selection.find('.select2-selection__rendered').html('<span class=\"sui-icon-plus-circle sui-md\" aria-hidden=\"true\"></span>');\n }\n\n return;\n }\n\n var selection = data[0];\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n $rendered.empty().append(formatted);\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n });\n S2.define('select2/selection/multiple', ['jquery', './base', '../utils'], function ($, BaseSelection, Utils) {\n function MultipleSelection($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection[0].classList.add('select2-selection--multiple');\n $selection.html('<ul class=\"select2-selection__rendered\"></ul>');\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n this.$selection.on('click', '.sui-button-icon', function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n var data = Utils.GetData($selection[0], 'data');\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n });\n this.$selection.on('keydown', '.sui-button-icon', function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n evt.stopPropagation();\n });\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n $rendered.removeClass('has-option-selected');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $('<li class=\"select2-selection__choice\">' + '<span class=\"select2-selection__choice__display\"></span>' + '<button type=\"button\" class=\"sui-button-icon\" ' + 'tabindex=\"-1\">' + '<span class=\"sui-icon-close sui-sm\" aria-hidden=\"true\"></span>' + '</button>' + '</li>');\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n var selectionIdPrefix = this.$selection.find('.select2-selection__rendered').attr('id') + '-choice-';\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n var selectionId = selectionIdPrefix + Utils.generateChars(4) + '-';\n\n if (selection.id) {\n selectionId += selection.id;\n } else {\n selectionId += Utils.generateChars(4);\n }\n\n $selection.find('.select2-selection__choice__display').append(formatted).attr('id', selectionId);\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n var removeItem = this.options.get('translations').get('removeItem');\n var $remove = $selection.find('.sui-button-icon');\n $remove.attr('title', removeItem());\n $remove.attr('aria-label', removeItem());\n $remove.attr('aria-describedby', selectionId);\n Utils.StoreData($selection[0], 'data', selection);\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.append($selections).addClass('has-option-selected');\n };\n\n return MultipleSelection;\n });\n S2.define('select2/selection/placeholder', [], function () {\n function Placeholder(decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n $placeholder.html(this.display(placeholder));\n $placeholder[0].classList.add('select2-selection__placeholder');\n $placeholder[0].classList.remove('select2-selection__choice');\n var placeholderTitle = placeholder.title || placeholder.text || $placeholder.text();\n this.$selection.find('.select2-selection__rendered').attr('title', placeholderTitle);\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = data.length == 1 && data[0].id != this.placeholder.id;\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n var $placeholder = this.createPlaceholder(this.placeholder);\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n });\n S2.define('select2/selection/allowClear', ['jquery', '../keys', '../utils'], function ($, KEYS, Utils) {\n function AllowClear() {}\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error('Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.');\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear', function (evt) {\n self._handleClear(evt);\n });\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected\n\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n var data = Utils.GetData($clear[0], 'data');\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n }; // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n\n this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out.\n\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n this.$selection.find('.select2-selection__clear').remove();\n this.$selection[0].classList.remove('select2-selection--clearable');\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 || data.length === 0) {\n return;\n }\n\n var selectionId = this.$selection.find('.select2-selection__rendered').attr('id');\n var removeAll = this.options.get('translations').get('removeAllItems');\n var $remove = $('<button type=\"button\" class=\"select2-selection__clear\" tabindex=\"-1\">' + '<span aria-hidden=\"true\">×</span>' + '</button>');\n $remove.attr('title', removeAll());\n $remove.attr('aria-label', removeAll());\n $remove.attr('aria-describedby', selectionId);\n Utils.StoreData($remove[0], 'data', data);\n this.$selection.prepend($remove);\n this.$selection[0].classList.add('select2-selection--clearable');\n };\n\n return AllowClear;\n });\n S2.define('select2/selection/search', ['jquery', '../utils', '../keys'], function ($, Utils, KEYS) {\n function Search(decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var searchLabel = this.options.get('translations').get('search');\n var $search = $('<span class=\"select2-search select2-search--inline\">' + '<textarea class=\"select2-search__field\"' + ' type=\"search\" tabindex=\"-1\"' + ' autocorrect=\"off\" autocapitalize=\"none\"' + ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" >' + '</textarea>' + '</span>');\n this.$searchContainer = $search;\n this.$search = $search.find('textarea');\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n\n $rendered.append(this.$searchContainer);\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n var selectionId = container.id + '-container';\n decorated.call(this, container, $container);\n self.$search.attr('aria-describedby', selectionId);\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n container.on('close', function () {\n self.$search.val('');\n self.resizeSearch();\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n self.trigger('keypress', evt);\n self._keyUpPrevented = evt.isDefaultPrevented();\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$selection.find('.select2-selection__choice').last();\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n self.searchRemoveChoice(item);\n evt.preventDefault();\n }\n }\n });\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n }); // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11; // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n\n this.$selection.on('input.searchcheck', '.select2-search--inline', function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n } // Unbind the duplicated `keyup` event\n\n\n self.$selection.off('keyup.search');\n });\n this.$selection.on('keyup.search input.search', '.select2-search--inline', function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which; // We can freely ignore events from modifier keys\n\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n } // Tabbing will be handled during the `keydown` phase\n\n\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n });\n };\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n\n\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n this.$search.attr('placeholder', '');\n decorated.call(this, data);\n this.resizeSearch();\n\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n var width = '100%';\n\n if (this.$search.attr('placeholder') === '') {\n var minimumWidth = this.$search.val().length + 1;\n width = minimumWidth * 0.75 + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n });\n S2.define('select2/selection/selectionCss', ['../utils'], function (Utils) {\n function SelectionCSS() {}\n\n SelectionCSS.prototype.render = function (decorated) {\n var $selection = decorated.call(this);\n var selectionCssClass = this.options.get('selectionCssClass') || '';\n\n if (selectionCssClass.indexOf(':all:') !== -1) {\n selectionCssClass = selectionCssClass.replace(':all:', '');\n Utils.copyNonInternalCssClasses($selection[0], this.$element[0]);\n }\n\n $selection.addClass(selectionCssClass);\n return $selection;\n };\n\n return SelectionCSS;\n });\n S2.define('select2/selection/eventRelay', ['jquery'], function ($) {\n function EventRelay() {}\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = ['open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting', 'clear', 'clearing'];\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting', 'clearing'];\n decorated.call(this, container, $container);\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if (relayEvents.indexOf(name) === -1) {\n return;\n } // The parameters should always be an object\n\n\n params = params || {}; // Generate the jQuery event for the Select2 event\n\n var evt = $.Event('select2:' + name, {\n params: params\n });\n self.$element.trigger(evt); // Only handle preventable events if it was one\n\n if (preventableEvents.indexOf(name) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n });\n S2.define('select2/translation', ['jquery', 'require'], function ($, require) {\n function Translation(dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n }; // Static functions\n\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n });\n S2.define('select2/diacritics', [], function () {\n var diacritics = {\n \"\\u24B6\": 'A',\n \"\\uFF21\": 'A',\n \"\\xC0\": 'A',\n \"\\xC1\": 'A',\n \"\\xC2\": 'A',\n \"\\u1EA6\": 'A',\n \"\\u1EA4\": 'A',\n \"\\u1EAA\": 'A',\n \"\\u1EA8\": 'A',\n \"\\xC3\": 'A',\n \"\\u0100\": 'A',\n \"\\u0102\": 'A',\n \"\\u1EB0\": 'A',\n \"\\u1EAE\": 'A',\n \"\\u1EB4\": 'A',\n \"\\u1EB2\": 'A',\n \"\\u0226\": 'A',\n \"\\u01E0\": 'A',\n \"\\xC4\": 'A',\n \"\\u01DE\": 'A',\n \"\\u1EA2\": 'A',\n \"\\xC5\": 'A',\n \"\\u01FA\": 'A',\n \"\\u01CD\": 'A',\n \"\\u0200\": 'A',\n \"\\u0202\": 'A',\n \"\\u1EA0\": 'A',\n \"\\u1EAC\": 'A',\n \"\\u1EB6\": 'A',\n \"\\u1E00\": 'A',\n \"\\u0104\": 'A',\n \"\\u023A\": 'A',\n \"\\u2C6F\": 'A',\n \"\\uA732\": 'AA',\n \"\\xC6\": 'AE',\n \"\\u01FC\": 'AE',\n \"\\u01E2\": 'AE',\n \"\\uA734\": 'AO',\n \"\\uA736\": 'AU',\n \"\\uA738\": 'AV',\n \"\\uA73A\": 'AV',\n \"\\uA73C\": 'AY',\n \"\\u24B7\": 'B',\n \"\\uFF22\": 'B',\n \"\\u1E02\": 'B',\n \"\\u1E04\": 'B',\n \"\\u1E06\": 'B',\n \"\\u0243\": 'B',\n \"\\u0182\": 'B',\n \"\\u0181\": 'B',\n \"\\u24B8\": 'C',\n \"\\uFF23\": 'C',\n \"\\u0106\": 'C',\n \"\\u0108\": 'C',\n \"\\u010A\": 'C',\n \"\\u010C\": 'C',\n \"\\xC7\": 'C',\n \"\\u1E08\": 'C',\n \"\\u0187\": 'C',\n \"\\u023B\": 'C',\n \"\\uA73E\": 'C',\n \"\\u24B9\": 'D',\n \"\\uFF24\": 'D',\n \"\\u1E0A\": 'D',\n \"\\u010E\": 'D',\n \"\\u1E0C\": 'D',\n \"\\u1E10\": 'D',\n \"\\u1E12\": 'D',\n \"\\u1E0E\": 'D',\n \"\\u0110\": 'D',\n \"\\u018B\": 'D',\n \"\\u018A\": 'D',\n \"\\u0189\": 'D',\n \"\\uA779\": 'D',\n \"\\u01F1\": 'DZ',\n \"\\u01C4\": 'DZ',\n \"\\u01F2\": 'Dz',\n \"\\u01C5\": 'Dz',\n \"\\u24BA\": 'E',\n \"\\uFF25\": 'E',\n \"\\xC8\": 'E',\n \"\\xC9\": 'E',\n \"\\xCA\": 'E',\n \"\\u1EC0\": 'E',\n \"\\u1EBE\": 'E',\n \"\\u1EC4\": 'E',\n \"\\u1EC2\": 'E',\n \"\\u1EBC\": 'E',\n \"\\u0112\": 'E',\n \"\\u1E14\": 'E',\n \"\\u1E16\": 'E',\n \"\\u0114\": 'E',\n \"\\u0116\": 'E',\n \"\\xCB\": 'E',\n \"\\u1EBA\": 'E',\n \"\\u011A\": 'E',\n \"\\u0204\": 'E',\n \"\\u0206\": 'E',\n \"\\u1EB8\": 'E',\n \"\\u1EC6\": 'E',\n \"\\u0228\": 'E',\n \"\\u1E1C\": 'E',\n \"\\u0118\": 'E',\n \"\\u1E18\": 'E',\n \"\\u1E1A\": 'E',\n \"\\u0190\": 'E',\n \"\\u018E\": 'E',\n \"\\u24BB\": 'F',\n \"\\uFF26\": 'F',\n \"\\u1E1E\": 'F',\n \"\\u0191\": 'F',\n \"\\uA77B\": 'F',\n \"\\u24BC\": 'G',\n \"\\uFF27\": 'G',\n \"\\u01F4\": 'G',\n \"\\u011C\": 'G',\n \"\\u1E20\": 'G',\n \"\\u011E\": 'G',\n \"\\u0120\": 'G',\n \"\\u01E6\": 'G',\n \"\\u0122\": 'G',\n \"\\u01E4\": 'G',\n \"\\u0193\": 'G',\n \"\\uA7A0\": 'G',\n \"\\uA77D\": 'G',\n \"\\uA77E\": 'G',\n \"\\u24BD\": 'H',\n \"\\uFF28\": 'H',\n \"\\u0124\": 'H',\n \"\\u1E22\": 'H',\n \"\\u1E26\": 'H',\n \"\\u021E\": 'H',\n \"\\u1E24\": 'H',\n \"\\u1E28\": 'H',\n \"\\u1E2A\": 'H',\n \"\\u0126\": 'H',\n \"\\u2C67\": 'H',\n \"\\u2C75\": 'H',\n \"\\uA78D\": 'H',\n \"\\u24BE\": 'I',\n \"\\uFF29\": 'I',\n \"\\xCC\": 'I',\n \"\\xCD\": 'I',\n \"\\xCE\": 'I',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u0130\": 'I',\n \"\\xCF\": 'I',\n \"\\u1E2E\": 'I',\n \"\\u1EC8\": 'I',\n \"\\u01CF\": 'I',\n \"\\u0208\": 'I',\n \"\\u020A\": 'I',\n \"\\u1ECA\": 'I',\n \"\\u012E\": 'I',\n \"\\u1E2C\": 'I',\n \"\\u0197\": 'I',\n \"\\u24BF\": 'J',\n \"\\uFF2A\": 'J',\n \"\\u0134\": 'J',\n \"\\u0248\": 'J',\n \"\\u24C0\": 'K',\n \"\\uFF2B\": 'K',\n \"\\u1E30\": 'K',\n \"\\u01E8\": 'K',\n \"\\u1E32\": 'K',\n \"\\u0136\": 'K',\n \"\\u1E34\": 'K',\n \"\\u0198\": 'K',\n \"\\u2C69\": 'K',\n \"\\uA740\": 'K',\n \"\\uA742\": 'K',\n \"\\uA744\": 'K',\n \"\\uA7A2\": 'K',\n \"\\u24C1\": 'L',\n \"\\uFF2C\": 'L',\n \"\\u013F\": 'L',\n \"\\u0139\": 'L',\n \"\\u013D\": 'L',\n \"\\u1E36\": 'L',\n \"\\u1E38\": 'L',\n \"\\u013B\": 'L',\n \"\\u1E3C\": 'L',\n \"\\u1E3A\": 'L',\n \"\\u0141\": 'L',\n \"\\u023D\": 'L',\n \"\\u2C62\": 'L',\n \"\\u2C60\": 'L',\n \"\\uA748\": 'L',\n \"\\uA746\": 'L',\n \"\\uA780\": 'L',\n \"\\u01C7\": 'LJ',\n \"\\u01C8\": 'Lj',\n \"\\u24C2\": 'M',\n \"\\uFF2D\": 'M',\n \"\\u1E3E\": 'M',\n \"\\u1E40\": 'M',\n \"\\u1E42\": 'M',\n \"\\u2C6E\": 'M',\n \"\\u019C\": 'M',\n \"\\u24C3\": 'N',\n \"\\uFF2E\": 'N',\n \"\\u01F8\": 'N',\n \"\\u0143\": 'N',\n \"\\xD1\": 'N',\n \"\\u1E44\": 'N',\n \"\\u0147\": 'N',\n \"\\u1E46\": 'N',\n \"\\u0145\": 'N',\n \"\\u1E4A\": 'N',\n \"\\u1E48\": 'N',\n \"\\u0220\": 'N',\n \"\\u019D\": 'N',\n \"\\uA790\": 'N',\n \"\\uA7A4\": 'N',\n \"\\u01CA\": 'NJ',\n \"\\u01CB\": 'Nj',\n \"\\u24C4\": 'O',\n \"\\uFF2F\": 'O',\n \"\\xD2\": 'O',\n \"\\xD3\": 'O',\n \"\\xD4\": 'O',\n \"\\u1ED2\": 'O',\n \"\\u1ED0\": 'O',\n \"\\u1ED6\": 'O',\n \"\\u1ED4\": 'O',\n \"\\xD5\": 'O',\n \"\\u1E4C\": 'O',\n \"\\u022C\": 'O',\n \"\\u1E4E\": 'O',\n \"\\u014C\": 'O',\n \"\\u1E50\": 'O',\n \"\\u1E52\": 'O',\n \"\\u014E\": 'O',\n \"\\u022E\": 'O',\n \"\\u0230\": 'O',\n \"\\xD6\": 'O',\n \"\\u022A\": 'O',\n \"\\u1ECE\": 'O',\n \"\\u0150\": 'O',\n \"\\u01D1\": 'O',\n \"\\u020C\": 'O',\n \"\\u020E\": 'O',\n \"\\u01A0\": 'O',\n \"\\u1EDC\": 'O',\n \"\\u1EDA\": 'O',\n \"\\u1EE0\": 'O',\n \"\\u1EDE\": 'O',\n \"\\u1EE2\": 'O',\n \"\\u1ECC\": 'O',\n \"\\u1ED8\": 'O',\n \"\\u01EA\": 'O',\n \"\\u01EC\": 'O',\n \"\\xD8\": 'O',\n \"\\u01FE\": 'O',\n \"\\u0186\": 'O',\n \"\\u019F\": 'O',\n \"\\uA74A\": 'O',\n \"\\uA74C\": 'O',\n \"\\u0152\": 'OE',\n \"\\u01A2\": 'OI',\n \"\\uA74E\": 'OO',\n \"\\u0222\": 'OU',\n \"\\u24C5\": 'P',\n \"\\uFF30\": 'P',\n \"\\u1E54\": 'P',\n \"\\u1E56\": 'P',\n \"\\u01A4\": 'P',\n \"\\u2C63\": 'P',\n \"\\uA750\": 'P',\n \"\\uA752\": 'P',\n \"\\uA754\": 'P',\n \"\\u24C6\": 'Q',\n \"\\uFF31\": 'Q',\n \"\\uA756\": 'Q',\n \"\\uA758\": 'Q',\n \"\\u024A\": 'Q',\n \"\\u24C7\": 'R',\n \"\\uFF32\": 'R',\n \"\\u0154\": 'R',\n \"\\u1E58\": 'R',\n \"\\u0158\": 'R',\n \"\\u0210\": 'R',\n \"\\u0212\": 'R',\n \"\\u1E5A\": 'R',\n \"\\u1E5C\": 'R',\n \"\\u0156\": 'R',\n \"\\u1E5E\": 'R',\n \"\\u024C\": 'R',\n \"\\u2C64\": 'R',\n \"\\uA75A\": 'R',\n \"\\uA7A6\": 'R',\n \"\\uA782\": 'R',\n \"\\u24C8\": 'S',\n \"\\uFF33\": 'S',\n \"\\u1E9E\": 'S',\n \"\\u015A\": 'S',\n \"\\u1E64\": 'S',\n \"\\u015C\": 'S',\n \"\\u1E60\": 'S',\n \"\\u0160\": 'S',\n \"\\u1E66\": 'S',\n \"\\u1E62\": 'S',\n \"\\u1E68\": 'S',\n \"\\u0218\": 'S',\n \"\\u015E\": 'S',\n \"\\u2C7E\": 'S',\n \"\\uA7A8\": 'S',\n \"\\uA784\": 'S',\n \"\\u24C9\": 'T',\n \"\\uFF34\": 'T',\n \"\\u1E6A\": 'T',\n \"\\u0164\": 'T',\n \"\\u1E6C\": 'T',\n \"\\u021A\": 'T',\n \"\\u0162\": 'T',\n \"\\u1E70\": 'T',\n \"\\u1E6E\": 'T',\n \"\\u0166\": 'T',\n \"\\u01AC\": 'T',\n \"\\u01AE\": 'T',\n \"\\u023E\": 'T',\n \"\\uA786\": 'T',\n \"\\uA728\": 'TZ',\n \"\\u24CA\": 'U',\n \"\\uFF35\": 'U',\n \"\\xD9\": 'U',\n \"\\xDA\": 'U',\n \"\\xDB\": 'U',\n \"\\u0168\": 'U',\n \"\\u1E78\": 'U',\n \"\\u016A\": 'U',\n \"\\u1E7A\": 'U',\n \"\\u016C\": 'U',\n \"\\xDC\": 'U',\n \"\\u01DB\": 'U',\n \"\\u01D7\": 'U',\n \"\\u01D5\": 'U',\n \"\\u01D9\": 'U',\n \"\\u1EE6\": 'U',\n \"\\u016E\": 'U',\n \"\\u0170\": 'U',\n \"\\u01D3\": 'U',\n \"\\u0214\": 'U',\n \"\\u0216\": 'U',\n \"\\u01AF\": 'U',\n \"\\u1EEA\": 'U',\n \"\\u1EE8\": 'U',\n \"\\u1EEE\": 'U',\n \"\\u1EEC\": 'U',\n \"\\u1EF0\": 'U',\n \"\\u1EE4\": 'U',\n \"\\u1E72\": 'U',\n \"\\u0172\": 'U',\n \"\\u1E76\": 'U',\n \"\\u1E74\": 'U',\n \"\\u0244\": 'U',\n \"\\u24CB\": 'V',\n \"\\uFF36\": 'V',\n \"\\u1E7C\": 'V',\n \"\\u1E7E\": 'V',\n \"\\u01B2\": 'V',\n \"\\uA75E\": 'V',\n \"\\u0245\": 'V',\n \"\\uA760\": 'VY',\n \"\\u24CC\": 'W',\n \"\\uFF37\": 'W',\n \"\\u1E80\": 'W',\n \"\\u1E82\": 'W',\n \"\\u0174\": 'W',\n \"\\u1E86\": 'W',\n \"\\u1E84\": 'W',\n \"\\u1E88\": 'W',\n \"\\u2C72\": 'W',\n \"\\u24CD\": 'X',\n \"\\uFF38\": 'X',\n \"\\u1E8A\": 'X',\n \"\\u1E8C\": 'X',\n \"\\u24CE\": 'Y',\n \"\\uFF39\": 'Y',\n \"\\u1EF2\": 'Y',\n \"\\xDD\": 'Y',\n \"\\u0176\": 'Y',\n \"\\u1EF8\": 'Y',\n \"\\u0232\": 'Y',\n \"\\u1E8E\": 'Y',\n \"\\u0178\": 'Y',\n \"\\u1EF6\": 'Y',\n \"\\u1EF4\": 'Y',\n \"\\u01B3\": 'Y',\n \"\\u024E\": 'Y',\n \"\\u1EFE\": 'Y',\n \"\\u24CF\": 'Z',\n \"\\uFF3A\": 'Z',\n \"\\u0179\": 'Z',\n \"\\u1E90\": 'Z',\n \"\\u017B\": 'Z',\n \"\\u017D\": 'Z',\n \"\\u1E92\": 'Z',\n \"\\u1E94\": 'Z',\n \"\\u01B5\": 'Z',\n \"\\u0224\": 'Z',\n \"\\u2C7F\": 'Z',\n \"\\u2C6B\": 'Z',\n \"\\uA762\": 'Z',\n \"\\u24D0\": 'a',\n \"\\uFF41\": 'a',\n \"\\u1E9A\": 'a',\n \"\\xE0\": 'a',\n \"\\xE1\": 'a',\n \"\\xE2\": 'a',\n \"\\u1EA7\": 'a',\n \"\\u1EA5\": 'a',\n \"\\u1EAB\": 'a',\n \"\\u1EA9\": 'a',\n \"\\xE3\": 'a',\n \"\\u0101\": 'a',\n \"\\u0103\": 'a',\n \"\\u1EB1\": 'a',\n \"\\u1EAF\": 'a',\n \"\\u1EB5\": 'a',\n \"\\u1EB3\": 'a',\n \"\\u0227\": 'a',\n \"\\u01E1\": 'a',\n \"\\xE4\": 'a',\n \"\\u01DF\": 'a',\n \"\\u1EA3\": 'a',\n \"\\xE5\": 'a',\n \"\\u01FB\": 'a',\n \"\\u01CE\": 'a',\n \"\\u0201\": 'a',\n \"\\u0203\": 'a',\n \"\\u1EA1\": 'a',\n \"\\u1EAD\": 'a',\n \"\\u1EB7\": 'a',\n \"\\u1E01\": 'a',\n \"\\u0105\": 'a',\n \"\\u2C65\": 'a',\n \"\\u0250\": 'a',\n \"\\uA733\": 'aa',\n \"\\xE6\": 'ae',\n \"\\u01FD\": 'ae',\n \"\\u01E3\": 'ae',\n \"\\uA735\": 'ao',\n \"\\uA737\": 'au',\n \"\\uA739\": 'av',\n \"\\uA73B\": 'av',\n \"\\uA73D\": 'ay',\n \"\\u24D1\": 'b',\n \"\\uFF42\": 'b',\n \"\\u1E03\": 'b',\n \"\\u1E05\": 'b',\n \"\\u1E07\": 'b',\n \"\\u0180\": 'b',\n \"\\u0183\": 'b',\n \"\\u0253\": 'b',\n \"\\u24D2\": 'c',\n \"\\uFF43\": 'c',\n \"\\u0107\": 'c',\n \"\\u0109\": 'c',\n \"\\u010B\": 'c',\n \"\\u010D\": 'c',\n \"\\xE7\": 'c',\n \"\\u1E09\": 'c',\n \"\\u0188\": 'c',\n \"\\u023C\": 'c',\n \"\\uA73F\": 'c',\n \"\\u2184\": 'c',\n \"\\u24D3\": 'd',\n \"\\uFF44\": 'd',\n \"\\u1E0B\": 'd',\n \"\\u010F\": 'd',\n \"\\u1E0D\": 'd',\n \"\\u1E11\": 'd',\n \"\\u1E13\": 'd',\n \"\\u1E0F\": 'd',\n \"\\u0111\": 'd',\n \"\\u018C\": 'd',\n \"\\u0256\": 'd',\n \"\\u0257\": 'd',\n \"\\uA77A\": 'd',\n \"\\u01F3\": 'dz',\n \"\\u01C6\": 'dz',\n \"\\u24D4\": 'e',\n \"\\uFF45\": 'e',\n \"\\xE8\": 'e',\n \"\\xE9\": 'e',\n \"\\xEA\": 'e',\n \"\\u1EC1\": 'e',\n \"\\u1EBF\": 'e',\n \"\\u1EC5\": 'e',\n \"\\u1EC3\": 'e',\n \"\\u1EBD\": 'e',\n \"\\u0113\": 'e',\n \"\\u1E15\": 'e',\n \"\\u1E17\": 'e',\n \"\\u0115\": 'e',\n \"\\u0117\": 'e',\n \"\\xEB\": 'e',\n \"\\u1EBB\": 'e',\n \"\\u011B\": 'e',\n \"\\u0205\": 'e',\n \"\\u0207\": 'e',\n \"\\u1EB9\": 'e',\n \"\\u1EC7\": 'e',\n \"\\u0229\": 'e',\n \"\\u1E1D\": 'e',\n \"\\u0119\": 'e',\n \"\\u1E19\": 'e',\n \"\\u1E1B\": 'e',\n \"\\u0247\": 'e',\n \"\\u025B\": 'e',\n \"\\u01DD\": 'e',\n \"\\u24D5\": 'f',\n \"\\uFF46\": 'f',\n \"\\u1E1F\": 'f',\n \"\\u0192\": 'f',\n \"\\uA77C\": 'f',\n \"\\u24D6\": 'g',\n \"\\uFF47\": 'g',\n \"\\u01F5\": 'g',\n \"\\u011D\": 'g',\n \"\\u1E21\": 'g',\n \"\\u011F\": 'g',\n \"\\u0121\": 'g',\n \"\\u01E7\": 'g',\n \"\\u0123\": 'g',\n \"\\u01E5\": 'g',\n \"\\u0260\": 'g',\n \"\\uA7A1\": 'g',\n \"\\u1D79\": 'g',\n \"\\uA77F\": 'g',\n \"\\u24D7\": 'h',\n \"\\uFF48\": 'h',\n \"\\u0125\": 'h',\n \"\\u1E23\": 'h',\n \"\\u1E27\": 'h',\n \"\\u021F\": 'h',\n \"\\u1E25\": 'h',\n \"\\u1E29\": 'h',\n \"\\u1E2B\": 'h',\n \"\\u1E96\": 'h',\n \"\\u0127\": 'h',\n \"\\u2C68\": 'h',\n \"\\u2C76\": 'h',\n \"\\u0265\": 'h',\n \"\\u0195\": 'hv',\n \"\\u24D8\": 'i',\n \"\\uFF49\": 'i',\n \"\\xEC\": 'i',\n \"\\xED\": 'i',\n \"\\xEE\": 'i',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\xEF\": 'i',\n \"\\u1E2F\": 'i',\n \"\\u1EC9\": 'i',\n \"\\u01D0\": 'i',\n \"\\u0209\": 'i',\n \"\\u020B\": 'i',\n \"\\u1ECB\": 'i',\n \"\\u012F\": 'i',\n \"\\u1E2D\": 'i',\n \"\\u0268\": 'i',\n \"\\u0131\": 'i',\n \"\\u24D9\": 'j',\n \"\\uFF4A\": 'j',\n \"\\u0135\": 'j',\n \"\\u01F0\": 'j',\n \"\\u0249\": 'j',\n \"\\u24DA\": 'k',\n \"\\uFF4B\": 'k',\n \"\\u1E31\": 'k',\n \"\\u01E9\": 'k',\n \"\\u1E33\": 'k',\n \"\\u0137\": 'k',\n \"\\u1E35\": 'k',\n \"\\u0199\": 'k',\n \"\\u2C6A\": 'k',\n \"\\uA741\": 'k',\n \"\\uA743\": 'k',\n \"\\uA745\": 'k',\n \"\\uA7A3\": 'k',\n \"\\u24DB\": 'l',\n \"\\uFF4C\": 'l',\n \"\\u0140\": 'l',\n \"\\u013A\": 'l',\n \"\\u013E\": 'l',\n \"\\u1E37\": 'l',\n \"\\u1E39\": 'l',\n \"\\u013C\": 'l',\n \"\\u1E3D\": 'l',\n \"\\u1E3B\": 'l',\n \"\\u017F\": 'l',\n \"\\u0142\": 'l',\n \"\\u019A\": 'l',\n \"\\u026B\": 'l',\n \"\\u2C61\": 'l',\n \"\\uA749\": 'l',\n \"\\uA781\": 'l',\n \"\\uA747\": 'l',\n \"\\u01C9\": 'lj',\n \"\\u24DC\": 'm',\n \"\\uFF4D\": 'm',\n \"\\u1E3F\": 'm',\n \"\\u1E41\": 'm',\n \"\\u1E43\": 'm',\n \"\\u0271\": 'm',\n \"\\u026F\": 'm',\n \"\\u24DD\": 'n',\n \"\\uFF4E\": 'n',\n \"\\u01F9\": 'n',\n \"\\u0144\": 'n',\n \"\\xF1\": 'n',\n \"\\u1E45\": 'n',\n \"\\u0148\": 'n',\n \"\\u1E47\": 'n',\n \"\\u0146\": 'n',\n \"\\u1E4B\": 'n',\n \"\\u1E49\": 'n',\n \"\\u019E\": 'n',\n \"\\u0272\": 'n',\n \"\\u0149\": 'n',\n \"\\uA791\": 'n',\n \"\\uA7A5\": 'n',\n \"\\u01CC\": 'nj',\n \"\\u24DE\": 'o',\n \"\\uFF4F\": 'o',\n \"\\xF2\": 'o',\n \"\\xF3\": 'o',\n \"\\xF4\": 'o',\n \"\\u1ED3\": 'o',\n \"\\u1ED1\": 'o',\n \"\\u1ED7\": 'o',\n \"\\u1ED5\": 'o',\n \"\\xF5\": 'o',\n \"\\u1E4D\": 'o',\n \"\\u022D\": 'o',\n \"\\u1E4F\": 'o',\n \"\\u014D\": 'o',\n \"\\u1E51\": 'o',\n \"\\u1E53\": 'o',\n \"\\u014F\": 'o',\n \"\\u022F\": 'o',\n \"\\u0231\": 'o',\n \"\\xF6\": 'o',\n \"\\u022B\": 'o',\n \"\\u1ECF\": 'o',\n \"\\u0151\": 'o',\n \"\\u01D2\": 'o',\n \"\\u020D\": 'o',\n \"\\u020F\": 'o',\n \"\\u01A1\": 'o',\n \"\\u1EDD\": 'o',\n \"\\u1EDB\": 'o',\n \"\\u1EE1\": 'o',\n \"\\u1EDF\": 'o',\n \"\\u1EE3\": 'o',\n \"\\u1ECD\": 'o',\n \"\\u1ED9\": 'o',\n \"\\u01EB\": 'o',\n \"\\u01ED\": 'o',\n \"\\xF8\": 'o',\n \"\\u01FF\": 'o',\n \"\\u0254\": 'o',\n \"\\uA74B\": 'o',\n \"\\uA74D\": 'o',\n \"\\u0275\": 'o',\n \"\\u0153\": 'oe',\n \"\\u01A3\": 'oi',\n \"\\u0223\": 'ou',\n \"\\uA74F\": 'oo',\n \"\\u24DF\": 'p',\n \"\\uFF50\": 'p',\n \"\\u1E55\": 'p',\n \"\\u1E57\": 'p',\n \"\\u01A5\": 'p',\n \"\\u1D7D\": 'p',\n \"\\uA751\": 'p',\n \"\\uA753\": 'p',\n \"\\uA755\": 'p',\n \"\\u24E0\": 'q',\n \"\\uFF51\": 'q',\n \"\\u024B\": 'q',\n \"\\uA757\": 'q',\n \"\\uA759\": 'q',\n \"\\u24E1\": 'r',\n \"\\uFF52\": 'r',\n \"\\u0155\": 'r',\n \"\\u1E59\": 'r',\n \"\\u0159\": 'r',\n \"\\u0211\": 'r',\n \"\\u0213\": 'r',\n \"\\u1E5B\": 'r',\n \"\\u1E5D\": 'r',\n \"\\u0157\": 'r',\n \"\\u1E5F\": 'r',\n \"\\u024D\": 'r',\n \"\\u027D\": 'r',\n \"\\uA75B\": 'r',\n \"\\uA7A7\": 'r',\n \"\\uA783\": 'r',\n \"\\u24E2\": 's',\n \"\\uFF53\": 's',\n \"\\xDF\": 's',\n \"\\u015B\": 's',\n \"\\u1E65\": 's',\n \"\\u015D\": 's',\n \"\\u1E61\": 's',\n \"\\u0161\": 's',\n \"\\u1E67\": 's',\n \"\\u1E63\": 's',\n \"\\u1E69\": 's',\n \"\\u0219\": 's',\n \"\\u015F\": 's',\n \"\\u023F\": 's',\n \"\\uA7A9\": 's',\n \"\\uA785\": 's',\n \"\\u1E9B\": 's',\n \"\\u24E3\": 't',\n \"\\uFF54\": 't',\n \"\\u1E6B\": 't',\n \"\\u1E97\": 't',\n \"\\u0165\": 't',\n \"\\u1E6D\": 't',\n \"\\u021B\": 't',\n \"\\u0163\": 't',\n \"\\u1E71\": 't',\n \"\\u1E6F\": 't',\n \"\\u0167\": 't',\n \"\\u01AD\": 't',\n \"\\u0288\": 't',\n \"\\u2C66\": 't',\n \"\\uA787\": 't',\n \"\\uA729\": 'tz',\n \"\\u24E4\": 'u',\n \"\\uFF55\": 'u',\n \"\\xF9\": 'u',\n \"\\xFA\": 'u',\n \"\\xFB\": 'u',\n \"\\u0169\": 'u',\n \"\\u1E79\": 'u',\n \"\\u016B\": 'u',\n \"\\u1E7B\": 'u',\n \"\\u016D\": 'u',\n \"\\xFC\": 'u',\n \"\\u01DC\": 'u',\n \"\\u01D8\": 'u',\n \"\\u01D6\": 'u',\n \"\\u01DA\": 'u',\n \"\\u1EE7\": 'u',\n \"\\u016F\": 'u',\n \"\\u0171\": 'u',\n \"\\u01D4\": 'u',\n \"\\u0215\": 'u',\n \"\\u0217\": 'u',\n \"\\u01B0\": 'u',\n \"\\u1EEB\": 'u',\n \"\\u1EE9\": 'u',\n \"\\u1EEF\": 'u',\n \"\\u1EED\": 'u',\n \"\\u1EF1\": 'u',\n \"\\u1EE5\": 'u',\n \"\\u1E73\": 'u',\n \"\\u0173\": 'u',\n \"\\u1E77\": 'u',\n \"\\u1E75\": 'u',\n \"\\u0289\": 'u',\n \"\\u24E5\": 'v',\n \"\\uFF56\": 'v',\n \"\\u1E7D\": 'v',\n \"\\u1E7F\": 'v',\n \"\\u028B\": 'v',\n \"\\uA75F\": 'v',\n \"\\u028C\": 'v',\n \"\\uA761\": 'vy',\n \"\\u24E6\": 'w',\n \"\\uFF57\": 'w',\n \"\\u1E81\": 'w',\n \"\\u1E83\": 'w',\n \"\\u0175\": 'w',\n \"\\u1E87\": 'w',\n \"\\u1E85\": 'w',\n \"\\u1E98\": 'w',\n \"\\u1E89\": 'w',\n \"\\u2C73\": 'w',\n \"\\u24E7\": 'x',\n \"\\uFF58\": 'x',\n \"\\u1E8B\": 'x',\n \"\\u1E8D\": 'x',\n \"\\u24E8\": 'y',\n \"\\uFF59\": 'y',\n \"\\u1EF3\": 'y',\n \"\\xFD\": 'y',\n \"\\u0177\": 'y',\n \"\\u1EF9\": 'y',\n \"\\u0233\": 'y',\n \"\\u1E8F\": 'y',\n \"\\xFF\": 'y',\n \"\\u1EF7\": 'y',\n \"\\u1E99\": 'y',\n \"\\u1EF5\": 'y',\n \"\\u01B4\": 'y',\n \"\\u024F\": 'y',\n \"\\u1EFF\": 'y',\n \"\\u24E9\": 'z',\n \"\\uFF5A\": 'z',\n \"\\u017A\": 'z',\n \"\\u1E91\": 'z',\n \"\\u017C\": 'z',\n \"\\u017E\": 'z',\n \"\\u1E93\": 'z',\n \"\\u1E95\": 'z',\n \"\\u01B6\": 'z',\n \"\\u0225\": 'z',\n \"\\u0240\": 'z',\n \"\\u2C6C\": 'z',\n \"\\uA763\": 'z',\n \"\\u0386\": \"\\u0391\",\n \"\\u0388\": \"\\u0395\",\n \"\\u0389\": \"\\u0397\",\n \"\\u038A\": \"\\u0399\",\n \"\\u03AA\": \"\\u0399\",\n \"\\u038C\": \"\\u039F\",\n \"\\u038E\": \"\\u03A5\",\n \"\\u03AB\": \"\\u03A5\",\n \"\\u038F\": \"\\u03A9\",\n \"\\u03AC\": \"\\u03B1\",\n \"\\u03AD\": \"\\u03B5\",\n \"\\u03AE\": \"\\u03B7\",\n \"\\u03AF\": \"\\u03B9\",\n \"\\u03CA\": \"\\u03B9\",\n \"\\u0390\": \"\\u03B9\",\n \"\\u03CC\": \"\\u03BF\",\n \"\\u03CD\": \"\\u03C5\",\n \"\\u03CB\": \"\\u03C5\",\n \"\\u03B0\": \"\\u03C5\",\n \"\\u03CE\": \"\\u03C9\",\n \"\\u03C2\": \"\\u03C3\",\n \"\\u2019\": '\\''\n };\n return diacritics;\n });\n S2.define('select2/data/base', ['../utils'], function (Utils) {\n function BaseAdapter($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {// Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {// Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n\n return id;\n };\n\n return BaseAdapter;\n });\n S2.define('select2/data/select', ['./base', '../utils', 'jquery'], function (BaseAdapter, Utils, $) {\n function SelectAdapter($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var self = this;\n var data = Array.prototype.map.call(this.$element[0].querySelectorAll(':checked'), function (selectedElement) {\n return self.item($(selectedElement));\n });\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n data.selected = true; // If data.element is a DOM node, use it instead\n\n if (data.element != null && data.element.tagName.toLowerCase() === 'option') {\n data.element.selected = true;\n this.$element.trigger('input').trigger('change');\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if (val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if (data.element != null && data.element.tagName.toLowerCase() === 'option') {\n data.element.selected = false;\n this.$element.trigger('input').trigger('change');\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && val.indexOf(id) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n this.container = container;\n container.on('select', function (params) {\n self.select(params.data);\n });\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n var $options = this.$element.children();\n $options.each(function () {\n if (this.tagName.toLowerCase() !== 'option' && this.tagName.toLowerCase() !== 'optgroup') {\n return;\n }\n\n var $option = $(this);\n var option = self.item($option);\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n this.$element.append($options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var normalizedData = this._normalizeItem(data);\n\n normalizedData.element = option; // Override the option's data with the combined data\n\n Utils.StoreData(option, 'data', normalizedData);\n return $(option);\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n var option = $option[0];\n\n if (option.tagName.toLowerCase() === 'option') {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if (option.tagName.toLowerCase() === 'optgroup') {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n var child = this.item($child);\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n Utils.StoreData($option[0], 'data', data);\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n return matcher(params, data);\n };\n\n return SelectAdapter;\n });\n S2.define('select2/data/array', ['./select', '../utils', 'jquery'], function (SelectAdapter, Utils, $) {\n function ArrayAdapter($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n var $options = []; // Filter out all items except for the one passed in the argument\n\n function onlyItem(item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]); // Skip items which were pre-loaded, only merge the data\n\n\n if (existingIds.indexOf(item.id) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n var $newOption = this.option(newData);\n $existingOption.replaceWith($newOption);\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n $option.append($children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n });\n S2.define('select2/data/ajax', ['./array', '../utils', 'jquery'], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function data(params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function transport(params, success, failure) {\n var $request = $.ajax(params);\n $request.then(success);\n $request.fail(failure);\n return $request;\n }\n };\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if (typeof this._request.abort === 'function') {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request() {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !Array.isArray(results.results)) {\n console.error('Select2: The AJAX results did not return an array in the ' + '`results` key of the response.');\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request && ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n });\n S2.define('select2/data/tags', ['jquery'], function ($) {\n function Tags(decorated, $element, options) {\n var tags = options.get('tags');\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if (Array.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper(obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n var checkChildren = option.children != null && !wrapper({\n results: option.children\n }, true);\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', 'true');\n self.addOptions([$option]);\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n if (params.term == null) {\n return null;\n }\n\n var term = params.term.trim();\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n });\n S2.define('select2/data/tokenizer', ['jquery'], function ($) {\n function Tokenizer(decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect(data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data); // Check if the data object already exists as a tag\n // Select it if it doesn't\n\n\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n }); // If an existing option wasn't found for it, create the option\n\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n\n self.addOptions([$option]);\n } // Select the item, now that we know there is an option for it\n\n\n select(item);\n }\n\n function select(data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if (separators.indexOf(termChar) === -1) {\n i++;\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data); // Reset the term to not include the tokenized portion\n\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n });\n S2.define('select2/data/minimumInputLength', [], function () {\n function MinimumInputLength(decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n });\n S2.define('select2/data/maximumInputLength', [], function () {\n function MaximumInputLength(decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 && params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n });\n S2.define('select2/data/maximumSelectionLength', [], function () {\n function MaximumSelectionLength(decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected = function (_, successCallback) {\n var self = this;\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n\n if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n });\n S2.define('select2/dropdown', ['jquery', './utils'], function ($, Utils) {\n function Dropdown($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n // Change dropdown classname and markup. @edited\n var $dropdown = $('<span class=\"sui-select-dropdown\">' + '<span class=\"select2-results\"></span>' + '</span>');\n $dropdown.attr('dir', this.options.get('dir'));\n this.$dropdown = $dropdown;\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {// Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {// Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n });\n S2.define('select2/dropdown/search', ['jquery'], function ($) {\n function Search() {}\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var searchLabel = this.options.get('translations').get('search');\n var $search = $('<span class=\"select2-search select2-search--dropdown\">' + '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' + ' autocorrect=\"off\" autocapitalize=\"none\"' + ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" />' + '</span>');\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n this.$search.prop('autocomplete', this.options.get('autocomplete'));\n this.$search.attr('aria-label', searchLabel());\n $rendered.prepend($search);\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n decorated.call(this, container, $container);\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n self._keyUpPrevented = evt.isDefaultPrevented();\n }); // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.val('');\n self.$search.trigger('blur');\n });\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer[0].classList.remove('select2-search--hide');\n } else {\n self.$searchContainer[0].classList.add('select2-search--hide');\n }\n }\n });\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n });\n S2.define('select2/dropdown/hidePlaceholder', [], function () {\n function HidePlaceholder(decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n });\n S2.define('select2/dropdown/infiniteScroll', ['jquery'], function ($) {\n function InfiniteScroll(decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n decorated.call(this, $element, options, dataAdapter);\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(document.documentElement, this.$loadingMore[0]);\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top + this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top + this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n var params = $.extend({}, {\n page: 1\n }, this.lastParams);\n params.page++;\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $('<li ' + 'class=\"select2-results__option select2-results__option--load-more\"' + 'role=\"option\" aria-disabled=\"true\"></li>');\n var message = this.options.get('translations').get('loadingMore');\n $option.html(message(this.lastParams));\n return $option;\n };\n\n return InfiniteScroll;\n });\n S2.define('select2/dropdown/attachBody', ['jquery', '../utils'], function ($, Utils) {\n function AttachBody(decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('open', function () {\n self._showDropdown();\n\n self._attachPositioningHandler(container); // Must bind after the results handlers to ensure correct sizing\n\n\n self._bindContainerResultHandlers(container);\n });\n container.on('close', function () {\n self._hideDropdown();\n\n self._detachPositioningHandler(container);\n });\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class')); // Custom SUIselect dropdown. @edited\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('sui-select-dropdown-container--open');\n $dropdown[0].classList.remove('select2');\n $dropdown[0].classList.add('select2-container--open');\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('<span></span>');\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n this.$dropdownContainer = $container;\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers = function (decorated, container) {\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n container.on('results:all', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('results:append', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('results:message', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('select', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('unselect', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler = function (decorated, container) {\n var self = this;\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler = function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window); // Custom SUIselect dropdown. @edited\n\n var isCurrentlyAbove = this.$dropdown[0].classList.contains('sui-select-dropdown--above');\n var isCurrentlyBelow = this.$dropdown[0].classList.contains('sui-select-dropdown--below');\n var newDirection = null;\n var offset = this.$container.offset();\n offset.bottom = offset.top + this.$container.outerHeight(false);\n var container = {\n height: this.$container.outerHeight(false)\n };\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n var enoughRoomAbove = viewport.top < offset.top - dropdown.height;\n var enoughRoomBelow = viewport.bottom > offset.bottom + dropdown.height;\n var css = {\n left: offset.left,\n top: container.bottom\n }; // Determine what the parent element is to use for calculating the offset\n\n var $offsetParent = this.$dropdownParent; // For statically positioned elements, we need to get the element\n // that is determining the offset\n\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if ($.contains(document.body, $offsetParent[0]) || $offsetParent[0].isConnected) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' || isCurrentlyAbove && newDirection !== 'below') {\n css.top = container.top - parentOffset.top - dropdown.height;\n } // Custom SUIselect dropdown. @edited\n\n\n if (newDirection != null) {\n this.$dropdown[0].classList.remove('sui-select-dropdown--below');\n this.$dropdown[0].classList.remove('sui-select-dropdown--above');\n this.$dropdown[0].classList.add('sui-select-dropdown--' + newDirection);\n this.$container[0].classList.remove('sui-select-container--below');\n this.$container[0].classList.remove('sui-select-container--above');\n this.$container[0].classList.add('sui-select-dropdown-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n\n this._resizeDropdown();\n };\n\n return AttachBody;\n });\n S2.define('select2/dropdown/minimumResultsForSearch', [], function () {\n function countResults(data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch(decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n });\n S2.define('select2/dropdown/selectOnClose', ['../utils'], function (Utils) {\n function SelectOnClose() {}\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or\n // unselect event\n\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results\n\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data'); // Don't re-select already selected resulte\n\n if (data.element != null && data.element.selected || data.element == null && data.selected) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n });\n S2.define('select2/dropdown/closeOnSelect', [], function () {\n function CloseOnSelect() {}\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent; // Don't close if the control key is being held\n\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n });\n S2.define('select2/dropdown/dropdownCss', ['../utils'], function (Utils) {\n function DropdownCSS() {}\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n Utils.copyNonInternalCssClasses($dropdown[0], this.$element[0]);\n }\n\n $dropdown.addClass('sui-select-dropdown'); // FIX: Make sure \"sui-select-dropdown\" main class does not get erased. @edited\n\n $dropdown.addClass(dropdownCssClass);\n return $dropdown;\n };\n\n return DropdownCSS;\n });\n S2.define('select2/dropdown/tagsSearchHighlight', ['../utils'], function (Utils) {\n function TagsSearchHighlight() {}\n\n TagsSearchHighlight.prototype.highlightFirstItem = function (decorated) {\n var $options = this.$results.find('.select2-results__option--selectable' + ':not(.select2-results__option--selected)');\n\n if ($options.length > 0) {\n var $firstOption = $options.first();\n var data = Utils.GetData($firstOption[0], 'data');\n var firstElement = data.element;\n\n if (firstElement && firstElement.getAttribute) {\n if (firstElement.getAttribute('data-select2-tag') === 'true') {\n $firstOption.trigger('mouseenter');\n return;\n }\n }\n }\n\n decorated.call(this);\n };\n\n return TagsSearchHighlight;\n });\n S2.define('select2/i18n/en', [], function () {\n // English\n return {\n errorLoading: function errorLoading() {\n return 'The results could not be loaded.';\n },\n inputTooLong: function inputTooLong(args) {\n var overChars = args.input.length - args.maximum;\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function inputTooShort(args) {\n var remainingChars = args.minimum - args.input.length;\n var message = 'Please enter ' + remainingChars + ' or more characters';\n return message;\n },\n loadingMore: function loadingMore() {\n return 'Loading more results…';\n },\n maximumSelected: function maximumSelected(args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function noResults() {\n return 'No results found';\n },\n searching: function searching() {\n return 'Searching…';\n },\n removeAllItems: function removeAllItems() {\n return 'Remove all items';\n },\n removeItem: function removeItem() {\n return 'Remove item';\n },\n search: function search() {\n return 'Search';\n }\n };\n });\n S2.define('select2/defaults', ['jquery', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/selectionCss', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './dropdown/dropdownCss', './dropdown/tagsSearchHighlight', './i18n/en'], function ($, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, SelectionCSS, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, DropdownCSS, TagsSearchHighlight, EnglishTranslation) {\n function Defaults() {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MinimumInputLength);\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumInputLength);\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumSelectionLength);\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tokenizer);\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, InfiniteScroll);\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, HidePlaceholder);\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, SelectOnClose);\n }\n\n if (options.tags) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, TagsSearchHighlight);\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, MinimumResultsForSearch);\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, CloseOnSelect);\n }\n\n if (options.dropdownCssClass != null) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, DropdownCSS);\n }\n\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, AttachBody);\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n } // Add the placeholder mixin if a placeholder was specified\n\n\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, Placeholder);\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, AllowClear);\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, SelectionSearch);\n }\n\n if (options.selectionCssClass != null) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, SelectionCSS);\n }\n\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, EventRelay);\n } // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n\n\n options.language = this._resolveLanguage(options.language); // Always fall back to English since it will always be complete\n\n options.language.push('en');\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n options.translations = this._processTranslations(options.language, options.debug);\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics(text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher(params, data) {\n // Always return the object if there is nothing to compare\n if (params.term == null || params.term.trim() === '') {\n return data;\n } // Do a recursive check for options with children\n\n\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data); // Check each child of the option\n\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n var matches = matcher(params, child); // If there wasn't a match, remove the object in the array\n\n if (matches == null) {\n match.children.splice(c, 1);\n }\n } // If any children matched, return the new object\n\n\n if (match.children.length > 0) {\n return match;\n } // If there were no matching children, check just the plain object\n\n\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term\n\n if (original.indexOf(term) > -1) {\n return data;\n } // If it doesn't contain the term, don't return anything\n\n\n return null;\n }\n\n this.defaults = {\n amdLanguageBase: './i18n/',\n autocomplete: 'off',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function sorter(data) {\n return data;\n },\n templateResult: function templateResult(result) {\n return result.text;\n },\n templateSelection: function templateSelection(selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n var languages = Array.prototype.concat.call(this._resolveLanguage(elementLanguage), this._resolveLanguage(optionLanguage), this._resolveLanguage(defaultLanguage), this._resolveLanguage(parentLanguage));\n options.language = languages;\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!Array.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn('Select2: The language file for \"' + language + '\" could ' + 'not be automatically loaded. A fallback will be used instead.');\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n return defaults;\n });\n S2.define('select2/options', ['jquery', './defaults', './utils'], function ($, Defaults, Utils) {\n function Options(options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.autocomplete == null && $e.prop('autocomplete')) {\n this.options.autocomplete = $e.prop('autocomplete');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn('Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' + 'removed in future versions of Select2.');\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn('Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.');\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n } // Pre-load all of the attributes which are prefixed with `data-`\n\n\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length); // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n\n var dataValue = Utils.GetData($e[0], dataName); // camelCase the attribute name to match the spec\n\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter); // Store the data attribute contents into the dataset since\n\n dataset[camelDataName] = dataValue;\n }\n } // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n\n\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n } // Prefer our internal data cache if it exists\n\n\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n data = Utils._convertData(data);\n\n for (var key in data) {\n if (excludedData.indexOf(key) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n });\n S2.define('select2/core', ['jquery', './options', './utils', './keys'], function ($, Options, Utils, KEYS) {\n var Select2 = function Select2($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n this.id = this._generateId($element);\n options = options || {};\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this); // Set up the tabindex\n\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1'); // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n this.selection.position(this.$selection, $container);\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n this.dropdown.position(this.$dropdown, $container);\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n this.results.position(this.$results, this.$dropdown); // Bind events\n\n var self = this; // Bind the container to all of the adapters\n\n this._bindAdapters(); // Register any DOM event handlers\n\n\n this._registerDomEvents(); // Register any internal event handlers\n\n\n this._registerDataEvents();\n\n this._registerSelectionEvents();\n\n this._registerDropdownEvents();\n\n this._registerResultsEvents();\n\n this._registerEvents(); // Set the initial state\n\n\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n }); // Hide the original select\n\n $element[0].classList.add('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true'); // Hide the original select with SUI. @edited\n\n $element.addClass('sui-screen-reader-text'); // Synchronize any monitored attributes\n\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this); // Ensure backwards compatibility with $element.data('select2').\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof style !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n this._observer = new window.MutationObserver(function (mutations) {\n self._syncA();\n\n self._syncS(mutations);\n });\n\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n this.selection.on('*', function (name, params) {\n if (nonRelayEvents.indexOf(name) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n this.on('open', function () {\n self.$container[0].classList.add('select2-container--open');\n });\n this.on('close', function () {\n self.$container[0].classList.remove('select2-container--open');\n });\n this.on('enable', function () {\n self.$container[0].classList.remove('select2-container--disabled');\n });\n this.on('disable', function () {\n self.$container[0].classList.add('select2-container--disabled');\n });\n this.on('blur', function () {\n self.$container[0].classList.remove('select2-container--focus');\n });\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n this.on('keypress', function (evt) {\n var key = evt.which;\n var isMultiSelect = this.$element[0].hasAttribute('multiple');\n\n if (self.isOpen()) {\n if (key === KEYS.ENTER) {\n self.trigger('results:select');\n evt.preventDefault();\n } else if (key === KEYS.SPACE && evt.ctrlKey) {\n self.trigger('results:toggle');\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous');\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next');\n evt.preventDefault();\n } else if (key === KEYS.ESC || key === KEYS.TAB) {\n self.close();\n evt.preventDefault();\n }\n } else if (!isMultiSelect) {\n // Added the functionality to change option on press of up and down arrow. @edited\n if (key === KEYS.ENTER || key === KEYS.SPACE || (key === KEYS.DOWN || key === KEYS.UP) && evt.altKey) {\n self.open();\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n if (undefined != this.$element.find('option:selected').next().val()) {\n this.$element.val(this.$element.find('option:selected').next().val());\n this.$element.trigger('change');\n }\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n if (undefined != this.$element.find('option:selected').prev().val()) {\n this.$element.val(this.$element.find('option:selected').prev().val());\n this.$element.trigger('change');\n }\n\n evt.preventDefault();\n } // Added the functionality to select option based on key press. @edited\n else {\n var selectedValue = this.$element.find('option:selected').text();\n var keyPressed = String.fromCharCode(key).toLowerCase();\n var values = this.$element.find('option').filter(function () {\n var _$$text;\n\n return (_$$text = $(this).text()) === null || _$$text === void 0 ? void 0 : _$$text.toLowerCase().startsWith(keyPressed);\n });\n var arrLength = values.length - 1;\n var elemVal = selectedValue;\n values.each(function (index) {\n if (selectedValue !== '' && selectedValue[0].toLowerCase() === keyPressed) {\n if ($(this).text() === selectedValue && index !== arrLength) {\n elemVal = $(values[index + 1]).val();\n return false;\n }\n\n return;\n }\n\n elemVal = $(this).val();\n return false;\n });\n elemVal !== selectedValue && (self.$element.val(elemVal), self.$element.trigger('change'));\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (mutations) {\n var self = this;\n\n if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n return true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n return true;\n } else if (Array.isArray(mutations)) {\n return mutations.some(function (mutation) {\n return self._isChangeMutation(mutation);\n });\n }\n\n return false;\n };\n\n Select2.prototype._syncSubtree = function (mutations) {\n var changed = this._isChangeMutation(mutations);\n\n var self = this; // Only re-pull the data if we think there is a change\n\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n\n\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: evt\n });\n };\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n\n\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n\n\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container[0].classList.contains('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container[0].classList.contains('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container[0].classList.add('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' + ' instead.');\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) {\n console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You ' + 'should consider setting the value instead using `$element.val()`.');\n }\n\n var data = [];\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.');\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if (Array.isArray(newVal)) {\n newVal = newVal.map(function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n Utils.RemoveData(this.$container[0]);\n this.$container.remove();\n\n this._observer.disconnect();\n\n this._observer = null;\n this._syncA = null;\n this._syncS = null;\n this.$element.off('.select2');\n this.$element.attr('tabindex', Utils.GetData(this.$element[0], 'old-tabindex')); // Remove SUI screen reader class. @edited\n\n this.$element.removeClass('sui-screen-reader-text');\n this.$element[0].classList.remove('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $('<span class=\"select2 select2-container\">' + '<span class=\"selection\"></span>' + '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' + '</span>');\n $container.attr('dir', this.options.get('dir'));\n this.$container = $container; // Add SUIselect class to select main div. @edited\n\n this.$container[0].classList.add('sui-select'); // Additional class for themes. @edited\n\n if ('default' !== this.options.get('theme')) {\n this.$container[0].classList.add('sui-select-theme--' + this.options.get('theme'));\n }\n\n Utils.StoreData($container[0], 'element', this.$element);\n return $container;\n };\n\n return Select2;\n });\n S2.define('jquery-mousewheel', ['jquery'], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n });\n /**\n * Rebranding select2 to SUIselect2\n * It does avoid conflicts with other(s) that include select2 manually\n * @edited\n */\n\n S2.define('sui.select2', ['jquery', 'jquery-mousewheel', './select2/core', './select2/defaults', './select2/utils'], function ($, _, Select2, Defaults, Utils) {\n // Rename function. @edited\n if ($.fn.SUIselect2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy']; // Rename function. @edited\n\n $.fn.SUIselect2 = function (options) {\n options = options || {};\n\n if (_typeof(options) === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n var instance = new Select2($(this), instanceOptions);\n });\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n // Rename function on error message. @edited\n console.error('The SUIselect2(\\'' + options + '\\') method was called on an ' + 'element that is not using Select2.');\n }\n\n ret = instance[options].apply(instance, args);\n }); // Check if we should be returning `this`\n\n if (thisMethods.indexOf(options) > -1) {\n return this;\n }\n\n return ret;\n } else {\n // Rename function on error message. @edited\n throw new Error('Invalid arguments for SUIselect2: ' + options);\n }\n };\n } // Rename function. @edited\n\n\n if ($.fn.SUIselect2.defaults == null) {\n $.fn.SUIselect2.defaults = Defaults; // Rename function. @edited\n }\n\n return Select2;\n }); // Return the AMD loader configuration so it can be used outside of this file\n\n return {\n define: S2.define,\n require: S2.require\n };\n }(); // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n\n\n var select2 = S2.require('sui.select2'); // Rename function. @edited\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n // jQuery.fn.select2.amd = S2;\n // Return the Select2 instance for anyone who is importing it.\n\n\n return select2;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function ($) {\n // Enable strict mode\n 'use strict'; // Define global SUI object if it doesn't exist\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.sideTabs = function (element) {\n var $this = $(element),\n $label = $this.parent('label'),\n $data = $this.data('tab-menu'),\n $wrapper = $this.closest('.sui-side-tabs'),\n $alllabels = $wrapper.find('>.sui-tabs-menu .sui-tab-item'),\n $allinputs = $alllabels.find('input'),\n newContent;\n $this.on('click', function (e) {\n $alllabels.removeClass('active');\n $allinputs.attr('checked', false);\n $allinputs.attr('aria-selected', false);\n $wrapper.find('> .sui-tabs-content > div[data-tab-content]').removeClass('active');\n $label.addClass('active');\n $this.attr('checked', true);\n $this.attr('aria-selected', true);\n newContent = $wrapper.find('.sui-tabs-content div[data-tab-content=\"' + $data + '\"]');\n\n if (newContent.length) {\n newContent.addClass('active');\n }\n });\n };\n\n $('.sui-2-12-23 .sui-side-tabs label.sui-tab-item input').each(function () {\n SUI.sideTabs(this);\n });\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Define global SUI object if it doesn't exist.\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.reviews = function (review, reviews, rating) {\n if (reviews <= 0) {\n return;\n }\n\n function init() {\n var stars = Math.round(rating),\n starsBlock = review.find('.sui-reviews__stars')[0],\n i;\n\n for (i = 0; i < stars; i++) {\n starsBlock.innerHTML += '<span class=\"sui-icon-star\" aria-hidden=\"true\"></span> ';\n }\n\n review.find('.sui-reviews-rating').replaceWith(rating);\n review.find('.sui-reviews-customer-count').replaceWith(reviews);\n }\n\n init();\n return this;\n }; // Update the reviews with the live stats.\n\n\n $('.sui-2-12-23 .sui-reviews').each(function () {\n var review = $(this);\n $.ajax({\n url: \"https://api.reviews.co.uk/merchant/reviews?store=wpmudev-org\",\n success: function success(data) {\n SUI.reviews(review, data.stats.reviews, data.stats.average_rating);\n }\n });\n });\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Define global SUI object if it doesn't exist.\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.loadCircleScore = function (el) {\n var dial = $(el).find('svg circle:last-child'),\n score = $(el).data('score'),\n radius = 42,\n circumference = 2 * Math.PI * radius,\n dashLength = circumference / 100 * score,\n gapLength = dashLength * 100 - score,\n svg = '<svg viewbox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\\n' + '<circle stroke-width=\"16\" cx=\"50\" cy=\"50\" r=\"42\" />\\n' + '<circle stroke-width=\"16\" cx=\"50\" cy=\"50\" r=\"42\" stroke-dasharray=\"0,' + gapLength + '\" />\\n' + '</svg>\\n' + '<span class=\"sui-circle-score-label\" aria-hidden=\"true\">' + score + '</span>\\n' + '<span class=\"sui-screen-reader-text\" tabindex=\"0\">Score ' + score + ' out of 100</span>'; // Add svg to score element, add loaded class, & change stroke-dasharray to represent target score/percentage.\n\n $(el).prepend(svg).addClass('loaded').find('circle:last-child').css('animation', 'sui' + score + ' 3s forwards');\n };\n\n $('.sui-2-12-23 .sui-circle-score').each(function () {\n SUI.loadCircleScore(this);\n });\n})(jQuery);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function ($) {\n // Enable strict mode.\n 'use strict'; // Define global SUI object if it doesn't exist.\n\n if ('object' !== _typeof(window.SUI)) {\n window.SUI = {};\n }\n\n SUI.showHidePassword = function () {\n $('.sui-2-12-23 .sui-form-field').each(function () {\n var $this = $(this);\n\n if (0 !== $this.find('input[type=\"password\"]').length) {\n $this.find('[class*=\"sui-button\"], .sui-password-toggle').off('click.toggle-password').on('click.toggle-password', function () {\n var $button = $(this),\n $input = $button.parent().find('input'),\n $icon = $button.find('> span');\n $button.parent().toggleClass('sui-password-visible');\n $button.find('.sui-password-text').toggleClass('sui-hidden');\n\n if ($button.parent().hasClass('sui-password-visible')) {\n $input.prop('type', 'text');\n $icon.removeClass('sui-icon-eye').addClass('sui-icon-eye-hide');\n } else {\n $input.prop('type', 'password');\n $icon.removeClass('sui-icon-eye-hide').addClass('sui-icon-eye');\n }\n });\n }\n });\n };\n\n SUI.showHidePassword();\n})(jQuery);","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/**\n * Shared UI JS libraries. Use only what we need to keep the vendor\n * file size smaller.\n */\n\nrequire( '@wpmudev/shared-ui/dist/js/_src/accordion' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/code-snippet' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/modal-dialog' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/notifications' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/scores' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/select2.full' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/select2' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/tabs' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/side-tabs' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/reviews' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/sticky-box' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/password' );\nrequire( '@wpmudev/shared-ui/dist/js/_src/dropdowns' );\n"],"names":["apply_sticky_class","_$sticky","getBoundingClientRect","top","parseInt","getComputedStyle","replace","classList","add","remove","slice","call","document","querySelectorAll","forEach","CSS","supports","offsetParent","window","addEventListener","jQuery","_typeof","obj","Symbol","iterator","constructor","prototype","$","SUI","linkDropdown","closeAllDropdowns","$except","$dropdowns","not","removeClass","on","e","$parent","this","parent","hasClass","toggleClass","preventDefault","$anchor","is","target","has","length","suiTabs","config","data","type","indexGroup","indexItem","types","groups","activeGroups","activeChildren","activeItems","memory","onClick","groupIndex","itemIndex","setNodes","callback","tab","pane","i","setActiveGroup","setActiveChildren","setActiveItems","putActiveClass","setOption","key","value","children","options","tabItems","setDefaults","tabGroup","paneGroup","bind","location","hash","id","init","tabsOverflow","$el","tabs","closest","find","leftButton","rightButton","overflowing","scrollWidth","width","scrollLeft","addClass","reachedEnd","offset","newScrollLeft","outerWidth","get","animate","tabgroup","tablist","keys","direction","each","clickEventListener","event","index","keyCode","which","determineOrientation","keydownEventListener","activateTab","keyupEventListener","inputs","panels","controls","attr","input","next","panel","prop","deactivateTabs","removeAttr","proceed","pressed","undefined","focus","switchTabOnArrowPress","currentTab","setCallback","stopPropagation","select","escapeJS","string","html","text","formatIcon","container","label","icon","element","toLowerCase","formatIconSelection","formatColor","markup","border","color","formatColorSelection","formatVars","content","val","formatVarsSelection","getParent","getParentId","selectParent","hasSearch","isSmall","SUIselect2","dropdownParent","minimumResultsForSearch","dropdownCssClass","initIcon","templateResult","templateSelection","escapeMarkup","initColor","initSearch","minimumInputLength","maximumSelectionLength","initVars","theme","pluginName","defaults","SUIAccordion","$element","settings","extend","_defaults","_name","getItem","clickedTarget","nextUntil","filter","flexHeader","flexItem","flexChart","flexParent","flexContent","tableItem","tableContent","tableBox","button","buttonText","dataContent","trigger","setTimeout","fn","suiAccordion","el","_defineProperty","Object","defineProperty","enumerable","configurable","writable","_this","openNotice","noticeId","noticeMessage","noticeOptions","noticeNode","nodeWrapper","Error","utils","allowedNotices","isObject","isPlainObject","deepMerge","_len","arguments","sources","Array","_key","source","shift","assign","apply","concat","setProperties","incomingOptions","dismiss","show","tooltip","autoclose","timeout","buildDismiss","createElement","className","innerHTML","buildIcon","setAttribute","buildMessage","prepend","buildNotice","append","showNotice","animation","slideDown","closeNotice","fadeIn","slideUp","fadeOut","hide","hideNotice","empty","notice","Utils","Open","self","paragraph","Close","btnOpen","btnClose","aria","KeyCode","BACKSPACE","TAB","RETURN","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","item","parentNode","removeChild","isFocusable","tabIndex","getAttribute","disabled","nodeName","href","rel","simulateClick","evt","MouseEvent","bubbles","cancelable","view","dispatchEvent","IgnoreUtilFocusChanges","dialogOpenClass","focusFirstDescendant","childNodes","child","attemptFocus","focusLastDescendant","activeElement","OpenDialogList","getCurrentDialog","closeCurrentDialog","currentDialog","close","handleEscape","Dialog","dialogId","focusAfterClosed","focusFirst","hasOverlayMask","isCloseOnEsc","isAnimated","dialogNode","getElementById","validRoles","trim","split","some","token","role","openEvent","Event","backdropClass","contains","backdropNode","insertBefore","dialogNodev","appendChild","body","preDiv","preNode","onclick","postDiv","postNode","nextSibling","removeListeners","addListeners","push","lastFocus","afterOpenEvent","closeEvent","pop","slides","hasAttribute","newDialogSize","newDialogLabel","getDialogLabel","newDialogDesc","getDialogDesc","removeAttribute","afterCloseEvent","newDialogId","newFocusAfterClosed","newFocusFirst","slide","newSlideId","newSlideFocus","newSlideEntrance","getAllSlides","getNewSlide","trapFocus","removeEventListener","parentElement","openModal","dialogOverlay","closeModal","replaceModal","slideModal","modalDialog","buttonOpen","buttonClose","buttonReplace","buttonSlide","overlayMask","modalId","slideId","closeFocus","newFocus","ClipboardJS","copyText","copiedText","SUICodeSnippet","_clipboardJs","_clipboardId","wrap","generateUniqueId","after","clearSelection","showTooltip","getClipboardJs","msg","Math","random","toString","substr","destroy","unwrap","suiCodeSnippet","ready","S2","select2","amd","requirejs","require","define","undef","main","_req","makeMap","handlers","defined","waiting","defining","hasOwn","hasOwnProperty","aps","jsSuffixRegExp","hasProp","normalize","name","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","j","part","baseParts","map","starMap","nodeIdCompat","test","charAt","splice","join","makeRequire","relName","forceSync","args","makeNormalize","makeLoad","depName","callDep","splitPrefix","prefix","indexOf","substring","makeRelParts","makeConfig","relParts","plugin","parts","relResourceName","f","n","pr","p","exports","module","uri","deps","cjsModule","ret","usingExports","callbackType","load","alt","cfg","_defined","_$","console","error","getMethods","theClass","proto","methods","methodName","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","unshift","argCount","calledConstructor","ctr","displayName","m","superMethod","calledMethod","originalMethod","decoratedMethod","d","Observable","listeners","params","_type","invoke","len","generateChars","chars","floor","func","context","_convertData","originalKey","dataLevel","k","hasScroll","overflowX","style","overflowY","innerHeight","scrollHeight","innerWidth","replaceMap","String","match","__cache","GetUniqueElementId","select2Id","StoreData","GetData","RemoveData","copyNonInternalCssClasses","dest","src","destinationClasses","clazz","sourceClasses","replacements","Results","dataAdapter","render","$results","clear","displayMessage","hideLoading","$message","message","hideMessages","$options","results","sort","$option","option","position","$dropdown","sorter","highlightFirstItem","$selected","first","ensureHighlightVisible","setClasses","current","selected","selectedIds","s","showLoading","loading","loadingMore","$loading","attrs","matches","Element","msMatchesSelector","webkitMatchesSelector","_resultId","title","template","$children","c","$child","$childrenContainer","$container","isOpen","$highlighted","getHighlightedResults","currentIndex","nextIndex","$next","eq","currentOffset","nextTop","nextOffset","scrollTop","outerHeight","nextBottom","mousewheel","bottom","deltaY","isAtTop","isAtBottom","height","$this","originalEvent","offsetDelta","result","display","ENTER","SHIFT","CTRL","ALT","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","update","_attachCloseHandler","_detachCloseHandler","$select","off","isEnabled","isDisabled","SingleSelection","$rendered","selectionContainer","selection","formatted","MultipleSelection","$selections","selectionIdPrefix","selectionId","removeItem","$remove","Placeholder","decorated","placeholder","normalizePlaceholder","_","createPlaceholder","$placeholder","placeholderTitle","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","prevented","removeAll","Search","searchLabel","$search","$searchContainer","_transferTabIndex","resizeSearch","_keyUpPrevented","isDefaultPrevented","$previousChoice","last","searchRemoveChoice","msie","documentMode","disableInputEvents","handleSearch","searchHadFocus","term","css","SelectionCSS","selectionCssClass","EventRelay","relayEvents","preventableEvents","Translation","dict","all","translation","_cache","loadPath","path","translations","BaseAdapter","query","generateResultId","SelectAdapter","selectedElement","tagName","currentData","unselect","addOptions","textContent","innerText","normalizedData","_normalizeItem","matcher","ArrayAdapter","_dataToConvert","convertToOptions","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","replaceWith","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","q","transport","success","failure","$request","ajax","then","fail","_request","abort","request","isArray","status","url","delay","_queryTimeout","clearTimeout","Tags","tags","createTag","insertTag","t","tag","wrapper","checkChildren","toUpperCase","_removeOldTags","page","Tokenizer","tokenizer","dropdown","createAndSelect","tokenData","separators","termChar","MinimumInputLength","$e","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","_checkIfMaximumSelected","successCallback","count","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","loadMoreIfNeeded","isLoadMoreVisible","documentElement","loadMore","pagination","more","AttachBody","$dropdownParent","_showDropdown","_attachPositioningHandler","_bindContainerResultHandlers","_hideDropdown","_detachPositioningHandler","$dropdownContainer","detach","_containerResultsHandlersBound","_positionDropdown","_resizeDropdown","scrollEvent","resizeEvent","orientationEvent","$watchers","parents","x","y","ev","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","left","$offsetParent","parentOffset","isConnected","minWidth","appendTo","countResults","MinimumResultsForSearch","Infinity","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","ctrlKey","metaKey","DropdownCSS","TagsSearchHighlight","$firstOption","firstElement","errorLoading","inputTooLong","overChars","inputTooShort","maximumSelected","noResults","searching","removeAllItems","search","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","reset","tokenSeparators","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","selectionAdapter","allowClear","language","_resolveLanguage","uniqueLanguages","l","_processTranslations","debug","stripDiacritics","a","original","amdLanguageBase","autocomplete","dropdownAutoWidth","scrollAfterSelect","applyFromElement","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","isEmptyObject","resolvedLanguages","baseLanguage","languageData","ex","warn","set","camelCase","convertedData","Options","fromElement","excludedData","dir","dataset","upperCaseLetter","letter","attributes","attributeName","dataName","dataValue","jquery","Select2","_generateId","tabindex","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","insertAfter","_resolveWidth","method","WIDTH","styleWidth","elementWidth","_syncA","_syncS","_syncSubtree","_observer","MutationObserver","mutations","observe","childList","subtree","nonRelayEvents","toggleDropdown","isMultiSelect","altKey","open","prev","selectedValue","keyPressed","fromCharCode","values","_$$text","startsWith","arrLength","elemVal","_isChangeMutation","addedNodes","removedNodes","mutation","changed","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","hasFocus","enable","newVal","disconnect","removeData","thisMethods","instanceOptions","instance","factory","sideTabs","newContent","$label","$data","$wrapper","$alllabels","$allinputs","reviews","review","rating","stars","round","starsBlock","stats","average_rating","loadCircleScore","score","svg","PI","showHidePassword","$button","$input","$icon","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"ignoreList":[],"sourceRoot":""}
| ver. 1.4 |
Github
|
.
| PHP 8.2.30 | Generation time: 0.41 |
proxy
|
phpinfo
|
Settings