1class YandexMetrikaHandler { 2 constructor() { 3 this.counterId = 25103987; 4 } 5 6 reachGoal(targetName) { 7 if (typeof ym !== 'undefined') { 8 ym(this.counterId, 'reachGoal', targetName); 9 } 10 } 11 12 firstPartyParams(params) { 13 if (typeof ym !== 'undefined') { 14 for (let key in params) { 15 params[key] = params[key] ? params[key].trim().toLowerCase() : ''; 16 } 17 ym(this.counterId, 'firstPartyParams', params); 18 } 19 } 20} 21 22document.addEventListener('DOMContentLoaded', function() { 23 window.vym = new YandexMetrikaHandler(); 24}); 25 26//������� ������ �� crm-����� 27window.addEventListener('b24:form:send:success', (event) => { 28 const values = event.detail.object.values(); 29 const params = {} 30 if (values && values['CONTACT_NAME'] && Array.isArray(values['CONTACT_NAME']) && values['CONTACT_NAME'].length) { 31 params.first_name = values['CONTACT_NAME'][0]; 32 } 33 if (values && values['CONTACT_LAST_NAME'] && Array.isArray(values['CONTACT_LAST_NAME']) && values['CONTACT_LAST_NAME'].length) { 34 params.last_name = values['CONTACT_LAST_NAME'][0]; 35 } 36 if (values && values['CONTACT_PHONE'] && Array.isArray(values['CONTACT_PHONE']) && values['CONTACT_PHONE'].length) { 37 params.phone_number = values['CONTACT_PHONE'][0]; 38 } 39 if (values && values['CONTACT_EMAIL'] && Array.isArray(values['CONTACT_EMAIL']) && values['CONTACT_EMAIL'].length) { 40 params.email = values['CONTACT_EMAIL'][0]; 41 } 42 window.vym.firstPartyParams(params); 43}); 44 45$(document).on('submit', '[name="FEEDBACK_FORM"]', (event) => { 46 const form = event.target.closest('form'); 47 const formData = new FormData(form); 48 const params = {}; 49 if (formData.get('form_text_38')) { 50 params.first_name = formData.get('form_text_38'); 51 } 52 if (formData.get('form_text_39')) { 53 params.email = formData.get('form_text_39'); 54 } 55 if (formData.get('form_text_40')) { 56 params.phone_number = formData.get('form_text_40'); 57 } 58 window.vym.firstPartyParams(params); 59}) 60 61$(document).on('submit', '[name="SUBSCRIPTION_FORM"]', function(event) { 62 const formData = new FormData(event.target); 63 const params = {}; 64 if (formData.get('form_text_30')) { 65 params.email = formData.get('form_text_30'); 66 } 67 window.vym.firstPartyParams(params); 68}) 69 70document.addEventListener('user-login-event', function(event) { 71 const formData = event.detail.formData; 72 const params = {}; 73 const login = formData.get('login'); 74 75 if (~login.indexOf('@')) { 76 params.email = login; 77 } else { 78 params.phone_number = login; 79 } 80 window.vym.firstPartyParams(params); 81}) 82 83document.addEventListener('user-register-event', function(event) { 84 const formData = event.detail.formData; 85 const params = {}; 86 87 params.first_name = formData.get('REGISTER[firstName]'); 88 params.last_name = formData.get('REGISTER[lastName]'); 89 params.phone_number = formData.get('REGISTER[phone]'); 90 params.email = formData.get('REGISTER[email]'); 91 window.vym.firstPartyParams(params); 92}) 93 94$(document).on('submit', '[name="DOWNLOAD_CATALOG"]', (event) => { 95 const formData = new FormData(event.target); 96 const params = {}; 97 98 params.email = formData.get('form_email_33'); 99 params.phone_number = formData.get('form_text_35'); 100 params.first_name = formData.get('form_text_34'); 101 102 window.vym.firstPartyParams(params); 103}) 104 105$(document).on('submit', '[name="CALLBACK_FORM"]', (event) => { 106 const formData = new FormData(event.target); 107 const params = {}; 108 109 params.phone_number = formData.get('form_text_80'); 110 111 window.vym.firstPartyParams(params); 112}) 113 114$(document).on('submit', '[name="FEEDBACK_FORM_RZD"]', (event) => { 115 const formData = new FormData(event.target); 116 const params = {}; 117 118 params.email = formData.get('form_text_153'); 119 params.phone_number = formData.get('form_text_154'); 120 params.first_name = formData.get('form_text_152'); 121 122 window.vym.firstPartyParams(params); 123})
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.