1/* Source and licensing information for the line(s) below can be found at https://www.cusquena.com/modules/custom/pe_cusquena_core/js/validate.js. */ 2(function ($, Drupal) { 3 Drupal.behaviors.dataLayer = { 4 attach: function (context, settings) { 5 if (drupalSettings.ABDataLayers !== undefined && drupalSettings.ABDataLayers) { 6 drupalSettings.ABDataLayers.forEach(function (item) { 7 dataLayer.push(item); 8 }); 9 drupalSettings.ABDataLayers = null; 10 } 11 } 12 }; 13 14 Drupal.homePage = {}; 15 Drupal.homePage.sendForm = function ($trigger, form) { 16 if ($trigger.hasClass("use-ajax")) { 17 $trigger.trigger("sendRegister"); 18 } 19 }; 20 21 Drupal.behaviors.validate = { 22 attach: function (context, settings) { 23 $('#custom-register-form, #mds-custom-login-form, #campaigns-register-form, #campaigns-login-form').validate({ 24 submitHandler: function (form) { 25 Drupal.homePage.sendForm($("#edit-submit"), form); 26 }, 27 rules: { 28 'cities': { 29 requiredSelect: true, 30 }, 31 'gender': { 32 requiredSelect: true, 33 }, 34 'name': { 35 required: true, 36 lettersonlyspaces: true, 37 }, 38 'last_name': { 39 required: true, 40 lettersonlyspacesa: true, 41 }, 42 "day": { 43 valueNotEquals: "empty", 44 required: true, 45 requiredSelect: true 46 }, 47 "month": { 48 required: true, 49 valueNotEquals: "empty", 50 requiredSelect: true 51 }, 52 "year": { 53 required: true, 54 valueNotEquals: "empty", 55 requiredSelect: true 56 }, 57 'document': { 58 required: true, 59 digits: true, 60 minlength: 8, 61 maxlength: 10, 62 }, 63 'email': { 64 required: true, 65 emailordomain: true 66 }, 67 'phone': { 68 required: true, 69 digits: true, 70 maxlength: 9, 71 minlength: 9, 72 }, 73 74 'accept_terms': { 75 required: true, 76 } 77 }, 78 messages: { 79 'name': { 80 required: 'Ingresa tu nombre', 81 lettersonlyspaces: 'Ingresa un nombre válido', 82 }, 83 'last_name': { 84 required: 'Ingresa tu apellido', 85 lettersonlyspacesa: 'Ingresa un apellido válido', 86 }, 87 'cities': { 88 requiredSelect: 'Elige una ciudad', 89 }, 90 'gender': { 91 requiredSelect: 'Elige su género', 92 }, 93 "document": { 94 required: "Ingresa tu número de DNI o Cédula de ExtranjerÃa", 95 minlength: "No escriba menos de 8 digitos", 96 maxlength: "No escriba más de 10 digitos", 97 }, 98 'email': { 99 required: "Ingresa tu correo electrónico", 100 emailordomain: "Ingresa un correo electrónico válido" 101 }, 102 'phone': { 103 required: "Escribe un teléfono", 104 digits: "Escribe un número de celular válido", 105 maxlength: "No escriba menos o más de 9 digitos", 106 minlength: "No escriba menos o más de 9 digitos", 107 }, 108 'accept_terms': { 109 required: "Debe aceptar terminos y condiciones y polÃticas de protección de datos personales", 110 } 111 }, 112 errorElement: "span", 113 114 errorPlacement: function (error, element) { 115 if ( 116 element.attr("name") == "accept_terms" 117 ) { 118 error.insertAfter(element.next()); 119 } 120 else if ( 121 element.attr("name") === "day" || 122 element.attr("name") === "month" || 123 element.attr("name") === "year" 124 ) { 125 $('.error-date-register').show(); 126 } 127 else { 128 error.insertAfter(element); 129 } 130 }, 131 132 133 }); 134 // }) 135 } 136 } 137 138 139 Drupal.behaviors.homePage = { 140 attach: function (context, settings) { 141 Drupal.homePage.submit_register = false;
142 var $body = $("body"); 143 $(once("jquery-validation","body")).each(function () { 144 $.extend($.validator.messages, { 145 email: "Por favor, escribe una dirección de correo válida.", 146 required: "Falta completar información", 147 remote: "Por favor, rellena este campo.", 148 email: "Por favor, escribe una dirección de correo válida.", 149 url: "Por favor, escribe una URL válida.", 150 date: "Por favor, escribe una fecha válida.", 151 dateITA: "Por favor, escribe una fecha válida.", 152 dateISO: "Por favor, escribe una fecha (ISO) válida.", 153 number: "Por favor, escribe un número válido.", 154 digits: "Por favor, escribe sólo dÃgitos.", 155 creditcard: "Por favor, escribe un número de tarjeta válido.", 156 equalTo: "Por favor, escribe el mismo valor de nuevo.", 157 extension: "Por favor, escribe un valor con una extensión aceptada.", 158 maxlength: $.validator.format("Por favor, no escribas más de {0} caracteres."), 159 minlength: $.validator.format("Por favor, no escribas menos de {0} caracteres."), 160 rangelength: $.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."), 161 range: $.validator.format("Por favor, escribe un valor entre {0} y {1}."), 162 max: $.validator.format("Por favor, escribe un valor menor o igual a {0}."), 163 min: $.validator.format("Por favor, escribe un valor mayor o igual a {0}."), 164 }); 165 jQuery.validator.addMethod("lettersonly", function (value, element) { 166 return this.optional(element) || /^[a-z ]+$/i.test(value); 167 }); 168 jQuery.validator.addMethod("emailordomain", function (value, element) { 169 return /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(value) && !value?.includes('+'); 170 }); 171 $.validator.addMethod("lettersonlyspaces", 172 function (value, element) { 173 return this.optional(element) || /^[a-z áéÃóúÃÃÃÃÃÃñÃ]+$/i.test(value); 174 }, 175 "Solo Ingresa letras" 176 ); 177 $.validator.addMethod("lettersonlyspacesa", 178 function (value, element) { 179 return this.optional(element) || /^[a-z áéÃóúÃÃÃÃÃÃñÃ]+$/i.test(value); 180 }, 181 "Solo Ingresa letras" 182 ); 183 $.validator.addMethod("requiredSelect", 184 function (value, element) { 185 return !this.optional(element); 186 }, "Elige una opción"); 187 188 $.validator.addMethod("valueNotEquals", function (value, element) { 189 $('#error-date').hide(); 190 return value !== 'empty'; 191 }, "Value must not equal arg."); 192 }); 193 194 } 195 196 } 197 198})(jQuery, window.Drupal); 199 200(function ($, Drupal) { 201 202 //Datalayer 203 Drupal.AjaxCommands.prototype.sendDataLayer = function (ajax, response) { 204 // console.log(response.data.item); 205 dataLayer.push(response.data.item); 206 }; 207 Drupal.sendDataLayer = function (sku) { 208 let item = { 209 'event': 'trackEvent', 210 'eventCategory': 'Doble Malta', 211 'eventAction': 'Comprar aquÃ', 212 'eventLabel': sku, 213 }; 214 dataLayer.push(item); 215 } 216 217 Drupal.sendDataLayerVariedades = function (variedad) { 218 let item = { 219 'event': 'trackEvent', 220 'eventCategory': 'Variedades Cusqueña', 221 'eventAction': 'Comprar', 222 'eventLabel': variedad, 223 }; 224 dataLayer.push(item); 225 } 226 227 Drupal.sendDataLayerButton1 = function (name) { 228 let item = { 229 'event': 'trackEvent', 230 'eventCategory': 'Maestros del sabor', 231 'eventAction': 'Clic', 232 'eventLabel': name, 233 }; 234 dataLayer.push(item); 235 } 236 237 Drupal.sendDataLayerLogin = function (name) { 238 let item = { 239 'event': 'trackEvent', 240 'eventCategory': 'Maestros del sabor', 241 'eventAction': 'Iniciar sesion', 242 'eventLabel': name, 243 }; 244 dataLayer.push(item); 245 } 246 // Drupal.AjaxCommands.prototype.sendDataLayer = function (ajax, response) { 247 // let item = { 248 // 'event': 'trackEvent', 249 // 'eventCategory': 'Doble Malta', 250 // 'eventAction': 'Comprar aquÃ', 251 // 'eventLabel': hash('SHA256', $form_state->getValue('email')), 252 // }; 253 // dataLayer.push(response.data.item); 254 // }; 255 256 257})(jQuery, Drupal); 258 259 260/* Source and licensing information for the above line(s) can be found at https://www.cusquena.com/modules/custom/pe_cusquena_core/js/validate.js. */
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.