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