1window.dataLayer = window.dataLayer || []; 2window.plenigoDataLayerData = window.plenigoDataLayerData || []; 3 4window.plenigoWebAnalyticsLoad = { 5 dispatch: function (page) { 6 this.handleProgress(page); 7 }, 8 9 dispatchSso: function (page) { 10 this.handleProgressSso(page); 11 }, 12 13 handleProgress: function (page) { 14 15 console.log(page); 16 17 let pageName = (typeof page == 'object' ? page.data.page : page); 18 let pageAction = (typeof page == 'object' ? page.action : 'load'); 19 let step = 'checkout'; 20 21 if(pageAction == 'load') { 22 console.group('handleProgress'); 23 24 try { 25 if (pageName.match(/^.*RegisterForm$/i)) { 26 step = 'register'; 27 } else if (pageName.match(/^.*LoginForm$/i)) { 28 step = 'login'; 29 } else if (pageName.match(/^.*PasswordForgottenPasswordReset$/i)) { 30 step = 'password_forgotten_reset'; 31 } else if (pageName.match(/^.*PasswordForgottenVerificationCode$/i)) { 32 step = 'password_forgotten_verifcation_code'; 33 } else if (pageName.match(/^.*PasswordForgottenPasswordSet$/i)) { 34 step = 'password_forgotten_set'; 35 } else if (pageName.match(/^.*PasswordForgotten$/i)) { 36 step = 'password_forgotten'; 37 } else if (pageName.match(/^.*AddressForm$/i) || pageName.match(/^.*AddressesSelect$/i) || pageName.match(/^.*AddressesForm$/i)) { 38 step = 'address'; 39 } else if (pageName.match(/^.+PaypalSubmit$/i) || pageName.match(/^.+Payment.+Submit$/i) || pageName.match(/^.+Payment.+Summary$/i) || pageName.match(/^.+Payment.+Success$/i)) { 40 step = 'summary'; 41 } else if (pageName.match(/^.+Payment.+Form$/i)) { 42 step = 'payment'; 43 } else if (pageName == 'checkout' || pageName == 'wallet' || pageName == 'thankyou' || pageName == 'thankyou_again' || pageName == 'error') { 44 step = pageName; 45 } else { 46 step = 'checkout_' + pageName; 47 } 48 49 console.info('Step', step); 50 51 // collect data dataLayer 52 let dataLayerData = { 53 event: 'checkoutStep', 54 checkoutStep: step, 55 checkoutPageName: pageName, 56 checkoutData: window.plenigoDataLayerData 57 }; 58 59 // add custom data 60 if(typeof page == 'object' && page.data && page.data.products && page.data.products.length && page.data.products[0] && page.data.products[0].id){ 61 dataLayerData.checkoutData.offerId = page.data.products[0].id; 62 } 63 64 console.info('dataLayer', dataLayerData); 65 66 // dataLayer push 67 window.dataLayer.push(dataLayerData); 68 69 // collect data custom event 70 let eventData = { 71 step: step, 72 checkoutData: dataLayerData.checkoutData, 73 plenigoData: (typeof page == 'object' ? page.data : []) 74 }; 75 76 // console.info('plenigoCheckoutStep', eventData); 77 78 // custom event 79 let event = new CustomEvent('plenigoCheckoutStep', {detail : eventData}); 80 document.dispatchEvent(event); 81 82 } catch (e) { 83 console.log(e); 84 console.warn("error"); 85 } 86 87 console.groupEnd(); 88 } 89 }, 90 91 handleProgressSso: function (page) { 92 93 console.log(page); 94 95 let pageName = (typeof page == 'object' ? page.data.page : page); 96 let pageAction = (typeof page == 'object' ? page.action : 'load'); 97 let step = 'sso'; 98 99 if(pageAction == 'load') { 100 console.group('handleProgressSso'); 101 102 try { 103 if (pageName.match(/^.*RegisterForm$/i)) { 104 step = 'register'; 105 } else if (pageName.match(/^.*LoginForm$/i)) { 106 step = 'login'; 107 } else if (pageName.match(/^.*PasswordForgottenPasswordReset$/i)) { 108 step = 'password_forgotten_reset'; 109 } else if (pageName.match(/^.*PasswordForgottenVerificationCode$/i)) { 110 step = 'password_forgotten_verifcation_code'; 111 } else if (pageName.match(/^.*PasswordForgottenPasswordSet$/i)) { 112 step = 'password_forgotten_set'; 113 } else if (pageName.match(/^.*PasswordForgotten$/i)) { 114 step = 'password_forgotten'; 115 } else if (pageName == 'error') { 116 step = pageName; 117 } else { 118 step = 'sso_' + pageName; 119 } 120 121 console.info('Step', step); 122 123 // collect data dataLayer 124 let dataLayerData = { 125 event: 'ssoStep', 126 ssoStep: step, 127 ssoPageName: pageName, 128 ssoData: window.plenigoDataLayerData 129 }; 130 131 console.info('dataLayer', dataLayerData); 132 133 // dataLayer push 134 window.dataLayer.push(dataLayerData); 135 136 // collect data custom event 137 let eventData = { 138 step: step, 139 ssoData: dataLayerData.ssoData, 140 plenigoData: (typeof page == 'object' ? page.data : []) 141 }; 142 143 // console.info('plenigoSsoStep', eventData); 144 145 // custom event 146 let event = new CustomEvent('plenigoSsoStep', {detail : eventData}); 147 document.dispatchEvent(event); 148 149 } catch (e) { 150 console.log(e); 151 console.warn("error"); 152 } 153 154 console.groupEnd(); 155 } 156 } 157};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.