1/** 2 * Deps: jquery 3 */ 4function CheckAvailabilityWidget( $container, details ){ 5 this.$container = $container; 6 this.$confirmationTexts = this.$container.find('.confirmation-text'); 7 this.details = details ? details : {}; 8 9 jQuery(window).on('check-availability-initialized', function(e){ 10 this.updateConditionalItemsVisibility(); 11 this.$container.addClass('initialized'); 12 }.bind(this) ); 13 jQuery(window).on('check-availability-update-start', function(e){ 14 $container.addClass('is-loading'); 15 }.bind(this) ); 16 jQuery(window).on('check-availability-updated', function(e){ 17 $container.removeClass('is-loading'); 18 $container.toggleClass('has-saved-info', !!e.eventData.has_saved_info ); 19 this.updateConditionalItemsVisibility(); 20 }.bind(this)); 21 jQuery(window).on('check-availability-clear-start', function(e){ 22 $container.addClass('is-loading'); 23 }.bind(this) ); 24 jQuery(window).on('check-availability-cleared', function(e){ 25 $container.removeClass('is-loading'); 26 this.updateConditionalItemsVisibility(); 27 }.bind(this) ); 28} 29 30CheckAvailabilityWidget.prototype.updateConditionalItemsVisibility = function(){ 31 this.$confirmationTexts.hide().removeClass('is-visible'); 32 // show items that match conditions 33 // including in service_links and confirmation texts etc 34 var _confirmationTextAlreadyMatched = false; 35 var $matchingConditions = this.$container.find('[data-check-availability-conditions]').hide().filter( function(i, el){ 36 var isConfirmationText = jQuery(el).hasClass('confirmation-text'); 37 if ( isConfirmationText && _confirmationTextAlreadyMatched ){ 38 return false; 39 } 40 var conditions = jQuery(el).data('check-availability-conditions'); 41 var matched = checkAvailability.matchesConditions(conditions); 42 if ( isConfirmationText && matched ){ 43 _confirmationTextAlreadyMatched = true; 44 } 45 return matched; 46 }.bind(this)).show().addClass('is-visible'); 47 if ( this.$confirmationTexts.filter('.is-visible').length === 0 ){ 48 if ( !checkAvailability.getCurrentInfo() || !checkAvailability.getCurrentInfo().isMatched ){ 49 this.$confirmationTexts.filter('.confirmation-unmatched').addClass('is-visible').show(); 50 } else { 51 this.$confirmationTexts.filter('.confirmation-default').addClass('is-visible').show(); 52 } 53 } 54 jQuery(window).trigger('resizeend'); 55 jQuery(window).trigger('resized-w'); 56 jQuery(window).trigger('resize'); 57}
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.