PageSourceSearch

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

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

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.