PageSourceSearch

https://dfn.net/wp-content/themes/dfn/pivot-blocks/check-availabil…check-availability-widget.js?ver=1743031409

js dfn.net collected 2026-09-30 18:11:47 UTC 2,363 bytes, 57 lines download raw bytes

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.