1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 5<link href="/1723204578/bootflat/css/fontawesome-pro-6.5.2-web/css/all.min.css" rel="stylesheet" type="text/css"> 6<link href="/1723204578/bootflat/css/fontawesome-pro-6.5.2-web/css/v4-shims.min.css" rel="stylesheet" type="text/css"> 7 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 8 <title></title> 9 10 <meta name="description" content=""> 11 12 <link rel="canonical" href="https://www.thesquarequilter.com/module/product.htm"> 13 14 15 <link rel="dns-prefetch" href="oss.maxcdn.com"> 16 <link rel="dns-prefetch" href="ajax.googleapis.com"> 17 18 <!-- BOOTSTRAP START !! --> 19 <meta charset="utf-8"> 20 <meta http-equiv="X-UA-Compatible" content="IE=edge">
20<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"7339834",accountID:"732355",trustKey:"732355",licenseKey:"d60c52fc57",applicationID:"7339757",browserID:"7339834"};;/*! For license information please see nr-loader-rum-1.322.0.min.js.LICENSE.txt */ 21(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),a=0===Object.keys(r).length?e:r;for(let s in a)if(void 0!==e[s])try{if(null===e[s]){r[s]=null;continue}Array.isArray(e[s])&&Array.isArray(t[s])?r[s]=Array.from(new Set([...e[s],...t[s]])):e[s]instanceof Map||e[s]instanceof Set||e[s]instanceof Date||e[s]instanceof RegExp?r[s]=e[s]:"object"==typeof e[s]&&null!==t[s]&&"object"==typeof t[s]?r[s]=i(e[s],t[s]):r[s]=e[s]}catch(e){r[s]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>s});var n=r(384),i=r(8122);const a={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function s(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,a)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["xv",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,a="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),s=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===s?.document?.visibilityState),c=""+s?.location,u=/iPad|iPhone|iPod/.test(s.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=((()=>{const e=s.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)());r.d(t,["OF",0,u,"RI",0,i,"WN",0,l,"bv",0,a,"gm",0,s,"m",0,c,"mw",0,o,"sb",0,d,"zk",0,()=>{const e=s?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<s.performance.now())return e}])},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>u,x3:()=>c});var n=r(3241),i=r(3606),a=r(860),s=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:a.P3[t]||0};e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&d(e))}function u(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,d(e)}}function d(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const a=e.ee,o=i.i.handlers;if(a&&!a.aborted&&a.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=a.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}
21).forEach(t=>{t[0]?.on&&t[0].context()instanceof s.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}a.isolatedBacklog||delete o[t],a.backlog[t]=null,a.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],a=e[2];n.apply(i,a)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),a=r(2646),s=r(5607);const o="nr@context:".concat(s.W),c=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&u.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,a){!1!==a&&(a=!0);if(c.aborted&&!i)return;t&&a&&t.emit(e,r,n);var o=g(n);m(e).forEach(e=>{e.apply(o,r)});var u=v()[s[e]];u&&u.push([f,e,r,o]);return o},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{s[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,o,()=>new a.y(o)):new a.y(o)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,a){a?(a.buffer([e],i),a.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>a});var n=r(9908);a.on=s;var i=a.handlers={};function a(e,t,r,a){s(a||n.d,i,e,t,r)}function s(e,t,r,i,a){a||(a="feature"),e||(e=n.d);var s=t[a]=t[a]||{};(s[r]=s[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function a(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>a,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,a=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const s=[];for(var o=0;o<e;o++)s.push(i(r,a++).toString(16));return s.join("")}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>a});var n=r(944);const i=new Map;function a(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),a=t.includes("nrWrapper");return r||a||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},5289(e,t,r){"use strict";r.d(t,{GG:()=>s,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function a(){return"undefined"==typeof document||"complete"===document.readyState}function s(e,t){if(a())return e();const r=(0,i.J)(e),s=setInterval(()=>
21{a()&&(clearInterval(s),r())},500);(0,n.sp)("load",r,t)}function o(e){if(a())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(a())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>d,dV:()=>u,pV:()=>l});var n=r(6154),i=r(1863),a=r(944),s=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function u(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,s.i)(...Object.values(e.o))),e}function d(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,a.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),u(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>a,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function a(e,t,r){(0,n.sp)("pagehide",e,t,r)}},9300(e,t,r){"use strict";r(860).K7.ajax;r.d(t,["mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>a});var n=r(9566),i=r(1741);class a extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>a});var n=r(944),i=r(4261);class a{#e(e,...t){if(this[e]!==a.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>d});var n=r(3241),i=r(9908),a=r(1863),s=r(944),o=r(3969),c=r(8362),u=r(860);function d(e,t,r,a){const d=a||r;!d||d[e]&&d[e]!==c.d.prototype[e]||(d[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,u.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,s.R)(23,e)}})}function l(e,t,r,n,s){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(s||null===r)&&(0,i.p)("api-"+n,[(0,a.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",a="browser/blobs",s="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},u={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:a,[o.sessionReplay]:a,[o.logging]:s,[o.genericEvents]:"ins"};r.d(t,["$J",0,u,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,s,"df",0,a,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],a=t[n++];r.o(e,i)?0===a&&n++:0===a?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:a})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>"nr-rum-1.322.0.min.js",r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,a,s)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==a){const e=document.getElementsByTagName("script");for(var u=0;u<e.length;u++){const r=e[u];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+a){o=r;break}}}if(!o){c=!0;var d={296:"sha512-/59P7qAoMYQDJAZerTRPChdYcdrlcoEAw2TwA1wz6Y0/XLmt3sblL
21I5JCXAuxG0YxsW7iqJzgrcO7NJWO58EfQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+a),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),d[s]&&(o.integrity=d[s])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={374:0,840:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const a=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=a);const s=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(s,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,a,s]=n;var o,c,u=0;if(i.some(t=>0!==e[t])){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(s)s(r)}for(t&&t(n);u<i.length;u++)c=i[u],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),a=r(1741);var s=r(2555),o=r(981);t.K7.genericEvents,o.R.PA,o.R.UA,o.R.BP;const c={RESOURCES:"experimental.resources",REGISTER:"register"};var u=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var l=r(2614),f=r(944),g=r(8122);const p="[data-nr-mask]",m=e=>(0,g.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:u.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(c.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(c.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,f.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(c.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:l.wk,inactiveMs:l.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(p):""===t||null===t?e.mask_selector=p:(0,f.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,f.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,f.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var h=r(6154),v=r(9324);let b=0;const y={buildEnv:"PROD",distMethod:"CDN",version:v.xv,originTime:h.WN},_={consented:!1},w={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||_.consented},set consented(e){_.consented=e}
21,customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++b},listeningForIframeMessages:!1},R="BA";var A=r(7836),x=r(3241);const E={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908);const k="newrelic-iframe-";function T(e,t={},n,o){let{init:c,info:u,loader_config:d,runtime:l={},exposed:f=!0}=t;if(!u){const e=(0,i.pV)();c=e.init,u=e.info,d=e.loader_config}var p;e.init=m(c||{}),e.loader_config=(p=d||{},(0,g.a)(p,E)),u.jsAttributes??={},h.bv&&(u.jsAttributes.isWorker=!0),e.info=(0,s.D)(u);const v=e.init;e.runtime??=(e=>{const t=(0,g.a)(e,w),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:R,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(a.W.prototype).forEach(r=>{const n=a.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=A.ee.get(e.agentIdentifier),e.exposed=f,(0,x.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&h.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(k)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var j=r(1863),P=r(4261),N=r(1738);
21var O=r(1687),M=r(4234),I=r(5289),D=r(7767);function V(e){return!!(0,i.dV)().o.MO&&(0,D.V)(e)&&!0===e?.session_trace.enabled}var W=r(6389),B=r(7699);const C=new WeakSet,K=new WeakMap;class U extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,W.J)(()=>{(0,O.Ak)(e,this.featureName),t()}))}):(0,O.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,s.f)(e.info))return(0,f.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(K.has(e))return K.get(e);const i=(async()=>{if((0,D.V)(e.init))try{const{setupAgentSession:t}=await r.e(296).then(r.bind(r,1768));t(e)}catch(e){(0,f.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(B.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await Promise.resolve().then(function(){const e=new Error("Cannot find module '../../loaders/configure/iframe-message-handler'");throw e.code="MODULE_NOT_FOUND",e});t(e)}catch(e){(0,f.R)(23,e)}const[{Connector:i},{Harvester:a}]=await Promise.all([r.e(296).then(r.bind(r,6589)),r.e(296).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new a(e);const s=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(s.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();K.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,f.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,O.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,f.R)(34,e),this.abortHandler?.(),(0,O.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};h.RI?(0,I.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return V(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!C.has(e)&&(C.add(e),!(0,s.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}T(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var L=r(6630);class F extends U{static featureName=L.T;constructor(e){var t;super(e,L.T),this.setupInspectionEvents(),t=e,(0,N.Y)(P.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+P.Fw,[(0,j.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(296).then(r.bind(r,908)):r.e(296).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,x.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,I.sB)(t=>{e(t,"DOMContentLoaded")}),(0,I.GG)(t=>{e(t,"load")}),(0,I.Qr)(t=>{e(t,"navigate")}),this.ee.on(l.tS.UPDATE,(e,t)=>{(0,x.W)({type:"lifecycle",name:"session",data:t})})}}class G extends e.d{constructor(e){var t;(super(),h.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(F),T(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(P.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,P.cD,n);(0,f.R)(40,typeof r)}else(0,f.R)(39,typeof e)},t),function(e){(0,N.Y)(P.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,f.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,P.Dl,!0)},e)}(this),function(e){(0,N.Y)(P.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,P.nb,!1);(0,f.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(P.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+P.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,f.R)(65,typeof t)},e)}(this),this.run()):(0,f.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};
21return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,f.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,f.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var H=r(2843),z=r(782);class Y extends U{static featureName=z.T;constructor(e){super(e,z.T),h.RI&&((0,H.u)(()=>(0,S.p)("docHidden",[(0,j.t)()],void 0,z.T,this.ee),!0),(0,H.G)(()=>(0,S.p)("winPagehide",[(0,j.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(296).then(r.bind(r,9981))))}}var Z=r(3969);class q extends U{static featureName=Z.TZ;constructor(e){super(e,Z.TZ),this.importAggregator(e,()=>r.e(296).then(r.bind(r,9623)))}}new G({features:[F,Y,q],loaderType:"lite"})})()})();</script>
21 22 <meta name="viewport" content="width=device-width, initial-scale=1"> 23 24 <!-- BEGIN FRONTEND TRACKJS -->
24<script attr="nomove" src="https://cdn.trackjs.com/agent/v3/latest/t.js"></script>
vendor: 1 bytes, line 24
24
25<script attr="nomove"> 26 TrackJS.install({ 27 token: "a7347001564f4c9cb840b3caf60af7ea", 28 application: "frontend-production" 29 // for more configuration options, see https://docs.trackjs.com 30 }); 31</script>
31<!-- END FRONTEND TRACKJS --> 32 33 <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> 34 <!--[if lt IE 9]> 35
35<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js" attr="nomove"></script>
35 36
36<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js" attr="nomove"></script>
36 37 <![endif]--> 38 <!-- BOOTSTRAP END --> 39 40 41
41<script type="text/javascript" src="https://images.rainpos.com/jquery.tools.min.js" attr="nomove"></script>
41 42 43
43<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" attr="nomove"></script>
43 44 45 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"> 46 47 48 49 50 <style> 51 * {box-sizing: border-box;}*:before, *:after {box-sizing: border-box;}a {text-decoration: none;}body {margin: 0;margin-top: 0px;line-height: 1.42857;}h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {font-weight: 500;line-height: 1.1;margin-top: 20px;margin-bottom: 10px;}input, textarea {line-height: inherit;}td, th {padding: 0;}.collapse {display: none;visibility: hidden;}.container {padding-right: 15px;padding-left: 15px;margin-right: auto;margin-left: auto;}@media (min-width: 768px) {.container {width: 750px;}}@media (min-width: 992px) {.container {width: 970px;}}@media (min-width: 1200px) {.container {width: 1170px;}}.container-fluid {padding-left: 15px;padding-right: 15px;}img.img-responsive { max-width: 100%; height: auto; }.dropdown {}.dropdown-menu {display:none;}.dropdown-toggle {}.nav {padding-left: 0;margin-bottom: 0;list-style: none;}.nav > li > a {position: relative;display: block;padding: 10px 15px;}.navbar {position: relative;min-height: 50px;margin-bottom: 20px;}.navbar-collapse {padding-right: 15px;padding-left: 15px;overflow-x: visible;-webkit-overflow-scrolling: touch;border-top: 1px solid transparent;-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);}.navbar-collapse.in {overflow-y: auto;}.navbar-default {}.navbar-header {}.navbar-nav {margin: 7.5px -15px;}@media (min-width: 768px) {.navbar-nav > li {float: left;}.navbar-nav > li > a {padding-top: 10px;padding-bottom: 10px;line-height: 20px;}.navbar-toggle {display: none;}.navbar-collapse {width: auto;border-top: 0;-webkit-box-shadow: none;box-shadow: none;}.navbar-collapse.collapse {display: block !important;height: auto !important;padding-bottom: 0;overflow: visible !important;visibility: visible !important;}.navbar-collapse.in {overflow-y: visible;}.navbar-nav {float: left;margin: 0;}.navbar-nav > li > a {padding-top: 15px;padding-bottom: 15px;}.navbar-header {float: left;}#mainNav ul.nav li.dropdown:hover > ul.dropdown-menu {display: block;}.navbar-collapse, nav > .container-fluid {padding-left:0px !important;padding-right:0px !important;}}@media (max-width: 767px) {.navbar-nav .open .dropdown-menu {position: static;float: none;width: auto;margin-top: 0;background-color: transparent;border: 0;-webkit-box-shadow: none;box-shadow: none;}}.row {margin-left: -15px;margin-right: -15px;}#adminNav nav {margin-left: -15px;}.carousel.fade {opacity: 1;}.carousel.fade .item {-moz-transition: opacity ease-in-out .7s;-o-transition: opacity ease-in-out .7s;-webkit-transition: opacity ease-in-out .7s;transition: opacity ease-in-out .7s;left: 0 !important;opacity: 0;top:0;position:absolute;width: 100%;display:block !important;z-index:1;}.carousel.fade .item:first-child {top:auto;position:relative;}.carousel.fade .item.active {opacity: 1;-moz-transition: opacity ease-in-out .7s;-o-transition: opacity ease-in-out .7s;-webkit-transition: opacity ease-in-out .7s;transition: opacity ease-in-out .7s;z-index:2;}@media (min-width: 768px) {.menubg nav {float: left !important;}.menubg .dropdown-menu {margin-left: 35px !important;border: 1px solid #EC796B !important;}.menubg {min-height: px;}.mainMenuItem {padding-left: 35px !important;padding-right: 5px !important;}}#mainNav.navbar-default{background-color:transparent !important;border:0px !important;}#mainNav.navbar-default .navbar-nav > .open > a,#mainNav.navbar-default .navbar-nav > .open > a:hover,#mainNav.navbar-default .navbar-nav > .open > a:focus{background-color:transparent !important;border:0px !important;}#mainNav .dropdown-menu,#mainNav.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,#mainNav.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus{background-color:#EC796B !important;border:0px !important;}#mainNav.navbar-default .navbar-nav > li > a,#mainNav.navbar-default .navbar-nav .open .dropdown-menu > li > a,#mainNav.navbar-default .navbar-nav > li > a:hover,#mainNav.navbar-default .navbar-nav > li > a:focus,#mainNav.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,#mainNav.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus{color:#fff !important;}#mainNav.navbar-default .navbar-nav > li > a:hover,#mainNav.navbar-default .navbar-nav > .open > a,#mainNav.navbar-default .navbar-nav > .open > a:hover,#mainNav.navbar-default .navbar-nav > .open > a:focus{color:#fff !important;}#mainNav .dropdown-menu > li > a{color:#fff !important;
51background-color:#EC796B !important;border:0px !important;}#mainNav .dropdown-menu > li > a:hover,#mainNav .dropdown-menu > li > a:focus{color:#fff !important;background-color:#ef8d82 !important;}.menubg{background-color:#064b84;z-index:3 !important;}.menubg .navbar-nav{padding-top:1;}.menubg .navbar{min-height:30px !important;margin-bottom:0px !important;}#main-website-content .btn-add-to-cart{color:#f6f6f6 !important;padding-left:60px !important;padding-right:60px !important;transition-duration:0.2s;background:#5bc050 !important;}#main-website-content .btn-add-to-cart:hover{color:#fff !important;transition-duration:0.2s;background:#4BB340 !important;}.btn-add-to-waitlist{color:#f6f6f6 !important;padding-left:60px !important;padding-right:60px !important;transition-duration:0.2s;background:#999999 !important;}.btn-add-to-waitlist:hover{color:#fff !important;transition-duration:0.2s;background:#777 !important;}#main-website-content .btn-add-to-improved-waitlist{color:#f6f6f6 !important;padding-left:20px !important;padding-right:20px !important;transition-duration:0.2s;background:#ff8c00 !important;}.menubg .nav > li{margin-bottom:0px !important;}.menubg > .container{padding:0px !important;}.mainMenuItem{font-size:20px !important;font-family:Arial !important;font-weight:normal !important;color:#fff !important;}html{font-size:1em !important;}body{font-family:Arial, sans-serif !important;color:#474747 !important;font-size:inherit !important;margin:0px;padding:0px;margin-top:0px;height:100%;}.homePageBg{background: url(https://media.rainpos.com/4358/page_background_image.jpg) repeat-y center 0px;}.secondaryPageBg{background: url(https://media.rainpos.com/4358/page_background_image.jpg) repeat-y center 0px;}FORM{display:inline !important;}H1:not(.ignore-site-layout-styles h1), H2:not(.ignore-site-layout-styles h2), H3:not(.ignore-site-layout-styles h3), H4:not(.ignore-site-layout-styles h4), H5:not(.ignore-site-layout-styles h5){color:#1243c6 !important;font-family:Dancing Script, sans-serif !important;font-size:1.4em !important;}a:not(.ignore-site-layout-styles a), a:visited:not(.ignore-site-layout-styles a){color:#1243c6 !important;font-weight:normal !important;}a:hover:not(.ignore-site-layout-styles a){text-decoration:none !important;color:#ffdcd8 !important;}A:active{outline:none !important;}:focus{-moz-outline-style:none !important;}LI{margin-bottom:8px !important;}.pageDiv{height:auto !important; height:100%;min-height:100%;margin:0 auto;}.secondaryPageDiv{height:auto !important; height:100%;min-height:100%;margin:0 auto;}.bgFooter{background:#E1E1E1 ;}
51.footer, .footer:hover, .footer:visited{color:# !important;font-size:1em !important;}.main1ColumnWidth h1, .main1ColumnWidth h2, .main1ColumnWidth h3{color:#1243c6;font-family:Dancing Script, sans-serif;font-size:1.4em;}.main1ColumnWidth a{color:#1243c6;font-weight:normal;}.main1ColumnWidth a:hover{text-decoration:none;color:#ffdcd8;}.secondaryMain1ColumnWidth h1, .secondaryMain1ColumnWidth h2, .secondaryMain1ColumnWidth h3{color:#1243c6;font-family:Dancing Script, sans-serif;font-size:1.4em;}.secondaryMain1ColumnWidth a{color:#1243c6;font-weight:normal;}.secondaryMain1ColumnWidth a:hover{text-decoration:none;}.paddingSmall{padding:5px;}.paddingMedium{padding:10px;}.paddingLarge{padding:20px;}.paddingXLarge{padding:30px;padding-top:20px;} .btnViewCart { cursor: pointer; color: rgb(255, 255, 255); font-size: 16px; padding: 5px; text-shadow: 0px -1px 0px rgba(30, 30, 30, 0.8); -webkit-border-radius: 30px; -moz-border-radius: 30px; border-radius: 30px; background: rgb(40, 40, 40); background: -moz-linear-gradient(90deg, rgb(40, 40, 40) 30%, rgb(84, 84, 84) 70%); background: -webkit-linear-gradient(90deg, rgb(40, 40, 40) 30%, rgb(84, 84, 84) 70%); background: -o-linear-gradient(90deg, rgb(40, 40, 40) 30%, rgb(84, 84, 84) 70%); background: -ms-linear-gradient(90deg, rgb(40, 40, 40) 30%, rgb(84, 84, 84) 70%); background: linear-gradient(0deg, rgb(40, 40, 40) 30%, rgb(84, 84, 84) 70%); -webkit-box-shadow: 0px 2px 1px rgba(130, 130, 130, 0.75); -moz-box-shadow: 0px 2px 1px rgba(130, 130, 130, 0.75); box-shadow: 0px 2px 1px rgba(130, 130, 130, 0.75); border-bottom: 2px solid #000; border-left: 2px solid #333; border-right: 2px solid #333; border-top: 2px solid #333; }@media (max-width: 767px) {.navbar-default {background-color: #EC796B;}.navbar-default .navbar-collapse, .navbar-default .navbar-form {border: 0px;}}.dlgWaitList > .ui-dialog-titlebar {background: #f2f2f2 !important;font-size: 16px;font-family: "Arial";color: #515151;text-transform: uppercase;font-weight: 700;border: 0px;}.dlgWaitList > .ui-dialog-titlebar > .ui-dialog-titlebar-close {background: #f2f2f2 !important;border: 0px;}.dlgWaitList #overlayWaitListForm {padding: 0px;}.dlgWaitList .form-container {margin: 25px;}.dlgWaitList .form-input {-webkit-border-radius: 3px;border-radius: 3px;width: 100%;font-size: 14px;font-family: "Arial";border: 1px solid #d7d8dd;padding: 10px;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}.dlgWaitList .form-title {font-size: 14px;font-family: "Arial";color: #9c9c9c;margin-bottom: 5px;}.dlgWaitList .product-name {font-size: 14px;font-family: "Arial";color: #515151;font-weight: 700;}.dlgWaitList .glyphicon .glyphicon-remove {font-size: 16px;}.dlgWaitList .form-row {margin-bottom: 25px;}.dlgWaitList .wait-list-btn {color: #fff;padding: 10px;font-family: "Arial";text-align: center;display: block;width: 100%;background-color: #5bc050;border: none;-webkit-border-radius: 3px;border-radius: 3px;}.dlgWaitList .wait-list-btn:hover {background-color: #4BB340;}.dlgWaitList input:focus {color:#515151;}.component-header { position: relative;}.editor-controls-new { z-index: 1000; position: absolute;}.body-content, .header-content { display: grid; grid-template-columns: repeat(12, 1fr); width: 100%;}[data-column-id="body"], [data-column-id="header"], [data-column-id="footer"], .header-content >div, .body-content >div, .bgFooter > div { grid-column: span 12; min-width: 0; width: 100%;}/* Mobile Grid Breakpoints */@media (max-width: 767px) { div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-half, div.span-7, div.span-8, div.span-three-fourths, div.span-10, div.span-11 { grid-column: span 12; } div.span-full { grid-column: span 12; }}@media (min-width: 768px) and (max-width: 991px) { div.span-1 { grid-column: span 3; } div.span-2 { grid-column: span 4; } div.span-3 { grid-column: span 6; } div.span-4 { grid-column: span 6; } div.span-5 { grid-column: span 8; } div.span-half, div.span-6 { grid-column: span 12; } div.span-7, div.span-8, div.span-three-fourths, div.span-10, div.span-11, div.span-full { grid-column: span 12; }}@media (min-width: 992px) { div.span-1 { grid-column: span 1; } div.span-2 { grid-column: span 2; } div.span-fourth { grid-column: span 3; } div.span-third { grid-column: span 4; } div.span-5 { grid-column: span 5; } div.span-half { grid-column: span 6; } div.span-7 { grid-column: span 7; } div.span-two-thirds { grid-column: span 8; } div.span-three-fourths { grid-column: span 9; } div.span-10 { grid-column: span 10; } div.span-11 { grid-column: span 11; } div.span-full { grid-column: span 12; }}.vue-component-row.container-fluid { width: 100%;}.grid-item.span-1 .container,.grid-item.span-2 .container,.grid-item.span-fourth .container,.grid-item.span-third .container,.grid-item.span-5 .container,.grid-item.span-half .container,.grid-item.span-7 .container,.grid-item.span-two-thirds .container,.grid-item.span-three-fourths .container,.grid-item.span-10 .container,.grid-item.span-11 .container,.grid-item.span-full .container { width: 100%;}@media (min-width: 768px) { div[data-column-id].new.container { width: 750px; padding-right: 0; padding-left: 0; }}@media (min-width: 992px) { div[data-column-id].new.container { width: 970px; padding-right: 0; padding-left: 0; }}@media (min-width: 1200px) { div[data-column-id].new.container { width: 1170px; padding-right: 0; padding-left: 0; }}#waitlist-wrapper .product-add-waitlist { 52 border-radius: 4px!important; 53 border: 1px solid #ddd!important; 54 background: #FC971F!important; 55 display: block!important; 56 padding: 16px!important; 57 font-family: Roboto, sans-serif; 58 font-size: 14px!important; 59 font-style: normal; 60 font-weight: 400; 61 line-height: normal; 62 letter-spacing: 0.28px; 63 height: 50px!important; 64 color: #fff!important; 65} 66 67#waitlist-wrapper .product-add-waitlist:hover { 68 border-radius: 4px!important; 69 border: 1px solid #ddd!important; 70 background: #FC971F!important; 71 cursor: pointer; 72 text-decoration: underline!important; 73} 74 75 76 </style> 77 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 103 bytes, lines 77-86
77 78 79 80 81 82 83 84 85 86 <script attr="nomove" async src="https://www.googletagmanager.com/gtag/js?id=
86G-ZX65BVQPQ9
vendor: 11 bytes, line 86
86"></script>
86<script attr="nomove"> 87
vendor: 133 bytes, lines 87-90
87window.dataLayer = window.dataLayer || []; 88 function gtag(){dataLayer.push(arguments);} 89 gtag('js', new Date()); 90 gtag('config', '
90G-ZX65BVQPQ9
vendor: 4 bytes, line 90
90');
91</script>
91 92 93 94 <style> 95 /* Hide Header */ 96.hideHeader h1, .hideHeader h2, .hideHeader h3, .hideHeader h4, .hideHeader h5 { 97 display: none !important; 98} 99 100/* Fixed Header for Gift Card */ 101.fixedHeader h1, .fixedHeader h2, .fixedHeader h3, .fixedHeader h4, .fixedhHeader h5 { 102 font-family: Arial, sans-serif !important; 103 font-weight: bold !important; 104 font-size: inherit !important; 105 color: #000000 !important; 106} 107.fixedHeader > div > div > div > div input, .fixedHeader > div > div > div > div button { 108 width: unset !important; 109} 110 111/* headings */ 112h1,h2,h3,h4,h5,h6 { 113 font-family: 'Dancing Script', serif !important; 114 font-weight: 400 !important; 115 color: #1243c6 !important; 116} 117h1 { font-size: 2.074em !important; } 118h2 { font-size: 1.728em !important; } 119h3 { font-size: 1.44em !important; } 120h4 { font-size: 1.2em !important; } 121h5 { font-size: 1em !important; } 122h6, small, .font_small { 123 font-size: 0.8em !important; 124} 125 126/* NAV */ 127@media (min-width: 1260px) { 128 .menubg { 129 margin: 0 auto; 130 max-width: 1220px; 131 position: relative; 132 } 133 .menubg:before, 134 .menubg:after { 135 position: absolute; 136 content: ''; 137 width: 0; 138 height: 0; 139 top: 0; 140 display: block; 141 border: 20px solid #064b84; 142 } 143 .menubg:before { 144 left: -24px; 145 border-right-width: 1.6em; 146 border-width: 1.6em; 147 border-left-color: transparent; 148 } 149 .menubg:after { 150 right: -24px; 151 border-left-width: 1.6em; 152 border-width: 1.6em; 153 border-right-color: transparent; 154 } 155 .menubg .navbar-nav { 156 height: 50px; 157 } 158} 159@media (min-width: 768px) { 160 .navbar-nav > li > a { 161 padding-top: 10px; 162 padding-bottom: 10px; 163 } 164} 165 166/* MOBILE NAV HOVER COLOR */ 167.navbar-default .navbar-toggle:hover, 168.navbar-default .navbar-toggle:focus { 169 background-color: transparent 170} 171/* MOBILE NAV BUTTON, TEXT Color */ 172#mainNav.navbar-default .navbar-toggle { 173 border-color: #fff; 174 color: #fff 175} 176 177/* View cart */ 178ul.socialStyle5 li.ribbon-main { 179 padding: 2px; 180} 181.socialStyle5 li.ribbon-main a { 182 position: relative; 183 background: #EC796B; 184 display: block; 185 padding: 7px 21px 7px 7px; 186 color: #fff !important; 187 text-transform: capitalize; 188 transition: .4s ease all; 189 text-decoration: none !important; 190} 191.socialStyle5 li.ribbon-main a:before, 192.socialStyle5 li.ribbon-main a:after { 193 position: absolute; 194 content: ''; 195 top: 0; 196} 197.socialStyle5 li.ribbon-main a:before { 198 right: 0; 199 height: 0; 200 width: 0; 201 border-bottom: 20px solid transparent; 202 border-top: 20px solid transparent; 203 border-right: 10px solid #F7F7F7; 204} 205.socialStyle5 li.ribbon-main a:after { 206 height: 100%; 207 width: 0; 208 bottom: 0; 209 left: 3px; 210 border-left: 1px dashed #fff; 211} 212ul.socialStyle5 li.ribbon-main a:hover { 213 background: #666; 214} 215.socialStyle5.spaceFix li.ribbon-main a > span { 216 margin-left: 4px; 217} 218/* social */ 219.socialStyle5 li.social-main a { 220 font-size: 1.25em; 221 color: #EC796B !important; 222} 223.socialStyle5 li.social-main a:hover { 224 color: #666 !important; 225} 226.header-main .glyphicon-search { 227 color: #ec796b; 228} 229
230/* SLIDE CSS 231.slide-home .carousel { 232 border-image-slice: 18 22 18 22; 233 border-image-width: 18px 22px 18px 22px; 234 border-image-outset: 0px 0px 0px 0px; 235 border-image-repeat: repeat repeat; 236 border-image-source: url("https://media.rainpos.com/4358/slide_bg.jpg"); 237 padding: 18px 22px; 238} 239.slide-home .carousel-control { 240 display: none; 241} 242*/ 243 244/* SLIDESHOW */ 245.home-slide .carousel { 246 border: 8px solid #fff; 247 box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.75); 248 -webkit- box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.75); 249} 250 251.ns1 .btnNewsletterSignup { 252 background: #EC796B; 253 border: 1px solid #EC796B; 254 color: #fff; 255} 256 257/* FEATURED AREA */ 258.featuredCategoryContainer, 259.featuredProductContainer { 260 border: none !important; 261 border-radius: 0px !important; 262 background: none !important; 263} 264.featuredCategoryTitle, 265.featuredProductTitle { 266 background: #ec796b !important; 267 border: 1px dotted #fff !important; 268 outline: 2px solid #ec796b !important; 269 margin-top: 7px; 270} 271.featuredCategoryTitle { 272 color: #fff !important; 273} 274.featuredProductTitle { 275 color: #fff !important; 276} 277.featuredCategoryImgContainer, 278.featuredProductImgContainer { 279 background: #fff; 280} 281 282/* footer */ 283.footerLayout1 ul li a:hover { 284 color: #474747 !important; 285} 286 287/* SOCIAL CSS */ 288.round-social1 li { 289 display: inline-block; 290 margin: 3px; 291} 292.round-social1 li a { 293 border-radius: 50%; 294 background-color: #5e7b4b ; 295 width: 35px; 296 height: 35px; 297 text-align: center; 298 display: block; 299 line-height: 35px; 300 -webkit-transition: all .2s ease-in-out; 301 -moz-transition: all .2s ease-in-out; 302 -o-transition: all .2s ease-in-out; 303 transition: all .2s ease-in-out; 304} 305.round-social1 li a:hover { 306 background-color: #5e7b4b ; 307} 308.round-social1 { 309 margin: 5px 0px; 310} 311 312/*OVER WRITE THE FOOTER LINKS COLOR*/ 313div.container.footer a:not(.ignore-site-layout-styles a){ 314color: #1243c6 !important; 315} 316div.container.footer a:not(.ignore-site-layout-styles a):hover{ 317color: #1243c6 !important; 318} 319 320 </style> 321
321<script attr="nomove" type="text/javascript"> 322 var themeClass = "theme-default"; 323var knobby = {"bin_location":false,"bulk":true,"module_canonical":true,"customer_notes":false,"dumbbell_labels":true,"email_customization":true,"layaway":true,"newsletter_archive":true,"polls":true,"product_download":true,"product_form":true,"product_kit":true,"product_offline_reserve":true,"product_serialized":true,"allow_subscriptions_settings":true,"product_suggested":true,"product_transfer":true,"product_wait_list":true,"product_yards":true,"quotes":true,"repairs":true,"rto_school_info":false,"services":true,"so":true,"packages":true,"till_quick_pick":false,"taxjar":false,"shopify":false,"web_checkout":true,"website_file_upload":true,"website_forms":true,"website_customer_directory":true,"website_store_locator":true,"scuba_store":false,"module_website":true,"module_email":true,"module_products":true,"module_classes":true,"module_packages":true,"module_class_packages":false,"module_enhancedCategoryPage":true,"module_pos":true,"module_spreadsheetUpload":true,"module_wholesaleLogin":true,"module_designWall":true,"module_facebookFeatures":true,"module_gallery":true,"module_allcosts":false,"module_rental":false,"module_txtMsg":true,"module_rto":false,"module_inventory_turn":false,"module_reverb":false,"module_social":true,"module_mobile":false,"module_vantiv":false,"module_marketing":true,"module_marketingReviews":true,"module_bin_location":false,"module_ssi":false,"module_use_ssi_sandbox":false,"module_backorders":true,"module_gst":false,"module_online_canada_tax":false,"module_order_location":false,"module_locally":false,"module_loans":false,"module_catalog_options":false,"module_check_duplicate_sn_store":false,"module_subscriptions":false,"module_layaway_reserve_logic":false,"module_purchase_contracts":false,"module_comment_sold":false,"module_customer_po_pos":false,"module_search_through_packrat":true,"module_participate_in_stashify":false,"module_customer_packrat_sync":false,"module_wholesale_shipping":false,"module_sellbrite":false,"module_calendarAdmin":false,"module_stashify_reporting":false,"module_support_tax_inclusive_pricing":false,"module_rto_overdue_statements_bulk_edit":false,"module_test_tu_on_prod":false,"module_trial_purchases":false,"module_rto_required_fields_simplified_customer_modal":false,"module_crmGroupsFlag":false,"module_avalara_tax_sandbox_mode":false,"module_add_other_payment_method":false,"module_online_account_management_enhancements":true,"on_all_stores_online_account_management_enhancements":true,"module_paypal_sandbox_mode":false,"module_great_plains_exports":false,"module_till_require_pin":false,"module_view_waive_rto_late_fee":false,"module_facebook_catalog_feed":false,"module_letter_management":false,"module_bye_pendo":false,"module_show_desc_for_till_line_item":false,"module_ebay_integration_flag":false,"module_ebay_sandbox":false,"module_invalid_cart_code":false,"module_shipping_carrier":false,"module_reconciliation":false,"module_weight_cost":false,"module_break_up_ccf_upload":false,"module_autopayment_rto_eod":false,"module_freeze_rto_tax":false,"module_ebay_sandbox_mock":false,"module_facebook_social_posts":false,"module_facebook_shop_integration":false,"module_honor_purchase_of_free_products_setting":false,"module_emails_v2_using_partials":false,"module_rental_inventory_from_products":false,"module_advanced_customer_search":false,"module_return_line_item_edit_icon":false,"module_reverb_orders_sync":false,"module_taxjar":false,"module_taxjar_sandbox":false,"module_recognize_rental_revenue":false,"module_rto_settings_fees":false,"module_finish_out_discount_on_po_ro":false,"module_show_customer_group_and_custom_id_in_till":false,"module_navbar_v2":true,"on_all_stores_navbar_v2":true,"module_pointy_slack_logging":false,"module_pointy_staging":false,"module_reconciliation_memory_size_exhausted":false,"module_printouts_min_height":false,"module_sell_free_online_order":true,"on_all_stores_sell_free_online_order":true,"module_trade_in_tax_calculating":false,"module_temp_till_address":false,"module_changing_price_in_consignment_contract":false,"module_rto_payments_show_to_left_eod":true,"on_all_stores_rto_payments_show_to_left_eod":true,"module_logging_incorrect_styled_product":false,"module_pslr_weighted_cost":false,"module_tax_profiles":true,"module_ignore_international_setting_for_non_shipping_items":false,"module_virtual_terminal_sync":true,"on_all_stores_virtual_terminal_sync":true,"module_fix_item_shows_as_available_on_web":false,"module_change-select-to-input-in-disassemble":false,"module_auth_capture_report_service_error":false,"module_paypal_subscription_only":false,"module_clientbook_sandbox_mode":false,"module_online_rto_zero":false,"module_ignore_empty_tax_rates":false,"module_craftalytics_feed":false,"module_fix_customer_overwriting":false,"module_log_interac_refund_attempts":false,"module_dumbbell_margin_between_f
323ix":false,"module_make_request_review_checkbox_on_by_default":false,"module_user-guiding":false,"module_big_company":false,"module_big_slack_logging":false,"module_nmi_emv_payments":false,"module_stone_management":false,"module_bulk_rental_billing_functions_on_rto_list":false,"module_dumbbell_1up_fix":false,"module_gift_registry_till_block":false,"module_change_barcode_type":false,"module_jewel_product_type":false,"module_appraisals_main_flag":false,"module_fix_empty_till_sales_tax_report_grouping":false,"module_spreadsheet_uploads_cant_allow_for_duplicate_sku":false,"module_omnichannel_integration":false,"module_display_single_line_item_for_identical_serialized_items_on_RO":false,"module_dont_show_completed_ro_when_ready_to_receive_filter_is_selected":false,"module_qbo_sandbox_mode":false,"module_fake_test_flag":false,"module_fake_test_flag_v2":true,"module_fix_serial_numbers_displayed_on_special_order_ticket_in_ro":false,"module_colorado_retail_delivery_fee":false,"module_remove_coupon_from_cart_if_deleted_and_throw_error":true,"on_all_stores_remove_coupon_from_cart_if_deleted_and_throw_error":true,"module_zpl_debug":false,"module_care_plans":false,"module_flag_backorders_for_rain_payments":false,"module_customer_po_adjust_wo_logic":false,"module_jm_slack_logging":false,"module_jm_sandbox":false,"module_product_page_redesign":false,"module_respect_serialized_condition_for_website_enhanced_view":false,"module_flag_craftalytics_export_item_weight":false,"module_jm_insurance":false,"module_remove_lane_info_from_non_worldpay":false,"module_flag_add_categories_automatically_in_product_upload":true,"on_all_stores_flag_add_categories_automatically_in_product_upload":true,"module_disable_db_log_usage":true,"on_all_stores_disable_db_log_usage":true,"module_flag_migration_upload_score_card":false,"module_refactor_online_rto_price_code":false,"module_fix_custom_field_date_validator":true,"on_all_stores_fix_custom_field_date_validator":true,"module_fix_merge_serial_numbers":false,"module_rto_order_line_details":false,"module_allow_fallback_to_wp_tokens":false,"module_flag_migrate_invoice_customer_by_external_id":true,"on_all_stores_flag_migrate_invoice_customer_by_external_id":true,"module_fix_items_quantity_for_so":false,"module_flag_test_subscription_email_store_logo":false,"module_fix_product_info_modal":false,"module_stripe_accounts_per_location":false,"module_vendor_integration_sandbox":false,"module_flag_google_analytics_v4":false,"module_mapping_clientbook_associates":true,"on_all_stores_mapping_clientbook_associates":true,"module_rental_auto_reminder_on":false,"module_fix_order_note_for_sub_and_rental_payments":true,"on_all_stores_fix_order_note_for_sub_and_rental_payments":true,"module_adyen_accounts_per_location":false,"module_assemble_disassemble":false,"module_system_callout_for_reports":false,"module_lock_transaction_save":true,"on_all_stores_lock_transaction_save":true,"module_custom_labels_templates_in_print_modal":false,"module_open_ai_long_description":true,"on_all_stores_open_ai_long_description":true,"module_po_export_fix_comma":false,"module_fix_signup_disappear_after_customer_added_register":false,"module_avalara_tax_code_issue":false,"module_inventory_history_fix_other_event_when_sn_removed":true,"on_all_stores_inventory_history_fix_other_event_when_sn_removed":true,"module_item_filters_dollar_off_coupons":false,"module_flag_set_date_received_from_new_product_upload":true,"on_all_stores_flag_set_date_received_from_new_product_upload":true,"module_prevent_close_on_print":false,"module_rto_autopay_improvements_issue_indicator":false,"module_handle_serialized_line_item_upload_migrated_option_id":true,"on_all_stores_handle_serialized_line_item_upload_migrated_option_id":true,"module_stripe_send_level_3_data":true,"on_all_stores_stripe_send_level_3_data":true,"module_fix_previous_payments_for_multiple_contracts":true,"on_all_stores_fix_previous_payments_for_multiple_contracts":true,"module_locations_in_scheduled_sale":false,"module_fix_send_to_list_validation_schedule_email":false,"module_toggle_product_page_version":true,"on_all_stores_toggle_product_page_version":true,"module_allow_super_admin_download_ext_customer_id":true,"on_all_stores_allow_super_admin_download_ext_customer_id":true,"module_smaller_pslr_status_updates":true,"on_all_stores_smaller_pslr_status_updates":true,"module_add_customer_id_type_transaction_upload":true,"on_all_stores_add_customer_id_type_transaction_upload":true,"module_send_mix_panel_event_on_zipcode_change_web_checkout":false,"module_locally_push2cart_integration":false,"module_beta_features_feedback":true,"on_all_stores_beta_features_feedback":true,"module_quick_assemble":false,"module_verify_payment_id":true,"on_all_stores_verify_payment_id":true,"module_layaway_migration":false,"module_send_mixpanel_event_on_mms_customer_disconnect":false,"module_improved_waitlist":true,"on_all_stores_improved_waitlist":true,"module_use_amex_pricing":true,"on_all_stores_use_amex_pricing":true,"module_additional_settings_custom_tenders":true,"on_all_stores_additional_settings_custom_tenders":true,"module_nps_page_v2":true,"on_all_stores_nps_page_v2":true,"module_set_store_id_for_transaction_if_has_value":false,"module_deprecate_on_account":true,"on_all_stores_deprecate_on_account":true,"module_restricted_login":false,"module_eod_summary_v2":true,"on_all_stores_eod_summary_v2":true,"module_enhanced_interrogation_techniques":true,"module_work_orders_current_store_location_id":true,"on_all_stores_work_orders_current_store_location_id":true,"module_prevent_utf8_in_header_columns":true,"on_all_stores_prevent_utf8_in_header_columns":true,"module_gia_sandbox":false,"module_edit_appraisals":true,"on_all_stores_edit_appraisals":true,"module_fix_edit_appraisal_template":true,"on_all_stores_fix_edit_appraisal_template":true,"module_slack_notification_when_store_connects_clientbook":true,"on_all_stores_slack_notification_when_store_connects_clientbook":true,"module_fix_image_upload_invalid_extension":false,"module_show_warning_if_no_price_for_new_consignment_items":false,"module_fix_sorting_by_technician_in_wo":true,"on_all_stores_fix_sorting_by_technician_in_wo":true,"module_fix_deleting_main_image_from_all_products":true,"on_all_stores_fix_deleting_main_image_from_all_products":true,"module_respect_classes_setting_in_all_places":true,"on_all_stores_respect_classes_setting_in_all_places":true,"module_markup_pricing_flag":true,"on_all_stores_markup_pricing_flag":true,"module_image_inventory_velocity_report":true,"on_all_stores_image_inventory_velocity_report":true,"module_gia_slack_logging":false,"module_category_issue_new_pp":true,"on_all_stores_category_issue_new_pp":true,"module_fix_wo_tags":true,"on_all_stores_fix_wo_tags":true,"module_beta_product_feedback_report":true,"on_all_stores_beta_product_feedback_report":true,"module_check_duplication_upc_mfr_id":true,"on_all_stores_check_duplication_upc_mfr_id":true,"module_product_page_fix_tax_clearing":true,"on_all_stores_product_page_fix_tax_clearing":true,"module_nps_report_list_update":true,"on_all_stores_nps_report_list_update":true,"module_custom_zpl_tools":false,"module_print_note_wo_items":true,"on_all_stores_print_note_wo_items":true,"module_facet_fields_order_web_fix":true,"on_all_stores_facet_fields_order_web_fix":true,"module_po_clear_date_issue":true,"on_all_stores_po_clear_date_issue":true,"module_email_cleanup_script_banner":false,"module_unsaved_inventory_warnings":false,"module_fix_appraisal_item_on_close"
323:true,"on_all_stores_fix_appraisal_item_on_close":true,"module_404_on_bogus_category_url":true,"on_all_stores_404_on_bogus_category_url":true,"module_fix_backspace_till_card_payment":true,"on_all_stores_fix_backspace_till_card_payment":true,"module_beta_feedback_to_use_index_db":true,"on_all_stores_beta_feedback_to_use_index_db":true,"module_setting_for_default_website_sorting_option":true,"on_all_stores_setting_for_default_website_sorting_option":true,"module_marketplaces_slowdown_fix":true,"on_all_stores_marketplaces_slowdown_fix":true,"module_slack_notification_when_store_disconnects_clientbook":true,"on_all_stores_slack_notification_when_store_disconnects_clientbook":true,"module_confirm_opt_in_email":true,"on_all_stores_confirm_opt_in_email":true,"module_suggest_feature_modal_email_fix":true,"on_all_stores_suggest_feature_modal_email_fix":true,"module_better_coupons":true,"on_all_stores_better_coupons":true,"module_fix_saving_variant_pictures_on_npp":true,"on_all_stores_fix_saving_variant_pictures_on_npp":true,"module_edit_component_vue":false,"module_generate_seo":true,"on_all_stores_generate_seo":true,"module_show_prop_65_warning_setting":true,"on_all_stores_show_prop_65_warning_setting":true,"module_line_totals_add_invoice_payment_and_store_credit":true,"on_all_stores_line_totals_add_invoice_payment_and_store_credit":true,"module_manage_301_redirects":true,"on_all_stores_manage_301_redirects":true,"module_layaway_remaining_balance_fix":true,"on_all_stores_layaway_remaining_balance_fix":true,"module_apply_all_reward_coupons_fix":true,"on_all_stores_apply_all_reward_coupons_fix":true,"module_fix_shipping_method_dropdown_in_orders_module":false,"module_mms_payment_warning_flag":false,"module_increase_default_image_size_wo_form_style":true,"on_all_stores_increase_default_image_size_wo_form_style":true,"module_fix_pslr_images":true,"on_all_stores_fix_pslr_images":true,"module_barcode_printing_location_issue":true,"on_all_stores_barcode_printing_location_issue":true,"module_refactoring_getting_piis_for_inventory_tab_on_npp":false,"module_inventory_summary_modal":true,"on_all_stores_inventory_summary_modal":true,"module_omnichannel_respect_data_source":true,"on_all_stores_omnichannel_respect_data_source":true,"module_luxsurance_sandbox":false,"module_luxsurance_functionality":false,"module_luxsurance_logging_in_slack":false,"module_speed_up_locally_sync":true,"on_all_stores_speed_up_locally_sync":true,"module_Jewelers_for_children_slack_logging":true,"on_all_stores_Jewelers_for_children_slack_logging":true,"module_so_care_plan_zero_payment_issue":true,"on_all_stores_so_care_plan_zero_payment_issue":true,"module_care_plans_sale_price_issue":true,"on_all_stores_care_plans_sale_price_issue":true,"module_fix_product_page_width_issue":true,"on_all_stores_fix_product_page_width_issue":true,"module_web_link_text_editor_issue":true,"on_all_stores_web_link_text_editor_issue":true,"module_fix_rto_loading_due_to_cookie":true,"on_all_stores_fix_rto_loading_due_to_cookie":true,"module_fix_rental_account_statement_past_dues":true,"on_all_stores_fix_rental_account_statement_past_dues":true,"module_fix_barcode_location_modal":true,"on_all_stores_fix_barcode_location_modal":true,"module_product_placeholder_flag":true,"on_all_stores_product_placeholder_flag":true,"module_print_before_save_from_opp_modal":true,"on_all_stores_print_before_save_from_opp_modal":true,"module_ro_duplicate_barcodes_fix":true,"on_all_stores_ro_duplicate_barcodes_fix":true,"module_save_luxsurance_insurance_info_after_reloading":false,"module_initial_save_for_new_product_on_the_old_product_page":true,"on_all_stores_initial_save_for_new_product_on_the_old_product_page":true,"module_increase_image_size_wo_print":true,"on_all_stores_increase_image_size_wo_print":true,"module_reorder_components":true,"on_all_stores_reorder_components":true,"module_remove_business_name_on_receipts":false,"module_handle_interac_with_adyen":true,"on_all_stores_handle_interac_with_adyen":true,"module_bnb_tmp_files":true,"on_all_stores_bnb_tmp_files":true,"module_user_timeout":true,"on_all_stores_user_timeout":true,"module_set_default_printer_to_barcode_printer_modal":true,"on_all_stores_set_default_printer_to_barcode_printer_modal":true,"module_fix_product_dimensions":true,"on_all_stores_fix_product_dimensions":true,"module_markup_pricing_send_mixpanel_event":true,"on_all_stores_markup_pricing_send_mixpanel_event":true,"module_ro-ai-upload":true,"on_all_stores_ro-ai-upload":true,"module_stones_facets":true,"on_all_stores_stones_facets":true,"module_so_fix_remaining_balance":true,"on_all_stores_s
323o_fix_remaining_balance":true,"module_restore_school_delivery_shipping_option":false,"module_log_everything_sent_to_luxsurance":false,"module_kinder_return_growl_message":true,"on_all_stores_kinder_return_growl_message":true,"module_transfer_permissions":true,"on_all_stores_transfer_permissions":true,"module_fix_opening_product_page_from_website_categories":true,"on_all_stores_fix_opening_product_page_from_website_categories":true,"module_hide_jewelers_for_children_notifications_from_store_with_stripe":true,"on_all_stores_hide_jewelers_for_children_notifications_from_store_with_stripe":true,"module_product_page_builder":true,"on_all_stores_product_page_builder":true,"module_show_bin_location_ids":true,"on_all_stores_show_bin_location_ids":true,"module_work_order_custom_signature":true,"on_all_stores_work_order_custom_signature":true,"module_refactoring_wo_settings_tab":true,"on_all_stores_refactoring_wo_settings_tab":true,"module_stone_custom_label":true,"on_all_stores_stone_custom_label":true,"module_query_builder_for_so":true,"on_all_stores_query_builder_for_so":true,"module_fix_upload_image_by_upc_mfr_id":true,"on_all_stores_fix_upload_image_by_upc_mfr_id":true,"module_add_bin_location_column_spreadsheet":true,"on_all_stores_add_bin_location_column_spreadsheet":true,"module_saving_loose_stone_from_catalog":true,"on_all_stores_saving_loose_stone_from_catalog":true,"module_fix_scheduled_sale_does_not_delete_original_prices":true,"on_all_stores_fix_scheduled_sale_does_not_delete_original_prices":true,"module_adyen_send_level_3_data":true,"on_all_stores_adyen_send_level_3_data":true,"module_fix_ro_condition_inventory":true,"on_all_stores_fix_ro_condition_inventory":true,"module_blue_book_flag":false,"module_upload_fix_pslr_without_product_id":true,"on_all_stores_upload_fix_pslr_without_product_id":true,"module_edit_stone_details_spreadsheet":true,"on_all_stores_edit_stone_details_spreadsheet":true,"module_vendor_markup_flag":true,"on_all_stores_vendor_markup_flag":true,"module_searching_only_stone_for_loose_stone":false,"module_fix_images_old_new_product_page":true,"on_all_stores_fix_images_old_new_product_page":true,"module_loose_stone_in_po_ro":true,"on_all_stores_loose_stone_in_po_ro":true,"module_large_images_in_reg":true,"on_all_stores_large_images_in_reg":true,"module_bad_emails":true,"on_all_stores_bad_emails":true,"module_validate_imported_rto_payment_amount_with_interest":true,"on_all_stores_validate_imported_rto_payment_amount_with_interest":true,"module_expand_collapse_web_filters":true,"on_all_stores_expand_collapse_web_filters":true,"module_fix_bootstrap_switch_circle":true,"on_all_stores_fix_bootstrap_switch_circle":true,"module_bin_location_bulk_messaging":false,"module_fix_ecomm_canada_tax":true,"on_all_stores_fix_ecomm_canada_tax":true,"module_fix_inventory_save_new_product_page":true,"on_all_stores_fix_inventory_save_new_product_page":true,"module_add_serial_number_to_wo_custom_message":true,"on_all_stores_add_serial_number_to_wo_custom_message":true,"module_sales_details_report_integration_filter":true,"on_all_stores_sales_details_report_integration_filter":true,"module_fix_invoice_online_line_item_summary":true,"on_all_stores_fix_invoice_online_line_item_summary":true,"module_add_stripe_to_payment_success_worker":true,"on_all_stores_add_stripe_to_payment_success_worker":true,"module_update_to_captcha_v3":false,"module_adyen_send_level_3_data_auth_capture":true,"on_all_stores_adyen_send_level_3_data_auth_capture":true,"module_copy_super_user":true,"on_all_stores_copy_super_user":true,"module_report_permissions":true,"on_all_stores_report_permissions":true,"module_metal_pricing":false,"module_service_shadow_rows_wo":false,"module_fix_empty_bin_location_spreadsheet":true,"on_all_stores_fix_empty_bin_location_spreadsheet":true,"module_adjust_shopify_unlimited_logic":false,"module_metal_pricing_error_slack_logging":false,"module_metal_pricing_log_everything_sent":false,"module_metal_pricing_sandbox":false,"module_featured_features_v2":true,"on_all_stores_featured_features_v2":true,"module_fix_worker_order_wont_print_null_target_date":true,"on_all_stores_fix_worker_order_wont_print_null_target_date":true,"module_disable_express_checkout":false,"module_allow_phone_email_manual_card_entry":true,"on_all_stores_allow_phone_email_manual_card_entry":true,"module_fix_appraisal_print_preview_displaying":true,"on_all_stores_fix_appraisal_print_preview_displaying":true,"module_address_export_fields":true,"on_all_stores_address_export_fields":true,"module_new_pp_optimize":true,"on_all_stores_new_pp_optimize":true,"module_care_plans_in_special_orders":true,"on_all_stores_care_plans_in_special_orders":true,"module_avs_ecommerce":true,"on_all_stores_avs_ecommerce":true,"module_wo_claim_ticket_till_fix":true,"on_all_stores_wo_claim_ticket_till_fix":true,"module_wo_rename_add_to_register_button":true,"on_all_stores_wo_rename_add_to_register_button":true,"module_default_class_page_v2":true,"on_all_stores_default_class_page_v2":true,"module_alert_print_ro_custom_template_no_vend
323or":true,"on_all_stores_alert_print_ro_custom_template_no_vendor":true,"module_fix_gtag_purchase_event_vars":true,"on_all_stores_fix_gtag_purchase_event_vars":true,"module_allow_no_sn_in_loose_stone":true,"on_all_stores_allow_no_sn_in_loose_stone":true,"module_fix_saving_loose_stone_inventory":true,"on_all_stores_fix_saving_loose_stone_inventory":true,"module_po_upload_files_ai":false,"module_delayed_mixpanel_event":true,"on_all_stores_delayed_mixpanel_event":true,"module_website_page_code":true,"on_all_stores_website_page_code":true,"module_stop_serialized_switching_old_pp":true,"on_all_stores_stop_serialized_switching_old_pp":true,"module_material_fix_class_v2":true,"on_all_stores_material_fix_class_v2":true,"module_parafin_ad":false,"module_respect_custom_tenders_order_in_tenders_by_till":true,"on_all_stores_respect_custom_tenders_order_in_tenders_by_till":true,"module_date_range_filter_for_aging_report":true,"on_all_stores_date_range_filter_for_aging_report":true,"module_default_sales_representative":true,"on_all_stores_default_sales_representative":true,"module_add_flat_rate_to_consignor":true,"on_all_stores_add_flat_rate_to_consignor":true,"module_parafin_sandbox":false,"module_rental_contracts_paypal_method":false,"module_rto_ecom_tab_rrr":false,"module_independent_scrolling_on_web":false,"module_geller_blue_book_work_order":false,"module_fix_wo_take_deposit_redirect":true,"on_all_stores_fix_wo_take_deposit_redirect":true,"module_stop_deleting_resumed_transactions":true,"on_all_stores_stop_deleting_resumed_transactions":true,"module_tag_in_work_order_list":true,"on_all_stores_tag_in_work_order_list":true,"module_package_coupons":false,"module_scrap_metal_flag":false,"module_product_list_v2":false,"module_stone_mixpanel":false,"module_ship_to_school_for_non_rto_or_osr":true,"on_all_stores_ship_to_school_for_non_rto_or_osr":true,"module_fix_geller_prices":true,"on_all_stores_fix_geller_prices":true,"module_add_submit_workorder_online_feature":false,"module_show_aim_data_in_customer_account":false,"module_blog_module":true,"on_all_stores_blog_module":true,"module_comparison_report":true,"on_all_stores_comparison_report":true,"module_allow_users_to_edit_product_in_till":false,"module_inventory_report_refactoring":false,"module_fix_utf_response_issue":false,"module_product_metal_info":false,"module_social_media_manager":false,"module_job_condition_field_for_work_order":false,"module_in_classes_not_able_to_add_required_material":false,"module_new_pii_for_kit_assembly":true,"on_all_stores_new_pii_for_kit_assembly":true,"module_display_sn_for_trade_in":false,"module_fix_locally_payment_nonce_reset":false,"module_fix_sold_column_in_product_inventory_page":true,"on_all_stores_fix_sold_column_in_product_inventory_page":true,"module_disable_vue_parsing_for_description":false,"module_so_print_ticket_receipt":true,"on_all_stores_so_print_ticket_receipt":true,"module_mixpanel_active_no_demo_store":false,"module_rental_enable_auto_pay_on_card":true,"on_all_stores_rental_enable_auto_pay_on_card":true,"module_merge_product_information_with_discount_to_pop_up":false,"module_marketing_email_not_sending_to_all_recipients":false,"module_allow_batch_actions_for_line_discounts":true,"on_all_stores_allow_batch_actions_for_line_discounts":true,"module_rental_double_charge_log":false,"module_fix_incorrect_next_payment_amount_for_rental":true,"on_all_stores_fix_incorrect_next_payment_amount_for_rental":true,"module_add_local_delivery_tab":false,"module_fix_ipad_print_second_page":true,"on_all_stores_fix_ipad_print_second_page":true,"module_fix_modules_duplication":false,"module_domain_management_tool":false,"module_rto_custom_views_button":true,"on_all_stores_rto_custom_views_button":true,"module_fix_remaining_balances_incorrect_total":false,"module_custom_printer_margins":false,"module_bug_classes_cant_check_out_ecommerce":true,"on_all_stores_bug_classes_cant_check_out_ecommerce":true,"module_duplicate_rental_product":true,"on_all_stores_duplicate_rental_product":true,"module_new_kb_site_flag":true,"on_all_stores_new_kb_site_flag":true,"module_notes_template_option":true,"on_all_stores_notes_template_option":true,"module_add_tracking_number_to_purchase_order":true,"on_all_stores_add_tracking_number_to_purchase_order":true,"module_customer_wo_tab":true,"on_all_stores_customer_wo_tab":true,"module_osr_product_description_editor":true,"on_all_stores_osr_product_description_editor":true,"module_submit_special_order_from_wo_modal":false,"module_so_negative_deposits_till_fix":true,"on_all_stores_s
323o_negative_deposits_till_fix":true,"module_products_variants_order_on_save_fix":true,"on_all_stores_products_variants_order_on_save_fix":true,"module_end_of_day_v2_toggle":true,"module_edit_school_tooltip_text":true,"on_all_stores_edit_school_tooltip_text":true,"module_upc_duplicate_popup_items":false,"module_unable_to_save_when_editing_older_inventory":true,"on_all_stores_unable_to_save_when_editing_older_inventory":true,"module_fix_checkout_for_classes":true,"on_all_stores_fix_checkout_for_classes":true,"module_quick_edit":false,"module_customer_modal_work_order_tab_additional_changes":false,"module_osr_add_x_button_to_remove_optional_add_on":true,"on_all_stores_osr_add_x_button_to_remove_optional_add_on":true,"module_osr_add_progress_bar_for_osr_checkout":true,"on_all_stores_osr_add_progress_bar_for_osr_checkout":true,"module_wo_add_service_qty_change":false,"module_website_vue_use_one_lib_for_all_places":true,"on_all_stores_website_vue_use_one_lib_for_all_places":true,"module_osrs_print_terms_and_conditions":true,"on_all_stores_osrs_print_terms_and_conditions":true,"module_osr_rename_search_button_and_rework_logic":false,"module_remove_save_tracking_number_button_from_purchase_order":false,"module_glitch_online_orders_canadian_tax_missing":true,"on_all_stores_glitch_online_orders_canadian_tax_missing":true,"module_allow_search_for_school_district_steps":true,"on_all_stores_allow_search_for_school_district_steps":true,"module_user_login_report":false,"module_remove_vendor_integration_tab":true,"on_all_stores_remove_vendor_integration_tab":true,"module_bug_digital_download_with_class":true,"on_all_stores_bug_digital_download_with_class":true,"module_wo_view_comments_button":true,"on_all_stores_wo_view_comments_button":true,"module_care_plan_allow_refund_non_existent_sale":false,"module_confirm_to_delete_purchase_order":true,"on_all_stores_confirm_to_delete_purchase_order":true,"module_saved_cards_at_checkout":false,"module_fix_calculation_work_orders_in_remaining_balances":true,"on_all_stores_fix_calculation_work_orders_in_remaining_balances":true,"module_bin_location_removing_after_bulk_edit":true,"on_all_stores_bin_location_removing_after_bulk_edit":true,"module_product_verify_images_async":true,"on_all_stores_product_verify_images_async":true,"module_hide_shipping_tab":false,"module_fix_created_by_display_during_wo_creation":true,"on_all_stores_fix_created_by_display_during_wo_creation":true,"module_prevent_creating_ro_without_items_if_reladed_po_fully_received":true,"on_all_stores_prevent_creating_ro_without_items_if_reladed_po_fully_received":true,"module_bug_thermal_receipt_column_mismatch":false,"module_respect_product_add_to_cart_setting_in_enhanced_product_view":true,"on_all_stores_respect_product_add_to_cart_setting_in_enhanced_product_view":true,"module_adyen_region_failover":true,"on_all_stores_adyen_region_failover":true,"module_validate_customer_discount_column":true,"on_all_stores_validate_customer_discount_column":true,"module_checkout_rent_another_button":false,"module_shopify_margin_report":true,"on_all_stores_shopify_margin_report":true,"module_bug_welcome_email_after_opt_in":true,"on_all_stores_bug_welcome_email_after_opt_in":true,"module_add_ship_date_column_to_ordered_inventory_report":true,"on_all_stores_add_ship_date_column_to_ordered_inventory_report":true,"module_layaway_sales_rep":true,"on_all_stores_layaway_sales_rep":true,"module_paypal_extra_log":false,"module_ui_enhancements_in_product_information_modal":false,"module_user_able_to_issue_refund_without_permission":true,"on_all_stores_user_able_to_issue_refund_without_permission":true,"module_fix_misc_items_not_respecting_department_discount_eligibiltiy":true,"on_all_stores_fix_misc_items_not_respecting_department_discount_eligibiltiy":true,"module_fix_rto_total_due_in_print_template":true,"on_all_stores_fix_rto_total_due_in_print_template":true,"module_allow_multiple_versions_of_term_email_on_customer_upload_spreadsheet":true,"on_all_stores_allow_multiple_versions_of_term_email_on_customer_upload_spreadsheet":true,"module_add_quilt_auth_payment_from_reader_logs":false,"module_bug_paypal_shipping_price_not_updating":false,"module_fix_rto_serial_payment_schedule":true,"on_all_stores_fix_rto_serial_payment_schedule":true,"module_block_gift_card_pause_transaction":true,"on_all_stores_block_gift_card_pause_transaction":true,"module_bug_cannot_delete_saved_card_from_customer_profile":true,"on_all_stores_bug_cannot_delete_saved_card_from_customer_profile":true,"module_posthog_tracking_event":false,"module_fix_po_product_attributes":true,"on_all_stores_fix_po_product_attributes":true,"module_log_add_card_on_file_processing":false,"module_quick_assembled_product_transaction_pause":true,"on_all_stores_quick_assembled_product_transaction_pause":true,"module_service_description_wo_improvements":true,"on_all_stores_service_description_wo_improvements":true,"module_restrict_nonnumeric_characters_in_open_shift_modal":true,"on_all_stores_restrict_nonnumeric_characters_in_open_shift_modal":true,"module_fix_landscape_fs":false,"module_bug_eod_total_receipts_column_not_correct":true,"on_all_stores_bug_eod_total_receipts_column_not_correct":true,"module_bug_unable_to_void_invoice":true,"on_all_stores_bug_unable_to_void_invoice":true,"module_shopify_shipping_tax_total_fix":true,"on_all_stores_shopify_shipping_tax_total_fix":true,"module_email_signup_module":false,"module_apply_scheduled_sale_to_newly_eligible_products_after_it_starts":true,"on_all_stores_apply_scheduled_sale_to_newly_eligible_products_after_it_starts":true,"module_fix_pitr_tax_jurisdictions_dynamic_tax_rate":false,"module_fix_current_item_count_updating_for_sold_tbd_assign_serial_number":true,"on_all_stores_fix_current_item_count_updating_for_sold_tbd_assign_serial_number":true,"module_update_rental_collections_text":false,"module_fix_low_inventory_variant_products_purchase_queue":true,"on_all_stores_fix_low_inventory_variant_products_purchase_queue":true,"module_fix_product_label_price":true,"on_all_stores_fix_product_label_price":true,"module_fix_short_term_rentals_editing":true,"on_all_stores_fix_short_term_rentals_editing":true,"module_missing_so_relations":false,"module_customer_specific_payment_not_removing_from_register":false,"module_po_ro_form_style_not_responding":true,"on_all_stores_po_ro_form_style_not_responding":true,"module_print_ipad_fix":true,"on_all_stores_print_ipad_fix":true,"module_bug_jewelers_mutual_purchase_not_migrating_care_plan":false,"module_fix_calculation_store_credit_and_account_balances_with_invoicing_enabled":true,"on_all_stores_fix_calculation_store_credit_and_account_balances_with_invoicing_enabled":true,"module_cannot_view_terms_conditions_checkout_screen_address_info":true,"on_all_stores_cannot_view_terms_conditions_checkout_screen_address_info":true,"module_fix_transfer_items_search_order":true,"on_all_stores_fix_transfer_items_search_order":true,"module_metal_buy_unavailable_message":true,"on_all_stores_metal_buy_unavailable_message":true,"module_elastic_tracking_ssl_notice":true,"on_all_stores_elastic_tracking_ssl_notice":true,"module_qbo_retail_delivery_fee":true,"on_all_stores_qbo_retail_delivery_fee":true,"module_printing_multiple_serial_numbers_at_one_time_prints_the_oldest":true,"on_all_stores_printing_multiple_serial_numbers_at_one_time_prints_the_oldest":true,"module_fix_po_styles_for_product_with_existing_styles":true,"on_all_stores_fix_po_styles_for_product_with_existing_styles":true,"module_do_not_send_unnecessary_data_with_po":true,"on_all_stores_do_not_send_unnecessary_data_with_po":true,"module_fix_serialized_unlimited_inventory_concurrent":true,"on_all_stores_fix_serialized_unlimited_inventory_concurrent":true,"module_fix_bug_add_serialized_product_to_till_without_seri
323al_number":false,"module_fix_auto_increase_duplicate_product_quantity":true,"on_all_stores_fix_auto_increase_duplicate_product_quantity":true,"module_bug_cannot_add_alternate_lookup_on_product":true,"on_all_stores_bug_cannot_add_alternate_lookup_on_product":true,"module_comparison_report_scrolling":true,"on_all_stores_comparison_report_scrolling":true,"module_fix_label_price_zero_condition":true,"on_all_stores_fix_label_price_zero_condition":true,"module_fix_customer_modal_respects_wo_enabled_settings":false,"module_fix_serialized_inventory_batch_caching":true,"on_all_stores_fix_serialized_inventory_batch_caching":true,"module_add_delete_confirmation_popup_for_manage_serialized_inventory":true,"on_all_stores_add_delete_confirmation_popup_for_manage_serialized_inventory":true,"module_bug_product_page_filter_not_filtering_properly":true,"on_all_stores_bug_product_page_filter_not_filtering_properly":true,"module_disable_editing_if_paypal_is_used":false,"module_fix_nr_error_in_wishlist":true,"on_all_stores_fix_nr_error_in_wishlist":true,"module_fix_elastic_email_set_default_sender":true,"on_all_stores_fix_elastic_email_set_default_sender":true,"module_bug_reward_eligibility_defaults_to_on":true,"on_all_stores_bug_reward_eligibility_defaults_to_on":true,"module_validate_store_location_while_saving_wo":true,"on_all_stores_validate_store_location_while_saving_wo":true,"module_fix_price_manage_serialized_inventory":true,"on_all_stores_fix_price_manage_serialized_inventory":true,"module_fix_previous_payments_non_discountable_lines":true,"on_all_stores_fix_previous_payments_non_discountable_lines":true,"module_reverb_is_not_displaying_correct_inventory_accounts_ms360_integrated_products":true,"on_all_stores_reverb_is_not_displaying_correct_inventory_accounts_ms360_integrated_products":true,"module_shopify_refund_fallback":true,"on_all_stores_shopify_refund_fallback":true,"module_avg_margin_col_sales_details_report":true,"on_all_stores_avg_margin_col_sales_details_report":true,"module_pointy_status_request":true,"on_all_stores_pointy_status_request":true,"module_bug_payout_shift_report_duplicating_entries":true,"on_all_stores_bug_payout_shift_report_duplicating_entries":true,"module_fix_rounding_sales_tax_report":true,"on_all_stores_fix_rounding_sales_tax_report":true,"module_optimize_barcode_loading":true,"on_all_stores_optimize_barcode_loading":true,"module_fix_custom_tenders_shift_summary":true,"on_all_stores_fix_custom_tenders_shift_summary":true,"module_add_customer_search_to_work_order_bulk_edit":true,"on_all_stores_add_customer_search_to_work_order_bulk_edit":true,"module_wo_remaining_balance_quote":true,"on_all_stores_wo_remaining_balance_quote":true,"module_shopify_variant_level_refund_matching":true,"on_all_stores_shopify_variant_level_refund_matching":true,"module_sales_tax_report_add_shipping_sales_to_summary":false,"module_fix_update_transaction_timestamp_timezone":true,"on_all_stores_fix_update_transaction_timestamp_timezone":true,"module_fix_uuid_not_cleared_on_transaction_complete":true,"on_all_stores_fix_uuid_not_cleared_on_transaction_complete":true,"module_prohibit_digital_products_with_options":false,"module_fix_the_inventory_history_event_to_show_the_correct_area_and_event":false,"module_bug_serial_number_duplicating_on_product_page":true,"on_all_stores_bug_serial_number_duplicating_on_product_page":true,"module_fix_tailored_lists_not_saving_added_products":true,"on_all_stores_fix_tailored_lists_not_saving_added_products":true,"module_fix_same_payment_for_different_transactions":true,"on_all_stores_fix_same_payment_for_different_transactions":true,"module_export_to_qbo_vendor_consignment":true,"on_all_stores_export_to_qbo_vendor_consignment":true,"module_reverb_extend_marketplace_provider_get_orders":true,"on_all_stores_reverb_extend_marketplace_provider_get_orders":true,"module_fix_403_error_on_image_upload":true,"on_all_stores_fix_403_error_on_image_upload":true,"module_fix_rto_future_payments_proportion":true,"on_all_stores_fix_rto_future_payments_proportion":true,"module_communications_module_not_showing_emails":false,"module_disable_best_seller_report":false,"module_signature_only_on_store_copy_on_auto_print":true,"on_all_stores_signature_only_on_store_copy_on_auto_print":true,"module_bug_loose_stone_behavior_in_special_order":true,"on_all_stores_bug_loose_stone_behavior_in_special_order":true,"module_fix_subscription_invali
323d_card_marking":true,"on_all_stores_fix_subscription_invalid_card_marking":true,"module_fix_saving_product_modal_reorder_pslrs":true,"on_all_stores_fix_saving_product_modal_reorder_pslrs":true,"module_bug_service_add_to_group_button_is_missing":true,"on_all_stores_bug_service_add_to_group_button_is_missing":true,"module_skip_sold_sn_check_on_transaction_update":true,"on_all_stores_skip_sold_sn_check_on_transaction_update":true,"module_add_worker_options_to_transaction_alert_message":true,"on_all_stores_add_worker_options_to_transaction_alert_message":true,"module_bug_print_preview_missing_price_field_on_custom_label":true,"on_all_stores_bug_print_preview_missing_price_field_on_custom_label":true,"module_fix_eod_net_sales_previous_payments":false,"module_new_sl_transaction":true,"on_all_stores_new_sl_transaction":true,"module_blog_parse_fix":false,"module_shopify_respect_reserve_inventory_flag":true,"on_all_stores_shopify_respect_reserve_inventory_flag":true,"module_fix_work_order_markup":true,"on_all_stores_fix_work_order_markup":true,"module_comparison_report_search_functionality":true,"on_all_stores_comparison_report_search_functionality":true,"module_glitch_image_is_stuck_on_page":true,"on_all_stores_glitch_image_is_stuck_on_page":true,"module_show_print_proxy_help_message":true,"on_all_stores_show_print_proxy_help_message":true,"module_bug_sales_by_item_report_filtering":true,"on_all_stores_bug_sales_by_item_report_filtering":true,"module_clear_max_debit_value_from_previous_transaction":true,"on_all_stores_clear_max_debit_value_from_previous_transaction":true,"module_digital_download_save_in_original_product_view":false,"module_fix_rounding_adjustment_return":true,"on_all_stores_fix_rounding_adjustment_return":true,"module_bug_thermal_receipt_prints_tbd_sn":true,"on_all_stores_bug_thermal_receipt_prints_tbd_sn":true,"module_fix_short_term_rental_barcode_printing":true,"on_all_stores_fix_short_term_rental_barcode_printing":true,"module_fix_online_order_module_shipstation_shipping_method":false,"module_taxes_incorrect_after_credit_payment_but_correct_in_till":true,"on_all_stores_taxes_incorrect_after_credit_payment_but_correct_in_till":true,"module_bug_deposits_not_showing_during_osr_checkout":true,"on_all_stores_bug_deposits_not_showing_during_osr_checkout":true,"module_bug_transactions_selling_consignment_inventory_still_requiring_customer":true,"on_all_stores_bug_transactions_selling_consignment_inventory_still_requiring_customer":true,"module_rezo_integration":false,"module_fix_pay_at_pickup_giftcard_activation":true,"on_all_stores_fix_pay_at_pickup_giftcard_activation":true,"module_fix_rto_exchange_security_deposit":true,"on_all_stores_fix_rto_exchange_security_deposit":true,"module_fix_jurisdiction_tax_precision":true,"on_all_stores_fix_jurisdiction_tax_precision":true,"module_products_with_variants_cant_be_listed_on_reverb_if_one_variant_has_zero_inventory":true,"on_all_stores_products_with_variants_cant_be_listed_on_reverb_if_one_variant_has_zero_inventory":true,"module_fix_layaway_unpaid_balance":true,"on_all_stores_fix_layaway_unpaid_balance":true,"module_bug_end_of_day_report_view_all_tenders":true,"on_all_stores_bug_end_of_day_report_view_all_tenders":true,"module_sms_trial_for_non_marketing":true,"on_all_stores_sms_trial_for_non_marketing":true,"module_slack_logging_for_customer_catalog_syncs":true,"on_all_stores_slack_logging_for_customer_catalog_syncs":true,"module_fix_barcode_print_1x1":true,"on_all_stores_fix_barcode_print_1x1":true,"module_simplify_migrated_work_order_images":false,"module_migration_cleanup_migrated_repairs":true,"on_all_stores_migration_cleanup_migrated_repairs":true,"module_remove_receptive":true,"on_all_stores_remove_receptive":true,"module_bug_tenders_are_not_being_recorded_correctly_in_eod_report":false,"module_fix_rounding_adjustment_on_delete_payment":true,"on_all_stores_fix_rounding_adjustment_on_delete_payment":true,"module_better_handling_product_records_syncs_to_reverb_after_returning":true,"on_all_stores_better_handling_product_records_syncs_to_reverb_after_returning":true,"module_rto_scheduled_payment_handle_adyen_bad_card_response":false,"module_metals_dev_currencies":true,"on_all_stores_metals_dev_currencies":true,"module_comparison_report_extended_date_range":true,"on_all_stores_comparison_report_extended_date_range":true,"module_fix_waitlist_user_permission":true,"on_all_stores_fix_waitlist_user_permission":true,"module_hide_email_optional_label_when_save_card":true,"on_all_stores_hide_email_optional_label_when_save_card":true,"module_fix_save_operation_exceptions":true,"on_all_stores_fix_save_operation_exceptions":true,"module_bug_customer_percentage_discount_applying_to_already_discounted_so":true,"on_all_stores_bug_customer_percentage_discount_applying_to_already_discounted_so":true,"module_cannot_merge_product_with_reverb_shipping_rate":true,"on_all_stores_cannot_merge_product_with_reverb_shipping_rate":true,"module_bugfix_store_can_open_rto_it_doesnt_own":true,"on_all_stores_bugfix_store_can_open_rto_it_doesnt_own":true,"module_glitch_deleted_customer_profile_still_in_previous_subscription":true,"on_all_stores_glitch_deleted_customer_profile_still_in_previous_subscription":true,"module_handle_refund_callback":true,"on_all_stores_handle_refund_callback":true,"module_posthog_modal_pageview_tracking":true,"on_all_stores_posthog_modal_pageview_tracking":true,"module_trade_in_and_misc_product_tax_fix":true,"on_all_stores_trade_in_and_misc_product_tax_fix":true,"module_fix_bin_locations_display":true,"on_all_stores_fix_bin_locations_display":true,"module_fix_external_customer_id_for_migrated_adyen_cards":true,"on_all_stores_fix_external_customer_id_for_migrated_adyen_cards":true,"module_fix_nr_error_bad_email":true,"on_all_stores_fix_nr_error_bad_email":true,"module_cash_rounding_always_down":true,"on_all_stores_cash_rounding_always_down":true,"module_add_card_on_file_column_to_rto_upload":true,"on_all_stores_add_card_on_file_column_to_rto_upload":true,"module_fix_clerk_change_by_pin_in_till":true,"on_all_stores_fix_clerk_change_by_pin_in_till":true,"module_rto_report_email_export":true,"on_all_stores_rto_report_email_export":true,"module_metal_spot_rate_ticker_section":false,"module_fix_so_delete_item":true,"on_all_stores_fix_so_delete_item":true,"module_aim_api_product_custom_field":true,"on_all_stores_aim_api_product_custom_field":true,"module_bug_reverb_integration_not_showing_variant_information":true,"on_all_stores_bug_reverb_integration_not_showing_variant_information":true,"module_popup_signup":true,"on_all_stores_popup_signup":true,"module_lazy_loading_images":true,"on_all_stores_lazy_loading_images":true,"module_fix_wo_commissions":true,"on_all_stores_fix_wo_commissions":true,"module_log_marking_card_bad":true,"on_all_stores_log_marking_card_bad":true,"module_reverb_integration_showing_out_of_stock_items_as_on_sale":true,"on_all_stores_reverb_integration_showing_out_of_stock_items_as_on_sale":true,"module_posthog_pageleave_auto_capture_event_removal":true,"on_all_stores_posthog_pageleave_auto_capture_event_removal":true,"module_fix_retail_delivery_fee_shipping_update":true,"on_all_stores_fix_retail_delivery_fee_shipping_update":true,"module_bug_cash_rounding_beta_not_applying_in_register":true,"on_all_stores_bug_cash_rounding_beta_not_applying_in_register":true,"module_bug_tax_rounding_inconsistently_between_wo_and_register":true,"on_all_stores_bug_tax_rounding_inconsistently_between_wo_and_register":true,"module_aim_customer_cards_webhook_sync":true,"on_all_stores_aim_customer_cards_webhook_sync":true,"module_bug_cannot_sell_serialized_item_in_the_register":true,"on_all_stores_bug_cannot_sell_serialized_item_in_the_register":true,"module_fix_care_plan_pitrs":true,"on_all_stores_fix_care_plan_pitrs":true,"module_misc_item_qt
323y_story_495679":true,"on_all_stores_misc_item_qty_story_495679":true,"module_bug_rto_next_payment_date_is_ignored":true,"on_all_stores_bug_rto_next_payment_date_is_ignored":true,"module_validate_shipping_postal_format":true,"on_all_stores_validate_shipping_postal_format":true,"module_glitch_so_showing_wrong_remaining_balance":true,"on_all_stores_glitch_so_showing_wrong_remaining_balance":true,"module_fix_coupon_for_service":true,"on_all_stores_fix_coupon_for_service":true,"module_fix_wo_service_taxable":true,"on_all_stores_fix_wo_service_taxable":true,"module_bug_gift_card_problems":true,"on_all_stores_bug_gift_card_problems":true,"module_fix_rto_min_payment_due_date":true,"on_all_stores_fix_rto_min_payment_due_date":true,"module_fix_refund_card_payments":true,"on_all_stores_fix_refund_card_payments":true,"module_fix_metal_dev_currencies":true,"on_all_stores_fix_metal_dev_currencies":true,"module_fix_product_upload_out_of_memory":false,"module_bug_geller_integration_default_commission_setting":true,"on_all_stores_bug_geller_integration_default_commission_setting":true,"module_user_flow":true,"module_shopify_sync_variant_option_values":true,"on_all_stores_shopify_sync_variant_option_values":true,"module_skip_scheduled_payment_late_fees":false,"module_unable_to_return_short_term_rentals":true,"on_all_stores_unable_to_return_short_term_rentals":true,"module_bug_paused_transactions_wil_not_save_as_quotes":true,"on_all_stores_bug_paused_transactions_wil_not_save_as_quotes":true,"module_rto_modal_fix_summary_numbers":true,"on_all_stores_rto_modal_fix_summary_numbers":true,"module_enable_rto_autopay_pending_processor_worker":true,"on_all_stores_enable_rto_autopay_pending_processor_worker":true,"module_design_consistency_invoicing":false,"module_fix_duplicate_ro_line_items_for_so":true,"on_all_stores_fix_duplicate_ro_line_items_for_so":true,"module_bug_trade_in_tax_being_calculated_before_credit_given_in_va":true,"on_all_stores_bug_trade_in_tax_being_calculated_before_credit_given_in_va":true,"module_inventory_facade":true,"on_all_stores_inventory_facade":true,"module_likesew_theme":false,"module_storm_integration":false,"module_storm_dev_env":false,"module_bug_incorrect_tax_calculation_on_locally_orders":true,"on_all_stores_bug_incorrect_tax_calculation_on_locally_orders":true,"module_insurance_validation_improvements":true,"on_all_stores_insurance_validation_improvements":true,"module_bug_rental_contracts_in_draft_status":true,"on_all_stores_bug_rental_contracts_in_draft_status":true,"module_bug_migrated_customer_sales_history_is_blank_ahm_music_llc_14981":true,"on_all_stores_bug_migrated_customer_sales_history_is_blank_ahm_music_llc_14981":true,"module_services_can_t_be_uploaded_by_spreadsheet_with_0_as_the_price":true,"on_all_stores_services_can_t_be_uploaded_by_spreadsheet_with_0_as_the_price":true,"module_fix_batch_inventory_reconcile":true,"on_all_stores_fix_batch_inventory_reconcile":true,"module_design_consistency_stones":false,"module_fix_tbd_calc_issue":true,"on_all_stores_fix_tbd_calc_issue":true,"module_fix_order_total_calculation":true,"on_all_stores_fix_order_total_calculation":true,"module_aim_webhook_order_created_order_notes":true,"on_all_stores_aim_webhook_order_created_order_notes":true,"module_special_order_claim_check":false,"module_fix_communications_repository":true,"on_all_stores_fix_communications_repository":true,"module_prevent_duplicate_receiving_order_completion":true,"on_all_stores_prevent_duplicate_receiving_order_completion":true,"module_local_inventory_adjustments":true,"on_all_stores_local_inventory_adjustments":true,"module_received_ro_missing_products_that_were_in_the_ro_when_saved":true,"on_all_stores_received_ro_missing_products_that_were_in_the_ro_when_saved":true,"module_geller_flat_charges":true,"on_all_stores_geller_flat_charges":true,"module_fix_ro_partial_completion_inventory_duplicates":true,"on_all_stores_fix_ro_partial_completion_inventory_duplicates":true,"module_aikido_story_493249":true,"on_all_stores_aikido_story_493249":true,"module_change_share_screen_link_to_teams":false,"module_fix_checkout_jurisdiction_tax_precision":true,"on_all_stores_fix_checkout_jurisdiction_tax_precision":true,"module_rain_api_fix_order_created_webhook_shipping_data":true,"on_all_stores_rain_api_fix_order_created_webhook_shipping_data":true,"module_fix_trade_in_serial_number_on_pause":true,"on_all_stores_fix_trade_in_serial_number_on_pause":true,"module_setting_for_cash_rounding_behavior":true,"on_all_stores_setting_for_cash_rounding_behavior":true,"module_download_sheets_missing_columns":true,"on_all_stores_download_sheets_missing_columns":true,"module_fix_po_barcode_print_issue":true,"on_all_stores_fix_po_barcode_print_issue":true,"module_rto_modal_fix_due_date_timezone":true,"on_all_stores_rto_modal_fix_due_date_timezone":true,"module_layaway_claim_check_form_style":false,"module_flag_to_settings_music_staff":true,"on_all_stores_flag_to_settings_music_staff":true,"module_work_order_search_capability":true,"on_all_stores_work_order_search_capability":true,"module_fix_rto_schedule_remaining_balance_overpay":true,"on_all_stores_fix_rto_schedule_remaining_balance_overpay":true,"module_bug_workorder_print_out_has_duplicate_spacer_lines":true,"on_all_stores_bug_workorder_print_out_has_duplicate_spacer_lines":true,"module_fix_website_carousel_padding":true,"on_all_stores_fix_website_carousel_padding":true,"module_fix_classes_overselling_reports":true,"on_all_stores_fix_classes_overselling_reports":true,"module_fix_wo_service_description_invoice":true,"on_all_stores_fix_wo_service_description_invoice":true,"module_fix_optin_email_link":true,"on_all_stores_fix_optin_email_link":true,"module_gia_url_not_pulling_correctly_to_inventory_module":true,"on_all_stores_gia_url_not_pulling_correctly_to_inventory_module":true,"module_online_school_rentals_birthday_form_field_displays_bad_behavior":true,"on_all_stores_online_school_rentals_birthday_form_field_displays_bad_behavior":true,"module_aikido_story_505453":true,"on_all_stores_aikido_story_505453":true,"module_potential_sql_injection_db_gift_card":true,"on_all_stores_potential_sql_injection_db_gift_card":true,"module_online_order_confirmation_not_showing_class_descriptions_fully":true,"on_all_stores_online_order_confirmation_not_showing_class_descriptions_fully":true,"module_fix_special_order_processing_fee_pickup":true,"on_all_stores_fix_special_order_processing_fee_pickup":true,"module_add_note_column_to_metal_buy_export":true,"on_all_stores_add_note_column_to_metal_buy_export":true,"module_inventory_report_export_fix":true,"on_all_stores_inventory_report_export_fix":true,"module_big_integration_improvements":true,"on_all_stores_big_integration_improvements":true,"module_fix_rto_
323number_of_payments_with_interest":true,"on_all_stores_fix_rto_number_of_payments_with_interest":true,"module_aikido_story_505450_and_505448":true,"on_all_stores_aikido_story_505450_and_505448":true,"module_rto_purchase_discount_respect_rental_credit":true,"on_all_stores_rto_purchase_discount_respect_rental_credit":true,"module_waitlists_not_available_during_classes":true,"on_all_stores_waitlists_not_available_during_classes":true,"module_aikido_story_505445":true,"on_all_stores_aikido_story_505445":true,"module_missing_primary_vendor_in_memo_list":true,"on_all_stores_missing_primary_vendor_in_memo_list":true,"module_fix_customer_modal_line_item_search_exclude_suspended_transactions":false,"module_product_csv_optimized_import":true,"on_all_stores_product_csv_optimized_import":true,"module_fix_cash_rounding_non_cash_tenders":true,"on_all_stores_fix_cash_rounding_non_cash_tenders":true,"module_show_coupon_error_message_on_checkout_page":true,"on_all_stores_show_coupon_error_message_on_checkout_page":true,"module_fix_creating_blank_customers":true,"on_all_stores_fix_creating_blank_customers":true,"module_aikido_story_505440":true,"on_all_stores_aikido_story_505440":true,"module_fix_sale_price_item_on_paused_transaction_resume":true,"on_all_stores_fix_sale_price_item_on_paused_transaction_resume":true,"module_isdirty_null_empty_equiv":true,"on_all_stores_isdirty_null_empty_equiv":true,"module_potential_sql_injection_db_paypal_ipn_log":true,"on_all_stores_potential_sql_injection_db_paypal_ipn_log":true,"module_fix_manual_reward_coupon_dollar_off_display":true,"on_all_stores_fix_manual_reward_coupon_dollar_off_display":true,"module_aikido_story_505454":false,"module_fix_revalidate_coupons_on_item_remove":true,"on_all_stores_fix_revalidate_coupons_on_item_remove":true,"module_fix_rto_validation_for_migration":true,"on_all_stores_fix_rto_validation_for_migration":true,"module_inventory_facade_consume":true,"on_all_stores_inventory_facade_consume":true,"module_fix_order_with_deleted_serial_number":true,"on_all_stores_fix_order_with_deleted_serial_number":true,"module_work_order_external_deposit_paid":true,"on_all_stores_work_order_external_deposit_paid":true,"module_unescaped_input_can_lead_xss_attacks_upload_school_csv":false,"module_unescaped_input_can_lead_xss_attacks_upload_rto_csv":false,"module_disable_custom_customer_field_type_after_saving":true,"on_all_stores_disable_custom_customer_field_type_after_saving":true,"module_fix_consignment_contract_js_errors":true,"on_all_stores_fix_consignment_contract_js_errors":true,"module_fix_broken_image_link_in_signature_email":true,"on_all_stores_fix_broken_image_link_in_signature_email":true,"module_fix_exempt_line_tax_jurisdiction_leak":true,"on_all_stores_fix_exempt_line_tax_jurisdiction_leak":true,"module_fix_online_rental_contract_exchange_status":true,"on_all_stores_fix_online_rental_contract_exchange_status":true,"module_fix_tax_profile_delete_hidden_till_usage":true,"on_all_stores_fix_tax_profile_delete_hidden_till_usage":true,"module_rental_contract_payment_total_off_by_1_cent":true,"on_all_stores_rental_contract_payment_total_off_by_1_cent":true,"module_contract_exchange_profile_cannot_save_if_any_fields_are_set_to_0":true,"on_all_stores_contract_exchange_profile_cannot_save_if_any_fields_are_set_to_0":true,"module_replace_new_line_with_pre_wrap":true,"on_all_stores_replace_new_line_with_pre_wrap":true,"module_simplify_work_order_message":true,"on_all_stores_simplify_work_order_message":true,"module_aikido_story_507499":true,"on_all_stores_aikido_story_507499":true,"module_fix_rto_list_phone_format":true,"on_all_stores_fix_rto_list_phone_format":true,"module_fix_for_markup_pricing_calculation":true,"on_all_stores_fix_for_markup_pricing_calculation":true,"module_bug_sales_by_item_product_search_frontend_filter":true,"on_all_stores_bug_sales_by_item_product_search_frontend_filter":true,"module_fix_online_rental_start_date_on_checkout":true,"on_all_stores_fix_online_rental_start_date_on_checkout":true,"module_fix_rto_split_payment_double_tax":true,"on_all_stores_fix_rto_split_payment_double_tax":true,"module_design_consistency_common_table":true,"on_all_stores_design_consistency_common_table":true,"module_fix_so_items_modal_missing_rows":true,"on_all_stores_fix_so_items_modal_missing_rows":true,"module_aikido_story_ch505462":true,"on_all_stores_aikido_story_ch505462":true,"module_design_consistency_filters":true,"on_all_stores_design_consistency_filters":true,"module_gift_line_item_is_duplicated":true,"on_all_stores_gift_line_item_is_duplicated":true,"module_bug_reverb_price_does_not_change":true,"on_all_stores_bug_reverb_price_does_not_change":true,"module_debug_log_flag":false,"module_bug_add_misc_item_missing_when_creating_work_order_from_customers_screen":true,"on_all_stores_bug_add_misc_item_missing_when_creating_work_order_from_customers_screen":true,"module_fix_bug_google_xml_product_feed_error":true,"on_all_stores_fix_bug_google_xml_product_feed_error":true,"module_bug_reverb_refund_is_not_updating_transaction":true,"on_all_stores_bug_reverb_refund_is_not_updating_transaction":true,"module_print_button_radius_fix":true,"on_all_stores_print_button_radius_fix":true,"module_shopify_sync_active_products_only":true,"on_all_stores_shopify_sync_active_products_only":true,"module_account_ownership_change":true,"on_all_stores_account_ownership_change":true,"module_mark_declined_stripe_cards_bad":false,"module_fix_web_class_coupon_id_matching":true,"on_all_stores_fix_web_class_coupon_id_matching":true,"module_receive_files_module_does_not_send_files":true,"on_all_stores_receive_files_module_does_not_send_files":true,"module_async_manage_serialized_inventory_report_cache":true,"on_all_stores_async_manage_serialized_inventory_report_cache":true,"module_jm_insurance_product_type":true,"on_all_stores_jm_insurance_product_type":true,"module_fix_aikido_507894":true,"on_all_stores_fix_aikido_507894":true,"module_bug_unable_to_upload_image_product_from_computer":true,"on_all_stores_bug_unable_to_upload_image_product_from_computer":true,"module_fix_bug_issues_with_gift_card_reports_exp
323ort_dates":true,"on_all_stores_fix_bug_issues_with_gift_card_reports_export_dates":true,"module_consignment_price_not_updating_for_conditional_pricing":true,"on_all_stores_consignment_price_not_updating_for_conditional_pricing":true,"module_fix_term_still_display_on_invoice_despite_disabled_form_styles":true,"on_all_stores_fix_term_still_display_on_invoice_despite_disabled_form_styles":true,"module_fix_adyen_bad_shipping":true,"on_all_stores_fix_adyen_bad_shipping":true,"module_aikido_potential_sql_injection_507487":false,"module_prevent_editing_voided_consignment_inventory":true,"on_all_stores_prevent_editing_voided_consignment_inventory":true,"module_bug_work_order_text_message_not_being_received":true,"on_all_stores_bug_work_order_text_message_not_being_received":true,"module_fix_no_qty_for_web_rentals":true,"on_all_stores_fix_no_qty_for_web_rentals":true,"module_fix_form_style_receipt_with_taxes":true,"on_all_stores_fix_form_style_receipt_with_taxes":true,"module_improve_logging_for_osr_create":true,"on_all_stores_improve_logging_for_osr_create":true,"module_rto_report_batch_next_payment":true,"on_all_stores_rto_report_batch_next_payment":true,"module_design_consistency_appraisals":false,"module_comparison_report_polish":true,"on_all_stores_comparison_report_polish":true,"module_inventory_report_filter_select_all_fix":true,"on_all_stores_inventory_report_filter_select_all_fix":true,"module_bug_sales_by_item_report_consolidated_on_hand":true,"on_all_stores_bug_sales_by_item_report_consolidated_on_hand":true,"module_rental_contracts_export_issue":true,"on_all_stores_rental_contracts_export_issue":true,"module_design_consistency_quotes":false,"module_design_consistency_classes":false,"module_eod_v2_printout_changes":true,"on_all_stores_eod_v2_printout_changes":true,"module_update_store_checklist_copy_store_list":true,"on_all_stores_update_store_checklist_copy_store_list":true,"module_prevent_stale_stripe_account_update":true,"on_all_stores_prevent_stale_stripe_account_update":true,"module_bug_unable_to_reorder_product_variants":true,"on_all_stores_bug_unable_to_reorder_product_variants":true,"module_bug_not_loading_all_metal_buy_transactions":true,"on_all_stores_bug_not_loading_all_metal_buy_transactions":true,"module_saving_customer_profile_sends_opt_in_email":true,"on_all_stores_saving_customer_profile_sends_opt_in_email":true,"module_design_consistency_custom_form_styles":false,"module_bug_geller_services_not_getting_markup_percentage":false,"module_trial_purchase_cannot_be_closed":true,"on_all_stores_trial_purchase_cannot_be_closed":true,"module_flag_to_settings_completed_status_for_orders":true,"on_all_stores_flag_to_settings_completed_status_for_orders":true,"module_inventory_facade_release_reserve":true,"on_all_stores_inventory_facade_release_reserve":true,"module_remove_api2cart":true,"on_all_stores_remove_api2cart":true,"module_bug_invoice_starting_number_not_being_reflected":true,"on_all_stores_bug_invoice_starting_number_not_being_reflected":true,"module_ccf_bulk_issue":true,"on_all_stores_ccf_bulk_issue":true,"module_rental_profiles_export":true,"on_all_stores_rental_profiles_export":true,"module_block_checkout_on_dynamic_tax_failure":true,"on_all_stores_block_checkout_on_dynamic_tax_failure":true,"module_bug_missing_columns_in_products_export":true,"on_all_stores_bug_missing_columns_in_products_export":true,"module_fix_aikido_db_customer_3892":false,"module_fix_aikido_db_customer_2299":true,"on_all_stores_fix_aikido_db_customer_2299":true,"module_fix_aikido_db_customer_2045":false,"module_end_of_day_shipping_changes":true,"on_all_stores_end_of_day_shipping_changes":true,"module_flag_to_settings_trial_purchases":true,"on_all_stores_flag_to_settings_trial_purchases":true,"module_bug_serialized_item_exchange_caused_incorrect_stock_count":true,"on_all_stores_bug_serialized_item_exchange_caused_incorrect_stock_count":true,"module_fix_checkout_apply_all_coupon_stacking":true,"on_all_stores_fix_checkout_apply_all_coupon_stacking":true,"module_design_consistency_loaner":false,"module_void_uncaptured_transaction":true,"on_all_stores_void_uncaptured_transaction":true,"module_geller_blue_book_
323split_labor_parts":false,"module_export_rental_contract_profile_id":true,"on_all_stores_export_rental_contract_profile_id":true,"module_design_consistency_layaways":false,"module_add_rental_contract_profile_id_field_to_product_import":true,"on_all_stores_add_rental_contract_profile_id_field_to_product_import":true,"module_fix_till_duplicate_transaction_nonce_check":true,"on_all_stores_fix_till_duplicate_transaction_nonce_check":true,"module_sitemap_xml_url_encode":true,"on_all_stores_sitemap_xml_url_encode":true,"module_flag_to_settings_review_default":true,"on_all_stores_flag_to_settings_review_default":true,"module_qbo_vendor_consignment_memo_replace_jewel360":true,"on_all_stores_qbo_vendor_consignment_memo_replace_jewel360":true,"module_bug_reverb_integration_already_set_to_publish":true,"on_all_stores_bug_reverb_integration_already_set_to_publish":true,"module_rto_template_balance_due_includes_late_fee":true,"on_all_stores_rto_template_balance_due_includes_late_fee":true,"module_add_shipping_tax_collected_to_sales_tax_report":true,"on_all_stores_add_shipping_tax_collected_to_sales_tax_report":true,"module_fix_rto_print_fields":true,"on_all_stores_fix_rto_print_fields":true,"module_fix_serialized_inventory_edit_respect_trade_in":true,"on_all_stores_fix_serialized_inventory_edit_respect_trade_in":true,"module_content_tagging":false,"module_web_editor_2026":false,"module_comparison_report_sales_rep":true,"on_all_stores_comparison_report_sales_rep":true,"module_fix_wo_page_load_speed":true,"on_all_stores_fix_wo_page_load_speed":true,"module_fix_product_page_variant_pslr_match":true,"on_all_stores_fix_product_page_variant_pslr_match":true,"module_fix_gift_cards_invalid_purchase_date":true,"on_all_stores_fix_gift_cards_invalid_purchase_date":true,"module_transfers_list_date_bound_query":false,"module_fix_common_table_empty_rows":true,"on_all_stores_fix_common_table_empty_rows":true,"module_migration_for_cof":false,"module_spreadsheet_migration_framework":true,"on_all_stores_spreadsheet_migration_framework":true,"module_checkout_sync_safe_redirect":true,"on_all_stores_checkout_sync_safe_redirect":true,"module_work_order_job_list_print":true,"on_all_stores_work_order_job_list_print":true,"module_inventory_facade_serialized_delete":false,"module_fix_serial_number_update_pos_item_relation":true,"on_all_stores_fix_serial_number_update_pos_item_relation":true,"module_web_order_coming_through_as_abandoned_cart":true,"on_all_stores_web_order_coming_through_as_abandoned_cart":true,"module_remove_beta_from_geller_services":true,"on_all_stores_remove_beta_from_geller_services":true,"module_product_with_special_character_duplicating_variants":false,"module_fix_report_permission_sales_details":true,"on_all_stores_fix_report_permission_sales_details":true,"module_fix_scheduled_payment_date_on_summer_time":true,"on_all_stores_fix_scheduled_payment_date_on_summer_time":true,"module_fix_zero_order_capture_payment":true,"on_all_stores_fix_zero_order_capture_payment":true,"module_design_consistency_layaway_modal":false,"module_bulk_301_fix":true,"on_all_stores_bulk_301_fix":true,"module_end_of_day_report_include_transaction_notes":true,"on_all_stores_end_of_day_report_include_transaction_notes":true,"module_inventory_facade_serialized_assign_new_sn":true,"on_all_stores_inventory_facade_serialized_assign_new_sn":true,"module_fix_auto_increase_duplicate_product_quantity_in_till":true,"on_all_stores_fix_auto_increase_duplicate_product_quantity_in_till":true,"module_marketing_email_ai_copilot":true,"module_fix_rto_school_district_order":true,"on_all_stores_fix_rto_school_district_order":true,"module_lapsed_customers_report":false,"module_reverb_variants_arent_sending_over_correctly":true,"on_all_stores_reverb_variants_arent_sending_over_correctly":true,"module_better_physical_image_handling":true,"on_all_stores_better_physical_image_handling":true,"module_additional_logging_on_reverb_refund":true,"on_all_stores_additional_logging_on_reverb_refund":true,"module_design_consistency_consignment_page":false,"module_metal_buy_transaction_details_print_image":true,"on_all_stores_metal_buy_transaction_details_print_image":true,"module_allow_ship_station_package_overpaid_shipping":true,"on_all_stores_allow_ship_station_package_overpaid_shipping":true,"module_fix_work_order_negative_deposit":true,"on_all_stores_fix_work_order_negative_deposit":true,"module_add_notes_field_to_export_on_customers_page":true,"on_all_stores_add_notes_field_to_export_on_customers_page":true,"module_bug_price_on_layaway_item_round_up_after_saving":true,"on_all_stores_bug_price_on_layaway_item_round_up_after_saving":true,"module_auto_
323suggested_products":false,"module_multi_store_product_upload_adjustment":true,"on_all_stores_multi_store_product_upload_adjustment":true,"module_rto_select_all_contracts":true,"on_all_stores_rto_select_all_contracts":true,"module_log_invalid_origin_error":true,"on_all_stores_log_invalid_origin_error":true,"module_fix_so_full_deposit_ignores_line_discount":true,"on_all_stores_fix_so_full_deposit_ignores_line_discount":true,"module_fix_so_pickup_payment_plan_deposit":true,"on_all_stores_fix_so_pickup_payment_plan_deposit":true,"module_unable_to_pick_up_layaway":true,"on_all_stores_unable_to_pick_up_layaway":true,"module_add_notes_field_to_import_on_migration_tools_page":true,"on_all_stores_add_notes_field_to_import_on_migration_tools_page":true,"module_work_order_form_style_declared_value":true,"on_all_stores_work_order_form_style_declared_value":true,"module_vendor_api_store_sales_inventory":false,"module_fix_po_ro_qty_on_hand_reserved_count":true,"on_all_stores_fix_po_ro_qty_on_hand_reserved_count":true,"module_fix_transfers_loading_speed":true,"on_all_stores_fix_transfers_loading_speed":true,"module_bug_gia_does_not_update_loose_stone_details":true,"on_all_stores_bug_gia_does_not_update_loose_stone_details":true,"module_fix_ro_received_qty_so_duplication":true,"on_all_stores_fix_ro_received_qty_so_duplication":true,"module_api_webhook_retry_and_logging":true,"on_all_stores_api_webhook_retry_and_logging":true,"module_enforce_server_tax_on_checkout":true,"on_all_stores_enforce_server_tax_on_checkout":true,"module_fix_trade_in_product_label_price":true,"on_all_stores_fix_trade_in_product_label_price":true,"module_add_notes_field_to_import_on_customer_extid_update":true,"on_all_stores_add_notes_field_to_import_on_customer_extid_update":true,"module_add_jmd_currency":true,"on_all_stores_add_jmd_currency":true,"module_fix_rto_customer_edit_missing_groups":true,"on_all_stores_fix_rto_customer_edit_missing_groups":true,"module_block_checkout_button_while_processing":true,"on_all_stores_block_checkout_button_while_processing":true,"module_form_style_receipt_wo_sales_reps":true,"on_all_stores_form_style_receipt_wo_sales_reps":true,"module_inventory_facade_serialized_update":false,"module_fix_wo_serialized_material_serial":true,"on_all_stores_fix_wo_serialized_material_serial":true,"module_marketing_email_unsubscribeIs_ignored_at_send_time":true,"on_all_stores_marketing_email_unsubscribeIs_ignored_at_send_time":true,"module_vue3_coexistence_playground":true,"on_all_stores_vue3_coexistence_playground":true,"module_locally_sync_exclude_reserved":true,"on_all_stores_locally_sync_exclude_reserved":true,"module_fix_low_inventory_warning_respect_toggle":true,"on_all_stores_fix_low_inventory_warning_respect_toggle":true,"module_shopify_full_refund_via_partial_logic":true,"on_all_stores_shopify_full_refund_via_partial_logic":true,"module_fix_customer_custom_field_store_location_type":true,"on_all_stores_fix_customer_custom_field_store_location_type":true,"module_design_consistency_consignment_modal":false,"module_vue3_coexistence_rto":true,"on_all_stores_vue3_coexistence_rto":true,"module_fix_split_line_jurisdiction_tax_rounding":true,"on_all_stores_fix_split_line_jurisdiction_tax_rounding":true,"module_wo_department_export":true,"on_all_stores_wo_department_export":true,"module_bug_cancelled_web_order_transaction_still_on_eod_report":true,"on_all_stores_bug_cancelled_web_order_transaction_still_on_eod_report":true,"module_void_invoice_transaction_improvements":true,"on_all_stores_void_invoice_transaction_improvements":true,"module_fix_time_clock_report_week_start":true,"on_all_stores_fix_time_clock_report_week_start":true,"module_fix_rto_collections_status_after_close":true,"on_all_stores_fix_rto_collections_status_after_close":true,"module_fix_tiered_coupon_on_website":true,"on_all_stores_fix_tiered_coupon_on_website":true,"module_user_flow_staging_key_in_production":false,"module_storm_widget_customer_context":false,"module_design_consistency_table_performance":true,"on_all_stores_design_consistency_table_performance":true,"module_lapsed_customers_customers_list":true,"on_all_stores_lapsed_customers_customers_list":true,"module_metal_buy_spot_rate_ticker_backend":false,"module_reverb_transliterate_customer_names":true,"on_all_stores_reverb_transliterate_customer_names":true,"module_fix_duplicate_invoice_payments":true,"on_all_stores_fix_duplicate_invoice_payments":true,"module_stripe_to_quilt_payfac":false,"module_surcharging":false,"module_qbo_metal_buy_payout_account":false,"module_fix_coupon_end_date_timezone_offset":true,"on_all_stores_fix_coupon_end_date_timezone_offset":true,"module_product_reserved_count_incorrect":true,"on_all_stores_product_reserved_count_incorrect":true,"module_textarea_template_button_slot":true,"on_all_stores_textarea_template_button_slot":true,"module_vgt_fixed_table_data_cy":true,"on_all_stores_vgt_fixed_table_data_cy":true,"module_nav_dynamic_data_cy":true,"on_all_stores_nav_dynamic_data_cy":true,"module_vue3_coexistence_work_orders":true,"on_all_stores_vue3_coexistence_work_orders":true,"module_fix_coupon_min_purchase_class_addon":true,"on_all_stores_fix_coupon_min_purchase_class_addon":true,"module_fix_coupon_items_not_saving":true,"on_all_stores_fix_coupon_items_not_saving":true,"module_fix_work_order_barcode_url":true,"on_all_stores_fix_work_order_barcode_url":true,"module_shopify_match_import_before_push":true,"on_all_stores_shopify_match_import_before_push":true,"module_vendor_api_store_location_codes":false,"module_add_pennyweight_to_dropdown_metal_info":true,"on_all_stores_add_pennyweight_to_dropdown_metal_info":true,"module_add_hide_empty_wishlist_filter":true,"on_all_stores_add_hide_empty_wishlist_filter":true,"module_fix_aikido_story_517214":true,"on_all_stores_fix_aikido_story_517214":true,"module_adyen_patch_external_payment_id":true,"on_all_stores_adyen_patch_external_payment_id":true,"module_web_ordering_quantity_total":false,"module_weight_uom_for_labels":false,"module_use_openai_responses_api":true,"on_all_stores_use_openai_responses_api":true,"module_vue3_coexistence_seri
323alized_inventory":false,"module_fix_click_outside_detached_target":true,"on_all_stores_fix_click_outside_detached_target":true,"module_fix_customer_coupon_redeemed_display":true,"on_all_stores_fix_customer_coupon_redeemed_display":true,"module_fix_empty_store_s3_bucket":true,"on_all_stores_fix_empty_store_s3_bucket":true,"module_clientbook_sync_self_healing":true,"on_all_stores_clientbook_sync_self_healing":true,"module_aim_order_payment_status_sync":true,"on_all_stores_aim_order_payment_status_sync":true,"module_fix_osr_contract_tax_profile":true,"on_all_stores_fix_osr_contract_tax_profile":true,"module_vue3_coexistence_customers":true,"on_all_stores_vue3_coexistence_customers":true,"module_fix_aikido_518998":true,"on_all_stores_fix_aikido_518998":true,"module_fix_aikido_xss_invoice_pdf":true,"on_all_stores_fix_aikido_xss_invoice_pdf":true,"module_void_uncaptured_by_capture_state":true,"on_all_stores_void_uncaptured_by_capture_state":true,"module_rto_cleanup_schedule_on_contract_close":true,"on_all_stores_rto_cleanup_schedule_on_contract_close":true,"module_deleting_images_product_do_not_remove_them_in_reverb_listing":true,"on_all_stores_deleting_images_product_do_not_remove_them_in_reverb_listing":true,"module_rapid_deposit_fee_payout_report":true,"on_all_stores_rapid_deposit_fee_payout_report":true,"module_add_stash_it_shipping_name":true,"on_all_stores_add_stash_it_shipping_name":true,"module_inventory_facade_transfer":false,"module_preserve_embed_iframe_attributes":true,"on_all_stores_preserve_embed_iframe_attributes":true,"module_mms_rate_limit_handling":true,"on_all_stores_mms_rate_limit_handling":true,"module_validate_rto_cart_on_checkout":true,"on_all_stores_validate_rto_cart_on_checkout":true,"module_ xss_transaction_line_item_mustache_view_model":true,"on_all_stores_ xss_transaction_line_item_mustache_view_model":true,"module_waitlist_report_not_updating_when_customer_is_removed":true,"on_all_stores_waitlist_report_not_updating_when_customer_is_removed":true,"module_fix_rto_exchange_transfer_issues":true,"on_all_stores_fix_rto_exchange_transfer_issues":true,"module_fix_rental_multiple_tax_jurisdictions":true,"on_all_stores_fix_rental_multiple_tax_jurisdictions":true,"module_vue3_coexistence_transfers":true,"on_all_stores_vue3_coexistence_transfers":true,"module_fix_aikido_story_518997":true,"on_all_stores_fix_aikido_story_518997":true,"module_specific_item_types_surcharge":true,"on_all_stores_specific_item_types_surcharge":true,"module_fix_web_coupon_customer_group_restriction":true,"on_all_stores_fix_web_coupon_customer_group_restriction":true,"module_show_card_on_file_decline_reason":true,"on_all_stores_show_card_on_file_decline_reason":true,"module_vue3_coexistence_subscriptions":true,"on_all_stores_vue3_coexistence_subscriptions":true,"module_aikido_story_519003":true,"on_all_stores_aikido_story_519003":true,"module_aikido_story_519002":true,"on_all_stores_aikido_story_519002":true,"module_add_address_to_order_export":true,"on_all_stores_add_address_to_order_export":true,"module_surcharging_transaction_edit_button_adjustment":true,"on_all_stores_surcharging_transaction_edit_button_adjustment":true,"module_fix_manual_payment_due_date_revert":true,"on_all_stores_fix_manual_payment_due_date_revert":true,"module_use_card_token_payment_method_type":true,"on_all_stores_use_card_token_payment_method_type":true,"module_fix_scheduled_sale_round_value_validation":true,"on_all_stores_fix_scheduled_sale_round_value_validation":true,"module_customer_po_delete_unassign_items":true,"on_all_stores_customer_po_delete_unassign_items":true,"module_shipstation_package_id_rates":true,"on_all_stores_shipstation_package_id_rates":true,"module_important_dates_customers_list":true,"on_all_stores_important_dates_customers_list":true,"module_fix_partial_refund_surcharge_amount":true,"on_all_stores_fix_partial_refund_surcharge_amount":true,"module_assemble_modal_to_work_order_module":false,"module_vue3_coexistence_orders":true,"on_all_stores_vue3_coexistence_orders":true,"module_surcharging_reports":true,"on_all_stores_surcharging_reports":true,"module_vue3_coexistence_receiving_orders":true,"on_all_stores_vue3_coexistence_receiving_orders":true,"module_fix_new_product_modal_availability_value":true,"on_all_stores_fix_new_product_modal_availability_value":true,"module_fix_rto_return_after_complete":false,"module_user_login_report_locations":false,"module_aikido_story_517220":true,"on_all_stores_aikido_story_517220":true,"module_add_new_card_reader_name_for_stripe_setup":true,"on_all_stores_add_new_card_reader_name_for_stripe_setup":true,"module_fix_dual_pricing_discount_with_cash_rounding":true,"on_all_stores_fix_dual_pricing_discount_with_cash_rounding":true,"module_rto_import_initial_payments_and_interest":true,"on_all_stores_rto_import_initial_payments_and_interest":true,"module_fix_aikido_sql_quilt_class":true,"on_all_stores_fix_aikido_sql_quilt_class":true,"module_vue3_coexistence_rental_list":true,"on_all_stores_vue3_coexistence_rental_list":true,"module_inventory_history_report_applies_its_date_filter_in_utc":true,"on_all_stores_inventory_history_report_applies_its_date_filter_in_utc":true,"module_capture_after_commit_adyen":false,"module_product_minimum_price":false,"module_handle_cof_blocked_card":true,"on_all_stores_handle_cof_blocked_card":true,"module_fix_aikido_story_520310":true,"on_all_stores_fix_aikido_story_520310":true,"module_fix_aikido_story_520947":true,"on_all_stores_fix_aikido_story_520947":true,"module_vue3_coexistence_inventory_batches":true,"on_all_stores_vue3_coexistence_inventory_batches":true,"module_fix_aikido_story_520309":true,"on_all_stores_fix_aikido_story_520309":true,"module_mixpanel_surcharge":true,"on_all_stores_mixpanel_surcharge":true,"module_bad_emails_bounce_classification":false,"module_care_plans_in_work_order":false,"module_crm_new_client_rework":true,"on_all_stores_crm_new_client_rework":true,"module_quote_data_cy":true,"on_all_stores_quote_data_cy":true,"module_bulk_edit_unit_of_measure":true,"on_all_stores_bulk_edit_unit_of_measure":true,"module_fix_spreadsheet_header_case_sensitivity":true,"on_all_stores_fix_spreadsheet_header_case_sensitivity":true,"module_transfer_received_date_event_time":true,"on_all_stores_transfer_received_date_event_time":true,"module_fix_customer_modal_till_prompt_on_wo_tab":true,"on_all_stores_fix_customer_modal_till_prompt_on_wo_tab":true,"module_prevent_duplicate_consignment_serial_inventory":true,"on_all_stores_prevent_duplicate_consignment_serial_inventory":true,"module_aikido_security_issues_520311":true,"on_all_stores_aikido_security_issues_520311":true,"module_qbo_surcharging":true,"on_all_stores_qbo_surcharging":true,"module_vue3_coexistence_giftcard_list":true,"on_all_stores_vue3_coexistence_giftcard_list":true,"module_default_customer_address_state":true,"on_all_stores_default_customer_address_state":true,"module_po_discount_being_removed_after_going_to_ro":true,"on_all_stores_po_discount_being_removed_after_going_to_ro":true,"module_aim_add_card_on_file_for_invoice_payments":false,"module_fix_quick_assemble_serial_number_field_name":false,"module_marketing_email_require_explicit_opt_in":true,"on_all_stores_marketing_email_require_explicit_opt_in":true,"module_wo_customer_actions_buttons":true,"on_all_stores_wo_customer_actions_buttons":true,"module_handle_adyen_intent_error_status":true,"on_all_stores_handle_adyen_intent_error_status":true,"module_product_page_prev_next_nav":true,"on_all_stores_product_page_prev_next_nav":true,"module_inventory_value_bin_filter_improvements":false,"module_fix_duplicate_loaner_on_wo_save":true,"on_all_stores_fix_duplicate_loaner_on_wo_save":true,"module_surcharging_payout_report":true,"on_all_stores_surcharging_payout_report":true,"module_use_payfac_refund_surcharge_amount":true,"on_all_stores_use_payfac_refund_surcharge_amount":true,"module_clear_till_search_cache_after_transaction":true,"on_all_stores_clear_till_search_cache_after_transaction":true,"module_fix_customer_shipping_address_billing_default_sync":true,"on_all_stores_fix_customer_shipping_address_billing_default_sync":true,"module_form_style_receipt_data_cy":true,"on_all_stores_form_style_receipt_data_cy":true,"module_fix_aikido_sql_migration_cleanup":true,"on_all_stores_fix_aikido_sql_migration_cleanup":true,"module_fix_online_rental_status_active_by_transaction":true,"on_all_stores_fix_online_rental_status_active_by_transaction":true,"module_fix_ro_complete_already_fulfilled_special_order":true,"on_all_stores_fix_ro_complete_already_fulfilled_special_order":true,"module_fix_aikido_story_522749":true,"on_all_stores_fix_aikido_story_522749":true,"module_vue3_coexistence_coupon_usage":true,"on_all_stores_vue3_coexistence_coupon_usage":true,"module_fix_email_dns_records":true,"on_all_stores_fix_email_dns_records":true,"module_fix_aikido_story_523478":true,"on_all_stores_fix_aikido_story_523478":true,"module_vue3_coexistence_top_customers":true,"on_all_stores_vue3_coexistence_top_customers":true,"module_surcharging_adjustment_2":true,"on_all_stores_surcharging_adjustment_2":true,"module_fix_aikido_story_522751":true,"on_all_stores_fix_aikido_story_522751":true,"module_fix_aikido_520308":true,"on_all_stores_fix_aikido_520308":true,"module_fix_aikido_522752":true,"on_all_stores_fix_aikido_522752":true,"module_vendor_api_hide_disabled_stores":true,"on_all_stores_vendor_api_hide_disabled_stores":true,"module_bug_manually_setting_wo_status_completed":false,"module_qbo_deposit_on_account":true,"on_all_stores_qbo_deposit_on_account":true,"module_fix_new_location_resets_store_defaults":true,"on_all_stores_fix_new_location_resets_store_defaults":true,"module_wo_text_ticket_claim_check":true,"on_all_stores_wo_text_ticket_claim_check":true,"module_marketing_blast_honors_list_unsubscribe":false,"module_add_make_model_columns_spreadsheet":false,"module_metal_buy_void_transaction":false,"module_surcharging_adjustment_refund_receipt":true,"on_all_stores_surcharging_adjustment_refund_receipt":true,"module_signature_line_on_receipt_store_copy_is_misaligned":true,"on_all_stores_signature_line_on_receipt_store_copy_is_misaligned":true,"module_aikido_524591":true,"on_all_stores_aikido_524591":true,"module_fix_interac_captured_amount":false,"module_ai_sales_assistant":false,"module_vue3_coexistence_rto_commissions":false,"module_product_list_page_add_hover_to_images":true,"on_all_stores_product_list_page_add_hover_to_images":true,"module_vue3_coexistence_gc_outstanding":false,"module_marketing_email_recency_filter":false,"module_wo_deposit_default_remaining_balance":false,"module_fix_aikido_story_524589":true,"on_all_stores_fix_aikido_story_524589":true,"module_aikido_523480":true,"on_all_stores_aikido_523480":true,"module_website_sales_set_to_authorization_capturing_anyway":false,"module_allow_rto_import_interval_price_not_less_than_financed":false,"module_vue3_coexistence_transactions_needing_payment":false,"module_product_image_content_type_fix":false,"module_top_bar_current_location":false,"module_fix_aikido_story_522750":true,"on_all_stores_fix_aikido_story_522750":true,"module_aikido_523477":true,"on_all_stores_aikido_523477":true,"module_vue3_coexistence_wishlist_list":false,"module_admin_tools_create_store_rework":false,"module_department_custom_ordering":false,"module_void_surcharge_auth_on_price_change":false,"module_fix_osr_rtr_zero_financed_checkout":false,"module_apply_template_global_holder_page":false,"module_vue3_coexistence_bestsellers":false,"module_fix_rto_purchase_security_deposit":false,"module_invoice":true,"module_completed_status_for_orders":false,"module_shopify":false,"module_mms":false,"module_ebay":false,"use_receptive":true,"locally":false,"website_customer_login":true,"captcha_at_checkout":true,"web_allow_discount_stacking":true,"website_pricing":false,"module_out_of_stock_product_card":true,"three_decimal_pricing":false,"displayReportsImagesByDefault":false,"pos_customer_rewards":false,"pos_shift_management":false,"pos_enable_tax_inclusive_pricing":false,"pos_show_tax_breakdown_on_receipt":false,"product_module_item_conditions":false,"product_module_dont_use_item_conditions_online":false,"pos_allow_discount_stacking":true,"printDescriptionOnReceipt":false,"WishlistEnabled":false,"is_responsive":true,"module_show_sku_till_product_search":true,"module_docraptor_test_mode":false,"module_rental_location_tax_integration":false,"admin_domain":false,"checkout_enabled":true}; 324var COLORADO_RETAIL_DELIVERY_FEE = 0.31; 325 </script>
325 326</head> 327<body class="secondaryPageBg"> 328<!-- 43-module.tpl --> 329 330 331 332 333 334<div id="main-website-content" class="secondaryPageDiv"> 335 <!-- Accessibility stuff --> 336 <a href="#skip-navigation" class="sr-only visible-focused">Skip Navigation</a> 337 <a href="/website-accessibility.htm" class="sr-only visible-focused">Website Accessibility</a> 338 339 <!-- column0_components --> 340 <div style="" class=""> 341 <div class="container "> 342 <div class="row paddingLarge" style="position: relative; padding-left: 0px; padding-right: 0px; padding-top: 15px; padding-bottom: 10px; "> 343 344 345 <div class="col-sm-7"><img class="img-responsive" src="https://media.rainpos.com/10439/458x115_tsqlogo_5png.png" alt="" width="458" height="115" align="" /></div> 346<div class="col-md-4 col-sm-5 col-xs-12 pull-right text-center"> 347<div><form action="/module/search_content.htm" method="get" name="frmSearch"><input type="hidden" name="form_version" value="2"><input name="showSearchResults" type="hidden" value="1" /> 348<table style="width: 100%; height: auto; border: 1px solid #c8ccd3;" border="0" cellspacing="0" cellpadding="0"> 349<tbody> 350<tr> 351<td width="100%"><input id="search_keyword" style="width: 100%; height: 100%; background-color: transparent; border: none; padding-left: 10px;" name="search_keyword" size="" type="text" value="" placeholder="Search" /></td> 352<td style="padding: 7px;" align="right"><button class="glyphicon glyphicon-search" name="image" type="image" value="Search"></button></td> 353</tr> 354</tbody> 355</table> 356<div> 357<div></div> 358</div> 359</form></div> 360<div> 361<ul class="list-unstyled round-social1" style="float: left;"> 362<li><a href="https://www.facebook.com/ShinerSquared/" target="_blank"><img src="https://media.rainpos.com/4752/fb.png" alt="" width="16" height="27" align="" /> </a></li> 363</ul> 364</div> 365<div><br /><a href="/module/product.htm?checkout=3" style="color: #5e7b4b !important;"> <span class="fa fa-shopping-cart" style="float: right;"> View Cart </span> </a></div> 366</div> 367 </div> 368 </div> 369</div> 370 371 <!-- navigation --> 372 373<div class="menubg"> 374 <div class="container"> 375 376 <nav id="mainNav" class="navbar navbar-default"> 377 <div class="container-fluid"> 378 379 <!-- Brand and toggle get grouped for better mobile display --> 380 <div class="navbar-header" style="padding-left:15px; padding-right:15px;"> 381 <button type="button" class="navbar-toggle collapsed" style="width: 100%; float: left;" data-toggle="collapse" data-target="#navbar-collapse-1"> 382 <span class="sr-only">Toggle navigation</span> 383 ☰ Menu 384 </button> 385 <!--span class="navbar-brand visible-xs-block" data-toggle="collapse" href="#">Menu</span--> 386 </div> 387 388 <!-- Collect the nav links, forms, and other content for toggling --> 389 <div class="collapse navbar-collapse" id="navbar-collapse-1"> 390 <ul class="nav navbar-nav"> 391 <li><a href="https://www.thesquarequilter.com/" class="mainMenuItem">Home</a></li><li><a href="https://www.thesquarequilter.com/shop.htm" class="mainMenuItem">Shop Online</a></li><li><a href="https://www.thesquarequilter.com/shop/Clearance.htm" class="mainMenuItem">Clearance</a></li><li><a href="https://www.thesquarequilter.com/gift-certificate.htm" class="mainMenuItem">Gift Cert</a></li><li><a href="https://www.thesquarequilter.com/about-us.htm" class="mainMenuItem">About Us</a></li><li><a href="https://www.thesquarequilter.com/classes.htm" class="mainMenuItem">Classes</a></li><li><a href="https://www.thesquarequilter.com/module/events.htm?pageComponentId=1840218&month=current" class="mainMenuItem">Calendar</a></li><li><a href="https://www.thesquarequilter.com/events.htm" class="mainMenuItem">Birthdays</a></li><li><a href="https://www.thesquarequilter.com/quilting.htm" class="mainMenuItem">Longarm Quilting</a></li><li><a href="https://www.thesquarequilter.com/contact.htm" class="mainMenuItem">Contact Us</a></li><li><a href="https://www.thesquarequilter.com/c/account/login.php" class="mainMenuItem">Login</a></li> 392 </ul> 393 </div> 394 395 </div> 396 </nav> 397 </div> 398</div> 399 400 401 <!-- Accessibility stuff --> 402 <span id="skip-navigation"></span> 403 404 <!-- column2_components --> 405 <div style="" class=""> 406 <div class="container "> 407 <div class="row paddingXLarge" style="position: relative; padding-left: 0px; padding-right: 0px; padding-top: 20px; padding-bottom: 20px; "> 408 409 410 <div align=center style="text-align:center;"> 411 412 </div> 413 414 415<link href="/bootflat/css/fontawesome-pro-6.5.2-web/css/all.min.css" rel="stylesheet" type='text/css'> 416 417 418<style> 419 .cart-base { 420 color: #333 !important; 421 } 422 423 .text-danger, .has-error { 424 border-color: #a94442; 425 } 426 427 .error-label { 428 color: #a94442; 429 } 430 .text-hover-red:hover { 431 color: red !important; 432 } 433 434 .text-muted { 435 color: #bbb !important; 436 } 437 438 .display-block { 439 display: block; 440 } 441 442 .cartContainer { 443 background: #FFF; 444 } 445 446 .cartTable { 447 width:100%; 448 display: table; 449 } 450 451 .cartRow { 452 display: table-row; 453 } 454 455 .cartCell { 456 display: table-cell; 457 padding-left: 0; 458 padding-right: 10px; 459 vertical-align: middle; 460 border-top: 1px solid #eee; 461 padding-top: 5px; 462 padding-bottom: 5px; 463 } 464 465 .cp-title { 466 height: 30px; 467 font-weight: 600; 468 font-size: 14px; 469 line-height: 14px 470 } 471 472 .cp-title, .cp-footer { 473 border-top: 0 !important; 474 } 475 476 .cp-footer { 477 padding-top: 0; 478 height: 20px; 479 padding-bottom: 16px; 480 } 481 482 .border-top-white { 483 border-top: 1px solid white !important; 484 } 485 486 .cp-row { 487 height: 50px; 488 } 489 490 .selling-points-group { 491 box-sizing: content-box; 492 border: 1px solid #ddd; 493 border-radius: 5px; 494 padding: 16px; 495 width: 65%; 496 font-size: 12px; 497 line-height: 14px; 498 margin-top: 8px; 499 } 500 .cartTableHeader { 501 border-top: 2px solid #ddd; 502 border-bottom: 1px solid #ddd; 503 font-weight: bold; 504 font-size: larger; 505 padding-top: 5px; 506 padding-bottom: 5px; 507 background: #eee; 508 padding-right: 10px; 509 } 510 511 .cartTableHeader .cartTableSubHeader { 512 font-weight: normal; 513 font-size: small; 514 } 515 516 .cartImage, .cartDelete { 517 text-align: center; 518 } 519 520 .cartItems { 521 text-align: left; 522 } 523 524 .cartPrice, .cartQuantity, .cartAmount { 525 text-align: right; 526 } 527 528 .qtySelectCell { 529 width: 100px; 530 height: 24px; 531 padding: 0; 532 } 533 534 .cp-info-group { 535 margin: 0; 536 } 537 538 .cp-info-item { 539 border: none; 540 padding: 0; 541 height: 14px; 542 } 543 544 .cp-info-item:last-child { 545 margin-bottom: 0 !important; 546 } 547 548 .cp-info-btn { 549 cursor:pointer; 550 } 551 552 .cp-terms-conditions { 553 list-style-type: none; 554 } 555 556 .mobileDivider { 557 display: none; 558 } 559 560 .contactInfo > tbody > tr > td { 561 padding: 5px; 562 } 563 564 .leftAlignDark { 565 background: #f6f6f6; 566 padding: 20px 10px 5px 20px; 567 text-align: left; 568 } 569 570 .leftAlignLight { 571 padding: 20px 10px 5px 20px; 572 text-align: left; 573 } 574 575 .infoHeader { 576 padding: 20px 10px 5px 0 !important; 577 } 578 579 580 #gift-cards-coupons .row-divider { 581 margin-top: 10px; 582 margin-bottom: 10px; 583 } 584 #gift-cards-coupons #gift-card-coupon-label-cell { 585 padding: 10px 8px 4px 8px; 586 } 587 #gift-cards-coupons #gift-card-coupon-label { 588 /*padding: 10px;*/ 589 font-size: 13px; 590 color: #7f7f7f; 591 } 592 #gift-cards-coupons #gift-card-coupon-msgs { 593 text-align: right; 594 } 595 #gift-cards-coupons #gift-card-applied-msg { 596 font-size: 12px; 597 vertical-align: middle; 598 color: #64b92a; 599 } 600 #gift-card-coupon-error-msg, #coupon-applied-msg { 601 padding-left: 5px; 602 } 603 #gift-cards-coupons #coupon-applied-msg { 604 font-size: 12px; 605 vertical-align: middle; 606 color: #64b92a; 607 } 608 #gift-cards-coupons #gift-card-coupon-error-msg { 609 font-size: 12px; 610 vertical-align: middle; 611 color: #c0392b; 612 } 613 #gift-cards-coupons #gift-card-coupon-code { 614 width: 270px; 615 margin-left: 5px; 616 margin-right: 5px; 617 border: 1px solid #dfdfdf; 618 border-radius: 5px; 619 padding: 6px 0px 6px 12px; 620 font-size: 14px; 621 vertical-align: middle; 622 } 623 #gift-cards-coupons #gift-card-coupon-code-apply-cell { 624 padding-right: 8px; 625 vertical-align: top; 626 } 627 #gift-cards-coupons #gift-card-coupon-code-apply { 628 font-size: 14px; 629 vertical-align: middle; 630 border-radius: 4px; 631 padding: 6px 12px 6px 12px; 632 color: #333 !important; 633 background-color: #fff !important; 634 border: 1px solid !important; 635 } 636 #gift-cards-coupons #gift-card-coupon-code-apply:disabled { 637 opacity: .65; 638 } 639 #gift-cards-coupons #gift-card-coupon-code-apply:hover:enabled { 640 background-color: #e6e6e6 !important; 641 border: 1px solid #bfbfbf !important; 642 } 643 #gift-cards-coupons ::placeholder { 644 color: #bfbfbf; 645 opacity: 1; 646 } 647 #gift-cards-coupons .gc-coupon-data-loading { 648 color: #7f7f7f; 649 } 650 #gift-cards-coupons .gc-coupon-data-loading .fa-spinner { 651 font-size: 18px; 652 } 653 654 .gift-card-coupon-identifier { 655 font-weight: bold; 656 } 657 658 .jm { 659 width: 98%; 660 padding: 10px 8px 4px 8px; 661 } 662 663 .quote-contact-wrapper { 664 display: grid; 665 align-items: center; 666 padding: 0; 667 margin: 0 0 8px 0; 668 } 669 670 .quote-contact-div { 671 display: flex; 672 align-items: center; 673 justify-content: end; 674 } 675 676 .quote-contact-button { 677 border: none; 678 background-color: white; 679 } 680 681 .quote-contact-button-wrapper { 682 display: flex; 683 align-items: center; 684 justify-content: space-between; 685 gap: 4px; 686 } 687 688 #isInsuranceSwitchedOn, #isLuxsuranceSwitchedOn { 689 margin: 0; 690 } 691 692 #insuranceContactInformation { 693 margin: 0; 694 } 695 696 .review-contact-information { 697 text-align: right; 698 } 699 700 .review-contact-information-span { 701 cursor: pointer; 702 } 703 704 #text-msg-notifications { 705 font-weight: normal; 706 } 707 #text-msg-notifications i { 708 font-size: 16px; 709 } 710 711 712 @media (min-width: 768px) { 713 .contactInfo { 714 width: 80%; 715 } 716 } 717 718 @media (min-width: 768px) { 719 .contactInfo { 720 width: 90%; 721 } 722 .largeHidden { 723 display: none !important; 724 } 725 .shippingOption { 726 display: inline-block !important; 727 width: inherit !important; 728 } 729 } 730 731 @media (max-width: 767px) { 732 .contactInfo { 733 width: 100%; 734 } 735 .mobileDivider { 736 display: block !important; 737 border-top: 1px solid #ccc; 738 } 739 .mobileClear { 740 clear: both; 741 } 742 .smallHidden { 743 display: none !important; 744 } 745 .cartRow, .cartCell { 746 display: block; 747 } 748 .cartCell { 749 height:inherit; 750 border: 0px; 751 padding-top:10px; 752 padding-bottom:10px; 753 } 754 .cartAmount { 755 display: none !important; 756 } 757 .cartImage { 758 width: 50px; 759 float: right; 760 text-align: left; 761 } 762 .cartItems, .cartPrice { 763 width: 235px; 764 float: left; 765 text-align: left; 766 } 767 .cartPrice { 768 font-weight: bold; 769 } 770 .cartQuantity { 771 width: 200px; 772 float: left; 773 text-align: left; 774 } 775 .qtySelect { 776 width: 45px; 777 text-align: center; 778 } 779 .cartDelete { 780 width: 70px; 781 float: right; 782 text-align: right; 783 } 784 .shippingOption { 785 width: 100%; 786 } 787 788 /*New bootstrap styles for mobile*/ 789 .checkout-card .form-group { 790 margin-bottom: 0px; 791 } 792 793 .checkout-card input { 794 margin-bottom: 10px; 795 } 796 797 .checkout-card select { 798 margin-bottom: 10px; 799 } 800 } 801 802 .row-divider { 803 padding-top: 5px; 804 padding-bottom: 5px; 805 padding-right: 10px; 806 text-align: right; 807 } 808 809 .small-link { 810 text-decoration: none; 811 font-size: 90%; 812 } 813 814 .checkout-btn { 815 font-size: 18px; 816 line-height: 1.33; 817 border-radius: 6px; 818 text-decoration: none; 819 color: #fff !important; 820 821 display: inline-block; 822 text-align: center; 823 white-space: nowrap; 824 vertical-align: middle; 825 touch-action: manipulation; 826 cursor: pointer; 827 -moz-user-select: none; 828 -webkit-user-select: none; 829 border: 1px solid transparent; 830 831 padding-top: 10px; 832 padding-bottom: 10px; 833 padding-left: 40px !important; 834 padding-right: 40px !important; 835 margin-bottom: 0; 836 transition-duration: 0.2s; 837 background: #5bc050 !important; 838 } 839 840 .checkout-btn[disabled] { 841 opacity: 0.75 !important; 842 } 843 844 [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { 845 display: none !important; 846 } 847 848 .mt-10 { 849 margin-top: 5px; 850 } 851 852 .card { 853 background-color: #f6f6f6; 854 padding: 20px; 855 border-radius: 5px; 856 } 857 858 .new-header { 859 margin-bottom: 20px; 860 } 861 862 .express-checkout .express-checkout-title { 863 margin-top: 10px; 864 } 865 866 .express-checkout .express-checkout-panel { 867 margin-top: 10px; 868 margin-bottom: 20px; 869 border: 1px solid #ddd; 870 box-shadow: 0 1px 1px rgba(0, 0, 0, .05); 871 padding: 15px; 872 border-radius: 4px; 873 } 874 875 .express-checkout .express-checkout-panel .express-checkout-info { 876 margin-top: 10px; 877 } 878 879 .express-checkout .express-checkout-buttons { 880 display: flex; 881 flex-direction: column; 882 align-items: center; 883 overflow: hidden; 884 } 885 886 .express-checkout .express-checkout-buttons .express-checkout-button { 887 overflow: hidden; 888 max-width: 300px; 889 width: 100%; 890 } 891 892 .express-checkout .express-checkout-buttons .express-checkout-button:not(:last-child) { 893 margin: 0 0 20px 0; 894 } 895 896 @media screen and (min-width: 576px) { 897 .express-checkout .express-checkout-buttons { 898 flex-direction: row; 899 justify-content: flex-start; 900 } 901 902 .express-checkout .express-checkout-buttons .express-checkout-button { 903 width: 33%; 904 } 905 906 .express-checkout .express-checkout-buttons .express-checkout-button:not(:last-child) { 907 margin: 0 20px 0 0; 908 } 909 } 910 911 .discounts-block { 912 display: flex; 913 flex-direction: row-reverse; 914 } 915 916 .discount-divider { 917 width: 30%; 918 } 919 920 .divider-block-title { 921 text-align: left; 922 border-top: 1px solid lightgrey; 923 padding: 5px 0 3px 0; 924 } 925 926 .warning-box { 927 background-color: #fcf8e3; 928 color: #8a6d3b; 929 font-family: Roboto, sans-serif; 930 font-size: 12px; 931 line-height: 1.17; 932 border: 0.5px solid #8a6d3b; 933 border-radius: 4px; 934 padding: 7px; 935 text-align: left; 936 margin-bottom: 8px; 937 } 938 939 .item-box { 940 border: 1px solid #dfdfdf; 941 border-radius: 4px; 942 padding: 8px; 943 margin-bottom: 8px; 944 } 945 946 .discount-item { 947 display: flex; 948 justify-content: space-between; 949 } 950 951 .gift-card-coupon-code-span { 952 color: grey; 953 text-align: left; 954 } 955 956 .not-applied-coupon > .gift-card-coupon-code-span, 957 .not-applied-coupon > .discount-item > .discount-item-title { 958 opacity: 0.6; 959 text-align: left; 960 width:
960 60%; 961 } 962 963 .discount-item-title { 964 text-align: left; 965 width: 65%; 966 } 967 968 .not-applied-amount-label { 969 color: darkgrey; 970 font-weight: normal; 971 } 972 973 .times-close { 974 color: black; 975 } 976 977 .times-close:hover { 978 color: red; 979 } 980 981 .discount-amount { 982 font-weight: bold; 983 color: red; 984 } 985 986 .coupon-error-msg { 987 text-align: left; 988 } 989</style> 990 991<style> 992 .inner-label { 993 padding-right: 15px; 994 padding-left: 30px; 995 } 996 .row-grid { 997 margin-bottom: 10px; 998 text-align: right;; 999 } 1000 1001 .text-danger { 1002 border-color: #a94442; 1003 } 1004 1005 .text-hover-red:hover { 1006 color: red; 1007 } 1008 .text-hover-blue:hover { 1009 color: blue; 1010 } 1011 1012 .display-block { 1013 display: block; 1014 } 1015 1016 .cartTableSubHeader { 1017 font-weight: normal; 1018 font-size: small; 1019 } 1020 1021 .panel-default { 1022 background: #f6f6f6 !important; 1023 } 1024 1025 .btn-sm { 1026 background: #ccc !important; 1027 } 1028 1029 .btn-lg { 1030 padding-left: 40px; 1031 padding-right: 40px; 1032 } 1033 1034 .card-default{ 1035 color: #bbb; 1036 } 1037 .card-visa{ 1038 color: #037AFC; 1039 } 1040 .card-mastercard{ 1041 color: #FFA600; 1042 } 1043 .card-amex{ 1044 color: #1696D3; 1045 } 1046 .card-discover{ 1047 color: #FF680F; 1048 } 1049 .form-control{ 1050 margin-bottom: 15px; 1051 } 1052 .error-label{ 1053 position: relative; 1054 top: -12px; 1055 } 1056 1057 .option_radio { 1058 display: inline-block; 1059 vertical-align: top; 1060 } 1061 1062 .option_content { 1063 display: inline-block; 1064 margin-left: 5px;
1065 margin-top: 1px; 1066 margin-bottom: 5px; 1067 } 1068 1069 [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { 1070 display: none !important; 1071 } 1072</style> 1073 1074<div class="container cartContainer cart-base" ng-app="checkoutApp" ng-controller="checkoutCtrl" ng-init="Init('https://www.thesquarequilter.com', '8A3AEDEF-D732-4A73-B865-858624BD0C40', 'US', 'IL', '', true, [])" ng-cloak > 1075 <div> 1076 <!-- Header --> 1077 <div class="row"> 1078 <div ng-show="InitInfo.CheckoutSettings.HeaderType == 'Custom'" class="col-sm-12"> 1079 <div id="customheader"></div> 1080 </div> 1081 </div> 1082 1083 1084 <div ng-if="CartData.message" class="alert alert-warning"> 1085 <button type="button" class="close" ng-click="ErrorMessageClose()">×</button> 1086 {{CartData.message}} 1087 </div> 1088 1089 <div ng-if="!requireAddressInfo() && !requireContactInfo()"> 1090 <div ng-if="InventoryMessages.RemovedItems || InventoryMessages.InventoryChanges" class="alert alert-warning"> 1091 <button type="button" class="close" ng-click="InventoryMessagesClose()">×</button> 1092 <div ng-if="InventoryMessages.RemovedItems"> 1093 We're sorry, but inventory is no longer available for the following items. Your cart has been adjusted and the product(s) removed 1094 <ul><li ng-repeat="msg in InventoryMessages.RemovedItems">{{msg}}</li></ul> 1095 </div> 1096 <div ng-if="InventoryMessages.InventoryChanges"> 1097 <div ng-repeat="msg in InventoryMessages.InventoryChanges">{{msg}}</div> 1098 </div> 1099 </div> 1100 1101 <div ng-if="AvailabilityMessages.StoreAvailableItems" class="alert alert-warning"> 1102 <button type="button" class="close" ng-click="AvailabilityMessagesClose()">×</button> 1103 <div ng-if="AvailabilityMessages.StoreAvailableItems.length > 0"> 1104 We're sorry, but an item in your cart is no longer available online but may still be available in store. Your cart has been adjusted and the following product(s) have been removed: 1105 <ul><li ng-repeat="msg in AvailabilityMessages.StoreAvailableItems track by $index">{{msg}}</li></ul> 1106 </div> 1107 </div> 1108 </div> 1109 1110 <!-- Initial Cart Contents --> 1111 <div ng-if="!isWebPayment()"> 1112 <div class="h1">Shopping Cart</div> 1113 </div> 1114 <br> 1115 <div ng-if="StatusInfo.Initializing"> 1116 <i class="fa fa-spinner fa-pulse fa-2x"></i> 1117 </div> 1118 <div ng-if="showContinueShopping()"> 1119 <span ng-show="!CartStatus.Valid" > 1120 Your cart is empty. 1121 </span> 1122 <a href="{{InitInfo.ShopUrl}}/checkout/sync.php?redirect=" style="btn">Click Here</a> to continue shopping.</h4> 1123 </div> 1124 <div ng-if="isCardProcessorRain()" ng-show="showExpressCheckout()" class="row"> 1125 <div class="col-sm-7"> 1126 <div class="express-checkout"> 1127 <div class="express-checkout-title"> 1128 <strong>Express Checkout</strong> 1129 </div> 1130 1131 <div class="express-checkout-panel"> 1132 <div class="express-checkout-buttons"> 1133 <div class="express-checkout-button" id="payment-request-button-wrapper" style="display: none;"> 1134 <div id="payment-request-button"> 1135 <!-- A Stripe Element will be inserted here. --> 1136 </div> 1137 </div> 1138 </div> 1139 1140 <div class="express-checkout-info"> 1141 If you choose Apple Pay or Google Pay, 1142 you will need to set your shipping preferences in the window 1143 that opens after you click the button. 1144 Settings below will not display there. 1145 </div> 1146 </div> 1147 </div> 1148 </div> 1149 </div> 1150 1151 <!-- Initial Items List --> 1152 <div ng-if="!showHostedCheckout()"> 1153 <br> 1154 <!-- Item Summary --> 1155<div class="cartTable" ng-if="showItemSummary()"> 1156 <div class="cartRow smallHidden"> 1157 <div class="cartCell cartTableHeader cartImage"></div> 1158 <div class="cartCell cartTableHeader cartItems">Items</div> 1159 <div class="cartCell cartTableHeader cartPrice">Price</div> 1160 <div class="cartCell cartTableHeader cartQuantity">Quantity</div> 1161 <div class="cartCell cartTableHeader cartAmount">Amount</div> 1162 <div class="cartCell cartTableHeader cartDelete"></div> 1163 </div> 1164 <div class="cartRow" data-cy="web-cart-item-row" ng-cloak ng-repeat="item in CartData.Items"> 1165 <div class="mobileDivider largeHidden"></div> 1166 <div class="cartCell cartImage"><img ng-if="item.image && item.image != 'undefined'" ng-src="{{item.image}}" style="vertical-align: middle; max-height: 50px; max-width: 50px; padding-right: 8px;"></div> 1167 <div class="cartCell cartItems" data-cy="web-cart-item-title">
1168 <span ng-if="item.condition"> 1169 {{item.title}} {{item.condition.title}} 1170 </span> 1171 <span ng-if="!item.condition"> 1172 {{item.title}} 1173 <span ng-if="item.type === 'class' && item.class_date"> - {{item.class_date}}</span> 1174 </span> 1175 <span ng-if="!item.quantity_updating && item.type == 'rental'"> 1176 - {{item.id}} 1177<!-- Below doesn't work--> 1178<!-- <a ng-click="editRental(item)" class="btn-default" style="cursor: pointer;" title="Edit Rental">--> 1179<!-- <i class="fa fa-edit fa-lg"></i>--> 1180<!-- </a>--> 1181 </span> 1182 <span ng-if="item.package_items" ng-repeat="pitem in item.package_items"> 1183 <br> - {{pitem.title}} 1184 </span> 1185 <span ng-if="item.class_attendees.length"> 1186 <br> - Attendees: 1187 <span ng-repeat="name in item.class_attendees"> 1188 {{name}} 1189 </span> 1190 </span> 1191<style> 1192 a.subscription-details-btn, a.subscription-details-btn:active, a.subscription-details-btn:visited { 1193 font-size: 13px; 1194 text-decoration: none; 1195 } 1196 table.subscription-details { 1197 font-size: 13px; 1198 margin: 5px 0; 1199 } 1200 .details-hidden { 1201 visibility: hidden; 1202 height: 0; 1203 } 1204</style> 1205 1206<div ng-if="item.type === 'subscription'"> 1207 <a ng-click="showSubscriptionDetails = !showSubscriptionDetails" class="subscription-details-btn" href="javascript:void(0);"> 1208 <i class="fa" ng-class="{'fa-caret-down': showSubscriptionDetails, 'fa-caret-right': !showSubscriptionDetails}"></i> 1209 View Subscription Details 1210 </a> 1211 <div ng-class="{'details-hidden': !showSubscriptionDetails}"> 1212 <style> 1213 table.subscription-details span.small-subtitle { 1214 font-size: 10px; 1215 } 1216 table.subscription-details tr td:first-child { 1217 padding: 0 15px 0 0; 1218 } 1219</style> 1220 1221<table class="subscription-details"> 1222 <tr> 1223 <td>{{item.subscriptionData.labels.adverb}} Price:</td> 1224 <td>{{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}</td> 1225 </tr> 1226 <tr> 1227 <td>Subscription Length:</td> 1228 <td>{{item.subscriptionData.subscription_length}} {{item.subscriptionData.labels.plural}}</td> 1229 </tr> 1230 <tr> 1231 <td>Start/End Date:</td> 1232 <td>{{item.subscriptionData.start_date}} - {{item.subscriptionData.end_date}}</td> 1233 </tr> 1234 <tr> 1235 <td>Registration Fee <span class="small-subtitle">(One Time)</span>:</td> 1236 <td>{{item.subscriptionData.registration_fee | currency:InitInfo.CurrencySymbol2}}</td> 1237 </tr> 1238 <tr> 1239 <td>Previous {{item.subscriptionData.labels.plural}}:</td> 1240 <td> 1241 <span ng-if="item.subscriptionData.previous_items_cnt > 0"> 1242 {{item.subscriptionData.previous_items_cnt}} x {{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}} 1243 </span> 1244 <span ng-if="item.subscriptionData.previous_items_cnt == 0">Not Included</span> 1245 </td> 1246 </tr> 1247 <tr> 1248 <td>Delivery Method:</td> 1249 <td ng-switch="item.subscriptionData.delivery_type"> 1250 <span ng-switch-when="ship"> 1251 Shipped - {{item.subscriptionData.shipping_fee | currency:InitInfo.CurrencySymbol2}} 1252 </span> 1253 <span ng-switch-default>In-Store Pickup</span> 1254 </td> 1255 </tr> 1256 <tr ng-if="item.subscriptionData.delivery_type === 'ship'"> 1257 <td>Address:</td> 1258 <td>{{item.subscriptionData.address}}</td> 1259 </tr> 1260 <tr> 1261 <td><strong>Total {{item.subscriptionData.labels.adverb}}:</strong></td> 1262 <td> 1263 <strong>{{item.subscriptionData.total_per_kit | currency:InitInfo.CurrencySymbol2}}</strong> 1264 </td> 1265 </tr> 1266 <tr> 1267 <td><strong>Due Today:</strong></td> 1268 <td> 1269 <strong>{{item.subscriptionData.due_today | currency:InitInfo.CurrencySymbol2}}</strong> 1270 </td> 1271 </tr> 1272</table> 1273 </div> 1274</div>
1275 <span ng-if="item.discount_eligible === 'false' && item.is_consignment && StatusInfo.IsCouponEntered" class="text-danger display-block"> 1276 This item is not eligible for discounts 1277 </span> 1278 </div> 1279 <div ng-if="!showAsGST()" class="cartCell cartPrice" data-cy="web-cart-item-price">{{getItemPriceForWeb(item) | currency:InitInfo.CurrencySymbol2}}</div> 1280 <div ng-if="showAsGST()" class="cartCell cartPrice" data-cy="web-cart-item-price">{{getItemGstPrice(item) | currency:InitInfo.CurrencySymbol2}}</div> 1281 <div class="mobileClear largeHidden"></div> 1282 <div class="cartCell cartQuantity" data-cy="web-cart-item-quantity"> 1283 <div ng-if="showQuantityAsSelector(item)" style="white-space: nowrap;"> 1284 <select data-cy="web-cart-item-quantity-select" ng-model="item.qty_integer" ng-options="opt.id as opt.name for opt in item.integer_options" class="qtySelect" style="width: 75px; height: 24px; padding: 0;" ng-change="QuantityChanged(item)"> 1285 </select> 1286 <span> 1287 <select ng-if="item.qty_type == 'fraction'" ng-model="item.qty_remainder" ng-options="opt.id as opt.name for opt in item.remainder_options" class="qtySelect" style="width: 100px; height: 24px; padding: 0;" ng-change="QuantityChanged(item)"> 1288 </select> 1289 <span>{{ getItemUnitType(item); }}</span> 1290 </span> 1291 </div> 1292 <div ng-if="showQuantityAsNumber(item)"> 1293 {{item.qty_integer}} 1294 </div> 1295 <i ng-if="item.quantity_updating" class="fa fa-spinner fa-pulse"></i> 1296 </div> 1297 <div ng-if="!showAsGST()" class="cartCell cartAmount" data-cy="web-cart-item-amount">{{getItemTotalForWeb(item) | currency:InitInfo.CurrencySymbol2}}</div> 1298 <div ng-if="showAsGST()" class="cartCell cartAmount" data-cy="web-cart-item-amount">{{getItemGstTotal(item) | currency:InitInfo.CurrencySymbol2}}</div> 1299 <div class="cartCell cartDelete"> 1300 <a href="" data-cy="web-cart-item-remove" ng-if="!item.removing" ng-click="ItemRemove(item)" class="text-muted text-hover-red"><span class="smallHidden"><i class="fa fa-times"></i></span><span class="largeHidden">remove</span></a> 1301 <i ng-if="item.removing" class="fa fa-spinner fa-pulse"></i> 1302 </div> 1303 <div class="mobileClear largeHidden"></div> 1304 </div> 1305 </div> 1306 1307 1308 1309 1310<!-- Items Subtotal --> 1311 1312<div ng-if="!showAsGST()" class="cartTableHeader ng-cloak" style="text-align: right;" data-cy="web-cart-subtotal"> 1313 Subtotal: {{SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}} 1314</div> 1315<div ng-if="showAsGST()" class="cartTableHeader ng-cloak" style="text-align: right;" data-cy="web-cart-subtotal"> 1316 Subtotal: {{GST_SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}} 1317</div> 1318 1319 <!-- Gift Cards and Coupons --> 1320 <div ng-show="isProcessingEnabled()"> 1321 <div ng-if="shouldShowGiftCardsCoupons()" id="gift-cards-coupons"> 1322 1323 <!-- Gift Card or Coupon Code Lookup --> 1324 <table> 1325 <tr> 1326 <td colspan="3"> 1327 <div ng-show="isProductInCart()" class="quote-contact-wrapper"> 1328 </div> 1329 </td> 1330 </tr> 1331 <tr> 1332 <td style="width: 98%;"> 1333 </td> 1334 <td id="gift-card-coupon-label-cell" style="width: 1%;"> 1335 </td> 1336 <td style="width: 1%;"> 1337 </td> 1338 </tr> 1339 <tr> 1340 <td id="gift-card-coupon-msgs"> 1341 <span> 1342 <!-- Loading -->
1343 <span ng-cloak ng-show="giftCardOrCouponDataState == DATA_STATE_LOADING" class="gc-coupon-data-loading"><i class="fa fa-spinner fa-spin"></i></span> 1344 </span> 1345 </td> 1346 <td> 1347 <input id="gift-card-coupon-code" data-cy="web-cart-coupon-input" ng-model="StatusInfo.giftCardOrCouponCode" ng-keydown="giftCardOrCouponCodeKeyDown($event)" type="text" placeholder="Enter Gift Card or Coupon Code"> 1348 <span> 1349 <!-- Messages --> 1350 <span id="gift-card-coupon-error-msg" ng-cloak ng-show="shouldShowGiftCardCouponErrorMsg()"><i class="fa fa-ban"></i> {{giftCardCouponMsg}}</span> 1351 <span id="gift-card-applied-msg" ng-cloak ng-show="shouldShowGiftCardAppliedMsg()" ><i class="fa fa-check"></i> Gift Card Applied</span> 1352 <span id="coupon-applied-msg" ng-cloak ng-show="shouldShowCouponAppliedMsg()" ><i class="fa fa-check"></i> Coupon Added</span> 1353 </span> 1354 </td> 1355 <td id="gift-card-coupon-code-apply-cell"> 1356 <button id="gift-card-coupon-code-apply" data-cy="web-cart-coupon-apply" ng-disabled="!shouldEnableGiftCardCouponApplyBtn()" ng-click="getGiftCardOrCoupon()" type="button" class="btn btn-default">Apply</button> 1357 </td> 1358 </tr> 1359 </table> 1360 1361 <!-- Coupons --> 1362 <div class="discounts-block"> 1363 <div ng-show="CartData.Coupons.length > 0" class="row-divider discount-divider"> 1364 <div class="divider-block-title"> 1365 Coupons 1366 </div> 1367 <div ng-if="showOnlyHighestDiscountWarning() || showDontApplyOnSaleItemsWarning()" class="alert alert-warning warning-box"> 1368 <span ng-if="showOnlyHighestDiscountWarning()"> 1369 Only a single coupon with the highest savings will be applied. 1370 </span> 1371 <span ng-if="showDontApplyOnSaleItemsWarning()"> 1372 Coupons do not apply to On Sale Items 1373 </span> 1374 </div> 1375 <div ng-repeat="c in CartData.Coupons | orderBy: (isApplyHighestSavingCouponsMode() ? ['notApplied', 'notEligible'] : [])" class="item-box" ng-class="{'not-applied-coupon' : !isCouponAvailable(c)}"> 1376 <div class="discount-item"> 1377 <div class="discount-item-title"> 1378 <a href="" ng-click="openCouponDetailsModal(c)"><span class="gift-card-coupon-identifier">{{c.title}}</span></a> 1379 </div> 1380 <div class="discount-amount"> 1381 <span ng-if="isCouponAvailable(c)">-{{c.discount | currency:InitInfo.CurrencySymbol2}} </span> 1382 <span ng-if="!isCouponAvailable(c)" class="not-applied-amount-label">{{ couponUnavailabilityMessage(c) }} </span> 1383 <a href="" ng-show="!StatusInfo.CouponUpdating" ng-click="removeCoupon(c.couponId)" class="text-muted text-hover-red"><i class="fa fa-times times-close"></i></a> 1384 <i ng-show="StatusInfo.CouponUpdating" class="fa fa-spinner fa-pulse"></i> 1385 </div> 1386 </div> 1387 <div class="gift-card-coupon-code-span"> 1388 {{c.couponCode}} 1389 </div> 1390 <div ng-if="isShippingCoupon(c)" class="discount-amount coupon-error-msg">
1390{{couponStatusMessage}}</div> 1391 </div> 1392 </div> 1393 </div> 1394 <div class="discounts-block"> 1395 <!-- Gift Cards --> 1396 1397 <div ng-if="CartData.GiftCards.length > 0" class="row-divider discount-divider"> 1398 <div class="divider-block-title"> 1399 Gift Cards 1400 </div> 1401 <div ng-repeat="gc in CartData.GiftCards" class="item-box"> 1402 <div class="discount-item"> 1403 <div> 1404 <span class="gift-card-coupon-identifier">{{gc.title}}</span> 1405 </div> 1406 <div class="discount-amount"> 1407 -{{gc.Amount | currency:InitInfo.CurrencySymbol2}} 1408 <a href="" ng-show="!StatusInfo.GiftCardUpdating" ng-click="removeGiftCard(gc.id)" class="text-muted text-hover-red"><i class="fa fa-times times-close"></i></a> 1409 <i ng-show="StatusInfo.GiftCardUpdating" class="fa fa-spinner fa-pulse"></i> 1410 </div> 1411 </div> 1412 <div class="gift-card-coupon-code-span"> 1413 {{gc.number}} 1414 </div> 1415 </div> 1416 </div> 1417 </div> 1418 </div> 1419 1420 <!-- Checkout Options --> 1421 <div align="right"> 1422 <div ng-show="showSecureOrPaypal()" class="row-divider" style="display: inline-block; text-align:center;"> 1423 <br> 1424 1425 <span ng-if="allowCreditCardCheckout() && isCardProcessorNMI()"> 1426 <button ng-click="GoToCheckoutUrl()" class="checkout-btn" data-cy="web-cart-checkout-button"> 1427 Secure Checkout <i class="button-icon-right fa fa-caret-right"></i> 1428 </button> 1429 </span> 1430 1431 <span ng-if="isCardProcessorVantiv()"> 1432 <button id="checkout-vantiv" data-cy="web-cart-checkout-button" ng-click="CartDone(PROCESSOR_VANTIV)" class="checkout-btn"> 1433 Checkout <i class="button-icon-right fa fa-caret-right"></i> 1434 </button> 1435 </span> 1436 1437 <span ng-if="isCardProcessorRain()"> 1438 <button id="checkout-rain" data-cy="web-cart-checkout-button" ng-click="CartDone(PROCESSOR_RAIN)" class="checkout-btn"> 1439 Checkout <i class="button-icon-right fa fa-caret-right"></i> 1440 </button> 1441 </span> 1442 1443 <span ng-if="isCardProcessorQuiltAdyen()"> 1444 <button id="checkout-rain" data-cy="web-cart-checkout-button" ng-click="CartDone(PROCESSOR_QUILT_ADYEN)" class="checkout-btn"> 1445 Checkout <i class="button-icon-right fa fa-caret-right"></i> 1446 </button> 1447 </span> 1448 1449 <div ng-if="showPaypalButtonOnCart()" style="padding:10px;"> 1450 <p><strong>- OR -</strong></p> 1451 <img id="checkout-paypal" ng-click="CartDone('paypal')" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-medium.png" style="margin-right:7px; cursor: pointer;"> 1452 </div> 1453 1454 <br> 1455 </div> 1456 1457 <div ng-show="isCartTotalExceeded()" class="mt-10">Please contact our store for payment options on your purchase.</div> 1458 </div> 1459 </div> 1460 <div ng-if="!isProcessingEnabled()"> 1461 <p> </p> 1462 <p>Online checkout is currently disabled. Please call {{InitInfo.Store.phone}} to place an order.</p> 1463 </div> 1464 </div> 1465 <div ng-show="showHostedCheckout()"> 1466 <style> 1467 1468 #shippingInStorePickupOptions .nav-pills>li>a { 1469 border: solid #ddd 1px; 1470 color: #337ab7 !important; 1471 } 1472 1473 #shippingInStorePickupOptions .nav-justified>li { 1474 padding: 0 10px; 1475 } 1476 1477 1478 #shippingInStorePickupOptions .nav-pills>li.active>a { 1479 position: relative; 1480 color: #fff !important; 1481 background: #337ab7; 1482 border-color: #337ab7; 1483 } 1484 1485 #shippingInStorePickupOptions .nav-pills>li.active>a:hover { 1486 color: #fff !important; 1487 } 1488 1489 @media (min-width: 768px) { 1490 #shippingInStorePickupOptions .nav-pills>li.active>a:before { 1491 position: absolute; 1492 content: ''; 1493 bottom: -10px; 1494 left: 0; 1495 right: 0; 1496 margin: 0 auto; 1497 width: 0; 1498 height: 0; 1499 border-style: solid; 1500 border-width: 10px 10px 0 10px; 1501 border-color: #337ab7 transparent transparent transparent; 1502 } 1503 } 1504 1505 #shippingInStorePickupOptions .well { 1506 background-color: #fff; 1507 } 1508 1509 #shippingInStorePickupOptions .form-group { 1510 margin-bottom: 5px; 1511 } 1512 1513 .tab-options .nav-pills>li>a { 1514 border: solid #ddd 1px; 1515 color: #337ab7 !important; 1516 } 1517 1518 .tab-options .nav-justified>li { 1519 padding: 0 10px; 1520 } 1521 1522 .tab-options .nav-pills>li.active>a { 1523 position: relative; 1524 color: #fff !important; 1525 background: #337ab7; 1526 border-color: #337ab7; 1527 } 1528 1529 .tab-options .nav-pills>li.active>a:hover { 1530 color: #fff !important; 1531 } 1532 1533 @media (min-width: 768px) { 1534 .tab-options .nav-pills>li.active>a:before { 1535 position: absolute; 1536 content: ''; 1537 bottom: -10px; 1538 left: 0; 1539 right: 0; 1540 margin: 0 auto; 1541 width: 0; 1542 height: 0; 1543 border-style: solid; 1544 border-width: 10px 10px 0 10px; 1545 border-color: #337ab7 transparent transparent transparent; 1546 } 1547 } 1548 1549 .tab-options .well { 1550 background-color: #fff; 1551 } 1552 1553 .tab-options .form-group { 1554 margin-bottom: 5px; 1555 } 1556
1557 a.subscription-details-btn, a.subscription-details-btn:active, a.subscription-details-btn:visited { 1558 font-size: 13px; 1559 text-decoration: none; 1560 } 1561 table.subscription-details { 1562 font-size: 13px; 1563 margin: 5px 0; 1564 } 1565 table.subscription-details tr td:first-child { 1566 padding: 0 15px 0 0; 1567 } 1568 table.subscription-details span.small-subtitle { 1569 font-size: 10px; 1570 } 1571 .dynamic_tax_error { 1572 color: #939ca6; 1573 } 1574 1575 #gift-card-coupon-code-apply { 1576 color: #333 !important; 1577 background-color: #fff !important; 1578 border: 1px solid !important; 1579 } 1580 1581 .divider-checkout-block-title { 1582 text-align: left; 1583 margin-bottom: 10px; 1584 } 1585 1586 .divider-checkout-block-gc-title { 1587 text-align: left; 1588 } 1589 1590 .messages-coupon-gc { 1591 font-size: 12px; 1592 } 1593 1594 #gift-card-coupon-msgs > #coupon-applied-msg, #gift-card-applied-msg { 1595 font-size: 12px; 1596 vertical-align: middle; 1597 color: #64b92a; 1598 } 1599 1600 #gift-card-coupon-msgs > #gift-card-coupon-error-msg { 1601 font-size: 12px; 1602 vertical-align: middle; 1603 color: #c0392b; 1604 } 1605 1606 .row-divider-checkout { 1607 padding-bottom: 5px; 1608 text-align: right; 1609 } 1610 1611 .quote-contact-checkout-button { 1612 border: none; 1613 background-color: #f6f6f6; 1614 } 1615 1616 .review-contact-information-checkout { 1617 text-align: left; 1618 padding-left: 23px; 1619 } 1620 1621 .checkout-marketing-emails-checkbox { 1622 margin-top: -10px; 1623 display: block; 1624 } 1625 1626 .terms-fallback-panel { 1627 background: #f5f5f5; 1628 border: 1px solid #e3e3e3; 1629 border-radius: 4px; 1630 margin-bottom: 20px; 1631 vertical-align: text-top; 1632 } 1633 1634 .divider-row { 1635 display: flex; 1636 align-items: center; 1637 gap: 8px; 1638 margin: 12px 0; 1639 } 1640 1641 .divider-line { 1642 flex: 1; 1643 height: 1px; 1644 background: #e5e7eb; 1645 } 1646 1647 .divider-text { 1648 color: #6b7280; 1649 } 1650 1651 .saved-cards-container { 1652 border: 1px solid #e5e7eb; 1653 border-radius: 6px; 1654 padding: 12px; 1655 background-color: #fff; 1656 max-height: 200px; 1657 overflow-y: auto; 1658 } 1659 1660 .saved-cards-header { 1661 display: flex; 1662 padding: 0 8px 8px; 1663 font-weight: 600; 1664 } 1665 1666 .saved-cards-col-name { 1667 flex: 1; 1668 } 1669 1670 .saved-cards-col-exp { 1671 width: 20%; 1672 text-align: left; 1673 } 1674 1675 .saved-card-row { 1676 display: flex; 1677 align-items: center; 1678 padding: 8px; 1679 border-top: 1px solid #f3f4f6; 1680 box-sizing: border-box; 1681 transition: background 0.2s, border 0.2s; 1682 } 1683 1684 .saved-card-row.saved-card-selected { 1685 background: #e8f3ff; 1686 border: 1px solid #9ac7ff; 1687 border-radius: 6px; 1688 } 1689 1690 .saved-card-label { 1691 display: flex; 1692 align-items: center; 1693 gap: 8px; 1694 flex: 1; 1695 min-width: 0; 1696 margin: 0; 1697 cursor: pointer; 1698 } 1699 1700 .saved-card-label input[type="radio"] { 1701 margin-top: 0; 1702 position: relative; 1703 top: 0; 1704 } 1705 1706 .saved-card-info { 1707 min-width: 0; 1708 } 1709 1710 .saved-card-title { 1711 font-weight: bold; 1712 overflow: hidden; 1713 text-overflow: ellipsis; 1714 white-space: nowrap; 1715 } 1716 1717 .saved-card-last4, 1718 .saved-card-exp { 1719 font-weight: normal; 1720 color: #6b7280; 1721 } 1722 1723 .saved-card-expdate { 1724 flex: 0 0 20%; 1725 font-weight: bold; 1726 } 1727 1728 .nickname-group { 1729 margin-bottom: 16px; 1730 } 1731 1732 .nickname-label { 1733 display: flex; 1734 gap: 6px; 1735 align-items: baseline; 1736 font-weight: bold; 1737 margin-bottom: 6px; 1738 } 1739 1740 .nickname-optional { 1741 font-size: 12px; 1742 font-weight: normal; 1743 color: #6b7280; 1744 } 1745 1746 .nickname-input { 1747 border: 1px solid #d1d5db; 1748 border-radius: 6px; 1749 padding: 8px 10px; 1750 font-size: 14px; 1751 transition: border-color 0.2s ease; 1752 } 1753 1754 .nickname-input:focus { 1755 outline: none; 1756 border-color: #3b82f6; 1757 box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15); 1758 } 1759 1760 .payment-wrapper { 1761 position: relative; 1762 } 1763 1764 .payment-overlay { 1765 position: absolute; 1766 inset: 0; 1767 background: rgba(255, 255, 255, 0.3); 1768 cursor: pointer; 1769 z-index: 10; 1770 border-radius: 4px; 1771 transition: background 0.2s ease; 1772 } 1773 1774 .payment-overlay:hover { 1775 background: rgba(255, 255, 255, 0.3); 1776 } 1777</style> 1778 1779<!-- Main Checkout --> 1780<div class="row" ng-show="showMainCheckout()"> 1781 <div class="col-sm-7"> 1782 1783 <!-- Error messages --> 1784 1785 <div ng-if="StatusInfo.ErrorMessage" class="alert alert-danger" data-cy="web-checkout-error-top"> 1786 <button type="button" class="close" ng-click="ErrorMessageClose()" data-cy="web-checkout-error-top-close">×</button> 1787 {{StatusInfo.ErrorMessage}} 1788 </div> 1789 1790 <div ng-if="CartData.Message" class="alert alert-warning" data-cy="web-checkout-cart-message"> 1791 <button type="button" class="close" ng-click="ErrorMessageClose()">×</button> 1792 {{CartData.Message}} 1793 </div> 1794 1795 <div ng-if="InventoryMessages.RemovedItems || InventoryMessages.InventoryChanges" class="alert alert-warning" data-cy="web-checkout-inventory-message"> 1796 <button type="button" class="close" ng-click="InventoryMessagesClose()">×</button> 1797 <div ng-if="InventoryMessages.RemovedItems.length > 0"> 1798 We're sorry, but inventory is no longer available for the following items. Your cart has been adjusted and the product(s) removed 1799 <ul><li ng-repeat="msg in InventoryMessages.RemovedItems">{{msg}}</li></ul> 1800 </div> 1801 <div ng-if="InventoryMessages.InventoryChanges.length > 0"> 1802 <div ng-repeat="msg in InventoryMessages.InventoryChanges">{{msg}}</div> 1803 </div> 1804 </div> 1805 1806 <div ng-if="AvailabilityMessages.StoreAvailableItems" class="alert alert-warning" data-cy="web-checkout-availability-message"> 1807 <button type="button" class="close" ng-click="AvailabilityMessagesClose()">×</button> 1808 <div ng-if="AvailabilityMessages.StoreAvailableItems.length > 0">
1809 We're sorry, but an item in your cart is no longer available online but may still be available in store. Your cart has been adjusted and the following product(s) have been removed: 1810 <ul><li ng-repeat="msg in AvailabilityMessages.StoreAvailableItems track by $index">{{msg}}</li></ul> 1811 </div> 1812 </div> 1813 1814 <div ng-if="StatusInfo.DynamicTaxError" class="alert alert-danger" data-cy="web-checkout-error-tax"> 1815 {{StatusInfo.DynamicTaxError}} 1816 </div> 1817 <!-- Initial Cart Contents --> 1818 1819 <div ng-show="!isCartValid()" class="panel panel-default ng-hide"> 1820 <div class="panel-body"> 1821 <h4>Your cart is empty. <a href="{{InitInfo.ShopUrl}}/checkout/sync.php" style="btn">Click Here</a> to continue shopping.</h4> 1822 </div> 1823 </div> 1824 1825 <!-- Mobile Items --> 1826 1827 <div class="panel panel-default visible-xs"> 1828 <div ng-if="StatusInfo.Initializing" class="panel-body"> 1829 <i class="fa fa-spinner fa-pulse fa-2x"></i> 1830 </div> 1831 <table ng-if="!StatusInfo.Initializing" class="table"> 1832 1833 1834<thead> 1835<tr> 1836 <td><strong>Description</strong></td> 1837 <td><strong>Quantity</strong></td> 1838 <td colspan="2"><strong>Amount</strong></td> 1839</tr> 1840</thead> 1841<tbody ng-repeat="item in CartData.Items"> 1842<tr> 1843 <td colspan="4" style="border-bottom: 0; padding-bottom: 0;"> 1844 <span ng-if="item.condition"> 1845 {{item.title}} ({{item.condition.title}}) 1846 </span> 1847 1848 <span ng-if="!item.condition"> 1849 {{item.title}} 1850 <span ng-if="item.type === 'class' && item.class_date"> - {{item.class_date}}</span> 1851 </span> 1852 1853 <span ng-if="item.discount_eligible === 'false' && item.is_consignment && StatusInfo.IsCouponEntered" class="text-danger display-block"> 1854 This item is not eligible for discounts 1855 </span> 1856 <span ng-if="!item.quantity_updating && item.type == 'rental'"> 1857 - {{item.id}} 1858 </span> 1859 <span ng-if="item.package_items" ng-repeat="pitem in item.package_items"> 1860 <br> - {{pitem.title}} 1861 </span> 1862 <span ng-if="item.class_attendees.length"> 1863 <br> - Attendees: 1864 <span ng-repeat="name in item.class_attendees"> 1865 {{name}} 1866 </span> 1867 </span> 1868 </td> 1869</tr> 1870<tr> 1871 <td style="border-top: 0;"> 1872 <img ng-if="item.image" ng-src="{{item.image}}" style="height: 50px; padding-right: 8px;"> 1873 1874 </td> 1875 <td style="vertical-align: middle; border-top: 0;"> 1876 <div ng-if="showQuantityAsSelector(item)" class="form-inline"> 1877 <select ng-model="item.qty_integer" ng-options="opt.id as opt.name for opt in item.integer_options" class="form-control" style="max-width: 75px; height: 24px; padding: 0; margin-bottom: 0px !important;" ng-change="QuantityChanged(item)"> 1878 </select> 1879 1880 <span ng-if="item.qty_type == 'fraction'"> 1881 <select ng-model="item.qty_remainder" ng-options="opt.id as opt.name for opt in item.remainder_options" class="form-control" style="max-width: 85px; height: 24px; padding: 0; margin-bottom: 0px !important;" ng-change="QuantityChanged(item)"> 1882 </select> 1883 <span ng-if="item.measure_unit == 'Meter'">Metres</span> 1884 <span ng-if="item.measure_unit != 'Meter'">{{item.measure_unit}}s</span> 1885 </span> 1886 </div> 1887 <div ng-if="showQuantityAsNumber(item)"> 1888 {{item.qty_integer}} 1889 </div> 1890 <i ng-if="item.quantity_updating" class="fa fa-spinner fa-pulse"></i> 1891 </td> 1892 1893 <td ng-if="!showAsGST()" style="vertical-align: middle; border-top: 0;">{{getItemPrice(item) | currency:InitInfo.CurrencySymbol2}}</td> 1894 1895 <td style="vertical-align: middle; border-top: 0;"> 1896 <div class="cartCell cartDelete"> 1897 <a href="#" ng-if="!item.removing" ng-click="ItemRemove(item)" class="text-muted text-hover-red"><span class="smallHidden"><i class="fa fa-times"></i></span><span class="largeHidden">remove</span></a> 1898 <i ng-if="item.removing" class="fa fa-spinner fa-pulse"></i> 1899 </div> 1900 </td> 1901 <td ng-if="showAsGST()" style="vertical-align: middle; border-top: 0;">{{getItemGstTotal(item) | currency:InitInfo.CurrencySymbol2}}</td> 1902</tr> 1903<tr ng-if="item.type === 'subscription'"> 1904 <td colspan="4" style="border-bottom: 0;padding: 8px;border-top: 0;">
1905 <a ng-click="showSubscriptionDetails = !showSubscriptionDetails" class="subscription-details-btn" href="javascript:void(0);"> 1906 <i class="fa" ng-class="{'fa-caret-down': showSubscriptionDetails, 'fa-caret-right': !showSubscriptionDetails}"></i> 1907 View Subscription Details 1908 </a> 1909 <div ng-show="showSubscriptionDetails"> 1910 <table class="subscription-details"> 1911 <tr> 1912 <td>{{item.subscriptionData.labels.adverb}} Price:</td> 1913 <td>{{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}</td> 1914 </tr> 1915 <tr> 1916 <td>Subscription Length:</td> 1917 <td>{{item.subscriptionData.subscription_length}} {{item.subscriptionData.labels.plural}}</td> 1918 </tr> 1919 <tr> 1920 <td>Start/End Date:</td> 1921 <td>{{item.subscriptionData.start_date}} - {{item.subscriptionData.end_date}}</td> 1922 </tr> 1923 <tr> 1924 <td>Registration Fee <span class="small-subtitle">(One Time)</span>:</td> 1925 <td>{{item.subscriptionData.registration_fee | currency:InitInfo.CurrencySymbol2}}</td> 1926 </tr> 1927 <tr> 1928 <td>Previous {{item.subscriptionData.labels.plural}}:</td> 1929 <td> 1930 <span ng-if="item.subscriptionData.previous_items_cnt > 0"> 1931 {{item.subscriptionData.previous_items_cnt}} x {{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}} 1932 </span> 1933 <span ng-if="item.subscriptionData.previous_items_cnt == 0">Not Included</span> 1934 </td> 1935 </tr> 1936 <tr> 1937 <td>Delivery Method:</td> 1938 <td ng-switch="item.subscriptionData.delivery_type"> 1939 <span ng-switch-when="ship"> 1940 Shipped - {{item.subscriptionData.shipping_fee | currency:InitInfo.CurrencySymbol2}} 1941 </span> 1942 <span ng-switch-default>In-Store Pickup</span> 1943 </td> 1944 </tr> 1945 <tr ng-if="item.subscriptionData.delivery_type === 'ship'"> 1946 <td>Address:</td> 1947 <td>{{item.subscriptionData.address}}</td> 1948 </tr> 1949 <tr> 1950 <td><strong>Total {{item.subscriptionData.labels.adverb}}:</strong></td> 1951 <td> 1952 <strong>{{item.subscriptionData.total_per_kit | currency:InitInfo.CurrencySymbol2}}</strong> 1953 </td> 1954 </tr> 1955 <tr> 1956 <td><strong>Due Today:</strong></td> 1957 <td> 1958 <strong>{{item.subscriptionData.due_today | currency:InitInfo.CurrencySymbol2}}</strong> 1959 </td> 1960 </tr> 1961 </table> 1962 </div> 1963 </td> 1964</tr> 1965</tbody> 1966 </table> 1967 </div> 1968 1969 <!-- Show Contact Info --> 1970 <div ng-form="contactForm" ng-show="showContactInfo()" class="panel panel-default ng-hide"> 1971 <div class="panel-body"> 1972 1973 <!-- Validation Messages --> 1974 <div ng-show="!inStorePickup() && (ShippingStatus.MessagesShow && ShippingStatus.NotValidMessages.length > 0 || ContactStatus.MessagesShow && ContactStatus.NotValidMessages.length > 0)" class="row"> 1975 <div class="col-xs-12 text-danger"> 1976 <span ng-repeat="message in ContactStatus.NotValidMessages"><label>{{message}}</label><br></span> 1977 </div> 1978 <div class="col-xs-12 text-danger"> 1979 <span ng-repeat="message in ShippingStatus.NotValidMessages"><label>{{message}}</label><br></span> 1980 </div> 1981 </div> 1982 1983 <div class="row"> 1984 <div class="col-xs-12"> 1985 <label>Contact Information</label> 1986 </div> 1987 </div> 1988 1989 <div class="row"> 1990 <div ng-class="FormFieldErrorClass('contactForm', 'email', contactForm)" class="col-sm-6"> 1991 <input required 1992 id="billing_email" 1993 data-cy="web-checkout-contact-email" 1994 name="email" 1995 type="email" 1996 ng-model="BillingInfo.Email" 1997 class="form-control" 1998 placeholder="Email" 1999 ng-focus="InitToolTip($event)" 2000 data-toggle="tooltip" 2001 ng-blur="updateCouponsByCustomerGroups()" 2002 title="Email Address"> 2003 <label ng-if="FormFieldError('contactForm', 'email', contactForm)" class="control-label error-label" data-cy="web-checkout-contact-email-error"> 2004 Please enter a valid email 2005 </label> 2006 <label ng-if="isSubscribeToMarketingEmailsEnabled()" class="checkout-marketing-emails-checkbox" id="text-msg-notifications"> 2007 <input class="ng-pristine ng-untouched ng-valid" id="subscribeToMarketingEmails" data-cy="web-checkout-subscribe-marketing" type="checkbox" ng-click="toggleSubscribeToMarketingEmails()"> 2008 <small for="subscribeToMarketingEmails"> 2009 Sign me up for News and Offers 2010 </small> 2011 </label> 2012 </div> 2013 <div ng-class="FormFieldErrorClass('contactForm', 'phone', contactForm)" class="col-sm-6"> 2014 <input 2015 id="billing_phone" 2016 data-cy="web-checkout-contact-phone" 2017 required 2018 phone-number 2019 ng-model="BillingInfo.Phone" 2020 ng-focus="InitToolTip($event)" 2021 name="phone" 2022 type="text" 2023 data-toggle="tooltip" 2024 title="Phone Number" 2025 class="form-control" 2026 > 2027 <label ng-if="FormFieldError('contactForm', 'phone', contactForm)" class="control-label error-label" data-cy="web-checkout-contact-phone-error"> 2028 Please enter a valid phone number 2029 </label> 2030 <label style="margin-top: -10px; display: block;" id="text-msg-notifications" ng-if="isTextMessagingSupported()"> 2031 <input type="checkbox" ng-model="CheckoutInfo.sendTextNotifications" class="ng-pristine ng-untouched ng-valid"> 2032 <small>Get order update texts</small> 2033 <i class="fa fa-mobile" aria-hidden="true"></i> 2034 </label> 2035 </div> 2036 </div> 2037 </div> 2038 </div> 2039 2040 <!-- Shipping Information --> 2041 <div ng-form="shippingForm" ng-show="showShippingForm() && isShippingRequired()" class="panel panel-default ng-hide"> 2042 <div class="panel-body"> 2043 2044 <div ng-if="InitInfo.wholesale.checkout_enabled"> 2045 <div class="row"> 2046 <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_first_name', shippingForm)" class="col-sm-6"> 2047 <input ng-required="!isPickup()" 2048 capitalize-first 2049 id="shipping_first_name" data-cy="web-checkout-shipping-first-name" 2050 name="shipping_first_name" 2051 type="text" 2052 ng-model="ShippingInfo.FirstName" 2053 class="form-control" 2054 placeholder="First Name" 2055 ng-focus="InitToolTip($event)" 2056 data-toggle="tooltip" 2057 title="First Name"> 2058 <label ng-if="FormFieldError('shippingForm', 'shipping_first_name', shippingForm)" class="control-label error-label"> 2059 Please enter a first name 2060 </label> 2061 </div> 2062 <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_last_name', shippingForm)" class="col-sm-6" > 2063 <input ng-required="!isPickup()" 2064 capitalize-first 2065 id="shipping_last_name" data-cy="web-checkout-shipping-last-name" 2066 name="shipping_last_name" 2067 type="text" 2068 ng-model="ShippingInfo.LastName" 2069 class="form-control" 2070 placeholder="Last Name" 2071 ng-focus="InitToolTip($event)" 2072 data-toggle="tooltip" 2073 title="Last Name"> 2074 <label ng-if="FormFieldError('shippingForm', 'shipping_last_name', shippingForm)" class="control-label error-label"> 2075 Please enter a last name 2076 </label> 2077 </div> 2078 </div> 2079 2080 <div class="row"> 2081 <div class="col-sm-6"> 2082 <input capitalize-first 2083 id="company_name" data-cy="web-checkout-shipping-company" 2084 name="company_name" 2085 type="text" 2086 ng-model="ShippingInfo.company_name" 2087 class="form-control" 2088 placeholder="Company Name" 2089 ng-focus="InitToolTip($event)" 2090 data-toggle="tooltip" 2091 title="Company Name"> 2092 </div> 2093 </div> 2094 </div> 2095 2096 <div id="shippingInStorePickupOptions"> 2097 2098 <div ng-if="areShippingOptionsRequired()"> 2099 <label>Shipping and Pickup Options</label> 2100 </div> 2101 2102 <!-- Shipping Nav tabs --> 2103 <ul class="nav nav-pills nav-justified" role="tablist" id="shippingTabs"> 2104 <li role="presentation" class="active" ng-if="isShippingTabVisible()"> 2105 <a href="#shippingOptions" aria-controls="shippingOptions" role="tab" data-toggle="pill">
2106 <span class="fa fa-truck fa-fw"></span> Shipping Options 2107 </a> 2108 </li> 2109 <li role="presentation" ng-if="isLocalDeliveryEnabled() && isLocalDeliveryOptionsProvided"> 2110 <a href="#localDelivery" aria-controls="localDelivery" role="tab" data-toggle="pill" id="localDeliveryTab"> 2111 <span class="fa fa-home fa-fw"></span> Local Delivery 2112 </a> 2113 </li> 2114 <li role="presentation" ng-if="isStorePickupEnabled() && hasStorePickupOptions()"> 2115 <a href="#inStorePickup" aria-controls="inStorePickup" role="tab" data-toggle="pill" id="inStorePickupTab"> 2116 <span class="fa fa-home fa-fw"></span> <strong>FREE</strong> In-Store Pickup 2117 </a> 2118 </li> 2119 <li role="presentation" ng-if="isCurbsidePickupEnabled() && hasCurbsidePickupOptions()"> 2120 <a href="#curbsidePickup" aria-controls="curbsidePickup" role="tab" data-toggle="pill" id="curbsidePickupTab"> 2121 <span class="fa fa-home fa-fw"></span> <strong>FREE</strong> Curbside Pickup 2122 </a> 2123 </li> 2124 <li role="presentation" ng-if="isOsrSchoolPickupEnabled() && hasSchoolPickupOptions()"> 2125 <a href="#schoolPickup" aria-controls="schoolPickup" role="tab" data-toggle="pill" id="schoolPickupTab"> 2126 <span class="fa fa-school fa-fw"></span> <strong>FREE</strong> School Delivery 2127 </a> 2128 </li> 2129 </ul> 2130 2131 <!-- Shipping Tab panes --> 2132 <div class="tab-content" style="margin-top: 15px;"> 2133 2134 <div role="tabpanel" class="tab-pane fade in active" id="shippingOptions" ng-if="isShippingFormVisible()"> 2135 <!-- Shipping Options --> 2136 <div class="well"> 2137 <div class="row" ng-if="areShippingOptionsRequired() && (!hasShippingState() || !hasShippingZip())"> 2138 <div class="col-xs-12"> 2139 <div class="pull-left"> 2140 Please input an address to see shipping options 2141 </div> 2142 </div> 2143 </div> 2144 <!-- Shipping options --> 2145 <div ng-if="ShippingStatus.OptionsUpdating" class="row"> 2146 <div class="col-xs-12"> 2147 <i class="fa fa-spinner fa-pulse"></i> 2148 </div> 2149 </div> 2150 2151 <div ng-if="!ShippingStatus.OptionsUpdating"> 2152 <div ng-if="showShippingErrorMessage() && hasShippingZip() && hasShippingState()" class="row"> 2153 <div class="col-xs-12"> 2154 <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p> 2155 </div> 2156 </div> 2157 <div ng-if="showShippingStateRequired()" class="row"> 2158 <div class="col-xs-12"> 2159 <p ng-if="!hasShippingZip()" class="text-primary" style="padding-top: 7px;">Please enter a valid {{ShippingInfo.ZipOrPostal}} to see shipping options</p> 2160 </div> 2161 </div> 2162 <div ng-if="showNoShippingOptions() && hasShippingState() && hasShippingZip()" class="row"> 2163 <div class="col-xs-12"> 2164 Shipping options are not available for this country or region. 2165 <br> 2166 Please call {{InitInfo.Store.phone}} for shipping options. 2167 </div> 2168 </div> 2169 <div ng-if="hasShippingOptions()" class="row"> 2170 <div class="col-xs-12"> 2171 <ul class="list-unstyled"> 2172 <li ng-repeat="option in enhancedShippingInfo.shippingOptions track by option.id"> 2173 <div class="form-group"> 2174 <label> 2175 <input 2176 ng-required="!ShippingInfo.OptionId" 2177 name="shipping_option" 2178 type="radio" 2179 value="{{option.id}}" 2180 ng-change="ShippingVerify()" 2181 ng-model="ShippingInfo.OptionId" 2182 class="option_radio" 2183 >
2184 <span class="option_content" style="font-weight: normal"> 2185 <span ng-if="!isTaxInclusive()"><strong>{{option.name}}</strong> - <span>{{option.price | currency:InitInfo.CurrencySymbol2}}</span> <br> <span>{{option.delivery_time}}</span></span> 2186 <span ng-if="isTaxInclusive()"><strong>{{option.name}}</strong> - <span>{{addShippingTaxes(option.price) | currency:InitInfo.CurrencySymbol2}}</span> <br> <span>{{option.delivery_time}}</span></span> 2187 </span> 2188 </label> 2189 </div> 2190 </li> 2191 </ul> 2192 <div> 2193 <small ng-if="ShippingStatus.Submitted && !ShippingInfo.Option" class="text-danger control-label">Please select a shipping option</small> 2194 </div> 2195 </div> 2196 </div> 2197 </div> 2198 </div> 2199 2200 <!-- Ship to School --> 2201 <div ng-if="canShowShipToSchool()"> 2202 <div class="form-group"> 2203 <label> 2204 <input type="checkbox" ng-model="ShippingInfo.shipToSchool"> 2205 Ship to School 2206 </label> 2207 </div> 2208 2209 <div ng-if="ShippingInfo.shipToSchool"> 2210 <div ng-if="districts && districts.length > 0" class="school-selection"> 2211 <div ng-class="FormFieldErrorClass('shippingForm', 'district_select', shippingForm)" class="form-group"> 2212 <label for="district_select">Select District</label> 2213 <select id="district_select" 2214 name="district_select" 2215 class="form-control" 2216 ng-model="ShippingInfo.selectedDistrict" 2217 ng-options="district as district.name for district in districts" 2218 ng-change="onDistrictChange()" 2219 ng-required="ShippingInfo.shipToSchool"> 2220 <option value="">-- Select District --</option> 2221 </select> 2222 <label ng-if="FormFieldError('shippingForm', 'district_select', shippingForm)" class="control-label error-label"> 2223 Please select a district 2224 </label> 2225 </div> 2226 2227 <div ng-class="FormFieldErrorClass('shippingForm', 'school_select', shippingForm)" class="form-group"> 2228 <label for="school_select">Select School</label> 2229 <select id="school_select" 2230 name="school_select" 2231 class="form-control" 2232 ng-model="ShippingInfo.selectedSchool" 2233 ng-options="school as school.name for school in schools" 2234 ng-disabled="!ShippingInfo.selectedDistrict" 2235 ng-required="ShippingInfo.shipToSchool"> 2236 <option value="">-- Select School --</option> 2237 </select> 2238 <label ng-if="FormFieldError('shippingForm', 'school_select', shippingForm)" class="control-label error-label"> 2239 Please select a school 2240 </label> 2241 </div> 2242 </div> 2243 </div> 2244 </div> 2245 2246 <!-- Shipping Address --> 2247 <div ng-if="showShippingAddressForm()"> 2248 <div class="row"> 2249 <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_first_name', shippingForm)" class="col-sm-6" ng-if="!isPayPal()"> 2250 <input ng-required="!isPickup()" 2251 capitalize-first 2252 id="shipping_first_name" data-cy="web-checkout-shipping-first-name" 2253 name="shipping_first_name" 2254 type="text" 2255 ng-model="ShippingInfo.FirstName" 2256 class="form-control" 2257 placeholder="First Name" 2258 ng-focus="InitToolTip($event)" 2259 data-toggle="tooltip" 2260 title="First Name"> 2261 <label ng-if="FormFieldError('shippingForm', 'shipping_first_name', shippingForm)" class="control-label error-label"> 2262 Please enter a first name 2263 </label> 2264 </div> 2265 <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_last_name', shippingForm)" class="col-sm-6" ng-if="!isPayPal()"> 2266 <input ng-required="!isPickup()" 2267 capitalize-first 2268 id="shipping_last_name" data-cy="web-checkout-shipping-last-name" 2269 name="shipping_last_name" 2270 type="text" 2271 ng-model="ShippingInfo.LastName" 2272 class="form-control" 2273 placeholder="Last Name" 2274 ng-focus="InitToolTip($event)" 2275 data-toggle="tooltip" 2276 title="Last Name"> 2277 <label ng-if="FormFieldError('shippingForm', 'shipping_last_name', shippingForm)" class="control-label error-label"> 2278 Please enter a last name 2279 </label> 2280 </div> 2281 </div> 2282 2283 <div class="row"> 2284 <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_address_1', shippingForm)" class="col-sm-6" ng-if="!isPayPal() || isExtendPayPalShippingInfo()"> 2285 <input ng-required="!isPickup()" 2286 capitalize-first 2287 id="shipping_address_1" data-cy="web-checkout-shipping-address1" 2288 name="shipping_address_1" 2289 type="text" 2290 ng-model="ShippingInfo.Address1" 2291 street-address 2292 ng-disabled="ShippingInfoPrefilledFlags.Address1" 2293 ng-blur="AddressBlur()" 2294 class="form-control" 2295 placeholder="Street Address 1" 2296 ng-focus="InitToolTip($event)" 2297 data-toggle="tooltip" 2298 title="Street Address 1"> 2299 <label ng-if="FormFieldError('shippingForm', 'shipping_address_1', shippingForm) && shippingForm.shipping_address_1.$error.required" class="control-label error-label"> 2300 Please enter a street address 2301 </label> 2302 <label ng-if="FormFieldError('shippingForm', 'shipping_address_1', shippingForm) && !shippingForm.shipping_address_1.$error.required && shippingForm.shipping_address_1.$error.streetAddress" class="control-label error-label"> 2303 Please enter a valid street address. 2304 </label> 2305 </div> 2306 <div class="col-sm-6" ng-if="!isPayPal() || isExtendPayPalShippingInfo()"> 2307 <input 2308 id="shipping_address_2" data-cy="web-checkout-shipping-address2" 2309 name="shipping_address_2" 2310 type="text" 2311 ng-model="ShippingInfo.Address2" 2312 ng-disabled="ShippingInfoPrefilledFlags.Address2" 2313 ng-blur="AddressBlur()" 2314 class="form-control" 2315 placeholder="Street Address 2" 2316 ng-focus="InitToolTip($event)" 2317 data-toggle="tooltip" 2318 title="Street Address 2" 2319 > 2320 </div> 2321 </div> 2322 2323 <div class="row"> 2324 <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_city', shippingForm)" class="col-sm-6" ng-if="!isPayPal() || isExtendPayPalShippingInfo()"> 2325 <input ng-required="!isPickup()" 2326 capitalize-first 2327 id="shipping_city" data-cy="web-checkout-shipping-city"
2328 name="shipping_city" 2329 type="text" 2330 ng-model="ShippingInfo.City" 2331 ng-disabled="ShippingInfoPrefilledFlags.City" 2332 ng-blur="AddressBlur()" 2333 class="form-control" 2334 placeholder="City" 2335 ng-focus="InitToolTip($event)" 2336 data-toggle="tooltip" 2337 title="City"> 2338 <label ng-if="FormFieldError('shippingForm', 'shipping_city', shippingForm)" class="control-label error-label"> 2339 Please enter a City 2340 </label> 2341 </div> 2342 <div ng-if="InitInfo.Regions[ShippingInfo.CountryKey] && ShippingInfo.RegionsCount > 0" ng-class="FormFieldErrorClass('shippingForm', 'shipping_state', shippingForm)" class="col-sm-6"> 2343 <select ng-required="!isPickup()" 2344 id="shipping_state" data-cy="web-checkout-shipping-state" 2345 name="shipping_state" 2346 ng-change="ShippingOptionsGet()" 2347 ng-model="ShippingInfo.State" 2348 ng-disabled="ShippingInfoPrefilledFlags.State" 2349 class="form-control"> 2350 <option value="">Select {{ShippingInfo.StateOrProvince}}</option> 2351 <option ng-repeat="(key, value) in InitInfo.Regions[ShippingInfo.CountryKey]" value="{{key}}">{{value}}</option> 2352 </select> 2353 <label ng-if="FormFieldError('shippingForm', 'shipping_state', shippingForm)" class="control-label error-label"> 2354 Please select a {{ShippingInfo.StateOrProvince}} 2355 </label> 2356 </div> 2357 <div ng-if="!InitInfo.Regions[ShippingInfo.CountryKey]" ng-class="FormFieldErrorClass('shippingForm', 'shipping_state', shippingForm)" class="col-sm-6"> 2358 <input ng-required="!isPickup()" 2359 capitalize-first 2360 id="shipping_state" data-cy="web-checkout-shipping-state" 2361 name="shipping_state" 2362 type="text" 2363 ng-model="ShippingInfo.State" 2364 ng-disabled="ShippingInfoPrefilledFlags.State" 2365 ng-change="ShippingOptionsGet()" 2366 class="form-control" 2367 placeholder="State/Province" 2368 ng-focus="InitToolTip($event)" 2369 data-toggle="tooltip" 2370 title="State/Province"> 2371 <label ng-if="FormFieldError('shippingForm', 'shipping_state', shippingForm)" class="control-label error-label"> 2372 Please enter the State/Province 2373 </label> 2374 </div> 2375 <div ng-if="InitInfo.InternationalEnabled" ng-class="FormFieldErrorClass('shippingForm', 'shipping_country', shippingForm)" class="col-sm-6"> 2376 <select ng-required="!isPickup()" 2377 id="shipping_country" data-cy="web-checkout-shipping-country" 2378 name="shipping_country" 2379 ng-change="changeShippingCountry()" 2380 ng-model="ShippingInfo.CountryKey" 2381 ng-disabled="ShippingInfoPrefilledFlags.Country" 2382 class="form-control" 2383 ng-options="key as value for (key, value) in InitInfo.Countries"> 2384 </select> 2385 <label ng-if="FormFieldError('shippingForm', 'shipping_country', shippingForm)" class="control-label error-label"> 2386 Please select a country 2387 </label> 2388 </div> 2389 <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_zip', shippingForm)" class="col-sm-6"> 2390 <input ng-required="!isPickup()" 2391 id="shipping_zip" data-cy="web-checkout-shipping-zip" 2392 name="shipping_zip" 2393 type="text" 2394 ng-change="ShippingOptionsGet()" 2395 ng-model="ShippingInfo.Zip" 2396 ng-disabled="ShippingInfoPrefilledFlags.Zip" 2397 ng-model-options="{debounce: 750}" 2398 class="form-control" 2399 style="max-width: 125px;" 2400 placeholder="{{ShippingInfo.ZipOrPostal}}" 2401 ng-focus="InitToolTip($event)" 2402 data-toggle="tooltip" 2403 title="{{ShippingInfo.ZipOrPostal}}"> 2404 <label ng-if="FormFieldError('shippingForm', 'shipping_zip', shippingForm)" class="control-label error-label"> 2405 Please enter a {{ShippingInfo.ZipOrPostal}} 2406 </label> 2407 </div> 2408 </div> 2409 <!-- Order Notes --> 2410 <div class="row"> 2411 <div class="col-xs-12"> 2412 <label>Notes</label> 2413 </div> 2414 </div> 2415 <div class="row"> 2416 <div class="col-sm-12"> 2417 <textarea ng-model="orderNotes.note" data-cy="web-checkout-order-notes" rows="5" class="form-control" placeholder="Leave a note for the store"></textarea> 2418 </div> 2419 </div> 2420 2421 <!-- Gift Message --> 2422 <div class="row" ng-if="shouldShowGiftCardsCoupons()"> 2423 <label class="col-xs-12"> 2424 <input type="checkbox" ng-model="GiftMessage.Checked" ng-click="GiftMessageEdit()"> 2425 <small>This is a gift</small> 2426 </label> 2427 </div> 2428 <div ng-show="GiftMessage.Checked || GiftMessage.Message" class="row"> 2429 <div class="col-xs-12"> 2430 <div class="form-group"> 2431 <p> 2432 <small>Prices will be hidden on receipt.</small> 2433 </p> 2434 <label class="">Gift Message</label> <small>(Optional)</small> 2435 <textarea ng-model="GiftMessage.Message" class="form-control" rows="4"></textarea> 2436 </div> 2437 </div> 2438 </div> 2439 </div> 2440 </div> 2441 <div role="tabpanel" class="tab-pane fade" id="inStorePickup"> 2442 <div class="well"> 2443 <!-- Shipping options --> 2444 <div ng-if="ShippingStatus.OptionsUpdating" class="row"> 2445 <div class="col-xs-12"> 2446 <i class="fa fa-spinner fa-pulse"></i> 2447 </div> 2448 </div> 2449 <div ng-if="!ShippingStatus.OptionsUpdating"> 2450 <div ng-if="!ShippingStatus.OptionsValid" class="row"> 2451 <div class="col-xs-12">
2452 <span ng-if="ShippingStatus.Message"> 2453 <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p> 2454 </span> 2455 </div> 2456 </div> 2457 <div ng-if="!hasStorePickupOptions()" class="row"> 2458 <div class="col-xs-12"> 2459 Store Pickup options are not available for this country or region. 2460 </div> 2461 </div> 2462 2463 <div ng-if="hasStorePickupOptions()" class="row"> 2464 <div class="col-xs-12"> 2465 <ul class="list-unstyled"> 2466 <li ng-repeat="option in enhancedShippingInfo.storePickupOptions track by option.id"> 2467 <div class="form-group"> 2468 <label> 2469 <input 2470 ng-required="!ShippingInfo.OptionId" 2471 name="shipping_option" 2472 type="radio" 2473 value="{{option.id}}" 2474 ng-change="ShippingVerify()" 2475 ng-model="ShippingInfo.OptionId" 2476 class="option_radio" 2477 > 2478 <span class="option_content" style="font-weight: normal"> 2479 <strong>{{option.store_location_name}}</strong> 2480 <br> 2481 <span>{{option.delivery_time}}</span> 2482 </span> 2483 </label> 2484 </div> 2485 </li> 2486 </ul> 2487 <div> 2488 <small ng-if="ShippingStatus.Submitted && !ShippingInfo.Option" class="text-danger control-label">Please select a shipping option</small> 2489 </div> 2490 </div> 2491 </div> 2492 2493 <!-- Order Notes --> 2494 <div class="row"> 2495 <div class="col-xs-12"> 2496 <label>Notes</label> 2497 </div> 2498 </div> 2499 <div class="row"> 2500 <div class="col-sm-12"> 2501 <textarea ng-model="orderNotes.note" data-cy="web-checkout-order-notes" rows="5" class="form-control" placeholder="Leave a note for the store"></textarea> 2502 </div> 2503 </div> 2504 </div> 2505 </div> 2506 </div> 2507 <div role="tabpanel" class="tab-pane fade" id="curbsidePickup"> 2508 <div class="well"> 2509 <!-- Shipping options --> 2510 <div ng-if="ShippingStatus.OptionsUpdating" class="row"> 2511 <div class="col-xs-12"> 2512 <i class="fa fa-spinner fa-pulse"></i> 2513 </div> 2514 </div> 2515 <div ng-if="!ShippingStatus.OptionsUpdating"> 2516 <div ng-if="!ShippingStatus.OptionsValid" class="row"> 2517 <div class="col-xs-12">
2518 <span ng-if="ShippingStatus.Message"> 2519 <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p> 2520 </span> 2521 </div> 2522 </div> 2523 <div ng-if="!hasCurbsidePickupOptions()" class="row"> 2524 <div class="col-xs-12"> 2525 Curbside pickup options are not available for this country or region. 2526 </div> 2527 </div> 2528 2529 <div ng-if="hasCurbsidePickupOptions()" class="row"> 2530 <div class="col-xs-12"> 2531 <ul class="list-unstyled"> 2532 <li ng-repeat="option in enhancedShippingInfo.curbsidePickupOptions track by option.id"> 2533 <div class="form-group"> 2534 <label> 2535 <input 2536 ng-required="!ShippingInfo.OptionId" 2537 name="shipping_option" 2538 type="radio" 2539 value="{{option.id}}" 2540 ng-change="ShippingVerify()" 2541 ng-model="ShippingInfo.OptionId" 2542 class="option_radio" 2543 > 2544 <span class="option_content" style="font-weight: normal"> 2545 <strong>{{option.store_location_name}}</strong> 2546 <br> 2547 <span>{{option.delivery_time}}</span> 2548 </span> 2549 </label> 2550 </div> 2551 </li> 2552 </ul> 2553 <div> 2554 <small ng-if="ShippingStatus.Submitted && !ShippingInfo.Option" class="text-danger control-label">Please select a shipping option</small> 2555 </div> 2556 </div> 2557 </div> 2558 </div> 2559 </div> 2560 </div> 2561 2562 <div role="tabpanel" class="tab-pane fade" id="schoolPickup" ng-if="areShippingOptionsRequired()"> 2563 <div class="well"> 2564 <div ng-if="!ShippingStatus.OptionsUpdating"> 2565 <div ng-if="!ShippingStatus.OptionsValid" class="row"> 2566 <div class="col-xs-12"> 2567 <span ng-if="ShippingStatus.Message"> 2568 <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p> 2569 </span> 2570 </div> 2571 </div> 2572 <div ng-if="!hasSchoolPickupOptions() || !isOsrSchoolPickupAvailable()" class="row"> 2573 <div class="col-xs-12"> 2574 School Delivery is not available now. 2575 </div> 2576 </div> 2577 2578 <div ng-if="hasSchoolPickupOptions() && isOsrSchoolPickupAvailable()" class="row"> 2579 <div class="col-xs-12"> 2580 <ul class="list-unstyled"> 2581 <li ng-repeat="option in enhancedShippingInfo.schoolPickupOptions track by option.id"> 2582 <div class="form-group"> 2583 <label> 2584 <input 2585 ng-required="!ShippingInfo.OptionId" 2586 name="shipping_option" 2587 type="radio" 2588 value="{{option.id}}" 2589 ng-change="ShippingVerify()" 2590 ng-model="ShippingInfo.OptionId" 2591 class="option_radio" 2592 >
2593 <span class="option_content" style="font-weight: normal"> 2594 <strong> {{ option.school_name ? option.school_name : (checkFlagRestoreSchoolDeliveryShippingOption() ? 'School Delivery' : '') }}</strong> 2595 <br> 2596 <span>{{option.delivery_time}}</span> 2597 </span> 2598 </label> 2599 </div> 2600 </li> 2601 </ul> 2602 <div> 2603 <small ng-if="ShippingStatus.Submitted && !ShippingInfo.Option" class="text-danger control-label">Please select a shipping option</small> 2604 </div> 2605 </div> 2606 </div> 2607 2608 <div ng-if="hasSchoolPickupOptions() && isOsrSchoolPickupAvailable()"> 2609 <!-- Order Notes --> 2610 <div class="row"> 2611 <div class="col-xs-12"> 2612 <label>Notes</label> 2613 </div> 2614 </div> 2615 <div class="row"> 2616 <div class="col-sm-12"> 2617 <textarea ng-model="orderNotes.note" data-cy="web-checkout-order-notes" rows="5" class="form-control" placeholder="Leave a note for the store"></textarea> 2618 </div> 2619 </div> 2620 </div> 2621 </div> 2622 </div> 2623 </div> 2624 2625 <div ng-if="isLocalDeliveryEnabled()" role="tabpanel" class="tab-pane fade" id="localDelivery"> 2626 <div class="well"> 2627 <div class="row" ng-if="areShippingOptionsRequired() && (!hasShippingState() || !hasShippingZip())"> 2628 <div class="col-xs-12"> 2629 <div class="pull-left"> 2630 Please input an address to see shipping options 2631 </div> 2632 </div> 2633 </div> 2634 2635 <div class="row" ng-if="ShippingStatus.OptionsUpdating"> 2636 <div class="col-xs-12"><i class="fa fa-spinner fa-pulse"></i></div> 2637 </div> 2638 2639 <div ng-if="!ShippingStatus.OptionsUpdating"> 2640 <div class="row" ng-if="showShippingErrorMessage() && hasShippingZip() && hasShippingState()"> 2641 <div class="col-xs-12"> 2642 <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p> 2643 </div> 2644 </div> 2645 2646 <div class="row" ng-if="showShippingStateRequired()"> 2647 <div class="col-xs-12"> 2648 <p ng-if="!hasShippingZip()" class="text-primary" style="padding-top: 7px;"> 2649 Please enter a valid {{ShippingInfo.ZipOrPostal}} to see delivery options 2650 </p> 2651 </div> 2652 </div> 2653 2654 <div class="row" ng-if="showNoShippingOptions() && hasShippingState() && hasShippingZip()"> 2655 <div class="col-xs-12"> 2656 Local delivery options are not available for this country or region. 2657 <br> 2658 Please call {{InitInfo.Store.phone}} for delivery options. 2659 </div> 2660 </div> 2661 2662 <div class="row" ng-if="hasLocalDeliveryOptions()"> 2663 <div class="col-xs-12"> 2664 <ul class="list-unstyled"> 2665 <li ng-repeat="option in enhancedShippingInfo.localDeliveryOptions track by option.id"> 2666 <div class="form-group"> 2667 <label style="font-weight: normal;"> 2668 <input 2669 ng-required="!ShippingInfo.OptionId" 2670 name="shipping_option" 2671 type="radio" 2672 class="option_radio" 2673 ng-model="ShippingInfo.OptionId" 2674 ng-value="option.id" 2675 ng-change="ShippingInfo.Option = option; ShippingVerify()" 2676 >
2677 <span class="option_content"> 2678 <strong>{{option.name}}</strong> 2679 <span ng-if="!isTaxInclusive()"> - {{option.price | currency:InitInfo.CurrencySymbol2}}</span> 2680 <span ng-if="isTaxInclusive()"> - {{addShippingTaxes(option.price) | currency:InitInfo.CurrencySymbol2}}</span> 2681 <br><span>{{option.delivery_time}}</span> 2682 </span> 2683 </label> 2684 </div> 2685 </li> 2686 </ul> 2687 <small ng-if="ShippingStatus.Submitted && !ShippingInfo.OptionId" class="text-danger control-label"> 2688 Please select a shipping option 2689 </small> 2690 </div> 2691 </div> 2692 </div> 2693 </div> 2694 </div> 2695 </div> 2696 </div> 2697 2698 <div ng-if="showNoShippingRequired()"> 2699 <div class="row"> 2700 <div class="col-xs-12"> 2701 Shipping is not required for any of the items in your cart. 2702 </div> 2703 </div> 2704 </div> 2705 2706 <!-- <div class="row">--> 2707 <!-- <label class="col-xs-12">--> 2708 <!-- <input type="checkbox" ng-model="ContactInfo.JoinEmailList" checked> --> 2709 <!-- <small>Join our email list</small> --> 2710 <!-- </label>--> 2711 <!-- </div>--> 2712 2713 </div> 2714 </div> 2715 2716 <!-- Contact Shipping Summary --> 2717 2718 <div ng-show="showSummaries()" class="ng-hide"> 2719 <div class="well"> 2720 <div class="row"> 2721 <div class="col-xs-6"> 2722 <strong>Contact Information</strong> 2723 <a href="" ng-click="ShippingEdit()"><small>Change</small></a> 2724 <br> 2725 <small> 2726 {{BillingInfo.Email}}<br> 2727 {{BillingInfo.Phone}}<br> 2728 </small> 2729 </div> 2730 <div ng-if="GiftMessage.Checked" class="col-xs-6"> 2731 <strong>Gift Message</strong> 2732 <a href="" ng-click="ShippingEdit()"><small>Change</small></a><br> 2733 <span><small><strong>This is a gift</strong></small><br></span> 2734 <span ng-if="GiftMessage.Message"><small>{{GiftMessage.Message}}</small></span> 2735 <span ng-if="!GiftMessage.Message"><small>There is no message</small></span> 2736 </div> 2737 2738 <div ng-if="!isPickup()" class="col-xs-6"> 2739 <strong >Shipping Information</strong> 2740 <span ng-if="ShippingStatus.Entered && ShippingStatus.Required"> 2741 <a href="" ng-click="ShippingEdit()"><small>Change</small></a> 2742 <br> 2743 <small style="text-transform: capitalize;"> 2744 <span ng-if="ShippingInfo.FirstName || ShippingInfo.LastName">{{ShippingInfo.FirstName}} {{ShippingInfo.LastName}}<br></span> 2745 <span ng-if="ShippingInfo.Address1">{{ShippingInfo.Address1}}<br></span>
2746 <span ng-if="ShippingInfo.Address2">{{ShippingInfo.Address2}}<br></span> 2747 <span ng-if="ShippingInfo.City">{{ShippingInfo.City}},</span> {{ShippingInfo.State}} {{ShippingInfo.Zip}} 2748 <span ng-if="ShippingInfo.Country != Region"><br>{{ShippingInfo.Country}}</span> 2749 </small> 2750 </span> 2751 <span ng-if="!ShippingStatus.Required">No shipping required</span> 2752 </div> 2753 <div ng-if="isPickup()" class="col-xs-6"> 2754 <strong ng-if="isStorePickup()">Store Pickup Information</strong> 2755 <strong ng-if="isCurbsidePickup()">Curbside Pickup Information</strong> 2756 <strong ng-if="isSchoolPickup()">School Delivery Information</strong> 2757 <a href="" ng-click="ShippingEdit()"><small>Change</small></a> 2758 <br> 2759 <small style="text-transform: capitalize;"> 2760 {{ShippingInfo.Option.delivery_time}} 2761 </small> 2762 </div> 2763 2764 <div ng-if="ShippingInfo.Comments" class="col-xs-6"> 2765 <strong>Additional Comments</strong> 2766 <a href="" ng-click="ShippingEdit()"><small>Change</small></a> 2767 </div> 2768 </div> 2769 </div> 2770 </div> 2771 2772 <!-- Mobile Summary --> 2773 2774 <div class="panel panel-default visible-xs-block"> 2775 <div ng-if="StatusInfo.Initializing" class="panel-body"> 2776 <i class="fa fa-spinner fa-pulse fa-2x"></i> 2777 </div> 2778 <table ng-if="!StatusInfo.Initializing" class="table"> 2779 <tr> 2780 <td colspan="2"> 2781 Subtotal 2782 <small><a ng-click="StatusInfo.CouponShow = !StatusInfo.CouponShow" href="">Enter Coupon</a> | <a ng-click="StatusInfo.CouponShow = !StatusInfo.CouponShow" href="">Gift Card</a></small> 2783 </td> 2784 <td colspan="2" align="right" class="h4" data-cy="web-checkout-summary-subtotal"><strong>{{SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></td> 2785 </tr> 2786 <tr ng-if="StatusInfo.CouponShow"> 2787 <td colspan="2"> 2788 <span id="gift-card-coupon-msgs"> 2789 <!-- Messages --> 2790 <span id="gift-card-coupon-error-msg" ng-cloak ng-show="shouldShowGiftCardCouponErrorMsg()"><i class="fa fa-ban"></i> {{giftCardCouponMsg}}</span> 2791 <span id="gift-card-applied-msg" ng-cloak ng-show="shouldShowGiftCardAppliedMsg()" ><i class="fa fa-check"></i> Gift Card Applied</span> 2792 <span id="coupon-applied-msg" ng-cloak ng-show="shouldShowCouponAppliedMsg()" ><i class="fa fa-check"></i> Coupon Applied</span> 2793 <!-- Loading --> 2794 <span ng-cloak ng-show="giftCardOrCouponDataState == DATA_STATE_LOADING" class="gc-coupon-data-loading"><i class="fa fa-spinner fa-spin"></i></span> 2795 </span> 2796 <input id="gift-card-coupon-code" data-cy="web-cart-coupon-input" ng-model="StatusInfo.giftCardOrCouponCode" ng-keydown="giftCardOrCouponCodeKeyDown($event)" type="text" placeholder="Enter Card Number or Coupon Code" class="form-control" style="margin-bottom: 0px !important;"> 2797 </td> 2798 <td id="gift-card-coupon-code-apply-cell" colspan="2" style="vertical-align: bottom;"> 2799 <button id="gift-card-coupon-code-apply" data-cy="web-cart-coupon-apply" ng-disabled="!shouldEnableGiftCardCouponApplyBtn()" ng-click="getGiftCardOrCoupon()" type="button" class="btn btn-default">Apply</button> 2800 </td> 2801 </tr> 2802 <tbody ng-if="CartData.Coupons.length > 0" ng-repeat="coupon in CartData.Coupons"> 2803 <tr> 2804 <td colspan="2"> 2805 Discount 2806 {{coupon.title}} 2807 <a ng-click="removeCoupon(coupon.couponId)" href="">[remove]</a> 2808 </td> 2809 <td colspan="2" align="right"> 2810 <strong>-{{coupon.discount | currency:InitInfo.CurrencySymbol2}}</strong> 2811 </td> 2812 </tr> 2813 </tbody>
2814 <tr ng-if="ShippingStatus.Valid && ShippingStatus.Required"> 2815 <td colspan="2"> 2816 Shipping {{ShippingInfo.Option.name}}<br> 2817 <small>{{ShippingInfo.Option.delivery_time}}</small> 2818 </td> 2819 <td ng-if="!isTaxInclusive()" colspan="2" align="right"> 2820 <strong>{{ShippingInfo.Option.price | currency:InitInfo.CurrencySymbol2}}</strong> 2821 </td> 2822 <td ng-if="isTaxInclusive()" colspan="2" align="right"> 2823 <strong>{{getGstShippingTotal() | currency:InitInfo.CurrencySymbol2}}</strong> 2824 </td> 2825 </tr> 2826 <tr> 2827 <td colspan="2"> 2828 Taxes 2829 </td> 2830 <td colspan="2" align="right" data-cy="web-checkout-summary-taxes"> 2831 <span ng-if="StatusInfo.DynamicTaxAddressError" class="dynamic_tax_error">{{StatusInfo.DynamicTaxAddressError}}</span> 2832 <strong ng-if="!StatusInfo.DynamicTaxAddressError">{{Taxes | currency:InitInfo.CurrencySymbol2}}</strong> 2833 </td> 2834 </tr> 2835 <tr ng-if="ShippingTaxes"> 2836 <td colspan="2"> 2837 Shipping Taxes 2838 </td> 2839 <td colspan="2" align="right"> 2840 <strong>{{ShippingTaxes | currency:InitInfo.CurrencySymbol2}}</strong> 2841 </td> 2842 </tr> 2843 <tbody ng-if="CartData.GiftCards.length > 0" ng-repeat="gc in CartData.GiftCards"> 2844 <tr> 2845 <td colspan="2"> 2846 Gift Card <a href="" ng-click="removeGiftCard(gc.id)">[remove]</a><br> 2847 <small>{{gc.number}}</small> 2848 </td> 2849 <td colspan="2" align="right"> 2850 <strong>-{{gc.Amount | currency:InitInfo.CurrencySymbol2}}</strong> 2851 </td> 2852 </tr> 2853 </tbody> 2854 <tr> 2855 <td colspan="2"> 2856 Total 2857 </td> 2858 <td ng-if="!showAsGST()" colspan="2" align="right" class="h4" data-cy="web-checkout-summary-total"> 2859 <strong>{{Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong> 2860 </td> 2861 <td ng-if="showAsGST()" style="text-align: right;min-width: 95px;"> 2862 <strong>{{GST_Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong> 2863 <span ng-if="GST_Due > 0 && GST_Taxes > 0 && isShippingCountryGST()" class="cartTableSubHeader"><br/>{{getGstTaxes() | currency:InitInfo.CurrencySymbol2}} GST included in total</span> 2864 </td> 2865 </tr> 2866 </table> 2867 </div> 2868 2869 <!-- Billing Edit --> 2870 2871 <div ng-form="billingForm" ng-class="{'panel panel-default' : ((showTerms() || isShippingEntered() || digitalOrder) && !isBNPLEnabled())}" ng-show="showBillingSection()"> 2872 <div ng-if="isBNPLEnabled()"> 2873 <div ng-show="showRainProcessing()" style="margin-bottom: 20px;"> 2874 <payment-methods 2875 is-affirm-enabled="isBNPLEnabled('affirm')" 2876 is-afterpay-enabled="isBNPLEnabled('afterpay')" 2877 is-klarna-enabled="isBNPLEnabled('klarna')" 2878 is-paypal-enabled="allowPayPalCheckout() && !isCardOnFileNeeded()" 2879 is-pay-at-pick-up-enabled="showPaymentOptions()" 2880 amount="getBNPLAmount()" 2881 due="Due" 2882 currency="getBNPLCurrency()" 2883 currency-symbol="InitInfo.CurrencySymbol2" 2884 country="getBNPLCountry()" 2885 merchant-country="getBNPLMerchantCountry()" 2886 model="stripeBNPLModel" 2887 on-payment-method-changed="onPaymentMethodChanged" 2888 on-ready="initRainProcessing" 2889 ></payment-methods> 2890 </div> 2891 2892 <div ng-show="showRainProcessing() && showBillingSection() && !isPayAtPickup()" style="margin-bottom: 20px;"> 2893 <billing-address 2894 show-billing-address="showBillingAddress()" 2895 is-shipping-required="isShippingRequired()"
2896 ></billing-address> 2897 </div> 2898 2899 <div ng-if="showTerms()"> 2900 <div ng-class="FormFieldErrorClass('billingForm', 'TAndC', billingForm)" style='padding-left: 15px;'> 2901 <input required id="TAndC" data-cy="web-checkout-terms-agree" name="TAndC" type="checkbox" ng-model="BillingInfo.TermsAgree"> 2902 I Agree to the Terms and Conditions (<a href="javascript:void(0);" ng-click="TermsShow()">click here to view</a>) 2903 <br> 2904 2905 <label ng-if="FormFieldError('billingForm', 'TAndC', billingForm)" class="control-label"> 2906 Please accept the Terms and Conditions before continuing. 2907 </label> 2908 </div> 2909 </div> 2910 </div> 2911 2912 <div ng-if="!isBNPLEnabled()" class="panel-body tab-options"> 2913 <div ng-show="showBillingForm()" class="ng-hide"> 2914 <div ng-show="showPaymentOptions()"> 2915 <div> 2916 <label>Payment Options</label> 2917 </div> 2918 2919 <!-- Nav tabs --> 2920 <ul class="nav nav-pills nav-justified" role="tablist"> 2921 <li role="presentation" class="active"> 2922 <a href="#payNow" aria-controls="payNow" role="tab" data-toggle="pill" ng-click="payWithCardSelected()" id="payNowTab"> 2923 <span class="fa fa-credit-card fa-fw"></span> Pay Now 2924 </a> 2925 </li> 2926 <li role="presentation"> 2927 <a href="#payAtPickup" aria-controls="payAtPickup" role="tab" data-toggle="pill" ng-click="payAtPickupSelected()" id="payAtPickupTab"> 2928 <span class="fa fa-truck fa-fw"></span> Pay at Pickup 2929 </a> 2930 </li> 2931 </ul> 2932 </div> 2933 2934 <div class="tab-content" style="margin-top: 15px;" ng-show="showPaymentSection()"> 2935 <div role="tabpanel" class="tab-pane fade in active" id="payNow"> 2936 <div ng-show="!isPayPal() || digitalOrder"> 2937 <div class="row"> 2938 <div class="col-xs-12"> 2939 <label>Billing Address</label> 2940 <!-- Validation Messages --> 2941 <span ng-if="BillingStatus.MessagesShow && BillingStatus.NotValidMessages.length > 0" class="text-danger"> 2942 <span ng-repeat="bm in BillingStatus.NotValidMessages"> 2943 <br>{{bm}} 2944 </span> 2945 </span> 2946 </div> 2947 </div> 2948 2949 <div ng-if="isShippingRequired()" ng-hide="isPickup() || HideBillingSameAsShipping" class="row"> 2950 <label class="col-xs-12"> 2951 <input type="checkbox" data-cy="web-checkout-billing-same-as-shipping" ng-model="BillingInfo.AddressSameAsShipping" ng-click="BillingVerify()"> 2952 <small>My billing address is the same as my shipping address</small> 2953 </label> 2954 </div> 2955 2956 <div ng-show="showBillingAddress()"> 2957 <div class="row"> 2958 <div ng-class="FormFieldErrorClass('billingForm', 'billing_first', billingForm)" class="col-sm-6"> 2959 <input required 2960 capitalize-first 2961 id="billing_first" data-cy="web-checkout-billing-first-name" 2962 name="billing_first" 2963 type="text" 2964 ng-model="BillingInfo.FirstName" 2965 class="form-control" 2966 placeholder="First Name" 2967 ng-disabled="disableBillingFields()" 2968 ng-focus="InitToolTip($event)" 2969 data-toggle="tooltip" 2970 title="First Name"> 2971 <label ng-if="FormFieldError('billingForm', 'billing_first', billingForm)" class="control-label error-label"> 2972 Please enter a first name 2973 </label> 2974 </div> 2975 <div ng-class="FormFieldErrorClass('billingForm', 'billing_last', billingForm)" class="col-sm-6"> 2976 <input required 2977 capitalize-first 2978 id="billing_last" data-cy="web-checkout-billing-last-name" 2979 name="billing_last" 2980 type="text" 2981 ng-model="BillingInfo.LastName" 2982 class="form-control" 2983 placeholder="Last Name" 2984 ng-disabled="disableBillingFields()" 2985 ng-focus="InitToolTip($event)" 2986 data-toggle="tooltip" 2987 title="Last Name"> 2988 <label ng-if="FormFieldError('billingForm', 'billing_last', billingForm)" class="control-label error-label"> 2989 Please enter a last name 2990 </label> 2991 </div> 2992 </div> 2993 <div class="row"> 2994 <div ng-class="FormFieldErrorClass('billingForm', 'billing_address1', billingForm)" class="col-sm-6"> 2995 <input required 2996 capitalize-first 2997 id="billing_address1" data-cy="web-checkout-billing-address1" 2998 name="billing_address1" 2999 type="text" 3000 ng-model="BillingInfo.Address1" 3001 class="form-control" 3002 placeholder="Address Line 1" 3003 ng-disabled="disableBillingFields()" 3004 ng-focus="InitToolTip($event)" 3005 data-toggle="tooltip" 3006 title="Address Line 1"> 3007 <label ng-if="FormFieldError('billingForm', 'billing_address1', billingForm)" class="control-label error-label"> 3008 Please enter a street address 3009 </label> 3010 </div> 3011 <div class="col-sm-6"> 3012 <input capitalize-first 3013 id="billing_address2" data-cy="web-checkout-billing-address2" 3014 name="billing_address2" 3015 type="text" 3016 ng-model="BillingInfo.Address2" 3017 class="form-control" 3018 placeholder="Address Line 2" 3019 ng-disabled="disableBillingFields()" 3020 ng-focus="InitToolTip($event)" 3021 data-toggle="tooltip" 3022 title="Address Line 2"> 3023 </div> 3024 </div> 3025 <div class="row"> 3026 <div ng-class="FormFieldErrorClass('billingForm', 'billing_city', billingForm)" class="col-sm-6"> 3027 <input required 3028 capitalize-first 3029 id="billing_city" data-cy="web-checkout-billing-city"
3030 name="billing_city" 3031 type="text" 3032 ng-model="BillingInfo.City" 3033 class="form-control" 3034 placeholder="City" 3035 ng-disabled="disableBillingFields()" 3036 ng-focus="InitToolTip($event)" 3037 data-toggle="tooltip" 3038 title="City"> 3039 <label ng-if="FormFieldError('billingForm', 'billing_city', billingForm)" class="control-label error-label"> 3040 Please enter a city 3041 </label> 3042 </div> 3043 <div ng-if="InitInfo.Regions[BillingInfo.CountryKey] && BillingInfo.RegionsCount > 0" ng-class="FormFieldErrorClass('billingForm', 'billing_state', billingForm)" class="col-sm-6"> 3044 <select required 3045 id="billing_state" data-cy="web-checkout-billing-state" 3046 name="billing_state" 3047 ng-change="BillingOptionsGet()" 3048 ng-model="BillingInfo.State" 3049 ng-disabled="disableBillingFields()" 3050 class="form-control"> 3051 <option value="">Select {{BillingInfo.StateOrProvince}}</option> 3052 <option ng-repeat="(key, value) in InitInfo.Regions[BillingInfo.CountryKey]" value="{{key}}">{{value}}</option> 3053 </select> 3054 <label ng-if="FormFieldError('billingForm', 'billing_state', billingForm)" class="control-label error-label"> 3055 Please select a {{BillingInfo.StateOrProvince}} 3056 </label> 3057 </div> 3058 <div ng-if="!InitInfo.Regions[BillingInfo.CountryKey]" ng-class="FormFieldErrorClass('billingForm', 'billing_state', billingForm)" class="col-sm-6"> 3059 <input required 3060 capitalize-first 3061 id="billing_state" data-cy="web-checkout-billing-state" 3062 name="billing_state" 3063 type="text" 3064 ng-change="BillingOptionsGet()" 3065 ng-model="BillingInfo.State" 3066 class="form-control" 3067 placeholder="State/Province" 3068 ng-disabled="disableBillingFields()" 3069 ng-focus="InitToolTip($event)" 3070 data-toggle="tooltip" 3071 title="State/Province"> 3072 <label ng-if="FormFieldError('billingForm', 'billing_state', billingForm)" class="control-label error-label"> 3073 Please enter the State/Province 3074 </label> 3075 </div> 3076 </div> 3077 <div class="row"> 3078 <div ng-if="InitInfo.InternationalEnabled" ng-class="FormFieldErrorClass('billingForm', 'billing_country', billingForm)" class="col-sm-6"> 3079 <select required 3080 id="billing_country" data-cy="web-checkout-billing-country" 3081 name="billing_country" 3082 ng-change="changeBilling
3082Country()" 3083 ng-model="BillingInfo.CountryKey" 3084 ng-disabled="disableBillingFields()" 3085 class="form-control" 3086 > 3087 <option value="">Select Country</option> 3088 <option ng-repeat="(key, value) in InitInfo.Countries" value="{{key}}">{{value}}</option> 3089 </select> 3090 <label ng-if="FormFieldError('billingForm', 'billing_country', billingForm)" class="control-label error-label"> 3091 Please select a country 3092 </label> 3093 </div> 3094 <div ng-class="FormFieldErrorClass('billingForm', 'billing_zip', billingForm)" class="col-sm-6"> 3095 <input required 3096 id="billing_zip" data-cy="web-checkout-billing-zip" 3097 name="billing_zip" 3098 type="text" 3099 ng-change="BillingOptionsGet()" 3100 ng-model="BillingInfo.Zip" 3101 class="form-control" 3102 style="max-width: 125px;" 3103 placeholder="{{BillingInfo.ZipOrPostal}}" 3104 ng-disabled="disableBillingFields()" 3105 ng-focus="InitToolTip($event)" 3106 data-toggle="tooltip" 3107 title="{{BillingInfo.ZipOrPostal}}"> 3108 <label ng-if="FormFieldError('billingForm', 'billing_zip', billingForm)" class="control-label error-label"> 3109 Please enter a {{BillingInfo.ZipOrPostal}} 3110 </label> 3111 </div> 3112 </div> 3113 </div> 3114 3115 <div ng-if="showEnrollAutoPay()" class="row"> 3116 <label class="col-xs-12">Enroll in autopay and never miss a payment!</label> 3117 <label class="col-xs-12"> 3118 <input type="checkbox" ng-model="BillingInfo.enrollAutoPay" ng-disabled="isSubscriptionPayment()"> 3119 <small>Add card on file and enroll in autopay</small> 3120 </label> 3121 </div> 3122 3123 <div ng-if="showCCPayment()"> 3124 <div class="row"> 3125 <div class="col-xs-12"> 3126 <label>Secure Payment</label> 3127 <!-- Validation Messages --> 3128 <span ng-if="CardStatus.MessagesShow && CardStatus.NotValidMessages.length > 0" class="text-danger"> 3129 <span ng-repeat="cm in CardStatus.NotValidMessages"><br>{{cm}}</span> 3130 </span> 3131 </div> 3132 </div> 3133 3134 <div class="row"> 3135 <div ng-class="FormFieldErrorClass('billingForm', 'cc_number', billingForm)" class="col-sm-6 col-md-7"> 3136 <input required 3137 id="cc_number" 3138 name="cc_number" 3139 type="text" 3140 ng-model="CardInfo.CC" 3141 ng-blur="CCBlur('CC')" 3142 class="form-control" 3143 placeholder="Credit Card Number" 3144 ng-focus="InitToolTip($event)" 3145 data-toggle="tooltip" 3146 title="Credit Card Number"> 3147 <label ng-if="FormFieldError('billingForm', 'cc_number', billingForm)" class="control-label error-label"> 3148 {{CardStatus.Message}} 3149 </label> 3150 </div> 3151 <div class="col-sm-6 col-md-5 hidden-xs"> 3152 <label class="control-label" style="padding-top: 0px;"> 3153 <i ng-if="InitInfo.CheckoutSettings.VisaAccepted" class="fa fa-cc-visa fa-2x" ng-class="Class.visa"></i> 3154 <i ng-if="InitInfo.CheckoutSettings.MCAccepted" class="fa fa-cc-mastercard fa-2x" ng-class="Class.mastercard"></i> 3155 <i ng-if="InitInfo.CheckoutSettings.AmexAccepted" class="fa fa-cc-amex fa-2x" ng-class="Class.amex"></i> 3156 <i ng-if="InitInfo.CheckoutSettings.DiscAccepted" class="fa fa-cc-discover fa-2x" ng-class="Class.discover"></i> 3157 </label> 3158 </div> 3159 </div> 3160 3161 <div class="row row-grid"> 3162 <div ng-class="FormFieldErrorClass('billingForm', 'cc_exp_month', billingForm)" class="col-xs-6 col-sm-4"> 3163 <select required 3164 id="cc_exp_month" 3165 name="cc_exp_month" 3166 ng-model="CardInfo.ExpMonth" 3167 ng-blur="ExpBlur('Expiration')" 3168 class="form-control"> 3169 <option value="">Exp Month</option> 3170 <option ng-repeat="month in ExpMonths" value="{{month}}">{{month}}</option> 3171 </select> 3172 <label ng-if="FormFieldError('billingForm', 'cc_exp_month', billingForm)" class="control-label error-label"> 3173 Select expiration month 3174 </label> 3175 </div> 3176 <div ng-class="FormFieldErrorClass('billingForm', 'cc_exp_year', billingForm)" class="col-xs-6 col-sm-4"> 3177 <select required 3178 id="cc_exp_year" 3179 name="cc_exp_year" 3180 ng-model="CardInfo.ExpYear" 3181 ng-blur="ExpBlur('Expiration')" 3182 class="form-control"> 3183 <option value="">Exp Year</option> 3184 <option ng-repeat="year in ExpYears" value="{{year}}">{{year}}</option> 3185 </select> 3186 <label ng-if="FormFieldError('billingForm', 'cc_exp_year', billingForm)" class="control-label error-label"> 3187 Select expiration year 3188 </label> 3189 </div> 3190 <div ng-class="FormFieldErrorClass('billingForm', 'cc_cvv', billingForm)" class="col-xs-6 col-sm-4"> 3191 <input required 3192 id="cc_cvv" 3193 name="cc_cvv" 3194 type="text" 3195 ng-model="CardInfo.CVV" 3196 class="form-control" 3197 placeholder="CVV" 3198 ng-focus="InitToolTip($event)" 3199 data-toggle="tooltip" 3200 title="CVV"> 3201 <label ng-if="FormFieldError('billingForm', 'cc_cvv', billingForm)" class="control-label error-label"> 3202 Please enter the CVV 3203 </label> 3204 </div> 3205 </div> 3206 </div> 3207 3208 <div ng-show="showRainProcessing()" style="padding-top: 15px; padding-bottom: 15px;"> 3209 <div class="row"> 3210 <div class="col-xs-12"> 3211 <label>Secure Payment</label> 3212 <!-- Validation Messages -->
3213 <span ng-if="CardStatus.MessagesShow && CardStatus.NotValidMessages.length > 0" class="text-danger"> 3214 <span ng-repeat="cm in CardStatus.NotValidMessages"><br>{{cm}}</span> 3215 </span> 3216 </div> 3217 </div> 3218 <div class="row" ng-if="isSavedCardsFlagEnabled() && paymentType === 'AddCard'"> 3219 <div class="col-xs-12"> 3220 <div class="form-group nickname-group"> 3221 <label for="cc-nickname" class="nickname-label"> 3222 <span>Card Nickname</span> 3223 <span class="nickname-optional">(Optional)</span> 3224 </label> 3225 <input 3226 ng-model="CardInfo.nickname" 3227 id="cc-nickname" 3228 type="text" 3229 class="form-control nickname-input" 3230 placeholder="Enter a card name" 3231 maxlength="60" 3232 /> 3233 </div> 3234 </div> 3235 </div> 3236 <div class="row"> 3237 <div class="col-12 col-sm-6"> 3238 <div class="form-group"> 3239 <label for="card-number">Card Number</label> 3240 <div class="payment-wrapper"> 3241 <div id="card-number" class="form-control" style="padding-top: 7px;"><!-- A Stripe Element will be inserted here. --></div> 3242 <div 3243 ng-if="formData.selectedCustomerCardId" 3244 class="payment-overlay" 3245 ng-click="clearSavedCardSelection()" 3246 ></div> 3247 </div> 3248 </div> 3249 </div> 3250 <div class="col-6 col-sm-3"> 3251 <div class="form-group"> 3252 <label for="card-exp">Expires</label> 3253 <div class="payment-wrapper"> 3254 <div id="card-exp" class="form-control stripe-input" style="padding-top: 7px;"><!-- A Stripe Element will be inserted here. --></div> 3255 <div 3256 ng-if="formData.selectedCustomerCardId" 3257 class="payment-overlay" 3258 ng-click="clearSavedCardSelection()" 3259 ></div> 3260 </div> 3261 </div> 3262 </div> 3263 <div class="col-6 col-sm-3"> 3264 <div class="form-group"> 3265 <label for="card-cvv">Security Code</label> 3266 <div class="payment-wrapper"> 3267 <div id="card-cvv" class="form-control" style="padding-top: 7px;"><!-- A Stripe Element will be inserted here. --></div> 3268 <div 3269 ng-if="formData.selectedCustomerCardId" 3270 class="payment-overlay" 3271 ng-click="clearSavedCardSelection()" 3272 ></div> 3273 </div> 3274 </div> 3275 </div> 3276 </div> 3277 <div class="row" ng-if="isSavedCardsAllowed()"> 3278 <div class="col-xs-12 divider-row"> 3279 <div class="divider-line"></div>
3280 <span class="divider-text">or</span> 3281 <div class="divider-line"></div> 3282 </div> 3283 </div> 3284 <div class="row" ng-if="isSavedCardsAllowed()"> 3285 <div class="col-xs-12"> 3286 <div class="saved-cards-container"> 3287 <div class="saved-cards-header"> 3288 <div class="saved-cards-col-name">Saved Cards</div> 3289 <div class="saved-cards-col-exp">Expires On</div> 3290 </div> 3291 3292 <div ng-repeat="c in customerCards" 3293 class="saved-card-row" 3294 ng-class="{'saved-card-selected': formData.selectedCustomerCardId === c.pos_customer_card_id}" 3295 > 3296 <label class="saved-card-label"> 3297 <input type="radio" 3298 name="saved-card-rain" 3299 ng-model="formData.selectedCustomerCardId" data-cy="web-checkout-saved-card" 3300 ng-value="c.pos_customer_card_id" 3301 ng-change="onSelectSavedCard(c)"> 3302 <div class="saved-card-info"> 3303 <div class="saved-card-title"> 3304 {{ c.nickname || c.card_type }} 3305 <span class="saved-card-last4"> - (…{{c.last_4_digits}})</span> 3306 <span class="saved-card-exp" ng-if="c.exp_month">{{getFormattedExp(c)}}</span> 3307 </div> 3308 </div> 3309 </label> 3310 3311 <div class="saved-card-expdate"> 3312 {{ getFormattedExpirationDate(c.expiration_mmyy) }} 3313 </div> 3314 </div> 3315 </div> 3316 </div> 3317 </div> 3318 </div> 3319 3320 <div ng-show="showQuiltProcessing()" id="adyen-container" data-cy="web-checkout-adyen-container" style="padding-top: 15px; padding-bottom: 15px;"> 3321 <div class="row"> 3322 <div class="col-xs-12"> 3323 <label>Secure Payment</label> 3324 <!-- Validation Messages --> 3325 <span ng-if="CardStatus.MessagesShow && CardStatus.NotValidMessages.length > 0" class="text-danger"> 3326 <span ng-repeat="cm in CardStatus.NotValidMessages"><br>{{cm}}</span> 3327 </span> 3328 </div> 3329 </div> 3330 <div class="row" ng-if="isSavedCardsFlagEnabled() && paymentType === 'AddCard'"> 3331 <div class="col-xs-12"> 3332 <div class="form-group nickname-group"> 3333 <label for="cc-nickname" class="nickname-label">
3334 <span>Card Nickname</span> 3335 <span class="nickname-optional">(Optional)</span> 3336 </label> 3337 <input 3338 ng-model="CardInfo.nickname" 3339 id="cc-nickname" 3340 type="text" 3341 class="form-control nickname-input" 3342 placeholder="Enter a card name" 3343 maxlength="60" 3344 /> 3345 </div> 3346 </div> 3347 </div> 3348 <div class="row"> 3349 <div class="col-12 col-sm-6"> 3350 <div class="form-group"> 3351 <label for="card-number">Card Number</label> 3352 <div class="payment-wrapper"> 3353 <div id="cc-number" data-cse="encryptedCardNumber" class="form-control" style="padding-top: 7px;"><!-- A Adyen Element will be inserted here. --></div> 3354 <div 3355 ng-if="formData.selectedCustomerCardId" 3356 class="payment-overlay" 3357 ng-click="clearSavedCardSelection()" 3358 ></div> 3359 </div> 3360 </div> 3361 </div> 3362 <div class="col-6 col-sm-3"> 3363 <div class="form-group"> 3364 <label for="card-exp">Expires</label> 3365 <div class="payment-wrapper"> 3366 <div id="cc-exp" data-cse="encryptedExpiryDate" class="form-control" style="padding-top: 7px;"><!-- A Adyen Element will be inserted here. --></div> 3367 <div 3368 ng-if="formData.selectedCustomerCardId" 3369 class="payment-overlay" 3370 ng-click="clearSavedCardSelection()" 3371 ></div> 3372 </div> 3373 </div> 3374 </div> 3375 <div class="col-6 col-sm-3"> 3376 <div class="form-group"> 3377 <label for="card-cvv">CVC</label> 3378 <div class="payment-wrapper"> 3379 <div id="cc-cvv" data-cse="encryptedSecurityCode" class="form-control" style="padding-top: 7px;"><!-- A Adyen Element will be inserted here. --></div> 3380 <div 3381 ng-if="formData.selectedCustomerCardId" 3382 class="payment-overlay" 3383 ng-click="clearSavedCardSelection()" 3384 ></div> 3385 </div> 3386 </div> 3387 </div> 3388 </div> 3389 3390 <div class="row" ng-if="isSavedCardsAllowed()"> 3391 <div class="col-xs-12 divider-row"> 3392 <div class="divider-line"></div>
3393 <span class="divider-text">or</span> 3394 <div class="divider-line"></div> 3395 </div> 3396 </div> 3397 <div class="row" ng-if="isSavedCardsAllowed()"> 3398 <div class="col-xs-12"> 3399 <div class="saved-cards-container"> 3400 <div class="saved-cards-header"> 3401 <div class="saved-cards-col-name">Saved Cards</div> 3402 <div class="saved-cards-col-exp">Expires On</div> 3403 </div> 3404 3405 <div ng-repeat="c in customerCards" 3406 class="saved-card-row" 3407 ng-class="{'saved-card-selected': formData.selectedCustomerCardId === c.pos_customer_card_id}" 3408 > 3409 <label class="saved-card-label"> 3410 <input type="radio" 3411 name="saved-card-adyen" 3412 ng-model="formData.selectedCustomerCardId" data-cy="web-checkout-saved-card" 3413 ng-value="c.pos_customer_card_id" 3414 ng-change="onSelectSavedCard(c)"> 3415 <div class="saved-card-info"> 3416 <div class="saved-card-title"> 3417 {{ c.nickname || c.card_type }} 3418 <span class="saved-card-last4"> - (…{{c.last_4_digits}})</span> 3419 <span class="saved-card-exp" ng-if="c.exp_month">{{getFormattedExp(c)}}</span> 3420 </div> 3421 </div> 3422 </label> 3423 3424 <div class="saved-card-expdate"> 3425 {{ getFormattedExpirationDate(c.expiration_mmyy) }} 3426 </div> 3427 </div> 3428 </div> 3429 </div> 3430 </div> 3431 </div> 3432 </div> 3433 3434 <div ng-if="isPayPal() && !digitalOrder" style="text-align: center; margin-top: 15px;"> 3435 <br> 3436 </div> 3437 </div> 3438 3439 <div role="tabpanel" class="tab-pane fade in active" id="payAtPickup" ng-if="isPayAtPickup()"> 3440 <div style="text-align: center; margin-top: 15px;"> 3441 <p><strong>Your balance of {{Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}} can be paid at the store when you pickup your item(s).</strong></p> 3442 </div> 3443 </div> 3444 </div> 3445 </div> 3446 3447 <!-- Terms and Conditions --> 3448 <div ng-if="showTerms()" class="row"> 3449 <div ng-class="FormFieldErrorClass('billingForm', 'TAndC', billingForm)" class="col-xs-12"> 3450 <input required id="TAndC" data-cy="web-checkout-terms-agree" name="TAndC" type="checkbox" ng-model="BillingInfo.TermsAgree"> I Agree to the Terms and Conditions (<a href="" ng-click="TermsShow()">click here to view</a>) 3451 <br><label ng-if="FormFieldError('billingForm', 'TAndC', billingForm)" class="control-label">Please accept the Terms and Conditions before continuing.</label> 3452 </div> 3453 </div> 3454 </div> 3455 </div> 3456 3457 <div ng-if="areTermsEnabled() && !showBillingSection()" class="panel-body tab-options terms-fallback-panel"> 3458 <div ng-class="FormFieldErrorClass('billingForm', 'TAndC', billingForm)"> 3459 <input required id="TAndC" data-cy="web-checkout-terms-agree" name="TAndC" type="checkbox" ng-model="BillingInfo.TermsAgree"> I Agree to the Terms and Conditions (<a href="" ng-click="TermsShow()">click here to view</a>) 3460 <br><label ng-if="FormFieldError('billingForm', 'TAndC', billingForm)" class="control-label">Please accept the Terms and Conditions before continuing.</label> 3461 </div> 3462 </div> 3463 3464 <div ng-if="showTerms()" id="TermModal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true"> 3465 <div class="modal-dialog" style="width: 100%; max-width: 850px;"> 3466 <div class="modal-content"> 3467 <div class="modal-header"> 3468 <div class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i></div> 3469 <h4 class="modal-title">Terms and Conditions</h4> 3470 </div> 3471 <div class="modal-body">
3472 <span ng-if="StatusInfo.TermsProcessing"><i class="fa fa-spinner fa-pulse"></i></span> 3473 <div id="TermsAndC"></div> 3474 </div> 3475 </div> 3476 </div> 3477 </div> 3478 3479 <!-- Billing Summary --> 3480 3481 <div ng-show="showBillingSummary()" class="panel panel-default ng-hide"> 3482 <div class="panel-body" style="background-color: #ececed;"> 3483 <div class="row"> 3484 <div class="col-xs-6"> 3485 <div ng-if="!isPayPal()"> 3486 <strong>Billing Address</strong> 3487 <a href="" ng-click="BillingEdit()"><small>Change</small></a> 3488 <br> 3489 <span ng-if="!isPayAtPickup()"> 3490 <span ng-if="BillingInfo.FirstName || BillingInfo.LastName">{{BillingInfo.FirstName}} {{BillingInfo.LastName}}<br></span> 3491 <span ng-if="BillingInfo.Address1">{{BillingInfo.Address1}}<br></span> 3492 <span ng-if="BillingInfo.Address2">{{BillingInfo.Address2}}<br></span> 3493 <span ng-if="BillingInfo.City || BillingInfo.State || BillingInfo.Zip">{{BillingInfo.City}}, {{BillingInfo.State}} {{BillingInfo.Zip}}</span> 3494 <span ng-if="BillingInfo.Country != Region"><br>{{BillingInfo.Country}}</span> 3495 </span> 3496 </div> 3497 <span ng-if="isPayAtPickup()"> 3498 Pay at Pickup<br> 3499 Your balance of {{Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}} can be paid at the store when you pickup your item(s). 3500 </span> 3501 <div ng-if="isPayPal()"> 3502 <strong>Payment Information</strong> 3503 <a href="" ng-click="BillingEdit()"><small>Change</small></a> 3504 </div> 3505 </div> 3506 <div class="col-xs-6" ng-if="showPaymentSummary()"> 3507 <strong>Payment Information</strong> 3508 <a href="" ng-click="BillingEdit()"><small>Change</small></a> 3509 <br> 3510 <small> 3511 <span ng-if="CardInfo.CCMasked">{{CardInfo.CCMasked}}<br></span> 3512 <span ng-if="CardInfo.ExpMonth || CardInfo.ExpYear">{{CardInfo.ExpMonth}}/{{CardInfo.ExpYear}}<br></span> 3513 <span ng-if="CardInfo.CVV">{{CardInfo.CVV}}</span> 3514 </small> 3515 </div> 3516 </div> 3517 </div> 3518 </div> 3519 3520 <!-- Buttons --> 3521 3522 <div class="row row-grid"> 3523 <div ng-show="showCaptcha === true" class="col-xs-12 col-md-6"> 3524 <div class="g-recaptcha2" data-sitekey="6LcM-AItAAAAAKBp9tFsqjcPCF0DhG4ZlRbyay8v" data-callback="correctCaptcha"></div> 3525 </div> 3526 <div class="col-xs-12" ng-class="{'col-md-6': showCaptcha}"> 3527 <button type="button" ng-if="CartStatus.Valid && isFree()" ng-click="CheckoutProcess()" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-place-order-button"> 3528 <span>Place Your Order <i class="button-icon-right fa fa-caret-right"></i></span> 3529 </button> 3530 <div ng-if="CartStatus.Valid && isPayPal() && !isFree() && !isProcessing() && !checkFlagForSubscriptionOnly()"> 3531 <img id="paypal-checkout" ng-if="skipBilling()" ng-click="checkCaptcha()" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" alt="Check out with PayPal" style="cursor: pointer;" /> 3532 <img id="paypal-checkout" ng-if="!skipBilling() && isBillingDone() && isPickup()" ng-click="CheckoutProcess()" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" alt="Check out with PayPal" style="cursor: pointer;" /> 3533 <button ng-if="!skipBilling() && !isBillingDone()" ng-click="checkCaptcha()" type="button" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-continue-button"> 3534 Continue 3535 </button> 3536 </div> 3537 <button type="button" ng-if="showBillingInitiallyNeededButton()" ng-click="checkCaptcha()" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-continue-button"> 3538 Continue 3539 </button> 3540 <button type="button" ng-if="showCheckoutButton()" ng-click="CheckoutProcess()" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-place-order-button">
3541 <span ng-if="isVantivHosted() && !isWholesaleNoCCEnabled()">Proceed to Checkout</span> 3542 <span ng-if="!isVantivHosted() && !isWholesaleNoCCEnabled()">Place Your Order</span> 3543 <span ng-if="isWholesaleNoCCEnabled()">Place Wholesale Order</span> 3544 </button> 3545 <button type="button" ng-if="showBillingStillRequiredButton()" ng-click="ShippingDone(true, 'BillingEdit')" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-continue-button"> 3546 Continue 3547 </button> 3548 <button type="button" ng-if="BillingStatus.Editing && (isShippingNeeded() || !ContactStatus.Valid) && !isProcessing()" ng-click="BillingDone('ShippingEdit')" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-enter-shipping-button"> 3549 Enter Shipping Information 3550 </button> 3551 <div ng-if="showCreditCardOption()" style="margin-top: 10px;"> 3552 <a ng-if="isCardProcessorVantiv()" ng-click="setProcessor('VantivHosted');" class="small-link" href="" style="font-weight: normal !important;">or checkout with credit card</a> 3553 <a ng-if="isCardProcessorNMI()" ng-click="GoToCheckoutUrl();" class="small-link" href="" style="font-weight: normal !important;">or checkout with credit card</a> 3554 </div> 3555 <div ng-if="showPayPalOption()" style="margin-top: 10px;"> 3556 <a ng-click="setProcessor('paypal');" class="small-link" href="" style="font-weight: normal !important;">or checkout with PayPal</a> 3557 </div> 3558 <span ng-show="isProcessing()" data-cy="web-checkout-processing"><i class="fa fa-spinner fa-pulse fa-2x"></i></span> 3559 </div> 3560 </div> 3561 3562 <div ng-if="StatusInfo.ErrorMessageBottom" class="alert alert-danger" data-cy="web-checkout-error-bottom"> 3563 <button type="button" class="close" ng-click="ErrorMessageBottomClose()" data-cy="web-checkout-error-bottom-close">×</button> 3564 {{StatusInfo.ErrorMessageBottom}} 3565 </div> 3566 3567 </div> 3568 3569 <!-- Summary area --> 3570 3571 <div class="col-sm-5 hidden-xs"> 3572 <div class="panel panel-default"> 3573 <div ng-if="StatusInfo.Initializing" class="panel-body"> 3574 <i class="fa fa-spinner fa-pulse fa-2x"></i> 3575 </div> 3576 <table ng-if="!StatusInfo.Initializing" class="table"> 3577 3578 3579<thead> 3580<tr> 3581 <td><strong>Description</strong></td> 3582 <td><strong>Quantity</strong></td> 3583 <td colspan="2"><strong>Amount</strong></td> 3584</tr> 3585</thead> 3586<tbody ng-repeat="item in CartData.Items"> 3587<tr> 3588 <td colspan="4" style="border-bottom: 0; padding-bottom: 0;"> 3589 <span ng-if="item.condition"> 3590 {{item.title}} ({{item.condition.title}}) 3591 </span> 3592 3593 <span ng-if="!item.condition"> 3594 {{item.title}} 3595 <span ng-if="item.type === 'class' && item.class_date"> - {{item.class_date}}</span> 3596 </span> 3597 3598 <span ng-if="item.discount_eligible === 'false' && item.is_consignment && StatusInfo.IsCouponEntered" class="text-danger display-block"> 3599 This item is not eligible for discounts 3600 </span> 3601 <span ng-if="!item.quantity_updating && item.type == 'rental'"> 3602 - {{item.id}} 3603 </span> 3604 <span ng-if="item.package_items" ng-repeat="pitem in item.package_items"> 3605 <br> - {{pitem.title}} 3606 </span> 3607 <span ng-if="item.class_attendees.length"> 3608 <br> - Attendees: 3609 <span ng-repeat="name in item.class_attendees"> 3610 {{name}} 3611 </span> 3612 </span> 3613 </td> 3614</tr> 3615<tr> 3616 <td style="border-top: 0;"> 3617 <img ng-if="item.image" ng-src="{{item.image}}" style="height: 50px; padding-right: 8px;"> 3618 3619 </td> 3620 <td style="vertical-align: middle; border-top: 0;"> 3621 <div ng-if="showQuantityAsSelector(item)" class="form-inline"> 3622 <select ng-model="item.qty_integer" ng-options="opt.id as opt.name for opt in item.integer_options" class="form-control" style="max-width: 75px; height: 24px; padding: 0; margin-bottom: 0px !important;" ng-change="QuantityChanged(item)"> 3623 </select> 3624
3625 <span ng-if="item.qty_type == 'fraction'"> 3626 <select ng-model="item.qty_remainder" ng-options="opt.id as opt.name for opt in item.remainder_options" class="form-control" style="max-width: 85px; height: 24px; padding: 0; margin-bottom: 0px !important;" ng-change="QuantityChanged(item)"> 3627 </select> 3628 <span ng-if="item.measure_unit == 'Meter'">Metres</span> 3629 <span ng-if="item.measure_unit != 'Meter'">{{item.measure_unit}}s</span> 3630 </span> 3631 </div> 3632 <div ng-if="showQuantityAsNumber(item)"> 3633 {{item.qty_integer}} 3634 </div> 3635 <i ng-if="item.quantity_updating" class="fa fa-spinner fa-pulse"></i> 3636 </td> 3637 3638 <td ng-if="!showAsGST()" style="vertical-align: middle; border-top: 0;">{{getItemPrice(item) | currency:InitInfo.CurrencySymbol2}}</td> 3639 3640 <td style="vertical-align: middle; border-top: 0;"> 3641 <div class="cartCell cartDelete"> 3642 <a href="#" ng-if="!item.removing" ng-click="ItemRemove(item)" class="text-muted text-hover-red"><span class="smallHidden"><i class="fa fa-times"></i></span><span class="largeHidden">remove</span></a> 3643 <i ng-if="item.removing" class="fa fa-spinner fa-pulse"></i> 3644 </div> 3645 </td> 3646 <td ng-if="showAsGST()" style="vertical-align: middle; border-top: 0;">{{getItemGstTotal(item) | currency:InitInfo.CurrencySymbol2}}</td> 3647</tr> 3648<tr ng-if="item.type === 'subscription'"> 3649 <td colspan="4" style="border-bottom: 0;padding: 8px;border-top: 0;"> 3650 <a ng-click="showSubscriptionDetails = !showSubscriptionDetails" class="subscription-details-btn" href="javascript:void(0);"> 3651 <i class="fa" ng-class="{'fa-caret-down': showSubscriptionDetails, 'fa-caret-right': !showSubscriptionDetails}"></i> 3652 View Subscription Details 3653 </a> 3654 <div ng-show="showSubscriptionDetails"> 3655 <table class="subscription-details"> 3656 <tr> 3657 <td>{{item.subscriptionData.labels.adverb}} Price:</td> 3658 <td>{{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}</td> 3659 </tr> 3660 <tr> 3661 <td>Subscription Length:</td> 3662 <td>{{item.subscriptionData.subscription_length}} {{item.subscriptionData.labels.plural}}</td> 3663 </tr> 3664 <tr> 3665 <td>Start/End Date:</td> 3666 <td>{{item.subscriptionData.start_date}} - {{item.subscriptionData.end_date}}</td> 3667 </tr> 3668 <tr> 3669 <td>Registration Fee <span class="small-subtitle">(One Time)</span>:</td> 3670 <td>{{item.subscriptionData.registration_fee | currency:InitInfo.CurrencySymbol2}}</td> 3671 </tr> 3672 <tr> 3673 <td>Previous {{item.subscriptionData.labels.plural}}:</td> 3674 <td> 3675 <span ng-if="item.subscriptionData.previous_items_cnt > 0"> 3676 {{item.subscriptionData.previous_items_cnt}} x {{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}} 3677 </span> 3678 <span ng-if="item.subscriptionData.previous_items_cnt == 0">Not Included</span> 3679 </td> 3680 </tr> 3681 <tr> 3682 <td>Delivery Method:</td> 3683 <td ng-switch="item.subscriptionData.delivery_type"> 3684 <span ng-switch-when="ship"> 3685 Shipped - {{item.subscriptionData.shipping_fee | currency:InitInfo.CurrencySymbol2}} 3686 </span> 3687 <span ng-switch-default>In-Store Pickup</span> 3688 </td> 3689 </tr> 3690 <tr ng-if="item.subscriptionData.delivery_type === 'ship'"> 3691 <td>Address:</td> 3692 <td>{{item.subscriptionData.address}}</td> 3693 </tr> 3694 <tr> 3695 <td><strong>Total {{item.subscriptionData.labels.adverb}}:</strong></td> 3696 <td> 3697 <strong>{{item.subscriptionData.total_per_kit | currency:InitInfo.CurrencySymbol2}}</strong> 3698 </td> 3699 </tr> 3700 <tr> 3701 <td><strong>Due Today:</strong></td> 3702 <td> 3703 <strong>{{item.subscriptionData.due_today | currency:InitInfo.CurrencySymbol2}}</strong> 3704 </td> 3705 </tr> 3706 </table> 3707 </div> 3708 </td> 3709</tr> 3710</tbody> 3711 <tr ng-show="isProductInCart()"> 3712 <td colspan="4" width="100%"> 3713 </td> 3714 </tr> 3715 <tr> 3716 <td colspan="2"> 3717 Subtotal 3718 <br> 3719 </td> 3720 <td colspan="2" align="right" class="h4" data-cy="web-checkout-summary-subtotal"><strong>
3721 <span ng-if="!showAsGST()">{{SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></span> 3722 <span ng-if="showAsGST()">{{GST_SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></span> 3723 </td> 3724 </tr> 3725 <tr ng-if="CustomerDiscounts > 0"> 3726 <td colspan="2"> 3727 Discount 3728 <br> 3729 </td> 3730 <td colspan="2" align="right" class="h4"><strong> 3731 <span>{{CustomerDiscounts | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></span> 3732 </td> 3733 </tr> 3734 <tr> 3735 <td colspan="3"> 3736 <input id="gift-card-coupon-code" data-cy="web-cart-coupon-input" ng-model="StatusInfo.giftCardOrCouponCode" ng-keydown="giftCardOrCouponCodeKeyDown($event)" type="text" placeholder="Enter Gift Card or Coupon Code" class="form-control" style="margin-bottom: 0px !important;"> 3737 <span id="gift-card-coupon-msgs" class="messages-coupon-gc"> 3738 <!-- Messages --> 3739 <span id="gift-card-coupon-error-msg" ng-cloak ng-show="shouldShowGiftCardCouponErrorMsg()"><i class="fa fa-ban"></i> {{giftCardCouponMsg}}</span> 3740 <span id="gift-card-applied-msg" ng-cloak ng-show="shouldShowGiftCardAppliedMsg()" ><i class="fa fa-check"></i> Gift Card Applied</span> 3741 <span id="coupon-applied-msg" ng-cloak ng-show="shouldShowCouponAppliedMsg()" ><i class="fa fa-check"></i> Coupon Added</span> 3742 <span ng-cloak ng-show="giftCardOrCouponDataState == DATA_STATE_LOADING" class="gc-coupon-data-loading"><i class="fa fa-spinner fa-spin"></i></span> 3743 </span> 3744 </td> 3745 <td id="gift-card-coupon-code-apply-cell" colspan="2" style="vertical-align: top;"> 3746 <button id="gift-card-coupon-code-apply" data-cy="web-cart-coupon-apply" ng-disabled="!shouldEnableGiftCardCouponApplyBtn()" ng-click="getGiftCardOrCoupon()" type="button" class="btn btn-default">Apply</button> 3747 </td> 3748 </tr> 3749 3750 <tbody ng-if="CartData.Coupons.length > 0"> 3751 <tr> 3752 <td colspan="4"> 3753 <div> 3754 <div ng-show="CartData.Coupons.length > 0" class="row-divider-checkout"> 3755 <div class="divider-checkout-block-title"> 3756 Coupons 3757 </div> 3758 <div ng-if="showOnlyHighestDiscountWarning() || showDontApplyOnSaleItemsWarning()" class="alert-warning warning-box"> 3759 <span ng-if="showOnlyHighestDiscountWarning()"> 3760 Only a single coupon with the highest savings will be applied. 3761 </span> 3762 <span ng-if="showDontApplyOnSaleItemsWarning()"> 3763 Coupons do not apply to On Sale Items 3764 </span> 3765 </div> 3766 <div ng-repeat="c in CartData.Coupons | orderBy: (isApplyHighestSavingCouponsMode() ? ['notApplied', 'notEligible'] : [])" class="item-box" ng-class="{'not-applied-coupon' : !isCouponAvailable(c)}"> 3767 <div class="discount-item"> 3768 <div class="discount-item-title"> 3769 <a href="" ng-click="openCouponDetail
3769sModal(c)"><span class="gift-card-coupon-identifier">{{c.title}}</span></a> 3770 </div> 3771 <div class="discount-amount"> 3772 <span ng-if="isCouponAvailable(c)">-{{c.discount | currency:InitInfo.CurrencySymbol2}} </span> 3773 <span ng-if="!isCouponAvailable(c)" class="not-applied-amount-label">{{ couponUnavailabilityMessage(c) }} </span> 3774 <a href="" ng-show="!StatusInfo.CouponUpdating" ng-click="removeCoupon(c.couponId)" class="text-muted text-hover-red"><i class="fa fa-times times-close"></i></a> 3775 <i ng-show="StatusInfo.CouponUpdating" class="fa fa-spinner fa-pulse"></i> 3776 </div> 3777 </div> 3778 <div class="gift-card-coupon-code-span"> 3779 {{c.couponCode}} 3780 </div> 3781 <div ng-if="isShippingCoupon(c)" class="discount-amount coupon-error-msg">{{couponStatusMessage}}</div> 3782 </div> 3783 </div> 3784 </div> 3785 </td> 3786 </tr> 3787 </tbody> 3788 <tr ng-if="ShippingInfo.Option && ShippingStatus.Required"> 3789 <td colspan="2"> 3790 {{isPickup() ? '' : 'Shipping'}} {{ShippingInfo.Option.name}} 3791 <a href="" ng-click="ShippingEdit()"><small>Change</small></a> 3792 <small>{{ShippingInfo.Option.delivery_time}}</small> 3793 </td> 3794 <td colspan="2" align="right"> 3795 <span ng-if="!isTaxInclusive()"><strong>{{ShippingInfo.Option.price | currency:InitInfo.CurrencySymbol2}}</strong></span> 3796 <span ng-if="isTaxInclusive()" style="font-weight: bold; text-align: right;"> 3797 {{getGstShippingTotal() | currency:InitInfo.CurrencySymbol2}} 3798 </span> 3799 </td> 3800 </tr> 3801 <tr ng-if="!showAsGST()"> 3802 <td colspan="2"> 3803 Taxes 3804 </td> 3805 <td colspan="2" align="right" data-cy="web-checkout-summary-taxes"> 3806 <span ng-if="StatusInfo.DynamicTaxAddressError" class="dynamic_tax_error">{{StatusInfo.DynamicTaxAddressError}}</span> 3807 <strong ng-if="!StatusInfo.DynamicTaxAddressError">{{Taxes | currency:InitInfo.CurrencySymbol2}}</strong> 3808 </td> 3809 </tr> 3810 3811 <tbody ng-if="breakDownTaxes()"> 3812 <tr ng-repeat="(jurisdiction, taxes) in JurisdictionalTaxes" ng-if="showTaxJurisdiction(jurisdiction, taxes, false)"> 3813 <td colspan="2"> 3814 {{jurisdiction}} 3815 </td> 3816 <td colspan="2" align="right"> 3817 {{taxes.tax_paid | currency:InitInfo.CurrencySymbol2}} 3818 </td> 3819 </tr> 3820 </tbody> 3821 3822 <tr ng-if="ShippingTaxes && !isTaxInclusive()"> 3823 <td colspan="2"> 3824 Shipping Taxes 3825 </td> 3826 <td colspan="2" align="right"> 3827 <strong>{{ShippingTaxes | currency:InitInfo.CurrencySymbol2}}</strong> 3828 </td> 3829 </tr> 3830 3831 <tbody ng-if="breakDownTaxes()"> 3832 <tr ng-repeat="(jurisdiction, taxes) in JurisdictionalTaxes" ng-if="showTaxJurisdiction(jurisdiction, taxes, true)"> 3833 <td colspan="2"> 3834 {{jurisdiction}} 3835 </td> 3836 <td colspan="2" align="right"> 3837 {{taxes.tax_paid | currency:InitInfo.CurrencySymbol2}} 3838 </td> 3839 </tr> 3840 </tbody> 3841 3842 <tbody ng-if="showGiftCardSummary()"> 3843 <tr> 3844 <td colspan="4"> 3845 <div> 3846 <div class="row-divider-checkout"> 3847 <div class="divider-checkout-block-gc-title"> 3848 Gift Cards 3849 </div> 3850 <div ng-repeat="gc in CartData.GiftCards" class="item-box"> 3851 <div class="discount-item"> 3852 <div>
3853 <span class="gift-card-coupon-identifier">{{gc.title}}</span> 3854 </div> 3855 <div class="discount-amount"> 3856 -{{gc.Amount | currency:InitInfo.CurrencySymbol2}} 3857 <a href="" ng-show="!StatusInfo.GiftCardUpdating" ng-click="removeGiftCard(gc.id)" class="text-muted text-hover-red"><i class="fa fa-times times-close"></i></a> 3858 <i ng-show="StatusInfo.GiftCardUpdating" class="fa fa-spinner fa-pulse"></i> 3859 </div> 3860 </div> 3861 <div class="gift-card-coupon-code-span"> 3862 {{gc.number}} 3863 </div> 3864 </div> 3865 </div> 3866 </div> 3867 </td> 3868 </tr> 3869 </tbody> 3870 <tr> 3871 <td colspan="1"> 3872 Total <span ng-if="isPayAtPickup()">due at pickup</span> 3873 </td> 3874 <td colspan="3" align="right" data-cy="web-checkout-summary-total"> 3875 <span ng-if="!showAsGST()"><strong>{{Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></span> 3876 <span ng-if="showAsGST()"> 3877 <strong>{{GST_Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong> 3878 </span> 3879 3880 <span ng-if="GST_Due > 0 && GST_Taxes > 0 && showAsGST() && isShippingCountryGST()" align="right"> 3881 <span ng-if="GST_Due > 0 && GST_Taxes > 0 && isShippingCountryGST()" class="cartTableSubHeader"><br/>{{getGstTaxes() | currency:InitInfo.CurrencySymbol2}} GST included in total</span> 3882 </span> 3883 </td> 3884 </tr> 3885 </table> 3886 </div> 3887 </div> 3888 3889</div> 3890 </div> 3891 </div> 3892 <div id="coupon-details-modal" ></div> 3893 3894 <form id="processorform" action="{{SubmitInfo.SubmitUrl}}" method="post"><input type="hidden" name="form_version" value="2"> 3895 <input type="hidden" ng-repeat="(key, val) in SubmitFields()" name="{{key}}" value="{{val}}"> 3896 </form> 3897</div> 3898 3899 3900<!-- NOTE: Do not move to angular 1.4.x yet. There is an issue with particular cart data causing really poor performance --> 3901<!-- DO NOT CHANGE ANGULAR JS VERSION, THIS IS THE LAST VERSION THAT WORKS PROPERLY IN THE FOLLOWING BROWSERS --> 3902<!-- IE 9 AND iOS < 6 --> 3903<!-- THIS IS ONLY FOR THE CHECKOUT, OTHER PAGES CAN USE WHICH EVER VERSION THEY WANT TO --> 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 </div> 3936 </div> 3937</div> 3938 3939 <!-- footer --> 3940 <div class="bgFooter"> 3941 <div style="" class="ignore-site-layout-styles"> 3942 <div class="container "> 3943 <div class="row paddingLarge" style="position: relative; padding-left: 0px; padding-right: 0px; padding-top: 40px; padding-bottom: 0px; "> 3944 3945 3946 <div class="col-sm-3"><span style="padding-bottom: 10px; display: inline-block;"><strong>Information<br /></strong></span> 3947<ul class="list-unstyled"> 3948<li><a href="#">About Us</a></li> 3949<li><a href="#">Policy</a></li> 3950<li><a href="#">T & C</a></li> 3951<li><a href="#">Shipping</a></li> 3952</ul> 3953</div> 3954<div class="col-sm-3"><span style="padding-bottom: 10px; display: inline-block;"><strong>Categories<br /></strong></span> 3955<ul class="list-unstyled"> 3956<li><a href="/shop/Fabric.htm">Fabric</a></li> 3957<li><a href="/shop/Notions.htm">Notions</a></li> 3958<li><a href="/shop/Pattern.htm">Patterns</a></li> 3959<li><a href="/shop.htm">View All</a></li> 3960</ul> 3961</div> 3962<div class="col-sm-3"><span style="padding-bottom: 10px; display: inline-block;"><strong>Contact Us<br /></strong></span> 3963<ul class="list-unstyled"> 3964<li>Tel:<span> </span><a href="tel:+1361-594-8022">(361) 594-8022</a></li> 3965<li>Email: [email protected]</li> 3966<li>807 N. Ave. D</li> 3967<li>Shiner, Texas 77984</li> 3968</ul> 3969</div> 3970<div class="col-sm-3"><span style="padding-bottom: 10px; display: inline-block;"><strong>Follow Us<br /></strong></span> 3971<ul class="list-unstyled"> 3972<li><a href="https://www.facebook.com/ShinerSquared/" target="_blank">Facebo</a>ok</li> 3973<li>www.thesquarequilter.com</li> 3974</ul> 3975</div> 3976<style><!-- 3977<link href="https://fonts.googleapis.com/css?family=Raleway&display=swap" rel="stylesheet"> 3978 <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> 3979--></style> 3980 </div> 3981 </div> 3982</div> 3983 <div class="container footer" style="height: auto; text-align:center; "> 3984 <br> 3985 <br> 3986 <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/">Home</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/shop.htm">Shop Online</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/shop/Clearance.htm">Clearance</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/gift-certificate.htm">Gift Cert</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/about-us.htm">About Us</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/classes.htm">Classes</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/module/events.htm?pageComponentId=1840218&month=current">Calendar</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/events.htm">Birthdays</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/quilting.htm">Longarm Quilting</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/contact.htm">Contact Us</a> | <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.thesquarequilter.com/site-map.htm">Site Map</a><!-- Yup, this comment is here for a reason. --> 3987 <div style="height: 10px;"></div>
3988 Copyright © 2007-2026 - The Square Quilter<br> 3989 <a class="footer" style="font-weight: normal;" href="https://www.likesew.com">Website Design</a> by Like Sew<br> 3990 3991 <br> 3992 <br> 3993 </div> 3994</div> 3995 3996 3997 3998</div> 3999 4000<!-- 43 module.tpl --> 4001 4002 4003<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css">
4004<script type="text/javascript" src="https://images.rainpos.com/jquery-migrate-1.2.1.min.js" attr="nomove"></script>
vendor: 1 bytes, line 4004
4004
4005<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js" attr="nomove"></script>
vendor: 1 bytes, line 4005
4005
4006<script type="text/javascript" src="https://images.rainpos.com/json2.js" attr="nomove"></script>
vendor: 1 bytes, line 4006
4006
4007<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js" attr="nomove"></script>
vendor: 73 bytes, lines 4007-4017
4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017<script async src="https://www.googletagmanager.com/gtag/js?id=
4017G-ZX65BVQPQ9
vendor: 12 bytes, line 4017
4017"></script>
4018<script> 4019
vendor: 138 bytes, lines 4019-4023
4019window.dataLayer = window.dataLayer || []; 4020 function gtag(){dataLayer.push(arguments);} 4021 gtag('js', new Date()); 4022 4023 gtag('config', '
4023G-ZX65BVQPQ9
vendor: 5 bytes, line 4023
4023');
4024</script>
vendor: 1 bytes, line 4024
4024
4025<script> 4026 if(!(window.console && console.log)) { 4027 console = { 4028 log: function(){}, 4029 debug: function(){}, 4030 info: function(){}, 4031 warn: function(){}, 4032 error: function(){} 4033 }; 4034 } 4035 </script>
vendor: 1 bytes, line 4035
4035
4036<script type="text/javascript" src="/1723204580/site-configuration/js/recaptchaCode.js"></script>
vendor: 116 bytes, lines 4036-4037
4036 4037<script src="https://www.google.com/recaptcha/api.js?onload=recaptchaOnload&render=explicit" async defer></script>
4038<script type="text/javascript"> 4039 var isMobileBrowser = 0; 4040 var isResponsive = true; 4041 </script>
vendor: 1 bytes, line 4041
4041
4042<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
vendor: 1 bytes, line 4042
4042
4043<script src="/1723204579/pos-app/js/big.min.js"></script>
vendor: 1 bytes, line 4043
4043
4044<script src="/1723204579/pos-app/js/lib.js"></script>
vendor: 1 bytes, line 4044
4044
4045<script src="/1775641146/pos-app/js/utils.js"></script>
vendor: 1 bytes, line 4045
4045
4046<script src="/1760603607/js/components/stripe-payment-request/CheckoutContextWrapper.js"></script>
vendor: 1 bytes, line 4046
4046
4047<script src="/1759150467/js/components/stripe-payment-request/PaymentRequestModel.js"></script>
vendor: 1 bytes, line 4047
4047
4048<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLError.js"></script>
vendor: 1 bytes, line 4048
4048
4049<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLBaseModel.js"></script>
vendor: 1 bytes, line 4049
4049
4050<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLKlarnaModel.js"></script>
vendor: 1 bytes, line 4050
4050
4051<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLAffirmModel.js"></script>
vendor: 1 bytes, line 4051
4051
4052<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLAfterpayModel.js"></script>
vendor: 1 bytes, line 4052
4052
4053<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLModel.js"></script>
vendor: 1 bytes, line 4053
4053
4054<script src="/1723204579/checkout/PromiseAccumulator.js"></script>
vendor: 1 bytes, line 4054
4054
4055<script src="/1723204579/c/libs/libphonenumber-js/libphonenumber-js.min.js"></script>
vendor: 1 bytes, line 4055
4055
4056<script src="/1723204579/js/bower_components/angular-sanitize/angular-sanitize.min.js"></script>
vendor: 1 bytes, line 4056
4056
4057<script src="/1790254316/checkout/checkoutCtrl.js"></script>
vendor: 1 bytes, line 4057
4057
4058<script src="/1723204579/js/log.js"></script>
vendor: 1 bytes, line 4058
4058
4059<script>var Logger = Object.create(Logger.prototype); Logger.setToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3OTA1MDMxNjcsImp0aSI6IjZjNTJhOWFlMTkxNjJjYWExZjFiNjEzZGE1ZGVhNDgxNDY2ZjBiZWQ0NDYwNjg2NzljOWJjYjg0OTQwYTg1MTUiLCJuYmYiOjE3OTA1MDMxNjcsImV4cCI6MTc5MDU0NjM2NywiZGF0YSI6eyJzdG9yZUlkIjoxMDQzOSwic2l0ZVVzZXJJZCI6bnVsbCwiY3VzdG9tZXJMb2dpbklkIjpudWxsfX0.2kTDlpvrm6tX_dFuqHDNBPlEbOiUa0zT9Jsu5Hb6gc4"); </script>
vendor: 1 bytes, line 4059
4059
4060<script>window.cartJWT = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3OTA1MDMxNjcsImp0aSI6IjZjNTJhOWFlMTkxNjJjYWExZjFiNjEzZGE1ZGVhNDgxNDY2ZjBiZWQ0NDYwNjg2NzljOWJjYjg0OTQwYTg1MTUiLCJuYmYiOjE3OTA1MDMxNjcsImV4cCI6MTc5MDU0NjM2NywiZGF0YSI6eyJzdG9yZUlkIjoxMDQzOSwic2l0ZVVzZXJJZCI6bnVsbCwiY3VzdG9tZXJMb2dpbklkIjpudWxsfX0.2kTDlpvrm6tX_dFuqHDNBPlEbOiUa0zT9Jsu5Hb6gc4"</script>
vendor: 1 bytes, line 4060
4060
4061<script src="/js/libs/vue/2.6.12.vue.min.js"></script>
vendor: 1 bytes, line 4061
4061
4062<script src="/js/libs/axios/0.31.1.axios.min.js"></script>
vendor: 1 bytes, line 4062
4062
4063<script type="text/javascript"> 4064 if (typeof window.vueEventHub === 'undefined') { 4065 window.vueEventHub = new Vue(); 4066 } 4067 Vue.use({install: function (Vue, params) { 4068 Vue.prototype.$eventHub = params.vueEventHub; 4069 }}, {vueEventHub: window.vueEventHub}); 4070</script>
vendor: 1 bytes, line 4070
4070
4071<script src="/1723204579/pos-app/controls/form-validate/form-validate.directive.js"></script>
vendor: 1 bytes, line 4071
4071
4072<script type='application/javascript'>var adyen_env = 1;</script>
vendor: 1 bytes, line 4072
4072
4073<script type='application/javascript'>var currency_code = 'USD';</script>
vendor: 1 bytes, line 4073
4073
4074<script src="https://payments.quiltsoftware.com/adyenRegion.js"></script>
vendor: 1 bytes, line 4074
4074
4075<script> 4076 let scriptAdyenRegion = window.adyenRegion || 'live-us'; 4077 4078 const adyenScript = document.createElement('script'); 4079 const adyenStyle = document.createElement('link'); 4080 var adyenStyleLoaded = false; //global 4081 let head = document.getElementsByTagName('head')[0]; 4082 4083 adyenScript.src = 'https://checkoutshopper-' + scriptAdyenRegion + '.adyen.com/checkoutshopper/sdk/5.29.0/adyen.js'; 4084 adyenScript.type = 'text/javascript'; 4085 adyenScript.crossOrigin = 'anonymous'; 4086 adyenScript.integrity = 'sha384-V7uOD/4bQuWLJRCDSfc60tVzD6rYW5BkkY3GYnaFjgg/guMih1Kx6N5Vo9dBtN3y'; 4087 4088 adyenStyle.href = 'https://checkoutshopper-' + scriptAdyenRegion + '.adyen.com/checkoutshopper/sdk/5.29.0/adyen.css' 4089 adyenStyle.rel = 'stylesheet'; 4090 adyenStyle.crossOrigin = 'anonymous'; 4091 adyenStyle.integrity = 'sha384-jAG16Mh+vYdXeyWKqPqL7chbdFT1aS5qjt/8jGJz5vBrI1RJ3m6/uFfMZt8li/rT'; 4092 4093 head.appendChild(adyenScript); 4094 head.appendChild(adyenStyle); 4095 4096 adyenStyle.onload = function() { 4097 adyenStyleLoaded = true; 4098 } 4099</script>
vendor: 1 bytes, line 4099
4099
4100<script type="text/javascript" src="/js/dist/npm.core-js.7fcae61afb054d7ba0b3.js"></script>
vendor: 1 bytes, line 4100
4100
4101<script type="text/javascript" src="/js/dist/npm.vue-loader.d0cb700bf30f64badaf5.js"></script>
vendor: 1 bytes, line 4101
4101
4102<script type="text/javascript" src="/js/dist/npm.style-loader.b1e6d4e14468065b9561.js"></script>
vendor: 1 bytes, line 4102
4102
4103<script type="text/javascript" src="/js/dist/npm.css-loader.4580a37e6cd44c5ceae8.js"></script>
vendor: 1 bytes, line 4103
4103
4104<script type="text/javascript" src="/js/dist/npm.date-fns.a04ecd7fd4860ad4dc6d.js"></script>
vendor: 1 bytes, line 4104
4104
4105<script type="text/javascript" src="/js/dist/coupon-details-modal.310e9f33ad0b13b0bc5a.js"></script>
vendor: 1 bytes, line 4105
4105
4106<script type="text/javascript"> 4107 var isMusicStore = false; 4108 var districts = []; 4109 var schools = []; 4110 var customerId = 0; 4111</script>
vendor: 1 bytes, line 4111
4111
4112<script> 4113 function innerWrapper() { 4114 const innerDivz = document.querySelectorAll(`div.inner`); 4115 if (innerDivz.length > 0) { 4116 let identifyParentEl = innerDivz[0].parentElement; 4117 const wrapperEl = document.createElement('div'); 4118 4119 wrapperEl.setAttribute('data-column-id', 'body'); 4120 if (innerDivz[0].classList.contains('inner-full-width')) { 4121 wrapperEl.className = 'new clearfix'; 4122 } else { 4123 wrapperEl.className = 'new container clearfix'; 4124 } 4125 if (identifyParentEl.classList.contains('vue-component-wrapper')) { 4126 identifyParentEl.insertAdjacentElement('beforebegin', wrapperEl); 4127 } else { 4128 innerDivz[0].insertAdjacentElement('beforebegin', wrapperEl); 4129 } 4130 innerDivz.forEach(item => wrapperEl.append(item)); 4131 } 4132 } 4133 document.addEventListener('DOMContentLoaded', innerWrapper); 4134 </script>
vendor: 1 bytes, line 4134
4134
4135<script type="text/javascript" src="/site-configuration/js/jquery.blockUI.js"></script>
4135 4136
4137<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"d60c52fc57","applicationID":"7339757","transactionName":"ZAFTMEcHDUsDB00IDl1LchFGEgxVTSdqCQ5DFFgKUiUCShY7ewASVg==","queueTime":0,"applicationTime":184,"atts":"SEZQRg8dHkU=","errorBeacon":"bam.nr-data.net","agent":""}</script>
4137</body> 4138</html>
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.