(function($){"use strict";function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{"default":e}}var $__default=_interopDefaultLegacy($);var __extends=undefined&&undefined.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(Object.prototype.hasOwnProperty.call(b,p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var NULL_OPTION=new(function(){function class_1(){}class_1.prototype.initialize=function(){};class_1.prototype.select=function(){};class_1.prototype.deselect=function(){};class_1.prototype.enable=function(){};class_1.prototype.disable=function(){};class_1.prototype.isSelected=function(){return false};class_1.prototype.isDisabled=function(){return true};class_1.prototype.getListItem=function(){return document.createElement("div")};class_1.prototype.getSelectedItemBadge=function(){return document.createElement("div")};class_1.prototype.getLabel=function(){return"NULL_OPTION"};class_1.prototype.getValue=function(){return"NULL_OPTION"};class_1.prototype.show=function(){};class_1.prototype.hide=function(){};class_1.prototype.isHidden=function(){return true};class_1.prototype.focus=function(){};class_1.prototype.activate=function(){};class_1.prototype.deactivate=function(){};return class_1}());var FilterMultiSelect=function(){function FilterMultiSelect(selectTarget,args){var _this=this;this.documentKeydownListener=function(e){switch(e.key){case"Tab":e.stopPropagation();_this.closeDropdown();break;case"ArrowUp":e.stopPropagation();e.preventDefault();_this.decrementItemFocus();_this.focusItem();break;case"ArrowDown":e.stopPropagation();e.preventDefault();_this.incrementItemFocus();_this.focusItem();break;case"Enter":case"Spacebar":case" ":break;default:_this.refocusFilter();break}};this.documentClickListener=function(e){if(_this.div!==e.target&&!_this.div.contains(e.target)){_this.closeDropdown()}};this.fmsFocusListener=function(e){e.stopPropagation();e.preventDefault();_this.viewBar.dispatchEvent(new MouseEvent("click"))};this.fmsMousedownListener=function(e){e.stopPropagation();e.preventDefault()};var t=selectTarget.get(0);if(!(t instanceof HTMLSelectElement)){throw new Error("JQuery target must be a select element.")}var select=t;var name=select.name;if(!name){throw new Error("Select element must have a name attribute.")}this.name=name;var array=selectTarget.find("option").toArray();this.options=FilterMultiSelect.createOptions(this,name,array,args.items);this.numSelectedItems=0;this.maxNumSelectedItems=!select.multiple?1:args.selectionLimit>0?args.selectionLimit:parseInt(select.getAttribute("multiple"))>0?parseInt(select.getAttribute("multiple")):0;var numOptions=this.options.length;var restrictSelection=this.maxNumSelectedItems>0&&this.maxNumSelectedItems1){var v=this.maxNumSelectedItems>=this.options.length?"":this.maxNumSelectedItems.toString();this.div.setAttribute("multiple",v)}else{this.div.setAttribute("single","")}if(this.isDisabled()){this.disableNoPermissionCheck()}this.attachDropdownListeners();this.attachViewbarListeners();this.closeDropdown()};FilterMultiSelect.prototype.log=function(m,e){};FilterMultiSelect.prototype.attachDropdownListeners=function(){var _this=this;this.filterInput.addEventListener("keyup",function(e){e.stopImmediatePropagation();_this.updateDropdownList();var numShown=_this.showing.length;switch(e.key){case"Enter":if(numShown===1){var o=_this.options[_this.showing[0]];if(!o.isDisabled()){if(o.isSelected()){o.deselect()}else{o.select()}_this.clearFilterAndRefocus()}}break;case"Escape":if(_this.filterText.length>0){_this.clearFilterAndRefocus()}else{_this.closeDropdown()}break}},true);this.clearButton.addEventListener("click",function(e){e.stopImmediatePropagation();var text=_this.filterInput.value;if(text.length>0){_this.clearFilterAndRefocus()}else{_this.closeDropdown()}},true)};FilterMultiSelect.prototype.updateDropdownList=function(){var text=this.filterInput.value;if(text.length>0){this.selectAllOption.hide()}else{this.selectAllOption.show()}var showing=new Array;if(this.caseSensitive){this.options.forEach(function(o,i){if(o.getLabel().indexOf(text)!==-1){o.show();showing.push(i)}else{o.hide()}})}else{this.options.forEach(function(o,i){if(o.getLabel().toLowerCase().indexOf(text.toLowerCase())!==-1){o.show();showing.push(i)}else{o.hide()}})}this.filterText=text;this.showing=showing};FilterMultiSelect.prototype.clearFilterAndRefocus=function(){this.filterInput.value="";this.updateDropdownList();this.refocusFilter()};FilterMultiSelect.prototype.refocusFilter=function(){this.filterInput.focus();this.itemFocus=-2};FilterMultiSelect.prototype.attachViewbarListeners=function(){var _this=this;this.viewBar.addEventListener("click",function(e){if(_this.isClosed()){_this.openDropdown()}else{_this.closeDropdown()}})};FilterMultiSelect.prototype.isClosed=function(){return!this.dropDown.classList.contains("show")};FilterMultiSelect.prototype.setTabIndex=function(){if(this.isDisabled()){this.div.tabIndex=-1}else{if(this.isClosed()){this.div.tabIndex=0}else{this.div.tabIndex=-1}}};FilterMultiSelect.prototype.closeDropdown=function(){var _this=this;document.removeEventListener("keydown",this.documentKeydownListener,true);document.removeEventListener("click",this.documentClickListener,true);this.dropDown.classList.remove("show");setTimeout(function(){_this.setTabIndex()},100);this.div.addEventListener("mousedown",this.fmsMousedownListener,true);this.div.addEventListener("focus",this.fmsFocusListener)};FilterMultiSelect.prototype.incrementItemFocus=function(){if(this.itemFocus>=this.options.length-1)return;var i=this.itemFocus;do{i++}while(i==-1&&(this.selectAllOption.isDisabled()||this.selectAllOption.isHidden())||i>=0&&ithis.options.length-1?this.itemFocus:i};FilterMultiSelect.prototype.decrementItemFocus=function(){if(this.itemFocus<=-2)return;var i=this.itemFocus;do{i--}while(i==-1&&(this.selectAllOption.isDisabled()||this.selectAllOption.isHidden())||i>=0&&(this.options[i].isDisabled()||this.options[i].isHidden())&&i>-2);this.itemFocus=i};FilterMultiSelect.prototype.focusItem=function(){if(this.itemFocus===-2){this.refocusFilter()}else if(this.itemFocus===-1){this.selectAllOption.focus()}else{this.options[this.itemFocus].focus()}};FilterMultiSelect.prototype.openDropdown=function(){if(this.disabled)return;this.div.removeEventListener("mousedown",this.fmsMousedownListener,true);this.div.removeEventListener("focus",this.fmsFocusListener);this.dropDown.classList.add("show");this.setTabIndex();this.clearFilterAndRefocus();document.addEventListener("keydown",this.documentKeydownListener,true);document.addEventListener("click",this.documentClickListener,true)};FilterMultiSelect.prototype.queueOption=function(option){if(this.options.indexOf(option)==-1)return;this.numSelectedItems++;$__default["default"](this.selectedItems).append(option.getSelectedItemBadge())};FilterMultiSelect.prototype.unqueueOption=function(option){if(this.options.indexOf(option)==-1)return;this.numSelectedItems--;$__default["default"](this.selectedItems).children('[data-id="'+option.getSelectedItemBadge().getAttribute("data-id")+'"]').remove()};FilterMultiSelect.prototype.update=function(){if(this.areAllSelected()){this.selectAllOption.markSelectAll();this.placeholder.hidden=true}else if(this.areSomeSelected()){if(this.areOnlyDeselectedAlsoDisabled()){this.selectAllOption.markSelectAllNotDisabled();this.placeholder.hidden=true}else{this.selectAllOption.markSelectPartial();this.placeholder.hidden=true}}else{this.selectAllOption.markDeselect();this.placeholder.hidden=false}if(this.areAllDisabled()){this.selectAllOption.disable()}else{this.selectAllOption.enable()}if(!this.canSelect()){this.options.filter(function(o){return!o.isSelected()}).forEach(function(o){return o.deactivate()})}else{this.options.filter(function(o){return!o.isSelected()}).forEach(function(o){return o.activate()})}this.updateSelectionCounter()};FilterMultiSelect.prototype.areAllSelected=function(){return this.options.map(function(o){return o.isSelected()}).reduce(function(acc,cur){return acc&&cur},true)};FilterMultiSelect.prototype.areSomeSelected=function(){return this.options.map(function(o){return o.isSelected()}).reduce(function(acc,cur){return acc||cur},false)};FilterMultiSelect.prototype.areOnlyDeselectedAlsoDisabled=function(){return this.options.filter(function(o){return!o.isSelected()}).map(function(o){return o.isDisabled()}).reduce(function(acc,cur){return acc&&cur},true)};FilterMultiSelect.prototype.areAllDisabled=function(){return this.options.map(function(o){return o.isDisabled()}).reduce(function(acc,cur){return acc&&cur},true)};FilterMultiSelect.prototype.isEnablingAndDisablingPermitted=function(){return this.allowEnablingAndDisabling};FilterMultiSelect.prototype.getRootElement=function(){return this.div};FilterMultiSelect.prototype.hasOption=function(value){return this.getOption(value)!==NULL_OPTION};FilterMultiSelect.prototype.getOption=function(value){for(var _i=0,_a=this.options;_i<_a.length;_i++){var o=_a[_i];if(o.getValue()==value){return o}}return NULL_OPTION};FilterMultiSelect.prototype.selectOption=function(value){if(this.isDisabled())return;this.getOption(value).select()};FilterMultiSelect.prototype.deselectOption=function(value){if(this.isDisabled())return;this.getOption(value).deselect()};FilterMultiSelect.prototype.isOptionSelected=function(value){return this.getOption(value).isSelected()};FilterMultiSelect.prototype.enableOption=function(value){if(!this.isEnablingAndDisablingPermitted())return;this.getOption(value).enable()};FilterMultiSelect.prototype.disableOption=function(value){if(!this.isEnablingAndDisablingPermitted())return;this.getOption(value).disable()};FilterMultiSelect.prototype.isOptionDisabled=function(value){return this.getOption(value).isDisabled()};FilterMultiSelect.prototype.disable=function(){if(!this.isEnablingAndDisablingPermitted())return;this.disableNoPermissionCheck()};FilterMultiSelect.prototype.disableNoPermissionCheck=function(){var _this=this;this.options.forEach(function(o){return _this.setBadgeDisabled(o)});this.disabled=true;this.div.classList.add("disabled");this.viewBar.classList.remove("dropdown-toggle");this.closeDropdown()};FilterMultiSelect.prototype.setBadgeDisabled=function(o){o.getSelectedItemBadge().classList.add("disabled")};FilterMultiSelect.prototype.enable=function(){var _this=this;if(!this.isEnablingAndDisablingPermitted())return;this.options.forEach(function(o){if(!o.isDisabled()){_this.setBadgeEnabled(o)}});this.disabled=false;this.div.classList.remove("disabled");this.setTabIndex();this.viewBar.classList.add("dropdown-toggle")};FilterMultiSelect.prototype.setBadgeEnabled=function(o){o.getSelectedItemBadge().classList.remove("disabled")};FilterMultiSelect.prototype.isDisabled=function(){return this.disabled};FilterMultiSelect.prototype.selectAll=function(){if(this.isDisabled())return;this.selectAllOption.select()};FilterMultiSelect.prototype.deselectAll=function(){if(this.isDisabled())return;this.selectAllOption.deselect()};FilterMultiSelect.prototype.getSelectedOptions=function(includeDisabled){if(includeDisabled===void 0){includeDisabled=true}var a=this.options;if(!includeDisabled){if(this.isDisabled()){return new Array}a=a.filter(function(o){return!o.isDisabled()})}a=a.filter(function(o){return o.isSelected()});return a};FilterMultiSelect.prototype.getSelectedOptionsAsJson=function(includeDisabled){if(includeDisabled===void 0){includeDisabled=true}var data={};var a=this.getSelectedOptions(includeDisabled).map(function(o){return o.getValue()});data[this.getName()]=a;var c=JSON.stringify(data,null," ");return c};FilterMultiSelect.prototype.getName=function(){return this.name};FilterMultiSelect.prototype.dispatchSelectedEvent=function(option){this.dispatchEvent(FilterMultiSelect.EventType.SELECTED,option.getValue(),option.getLabel())};FilterMultiSelect.prototype.dispatchDeselectedEvent=function(option){this.dispatchEvent(FilterMultiSelect.EventType.DESELECTED,option.getValue(),option.getLabel())};FilterMultiSelect.prototype.dispatchEvent=function(eventType,value,label){var event=FilterMultiSelect.createEvent(eventType,this.getName(),value,label);this.viewBar.dispatchEvent(event)};FilterMultiSelect.prototype.canSelect=function(){return this.numSelectedItems