PageSourceSearch

https://www.slcs.ca/app/themes/st-leonards/js/gravity-form.js?x74774

js slcs.ca collected 2026-10-05 02:10:24 UTC 5,867 bytes, 175 lines download raw bytes

1$(document).on('gform_post_render', function() {
2	var $form_wrappers = $(this).find('.gform_wrapper');
3
4	var gDate = $form_wrappers.find('.ginput_container_date');
5	$.each(gDate, function() {
6		if ($(this).find('.datepicker').hasClass('datepicker_with_icon')) {
7			$(this).closest('.gfield').addClass('gfield_is_date_with_icon');
8		}
9	});
10
11	var gFile = $form_wrappers.find('.ginput_container_fileupload');
12
13	gFile.each(function() {
14		$(this).closest('.gfield').addClass('gfield_is_fileupload');
15
16		// Filename text on upload
17		if ( ! $(this).siblings('.ginput_container_fileupload_filename').length ) {
18			$(this).parent('.gfield').append('<div class="ginput_container_fileupload_filename">No file chosen</div>');
19		}
20
21		$(this).find('input[type="file"]').on('change', function() {
22			if ($(this).val().length) {
23				$(this).parent('.ginput_container_fileupload').next('.ginput_container_fileupload_filename').text($(this).val().split('\\').pop());
24			}
25			else {
26				$(this).parent('.ginput_container_fileupload').next('.ginput_container_fileupload_filename').text('No File chosen');
27			}
28		});
29
30		// Focus/Blur class for hidden input
31		$(this).find('input[type="file"]').focus(function() {
32			$(this).closest('.ginput_container_fileupload').addClass('focus');
33		});
34		$(this).find('input[type="file"]').blur(function() {
35			$(this).closest('.ginput_container_fileupload').removeClass('focus');
36		});
37	});
38
39	//Move labels next to their input
40	var gLabels = $form_wrappers.find('.gfield_label');
41	$.each(gLabels, function() {
42		var gLabelFor = $(this).attr('for');
43		if (gLabelFor) {
44			var gLabelForInput = $('#'+gLabelFor);
45			if (!gLabelForInput.is('[type="file"]')) {
46				$(this).detach().insertBefore(gLabelForInput);
47			}
48		}
49	});
50
51	var gInputsLg = $form_wrappers.find('.large');
52	$.each(gInputsLg, function() {
53		$(this).closest('.gfield').addClass('form-group-lg');
54	});
55
56	var gInputsSm = $form_wrappers.find('.small');
57	$.each(gInputsSm, function() {
58		$(this).closest('.gfield').addClass('form-group-sm');
59	});
60
61	// Elements with collapsed labels
62	var gLabelsCollapsed = [
63		$form_wrappers.find('.ginput_container_select'),
64	];
65	$.each(gLabelsCollapsed, function() {
66		var gSelect = $(this).find('select');
67
68		if (gSelect.find('option:selected').text().length !== 0) {
69			gSelect.parents('.gfield').addClass('gfield_has_val');
70		}
71
72		$(this).on('focusin', function(event) {
73			$(event.target).parents('.ginput_container').addClass('gfield_active');
74		}).on('focusout', function(event) {
75			$(event.target).parents('.ginput_container').removeClass('gfield_active');
76			if ( $(event.target).val().length) {
77				$(event.target).parents('.ginput_container').addClass('gfield_has_val');
78			}  else {
79				$(event.target).parents('.ginput_container').removeClass('gfield_has_val');
80			}
81		});
82	});
83
84	// Elements with no labels (or labels placed outside of input)
85	var gLabelsLegend = [
86		$form_wrappers.find('.ginput_container_address'),
87		$form_wrappers.find('.ginput_container_checkbox'),
88		$form_wrappers.find('.ginput_container_list'),
89		$form_wrappers.find('.ginput_container_name'),
90		$form_wrappers.find('.ginput_container_radio'),
91		$form_wrappers.find('.ginput_container_time')
92	];
93	$.each(gLabelsLegend, function() {
94		$(this).addClass('gfield_label_legend');
95	});
96
97	// Elements with no labels (or labels placed outside of input)
98	var gLabelsNone = [
99		$form_wrappers.find('.gfield_list_container'),
100		$form_wrappers.find('.ginput_container_multiselect'),
101		$form_wrappers.find('.ginput_container_textarea'),
102		$form_wrappers.find('.ginput_container_time')
103	];
104	$.each(gLabelsNone, function() {
105		$(this).parents('.gfield').addClass('gfield_label_none');
106	});
107
108	var gTextarea = $form_wrappers.find('.ginput_container_textarea');
109	$.each(gTextarea, function() {
110		$(this).closest('.gfield').addClass('gfield_is_textarea');
111	});
112
113	var gSelectMulti = $form_wrappers.find('.ginput_container_multiselect');
114	$.each(gSelectMulti, function() {
115		$(this).closest('.gfield').addClass('gfield_is_multiselect');
116	});
117
118	var gfield_complex = $form_wrappers.find('.ginput_complex');
119	$.each(gfield_complex, function() {
120		$(this).closest('.gfield').addClass('gfield_is_complex');
121	});
122
123	var gfield_checkbox = $form_wrappers.find('.ginput_container_checkbox');
124	$.each(gfield_checkbox, function() {
125		$(this).closest('.gfield').addClass('gfield_is_checkbox');
126	});
127
128	var gfield_radio = $form_wrappers.find('.ginput_container_radio');
129	$.each(gfield_radio, function() {
130		$(this).closest('.gfield').addClass('gfield_is_radio');
131	});
132
133	$('.ginput_container_textarea, .clear-multi, .ginput_container_multiselect, .ginput_complex').parents('.gfield').addClass('full-width');
134});
135
136$(document).on('gform_post_render', function(){
137	if ( $('.ginput_container_fileupload_filename').length && $('.ginput_preview').length ) {
138		$('.ginput_container_fileupload_filename').html($('.ginput_preview').parent('div'));
139	}
140});
141
142// reCaptcha accessibility fixes
143var fixReCaptcha = function(){
144	document.querySelectorAll('.ginput_recaptcha iframe').forEach(function(iframe){
145		iframe.setAttribute('title', 'ReCaptcha frame');
146	});
147	document.querySelectorAll('.g-recaptcha-response').forEach(function(input){
148		input.setAttribute('aria-label', 'ReCaptcha Response');
149	});
150}
151fixReCaptcha();
152var observer = new MutationObserver(function(mutations){
153	mutations.forEach(function(mutation){
154		if (!mutation.addedNodes) return;
155		for (var i = 0; i < mutation.addedNodes.length; i++) {
156			var node = mutation.addedNodes[i];
157			var parent = node.parentElement;
158
159			if(!node || !node.tagName){
160				return;
161			}
162
163			if(node.tagName.toLowerCase() === 'iframe' && parent && parent.classList.contains('ginput_recaptcha')){
164				fixReCaptcha();
165				observer.disconnect();
166			}
167		}
168	});
169});
170observer.observe(document.body, {
171	childList: true,
172	subtree: true,
173	attributes: false,
174	characterData: false,
175});

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.