/** * PUI Object */var PUI = { zindex : 1000, gridColumns: { '1': 'ui-grid-col-12', '2': 'ui-grid-col-6', '3': 'ui-grid-col-4', '4': 'ui-grid-col-3', '6': 'ui-grid-col-2', '12': 'ui-grid-col-11' }, charSet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', /** * Aligns container scrollbar to keep item in container viewport, algorithm copied from jquery-ui menu widget */ scrollInView: function(container, item) { var borderTop = parseFloat(container.css('borderTopWidth')) || 0, paddingTop = parseFloat(container.css('paddingTop')) || 0, offset = item.offset().top - container.offset().top - borderTop - paddingTop, scroll = container.scrollTop(), elementHeight = container.height(), itemHeight = item.outerHeight(true); if(offset < 0) { container.scrollTop(scroll + offset); } else if((offset + itemHeight) > elementHeight) { container.scrollTop(scroll + offset - elementHeight + itemHeight); } }, generateRandomId: function() { var id = ''; for (var i = 1; i <= 10; i++) { var randPos = Math.floor(Math.random() * this.charSet.length); id += this.charSet[randPos]; } return id; }, isIE: function(version) { return (this.browser.msie && parseInt(this.browser.version, 10) === version); }, escapeRegExp: function(text) { return text.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); }, escapeHTML: function(value) { return value.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); }, escapeClientId: function(id) { return "#" + id.replace(/:/g,"\\:"); }, clearSelection: function() { if(window.getSelection) { if(window.getSelection().empty) { window.getSelection().empty(); } else if(window.getSelection().removeAllRanges) { window.getSelection().removeAllRanges(); } } else if(document.selection && document.selection.empty) { document.selection.empty(); } }, inArray: function(arr, item) { for(var i = 0; i < arr.length; i++) { if(arr[i] === item) { return true; } } return false; }, calculateScrollbarWidth: function() { if(!this.scrollbarWidth) { if(this.browser.msie) { var $textarea1 = $('<textarea cols="10" rows="2"></textarea>') .css({ position: 'absolute', top: -1000, left: -1000 }).appendTo('body'), $textarea2 = $('<textarea cols="10" rows="2" style="overflow: hidden;"></textarea>') .css({ position: 'absolute', top: -1000, left: -1000 }).appendTo('body'); this.scrollbarWidth = $textarea1.width() - $textarea2.width(); $textarea1.add($textarea2).remove(); } else { var $div = $('<div />') .css({ width: 100, height: 100, overflow: 'auto', position: 'absolute', top: -1000, left: -1000 }) .prependTo('body').append('<div />').find('div') .css({ width: '100%', height: 200 }); this.scrollbarWidth = 100 - $div.width(); $div.parent().remove(); } } return this.scrollbarWidth; }, //adapted from jquery browser plugin resolveUserAgent: function() { var matched, browser; jQuery.uaMatch = function( ua ) { ua = ua.toLowerCase(); var match = /(opr)[\/]([\w.]+)/.exec( ua ) || /(chrome)[ \/]([\w.]+)/.exec( ua ) || /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) || /(webkit)[ \/]([\w.]+)/.exec( ua ) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || /(msie) ([\w.]+)/.exec( ua ) || ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) || ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || []; var platform_match = /(ipad)/.exec( ua ) || /(iphone)/.exec( ua ) || /(android)/.exec( ua ) || /(windows phone)/.exec( ua ) || /(win)/.exec( ua ) || /(mac)/.exec( ua ) || /(linux)/.exec( ua ) || /(cros)/i.exec( ua ) || []; return { browser: match[ 3 ] || match[ 1 ] || "", version: match[ 2 ] || "0", platform: platform_match[ 0 ] || "" }; }; matched = jQuery.uaMatch( window.navigator.userAgent ); browser = {}; if ( matched.browser ) { browser[ matched.browser ] = true; browser.version = matched.version; browser.versionNumber = parseInt(matched.version); } if ( matched.platform ) { browser[ matched.platform ] = true; } // These are all considered mobile platforms, meaning they run a mobile browser if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) { browser.mobile = true; } // These are all considered desktop platforms, meaning they run a desktop browser if ( browser.cros || browser.mac || browser.linux || browser.win ) { browser.desktop = true; } // Chrome, Opera 15+ and Safari are webkit based browsers if ( browser.chrome || browser.opr || browser.safari ) { browser.webkit = true; } // IE11 has a new token so we will assign it msie to avoid breaking changes if ( browser.rv ) { var ie = "msie"; matched.browser = ie; browser[ie] = true; } // Opera 15+ are identified as opr if ( browser.opr ) { var opera = "opera"; matched.browser = opera; browser[opera] = true; } // Stock Android browsers are marked as Safari on Android. if ( browser.safari && browser.android ) { var android = "android"; matched.browser = android; browser[android] = true; } // Assign the name and platform variable browser.name = matched.browser; browser.platform = matched.platform; this.browser = browser; $.browser = browser; }, getGridColumn: function(number) { return this.gridColumns[number + '']; }, executeFunctionByName: function(functionName /*, args */) { var args = [].slice.call(arguments).splice(1), context = window, namespaces = functionName.split("."), func = namespaces.pop(); for(var i = 0; i < namespaces.length; i++) { context = context[namespaces[i]]; } return context[func].apply(this, args); }, resolveObjectByName: function(name) { if(name) { var parts = name.split("."); for(var i = 0, len = parts.length, obj = window; i < len; ++i) { obj = obj[parts[i]]; } return obj; } else { return null; } }, getCookie : function(name) { return $.cookie(name); }, setCookie : function(name, value, cfg) { $.cookie(name, value, cfg); }, deleteCookie: function(name, cfg) { $.removeCookie(name, cfg); } }; PUI.resolveUserAgent();/** * PrimeUI Accordion widget */(function() { $.widget("primeui.puiaccordion", { options: { activeIndex: 0, multiple: false }, _create: function() { if(this.options.multiple) { this.options.activeIndex = this.options.activeIndex||[0]; } var $this = this; this.element.addClass('ui-accordion ui-widget ui-helper-reset'); var tabContainers = this.element.children(); //primeui if(tabContainers.is('div')) { this.panelMode = 'native'; this.headers = this.element.children('h3'); this.panels = this.element.children('div'); } //primeng else { this.panelMode = 'wrapped'; this.headers = tabContainers.children('h3'); this.panels = tabContainers.children('div'); } this.headers.addClass('ui-accordion-header ui-helper-reset ui-state-default').each(function(i) { var header = $(this), title = header.html(), active = $this.options.multiple ? ($.inArray(i, $this.options.activeIndex) !== -1) : (i == $this.options.activeIndex), headerClass = (active) ? 'ui-state-active ui-corner-top' : 'ui-corner-all', iconClass = (active) ? 'fa fa-fw fa-caret-down' : 'fa fa-fw fa-caret-right'; header.addClass(headerClass).html('<span class="' + iconClass + '"></span><a href="#">' + title + '</a>'); }); this.panels.each(function(i) { var content = $(this); content.addClass('ui-accordion-content ui-helper-reset ui-widget-content'), active = $this.options.multiple ? ($.inArray(i, $this.options.activeIndex) !== -1) : (i == $this.options.activeIndex); if(!active) { content.addClass('ui-helper-hidden'); } }); this.headers.children('a').disableSelection(); this._bindEvents(); }, _destroy: function() { this._unbindEvents(); this.element.removeClass('ui-accordion ui-widget ui-helper-reset'); this.headers.removeClass('ui-accordion-header ui-helper-reset ui-state-default ui-state-hover ui-state-active ui-state-disabled ui-corner-all ui-corner-top'); this.panels.removeClass('ui-accordion-content ui-helper-reset ui-widget-content ui-helper-hidden'); this.headers.children('.fa').remove(); this.headers.children('a').contents().unwrap(); }, _bindEvents: function() { var $this = this; this.headers.on('mouseover.puiaccordion', function() { var element = $(this); if(!element.hasClass('ui-state-active')&&!element.hasClass('ui-state-disabled')) { element.addClass('ui-state-hover'); } }).on('mouseout.puiaccordion', function() { var element = $(this); if(!element.hasClass('ui-state-active')&&!element.hasClass('ui-state-disabled')) { element.removeClass('ui-state-hover'); } }).on('click.puiaccordion', function(e) { var element = $(this); if(!element.hasClass('ui-state-disabled')) { var tabIndex = ($this.panelMode === 'native') ? element.index() / 2 : element.parent().index(); if(element.hasClass('ui-state-active')) { $this.unselect(tabIndex); } else { $this.select(tabIndex, false); } } e.preventDefault(); }); }, _unbindEvents: function() { this.headers.off('mouseover.puiaccordion mouseout.puiaccordion click.puiaccordion'); }, /** * Activates a tab with given index */ select: function(index, silent) { var panel = this.panels.eq(index); if(!silent) { this._trigger('change', null, {'index': index}); } //update state if(this.options.multiple) { this._addToSelection(index); } else { this.options.activeIndex = index; } this._show(panel); }, /** * Deactivates a tab with given index */ unselect: function(index) { var panel = this.panels.eq(index), header = panel.prev(); header.attr('aria-expanded', false).children('.fa').removeClass('fa-caret-down').addClass('fa-caret-right'); header.removeClass('ui-state-active ui-corner-top').addClass('ui-corner-all'); panel.attr('aria-hidden', true).slideUp(); this._removeFromSelection(index); }, _show: function(panel) { //deactivate current if(!this.options.multiple) { var oldHeader = this.headers.filter('.ui-state-active'); oldHeader.children('.fa').removeClass('fa-caret-down').addClass('fa-caret-right'); oldHeader.attr('aria-expanded', false).removeClass('ui-state-active ui-corner-top').addClass('ui-corner-all').next().attr('aria-hidden', true).slideUp(); } //activate selected var newHeader = panel.prev(); newHeader.attr('aria-expanded', true).addClass('ui-state-active ui-corner-top').removeClass('ui-state-hover ui-corner-all') .children('.fa').removeClass('fa-caret-right').addClass('fa-caret-down'); panel.attr('aria-hidden', false).slideDown('normal'); }, _addToSelection: function(nodeId) { this.options.activeIndex.push(nodeId); }, _removeFromSelection: function(index) { this.options.activeIndex = $.grep(this.options.activeIndex, function(r) { return r != index; }); }, _setOption: function(key, value) { if(key === 'activeIndex') { this.select(value, true); } else { $.Widget.prototype._setOption.apply(this, arguments); } } });})();/** * PrimeUI autocomplete widget */(function() { $.widget("primeui.puiautocomplete", { options: { delay: 300, minQueryLength: 1, multiple: false, dropdown: false, scrollHeight: 200, forceSelection: false, effect:null, effectOptions: {}, effectSpeed: 'normal', content: null, caseSensitive: false }, _create: function() { this.element.wrap('<span class="ui-autocomplete ui-widget" />'); this.element.puiinputtext(); this.panel = $('<div class="ui-autocomplete-panel ui-widget-content ui-corner-all ui-helper-hidden ui-shadow"></div>').appendTo('body'); if(this.options.multiple) { this.element.wrap('<ul class="ui-autocomplete-multiple ui-widget ui-inputtext ui-state-default ui-corner-all">' + '<li class="ui-autocomplete-input-token"></li></ul>'); this.inputContainer = this.element.parent(); this.multiContainer = this.inputContainer.parent(); } else { if(this.options.dropdown) { this.dropdown = $('<button type="button" class="ui-autocomplete-dropdown ui-button ui-widget ui-state-default ui-corner-right ui-button-icon-only">' + '<span class="fa fa-fw fa-caret-down"></span><span class="ui-button-text"> </span></button>') .insertAfter(this.element); this.element.removeClass('ui-corner-all').addClass('ui-corner-left'); } } this._bindEvents(); }, _bindEvents: function() { var $this = this; this._bindKeyEvents(); if(this.options.dropdown) { this.dropdown.on('mouseenter.puiautocomplete', function() { if(!$this.element.prop('disabled')) { $this.dropdown.addClass('ui-state-hover'); } }) .on('mouseleave.puiautocomplete', function() { $this.dropdown.removeClass('ui-state-hover'); }) .on('mousedown.puiautocomplete', function() { if(!$this.element.prop('disabled')) { $this.dropdown.addClass('ui-state-active'); } }) .on('mouseup.puiautocomplete', function() { if(!$this.element.prop('disabled')) { $this.dropdown.removeClass('ui-state-active'); $this.search(''); $this.element.focus(); } }) .on('focus.puiautocomplete', function() { $this.dropdown.addClass('ui-state-focus'); }) .on('blur.puiautocomplete', function() { $this.dropdown.removeClass('ui-state-focus'); }) .on('keydown.puiautocomplete', function(e) { var keyCode = $.ui.keyCode; Lines 1–500 of 13963. Load more
/** * PUI Object */ var PUI = { zindex : 1000, gridColumns: { '1': 'ui-grid-col-12', '2': 'ui-grid-col-6', '3': 'ui-grid-col-4', '4': 'ui-grid-col-3', '6': 'ui-grid-col-2', '12': 'ui-grid-col-11' }, charSet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', /** * Aligns container scrollbar to keep item in container viewport, algorithm copied from jquery-ui menu widget */ scrollInView: function(container, item) { var borderTop = parseFloat(container.css('borderTopWidth')) || 0, paddingTop = parseFloat(container.css('paddingTop')) || 0, offset = item.offset().top - container.offset().top - borderTop - paddingTop, scroll = container.scrollTop(), elementHeight = container.height(), itemHeight = item.outerHeight(true); if(offset < 0) { container.scrollTop(scroll + offset); } else if((offset + itemHeight) > elementHeight) { container.scrollTop(scroll + offset - elementHeight + itemHeight); } }, generateRandomId: function() { var id = ''; for (var i = 1; i <= 10; i++) { var randPos = Math.floor(Math.random() * this.charSet.length); id += this.charSet[randPos]; } return id; }, isIE: function(version) { return (this.browser.msie && parseInt(this.browser.version, 10) === version); }, escapeRegExp: function(text) { return text.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); }, escapeHTML: function(value) { return value.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); }, escapeClientId: function(id) { return "#" + id.replace(/:/g,"\\:"); }, clearSelection: function() { if(window.getSelection) { if(window.getSelection().empty) { window.getSelection().empty(); } else if(window.getSelection().removeAllRanges) { window.getSelection().removeAllRanges(); } } else if(document.selection && document.selection.empty) { document.selection.empty(); } }, inArray: function(arr, item) { for(var i = 0; i < arr.length; i++) { if(arr[i] === item) { return true; } } return false; }, calculateScrollbarWidth: function() { if(!this.scrollbarWidth) { if(this.browser.msie) { var $textarea1 = $('<textarea cols="10" rows="2"></textarea>') .css({ position: 'absolute', top: -1000, left: -1000 }).appendTo('body'), $textarea2 = $('<textarea cols="10" rows="2" style="overflow: hidden;"></textarea>') .css({ position: 'absolute', top: -1000, left: -1000 }).appendTo('body'); this.scrollbarWidth = $textarea1.width() - $textarea2.width(); $textarea1.add($textarea2).remove(); } else { var $div = $('<div />') .css({ width: 100, height: 100, overflow: 'auto', position: 'absolute', top: -1000, left: -1000 }) .prependTo('body').append('<div />').find('div') .css({ width: '100%', height: 200 }); this.scrollbarWidth = 100 - $div.width(); $div.parent().remove(); } } return this.scrollbarWidth; }, //adapted from jquery browser plugin resolveUserAgent: function() { var matched, browser; jQuery.uaMatch = function( ua ) { ua = ua.toLowerCase(); var match = /(opr)[\/]([\w.]+)/.exec( ua ) || /(chrome)[ \/]([\w.]+)/.exec( ua ) || /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) || /(webkit)[ \/]([\w.]+)/.exec( ua ) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || /(msie) ([\w.]+)/.exec( ua ) || ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) || ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || []; var platform_match = /(ipad)/.exec( ua ) || /(iphone)/.exec( ua ) || /(android)/.exec( ua ) || /(windows phone)/.exec( ua ) || /(win)/.exec( ua ) || /(mac)/.exec( ua ) || /(linux)/.exec( ua ) || /(cros)/i.exec( ua ) || []; return { browser: match[ 3 ] || match[ 1 ] || "", version: match[ 2 ] || "0", platform: platform_match[ 0 ] || "" }; }; matched = jQuery.uaMatch( window.navigator.userAgent ); browser = {}; if ( matched.browser ) { browser[ matched.browser ] = true; browser.version = matched.version; browser.versionNumber = parseInt(matched.version); } if ( matched.platform ) { browser[ matched.platform ] = true; } // These are all considered mobile platforms, meaning they run a mobile browser if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) { browser.mobile = true; } // These are all considered desktop platforms, meaning they run a desktop browser if ( browser.cros || browser.mac || browser.linux || browser.win ) { browser.desktop = true; } // Chrome, Opera 15+ and Safari are webkit based browsers if ( browser.chrome || browser.opr || browser.safari ) { browser.webkit = true; } // IE11 has a new token so we will assign it msie to avoid breaking changes if ( browser.rv ) { var ie = "msie"; matched.browser = ie; browser[ie] = true; } // Opera 15+ are identified as opr if ( browser.opr ) { var opera = "opera"; matched.browser = opera; browser[opera] = true; } // Stock Android browsers are marked as Safari on Android. if ( browser.safari && browser.android ) { var android = "android"; matched.browser = android; browser[android] = true; } // Assign the name and platform variable browser.name = matched.browser; browser.platform = matched.platform; this.browser = browser; $.browser = browser; }, getGridColumn: function(number) { return this.gridColumns[number + '']; }, executeFunctionByName: function(functionName /*, args */) { var args = [].slice.call(arguments).splice(1), context = window, namespaces = functionName.split("."), func = namespaces.pop(); for(var i = 0; i < namespaces.length; i++) { context = context[namespaces[i]]; } return context[func].apply(this, args); }, resolveObjectByName: function(name) { if(name) { var parts = name.split("."); for(var i = 0, len = parts.length, obj = window; i < len; ++i) { obj = obj[parts[i]]; } return obj; } else { return null; } }, getCookie : function(name) { return $.cookie(name); }, setCookie : function(name, value, cfg) { $.cookie(name, value, cfg); }, deleteCookie: function(name, cfg) { $.removeCookie(name, cfg); } }; PUI.resolveUserAgent(); /** * PrimeUI Accordion widget */ (function() { $.widget("primeui.puiaccordion", { options: { activeIndex: 0, multiple: false }, _create: function() { if(this.options.multiple) { this.options.activeIndex = this.options.activeIndex||[0]; } var $this = this; this.element.addClass('ui-accordion ui-widget ui-helper-reset'); var tabContainers = this.element.children(); //primeui if(tabContainers.is('div')) { this.panelMode = 'native'; this.headers = this.element.children('h3'); this.panels = this.element.children('div'); } //primeng else { this.panelMode = 'wrapped'; this.headers = tabContainers.children('h3'); this.panels = tabContainers.children('div'); } this.headers.addClass('ui-accordion-header ui-helper-reset ui-state-default').each(function(i) { var header = $(this), title = header.html(), active = $this.options.multiple ? ($.inArray(i, $this.options.activeIndex) !== -1) : (i == $this.options.activeIndex), headerClass = (active) ? 'ui-state-active ui-corner-top' : 'ui-corner-all', iconClass = (active) ? 'fa fa-fw fa-caret-down' : 'fa fa-fw fa-caret-right'; header.addClass(headerClass).html('<span class="' + iconClass + '"></span><a href="#">' + title + '</a>'); }); this.panels.each(function(i) { var content = $(this); content.addClass('ui-accordion-content ui-helper-reset ui-widget-content'), active = $this.options.multiple ? ($.inArray(i, $this.options.activeIndex) !== -1) : (i == $this.options.activeIndex); if(!active) { content.addClass('ui-helper-hidden'); } }); this.headers.children('a').disableSelection(); this._bindEvents(); }, _destroy: function() { this._unbindEvents(); this.element.removeClass('ui-accordion ui-widget ui-helper-reset'); this.headers.removeClass('ui-accordion-header ui-helper-reset ui-state-default ui-state-hover ui-state-active ui-state-disabled ui-corner-all ui-corner-top'); this.panels.removeClass('ui-accordion-content ui-helper-reset ui-widget-content ui-helper-hidden'); this.headers.children('.fa').remove(); this.headers.children('a').contents().unwrap(); }, _bindEvents: function() { var $this = this; this.headers.on('mouseover.puiaccordion', function() { var element = $(this); if(!element.hasClass('ui-state-active')&&!element.hasClass('ui-state-disabled')) { element.addClass('ui-state-hover'); } }).on('mouseout.puiaccordion', function() { var element = $(this); if(!element.hasClass('ui-state-active')&&!element.hasClass('ui-state-disabled')) { element.removeClass('ui-state-hover'); } }).on('click.puiaccordion', function(e) { var element = $(this); if(!element.hasClass('ui-state-disabled')) { var tabIndex = ($this.panelMode === 'native') ? element.index() / 2 : element.parent().index(); if(element.hasClass('ui-state-active')) { $this.unselect(tabIndex); } else { $this.select(tabIndex, false); } } e.preventDefault(); }); }, _unbindEvents: function() { this.headers.off('mouseover.puiaccordion mouseout.puiaccordion click.puiaccordion'); }, /** * Activates a tab with given index */ select: function(index, silent) { var panel = this.panels.eq(index); if(!silent) { this._trigger('change', null, {'index': index}); } //update state if(this.options.multiple) { this._addToSelection(index); } else { this.options.activeIndex = index; } this._show(panel); }, /** * Deactivates a tab with given index */ unselect: function(index) { var panel = this.panels.eq(index), header = panel.prev(); header.attr('aria-expanded', false).children('.fa').removeClass('fa-caret-down').addClass('fa-caret-right'); header.removeClass('ui-state-active ui-corner-top').addClass('ui-corner-all'); panel.attr('aria-hidden', true).slideUp(); this._removeFromSelection(index); }, _show: function(panel) { //deactivate current if(!this.options.multiple) { var oldHeader = this.headers.filter('.ui-state-active'); oldHeader.children('.fa').removeClass('fa-caret-down').addClass('fa-caret-right'); oldHeader.attr('aria-expanded', false).removeClass('ui-state-active ui-corner-top').addClass('ui-corner-all').next().attr('aria-hidden', true).slideUp(); } //activate selected var newHeader = panel.prev(); newHeader.attr('aria-expanded', true).addClass('ui-state-active ui-corner-top').removeClass('ui-state-hover ui-corner-all') .children('.fa').removeClass('fa-caret-right').addClass('fa-caret-down'); panel.attr('aria-hidden', false).slideDown('normal'); }, _addToSelection: function(nodeId) { this.options.activeIndex.push(nodeId); }, _removeFromSelection: function(index) { this.options.activeIndex = $.grep(this.options.activeIndex, function(r) { return r != index; }); }, _setOption: function(key, value) { if(key === 'activeIndex') { this.select(value, true); } else { $.Widget.prototype._setOption.apply(this, arguments); } } }); })(); /** * PrimeUI autocomplete widget */ (function() { $.widget("primeui.puiautocomplete", { options: { delay: 300, minQueryLength: 1, multiple: false, dropdown: false, scrollHeight: 200, forceSelection: false, effect:null, effectOptions: {}, effectSpeed: 'normal', content: null, caseSensitive: false }, _create: function() { this.element.wrap('<span class="ui-autocomplete ui-widget" />'); this.element.puiinputtext(); this.panel = $('<div class="ui-autocomplete-panel ui-widget-content ui-corner-all ui-helper-hidden ui-shadow"></div>').appendTo('body'); if(this.options.multiple) { this.element.wrap('<ul class="ui-autocomplete-multiple ui-widget ui-inputtext ui-state-default ui-corner-all">' + '<li class="ui-autocomplete-input-token"></li></ul>'); this.inputContainer = this.element.parent(); this.multiContainer = this.inputContainer.parent(); } else { if(this.options.dropdown) { this.dropdown = $('<button type="button" class="ui-autocomplete-dropdown ui-button ui-widget ui-state-default ui-corner-right ui-button-icon-only">' + '<span class="fa fa-fw fa-caret-down"></span><span class="ui-button-text"> </span></button>') .insertAfter(this.element); this.element.removeClass('ui-corner-all').addClass('ui-corner-left'); } } this._bindEvents(); }, _bindEvents: function() { var $this = this; this._bindKeyEvents(); if(this.options.dropdown) { this.dropdown.on('mouseenter.puiautocomplete', function() { if(!$this.element.prop('disabled')) { $this.dropdown.addClass('ui-state-hover'); } }) .on('mouseleave.puiautocomplete', function() { $this.dropdown.removeClass('ui-state-hover'); }) .on('mousedown.puiautocomplete', function() { if(!$this.element.prop('disabled')) { $this.dropdown.addClass('ui-state-active'); } }) .on('mouseup.puiautocomplete', function() { if(!$this.element.prop('disabled')) { $this.dropdown.removeClass('ui-state-active'); $this.search(''); $this.element.focus(); } }) .on('focus.puiautocomplete', function() { $this.dropdown.addClass('ui-state-focus'); }) .on('blur.puiautocomplete', function() { $this.dropdown.removeClass('ui-state-focus'); }) .on('keydown.puiautocomplete', function(e) { var keyCode = $.ui.keyCode;