PageSourceSearch

https://www.authorhouse.com/-/media/asl/js/common/intl-tel/intltelinput-setup.ashx

js authorhouse.com collected 2026-09-24 09:11:41 UTC 24,371 bytes, 753 lines download raw bytes

1"use strict";
2
3// @ts-check
4// IPINFO Module
5var IPINFO = function ($, STATEHANDLER) {
6  // **************************************************************************
7  // PRIVATE
8  // **************************************************************************
9  // Country code list
10  var countryList = {
11    AF: 'AFG',
12    AL: 'ALB',
13    DZ: 'DZA',
14    AS: 'ASM',
15    AD: 'AND',
16    AO: 'AGO',
17    AI: 'AIA',
18    AG: 'ATG',
19    AR: 'ARG',
20    AM: 'ARM',
21    AW: 'ABW',
22    AU: 'AUS',
23    AT: 'AUT',
24    AZ: 'AZE',
25    BS: 'BHS',
26    BH: 'BHR',
27    BD: 'BGD',
28    BB: 'BRB',
29    BY: 'BLR',
30    BE: 'BEL',
31    BZ: 'BLZ',
32    BJ: 'BEN',
33    BM: 'BMU',
34    BT: 'BTN',
35    BO: 'BOL',
36    BA: 'BIH',
37    BW: 'BWA',
38    BR: 'BRA',
39    IO: 'BGR',
40    VG: 'VGB',
41    BN: 'BRN',
42    BG: 'BGR',
43    BF: 'BFA',
44    BI: 'BDI',
45    KH: 'KHM',
46    CM: 'CMR',
47    CA: 'CAN',
48    CV: 'CPV',
49    BQ: 'ANT',
50    KY: 'CYM',
51    CF: 'CAF',
52    TD: 'TCD',
53    CL: 'CHL',
54    CN: 'CHN',
55    CO: 'COL',
56    KM: 'COM',
57    CD: 'COD',
58    CG: 'COG',
59    CK: 'COK',
60    CR: 'CRI',
61    CI: 'CIV',
62    HR: 'HRV',
63    CU: 'CUB',
64    CW: 'CUW',
65    CY: 'CYP',
66    CZ: 'CZE',
67    DK: 'DNK',
68    DJ: 'DJI',
69    DM: 'DMA',
70    DO: 'DOM',
71    EC: 'ECU',
72    EG: 'EGY',
73    SV: 'SLV',
74    GQ: 'GNQ',
75    ER: 'ERI',
76    EE: 'EST',
77    ET: 'ETH',
78    FK: 'FLK',
79    FO: 'FRO',
80    FJ: 'FJI',
81    FI: 'FIN',
82    FR: 'FRA',
83    GF: 'GUF',
84    PF: 'PYF',
85    GA: 'GAB',
86    GM: 'GMB',
87    GE: 'GEO',
88    DE: 'DEU',
89    GH: 'GHA',
90    GI: 'GIB',
91    GR: 'GRC',
92    GL: 'GRL',
93    GD: 'GRD',
94    GP: 'GLP',
95    GU: 'GUM',
96    GT: 'GTM',
97    GN: 'GIN',
98    GW: 'GNB',
99    GY: 'GUY',
100    HT: 'HTI',
101    HN: 'HND',
102    HK: 'HKG',
103    HU: 'HUN',
104    IS: 'ISL',
105    IN: 'IND',
106    ID: 'IDN',
107    IR: 'IRN',
108    IQ: 'IRQ',
109    IE: 'IRL',
110    IL: 'ISR',
111    IT: 'ITA',
112    JM: 'JAM',
113    JP: 'JPN',
114    JO: 'JOR',
115    KZ: 'KAZ',
116    KE: 'KEN',
117    KI: 'KIR',
118    KW: 'KWT',
119    KG: 'KGZ',
120    LA: 'LAO',
121    LV: 'LVA',
122    LB: 'LBN',
123    LS: 'LSO',
124    LR: 'LBR',
125    LY: 'LBY',
126    LI: 'LIE',
127    LT: 'LTU',
128    LU: 'LUX',
129    MO: 'MAC',
130    MK: 'MKD',
131    MG: 'MDG',
132    MW: 'MWI',
133    MY: 'MYS',
134    MV: 'MDV',
135    ML: 'MLI',
136    MT: 'MLT',
137    MH: 'MHL',
138    MQ: 'MTQ',
139    MR: 'MRT',
140    MU: 'MUS',
141    MX: 'MEX',
142    FM: 'FSM',
143    MD: 'MDA',
144    MC: 'MCO',
145    MN: 'MNG',
146    ME: 'MNE',
147    MS: 'MSR',
148    MA: 'MAR',
149    MZ: 'MOZ',
150    MM: 'MMR',
151    NA: 'NAM',
152    NR: 'NRU',
153    NP: 'NPL',
154    NL: 'NLD',
155    NC: 'NCL',
156    NZ: 'NZL',
157    NI: 'NIC',
158    NE: 'NER',
159    NG: 'NGA',
160    NU: 'NIU',
161    NF: 'NFK',
162    KP: 'PRK',
163    MP: 'MNP',
164    NO: 'NOR',
165    OM: 'OMN',
166    PK: 'PAK',
167    PW: 'PLW',
168    PS: 'PSE',
169    PA: 'PAN',
170    PG: 'PNG',
171    PY: 'PRY',
172    PE: 'PER',
173    PH: 'PHL',
174    PL: 'POL',
175    PT: 'PRT',
176    PR: 'PRI',
177    QA: 'QAT',
178    RE: 'REU',
179    RO: 'ROU',
180    RU: 'RUS',
181    RW: 'RWA',
182    BL: 'BLM',
183    SH: 'SHN',
184    KN: 'KNA',
185    LC: 'LCA',
186    MF: 'MAF',
187    PM: 'SPM',
188    VC: 'VCT',
189    WS: 'WSM',
190    SM: 'SMR',
191    ST: 'STP',
192    SA: 'SAU',
193    SN: 'SEN',
194    RS: 'SRB',
195    SC: 'SYC',
196    SL: 'SLE',
197    SG: 'SGP',
198    SX: 'SXM',
199    SK: 'SVK',
200    SI: 'SVN',
201    SB: 'SLB',
202    SO: 'SOM',
203    ZA: 'ZAF',
204    KR: 'KOR',
205    SS: 'SSD',
206    ES: 'ESP',
207    LK: 'LKA',
208    SD: 'SDN',
209    SR: 'SUR',
210    SZ: 'SWZ',
211    SE: 'SWE',
212    CH: 'CHE',
213    SY: 'SYR',
214    TW: 'TWN',
215    TJ: 'TJK',
216    TZ: 'TZA',
217    TH: 'THA',
218    TL: 'TLS',
219    TG: 'TGO',
220    TK: 'TKL',
221    TO: 'TON',
222    TT: 'TTO',
223    TN: 'TUN',
224    TR: 'TUR',
225    TM: 'TKM',
226    TC: 'TCA',
227    TV: 'TUV',
228    VI: 'VIR',
229    UG: 'UGA',
230    UA: 'UKR',
231    AE: 'ARE',
232    GB: 'GBR',
233    US: 'USA',
234    UY: 'URY',
235    UZ: 'UZB',
236    VU: 'VUT',
237    VA: 'VAT',
238    VE: 'VEN',
239    VN: 'VNM',
240    WF: 'WLF',
241    YE: 'YEM',
242    ZM: 'ZMB',
243    ZW: 'ZWE'
244  }; // State list
245
246  var stateList = {
247    'AL': 'Alabama',
248    'AK': 'Alaska',
249    'AZ': 'Arizona',
250    'AR': 'Arkansas',
251    'CA': 'California',
252    'CO': 'Colorado',
253    'CT': 'Connecticut',
254    'DE': 'Delaware',
255    'DC': 'District, Columbia',
256    'FL': 'Florida',
257    'GA': 'Georgia',
258    'HI': 'Hawaii',
259    'ID': 'Idaho',
260    'IL': 'Illinois',
261    'IN': 'Indiana',
262    'IA': 'Iowa',
263    'KS': 'Kansas',
264    'KY': 'Kentucky',
265    'LA': 'Louisiana',
266    'ME': 'Maine',
267    'MD': 'Maryland',
268    'MA': 'Massachusetts',
269    'MI': 'Michigan',
270    'MN': 'Minnesota',
271    'MS': 'Mississippi',
272    'MO': 'Missouri',
273    'MT': 'Montana',
274    'NE': 'Nebraska',
275    'NV': 'Nevada',
276    'NH': 'New Hampsh,',
277    'NJ': 'New Jer,',
278    'NM': 'New Mex,',
279    'NY': 'New Y,',
280    'NC': 'North Carol,',
281    'ND': 'North Dak,',
282    'OH': 'Ohio',
283    'OK': 'Oklahoma',
284    'OR': 'Oregon',
285    'PA': 'Pennsylvania',
286    'RI': 'Rhode Isl,',
287    'SC': 'South Carol,',
288    'SD': 'South Dak,',
289    'TN': 'Tennessee',
290    'TX': 'Texas',
291    'UT': 'Utah',
292    'VT': 'Vermont',
293    'VA': 'Virginia',
294    'WA': 'Washington',
295    'WV': 'West Virgi,',
296    'WI': 'Wisconsin',
297    'WY': 'Wyoming',
298    'AA': 'Armed For, Americas',
299    'AP': 'Armed For, Pacific',
300    'AE': 'Armed For, Other',
301    'AB': 'Alberta',
302    'BC': 'British Colum,',
303    'MB': 'Manitoba',
304    'NB': 'New Brunsw,',
305    'NF': 'Newfoundland',
306    'NT': 'Northwest Territor,',
307    'NS': 'Nova Sco,',
308    'ON': 'Ontario',
309    'PE': 'Prince Edw, Island',
310    'QC': 'Quebec',
311    'SK': 'Saskatchewan',
312    'YT': 'Yukon',
313    'AGS': 'Aguascalientes',
314    'BCN': 'Baja Califor, Norte',
315    'BCS': 'Baja Califor, Sur',
316    'CAM': 'Campeche',
317    'CHIS': 'Chiapas',
318    'CHIH': 'Chihuahua',
319    'COAH': 'Coahuila',
320    'COL': 'Colima',
321    'DF': 'Distrito Fede,',
322    'DGO': 'Durango',
323    'GTO': 'Guanajuato',
324    'GRO': 'Guerrero',
325    'HGO': 'Hidalgo',
326    'JAL': 'Jalisco',
327    'EDM': 'Mexic, Estado de',
328    'MICH': 'Michoacan',
329    'MOR': 'Morelos',
330    'NAY': 'Nayarit',
331    'NL': 'Nuevo L,',
332    'OAX': 'Oaxaca',
333    'PUE': 'Puebla',
334    'QRO': 'Queretaro',
335    'QROO': 'Quintana ,',
336    'SLP': 'San L, Potosi',
337    'SIN': 'Sinaloa',
338    'SON': 'Sonora',
339    'TAB': 'Tabasco',
340    'TAMPS': 'Tamaulipas',
341    'TLAX': 'Tlaxcala',
342    'VER': 'Veracruz',
343    'YUC': 'Yucatan',
344    'ZAC': 'Zacatecas'
345  }; // Function to initialize IPINFO module
346  // @params: module settings
347
348  function init() {
349    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
350        _ref$defaultCountry = _ref.defaultCountry,
351        defaultCountry = _ref$defaultCountry === void 0 ? '' : _ref$defaultCountry,
352        _ref$showStateCheckli = _ref.showStateChecklist,
353        showStateChecklist = _ref$showStateCheckli === void 0 ? ['USA'] : _ref$showStateCheckli,
354        _ref$euChecklist = _ref.euChecklist,
355        euChecklist = _ref$euChecklist === void 0 ? ['AUT', 'BEL', 'BGR', 'HRV', 'CYP', 'CZE', 'DNK', 'EST', 'FIN', 'FRA', 'DEU', 'GRC', 'HUN', 'IRL', 'ITA', 'LVA', 'LTU', 'LUX', 'MLT', 'NLD', 'POL', 'PRT', 'ROM', 'SVK', 'SVN', 'ESP', 'SWE', 'GBR'] : _ref$euChecklist,
356        _ref$phoneProxyDataNa = _ref.phoneProxyDataName,
357        phoneProxyDataName = _ref$phoneProxyDataNa === void 0 ? 'phone-proxy' : _ref$phoneProxyDataNa,
358        _ref$phoneDataName = _ref.phoneDataName,
359        phoneDataName = _ref$phoneDataName === void 0 ? 'Phone' : _ref$phoneDataName,
360        _ref$countryDataName = _ref.countryDataName,
361        countryDataName = _ref$countryDataName === void 0 ? 'Country' : _ref$countryDataName,
362        _ref$ipDataName = _ref.ipDataName,
363        ipDataName = _ref$ipDataName === void 0 ? 'userIPAddr' : _ref$ipDataName,
364        _ref$locDataName = _ref.locDataName,
365        locDataName = _ref$locDataName === void 0 ? 'userGeoLoc' : _ref$locDataName,
366        _ref$postalDataName = _ref.postalDataName,
367        postalDataName = _ref$postalDataName === void 0 ? 'userPostalCode' : _ref$postalDataName,
368        _ref$stateDataName = _ref.stateDataName,
369        stateDataName = _ref$stateDataName === void 0 ? 'State' : _ref$stateDataName,
370        _ref$postal2DataName = _ref.postal2DataName,
371        postal2DataName = _ref$postal2DataName === void 0 ? 'PostalCode' : _ref$postal2DataName,
372        _ref$optInEmailDataNa = _ref.optInEmailDataName,
373        optInEmailDataName = _ref$optInEmailDataNa === void 0 ? 'lead[exmailers]' : _ref$optInEmailDataNa,
374        _ref$optInHiddenDataN = _ref.optInHiddenDataNameList,
375        optInHiddenDataNameList = _ref$optInHiddenDataN === void 0 ? ['lead[optin_phone]', 'lead[sms_text]'] : _ref$optInHiddenDataN,
376        _ref$formClass = _ref.formClass,
377        formClass = _ref$formClass === void 0 ? 'LeadForm' : _ref$formClass,
378        _ref$optInClass = _ref.optInClass,
379        optInClass = _ref$optInClass === void 0 ? 'opt-ins' : _ref$optInClass,
380        _ref$optInReqClass = _ref.optInReqClass,
381        optInReqClass = _ref$optInReqClass === void 0 ? 'opt-in-required' : _ref$optInReqClass,
382        _ref$disclaimerEuClas = _ref.disclaimerEuClass,
383        disclaimerEuClass = _ref$disclaimerEuClas === void 0 ? 'disclaimer-eu' : _ref$disclaimerEuClas,
384        _ref$disclaimerNonEuC = _ref.disclaimerNonEuClass,
385        disclaimerNonEuClass = _ref$disclaimerNonEuC === void 0 ? 'disclaimer-non-eu' : _ref$disclaimerNonEuC,
386        _ref$hiddenClass = _ref.hiddenClass,
387        hiddenClass = _ref$hiddenClass === void 0 ? 'hidden' : _ref$hiddenClass,
388        _ref$submitBtnClass = _ref.submitBtnClass,
389        submitBtnClass = _ref$submitBtnClass === void 0 ? 'btn-submit' : _ref$submitBtnClass,
390        _ref$submitValDefault = _ref.submitValDefault,
391        submitValDefault = _ref$submitValDefault === void 0 ? $(".".concat(submitBtnClass)).val() || $(".".concat(submitBtnClass)).text() : _ref$submitValDefault,
392        _ref$submitValEu = _ref.submitValEu,
393        submitValEu = _ref$submitValEu === void 0 ? 'Submit' : _ref$submitValEu,
394        _ref$btnDisabledClass = _ref.btnDisabledClass,
395        btnDisabledClass = _ref$btnDisabledClass === void 0 ? 'btn-disabled' : _ref$btnDisabledClass,
396        _ref$ipInfoUrl = _ref.ipInfoUrl,
397        ipInfoUrl = _ref$ipInfoUrl === void 0 ? 'https://ipinfo.io/?token=11627ae1b2831c' : _ref$ipInfoUrl,
398        _ref$pathToUtils = _ref.pathToUtils,
399        pathToUtils = _ref$pathToUtils === void 0 ? '/js/intl-tel-input-v12.1.6/js/utils.js' : _ref$pathToUtils;
400
401    var trackedCountry; // initialize intl-tel-input plugin 
402
403    $("[data-sc-field-name=\"".concat(phoneProxyDataName, "\"]")).intlTelInput({
404      initialCountry: 'auto',
405      utilsScript: pathToUtils,
406      autoPlaceholder: 'aggressive',
407      customPlaceholder: function customPlaceholder(selectedCountryPlaceholder, selectedCountryData) {
408        // remove parenthesis in placeholders
409        return selectedCountryPlaceholder.replace(/\(|\)/g, '');
410      },
411      geoIpLookup: function geoIpLookup(callback) {
412        $.get(ipInfoUrl, function () {}, 'jsonp').always(function (resp) {
413          // filtering so that we won't get 'undefined'
414          var phoneVal = '',
415              countryVal = resp && resp.country ? resp.country : '',
416              ipVal = resp && resp.ip ? resp.ip : '',
417              locVal = resp && resp.loc ? resp.loc : '',
418              postalVal = resp && resp.postal ? resp.postal : '',
419              stateVal = resp && resp.region ? resp.region : ''; // convert country code
420
421          trackedCountry = !defaultCountry.length ? mapCountry(countryVal) : defaultCountry.toUpperCase(); // doing reverse lookup to get 2-digit code of trackedCountry
422
423          var countryProp = getProp(countryList, trackedCountry);
424          callback(countryProp); // set initial values on page load
425
426          var setInfoValues = {
427            phoneVal: phoneVal,
428            trackedCountry: trackedCountry,
429            ipVal: ipVal,
430            locVal: locVal,
431            postalVal: postalVal,
432            phoneDataName: phoneDataName,
433            countryDataName: countryDataName,
434            ipDataName: ipDataName,
435            locDataName: locDataName,
436            postalDataName: postalDataName,
437            formClass: formClass
438          };
439          setInfo(setInfoValues); // event listener to update country value
440
441          var updateCountryValues = {
442            phoneProxyDataName: phoneProxyDataName,
443            countryDataName: countryDataName,
444            stateDataName: stateDataName,
445            postal2DataName: postal2DataName,
446            stateVal: stateVal,
447            euChecklist: euChecklist,
448            showStateChecklist: showStateChecklist,
449            optInClass: optInClass,
450            optInEmailDataName: optInEmailDataName,
451            optInHiddenDataNameList: optInHiddenDataNameList,
452            optInReqClass: optInReqClass,
453            disclaimerEuClass: disclaimerEuClass,
454            disclaimerNonEuClass: disclaimerNonEuClass,
455            submitBtnClass: submitBtnClass,
456            submitValDefault: submitValDefault,
457            submitValEu: submitValEu,
458            btnDisabledClass: btnDisabledClass,
459            hiddenClass: hiddenClass
460          };
461          updateCountry(updateCountryValues);
462        });
463      }
464    }); // update phone to international number
465
466    updateIntlPhone(phoneProxyDataName, phoneDataName);
467  } // Function to convert 2-digit country code to 3-digit
468  // @params: 'string' = 2-digit country code
469  // @return: 'string' = 3-digit country code
470
471
472  function mapCountry(countryCode) {
473    var mappedCountry = countryCode.length ? countryList[countryCode.toUpperCase()] : countryCode;
474    return mappedCountry;
475  } // Function to get property of an object using a given value
476  // @params: 'object' = object list, 'string' = value
477  // @return: 'string' = property of an object
478
479
480  function getProp(objList, objVal) {
481    for (var prop in objList) {
482      if (objList[prop] === objVal) {
483        return prop;
484      }
485    }
486  } // Function to set initial values on page load
487  // @params: 'object' = collection of values
488
489
490  function setInfo(values) {
491    var phoneVal = values.phoneVal,
492        trackedCountry = values.trackedCountry,
493        ipVal = values.ipVal,
494        locVal = values.locVal,
495        postalVal = values.postalVal,
496        phoneDataName = values.phoneDataName,
497        countryDataName = values.countryDataName,
498        ipDataName = values.ipDataName,
499        locDataName = values.locDataName,
500        postalDataName = values.postalDataName,
501        formClass = values.formClass; // Function to set value for existing input element or create new hidden fields
502
503    function setter(inputDataName, value, formClass) {
504      // check if input field already exist and change its value
505      var $input = $("[data-sc-field-name=\"".concat(inputDataName, "\"]"));
506
507      if ($input.length) {
508        $input.val(value);
509      } // else create input element and set the value
510      else {
511          var inputField = "<input data-sc-field-name=\"".concat(inputDataName, "\" type=\"hidden\" value=\"").concat(value, "\" />");
512          $(".".concat(formClass)).append(inputField);
513        }
514    }
515
516    setter(phoneDataName, phoneVal, formClass);
517    setter(countryDataName, trackedCountry, formClass);
518    setter(ipDataName, ipVal, formClass);
519    setter(locDataName, locVal, formClass);
520    setter(postalDataName, postalVal, formClass);
521  } // Function to check if country code match our checklist
522  // @params: 'array' = country list, 'string' = country code
523  // @return: 'boolean'
524
525
526  function countryMatch(checkList, trackedCountry) {
527    return checkList.indexOf(trackedCountry) > -1;
528  } // Function to check country and toggle opt-ins, toggle state
529  // @params: 'object' = collection of values
530
531
532  function countryChecker(values) {
533    var euChecklist = values.euChecklist,
534        showStateChecklist = values.showStateChecklist,
535        trackedCountry = values.trackedCountry,
536        optInClass = values.optInClass,
537        optInEmailDataName = values.optInEmailDataName,
538        optInHiddenDataNameList = values.optInHiddenDataNameList,
539        disclaimerEuClass = values.disclaimerEuClass,
540        disclaimerNonEuClass = values.disclaimerNonEuClass,
541        stateDataName = values.stateDataName,
542        postal2DataName = values.postal2DataName,
543        optInReqClass = values.optInReqClass,
544        submitBtnClass = values.submitBtnClass,
545        submitValDefault = values.submitValDefault,
546        submitValEu = values.submitValEu,
547        btnDisabledClass = values.btnDisabledClass,
548        hiddenClass = values.hiddenClass;
549    var $optIn = $(".".concat(optInClass));
550    var $disclaimerEuClass = $(".".concat(disclaimerEuClass));
551    var $disclaimerNonEuClass = $(".".concat(disclaimerNonEuClass)); // toggle opt-ins,
552    // toggle disclaimer,
553    // check required opt-in and toggle/disable submit button
554    // change submit button value based on EU checlist
555
556   //  if (countryMatch(euChecklist, trackedCountry)) {
557    if (trackedCountry !== 'USA') {
558      $optIn.removeClass(hiddenClass);
559      $optIn.find('input[type="checkbox"]').prop('checked', false);
560      $disclaimerEuClass.removeClass(hiddenClass);
561      $disclaimerNonEuClass.addClass(hiddenClass);
562      optInRequiredOn(optInReqClass, submitBtnClass, btnDisabledClass);
563      $(".".concat(submitBtnClass)).val(submitValEu).text(submitValEu);
564    } else {
565      $optIn.addClass(hiddenClass);
566      $optIn.find('input[type="checkbox"]').prop('checked', true);
567      $disclaimerEuClass.addClass(hiddenClass);
568      $disclaimerNonEuClass.removeClass(hiddenClass);
569      optInRequiredOff(optInReqClass, submitBtnClass, btnDisabledClass);
570      $(".".concat(submitBtnClass)).val(submitValDefault).text(submitValDefault);
571    } // sync the visible and hidden opt-ins
572
573
574    optInSync(optInEmailDataName, optInHiddenDataNameList); // toggle state and postal field
575
576    var $state = $("[data-sc-field-name=\"".concat(stateDataName, "\"]"));
577    var $postal = $("[data-sc-field-name=\"".concat(postal2DataName, "\"]"));
578
579    if (countryMatch(showStateChecklist, trackedCountry)) {
580      $state.removeClass(hiddenClass);
581      $(".form__label__zip").removeClass(hiddenClass);
582      $postal.removeClass(hiddenClass);
583      $postal.val('');
584    } else {
585      $state.addClass(hiddenClass);
586      $(".form__label__zip").addClass(hiddenClass);
587      $state.val('');
588      $postal.addClass(hiddenClass);
589      $postal.val('00000');
590    }
591  } // Function to toggle/disable submit button if required opt-in is not checked
592  // @params: 'string' optInReqClass, submitBtnClass
593
594
595  function optInRequired(optInReqClass, submitBtnClass, btnDisabledClass) {
596    var $optInReq = $(".".concat(optInReqClass)),
597        optInReqNum = $optInReq.length; // get how many are required opt-ins
598    // check how many required opt-ins are 'checked'
599
600    var optInCheck = $optInReq.filter(function () {
601      return $(this).prop('checked');
602    }); // if all required opt-ins are checked, enable submit button
603
604    var $submitBtn = $(".".concat(submitBtnClass));
605
606    if (optInCheck.length === optInReqNum) {
607      $submitBtn.prop('disabled', false);
608      $submitBtn.removeClass(btnDisabledClass);
609    } else {
610      $submitBtn.prop('disabled', true);
611      $submitBtn.addClass(btnDisabledClass);
612    }
613  } // Function for load/event listener for optInRequired()
614  // @params: 'string' optInReqClass, submitBtnClass, btnDisabledClass
615
616
617  function optInRequiredOn(optInReqClass, submitBtnClass, btnDisabledClass) {
618    var $optInReq = $(".".concat(optInReqClass));
619
620    if ($optInReq.length) {
621      // on page load
622      optInRequired(optInReqClass, submitBtnClass, btnDisabledClass); // on-change
623
624      $optInReq.on('change', function () {
625        optInRequired(optInReqClass, submitBtnClass, btnDisabledClass);
626      });
627    }
628  } // Function to remove load/event listener for optInRequired()
629  // @params: 'string' optInReqClass, submitBtnClass, btnDisabledClass
630
631
632  function optInRequiredOff(optInReqClass, submitBtnClass, btnDisabledClass) {
633    $(".".concat(optInReqClass)).off();
634    var $submitBtn = $(".".concat(submitBtnClass));
635    $submitBtn.prop('disabled', false);
636    $submitBtn.removeClass(btnDisabledClass);
637  } // Function to update phone input to International number
638  // @params: 'string' = phone proxy id, phone id
639
640
641  function updateIntlPhone(phoneProxyDataName, phoneDataName) {
642    // listen to "keyup", but also "change" to update when the user selects a country
643    var $phoneProxy = $("[data-sc-field-name=\"".concat(phoneProxyDataName, "\"]"));
644    $phoneProxy.on('keyup change', function () {
645      var intlNumber = $phoneProxy.intlTelInput('getNumber');
646
647      /*if (intlNumber) {
648        if (intlNumber.match(/^\+1/)) {
649          // if USA
650          // remove country code
651          var natlNumber = intlNumber.slice(2);
652          $("[data-sc-field-name=\"".concat(phoneDataName, "\"]")).val(natlNumber);
653        } else {
654          $("[data-sc-field-name=\"".concat(phoneDataName, "\"]")).val(intlNumber);
655        }
656      }*/
657      $("[data-sc-field-name=\"".concat(phoneDataName, "\"]")).val(intlNumber);
658    });
659  } // Function to update country by listening to onchange event
660  // @params: 'object' = collection of values
661
662
663  function updateCountry(values) {
664    var phoneProxyDataName = values.phoneProxyDataName,
665        countryDataName = values.countryDataName,
666        stateDataName = values.stateDataName,
667        stateVal = values.stateVal;
668    $("[data-sc-field-name=\"".concat(phoneProxyDataName, "\"]")).on('countrychange', function (e, countryData) {
669      // update country value
670      var countryCode = mapCountry(countryData.iso2);
671      $("[data-sc-field-name=\"".concat(countryDataName, "\"]")).val(countryCode);
672      values.trackedCountry = countryCode; // this set the value of State for some forms that have State field
673
674      var $state = $("[data-sc-field-name=\"".concat(stateDataName, "\"]"));
675
676      if ($state.length) {
677        STATEHANDLER.countryChangeHandler(countryDataName, stateDataName, true);
677 // get code of State
678
679        var stateProp = getProp(stateList, stateVal);
680
681        if (stateProp) {
682          $state.val(stateProp);
683        }
684      } // country checker
685
686
687      countryChecker(values);
688    });
689  } // Function to also check the hidden checkbox when the required opt-in is checked
690  // @params: 'string' = email opt-in name, phone opt-in name
691
692
693  function optInSync(optInEmailDataName, optInHiddenDataNameList) {
694    $("[data-sc-field-name=\"".concat(optInEmailDataName, "\"]")).on('change', function () {
695      if ($(this).prop('checked')) {
696        var _iteratorNormalCompletion = true;
697        var _didIteratorError = false;
698        var _iteratorError = undefined;
699
700        try {
701          for (var _iterator = optInHiddenDataNameList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
702            var dataName = _step.value;
703            $("[data-sc-field-name=\"".concat(dataName, "\"]")).prop('checked', true);
704          }
705        } catch (err) {
706          _didIteratorError = true;
707          _iteratorError = err;
708        } finally {
709          try {
710            if (!_iteratorNormalCompletion && _iterator.return != null) {
711              _iterator.return();
712            }
713          } finally {
714            if (_didIteratorError) {
715              throw _iteratorError;
716            }
717          }
718        }
719      } else {
720        var _iteratorNormalCompletion2 = true;
721        var _didIteratorError2 = false;
722        var _iteratorError2 = undefined;
723
724        try {
725          for (var _iterator2 = optInHiddenDataNameList[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
726            var _dataName = _step2.value;
727            $("[data-sc-field-name=\"".concat(_dataName, "\"]")).prop('checked', false);
728          }
729        } catch (err) {
730          _didIteratorError2 = true;
731          _iteratorError2 = err;
732        } finally {
733          try {
734            if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
735              _iterator2.return();
736            }
737          } finally {
738            if (_didIteratorError2) {
739              throw _iteratorError2;
740            }
741          }
742        }
743      }
744    });
745  } // **************************************************************************
746  // PUBLIC
747  // **************************************************************************
748
749
750  return {
751    init: init
752  };
753}(jQuery, STATEHANDLER); // end IPINFO Module

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.