1/** 2 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com 3 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06 4 */ 5+function ($) { 6 var CollapsibleSearch = function CollapsibleSearch(element) { 7 var instance = this; 8 instance.$element = $(element); 9 instance.$close = instance.$element.find('.basic-search-close'); 10 instance.$input = instance.$element.find('input[type="text"]'); 11 instance.$submit = instance.$element.find('[type="submit"]'); 12 instance.$close.on('click.lexicon.close.collapsible-search', $.proxy(instance.close, instance)); 13 instance.$input.on('blur.lexicon.collapsible-search', $.proxy(instance.blur, instance)); 14 instance.$input.on('focus.lexicon.collapsible-search', $.proxy(instance.focus, instance)); 15 instance.$submit.on('click.lexicon.submit.collapsible-search', $.proxy(instance.submit, instance)); 16 }; 17 18 CollapsibleSearch.BREAKPOINT = 768; 19 CollapsibleSearch.TRANSITION_DURATION = 500; 20 CollapsibleSearch.prototype = { 21 blur: function blur(event) { 22 var $input = $(event.currentTarget); 23 $input.closest('.basic-search').removeClass('focus'); 24 }, 25 close: function close(event) { 26 var instance = this; 27 var basicSearch = $(event.currentTarget).closest('.basic-search'); 28 var basicSearchSlider = basicSearch.find('.basic-search-slider'); 29 var basicSearchSubmit = basicSearch.find('[type="submit"]'); 30 31 var complete = function complete() { 32 basicSearch.removeClass('basic-search-transition'); 33 basicSearch.trigger('closed.lexicon.collapsible.search'); 34 }; 35 36 var supportsTransition = bootstrap.Util.supportsTransitionEnd(); 37 38 if (supportsTransition) { 39 basicSearchSlider.one('bsTransitionEnd', $.proxy(complete, instance)).emulateTransitionEnd(CollapsibleSearch.TRANSITION_DURATION); 40 } 41 42 basicSearch.addClass('basic-search-transition').removeClass('open'); 43 44 if (!supportsTransition) { 45 complete.call(instance); 46 } else { 47 basicSearchSubmit.focus(); 48 } 49 }, 50 destroy: function destroy() { 51 var instance = this; 52 instance.$close.off('click.lexicon.close.collapsible-search'); 53 instance.$input.off('blur.lexicon.collapsible-search'); 54 instance.$input.off('focus.lexicon.collapsible-search'); 55 instance.$submit.off('click.lexicon.submit.collapsible-search'); 56 }, 57 focus: function focus(event) { 58 $(event.currentTarget).closest('.basic-search').addClass('focus'); 59 }, 60 submit: function submit(event) { 61 var instance = this; 62 63 if (window.innerWidth < CollapsibleSearch.BREAKPOINT) { 64 var basicSearch = $(event.currentTarget).parents('.basic-search'); 65 var basicSearchInput = basicSearch.find('input[type="text"]'); 66 var basicSearchSlider = basicSearch.find('.basic-search-slider'); 67 68 var complete = function complete() { 69 basicSearch.removeClass('basic-search-transition'); 70 basicSearchInput.focus(); 71 basicSearch.trigger('open.lexicon.collapsible.search'); 72 }; 73 74 if (!basicSearch.hasClass('open')) { 75 event.preventDefault(); 76 var supportsTransition = bootstrap.Util.supportsTransitionEnd(); 77 78 if (supportsTransition) { 79 basicSearchSlider.one('bsTransitionEnd', $.proxy(complete, instance)).emulateTransitionEnd(CollapsibleSearch.TRANSITION_DURATION); 80 } 81 82 basicSearch.addClass('basic-search-transition').addClass('open'); 83 84 if (!supportsTransition) { 85 complete.call(instance); 86 } 87 } 88 } 89 } 90 }; 91 92 var Plugin = function Plugin(option) { 93 return this.each(function () { 94 var $this = $(this); 95 var data = $this.data('lexicon.collapsible-search'); 96 97 if (!data) { 98 data = new CollapsibleSearch(this); 99 $this.data('lexicon.collapsible-search', data); 100 } 101 102 if (typeof option == 'string') { 103 data[option](); 104 } 105 }); 106 }; 107 108 var old = $.fn.collapsibleSearch; 109 $.fn.collapsibleSearch = Plugin; 110 $.fn.collapsibleSearch.Constructor = CollapsibleSearch; 111 112 $.fn.collapsibleSearch.noConflict = function () { 113 $.fn.collapsibleSearch = old; 114 return this; 115 }; 116 117 var close = '[data-toggle="collapsible-search"] .basic-search-close'; 118 var input = '[data-toggle="collapsible-search"] input[type="text"]'; 119 var submit = '[data-toggle="collapsible-search"] [type="submit"]'; 120 $(document).on('blur.lexicon.collapsible-search.data-api', input, $.proxy(CollapsibleSearch.prototype.blur, CollapsibleSearch)).on('click.lexicon.close.collapsible-search.data-api', close, $.proxy(CollapsibleSearch.prototype.close, CollapsibleSearch)).on('click.lexicon.submit.collapsible-search.data-api', submit, $.proxy(CollapsibleSearch.prototype.submit, CollapsibleSearch)).on('focus.lexicon.collapsible-search.data-api', input, $.proxy(CollapsibleSearch.prototype.focu
120s, CollapsibleSearch)); 121}(jQuery); 122//# sourceMappingURL=collapsible_search.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.