1( function( window, document, $ ) { 2 'use strict'; 3 4 var TMEPOJS; 5 var tcAPI; 6 var TMEPOMEASUREMENTJS; 7 8 function alterElementQty( elementQty, dataObject ) { 9 if ( TMEPOMEASUREMENTJS.wc_measurement_divide !== '1' && TMEPOMEASUREMENTJS.wc_measurement_qty_multiplier === '1' && dataObject.currentCart.find( '#_measurement_needed' ).length > 0 ) { 10 elementQty = dataObject.currentCart.find( '#_measurement_needed' ).val(); 11 } 12 13 return elementQty; 14 } 15 16 // document ready 17 $( function() { 18 TMEPOJS = window.TMEPOJS || null; 19 TMEPOMEASUREMENTJS = window.TMEPOMEASUREMENTJS || null; 20 tcAPI = $.tcAPI ? $.tcAPI() : null; 21 22 if ( ! TMEPOJS || ! tcAPI || ! TMEPOMEASUREMENTJS ) { 23 return; 24 } 25 26 $.epoAPI.addFilter( 'tcAlterElementQty', alterElementQty, 10, 2 ); 27 28 $( window ).on( 'tm-epo-init-end', function( event, eventData ) { 29 if ( event && eventData && eventData.variationForm ) { 30 eventData.variationForm.trigger( 'wc-measurement-price-calculator-update' ); 31 } 32 } ); 33 34 $( window ).on( 'epoEventHandlers', function( event, dataObject ) { 35 var get_price_excluding_tax = dataObject.get_price_excluding_tax; 36 var get_price_including_tax = dataObject.get_price_including_tax; 37 var cartContainer = dataObject.cartContainer; 38 var currentCart = dataObject.currentCart; 39 var totalsHolder = dataObject.totalsHolder; 40 var totalsHolderContainer = dataObject.totalsHolderContainer; 41 42 if ( event && dataObject && dataObject.epo ) { 43 // measurement price calculator compatibility 44 cartContainer 45 .find( '.total_price' ) 46 .off( 'wc-measurement-price-calculator-total-price-change.cpf' ) 47 .on( 'wc-measurement-price-calculator-total-price-change.cpf', function( e, d, v ) { 48 var force = totalsHolder.attr( 'data-taxable' ) && totalsHolder.attr( 'data-prices-include-tax' ) !== '1' && totalsHolder.attr( 'data-tax-display-mode' ) === 'incl'; 49 var force2 = totalsHolder.attr( 'data-taxable' ) && totalsHolder.attr( 'data-prices-include-tax' ) === '1' && totalsHolder.attr( 'data-tax-display-mode' ) !== 'incl'; 50 51 if ( force && ! force2 ) { 52 v = get_price_excluding_tax( v, totalsHolder, null, force ); 53 } else if ( ! force && force2 ) { 54 v = get_price_including_tax( v, totalsHolder, null, force2 ); 55 } 56 if ( TMEPOMEASUREMENTJS.wc_measurement_divide === '1' && totalsHolder.data( 'tm_for_cart' ).find( '#_measurement_needed' ).length > 0 ) { 57 v = v / totalsHolder.data( 'tm_for_cart' ).find( '#_measurement_needed' ).val(); 58 } 59 totalsHolderContainer.find( '.cpf-product-price' ).val( v ); 60 totalsHolder.data( 'price', v ); 61 totalsHolder.data( 'regular-price', v ); 62 currentCart.trigger( { 63 type: 'tm-epo-update' 64 } ); 65 } ); 66 67 cartContainer 68 .find( '.product_price' ) 69 .off( 'wc-measurement-price-calculator-product-price-change.cpf dwc-measurement-price-calculator-update.cpf' ) 70 .on( 'wc-measurement-price-calculator-product-price-change.cpf dwc-measurement-price-calculator-update.cpf', function( e, d, v ) { 71 var force = totalsHolder.attr( 'data-taxable' ) && totalsHolder.attr( 'data-prices-include-tax' ) !== '1' && totalsHolder.attr( 'data-tax-display-mode' ) === 'incl'; 72 var force2 = totalsHolder.attr( 'data-taxable' ) && totalsHolder.attr( 'data-prices-include-tax' ) === '1' && totalsHolder.attr( 'data-tax-display-mode' ) !== 'incl'; 73 74 if ( force && ! force2 ) { 75 v = get_price_excluding_tax( v, totalsHolder, null, force ); 76 } else if ( ! force && force2 ) { 77 v = get_price_including_tax( v, totalsHolder, null, force2 ); 78 } else { 79 v = parseFloat( v ); 80 } 81 if ( TMEPOMEASUREMENTJS.wc_measurement_divide === '1' && totalsHolder.data( 'tm_for_cart' ).find( '#_measurement_needed' ).length > 0 ) { 82 v = v / totalsHolder.data( 'tm_for_cart' ).find( '#_measurement_needed' ).val(); 83 } 84 totalsHolderContainer.find( '.cpf-product-price' ).val( v ); 85 totalsHolder.data( 'price', v ); 86 totalsHolder.data( 'regular-price', v ); 87 currentCart.trigger( { 88 type: 'tm-epo-update' 89 } ); 90 } ); 91
92 cartContainer.on( 'found_variation', function() { 93 $( 'form.cart' ) 94 .trigger( 'wc-measurement-price-calculator-update' ) 95 .trigger( 'wc-measurement-price-calculator-product-price-change' ); 96 } ); 97 98 if ( $( '.product_price, .total_price' ).length > 0 ) { 99 $( 'form.cart' ) 100 .trigger( 'wc-measurement-price-calculator-update' ) 101 .trigger( 'wc-measurement-price-calculator-product-price-change' ); 102 } 103 } 104 } ); 105 } ); 106}( window, document, window.jQuery ) );
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.