File "seamless.min.js.map"

Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/swedbank-pay-checkout/assets/js/seamless.min.js.map
File size: 12.02 KB
MIME-type: application/json
Charset: utf-8

{"version":3,"file":"seamless.min.js","names":["jQuery","$","window","wc_sb_checkout_seamless","xhr","init","form","this","form_submit","js_url","onSubmit","event","data","obj","validateForm","console","log","is","hasOwnProperty","wc_sb_checkin","isCheckinEnabled","isCheckinRequired","isCustomerIdentified","submit_error","WC_Gateway_Swedbank_Pay_Checkin","needs_checkin","waitForJsUrl","$required_inputs","validated","find","not","length","each","$this","$parent","closest","validate_required","validate_email","attr","val","RegExp","test","setJsUrl","url","self","interval","setInterval","clearInterval","initFrame","callback","loadJs","featherlight","variant","persist","closeOnClick","closeOnEsc","afterOpen","initPaymentMenu","afterClose","removeClass","unblock","js","script","document","createElement","setAttribute","addEventListener","oHead","getElementsByTagName","appendChild","error_message","remove","prepend","trigger","blur","scroll_to_notices","body","scrollElement","checkPaymentUrl","URLSearchParams","location","search","get","payment_url"],"sources":["seamless.js"],"sourcesContent":["/* global wc_checkout_params */\njQuery( function( $ ) {\n    'use strict';\n\n    /**\n     * Object to handle Seamless payment forms.\n     */\n    window.wc_sb_checkout_seamless = {\n        xhr: false,\n\n        /**\n         * Initialize e handlers and UI state.\n         */\n        init: function( form ) {\n            this.form         = form;\n            this.form_submit  = false;\n            this.js_url       = null;\n\n            $( this.form )\n                // We need to bind directly to the click (and not checkout_place_order_payex_checkout) to avoid popup blockers\n                // especially on mobile devices (like on Chrome for iOS) from blocking payex_checkout(payment_id, {}, 'open'); from opening a tab\n                //.on( 'click', '#place_order', this.onSubmit )\n\n                // WooCommerce lets us return a false on checkout_place_order_{gateway} to keep the form from submitting\n                //.on( 'submit checkout_place_order_payex_psp_cc' );\n        },\n\n        onSubmit: function( event ) {\n            if ( event.data.obj.form_submit ) {\n                return true;\n            }\n\n            if ( ! event.data.obj.validateForm() ) {\n                return false;\n            }\n\n            console.log( 'onSubmit' );\n\n            if ( event.data.obj.form.is( '.processing' ) ) {\n                return false;\n            }\n\n            // Verify the checkin\n            if ( window.hasOwnProperty( 'wc_sb_checkin' ) && window.wc_sb_checkin.isCheckinEnabled() ) {\n                if ( window.wc_sb_checkin.isCheckinRequired() && ! window.wc_sb_checkin.isCustomerIdentified() ) {\n                    event.data.obj.submit_error( '<div class=\"woocommerce-error\">' + WC_Gateway_Swedbank_Pay_Checkin.needs_checkin + '</div>' );\n                    return false;\n                }\n            }\n\n            console.log(this.js_url);\n            event.data.obj.waitForJsUrl();\n        },\n\n        /**\n         * Validate checkout fields on the checkout form\n         * @return {boolean}\n         */\n        validateForm: function () {\n            var $required_inputs,\n                validated = true;\n\n            // check to see if we need to validate shipping address\n            if ( $( '#ship-to-different-address-checkbox' ).is( ':checked' ) ) {\n                $required_inputs = $( '.woocommerce-billing-fields .validate-required, .woocommerce-shipping-fields .validate-required' ).find('input, select').not( $( '#account_password, #account_username' ) );\n            } else {\n                $required_inputs = $( '.woocommerce-billing-fields .validate-required' ).find('input, select').not( $( '#account_password, #account_username' ) );\n            }\n\n            if ( $required_inputs.length ) {\n                $required_inputs.each( function() {\n                    var $this = $( this ),\n                        $parent           = $this.closest( '.form-row' ),\n                        validate_required = $parent.is( '.validate-required' ),\n                        validate_email    = $parent.is( '.validate-email' );\n\n                    if ( validate_required ) {\n                        if ( 'checkbox' === $this.attr( 'type' ) && ! $this.is( ':checked' ) ) {\n                            validated = false;\n                        } else if ( $this.val() === '' ) {\n                            validated = false;\n                        }\n                    }\n\n                    if ( validate_email ) {\n                        if ( $this.val() ) {\n                            /* https://stackoverflow.com/questions/2855865/jquery-validate-e-mail-address-regex */\n                            var pattern = new RegExp(/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?$/i);\n                            if ( ! pattern.test( $this.val()  ) ) {\n                                validated = false;\n                            }\n                        }\n                    }\n                });\n            }\n\n            return validated;\n        },\n\n        /**\n         * Set Js url.\n         *\n         * @param url\n         */\n        setJsUrl: function ( url ) {\n            console.log( 'setJsUrl' );\n            console.log( url );\n            this.js_url = url;\n        },\n\n        /**\n         * Wait for JS url availability\n         */\n        waitForJsUrl: function () {\n            var self = this;\n            let interval = window.setInterval( function () {\n                if ( self.js_url ) {\n                    console.log( 'waitForJsUrl: ' + self.js_url )\n                    window.clearInterval( interval );\n                    self.initFrame( self.js_url );\n                }\n            }, 1000 );\n        },\n\n        /**\n         * Init frame.\n         *\n         * @param url\n         * @param callback\n         */\n        initFrame: function ( url, callback ) {\n            if ( typeof callback === 'undefined' ) {\n                callback = function () {};\n            }\n\n            // Load JS\n            var self = this;\n            this.loadJs( url, function () {\n                $.featherlight( '<div id=\"swedbank-pay-seamless\">&nbsp;</div>', {\n                    variant: 'featherlight-swedbank-seamless',\n                    persist: true,\n                    closeOnClick: false,\n                    closeOnEsc: false,\n                    afterOpen: function () {\n                        self.initPaymentMenu( 'swedbank-pay-seamless' );\n                    },\n                    afterClose: function () {\n                        self.form.removeClass( 'processing' ).unblock();\n                    }\n                } );\n\n                callback()\n            } );\n        },\n\n        /**\n         * Load JS\n         * @param js\n         * @param callback\n         */\n        loadJs: function ( js, callback ) {\n            // Creates a new script tag\n            let script = document.createElement( 'script' );\n\n            // Set script tag params\n            script.setAttribute( 'src', js );\n            script.setAttribute( 'type', 'text/javascript' );\n            script.setAttribute( 'async', '' );\n            script.addEventListener( 'load', function () {\n                callback();\n            }, false );\n\n            // Gets document head element\n            let oHead = document.getElementsByTagName( 'head' )[0];\n            if ( oHead ) {\n                // Add script tag to head\n                oHead.appendChild( script );\n            }\n\n            return script;\n        },\n\n        /**\n         * Submit Error\n         * @param error_message\n         */\n        submit_error: function( error_message ) {\n            $( '.woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message' ).remove();\n            this.form.prepend( '<div class=\"woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout\">' + error_message + '</div>' );\n            this.form.removeClass( 'processing' ).unblock();\n            this.form.find( '.input-text, select, input:checkbox' ).trigger( 'validate' ).blur();\n            this.scroll_to_notices();\n            $( document.body ).trigger( 'checkout_error' );\n        },\n\n        /**\n         * Scroll to notices\n         */\n        scroll_to_notices: function() {\n            let scrollElement = $( '.woocommerce-NoticeGroup-updateOrderReview, .woocommerce-NoticeGroup-checkout' );\n            if ( ! scrollElement.length ) {\n                scrollElement = $( '.form.checkout' );\n            }\n\n            $.scroll_to_notices( scrollElement );\n        },\n\n        checkPaymentUrl: function () {\n            if ( !! (new URLSearchParams(document.location.search)).get('payment_url') ) {\n                this.initFrame( this.payment_url, function () {\n                    console.log( 'Payment url has been loaded.' );\n                } );\n            }\n        }\n    }\n} );\n"],"mappings":"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"}