diff --git a/easy_my_coop/__init__.py b/easy_my_coop/__init__.py index 28aa8a4..7660e7b 100644 --- a/easy_my_coop/__init__.py +++ b/easy_my_coop/__init__.py @@ -1,3 +1,3 @@ -from . import models -from . import report -from . import wizard +from . import models +from . import report +from . import wizard diff --git a/easy_my_coop/data/easy_my_coop_data.xml b/easy_my_coop/data/easy_my_coop_data.xml index 9cb4333..3f80622 100644 --- a/easy_my_coop/data/easy_my_coop_data.xml +++ b/easy_my_coop/data/easy_my_coop_data.xml @@ -1,43 +1,43 @@ - - - - - Cooperative Management - Manage your cooperative. - 3 - - - - - Company Share - - - - Account Default Subscription Journal - - SUBJ/%(year)s/ - True - - - - Subscription Journal - SUBJ - sale - - - - - Subscription Register - subscription.register - - - - - - Register Operation - register.operation - - - - - + + + + + Cooperative Management + Manage your cooperative. + 3 + + + + + Company Share + + + + Account Default Subscription Journal + + SUBJ/%(year)s/ + True + + + + Subscription Journal + SUBJ + sale + + + + + Subscription Register + subscription.register + + + + + + Register Operation + register.operation + + + + + diff --git a/easy_my_coop/data/mail_template_data.xml b/easy_my_coop/data/mail_template_data.xml index 0fe4d8f..24aeed0 100644 --- a/easy_my_coop/data/mail_template_data.xml +++ b/easy_my_coop/data/mail_template_data.xml @@ -1,443 +1,443 @@ - - - - - - - Request to Release Capital - Send by Email - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - ${object.company_id.name} Request to Release Capital (Ref ${object.number or 'n/a'}) - ${object.partner_id.id} - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - - - - ${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''} - ${object.partner_id.lang} - - - -

Hello ${object.partner_id.name},

- -

You will find in attachment all the necessary information for the payment. We kindly remind you that your subscription will be effective only once we received the payment.

- -

Do not forget to add the structured communication to the payment.

- -

Sustainably your,

-

${object.company_id.name}.

- - % if object.company_id.street: - ${object.company_id.street} - % endif - % if object.company_id.street2: - ${object.company_id.street2}
- % endif - % if object.company_id.city or object.company_id.zip: - ${object.company_id.zip} ${object.company_id.city}
- % endif - % if object.company_id.country_id: - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
- % endif - % if object.company_id.phone: - Phone:  ${object.company_id.phone} - % endif - - % if object.company_id.website: - - %endif - -
- -
- - ]]>
-
- - - Confirmation Email - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - Subscription request confirmation - ${object.email} - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - - - ${object.lang} - - - -

Hello ${object.name},

- -

Your request will be soon processed by our team. If all the provided info are correct you will soon receive the payment information in another email

- -
-

If you have any question, do not hesitate to contact us.

-
- -

Sustainably your,

-

${object.company_id.name}.

- - % if object.company_id.street: - ${object.company_id.street} - % endif - % if object.company_id.street2: - ${object.company_id.street2}
- % endif - % if object.company_id.city or object.company_id.zip: - ${object.company_id.zip} ${object.company_id.city}
- % endif - % if object.company_id.country_id: - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
- % endif - % if object.company_id.phone: - Phone:  ${object.company_id.phone} - % endif - - % if object.company_id.website: - - %endif - -
- -
- - ]]>
-
- - - Waiting List Email - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - Subscription request added on waiting list. - ${object.email} - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - - - ${object.lang} - - - -

Hello ${object.name},

- -

Thank you for your subscription request. There are currently no project to raise funds for, thus we added it on waiting list. - We will contact you as soon as the subscription requests are re-opened. -

- -
-

If you have any question, do not hesitate to contact us.

-
- -

Sustainably yours,

-

${object.company_id.name}.

- - % if object.company_id.street: - ${object.company_id.street} - % endif - % if object.company_id.street2: - ${object.company_id.street2}
- % endif - % if object.company_id.city or object.company_id.zip: - ${object.company_id.zip} ${object.company_id.city}
- % endif - % if object.company_id.country_id: - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
- % endif - % if object.company_id.phone: - Phone:  ${object.company_id.phone} - % endif - - % if object.company_id.website: - - %endif - -
- -
- - ]]>
-
- - - Company Confirmation Email - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - Subscription request confirmation - ${object.email},${object.company_email} - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - - - ${object.lang} - - - -

Hello ${object.name},

- -

We have received your subscription request for ${object.company_id.name}. Thank you for your support.

- -

Your request will be soon processed by our team "gestion et participation des membres". If all the provided info are correct you will soon receive the payment information in another email

- -
-

If you have any question, do not hesitate to contact us.

-
- -

Sustainably your,

-

${object.company_id.name}.

- - % if object.company_id.street: - ${object.company_id.street} - % endif - % if object.company_id.street2: - ${object.company_id.street2}
- % endif - % if object.company_id.city or object.company_id.zip: - ${object.company_id.zip} ${object.company_id.city}
- % endif - % if object.company_id.country_id: - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
- % endif - % if object.company_id.phone: - Phone:  ${object.company_id.phone} - % endif - - % if object.company_id.website: - - %endif - -
- -
- - ]]>
-
- - - Payment Received Confirmation - Send By Email - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - Payment Received Confirmation - ${object.id} - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - - - - Certificat ${(object.cooperator_register_number or '')} - ${object.lang} - - - -

Hello ${object.name},

- -

We confirm the reception of you payment. You are now shareholder of our cooperative

- -
-

Find in attachment your ${object.company_id.name} certificate.

-

Thank you for choosing ${object.company_id.name or 'us'}!

-
-

Sustainably your,

-

${object.company_id.name}.

- - % if object.company_id.street: - ${object.company_id.street} - % endif - % if object.company_id.street2: - ${object.company_id.street2}
- % endif - % if object.company_id.city or object.company_id.zip: - ${object.company_id.zip} ${object.company_id.city}
- % endif - % if object.company_id.country_id: - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
- % endif - % if object.company_id.phone: - Phone:  ${object.company_id.phone} - % endif - - % if object.company_id.website: - - %endif - -
- -
- - ]]>
-
- - - Share Increase - Payment Received Confirmation - Send By Email - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - Payment Received Confirmation - ${object.id} - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - - - - Certificat ${(object.cooperator_register_number or '')} - ${object.lang} - - - -

Hello ${object.name},

- -

We confirm the reception of you payment for the new share(s) you have taken.

- -
-

Find in attachment your ${object.company_id.name} certificate.

-

Thank you for trusting ${object.company_id.name or 'us'}!

-
-

Sustainably your,

-

${object.company_id.name}.

- - % if object.company_id.street: - ${object.company_id.street} - % endif - % if object.company_id.street2: - ${object.company_id.street2}
- % endif - % if object.company_id.city or object.company_id.zip: - ${object.company_id.zip} ${object.company_id.city}
- % endif - % if object.company_id.country_id: - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
- % endif - % if object.company_id.phone: - Phone:  ${object.company_id.phone} - % endif - - % if object.company_id.website: - - %endif - -
- -
- - ]]>
-
- - - Share transfer - Send By Email - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - Share transfert - ${object.id} - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - - - - Certificat ${(object.cooperator_register_number or '')} - ${object.lang} - - - -

Hello ${object.name},

- -

We confirm you that the shares have been transfered to you. If you was not already cooperator, you are now shareholder of our cooperative

- -
-

Find in attachment your ${object.company_id.name} certificate.

-

Thank you for choosing ${object.company_id.name or 'us'}!

-
-

Sustainably your,

-

${object.company_id.name}.

- - % if object.company_id.street: - ${object.company_id.street} - % endif - % if object.company_id.street2: - ${object.company_id.street2}
- % endif - % if object.company_id.city or object.company_id.zip: - ${object.company_id.zip} ${object.company_id.city}
- % endif - % if object.company_id.country_id: - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
- % endif - % if object.company_id.phone: - Phone:  ${object.company_id.phone} - % endif - - % if object.company_id.website: - - %endif - -
- -
- - ]]>
-
- - - Share update - Send By Email - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - Share update - ${object.id} - ${(object.company_id.coop_email_contact or object.user_id.email)|safe} - - - - Certificat ${(object.cooperator_register_number or '')} - ${object.lang} - - - -

Hello ${object.name},

- -

We confirm you that the adaptation on shares portfolio has been succesfully performed. Your cooperator certificate has been adapted accordingly

- -
-

Find in attachment your ${object.company_id.name} certificate.

-

Thank you for choosing ${object.company_id.name or 'us'}!

-
-

Sustainably your,

-

${object.company_id.name}.

- - % if object.company_id.street: - ${object.company_id.street} - % endif - % if object.company_id.street2: - ${object.company_id.street2}
- % endif - % if object.company_id.city or object.company_id.zip: - ${object.company_id.zip} ${object.company_id.city}
- % endif - % if object.company_id.country_id: - ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
- % endif - % if object.company_id.phone: - Phone:  ${object.company_id.phone} - % endif - - % if object.company_id.website: - - %endif - -
- -
- - ]]>
-
-
-
+ + + + + + + Request to Release Capital - Send by Email + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + ${object.company_id.name} Request to Release Capital (Ref ${object.number or 'n/a'}) + ${object.partner_id.id} + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + + + + ${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''} + ${object.partner_id.lang} + + + +

Hello ${object.partner_id.name},

+ +

You will find in attachment all the necessary information for the payment. We kindly remind you that your subscription will be effective only once we received the payment.

+ +

Do not forget to add the structured communication to the payment.

+ +

Sustainably your,

+

${object.company_id.name}.

+ + % if object.company_id.street: + ${object.company_id.street} + % endif + % if object.company_id.street2: + ${object.company_id.street2}
+ % endif + % if object.company_id.city or object.company_id.zip: + ${object.company_id.zip} ${object.company_id.city}
+ % endif + % if object.company_id.country_id: + ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
+ % endif + % if object.company_id.phone: + Phone:  ${object.company_id.phone} + % endif + + % if object.company_id.website: + + %endif + +
+ +
+ + ]]>
+
+ + + Confirmation Email + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + Subscription request confirmation + ${object.email} + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + + + ${object.lang} + + + +

Hello ${object.name},

+ +

Your request will be soon processed by our team. If all the provided info are correct you will soon receive the payment information in another email

+ +
+

If you have any question, do not hesitate to contact us.

+
+ +

Sustainably your,

+

${object.company_id.name}.

+ + % if object.company_id.street: + ${object.company_id.street} + % endif + % if object.company_id.street2: + ${object.company_id.street2}
+ % endif + % if object.company_id.city or object.company_id.zip: + ${object.company_id.zip} ${object.company_id.city}
+ % endif + % if object.company_id.country_id: + ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
+ % endif + % if object.company_id.phone: + Phone:  ${object.company_id.phone} + % endif + + % if object.company_id.website: + + %endif + +
+ +
+ + ]]>
+
+ + + Waiting List Email + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + Subscription request added on waiting list. + ${object.email} + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + + + ${object.lang} + + + +

Hello ${object.name},

+ +

Thank you for your subscription request. There are currently no project to raise funds for, thus we added it on waiting list. + We will contact you as soon as the subscription requests are re-opened. +

+ +
+

If you have any question, do not hesitate to contact us.

+
+ +

Sustainably yours,

+

${object.company_id.name}.

+ + % if object.company_id.street: + ${object.company_id.street} + % endif + % if object.company_id.street2: + ${object.company_id.street2}
+ % endif + % if object.company_id.city or object.company_id.zip: + ${object.company_id.zip} ${object.company_id.city}
+ % endif + % if object.company_id.country_id: + ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
+ % endif + % if object.company_id.phone: + Phone:  ${object.company_id.phone} + % endif + + % if object.company_id.website: + + %endif + +
+ +
+ + ]]>
+
+ + + Company Confirmation Email + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + Subscription request confirmation + ${object.email},${object.company_email} + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + + + ${object.lang} + + + +

Hello ${object.name},

+ +

We have received your subscription request for ${object.company_id.name}. Thank you for your support.

+ +

Your request will be soon processed by our team "gestion et participation des membres". If all the provided info are correct you will soon receive the payment information in another email

+ +
+

If you have any question, do not hesitate to contact us.

+
+ +

Sustainably your,

+

${object.company_id.name}.

+ + % if object.company_id.street: + ${object.company_id.street} + % endif + % if object.company_id.street2: + ${object.company_id.street2}
+ % endif + % if object.company_id.city or object.company_id.zip: + ${object.company_id.zip} ${object.company_id.city}
+ % endif + % if object.company_id.country_id: + ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
+ % endif + % if object.company_id.phone: + Phone:  ${object.company_id.phone} + % endif + + % if object.company_id.website: + + %endif + +
+ +
+ + ]]>
+
+ + + Payment Received Confirmation - Send By Email + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + Payment Received Confirmation + ${object.id} + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + + + + Certificat ${(object.cooperator_register_number or '')} + ${object.lang} + + + +

Hello ${object.name},

+ +

We confirm the reception of you payment. You are now shareholder of our cooperative

+ +
+

Find in attachment your ${object.company_id.name} certificate.

+

Thank you for choosing ${object.company_id.name or 'us'}!

+
+

Sustainably your,

+

${object.company_id.name}.

+ + % if object.company_id.street: + ${object.company_id.street} + % endif + % if object.company_id.street2: + ${object.company_id.street2}
+ % endif + % if object.company_id.city or object.company_id.zip: + ${object.company_id.zip} ${object.company_id.city}
+ % endif + % if object.company_id.country_id: + ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
+ % endif + % if object.company_id.phone: + Phone:  ${object.company_id.phone} + % endif + + % if object.company_id.website: + + %endif + +
+ +
+ + ]]>
+
+ + + Share Increase - Payment Received Confirmation - Send By Email + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + Payment Received Confirmation + ${object.id} + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + + + + Certificat ${(object.cooperator_register_number or '')} + ${object.lang} + + + +

Hello ${object.name},

+ +

We confirm the reception of you payment for the new share(s) you have taken.

+ +
+

Find in attachment your ${object.company_id.name} certificate.

+

Thank you for trusting ${object.company_id.name or 'us'}!

+
+

Sustainably your,

+

${object.company_id.name}.

+ + % if object.company_id.street: + ${object.company_id.street} + % endif + % if object.company_id.street2: + ${object.company_id.street2}
+ % endif + % if object.company_id.city or object.company_id.zip: + ${object.company_id.zip} ${object.company_id.city}
+ % endif + % if object.company_id.country_id: + ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
+ % endif + % if object.company_id.phone: + Phone:  ${object.company_id.phone} + % endif + + % if object.company_id.website: + + %endif + +
+ +
+ + ]]>
+
+ + + Share transfer - Send By Email + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + Share transfert + ${object.id} + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + + + + Certificat ${(object.cooperator_register_number or '')} + ${object.lang} + + + +

Hello ${object.name},

+ +

We confirm you that the shares have been transfered to you. If you was not already cooperator, you are now shareholder of our cooperative

+ +
+

Find in attachment your ${object.company_id.name} certificate.

+

Thank you for choosing ${object.company_id.name or 'us'}!

+
+

Sustainably your,

+

${object.company_id.name}.

+ + % if object.company_id.street: + ${object.company_id.street} + % endif + % if object.company_id.street2: + ${object.company_id.street2}
+ % endif + % if object.company_id.city or object.company_id.zip: + ${object.company_id.zip} ${object.company_id.city}
+ % endif + % if object.company_id.country_id: + ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
+ % endif + % if object.company_id.phone: + Phone:  ${object.company_id.phone} + % endif + + % if object.company_id.website: + + %endif + +
+ +
+ + ]]>
+
+ + + Share update - Send By Email + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + Share update + ${object.id} + ${(object.company_id.coop_email_contact or object.user_id.email)|safe} + + + + Certificat ${(object.cooperator_register_number or '')} + ${object.lang} + + + +

Hello ${object.name},

+ +

We confirm you that the adaptation on shares portfolio has been succesfully performed. Your cooperator certificate has been adapted accordingly

+ +
+

Find in attachment your ${object.company_id.name} certificate.

+

Thank you for choosing ${object.company_id.name or 'us'}!

+
+

Sustainably your,

+

${object.company_id.name}.

+ + % if object.company_id.street: + ${object.company_id.street} + % endif + % if object.company_id.street2: + ${object.company_id.street2}
+ % endif + % if object.company_id.city or object.company_id.zip: + ${object.company_id.zip} ${object.company_id.city}
+ % endif + % if object.company_id.country_id: + ${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}
+ % endif + % if object.company_id.phone: + Phone:  ${object.company_id.phone} + % endif + + % if object.company_id.website: + + %endif + +
+ +
+ + ]]>
+
+
+
diff --git a/easy_my_coop/demo/coop.xml b/easy_my_coop/demo/coop.xml index 1a164f1..d7b784c 100644 --- a/easy_my_coop/demo/coop.xml +++ b/easy_my_coop/demo/coop.xml @@ -68,7 +68,7 @@ 5101 - + 416101 Cooperators diff --git a/easy_my_coop/models/mail_template.py b/easy_my_coop/models/mail_template.py index b78c7f7..c120428 100644 --- a/easy_my_coop/models/mail_template.py +++ b/easy_my_coop/models/mail_template.py @@ -1,4 +1,4 @@ -from odoo import models, fields +from odoo import fields, models class MailTemplate(models.Model): diff --git a/easy_my_coop/models/operation_request.py b/easy_my_coop/models/operation_request.py index 730ef6e..d608128 100644 --- a/easy_my_coop/models/operation_request.py +++ b/easy_my_coop/models/operation_request.py @@ -376,10 +376,10 @@ class OperationRequest(models.Model): partner = self.subscription_request.create_coop_partner() # get cooperator number sub_reg_num = int(sequence_id.next_by_id()) - partner_vals.update(sub_request.get_eater_vals( - partner, - self.share_product_id)) - partner_vals['cooperator_register_number'] = sub_reg_num + partner_vals.update( + sub_request.get_eater_vals(partner, self.share_product_id) + ) + partner_vals["cooperator_register_number"] = sub_reg_num partner.write(partner_vals) self.partner_id_to = partner else: @@ -387,11 +387,15 @@ class OperationRequest(models.Model): if not self.partner_id_to.member: if self.partner_id_to.cooperator_register_number == 0: sub_reg_num = int(sequence_id.next_by_id()) - partner_vals['cooperator_register_number'] = sub_reg_num - partner_vals.update(sub_request.get_eater_vals( - self.partner_id_to, - self.share_product_id)) - partner_vals['old_member'] = False + partner_vals[ + "cooperator_register_number" + ] = sub_reg_num + partner_vals.update( + sub_request.get_eater_vals( + self.partner_id_to, self.share_product_id + ) + ) + partner_vals["old_member"] = False self.partner_id_to.write(partner_vals) # remove the parts to the giver self.hand_share_over( diff --git a/easy_my_coop/readme/CONTRIBUTORS.rst b/easy_my_coop/readme/CONTRIBUTORS.rst index cd0a487..b2844f3 100644 --- a/easy_my_coop/readme/CONTRIBUTORS.rst +++ b/easy_my_coop/readme/CONTRIBUTORS.rst @@ -1,2 +1 @@ * Coop IT Easy SCRLfs - diff --git a/easy_my_coop/report/cooperator_register_G001.xml b/easy_my_coop/report/cooperator_register_G001.xml index 781230d..6bc790b 100644 --- a/easy_my_coop/report/cooperator_register_G001.xml +++ b/easy_my_coop/report/cooperator_register_G001.xml @@ -4,39 +4,39 @@ - - - + + +
- + -




+




- + - +
- COOPERATOR REGISTER -
+ COOPERATOR REGISTER +
-




+




+ - - - - +
+ + - +
@@ -46,76 +46,76 @@ - - + + - -
-
+
+
+
- - -
+ +
- - - -
-
+
+
- - -
+
- - - -
NumberQuantity Total
- + - + + - + + + + + t-field-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/> - + + - + + - + + - + + + + t-field-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
-
+ +
- + diff --git a/easy_my_coop/report/cooperator_subscription_G001.xml b/easy_my_coop/report/cooperator_subscription_G001.xml index 29f1313..70286e6 100644 --- a/easy_my_coop/report/cooperator_subscription_G001.xml +++ b/easy_my_coop/report/cooperator_subscription_G001.xml @@ -5,102 +5,102 @@ - - - + + +
- + -




- +




+ - + - +
- SUBSCRIPTION REGISTER -
+ SUBSCRIPTION REGISTER +
-




- - +




+ +

- + - +

-

-
+
+
- - - - + -
+
- - - - +

