PageSourceSearch

https://www.prairiequilt.com/module/product.htm?checkout=3

html prairiequilt.com collected 2026-09-25 20:58:37 UTC 345,037 bytes, 4,355 lines download raw bytes

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 
7<script attr="nomove" src="https://sdk.videeo.com/latest.js"></script>
7
8	<link rel="icon" type="image/x-icon" href="/favicon.ico">
9    <title></title>
10	
11    <meta name="description" content="">
12	
13	<link rel="canonical" href="https://www.prairiequilt.com/module/product.htm">
14	
15
16	<link rel="dns-prefetch" href="oss.maxcdn.com">
17	<link rel="dns-prefetch" href="ajax.googleapis.com">
18
19	<!-- BOOTSTRAP START !! -->
20    <meta charset="utf-8">
21	<meta http-equiv="X-UA-Compatible" content="IE=edge">
21<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 */
22(()=>{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||{}
22).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(()=>
22{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
22I5JCXAuxG0YxsW7iqJzgrcO7NJWO58EfQ=="};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}
22,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);
22var 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={};
22return 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>
22
23	<meta name="viewport" content="width=device-width, initial-scale=1">
24
25	<!-- BEGIN FRONTEND TRACKJS -->
25<script attr="nomove" src="https://cdn.trackjs.com/agent/v3/latest/t.js"></script>
vendor: 1 bytes, line 25
25
26<script attr="nomove">
27  TrackJS.install({
28    token: "a7347001564f4c9cb840b3caf60af7ea",
29    application: "frontend-production"
30    // for more configuration options, see https://docs.trackjs.com
31  });
32</script>
32<!-- END FRONTEND TRACKJS -->
33
34    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
35    <!--[if lt IE 9]>
36      
36<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js" attr="nomove"></script>
36
37      
37<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js" attr="nomove"></script>
37
38    <![endif]-->
39	<!-- BOOTSTRAP END -->
40
41    
42    
42<script type="text/javascript" src="https://images.rainpos.com/jquery.tools.min.js" attr="nomove"></script>
42
43    
44	
44<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" attr="nomove"></script>
44
45
46	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
47
48	
49	
50
51	<style>
52		* {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: 20px !important;border: 1px solid #fff !important;}.menubg {min-height: px;}.mainMenuItem {padding-left: 20px !important;padding-right: 20px !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:#fff !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:#ffffff !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:#669999 !important;}#mainNav .dropdown-menu > li > a{color:#464646 !important;background-color:#fff !important;border:0px !important;}#mainNav .dropdown-menu > li > a:hover,#mainNav .dropdown-menu > li > a:focus{color:#669999 !important;background-color:#fff !important;}.menubg{z-index:3 !important;}.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:17px !important;font-family:Lato, sans-serif !important;font-weight:300 !important; text-transform: uppercase !important;color:#ffffff !important;}html{font-size:1em !important;}body{font-family:Lato, sans-serif !important;color:#464646 !important;font-size:inherit !important;margin:0px;padding:0px;margin-top:0px;height:100%;}.homePageBg{background:#fff ;}.secondaryPageBg{background:#fff ;}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:#464646 !important;font-family:Lato, sans-serif !important;font-size:2em !important;}a:not(.ignore-site-layout-styles a), a:visited:not(.ignore-site-layout-styles a){color:#669999 !important;
52font-weight:normal !important;}a:hover:not(.ignore-site-layout-styles a){text-decoration:none !important;color:#C9847E !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;}.footer, .footer:hover, .footer:visited{color:#a0a0a0 !important;  text-transform: uppercase !important;font-size:.8em !important;}.main1ColumnWidth h1, .main1ColumnWidth h2, .main1ColumnWidth h3{color:#464646;font-family:Lato, sans-serif;font-size:2em;}.main1ColumnWidth a{color:#669999;font-weight:normal;}.main1ColumnWidth a:hover{text-decoration:none;color:#C9847E;}.secondaryMain1ColumnWidth h1, .secondaryMain1ColumnWidth h2, .secondaryMain1ColumnWidth h3{color:#464646;font-family:Lato, sans-serif;font-size:2em;}.secondaryMain1ColumnWidth a{color:#669999;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: #fff;}.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 {
53    border-radius: 4px!important;
54    border: 1px solid #ddd!important;
55    background: #FC971F!important;
56    display: block!important;
57    padding: 16px!important;
58    font-family: Roboto, sans-serif;
59    font-size: 14px!important;
60    font-style: normal;
61    font-weight: 400;
62    line-height: normal;
63    letter-spacing: 0.28px;
64    height: 50px!important;
65    color: #fff!important;
66}
67
68#waitlist-wrapper .product-add-waitlist:hover {
69    border-radius: 4px!important;
70    border: 1px solid #ddd!important;
71    background: #FC971F!important;
72    cursor: pointer;
73    text-decoration: underline!important;
74}
75
76
77	</style>
78	<link href="//fonts.googleapis.com/css?family=Lato:300,300i,400,400i,700,700i,900" rel="stylesheet">
79<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
80
81<meta name="google-site-verification" content="92N_ya4gQCUCvEm8xjIT824dudwiKdSoN52jA1oiO4A" />
vendor: 99 bytes, lines 81-88
81
82	
83
84	        
85
86	
87
88    <script attr="nomove" async src="https://www.googletagmanager.com/gtag/js?id=
88G-6PM3BME91G
vendor: 11 bytes, line 88
88"></script>
88<script attr="nomove">
89  
vendor: 133 bytes, lines 89-92
89window.dataLayer = window.dataLayer || [];
90  function gtag(){dataLayer.push(arguments);}
91  gtag('js', new Date());
92  gtag('config', '
92G-6PM3BME91G
vendor: 4 bytes, line 92
92');
93</script>
93
94    
95<!-- Facebook Pixel Code -->
96<script attr='nomove'>
vendor: 417 bytes, lines 96-105
96
97  !function(f,b,e,v,n,t,s)
98  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
99  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
100  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
101  n.queue=[];t=b.createElement(e);t.async=!0;
102  t.src=v;s=b.getElementsByTagName(e)[0];
103  s.parentNode.insertBefore(t,s)}(window, document,'script',
104  'https://connect.facebook.net/en_US/fbevents.js');
105  fbq('init', '
105166894567060133
vendor: 32 bytes, lines 105-106
105');
106  fbq('track', 'PageView');
107</script>
107
108<noscript><img height="1" width="1" style="display:none"
109  src="https://www.facebook.com/tr?id=166894567060133&ev=PageView&noscript=1"
110/></noscript>
111<!-- End Facebook Pixel Code -->
112            
113	
114	<style>
115		/* headings fix */
116h1, h2, h3, h4, h5, h6 {
117  font-family: Lato, sans-serif !important;
118  color: #464646 !important;
119}
120h2 { font-size: 1.8em !important; }
121h3 { font-size: 1.6em !important; }
122h4 { font-size: 1.4em !important; }
123h5 { font-size: 1.2em !important; }
124h6 { font-size: 1em !important; }
125
126/* HEADER */
127a.cIcon {
128  display: block;
129  background-color: #669999;
130  width: 35px;
131  height: 35px;
132  text-align: center;
133  border-radius: 50%;
134  line-height: 35px;
135  transition: all 1s ease;
136}
137a.cIcon:hover {
138  background-color: #8fc7c7;
139}
140a.sIcon {
141  display: block;
142  background-color: #C9847E;
143  height: 35px;
144  text-align: center;
145  line-height: 35px;
146  padding: 0 10px;
147  transition: all 1s ease;
148}
149a.sIcon:hover {
150  background-color: #d6a19c;
151}
152
153/* NAV */
154.menubg {
155  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.25);
156  position: relative;
157  z-index: 1;
158}
159
160/* MISC */
161.text-white,
162.text-white a {
163  color: #fff !important;
164}
165
166/* SITE CONTAINER */
167.homePageBg .container,
168.secondaryPageBg .container {
169
170}
171
172/* PRODUCT COL FIX */
173.cItemImage {
174  max-height: 100%;
175  width: auto;
176}
177.cItemDiv,
178.cCategoryDiv {
179  width: initial !important;
180}
181.cItemImageDiv {
182  width: 100% !important;
183}
184
185/* SLIDESHOW */
186.home-slide .carousel-control.left,
187.home-slide .carousel-control.right {
188  background-image: none;
189}
190.home-slide .carousel-indicators li {
191  background-color: #bebebe;
192  border-radius: 0;
193  border: 0;
194  width: 13px;
195  height: 13px;
196}
197.home-slide .carousel-indicators .active {
198  background-color: #669999;
199  width: 13px;
200  height: 13px;
201}
202.home-slide .carousel-indicators {
203  bottom: -50px;
204}
205
206/* PROMO */
207.promoContainer {
208  position: relative;
209  margin-bottom: 30px;
210}
211.promoContainer div.promoText {
212  position: absolute;
213  left: 0;
214  right: 0;
215  top: 50%;
216  transform: translateY(-50%);
217}
218.promoContainer div.promoText>span {
219  display: block;
220  color: #fff;
221  font-size: 32px;
222  font-weight: 700;
223  text-transform: uppercase;
224  margin-bottom: 15px;
225}
226@media (max-width: 768px) {
227  .promoContainer div.promoText>span {
228    font-size: 22px;
229  }
230}
231a.promoLink {
232  padding: 3px 15px 5px;
233  color: #fff !important;
234  font-size: 18px;
235  font-weight: 700;
236  transition: all 1s ease;
237}
238a.promoLink:hover {
239  background: #e3115a !important;
240}
241
242/* FEATURED PRODUCTS */
243.featuredProductTitle {
244  /*position: absolute;*/
245  top: 50%;
246 /* transform: translateY(-50%);*/
247  background: #fff;
248  left: 0;
249  right: 0;
250  background: rgba(255, 255, 255, 0.90) !important;
251}
252.featuredProductContainer:hover,
253.featuredProductTitle a {
254  color: #e3115a !important;
255}
256.featuredProductImgContainer {
257  height: 185px !important;
258}
259
260/* FOOTER */
261.bgFooter {
262  border-top: 5px solid #669999;
263}
264.footer-row h5 {
265  color: #a0a0a0 !important;
266  font-size: 16px !important;
267  font-weight: 400 !important;
268  text-transform: uppercase;
269}
270.footer-row a {
271  color: #669999 !important;
272  font-size: 14px;
273  font-weight: 300;
274}
275.footer-row ul li {
276  margin-bottom: 0 !important;
277}
278@media (min-width: 768px) {
279  .footer-row .borderRight {
280    border-right: 1px dashed #b7b7b7;
281  }
282}
283.footerSocial li a {
284  width: 38px;
285  height: 38px;
286  background-color: #669999;
287  border-radius: 50%;
288  line-height: 43px;
289  display: block;
290  transition: all 1s ease;
291}
292.footerSocial li a:hover {
293  background-color: #8fc7c7;
294}
295.footerSocial .fa {
296  color: #fff !important;
297  font-size: 24px;
298  margin-right: -5px;
299}
300.top-bar {
301  background-color: #669999;
302}
303.search-main {
304  background: #f4f4f4;
305  margin-top: 10px
306}
307.glyphicon.glyphicon-search {
308  color: #a7d6cd;
309  font-size: 18px
310}
311
312.search-main {
313  background: #f4f4f4;
314  margin-top: 10px
315}
316.glyphicon.glyphicon-search {
317  color: #a7d6cd;
318  font-size: 18px
319}
320.promo1 { background-color: #669999; }
321.promo2 { background-color: #C9847E; }
322.promo3 { background-color: #08415C; }
323.promo4 { background-color: #5E0B15; }
324.promo5 { background-color: #a7d6cd; }
325.promo6 { background-color: #561F37; }
326
327.btn-light {
328background-color: #669999;
329border-radius: 8px;
330padding: 22px;
331color: #FFF;
332font-size: 22px;
333transition: all 0.3s ease;
334}
335
336.btn-light:hover {
337background-color: #8fc7c7;
338color: #FFF !important;
339}
340
341@media (min-width: 768px) {
342    nav#mainNav {
343        width: 100%;
344    }
345    .menubg .navbar-nav {
346        flex-flow: wrap;
347        justify-content: space-around;
348        margin: 0;
349        list-style: none;
350        display: flex;
351        width: 100%;
352        padding: 0;
353        text-align: center;
354        white-space: nowrap;
355    }
356}
357
358/* Hide only the footer sitemap 'Terms and Conditions' link */
359footer .footer-links a[href*="terms-and-conditions"]:last-of-type {
360    display: none !important;
361}
362
363nav a,
364nav li a {
365  color: #ffffff !important; /* make nav links white so they’re readable */
366}
367
368/* Make the entire navbar background the desired teal color */
369.header,
370.header-wrapper,
371nav,
372nav .menu {
373  background-color: #537e7e !important;
374}
375
376/* Also make sure dropdown/menu area stays that color */
377nav ul,
378nav .menu li ul {
379  background-color: #537e7e !important;
380}
381
382/* Optional: make the hamburger (mobile toggle) background match */
383.toggle-navigation,
384.toggle-navigation span {
385  background-color: #537e7e !important;
386}
387
388nav a,
389nav .menu li a {
390  color: #ffffff !important;
391}
392
393nav a,
394nav li a {
395  color: #fff !important; /* make nav links white so they’re readable */
396}
397
398/* Force navbar link color to white */
399nav a,
400nav li a,
401.header a,
402.header li a,
403nav .menu li a,
404nav .menu li,
405nav .menu li a:link,
406nav .menu li a:visited {
407    color: #fff !important;
408}
409
410/* Also force sub-menu / dropdown links if present */
411nav ul li a {
412    color: #fff !important;
413}
414
415/* Catch-all for any link inside the header/nav */
416.header * a,
417nav * a {
418    color: #fff !important;
419}
420
421
422
423
424
425#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 {
426    color: #fff !important;
427}
428
429
430
431
432nav ul, nav .menu li ul {
433    background-color: #d64242 !important;
434}
435
436
437
438#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 {
439    color: #fff !important;
440    background-color: #d64242 !important;
441}
442
443
444.padding-t-80 {
445  padding-top: 80px !important;
446}
447
448@media (max-width: 992px)
449{
450 .hide-md {
451   display: none;
452  }
453}
454
455.p-2 {
456  padding: 0.5rem;
457}
458
459.rounded img {
460  border-radius: 1rem;
461}
462
463.overflow-hidden-square img {
464  width: 100%;
465  aspect-ratio: 1;
466  object-fit: cover;
467  object-position: center;
468}
469
470
471		
472	</style>
473	
473<script attr="nomove" type="text/javascript">
474        var themeClass = "theme-default";
475var 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":true,"module_enhancedCategoryPage":true,"module_pos":true,"module_spreadsheetUpload":true,"module_wholesaleLogin":false,"module_designWall":false,"module_facebookFeatures":false,"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":false,"module_gst":false,"module_online_canada_tax":false,"module_order_location":false,"module_locally":false,"module_loans":false,"module_catalog_options":true,"module_check_duplicate_sn_store":false,"module_subscriptions":true,"module_layaway_reserve_logic":false,"module_purchase_contracts":false,"module_comment_sold":true,"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
475ix":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":true,"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":false,"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"
475: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
475o_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
475or":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
475o_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
475al_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
475d_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
475y_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":false,"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_
475number_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
475ort_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_
475split_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":true,"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_
475suggested_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
475alized_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":true,"module_shopify":false,"module_mms":false,"module_ebay":false,"subscriptions":true,"use_receptive":true,"locally":false,"website_customer_login":true,"captcha_at_checkout":false,"web_allow_discount_stacking":true,"website_pricing":false,"module_out_of_stock_product_card":true,"three_decimal_pricing":false,"displayReportsImagesByDefault":false,"pos_customer_rewards":true,"pos_shift_management":true,"pos_enable_tax_inclusive_pricing":false,"pos_show_tax_breakdown_on_receipt":true,"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};
476var COLORADO_RETAIL_DELIVERY_FEE = 0.31;
477    </script>
477
478</head>
479<body class="secondaryPageBg">
480<!-- 43-module.tpl -->
481
482
483
484
485
486<div id="main-website-content" class="secondaryPageDiv">
487	<!-- Accessibility stuff -->
488	<a href="#skip-navigation" class="sr-only visible-focused">Skip Navigation</a>
489	<a href="/website-accessibility.htm" class="sr-only visible-focused">Website Accessibility</a>
490
491    <!-- column0_components -->
492	<div  style="" class="ignore-site-layout-styles">
493	<div class="container ">
494		<div class="row paddingLarge" style="position: relative; padding-left: 0px; padding-right: 0px; padding-top: 20px; padding-bottom: 10px; ">
495			
496			
497			<div class="col-sm-12">
498<div class="row">
499<div class="col-md-4 col-sm-6">
500<div class="search-main"><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" />
501<table style="width: 100%; height: auto;" border="0" cellspacing="0" cellpadding="0">
502<tbody>
503<tr>
504<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="LOOKING FOR SOMETHING?" /></td>
505<td style="padding: 3px 8px;" align="right"><button style="background: none; border: none;" name="image" type="image" value="Search"> <span class="glyphicon glyphicon-search"></span> </button></td>
506</tr>
507</tbody>
508</table>
509</form></div>
510</div>
511<div class="col-sm-4"><a href="/"><img src="https://media.rainpos.com/12388/Prairie_Quilt_Primary_Logo_2.png" width="302" height="193" class="img-responsive" style="margin-right: auto; margin-left: auto;" alt="Prairie Quilt Logo" /></a></div>
512<div class="col-md-4 col-sm-6">
513<ul class="list-unstyled list-inline text-right text-white" style="margin-bottom: 0; margin-top: 10px;">
514<li><a class="cIcon" href="/contact.htm"><span style="font-size: 18px;" class="fa fa-map-marker" aria-label="Location" role="button"></span></a></li>
515<li><a class="cIcon" href="/newsletter.htm"><span style="font-size: 18px;" class="fa fa-envelope" aria-label="Email" role="button"></span></a></li>
516<li><a class="sIcon" href="/checkout/cart.php"><span style="font-size: 14px; font-weight: 300;">VIEW CART</span> <span style="font-size: 18px;" class="fa fa-shopping-cart" role="button" aria-label="View Cart"></span></a></li>
517</ul>
518</div>
519</div>
520</div>
521<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" crossorigin="anonymous" />
522		</div>
523	</div>
524</div>
525
526    <!-- navigation -->
527	
528<div class="menubg">
529	<div class="container-fluid">
530
531		<nav id="mainNav" class="navbar navbar-default">
532			<div class="container-fluid">
533
534				<!-- Brand and toggle get grouped for better mobile display -->
535				<div class="navbar-header" style="padding-left:15px; padding-right:15px;">
536					<button type="button" class="navbar-toggle collapsed" style="width: 100%; float: left;" data-toggle="collapse" data-target="#navbar-collapse-1">
537						<span class="sr-only">Toggle navigation</span>
538						&#9776; Menu
539					</button>
540					<!--span class="navbar-brand visible-xs-block" data-toggle="collapse" href="#">Menu</span-->
541				</div>
542
543				<!-- Collect the nav links, forms, and other content for toggling -->
544				<div class="collapse navbar-collapse" id="navbar-collapse-1">
545					<ul class="nav navbar-nav">
546						<li><a href="https://www.prairiequilt.com/beautiful-quality-fabrics.htm" class="mainMenuItem">SUMMER SALE</a></li><li class="dropdown">
547	<a href="#" class="dropdown-toggle mainMenuItem" data-toggle="dropdown" role="button" aria-expanded="false">Kits</a>
548	<ul class="dropdown-menu" role="menu">
549		<li><a href="https://www.prairiequilt.com/iishop?form_version=2&amp;showSearchResults=1&amp;search_keyword=Easy+Quilt+Kits&amp;image=Search">Easy Quilt Kits</a></li><li><a href="https://www.prairiequilt.com/iishop?form_version=2&amp;showSearchResults=1&amp;search_keyword=large+quilt+kits&amp;image=Search">Large Quilt Kits</a></li><li><a href="https://www.prairiequilt.com/half-pack-quilt-kits.htm">Half Packs</a></li><li><a href="https://www.prairiequilt.com/iishop?form_version=2&amp;showSearchResults=1&amp;search_keyword=other+project+kits&amp;image=Search">Other Project Kits</a></li>
550	</ul>
551</li><li class="dropdown">
552	<a href="#" class="dropdown-toggle mainMenuItem" data-toggle="dropdown" role="button" aria-expanded="false">Quilts for Sale</a>
553	<ul class="dropdown-menu" role="menu">
554		<li><a href="https://www.prairiequilt.com/iishop?form_version=2&amp;showSearchResults=1&amp;search_keyword=Quilt+for+sale&amp;image=Search&amp;pageNum=1">Quilts for Sale</a></li><li><a href="https://www.prairiequilt.com/quilted-wall-hangings-and-quilted-home-decor-handmade.htm">Wall Hangings and Decor</a></li>
555	</ul>
556</li><li><a href="https://www.prairiequilt.com/shop/Notions.htm" class="mainMenuItem">Favorite Tools & Notions</a></li><li class="dropdown">
557	<a href="#" class="dropdown-toggle mainMenuItem" data-toggle="dropdown" role="button" aria-expanded="false">Machines </a>
558	<ul class="dropdown-menu" role="menu">
559		<li><a href="https://www.prairiequilt.com/brother-machines.htm">Brother </a></li><li><a href="https://www.prairiequilt.com/pfaff-machines.htm">Pfaff</a></li><li><a href="https://www.prairiequilt.com/handi-quilter-machines.htm">Handi Quilter </a></li><li><a href="https://www.prairiequilt.com/brother-scan-n-cut-sdx330dx.htm">Cutting and Crafting Machines</a></li>
560	</ul>
561</li><li><a href="https://www.prairiequilt.com/" class="mainMenuItem">Home</a></li><li><a href="https://www.prairiequilt.com/about-us-at-prairie-quilt.htm" class="mainMenuItem">About Us</a></li><li><a href="https://www.prairiequilt.com/c/account/login.php" class="mainMenuItem">Login</a></li>
562					</ul>
563				</div>
564
565			</div>
566		</nav>
567	</div>
568</div>
569
570
571	<!-- Accessibility stuff -->
572	<span id="skip-navigation"></span>
573
574    <!-- column2_components -->
575	<div  style="" class="">
576	<div class="container ">
577		<div class="row paddingXLarge" style="position: relative; padding-left: 0px; padding-right: 0px; padding-top: 20px; padding-bottom: 20px; ">
578			
579			
580					<div align=center style="text-align:center;">
581						
582					</div>
583				
584			
585<link href="/bootflat/css/fontawesome-pro-6.5.2-web/css/all.min.css" rel="stylesheet" type='text/css'>
586
587
588<style>
589    .cart-base {
590        color: #333 !important;
591    }
592
593    .text-danger, .has-error {
594        border-color: #a94442;
595    }
596
597    .error-label {
598        color: #a94442;
599    }
600    .text-hover-red:hover {
601        color: red !important;
602    }
603
604    .text-muted {
605        color: #bbb !important;
606    }
607
608    .display-block {
609        display: block;
610    }
611
612    .cartContainer {
613        background: #FFF;
614    }
615
616    .cartTable {
617        width:100%;
618        display: table;
619    }
620
621    .cartRow {
622        display: table-row;
623    }
624
625    .cartCell {
626        display: table-cell;
627        padding-left: 0;
628        padding-right: 10px;
629        vertical-align: middle;
630        border-top: 1px solid #eee;
631        padding-top: 5px;
632        padding-bottom: 5px;
633    }
634
635    .cp-title {
636        height: 30px;
637        font-weight: 600;
638        font-size: 14px;
639        line-height: 14px
640    }
641
642    .cp-title, .cp-footer {
643        border-top: 0 !important;
644    }
645
646    .cp-footer {
647        padding-top: 0;
648        height: 20px;
649        padding-bottom: 16px;
650    }
651
652    .border-top-white  {
653        border-top: 1px solid white !important;
654    }
655
656    .cp-row {
657        height: 50px;
658    }
659
660    .selling-points-group {
661        box-sizing: content-box;
662        border: 1px solid #ddd;
663        border-radius: 5px;
664        padding: 16px;
665        width: 65%;
666        font-size: 12px;
667        line-height: 14px;
668        margin-top: 8px;
669    }
670    .cartTableHeader {
671        border-top: 2px solid #ddd;
672        border-bottom: 1px solid #ddd;
673        font-weight: bold;
674        font-size: larger;
675        padding-top: 5px;
676        padding-bottom: 5px;
677        background: #eee;
678        padding-right: 10px;
679    }
680
681    .cartTableHeader .cartTableSubHeader {
682        font-weight: normal;
683        font-size: small;
684    }
685
686    .cartImage, .cartDelete {
687            text-align: center;
688    }
689
690    .cartItems {
691            text-align: left;
692    }
693
694    .cartPrice, .cartQuantity, .cartAmount {
695            text-align: right;
696    }
697
698    .qtySelectCell {
699        width: 100px;
700        height: 24px;
701        padding: 0;
702    }
703
704    .cp-info-group {
705        margin: 0;
706    }
707
708    .cp-info-item {
709        border: none;
710        padding: 0;
711        height: 14px;
712    }
713
714    .cp-info-item:last-child {
715        margin-bottom: 0 !important;
716    }
717
718    .cp-info-btn {
719        cursor:pointer;
720    }
721
722    .cp-terms-conditions {
723        list-style-type: none;
724    }
725
726    .mobileDivider {
727        display: none;
728    }
729
730    .contactInfo > tbody > tr > td {
731        padding: 5px;
732    }
733
734    .leftAlignDark {
735        background: #f6f6f6;
736        padding: 20px 10px 5px 20px;
737        text-align: left;
738    }
739
740    .leftAlignLight {
741        padding: 20px 10px 5px 20px;
742        text-align: left;
743    }
744
745    .infoHeader {
746        padding: 20px 10px 5px 0 !important;
747    }
748
749
750    #gift-cards-coupons .row-divider {
751        margin-top: 10px;
752        margin-bottom: 10px;
753    }
754    #gift-cards-coupons #gift-card-coupon-label-cell {
755        padding: 10px 8px 4px 8px;
756    }
757    #gift-cards-coupons #gift-card-coupon-label {
758        /*padding: 10px;*/
759        font-size: 13px;
760        color: #7f7f7f;
761    }
762    #gift-cards-coupons #gift-card-coupon-msgs {
763        text-align: right;
764    }
765    #gift-cards-coupons #gift-card-applied-msg {
766        font-size: 12px;
767        vertical-align: middle;
768        color: #64b92a;
769    }
770    #gift-card-coupon-error-msg, #coupon-applied-msg {
771        padding-left: 5px;
772    }
773    #gift-cards-coupons #coupon-applied-msg {
774        font-size: 12px;
775        vertical-align: middle;
776        color: #64b92a;
777    }
778    #gift-cards-coupons #gift-card-coupon-error-msg {
779        font-size: 12px;
780        vertical-align: middle;
781        color: #c0392b;
782    }
783    #gift-cards-coupons #gift-card-coupon-code {
784        width: 270px;
785        margin-left: 5px;
786        margin-right: 5px;
787        border: 1px solid #dfdfdf;
788        border-radius: 5px;
789        padding: 6px 0px 6px 12px;
790        font-size: 14px;
791        vertical-align: middle;
792    }
793    #gift-cards-coupons #gift-card-coupon-code-apply-cell {
794        padding-right: 8px;
795        vertical-align: top;
796    }
797    #gift-cards-coupons #gift-card-coupon-code-apply {
798        font-size: 14px;
799        vertical-align: middle;
800        border-radius: 4px;
801        padding: 6px 12px 6px 12px;
802        color: #333 !important;
803        background-color: #fff !important;
804        border: 1px solid !important;
805    }
806    #gift-cards-coupons #gift-card-coupon-code-apply:disabled {
807        opacity: .65;
808    }
809    #gift-cards-coupons #gift-card-coupon-code-apply:hover:enabled {
810        background-color: #e6e6e6 !important;
811        border: 1px solid #bfbfbf !important;
812    }
813    #gift-cards-coupons ::placeholder {
814        color: #bfbfbf;
815        opacity: 1;
816    }
817    #gift-cards-coupons .gc-coupon-data-loading {
818        color: #7f7f7f;
819    }
820    #gift-cards-coupons .gc-coupon-data-loading .fa-spinner {
821        font-size: 18px;
822    }
823
824    .gift-card-coupon-identifier {
825        font-weight: bold;
826    }
827
828    .jm {
829        width: 98%;
830        padding: 10px 8px 4px 8px;
831    }
832
833    .quote-contact-wrapper {
834        display: grid;
835        align-items: center;
836        padding: 0;
837        margin: 0 0 8px 0;
838    }
839
840    .quote-contact-div {
841        display: flex;
842        align-items: center;
843        justify-content: end;
844    }
845
846    .quote-contact-button {
847        border: none;
848        background-color: white;
849    }
850
851    .quote-contact-button-wrapper {
852        display: flex;
853        align-items: center;
854        justify-content: space-between;
855        gap: 4px;
856    }
857
858    #isInsuranceSwitchedOn, #isLuxsuranceSwitchedOn {
859        margin: 0;
860    }
861
862    #insuranceContactInformation {
863        margin: 0;
864    }
865
866    .review-contact-information {
867        text-align: right;
868    }
869
870    .review-contact-information-span {
871        cursor: pointer;
872    }
873
874    #text-msg-notifications {
875        font-weight: normal;
876    }
877    #text-msg-notifications i {
878        font-size: 16px;
879    }
880
881    
882    @media (min-width: 768px) {
883        .contactInfo {
884            width: 80%;
885        }
886    }
887
888    @media (min-width: 768px) {
889        .contactInfo {
890            width: 90%;
891        }
892        .largeHidden {
893            display: none !important;
894        }
895        .shippingOption {
896            display: inline-block !important;
897            width: inherit !important;
898        }
899    }
900
901    @media (max-width: 767px) {
902        .contactInfo {
903            width: 100%;
904        }
905        .mobileDivider {
906            display: block !important;
907            border-top: 1px solid #ccc;
908        }
909        .mobileClear {
910            clear: both;
911        }
912        .smallHidden {
913            display: none !important;
914        }
915        .cartRow, .cartCell {
916            display: block;
917        }
918        .cartCell {
919            height:inherit;
920            border: 0px;
921            padding-top:10px;
922            padding-bottom:10px;
923        }
924        .cartAmount {
925            display: none !important;
926        }
927        .cartImage {
928            width: 50px;
929            float: right;
930            text-align: left;
931        }
932        .cartItems, .cartPrice {
933            width: 235px;
934            float: left;
935            text-align: left;
936        }
937        .cartPrice {
938            font-weight: bold;
939        }
940        .cartQuantity {
941            width: 200px;
942            float: left;
943            text-align: left;
944        }
945        .qtySelect {
946            width: 45px;
947            text-align: center;
948        }
949        .cartDelete {
950            width: 70px;
951            float: right;
952            text-align: right;
953        }
954        .shippingOption {
955            width: 100%;
956        }
957
958        /*New bootstrap styles for mobile*/
959        .checkout-card .form-group {
960            margin-bottom: 0px;
961        }
962
963        .checkout-card input {
964            margin-bottom: 10px;
965        }
966
967        .checkout-card select {
968            margin-bottom: 10px;
969        }
970    }
971
972    .row-divider {
973        padding-top: 5px;
974        padding-bottom: 5px;
975        padding-right: 10px;
976        text-align: right;
977    }
978
979    .small-link {
980        text-decoration: none;
981        font-size: 90%;
982    }
983
984    .checkout-btn {
985        font-size: 18px;
986        line-height: 1.33;
987        border-radius: 6px;
988        text-decoration: none;
989        color: #fff !important;
990
991        display: inline-block;
992        text-align: center;
993        white-space: nowrap;
994        vertical-align: middle;
995        touch-action: manipulation;
996        cursor: pointer;
997        -moz-user-select: none;
998        -webkit-user-select: none;
999        border: 1px solid transparent;
1000
1001        padding-top: 10px;
1002        padding-bottom: 10px;
1003        padding-left: 40px !important;
1004        padding-right: 40px !important;
1005        margin-bottom: 0;
1006        transition-duration: 0.2s;
1007        background: #5bc050 !important;
1008    }
1009
1010    .checkout-btn[disabled] {
1011        opacity: 0.75 !important;
1012    }
1013
1014    [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
1015        display: none !important;
1016    }
1017
1018    .mt-10 {
1019        margin-top: 5px;
1020    }
1021
1022    .card {
1023        background-color: #f6f6f6;
1024        padding: 20px;
1025        border-radius: 5px;
1026    }
1027
1028    .new-header {
1029        margin-bottom: 20px;
1030    }
1031
1032    .express-checkout .express-checkout-title {
1033        margin-top: 10px;
1034    }
1035
1036    .express-checkout .express-checkout-panel {
1037        margin-top: 10px;
1038        margin-bottom: 20px;
1039        border: 1px solid #ddd;
1040        box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
1041        padding: 15px;
1042        border-radius: 4px;
1043    }
1044
1045    .express-checkout .express-checkout-panel .express-checkout-info {
1046        margin-top: 10px;
1047    }
1048
1049    .express-checkout .express-checkout-buttons {
1050        display: flex;
1051        flex-direction: column;
1052        align-items: center;
1053        overflow: hidden;
1054    }
1055
1056    .express-checkout .express-checkout-buttons .express-checkout-button {
1057        overflow: hidden;
1058        max-width: 300px;
1059        width: 100%;
1060    }
1061
1062    .express-checkout .express-checkout-buttons .express-checkout-button:not(:last-child) {
1063        margin: 0 0 20px 0;
1064    }
1065
1066    @media screen and (min-width: 576px) {
1067        .express-checkout .express-checkout-buttons {
1068            flex-direction: row;
1069            justify-content: flex-start;
1070        }
1071
1072        .express-checkout .express-checkout-buttons .express-checkout-button {
1073            width: 33%;
1074        }
1075
1076        .express-checkout .express-checkout-buttons .express-checkout-button:not(:last-child) {
1077            margin: 0 20px 0 0;
1078        }
1079    }
1080
1081        .discounts-block {
1082            display: flex;
1083            flex-direction: row-reverse;
1084        }
1085
1086        .discount-divider {
1087            width: 30%;
1088        }
1089
1090        .divider-block-title {
1091            text-align: left;
1092            border-top: 1px solid lightgrey;
1093            padding: 5px 0 3px 0;
1094        }
1095
1096        .warning-box {
1097            background-color: #fcf8e3;
1098            color: #8a6d3b;
1099            font-family: Roboto, sans-serif;
1100            font-size: 12px;
1101            line-height: 1.17;
1102            border: 0.5px solid #8a6d3b;
1103            border-radius: 4px;
1104            padding: 7px;
1105            text-align: left;
1106            margin-bottom: 8px;
1107        }
1108
1109        .item-box {
1110            border: 1px solid #dfdfdf;
1111            border-radius: 4px;
1112            padding: 8px;
1113            margin-bottom: 8px;
1114        }
1115
1116        .discount-item {
1117            display: flex;
1118            justify-content: space-between;
1119        }
1120
1121        .gift-card-coupon-code-span {
1122            color: grey;
1123            text-align: left;
1124        }
1125
1126        .not-applied-coupon > .gift-card-coupon-code-span,
1127        .not-applied-coupon > .discount-item > .discount-item-title {
1128            opacity: 0.6;
1129            text-align: left;
1130            width: 60%;
1131        }
1132
1133        .discount-item-title {
1134            text-align: left;
1135            width: 65%;
1136        }
1137
1138        .not-applied-amount-label {
1139            color: darkgrey;
1140            font-weight: normal;
1141        }
1142
1143        .times-close {
1144            color: black;
1145        }
1146
1147        .times-close:hover {
1148            color: red;
1149        }
1150
1151        .discount-amount {
1152            font-weight: bold;
1153            color: red;
1154        }
1155
1156        .coupon-error-msg {
1157            text-align: left;
1158        }
1159</style>
1160
1161<style>
1162    .inner-label {
1163        padding-right: 15px;
1164        padding-left: 30px;
1165    }
1166    .row-grid {
1167        margin-bottom: 10px;
1168        text-align: right;;
1169    }
1170
1171    .text-danger {
1172        border-color: #a94442;
1173    }
1174
1175    .text-hover-red:hover {
1176        color: red;
1177    }
1178    .text-hover-blue:hover {
1179        color: blue;
1180    }
1181
1182    .display-block {
1183        display: block;
1184    }
1185
1186    .cartTableSubHeader {
1187        font-weight: normal;
1188        font-size: small;
1189    }
1190
1191    .panel-default {
1192        background: #f6f6f6 !important;
1193    }
1194
1195    .btn-sm {
1196        background: #ccc !important;
1197    }
1198
1199    .btn-lg {
1200        padding-left: 40px;
1201        padding-right: 40px;
1202    }
1203
1204    .card-default{
1205        color: #bbb;
1206    }
1207    .card-visa{
1208        color: #037AFC;
1209    }
1210    .card-mastercard{
1211        color: #FFA600;
1212    }
1213    .card-amex{
1214        color: #1696D3;
1215    }
1216    .card-discover{
1217        color: #FF680F;
1218    }
1219    .form-control{
1220        margin-bottom: 15px;
1221    }
1222    .error-label{
1223        position: relative;
1224        top: -12px;
1225    }
1226
1227    .option_radio {
1228        display: inline-block;
1229        vertical-align: top;
1230    }
1231
1232    .option_content {
1233        display: inline-block;
1234        margin-left: 5px;
1235        margin-top: 1px;
1236        margin-bottom: 5px;
1237    }
1238
1239    [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
1240        display: none !important;
1241    }
1242</style>
1243
1244<div class="container cartContainer cart-base" ng-app="checkoutApp" ng-controller="checkoutCtrl" ng-init="Init('https://www.prairiequilt.com', '0A75F3F4-6916-43FF-9396-50C70FDCFD91', 'US', 'IL', '', true, [])" ng-cloak >
1245    <div>
1246        <!-- Header -->
1247        <div class="row">
1248            <div ng-show="InitInfo.CheckoutSettings.HeaderType == 'Custom'" class="col-sm-12">
1249                <div id="customheader"></div>
1250            </div>
1251        </div>
1252
1253
1254        <div ng-if="CartData.message" class="alert alert-warning">
1255            <button type="button" class="close" ng-click="ErrorMessageClose()">&times;</button>
1256            {{CartData.message}}
1257        </div>
1258
1259        <div ng-if="!requireAddressInfo() && !requireContactInfo()">
1260            <div ng-if="InventoryMessages.RemovedItems || InventoryMessages.InventoryChanges" class="alert alert-warning">
1261                <button type="button" class="close" ng-click="InventoryMessagesClose()">&times;</button>
1262                <div ng-if="InventoryMessages.RemovedItems">
1263                    We're sorry, but inventory is no longer available for the following items. Your cart has been adjusted and the product(s) removed
1264                    <ul><li ng-repeat="msg in InventoryMessages.RemovedItems">{{msg}}</li></ul>
1265                </div>
1266                <div ng-if="InventoryMessages.InventoryChanges">
1267                    <div ng-repeat="msg in InventoryMessages.InventoryChanges">{{msg}}</div>
1268                </div>
1269            </div>
1270
1271            <div ng-if="AvailabilityMessages.StoreAvailableItems" class="alert alert-warning">
1272                <button type="button" class="close" ng-click="AvailabilityMessagesClose()">&times;</button>
1273                <div ng-if="AvailabilityMessages.StoreAvailableItems.length > 0">
1274                    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:
1275                    <ul><li ng-repeat="msg in AvailabilityMessages.StoreAvailableItems track by $index">{{msg}}</li></ul>
1276                </div>
1277            </div>
1278        </div>
1279
1280        <!-- Initial Cart Contents -->
1281        <div ng-if="!isWebPayment()">
1282            <div class="h1">Shopping Cart</div>
1283        </div>
1284        <br>
1285        <div ng-if="StatusInfo.Initializing">
1286            <i class="fa fa-spinner fa-pulse fa-2x"></i>
1287        </div>
1288        <div ng-if="showContinueShopping()">
1289            <span ng-show="!CartStatus.Valid" >
1290                Your cart is empty.
1291            </span>
1292            <a href="{{InitInfo.ShopUrl}}/checkout/sync.php?redirect=" style="btn">Click Here</a> to continue shopping.</h4>
1293        </div>
1294        <div ng-if="isCardProcessorRain()" ng-show="showExpressCheckout()" class="row">
1295            <div class="col-sm-7">
1296                <div class="express-checkout">
1297                    <div class="express-checkout-title">
1298                        <strong>Express Checkout</strong>
1299                    </div>
1300
1301                    <div class="express-checkout-panel">
1302                        <div class="express-checkout-buttons">
1303                            <div class="express-checkout-button" id="payment-request-button-wrapper" style="display: none;">
1304                                <div id="payment-request-button">
1305                                    <!-- A Stripe Element will be inserted here. -->
1306                                </div>
1307                            </div>
1308                        </div>
1309
1310                        <div class="express-checkout-info">
1311                            If you choose Apple Pay or Google Pay,
1312                            you will need to set your shipping preferences in the window
1313                            that opens after you click the button.
1314                            Settings below will not display there.
1315                        </div>
1316                    </div>
1317                </div>
1318            </div>
1319        </div>
1320
1321                    <!-- Initial Items List -->
1322                            <div ng-if="!showHostedCheckout()">
1323                <br>
1324            <!-- Item Summary -->
1325<div class="cartTable" ng-if="showItemSummary()">
1326    <div class="cartRow smallHidden">
1327        <div class="cartCell cartTableHeader cartImage"></div>
1328        <div class="cartCell cartTableHeader cartItems">Items</div>
1329        <div class="cartCell cartTableHeader cartPrice">Price</div>
1330        <div class="cartCell cartTableHeader cartQuantity">Quantity</div>
1331        <div class="cartCell cartTableHeader cartAmount">Amount</div>
1332        <div class="cartCell cartTableHeader cartDelete"></div>
1333    </div>
1334            <div class="cartRow" data-cy="web-cart-item-row" ng-cloak ng-repeat="item in CartData.Items">
1335            <div class="mobileDivider largeHidden"></div>
1336            <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>
1337            <div class="cartCell cartItems" data-cy="web-cart-item-title">
1338            <span ng-if="item.condition">
1339                {{item.title}} {{item.condition.title}}
1340            </span>
1341            <span ng-if="!item.condition">
1342                                    {{item.title}}
1343                                <span ng-if="item.type === 'class' && item.class_date"> - {{item.class_date}}</span>
1344            </span>
1345            <span ng-if="!item.quantity_updating && item.type == 'rental'">
1346                - {{item.id}}
1347<!--                Below doesn't work-->
1348<!--                <a ng-click="editRental(item)" class="btn-default" style="cursor: pointer;" title="Edit Rental">-->
1349<!--                    <i class="fa fa-edit fa-lg"></i>-->
1350<!--                </a>-->
1351            </span>
1352            <span ng-if="item.package_items" ng-repeat="pitem in item.package_items">
1353                <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - {{pitem.title}}
1354            </span>
1355            <span ng-if="item.class_attendees.length">
1356                <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Attendees:
1357                <span ng-repeat="name in item.class_attendees">
1358                    &nbsp;{{name}}
1359                </span>
1360            </span>
1361<style>
1362    a.subscription-details-btn, a.subscription-details-btn:active, a.subscription-details-btn:visited {
1363        font-size: 13px;
1364        text-decoration: none;
1365    }
1366    table.subscription-details {
1367        font-size: 13px;
1368        margin: 5px 0;
1369    }
1370    .details-hidden {
1371        visibility: hidden;
1372        height: 0;
1373    }
1374</style>
1375
1376<div ng-if="item.type === 'subscription'">
1377    <a ng-click="showSubscriptionDetails = !showSubscriptionDetails" class="subscription-details-btn" href="javascript:void(0);">
1378        <i class="fa" ng-class="{'fa-caret-down': showSubscriptionDetails, 'fa-caret-right': !showSubscriptionDetails}"></i>
1379        View Subscription Details
1380    </a>
1381    <div ng-class="{'details-hidden': !showSubscriptionDetails}">
1382        <style>
1383    table.subscription-details span.small-subtitle {
1384        font-size: 10px;
1385    }
1386    table.subscription-details tr td:first-child {
1387        padding: 0 15px 0 0;
1388    }
1389</style>
1390
1391<table class="subscription-details">
1392    <tr>
1393        <td>{{item.subscriptionData.labels.adverb}} Price:</td>
1394        <td>{{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}</td>
1395    </tr>
1396    <tr>
1397        <td>Subscription Length:</td>
1398        <td>{{item.subscriptionData.subscription_length}} {{item.subscriptionData.labels.plural}}</td>
1399    </tr>
1400    <tr>
1401        <td>Start/End Date:</td>
1402        <td>{{item.subscriptionData.start_date}} - {{item.subscriptionData.end_date}}</td>
1403    </tr>
1404    <tr>
1405        <td>Registration Fee <span class="small-subtitle">(One Time)</span>:</td>
1406        <td>{{item.subscriptionData.registration_fee | currency:InitInfo.CurrencySymbol2}}</td>
1407    </tr>
1408    <tr>
1409        <td>Previous {{item.subscriptionData.labels.plural}}:</td>
1410        <td>
1411            <span ng-if="item.subscriptionData.previous_items_cnt > 0">
1412                {{item.subscriptionData.previous_items_cnt}} x {{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}
1413            </span>
1414            <span ng-if="item.subscriptionData.previous_items_cnt == 0">Not Included</span>
1415        </td>
1416    </tr>
1417    <tr>
1418        <td>Delivery Method:</td>
1419        <td ng-switch="item.subscriptionData.delivery_type">
1420            <span ng-switch-when="ship">
1421                Shipped - {{item.subscriptionData.shipping_fee | currency:InitInfo.CurrencySymbol2}}
1422            </span>
1423            <span ng-switch-default>In-Store Pickup</span>
1424        </td>
1425    </tr>
1426    <tr ng-if="item.subscriptionData.delivery_type === 'ship'">
1427        <td>Address:</td>
1428        <td>{{item.subscriptionData.address}}</td>
1429    </tr>
1430    <tr>
1431        <td><strong>Total {{item.subscriptionData.labels.adverb}}:</strong></td>
1432        <td>
1433            <strong>{{item.subscriptionData.total_per_kit | currency:InitInfo.CurrencySymbol2}}</strong>
1434        </td>
1435    </tr>
1436    <tr>
1437        <td><strong>Due Today:</strong></td>
1438        <td>
1439            <strong>{{item.subscriptionData.due_today | currency:InitInfo.CurrencySymbol2}}</strong>
1440        </td>
1441    </tr>
1442</table>
1443    </div>
1444</div>
1445            <span ng-if="item.discount_eligible === 'false' && item.is_consignment && StatusInfo.IsCouponEntered" class="text-danger display-block">
1446                This item is not eligible for discounts
1447            </span>
1448        </div>
1449                    <div ng-if="!showAsGST()" class="cartCell cartPrice" data-cy="web-cart-item-price">{{getItemPriceForWeb(item) | currency:InitInfo.CurrencySymbol2}}</div>
1450                <div ng-if="showAsGST()" class="cartCell cartPrice" data-cy="web-cart-item-price">{{getItemGstPrice(item) | currency:InitInfo.CurrencySymbol2}}</div>
1451        <div class="mobileClear largeHidden"></div>
1452        <div class="cartCell cartQuantity" data-cy="web-cart-item-quantity">
1453            <div ng-if="showQuantityAsSelector(item)" style="white-space: nowrap;">
1454                                    <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)">
1455                    </select>
1456                                <span>
1457                    <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)">
1458                    </select>
1459                    <span>{{ getItemUnitType(item); }}</span>
1460                </span>
1461            </div>
1462            <div ng-if="showQuantityAsNumber(item)">
1463                {{item.qty_integer}}
1464            </div>
1465            <i ng-if="item.quantity_updating" class="fa fa-spinner fa-pulse"></i>
1466        </div>
1467                    <div ng-if="!showAsGST()" class="cartCell cartAmount" data-cy="web-cart-item-amount">{{getItemTotalForWeb(item) | currency:InitInfo.CurrencySymbol2}}</div>
1468                <div ng-if="showAsGST()" class="cartCell cartAmount" data-cy="web-cart-item-amount">{{getItemGstTotal(item) | currency:InitInfo.CurrencySymbol2}}</div>
1469                            <div class="cartCell cartDelete">
1470                    <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>
1471                    <i ng-if="item.removing" class="fa fa-spinner fa-pulse"></i>
1472                </div>
1473                    <div class="mobileClear largeHidden"></div>
1474    </div>
1475        </div>
1476
1477
1478
1479
1480<!-- Items Subtotal -->
1481
1482<div  ng-if="!showAsGST()" class="cartTableHeader ng-cloak" style="text-align: right;" data-cy="web-cart-subtotal">
1483    Subtotal: {{SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}
1484</div>
1485<div ng-if="showAsGST()" class="cartTableHeader ng-cloak" style="text-align: right;" data-cy="web-cart-subtotal">
1486    Subtotal: {{GST_SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}
1487</div>
1488
1489        <!-- Gift Cards and Coupons -->
1490        <div ng-show="isProcessingEnabled()">
1491            <div ng-if="shouldShowGiftCardsCoupons()" id="gift-cards-coupons">
1492
1493                <!-- Gift Card or Coupon Code Lookup -->
1494                <table>
1495                    <tr>
1496                        <td colspan="3">
1497                            <div ng-show="isProductInCart()" class="quote-contact-wrapper">
1498                                                                                                                            </div>
1499                        </td>
1500                    </tr>
1501                    <tr>
1502                        <td style="width: 98%;">
1503                        </td>
1504                        <td id="gift-card-coupon-label-cell" style="width: 1%;">
1505                        </td>
1506                        <td style="width: 1%;">
1507                        </td>
1508                    </tr>
1509                    <tr>
1510                        <td id="gift-card-coupon-msgs">
1511                            <span>
1512                                <!-- Loading -->
1513                                <span ng-cloak ng-show="giftCardOrCouponDataState == DATA_STATE_LOADING" class="gc-coupon-data-loading"><i class="fa fa-spinner fa-spin"></i></span>
1514                            </span>
1515                        </td>
1516                        <td>
1517                            <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">
1518                            <span>
1519                                <!-- Messages -->
1520                                <span id="gift-card-coupon-error-msg" ng-cloak ng-show="shouldShowGiftCardCouponErrorMsg()"><i class="fa fa-ban"></i>&nbsp;{{giftCardCouponMsg}}</span>
1521                                <span id="gift-card-applied-msg" ng-cloak ng-show="shouldShowGiftCardAppliedMsg()" ><i class="fa fa-check"></i>&nbsp;Gift Card Applied</span>
1522                                <span id="coupon-applied-msg" ng-cloak ng-show="shouldShowCouponAppliedMsg()" ><i class="fa fa-check"></i>&nbsp;Coupon Added</span>
1523                            </span>
1524                        </td>
1525                        <td id="gift-card-coupon-code-apply-cell">
1526                            <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>
1527                        </td>
1528                    </tr>
1529                </table>
1530
1531                <!-- Coupons -->
1532                    <div class="discounts-block">
1533                        <div ng-show="CartData.Coupons.length > 0" class="row-divider discount-divider">
1534                            <div class="divider-block-title">
1535                                Coupons
1536                            </div>
1537                            <div ng-if="showOnlyHighestDiscountWarning() || showDontApplyOnSaleItemsWarning()" class="alert alert-warning warning-box">
1538                                <span ng-if="showOnlyHighestDiscountWarning()">
1539                                    Only a single coupon with the highest savings will be applied.
1540                                </span>
1541                                <span ng-if="showDontApplyOnSaleItemsWarning()">
1542                                    Coupons do not apply to On Sale Items
1543                                </span>
1544                            </div>
1545                            <div ng-repeat="c in CartData.Coupons | orderBy: (isApplyHighestSavingCouponsMode() ? ['notApplied', 'notEligible'] : [])" class="item-box" ng-class="{'not-applied-coupon' : !isCouponAvailable(c)}">
1546                                <div class="discount-item">
1547                                    <div class="discount-item-title">
1548                                        <a href="" ng-click="openCouponDetailsModal(c)"><span class="gift-card-coupon-identifier">{{c.title}}</span></a>
1549                                    </div>
1550                                    <div class="discount-amount">
1551                                        <span ng-if="isCouponAvailable(c)">-{{c.discount | currency:InitInfo.CurrencySymbol2}} &nbsp;</span>
1552                                        <span ng-if="!isCouponAvailable(c)" class="not-applied-amount-label">{{ couponUnavailabilityMessage(c) }} &nbsp;</span>
1553                                        <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>
1554                                        <i ng-show="StatusInfo.CouponUpdating" class="fa fa-spinner fa-pulse"></i>
1555                                    </div>
1556                                </div>
1557                                <div class="gift-card-coupon-code-span">
1558                                    {{c.couponCode}}
1559                                </div>
1560                                <div ng-if="isShippingCoupon(c)" class="discount-amount coupon-error-msg">
1560{{couponStatusMessage}}</div>
1561                            </div>
1562                        </div>
1563                    </div>
1564                    <div class="discounts-block">
1565                        <!-- Gift Cards -->
1566
1567                        <div ng-if="CartData.GiftCards.length > 0" class="row-divider discount-divider">
1568                            <div class="divider-block-title">
1569                                Gift Cards
1570                            </div>
1571                            <div ng-repeat="gc in CartData.GiftCards" class="item-box">
1572                                <div class="discount-item">
1573                                    <div>
1574                                        <span class="gift-card-coupon-identifier">{{gc.title}}</span>&nbsp;&nbsp;&nbsp;&nbsp;
1575                                    </div>
1576                                    <div class="discount-amount">
1577                                        -{{gc.Amount | currency:InitInfo.CurrencySymbol2}} &nbsp;
1578                                        <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>
1579                                        <i ng-show="StatusInfo.GiftCardUpdating" class="fa fa-spinner fa-pulse"></i>
1580                                    </div>
1581                                </div>
1582                                <div class="gift-card-coupon-code-span">
1583                                    {{gc.number}}
1584                                </div>
1585                            </div>
1586                        </div>
1587                    </div>
1588            </div>
1589
1590            <!-- Checkout Options -->
1591            <div align="right">
1592                <div ng-show="showSecureOrPaypal()" class="row-divider" style="display: inline-block; text-align:center;">
1593                    <br>
1594
1595                    <span ng-if="allowCreditCardCheckout() && isCardProcessorNMI()">
1596                        <button ng-click="GoToCheckoutUrl()" class="checkout-btn" data-cy="web-cart-checkout-button">
1597                            Secure Checkout &nbsp; <i class="button-icon-right fa fa-caret-right"></i>
1598                        </button>
1599                    </span>
1600
1601                    <span ng-if="isCardProcessorVantiv()">
1602                        <button id="checkout-vantiv" data-cy="web-cart-checkout-button" ng-click="CartDone(PROCESSOR_VANTIV)" class="checkout-btn">
1603                            Checkout &nbsp; <i class="button-icon-right fa fa-caret-right"></i>
1604                        </button>
1605                    </span>
1606
1607                    <span ng-if="isCardProcessorRain()">
1608                        <button id="checkout-rain" data-cy="web-cart-checkout-button" ng-click="CartDone(PROCESSOR_RAIN)" class="checkout-btn">
1609                            Checkout &nbsp; <i class="button-icon-right fa fa-caret-right"></i>
1610                        </button>
1611                    </span>
1612
1613                    <span ng-if="isCardProcessorQuiltAdyen()">
1614                        <button id="checkout-rain" data-cy="web-cart-checkout-button" ng-click="CartDone(PROCESSOR_QUILT_ADYEN)" class="checkout-btn">
1615                            Checkout &nbsp; <i class="button-icon-right fa fa-caret-right"></i>
1616                        </button>
1617                    </span>
1618
1619                    <div ng-if="showPaypalButtonOnCart()" style="padding:10px;">
1620                        <p><strong>- OR -</strong></p>
1621                        <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;">
1622                    </div>
1623
1624                    <br>
1625                </div>
1626
1627                <div ng-show="isCartTotalExceeded()" class="mt-10">Please contact our store for payment options on your purchase.</div>
1628            </div>
1629        </div>
1630        <div ng-if="!isProcessingEnabled()">
1631            <p>&nbsp;</p>
1632            <p>Online checkout is currently disabled. Please call {{InitInfo.Store.phone}} to place an order.</p>
1633        </div>
1634                    </div>
1635        <div ng-show="showHostedCheckout()">
1636    <style>
1637
1638    #shippingInStorePickupOptions .nav-pills>li>a {
1639        border: solid #ddd 1px;
1640        color: #337ab7 !important;
1641    }
1642
1643    #shippingInStorePickupOptions .nav-justified>li {
1644        padding: 0 10px;
1645    }
1646
1647
1648    #shippingInStorePickupOptions .nav-pills>li.active>a {
1649        position: relative;
1650        color: #fff !important;
1651        background: #337ab7;
1652        border-color: #337ab7;
1653    }
1654
1655    #shippingInStorePickupOptions .nav-pills>li.active>a:hover {
1656        color: #fff !important;
1657    }
1658
1659    @media (min-width: 768px) {
1660        #shippingInStorePickupOptions .nav-pills>li.active>a:before {
1661            position: absolute;
1662            content: '';
1663            bottom: -10px;
1664            left: 0;
1665            right: 0;
1666            margin: 0 auto;
1667            width: 0;
1668            height: 0;
1669            border-style: solid;
1670            border-width: 10px 10px 0 10px;
1671            border-color: #337ab7 transparent transparent transparent;
1672        }
1673    }
1674
1675    #shippingInStorePickupOptions .well {
1676        background-color: #fff;
1677    }
1678
1679    #shippingInStorePickupOptions .form-group {
1680        margin-bottom: 5px;
1681    }
1682
1683    .tab-options .nav-pills>li>a {
1684        border: solid #ddd 1px;
1685        color: #337ab7 !important;
1686    }
1687
1688    .tab-options .nav-justified>li {
1689        padding: 0 10px;
1690    }
1691
1692    .tab-options .nav-pills>li.active>a {
1693        position: relative;
1694        color: #fff !important;
1695        background: #337ab7;
1696        border-color: #337ab7;
1697    }
1698
1699    .tab-options .nav-pills>li.active>a:hover {
1700        color: #fff !important;
1701    }
1702
1703    @media (min-width: 768px) {
1704        .tab-options .nav-pills>li.active>a:before {
1705            position: absolute;
1706            content: '';
1707            bottom: -10px;
1708            left: 0;
1709            right: 0;
1710            margin: 0 auto;
1711            width: 0;
1712            height: 0;
1713            border-style: solid;
1714            border-width: 10px 10px 0 10px;
1715            border-color: #337ab7 transparent transparent transparent;
1716        }
1717    }
1718
1719    .tab-options .well {
1720        background-color: #fff;
1721    }
1722
1723    .tab-options .form-group {
1724        margin-bottom: 5px;
1725    }
1726
1727    a.subscription-details-btn, a.subscription-details-btn:active, a.subscription-details-btn:visited {
1728        font-size: 13px;
1729        text-decoration: none;
1730    }
1731    table.subscription-details {
1732        font-size: 13px;
1733        margin: 5px 0;
1734    }
1735    table.subscription-details tr td:first-child {
1736        padding: 0 15px 0 0;
1737    }
1738    table.subscription-details span.small-subtitle {
1739        font-size: 10px;
1740    }
1741    .dynamic_tax_error {
1742        color: #939ca6;
1743    }
1744
1745    #gift-card-coupon-code-apply {
1746        color: #333 !important;
1747        background-color: #fff !important;
1748        border: 1px solid !important;
1749    }
1750
1751    .divider-checkout-block-title {
1752        text-align: left;
1753        margin-bottom: 10px;
1754    }
1755
1756    .divider-checkout-block-gc-title {
1757        text-align: left;
1758    }
1759
1760    .messages-coupon-gc {
1761        font-size: 12px;
1762    }
1763
1764    #gift-card-coupon-msgs > #coupon-applied-msg, #gift-card-applied-msg {
1765        font-size: 12px;
1766        vertical-align: middle;
1767        color: #64b92a;
1768    }
1769
1770    #gift-card-coupon-msgs > #gift-card-coupon-error-msg {
1771        font-size: 12px;
1772        vertical-align: middle;
1773        color: #c0392b;
1774    }
1775
1776    .row-divider-checkout {
1777        padding-bottom: 5px;
1778        text-align: right;
1779    }
1780
1781    .quote-contact-checkout-button {
1782        border: none;
1783        background-color: #f6f6f6;
1784    }
1785
1786    .review-contact-information-checkout {
1787        text-align: left;
1788        padding-left: 23px;
1789    }
1790
1791    .checkout-marketing-emails-checkbox {
1792        margin-top: -10px;
1793        display: block;
1794    }
1795
1796    .terms-fallback-panel {
1797        background: #f5f5f5;
1798        border: 1px solid #e3e3e3;
1799        border-radius: 4px;
1800        margin-bottom: 20px;
1801        vertical-align: text-top;
1802    }
1803
1804    .divider-row {
1805        display: flex;
1806        align-items: center;
1807        gap: 8px;
1808        margin: 12px 0;
1809    }
1810
1811    .divider-line {
1812        flex: 1;
1813        height: 1px;
1814        background: #e5e7eb;
1815    }
1816
1817    .divider-text {
1818        color: #6b7280;
1819    }
1820
1821    .saved-cards-container {
1822        border: 1px solid #e5e7eb;
1823        border-radius: 6px;
1824        padding: 12px;
1825        background-color: #fff;
1826        max-height: 200px;
1827        overflow-y: auto;
1828    }
1829
1830    .saved-cards-header {
1831        display: flex;
1832        padding: 0 8px 8px;
1833        font-weight: 600;
1834    }
1835
1836    .saved-cards-col-name {
1837        flex: 1;
1838    }
1839
1840    .saved-cards-col-exp {
1841        width: 20%;
1842        text-align: left;
1843    }
1844
1845    .saved-card-row {
1846        display: flex;
1847        align-items: center;
1848        padding: 8px;
1849        border-top: 1px solid #f3f4f6;
1850        box-sizing: border-box;
1851        transition: background 0.2s, border 0.2s;
1852    }
1853
1854    .saved-card-row.saved-card-selected {
1855        background: #e8f3ff;
1856        border: 1px solid #9ac7ff;
1857        border-radius: 6px;
1858    }
1859
1860    .saved-card-label {
1861        display: flex;
1862        align-items: center;
1863        gap: 8px;
1864        flex: 1;
1865        min-width: 0;
1866        margin: 0;
1867        cursor: pointer;
1868    }
1869
1870    .saved-card-label input[type="radio"] {
1871        margin-top: 0;
1872        position: relative;
1873        top: 0;
1874    }
1875
1876    .saved-card-info {
1877        min-width: 0;
1878    }
1879
1880    .saved-card-title {
1881        font-weight: bold;
1882        overflow: hidden;
1883        text-overflow: ellipsis;
1884        white-space: nowrap;
1885    }
1886
1887    .saved-card-last4,
1888    .saved-card-exp {
1889        font-weight: normal;
1890        color: #6b7280;
1891    }
1892
1893    .saved-card-expdate {
1894        flex: 0 0 20%;
1895        font-weight: bold;
1896    }
1897
1898    .nickname-group {
1899        margin-bottom: 16px;
1900    }
1901
1902    .nickname-label {
1903        display: flex;
1904        gap: 6px;
1905        align-items: baseline;
1906        font-weight: bold;
1907        margin-bottom: 6px;
1908    }
1909
1910    .nickname-optional {
1911        font-size: 12px;
1912        font-weight: normal;
1913        color: #6b7280;
1914    }
1915
1916    .nickname-input {
1917        border: 1px solid #d1d5db;
1918        border-radius: 6px;
1919        padding: 8px 10px;
1920        font-size: 14px;
1921        transition: border-color 0.2s ease;
1922    }
1923
1924    .nickname-input:focus {
1925        outline: none;
1926        border-color: #3b82f6;
1927        box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
1928    }
1929
1930    .payment-wrapper {
1931        position: relative;
1932    }
1933
1934    .payment-overlay {
1935        position: absolute;
1936        inset: 0;
1937        background: rgba(255, 255, 255, 0.3);
1938        cursor: pointer;
1939        z-index: 10;
1940        border-radius: 4px;
1941        transition: background 0.2s ease;
1942    }
1943
1944    .payment-overlay:hover {
1945        background: rgba(255, 255, 255, 0.3);
1946    }
1947</style>
1948
1949<!-- Main Checkout -->
1950<div class="row" ng-show="showMainCheckout()">
1951    <div class="col-sm-7">
1952
1953        <!-- Error messages -->
1954
1955        <div ng-if="StatusInfo.ErrorMessage" class="alert alert-danger" data-cy="web-checkout-error-top">
1956            <button type="button" class="close" ng-click="ErrorMessageClose()" data-cy="web-checkout-error-top-close">&times;</button>
1957            {{StatusInfo.ErrorMessage}}
1958        </div>
1959
1960        <div ng-if="CartData.Message" class="alert alert-warning" data-cy="web-checkout-cart-message">
1961            <button type="button" class="close" ng-click="ErrorMessageClose()">&times;</button>
1962            {{CartData.Message}}
1963        </div>
1964
1965        <div ng-if="InventoryMessages.RemovedItems || InventoryMessages.InventoryChanges" class="alert alert-warning" data-cy="web-checkout-inventory-message">
1966            <button type="button" class="close" ng-click="InventoryMessagesClose()">&times;</button>
1967            <div ng-if="InventoryMessages.RemovedItems.length > 0">
1968            We're sorry, but inventory is no longer available for the following items. Your cart has been adjusted and the product(s) removed
1969                <ul><li ng-repeat="msg in InventoryMessages.RemovedItems">{{msg}}</li></ul>
1970            </div>
1971            <div ng-if="InventoryMessages.InventoryChanges.length > 0">
1972                <div ng-repeat="msg in InventoryMessages.InventoryChanges">{{msg}}</div>
1973            </div>
1974        </div>
1975
1976        <div ng-if="AvailabilityMessages.StoreAvailableItems" class="alert alert-warning" data-cy="web-checkout-availability-message">
1977            <button type="button" class="close" ng-click="AvailabilityMessagesClose()">&times;</button>
1978            <div ng-if="AvailabilityMessages.StoreAvailableItems.length > 0">
1979                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:
1980                <ul><li ng-repeat="msg in AvailabilityMessages.StoreAvailableItems track by $index">{{msg}}</li></ul>
1981            </div>
1982        </div>
1983
1984        <div ng-if="StatusInfo.DynamicTaxError" class="alert alert-danger" data-cy="web-checkout-error-tax">
1985            {{StatusInfo.DynamicTaxError}}
1986        </div>
1987        <!-- Initial Cart Contents -->
1988
1989        <div ng-show="!isCartValid()" class="panel panel-default ng-hide">
1990            <div class="panel-body">
1991                <h4>Your cart is empty. <a href="{{InitInfo.ShopUrl}}/checkout/sync.php" style="btn">Click Here</a> to continue shopping.</h4>
1992            </div>
1993        </div>
1994
1995        <!-- Mobile Items -->
1996
1997        <div class="panel panel-default visible-xs">
1998            <div ng-if="StatusInfo.Initializing" class="panel-body">
1999                <i class="fa fa-spinner fa-pulse fa-2x"></i>
2000            </div>
2001            <table ng-if="!StatusInfo.Initializing" class="table">
2002
2003
2004<thead>
2005<tr>
2006    <td><strong>Description</strong></td>
2007    <td><strong>Quantity</strong></td>
2008    <td colspan="2"><strong>Amount</strong></td>
2009</tr>
2010</thead>
2011<tbody ng-repeat="item in CartData.Items">
2012<tr>
2013    <td colspan="4" style="border-bottom: 0; padding-bottom: 0;">
2014        <span ng-if="item.condition">
2015                {{item.title}} ({{item.condition.title}})
2016        </span>
2017
2018        <span ng-if="!item.condition">
2019                            {{item.title}}
2020                        <span ng-if="item.type === 'class' && item.class_date"> - {{item.class_date}}</span>
2021        </span>
2022
2023        <span ng-if="item.discount_eligible === 'false' && item.is_consignment && StatusInfo.IsCouponEntered" class="text-danger display-block">
2024            This item is not eligible for discounts
2025        </span>
2026        <span ng-if="!item.quantity_updating && item.type == 'rental'">
2027            - {{item.id}}
2028        </span>
2029        <span ng-if="item.package_items" ng-repeat="pitem in item.package_items">
2030            <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - {{pitem.title}}
2031        </span>
2032        <span ng-if="item.class_attendees.length">
2033            <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Attendees:
2034            <span ng-repeat="name in item.class_attendees">
2035                &nbsp;{{name}}
2036            </span>
2037        </span>
2038    </td>
2039</tr>
2040<tr>
2041    <td style="border-top: 0;">
2042        <img ng-if="item.image" ng-src="{{item.image}}" style="height: 50px; padding-right: 8px;">
2043
2044            </td>
2045    <td style="vertical-align: middle; border-top: 0;">
2046        <div ng-if="showQuantityAsSelector(item)" class="form-inline">
2047                            <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)">
2048                </select>
2049            
2050            <span ng-if="item.qty_type == 'fraction'">
2051                <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)">
2052                </select>
2053                <span ng-if="item.measure_unit == 'Meter'">Metres</span>
2054                <span ng-if="item.measure_unit != 'Meter'">{{item.measure_unit}}s</span>
2055            </span>
2056        </div>
2057        <div ng-if="showQuantityAsNumber(item)">
2058            {{item.qty_integer}}
2059        </div>
2060        <i ng-if="item.quantity_updating" class="fa fa-spinner fa-pulse"></i>
2061    </td>
2062
2063            <td ng-if="!showAsGST()" style="vertical-align: middle; border-top: 0;">{{getItemPrice(item) | currency:InitInfo.CurrencySymbol2}}</td>
2064    
2065    <td style="vertical-align: middle; border-top: 0;">
2066        <div class="cartCell cartDelete">
2067                            <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>
2068                        <i ng-if="item.removing" class="fa fa-spinner fa-pulse"></i>
2069        </div>
2070    </td>
2071    <td ng-if="showAsGST()" style="vertical-align: middle; border-top: 0;">{{getItemGstTotal(item) | currency:InitInfo.CurrencySymbol2}}</td>
2072</tr>
2073<tr ng-if="item.type === 'subscription'">
2074    <td colspan="4" style="border-bottom: 0;padding: 8px;border-top: 0;">
2075        <a ng-click="showSubscriptionDetails = !showSubscriptionDetails" class="subscription-details-btn" href="javascript:void(0);">
2076            <i class="fa" ng-class="{'fa-caret-down': showSubscriptionDetails, 'fa-caret-right': !showSubscriptionDetails}"></i>
2077            View Subscription Details
2078        </a>
2079        <div ng-show="showSubscriptionDetails">
2080            <table class="subscription-details">
2081                <tr>
2082                    <td>{{item.subscriptionData.labels.adverb}} Price:</td>
2083                    <td>{{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}</td>
2084                </tr>
2085                <tr>
2086                    <td>Subscription Length:</td>
2087                    <td>{{item.subscriptionData.subscription_length}} {{item.subscriptionData.labels.plural}}</td>
2088                </tr>
2089                <tr>
2090                    <td>Start/End Date:</td>
2091                    <td>{{item.subscriptionData.start_date}} - {{item.subscriptionData.end_date}}</td>
2092                </tr>
2093                <tr>
2094                    <td>Registration Fee <span class="small-subtitle">(One Time)</span>:</td>
2095                    <td>{{item.subscriptionData.registration_fee | currency:InitInfo.CurrencySymbol2}}</td>
2096                </tr>
2097                <tr>
2098                    <td>Previous {{item.subscriptionData.labels.plural}}:</td>
2099                    <td>
2100                                                 <span ng-if="item.subscriptionData.previous_items_cnt > 0">
2101                                                    {{item.subscriptionData.previous_items_cnt}} x {{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}
2102                                                </span>
2103                        <span ng-if="item.subscriptionData.previous_items_cnt == 0">Not Included</span>
2104                    </td>
2105                </tr>
2106                <tr>
2107                    <td>Delivery Method:</td>
2108                    <td ng-switch="item.subscriptionData.delivery_type">
2109                                            <span ng-switch-when="ship">
2110                                                Shipped - {{item.subscriptionData.shipping_fee | currency:InitInfo.CurrencySymbol2}}
2111                                            </span>
2112                        <span ng-switch-default>In-Store Pickup</span>
2113                    </td>
2114                </tr>
2115                <tr ng-if="item.subscriptionData.delivery_type === 'ship'">
2116                    <td>Address:</td>
2117                    <td>{{item.subscriptionData.address}}</td>
2118                </tr>
2119                <tr>
2120                    <td><strong>Total {{item.subscriptionData.labels.adverb}}:</strong></td>
2121                    <td>
2122                        <strong>{{item.subscriptionData.total_per_kit | currency:InitInfo.CurrencySymbol2}}</strong>
2123                    </td>
2124                </tr>
2125                <tr>
2126                    <td><strong>Due Today:</strong></td>
2127                    <td>
2128                        <strong>{{item.subscriptionData.due_today | currency:InitInfo.CurrencySymbol2}}</strong>
2129                    </td>
2130                </tr>
2131            </table>
2132        </div>
2133    </td>
2134</tr>
2135</tbody>
2136            </table>
2137        </div>
2138
2139        <!-- Show Contact Info -->
2140        <div ng-form="contactForm" ng-show="showContactInfo()" class="panel panel-default ng-hide">
2141            <div class="panel-body">
2142
2143                <!-- Validation Messages -->
2144                <div ng-show="!inStorePickup() && (ShippingStatus.MessagesShow && ShippingStatus.NotValidMessages.length > 0 || ContactStatus.MessagesShow && ContactStatus.NotValidMessages.length > 0)" class="row">
2145                    <div class="col-xs-12 text-danger">
2146                        <span ng-repeat="message in ContactStatus.NotValidMessages"><label>{{message}}</label><br></span>
2147                    </div>
2148                    <div class="col-xs-12 text-danger">
2149                        <span ng-repeat="message in ShippingStatus.NotValidMessages"><label>{{message}}</label><br></span>
2150                    </div>
2151                </div>
2152
2153                <div class="row">
2154                    <div class="col-xs-12">
2155                        <label>Contact Information</label>
2156                    </div>
2157                </div>
2158
2159                <div class="row">
2160                    <div ng-class="FormFieldErrorClass('contactForm', 'email', contactForm)" class="col-sm-6">
2161                        <input required
2162                               id="billing_email"
2163                               data-cy="web-checkout-contact-email"
2164                               name="email"
2165                               type="email"
2166                               ng-model="BillingInfo.Email"
2167                               class="form-control"
2168                               placeholder="Email"
2169                               ng-focus="InitToolTip($event)"
2170                               data-toggle="tooltip"
2171                               ng-blur="updateCouponsByCustomerGroups()"
2172                               title="Email Address">
2173                        <label ng-if="FormFieldError('contactForm', 'email', contactForm)" class="control-label error-label" data-cy="web-checkout-contact-email-error">
2174                            Please enter a valid email
2175                        </label>
2176                        <label ng-if="isSubscribeToMarketingEmailsEnabled()" class="checkout-marketing-emails-checkbox" id="text-msg-notifications">
2177                            <input class="ng-pristine ng-untouched ng-valid" id="subscribeToMarketingEmails" data-cy="web-checkout-subscribe-marketing" type="checkbox" ng-click="toggleSubscribeToMarketingEmails()">
2178                            <small for="subscribeToMarketingEmails">
2179                                Sign me up for News and Offers
2180                            </small>
2181                        </label>
2182                    </div>
2183                    <div ng-class="FormFieldErrorClass('contactForm', 'phone', contactForm)" class="col-sm-6">
2184                        <input
2185                            id="billing_phone"
2186                            data-cy="web-checkout-contact-phone"
2187                            required
2188                            phone-number
2189                            ng-model="BillingInfo.Phone"
2190                            ng-focus="InitToolTip($event)"
2191                            name="phone"
2192                            type="text"
2193                            data-toggle="tooltip"
2194                            title="Phone Number"
2195                            class="form-control"
2196                        >
2197                        <label ng-if="FormFieldError('contactForm', 'phone', contactForm)" class="control-label error-label" data-cy="web-checkout-contact-phone-error">
2198                            Please enter a valid phone number
2199                        </label>
2200                        <label style="margin-top: -10px; display: block;" id="text-msg-notifications" ng-if="isTextMessagingSupported()">
2201                            <input type="checkbox" ng-model="CheckoutInfo.sendTextNotifications" class="ng-pristine ng-untouched ng-valid">
2202                            <small>Get order update texts</small>
2203                            <i class="fa fa-mobile" aria-hidden="true"></i>
2204                        </label>
2205                    </div>
2206                </div>
2207            </div>
2208        </div>
2209
2210        <!-- Shipping Information -->
2211        <div ng-form="shippingForm" ng-show="showShippingForm() && isShippingRequired()" class="panel panel-default ng-hide">
2212            <div class="panel-body">
2213
2214                <div ng-if="InitInfo.wholesale.checkout_enabled">
2215                    <div class="row">
2216                            <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_first_name', shippingForm)" class="col-sm-6">
2217                            <input ng-required="!isPickup()"
2218                                   capitalize-first
2219                                   id="shipping_first_name" data-cy="web-checkout-shipping-first-name"
2220                                   name="shipping_first_name"
2221                                   type="text"
2222                                   ng-model="ShippingInfo.FirstName"
2223                                   class="form-control"
2224                                   placeholder="First Name"
2225                                   ng-focus="InitToolTip($event)"
2226                                   data-toggle="tooltip"
2227                                   title="First Name">
2228                            <label ng-if="FormFieldError('shippingForm', 'shipping_first_name', shippingForm)" class="control-label error-label">
2229                                Please enter a first name
2230                            </label>
2231                        </div>
2232                            <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_last_name', shippingForm)" class="col-sm-6" >
2233                            <input ng-required="!isPickup()"
2234                                   capitalize-first
2235                                   id="shipping_last_name" data-cy="web-checkout-shipping-last-name"
2236                                   name="shipping_last_name"
2237                                   type="text"
2238                                   ng-model="ShippingInfo.LastName"
2239                                   class="form-control"
2240                                   placeholder="Last Name"
2241                                   ng-focus="InitToolTip($event)"
2242                                   data-toggle="tooltip"
2243                                   title="Last Name">
2244                            <label ng-if="FormFieldError('shippingForm', 'shipping_last_name', shippingForm)" class="control-label error-label">
2245                                Please enter a last name
2246                            </label>
2247                        </div>
2248                    </div>
2249
2250                    <div class="row">
2251                        <div class="col-sm-6">
2252                            <input capitalize-first
2253                                   id="company_name" data-cy="web-checkout-shipping-company"
2254                                   name="company_name"
2255                                   type="text"
2256                                   ng-model="ShippingInfo.company_name"
2257                                   class="form-control"
2258                                   placeholder="Company Name"
2259                                   ng-focus="InitToolTip($event)"
2260                                   data-toggle="tooltip"
2261                                   title="Company Name">
2262                        </div>
2263                    </div>
2264                </div>
2265
2266                <div id="shippingInStorePickupOptions">
2267
2268                    <div ng-if="areShippingOptionsRequired()">
2269                        <label>Shipping and Pickup Options</label>
2270                    </div>
2271
2272                    <!-- Shipping Nav tabs -->
2273                    <ul class="nav nav-pills nav-justified" role="tablist" id="shippingTabs">
2274                        <li role="presentation" class="active" ng-if="isShippingTabVisible()">
2275                            <a href="#shippingOptions" aria-controls="shippingOptions" role="tab" data-toggle="pill">
2276                                <span class="fa fa-truck fa-fw"></span> Shipping Options
2277                            </a>
2278                        </li>
2279                        <li role="presentation" ng-if="isLocalDeliveryEnabled() && isLocalDeliveryOptionsProvided">
2280                            <a href="#localDelivery" aria-controls="localDelivery" role="tab" data-toggle="pill" id="localDeliveryTab">
2281                                <span class="fa fa-home fa-fw"></span> Local Delivery
2282                            </a>
2283                        </li>
2284                        <li role="presentation" ng-if="isStorePickupEnabled() && hasStorePickupOptions()">
2285                            <a href="#inStorePickup" aria-controls="inStorePickup" role="tab" data-toggle="pill" id="inStorePickupTab">
2286                                <span class="fa fa-home fa-fw"></span> <strong>FREE</strong> In-Store Pickup
2287                            </a>
2288                        </li>
2289                        <li role="presentation" ng-if="isCurbsidePickupEnabled() && hasCurbsidePickupOptions()">
2290                            <a href="#curbsidePickup" aria-controls="curbsidePickup" role="tab" data-toggle="pill" id="curbsidePickupTab">
2291                                <span class="fa fa-home fa-fw"></span> <strong>FREE</strong> Curbside Pickup
2292                            </a>
2293                        </li>
2294                        <li role="presentation" ng-if="isOsrSchoolPickupEnabled() && hasSchoolPickupOptions()">
2295                            <a href="#schoolPickup" aria-controls="schoolPickup" role="tab" data-toggle="pill" id="schoolPickupTab">
2296                                <span class="fa fa-school fa-fw"></span> <strong>FREE</strong> School Delivery
2297                            </a>
2298                        </li>
2299                    </ul>
2300
2301                    <!-- Shipping Tab panes -->
2302                    <div class="tab-content" style="margin-top: 15px;">
2303
2304                        <div role="tabpanel" class="tab-pane fade in active" id="shippingOptions" ng-if="isShippingFormVisible()">
2305                            <!-- Shipping Options -->
2306                            <div class="well">
2307                                <div class="row" ng-if="areShippingOptionsRequired() && (!hasShippingState() || !hasShippingZip())">
2308                                    <div class="col-xs-12">
2309                                        <div class="pull-left">
2310                                            Please input an address to see shipping options
2311                                        </div>
2312                                    </div>
2313                                </div>
2314                                <!-- Shipping options -->
2315                                <div ng-if="ShippingStatus.OptionsUpdating" class="row">
2316                                    <div class="col-xs-12">
2317                                        <i class="fa fa-spinner fa-pulse"></i>
2318                                    </div>
2319                                </div>
2320
2321                                <div ng-if="!ShippingStatus.OptionsUpdating">
2322                                    <div ng-if="showShippingErrorMessage() && hasShippingZip() && hasShippingState()" class="row">
2323                                        <div class="col-xs-12">
2324                                            <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p>
2325                                        </div>
2326                                    </div>
2327                                    <div ng-if="showShippingStateRequired()" class="row">
2328                                        <div class="col-xs-12">
2329                                            <p ng-if="!hasShippingZip()" class="text-primary" style="padding-top: 7px;">Please enter a valid {{ShippingInfo.ZipOrPostal}} to see shipping options</p>
2330                                        </div>
2331                                    </div>
2332                                    <div ng-if="showNoShippingOptions() && hasShippingState() && hasShippingZip()" class="row">
2333                                        <div class="col-xs-12">
2334                                            Shipping options are not available for this country or region.
2335                                            <br>
2336                                            Please call {{InitInfo.Store.phone}} for shipping options.
2337                                        </div>
2338                                    </div>
2339                                    <div ng-if="hasShippingOptions()" class="row">
2340                                        <div class="col-xs-12">
2341                                            <ul class="list-unstyled">
2342                                                <li ng-repeat="option in enhancedShippingInfo.shippingOptions track by option.id">
2343                                                    <div class="form-group">
2344                                                        <label>
2345                                                            <input
2346                                                                    ng-required="!ShippingInfo.OptionId"
2347                                                                    name="shipping_option"
2348                                                                    type="radio"
2349                                                                    value="{{option.id}}"
2350                                                                    ng-change="ShippingVerify()"
2351                                                                    ng-model="ShippingInfo.OptionId"
2352                                                                    class="option_radio"
2353                                                            >
2354                                                            <span class="option_content" style="font-weight: normal">
2355                                                                    <span ng-if="!isTaxInclusive()"><strong>{{option.name}}</strong> - <span>{{option.price | currency:InitInfo.CurrencySymbol2}}</span> <br> <span>{{option.delivery_time}}</span></span>
2356                                                                    <span ng-if="isTaxInclusive()"><strong>{{option.name}}</strong> - <span>{{addShippingTaxes(option.price) | currency:InitInfo.CurrencySymbol2}}</span> <br> <span>{{option.delivery_time}}</span></span>
2357                                                                </span>
2358                                                        </label>
2359                                                    </div>
2360                                                </li>
2361                                            </ul>
2362                                            <div>
2363                                                <small ng-if="ShippingStatus.Submitted && !ShippingInfo.Option" class="text-danger control-label">Please select a shipping option</small>
2364                                            </div>
2365                                        </div>
2366                                    </div>
2367                                </div>
2368                            </div>
2369
2370                            <!-- Ship to School -->
2371                            <div ng-if="canShowShipToSchool()">
2372                                <div class="form-group">
2373                                    <label>
2374                                        <input type="checkbox" ng-model="ShippingInfo.shipToSchool">
2375                                        Ship to School
2376                                    </label>
2377                                </div>
2378
2379                                <div ng-if="ShippingInfo.shipToSchool">
2380                                    <div ng-if="districts && districts.length > 0" class="school-selection">
2381                                        <div ng-class="FormFieldErrorClass('shippingForm', 'district_select', shippingForm)" class="form-group">
2382                                            <label for="district_select">Select District</label>
2383                                            <select id="district_select"
2384                                                    name="district_select"
2385                                                    class="form-control"
2386                                                    ng-model="ShippingInfo.selectedDistrict"
2387                                                    ng-options="district as district.name for district in districts"
2388                                                    ng-change="onDistrictChange()"
2389                                                    ng-required="ShippingInfo.shipToSchool">
2390                                                <option value="">-- Select District --</option>
2391                                            </select>
2392                                            <label ng-if="FormFieldError('shippingForm', 'district_select', shippingForm)" class="control-label error-label">
2393                                                Please select a district
2394                                            </label>
2395                                        </div>
2396
2397                                        <div ng-class="FormFieldErrorClass('shippingForm', 'school_select', shippingForm)" class="form-group">
2398                                            <label for="school_select">Select School</label>
2399                                            <select id="school_select"
2400                                                    name="school_select"
2401                                                    class="form-control"
2402                                                    ng-model="ShippingInfo.selectedSchool"
2403                                                    ng-options="school as school.name for school in schools"
2404                                                    ng-disabled="!ShippingInfo.selectedDistrict"
2405                                                    ng-required="ShippingInfo.shipToSchool">
2406                                                <option value="">-- Select School --</option>
2407                                            </select>
2408                                            <label ng-if="FormFieldError('shippingForm', 'school_select', shippingForm)" class="control-label error-label">
2409                                                Please select a school
2410                                            </label>
2411                                        </div>
2412                                    </div>
2413                                </div>
2414                            </div>
2415
2416                            <!-- Shipping Address -->
2417                            <div ng-if="showShippingAddressForm()">
2418                                                                <div class="row">
2419                                    <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_first_name', shippingForm)" class="col-sm-6" ng-if="!isPayPal()">
2420                                        <input ng-required="!isPickup()"
2421                                               capitalize-first
2422                                               id="shipping_first_name" data-cy="web-checkout-shipping-first-name"
2423                                               name="shipping_first_name"
2424                                               type="text"
2425                                               ng-model="ShippingInfo.FirstName"
2426                                               class="form-control"
2427                                               placeholder="First Name"
2428                                               ng-focus="InitToolTip($event)"
2429                                               data-toggle="tooltip"
2430                                               title="First Name">
2431                                        <label ng-if="FormFieldError('shippingForm', 'shipping_first_name', shippingForm)" class="control-label error-label">
2432                                            Please enter a first name
2433                                        </label>
2434                                    </div>
2435                                    <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_last_name', shippingForm)" class="col-sm-6" ng-if="!isPayPal()">
2436                                        <input ng-required="!isPickup()"
2437                                               capitalize-first
2438                                               id="shipping_last_name" data-cy="web-checkout-shipping-last-name"
2439                                               name="shipping_last_name"
2440                                               type="text"
2441                                               ng-model="ShippingInfo.LastName"
2442                                               class="form-control"
2443                                               placeholder="Last Name"
2444                                               ng-focus="InitToolTip($event)"
2445                                               data-toggle="tooltip"
2446                                               title="Last Name">
2447                                        <label ng-if="FormFieldError('shippingForm', 'shipping_last_name', shippingForm)" class="control-label error-label">
2448                                            Please enter a last name
2449                                        </label>
2450                                    </div>
2451                                </div>
2452
2453                                <div class="row">
2454                                    <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_address_1', shippingForm)" class="col-sm-6" ng-if="!isPayPal() || isExtendPayPalShippingInfo()">
2455                                        <input ng-required="!isPickup()"
2456                                               capitalize-first
2457                                               id="shipping_address_1" data-cy="web-checkout-shipping-address1"
2458                                               name="shipping_address_1"
2459                                               type="text"
2460                                               ng-model="ShippingInfo.Address1"
2461                                               street-address
2462                                               ng-disabled="ShippingInfoPrefilledFlags.Address1"
2463                                               ng-blur="AddressBlur()"
2464                                               class="form-control"
2465                                               placeholder="Street Address 1"
2466                                               ng-focus="InitToolTip($event)"
2467                                               data-toggle="tooltip"
2468                                               title="Street Address 1">
2469                                        <label ng-if="FormFieldError('shippingForm', 'shipping_address_1', shippingForm) && shippingForm.shipping_address_1.$error.required" class="control-label error-label">
2470                                            Please enter a street address
2471                                        </label>
2472                                        <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">
2473                                            Please enter a valid street address.
2474                                        </label>
2475                                    </div>
2476                                    <div class="col-sm-6" ng-if="!isPayPal() || isExtendPayPalShippingInfo()">
2477                                        <input
2478                                            id="shipping_address_2" data-cy="web-checkout-shipping-address2"
2479                                            name="shipping_address_2"
2480                                            type="text"
2481                                            ng-model="ShippingInfo.Address2"
2482                                            ng-disabled="ShippingInfoPrefilledFlags.Address2"
2483                                            ng-blur="AddressBlur()"
2484                                            class="form-control"
2485                                            placeholder="Street Address 2"
2486                                            ng-focus="InitToolTip($event)"
2487                                            data-toggle="tooltip"
2488                                            title="Street Address 2"
2489                                        >
2490                                    </div>
2491                                </div>
2492
2493                                <div class="row">
2494                                    <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_city', shippingForm)" class="col-sm-6" ng-if="!isPayPal() || isExtendPayPalShippingInfo()">
2495                                        <input ng-required="!isPickup()"
2496                                               capitalize-first
2497                                               id="shipping_city" data-cy="web-checkout-shipping-city"
2498                                               name="shipping_city"
2499                                               type="text"
2500                                               ng-model="ShippingInfo.City"
2501                                               ng-disabled="ShippingInfoPrefilledFlags.City"
2502                                               ng-blur="AddressBlur()"
2503                                               class="form-control"
2504                                               placeholder="City"
2505                                               ng-focus="InitToolTip($event)"
2506                                               data-toggle="tooltip"
2507                                               title="City">
2508                                        <label ng-if="FormFieldError('shippingForm', 'shipping_city', shippingForm)" class="control-label error-label">
2509                                            Please enter a City
2510                                        </label>
2511                                    </div>
2512                                    <div ng-if="InitInfo.Regions[ShippingInfo.CountryKey] && ShippingInfo.RegionsCount > 0" ng-class="FormFieldErrorClass('shippingForm', 'shipping_state', shippingForm)" class="col-sm-6">
2513                                        <select ng-required="!isPickup()"
2514                                                id="shipping_state" data-cy="web-checkout-shipping-state"
2515                                                name="shipping_state"
2516                                                ng-change="ShippingOptionsGet()"
2517                                                ng-model="ShippingInfo.State"
2518                                                ng-disabled="ShippingInfoPrefilledFlags.State"
2519                                                class="form-control">
2520                                            <option value="">Select {{ShippingInfo.StateOrProvince}}</option>
2521                                            <option ng-repeat="(key, value) in InitInfo.Regions[ShippingInfo.CountryKey]" value="{{key}}">{{value}}</option>
2522                                        </select>
2523                                        <label ng-if="FormFieldError('shippingForm', 'shipping_state', shippingForm)" class="control-label error-label">
2524                                            Please select a {{ShippingInfo.StateOrProvince}}
2525                                        </label>
2526                                    </div>
2527                                    <div ng-if="!InitInfo.Regions[ShippingInfo.CountryKey]" ng-class="FormFieldErrorClass('shippingForm', 'shipping_state', shippingForm)" class="col-sm-6">
2528                                        <input ng-required="!isPickup()"
2529                                               capitalize-first
2530                                               id="shipping_state" data-cy="web-checkout-shipping-state"
2531                                               name="shipping_state"
2532                                               type="text"
2533                                               ng-model="ShippingInfo.State"
2534                                               ng-disabled="ShippingInfoPrefilledFlags.State"
2535                                               ng-change="ShippingOptionsGet()"
2536                                               class="form-control"
2537                                               placeholder="State/Province"
2538                                               ng-focus="InitToolTip($event)"
2539                                               data-toggle="tooltip"
2540                                               title="State/Province">
2541                                        <label ng-if="FormFieldError('shippingForm', 'shipping_state', shippingForm)" class="control-label error-label">
2542                                            Please enter the State/Province
2543                                        </label>
2544                                    </div>
2545                                    <div ng-if="InitInfo.InternationalEnabled" ng-class="FormFieldErrorClass('shippingForm', 'shipping_country', shippingForm)" class="col-sm-6">
2546                                        <select ng-required="!isPickup()"
2547                                                id="shipping_country" data-cy="web-checkout-shipping-country"
2548                                                name="shipping_country"
2549                                                ng-change="changeShippingCountry()"
2550                                                ng-model="ShippingInfo.CountryKey"
2551                                                ng-disabled="ShippingInfoPrefilledFlags.Country"
2552                                                class="form-control"
2553                                                ng-options="key as value for (key, value) in InitInfo.Countries">
2554                                        </select>
2555                                        <label ng-if="FormFieldError('shippingForm', 'shipping_country', shippingForm)" class="control-label error-label">
2556                                            Please select a country
2557                                        </label>
2558                                    </div>
2559                                    <div ng-class="FormFieldErrorClass('shippingForm', 'shipping_zip', shippingForm)" class="col-sm-6">
2560                                        <input ng-required="!isPickup()"
2561                                               id="shipping_zip" data-cy="web-checkout-shipping-zip"
2562                                               name="shipping_zip"
2563                                               type="text"
2564                                               ng-change="ShippingOptionsGet()"
2565                                               ng-model="ShippingInfo.Zip"
2566                                               ng-disabled="ShippingInfoPrefilledFlags.Zip"
2567                                               ng-model-options="{debounce: 750}"
2568                                               class="form-control"
2569                                               style="max-width: 125px;"
2570                                               placeholder="{{ShippingInfo.ZipOrPostal}}"
2571                                               ng-focus="InitToolTip($event)"
2572                                               data-toggle="tooltip"
2573                                               title="{{ShippingInfo.ZipOrPostal}}">
2574                                        <label ng-if="FormFieldError('shippingForm', 'shipping_zip', shippingForm)" class="control-label error-label">
2575                                            Please enter a {{ShippingInfo.ZipOrPostal}}
2576                                        </label>
2577                                    </div>
2578                                </div>
2579                                                                <!-- Order Notes -->
2580                                <div class="row">
2581                                    <div class="col-xs-12">
2582                                        <label>Notes</label>
2583                                    </div>
2584                                </div>
2585                                <div class="row">
2586                                    <div class="col-sm-12">
2587                                        <textarea ng-model="orderNotes.note" data-cy="web-checkout-order-notes" rows="5" class="form-control" placeholder="Leave a note for the store"></textarea>
2588                                    </div>
2589                                </div>
2590
2591                                <!-- Gift Message -->
2592                                <div class="row" ng-if="shouldShowGiftCardsCoupons()">
2593                                    <label class="col-xs-12">
2594                                        <input type="checkbox" ng-model="GiftMessage.Checked" ng-click="GiftMessageEdit()">
2595                                        <small>This is a gift</small>
2596                                    </label>
2597                                </div>
2598                                <div ng-show="GiftMessage.Checked || GiftMessage.Message" class="row">
2599                                    <div class="col-xs-12">
2600                                        <div class="form-group">
2601                                            <p>
2602                                                <small>Prices will be hidden on receipt.</small>
2603                                            </p>
2604                                            <label class="">Gift Message</label> <small>(Optional)</small>
2605                                            <textarea ng-model="GiftMessage.Message" class="form-control" rows="4"></textarea>
2606                                        </div>
2607                                    </div>
2608                                </div>
2609                            </div>
2610                        </div>
2611                        <div role="tabpanel" class="tab-pane fade" id="inStorePickup">
2612                            <div class="well">
2613                                <!-- Shipping options -->
2614                                <div ng-if="ShippingStatus.OptionsUpdating" class="row">
2615                                    <div class="col-xs-12">
2616                                        <i class="fa fa-spinner fa-pulse"></i>
2617                                    </div>
2618                                </div>
2619                                <div ng-if="!ShippingStatus.OptionsUpdating">
2620                                    <div ng-if="!ShippingStatus.OptionsValid" class="row">
2621                                        <div class="col-xs-12">
2622                                                <span ng-if="ShippingStatus.Message">
2623                                                    <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p>
2624                                                </span>
2625                                        </div>
2626                                    </div>
2627                                    <div ng-if="!hasStorePickupOptions()" class="row">
2628                                        <div class="col-xs-12">
2629                                            Store Pickup options are not available for this country or region.
2630                                        </div>
2631                                    </div>
2632
2633                                    <div ng-if="hasStorePickupOptions()" class="row">
2634                                        <div class="col-xs-12">
2635                                            <ul class="list-unstyled">
2636                                                <li ng-repeat="option in enhancedShippingInfo.storePickupOptions track by option.id">
2637                                                    <div class="form-group">
2638                                                        <label>
2639                                                            <input
2640                                                                    ng-required="!ShippingInfo.OptionId"
2641                                                                    name="shipping_option"
2642                                                                    type="radio"
2643                                                                    value="{{option.id}}"
2644                                                                    ng-change="ShippingVerify()"
2645                                                                    ng-model="ShippingInfo.OptionId"
2646                                                                    class="option_radio"
2647                                                            >
2648                                                            <span class="option_content" style="font-weight: normal">
2649                                                                    <strong>{{option.store_location_name}}</strong>
2650                                                                    <br>
2651                                                                    <span>{{option.delivery_time}}</span>
2652                                                                </span>
2653                                                        </label>
2654                                                    </div>
2655                                                </li>
2656                                            </ul>
2657                                            <div>
2658                                                <small ng-if="ShippingStatus.Submitted && !ShippingInfo.Option" class="text-danger control-label">Please select a shipping option</small>
2659                                            </div>
2660                                        </div>
2661                                    </div>
2662
2663                                    <!-- Order Notes -->
2664                                    <div class="row">
2665                                        <div class="col-xs-12">
2666                                            <label>Notes</label>
2667                                        </div>
2668                                    </div>
2669                                    <div class="row">
2670                                        <div class="col-sm-12">
2671                                            <textarea ng-model="orderNotes.note" data-cy="web-checkout-order-notes" rows="5" class="form-control" placeholder="Leave a note for the store"></textarea>
2672                                        </div>
2673                                    </div>
2674                                </div>
2675                            </div>
2676                        </div>
2677                        <div role="tabpanel" class="tab-pane fade" id="curbsidePickup">
2678                            <div class="well">
2679                                <!-- Shipping options -->
2680                                <div ng-if="ShippingStatus.OptionsUpdating" class="row">
2681                                    <div class="col-xs-12">
2682                                        <i class="fa fa-spinner fa-pulse"></i>
2683                                    </div>
2684                                </div>
2685                                <div ng-if="!ShippingStatus.OptionsUpdating">
2686                                    <div ng-if="!ShippingStatus.OptionsValid" class="row">
2687                                        <div class="col-xs-12">
2688                                                <span ng-if="ShippingStatus.Message">
2689                                                    <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p>
2690                                                </span>
2691                                        </div>
2692                                    </div>
2693                                    <div ng-if="!hasCurbsidePickupOptions()" class="row">
2694                                        <div class="col-xs-12">
2695                                            Curbside pickup options are not available for this country or region.
2696                                        </div>
2697                                    </div>
2698
2699                                    <div ng-if="hasCurbsidePickupOptions()" class="row">
2700                                        <div class="col-xs-12">
2701                                            <ul class="list-unstyled">
2702                                                <li ng-repeat="option in enhancedShippingInfo.curbsidePickupOptions track by option.id">
2703                                                    <div class="form-group">
2704                                                        <label>
2705                                                            <input
2706                                                                    ng-required="!ShippingInfo.OptionId"
2707                                                                    name="shipping_option"
2708                                                                    type="radio"
2709                                                                    value="{{option.id}}"
2710                                                                    ng-change="ShippingVerify()"
2711                                                                    ng-model="ShippingInfo.OptionId"
2712                                                                    class="option_radio"
2713                                                            >
2714                                                            <span class="option_content" style="font-weight: normal">
2715                                                                    <strong>{{option.store_location_name}}</strong>
2716                                                                    <br>
2717                                                                    <span>{{option.delivery_time}}</span>
2718                                                                </span>
2719                                                        </label>
2720                                                    </div>
2721                                                </li>
2722                                            </ul>
2723                                            <div>
2724                                                <small ng-if="ShippingStatus.Submitted && !ShippingInfo.Option" class="text-danger control-label">Please select a shipping option</small>
2725                                            </div>
2726                                        </div>
2727                                    </div>
2728                                </div>
2729                            </div>
2730                        </div>
2731
2732                        <div role="tabpanel" class="tab-pane fade" id="schoolPickup" ng-if="areShippingOptionsRequired()">
2733                            <div class="well">
2734                                <div ng-if="!ShippingStatus.OptionsUpdating">
2735                                    <div ng-if="!ShippingStatus.OptionsValid" class="row">
2736                                        <div class="col-xs-12">
2737                                            <span ng-if="ShippingStatus.Message">
2738                                                <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p>
2739                                            </span>
2740                                        </div>
2741                                    </div>
2742                                    <div ng-if="!hasSchoolPickupOptions() || !isOsrSchoolPickupAvailable()" class="row">
2743                                        <div class="col-xs-12">
2744                                            School Delivery is not available now.
2745                                        </div>
2746                                    </div>
2747
2748                                    <div ng-if="hasSchoolPickupOptions() && isOsrSchoolPickupAvailable()" class="row">
2749                                        <div class="col-xs-12">
2750                                            <ul class="list-unstyled">
2751                                                <li ng-repeat="option in enhancedShippingInfo.schoolPickupOptions track by option.id">
2752                                                    <div class="form-group">
2753                                                        <label>
2754                                                            <input
2755                                                                ng-required="!ShippingInfo.OptionId"
2756                                                                name="shipping_option"
2757                                                                type="radio"
2758                                                                value="{{option.id}}"
2759                                                                ng-change="ShippingVerify()"
2760                                                                ng-model="ShippingInfo.OptionId"
2761                                                                class="option_radio"
2762                                                            >
2763                                                            <span class="option_content" style="font-weight: normal">
2764                                                                <strong> {{ option.school_name ? option.school_name : (checkFlagRestoreSchoolDeliveryShippingOption() ? 'School Delivery' : '') }}</strong>
2765                                                                <br>
2766                                                                <span>{{option.delivery_time}}</span>
2767                                                            </span>
2768                                                        </label>
2769                                                    </div>
2770                                                </li>
2771                                            </ul>
2772                                            <div>
2773                                                <small ng-if="ShippingStatus.Submitted && !ShippingInfo.Option" class="text-danger control-label">Please select a shipping option</small>
2774                                            </div>
2775                                        </div>
2776                                    </div>
2777
2778                                    <div ng-if="hasSchoolPickupOptions() && isOsrSchoolPickupAvailable()">
2779                                        <!-- Order Notes -->
2780                                        <div class="row">
2781                                            <div class="col-xs-12">
2782                                                <label>Notes</label>
2783                                            </div>
2784                                        </div>
2785                                        <div class="row">
2786                                            <div class="col-sm-12">
2787                                                <textarea ng-model="orderNotes.note" data-cy="web-checkout-order-notes" rows="5" class="form-control" placeholder="Leave a note for the store"></textarea>
2788                                            </div>
2789                                        </div>
2790                                    </div>
2791                                </div>
2792                            </div>
2793                        </div>
2794
2795                        <div ng-if="isLocalDeliveryEnabled()" role="tabpanel" class="tab-pane fade" id="localDelivery">
2796                            <div class="well">
2797                                <div class="row" ng-if="areShippingOptionsRequired() && (!hasShippingState() || !hasShippingZip())">
2798                                    <div class="col-xs-12">
2799                                        <div class="pull-left">
2800                                            Please input an address to see shipping options
2801                                        </div>
2802                                    </div>
2803                                </div>
2804
2805                                <div class="row" ng-if="ShippingStatus.OptionsUpdating">
2806                                    <div class="col-xs-12"><i class="fa fa-spinner fa-pulse"></i></div>
2807                                </div>
2808
2809                                <div ng-if="!ShippingStatus.OptionsUpdating">
2810                                    <div class="row" ng-if="showShippingErrorMessage() && hasShippingZip() && hasShippingState()">
2811                                        <div class="col-xs-12">
2812                                            <p class="text-primary" style="padding-top: 7px;">{{ShippingStatus.Message}}</p>
2813                                        </div>
2814                                    </div>
2815
2816                                    <div class="row" ng-if="showShippingStateRequired()">
2817                                        <div class="col-xs-12">
2818                                            <p ng-if="!hasShippingZip()" class="text-primary" style="padding-top: 7px;">
2819                                                Please enter a valid {{ShippingInfo.ZipOrPostal}} to see delivery options
2820                                            </p>
2821                                        </div>
2822                                    </div>
2823
2824                                    <div class="row" ng-if="showNoShippingOptions() && hasShippingState() && hasShippingZip()">
2825                                        <div class="col-xs-12">
2826                                            Local delivery options are not available for this country or region.
2827                                            <br>
2828                                            Please call {{InitInfo.Store.phone}} for delivery options.
2829                                        </div>
2830                                    </div>
2831
2832                                    <div class="row" ng-if="hasLocalDeliveryOptions()">
2833                                        <div class="col-xs-12">
2834                                            <ul class="list-unstyled">
2835                                                <li ng-repeat="option in enhancedShippingInfo.localDeliveryOptions track by option.id">
2836                                                    <div class="form-group">
2837                                                        <label style="font-weight: normal;">
2838                                                            <input
2839                                                                ng-required="!ShippingInfo.OptionId"
2840                                                                name="shipping_option"
2841                                                                type="radio"
2842                                                                class="option_radio"
2843                                                                ng-model="ShippingInfo.OptionId"
2844                                                                ng-value="option.id"
2845                                                                ng-change="ShippingInfo.Option = option; ShippingVerify()"
2846                                                            >
2847                                                            <span class="option_content">
2848                                                                <strong>{{option.name}}</strong>
2849                                                                <span ng-if="!isTaxInclusive()"> - {{option.price | currency:InitInfo.CurrencySymbol2}}</span>
2850                                                                <span ng-if="isTaxInclusive()"> - {{addShippingTaxes(option.price) | currency:InitInfo.CurrencySymbol2}}</span>
2851                                                                <br><span>{{option.delivery_time}}</span>
2852                                                            </span>
2853                                                        </label>
2854                                                    </div>
2855                                                </li>
2856                                            </ul>
2857                                            <small ng-if="ShippingStatus.Submitted && !ShippingInfo.OptionId" class="text-danger control-label">
2858                                                Please select a shipping option
2859                                            </small>
2860                                        </div>
2861                                    </div>
2862                                </div>
2863                            </div>
2864                                                    </div>
2865                    </div>
2866                </div>
2867
2868                <div ng-if="showNoShippingRequired()">
2869                    <div class="row">
2870                        <div class="col-xs-12">
2871                            Shipping is not required for any of the items in your cart.
2872                        </div>
2873                    </div>
2874                </div>
2875
2876                <!--                    <div class="row">-->
2877                <!--                        <label class="col-xs-12">-->
2878                <!--                             <input type="checkbox" ng-model="ContactInfo.JoinEmailList" checked> -->
2879                <!--                             <small>Join our email list</small> -->
2880                <!--                        </label>-->
2881                <!--                    </div>-->
2882
2883            </div>
2884        </div>
2885
2886        <!-- Contact Shipping Summary -->
2887
2888        <div ng-show="showSummaries()" class="ng-hide">
2889            <div class="well">
2890                <div class="row">
2891                    <div class="col-xs-6">
2892                        <strong>Contact Information</strong>&nbsp;&nbsp;
2893                        <a href="" ng-click="ShippingEdit()"><small>Change</small></a>
2894                        <br>
2895                        <small>
2896                            {{BillingInfo.Email}}<br>
2897                            {{BillingInfo.Phone}}<br>
2898                        </small>
2899                    </div>
2900                    <div ng-if="GiftMessage.Checked" class="col-xs-6">
2901                        <strong>Gift Message</strong>&nbsp;&nbsp;
2902                        <a href="" ng-click="ShippingEdit()"><small>Change</small></a><br>
2903                        <span><small><strong>This is a gift</strong></small><br></span>
2904                        <span ng-if="GiftMessage.Message"><small>{{GiftMessage.Message}}</small></span>
2905                        <span ng-if="!GiftMessage.Message"><small>There is no message</small></span>
2906                    </div>
2907
2908                    <div ng-if="!isPickup()" class="col-xs-6">
2909                        <strong >Shipping Information</strong>
2910                        <span ng-if="ShippingStatus.Entered && ShippingStatus.Required">
2911                                &nbsp;&nbsp;<a href="" ng-click="ShippingEdit()"><small>Change</small></a>
2912                                <br>
2913                                <small style="text-transform: capitalize;">
2914                                    <span ng-if="ShippingInfo.FirstName || ShippingInfo.LastName">{{ShippingInfo.FirstName}} {{ShippingInfo.LastName}}<br></span>
2915                                    <span ng-if="ShippingInfo.Address1">{{ShippingInfo.Address1}}<br></span>
2916                                    <span ng-if="ShippingInfo.Address2">{{ShippingInfo.Address2}}<br></span>
2917                                    <span ng-if="ShippingInfo.City">{{ShippingInfo.City}},</span> {{ShippingInfo.State}} {{ShippingInfo.Zip}}
2918                                    <span ng-if="ShippingInfo.Country != Region"><br>{{ShippingInfo.Country}}</span>
2919                                </small>
2920                            </span>
2921                        <span ng-if="!ShippingStatus.Required">No shipping required</span>
2922                    </div>
2923                    <div ng-if="isPickup()" class="col-xs-6">
2924                        <strong ng-if="isStorePickup()">Store Pickup Information</strong>
2925                        <strong ng-if="isCurbsidePickup()">Curbside Pickup Information</strong>
2926                        <strong ng-if="isSchoolPickup()">School Delivery Information</strong>
2927                        &nbsp;&nbsp;<a href="" ng-click="ShippingEdit()"><small>Change</small></a>
2928                        <br>
2929                        <small style="text-transform: capitalize;">
2930                            {{ShippingInfo.Option.delivery_time}}
2931                        </small>
2932                    </div>
2933
2934                    <div ng-if="ShippingInfo.Comments" class="col-xs-6">
2935                        <strong>Additional Comments</strong>&nbsp;&nbsp;
2936                        <a href="" ng-click="ShippingEdit()"><small>Change</small></a>
2937                    </div>
2938                </div>
2939            </div>
2940        </div>
2941
2942        <!-- Mobile Summary -->
2943
2944        <div class="panel panel-default visible-xs-block">
2945            <div ng-if="StatusInfo.Initializing" class="panel-body">
2946                <i class="fa fa-spinner fa-pulse fa-2x"></i>
2947            </div>
2948            <table ng-if="!StatusInfo.Initializing" class="table">
2949                <tr>
2950                    <td colspan="2">
2951                        Subtotal
2952                        &nbsp;&nbsp;<small><a ng-click="StatusInfo.CouponShow = !StatusInfo.CouponShow" href="">Enter Coupon</a> | <a ng-click="StatusInfo.CouponShow = !StatusInfo.CouponShow" href="">Gift Card</a></small>
2953                    </td>
2954                    <td colspan="2" align="right" class="h4" data-cy="web-checkout-summary-subtotal"><strong>{{SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></td>
2955                </tr>
2956                <tr ng-if="StatusInfo.CouponShow">
2957                    <td colspan="2">
2958                            <span id="gift-card-coupon-msgs">
2959                                <!-- Messages -->
2960                                <span id="gift-card-coupon-error-msg" ng-cloak ng-show="shouldShowGiftCardCouponErrorMsg()"><i class="fa fa-ban"></i>&nbsp;{{giftCardCouponMsg}}</span>
2961                                <span id="gift-card-applied-msg" ng-cloak ng-show="shouldShowGiftCardAppliedMsg()" ><i class="fa fa-check"></i>&nbsp;Gift Card Applied</span>
2962                                <span id="coupon-applied-msg" ng-cloak ng-show="shouldShowCouponAppliedMsg()" ><i class="fa fa-check"></i>&nbsp;Coupon Applied</span>
2963                                <!-- Loading -->
2964                                <span ng-cloak ng-show="giftCardOrCouponDataState == DATA_STATE_LOADING" class="gc-coupon-data-loading"><i class="fa fa-spinner fa-spin"></i></span>
2965                            </span>
2966                        <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;">
2967                    </td>
2968                    <td id="gift-card-coupon-code-apply-cell" colspan="2" style="vertical-align: bottom;">
2969                        <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>
2970                    </td>
2971                </tr>
2972                <tbody ng-if="CartData.Coupons.length > 0" ng-repeat="coupon in CartData.Coupons">
2973                <tr>
2974                    <td colspan="2">
2975                        Discount
2976                        {{coupon.title}}
2977                        &nbsp;&nbsp;<a ng-click="removeCoupon(coupon.couponId)" href="">[remove]</a>
2978                    </td>
2979                    <td colspan="2" align="right">
2980                        <strong>-{{coupon.discount | currency:InitInfo.CurrencySymbol2}}</strong>
2981                    </td>
2982                </tr>
2983                </tbody>
2984                <tr ng-if="ShippingStatus.Valid && ShippingStatus.Required">
2985                    <td colspan="2">
2986                        Shipping {{ShippingInfo.Option.name}}<br>
2987                        <small>{{ShippingInfo.Option.delivery_time}}</small>
2988                    </td>
2989                    <td ng-if="!isTaxInclusive()" colspan="2" align="right">
2990                        <strong>{{ShippingInfo.Option.price | currency:InitInfo.CurrencySymbol2}}</strong>
2991                    </td>
2992                    <td ng-if="isTaxInclusive()" colspan="2" align="right">
2993                        <strong>{{getGstShippingTotal() | currency:InitInfo.CurrencySymbol2}}</strong>
2994                    </td>
2995                </tr>
2996                <tr>
2997                    <td colspan="2">
2998                        Taxes
2999                    </td>
3000                    <td colspan="2" align="right" data-cy="web-checkout-summary-taxes">
3001                        <span ng-if="StatusInfo.DynamicTaxAddressError" class="dynamic_tax_error">{{StatusInfo.DynamicTaxAddressError}}</span>
3002                        <strong ng-if="!StatusInfo.DynamicTaxAddressError">{{Taxes | currency:InitInfo.CurrencySymbol2}}</strong>
3003                    </td>
3004                </tr>
3005                <tr ng-if="ShippingTaxes">
3006                    <td colspan="2">
3007                        Shipping Taxes
3008                    </td>
3009                    <td colspan="2" align="right">
3010                        <strong>{{ShippingTaxes | currency:InitInfo.CurrencySymbol2}}</strong>
3011                    </td>
3012                </tr>
3013                <tbody ng-if="CartData.GiftCards.length > 0" ng-repeat="gc in CartData.GiftCards">
3014                <tr>
3015                    <td colspan="2">
3016                        Gift Card <a href="" ng-click="removeGiftCard(gc.id)">[remove]</a><br>
3017                        <small>{{gc.number}}</small>
3018                    </td>
3019                    <td colspan="2" align="right">
3020                        <strong>-{{gc.Amount | currency:InitInfo.CurrencySymbol2}}</strong>
3021                    </td>
3022                </tr>
3023                </tbody>
3024                <tr>
3025                    <td colspan="2">
3026                        Total
3027                    </td>
3028                    <td ng-if="!showAsGST()" colspan="2" align="right" class="h4" data-cy="web-checkout-summary-total">
3029                        <strong>{{Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong>
3030                    </td>
3031                    <td ng-if="showAsGST()" style="text-align: right;min-width: 95px;">
3032                        <strong>{{GST_Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong>
3033                        <span ng-if="GST_Due > 0 && GST_Taxes > 0 && isShippingCountryGST()" class="cartTableSubHeader"><br/>{{getGstTaxes() | currency:InitInfo.CurrencySymbol2}} GST included in total</span>
3034                    </td>
3035                </tr>
3036            </table>
3037        </div>
3038
3039        <!-- Billing Edit -->
3040
3041        <div ng-form="billingForm" ng-class="{'panel panel-default' : ((showTerms() || isShippingEntered() || digitalOrder) && !isBNPLEnabled())}" ng-show="showBillingSection()">
3042            <div ng-if="isBNPLEnabled()">
3043                <div ng-show="showRainProcessing()" style="margin-bottom: 20px;">
3044                    <payment-methods
3045                        is-affirm-enabled="isBNPLEnabled('affirm')"
3046                        is-afterpay-enabled="isBNPLEnabled('afterpay')"
3047                        is-klarna-enabled="isBNPLEnabled('klarna')"
3048                        is-paypal-enabled="allowPayPalCheckout() && !isCardOnFileNeeded()"
3049                        is-pay-at-pick-up-enabled="showPaymentOptions()"
3050                        amount="getBNPLAmount()"
3051                        due="Due"
3052                        currency="getBNPLCurrency()"
3053                        currency-symbol="InitInfo.CurrencySymbol2"
3054                        country="getBNPLCountry()"
3055                        merchant-country="getBNPLMerchantCountry()"
3056                        model="stripeBNPLModel"
3057                        on-payment-method-changed="onPaymentMethodChanged"
3058                        on-ready="initRainProcessing"
3059                    ></payment-methods>
3060                </div>
3061
3062                <div ng-show="showRainProcessing() && showBillingSection() && !isPayAtPickup()" style="margin-bottom: 20px;">
3063                    <billing-address
3064                        show-billing-address="showBillingAddress()"
3065                        is-shipping-required="isShippingRequired()"
3066                    ></billing-address>
3067                </div>
3068
3069                <div ng-if="showTerms()">
3070                    <div ng-class="FormFieldErrorClass('billingForm', 'TAndC', billingForm)" style='padding-left: 15px;'>
3071                        <input required id="TAndC" data-cy="web-checkout-terms-agree" name="TAndC" type="checkbox" ng-model="BillingInfo.TermsAgree">
3072                        I Agree to the Terms and Conditions (<a href="javascript:void(0);" ng-click="TermsShow()">click here to view</a>)
3073                        <br>
3074
3075                        <label ng-if="FormFieldError('billingForm', 'TAndC', billingForm)" class="control-label">
3076                            Please accept the Terms and Conditions before continuing.
3077                        </label>
3078                    </div>
3079                </div>
3080            </div>
3081
3082            <div ng-if="!isBNPLEnabled()" class="panel-body tab-options">
3083                <div ng-show="showBillingForm()" class="ng-hide">
3084                    <div ng-show="showPaymentOptions()">
3085                        <div>
3086                            <label>Payment Options</label>
3087                        </div>
3088
3089                        <!-- Nav tabs -->
3090                        <ul class="nav nav-pills nav-justified" role="tablist">
3091                            <li role="presentation" class="active">
3092                                <a href="#payNow" aria-controls="payNow" role="tab" data-toggle="pill" ng-click="payWithCardSelected()" id="payNowTab">
3093                                    <span class="fa fa-credit-card fa-fw"></span> Pay Now
3094                                </a>
3095                            </li>
3096                            <li role="presentation">
3097                                <a href="#payAtPickup" aria-controls="payAtPickup" role="tab" data-toggle="pill" ng-click="payAtPickupSelected()" id="payAtPickupTab">
3098                                    <span class="fa fa-truck fa-fw"></span> Pay at Pickup
3099                                </a>
3100                            </li>
3101                        </ul>
3102                    </div>
3103
3104                    <div class="tab-content" style="margin-top: 15px;" ng-show="showPaymentSection()">
3105                        <div role="tabpanel" class="tab-pane fade in active" id="payNow">
3106                            <div ng-show="!isPayPal() || digitalOrder">
3107                                <div class="row">
3108                                    <div class="col-xs-12">
3109                                        <label>Billing Address</label>
3110                                        <!-- Validation Messages -->
3111                                        <span ng-if="BillingStatus.MessagesShow && BillingStatus.NotValidMessages.length > 0" class="text-danger">
3112                                            <span ng-repeat="bm in BillingStatus.NotValidMessages">
3113                                                <br>{{bm}}
3114                                            </span>
3115                                        </span>
3116                                    </div>
3117                                </div>
3118
3119                                <div ng-if="isShippingRequired()" ng-hide="isPickup() || HideBillingSameAsShipping" class="row">
3120                                    <label class="col-xs-12">
3121                                        <input type="checkbox" data-cy="web-checkout-billing-same-as-shipping" ng-model="BillingInfo.AddressSameAsShipping" ng-click="BillingVerify()">
3122                                        <small>My billing address is the same as my shipping address</small>
3123                                    </label>
3124                                </div>
3125
3126                                <div ng-show="showBillingAddress()">
3127                                    <div class="row">
3128                                        <div ng-class="FormFieldErrorClass('billingForm', 'billing_first', billingForm)" class="col-sm-6">
3129                                            <input required
3130                                                   capitalize-first
3131                                                   id="billing_first" data-cy="web-checkout-billing-first-name"
3132                                                   name="billing_first"
3133                                                   type="text"
3134                                                   ng-model="BillingInfo.FirstName"
3135                                                   class="form-control"
3136                                                   placeholder="First Name"
3137                                                   ng-disabled="disableBillingFields()"
3138                                                   ng-focus="InitToolTip($event)"
3139                                                   data-toggle="tooltip"
3140                                                   title="First Name">
3141                                            <label ng-if="FormFieldError('billingForm', 'billing_first', billingForm)" class="control-label error-label">
3142                                                Please enter a first name
3143                                            </label>
3144                                        </div>
3145                                        <div ng-class="FormFieldErrorClass('billingForm', 'billing_last', billingForm)" class="col-sm-6">
3146                                            <input required
3147                                                   capitalize-first
3148                                                   id="billing_last" data-cy="web-checkout-billing-last-name"
3149                                                   name="billing_last"
3150                                                   type="text"
3151                                                   ng-model="BillingInfo.LastName"
3152                                                   class="form-control"
3153                                                   placeholder="Last Name"
3154                                                   ng-disabled="disableBillingFields()"
3155                                                   ng-focus="InitToolTip($event)"
3156                                                   data-toggle="tooltip"
3157                                                   title="Last Name">
3158                                            <label ng-if="FormFieldError('billingForm', 'billing_last', billingForm)" class="control-label error-label">
3159                                                Please enter a last name
3160                                            </label>
3161                                        </div>
3162                                    </div>
3163                                    <div class="row">
3164                                        <div ng-class="FormFieldErrorClass('billingForm', 'billing_address1', billingForm)" class="col-sm-6">
3165                                            <input required
3166                                                   capitalize-first
3167                                                   id="billing_address1" data-cy="web-checkout-billing-address1"
3168                                                   name="billing_address1"
3169                                                   type="text"
3170                                                   ng-model="BillingInfo.Address1"
3171                                                   class="form-control"
3172                                                   placeholder="Address Line 1"
3173                                                   ng-disabled="disableBillingFields()"
3174                                                   ng-focus="InitToolTip($event)"
3175                                                   data-toggle="tooltip"
3176                                                   title="Address Line 1">
3177                                            <label ng-if="FormFieldError('billingForm', 'billing_address1', billingForm)" class="control-label error-label">
3178                                                Please enter a street address
3179                                            </label>
3180                                        </div>
3181                                        <div class="col-sm-6">
3182                                            <input capitalize-first
3183                                                   id="billing_address2" data-cy="web-checkout-billing-address2"
3184                                                   name="billing_address2"
3185                                                   type="text"
3186                                                   ng-model="BillingInfo.Address2"
3187                                                   class="form-control"
3188                                                   placeholder="Address Line 2"
3189                                                   ng-disabled="disableBillingFields()"
3190                                                   ng-focus="InitToolTip($event)"
3191                                                   data-toggle="tooltip"
3192                                                   title="Address Line 2">
3193                                        </div>
3194                                    </div>
3195                                    <div class="row">
3196                                        <div ng-class="FormFieldErrorClass('billingForm', 'billing_city', billingForm)" class="col-sm-6">
3197                                            <input required
3198                                                   capitalize-first
3199                                                   id="billing_city" data-cy="web-checkout-billing-city"
3200                                                   name="billing_city"
3201                                                   type="text"
3202                                                   ng-model="BillingInfo.City"
3203                                                   class="form-control"
3204                                                   placeholder="City"
3205                                                   ng-disabled="disableBillingFields()"
3206                                                   ng-focus="InitToolTip($event)"
3207                                                   data-toggle="tooltip"
3208                                                   title="City">
3209                                            <label ng-if="FormFieldError('billingForm', 'billing_city', billingForm)" class="control-label error-label">
3210                                                Please enter a city
3211                                            </label>
3212                                        </div>
3213                                        <div ng-if="InitInfo.Regions[BillingInfo.CountryKey] && BillingInfo.RegionsCount > 0" ng-class="FormFieldErrorClass('billingForm', 'billing_state', billingForm)" class="col-sm-6">
3214                                            <select required
3215                                                    id="billing_state" data-cy="web-checkout-billing-state"
3216                                                    name="billing_state"
3217                                                    ng-change="BillingOptionsGet()"
3218                                                    ng-model="BillingInfo.State"
3219                                                    ng-disabled="disableBillingFields()"
3220                                                    class="form-control">
3221                                                <option value="">Select {{BillingInfo.StateOrProvince}}</option>
3222                                                <option ng-repeat="(key, value) in InitInfo.Regions[BillingInfo.CountryKey]" value="{{key}}">{{value}}</option>
3223                                            </select>
3224                                            <label ng-if="FormFieldError('billingForm', 'billing_state', billingForm)" class="control-label error-label">
3225                                                Please select a {{BillingInfo.StateOrProvince}}
3226                                            </label>
3227                                        </div>
3228                                        <div ng-if="!InitInfo.Regions[BillingInfo.CountryKey]" ng-class="FormFieldErrorClass('billingForm', 'billing_state', billingForm)" class="col-sm-6">
3229                                            <input required
3230                                                   capitalize-first
3231                                                   id="billing_state" data-cy="web-checkout-billing-state"
3232                                                   name="billing_state"
3233                                                   type="text"
3234                                                   ng-change="BillingOptionsGet()"
3235                                                   ng-model="BillingInfo.State"
3236                                                   class="form-control"
3237                                                   placeholder="State/Province"
3238                                                   ng-disabled="disableBillingFields()"
3239                                                   ng-focus="InitToolTip($event)"
3240                                                   data-toggle="tooltip"
3241                                                   title="State/Province">
3242                                            <label ng-if="FormFieldError('billingForm', 'billing_state', billingForm)" class="control-label error-label">
3243                                                Please enter the State/Province
3244                                            </label>
3245                                        </div>
3246                                    </div>
3247                                    <div class="row">
3248                                        <div ng-if="InitInfo.InternationalEnabled" ng-class="FormFieldErrorClass('billingForm', 'billing_country', billingForm)" class="col-sm-6">
3249                                            <select required
3250                                                    id="billing_country" data-cy="web-checkout-billing-country"
3251                                                    name="billing_country"
3252                                                    ng-change="changeBilling
3252Country()"
3253                                                    ng-model="BillingInfo.CountryKey"
3254                                                    ng-disabled="disableBillingFields()"
3255                                                    class="form-control"
3256                                            >
3257                                                <option value="">Select Country</option>
3258                                                <option ng-repeat="(key, value) in InitInfo.Countries" value="{{key}}">{{value}}</option>
3259                                            </select>
3260                                            <label ng-if="FormFieldError('billingForm', 'billing_country', billingForm)" class="control-label error-label">
3261                                                Please select a country
3262                                            </label>
3263                                        </div>
3264                                        <div ng-class="FormFieldErrorClass('billingForm', 'billing_zip', billingForm)" class="col-sm-6">
3265                                            <input required
3266                                                   id="billing_zip" data-cy="web-checkout-billing-zip"
3267                                                   name="billing_zip"
3268                                                   type="text"
3269                                                   ng-change="BillingOptionsGet()"
3270                                                   ng-model="BillingInfo.Zip"
3271                                                   class="form-control"
3272                                                   style="max-width: 125px;"
3273                                                   placeholder="{{BillingInfo.ZipOrPostal}}"
3274                                                   ng-disabled="disableBillingFields()"
3275                                                   ng-focus="InitToolTip($event)"
3276                                                   data-toggle="tooltip"
3277                                                   title="{{BillingInfo.ZipOrPostal}}">
3278                                            <label ng-if="FormFieldError('billingForm', 'billing_zip', billingForm)" class="control-label error-label">
3279                                                Please enter a {{BillingInfo.ZipOrPostal}}
3280                                            </label>
3281                                        </div>
3282                                    </div>
3283                                </div>
3284
3285                                <div ng-if="showEnrollAutoPay()" class="row">
3286                                    <label class="col-xs-12">Enroll in autopay and never miss a payment!</label>
3287                                    <label class="col-xs-12">
3288                                        <input type="checkbox" ng-model="BillingInfo.enrollAutoPay" ng-disabled="isSubscriptionPayment()">
3289                                        <small>Add card on file and enroll in autopay</small>
3290                                    </label>
3291                                </div>
3292
3293                                <div ng-if="showCCPayment()">
3294                                    <div class="row">
3295                                        <div class="col-xs-12">
3296                                            <label>Secure Payment</label>
3297                                            <!-- Validation Messages -->
3298                                            <span ng-if="CardStatus.MessagesShow && CardStatus.NotValidMessages.length > 0" class="text-danger">
3299                                                <span ng-repeat="cm in CardStatus.NotValidMessages"><br>{{cm}}</span>
3300                                            </span>
3301                                        </div>
3302                                    </div>
3303
3304                                    <div class="row">
3305                                        <div ng-class="FormFieldErrorClass('billingForm', 'cc_number', billingForm)" class="col-sm-6 col-md-7">
3306                                            <input required
3307                                                   id="cc_number"
3308                                                   name="cc_number"
3309                                                   type="text"
3310                                                   ng-model="CardInfo.CC"
3311                                                   ng-blur="CCBlur('CC')"
3312                                                   class="form-control"
3313                                                   placeholder="Credit Card Number"
3314                                                   ng-focus="InitToolTip($event)"
3315                                                   data-toggle="tooltip"
3316                                                   title="Credit Card Number">
3317                                            <label ng-if="FormFieldError('billingForm', 'cc_number', billingForm)" class="control-label error-label">
3318                                                {{CardStatus.Message}}
3319                                            </label>
3320                                        </div>
3321                                        <div class="col-sm-6 col-md-5 hidden-xs">
3322                                            <label class="control-label" style="padding-top: 0px;">
3323                                                <i ng-if="InitInfo.CheckoutSettings.VisaAccepted" class="fa fa-cc-visa fa-2x" ng-class="Class.visa"></i>
3324                                                <i ng-if="InitInfo.CheckoutSettings.MCAccepted" class="fa fa-cc-mastercard fa-2x" ng-class="Class.mastercard"></i>
3325                                                <i ng-if="InitInfo.CheckoutSettings.AmexAccepted" class="fa fa-cc-amex fa-2x" ng-class="Class.amex"></i>
3326                                                <i ng-if="InitInfo.CheckoutSettings.DiscAccepted" class="fa fa-cc-discover fa-2x" ng-class="Class.discover"></i>
3327                                            </label>
3328                                        </div>
3329                                    </div>
3330
3331                                    <div class="row row-grid">
3332                                        <div ng-class="FormFieldErrorClass('billingForm', 'cc_exp_month', billingForm)" class="col-xs-6 col-sm-4">
3333                                            <select required
3334                                                    id="cc_exp_month"
3335                                                    name="cc_exp_month"
3336                                                    ng-model="CardInfo.ExpMonth"
3337                                                    ng-blur="ExpBlur('Expiration')"
3338                                                    class="form-control">
3339                                                <option value="">Exp Month</option>
3340                                                <option ng-repeat="month in ExpMonths" value="{{month}}">{{month}}</option>
3341                                            </select>
3342                                            <label ng-if="FormFieldError('billingForm', 'cc_exp_month', billingForm)" class="control-label error-label">
3343                                                Select expiration month
3344                                            </label>
3345                                        </div>
3346                                        <div ng-class="FormFieldErrorClass('billingForm', 'cc_exp_year', billingForm)" class="col-xs-6 col-sm-4">
3347                                            <select required
3348                                                    id="cc_exp_year"
3349                                                    name="cc_exp_year"
3350                                                    ng-model="CardInfo.ExpYear"
3351                                                    ng-blur="ExpBlur('Expiration')"
3352                                                    class="form-control">
3353                                                <option value="">Exp Year</option>
3354                                                <option ng-repeat="year in ExpYears" value="{{year}}">{{year}}</option>
3355                                            </select>
3356                                            <label ng-if="FormFieldError('billingForm', 'cc_exp_year', billingForm)" class="control-label error-label">
3357                                                Select expiration year
3358                                            </label>
3359                                        </div>
3360                                        <div ng-class="FormFieldErrorClass('billingForm', 'cc_cvv', billingForm)" class="col-xs-6 col-sm-4">
3361                                            <input required
3362                                                   id="cc_cvv"
3363                                                   name="cc_cvv"
3364                                                   type="text"
3365                                                   ng-model="CardInfo.CVV"
3366                                                   class="form-control"
3367                                                   placeholder="CVV"
3368                                                   ng-focus="InitToolTip($event)"
3369                                                   data-toggle="tooltip"
3370                                                   title="CVV">
3371                                            <label ng-if="FormFieldError('billingForm', 'cc_cvv', billingForm)" class="control-label error-label">
3372                                                Please enter the CVV
3373                                            </label>
3374                                        </div>
3375                                    </div>
3376                                </div>
3377
3378                                <div ng-show="showRainProcessing()" style="padding-top: 15px; padding-bottom: 15px;">
3379                                    <div class="row">
3380                                        <div class="col-xs-12">
3381                                            <label>Secure Payment</label>
3382                                            <!-- Validation Messages -->
3383                                            <span ng-if="CardStatus.MessagesShow && CardStatus.NotValidMessages.length > 0" class="text-danger">
3384                                                <span ng-repeat="cm in CardStatus.NotValidMessages"><br>{{cm}}</span>
3385                                            </span>
3386                                        </div>
3387                                    </div>
3388                                    <div class="row" ng-if="isSavedCardsFlagEnabled() && paymentType === 'AddCard'">
3389                                        <div class="col-xs-12">
3390                                            <div class="form-group nickname-group">
3391                                                <label for="cc-nickname" class="nickname-label">
3392                                                    <span>Card Nickname</span>
3393                                                    <span class="nickname-optional">(Optional)</span>
3394                                                </label>
3395                                                <input
3396                                                    ng-model="CardInfo.nickname"
3397                                                    id="cc-nickname"
3398                                                    type="text"
3399                                                    class="form-control nickname-input"
3400                                                    placeholder="Enter a card name"
3401                                                    maxlength="60"
3402                                                />
3403                                            </div>
3404                                        </div>
3405                                    </div>
3406                                    <div class="row">
3407                                        <div class="col-12 col-sm-6">
3408                                            <div class="form-group">
3409                                                <label for="card-number">Card Number</label>
3410                                                <div class="payment-wrapper">
3411                                                    <div id="card-number" class="form-control" style="padding-top: 7px;"><!-- A Stripe Element will be inserted here. --></div>
3412                                                    <div
3413                                                        ng-if="formData.selectedCustomerCardId"
3414                                                        class="payment-overlay"
3415                                                        ng-click="clearSavedCardSelection()"
3416                                                    ></div>
3417                                                </div>
3418                                            </div>
3419                                        </div>
3420                                        <div class="col-6 col-sm-3">
3421                                            <div class="form-group">
3422                                                <label for="card-exp">Expires</label>
3423                                                <div class="payment-wrapper">
3424                                                    <div id="card-exp" class="form-control  stripe-input" style="padding-top: 7px;"><!-- A Stripe Element will be inserted here. --></div>
3425                                                    <div
3426                                                        ng-if="formData.selectedCustomerCardId"
3427                                                        class="payment-overlay"
3428                                                        ng-click="clearSavedCardSelection()"
3429                                                    ></div>
3430                                                </div>
3431                                            </div>
3432                                        </div>
3433                                        <div class="col-6 col-sm-3">
3434                                            <div class="form-group">
3435                                                <label for="card-cvv">Security Code</label>
3436                                                <div class="payment-wrapper">
3437                                                    <div id="card-cvv" class="form-control" style="padding-top: 7px;"><!-- A Stripe Element will be inserted here. --></div>
3438                                                    <div
3439                                                        ng-if="formData.selectedCustomerCardId"
3440                                                        class="payment-overlay"
3441                                                        ng-click="clearSavedCardSelection()"
3442                                                    ></div>
3443                                                </div>
3444                                            </div>
3445                                        </div>
3446                                    </div>
3447                                    <div class="row" ng-if="isSavedCardsAllowed()">
3448                                        <div class="col-xs-12 divider-row">
3449                                            <div class="divider-line"></div>
3450                                            <span class="divider-text">or</span>
3451                                            <div class="divider-line"></div>
3452                                        </div>
3453                                    </div>
3454                                    <div class="row" ng-if="isSavedCardsAllowed()">
3455                                        <div class="col-xs-12">
3456                                            <div class="saved-cards-container">
3457                                                <div class="saved-cards-header">
3458                                                    <div class="saved-cards-col-name">Saved Cards</div>
3459                                                    <div class="saved-cards-col-exp">Expires On</div>
3460                                                </div>
3461
3462                                                <div ng-repeat="c in customerCards"
3463                                                     class="saved-card-row"
3464                                                     ng-class="{'saved-card-selected': formData.selectedCustomerCardId === c.pos_customer_card_id}"
3465                                                >
3466                                                    <label class="saved-card-label">
3467                                                        <input type="radio"
3468                                                               name="saved-card-rain"
3469                                                               ng-model="formData.selectedCustomerCardId" data-cy="web-checkout-saved-card"
3470                                                               ng-value="c.pos_customer_card_id"
3471                                                               ng-change="onSelectSavedCard(c)">
3472                                                        <div class="saved-card-info">
3473                                                            <div class="saved-card-title">
3474                                                                {{ c.nickname || c.card_type }}
3475                                                                <span class="saved-card-last4"> - (…{{c.last_4_digits}})</span>
3476                                                                <span class="saved-card-exp" ng-if="c.exp_month">{{getFormattedExp(c)}}</span>
3477                                                            </div>
3478                                                        </div>
3479                                                    </label>
3480
3481                                                    <div class="saved-card-expdate">
3482                                                        {{ getFormattedExpirationDate(c.expiration_mmyy) }}
3483                                                    </div>
3484                                                </div>
3485                                            </div>
3486                                        </div>
3487                                    </div>
3488                                </div>
3489
3490                                <div ng-show="showQuiltProcessing()" id="adyen-container" data-cy="web-checkout-adyen-container" style="padding-top: 15px; padding-bottom: 15px;">
3491                                    <div class="row">
3492                                        <div class="col-xs-12">
3493                                            <label>Secure Payment</label>
3494                                            <!-- Validation Messages -->
3495                                            <span ng-if="CardStatus.MessagesShow && CardStatus.NotValidMessages.length > 0" class="text-danger">
3496                                                <span ng-repeat="cm in CardStatus.NotValidMessages"><br>{{cm}}</span>
3497                                            </span>
3498                                        </div>
3499                                    </div>
3500                                    <div class="row" ng-if="isSavedCardsFlagEnabled() && paymentType === 'AddCard'">
3501                                        <div class="col-xs-12">
3502                                            <div class="form-group nickname-group">
3503                                                <label for="cc-nickname" class="nickname-label">
3504                                                    <span>Card Nickname</span>
3505                                                    <span class="nickname-optional">(Optional)</span>
3506                                                </label>
3507                                                <input
3508                                                    ng-model="CardInfo.nickname"
3509                                                    id="cc-nickname"
3510                                                    type="text"
3511                                                    class="form-control nickname-input"
3512                                                    placeholder="Enter a card name"
3513                                                    maxlength="60"
3514                                                />
3515                                            </div>
3516                                        </div>
3517                                    </div>
3518                                    <div class="row">
3519                                        <div class="col-12 col-sm-6">
3520                                            <div class="form-group">
3521                                                <label for="card-number">Card Number</label>
3522                                                <div class="payment-wrapper">
3523                                                    <div id="cc-number" data-cse="encryptedCardNumber" class="form-control" style="padding-top: 7px;"><!-- A Adyen Element will be inserted here. --></div>
3524                                                    <div
3525                                                        ng-if="formData.selectedCustomerCardId"
3526                                                        class="payment-overlay"
3527                                                        ng-click="clearSavedCardSelection()"
3528                                                    ></div>
3529                                                </div>
3530                                            </div>
3531                                        </div>
3532                                        <div class="col-6 col-sm-3">
3533                                            <div class="form-group">
3534                                                <label for="card-exp">Expires</label>
3535                                                <div class="payment-wrapper">
3536                                                    <div id="cc-exp" data-cse="encryptedExpiryDate" class="form-control" style="padding-top: 7px;"><!-- A Adyen Element will be inserted here. --></div>
3537                                                    <div
3538                                                        ng-if="formData.selectedCustomerCardId"
3539                                                        class="payment-overlay"
3540                                                        ng-click="clearSavedCardSelection()"
3541                                                    ></div>
3542                                                </div>
3543                                            </div>
3544                                        </div>
3545                                        <div class="col-6 col-sm-3">
3546                                            <div class="form-group">
3547                                                <label for="card-cvv">CVC</label>
3548                                                <div class="payment-wrapper">
3549                                                    <div id="cc-cvv" data-cse="encryptedSecurityCode" class="form-control" style="padding-top: 7px;"><!-- A Adyen Element will be inserted here. --></div>
3550                                                    <div
3551                                                        ng-if="formData.selectedCustomerCardId"
3552                                                        class="payment-overlay"
3553                                                        ng-click="clearSavedCardSelection()"
3554                                                    ></div>
3555                                                </div>
3556                                            </div>
3557                                        </div>
3558                                    </div>
3559
3560                                    <div class="row" ng-if="isSavedCardsAllowed()">
3561                                        <div class="col-xs-12 divider-row">
3562                                            <div class="divider-line"></div>
3563                                            <span class="divider-text">or</span>
3564                                            <div class="divider-line"></div>
3565                                        </div>
3566                                    </div>
3567                                    <div class="row" ng-if="isSavedCardsAllowed()">
3568                                        <div class="col-xs-12">
3569                                            <div class="saved-cards-container">
3570                                                <div class="saved-cards-header">
3571                                                    <div class="saved-cards-col-name">Saved Cards</div>
3572                                                    <div class="saved-cards-col-exp">Expires On</div>
3573                                                </div>
3574
3575                                                <div ng-repeat="c in customerCards"
3576                                                     class="saved-card-row"
3577                                                     ng-class="{'saved-card-selected': formData.selectedCustomerCardId === c.pos_customer_card_id}"
3578                                                >
3579                                                    <label class="saved-card-label">
3580                                                        <input type="radio"
3581                                                               name="saved-card-adyen"
3582                                                               ng-model="formData.selectedCustomerCardId" data-cy="web-checkout-saved-card"
3583                                                               ng-value="c.pos_customer_card_id"
3584                                                               ng-change="onSelectSavedCard(c)">
3585                                                        <div class="saved-card-info">
3586                                                            <div class="saved-card-title">
3587                                                                {{ c.nickname || c.card_type }}
3588                                                                <span class="saved-card-last4"> - (…{{c.last_4_digits}})</span>
3589                                                                <span class="saved-card-exp" ng-if="c.exp_month">{{getFormattedExp(c)}}</span>
3590                                                            </div>
3591                                                        </div>
3592                                                    </label>
3593
3594                                                    <div class="saved-card-expdate">
3595                                                        {{ getFormattedExpirationDate(c.expiration_mmyy) }}
3596                                                    </div>
3597                                                </div>
3598                                            </div>
3599                                        </div>
3600                                    </div>
3601                                                                    </div>
3602                            </div>
3603
3604                            <div ng-if="isPayPal() && !digitalOrder" style="text-align: center; margin-top: 15px;">
3605                                <br>
3606                            </div>
3607                        </div>
3608
3609                        <div role="tabpanel" class="tab-pane fade in active" id="payAtPickup" ng-if="isPayAtPickup()">
3610                            <div style="text-align: center; margin-top: 15px;">
3611                                <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>
3612                            </div>
3613                        </div>
3614                    </div>
3615                </div>
3616
3617                <!-- Terms and Conditions -->
3618                <div ng-if="showTerms()" class="row">
3619                    <div ng-class="FormFieldErrorClass('billingForm', 'TAndC', billingForm)" class="col-xs-12">
3620                        <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>)
3621                        <br><label ng-if="FormFieldError('billingForm', 'TAndC', billingForm)" class="control-label">Please accept the Terms and Conditions before continuing.</label>
3622                    </div>
3623                </div>
3624            </div>
3625        </div>
3626
3627        <div ng-if="areTermsEnabled() && !showBillingSection()" class="panel-body tab-options terms-fallback-panel">
3628            <div ng-class="FormFieldErrorClass('billingForm', 'TAndC', billingForm)">
3629                <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>)
3630                <br><label ng-if="FormFieldError('billingForm', 'TAndC', billingForm)" class="control-label">Please accept the Terms and Conditions before continuing.</label>
3631            </div>
3632        </div>
3633
3634        <div ng-if="showTerms()" id="TermModal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
3635            <div class="modal-dialog" style="width: 100%; max-width: 850px;">
3636                <div class="modal-content">
3637                    <div class="modal-header">
3638                        <div class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i></div>
3639                        <h4 class="modal-title">Terms and Conditions</h4>
3640                    </div>
3641                    <div class="modal-body">
3642                        <span ng-if="StatusInfo.TermsProcessing"><i class="fa fa-spinner fa-pulse"></i></span>
3643                        <div id="TermsAndC"></div>
3644                    </div>
3645                </div>
3646            </div>
3647        </div>
3648
3649        <!-- Billing Summary -->
3650
3651        <div ng-show="showBillingSummary()" class="panel panel-default ng-hide">
3652            <div class="panel-body" style="background-color: #ececed;">
3653                <div class="row">
3654                    <div class="col-xs-6">
3655                        <div ng-if="!isPayPal()">
3656                            <strong>Billing Address</strong>&nbsp;&nbsp;
3657                            <a href="" ng-click="BillingEdit()"><small>Change</small></a>
3658                            <br>
3659                            <span ng-if="!isPayAtPickup()">
3660                                <span ng-if="BillingInfo.FirstName || BillingInfo.LastName">{{BillingInfo.FirstName}} {{BillingInfo.LastName}}<br></span>
3661                                <span ng-if="BillingInfo.Address1">{{BillingInfo.Address1}}<br></span>
3662                                <span ng-if="BillingInfo.Address2">{{BillingInfo.Address2}}<br></span>
3663                                <span ng-if="BillingInfo.City || BillingInfo.State || BillingInfo.Zip">{{BillingInfo.City}}, {{BillingInfo.State}} {{BillingInfo.Zip}}</span>
3664                                <span ng-if="BillingInfo.Country != Region"><br>{{BillingInfo.Country}}</span>
3665                            </span>
3666                        </div>
3667                        <span ng-if="isPayAtPickup()">
3668                            Pay at Pickup<br>
3669                            Your balance of {{Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}} can be paid at the store when you pickup your item(s).
3670                        </span>
3671                        <div ng-if="isPayPal()">
3672                            <strong>Payment Information</strong>&nbsp;&nbsp;
3673                            <a href="" ng-click="BillingEdit()"><small>Change</small></a>
3674                        </div>
3675                    </div>
3676                    <div class="col-xs-6" ng-if="showPaymentSummary()">
3677                        <strong>Payment Information</strong>&nbsp;&nbsp;
3678                        <a href="" ng-click="BillingEdit()"><small>Change</small></a>
3679                        <br>
3680                        <small>
3681                            <span ng-if="CardInfo.CCMasked">{{CardInfo.CCMasked}}<br></span>
3682                            <span ng-if="CardInfo.ExpMonth || CardInfo.ExpYear">{{CardInfo.ExpMonth}}/{{CardInfo.ExpYear}}<br></span>
3683                            <span ng-if="CardInfo.CVV">{{CardInfo.CVV}}</span>
3684                        </small>
3685                    </div>
3686                </div>
3687            </div>
3688        </div>
3689
3690        <!-- Buttons -->
3691
3692        <div class="row row-grid">
3693                <div ng-show="showCaptcha === true" class="col-xs-12 col-md-6">
3694                    <div class="g-recaptcha2" data-sitekey="6LcM-AItAAAAAKBp9tFsqjcPCF0DhG4ZlRbyay8v" data-callback="correctCaptcha"></div>
3695                </div>
3696            <div class="col-xs-12" ng-class="{'col-md-6': showCaptcha}">
3697                <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">
3698                    <span>Place Your Order &nbsp; <i class="button-icon-right fa fa-caret-right"></i></span>
3699                </button>
3700                <div ng-if="CartStatus.Valid && isPayPal() && !isFree() && !isProcessing() && !checkFlagForSubscriptionOnly()">
3701                    <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;" />
3702                    <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;" />
3703                    <button ng-if="!skipBilling() && !isBillingDone()" ng-click="checkCaptcha()" type="button" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-continue-button">
3704                        Continue
3705                    </button>
3706                </div>
3707                <button type="button" ng-if="showBillingInitiallyNeededButton()" ng-click="checkCaptcha()" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-continue-button">
3708                    Continue
3709                </button>
3710                <button type="button" ng-if="showCheckoutButton()" ng-click="CheckoutProcess()" class="btn btn-lg btn-success checkout-btn" data-cy="web-checkout-place-order-button">
3711                    <span ng-if="isVantivHosted() && !isWholesaleNoCCEnabled()">Proceed to Checkout</span>
3712                    <span ng-if="!isVantivHosted() && !isWholesaleNoCCEnabled()">Place Your Order</span>
3713                    <span ng-if="isWholesaleNoCCEnabled()">Place Wholesale Order</span>
3714                </button>
3715                <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">
3716                    Continue
3717                </button>
3718                <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">
3719                    Enter Shipping Information
3720                </button>
3721                <div ng-if="showCreditCardOption()" style="margin-top: 10px;">
3722                    <a ng-if="isCardProcessorVantiv()" ng-click="setProcessor('VantivHosted');" class="small-link" href="" style="font-weight: normal !important;">or checkout with credit card</a>
3723                    <a ng-if="isCardProcessorNMI()" ng-click="GoToCheckoutUrl();" class="small-link" href="" style="font-weight: normal !important;">or checkout with credit card</a>
3724                </div>
3725                <div ng-if="showPayPalOption()" style="margin-top: 10px;">
3726                    <a ng-click="setProcessor('paypal');" class="small-link" href="" style="font-weight: normal !important;">or checkout with PayPal</a>
3727                </div>
3728                <span ng-show="isProcessing()" data-cy="web-checkout-processing"><i class="fa fa-spinner fa-pulse fa-2x"></i></span>
3729            </div>
3730        </div>
3731
3732        <div ng-if="StatusInfo.ErrorMessageBottom" class="alert alert-danger" data-cy="web-checkout-error-bottom">
3733            <button type="button" class="close" ng-click="ErrorMessageBottomClose()" data-cy="web-checkout-error-bottom-close">&times;</button>
3734            {{StatusInfo.ErrorMessageBottom}}
3735        </div>
3736
3737    </div>
3738
3739    <!-- Summary area -->
3740
3741    <div class="col-sm-5 hidden-xs">
3742        <div class="panel panel-default">
3743            <div ng-if="StatusInfo.Initializing" class="panel-body">
3744                <i class="fa fa-spinner fa-pulse fa-2x"></i>
3745            </div>
3746            <table ng-if="!StatusInfo.Initializing" class="table">
3747    
3748
3749<thead>
3750<tr>
3751    <td><strong>Description</strong></td>
3752    <td><strong>Quantity</strong></td>
3753    <td colspan="2"><strong>Amount</strong></td>
3754</tr>
3755</thead>
3756<tbody ng-repeat="item in CartData.Items">
3757<tr>
3758    <td colspan="4" style="border-bottom: 0; padding-bottom: 0;">
3759        <span ng-if="item.condition">
3760                {{item.title}} ({{item.condition.title}})
3761        </span>
3762
3763        <span ng-if="!item.condition">
3764                            {{item.title}}
3765                        <span ng-if="item.type === 'class' && item.class_date"> - {{item.class_date}}</span>
3766        </span>
3767
3768        <span ng-if="item.discount_eligible === 'false' && item.is_consignment && StatusInfo.IsCouponEntered" class="text-danger display-block">
3769            This item is not eligible for discounts
3770        </span>
3771        <span ng-if="!item.quantity_updating && item.type == 'rental'">
3772            - {{item.id}}
3773        </span>
3774        <span ng-if="item.package_items" ng-repeat="pitem in item.package_items">
3775            <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - {{pitem.title}}
3776        </span>
3777        <span ng-if="item.class_attendees.length">
3778            <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Attendees:
3779            <span ng-repeat="name in item.class_attendees">
3780                &nbsp;{{name}}
3781            </span>
3782        </span>
3783    </td>
3784</tr>
3785<tr>
3786    <td style="border-top: 0;">
3787        <img ng-if="item.image" ng-src="{{item.image}}" style="height: 50px; padding-right: 8px;">
3788
3789            </td>
3790    <td style="vertical-align: middle; border-top: 0;">
3791        <div ng-if="showQuantityAsSelector(item)" class="form-inline">
3792                            <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)">
3793                </select>
3794            
3795            <span ng-if="item.qty_type == 'fraction'">
3796                <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)">
3797                </select>
3798                <span ng-if="item.measure_unit == 'Meter'">Metres</span>
3799                <span ng-if="item.measure_unit != 'Meter'">{{item.measure_unit}}s</span>
3800            </span>
3801        </div>
3802        <div ng-if="showQuantityAsNumber(item)">
3803            {{item.qty_integer}}
3804        </div>
3805        <i ng-if="item.quantity_updating" class="fa fa-spinner fa-pulse"></i>
3806    </td>
3807
3808            <td ng-if="!showAsGST()" style="vertical-align: middle; border-top: 0;">{{getItemPrice(item) | currency:InitInfo.CurrencySymbol2}}</td>
3809    
3810    <td style="vertical-align: middle; border-top: 0;">
3811        <div class="cartCell cartDelete">
3812                            <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>
3813                        <i ng-if="item.removing" class="fa fa-spinner fa-pulse"></i>
3814        </div>
3815    </td>
3816    <td ng-if="showAsGST()" style="vertical-align: middle; border-top: 0;">{{getItemGstTotal(item) | currency:InitInfo.CurrencySymbol2}}</td>
3817</tr>
3818<tr ng-if="item.type === 'subscription'">
3819    <td colspan="4" style="border-bottom: 0;padding: 8px;border-top: 0;">
3820        <a ng-click="showSubscriptionDetails = !showSubscriptionDetails" class="subscription-details-btn" href="javascript:void(0);">
3821            <i class="fa" ng-class="{'fa-caret-down': showSubscriptionDetails, 'fa-caret-right': !showSubscriptionDetails}"></i>
3822            View Subscription Details
3823        </a>
3824        <div ng-show="showSubscriptionDetails">
3825            <table class="subscription-details">
3826                <tr>
3827                    <td>{{item.subscriptionData.labels.adverb}} Price:</td>
3828                    <td>{{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}</td>
3829                </tr>
3830                <tr>
3831                    <td>Subscription Length:</td>
3832                    <td>{{item.subscriptionData.subscription_length}} {{item.subscriptionData.labels.plural}}</td>
3833                </tr>
3834                <tr>
3835                    <td>Start/End Date:</td>
3836                    <td>{{item.subscriptionData.start_date}} - {{item.subscriptionData.end_date}}</td>
3837                </tr>
3838                <tr>
3839                    <td>Registration Fee <span class="small-subtitle">(One Time)</span>:</td>
3840                    <td>{{item.subscriptionData.registration_fee | currency:InitInfo.CurrencySymbol2}}</td>
3841                </tr>
3842                <tr>
3843                    <td>Previous {{item.subscriptionData.labels.plural}}:</td>
3844                    <td>
3845                                                 <span ng-if="item.subscriptionData.previous_items_cnt > 0">
3846                                                    {{item.subscriptionData.previous_items_cnt}} x {{item.subscriptionData.price_per_kit | currency:InitInfo.CurrencySymbol2}}
3847                                                </span>
3848                        <span ng-if="item.subscriptionData.previous_items_cnt == 0">Not Included</span>
3849                    </td>
3850                </tr>
3851                <tr>
3852                    <td>Delivery Method:</td>
3853                    <td ng-switch="item.subscriptionData.delivery_type">
3854                                            <span ng-switch-when="ship">
3855                                                Shipped - {{item.subscriptionData.shipping_fee | currency:InitInfo.CurrencySymbol2}}
3856                                            </span>
3857                        <span ng-switch-default>In-Store Pickup</span>
3858                    </td>
3859                </tr>
3860                <tr ng-if="item.subscriptionData.delivery_type === 'ship'">
3861                    <td>Address:</td>
3862                    <td>{{item.subscriptionData.address}}</td>
3863                </tr>
3864                <tr>
3865                    <td><strong>Total {{item.subscriptionData.labels.adverb}}:</strong></td>
3866                    <td>
3867                        <strong>{{item.subscriptionData.total_per_kit | currency:InitInfo.CurrencySymbol2}}</strong>
3868                    </td>
3869                </tr>
3870                <tr>
3871                    <td><strong>Due Today:</strong></td>
3872                    <td>
3873                        <strong>{{item.subscriptionData.due_today | currency:InitInfo.CurrencySymbol2}}</strong>
3874                    </td>
3875                </tr>
3876            </table>
3877        </div>
3878    </td>
3879</tr>
3880</tbody>
3881                <tr ng-show="isProductInCart()">
3882                    <td colspan="4" width="100%">
3883                                                                                            </td>
3884                </tr>
3885                <tr>
3886                    <td colspan="2">
3887                        Subtotal
3888                        <br>
3889                    </td>
3890                    <td colspan="2" align="right" class="h4" data-cy="web-checkout-summary-subtotal"><strong>
3891                            <span ng-if="!showAsGST()">{{SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></span>
3892                        <span ng-if="showAsGST()">{{GST_SubTotal | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></span>
3893                    </td>
3894                </tr>
3895                <tr ng-if="CustomerDiscounts > 0">
3896                    <td colspan="2">
3897                        Discount
3898                        <br>
3899                    </td>
3900                    <td colspan="2" align="right" class="h4"><strong>
3901                        <span>{{CustomerDiscounts | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></span>
3902                    </td>
3903                </tr>
3904                    <tr>
3905                        <td colspan="3">
3906                            <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;">
3907                            <span id="gift-card-coupon-msgs" class="messages-coupon-gc">
3908                                            <!-- Messages -->
3909                                            <span id="gift-card-coupon-error-msg" ng-cloak ng-show="shouldShowGiftCardCouponErrorMsg()"><i class="fa fa-ban"></i>&nbsp;{{giftCardCouponMsg}}</span>
3910                                            <span id="gift-card-applied-msg" ng-cloak ng-show="shouldShowGiftCardAppliedMsg()" ><i class="fa fa-check"></i>&nbsp;Gift Card Applied</span>
3911                                            <span id="coupon-applied-msg" ng-cloak ng-show="shouldShowCouponAppliedMsg()" ><i class="fa fa-check"></i>&nbsp;Coupon Added</span>
3912                                            <span ng-cloak ng-show="giftCardOrCouponDataState == DATA_STATE_LOADING" class="gc-coupon-data-loading"><i class="fa fa-spinner fa-spin"></i></span>
3913                                        </span>
3914                        </td>
3915                        <td id="gift-card-coupon-code-apply-cell" colspan="2" style="vertical-align: top;">
3916                            <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>
3917                        </td>
3918                    </tr>
3919
3920                    <tbody ng-if="CartData.Coupons.length > 0">
3921                        <tr>
3922                            <td colspan="4">
3923                                <div>
3924                                    <div ng-show="CartData.Coupons.length > 0" class="row-divider-checkout">
3925                                        <div class="divider-checkout-block-title">
3926                                            Coupons
3927                                        </div>
3928                                        <div ng-if="showOnlyHighestDiscountWarning() || showDontApplyOnSaleItemsWarning()" class="alert-warning warning-box">
3929                                        <span ng-if="showOnlyHighestDiscountWarning()">
3930                                            Only a single coupon with the highest savings will be applied.
3931                                        </span>
3932                                            <span ng-if="showDontApplyOnSaleItemsWarning()">
3933                                            Coupons do not apply to On Sale Items
3934                                        </span>
3935                                        </div>
3936                                        <div ng-repeat="c in CartData.Coupons | orderBy: (isApplyHighestSavingCouponsMode() ? ['notApplied', 'notEligible'] : [])" class="item-box" ng-class="{'not-applied-coupon' : !isCouponAvailable(c)}">
3937                                            <div class="discount-item">
3938                                                <div class="discount-item-title">
3939                                                    <a href="" ng-click="openCouponDetail
3939sModal(c)"><span class="gift-card-coupon-identifier">{{c.title}}</span></a>
3940                                                </div>
3941                                                <div class="discount-amount">
3942                                                    <span ng-if="isCouponAvailable(c)">-{{c.discount | currency:InitInfo.CurrencySymbol2}} &nbsp;</span>
3943                                                    <span ng-if="!isCouponAvailable(c)" class="not-applied-amount-label">{{ couponUnavailabilityMessage(c) }} &nbsp;</span>
3944                                                    <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>
3945                                                    <i ng-show="StatusInfo.CouponUpdating" class="fa fa-spinner fa-pulse"></i>
3946                                                </div>
3947                                            </div>
3948                                            <div class="gift-card-coupon-code-span">
3949                                                {{c.couponCode}}
3950                                            </div>
3951                                            <div ng-if="isShippingCoupon(c)" class="discount-amount coupon-error-msg">{{couponStatusMessage}}</div>
3952                                        </div>
3953                                    </div>
3954                                </div>
3955                            </td>
3956                        </tr>
3957                    </tbody>
3958                <tr ng-if="ShippingInfo.Option && ShippingStatus.Required">
3959                    <td colspan="2">
3960                        {{isPickup() ? '' : 'Shipping'}} {{ShippingInfo.Option.name}}
3961                        &nbsp;<a href="" ng-click="ShippingEdit()"><small>Change</small></a>
3962                        &nbsp;&nbsp;<small>{{ShippingInfo.Option.delivery_time}}</small>
3963                    </td>
3964                    <td colspan="2" align="right">
3965                        <span ng-if="!isTaxInclusive()"><strong>{{ShippingInfo.Option.price | currency:InitInfo.CurrencySymbol2}}</strong></span>
3966                        <span ng-if="isTaxInclusive()" style="font-weight: bold; text-align: right;">
3967                                {{getGstShippingTotal() | currency:InitInfo.CurrencySymbol2}}
3968                            </span>
3969                    </td>
3970                </tr>
3971                                <tr ng-if="!showAsGST()">
3972                    <td colspan="2">
3973                        Taxes
3974                    </td>
3975                    <td colspan="2" align="right" data-cy="web-checkout-summary-taxes">
3976                        <span ng-if="StatusInfo.DynamicTaxAddressError" class="dynamic_tax_error">{{StatusInfo.DynamicTaxAddressError}}</span>
3977                        <strong ng-if="!StatusInfo.DynamicTaxAddressError">{{Taxes | currency:InitInfo.CurrencySymbol2}}</strong>
3978                    </td>
3979                </tr>
3980
3981                <tbody ng-if="breakDownTaxes()">
3982                    <tr ng-repeat="(jurisdiction, taxes) in JurisdictionalTaxes" ng-if="showTaxJurisdiction(jurisdiction, taxes, false)">
3983                        <td colspan="2">
3984                        &nbsp;&nbsp;&nbsp;&nbsp;{{jurisdiction}}
3985                        </td>
3986                        <td colspan="2" align="right">
3987                            {{taxes.tax_paid | currency:InitInfo.CurrencySymbol2}}&nbsp;&nbsp;&nbsp;&nbsp;
3988                        </td>
3989                    </tr>
3990                </tbody>
3991
3992                <tr ng-if="ShippingTaxes && !isTaxInclusive()">
3993                    <td colspan="2">
3994                        Shipping Taxes
3995                    </td>
3996                    <td colspan="2" align="right">
3997                        <strong>{{ShippingTaxes | currency:InitInfo.CurrencySymbol2}}</strong>
3998                    </td>
3999                </tr>
4000
4001                <tbody ng-if="breakDownTaxes()">
4002                    <tr ng-repeat="(jurisdiction, taxes) in JurisdictionalTaxes" ng-if="showTaxJurisdiction(jurisdiction, taxes, true)">
4003                        <td colspan="2">
4004                        &nbsp;&nbsp;&nbsp;&nbsp;{{jurisdiction}}
4005                        </td>
4006                        <td colspan="2" align="right">
4007                            {{taxes.tax_paid | currency:InitInfo.CurrencySymbol2}}&nbsp;&nbsp;&nbsp;&nbsp;
4008                        </td>
4009                    </tr>
4010                </tbody>
4011
4012                    <tbody ng-if="showGiftCardSummary()">
4013                        <tr>
4014                            <td colspan="4">
4015                                <div>
4016                                    <div class="row-divider-checkout">
4017                                        <div class="divider-checkout-block-gc-title">
4018                                            Gift Cards
4019                                        </div>
4020                                        <div ng-repeat="gc in CartData.GiftCards" class="item-box">
4021                                            <div class="discount-item">
4022                                                <div>
4023                                                    <span class="gift-card-coupon-identifier">{{gc.title}}</span>&nbsp;&nbsp;&nbsp;&nbsp;
4024                                                </div>
4025                                                <div class="discount-amount">
4026                                                    -{{gc.Amount | currency:InitInfo.CurrencySymbol2}} &nbsp;
4027                                                    <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>
4028                                                    <i ng-show="StatusInfo.GiftCardUpdating" class="fa fa-spinner fa-pulse"></i>
4029                                                </div>
4030                                            </div>
4031                                            <div class="gift-card-coupon-code-span">
4032                                                {{gc.number}}
4033                                            </div>
4034                                        </div>
4035                                    </div>
4036                                </div>
4037                            </td>
4038                        </tr>
4039                    </tbody>
4040                <tr>
4041                    <td colspan="1">
4042                        Total <span ng-if="isPayAtPickup()">due at pickup</span>
4043                    </td>
4044                    <td colspan="3" align="right" data-cy="web-checkout-summary-total">
4045                        <span ng-if="!showAsGST()"><strong>{{Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong></span>
4046                        <span ng-if="showAsGST()">
4047                                <strong>{{GST_Due | currency:InitInfo.CurrencySymbol2}} {{InitInfo.CurrencyCode}}</strong>
4048                            </span>
4049
4050                        <span ng-if="GST_Due > 0 && GST_Taxes > 0 && showAsGST() && isShippingCountryGST()" align="right">
4051                                <span ng-if="GST_Due > 0 && GST_Taxes > 0 && isShippingCountryGST()" class="cartTableSubHeader"><br/>{{getGstTaxes() | currency:InitInfo.CurrencySymbol2}} GST included in total</span>
4052                            </span>
4053                    </td>
4054                </tr>
4055                </table>
4056        </div>
4057    </div>
4058
4059</div>
4060        </div>
4061    </div>
4062    <div id="coupon-details-modal" ></div>
4063
4064    <form id="processorform" action="{{SubmitInfo.SubmitUrl}}" method="post"><input type="hidden" name="form_version" value="2">
4065        <input type="hidden" ng-repeat="(key, val) in SubmitFields()" name="{{key}}" value="{{val}}">
4066    </form>
4067</div>
4068
4069
4070<!-- NOTE: Do not move to angular 1.4.x yet. There is an issue with particular cart data causing really poor performance -->
4071<!-- DO NOT CHANGE ANGULAR JS VERSION, THIS IS THE LAST VERSION THAT WORKS PROPERLY IN THE FOLLOWING BROWSERS -->
4072<!-- IE 9 AND iOS < 6 -->
4073<!-- THIS IS ONLY FOR THE CHECKOUT, OTHER PAGES CAN USE WHICH EVER VERSION THEY WANT TO -->
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098        
4099            
4100            
4101            
4102            
4103            
4104    
4105
4106		</div>
4107	</div>
4108</div>
4109
4110    <!-- footer -->
4111	<div class="bgFooter">
4112	
4113	<div class="container footer" style="height: auto; text-align:center; ">
4114		<br>
4115		<br>
4116		<a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/beautiful-quality-fabrics.htm">SUMMER SALE</a> &nbsp; | &nbsp; <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/iishop?form_version=2&amp;showSearchResults=1&amp;search_keyword=kits&amp;image=Search">Kits</a> &nbsp; | &nbsp; <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/iishop?form_version=2&amp;showSearchResults=1&amp;search_keyword=Gifts&amp;image=Search">Quilts for Sale</a> &nbsp; | &nbsp; <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/shop/Notions.htm">Favorite Tools & Notions</a> &nbsp; | &nbsp; <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/shop/Machines.htm">Machines </a> &nbsp; | &nbsp; <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/">Home</a> &nbsp; | &nbsp; <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/about-us-at-prairie-quilt.htm">About Us</a> &nbsp; | &nbsp; <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/site-map.htm">Site Map</a> &nbsp; | &nbsp; <a style="font-weight: normal; font-size: 12px;" class="footer" href="https://www.prairiequilt.com/terms-conditions.htm">Terms and Conditions</a><div id="cs-live-player"></div>
4117<!-- Yup, this comment is here for a reason. -->
4118		<div style="height: 10px;"></div>
4119		Copyright &copy; 2007-2026 - Prairie Quilt<br>
4120		<a class="footer" style="font-weight: normal;" href="https://www.likesew.com">Website Design</a> by Like Sew<br>
4121		
4122		<br>
4123		<br>
4124	</div>
4125</div>
4126
4127
4128
4129</div>
4130
4131<!-- 43 module.tpl -->
4132
4133
4134
4135
4136
4137
4138</script>
4138
4139
4140<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css">
4141<script type="text/javascript" src="https://images.rainpos.com/jquery-migrate-1.2.1.min.js" attr="nomove"></script>
vendor: 1 bytes, line 4141
4141
4142<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 4142
4142
4143<script type="text/javascript" src="https://images.rainpos.com/json2.js" attr="nomove"></script>
vendor: 1 bytes, line 4143
4143
4144<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js" attr="nomove"></script>
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154<script>
4155            if(!(window.console && console.log)) {
4156                console = {
4157                    log: function(){},
4158                    debug: function(){},
4159                    info: function(){},
4160                    warn: function(){},
4161                    error: function(){}
4162                };
4163            }
4164	    </script>
vendor: 1 bytes, line 4164
4164
4165<script type="text/javascript" src="/1723204580/site-configuration/js/recaptchaCode.js"></script>
vendor: 116 bytes, lines 4165-4166
4165
4166<script src="https://www.google.com/recaptcha/api.js?onload=recaptchaOnload&render=explicit" async defer></script>
4167<script type="text/javascript">
4168    var isMobileBrowser = 0;
4169            var isResponsive = true;
4170    </script>
vendor: 1 bytes, line 4170
4170
4171<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
vendor: 1 bytes, line 4171
4171
4172<script src="/1723204579/pos-app/js/big.min.js"></script>
vendor: 1 bytes, line 4172
4172
4173<script src="/1723204579/pos-app/js/lib.js"></script>
vendor: 1 bytes, line 4173
4173
4174<script src="/1775641146/pos-app/js/utils.js"></script>
vendor: 1 bytes, line 4174
4174
4175<script src="/1760603607/js/components/stripe-payment-request/CheckoutContextWrapper.js"></script>
vendor: 1 bytes, line 4175
4175
4176<script src="/1759150467/js/components/stripe-payment-request/PaymentRequestModel.js"></script>
vendor: 1 bytes, line 4176
4176
4177<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLError.js"></script>
vendor: 1 bytes, line 4177
4177
4178<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLBaseModel.js"></script>
vendor: 1 bytes, line 4178
4178
4179<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLKlarnaModel.js"></script>
vendor: 1 bytes, line 4179
4179
4180<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLAffirmModel.js"></script>
vendor: 1 bytes, line 4180
4180
4181<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLAfterpayModel.js"></script>
vendor: 1 bytes, line 4181
4181
4182<script src="/1723204579/js/components/stripe-bnpl/StripeBNPLModel.js"></script>
vendor: 1 bytes, line 4182
4182
4183<script src="/1723204579/checkout/PromiseAccumulator.js"></script>
vendor: 1 bytes, line 4183
4183
4184<script src="/1723204579/c/libs/libphonenumber-js/libphonenumber-js.min.js"></script>
vendor: 1 bytes, line 4184
4184
4185<script src="/1723204579/js/bower_components/angular-sanitize/angular-sanitize.min.js"></script>
vendor: 1 bytes, line 4185
4185
4186<script src="/1790254316/checkout/checkoutCtrl.js"></script>
vendor: 1 bytes, line 4186
4186
4187<script src="/1723204579/js/log.js"></script>
vendor: 1 bytes, line 4187
4187
4188<script>var Logger = Object.create(Logger.prototype); Logger.setToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3OTAzNjk5MTYsImp0aSI6ImY3M2U2MmQ2YTNhNGFiNjc5ZDlmMzRjMzhjZTJjMWFjYWE3N2I2YzI5MTczMzFhZDk5ZDhkMDdlZjdhZDFkNjIiLCJuYmYiOjE3OTAzNjk5MTYsImV4cCI6MTc5MDQxMzExNiwiZGF0YSI6eyJzdG9yZUlkIjoxMjM4OCwic2l0ZVVzZXJJZCI6bnVsbCwiY3VzdG9tZXJMb2dpbklkIjpudWxsfX0.0ACTtZUKX5IM8AlCNZ5PNkPU2rA-bEd-2k500tqGi04"); </script>
vendor: 1 bytes, line 4188
4188
4189<script>window.cartJWT = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3OTAzNjk5MTYsImp0aSI6ImY3M2U2MmQ2YTNhNGFiNjc5ZDlmMzRjMzhjZTJjMWFjYWE3N2I2YzI5MTczMzFhZDk5ZDhkMDdlZjdhZDFkNjIiLCJuYmYiOjE3OTAzNjk5MTYsImV4cCI6MTc5MDQxMzExNiwiZGF0YSI6eyJzdG9yZUlkIjoxMjM4OCwic2l0ZVVzZXJJZCI6bnVsbCwiY3VzdG9tZXJMb2dpbklkIjpudWxsfX0.0ACTtZUKX5IM8AlCNZ5PNkPU2rA-bEd-2k500tqGi04"</script>
vendor: 1 bytes, line 4189
4189
4190<script src="/js/libs/vue/2.6.12.vue.min.js"></script>
vendor: 1 bytes, line 4190
4190
4191<script src="/js/libs/axios/0.31.1.axios.min.js"></script>
vendor: 1 bytes, line 4191
4191
4192<script type="text/javascript">
4193    if (typeof window.vueEventHub === 'undefined') {
4194        window.vueEventHub = new Vue();
4195    }
4196    Vue.use({install: function (Vue, params) {
4197            Vue.prototype.$eventHub = params.vueEventHub;
4198        }}, {vueEventHub: window.vueEventHub});
4199</script>
vendor: 1 bytes, line 4199
4199
4200<script src="/1723204579/pos-app/controls/form-validate/form-validate.directive.js"></script>
4200
4201
4202<script src="https://payments.quiltsoftware.com/adyenRegion.js"></script>
vendor: 1 bytes, line 4202
4202
4203<script>
4204    let scriptAdyenRegion = window.adyenRegion || 'live-us';
4205
4206    const adyenScript = document.createElement('script');
4207    const adyenStyle = document.createElement('link');
4208    var adyenStyleLoaded = false; //global
4209    let head = document.getElementsByTagName('head')[0];
4210
4211    adyenScript.src = 'https://checkoutshopper-' + scriptAdyenRegion + '.adyen.com/checkoutshopper/sdk/5.29.0/adyen.js';
4212    adyenScript.type = 'text/javascript';
4213    adyenScript.crossOrigin = 'anonymous';
4214    adyenScript.integrity = 'sha384-V7uOD/4bQuWLJRCDSfc60tVzD6rYW5BkkY3GYnaFjgg/guMih1Kx6N5Vo9dBtN3y';
4215
4216    adyenStyle.href = 'https://checkoutshopper-' + scriptAdyenRegion + '.adyen.com/checkoutshopper/sdk/5.29.0/adyen.css'
4217    adyenStyle.rel = 'stylesheet';
4218    adyenStyle.crossOrigin = 'anonymous';
4219    adyenStyle.integrity = 'sha384-jAG16Mh+vYdXeyWKqPqL7chbdFT1aS5qjt/8jGJz5vBrI1RJ3m6/uFfMZt8li/rT';
4220
4221    head.appendChild(adyenScript);
4222    head.appendChild(adyenStyle);
4223
4224    adyenStyle.onload = function() {
4225        adyenStyleLoaded = true;
4226    }
4227</script>
vendor: 1 bytes, line 4227
4227
4228<script type="text/javascript" src="/js/dist/npm.core-js.7fcae61afb054d7ba0b3.js"></script>
vendor: 1 bytes, line 4228
4228
4229<script type="text/javascript" src="/js/dist/npm.vue-loader.d0cb700bf30f64badaf5.js"></script>
vendor: 1 bytes, line 4229
4229
4230<script type="text/javascript" src="/js/dist/npm.style-loader.b1e6d4e14468065b9561.js"></script>
vendor: 1 bytes, line 4230
4230
4231<script type="text/javascript" src="/js/dist/npm.css-loader.4580a37e6cd44c5ceae8.js"></script>
vendor: 1 bytes, line 4231
4231
4232<script type="text/javascript" src="/js/dist/npm.date-fns.a04ecd7fd4860ad4dc6d.js"></script>
vendor: 1 bytes, line 4232
4232
4233<script type="text/javascript" src="/js/dist/coupon-details-modal.310e9f33ad0b13b0bc5a.js"></script>
vendor: 1 bytes, line 4233
4233
4234<script type="text/javascript">
4235    var isMusicStore = false;
4236    var districts = [];
4237    var schools = [];
4238    var customerId = 0;
4239</script>
vendor: 1 bytes, line 4239
4239
4240<script>
4241new CSLivePlayer("cs-live-player", {
4242    miniPlayer: true,
4243    shopName: 'prairiequiltvideeo',
4244});
4245</script>
vendor: 1 bytes, line 4245
4245
4246<script src="https://js.stripe.com/v3/"></script>
vendor: 1 bytes, line 4246
4246
4247<script>
4248                function innerWrapper() {
4249                    const innerDivz = document.querySelectorAll(`div.inner`);
4250                    if (innerDivz.length > 0) {
4251                        let identifyParentEl = innerDivz[0].parentElement;
4252                        const wrapperEl = document.createElement('div');
4253
4254                        wrapperEl.setAttribute('data-column-id', 'body');
4255                        if (innerDivz[0].classList.contains('inner-full-width')) {
4256                            wrapperEl.className = 'new clearfix';
4257                        } else {
4258                            wrapperEl.className = 'new container clearfix';
4259                        }
4260                        if (identifyParentEl.classList.contains('vue-component-wrapper')) {
4261                            identifyParentEl.insertAdjacentElement('beforebegin', wrapperEl);
4262                        } else {
4263                            innerDivz[0].insertAdjacentElement('beforebegin', wrapperEl);
4264                        }
4265                        innerDivz.forEach(item => wrapperEl.append(item));
4266                    }
4267                }
4268                document.addEventListener('DOMContentLoaded', innerWrapper);
4269            </script>
vendor: 1 bytes, line 4269
4269
4270<script>
4271(()=>{
4272// accessibility  package
4273
4274// Search Icon labels
4275const searchBtns = document.querySelectorAll('.glyphicon-search');
4276if(searchBtns.length > 0 == true){
4277    for(var i = 0; i < searchBtns.length; i++){
4278        searchBtns[i].ariaLabel = 'Search'
4279        }
4280}
4281// slideshow Labeling
4282if(document.querySelectorAll('.carousel-inner').length > 0){
4283    const slides = Array.from(document.querySelectorAll(".item"))
4284    const slideshows = Array.from(document.querySelectorAll('.carousel-inner'))
4285    slideshows.forEach(x => x.ariaLabel = 'slide show')
4286    slides.forEach(x => {x.role = 'option'
4287    x.ariaLabel = 'slide'
4288})
4289}
4290// landmark Wrapper
4291const skipBtn = document.querySelector('a[href^="#skip-navigation"');
4292let header;
4293skipBtn.insertAdjacentHTML('afterend','<header></header>')
4294header = document.querySelector('header')
4295header.appendChild(skipBtn)
4296const nav = document.querySelector('.menubg')
4297const footerBg = document.querySelector('.bgFooter')
4298let footer;
4299let skipNav = document.querySelector('#skip-navigation');
4300let main;
4301skipNav.insertAdjacentHTML('afterend','<main></main>')
4302main = document.querySelector('main')
4303footerBg.insertAdjacentHTML('beforebegin','<footer></footer>')
4304footer = document.querySelector('footer')
4305footer.appendChild(footerBg)
4306
4307let wrapper = (target,end)=>{
4308    let currentSibling;
4309    while(target.nextElementSibling !== end){
4310        currentSibling = target.nextElementSibling;
4311        target.appendChild(currentSibling)
4312    }
4313}
4314wrapper(main,footer)
4315wrapper(header,nav)
4316 
4317
4318})()
4319</script>
vendor: 1 bytes, line 4319
4319
4320<script>
4321(()=>{
4322//tab panel fix
4323if(document.querySelectorAll("body > div.pageDiv > main > div.tabCon > div > div > div > div > ul").length > 0 === true){
4324document.querySelectorAll("body > div.pageDiv > main > div.tabCon > div > div > div > div > ul > li").forEach(x => x.role = 'tablist')
4325}
4326})()
4327</script>
vendor: 1 bytes, line 4327
4327
4328<script>
4329(function hideSitemapTnC() {
4330  function hideIt() {
4331    // find the footer T&C that is the all-caps version (no ampersand)
4332    const links = document.querySelectorAll('footer a[href$="terms-conditions.htm"], a.footer[href$="terms-conditions.htm"]');
4333    for (const a of links) {
4334      const label = (a.textContent || '').trim().toUpperCase();
4335      if (label === 'TERMS AND CONDITIONS') {
4336        a.style.display = 'none';
4337        return; // done—leave the "Terms & Conditions" one alone
4338      }
4339    }
4340  }
4341
4342  if (document.readyState === 'loading') {
4343    document.addEventListener('DOMContentLoaded', hideIt);
4344  } else {
4345    hideIt();
4346  }
4347
4348  // In case the footer is injected/updated after load
4349  new MutationObserver(hideIt).observe(document.documentElement, {childList: true, subtree: true});
4350})();
4351</script>
vendor: 1 bytes, line 4351
4351
4352<script type="text/javascript" src="/site-configuration/js/jquery.blockUI.js"></script>
4352
4353
4354<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"d60c52fc57","applicationID":"7339757","transactionName":"ZAFTMEcHDUsDB00IDl1LchFGEgxVTSdqCQ5DFFgKUiUCShY7ewASVg==","queueTime":0,"applicationTime":109,"atts":"SEZQRg8dHkU=","errorBeacon":"bam.nr-data.net","agent":""}</script>
4354</body>
4355</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.