PageSourceSearch

https://www.manserv.com.br/wp-content/plugins/form-masks-for-elementor/assets/js/new-input-mask.js?ver=2.7.4

js manserv.com.br collected 2026-10-08 13:10:08 UTC 20,260 bytes, 409 lines download raw bytes

1class InputHandler extends elementorModules.frontend.handlers.Base {
2
3    getDefaultSettings() {
4        return {
5            selectors: {
6                calInput: '.elementor-field-textual',
7                calDiv: '.elementor-field-type-text',
8                form: '.elementor-form'
9            },
10        };
11    }
12
13    getDefaultElements() {
14        const selectors = this.getSettings('selectors');
15        return {
16            $calInput: this.$element.find(selectors.calInput),
17            $calDiv: this.$element.find(selectors.calDiv),
18            $form: this.$element.find(selectors.form),
19        };
20    }
21
22    bindEvents() {
23        let elmWrapper = this.elements.$calDiv;
24        let eleInput = jQuery(elmWrapper).find('input');
25    
26        if (eleInput.length === 0) return; 
27    
28        eleInput.each((index, input) => {
29            let maskClass, maskFormat, maskPrefix,maskDecimalPlaces,maskTimeMaskFormat,phoneFormat,creditCardOptions,maskAutoPlaceholder,brazilianFormats;
30    
31            input.classList.forEach(className => {
32                if (className.includes('mask_control_@')) maskClass = className;
33                if (className.includes('money_mask_format_@')) maskFormat = className;
34                if (className.includes('mask_prefix_@')) maskPrefix = className;
35                if (className.includes('mask_decimal_places_@')) maskDecimalPlaces = className;
36                if (className.includes('mask_time_mask_format_@')) maskTimeMaskFormat = className;
37                if (className.includes('fme_phone_format_@')) phoneFormat = className;
38                if (className.includes('credit_card_options_@')) creditCardOptions = className;
39                if (className.includes('mask_auto_placeholder_@')) maskAutoPlaceholder = className;
40                if (className.includes('fme_brazilian_formats_@')) brazilianFormats = className;
41            });
42    
43            if (maskClass) maskClass = maskClass.split('@');
44            if (maskFormat) maskFormat = maskFormat.split('@');
45            if (maskPrefix) maskPrefix = maskPrefix.split('@');
46            if (maskDecimalPlaces) maskDecimalPlaces = maskDecimalPlaces.split('@');
47            if (maskTimeMaskFormat) maskTimeMaskFormat = maskTimeMaskFormat.split('@');
48            if (phoneFormat) phoneFormat = phoneFormat.split('@');
49            if (creditCardOptions) creditCardOptions = creditCardOptions.split('@');
50            if (maskAutoPlaceholder) maskAutoPlaceholder = maskAutoPlaceholder.split('@');
51            if (brazilianFormats) brazilianFormats = brazilianFormats.split('@');
52    
53            if (!jQuery(input).data('mask')) {
54                input.setAttribute('data-mask', maskClass?.[1] || '');
55            }
56    
57            input.setAttribute('data-moneymask-format', maskFormat?.[1] || 'dot');
58            input.setAttribute('data-moneymask-prefix', maskPrefix?.[1] || '');
59            input.setAttribute('data-decimal-places', maskDecimalPlaces?.[1] || '2');
60            input.setAttribute('data-timemask-format', maskTimeMaskFormat?.[1] || 'one');
61            input.setAttribute('data-phone-format', phoneFormat?.[1] || 'phone_usa');
62            input.setAttribute('data-creditcard-options', creditCardOptions?.[1] || 'hyphen');
63            input.setAttribute('data-auto-placeholder', maskAutoPlaceholder?.[1] || '');
64            input.setAttribute('data-brazilian-formats', brazilianFormats?.[1] || '');
65        });
66    
67        this.applyMasks();
68    }    
69
70    applyMasks() {
71        const masks = {
72            "ev-phone": "phone",
73            "ev-tel": "####-####",
74            "ev-tel-ddd": "(##) ####-####",
75            "ev-tel-ddd9": "(##) #####-####",
76            "ev-tel-us": "(###) ###-####",
77            "ev-cpf": "###.###.###-##",
78            "ev-cnpj": "##.###.###/####-##",
79            "ev-money": "###.###.###.###.###,##",
80            "ev-ccard": "####-####-####-####",
81            "ev-ccard-valid": "##/##",
82            "ev-cep": "#####-###",
83            "ev-time": "##:##:##",
84            "ev-date": "##/##/####",
85            "ev-date_time": "##/##/#### ##:##",
86            "ev-ip-address": "###.###.###.###",
87            "ev-br_fr": "brazilian_formats",
88        };
89        
90        this.elements.$form.find('input[data-mask]').each(function () {
91            const $input = jQuery(this);
92            const maskKey = jQuery(this)[0].dataset.mask;
93            const timemaskFormat = jQuery(this)[0].dataset.timemaskFormat;
94            const phoneFormat = jQuery(this)[0].dataset.phoneFormat;
95            const creditcardOptions = jQuery(this)[0].dataset.creditcardOptions
96            const autoPlaceholder = jQuery(this)[0].dataset.autoPlaceholder
97            const brazilianFormats = jQuery(this)[0].dataset.brazilianFormats
98
99            if (masks[maskKey]) {
100                if(masks[maskKey] === 'phone'){
101                    $input.attr('inputmode','tel')
102                }else{
103                    $input.attr('inputmode','numeric')
104                }
105                if(masks[maskKey] === 'brazilian_formats'){
106                    switch(brazilianFormats){
107                        case 'fme_cpf':
108                            $input.addClass('mask-cpf');
109                            $input.after('<div class="mask-error error-cpf"></div>');
110                            if(autoPlaceholder === 'yes'){
111                                $input.attr('placeholder','XXX.XXX.XXX-XX')
112                            }
113                            break;
114                        case 'fme_cnpj':
115                            $input.addClass('mask-cnpj');
116                            $input.after('<div class="mask-error error-cnpj"></div>');
117                            if(autoPlaceholder === 'yes'){
118                                $input.attr('placeholder','XX.XXX.XXX/XXXX-XX')
119                            }
120                            break;
121                        case 'fme_cep':
122                            $input.addClass('mask-cep');
123                            $input.after('<div class="mask-error error-cep"></div>');
124                            if(autoPlaceholder === 'yes'){
125                                $input.attr('placeholder','XXXXX-XXX')
126                            }
127                            break;
128                        default:
129                            $input.addClass('mask-cpf');
130                            $input.after('<div class="mask-error error-cpf"></div>');
131                            if(autoPlaceholder === 'yes'){
132                                $input.attr('placeholder','XXX.XXX.XXX-XX')
133                            }
134                    }
135                }
136                if (masks[maskKey] === "##/##/####") {
137                  $input.addClass('mask-dmy');
138                  $input.after('<div class="mask-error error-dmy"></div>');
139                  if(autoPlaceholder === 'yes'){
140                    $input.attr('placeholder','XX/XX/XXXX')
141                  }
142                }
143                if (masks[maskKey] === "##.###.###/####-##") {
144                  $input.addClass('mask-cnpj');
145                  $input.after('<div class="mask-error error-cnpj"></div>');
146                  if(autoPlaceholder === 'yes'){
147                    $input.attr('placeholder','XX.XXX.XXX/XXXX-XX')
148                  }
149                }
150                if (masks[maskKey] === "###.###.###-##") {
151                  $input.addClass('mask-cpf');
152                  $input.after('<div class="mask-error error-cpf"></div>');
153                  if(autoPlaceholder === 'yes'){
154                    $input.attr('placeholder','XXX.XXX.XXX-XX')
155                  }
156                }
157                if (masks[maskKey] === "#####-###") {
158                  $input.addClass('mask-cep');
159                  $input.after('<div class="mask-error error-cep"></div>');
160                  if(autoPlaceholder === 'yes'){
161                    $input.attr('placeholder','XXXXX-XXX')
162                  }
163                }
164                if (masks[maskKey] === "(###) ###-####") {
165                  $input.addClass('mask-phus');
166                  $input.after('<div class="mask-error error-phus"></div>');
167                  if(autoPlaceholder === 'yes'){
168                    $input.attr('placeholder','(XXX) XXX-XXXX')
169                  }
170                }
171                if (masks[maskKey] === "phone") {
172                    switch(phoneFormat){
173                        case 'phone_usa':
174                            $input.addClass('mask-phus');
175                            $input.after('<div class="mask-error error-phus"></div>');          
176                            if(autoPlaceholder === 'yes'){
177                                $input.attr('placeholder','(XXX) XXX-XXXX')
178                            }
179                            break;
180                        case 'phone_d8':
181                            $input.addClass('mask-ph8');
182                            $input.after('<div class="mask-error error-ph8"></div>');          
183                            if(autoPlaceholder === 'yes'){
184                                $input.attr('placeholder','XXXX-XXXX')
185                            }
186                            break;
187                        case 'phone_ddd8':
188                            $input.addClass('mask-ddd8');
189                            $input.after('<div class="mask-error error-ddd8"></div>');          
190                            if(autoPlaceholder === 'yes'){
191                                $input.attr('placeholder','(XX) XXXX-XXXX')
192                            }
193                            break;
194                        case 'phone_ddd9':
195                            $input.addClass('mask-ddd9');
196                            $input.after('<div class="mask-error error-ddd9"></div>');          
197                            if(autoPlaceholder === 'yes'){
198                                $input.attr('placeholder','(XX) XXXXX-XXXX')
199                            }
200                            break;
201                        default:
202                            $input.addClass('mask-ph8');
203                            $input.after('<div class="mask-error error-ph8"></div>');
204                            if(autoPlaceholder === 'yes'){
205                                $input.attr('placeholder','XXXX-XXXX')
206                            }
207                            break
208                    }
209                }
210                if (masks[maskKey] === "####-####") {
211                    $input.addClass('mask-ph8');
212                    $input.after('<div class="mask-error error-ph8"></div>'); 
213                    if(autoPlaceholder === 'yes'){
214                        $input.attr('placeholder','XXXX-XXXX')
215                    }
216                }
217                if (masks[maskKey] === "(##) ####-####") {
218                  $input.addClass('mask-ddd8');
219                  $input.after('<div class="mask-error error-ddd8"></div>');
220                  if(autoPlaceholder === 'yes'){
221                    $input.attr('placeholder','(XX) XXXX-XXXX')
222                  }
223                }
224                if (masks[maskKey] === "(##) #####-####") {
225                  $input.addClass('mask-ddd9');
226                  $input.after('<div class="mask-error error-ddd9"></div>');
227                  if(autoPlaceholder === 'yes'){
228                    $input.attr('placeholder','(XX) XXXXX-XXXX')
229                  }
230                }
231                if (masks[maskKey] === "##/##/####") {
232                  $input.addClass('mask-dmy');
233                  $input.after('<div class="mask-error error-dmy"></div>');
234                  if(autoPlaceholder === 'yes'){
235                    $input.attr('placeholder','XX/XX/XXXX')
236                  }
237                }
238                if (masks[maskKey] === "##:##:##") {
239                    switch(timemaskFormat){
240                        case 'one':
241                            $input.addClass('mask-hm');
242                            $input.after('<div class="mask-error error-hm"></div>');
243                            if(autoPlaceholder === 'yes'){
244                                $input.attr('placeholder','XX:XX')
245                            }
246                            break;
247                        case 'two':
248                            $input.addClass('mask-hms');
249                            $input.after('<div class="mask-error error-hms"></div>');
250                            if(autoPlaceholder === 'yes'){
251                                $input.attr('placeholder','XX:XX:XX')
252                            }
253                            break;
254                        case 'three':
255                            $input.addClass('mask-dmy');
256                            $input.after('<div class="mask-error error-dmy"></div>');
257                            if(autoPlaceholder === 'yes'){
258                                $input.attr('placeholder','XX/XX/XXXX')
259                            }
260                            break;
261                        case 'four':
262                            $input.addClass('mask-mdy');
263                            $input.after('<div class="mask-error error-mdy"></div>');
264                            if(autoPlaceholder === 'yes'){
265                                $input.attr('placeholder','XX/XX/XXXX')
266                            }
267                            break;
268                        case 'five':
269                            $input.addClass('mask-dmyhm');
270                            $input.after('<div class="mask-error error-dmyhm"></div>');
271                            if(autoPlaceholder === 'yes'){
272                                $input.attr('placeholder','XX/XX/XXXX XX:XX')
273                            }
274                            break;
275                        case 'six':
276                            $input.addClass('mask-mdyhm');
277                            $input.after('<div class="mask-error error-mdyhm"></div>');
278                            if(autoPlaceholder === 'yes'){
279                                $input.attr('placeholder','XX/XX/XXXX XX:XX')
280                            }
281                            break;
282                        case 'seven':
283                            $input.addClass('mask-my');
284                            $input.after('<div class="mask-error error-my"></div>');
285                            if(autoPlaceholder === 'yes'){
286                                $input.attr('placeholder','XX/XXXX')
287                            }
288                            break;
289                        default:
290                            $input.addClass('mask-hm');
291                            $input.after('<div class="mask-error error-hm"></div>');
292                            if(autoPlaceholder === 'yes'){
293                                $input.attr('placeholder','XX:XX')
294                            }
295                    }
296                }
297                if (masks[maskKey] === "##:##") {
298                  $input.addClass('mask-hm');
299                  $input.after('<div class="mask-error error-hm"></div>');
300                  if(autoPlaceholder === 'yes'){
301                    $input.attr('placeholder','XX:XX')
302                  }
303                }
304                if (masks[maskKey] === "##/##/#### ##:##") {
305                  $input.addClass('mask-dmyhm');
306                  $input.after('<div class="mask-error error-dmyhm"></div>');
307                  if(autoPlaceholder === 'yes'){
308                    $input.attr('placeholder','XX/XX/XXXX XX:XX')
309                  }
310                }
311                if (masks[maskKey] === "####-####-####-####") {
312                    switch(creditcardOptions){
313                        case 'space':
314                            $input.addClass('mask-ccs');
315                            $input.after('<div class="mask-error error-ccs"></div>');
316                            const $errorDivCCS = $input.next('.error-ccs'); 
317                            if ($errorDivCCS.next('.card-logo').length === 0) { 
318                                $errorDivCCS.after('<img id="card-logo" class="card-logo" src="" alt="Card Logo">');
319                            }
320                            if (autoPlaceholder === 'yes') {
321                                $input.attr('placeholder', 'XXXX XXXX XXXX XXXX');
322                            }
323                            break;
324                        case 'hyphen':
325                            $input.addClass('mask-cch');
326                          
326  $input.after('<div class="mask-error error-cch"></div>');
327                            const $errorDiv = $input.next('.error-cch'); 
328                            if ($errorDiv.next('#card-logo').length === 0) { 
329                                $errorDiv.after('<img id="card-logo" class="card-logo" src="" alt="Card Logo">');
330                            }
331                            if (autoPlaceholder === 'yes') {
332                                $input.attr('placeholder', 'XXXX-XXXX-XXXX-XXXX');
333                            }                         
334                            break;
335                        case 'credit_card_date':
336                            $input.addClass('mask-ccmy');
337                            $input.after('<div class="mask-error error-ccmy"></div>');
338                            if(autoPlaceholder === 'yes'){
339                                $input.attr('placeholder','XX/XX')
340                            }
341                            break;
342                        case 'credit_card_expiry_date':
343                            $input.addClass('mask-ccmyy');
344                            $input.after('<div class="mask-error error-ccmyy"></div>');
345                            if(autoPlaceholder === 'yes'){
346                                $input.attr('placeholder','XX/XXXX')
347                            }
348                            break;
349                        default:
350                            $input.addClass('mask-ccs');
351                            $input.after('<div class="mask-error error-ccs"></div>');
352                            jQuery('.mask-error').after('<img id="card-logo" class="card-logo" src="" alt="Card Logo">')
353                            if(autoPlaceholder === 'yes'){
354                                $input.attr('placeholder','XXXX XXXX XXXX XXXX')
355                            }
356                    }
357                }
358                if (masks[maskKey] === "##/##") {
359                  $input.addClass('mask-ccmy');
360                  $input.after('<div class="mask-error error-ccmy"></div>');
361                  if(autoPlaceholder === 'yes'){
362                    $input.attr('placeholder','XX/XX')
363                  }
364                }
365                if (masks[maskKey] === "##/####") {
366                  $input.addClass('mask-my');
367                  $input.after('<div class="mask-error error-my"></div>');
368                  if(autoPlaceholder === 'yes'){
369                    $input.attr('placeholder','XX/XXXX')
370                  }
371                }
372                if (masks[maskKey] === "###.###.###.###") {
373                  $input.addClass('mask-ipv4');
374                  $input.after('<div class="mask-error error-ipv4"></div>');
375                  if(autoPlaceholder === 'yes'){
376                    $input.attr('placeholder','XXX.XXX.XXX.XXX')
377                  }
378                }
379                if (masks[maskKey] === "###.###.###.###.###,##") {
380                  $input.addClass('mask-moneyc');
381                  $input.after('<div class="mask-error error-moneyc"></div>');
382                  if(autoPlaceholder === 'yes'){
383                    let moneyPrefix = ($input.data('moneymask-prefix') !== "") ? $input.data('moneymask-prefix'): '$';
384                    let format = ($input.data('moneymask-format') === 'dot' ? ',':'.')
385                    $input.attr('placeholder',moneyPrefix+`0${format}00`)
386                  }
387                }
388
389                if ($input.hasClass('mask-cnpj')) {
390                    $input.attr('inputmode', 'text');
391                }
392            }
393        });
394    }
395}
396
397jQuery(window).on('elementor/frontend/init', () => {
398    const calHandler = ($element) => {
399        elementorFrontend.elementsHandler.addHandler(InputHandler, {
400            $element,
401        });
402    };
403  
404    elementorFrontend.hooks.addAction('frontend/element_ready/form.default', calHandler);
405}); 
406
407
408
409

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.