1(function(){'use strict';$.widget('dropdownDialog',{component:'dropdownDialog',options:{triggerTarget:null,closeOnClickOutside:true,appendTo:'body',defaultDialogClass:'mage-dropdown-dialog',dialogClass:'',autoPosition:false,position:{},defaultButtons:[{class:'action close',text:$.__('Close'),click:function(){$(this).dropdownDialog('close');}}]},create:function(){var self=this;self.status=false;self.dialog=$('<div class="ui-dialog" role="dialog">');self.dialog.addClass(self.options.defaultDialogClass);self.dialog.addClass(self.options.dialogClass);self.dialog.appendTo($(self.options.appendTo));self.dialog.hide();self.addButtons();if(self.options.shadowHinter){self.hinter=$('<div class="'+self.options.shadowHinter+'">');$(self.element).append(self.hinter);} 2$(self.element).show().prependTo(self.dialog);this._on(document,{keydown:function(e){if(e.key==='Escape'){e.preventDefault();this.close();}}.bind(this)});},addButtons:function(){var self=this,pane=$('<div class="ui-dialog-buttonpane">'),buttonSet=$('<div class="ui-dialog-buttonset">');if(this.options.buttons===undefined){this.options.buttons=this.options.defaultButtons;}else if(!this.options.buttons||!this.options.buttons.length){return;} 3buttonSet.appendTo(pane);$.each(this.options.buttons,function(){var button=$('<button role="button" aria-disabled="false">');button.addClass(this.class).html('<span class="ui-button-text">'+this.text+'</span>').on('click',this.click.bind(self.element)).appendTo(buttonSet);});this.dialog.append(pane);},init:function(){var self=this;this.trigger=this.options.triggerTarget?$(this.options.triggerTarget):false;if(this.trigger){$(this.trigger).off('click.dropdownDialog');$(this.trigger).on('click.dropdownDialog',function(event){event.preventDefault();self.toggle();});this._on(this.trigger,{keydown:function(e){if(e.key===' '){e.preventDefault();self.toggle();}}});}},destroy:function(){this.close();this._super();},open:function(){this.status=true;if(this.options.autoPosition&&this.options.position.of){this.updatePosition();} 4this.dialog.show();this.toggleClasses(true);this.closeHandler=this.close.bind(this);$(window).one('breeze:resize-x.dropdownDialog',this.closeHandler);this._trigger('open');},close:function(){this.status=false;this.dialog.hide();this.toggleClasses(false);$(window).off('breeze:resize-x.dropdownDialog',this.closeHandler);this._trigger('close');},toggleClasses:function(flag){if(this.options.dialogContentClass){this.element.toggleClass(this.options.dialogContentClass,flag);} 5if(this.options.triggerClass&&this.trigger){$(this.trigger).toggleClass(this.options.triggerClass,flag);} 6if(this.options.parentClass){$(this.options.appendTo).toggleClass(this.options.parentClass,flag);} 7if(this.options.bodyClass){$('body').toggleClass(this.options.bodyClass,flag);}},toggle:function(){if(this.status){this.close();}else{this.open();}},updatePosition:function(){var target=this.options.position.of,targetCoords=target.offset(),viewportWidth=$(document.body).width(),offset,width,left,diff;this.hinter.css('left','');this.dialog.css({position:'',left:'',top:''}).show();offset=this.dialog.offset();width=this.dialog.width();if(!this.status){this.dialog.hide();} 8left=targetCoords.left;diff=left+width-viewportWidth;if(diff>0){left-=diff;if(this.hinter){this.hinter.css('left',this.hinter.position().left+diff);}} 9this.dialog.css({position:'relative',left:left,top:targetCoords.top-offset.top+target.height()});}});$(document).on('click.dropdownDialog',function(event){var dropdown=$(event.target).closest('[role="dialog"]').children().dropdownDialog('instance'),modalContext=$(event.target).closest('.modal-popup');$.widget('dropdownDialog').each(function(widget){if(!widget.status||$(widget.trigger).has(event.target).length){return;} 10if(modalContext.length&&!modalContext.has(widget.element.get(0)).length&&(!widget.trigger||!modalContext.has(widget.trigger.get(0)).length)){return;} 11if(widget.options.closeOnClickOutside&&dropdown!==widget){widget.close();}});});})();
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.