-
Operation number Cooperator Subscription date Operation typeShare numberShare number
- + - + + - + + - + + - + - + + - + + - + +
- - +
+ +
- + -
TOTAL :
-
+ +
- + diff --git a/easy_my_coop/report/easy_my_coop_report.xml b/easy_my_coop/report/easy_my_coop_report.xml index c138c21..6e2dac7 100644 --- a/easy_my_coop/report/easy_my_coop_report.xml +++ b/easy_my_coop/report/easy_my_coop_report.xml @@ -2,8 +2,8 @@ - - - + - + diff --git a/easy_my_coop/security/ir.model.access.csv b/easy_my_coop/security/ir.model.access.csv index f4a1de4..4b48364 100644 --- a/easy_my_coop/security/ir.model.access.csv +++ b/easy_my_coop/security/ir.model.access.csv @@ -1,16 +1,16 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_product_product_easy_my_coop_user,access_product_product_easy_my_coop_user,product.model_product_product,group_easy_my_coop_user,1,1,0,0 -access_product_product_easy_my_coop_manager,access_product_product_easy_my_coop_manager,product.model_product_product,group_easy_my_coop_manager,1,1,1,1 -access_product_template_easy_my_coop_user,access_product_template_easy_my_coop_user,product.model_product_template,group_easy_my_coop_user,1,1,0,0 -access_product_template_easy_my_coop_manager,access_product_template_easy_my_coop_manager,product.model_product_template,group_easy_my_coop_manager,1,1,1,1 -access_subscription_request_user,access_subscription_request_user.subscription,model_subscription_request,base.group_user,1,0,0,0 -access_subscription_request_easy_my_coop_user,access_subscription_request_easy_my_coop_user,model_subscription_request,group_easy_my_coop_user,1,1,1,0 -access_subscription_request_easy_my_coop_manager,access_subscription_request_easy_my_coop_manager,model_subscription_request,group_easy_my_coop_manager,1,1,1,1 -access_share_line_user,access_share_line_user,model_share_line,base.group_user,1,0,0,0 -access_share_line_easy_my_coop_user,access_share_line_easy_my_coop_user,model_share_line,group_easy_my_coop_user,1,1,1,0 -access_share_line_easy_my_coop_manager,access_share_line_easy_my_coop_manager,model_share_line,group_easy_my_coop_manager,1,1,1,1 -access_res_partner_easy_my_coop_user,access_res_partner_easy_my_coop_user,base.model_res_partner,group_easy_my_coop_user,1,1,1,0 -access_account_invoice_easy_my_coop_user,access_account_invoice_easy_my_coop_user,model_account_invoice,group_easy_my_coop_user,1,1,1,0 -access_subscription_register_easy_my_coop_user,access_subscription_register_easy_my_coop_user,model_subscription_register,group_easy_my_coop_user,1,1,1,0 -access_operation_request_easy_my_coop_user,access_operation_request_easy_my_coop_user,model_operation_request,group_easy_my_coop_user,1,1,1,0 -access_operation_request_easy_my_coop_manager,access_operation_request_easy_my_coop_manager,model_operation_request,group_easy_my_coop_manager,1,1,1,1 +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_product_product_easy_my_coop_user,access_product_product_easy_my_coop_user,product.model_product_product,group_easy_my_coop_user,1,1,0,0 +access_product_product_easy_my_coop_manager,access_product_product_easy_my_coop_manager,product.model_product_product,group_easy_my_coop_manager,1,1,1,1 +access_product_template_easy_my_coop_user,access_product_template_easy_my_coop_user,product.model_product_template,group_easy_my_coop_user,1,1,0,0 +access_product_template_easy_my_coop_manager,access_product_template_easy_my_coop_manager,product.model_product_template,group_easy_my_coop_manager,1,1,1,1 +access_subscription_request_user,access_subscription_request_user.subscription,model_subscription_request,base.group_user,1,0,0,0 +access_subscription_request_easy_my_coop_user,access_subscription_request_easy_my_coop_user,model_subscription_request,group_easy_my_coop_user,1,1,1,0 +access_subscription_request_easy_my_coop_manager,access_subscription_request_easy_my_coop_manager,model_subscription_request,group_easy_my_coop_manager,1,1,1,1 +access_share_line_user,access_share_line_user,model_share_line,base.group_user,1,0,0,0 +access_share_line_easy_my_coop_user,access_share_line_easy_my_coop_user,model_share_line,group_easy_my_coop_user,1,1,1,0 +access_share_line_easy_my_coop_manager,access_share_line_easy_my_coop_manager,model_share_line,group_easy_my_coop_manager,1,1,1,1 +access_res_partner_easy_my_coop_user,access_res_partner_easy_my_coop_user,base.model_res_partner,group_easy_my_coop_user,1,1,1,0 +access_account_invoice_easy_my_coop_user,access_account_invoice_easy_my_coop_user,model_account_invoice,group_easy_my_coop_user,1,1,1,0 +access_subscription_register_easy_my_coop_user,access_subscription_register_easy_my_coop_user,model_subscription_register,group_easy_my_coop_user,1,1,1,0 +access_operation_request_easy_my_coop_user,access_operation_request_easy_my_coop_user,model_operation_request,group_easy_my_coop_user,1,1,1,0 +access_operation_request_easy_my_coop_manager,access_operation_request_easy_my_coop_manager,model_operation_request,group_easy_my_coop_manager,1,1,1,1 diff --git a/easy_my_coop/static/src/css/coop_report.css b/easy_my_coop/static/src/css/coop_report.css index 88fb46a..4633190 100644 --- a/easy_my_coop/static/src/css/coop_report.css +++ b/easy_my_coop/static/src/css/coop_report.css @@ -1,27 +1,27 @@ -.border-top-easymy-coop td { - border-top: 1pt solid #e7511e !important; -} - -.border-easymy-coop th { - border-bottom: 1pt solid #e7511e !important; -} - -.border-top-easymy-coop-cert td { - border-top: 1pt solid #fcc300 !important; -} - -.border-easymy-coop-cert th { - border-bottom: 1pt solid #fcc300 !important; -} - -.easymy-coop-normal { - font-family:Roboto-Regular; - font-size:12pt; - line-height:16pt; -} - -.easymy-coop-info-title { - font-family:Roboto-Bold; - font-size:12pt; - line-height:16pt; -} \ No newline at end of file +.border-top-easymy-coop td { + border-top: 1pt solid #e7511e !important; +} + +.border-easymy-coop th { + border-bottom: 1pt solid #e7511e !important; +} + +.border-top-easymy-coop-cert td { + border-top: 1pt solid #fcc300 !important; +} + +.border-easymy-coop-cert th { + border-bottom: 1pt solid #fcc300 !important; +} + +.easymy-coop-normal { + font-family:Roboto-Regular; + font-size:12pt; + line-height:16pt; +} + +.easymy-coop-info-title { + font-family:Roboto-Bold; + font-size:12pt; + line-height:16pt; +} diff --git a/easy_my_coop/static/src/js/easy_my_coop.js b/easy_my_coop/static/src/js/easy_my_coop.js index e87c61e..4ca05c6 100644 --- a/easy_my_coop/static/src/js/easy_my_coop.js +++ b/easy_my_coop/static/src/js/easy_my_coop.js @@ -1,52 +1,52 @@ odoo.define('easy_my_coop.oe_easymy_coop', function (require) { -$(document).ready(function () { - "use strict"; - var ajax = require('web.ajax'); - - $('.oe_easymy_coop').each(function () { + $(document).ready(function () { + "use strict"; + var ajax = require('web.ajax'); + + $('.oe_easymy_coop').each(function () { var oe_easymy_coop = this; - + $('#share_product_id').change(function () { var share_product_id = $("#share_product_id").val(); ajax.jsonRpc("/subscription/get_share_product", 'call', { - 'share_product_id': share_product_id + 'share_product_id': share_product_id, }) .then(function (data) { - $('#share_price').text(data[share_product_id].list_price); - $('input.js_quantity').val(data[share_product_id].min_qty); - if(data[share_product_id].force_min_qty == true){ - $('input.js_quantity').data("min",data[share_product_id].min_qty); - } - $('input.js_quantity').change(); - var $share_price = $('#share_price').text() - $('input[name="total_parts"]').val($('input.js_quantity').val()*$share_price); - $('input[name="total_parts"]').change(); + $('#share_price').text(data[share_product_id].list_price); + $('input.js_quantity').val(data[share_product_id].min_qty); + if (data[share_product_id].force_min_qty == true) { + $('input.js_quantity').data("min", data[share_product_id].min_qty); + } + $('input.js_quantity').change(); + var $share_price = $('#share_price').text(); + $('input[name="total_parts"]').val($('input.js_quantity').val()*$share_price); + $('input[name="total_parts"]').change(); }); }); - + $(oe_easymy_coop).on('click', 'a.js_add_cart_json', function (ev) { - var $share_price = $('#share_price').text() + var $share_price = $('#share_price').text(); var $link = $(ev.currentTarget); var $input = $link.parent().parent().find("input"); var $input_total = $("div").find(".total"); var min = parseFloat($input.data("min") || 1); var amount_max = parseFloat($('input[name="total_parts"]').data("max")); - var quantity = ($link.has(".fa-minus").length ? -1 : 1) + parseFloat($input.val(),10); + var quantity = ($link.has(".fa-minus").length ? -1 : 1) + parseFloat($input.val(), 10); var total_part = quantity * $share_price; var quantity_max = amount_max / $share_price; - $input.val(quantity > min ? (total_part <= amount_max ? quantity : quantity_max) : min); + $input.val(quantity > min ? total_part <= amount_max ? quantity : quantity_max : min); $input.change(); $('input[name="total_parts"]').val($input.val()*$share_price); return false; }); - + $(oe_easymy_coop).on('focusout', 'input.js_quantity', function (ev) { $('a.js_add_cart_json').trigger('click'); }); - + $('#share_product_id').trigger('change'); - + $("[name='birthdate']").inputmask(); - }); + }); + }); }); -}); \ No newline at end of file diff --git a/easy_my_coop/static/src/js/jquery.inputmask.bundle.js b/easy_my_coop/static/src/js/jquery.inputmask.bundle.js index d3865f8..8a3b083 100644 --- a/easy_my_coop/static/src/js/jquery.inputmask.bundle.js +++ b/easy_my_coop/static/src/js/jquery.inputmask.bundle.js @@ -1,75 +1,79 @@ -/*! +/* ! * jquery.inputmask.bundle.js * http://github.com/RobinHerbots/jquery.inputmask * Copyright (c) 2010 - 2016 Robin Herbots * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) * Version: 3.2.7 */ -!function($) { - function Inputmask(alias, options) { - return this instanceof Inputmask ? ($.isPlainObject(alias) ? options = alias : (options = options || {}, - options.alias = alias), this.el = void 0, this.opts = $.extend(!0, {}, this.defaults, options), - this.noMasksCache = options && void 0 !== options.definitions, this.userOptions = options || {}, +!(function ($) { + function Inputmask (alias, options) { + return this instanceof Inputmask ? ($.isPlainObject(alias) ? options = alias : (options = options || {}, + options.alias = alias), this.el = void 0, this.opts = $.extend(!0, {}, this.defaults, options), + this.noMasksCache = options && void 0 !== options.definitions, this.userOptions = options || {}, this.events = {}, void resolveAlias(this.opts.alias, options, this.opts)) : new Inputmask(alias, options); } - function isInputEventSupported(eventName) { + function isInputEventSupported (eventName) { var el = document.createElement("input"), evName = "on" + eventName, isSupported = evName in el; - return isSupported || (el.setAttribute(evName, "return;"), isSupported = "function" == typeof el[evName]), + return isSupported || (el.setAttribute(evName, "return;"), isSupported = typeof el[evName] === "function"), el = null, isSupported; } - function isElementTypeSupported(input, opts) { - var elementType = input.getAttribute("type"), isSupported = "INPUT" === input.tagName && -1 !== $.inArray(elementType, opts.supportsInputType) || input.isContentEditable || "TEXTAREA" === input.tagName; + function isElementTypeSupported (input, opts) { + var elementType = input.getAttribute("type"), isSupported = input.tagName === "INPUT" && $.inArray(elementType, opts.supportsInputType) !== -1 || input.isContentEditable || input.tagName === "TEXTAREA"; if (!isSupported) { var el = document.createElement("input"); - el.setAttribute("type", elementType), isSupported = "text" === el.type, el = null; + el.setAttribute("type", elementType), isSupported = el.type === "text", el = null; } return isSupported; } - function resolveAlias(aliasStr, options, opts) { + function resolveAlias (aliasStr, options, opts) { var aliasDefinition = opts.aliases[aliasStr]; - return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts), - $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr), + return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts), + $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (opts.mask === null && (opts.mask = aliasStr), !1); } - function importAttributeOptions(npt, opts, userOptions) { - function importOption(option, optionData) { - optionData = void 0 !== optionData ? optionData : npt.getAttribute("data-inputmask-" + option), - null !== optionData && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)), + function importAttributeOptions (npt, opts, userOptions) { + function importOption (option, optionData) { + optionData = void 0 !== optionData ? optionData : npt.getAttribute("data-inputmask-" + option), + optionData !== null && (typeof optionData === "string" && (option.indexOf("on") === 0 ? optionData = window[optionData] : optionData === "false" ? optionData = !1 : optionData === "true" && (optionData = !0)), userOptions[option] = optionData); } var option, dataoptions, optionData, p, attrOptions = npt.getAttribute("data-inputmask"); - if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), + if (attrOptions && attrOptions !== "" && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'), dataoptions = JSON.parse("{" + attrOptions + "}")), dataoptions) { optionData = void 0; - for (p in dataoptions) if ("alias" === p.toLowerCase()) { - optionData = dataoptions[p]; - break; + for (p in dataoptions) { + if (p.toLowerCase() === "alias") { + optionData = dataoptions[p]; + break; + } } } importOption("alias", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts); for (option in opts) { if (dataoptions) { optionData = void 0; - for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) { - optionData = dataoptions[p]; - break; + for (p in dataoptions) { + if (p.toLowerCase() === option.toLowerCase()) { + optionData = dataoptions[p]; + break; + } } } importOption(option, optionData); } return $.extend(!0, opts, userOptions), opts; } - function generateMaskSet(opts, nocache) { - function analyseMask(mask) { - function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) { - this.matches = [], this.isGroup = isGroup || !1, this.isOptional = isOptional || !1, - this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, + function generateMaskSet (opts, nocache) { + function analyseMask (mask) { + function MaskToken (isGroup, isOptional, isQuantifier, isAlternator) { + this.matches = [], this.isGroup = isGroup || !1, this.isOptional = isOptional || !1, + this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, this.quantifier = { min: 1, - max: 1 + max: 1, }; } - function insertTestDefinition(mtoken, element, position) { + function insertTestDefinition (mtoken, element, position) { var maskdef = opts.definitions[element]; position = void 0 !== position ? position : mtoken.matches.length; var prevMatch = mtoken.matches[position - 1]; @@ -78,7 +82,7 @@ for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) { var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality; mtoken.matches.splice(position++, 0, { - fn: validator ? "string" == typeof validator ? new RegExp(validator) : new function() { + fn: validator ? typeof validator === "string" ? new RegExp(validator) : new function () { this.test = validator; }() : new RegExp("."), cardinality: cardinality ? cardinality : 1, @@ -87,11 +91,11 @@ casing: maskdef.casing, def: maskdef.definitionSymbol || element, placeholder: maskdef.placeholder, - mask: element + mask: element, }), prevMatch = mtoken.matches[position - 1]; } mtoken.matches.splice(position++, 0, { - fn: maskdef.validator ? "string" == typeof maskdef.validator ? new RegExp(maskdef.validator) : new function() { + fn: maskdef.validator ? typeof maskdef.validator === "string" ? new RegExp(maskdef.validator) : new function () { this.test = maskdef.validator; }() : new RegExp("."), cardinality: maskdef.cardinality, @@ -100,41 +104,47 @@ casing: maskdef.casing, def: maskdef.definitionSymbol || element, placeholder: maskdef.placeholder, - mask: element + mask: element, }); - } else mtoken.matches.splice(position++, 0, { - fn: null, - cardinality: 0, - optionality: mtoken.isOptional, - newBlockMarker: void 0 === prevMatch || prevMatch.def !== element, - casing: null, - def: opts.staticDefinitionSymbol || element, - placeholder: void 0 !== opts.staticDefinitionSymbol ? element : void 0, - mask: element - }), escaped = !1; + } else { + mtoken.matches.splice(position++, 0, { + fn: null, + cardinality: 0, + optionality: mtoken.isOptional, + newBlockMarker: void 0 === prevMatch || prevMatch.def !== element, + casing: null, + def: opts.staticDefinitionSymbol || element, + placeholder: void 0 !== opts.staticDefinitionSymbol ? element : void 0, + mask: element, + }), escaped = !1; + } } - function verifyGroupMarker(lastMatch, isOpenGroup) { - lastMatch.isGroup && (lastMatch.isGroup = !1, insertTestDefinition(lastMatch, opts.groupmarker.start, 0), + function verifyGroupMarker (lastMatch, isOpenGroup) { + lastMatch.isGroup && (lastMatch.isGroup = !1, insertTestDefinition(lastMatch, opts.groupmarker.start, 0), isOpenGroup !== !0 && insertTestDefinition(lastMatch, opts.groupmarker.end)); } - function maskCurrentToken(m, currentToken, lastMatch, extraCondition) { - currentToken.matches.length > 0 && (void 0 === extraCondition || extraCondition) && (lastMatch = currentToken.matches[currentToken.matches.length - 1], + function maskCurrentToken (m, currentToken, lastMatch, extraCondition) { + currentToken.matches.length > 0 && (void 0 === extraCondition || extraCondition) && (lastMatch = currentToken.matches[currentToken.matches.length - 1], verifyGroupMarker(lastMatch)), insertTestDefinition(currentToken, m); } - function defaultCase() { + function defaultCase () { if (openenings.length > 0) { - if (currentOpeningToken = openenings[openenings.length - 1], maskCurrentToken(m, currentOpeningToken, lastMatch, !currentOpeningToken.isAlternator), + if (currentOpeningToken = openenings[openenings.length - 1], maskCurrentToken(m, currentOpeningToken, lastMatch, !currentOpeningToken.isAlternator), currentOpeningToken.isAlternator) { alternator = openenings.pop(); - for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1; - openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], + for (var mndx = 0; mndx < alternator.matches.length; mndx++) { + alternator.matches[mndx].isGroup = !1; + } + openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator); } - } else maskCurrentToken(m, currentToken, lastMatch); + } else { + maskCurrentToken(m, currentToken, lastMatch); + } } - function reverseTokens(maskToken) { - function reverseStatic(st) { - return st === opts.optionalmarker.start ? st = opts.optionalmarker.end : st === opts.optionalmarker.end ? st = opts.optionalmarker.start : st === opts.groupmarker.start ? st = opts.groupmarker.end : st === opts.groupmarker.end && (st = opts.groupmarker.start), + function reverseTokens (maskToken) { + function reverseStatic (st) { + return st === opts.optionalmarker.start ? st = opts.optionalmarker.end : st === opts.optionalmarker.end ? st = opts.optionalmarker.start : st === opts.groupmarker.start ? st = opts.groupmarker.end : st === opts.groupmarker.end && (st = opts.groupmarker.start), st; } maskToken.matches = maskToken.matches.reverse(); @@ -148,70 +158,90 @@ } return maskToken; } - for (var match, m, openingToken, currentOpeningToken, alternator, lastMatch, groupToken, tokenizer = /(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = []; match = tokenizer.exec(mask); ) if (m = match[0], - escaped) defaultCase(); else switch (m.charAt(0)) { - case opts.escapeChar: - escaped = !0; - break; + for (var match, m, openingToken, currentOpeningToken, alternator, lastMatch, groupToken, tokenizer = /(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = []; match = tokenizer.exec(mask); ) { + if (m = match[0], + escaped) { + defaultCase(); + } else { + switch (m.charAt(0)) { + case opts.escapeChar: + escaped = !0; + break; - case opts.optionalmarker.end: - case opts.groupmarker.end: - if (openingToken = openenings.pop(), void 0 !== openingToken) if (openenings.length > 0) { - if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken), - currentOpeningToken.isAlternator) { - alternator = openenings.pop(); - for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1; - openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], - currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator); - } - } else currentToken.matches.push(openingToken); else defaultCase(); - break; + case opts.optionalmarker.end: + case opts.groupmarker.end: + if (openingToken = openenings.pop(), void 0 !== openingToken) { + if (openenings.length > 0) { + if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken), + currentOpeningToken.isAlternator) { + alternator = openenings.pop(); + for (var mndx = 0; mndx < alternator.matches.length; mndx++) { + alternator.matches[mndx].isGroup = !1; + } + openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], + currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator); + } + } else { + currentToken.matches.push(openingToken); + } + } else { + defaultCase(); + } + break; - case opts.optionalmarker.start: - openenings.push(new MaskToken(!1, !0)); - break; + case opts.optionalmarker.start: + openenings.push(new MaskToken(!1, !0)); + break; - case opts.groupmarker.start: - openenings.push(new MaskToken(!0)); - break; + case opts.groupmarker.start: + openenings.push(new MaskToken(!0)); + break; - case opts.quantifiermarker.start: - var quantifier = new MaskToken(!1, !1, !0); - m = m.replace(/[{}]/g, ""); - var mq = m.split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]); - if (("*" === mq1 || "+" === mq1) && (mq0 = "*" === mq1 ? 0 : 1), quantifier.quantifier = { - min: mq0, - max: mq1 - }, openenings.length > 0) { - var matches = openenings[openenings.length - 1].matches; - match = matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), groupToken.matches.push(match), - match = groupToken), matches.push(match), matches.push(quantifier); - } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), - groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), - currentToken.matches.push(quantifier); - break; + case opts.quantifiermarker.start: + var quantifier = new MaskToken(!1, !1, !0); + m = m.replace(/[{}]/g, ""); + var mq = m.split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = mq.length === 1 ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]); + if ((mq1 === "*" || mq1 === "+") && (mq0 = mq1 === "*" ? 0 : 1), quantifier.quantifier = { + min: mq0, + max: mq1, + }, openenings.length > 0) { + var matches = openenings[openenings.length - 1].matches; + match = matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), groupToken.matches.push(match), + match = groupToken), matches.push(match), matches.push(quantifier); + } else { + match = currentToken.matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), + groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), + currentToken.matches.push(quantifier); + } + break; - case opts.alternatormarker: - openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], - lastMatch = currentOpeningToken.matches.pop()) : lastMatch = currentToken.matches.pop(), - lastMatch.isAlternator ? openenings.push(lastMatch) : (alternator = new MaskToken(!1, !1, !1, !0), - alternator.matches.push(lastMatch), openenings.push(alternator)); - break; + case opts.alternatormarker: + openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], + lastMatch = currentOpeningToken.matches.pop()) : lastMatch = currentToken.matches.pop(), + lastMatch.isAlternator ? openenings.push(lastMatch) : (alternator = new MaskToken(!1, !1, !1, !0), + alternator.matches.push(lastMatch), openenings.push(alternator)); + break; - default: - defaultCase(); + default: + defaultCase(); + } + } } - for (;openenings.length > 0; ) openingToken = openenings.pop(), verifyGroupMarker(openingToken, !0), - currentToken.matches.push(openingToken); - return currentToken.matches.length > 0 && (lastMatch = currentToken.matches[currentToken.matches.length - 1], - verifyGroupMarker(lastMatch), maskTokens.push(currentToken)), opts.numericInput && reverseTokens(maskTokens[0]), + for (;openenings.length > 0; ) { + openingToken = openenings.pop(), verifyGroupMarker(openingToken, !0), + currentToken.matches.push(openingToken); + } + return currentToken.matches.length > 0 && (lastMatch = currentToken.matches[currentToken.matches.length - 1], + verifyGroupMarker(lastMatch), maskTokens.push(currentToken)), opts.numericInput && reverseTokens(maskTokens[0]), maskTokens; } - function generateMask(mask, metadata) { - if (null === mask || "" === mask) return void 0; - if (1 === mask.length && opts.greedy === !1 && 0 !== opts.repeat && (opts.placeholder = ""), - opts.repeat > 0 || "*" === opts.repeat || "+" === opts.repeat) { - var repeatStart = "*" === opts.repeat ? 0 : "+" === opts.repeat ? 1 : opts.repeat; + function generateMask (mask, metadata) { + if (mask === null || mask === "") { + return void 0; + } + if (mask.length === 1 && opts.greedy === !1 && opts.repeat !== 0 && (opts.placeholder = ""), + opts.repeat > 0 || opts.repeat === "*" || opts.repeat === "+") { + var repeatStart = opts.repeat === "*" ? 0 : opts.repeat === "+" ? 1 : opts.repeat; mask = opts.groupmarker.start + mask + opts.groupmarker.end + opts.quantifiermarker.start + repeatStart + "," + opts.repeat + opts.quantifiermarker.end; } var masksetDefinition; @@ -222,179 +252,221 @@ _buffer: void 0, buffer: void 0, tests: {}, - metadata: metadata - }, nocache !== !0 && (Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask] = masksetDefinition, - masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask]), + metadata: metadata, + }, nocache !== !0 && (Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask] = masksetDefinition, + masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[opts.numericInput ? mask.split("").reverse().join("") : mask]), masksetDefinition; } - function preProcessMask(mask) { + function preProcessMask (mask) { return mask = mask.toString(); } var ms; if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) { if (opts.mask.length > 1) { - opts.keepStatic = null === opts.keepStatic ? !0 : opts.keepStatic; + opts.keepStatic = opts.keepStatic === null ? !0 : opts.keepStatic; var altMask = "("; - return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) { + return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function (ndx, msk) { altMask.length > 1 && (altMask += ")|("), altMask += preProcessMask(void 0 === msk.mask || $.isFunction(msk.mask) ? msk : msk.mask); }), altMask += ")", generateMask(altMask, opts.mask); } opts.mask = opts.mask.pop(); } - return opts.mask && (ms = void 0 === opts.mask.mask || $.isFunction(opts.mask.mask) ? generateMask(preProcessMask(opts.mask), opts.mask) : generateMask(preProcessMask(opts.mask.mask), opts.mask)), + return opts.mask && (ms = void 0 === opts.mask.mask || $.isFunction(opts.mask.mask) ? generateMask(preProcessMask(opts.mask), opts.mask) : generateMask(preProcessMask(opts.mask.mask), opts.mask)), ms; } - function maskScope(actionObj, maskset, opts) { - function getMaskTemplate(baseOnInput, minimalPos, includeInput) { + function maskScope (actionObj, maskset, opts) { + function getMaskTemplate (baseOnInput, minimalPos, includeInput) { minimalPos = minimalPos || 0; var ndxIntlzr, test, testPos, maskTemplate = [], pos = 0, lvp = getLastValidPosition(); do { if (baseOnInput === !0 && getMaskSet().validPositions[pos]) { var validPos = getMaskSet().validPositions[pos]; test = validPos.match, ndxIntlzr = validPos.locator.slice(), maskTemplate.push(includeInput === !0 ? validPos.input : getPlaceholder(pos, test)); - } else testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), test = testPos.match, - ndxIntlzr = testPos.locator.slice(), (opts.jitMasking === !1 || lvp > pos || isFinite(opts.jitMasking) && opts.jitMasking > pos) && maskTemplate.push(getPlaceholder(pos, test)); + } else { + testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), test = testPos.match, + ndxIntlzr = testPos.locator.slice(), (opts.jitMasking === !1 || lvp > pos || isFinite(opts.jitMasking) && opts.jitMasking > pos) && maskTemplate.push(getPlaceholder(pos, test)); + } pos++; - } while ((void 0 === maxLength || maxLength > pos - 1) && null !== test.fn || null === test.fn && "" !== test.def || minimalPos >= pos); - return "" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), maskTemplate; + } while ((void 0 === maxLength || maxLength > pos - 1) && test.fn !== null || test.fn === null && test.def !== "" || minimalPos >= pos); + return maskTemplate[maskTemplate.length - 1] === "" && maskTemplate.pop(), maskTemplate; } - function getMaskSet() { + function getMaskSet () { return maskset; } - function resetMaskSet(soft) { + function resetMaskSet (soft) { var maskset = getMaskSet(); - maskset.buffer = void 0, soft !== !0 && (maskset.tests = {}, maskset._buffer = void 0, + maskset.buffer = void 0, soft !== !0 && (maskset.tests = {}, maskset._buffer = void 0, maskset.validPositions = {}, maskset.p = 0); } - function getLastValidPosition(closestTo, strict) { + function getLastValidPosition (closestTo, strict) { var before = -1, after = -1, valids = getMaskSet().validPositions; void 0 === closestTo && (closestTo = -1); for (var posNdx in valids) { var psNdx = parseInt(posNdx); - valids[psNdx] && (strict || null !== valids[psNdx].match.fn) && (closestTo >= psNdx && (before = psNdx), + valids[psNdx] && (strict || valids[psNdx].match.fn !== null) && (closestTo >= psNdx && (before = psNdx), psNdx >= closestTo && (after = psNdx)); } - return -1 !== before && closestTo - before > 1 || closestTo > after ? before : after; + return before !== -1 && closestTo - before > 1 || closestTo > after ? before : after; } - function setValidPosition(pos, validTest, fromSetValid) { + function setValidPosition (pos, validTest, fromSetValid) { if (opts.insertMode && void 0 !== getMaskSet().validPositions[pos] && void 0 === fromSetValid) { var i, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), lvp = getLastValidPosition(); - for (i = pos; lvp >= i; i++) delete getMaskSet().validPositions[i]; + for (i = pos; lvp >= i; i++) { + delete getMaskSet().validPositions[i]; + } getMaskSet().validPositions[pos] = validTest; var j, valid = !0, vps = getMaskSet().validPositions; for (i = j = pos; lvp >= i; i++) { var t = positionsClone[i]; - if (void 0 !== t) for (var posMatch = j, prevPosMatch = -1; posMatch < getMaskLength() && (null == t.match.fn && vps[i] && (vps[i].match.optionalQuantifier === !0 || vps[i].match.optionality === !0) || null != t.match.fn); ) { - if (null === t.match.fn || !opts.keepStatic && vps[i] && (void 0 !== vps[i + 1] && getTests(i + 1, vps[i].locator.slice(), i).length > 1 || void 0 !== vps[i].alternation) ? posMatch++ : posMatch = seekNext(j), - positionCanMatchDefinition(posMatch, t.match.def)) { - var result = isValid(posMatch, t.input, !0, !0); - valid = result !== !1, j = result.caret || result.insert ? getLastValidPosition() : posMatch; - break; + if (void 0 !== t) { + for (var posMatch = j, prevPosMatch = -1; posMatch < getMaskLength() && (t.match.fn == null && vps[i] && (vps[i].match.optionalQuantifier === !0 || vps[i].match.optionality === !0) || t.match.fn != null); ) { + if (t.match.fn === null || !opts.keepStatic && vps[i] && (void 0 !== vps[i + 1] && getTests(i + 1, vps[i].locator.slice(), i).length > 1 || void 0 !== vps[i].alternation) ? posMatch++ : posMatch = seekNext(j), + positionCanMatchDefinition(posMatch, t.match.def)) { + var result = isValid(posMatch, t.input, !0, !0); + valid = result !== !1, j = result.caret || result.insert ? getLastValidPosition() : posMatch; + break; + } + if (valid = t.match.fn == null, prevPosMatch === posMatch) { + break; + } + prevPosMatch = posMatch; } - if (valid = null == t.match.fn, prevPosMatch === posMatch) break; - prevPosMatch = posMatch; } - if (!valid) break; + if (!valid) { + break; + } + } + if (!valid) { + return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), + resetMaskSet(!0), !1; } - if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), - resetMaskSet(!0), !1; - } else getMaskSet().validPositions[pos] = validTest; + } else { + getMaskSet().validPositions[pos] = validTest; + } return resetMaskSet(!0), !0; } - function stripValidPositions(start, end, nocheck, strict) { + function stripValidPositions (start, end, nocheck, strict) { var i, startPos = start; - for (getMaskSet().p = start, i = startPos; end > i; i++) void 0 !== getMaskSet().validPositions[i] && (nocheck === !0 || opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts) !== !1) && delete getMaskSet().validPositions[i]; + for (getMaskSet().p = start, i = startPos; end > i; i++) { + void 0 !== getMaskSet().validPositions[i] && (nocheck === !0 || opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts) !== !1) && delete getMaskSet().validPositions[i]; + } for (i = startPos + 1; i <= getLastValidPosition(); ) { - for (;void 0 !== getMaskSet().validPositions[startPos]; ) startPos++; + for (;void 0 !== getMaskSet().validPositions[startPos]; ) { + startPos++; + } var s = getMaskSet().validPositions[startPos]; - if (startPos > i && (i = startPos + 1), void 0 === getMaskSet().validPositions[i] && isMask(i) || void 0 !== s) i++; else { + if (startPos > i && (i = startPos + 1), void 0 === getMaskSet().validPositions[i] && isMask(i) || void 0 !== s) { + i++; + } else { var t = getTestTemplate(i); - positionCanMatchDefinition(startPos, t.match.def) ? isValid(startPos, t.input || getPlaceholder(i), !0) !== !1 && (delete getMaskSet().validPositions[i], + positionCanMatchDefinition(startPos, t.match.def) ? isValid(startPos, t.input || getPlaceholder(i), !0) !== !1 && (delete getMaskSet().validPositions[i], i++) : isMask(i) || (i++, startPos--), startPos++; } } var lvp = getLastValidPosition(), ml = getMaskLength(); - for (strict !== !0 && nocheck !== !0 && void 0 !== getMaskSet().validPositions[lvp] && getMaskSet().validPositions[lvp].input === opts.radixPoint && delete getMaskSet().validPositions[lvp], - i = lvp + 1; ml >= i; i++) getMaskSet().validPositions[i] && delete getMaskSet().validPositions[i]; + for (strict !== !0 && nocheck !== !0 && void 0 !== getMaskSet().validPositions[lvp] && getMaskSet().validPositions[lvp].input === opts.radixPoint && delete getMaskSet().validPositions[lvp], + i = lvp + 1; ml >= i; i++) { + getMaskSet().validPositions[i] && delete getMaskSet().validPositions[i]; + } resetMaskSet(!0); } - function getTestTemplate(pos, ndxIntlzr, tstPs) { + function getTestTemplate (pos, ndxIntlzr, tstPs) { var testPos = getMaskSet().validPositions[pos]; - if (void 0 === testPos) for (var testPositions = getTests(pos, ndxIntlzr, tstPs), lvp = getLastValidPosition(), lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0], lvTestAltArr = void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation].toString().split(",") : [], ndx = 0; ndx < testPositions.length && (testPos = testPositions[ndx], - !(testPos.match && (opts.greedy && testPos.match.optionalQuantifier !== !0 || (testPos.match.optionality === !1 || testPos.match.newBlockMarker === !1) && testPos.match.optionalQuantifier !== !0) && (void 0 === lvTest.alternation || lvTest.alternation !== testPos.alternation || void 0 !== testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAltArr)))); ndx++) ; + if (void 0 === testPos) { + for (var testPositions = getTests(pos, ndxIntlzr, tstPs), lvp = getLastValidPosition(), lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0], lvTestAltArr = void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation].toString().split(",") : [], ndx = 0; ndx < testPositions.length && (testPos = testPositions[ndx], + !(testPos.match && (opts.greedy && testPos.match.optionalQuantifier !== !0 || (testPos.match.optionality === !1 || testPos.match.newBlockMarker === !1) && testPos.match.optionalQuantifier !== !0) && (void 0 === lvTest.alternation || lvTest.alternation !== testPos.alternation || void 0 !== testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAltArr)))); ndx++) {} + } return testPos; } - function getTest(pos) { + function getTest (pos) { return getMaskSet().validPositions[pos] ? getMaskSet().validPositions[pos].match : getTests(pos)[0].match; } - function positionCanMatchDefinition(pos, def) { - for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) if (tests[tndx].match && tests[tndx].match.def === def) { - valid = !0; - break; + function positionCanMatchDefinition (pos, def) { + for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) { + if (tests[tndx].match && tests[tndx].match.def === def) { + valid = !0; + break; + } } return valid; } - function selectBestMatch(pos, alternateNdx) { + function selectBestMatch (pos, alternateNdx) { var bestMatch, indexPos; - return (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) && $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) { + return (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) && $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function (ndx, lmnt) { var ndxPos = lmnt.alternation ? lmnt.locator[lmnt.alternation].toString().indexOf(alternateNdx) : -1; - (void 0 === indexPos || indexPos > ndxPos) && -1 !== ndxPos && (bestMatch = lmnt, + (void 0 === indexPos || indexPos > ndxPos) && ndxPos !== -1 && (bestMatch = lmnt, indexPos = ndxPos); }), bestMatch; } - function getTests(pos, ndxIntlzr, tstPs) { - function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) { - function handleMatch(match, loopNdx, quantifierRecurse) { - function isFirstMatch(latestMatch, tokenGroup) { - var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches); - return firstMatch || $.each(tokenGroup.matches, function(ndx, match) { + function getTests (pos, ndxIntlzr, tstPs) { + function resolveTestFromToken (maskToken, ndxInitializer, loopNdx, quantifierRecurse) { + function handleMatch (match, loopNdx, quantifierRecurse) { + function isFirstMatch (latestMatch, tokenGroup) { + var firstMatch = $.inArray(latestMatch, tokenGroup.matches) === 0; + return firstMatch || $.each(tokenGroup.matches, function (ndx, match) { return match.isQuantifier === !0 && (firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1])) ? !1 : void 0; }), firstMatch; } - function resolveNdxInitializer(pos, alternateNdx) { + function resolveNdxInitializer (pos, alternateNdx) { var bestMatch = selectBestMatch(pos, alternateNdx); return bestMatch ? bestMatch.locator.slice(bestMatch.alternation + 1) : []; } - if (testPos > 1e4) throw "Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. " + getMaskSet().mask; - if (testPos === pos && void 0 === match.matches) return matches.push({ - match: match, - locator: loopNdx.reverse(), - cd: cacheDependency - }), !0; + if (testPos > 1e4) { + throw "Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. " + getMaskSet().mask; + } + if (testPos === pos && void 0 === match.matches) { + return matches.push({ + match: match, + locator: loopNdx.reverse(), + cd: cacheDependency, + }), !0; + } if (void 0 !== match.matches) { if (match.isGroup && quantifierRecurse !== match) { - if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx)) return !0; + if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx)) { + return !0; + } } else if (match.isOptional) { var optionalToken = match; if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) { - if (latestMatch = matches[matches.length - 1].match, !isFirstMatch(latestMatch, optionalToken)) return !0; + if (latestMatch = matches[matches.length - 1].match, !isFirstMatch(latestMatch, optionalToken)) { + return !0; + } insertStop = !0, testPos = pos; } } else if (match.isAlternator) { var maltMatches, alternateToken = match, malternateMatches = [], currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1; - if (-1 === altIndex || "string" == typeof altIndex) { + if (altIndex === -1 || typeof altIndex === "string") { var amndx, currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = []; - if ("string" == typeof altIndex) altIndexArr = altIndex.split(","); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx); + if (typeof altIndex === "string") { + altIndexArr = altIndex.split(","); + } else { + for (amndx = 0; amndx < alternateToken.matches.length; amndx++) { + altIndexArr.push(amndx); + } + } for (var ndx = 0; ndx < altIndexArr.length; ndx++) { - if (amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = resolveNdxInitializer(testPos, amndx), - match = handleMatch(alternateToken.matches[amndx] || maskToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) || match, + if (amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = resolveNdxInitializer(testPos, amndx), + match = handleMatch(alternateToken.matches[amndx] || maskToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) || match, match !== !0 && void 0 !== match && altIndexArr[altIndexArr.length - 1] < alternateToken.matches.length) { var ntndx = $.inArray(match, maskToken.matches) + 1; - maskToken.matches.length > ntndx && (match = handleMatch(maskToken.matches[ntndx], [ ntndx ].concat(loopNdx.slice(1, loopNdx.length)), quantifierRecurse), - match && (altIndexArr.push(ntndx.toString()), $.each(matches, function(ndx, lmnt) { + maskToken.matches.length > ntndx && (match = handleMatch(maskToken.matches[ntndx], [ ntndx ].concat(loopNdx.slice(1, loopNdx.length)), quantifierRecurse), + match && (altIndexArr.push(ntndx.toString()), $.each(matches, function (ndx, lmnt) { lmnt.alternation = loopNdx.length - 1; }))); } maltMatches = matches.slice(), testPos = currentPos, matches = []; - for (var i = 0; i < ndxInitializerClone.length; i++) ndxInitializer[i] = ndxInitializerClone[i]; + for (var i = 0; i < ndxInitializerClone.length; i++) { + ndxInitializer[i] = ndxInitializerClone[i]; + } for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) { var altMatch = maltMatches[ndx1]; altMatch.alternation = altMatch.alternation || loopNdxCnt; for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) { var altMatch2 = malternateMatches[ndx2]; - if (altMatch.match.def === altMatch2.match.def && ("string" != typeof altIndex || -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr))) { - altMatch.match.mask === altMatch2.match.mask && (maltMatches.splice(ndx1, 1), ndx1--), - -1 === altMatch2.locator[altMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) && (altMatch2.locator[altMatch.alternation] = altMatch2.locator[altMatch.alternation] + "," + altMatch.locator[altMatch.alternation], + if (altMatch.match.def === altMatch2.match.def && (typeof altIndex !== "string" || $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr) !== -1)) { + altMatch.match.mask === altMatch2.match.mask && (maltMatches.splice(ndx1, 1), ndx1--), + altMatch2.locator[altMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) === -1 && (altMatch2.locator[altMatch.alternation] = altMatch2.locator[altMatch.alternation] + "," + altMatch.locator[altMatch.alternation], altMatch2.alternation = altMatch.alternation); break; } @@ -402,404 +474,518 @@ } malternateMatches = malternateMatches.concat(maltMatches); } - "string" == typeof altIndex && (malternateMatches = $.map(malternateMatches, function(lmnt, ndx) { + typeof altIndex === "string" && (malternateMatches = $.map(malternateMatches, function (lmnt, ndx) { if (isFinite(ndx)) { var mamatch, alternation = lmnt.alternation, altLocArr = lmnt.locator[alternation].toString().split(","); lmnt.locator[alternation] = void 0, lmnt.alternation = void 0; - for (var alndx = 0; alndx < altLocArr.length; alndx++) mamatch = -1 !== $.inArray(altLocArr[alndx], altIndexArr), - mamatch && (void 0 !== lmnt.locator[alternation] ? (lmnt.locator[alternation] += ",", - lmnt.locator[alternation] += altLocArr[alndx]) : lmnt.locator[alternation] = parseInt(altLocArr[alndx]), - lmnt.alternation = alternation); - if (void 0 !== lmnt.locator[alternation]) return lmnt; + for (var alndx = 0; alndx < altLocArr.length; alndx++) { + mamatch = $.inArray(altLocArr[alndx], altIndexArr) !== -1, + mamatch && (void 0 !== lmnt.locator[alternation] ? (lmnt.locator[alternation] += ",", + lmnt.locator[alternation] += altLocArr[alndx]) : lmnt.locator[alternation] = parseInt(altLocArr[alndx]), + lmnt.alternation = alternation); + } + if (void 0 !== lmnt.locator[alternation]) { + return lmnt; + } } })), matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = matches.length > 0; - } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse); - if (match) return !0; - } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && pos >= testPos; qndx++) { - var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1]; - if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) { - if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx > qt.quantifier.min - 1, - isFirstMatch(latestMatch, tokenGroup)) { - if (qndx > qt.quantifier.min - 1) { - insertStop = !0, testPos = pos; - break; + } else { + match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse); + } + if (match) { + return !0; + } + } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) { + for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && pos >= testPos; qndx++) { + var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1]; + if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) { + if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx > qt.quantifier.min - 1, + isFirstMatch(latestMatch, tokenGroup)) { + if (qndx > qt.quantifier.min - 1) { + insertStop = !0, testPos = pos; + break; + } + return !0; } return !0; } - return !0; } - } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) return !0; - } else testPos++; + } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) { + return !0; + } + } else { + testPos++; + } } - for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (maskToken.matches[tndx].isQuantifier !== !0) { - var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse); - if (match && testPos === pos) return match; - if (testPos > pos) break; + for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) { + if (maskToken.matches[tndx].isQuantifier !== !0) { + var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse); + if (match && testPos === pos) { + return match; + } + if (testPos > pos) { + break; + } + } } } - function mergeLocators(tests) { + function mergeLocators (tests) { var test = tests[0] || tests; return test.locator.slice(); } var latestMatch, maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr || [ 0 ], matches = [], insertStop = !1, cacheDependency = ndxIntlzr ? ndxIntlzr.join("") : ""; if (pos > -1) { if (void 0 === ndxIntlzr) { - for (var test, previousPos = pos - 1; void 0 === (test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) && previousPos > -1; ) previousPos--; - void 0 !== test && previousPos > -1 && (ndxInitializer = mergeLocators(test), cacheDependency = ndxInitializer.join(""), + for (var test, previousPos = pos - 1; void 0 === (test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) && previousPos > -1; ) { + previousPos--; + } + void 0 !== test && previousPos > -1 && (ndxInitializer = mergeLocators(test), cacheDependency = ndxInitializer.join(""), test = test[0] || test, testPos = previousPos); } - if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) return getMaskSet().tests[pos]; + if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) { + return getMaskSet().tests[pos]; + } for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) { var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]); - if (match && testPos === pos || testPos > pos) break; + if (match && testPos === pos || testPos > pos) { + break; + } } } - return (0 === matches.length || insertStop) && matches.push({ + return (matches.length === 0 || insertStop) && matches.push({ match: { fn: null, cardinality: 0, optionality: !0, casing: null, - def: "" + def: "", }, - locator: [] + locator: [], }), getMaskSet().tests[pos] = $.extend(!0, [], matches), getMaskSet().tests[pos]; } - function getBufferTemplate() { - return void 0 === getMaskSet()._buffer && (getMaskSet()._buffer = getMaskTemplate(!1, 1)), + function getBufferTemplate () { + return void 0 === getMaskSet()._buffer && (getMaskSet()._buffer = getMaskTemplate(!1, 1)), getMaskSet()._buffer; } - function getBuffer(noCache) { + function getBuffer (noCache) { if (void 0 === getMaskSet().buffer || noCache === !0) { - if (noCache === !0) for (var testNdx in getMaskSet().tests) void 0 === getMaskSet().validPositions[testNdx] && delete getMaskSet().tests[testNdx]; + if (noCache === !0) { + for (var testNdx in getMaskSet().tests) { + void 0 === getMaskSet().validPositions[testNdx] && delete getMaskSet().tests[testNdx]; + } + } getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0); } return getMaskSet().buffer; } - function refreshFromBuffer(start, end, buffer) { + function refreshFromBuffer (start, end, buffer) { var i; - if (buffer = buffer, start === !0) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; end > i; i++) delete getMaskSet().validPositions[i], - delete getMaskSet().tests[i]; - for (i = start; end > i; i++) resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter && isValid(i, buffer[i], !0, !0); + if (buffer = buffer, start === !0) { + resetMaskSet(), start = 0, end = buffer.length; + } else { + for (i = start; end > i; i++) { + delete getMaskSet().validPositions[i], + delete getMaskSet().tests[i]; + } + } + for (i = start; end > i; i++) { + resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter && isValid(i, buffer[i], !0, !0); + } } - function casing(elem, test) { + function casing (elem, test) { switch (test.casing) { - case "upper": + case "upper": elem = elem.toUpperCase(); break; - case "lower": + case "lower": elem = elem.toLowerCase(); } return elem; } - function checkAlternationMatch(altArr1, altArr2) { - for (var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, alndx = 0; alndx < altArr1.length; alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) { - isMatch = !0; - break; + function checkAlternationMatch (altArr1, altArr2) { + for (var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, alndx = 0; alndx < altArr1.length; alndx++) { + if ($.inArray(altArr1[alndx], altArrC) !== -1) { + isMatch = !0; + break; + } } return isMatch; } - function isValid(pos, c, strict, fromSetValid) { - function _isValid(position, c, strict, fromSetValid) { + function isValid (pos, c, strict, fromSetValid) { + function _isValid (position, c, strict, fromSetValid) { var rslt = !1; - return $.each(getTests(position), function(ndx, tst) { - for (var test = tst.match, loopend = c ? 1 : 0, chrs = "", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1)); - if (c && (chrs += c), getBuffer(!0), rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts) : c !== test.def && c !== opts.skipOptionalPartCharacter || "" === test.def ? !1 : { + return $.each(getTests(position), function (ndx, tst) { + for (var test = tst.match, loopend = c ? 1 : 0, chrs = "", i = test.cardinality; i > loopend; i--) { + chrs += getBufferElement(position - (i - 1)); + } + if (c && (chrs += c), getBuffer(!0), rslt = test.fn != null ? test.fn.test(chrs, getMaskSet(), position, strict, opts) : c !== test.def && c !== opts.skipOptionalPartCharacter || test.def === "" ? !1 : { c: test.placeholder || test.def, - pos: position + pos: position, }, rslt !== !1) { var elem = void 0 !== rslt.c ? rslt.c : c; - elem = elem === opts.skipOptionalPartCharacter && null === test.fn ? test.placeholder || test.def : elem; + elem = elem === opts.skipOptionalPartCharacter && test.fn === null ? test.placeholder || test.def : elem; var validatedPos = position, possibleModifiedBuffer = getBuffer(); - if (void 0 !== rslt.remove && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]), - $.each(rslt.remove.sort(function(a, b) { + if (void 0 !== rslt.remove && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]), + $.each(rslt.remove.sort(function (a, b) { return b - a; - }), function(ndx, lmnt) { + }), function (ndx, lmnt) { stripValidPositions(lmnt, lmnt + 1, !0); - })), void 0 !== rslt.insert && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]), - $.each(rslt.insert.sort(function(a, b) { + })), void 0 !== rslt.insert && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]), + $.each(rslt.insert.sort(function (a, b) { return a - b; - }), function(ndx, lmnt) { + }), function (ndx, lmnt) { isValid(lmnt.pos, lmnt.c, !1, fromSetValid); })), rslt.refreshFromBuffer) { var refresh = rslt.refreshFromBuffer; - if (strict = !0, refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, possibleModifiedBuffer), - void 0 === rslt.pos && void 0 === rslt.c) return rslt.pos = getLastValidPosition(), - !1; - if (validatedPos = void 0 !== rslt.pos ? rslt.pos : position, validatedPos !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0, fromSetValid)), + if (strict = !0, refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, possibleModifiedBuffer), + void 0 === rslt.pos && void 0 === rslt.c) { + return rslt.pos = getLastValidPosition(), + !1; + } + if (validatedPos = void 0 !== rslt.pos ? rslt.pos : position, validatedPos !== position) { + return rslt = $.extend(rslt, isValid(validatedPos, elem, !0, fromSetValid)), + !1; + } + } else if (rslt !== !0 && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos, + refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) { + return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), !1; - } else if (rslt !== !0 && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos, - refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), - !1; - return rslt !== !0 && void 0 === rslt.pos && void 0 === rslt.c ? !1 : (ndx > 0 && resetMaskSet(!0), + } + return rslt !== !0 && void 0 === rslt.pos && void 0 === rslt.c ? !1 : (ndx > 0 && resetMaskSet(!0), setValidPosition(validatedPos, $.extend({}, tst, { - input: casing(elem, test) + input: casing(elem, test), }), fromSetValid) || (rslt = !1), !1); } }), rslt; } - function alternate(pos, c, strict, fromSetValid) { - for (var lastAlt, alternation, isValidRslt, altPos, i, validPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), testsClone = $.extend(!0, {}, getMaskSet().tests), lAlt = getLastValidPosition(); lAlt >= 0 && (altPos = getMaskSet().validPositions[lAlt], - !altPos || void 0 === altPos.alternation || (lastAlt = lAlt, alternation = getMaskSet().validPositions[lastAlt].alternation, - getTestTemplate(lastAlt).locator[altPos.alternation] === altPos.locator[altPos.alternation])); lAlt--) ; + function alternate (pos, c, strict, fromSetValid) { + for (var lastAlt, alternation, isValidRslt, altPos, i, validPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), testsClone = $.extend(!0, {}, getMaskSet().tests), lAlt = getLastValidPosition(); lAlt >= 0 && (altPos = getMaskSet().validPositions[lAlt], + !altPos || void 0 === altPos.alternation || (lastAlt = lAlt, alternation = getMaskSet().validPositions[lastAlt].alternation, + getTestTemplate(lastAlt).locator[altPos.alternation] === altPos.locator[altPos.alternation])); lAlt--) {} if (void 0 !== alternation) { lastAlt = parseInt(lastAlt); - for (var decisionPos in getMaskSet().validPositions) if (decisionPos = parseInt(decisionPos), - altPos = getMaskSet().validPositions[decisionPos], decisionPos >= lastAlt && void 0 !== altPos.alternation) { - var altNdxs; - 0 === lastAlt ? (altNdxs = [], $.each(getMaskSet().tests[lastAlt], function(ndx, test) { - void 0 !== test.locator[alternation] && (altNdxs = altNdxs.concat(test.locator[alternation].toString().split(","))); - })) : altNdxs = getMaskSet().validPositions[lastAlt].locator[alternation].toString().split(","); - var decisionTaker = void 0 !== altPos.locator[alternation] ? altPos.locator[alternation] : altNdxs[0]; - decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(",")[0]); - for (var mndx = 0; mndx < altNdxs.length; mndx++) { - var validInputs = [], staticInputsBeforePos = 0, staticInputsBeforePosAlternate = 0; - if (decisionTaker < altNdxs[mndx]) { - for (var possibilityPos, possibilities, dp = decisionPos; dp >= 0; dp--) if (possibilityPos = getMaskSet().validPositions[dp], - void 0 !== possibilityPos) { - var bestMatch = selectBestMatch(dp, altNdxs[mndx]); - getMaskSet().validPositions[dp].match.def !== bestMatch.match.def && (validInputs.push(getMaskSet().validPositions[dp].input), - getMaskSet().validPositions[dp] = bestMatch, getMaskSet().validPositions[dp].input = getPlaceholder(dp), - null === getMaskSet().validPositions[dp].match.fn && staticInputsBeforePosAlternate++, - possibilityPos = bestMatch), possibilities = possibilityPos.locator[alternation], - possibilityPos.locator[alternation] = parseInt(altNdxs[mndx]); - break; - } - if (decisionTaker !== possibilityPos.locator[alternation]) { - for (i = decisionPos + 1; i < getLastValidPosition(void 0, !0) + 1; i++) validPos = getMaskSet().validPositions[i], - validPos && null != validPos.match.fn ? validInputs.push(validPos.input) : pos > i && staticInputsBeforePos++, - delete getMaskSet().validPositions[i], delete getMaskSet().tests[i]; - for (resetMaskSet(!0), opts.keepStatic = !opts.keepStatic, isValidRslt = !0; validInputs.length > 0; ) { - var input = validInputs.shift(); - if (input !== opts.skipOptionalPartCharacter && !(isValidRslt = isValid(getLastValidPosition(void 0, !0) + 1, input, !1, fromSetValid))) break; + for (var decisionPos in getMaskSet().validPositions) { + if (decisionPos = parseInt(decisionPos), + altPos = getMaskSet().validPositions[decisionPos], decisionPos >= lastAlt && void 0 !== altPos.alternation) { + var altNdxs; + lastAlt === 0 ? (altNdxs = [], $.each(getMaskSet().tests[lastAlt], function (ndx, test) { + void 0 !== test.locator[alternation] && (altNdxs = altNdxs.concat(test.locator[alternation].toString().split(","))); + })) : altNdxs = getMaskSet().validPositions[lastAlt].locator[alternation].toString().split(","); + var decisionTaker = void 0 !== altPos.locator[alternation] ? altPos.locator[alternation] : altNdxs[0]; + decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(",")[0]); + for (var mndx = 0; mndx < altNdxs.length; mndx++) { + var validInputs = [], staticInputsBeforePos = 0, staticInputsBeforePosAlternate = 0; + if (decisionTaker < altNdxs[mndx]) { + for (var possibilityPos, possibilities, dp = decisionPos; dp >= 0; dp--) { + if (possibilityPos = getMaskSet().validPositions[dp], + void 0 !== possibilityPos) { + var bestMatch = selectBestMatch(dp, altNdxs[mndx]); + getMaskSet().validPositions[dp].match.def !== bestMatch.match.def && (validInputs.push(getMaskSet().validPositions[dp].input), + getMaskSet().validPositions[dp] = bestMatch, getMaskSet().validPositions[dp].input = getPlaceholder(dp), + getMaskSet().validPositions[dp].match.fn === null && staticInputsBeforePosAlternate++, + possibilityPos = bestMatch), possibilities = possibilityPos.locator[alternation], + possibilityPos.locator[alternation] = parseInt(altNdxs[mndx]); + break; + } } - if (possibilityPos.alternation = alternation, possibilityPos.locator[alternation] = possibilities, - isValidRslt) { - var targetLvp = getLastValidPosition(pos) + 1; - for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) validPos = getMaskSet().validPositions[i], - (void 0 === validPos || null == validPos.match.fn) && pos > i && staticInputsBeforePosAlternate++; - pos += staticInputsBeforePosAlternate - staticInputsBeforePos, isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid); + if (decisionTaker !== possibilityPos.locator[alternation]) { + for (i = decisionPos + 1; i < getLastValidPosition(void 0, !0) + 1; i++) { + validPos = getMaskSet().validPositions[i], + validPos && validPos.match.fn != null ? validInputs.push(validPos.input) : pos > i && staticInputsBeforePos++, + delete getMaskSet().validPositions[i], delete getMaskSet().tests[i]; + } + for (resetMaskSet(!0), opts.keepStatic = !opts.keepStatic, isValidRslt = !0; validInputs.length > 0; ) { + var input = validInputs.shift(); + if (input !== opts.skipOptionalPartCharacter && !(isValidRslt = isValid(getLastValidPosition(void 0, !0) + 1, input, !1, fromSetValid))) { + break; + } + } + if (possibilityPos.alternation = alternation, possibilityPos.locator[alternation] = possibilities, + isValidRslt) { + var targetLvp = getLastValidPosition(pos) + 1; + for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) { + validPos = getMaskSet().validPositions[i], + (void 0 === validPos || validPos.match.fn == null) && pos > i && staticInputsBeforePosAlternate++; + } + pos += staticInputsBeforePosAlternate - staticInputsBeforePos, isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid); + } + if (opts.keepStatic = !opts.keepStatic, isValidRslt) { + return isValidRslt; + } + resetMaskSet(), getMaskSet().validPositions = $.extend(!0, {}, validPsClone), getMaskSet().tests = $.extend(!0, {}, testsClone); } - if (opts.keepStatic = !opts.keepStatic, isValidRslt) return isValidRslt; - resetMaskSet(), getMaskSet().validPositions = $.extend(!0, {}, validPsClone), getMaskSet().tests = $.extend(!0, {}, testsClone); } } + break; } - break; } } return !1; } - function trackbackAlternations(originalPos, newPos) { - for (var vp = getMaskSet().validPositions[newPos], targetLocator = vp.locator, tll = targetLocator.length, ps = originalPos; newPos > ps; ps++) if (void 0 === getMaskSet().validPositions[ps] && !isMask(ps, !0)) { - var tests = getTests(ps), bestMatch = tests[0], equality = -1; - $.each(tests, function(ndx, tst) { - for (var i = 0; tll > i && (void 0 !== tst.locator[i] && checkAlternationMatch(tst.locator[i].toString().split(","), targetLocator[i].toString().split(","))); i++) i > equality && (equality = i, - bestMatch = tst); - }), setValidPosition(ps, $.extend({}, bestMatch, { - input: bestMatch.match.placeholder || bestMatch.match.def - }), !0); + function trackbackAlternations (originalPos, newPos) { + for (var vp = getMaskSet().validPositions[newPos], targetLocator = vp.locator, tll = targetLocator.length, ps = originalPos; newPos > ps; ps++) { + if (void 0 === getMaskSet().validPositions[ps] && !isMask(ps, !0)) { + var tests = getTests(ps), bestMatch = tests[0], equality = -1; + $.each(tests, function (ndx, tst) { + for (var i = 0; tll > i && (void 0 !== tst.locator[i] && checkAlternationMatch(tst.locator[i].toString().split(","), targetLocator[i].toString().split(","))); i++) { + i > equality && (equality = i, + bestMatch = tst); + } + }), setValidPosition(ps, $.extend({}, bestMatch, { + input: bestMatch.match.placeholder || bestMatch.match.def, + }), !0); + } } } strict = strict === !0; - for (var buffer = getBuffer(), pndx = pos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ; - for (pndx++; pos > pndx; pndx++) void 0 === getMaskSet().validPositions[pndx] && ((!isMask(pndx) || buffer[pndx] !== getPlaceholder(pndx)) && getTests(pndx).length > 1 || buffer[pndx] === opts.radixPoint || "0" === buffer[pndx] && $.inArray(opts.radixPoint, buffer) < pndx) && _isValid(pndx, buffer[pndx], !0, fromSetValid); + for (var buffer = getBuffer(), pndx = pos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) {} + for (pndx++; pos > pndx; pndx++) { + void 0 === getMaskSet().validPositions[pndx] && ((!isMask(pndx) || buffer[pndx] !== getPlaceholder(pndx)) && getTests(pndx).length > 1 || buffer[pndx] === opts.radixPoint || buffer[pndx] === "0" && $.inArray(opts.radixPoint, buffer) < pndx) && _isValid(pndx, buffer[pndx], !0, fromSetValid); + } var maskPos = pos, result = !1, positionsClone = $.extend(!0, {}, getMaskSet().validPositions); - if (maskPos < getMaskLength() && (result = _isValid(maskPos, c, strict, fromSetValid), + if (maskPos < getMaskLength() && (result = _isValid(maskPos, c, strict, fromSetValid), (!strict || fromSetValid === !0) && result === !1)) { var currentPosValid = getMaskSet().validPositions[maskPos]; - if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) { + if (!currentPosValid || currentPosValid.match.fn !== null || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) { if ((opts.insertMode || void 0 === getMaskSet().validPositions[seekNext(maskPos)]) && !isMask(maskPos, !0)) { var staticChar = getTestTemplate(maskPos).match, staticChar = staticChar.placeholder || staticChar.def; _isValid(maskPos, staticChar, strict, fromSetValid); - for (var nPos = maskPos + 1, snPos = seekNext(maskPos); snPos >= nPos; nPos++) if (result = _isValid(nPos, c, strict, fromSetValid), - result !== !1) { - trackbackAlternations(maskPos, nPos), maskPos = nPos; - break; + for (var nPos = maskPos + 1, snPos = seekNext(maskPos); snPos >= nPos; nPos++) { + if (result = _isValid(nPos, c, strict, fromSetValid), + result !== !1) { + trackbackAlternations(maskPos, nPos), maskPos = nPos; + break; + } } } - } else result = { - caret: seekNext(maskPos) - }; + } else { + result = { + caret: seekNext(maskPos), + }; + } } - if (result === !1 && opts.keepStatic && (result = alternate(pos, c, strict, fromSetValid)), + if (result === !1 && opts.keepStatic && (result = alternate(pos, c, strict, fromSetValid)), result === !0 && (result = { - pos: maskPos + pos: maskPos, }), $.isFunction(opts.postValidation) && result !== !1 && !strict && fromSetValid !== !0) { var postValidResult = opts.postValidation(getBuffer(!0), result, opts); if (postValidResult) { if (postValidResult.refreshFromBuffer) { var refresh = postValidResult.refreshFromBuffer; - refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, postValidResult.buffer), + refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, postValidResult.buffer), resetMaskSet(!0), result = postValidResult; } - } else resetMaskSet(!0), getMaskSet().validPositions = $.extend(!0, {}, positionsClone), - result = !1; + } else { + resetMaskSet(!0), getMaskSet().validPositions = $.extend(!0, {}, positionsClone), + result = !1; + } } return result; } - function isMask(pos, strict) { + function isMask (pos, strict) { var test; - if (strict ? (test = getTestTemplate(pos).match, "" == test.def && (test = getTest(pos))) : test = getTest(pos), - null != test.fn) return test.fn; + if (strict ? (test = getTestTemplate(pos).match, test.def == "" && (test = getTest(pos))) : test = getTest(pos), + test.fn != null) { + return test.fn; + } if (strict !== !0 && pos > -1 && !opts.keepStatic && void 0 === getMaskSet().validPositions[pos]) { var tests = getTests(pos); return tests.length > 2; } return !1; } - function getMaskLength() { + function getMaskLength () { var maskLength; - maxLength = void 0 !== el ? el.maxLength : void 0, -1 === maxLength && (maxLength = void 0); + maxLength = void 0 !== el ? el.maxLength : void 0, maxLength === -1 && (maxLength = void 0); var pos, lvp = getLastValidPosition(), testPos = getMaskSet().validPositions[lvp], ndxIntlzr = void 0 !== testPos ? testPos.locator.slice() : void 0; - for (pos = lvp + 1; void 0 === testPos || null !== testPos.match.fn || null === testPos.match.fn && "" !== testPos.match.def; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), - ndxIntlzr = testPos.locator.slice(); + for (pos = lvp + 1; void 0 === testPos || testPos.match.fn !== null || testPos.match.fn === null && testPos.match.def !== ""; pos++) { + testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), + ndxIntlzr = testPos.locator.slice(); + } var lastTest = getTest(pos - 1); - return maskLength = "" !== lastTest.def ? pos : pos - 1, void 0 === maxLength || maxLength > maskLength ? maskLength : maxLength; + return maskLength = lastTest.def !== "" ? pos : pos - 1, void 0 === maxLength || maxLength > maskLength ? maskLength : maxLength; } - function seekNext(pos, newBlock) { + function seekNext (pos, newBlock) { var maskL = getMaskLength(); - if (pos >= maskL) return maskL; - for (var position = pos; ++position < maskL && (newBlock === !0 && (getTest(position).newBlockMarker !== !0 || !isMask(position)) || newBlock !== !0 && !isMask(position) && (opts.nojumps !== !0 || opts.nojumpsThreshold > position)); ) ; + if (pos >= maskL) { + return maskL; + } + for (var position = pos; ++position < maskL && (newBlock === !0 && (getTest(position).newBlockMarker !== !0 || !isMask(position)) || newBlock !== !0 && !isMask(position) && (opts.nojumps !== !0 || opts.nojumpsThreshold > position)); ) {} return position; } - function seekPrevious(pos, newBlock) { + function seekPrevious (pos, newBlock) { var position = pos; - if (0 >= position) return 0; - for (;--position > 0 && (newBlock === !0 && getTest(position).newBlockMarker !== !0 || newBlock !== !0 && !isMask(position)); ) ; + if (position <= 0) { + return 0; + } + for (;--position > 0 && (newBlock === !0 && getTest(position).newBlockMarker !== !0 || newBlock !== !0 && !isMask(position)); ) {} return position; } - function getBufferElement(position) { + function getBufferElement (position) { return void 0 === getMaskSet().validPositions[position] ? getPlaceholder(position) : getMaskSet().validPositions[position].input; } - function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) { + function writeBuffer (input, buffer, caretPos, event, triggerInputEvent) { if (event && $.isFunction(opts.onBeforeWrite)) { var result = opts.onBeforeWrite(event, buffer, caretPos, opts); if (result) { if (result.refreshFromBuffer) { var refresh = result.refreshFromBuffer; - refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer || buffer), + refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer || buffer), buffer = getBuffer(!0); } void 0 !== caretPos && (caretPos = void 0 !== result.caret ? result.caret : caretPos); } } - input.inputmask._valueSet(buffer.join("")), void 0 === caretPos || void 0 !== event && "blur" === event.type || caret(input, caretPos), + input.inputmask._valueSet(buffer.join("")), void 0 === caretPos || void 0 !== event && event.type === "blur" || caret(input, caretPos), triggerInputEvent === !0 && (skipInputEvent = !0, $(input).trigger("input")); } - function getPlaceholder(pos, test) { - if (test = test || getTest(pos), void 0 !== test.placeholder) return test.placeholder; - if (null === test.fn) { + function getPlaceholder (pos, test) { + if (test = test || getTest(pos), void 0 !== test.placeholder) { + return test.placeholder; + } + if (test.fn === null) { if (pos > -1 && !opts.keepStatic && void 0 === getMaskSet().validPositions[pos]) { var prevTest, tests = getTests(pos), staticAlternations = 0; - if (tests.length > 2) for (var i = 0; i < tests.length; i++) if (tests[i].match.optionality !== !0 && tests[i].match.optionalQuantifier !== !0 && (null === tests[i].match.fn || void 0 === prevTest || tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts) !== !1) && (staticAlternations++, - null === tests[i].match.fn && (prevTest = tests[i]), staticAlternations > 1)) return opts.placeholder.charAt(pos % opts.placeholder.length); + if (tests.length > 2) { + for (var i = 0; i < tests.length; i++) { + if (tests[i].match.optionality !== !0 && tests[i].match.optionalQuantifier !== !0 && (tests[i].match.fn === null || void 0 === prevTest || tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts) !== !1) && (staticAlternations++, + tests[i].match.fn === null && (prevTest = tests[i]), staticAlternations > 1)) { + return opts.placeholder.charAt(pos % opts.placeholder.length); + } + } + } } return test.def; } return opts.placeholder.charAt(pos % opts.placeholder.length); } - function checkVal(input, writeOut, strict, nptvl) { - function isTemplateMatch() { + function checkVal (input, writeOut, strict, nptvl) { + function isTemplateMatch () { var isMatch = !1, charCodeNdx = getBufferTemplate().slice(initialNdx, seekNext(initialNdx)).join("").indexOf(charCodes); - if (-1 !== charCodeNdx && !isMask(initialNdx)) { + if (charCodeNdx !== -1 && !isMask(initialNdx)) { isMatch = !0; - for (var bufferTemplateArr = getBufferTemplate().slice(initialNdx, initialNdx + charCodeNdx), i = 0; i < bufferTemplateArr.length; i++) if (" " !== bufferTemplateArr[i]) { - isMatch = !1; - break; + for (var bufferTemplateArr = getBufferTemplate().slice(initialNdx, initialNdx + charCodeNdx), i = 0; i < bufferTemplateArr.length; i++) { + if (bufferTemplateArr[i] !== " ") { + isMatch = !1; + break; + } } } return isMatch; } var inputValue = nptvl.slice(), charCodes = "", initialNdx = 0; - if (resetMaskSet(), getMaskSet().p = seekNext(-1), !strict) if (opts.autoUnmask !== !0) { - var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(""), matches = inputValue.join("").match(new RegExp("^" + Inputmask.escapeRegex(staticInput), "g")); - matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length), - initialNdx = seekNext(initialNdx)); - } else initialNdx = seekNext(initialNdx); - $.each(inputValue, function(ndx, charCode) { + if (resetMaskSet(), getMaskSet().p = seekNext(-1), !strict) { + if (opts.autoUnmask !== !0) { + var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(""), matches = inputValue.join("").match(new RegExp("^" + Inputmask.escapeRegex(staticInput), "g")); + matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length), + initialNdx = seekNext(initialNdx)); + } else { + initialNdx = seekNext(initialNdx); + } + } + $.each(inputValue, function (ndx, charCode) { if (void 0 !== charCode) { var keypress = new $.Event("keypress"); keypress.which = charCode.charCodeAt(0), charCodes += charCode; var lvp = getLastValidPosition(void 0, !0), lvTest = getMaskSet().validPositions[lvp], nextTest = getTestTemplate(lvp + 1, lvTest ? lvTest.locator.slice() : void 0, lvp); if (!isTemplateMatch() || strict || opts.autoUnmask) { - var pos = strict ? ndx : null == nextTest.match.fn && nextTest.match.optionality && lvp + 1 < getMaskSet().p ? lvp + 1 : getMaskSet().p; - keypressEvent.call(input, keypress, !0, !1, strict, pos), initialNdx = pos + 1, + var pos = strict ? ndx : nextTest.match.fn == null && nextTest.match.optionality && lvp + 1 < getMaskSet().p ? lvp + 1 : getMaskSet().p; + keypressEvent.call(input, keypress, !0, !1, strict, pos), initialNdx = pos + 1, charCodes = ""; - } else keypressEvent.call(input, keypress, !0, !1, !0, lvp + 1); + } else { + keypressEvent.call(input, keypress, !0, !1, !0, lvp + 1); + } } }), writeOut && writeBuffer(input, getBuffer(), document.activeElement === input ? seekNext(getLastValidPosition(0)) : void 0, new $.Event("checkval")); } - function unmaskedvalue(input) { - if (input && void 0 === input.inputmask) return input.value; + function unmaskedvalue (input) { + if (input && void 0 === input.inputmask) { + return input.value; + } var umValue = [], vps = getMaskSet().validPositions; - for (var pndx in vps) vps[pndx].match && null != vps[pndx].match.fn && umValue.push(vps[pndx].input); - var unmaskedValue = 0 === umValue.length ? null : (isRTL ? umValue.reverse() : umValue).join(""); - if (null !== unmaskedValue) { + for (var pndx in vps) { + vps[pndx].match && vps[pndx].match.fn != null && umValue.push(vps[pndx].input); + } + var unmaskedValue = umValue.length === 0 ? null : (isRTL ? umValue.reverse() : umValue).join(""); + if (unmaskedValue !== null) { var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(""); $.isFunction(opts.onUnMask) && (unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts) || unmaskedValue); } return unmaskedValue; } - function caret(input, begin, end, notranslate) { - function translatePosition(pos) { - if (notranslate !== !0 && isRTL && "number" == typeof pos && (!opts.greedy || "" !== opts.placeholder)) { + function caret (input, begin, end, notranslate) { + function translatePosition (pos) { + if (notranslate !== !0 && isRTL && typeof pos === "number" && (!opts.greedy || opts.placeholder !== "")) { var bffrLght = getBuffer().join("").length; pos = bffrLght - pos; } return pos; } var range; - if ("number" != typeof begin) return input.setSelectionRange ? (begin = input.selectionStart, - end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0), - (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) && (begin = range.startOffset, - end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(), - begin = 0 - range.duplicate().moveStart("character", -1e5), end = begin + range.text.length), - { - begin: translatePosition(begin), - end: translatePosition(end) - }; - begin = translatePosition(begin), end = translatePosition(end), end = "number" == typeof end ? end : begin; + if (typeof begin !== "number") { + return input.setSelectionRange ? (begin = input.selectionStart, + end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0), + (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) && (begin = range.startOffset, + end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(), + begin = 0 - range.duplicate().moveStart("character", -1e5), end = begin + range.text.length), + { + begin: translatePosition(begin), + end: translatePosition(end), + }; + } + begin = translatePosition(begin), end = translatePosition(end), end = typeof end === "number" ? end : begin; var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end; - if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, mobile || opts.insertMode !== !1 || begin !== end || end++, - input.setSelectionRange) input.selectionStart = begin, input.selectionEnd = end; else if (window.getSelection) { - if (range = document.createRange(), void 0 === input.firstChild || null === input.firstChild) { + if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, mobile || opts.insertMode !== !1 || begin !== end || end++, + input.setSelectionRange) { + input.selectionStart = begin, input.selectionEnd = end; + } else if (window.getSelection) { + if (range = document.createRange(), void 0 === input.firstChild || input.firstChild === null) { var textNode = document.createTextNode(""); input.appendChild(textNode); } - range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), - range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), + range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), + range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), range.collapse(!0); var sel = window.getSelection(); sel.removeAllRanges(), sel.addRange(range); - } else input.createTextRange && (range = input.createTextRange(), range.collapse(!0), - range.moveEnd("character", end), range.moveStart("character", begin), range.select()); + } else { + input.createTextRange && (range = input.createTextRange(), range.collapse(!0), + range.moveEnd("character", end), range.moveStart("character", begin), range.select()); + } } - function determineLastRequiredPosition(returnDefinition) { + function determineLastRequiredPosition (returnDefinition) { var pos, testPos, buffer = getBuffer(), bl = buffer.length, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = void 0 !== lvTest ? lvTest.locator.slice() : void 0; - for (pos = lvp + 1; pos < buffer.length; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), - ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos); + for (pos = lvp + 1; pos < buffer.length; pos++) { + testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), + ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos); + } var lvTestAlt = lvTest && void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation] : void 0; - for (pos = bl - 1; pos > lvp && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && null != testPos.match.fn || null === testPos.match.fn && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAlt.toString().split(",")) && "" !== getTests(pos)[0].def)) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) bl--; + for (pos = bl - 1; pos > lvp && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && testPos.match.fn != null || testPos.match.fn === null && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAlt.toString().split(",")) && getTests(pos)[0].def !== "")) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) { + bl--; + } return returnDefinition ? { l: bl, - def: positions[bl] ? positions[bl].match : void 0 + def: positions[bl] ? positions[bl].match : void 0, } : bl; } - function clearOptionalTail(buffer) { - for (var rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ; + function clearOptionalTail (buffer) { + for (var rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) {} return buffer.splice(rl, lmib + 1 - rl), buffer; } - function isComplete(buffer) { - if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts); - if ("*" === opts.repeat) return void 0; + function isComplete (buffer) { + if ($.isFunction(opts.isComplete)) { + return opts.isComplete(buffer, opts); + } + if (opts.repeat === "*") { + return void 0; + } var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l); if (void 0 === lrp.def || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) { complete = !0; for (var i = 0; aml >= i; i++) { var test = getTestTemplate(i).match; - if (null !== test.fn && void 0 === getMaskSet().validPositions[i] && test.optionality !== !0 && test.optionalQuantifier !== !0 || null === test.fn && buffer[i] !== getPlaceholder(i, test)) { + if (test.fn !== null && void 0 === getMaskSet().validPositions[i] && test.optionality !== !0 && test.optionalQuantifier !== !0 || test.fn === null && buffer[i] !== getPlaceholder(i, test)) { complete = !1; break; } @@ -807,140 +993,156 @@ } return complete; } - function isSelection(begin, end) { + function isSelection (begin, end) { return isRTL ? begin - end > 1 || begin - end === 1 && opts.insertMode : end - begin > 1 || end - begin === 1 && opts.insertMode; } - function patchValueProperty(npt) { - function patchValhook(type) { + function patchValueProperty (npt) { + function patchValhook (type) { if ($.valHooks && (void 0 === $.valHooks[type] || $.valHooks[type].inputmaskpatch !== !0)) { - var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) { - return elem.value; - }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) { - return elem.value = value, elem; - }; + var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function (elem) { + return elem.value; + }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function (elem, value) { + return elem.value = value, elem; + }; $.valHooks[type] = { - get: function(elem) { + get: function (elem) { if (elem.inputmask) { - if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue(); + if (elem.inputmask.opts.autoUnmask) { + return elem.inputmask.unmaskedvalue(); + } var result = valhookGet(elem), maskset = elem.inputmask.maskset, bufferTemplate = maskset._buffer; return bufferTemplate = bufferTemplate ? bufferTemplate.join("") : "", result !== bufferTemplate ? result : ""; } return valhookGet(elem); }, - set: function(elem, value) { + set: function (elem, value) { var result, $elem = $(elem); - return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"), + return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"), result; }, - inputmaskpatch: !0 + inputmaskpatch: !0, }; } } - function getter() { + function getter () { return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : valueGet.call(this) !== getBufferTemplate().join("") ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this); } - function setter(value) { + function setter (value) { valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue"); } - function installNativeValueSetFallback(npt) { - EventRuler.on(npt, "mouseenter", function(event) { + function installNativeValueSetFallback (npt) { + EventRuler.on(npt, "mouseenter", function (event) { var $input = $(this), input = this, value = input.inputmask._valueGet(); value !== getBuffer().join("") && getLastValidPosition() > 0 && $input.trigger("setvalue"); }); } var valueGet, valueSet; - npt.inputmask.__valueGet || (Object.getOwnPropertyDescriptor && void 0 === npt.value ? (valueGet = function() { + npt.inputmask.__valueGet || (Object.getOwnPropertyDescriptor && void 0 === npt.value ? (valueGet = function () { return this.textContent; - }, valueSet = function(value) { + }, valueSet = function (value) { this.textContent = value; }, Object.defineProperty(npt, "value", { get: getter, - set: setter - })) : document.__lookupGetter__ && npt.__lookupGetter__("value") ? (valueGet = npt.__lookupGetter__("value"), - valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter), - npt.__defineSetter__("value", setter)) : (valueGet = function() { + set: setter, + })) : document.__lookupGetter__ && npt.__lookupGetter__("value") ? (valueGet = npt.__lookupGetter__("value"), + valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter), + npt.__defineSetter__("value", setter)) : (valueGet = function () { return npt.value; - }, valueSet = function(value) { + }, valueSet = function (value) { npt.value = value; - }, patchValhook(npt.type), installNativeValueSetFallback(npt)), npt.inputmask.__valueGet = valueGet, - npt.inputmask._valueGet = function(overruleRTL) { + }, patchValhook(npt.type), installNativeValueSetFallback(npt)), npt.inputmask.__valueGet = valueGet, + npt.inputmask._valueGet = function (overruleRTL) { return isRTL && overruleRTL !== !0 ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el); - }, npt.inputmask.__valueSet = valueSet, npt.inputmask._valueSet = function(value, overruleRTL) { - valueSet.call(this.el, null === value || void 0 === value ? "" : overruleRTL !== !0 && isRTL ? value.split("").reverse().join("") : value); + }, npt.inputmask.__valueSet = valueSet, npt.inputmask._valueSet = function (value, overruleRTL) { + valueSet.call(this.el, value === null || void 0 === value ? "" : overruleRTL !== !0 && isRTL ? value.split("").reverse().join("") : value); }); } - function handleRemove(input, k, pos, strict) { - function generalize() { + function handleRemove (input, k, pos, strict) { + function generalize () { if (opts.keepStatic) { resetMaskSet(!0); var lastAlt, validInputs = [], positionsClone = $.extend(!0, {}, getMaskSet().validPositions); for (lastAlt = getLastValidPosition(); lastAlt >= 0; lastAlt--) { var validPos = getMaskSet().validPositions[lastAlt]; - if (validPos && (null != validPos.match.fn && validInputs.push(validPos.input), - delete getMaskSet().validPositions[lastAlt], void 0 !== validPos.alternation && validPos.locator[validPos.alternation] === getTestTemplate(lastAlt).locator[validPos.alternation])) break; + if (validPos && (validPos.match.fn != null && validInputs.push(validPos.input), + delete getMaskSet().validPositions[lastAlt], void 0 !== validPos.alternation && validPos.locator[validPos.alternation] === getTestTemplate(lastAlt).locator[validPos.alternation])) { + break; + } + } + if (lastAlt > -1) { + for (;validInputs.length > 0; ) { + getMaskSet().p = seekNext(getLastValidPosition()); + var keypress = new $.Event("keypress"); + keypress.which = validInputs.pop().charCodeAt(0), keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p); + } + } else { + getMaskSet().validPositions = $.extend(!0, {}, positionsClone); } - if (lastAlt > -1) for (;validInputs.length > 0; ) { - getMaskSet().p = seekNext(getLastValidPosition()); - var keypress = new $.Event("keypress"); - keypress.which = validInputs.pop().charCodeAt(0), keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p); - } else getMaskSet().validPositions = $.extend(!0, {}, positionsClone); } } - if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE), + if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE), isRTL)) { var pend = pos.end; pos.end = pos.begin, pos.begin = pend; } - k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || opts.insertMode === !1) ? (pos.begin = seekPrevious(pos.begin), - void 0 === getMaskSet().validPositions[pos.begin] || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.begin--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end) ? pos.end + 1 : seekNext(pos.end) + 1, - void 0 === getMaskSet().validPositions[pos.begin] || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.end++), + k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || opts.insertMode === !1) ? (pos.begin = seekPrevious(pos.begin), + void 0 === getMaskSet().validPositions[pos.begin] || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.begin--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end) ? pos.end + 1 : seekNext(pos.end) + 1, + void 0 === getMaskSet().validPositions[pos.begin] || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.end++), stripValidPositions(pos.begin, pos.end, !1, strict), strict !== !0 && generalize(); var lvp = getLastValidPosition(pos.begin); - lvp < pos.begin ? (-1 === lvp && resetMaskSet(), getMaskSet().p = seekNext(lvp)) : strict !== !0 && (getMaskSet().p = pos.begin); + lvp < pos.begin ? (lvp === -1 && resetMaskSet(), getMaskSet().p = seekNext(lvp)) : strict !== !0 && (getMaskSet().p = pos.begin); } - function keydownEvent(e) { + function keydownEvent (e) { var input = this, $input = $(input), k = e.keyCode, pos = caret(input); - if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && 127 === k || e.ctrlKey && 88 === k && !isInputEventSupported("cut")) e.preventDefault(), - 88 === k && (undoValue = getBuffer().join("")), handleRemove(input, k, pos), writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")), - input.inputmask._valueGet() === getBufferTemplate().join("") ? $input.trigger("cleared") : isComplete(getBuffer()) === !0 && $input.trigger("complete"), - opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask); else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) { + if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === 127 || e.ctrlKey && k === 88 && !isInputEventSupported("cut")) { + e.preventDefault(), + k === 88 && (undoValue = getBuffer().join("")), handleRemove(input, k, pos), writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")), + input.inputmask._valueGet() === getBufferTemplate().join("") ? $input.trigger("cleared") : isComplete(getBuffer()) === !0 && $input.trigger("complete"), + opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask); + } else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) { e.preventDefault(); var caretPos = seekNext(getLastValidPosition()); opts.insertMode || caretPos !== getMaskLength() || e.shiftKey || caretPos--, caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0); - } else k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? (e.preventDefault(), - caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || 90 === k && e.ctrlKey) && e.altKey !== !0 ? (checkVal(input, !0, !1, undoValue.split("")), - $input.trigger("click")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? opts.tabThrough === !0 && k === Inputmask.keyCode.TAB ? (e.shiftKey === !0 ? (null === getTest(pos.begin).fn && (pos.begin = seekNext(pos.begin)), - pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0), - pos.end = seekNext(pos.begin, !0), pos.end < getMaskLength() && pos.end--), pos.begin < getMaskLength() && (e.preventDefault(), - caret(input, pos.begin, pos.end))) : opts.insertMode !== !1 || e.shiftKey || (k === Inputmask.keyCode.RIGHT ? setTimeout(function() { - var caretPos = caret(input); - caret(input, caretPos.begin); - }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function() { - var caretPos = caret(input); - caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1); - }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskLength() ? pos.begin : pos.begin - 1)); - opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 !== $.inArray(k, opts.ignorables); + } else { + k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? (e.preventDefault(), + caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || k === 90 && e.ctrlKey) && e.altKey !== !0 ? (checkVal(input, !0, !1, undoValue.split("")), + $input.trigger("click")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? opts.tabThrough === !0 && k === Inputmask.keyCode.TAB ? (e.shiftKey === !0 ? (getTest(pos.begin).fn === null && (pos.begin = seekNext(pos.begin)), + pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0), + pos.end = seekNext(pos.begin, !0), pos.end < getMaskLength() && pos.end--), pos.begin < getMaskLength() && (e.preventDefault(), + caret(input, pos.begin, pos.end))) : opts.insertMode !== !1 || e.shiftKey || (k === Inputmask.keyCode.RIGHT ? setTimeout(function () { + var caretPos = caret(input); + caret(input, caretPos.begin); + }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function () { + var caretPos = caret(input); + caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1); + }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskLength() ? pos.begin : pos.begin - 1)); + } + opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = $.inArray(k, opts.ignorables) !== -1; } - function keypressEvent(e, checkval, writeOut, strict, ndx) { + function keypressEvent (e, checkval, writeOut, strict, ndx) { var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode; - if (!(checkval === !0 || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join("") && (undoValue = getBuffer().join(""), - setTimeout(function() { - $input.trigger("change"); - }, 0)), !0; + if (!(checkval === !0 || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) { + return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join("") && (undoValue = getBuffer().join(""), + setTimeout(function () { + $input.trigger("change"); + }, 0)), !0; + } if (k) { - 46 === k && e.shiftKey === !1 && "," === opts.radixPoint && (k = 44); + k === 46 && e.shiftKey === !1 && opts.radixPoint === "," && (k = 44); var forwardPosition, pos = checkval ? { - begin: ndx, - end: ndx - } : caret(input), c = String.fromCharCode(k), isSlctn = isSelection(pos.begin, pos.end); - isSlctn && (getMaskSet().undoPositions = $.extend(!0, {}, getMaskSet().validPositions), - handleRemove(input, Inputmask.keyCode.DELETE, pos, !0), pos.begin = getMaskSet().p, - opts.insertMode || (opts.insertMode = !opts.insertMode, setValidPosition(pos.begin, strict), + begin: ndx, + end: ndx, + } : caret(input), c = String.fromCharCode(k), isSlctn = isSelection(pos.begin, pos.end); + isSlctn && (getMaskSet().undoPositions = $.extend(!0, {}, getMaskSet().validPositions), + handleRemove(input, Inputmask.keyCode.DELETE, pos, !0), pos.begin = getMaskSet().p, + opts.insertMode || (opts.insertMode = !opts.insertMode, setValidPosition(pos.begin, strict), opts.insertMode = !opts.insertMode), isSlctn = !opts.multi), getMaskSet().writeOutBuffer = !0; var p = isRTL && !isSlctn ? pos.end : pos.begin, valResult = isValid(p, c, strict); if (valResult !== !1) { - if (valResult !== !0 && (p = void 0 !== valResult.pos ? valResult.pos : p, c = void 0 !== valResult.c ? valResult.c : c), - resetMaskSet(!0), void 0 !== valResult.caret) forwardPosition = valResult.caret; else { + if (valResult !== !0 && (p = void 0 !== valResult.pos ? valResult.pos : p, c = void 0 !== valResult.c ? valResult.c : c), + resetMaskSet(!0), void 0 !== valResult.caret) { + forwardPosition = valResult.caret; + } else { var vps = getMaskSet().validPositions; forwardPosition = !opts.keepStatic && (void 0 !== vps[p + 1] && getTests(p + 1, vps[p].locator.slice(), p).length > 1 || void 0 !== vps[p].alternation) ? p + 1 : seekNext(p); } @@ -948,111 +1150,129 @@ } if (writeOut !== !1) { var self = this; - if (setTimeout(function() { + if (setTimeout(function () { opts.onKeyValidation.call(self, k, valResult, opts); }, 0), getMaskSet().writeOutBuffer && valResult !== !1) { var buffer = getBuffer(); - writeBuffer(input, buffer, opts.numericInput && void 0 === valResult.caret ? seekPrevious(forwardPosition) : forwardPosition, e, checkval !== !0), - checkval !== !0 && setTimeout(function() { + writeBuffer(input, buffer, opts.numericInput && void 0 === valResult.caret ? seekPrevious(forwardPosition) : forwardPosition, e, checkval !== !0), + checkval !== !0 && setTimeout(function () { isComplete(buffer) === !0 && $input.trigger("complete"); }, 0); - } else isSlctn && (getMaskSet().buffer = void 0, getMaskSet().validPositions = getMaskSet().undoPositions); - } else isSlctn && (getMaskSet().buffer = void 0, getMaskSet().validPositions = getMaskSet().undoPositions); + } else { + isSlctn && (getMaskSet().buffer = void 0, getMaskSet().validPositions = getMaskSet().undoPositions); + } + } else { + isSlctn && (getMaskSet().buffer = void 0, getMaskSet().validPositions = getMaskSet().undoPositions); + } if (opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask), checkval && $.isFunction(opts.onBeforeWrite)) { var result = opts.onBeforeWrite(e, getBuffer(), forwardPosition, opts); if (result && result.refreshFromBuffer) { var refresh = result.refreshFromBuffer; - refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer), + refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer), resetMaskSet(!0), result.caret && (getMaskSet().p = result.caret); } } - if (e.preventDefault(), checkval) return valResult; + if (e.preventDefault(), checkval) { + return valResult; + } } } - function pasteEvent(e) { + function pasteEvent (e) { var input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(!0), caretPos = caret(input), valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length); - valueBeforeCaret === getBufferTemplate().slice(0, caretPos.begin).join("") && (valueBeforeCaret = ""), - valueAfterCaret === getBufferTemplate().slice(caretPos.end).join("") && (valueAfterCaret = ""), + valueBeforeCaret === getBufferTemplate().slice(0, caretPos.begin).join("") && (valueBeforeCaret = ""), + valueAfterCaret === getBufferTemplate().slice(caretPos.end).join("") && (valueAfterCaret = ""), window.clipboardData && window.clipboardData.getData ? inputValue = valueBeforeCaret + window.clipboardData.getData("Text") + valueAfterCaret : ev.clipboardData && ev.clipboardData.getData && (inputValue = valueBeforeCaret + ev.clipboardData.getData("text/plain") + valueAfterCaret); var pasteValue = inputValue; if ($.isFunction(opts.onBeforePaste)) { - if (pasteValue = opts.onBeforePaste(inputValue, opts), pasteValue === !1) return e.preventDefault(), - !1; + if (pasteValue = opts.onBeforePaste(inputValue, opts), pasteValue === !1) { + return e.preventDefault(), + !1; + } pasteValue || (pasteValue = inputValue); } - return checkVal(input, !1, !1, isRTL ? pasteValue.split("").reverse() : pasteValue.toString().split("")), - writeBuffer(input, getBuffer(), void 0, e, !0), $input.trigger("click"), isComplete(getBuffer()) === !0 && $input.trigger("complete"), + return checkVal(input, !1, !1, isRTL ? pasteValue.split("").reverse() : pasteValue.toString().split("")), + writeBuffer(input, getBuffer(), void 0, e, !0), $input.trigger("click"), isComplete(getBuffer()) === !0 && $input.trigger("complete"), !1; } - function inputFallBackEvent(e) { + function inputFallBackEvent (e) { var input = this, inputValue = input.inputmask._valueGet(); if (getBuffer().join("") !== inputValue) { var caretPos = caret(input); - if (inputValue = inputValue.replace(new RegExp("(" + Inputmask.escapeRegex(getBufferTemplate().join("")) + ")*"), ""), + if (inputValue = inputValue.replace(new RegExp("(" + Inputmask.escapeRegex(getBufferTemplate().join("")) + ")*"), ""), iemobile) { var inputChar = inputValue.replace(getBuffer().join(""), ""); - if (1 === inputChar.length) { + if (inputChar.length === 1) { var keypress = new $.Event("keypress"); - return keypress.which = inputChar.charCodeAt(0), keypressEvent.call(input, keypress, !0, !0, !1, getMaskSet().validPositions[caretPos.begin - 1] ? caretPos.begin : caretPos.begin - 1), + return keypress.which = inputChar.charCodeAt(0), keypressEvent.call(input, keypress, !0, !0, !1, getMaskSet().validPositions[caretPos.begin - 1] ? caretPos.begin : caretPos.begin - 1), !1; } } - if (caretPos.begin > inputValue.length && (caret(input, inputValue.length), caretPos = caret(input)), + if (caretPos.begin > inputValue.length && (caret(input, inputValue.length), caretPos = caret(input)), getBuffer().length - inputValue.length !== 1 || inputValue.charAt(caretPos.begin) === getBuffer()[caretPos.begin] || inputValue.charAt(caretPos.begin + 1) === getBuffer()[caretPos.begin] || isMask(caretPos.begin)) { - for (var lvp = getLastValidPosition() + 1, bufferTemplate = getBuffer().slice(lvp).join(""); null === inputValue.match(Inputmask.escapeRegex(bufferTemplate) + "$"); ) bufferTemplate = bufferTemplate.slice(1); - inputValue = inputValue.replace(bufferTemplate, ""), inputValue = inputValue.split(""), + for (var lvp = getLastValidPosition() + 1, bufferTemplate = getBuffer().slice(lvp).join(""); inputValue.match(Inputmask.escapeRegex(bufferTemplate) + "$") === null; ) { + bufferTemplate = bufferTemplate.slice(1); + } + inputValue = inputValue.replace(bufferTemplate, ""), inputValue = inputValue.split(""), checkVal(input, !0, !1, inputValue), isComplete(getBuffer()) === !0 && $(input).trigger("complete"); - } else e.keyCode = Inputmask.keyCode.BACKSPACE, keydownEvent.call(input, e); + } else { + e.keyCode = Inputmask.keyCode.BACKSPACE, keydownEvent.call(input, e); + } e.preventDefault(); } } - function compositionStartEvent(e) { + function compositionStartEvent (e) { var ev = e.originalEvent || e; - undoValue = getBuffer().join(""), "" === compositionData || 0 !== ev.data.indexOf(compositionData); + undoValue = getBuffer().join(""), compositionData === "" || ev.data.indexOf(compositionData) !== 0; } - function compositionUpdateEvent(e) { + function compositionUpdateEvent (e) { var input = this, ev = e.originalEvent || e, inputBuffer = getBuffer().join(""); - 0 === ev.data.indexOf(compositionData) && (resetMaskSet(), getMaskSet().p = seekNext(-1)); + ev.data.indexOf(compositionData) === 0 && (resetMaskSet(), getMaskSet().p = seekNext(-1)); for (var newData = ev.data, i = 0; i < newData.length; i++) { var keypress = new $.Event("keypress"); - keypress.which = newData.charCodeAt(i), skipKeyPressEvent = !1, ignorable = !1, + keypress.which = newData.charCodeAt(i), skipKeyPressEvent = !1, ignorable = !1, keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p); } - inputBuffer !== getBuffer().join("") && setTimeout(function() { + inputBuffer !== getBuffer().join("") && setTimeout(function () { var forwardPosition = getMaskSet().p; writeBuffer(input, getBuffer(), opts.numericInput ? seekPrevious(forwardPosition) : forwardPosition); }, 0), compositionData = ev.data; } - function compositionEndEvent(e) {} - function setValueEvent(e) { + function compositionEndEvent (e) {} + function setValueEvent (e) { var input = this, value = input.inputmask._valueGet(); - checkVal(input, !0, !1, ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(value, opts) || value : value).split("")), + checkVal(input, !0, !1, ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(value, opts) || value : value).split("")), undoValue = getBuffer().join(""), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("") && input.inputmask._valueSet(""); } - function focusEvent(e) { + function focusEvent (e) { var input = this, nptValue = input.inputmask._valueGet(); - opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && "" === nptValue) ? input.inputmask._valueGet() !== getBuffer().join("") && writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())) : mouseEnter === !1 && caret(input, seekNext(getLastValidPosition())), - opts.positionCaretOnTab === !0 && setTimeout(function() { + opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && nptValue === "") ? input.inputmask._valueGet() !== getBuffer().join("") && writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())) : mouseEnter === !1 && caret(input, seekNext(getLastValidPosition())), + opts.positionCaretOnTab === !0 && setTimeout(function () { caret(input, seekNext(getLastValidPosition())); }, 0), undoValue = getBuffer().join(""); } - function mouseleaveEvent(e) { + function mouseleaveEvent (e) { var input = this; if (mouseEnter = !1, opts.clearMaskOnLostFocus && document.activeElement !== input) { var buffer = getBuffer().slice(), nptValue = input.inputmask._valueGet(); - nptValue !== input.getAttribute("placeholder") && "" !== nptValue && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer), + nptValue !== input.getAttribute("placeholder") && nptValue !== "" && (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer), writeBuffer(input, buffer)); } } - function clickEvent(e) { - function doRadixFocus(clickPos) { - if (opts.radixFocus && "" !== opts.radixPoint) { + function clickEvent (e) { + function doRadixFocus (clickPos) { + if (opts.radixFocus && opts.radixPoint !== "") { var vps = getMaskSet().validPositions; if (void 0 === vps[clickPos] || vps[clickPos].input === getPlaceholder(clickPos)) { - if (clickPos < seekNext(-1)) return !0; + if (clickPos < seekNext(-1)) { + return !0; + } var radixPos = $.inArray(opts.radixPoint, getBuffer()); - if (-1 !== radixPos) { - for (var vp in vps) if (vp > radixPos && vps[vp].input !== getPlaceholder(vp)) return !1; + if (radixPos !== -1) { + for (var vp in vps) { + if (vp > radixPos && vps[vp].input !== getPlaceholder(vp)) { + return !1; + } + } return !0; } } @@ -1062,122 +1282,130 @@ var input = this; if (document.activeElement === input) { var selectedCaret = caret(input); - if (selectedCaret.begin === selectedCaret.end) if (doRadixFocus(selectedCaret.begin)) caret(input, opts.numericInput ? seekNext($.inArray(opts.radixPoint, getBuffer())) : $.inArray(opts.radixPoint, getBuffer())); else { - var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition), lastPosition = seekNext(lvclickPosition); - lastPosition > clickPosition ? caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)) : ((getBuffer()[lastPosition] !== getPlaceholder(lastPosition) || !isMask(lastPosition, !0) && getTest(lastPosition).def === getPlaceholder(lastPosition)) && (lastPosition = seekNext(lastPosition)), - caret(input, lastPosition)); + if (selectedCaret.begin === selectedCaret.end) { + if (doRadixFocus(selectedCaret.begin)) { + caret(input, opts.numericInput ? seekNext($.inArray(opts.radixPoint, getBuffer())) : $.inArray(opts.radixPoint, getBuffer())); + } else { + var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition), lastPosition = seekNext(lvclickPosition); + lastPosition > clickPosition ? caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)) : ((getBuffer()[lastPosition] !== getPlaceholder(lastPosition) || !isMask(lastPosition, !0) && getTest(lastPosition).def === getPlaceholder(lastPosition)) && (lastPosition = seekNext(lastPosition)), + caret(input, lastPosition)); + } } } } - function dblclickEvent(e) { + function dblclickEvent (e) { var input = this; - setTimeout(function() { + setTimeout(function () { caret(input, 0, seekNext(getLastValidPosition())); }, 0); } - function cutEvent(e) { + function cutEvent (e) { var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e, clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end); - clipboardData.setData("text", isRTL ? clipData.reverse().join("") : clipData.join("")), - document.execCommand && document.execCommand("copy"), handleRemove(input, Inputmask.keyCode.DELETE, pos), - writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")), - input.inputmask._valueGet() === getBufferTemplate().join("") && $input.trigger("cleared"), + clipboardData.setData("text", isRTL ? clipData.reverse().join("") : clipData.join("")), + document.execCommand && document.execCommand("copy"), handleRemove(input, Inputmask.keyCode.DELETE, pos), + writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")), + input.inputmask._valueGet() === getBufferTemplate().join("") && $input.trigger("cleared"), opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask); } - function blurEvent(e) { + function blurEvent (e) { var $input = $(this), input = this; if (input.inputmask) { var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice(); - undoValue !== buffer.join("") && setTimeout(function() { + undoValue !== buffer.join("") && setTimeout(function () { $input.trigger("change"), undoValue = buffer.join(""); - }, 0), "" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)), - isComplete(buffer) === !1 && (setTimeout(function() { + }, 0), nptValue !== "" && (opts.clearMaskOnLostFocus && (getLastValidPosition() === -1 && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)), + isComplete(buffer) === !1 && (setTimeout(function () { $input.trigger("incomplete"); - }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())), + }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())), writeBuffer(input, buffer, void 0, e)); } } - function mouseenterEvent(e) { + function mouseenterEvent (e) { var input = this; mouseEnter = !0, document.activeElement !== input && opts.showMaskOnHover && input.inputmask._valueGet() !== getBuffer().join("") && writeBuffer(input, getBuffer()); } - function submitEvent(e) { - undoValue !== getBuffer().join("") && $el.trigger("change"), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join("") && el.inputmask._valueSet(""), - opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0), - setTimeout(function() { + function submitEvent (e) { + undoValue !== getBuffer().join("") && $el.trigger("change"), opts.clearMaskOnLostFocus && getLastValidPosition() === -1 && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join("") && el.inputmask._valueSet(""), + opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0), + setTimeout(function () { writeBuffer(el, getBuffer()); }, 0)); } - function resetEvent(e) { - setTimeout(function() { + function resetEvent (e) { + setTimeout(function () { $el.trigger("setvalue"); }, 0); } - function mask(elem) { - if (el = elem, $el = $(el), opts.showTooltip && (el.title = opts.tooltip || getMaskSet().mask), - ("rtl" === el.dir || opts.rightAlign) && (el.style.textAlign = "right"), ("rtl" === el.dir || opts.numericInput) && (el.dir = "ltr", - el.removeAttribute("dir"), el.inputmask.isRTL = !0, isRTL = !0), EventRuler.off(el), - patchValueProperty(el), isElementTypeSupported(el, opts) && (EventRuler.on(el, "submit", submitEvent), - EventRuler.on(el, "reset", resetEvent), EventRuler.on(el, "mouseenter", mouseenterEvent), - EventRuler.on(el, "blur", blurEvent), EventRuler.on(el, "focus", focusEvent), EventRuler.on(el, "mouseleave", mouseleaveEvent), - EventRuler.on(el, "click", clickEvent), EventRuler.on(el, "dblclick", dblclickEvent), - EventRuler.on(el, "paste", pasteEvent), EventRuler.on(el, "dragdrop", pasteEvent), - EventRuler.on(el, "drop", pasteEvent), EventRuler.on(el, "cut", cutEvent), EventRuler.on(el, "complete", opts.oncomplete), - EventRuler.on(el, "incomplete", opts.onincomplete), EventRuler.on(el, "cleared", opts.oncleared), - EventRuler.on(el, "keydown", keydownEvent), EventRuler.on(el, "keypress", keypressEvent), - EventRuler.on(el, "input", inputFallBackEvent), mobile || (EventRuler.on(el, "compositionstart", compositionStartEvent), - EventRuler.on(el, "compositionupdate", compositionUpdateEvent), EventRuler.on(el, "compositionend", compositionEndEvent))), - EventRuler.on(el, "setvalue", setValueEvent), "" !== el.inputmask._valueGet() || opts.clearMaskOnLostFocus === !1) { + function mask (elem) { + if (el = elem, $el = $(el), opts.showTooltip && (el.title = opts.tooltip || getMaskSet().mask), + (el.dir === "rtl" || opts.rightAlign) && (el.style.textAlign = "right"), (el.dir === "rtl" || opts.numericInput) && (el.dir = "ltr", + el.removeAttribute("dir"), el.inputmask.isRTL = !0, isRTL = !0), EventRuler.off(el), + patchValueProperty(el), isElementTypeSupported(el, opts) && (EventRuler.on(el, "submit", submitEvent), + EventRuler.on(el, "reset", resetEvent), EventRuler.on(el, "mouseenter", mouseenterEvent), + EventRuler.on(el, "blur", blurEvent), EventRuler.on(el, "focus", focusEvent), EventRuler.on(el, "mouseleave", mouseleaveEvent), + EventRuler.on(el, "click", clickEvent), EventRuler.on(el, "dblclick", dblclickEvent), + EventRuler.on(el, "paste", pasteEvent), EventRuler.on(el, "dragdrop", pasteEvent), + EventRuler.on(el, "drop", pasteEvent), EventRuler.on(el, "cut", cutEvent), EventRuler.on(el, "complete", opts.oncomplete), + EventRuler.on(el, "incomplete", opts.onincomplete), EventRuler.on(el, "cleared", opts.oncleared), + EventRuler.on(el, "keydown", keydownEvent), EventRuler.on(el, "keypress", keypressEvent), + EventRuler.on(el, "input", inputFallBackEvent), mobile || (EventRuler.on(el, "compositionstart", compositionStartEvent), + EventRuler.on(el, "compositionupdate", compositionUpdateEvent), EventRuler.on(el, "compositionend", compositionEndEvent))), + EventRuler.on(el, "setvalue", setValueEvent), el.inputmask._valueGet() !== "" || opts.clearMaskOnLostFocus === !1) { var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet(); checkVal(el, !0, !1, initialValue.split("")); var buffer = getBuffer().slice(); - undoValue = buffer.join(""), isComplete(buffer) === !1 && opts.clearIncomplete && resetMaskSet(), - opts.clearMaskOnLostFocus && (buffer.join("") === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)), + undoValue = buffer.join(""), isComplete(buffer) === !1 && opts.clearIncomplete && resetMaskSet(), + opts.clearMaskOnLostFocus && (buffer.join("") === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)), writeBuffer(el, buffer), document.activeElement === el && caret(el, seekNext(getLastValidPosition())); } } var undoValue, compositionData, el, $el, maxLength, valueBuffer, isRTL = !1, skipKeyPressEvent = !1, skipInputEvent = !1, ignorable = !1, mouseEnter = !0, inComposition = !1, EventRuler = { - on: function(input, eventName, eventHandler) { - var ev = function(e) { - if (void 0 === this.inputmask && "FORM" !== this.nodeName) { + on: function (input, eventName, eventHandler) { + var ev = function (e) { + if (void 0 === this.inputmask && this.nodeName !== "FORM") { var imOpts = $.data(this, "_inputmask_opts"); imOpts ? new Inputmask(imOpts).mask(this) : EventRuler.off(this); } else { - if ("setvalue" === e.type || !(this.disabled || this.readOnly && !("keydown" === e.type && e.ctrlKey && 67 === e.keyCode || opts.tabThrough === !1 && e.keyCode === Inputmask.keyCode.TAB))) { + if (e.type === "setvalue" || !(this.disabled || this.readOnly && !(e.type === "keydown" && e.ctrlKey && e.keyCode === 67 || opts.tabThrough === !1 && e.keyCode === Inputmask.keyCode.TAB))) { switch (e.type) { - case "input": - if (skipInputEvent === !0 || inComposition === !0) return skipInputEvent = inComposition, - e.preventDefault(); + case "input": + if (skipInputEvent === !0 || inComposition === !0) { + return skipInputEvent = inComposition, + e.preventDefault(); + } break; - case "keydown": + case "keydown": skipKeyPressEvent = !1, skipInputEvent = !1, inComposition = !1; break; - case "keypress": - if (skipKeyPressEvent === !0) return e.preventDefault(); + case "keypress": + if (skipKeyPressEvent === !0) { + return e.preventDefault(); + } skipKeyPressEvent = !0; break; - case "compositionstart": + case "compositionstart": inComposition = !0; break; - case "compositionupdate": + case "compositionupdate": skipInputEvent = !0; break; - case "compositionend": + case "compositionend": inComposition = !1; break; - case "cut": + case "cut": skipInputEvent = !0; break; - case "click": + case "click": if (iemobile) { var that = this; - return setTimeout(function() { + return setTimeout(function () { eventHandler.apply(that, arguments); }, 0), !1; } @@ -1187,79 +1415,83 @@ e.preventDefault(); } }; - input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev), - -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null != input.form && $(input.form).on(eventName, ev) : $(input).on(eventName, ev); + input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev), + $.inArray(eventName, [ "submit", "reset" ]) !== -1 ? input.form != null && $(input.form).on(eventName, ev) : $(input).on(eventName, ev); }, - off: function(input, event) { + off: function (input, event) { if (input.inputmask && input.inputmask.events) { var events; - event ? (events = [], events[event] = input.inputmask.events[event]) : events = input.inputmask.events, - $.each(events, function(eventName, evArr) { + event ? (events = [], events[event] = input.inputmask.events[event]) : events = input.inputmask.events, + $.each(events, function (eventName, evArr) { for (;evArr.length > 0; ) { var ev = evArr.pop(); - -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null != input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev); + $.inArray(eventName, [ "submit", "reset" ]) !== -1 ? input.form != null && $(input.form).off(eventName, ev) : $(input).off(eventName, ev); } delete input.inputmask.events[eventName]; }); } - } + }, }; - if (void 0 !== actionObj) switch (actionObj.action) { - case "isComplete": - return el = actionObj.el, isComplete(getBuffer()); + if (void 0 !== actionObj) { + switch (actionObj.action) { + case "isComplete": + return el = actionObj.el, isComplete(getBuffer()); - case "unmaskedvalue": - return el = actionObj.el, void 0 !== el && void 0 !== el.inputmask ? (maskset = el.inputmask.maskset, - opts = el.inputmask.opts, isRTL = el.inputmask.isRTL) : (valueBuffer = actionObj.value, - opts.numericInput && (isRTL = !0), valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(valueBuffer, opts) || valueBuffer : valueBuffer).split(""), - checkVal(void 0, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(void 0, getBuffer(), 0, opts)), - unmaskedvalue(el); + case "unmaskedvalue": + return el = actionObj.el, void 0 !== el && void 0 !== el.inputmask ? (maskset = el.inputmask.maskset, + opts = el.inputmask.opts, isRTL = el.inputmask.isRTL) : (valueBuffer = actionObj.value, + opts.numericInput && (isRTL = !0), valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(valueBuffer, opts) || valueBuffer : valueBuffer).split(""), + checkVal(void 0, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(void 0, getBuffer(), 0, opts)), + unmaskedvalue(el); - case "mask": - el = actionObj.el, maskset = el.inputmask.maskset, opts = el.inputmask.opts, isRTL = el.inputmask.isRTL, - undoValue = getBuffer().join(""), mask(el); - break; + case "mask": + el = actionObj.el, maskset = el.inputmask.maskset, opts = el.inputmask.opts, isRTL = el.inputmask.isRTL, + undoValue = getBuffer().join(""), mask(el); + break; - case "format": - return opts.numericInput && (isRTL = !0), valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(actionObj.value, opts) || actionObj.value : actionObj.value).split(""), - checkVal(void 0, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(void 0, getBuffer(), 0, opts), - actionObj.metadata ? { - value: isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""), - metadata: maskScope({ - action: "getmetadata" - }, maskset, opts) - } : isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""); + case "format": + return opts.numericInput && (isRTL = !0), valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(actionObj.value, opts) || actionObj.value : actionObj.value).split(""), + checkVal(void 0, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(void 0, getBuffer(), 0, opts), + actionObj.metadata ? { + value: isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""), + metadata: maskScope({ + action: "getmetadata", + }, maskset, opts), + } : isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""); - case "isValid": - opts.numericInput && (isRTL = !0), actionObj.value ? (valueBuffer = actionObj.value.split(""), - checkVal(void 0, !1, !0, isRTL ? valueBuffer.reverse() : valueBuffer)) : actionObj.value = getBuffer().join(""); - for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ; - return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join(""); + case "isValid": + opts.numericInput && (isRTL = !0), actionObj.value ? (valueBuffer = actionObj.value.split(""), + checkVal(void 0, !1, !0, isRTL ? valueBuffer.reverse() : valueBuffer)) : actionObj.value = getBuffer().join(""); + for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) {} + return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join(""); - case "getemptymask": - return getBufferTemplate(); + case "getemptymask": + return getBufferTemplate(); - case "remove": - el = actionObj.el, $el = $(el), maskset = el.inputmask.maskset, opts = el.inputmask.opts, - el.inputmask._valueSet(unmaskedvalue(el)), EventRuler.off(el); - var valueProperty; - Object.getOwnPropertyDescriptor && (valueProperty = Object.getOwnPropertyDescriptor(el, "value")), - valueProperty && valueProperty.get ? el.inputmask.__valueGet && Object.defineProperty(el, "value", { - get: el.inputmask.__valueGet, - set: el.inputmask.__valueSet - }) : document.__lookupGetter__ && el.__lookupGetter__("value") && el.inputmask.__valueGet && (el.__defineGetter__("value", el.inputmask.__valueGet), - el.__defineSetter__("value", el.inputmask.__valueSet)), el.inputmask = void 0; - break; + case "remove": + el = actionObj.el, $el = $(el), maskset = el.inputmask.maskset, opts = el.inputmask.opts, + el.inputmask._valueSet(unmaskedvalue(el)), EventRuler.off(el); + var valueProperty; + Object.getOwnPropertyDescriptor && (valueProperty = Object.getOwnPropertyDescriptor(el, "value")), + valueProperty && valueProperty.get ? el.inputmask.__valueGet && Object.defineProperty(el, "value", { + get: el.inputmask.__valueGet, + set: el.inputmask.__valueSet, + }) : document.__lookupGetter__ && el.__lookupGetter__("value") && el.inputmask.__valueGet && (el.__defineGetter__("value", el.inputmask.__valueGet), + el.__defineSetter__("value", el.inputmask.__valueSet)), el.inputmask = void 0; + break; - case "getmetadata": - if ($.isArray(maskset.metadata)) { - for (var alternation, lvp = getLastValidPosition(), firstAlt = lvp; firstAlt >= 0; firstAlt--) if (getMaskSet().validPositions[firstAlt] && void 0 !== getMaskSet().validPositions[firstAlt].alternation) { - alternation = getMaskSet().validPositions[firstAlt].alternation; - break; + case "getmetadata": + if ($.isArray(maskset.metadata)) { + for (var alternation, lvp = getLastValidPosition(), firstAlt = lvp; firstAlt >= 0; firstAlt--) { + if (getMaskSet().validPositions[firstAlt] && void 0 !== getMaskSet().validPositions[firstAlt].alternation) { + alternation = getMaskSet().validPositions[firstAlt].alternation; + break; + } + } + return void 0 !== alternation ? maskset.metadata[getMaskSet().validPositions[lvp].locator[alternation]] : maskset.metadata[0]; } - return void 0 !== alternation ? maskset.metadata[getMaskSet().validPositions[lvp].locator[alternation]] : maskset.metadata[0]; + return maskset.metadata; } - return maskset.metadata; } } Inputmask.prototype = { @@ -1267,15 +1499,15 @@ placeholder: "_", optionalmarker: { start: "[", - end: "]" + end: "]", }, quantifiermarker: { start: "{", - end: "}" + end: "}", }, groupmarker: { start: "(", - end: ")" + end: ")", }, alternatormarker: "|", escapeChar: "\\", @@ -1294,7 +1526,7 @@ alias: null, onKeyDown: $.noop, onBeforeMask: null, - onBeforePaste: function(pastedValue, opts) { + onBeforePaste: function (pastedValue, opts) { return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(pastedValue, opts) : pastedValue; }, onBeforeWrite: null, @@ -1321,112 +1553,112 @@ "9": { validator: "[0-9]", cardinality: 1, - definitionSymbol: "*" + definitionSymbol: "*", }, a: { validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", cardinality: 1, - definitionSymbol: "*" + definitionSymbol: "*", }, "*": { validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", - cardinality: 1 - } + cardinality: 1, + }, }, ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123 ], isComplete: null, canClearPosition: $.noop, postValidation: null, staticDefinitionSymbol: void 0, - jitMasking: !1 + jitMasking: !1, }, masksCache: {}, - mask: function(elems) { + mask: function (elems) { var that = this; - return "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), - elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) { + return typeof elems === "string" && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), + elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function (ndx, el) { var scopedOpts = $.extend(!0, {}, that.opts); importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions)); var maskset = generateMaskSet(scopedOpts, that.noMasksCache); - void 0 !== maskset && (void 0 !== el.inputmask && el.inputmask.remove(), el.inputmask = new Inputmask(), - el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions), - el.inputmask.el = el, el.inputmask.maskset = maskset, el.inputmask.isRTL = !1, $.data(el, "_inputmask_opts", scopedOpts), + void 0 !== maskset && (void 0 !== el.inputmask && el.inputmask.remove(), el.inputmask = new Inputmask(), + el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions), + el.inputmask.el = el, el.inputmask.maskset = maskset, el.inputmask.isRTL = !1, $.data(el, "_inputmask_opts", scopedOpts), maskScope({ action: "mask", - el: el + el: el, })); }), elems && elems[0] ? elems[0].inputmask || this : this; }, - option: function(options) { - return "string" == typeof options ? this.opts[options] : "object" == typeof options ? ($.extend(this.opts, options), - $.extend(this.userOptions, options), this.el && (void 0 !== options.mask || void 0 !== options.alias ? this.mask(this.el) : ($.data(this.el, "_inputmask_opts", this.opts), + option: function (options) { + return typeof options === "string" ? this.opts[options] : typeof options === "object" ? ($.extend(this.opts, options), + $.extend(this.userOptions, options), this.el && (void 0 !== options.mask || void 0 !== options.alias ? this.mask(this.el) : ($.data(this.el, "_inputmask_opts", this.opts), maskScope({ action: "mask", - el: this.el + el: this.el, }))), this) : void 0; }, - unmaskedvalue: function(value) { + unmaskedvalue: function (value) { return maskScope({ action: "unmaskedvalue", el: this.el, - value: value + value: value, }, this.el && this.el.inputmask ? this.el.inputmask.maskset : generateMaskSet(this.opts, this.noMasksCache), this.opts); }, - remove: function() { + remove: function () { return this.el ? (maskScope({ action: "remove", - el: this.el + el: this.el, }), this.el.inputmask = void 0, this.el) : void 0; }, - getemptymask: function() { + getemptymask: function () { return maskScope({ - action: "getemptymask" + action: "getemptymask", }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); }, - hasMaskedValue: function() { + hasMaskedValue: function () { return !this.opts.autoUnmask; }, - isComplete: function() { + isComplete: function () { return maskScope({ action: "isComplete", - el: this.el + el: this.el, }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); }, - getmetadata: function() { + getmetadata: function () { return maskScope({ - action: "getmetadata" + action: "getmetadata", }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); }, - isValid: function(value) { + isValid: function (value) { return maskScope({ action: "isValid", - value: value + value: value, }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); }, - format: function(value, metadata) { + format: function (value, metadata) { return maskScope({ action: "format", value: value, - metadata: metadata + metadata: metadata, }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts); - } - }, Inputmask.extendDefaults = function(options) { + }, + }, Inputmask.extendDefaults = function (options) { $.extend(!0, Inputmask.prototype.defaults, options); - }, Inputmask.extendDefinitions = function(definition) { + }, Inputmask.extendDefinitions = function (definition) { $.extend(!0, Inputmask.prototype.defaults.definitions, definition); - }, Inputmask.extendAliases = function(alias) { + }, Inputmask.extendAliases = function (alias) { $.extend(!0, Inputmask.prototype.defaults.aliases, alias); - }, Inputmask.format = function(value, options, metadata) { + }, Inputmask.format = function (value, options, metadata) { return Inputmask(options).format(value, metadata); - }, Inputmask.unmask = function(value, options) { + }, Inputmask.unmask = function (value, options) { return Inputmask(options).unmaskedvalue(value); - }, Inputmask.isValid = function(value, options) { + }, Inputmask.isValid = function (value, options) { return Inputmask(options).isValid(value); - }, Inputmask.remove = function(elems) { - $.each(elems, function(ndx, el) { + }, Inputmask.remove = function (elems) { + $.each(elems, function (ndx, el) { el.inputmask && el.inputmask.remove(); }); - }, Inputmask.escapeRegex = function(str) { + }, Inputmask.escapeRegex = function (str) { var specials = [ "/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^" ]; return str.replace(new RegExp("(\\" + specials.join("|\\") + ")", "gim"), "\\$1"); }, Inputmask.keyCode = { @@ -1461,109 +1693,119 @@ SPACE: 32, TAB: 9, UP: 38, - WINDOWS: 91 + WINDOWS: 91, }; - var ua = navigator.userAgent, mobile = /mobile/i.test(ua), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile; - /android.*safari.*/i.test(ua) && !iemobile; + var ua = navigator.userAgent, mobile = (/mobile/i).test(ua), iemobile = (/iemobile/i).test(ua), iphone = (/iphone/i).test(ua) && !iemobile; + (/android.*safari.*/i).test(ua) && !iemobile; return window.Inputmask = Inputmask, Inputmask; -}(jQuery), function($, Inputmask) { - return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) { +}(jQuery)), (function ($, Inputmask) { + return void 0 === $.fn.inputmask && ($.fn.inputmask = function (fn, options) { var nptmask, input = this[0]; - if (options = options || {}, "string" == typeof fn) switch (fn) { - case "unmaskedvalue": - return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val(); + if (options = options || {}, typeof fn === "string") { + switch (fn) { + case "unmaskedvalue": + return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val(); - case "remove": - return this.each(function() { - this.inputmask && this.inputmask.remove(); - }); + case "remove": + return this.each(function () { + this.inputmask && this.inputmask.remove(); + }); - case "getemptymask": - return input && input.inputmask ? input.inputmask.getemptymask() : ""; + case "getemptymask": + return input && input.inputmask ? input.inputmask.getemptymask() : ""; - case "hasMaskedValue": - return input && input.inputmask ? input.inputmask.hasMaskedValue() : !1; + case "hasMaskedValue": + return input && input.inputmask ? input.inputmask.hasMaskedValue() : !1; - case "isComplete": - return input && input.inputmask ? input.inputmask.isComplete() : !0; + case "isComplete": + return input && input.inputmask ? input.inputmask.isComplete() : !0; - case "getmetadata": - return input && input.inputmask ? input.inputmask.getmetadata() : void 0; + case "getmetadata": + return input && input.inputmask ? input.inputmask.getmetadata() : void 0; - case "setvalue": - $(input).val(options), input && void 0 !== input.inputmask && $(input).triggerHandler("setvalue"); - break; + case "setvalue": + $(input).val(options), input && void 0 !== input.inputmask && $(input).triggerHandler("setvalue"); + break; - case "option": - if ("string" != typeof options) return this.each(function() { - return void 0 !== this.inputmask ? this.inputmask.option(options) : void 0; - }); - if (input && void 0 !== input.inputmask) return input.inputmask.option(options); - break; + case "option": + if (typeof options !== "string") { + return this.each(function () { + return void 0 !== this.inputmask ? this.inputmask.option(options) : void 0; + }); + } + if (input && void 0 !== input.inputmask) { + return input.inputmask.option(options); + } + break; - default: - return options.alias = fn, nptmask = new Inputmask(options), this.each(function() { - nptmask.mask(this); - }); + default: + return options.alias = fn, nptmask = new Inputmask(options), this.each(function () { + nptmask.mask(this); + }); + } } else { - if ("object" == typeof fn) return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() { - return void 0 !== this.inputmask ? this.inputmask.option(fn) : void nptmask.mask(this); - }) : this.each(function() { - nptmask.mask(this); - }); - if (void 0 === fn) return this.each(function() { - nptmask = new Inputmask(options), nptmask.mask(this); - }); + if (typeof fn === "object") { + return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function () { + return void 0 !== this.inputmask ? this.inputmask.option(fn) : void nptmask.mask(this); + }) : this.each(function () { + nptmask.mask(this); + }); + } + if (void 0 === fn) { + return this.each(function () { + nptmask = new Inputmask(options), nptmask.mask(this); + }); + } } }), $.fn.inputmask; -}(jQuery, Inputmask), function($, Inputmask) { +}(jQuery, Inputmask)), (function ($, Inputmask) { return Inputmask.extendDefinitions({ h: { validator: "[01][0-9]|2[0-3]", cardinality: 2, prevalidator: [ { validator: "[0-2]", - cardinality: 1 - } ] + cardinality: 1, + } ], }, s: { validator: "[0-5][0-9]", cardinality: 2, prevalidator: [ { validator: "[0-5]", - cardinality: 1 - } ] + cardinality: 1, + } ], }, d: { validator: "0[1-9]|[12][0-9]|3[01]", cardinality: 2, prevalidator: [ { validator: "[0-3]", - cardinality: 1 - } ] + cardinality: 1, + } ], }, m: { validator: "0[1-9]|1[012]", cardinality: 2, prevalidator: [ { validator: "[01]", - cardinality: 1 - } ] + cardinality: 1, + } ], }, y: { validator: "(19|20)\\d{2}", cardinality: 4, prevalidator: [ { validator: "[12]", - cardinality: 1 + cardinality: 1, }, { validator: "(19|20)", - cardinality: 2 + cardinality: 2, }, { validator: "(19|20)\\d", - cardinality: 3 - } ] - } + cardinality: 3, + } ], + }, }), Inputmask.extendAliases({ "dd/mm/yyyy": { mask: "1/2/y", @@ -1571,46 +1813,52 @@ regex: { val1pre: new RegExp("[0-3]"), val1: new RegExp("0[1-9]|[12][0-9]|3[01]"), - val2pre: function(separator) { + val2pre: function (separator) { var escapedSeparator = Inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|[12][0-9]|3[01])" + escapedSeparator + "[01])"); }, - val2: function(separator) { + val2: function (separator) { var escapedSeparator = Inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|[12][0-9])" + escapedSeparator + "(0[1-9]|1[012]))|(30" + escapedSeparator + "(0[13-9]|1[012]))|(31" + escapedSeparator + "(0[13578]|1[02]))"); - } + }, }, leapday: "29/02/", separator: "/", yearrange: { minyear: 1900, - maxyear: 2099 + maxyear: 2099, }, - isInYearRange: function(chrs, minyear, maxyear) { - if (isNaN(chrs)) return !1; + isInYearRange: function (chrs, minyear, maxyear) { + if (isNaN(chrs)) { + return !1; + } var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))), enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length))); return (isNaN(enteredyear) ? !1 : enteredyear >= minyear && maxyear >= enteredyear) || (isNaN(enteredyear2) ? !1 : enteredyear2 >= minyear && maxyear >= enteredyear2); }, - determinebaseyear: function(minyear, maxyear, hint) { + determinebaseyear: function (minyear, maxyear, hint) { var currentyear = new Date().getFullYear(); - if (minyear > currentyear) return minyear; + if (minyear > currentyear) { + return minyear; + } if (currentyear > maxyear) { - for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxYearPrefix + hint > maxyear; ) maxYearPrefix--; + for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxYearPrefix + hint > maxyear; ) { + maxYearPrefix--; + } var maxxYear = maxYearPrefix + maxYearPostfix; return minyear > maxxYear ? minyear : maxxYear; } return currentyear; }, - onKeyDown: function(e, buffer, caretPos, opts) { + onKeyDown: function (e, buffer, caretPos, opts) { var $input = $(this); if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { var today = new Date(); - $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()), + $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()), $input.trigger("setvalue"); } }, - getFrontValue: function(mask, buffer, opts) { - for (var start = 0, length = 0, i = 0; i < mask.length && "2" !== mask.charAt(i); i++) { + getFrontValue: function (mask, buffer, opts) { + for (var start = 0, length = 0, i = 0; i < mask.length && mask.charAt(i) !== "2"; i++) { var definition = opts.definitions[mask.charAt(i)]; definition ? (start += length, length = definition.cardinality) : length++; } @@ -1618,57 +1866,65 @@ }, definitions: { "1": { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.regex.val1.test(chrs); - return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === "-./".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val1.test("0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0", + return strict || isValid || chrs.charAt(1) !== opts.separator && "-./".indexOf(chrs.charAt(1)) === -1 || !(isValid = opts.regex.val1.test("0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0", { refreshFromBuffer: { start: pos - 1, - end: pos + end: pos, }, pos: pos, - c: chrs.charAt(0) + c: chrs.charAt(0), }); }, cardinality: 2, prevalidator: [ { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var pchrs = chrs; isNaN(maskset.buffer[pos + 1]) || (pchrs += maskset.buffer[pos + 1]); - var isValid = 1 === pchrs.length ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs); + var isValid = pchrs.length === 1 ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs); if (!strict && !isValid) { - if (isValid = opts.regex.val1.test(chrs + "0")) return maskset.buffer[pos] = chrs, - maskset.buffer[++pos] = "0", { - pos: pos, - c: "0" - }; - if (isValid = opts.regex.val1.test("0" + chrs)) return maskset.buffer[pos] = "0", - pos++, { - pos: pos - }; + if (isValid = opts.regex.val1.test(chrs + "0")) { + return maskset.buffer[pos] = chrs, + maskset.buffer[++pos] = "0", { + pos: pos, + c: "0", + }; + } + if (isValid = opts.regex.val1.test("0" + chrs)) { + return maskset.buffer[pos] = "0", + pos++, { + pos: pos, + }; + } } return isValid; }, - cardinality: 1 - } ] + cardinality: 1, + } ], }, "2": { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts); - -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator); + frontValue.indexOf(opts.placeholder[0]) !== -1 && (frontValue = "01" + opts.separator); var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs); - if (!strict && !isValid && (chrs.charAt(1) === opts.separator || -1 !== "-./".indexOf(chrs.charAt(1))) && (isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = "0", - { - refreshFromBuffer: { - start: pos - 1, - end: pos - }, - pos: pos, - c: chrs.charAt(0) - }; + if (!strict && !isValid && (chrs.charAt(1) === opts.separator || "-./".indexOf(chrs.charAt(1)) !== -1) && (isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0)))) { + return maskset.buffer[pos - 1] = "0", + { + refreshFromBuffer: { + start: pos - 1, + end: pos, + }, + pos: pos, + c: chrs.charAt(0), + }; + } if (opts.mask.indexOf("2") === opts.mask.length - 1 && isValid) { var dayMonthValue = maskset.buffer.join("").substr(4, 4) + chrs; - if (dayMonthValue !== opts.leapday) return !0; + if (dayMonthValue !== opts.leapday) { + return !0; + } var year = parseInt(maskset.buffer.join("").substr(0, 4), 10); return year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1; } @@ -1676,24 +1932,26 @@ }, cardinality: 2, prevalidator: [ { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { isNaN(maskset.buffer[pos + 1]) || (chrs += maskset.buffer[pos + 1]); var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts); - -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator); - var isValid = 1 === chrs.length ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs); - return strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", + frontValue.indexOf(opts.placeholder[0]) !== -1 && (frontValue = "01" + opts.separator); + var isValid = chrs.length === 1 ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs); + return strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", pos++, { - pos: pos + pos: pos, }); }, - cardinality: 1 - } ] + cardinality: 1, + } ], }, y: { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { if (opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { var dayMonthValue = maskset.buffer.join("").substr(0, 6); - if (dayMonthValue !== opts.leapday) return !0; + if (dayMonthValue !== opts.leapday) { + return !0; + } var year = parseInt(chrs, 10); return year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1; } @@ -1701,143 +1959,155 @@ }, cardinality: 4, prevalidator: [ { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); if (!strict && !isValid) { var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 1); - if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), - { - pos: pos - }; - if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2), - isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), - maskset.buffer[pos++] = yearPrefix.charAt(1), { - pos: pos - }; + if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { + return maskset.buffer[pos++] = yearPrefix.charAt(0), + { + pos: pos, + }; + } + if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2), + isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { + return maskset.buffer[pos++] = yearPrefix.charAt(0), + maskset.buffer[pos++] = yearPrefix.charAt(1), { + pos: pos, + }; + } } return isValid; }, - cardinality: 1 + cardinality: 1, }, { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); if (!strict && !isValid) { var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2); - if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(1), - { - pos: pos - }; - if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2), + if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) { + return maskset.buffer[pos++] = yearPrefix.charAt(1), + { + pos: pos, + }; + } + if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2), opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) { var dayMonthValue = maskset.buffer.join("").substr(0, 6); - if (dayMonthValue !== opts.leapday) isValid = !0; else { + if (dayMonthValue !== opts.leapday) { + isValid = !0; + } else { var year = parseInt(chrs, 10); isValid = year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1; } - } else isValid = !1; - if (isValid) return maskset.buffer[pos - 1] = yearPrefix.charAt(0), maskset.buffer[pos++] = yearPrefix.charAt(1), - maskset.buffer[pos++] = chrs.charAt(0), { - refreshFromBuffer: { - start: pos - 3, - end: pos - }, - pos: pos - }; + } else { + isValid = !1; + } + if (isValid) { + return maskset.buffer[pos - 1] = yearPrefix.charAt(0), maskset.buffer[pos++] = yearPrefix.charAt(1), + maskset.buffer[pos++] = chrs.charAt(0), { + refreshFromBuffer: { + start: pos - 3, + end: pos, + }, + pos: pos, + }; + } } return isValid; }, - cardinality: 2 + cardinality: 2, }, { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear); }, - cardinality: 3 - } ] - } + cardinality: 3, + } ], + }, }, insertMode: !1, - autoUnmask: !1 + autoUnmask: !1, }, "mm/dd/yyyy": { placeholder: "mm/dd/yyyy", alias: "dd/mm/yyyy", regex: { - val2pre: function(separator) { + val2pre: function (separator) { var escapedSeparator = Inputmask.escapeRegex.call(this, separator); return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])"); }, - val2: function(separator) { + val2: function (separator) { var escapedSeparator = Inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)"); }, val1pre: new RegExp("[01]"), - val1: new RegExp("0[1-9]|1[012]") + val1: new RegExp("0[1-9]|1[012]"), }, leapday: "02/29/", - onKeyDown: function(e, buffer, caretPos, opts) { + onKeyDown: function (e, buffer, caretPos, opts) { var $input = $(this); if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { var today = new Date(); - $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), + $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), $input.trigger("setvalue"); } - } + }, }, "yyyy/mm/dd": { mask: "y/1/2", placeholder: "yyyy/mm/dd", alias: "mm/dd/yyyy", leapday: "/02/29", - onKeyDown: function(e, buffer, caretPos, opts) { + onKeyDown: function (e, buffer, caretPos, opts) { var $input = $(this); if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { var today = new Date(); - $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()), + $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()), $input.trigger("setvalue"); } - } + }, }, "dd.mm.yyyy": { mask: "1.2.y", placeholder: "dd.mm.yyyy", leapday: "29.02.", separator: ".", - alias: "dd/mm/yyyy" + alias: "dd/mm/yyyy", }, "dd-mm-yyyy": { mask: "1-2-y", placeholder: "dd-mm-yyyy", leapday: "29-02-", separator: "-", - alias: "dd/mm/yyyy" + alias: "dd/mm/yyyy", }, "mm.dd.yyyy": { mask: "1.2.y", placeholder: "mm.dd.yyyy", leapday: "02.29.", separator: ".", - alias: "mm/dd/yyyy" + alias: "mm/dd/yyyy", }, "mm-dd-yyyy": { mask: "1-2-y", placeholder: "mm-dd-yyyy", leapday: "02-29-", separator: "-", - alias: "mm/dd/yyyy" + alias: "mm/dd/yyyy", }, "yyyy.mm.dd": { mask: "y.1.2", placeholder: "yyyy.mm.dd", leapday: ".02.29", separator: ".", - alias: "yyyy/mm/dd" + alias: "yyyy/mm/dd", }, "yyyy-mm-dd": { mask: "y-1-2", placeholder: "yyyy-mm-dd", leapday: "-02-29", separator: "-", - alias: "yyyy/mm/dd" + alias: "yyyy/mm/dd", }, datetime: { mask: "1/2/y h:s", @@ -1849,265 +2119,271 @@ hrs: new RegExp("[01][0-9]|2[0-4]"), ampm: new RegExp("^[a|p|A|P][m|M]"), mspre: new RegExp("[0-5]"), - ms: new RegExp("[0-5][0-9]") + ms: new RegExp("[0-5][0-9]"), }, timeseparator: ":", hourFormat: "24", definitions: { h: { - validator: function(chrs, maskset, pos, strict, opts) { - if ("24" === opts.hourFormat && 24 === parseInt(chrs, 10)) return maskset.buffer[pos - 1] = "0", - maskset.buffer[pos] = "0", { - refreshFromBuffer: { - start: pos - 1, - end: pos - }, - c: "0" - }; + validator: function (chrs, maskset, pos, strict, opts) { + if (opts.hourFormat === "24" && parseInt(chrs, 10) === 24) { + return maskset.buffer[pos - 1] = "0", + maskset.buffer[pos] = "0", { + refreshFromBuffer: { + start: pos - 1, + end: pos, + }, + c: "0", + }; + } var isValid = opts.regex.hrs.test(chrs); - if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || -1 !== "-.:".indexOf(chrs.charAt(1))) && (isValid = opts.regex.hrs.test("0" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = "0", - maskset.buffer[pos] = chrs.charAt(0), pos++, { - refreshFromBuffer: { - start: pos - 2, - end: pos - }, - pos: pos, - c: opts.timeseparator - }; - if (isValid && "24" !== opts.hourFormat && opts.regex.hrs24.test(chrs)) { + if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || "-.:".indexOf(chrs.charAt(1)) !== -1) && (isValid = opts.regex.hrs.test("0" + chrs.charAt(0)))) { + return maskset.buffer[pos - 1] = "0", + maskset.buffer[pos] = chrs.charAt(0), pos++, { + refreshFromBuffer: { + start: pos - 2, + end: pos, + }, + pos: pos, + c: opts.timeseparator, + }; + } + if (isValid && opts.hourFormat !== "24" && opts.regex.hrs24.test(chrs)) { var tmp = parseInt(chrs, 10); - return 24 === tmp ? (maskset.buffer[pos + 5] = "a", maskset.buffer[pos + 6] = "m") : (maskset.buffer[pos + 5] = "p", - maskset.buffer[pos + 6] = "m"), tmp -= 12, 10 > tmp ? (maskset.buffer[pos] = tmp.toString(), - maskset.buffer[pos - 1] = "0") : (maskset.buffer[pos] = tmp.toString().charAt(1), + return tmp === 24 ? (maskset.buffer[pos + 5] = "a", maskset.buffer[pos + 6] = "m") : (maskset.buffer[pos + 5] = "p", + maskset.buffer[pos + 6] = "m"), tmp -= 12, tmp < 10 ? (maskset.buffer[pos] = tmp.toString(), + maskset.buffer[pos - 1] = "0") : (maskset.buffer[pos] = tmp.toString().charAt(1), maskset.buffer[pos - 1] = tmp.toString().charAt(0)), { refreshFromBuffer: { start: pos - 1, - end: pos + 6 + end: pos + 6, }, - c: maskset.buffer[pos] + c: maskset.buffer[pos], }; } return isValid; }, cardinality: 2, prevalidator: [ { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.regex.hrspre.test(chrs); - return strict || isValid || !(isValid = opts.regex.hrs.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", + return strict || isValid || !(isValid = opts.regex.hrs.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", pos++, { - pos: pos + pos: pos, }); }, - cardinality: 1 - } ] + cardinality: 1, + } ], }, s: { validator: "[0-5][0-9]", cardinality: 2, prevalidator: [ { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.regex.mspre.test(chrs); - return strict || isValid || !(isValid = opts.regex.ms.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", + return strict || isValid || !(isValid = opts.regex.ms.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0", pos++, { - pos: pos + pos: pos, }); }, - cardinality: 1 - } ] + cardinality: 1, + } ], }, t: { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { return opts.regex.ampm.test(chrs + "m"); }, casing: "lower", - cardinality: 1 - } + cardinality: 1, + }, }, insertMode: !1, - autoUnmask: !1 + autoUnmask: !1, }, datetime12: { mask: "1/2/y h:s t\\m", placeholder: "dd/mm/yyyy hh:mm xm", alias: "datetime", - hourFormat: "12" + hourFormat: "12", }, "mm/dd/yyyy hh:mm xm": { mask: "1/2/y h:s t\\m", placeholder: "mm/dd/yyyy hh:mm xm", alias: "datetime12", regex: { - val2pre: function(separator) { + val2pre: function (separator) { var escapedSeparator = Inputmask.escapeRegex.call(this, separator); return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])"); }, - val2: function(separator) { + val2: function (separator) { var escapedSeparator = Inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)"); }, val1pre: new RegExp("[01]"), - val1: new RegExp("0[1-9]|1[012]") + val1: new RegExp("0[1-9]|1[012]"), }, leapday: "02/29/", - onKeyDown: function(e, buffer, caretPos, opts) { + onKeyDown: function (e, buffer, caretPos, opts) { var $input = $(this); if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) { var today = new Date(); - $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), + $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), $input.trigger("setvalue"); } - } + }, }, "hh:mm t": { mask: "h:s t\\m", placeholder: "hh:mm xm", alias: "datetime", - hourFormat: "12" + hourFormat: "12", }, "h:s t": { mask: "h:s t\\m", placeholder: "hh:mm xm", alias: "datetime", - hourFormat: "12" + hourFormat: "12", }, "hh:mm:ss": { mask: "h:s:s", placeholder: "hh:mm:ss", alias: "datetime", - autoUnmask: !1 + autoUnmask: !1, }, "hh:mm": { mask: "h:s", placeholder: "hh:mm", alias: "datetime", - autoUnmask: !1 + autoUnmask: !1, }, date: { - alias: "dd/mm/yyyy" + alias: "dd/mm/yyyy", }, "mm/yyyy": { mask: "1/y", placeholder: "mm/yyyy", leapday: "donotuse", separator: "/", - alias: "mm/dd/yyyy" + alias: "mm/dd/yyyy", }, shamsi: { regex: { - val2pre: function(separator) { + val2pre: function (separator) { var escapedSeparator = Inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "[0-3])"); }, - val2: function(separator) { + val2: function (separator) { var escapedSeparator = Inputmask.escapeRegex.call(this, separator); return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[1-9]|1[012])" + escapedSeparator + "30)|((0[1-6])" + escapedSeparator + "31)"); }, val1pre: new RegExp("[01]"), - val1: new RegExp("0[1-9]|1[012]") + val1: new RegExp("0[1-9]|1[012]"), }, yearrange: { minyear: 1300, - maxyear: 1499 + maxyear: 1499, }, mask: "y/1/2", leapday: "/12/30", placeholder: "yyyy/mm/dd", alias: "mm/dd/yyyy", - clearIncomplete: !0 - } + clearIncomplete: !0, + }, }), Inputmask; -}(jQuery, Inputmask), function($, Inputmask) { +}(jQuery, Inputmask)), (function ($, Inputmask) { return Inputmask.extendDefinitions({ A: { validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", cardinality: 1, - casing: "upper" + casing: "upper", }, "&": { validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]", cardinality: 1, - casing: "upper" + casing: "upper", }, "#": { validator: "[0-9A-Fa-f]", cardinality: 1, - casing: "upper" - } + casing: "upper", + }, }), Inputmask.extendAliases({ url: { definitions: { i: { validator: ".", - cardinality: 1 - } + cardinality: 1, + }, }, mask: "(\\http://)|(\\http\\s://)|(ftp://)|(ftp\\s://)i{+}", insertMode: !1, - autoUnmask: !1 + autoUnmask: !1, }, ip: { mask: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]", definitions: { i: { - validator: function(chrs, maskset, pos, strict, opts) { - return pos - 1 > -1 && "." !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs, - chrs = pos - 2 > -1 && "." !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : "0" + chrs) : chrs = "00" + chrs, + validator: function (chrs, maskset, pos, strict, opts) { + return pos - 1 > -1 && maskset.buffer[pos - 1] !== "." ? (chrs = maskset.buffer[pos - 1] + chrs, + chrs = pos - 2 > -1 && maskset.buffer[pos - 2] !== "." ? maskset.buffer[pos - 2] + chrs : "0" + chrs) : chrs = "00" + chrs, new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs); }, - cardinality: 1 - } + cardinality: 1, + }, }, - onUnMask: function(maskedValue, unmaskedValue, opts) { + onUnMask: function (maskedValue, unmaskedValue, opts) { return maskedValue; - } + }, }, email: { mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,64}]@*{1,64}[.*{2,64}][.*{2,6}][.*{1,2}]", greedy: !1, - onBeforePaste: function(pastedValue, opts) { + onBeforePaste: function (pastedValue, opts) { return pastedValue = pastedValue.toLowerCase(), pastedValue.replace("mailto:", ""); }, definitions: { "*": { validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]", cardinality: 1, - casing: "lower" - } + casing: "lower", + }, }, - onUnMask: function(maskedValue, unmaskedValue, opts) { + onUnMask: function (maskedValue, unmaskedValue, opts) { return maskedValue; - } + }, }, mac: { - mask: "##:##:##:##:##:##" - } + mask: "##:##:##:##:##:##", + }, }), Inputmask; -}(jQuery, Inputmask), function($, Inputmask) { +}(jQuery, Inputmask)), (function ($, Inputmask) { return Inputmask.extendAliases({ numeric: { - mask: function(opts) { - function autoEscape(txt) { - for (var escapedTxt = "", i = 0; i < txt.length; i++) escapedTxt += opts.definitions[txt.charAt(i)] ? "\\" + txt.charAt(i) : txt.charAt(i); + mask: function (opts) { + function autoEscape (txt) { + for (var escapedTxt = "", i = 0; i < txt.length; i++) { + escapedTxt += opts.definitions[txt.charAt(i)] ? "\\" + txt.charAt(i) : txt.charAt(i); + } return escapedTxt; } - if (0 !== opts.repeat && isNaN(opts.integerDigits) && (opts.integerDigits = opts.repeat), - opts.repeat = 0, opts.groupSeparator === opts.radixPoint && ("." === opts.radixPoint ? opts.groupSeparator = "," : "," === opts.radixPoint ? opts.groupSeparator = "." : opts.groupSeparator = ""), - " " === opts.groupSeparator && (opts.skipOptionalPartCharacter = void 0), opts.autoGroup = opts.autoGroup && "" !== opts.groupSeparator, - opts.autoGroup && ("string" == typeof opts.groupSize && isFinite(opts.groupSize) && (opts.groupSize = parseInt(opts.groupSize)), + if (opts.repeat !== 0 && isNaN(opts.integerDigits) && (opts.integerDigits = opts.repeat), + opts.repeat = 0, opts.groupSeparator === opts.radixPoint && (opts.radixPoint === "." ? opts.groupSeparator = "," : opts.radixPoint === "," ? opts.groupSeparator = "." : opts.groupSeparator = ""), + opts.groupSeparator === " " && (opts.skipOptionalPartCharacter = void 0), opts.autoGroup = opts.autoGroup && opts.groupSeparator !== "", + opts.autoGroup && (typeof opts.groupSize === "string" && isFinite(opts.groupSize) && (opts.groupSize = parseInt(opts.groupSize)), isFinite(opts.integerDigits))) { var seps = Math.floor(opts.integerDigits / opts.groupSize), mod = opts.integerDigits % opts.groupSize; - opts.integerDigits = parseInt(opts.integerDigits) + (0 === mod ? seps - 1 : seps), + opts.integerDigits = parseInt(opts.integerDigits) + (mod === 0 ? seps - 1 : seps), opts.integerDigits < 1 && (opts.integerDigits = "*"); } - opts.placeholder.length > 1 && (opts.placeholder = opts.placeholder.charAt(0)), - opts.radixFocus = opts.radixFocus && "" !== opts.placeholder && opts.integerOptional === !0, - opts.definitions[";"] = opts.definitions["~"], opts.definitions[";"].definitionSymbol = "~", - 1 == opts.numericInput && (opts.radixFocus = !1, opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), + opts.placeholder.length > 1 && (opts.placeholder = opts.placeholder.charAt(0)), + opts.radixFocus = opts.radixFocus && opts.placeholder !== "" && opts.integerOptional === !0, + opts.definitions[";"] = opts.definitions["~"], opts.definitions[";"].definitionSymbol = "~", + opts.numericInput == 1 && (opts.radixFocus = !1, opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), opts.decimalProtect = !1); var mask = autoEscape(opts.prefix); - return mask += "[+]", mask += opts.integerOptional === !0 ? "~{1," + opts.integerDigits + "}" : "~{" + opts.integerDigits + "}", - void 0 !== opts.digits && (isNaN(opts.digits) || parseInt(opts.digits) > 0) && (mask += opts.digitsOptional ? "[" + (opts.decimalProtect ? ":" : opts.radixPoint) + ";{1," + opts.digits + "}]" : (opts.decimalProtect ? ":" : opts.radixPoint) + ";{" + opts.digits + "}"), - "" !== opts.negationSymbol.back && (mask += "[-]"), mask += autoEscape(opts.suffix), + return mask += "[+]", mask += opts.integerOptional === !0 ? "~{1," + opts.integerDigits + "}" : "~{" + opts.integerDigits + "}", + void 0 !== opts.digits && (isNaN(opts.digits) || parseInt(opts.digits) > 0) && (mask += opts.digitsOptional ? "[" + (opts.decimalProtect ? ":" : opts.radixPoint) + ";{1," + opts.digits + "}]" : (opts.decimalProtect ? ":" : opts.radixPoint) + ";{" + opts.digits + "}"), + opts.negationSymbol.back !== "" && (mask += "[-]"), mask += autoEscape(opts.suffix), opts.greedy = !1, mask; }, placeholder: "", @@ -2123,7 +2399,7 @@ allowMinus: !0, negationSymbol: { front: "-", - back: "" + back: "", }, integerDigits: "+", integerOptional: !0, @@ -2137,71 +2413,91 @@ insertMode: !0, autoUnmask: !1, unmaskAsNumber: !1, - postFormat: function(buffer, pos, reformatOnly, opts) { + postFormat: function (buffer, pos, reformatOnly, opts) { opts.numericInput === !0 && (buffer = buffer.reverse(), isFinite(pos) && (pos = buffer.join("").length - pos - 1)); var i, l, suffixStripped = !1; - buffer.length >= opts.suffix.length && buffer.join("").indexOf(opts.suffix) === buffer.length - opts.suffix.length && (buffer.length = buffer.length - opts.suffix.length, + buffer.length >= opts.suffix.length && buffer.join("").indexOf(opts.suffix) === buffer.length - opts.suffix.length && (buffer.length -= opts.suffix.length, suffixStripped = !0), pos = pos >= buffer.length ? buffer.length - 1 : pos < opts.prefix.length ? opts.prefix.length : pos; var needsRefresh = !1, charAtPos = buffer[pos]; - if ("" === opts.groupSeparator || opts.numericInput !== !0 && -1 !== $.inArray(opts.radixPoint, buffer) && pos > $.inArray(opts.radixPoint, buffer) || new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]").test(charAtPos)) { - if (suffixStripped) for (i = 0, l = opts.suffix.length; l > i; i++) buffer.push(opts.suffix.charAt(i)); + if (opts.groupSeparator === "" || opts.numericInput !== !0 && $.inArray(opts.radixPoint, buffer) !== -1 && pos > $.inArray(opts.radixPoint, buffer) || new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]").test(charAtPos)) { + if (suffixStripped) { + for (i = 0, l = opts.suffix.length; l > i; i++) { + buffer.push(opts.suffix.charAt(i)); + } + } return { - pos: pos + pos: pos, }; } var cbuf = buffer.slice(); - charAtPos === opts.groupSeparator && (cbuf.splice(pos--, 1), charAtPos = cbuf[pos]), + charAtPos === opts.groupSeparator && (cbuf.splice(pos--, 1), charAtPos = cbuf[pos]), reformatOnly ? charAtPos !== opts.radixPoint && (cbuf[pos] = "?") : cbuf.splice(pos, 0, "?"); var bufVal = cbuf.join(""), bufValOrigin = bufVal; - if (bufVal.length > 0 && opts.autoGroup || reformatOnly && -1 !== bufVal.indexOf(opts.groupSeparator)) { + if (bufVal.length > 0 && opts.autoGroup || reformatOnly && bufVal.indexOf(opts.groupSeparator) !== -1) { var escapedGroupSeparator = Inputmask.escapeRegex(opts.groupSeparator); - needsRefresh = 0 === bufVal.indexOf(opts.groupSeparator), bufVal = bufVal.replace(new RegExp(escapedGroupSeparator, "g"), ""); + needsRefresh = bufVal.indexOf(opts.groupSeparator) === 0, bufVal = bufVal.replace(new RegExp(escapedGroupSeparator, "g"), ""); var radixSplit = bufVal.split(opts.radixPoint); - if (bufVal = "" === opts.radixPoint ? bufVal : radixSplit[0], bufVal !== opts.prefix + "?0" && bufVal.length >= opts.groupSize + opts.prefix.length) for (var reg = new RegExp("([-+]?[\\d?]+)([\\d?]{" + opts.groupSize + "})"); reg.test(bufVal); ) bufVal = bufVal.replace(reg, "$1" + opts.groupSeparator + "$2"), - bufVal = bufVal.replace(opts.groupSeparator + opts.groupSeparator, opts.groupSeparator); - "" !== opts.radixPoint && radixSplit.length > 1 && (bufVal += opts.radixPoint + radixSplit[1]); + if (bufVal = opts.radixPoint === "" ? bufVal : radixSplit[0], bufVal !== opts.prefix + "?0" && bufVal.length >= opts.groupSize + opts.prefix.length) { + for (var reg = new RegExp("([-+]?[\\d?]+)([\\d?]{" + opts.groupSize + "})"); reg.test(bufVal); ) { + bufVal = bufVal.replace(reg, "$1" + opts.groupSeparator + "$2"), + bufVal = bufVal.replace(opts.groupSeparator + opts.groupSeparator, opts.groupSeparator); + } + } + opts.radixPoint !== "" && radixSplit.length > 1 && (bufVal += opts.radixPoint + radixSplit[1]); + } + for (needsRefresh = bufValOrigin !== bufVal, buffer.length = bufVal.length, i = 0, + l = bufVal.length; l > i; i++) { + buffer[i] = bufVal.charAt(i); } - for (needsRefresh = bufValOrigin !== bufVal, buffer.length = bufVal.length, i = 0, - l = bufVal.length; l > i; i++) buffer[i] = bufVal.charAt(i); var newPos = $.inArray("?", buffer); - if (-1 === newPos && charAtPos === opts.radixPoint && (newPos = $.inArray(opts.radixPoint, buffer)), - reformatOnly ? buffer[newPos] = charAtPos : buffer.splice(newPos, 1), !needsRefresh && suffixStripped) for (i = 0, - l = opts.suffix.length; l > i; i++) buffer.push(opts.suffix.charAt(i)); - return newPos = opts.numericInput && isFinite(pos) ? buffer.join("").length - newPos - 1 : newPos, - opts.numericInput && (buffer = buffer.reverse(), $.inArray(opts.radixPoint, buffer) < newPos && buffer.join("").length - opts.suffix.length !== newPos && (newPos -= 1)), + if (newPos === -1 && charAtPos === opts.radixPoint && (newPos = $.inArray(opts.radixPoint, buffer)), + reformatOnly ? buffer[newPos] = charAtPos : buffer.splice(newPos, 1), !needsRefresh && suffixStripped) { + for (i = 0, + l = opts.suffix.length; l > i; i++) { + buffer.push(opts.suffix.charAt(i)); + } + } + return newPos = opts.numericInput && isFinite(pos) ? buffer.join("").length - newPos - 1 : newPos, + opts.numericInput && (buffer = buffer.reverse(), $.inArray(opts.radixPoint, buffer) < newPos && buffer.join("").length - opts.suffix.length !== newPos && (newPos -= 1)), { pos: newPos, refreshFromBuffer: needsRefresh, - buffer: buffer + buffer: buffer, }; }, - onBeforeWrite: function(e, buffer, caretPos, opts) { - if (e && ("blur" === e.type || "checkval" === e.type)) { + onBeforeWrite: function (e, buffer, caretPos, opts) { + if (e && (e.type === "blur" || e.type === "checkval")) { var maskedValue = buffer.join(""), processValue = maskedValue.replace(opts.prefix, ""); - if (processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), - "," === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")), - isFinite(processValue) && isFinite(opts.min) && parseFloat(processValue) < parseFloat(opts.min)) return $.extend(!0, { - refreshFromBuffer: !0, - buffer: (opts.prefix + opts.min).split("") - }, opts.postFormat((opts.prefix + opts.min).split(""), 0, !0, opts)); + if (processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), + opts.radixPoint === "," && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")), + isFinite(processValue) && isFinite(opts.min) && parseFloat(processValue) < parseFloat(opts.min)) { + return $.extend(!0, { + refreshFromBuffer: !0, + buffer: (opts.prefix + opts.min).split(""), + }, opts.postFormat((opts.prefix + opts.min).split(""), 0, !0, opts)); + } if (opts.numericInput !== !0) { - var tmpBufSplit = "" !== opts.radixPoint ? buffer.join("").split(opts.radixPoint) : [ buffer.join("") ], matchRslt = tmpBufSplit[0].match(opts.regex.integerPart(opts)), matchRsltDigits = 2 === tmpBufSplit.length ? tmpBufSplit[1].match(opts.regex.integerNPart(opts)) : void 0; + var tmpBufSplit = opts.radixPoint !== "" ? buffer.join("").split(opts.radixPoint) : [ buffer.join("") ], matchRslt = tmpBufSplit[0].match(opts.regex.integerPart(opts)), matchRsltDigits = tmpBufSplit.length === 2 ? tmpBufSplit[1].match(opts.regex.integerNPart(opts)) : void 0; if (matchRslt) { - matchRslt[0] !== opts.negationSymbol.front + "0" && matchRslt[0] !== opts.negationSymbol.front && "+" !== matchRslt[0] || void 0 !== matchRsltDigits && !matchRsltDigits[0].match(/^0+$/) || buffer.splice(matchRslt.index, 1); + matchRslt[0] !== opts.negationSymbol.front + "0" && matchRslt[0] !== opts.negationSymbol.front && matchRslt[0] !== "+" || void 0 !== matchRsltDigits && !matchRsltDigits[0].match(/^0+$/) || buffer.splice(matchRslt.index, 1); var radixPosition = $.inArray(opts.radixPoint, buffer); - if (-1 !== radixPosition) { + if (radixPosition !== -1) { if (isFinite(opts.digits) && !opts.digitsOptional) { - for (var i = 1; i <= opts.digits; i++) (void 0 === buffer[radixPosition + i] || buffer[radixPosition + i] === opts.placeholder.charAt(0)) && (buffer[radixPosition + i] = "0"); + for (var i = 1; i <= opts.digits; i++) { + (void 0 === buffer[radixPosition + i] || buffer[radixPosition + i] === opts.placeholder.charAt(0)) && (buffer[radixPosition + i] = "0"); + } return { refreshFromBuffer: maskedValue !== buffer.join(""), - buffer: buffer + buffer: buffer, + }; + } + if (radixPosition === buffer.length - opts.suffix.length - 1) { + return buffer.splice(radixPosition, 1), + { + refreshFromBuffer: !0, + buffer: buffer, }; } - if (radixPosition === buffer.length - opts.suffix.length - 1) return buffer.splice(radixPosition, 1), - { - refreshFromBuffer: !0, - buffer: buffer - }; } } } @@ -2212,265 +2508,301 @@ } }, regex: { - integerPart: function(opts) { + integerPart: function (opts) { return new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]?\\d+"); }, - integerNPart: function(opts) { + integerNPart: function (opts) { return new RegExp("[\\d" + Inputmask.escapeRegex(opts.groupSeparator) + "]+"); - } + }, }, - signHandler: function(chrs, maskset, pos, strict, opts) { - if (!strict && opts.allowMinus && "-" === chrs || opts.allowPlus && "+" === chrs) { + signHandler: function (chrs, maskset, pos, strict, opts) { + if (!strict && opts.allowMinus && chrs === "-" || opts.allowPlus && chrs === "+") { var matchRslt = maskset.buffer.join("").match(opts.regex.integerPart(opts)); - if (matchRslt && matchRslt[0].length > 0) return maskset.buffer[matchRslt.index] === ("-" === chrs ? "+" : opts.negationSymbol.front) ? "-" === chrs ? "" !== opts.negationSymbol.back ? { - pos: matchRslt.index, - c: opts.negationSymbol.front, - remove: matchRslt.index, - caret: pos, - insert: { - pos: maskset.buffer.length - opts.suffix.length - 1, - c: opts.negationSymbol.back - } - } : { - pos: matchRslt.index, - c: opts.negationSymbol.front, - remove: matchRslt.index, - caret: pos - } : "" !== opts.negationSymbol.back ? { - pos: matchRslt.index, - c: "+", - remove: [ matchRslt.index, maskset.buffer.length - opts.suffix.length - 1 ], - caret: pos - } : { - pos: matchRslt.index, - c: "+", - remove: matchRslt.index, - caret: pos - } : maskset.buffer[matchRslt.index] === ("-" === chrs ? opts.negationSymbol.front : "+") ? "-" === chrs && "" !== opts.negationSymbol.back ? { - remove: [ matchRslt.index, maskset.buffer.length - opts.suffix.length - 1 ], - caret: pos - 1 - } : { - remove: matchRslt.index, - caret: pos - 1 - } : "-" === chrs ? "" !== opts.negationSymbol.back ? { - pos: matchRslt.index, - c: opts.negationSymbol.front, - caret: pos + 1, - insert: { - pos: maskset.buffer.length - opts.suffix.length, - c: opts.negationSymbol.back - } - } : { - pos: matchRslt.index, - c: opts.negationSymbol.front, - caret: pos + 1 - } : { - pos: matchRslt.index, - c: chrs, - caret: pos + 1 - }; + if (matchRslt && matchRslt[0].length > 0) { + return maskset.buffer[matchRslt.index] === (chrs === "-" ? "+" : opts.negationSymbol.front) ? chrs === "-" ? opts.negationSymbol.back !== "" ? { + pos: matchRslt.index, + c: opts.negationSymbol.front, + remove: matchRslt.index, + caret: pos, + insert: { + pos: maskset.buffer.length - opts.suffix.length - 1, + c: opts.negationSymbol.back, + }, + } : { + pos: matchRslt.index, + c: opts.negationSymbol.front, + remove: matchRslt.index, + caret: pos, + } : opts.negationSymbol.back !== "" ? { + pos: matchRslt.index, + c: "+", + remove: [ matchRslt.index, maskset.buffer.length - opts.suffix.length - 1 ], + caret: pos, + } : { + pos: matchRslt.index, + c: "+", + remove: matchRslt.index, + caret: pos, + } : maskset.buffer[matchRslt.index] === (chrs === "-" ? opts.negationSymbol.front : "+") ? chrs === "-" && opts.negationSymbol.back !== "" ? { + remove: [ matchRslt.index, maskset.buffer.length - opts.suffix.length - 1 ], + caret: pos - 1, + } : { + remove: matchRslt.index, + caret: pos - 1, + } : chrs === "-" ? opts.negationSymbol.back !== "" ? { + pos: matchRslt.index, + c: opts.negationSymbol.front, + caret: pos + 1, + insert: { + pos: maskset.buffer.length - opts.suffix.length, + c: opts.negationSymbol.back, + }, + } : { + pos: matchRslt.index, + c: opts.negationSymbol.front, + caret: pos + 1, + } : { + pos: matchRslt.index, + c: chrs, + caret: pos + 1, + }; + } } return !1; }, - radixHandler: function(chrs, maskset, pos, strict, opts) { - if (!strict && (-1 !== $.inArray(chrs, [ ",", "." ]) && (chrs = opts.radixPoint), + radixHandler: function (chrs, maskset, pos, strict, opts) { + if (!strict && ($.inArray(chrs, [ ",", "." ]) !== -1 && (chrs = opts.radixPoint), chrs === opts.radixPoint && void 0 !== opts.digits && (isNaN(opts.digits) || parseInt(opts.digits) > 0))) { var radixPos = $.inArray(opts.radixPoint, maskset.buffer), integerValue = maskset.buffer.join("").match(opts.regex.integerPart(opts)); - if (-1 !== radixPos && maskset.validPositions[radixPos]) return maskset.validPositions[radixPos - 1] ? { - caret: radixPos + 1 - } : { - pos: integerValue.index, - c: integerValue[0], - caret: radixPos + 1 - }; - if (!integerValue || "0" === integerValue[0] && integerValue.index + 1 !== pos) return maskset.buffer[integerValue ? integerValue.index : pos] = "0", - { - pos: (integerValue ? integerValue.index : pos) + 1, - c: opts.radixPoint - }; + if (radixPos !== -1 && maskset.validPositions[radixPos]) { + return maskset.validPositions[radixPos - 1] ? { + caret: radixPos + 1, + } : { + pos: integerValue.index, + c: integerValue[0], + caret: radixPos + 1, + }; + } + if (!integerValue || integerValue[0] === "0" && integerValue.index + 1 !== pos) { + return maskset.buffer[integerValue ? integerValue.index : pos] = "0", + { + pos: (integerValue ? integerValue.index : pos) + 1, + c: opts.radixPoint, + }; + } } return !1; }, - leadingZeroHandler: function(chrs, maskset, pos, strict, opts) { + leadingZeroHandler: function (chrs, maskset, pos, strict, opts) { if (opts.numericInput === !0) { - if ("0" === maskset.buffer[maskset.buffer.length - opts.prefix.length - 1]) return { - pos: pos, - remove: maskset.buffer.length - opts.prefix.length - 1 - }; - } else { - var matchRslt = maskset.buffer.join("").match(opts.regex.integerNPart(opts)), radixPosition = $.inArray(opts.radixPoint, maskset.buffer); - if (matchRslt && !strict && (-1 === radixPosition || radixPosition >= pos)) if (0 === matchRslt[0].indexOf("0")) { - pos < opts.prefix.length && (pos = matchRslt.index); - var _radixPosition = $.inArray(opts.radixPoint, maskset._buffer), digitsMatch = maskset._buffer && maskset.buffer.slice(radixPosition).join("") === maskset._buffer.slice(_radixPosition).join("") || 0 === parseInt(maskset.buffer.slice(radixPosition + 1).join("")), integerMatch = maskset._buffer && maskset.buffer.slice(matchRslt.index, radixPosition).join("") === maskset._buffer.slice(opts.prefix.length, _radixPosition).join("") || "0" === maskset.buffer.slice(matchRslt.index, radixPosition).join(""); - if (-1 === radixPosition || digitsMatch && integerMatch) return maskset.buffer.splice(matchRslt.index, 1), - pos = pos > matchRslt.index ? pos - 1 : matchRslt.index, { - pos: pos, - remove: matchRslt.index - }; - if (matchRslt.index + 1 === pos || "0" === chrs) return maskset.buffer.splice(matchRslt.index, 1), - pos = matchRslt.index, { + if (maskset.buffer[maskset.buffer.length - opts.prefix.length - 1] === "0") { + return { pos: pos, - remove: matchRslt.index + remove: maskset.buffer.length - opts.prefix.length - 1, }; - } else if ("0" === chrs && pos <= matchRslt.index && matchRslt[0] !== opts.groupSeparator) return !1; + } + } else { + var matchRslt = maskset.buffer.join("").match(opts.regex.integerNPart(opts)), radixPosition = $.inArray(opts.radixPoint, maskset.buffer); + if (matchRslt && !strict && (radixPosition === -1 || radixPosition >= pos)) { + if (matchRslt[0].indexOf("0") === 0) { + pos < opts.prefix.length && (pos = matchRslt.index); + var _radixPosition = $.inArray(opts.radixPoint, maskset._buffer), digitsMatch = maskset._buffer && maskset.buffer.slice(radixPosition).join("") === maskset._buffer.slice(_radixPosition).join("") || parseInt(maskset.buffer.slice(radixPosition + 1).join("")) === 0, integerMatch = maskset._buffer && maskset.buffer.slice(matchRslt.index, radixPosition).join("") === maskset._buffer.slice(opts.prefix.length, _radixPosition).join("") || maskset.buffer.slice(matchRslt.index, radixPosition).join("") === "0"; + if (radixPosition === -1 || digitsMatch && integerMatch) { + return maskset.buffer.splice(matchRslt.index, 1), + pos = pos > matchRslt.index ? pos - 1 : matchRslt.index, { + pos: pos, + remove: matchRslt.index, + }; + } + if (matchRslt.index + 1 === pos || chrs === "0") { + return maskset.buffer.splice(matchRslt.index, 1), + pos = matchRslt.index, { + pos: pos, + remove: matchRslt.index, + }; + } + } else if (chrs === "0" && pos <= matchRslt.index && matchRslt[0] !== opts.groupSeparator) { + return !1; + } + } } return !0; }, - postValidation: function(buffer, currentResult, opts) { + postValidation: function (buffer, currentResult, opts) { var isValid = !0, maskedValue = opts.numericInput ? buffer.slice().reverse().join("") : buffer.join(""), processValue = maskedValue.replace(opts.prefix, ""); - return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), - "," === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")), - processValue = processValue.replace(new RegExp("^" + Inputmask.escapeRegex(opts.negationSymbol.front)), "-"), - processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""), - processValue = processValue === opts.negationSymbol.front ? processValue + "0" : processValue, - isFinite(processValue) && (null !== opts.max && isFinite(opts.max) && (processValue = parseFloat(processValue) > parseFloat(opts.max) ? opts.max : processValue, - isValid = opts.postFormat((opts.prefix + processValue).split(""), 0, !0, opts)), - null !== opts.min && isFinite(opts.min) && (processValue = parseFloat(processValue) < parseFloat(opts.min) ? opts.min : processValue, - isValid = opts.postFormat((opts.prefix + processValue).split(""), 0, !0, opts))), + return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), + opts.radixPoint === "," && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")), + processValue = processValue.replace(new RegExp("^" + Inputmask.escapeRegex(opts.negationSymbol.front)), "-"), + processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""), + processValue = processValue === opts.negationSymbol.front ? processValue + "0" : processValue, + isFinite(processValue) && (opts.max !== null && isFinite(opts.max) && (processValue = parseFloat(processValue) > parseFloat(opts.max) ? opts.max : processValue, + isValid = opts.postFormat((opts.prefix + processValue).split(""), 0, !0, opts)), + opts.min !== null && isFinite(opts.min) && (processValue = parseFloat(processValue) < parseFloat(opts.min) ? opts.min : processValue, + isValid = opts.postFormat((opts.prefix + processValue).split(""), 0, !0, opts))), isValid; }, definitions: { "~": { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.signHandler(chrs, maskset, pos, strict, opts); - if (!isValid && (isValid = opts.radixHandler(chrs, maskset, pos, strict, opts), - !isValid && (isValid = strict ? new RegExp("[0-9" + Inputmask.escapeRegex(opts.groupSeparator) + "]").test(chrs) : new RegExp("[0-9]").test(chrs), - isValid === !0 && (isValid = opts.leadingZeroHandler(chrs, maskset, pos, strict, opts), + if (!isValid && (isValid = opts.radixHandler(chrs, maskset, pos, strict, opts), + !isValid && (isValid = strict ? new RegExp("[0-9" + Inputmask.escapeRegex(opts.groupSeparator) + "]").test(chrs) : new RegExp("[0-9]").test(chrs), + isValid === !0 && (isValid = opts.leadingZeroHandler(chrs, maskset, pos, strict, opts), isValid === !0)))) { var radixPosition = $.inArray(opts.radixPoint, maskset.buffer); - isValid = -1 !== radixPosition && opts.digitsOptional === !1 && opts.numericInput !== !0 && pos > radixPosition && !strict ? { + isValid = radixPosition !== -1 && opts.digitsOptional === !1 && opts.numericInput !== !0 && pos > radixPosition && !strict ? { pos: pos, - remove: pos + remove: pos, } : { - pos: pos + pos: pos, }; } return isValid; }, cardinality: 1, - prevalidator: null + prevalidator: null, }, "+": { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.signHandler(chrs, maskset, pos, strict, opts); - return !isValid && (strict && opts.allowMinus && chrs === opts.negationSymbol.front || opts.allowMinus && "-" === chrs || opts.allowPlus && "+" === chrs) && (isValid = "-" === chrs ? "" !== opts.negationSymbol.back ? { + return !isValid && (strict && opts.allowMinus && chrs === opts.negationSymbol.front || opts.allowMinus && chrs === "-" || opts.allowPlus && chrs === "+") && (isValid = chrs === "-" ? opts.negationSymbol.back !== "" ? { pos: pos, - c: "-" === chrs ? opts.negationSymbol.front : "+", + c: chrs === "-" ? opts.negationSymbol.front : "+", caret: pos + 1, insert: { pos: maskset.buffer.length, - c: opts.negationSymbol.back - } + c: opts.negationSymbol.back, + }, } : { pos: pos, - c: "-" === chrs ? opts.negationSymbol.front : "+", - caret: pos + 1 + c: chrs === "-" ? opts.negationSymbol.front : "+", + caret: pos + 1, } : !0), isValid; }, cardinality: 1, prevalidator: null, - placeholder: "" + placeholder: "", }, "-": { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.signHandler(chrs, maskset, pos, strict, opts); - return !isValid && strict && opts.allowMinus && chrs === opts.negationSymbol.back && (isValid = !0), + return !isValid && strict && opts.allowMinus && chrs === opts.negationSymbol.back && (isValid = !0), isValid; }, cardinality: 1, prevalidator: null, - placeholder: "" + placeholder: "", }, ":": { - validator: function(chrs, maskset, pos, strict, opts) { + validator: function (chrs, maskset, pos, strict, opts) { var isValid = opts.signHandler(chrs, maskset, pos, strict, opts); if (!isValid) { var radix = "[" + Inputmask.escapeRegex(opts.radixPoint) + ",\\.]"; isValid = new RegExp(radix).test(chrs), isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint && (isValid = { - caret: pos + 1 + caret: pos + 1, }); } return isValid ? { - c: opts.radixPoint + c: opts.radixPoint, } : isValid; }, cardinality: 1, prevalidator: null, - placeholder: function(opts) { + placeholder: function (opts) { return opts.radixPoint; - } - } + }, + }, }, - onUnMask: function(maskedValue, unmaskedValue, opts) { + onUnMask: function (maskedValue, unmaskedValue, opts) { var processValue = maskedValue.replace(opts.prefix, ""); - return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), - opts.unmaskAsNumber ? ("" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), ".")), + return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), + opts.unmaskAsNumber ? (opts.radixPoint !== "" && processValue.indexOf(opts.radixPoint) !== -1 && (processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), ".")), Number(processValue)) : processValue; }, - isComplete: function(buffer, opts) { + isComplete: function (buffer, opts) { var maskedValue = buffer.join(""), bufClone = buffer.slice(); - if (opts.postFormat(bufClone, 0, !0, opts), bufClone.join("") !== maskedValue) return !1; + if (opts.postFormat(bufClone, 0, !0, opts), bufClone.join("") !== maskedValue) { + return !1; + } var processValue = maskedValue.replace(opts.prefix, ""); - return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), - "," === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")), + return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""), + opts.radixPoint === "," && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")), isFinite(processValue); }, - onBeforeMask: function(initialValue, opts) { - if ("" !== opts.radixPoint && isFinite(initialValue)) initialValue = initialValue.toString().replace(".", opts.radixPoint); else { + onBeforeMask: function (initialValue, opts) { + if (opts.radixPoint !== "" && isFinite(initialValue)) { + initialValue = initialValue.toString().replace(".", opts.radixPoint); + } else { var kommaMatches = initialValue.match(/,/g), dotMatches = initialValue.match(/\./g); - dotMatches && kommaMatches ? dotMatches.length > kommaMatches.length ? (initialValue = initialValue.replace(/\./g, ""), - initialValue = initialValue.replace(",", opts.radixPoint)) : kommaMatches.length > dotMatches.length ? (initialValue = initialValue.replace(/,/g, ""), + dotMatches && kommaMatches ? dotMatches.length > kommaMatches.length ? (initialValue = initialValue.replace(/\./g, ""), + initialValue = initialValue.replace(",", opts.radixPoint)) : kommaMatches.length > dotMatches.length ? (initialValue = initialValue.replace(/,/g, ""), initialValue = initialValue.replace(".", opts.radixPoint)) : initialValue = initialValue.indexOf(".") < initialValue.indexOf(",") ? initialValue.replace(/\./g, "") : initialValue = initialValue.replace(/,/g, "") : initialValue = initialValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""); } - if (0 === opts.digits && (-1 !== initialValue.indexOf(".") ? initialValue = initialValue.substring(0, initialValue.indexOf(".")) : -1 !== initialValue.indexOf(",") && (initialValue = initialValue.substring(0, initialValue.indexOf(",")))), - "" !== opts.radixPoint && isFinite(opts.digits) && -1 !== initialValue.indexOf(opts.radixPoint)) { + if (opts.digits === 0 && (initialValue.indexOf(".") !== -1 ? initialValue = initialValue.substring(0, initialValue.indexOf(".")) : initialValue.indexOf(",") !== -1 && (initialValue = initialValue.substring(0, initialValue.indexOf(",")))), + opts.radixPoint !== "" && isFinite(opts.digits) && initialValue.indexOf(opts.radixPoint) !== -1) { var valueParts = initialValue.split(opts.radixPoint), decPart = valueParts[1].match(new RegExp("\\d*"))[0]; if (parseInt(opts.digits) < decPart.toString().length) { var digitsFactor = Math.pow(10, parseInt(opts.digits)); - initialValue = initialValue.replace(Inputmask.escapeRegex(opts.radixPoint), "."), - initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor, + initialValue = initialValue.replace(Inputmask.escapeRegex(opts.radixPoint), "."), + initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor, initialValue = initialValue.toString().replace(".", opts.radixPoint); } } return initialValue.toString(); }, - canClearPosition: function(maskset, position, lvp, strict, opts) { - var positionInput = maskset.validPositions[position].input, canClear = positionInput !== opts.radixPoint || null !== maskset.validPositions[position].match.fn && opts.decimalProtect === !1 || isFinite(positionInput) || position === lvp || positionInput === opts.groupSeparator || positionInput === opts.negationSymbol.front || positionInput === opts.negationSymbol.back; + canClearPosition: function (maskset, position, lvp, strict, opts) { + var positionInput = maskset.validPositions[position].input, canClear = positionInput !== opts.radixPoint || maskset.validPositions[position].match.fn !== null && opts.decimalProtect === !1 || isFinite(positionInput) || position === lvp || positionInput === opts.groupSeparator || positionInput === opts.negationSymbol.front || positionInput === opts.negationSymbol.back; if (canClear && isFinite(positionInput)) { var matchRslt, radixPos = $.inArray(opts.radixPoint, maskset.buffer), radixInjection = !1; if (void 0 === maskset.validPositions[radixPos] && (maskset.validPositions[radixPos] = { - input: opts.radixPoint + input: opts.radixPoint, }, radixInjection = !0), !strict && maskset.buffer) { matchRslt = maskset.buffer.join("").substr(0, position).match(opts.regex.integerNPart(opts)); - var pos = position + 1, isNull = null == matchRslt || 0 === parseInt(matchRslt[0].replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), "")); - if (isNull) for (;maskset.validPositions[pos] && (maskset.validPositions[pos].input === opts.groupSeparator || "0" === maskset.validPositions[pos].input); ) delete maskset.validPositions[pos], - pos++; + var pos = position + 1, isNull = matchRslt == null || parseInt(matchRslt[0].replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), "")) === 0; + if (isNull) { + for (;maskset.validPositions[pos] && (maskset.validPositions[pos].input === opts.groupSeparator || maskset.validPositions[pos].input === "0"); ) { + delete maskset.validPositions[pos], + pos++; + } + } } var buffer = []; - for (var vp in maskset.validPositions) void 0 !== maskset.validPositions[vp].input && buffer.push(maskset.validPositions[vp].input); + for (var vp in maskset.validPositions) { + void 0 !== maskset.validPositions[vp].input && buffer.push(maskset.validPositions[vp].input); + } if (radixInjection && delete maskset.validPositions[radixPos], radixPos > 0) { var bufVal = buffer.join(""); - if (matchRslt = bufVal.match(opts.regex.integerNPart(opts))) if (radixPos >= position) if (0 === matchRslt[0].indexOf("0")) canClear = matchRslt.index !== position || "0" === opts.placeholder; else { - var intPart = parseInt(matchRslt[0].replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), "")), radixPart = parseInt(bufVal.split(opts.radixPoint)[1]); - 10 > intPart && maskset.validPositions[position] && ("0" !== opts.placeholder || radixPart > 0) && (maskset.validPositions[position].input = "0", - maskset.p = opts.prefix.length + 1, canClear = !1); - } else 0 === matchRslt[0].indexOf("0") && 3 === bufVal.length && (maskset.validPositions = {}, - canClear = !1); + if (matchRslt = bufVal.match(opts.regex.integerNPart(opts))) { + if (radixPos >= position) { + if (matchRslt[0].indexOf("0") === 0) { + canClear = matchRslt.index !== position || opts.placeholder === "0"; + } else { + var intPart = parseInt(matchRslt[0].replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), "")), radixPart = parseInt(bufVal.split(opts.radixPoint)[1]); + intPart < 10 && maskset.validPositions[position] && (opts.placeholder !== "0" || radixPart > 0) && (maskset.validPositions[position].input = "0", + maskset.p = opts.prefix.length + 1, canClear = !1); + } + } else { + matchRslt[0].indexOf("0") === 0 && bufVal.length === 3 && (maskset.validPositions = {}, + canClear = !1); + } + } } } return canClear; }, - onKeyDown: function(e, buffer, caretPos, opts) { + onKeyDown: function (e, buffer, caretPos, opts) { var $input = $(this); - if (e.ctrlKey) switch (e.keyCode) { - case Inputmask.keyCode.UP: - $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), $input.trigger("setvalue"); - break; + if (e.ctrlKey) { + switch (e.keyCode) { + case Inputmask.keyCode.UP: + $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), $input.trigger("setvalue"); + break; - case Inputmask.keyCode.DOWN: - $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), $input.trigger("setvalue"); + case Inputmask.keyCode.DOWN: + $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), $input.trigger("setvalue"); + } } - } + }, }, currency: { prefix: "$ ", @@ -2480,15 +2812,15 @@ autoGroup: !0, digits: 2, digitsOptional: !1, - clearMaskOnLostFocus: !1 + clearMaskOnLostFocus: !1, }, decimal: { - alias: "numeric" + alias: "numeric", }, integer: { alias: "numeric", digits: 0, - radixPoint: "" + radixPoint: "", }, percentage: { alias: "numeric", @@ -2500,16 +2832,16 @@ max: 100, suffix: " %", allowPlus: !1, - allowMinus: !1 - } + allowMinus: !1, + }, }), Inputmask; -}(jQuery, Inputmask), function($, Inputmask) { +}(jQuery, Inputmask)), (function ($, Inputmask) { return Inputmask.extendAliases({ phone: { url: "/defiline/static/src/lib/phone-codes/phone-codes.js", countrycode: "", phoneCodeCache: {}, - mask: function(opts) { + mask: function (opts) { if (void 0 === opts.phoneCodeCache[opts.url]) { var maskList = []; opts.definitions["#"] = opts.definitions[9], $.ajax({ @@ -2517,13 +2849,13 @@ async: !1, type: "get", dataType: "json", - success: function(response) { + success: function (response) { maskList = response; }, - error: function(xhr, ajaxOptions, thrownError) { + error: function (xhr, ajaxOptions, thrownError) { alert(thrownError + " - " + opts.url); - } - }), opts.phoneCodeCache[opts.url] = maskList.sort(function(a, b) { + }, + }), opts.phoneCodeCache[opts.url] = maskList.sort(function (a, b) { return (a.mask || a) < (b.mask || b) ? -1 : 1; }); } @@ -2532,20 +2864,20 @@ keepStatic: !1, nojumps: !0, nojumpsThreshold: 1, - onBeforeMask: function(value, opts) { + onBeforeMask: function (value, opts) { var processedValue = value.replace(/^0{1,2}/, "").replace(/[\s]/g, ""); - return (processedValue.indexOf(opts.countrycode) > 1 || -1 === processedValue.indexOf(opts.countrycode)) && (processedValue = "+" + opts.countrycode + processedValue), + return (processedValue.indexOf(opts.countrycode) > 1 || processedValue.indexOf(opts.countrycode) === -1) && (processedValue = "+" + opts.countrycode + processedValue), processedValue; - } + }, }, phonebe: { alias: "phone", url: "/defiline/static/src/lib/phone-codes/phone-be.js", countrycode: "32", - nojumpsThreshold: 4 - } + nojumpsThreshold: 4, + }, }), Inputmask; -}(jQuery, Inputmask), function($, Inputmask) { +}(jQuery, Inputmask)), (function ($, Inputmask) { return Inputmask.extendAliases({ Regex: { mask: "r", @@ -2555,99 +2887,121 @@ regexTokens: null, tokenizer: /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, quantifierFilter: /[0-9]+[^,]/, - isComplete: function(buffer, opts) { + isComplete: function (buffer, opts) { return new RegExp(opts.regex).test(buffer.join("")); }, definitions: { r: { - validator: function(chrs, maskset, pos, strict, opts) { - function RegexToken(isGroup, isQuantifier) { - this.matches = [], this.isGroup = isGroup || !1, this.isQuantifier = isQuantifier || !1, + validator: function (chrs, maskset, pos, strict, opts) { + function RegexToken (isGroup, isQuantifier) { + this.matches = [], this.isGroup = isGroup || !1, this.isQuantifier = isQuantifier || !1, this.quantifier = { min: 1, - max: 1 + max: 1, }, this.repeaterPart = void 0; } - function analyseRegex() { + function analyseRegex () { var match, m, currentToken = new RegexToken(), opengroups = []; - for (opts.regexTokens = []; match = opts.tokenizer.exec(opts.regex); ) switch (m = match[0], - m.charAt(0)) { - case "(": - opengroups.push(new RegexToken(!0)); - break; + for (opts.regexTokens = []; match = opts.tokenizer.exec(opts.regex); ) { + switch (m = match[0], + m.charAt(0)) { + case "(": + opengroups.push(new RegexToken(!0)); + break; - case ")": - groupToken = opengroups.pop(), opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(groupToken) : currentToken.matches.push(groupToken); - break; + case ")": + groupToken = opengroups.pop(), opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(groupToken) : currentToken.matches.push(groupToken); + break; - case "{": - case "+": - case "*": - var quantifierToken = new RegexToken(!1, !0); - m = m.replace(/[{}]/g, ""); - var mq = m.split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]); - if (quantifierToken.quantifier = { - min: mq0, - max: mq1 - }, opengroups.length > 0) { - var matches = opengroups[opengroups.length - 1].matches; - match = matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), groupToken.matches.push(match), - match = groupToken), matches.push(match), matches.push(quantifierToken); - } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), - groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), - currentToken.matches.push(quantifierToken); - break; + case "{": + case "+": + case "*": + var quantifierToken = new RegexToken(!1, !0); + m = m.replace(/[{}]/g, ""); + var mq = m.split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = mq.length === 1 ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]); + if (quantifierToken.quantifier = { + min: mq0, + max: mq1, + }, opengroups.length > 0) { + var matches = opengroups[opengroups.length - 1].matches; + match = matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), groupToken.matches.push(match), + match = groupToken), matches.push(match), matches.push(quantifierToken); + } else { + match = currentToken.matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), + groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), + currentToken.matches.push(quantifierToken); + } + break; - default: - opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(m) : currentToken.matches.push(m); + default: + opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(m) : currentToken.matches.push(m); + } } currentToken.matches.length > 0 && opts.regexTokens.push(currentToken); } - function validateRegexToken(token, fromGroup) { + function validateRegexToken (token, fromGroup) { var isvalid = !1; fromGroup && (regexPart += "(", openGroupCount++); for (var mndx = 0; mndx < token.matches.length; mndx++) { var matchToken = token.matches[mndx]; - if (matchToken.isGroup === !0) isvalid = validateRegexToken(matchToken, !0); else if (matchToken.isQuantifier === !0) { + if (matchToken.isGroup === !0) { + isvalid = validateRegexToken(matchToken, !0); + } else if (matchToken.isQuantifier === !0) { var crrntndx = $.inArray(matchToken, token.matches), matchGroup = token.matches[crrntndx - 1], regexPartBak = regexPart; if (isNaN(matchToken.quantifier.max)) { - for (;matchToken.repeaterPart && matchToken.repeaterPart !== regexPart && matchToken.repeaterPart.length > regexPart.length && !(isvalid = validateRegexToken(matchGroup, !0)); ) ; - isvalid = isvalid || validateRegexToken(matchGroup, !0), isvalid && (matchToken.repeaterPart = regexPart), + for (;matchToken.repeaterPart && matchToken.repeaterPart !== regexPart && matchToken.repeaterPart.length > regexPart.length && !(isvalid = validateRegexToken(matchGroup, !0)); ) {} + isvalid = isvalid || validateRegexToken(matchGroup, !0), isvalid && (matchToken.repeaterPart = regexPart), regexPart = regexPartBak + matchToken.quantifier.max; } else { - for (var i = 0, qm = matchToken.quantifier.max - 1; qm > i && !(isvalid = validateRegexToken(matchGroup, !0)); i++) ; + for (var i = 0, qm = matchToken.quantifier.max - 1; qm > i && !(isvalid = validateRegexToken(matchGroup, !0)); i++) {} regexPart = regexPartBak + "{" + matchToken.quantifier.min + "," + matchToken.quantifier.max + "}"; } - } else if (void 0 !== matchToken.matches) for (var k = 0; k < matchToken.length && !(isvalid = validateRegexToken(matchToken[k], fromGroup)); k++) ; else { + } else if (void 0 !== matchToken.matches) { + for (var k = 0; k < matchToken.length && !(isvalid = validateRegexToken(matchToken[k], fromGroup)); k++) {} + } else { var testExp; - if ("[" == matchToken.charAt(0)) { + if (matchToken.charAt(0) == "[") { testExp = regexPart, testExp += matchToken; - for (var j = 0; openGroupCount > j; j++) testExp += ")"; + for (var j = 0; openGroupCount > j; j++) { + testExp += ")"; + } var exp = new RegExp("^(" + testExp + ")$"); isvalid = exp.test(bufferStr); - } else for (var l = 0, tl = matchToken.length; tl > l; l++) if ("\\" !== matchToken.charAt(l)) { - testExp = regexPart, testExp += matchToken.substr(0, l + 1), testExp = testExp.replace(/\|$/, ""); - for (var j = 0; openGroupCount > j; j++) testExp += ")"; - var exp = new RegExp("^(" + testExp + ")$"); - if (isvalid = exp.test(bufferStr)) break; + } else { + for (var l = 0, tl = matchToken.length; tl > l; l++) { + if (matchToken.charAt(l) !== "\\") { + testExp = regexPart, testExp += matchToken.substr(0, l + 1), testExp = testExp.replace(/\|$/, ""); + for (var j = 0; openGroupCount > j; j++) { + testExp += ")"; + } + var exp = new RegExp("^(" + testExp + ")$"); + if (isvalid = exp.test(bufferStr)) { + break; + } + } + } } regexPart += matchToken; } - if (isvalid) break; + if (isvalid) { + break; + } } return fromGroup && (regexPart += ")", openGroupCount--), isvalid; } var bufferStr, groupToken, cbuffer = maskset.buffer.slice(), regexPart = "", isValid = !1, openGroupCount = 0; - null === opts.regexTokens && analyseRegex(), cbuffer.splice(pos, 0, chrs), bufferStr = cbuffer.join(""); + opts.regexTokens === null && analyseRegex(), cbuffer.splice(pos, 0, chrs), bufferStr = cbuffer.join(""); for (var i = 0; i < opts.regexTokens.length; i++) { var regexToken = opts.regexTokens[i]; - if (isValid = validateRegexToken(regexToken, regexToken.isGroup)) break; + if (isValid = validateRegexToken(regexToken, regexToken.isGroup)) { + break; + } } return isValid; }, - cardinality: 1 - } - } - } + cardinality: 1, + }, + }, + }, }), Inputmask; -}(jQuery, Inputmask); \ No newline at end of file +}(jQuery, Inputmask)); diff --git a/easy_my_coop/views/account_invoice_view.xml b/easy_my_coop/views/account_invoice_view.xml index ec34b8b..8a86df0 100644 --- a/easy_my_coop/views/account_invoice_view.xml +++ b/easy_my_coop/views/account_invoice_view.xml @@ -1,73 +1,73 @@ - - - account.invoice.form - account.invoice - - - - - - - - - - Cooperator Invoices - account.invoice - form - tree,kanban,form,calendar,pivot,graph,activity - - [('type','in',('out_invoice', 'out_refund')),('release_capital_request','=',True)] - {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} - - -

- Create a customer invoice -

- Create invoices, register payments and keep track of the discussions with your customers. -

-
-
- - - - tree - - - - - - - form - - - - - - Customer Invoices - account.invoice - form - tree,kanban,form,calendar,pivot,graph,activity - - [('type','in',('out_invoice', 'out_refund')),('release_capital_request','=',False)] - {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} - - -

- Create a customer invoice -

- Create invoices, register payments and keep track of the discussions with your customers. -

-
-
- - - Invoices - account.invoice - form - tree,form,kanban,calendar,graph,pivot - - [('type','in', ['out_invoice', 'out_refund']), ('state', 'not in', ['draft', 'cancel']),('release_capital_request','=',False)] - {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} - - -
+ + + account.invoice.form + account.invoice + + + + + + + + + + Cooperator Invoices + account.invoice + form + tree,kanban,form,calendar,pivot,graph,activity + + [('type','in',('out_invoice', 'out_refund')),('release_capital_request','=',True)] + {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} + + +

+ Create a customer invoice +

+ Create invoices, register payments and keep track of the discussions with your customers. +

+
+
+ + + + tree + + + + + + + form + + + + + + Customer Invoices + account.invoice + form + tree,kanban,form,calendar,pivot,graph,activity + + [('type','in',('out_invoice', 'out_refund')),('release_capital_request','=',False)] + {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} + + +

+ Create a customer invoice +

+ Create invoices, register payments and keep track of the discussions with your customers. +

+
+
+ + + Invoices + account.invoice + form + tree,form,kanban,calendar,graph,pivot + + [('type','in', ['out_invoice', 'out_refund']), ('state', 'not in', ['draft', 'cancel']),('release_capital_request','=',False)] + {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} + + +
diff --git a/easy_my_coop/views/account_journal_view.xml b/easy_my_coop/views/account_journal_view.xml index ccaed71..38288e0 100644 --- a/easy_my_coop/views/account_journal_view.xml +++ b/easy_my_coop/views/account_journal_view.xml @@ -1,26 +1,26 @@ - - - - account.journal.form - account.journal - - - - - - - - - - - account.bank.journal.form - account.journal - - - - - - - - - + + + + account.journal.form + account.journal + + + + + + + + + + + account.bank.journal.form + account.journal + + + + + + + + + diff --git a/easy_my_coop/views/cooperator_register_view.xml b/easy_my_coop/views/cooperator_register_view.xml index 47b2fab..ed5f996 100644 --- a/easy_my_coop/views/cooperator_register_view.xml +++ b/easy_my_coop/views/cooperator_register_view.xml @@ -1,77 +1,77 @@ - - - subscription.register.tree - subscription.register - - - - - - - - - - - - - - - - subscription.register.form - subscription.register - -
- - - - - - - - - - - - - - - - - - - -
-
-
- - - Subscription Register Search - subscription.register - - - - - - - - - - - - - - - - - - - - Subscription Register - subscription.register - form - - - - -
+ + + subscription.register.tree + subscription.register + + + + + + + + + + + + + + + + subscription.register.form + subscription.register + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + + Subscription Register Search + subscription.register + + + + + + + + + + + + + + + + + + + + Subscription Register + subscription.register + form + + + + +
diff --git a/easy_my_coop/views/email_template_view.xml b/easy_my_coop/views/email_template_view.xml index 6834a80..a249aab 100644 --- a/easy_my_coop/views/email_template_view.xml +++ b/easy_my_coop/views/email_template_view.xml @@ -1,15 +1,15 @@ - - - - - Mail Templates - mail.template - form - form,tree - [('easy_my_coop','=',True)] - - - - - + + + + + Mail Templates + mail.template + form + form,tree + [('easy_my_coop','=',True)] + + + + + diff --git a/easy_my_coop/views/operation_request_view.xml b/easy_my_coop/views/operation_request_view.xml index 66af63a..dbfdfde 100644 --- a/easy_my_coop/views/operation_request_view.xml +++ b/easy_my_coop/views/operation_request_view.xml @@ -1,105 +1,105 @@ - - - - operation.request.tree - operation.request - - - - - - - - - - - - - - operation.request.form - operation.request - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - Operation request - operation.request - form - - - -
+ + + + operation.request.tree + operation.request + + + + + + + + + + + + + + operation.request.form + operation.request + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + Operation request + operation.request + form + + + +
diff --git a/easy_my_coop/views/product_view.xml b/easy_my_coop/views/product_view.xml index 49e16e9..c72631e 100644 --- a/easy_my_coop/views/product_view.xml +++ b/easy_my_coop/views/product_view.xml @@ -1,153 +1,153 @@ - - - - product.template.share.form - product.template - - - -
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
-
- - - product.template.share.filter - product.template - - - - - - - - - - - - product.template.product.form - product.template - - - - {'required': [('is_share', '=', True)]} - - - - - - Share type - ir.actions.act_window - product.template - form - kanban,tree,form - - - - [('is_share','=',True)] - -

- Click to define a new share product. -

-
-
- - - - - - Product - ir.actions.act_window - product.product - tree,form,kanban - form - - - [('is_share','=',False)] - -

- Click to define a new product. -

- You must define a product for everything you sell, whether it's - a physical product, a consumable or a service you offer to - customers. -

- The product form contains information to simplify the sale - process: price, notes in the quotation, accounting data, - procurement methods, etc. -

-
-
- - - Products - ir.actions.act_window - product.template - tree,form,kanban - form - - {"search_default_filter_to_sell":1} - [('is_share','=',False)] - -

- Click to define a new product. -

- You must define a product for everything you sell, whether it's a physical product, a consumable or a service you offer to customers. -

- The product form contains information to simplify the sale process: price, notes in the quotation, accounting data, procurement methods, etc. -

-
-
- - -
+ + + + product.template.share.form + product.template + + + +
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
+
+ + + product.template.share.filter + product.template + + + + + + + + + + + + product.template.product.form + product.template + + + + {'required': [('is_share', '=', True)]} + + + + + + Share type + ir.actions.act_window + product.template + form + kanban,tree,form + + + + [('is_share','=',True)] + +

+ Click to define a new share product. +

+
+
+ + + + + + Product + ir.actions.act_window + product.product + tree,form,kanban + form + + + [('is_share','=',False)] + +

+ Click to define a new product. +

+ You must define a product for everything you sell, whether it's + a physical product, a consumable or a service you offer to + customers. +

+ The product form contains information to simplify the sale + process: price, notes in the quotation, accounting data, + procurement methods, etc. +

+
+
+ + + Products + ir.actions.act_window + product.template + tree,form,kanban + form + + {"search_default_filter_to_sell":1} + [('is_share','=',False)] + +

+ Click to define a new product. +

+ You must define a product for everything you sell, whether it's a physical product, a consumable or a service you offer to customers. +

+ The product form contains information to simplify the sale process: price, notes in the quotation, accounting data, procurement methods, etc. +

+
+
+ + +
diff --git a/easy_my_coop/views/res_company_view.xml b/easy_my_coop/views/res_company_view.xml index 8655cec..a1b13b2 100644 --- a/easy_my_coop/views/res_company_view.xml +++ b/easy_my_coop/views/res_company_view.xml @@ -1,34 +1,34 @@ - - - - res.company.form.easymy.coop - - res.company - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + res.company.form.easymy.coop + + res.company + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/easy_my_coop/views/res_partner_view.xml b/easy_my_coop/views/res_partner_view.xml index 9ae1bbd..85f5638 100644 --- a/easy_my_coop/views/res_partner_view.xml +++ b/easy_my_coop/views/res_partner_view.xml @@ -18,7 +18,7 @@ type="action" context="{'default_active_id': active_id}" groups="easy_my_coop.group_easy_my_coop_user"/> - + @@ -40,7 +40,7 @@ - + @@ -72,7 +72,7 @@
- + res.partner.tree.easy_my_coop res.partner @@ -85,7 +85,7 @@ - + res.partner.select res.partner @@ -101,7 +101,7 @@ - + Cooperators res.partner @@ -158,7 +158,7 @@

- + res.partner.remove.follower.inherit res.partner diff --git a/easy_my_coop/views/subscription_request_view.xml b/easy_my_coop/views/subscription_request_view.xml index e01f24a..7870ba1 100644 --- a/easy_my_coop/views/subscription_request_view.xml +++ b/easy_my_coop/views/subscription_request_view.xml @@ -1,201 +1,201 @@ - - - - - subscription.request.tree - subscription.request - - - - - - - - - - - - - - - - -