<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">GNS.restorePassword = {};

new Vue({
    el: '[data-auth-restore-password-block]',
    data: {
        email: '',
        isSubmit: false,
        errorMessage: ''
    },
    mounted: function () {
        var self = this;

        GNS.restorePassword.$form = $(self.$el).find('form');

        GNS.restorePassword.$form.validate({
            onsubmit: false,
            ignore: false,
            errorElement: 'span',
            focusCleanup: true,
            onfocusout: false,
            onkeyup: false,
            onclick: false,
            rules: {
                'restore-password-email': {
                    required: true,
                    email: true,
                    maxlength: 191
                }
            },
            errorPlacement: function (error, element) {
                error.addClass('form-el-error-message');
                element.closest('.form-group').append(error);
            },
            highlight: function (element, errorClass, validClass) {
                $(element).addClass('form-el-error');
            },
            unhighlight: function (element, errorClass, validClass) {
                $(element).removeClass('form-el-error');
            }
        });
    },
    methods: {
        submit: function () {
            var self = this;

            if (self.errorMessage) {
                self.errorMessage = '';
            }

            if (self.isSubmit) {
                return false;
            } else if (!GNS.restorePassword.$form.valid()) {
                return false;
            }

            self.isSubmit = true;

            $.ajax({
                url: '/auth/restore-password',
                type: 'POST',
                data: {
                    email: self.email.toLocaleLowerCase(),

                    language: GNS.language,
                    user_location_id: GNS.userLocationId,
                    user_shop_id: GNS.userShopId,
                    user_delivery_address: GNS.userDeliveryAddress
                },
                success: function (data) {
                    if (data.status === 'already-authenticated'
                        || data.status === 'invalid-input'
                        || data.status === 'email-not-found'
                        || data.status === 'restore-password-failed'
                        || data.status === 'email-not-verified') {

                        self.errorMessage = data.message;
                    } else if (data.status === 'success') {
                        self.reset();
                        $('#recover-pass_modal').modal('hide');

                        GNS.notification.show(data.message);
                    }

                    self.isSubmit = false;

                    if (GNS.isDebug) {
                        console.log('/auth/restore-password[success]:', data);
                    }
                },
                error: function (error) {
                    self.isSubmit = false;

                    if (GNS.isDebug) {
                        console.log('/auth/restore-password[error]:', error.responseJSON);
                    }
                }
            });
        },
        reset: function () {
            this.email = '';
        }
    }
});</pre></body></html>