Help
RSS
API
Feed
Maltego
Contact
Domain > www.annthegran.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-07-11
104.18.16.230
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Sun, 11 Jan 2026 05:42:30 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveCache-Control: max-age3600Expires: Sun, 11 Jan 2026 06:42:30 GMTLocation: https://www.annthegran.com/Server: cloudflareCF-RAY: 9bc21758fd3c5ed2-PDX html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>cloudflare/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Sun, 11 Jan 2026 05:42:31 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveCF-RAY: 9bc21759685f8bee-PDXCache-Control: no-cache, no-storepragma: no-cacheexpires: Thu, 01 Jan 1970 00:00:00 GMTSet-Cookie: .AspNetCore.Identity.ApplicationCfDJ8Ib5TNQkIMdEj8Y7EUKvlEpJ3lxZ9jLlhkuNTzy0sVlYSxkiomF7bDXOIibWdTFSRC9DYFqPtPAktJPegEK-twen7SalLOZYnMJoSRjLxVcATFFGBsZNhmnq4IJtVNIZjl6u6K9v51mLOIzFEEnF6oTlDMjLWLpW1zNMeyA3GeDtPnkBPfh8AK8yc4rZ8s4IFyNO8E3YmkKUGLwk6EedTTb98eyRtjdjQ0IpVTH9eVHVWAeGmRoTZxbFrNfEKgo0ALvCqXPF00U4jYuunlUOVFMhLx3SUsCK0DsoNIyno9x8S2zdLK7TCnPe9HewWdC0Uy9gGiAv3LRyHhcGjyo6OYm-4NS-0GaIQhP9k1Et-6dNmISNndWYG-aVVa97iVZBUDmqr_TZ7Nkw7ujZ_bDuChoV5s8nmC-N3e-JNwsMGQtbzGfnUHwSUfQDc4AVnQ7KWIQtrj3nwKf1NyQ3dlKsjYoXdRm0EdcqqxOv8QoPyygLAjZ7X5BUBWF_kdFeCip5xTKOVtTaDwVqLCzyBScFmfkkdJ8CnlU_8Ih3xOc62tAijuTjKnvO3dm8Wxb1IpgL3KPreeHvP7DNn_U-Jdt6Z4Y; path/; secure; samesitelax; httponlySet-Cookie: .AspNetCore.Antiforgery.aRJswYk_3SUCfDJ8Ib5TNQkIMdEj8Y7EUKvlEonRN1K3UX5n8-hKun6yqeGODqUv0zo_lZPoWoUtjh9TvNstQ0w8y-Lbjn_OdXpl_NCw1YPFypY6oMnYK5xEHWUpRAjCYSkLMCqGdWJgJKvKFQWzaciGSB-lS-rIjG1hf8; path/; samesitestrict; httponlySet-Cookie: XSRF-TOKENCfDJ8Ib5TNQkIMdEj8Y7EUKvlEqz2_08S80WE-2VuReyvmdGsJCYYDBJ2AllBR3FpdyitLN1dQO4RnZ6FQOIIef6wn7rZkOo26uCcLLTA0F48bsN-DmaTT2D-WM2ttRBVB-N0jvZWe4-ld3BWm2wtE4FeCcMRJqLLJcNOSoMbf8GZqS0Zq0Q19anxEdFLCBviddaKA; path/; samesitelaxSet-Cookie: .AspNetCore.Mvc.CookieTempDataProvider; expiresThu, 01 Jan 1970 00:00:00 GMT; path/; samesitelaxSet-Cookie: __cflb0H28vZzm5mNj5tuzDVfRnfhiM1S42i4krfEhU4VHukZ; SameSiteNone; Secure; path/; expiresSun, 11-Jan-26 06:12:31 GMT; HttpOnlyx-frame-options: SAMEORIGINstrict-transport-security: max-age63072000; includeSubDomains; preloadx-content-type-options: nosniffcontent-security-policy: frame-ancestors *.annthegran.com;x-xss-protection: 1; modeblockx-dns-prefetch-control: onxx-e-key: vpweb02cf-cache-status: DYNAMICServer: cloudflare !DOCTYPE html>html classno-touch no-js ng-appstorefrontApp langen>head> meta charsetutf-8 /> meta http-equivX-UA-Compatible contentIEedge, chrome1 /> meta nameviewport contentwidthdevice-width, initial-scale1 /> meta namegoogle-site-verification contentIbrP91rKzOyQ3vEKoYyK8BVJ3FDDdeDKKQrXXQbM7XY /> meta nameformat-detection contenttelephoneno> title> Embroidery, Quilting and crafting supplies for all your needlework. | AnnTheGran.com /title> meta propertyog:image content /> meta propertyog:title content /> meta namedescription contentMachine embroidery designs, Alphabets and all the supplies you need for Embroidery \u0026 Quilting. We\u0027ve large variety of embroidery thread \u0026 stabilizers and largest collection of free embroidery designs on the internet. /> meta namekeywords contentMachine embroidery stabilizers, Embroidery threads, Quilting, Free embroidery designs, Quilting supplies, Thread kits, Embroidery projects, Embroidery designs /> meta nametitle contentEmbroidery, Quilting and crafting supplies for all your needlework. | AnnTheGran.com /> meta namep:domain_verify content9b0e35ece357258bea6c9e9cd4579ccd /> link relcanonical hrefhttps://www.annthegran.com/ /> base hrefhttps://www.annthegran.com/ /> script>//!CDATA var Shopify Shopify || {}; Shopify.shop ; Shopify.theme {};//>/script> script srchttps://www.annthegran.com/themes/assets/store-settings.js>/script> script srchttps://www.annthegran.com/themes/assets/static/bundle/scripts_dependencies.js?vocl5p9ub8dqdq7hlhq3ykhmgt-y5cbtzsq-sbsvc_0a>/script> script srchttps://www.annthegran.com/themes/assets/static/bundle/atg-scripts.js?v4f2muha7j6diynqzedjncomutfipd8qlhbcorkuoli4>/script> script srchttps://www.annthegran.com/themes/assets/shop.js>/script> link typetext/css relstylesheet mediaall hrefhttps://www.annthegran.com/themes/assets/default.scss.css > link typetext/css relstylesheet mediaall hrefhttps://www.annthegran.com/themes/assets/static/bundle/header_footer_styles.css?vakkm0cj8zu8q-st_afh7vfw-wckhydpjie86tprcacs > link typetext/css relstylesheet mediaall hrefhttps://www.annthegran.com/themes/assets/static/bundle/notification_modal_styles.css?v-txmp9megxdq1_z7lsl5xn7docrhcsomi9ejpet7kcm > link typetext/css relstylesheet mediaall hrefhttps://www.annthegran.com/themes/assets/static/bundle/quick-view_styles.css?vbf1okmru4expjg7wv50nhdf8ga1masvfa_eqqdoqdhi > script> var BASE_URL https://www.annthegran.com/; /script> link relicon hreffavicon.ico typeimage/x-icon sizes16x16> script typeapplication/ld+json> { @context: https://schema.org/, @graph: { @type: BreadcrumbList, itemListElement: { @type: ListItem, position: 1, name: Home, item: https://www.annthegran.com/ } }, { @type: Organization, name: annthegran.com, url: https://www.annthegran.com/, logo: https://www.annthegran.com/themes/assets/atg-lg.png, contactPoint: { @type: ContactPoint, telephone: 888-288-3009, contactType: customer service, availableLanguage: en }, email: mailto:support@annthegran.com, sameAs: https://www.facebook.com/AnntheGranPage, https://www.instagram.com/annthegran_embroidery/, https://www.pinterest.com/annthegransite/ }, { @type: LocalBusiness, name: annthegran.com, image: https://www.annthegran.com/themes/assets/atg-lg.png, url: https://www.annthegran.com/, telephone: 888-288-3009, address: { @type: PostalAddress, streetAddress: 3400 Dundee Road, Suite #180, addressLocality: Northbrook, addressRegion: IL, postalCode: 60062, addressCountry: US }, openingHoursSpecification: { @type: OpeningHoursSpecification, dayOfWeek: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday , opens: 00:00, closes: 23:59 }, sameAs: https://www.facebook.com/AnntheGranPage, https://www.instagram.com/annthegran_embroidery/, https://www.pinterest.com/annthegransite/ }, { @type: WebPage, name: Best Selling Embroidery Designs, url: https://www.annthegran.com/brw/designs }, { @type: WebPage, name: Latest Embroidery Designs, url: https://www.annthegran.com/new/designs }, { @type: WebPage, name: Embroidery Deals & Discounts: Save on Designs, Fonts, Machines & Supplies, url: https://www.annthegran.com/specials }, { @type: WebPage, name: Digital Embroidery PDF Patterns & Design Instructions, url: https://www.annthegran.com/themes/all/pdf-patterns }, { @type: WebPage, name: Custom Embroidery Patches, url: https://www.annthegran.com/brw/patch } }/script> !-- GDPR Compliant Analytics Implementation -->script>(function() { use strict; // Configuration var env window.__env || {}; var excludedCountries env.ExcludedGDPRCountries || US, CA, AU, MX; var GTM_ID GTM-KWQ7HC4; var GA4_ID G-42CRRBE9Z6; var BING_TAG_ID 109002042; // State management var analyticsInitialized false; var gdprModalShown false; var ga4ScriptLoaded false; var bingScriptRequested false; // Cookie helper functions function getCookie(name) { var cookie document.cookie.match(new RegExp((^| ) + name + (^;+))); return cookie ? cookie2 : null; } // Load GA4 script and configure function loadGA4() { initializeGtag(); if (ga4ScriptLoaded) { gtag(config, GA4_ID); return; } ga4ScriptLoaded true; var gaScript document.createElement(script); gaScript.async true; gaScript.src https://www.googletagmanager.com/gtag/js?id + GA4_ID; // Mirror original GA4 initialization calls gtag(js, new Date()); gtag(config, GA4_ID); gaScript.addEventListener(error, function(error) { console.error(Failed to load GA4 script, error); ga4ScriptLoaded false; }); document.head.appendChild(gaScript); } // Load Bing conversion tracking function loadBingTracking() { if (window.uetq && window.uetq.loaded) { return; } window.uetq window.uetq || ; function initializeBing() { if (window.uetq.loaded || typeof UET ! function) { return; } var options { ti: BING_TAG_ID, enableAutoSpaTracking: true }; options.q window.uetq; window.uetq new UET(options); window.uetq.push(pageLoad); window.uetq.loaded true; } if (bingScriptRequested) { initializeBing(); return; } bingScriptRequested true; var bingScript document.createElement(script); bingScript.async true; bingScript.src https://bat.bing.com/bat.js; bingScript.onload initializeBing; bingScript.onreadystatechange function() { var state this.readyState; if (!state || state loaded || state complete) { initializeBing(); bingScript.onreadystatechange null; } }; bingScript.onerror function(error) { console.error(Failed to load Bing tracking script, error); bingScriptRequested false; }; var firstScript document.getElementsByTagName(script)0; firstScript.parentNode.insertBefore(bingScript, firstScript); } function setCookie(name, value, days) { var expires ; if (days) { var date new Date(); date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); expires ; expires + date.toUTCString(); } document.cookie name + + value + expires + ; path/; SameSiteLax; } // Check if country is excluded from GDPR function isExcludedCountry() { var countryCode getCookie(CountryCode); if (!countryCode) return false; return excludedCountries.indexOf(countryCode.toUpperCase()) ! -1; } // Check if user has given consent function hasConsent() { var cookieConsent getCookie(CookieConsent); var thirdPartyConsent getCookie(ThirdPartyConsent); return cookieConsent 1 && thirdPartyConsent 1; } // Initialize dataLayer and gtag function initializeGtag() { window.dataLayer window.dataLayer || ; window.gtag window.gtag || function() { window.dataLayer.push(arguments); }; } // Set gtag consent function setGtagConsent(granted) { if (typeof gtag ! function) return; gtag(consent, default, { ad_storage: granted ? granted : denied, ad_user_data: granted ? granted : denied, ad_personalization: granted ? granted : denied, analytics_storage: granted ? granted : denied }); } // Load Google Tag Manager function loadGTM() { if (document.querySelector(scriptsrc*googletagmanager.com/gtm.js)) { return; // Already loaded } // Load GTM script (function(w, d, s, l, i) { wl wl || ; wl.push({ gtm.start: new Date().getTime(), event: gtm.js }); var f d.getElementsByTagName(s)0, j d.createElement(s), dl l ! dataLayer ? &l + l : ; j.async true; j.src https://www.googletagmanager.com/gtm.js?id + i + dl; f.parentNode.insertBefore(j, f); })(window, document, script, dataLayer, GTM_ID); } // Create and show GDPR modal function createGDPRModal() { if (gdprModalShown) return; gdprModalShown true; // Create modal HTML var modalHTML ` div idgdpr-modal styleposition: fixed; bottom: 0; left: 0; right: 0; background: #09aec6; color: white; padding: 15px; z-index: 9999; font-weight: 700; line-height: 35px; text-align: center; font-family: Arial, sans-serif; box-shadow: 0 -2px 10px rgba(0,0,0,0.3); display: block; > div stylemax-width: 1200px; margin: 0 auto;> p stylemargin: 0; font-size: 14px; line-height: 2;> We use cookies to ensure you get the best experience on our website. By continuing, you agree to our use of cookies and similar tools that are necessary to enable you to make purchases, to enhance your shopping experiences and to provide our services. /p> div stylemargin: 7.5px 0; display: flex; justify-content: center;> label styledisplay: flex; align-items: center; font-size: 14px; cursor: pointer;> input typecheckbox idgdpr-consent checked stylemargin-right: 8px; transform: scale(1.2);> I agree to the use of performance, marketing and analytical cookies /label> /div> div stylemargin: 7.5px 0;> a href/privacy target_blank relnoopener noreferrer stylecolor: #2D4391; text-decoration: underline; font-size: 14px;>Click here/a> span stylefont-size: 14px;> to read our cookie policy./span> button idgdpr-agree-btn style cursor: pointer; font-size: 16px; font-weight: 600; line-height: 35px; margin-left: 10px; color: rgb(255, 255, 255); background-color: rgb(45, 67, 145); box-shadow: rgba(0, 0, 0, 0.15) 0px 2px 6px; border-width: initial; border-style: none; border-color: initial; border-image: initial; padding: 0px 20px; border-radius: 6px; transition: background-color 0.2s, box-shadow 0.2s, -webkit-box-shadow 0.2s; >I Agree/button> /div> /div> /div> `; // Insert modal into DOM document.body.insertAdjacentHTML(beforeend, modalHTML); // Add event listener for agree button document.getElementById(gdpr-agree-btn).addEventListener(click, handleGDPRAgreement); } // Handle GDPR agreement function handleGDPRAgreement() { var isChecked document.getElementById(gdpr-consent).checked; // Fetch GDPR expiration from API fetch(storefrontapi/getgdprexpiration) .then(function(response) { return response.json(); }) .then(function(data) { // Set cookies with API-provided expiration setCookie(CookieConsent, 1, data); setCookie(ThirdPartyConsent, isChecked ? 1 : 0, data); // Hide modal var modal document.getElementById(gdpr-modal); if (modal) { modal.style.display none; } // Load analytics if third-party consent given if (isChecked) { loadAnalytics(); } }) .catch(function(error) { console.error(Error fetching GDPR expiration:, error); // Fallback: set cookies with default expiration (365 days) setCookie(CookieConsent, 1, 365); setCookie(ThirdPartyConsent, isChecked ? 1 : 0, 365); // Hide modal var modal document.getElementById(gdpr-modal); if (modal) { modal.style.display none; } // Load analytics if third-party consent given if (isChecked) { loadAnalytics(); } }); } // Load all analytics function loadAnalytics() { if (analyticsInitialized) return; analyticsInitialized true; // Initialize gtag initializeGtag(); // Set consent to granted setGtagConsent(true); // Load GTM (which handles tags configured within) loadGTM(); // Ensure GA4 fires directly for conversions loadGA4(); // Load Bing conversion tracking loadBingTracking(); } // Main initialization function function initializeAnalytics() { // Initialize gtag first initializeGtag(); if (isExcludedCountry()) { // For excluded countries, load analytics immediately setGtagConsent(true); loadAnalytics(); } else { // For non-excluded countries, check existing consent if (hasConsent()) { // User already consented, load analytics setGtagConsent(true); loadAnalytics(); } else { // No consent yet, set denied and show modal setGtagConsent(false); createGDPRModal(); } } } // Wait for DOM to be ready function waitForDOM() { if (document.readyState loading) { document.addEventListener(DOMContentLoaded, initializeAnalytics); } else { initializeAnalytics(); } } // Listen for country code changes document.addEventListener(CountryCodeCookieSet, function() { if (!analyticsInitialized) { initializeAnalytics(); } }); // Fallback: check for country code periodically var checkInterval setInterval(function() { var countryCode getCookie(CountryCode); if (countryCode && !analyticsInitialized) { initializeAnalytics(); clearInterval(checkInterval); } }, 500); // Stop checking after 10 seconds setTimeout(function() { clearInterval(checkInterval); if (!analyticsInitialized) { console.log(Country detection timeout, initializing analytics anyway); initializeAnalytics(); } }, 10000); // Start initialization waitForDOM();})();/script> !-- Preload Fonts for Performance --> link relpreload hrefhttps://fonts.googleapis.com/css2?familyLobster&familyMontserrat:wght@400;600&displayswap asstyle> !-- Preconnect to Google Fonts --> link relpreconnect hrefhttps://fonts.googleapis.com> link relpreconnect hrefhttps://fonts.gstatic.com crossorigin> !-- Load Fonts --> link hrefhttps://fonts.googleapis.com/css2?familyLobster&familyMontserrat:wght@400;600&displayswap relstylesheet>/head>body id stylemargin: 0; ng-cloak ng-controllermainController ng-initbaseUrlhttps://www.annthegran.com/ ng-class{ app-modal-open: appModalOpen } classtemplate-index> !-- #region Section - super header -->div ng-initgetSuperHeaderAds() idsuperHeaderContainer> div ng-showsuperHeaderAds classsuperad flex center ng-style{background-color: superHeaderAds.bgColor ? superHeaderAds.bgColor : #000} > div classwrapper flex center> a classflex center title{{superHeaderAds.title}} ng-href{{superHeaderAds.adURL}} relnofollow > img idsuperHeader classimg-superheader alt{{superHeaderAds.title}} > /a> /div> /div>/div>!-- #endregion --> div ng-controllerheaderController ng-initgetNavbarContent()> div classhdr_top snippet> div classwrapper search-header flex> div classsite-logo flex center> i classfa fa-bars show-sm color-white cursor-pointer idShowMobileNav aria-hiddentrue>/i> div idlogo stylecursor: pointer; titleAnn The Gran> a href/ aria-labelAnnTheGran.com Logo>/a> /div> /div> div classflex center account> div classuser flex column center> div classcolor-yellow content-one welcome-msg txt-capitalize> span classhide-xs> Welcome, Embroiderer! /span> /div> div classflex> div classhide-sm> img lazy-load srcloading.gif namethread.webp altthread width33 height40 aria-hiddentrue> /div> div classflex column profile-content> div classcontent-one color-white cursor-pointer sign_in> a stylecolor: inherit; href/account> Sign In span classhide-sm> To/span> /a> /div> div classhide-sm> span classdropdown color-yellow color-pink-hover> a classcolor-yellow href/account classdropdown-toggle cursor-pointer data-toggledropdown>Your Profile i classfa fa-caret-down>/i>/a> ul classdropdown-menu> li> a href/account>Manage Profile/a> /li> li> a href/account/orderhistory>Order History/a> /li> li> a href/account/downloads>Downloads/a> /li> li> a href/favorites/myfavorites>Favorites/a> /li> /ul> /span> /div> /div> /div> /div> div classcart flex> a href/cart classflex> div> img stylemargin-right: 0.5em; lazy-load srcloading.gif namecart.webp altcart width47 height40 aria-hiddentrue> /div> div classflex column> div classhide-sm content-one color-white>Your Cart/div> div classcolor-yellow cart-count ng-cloak ng-bindcartItemsCounterRS>/div> /div> /a> /div> /div> div classsearch snippet ng-controllerSearchBarController> form methodget rolesearch nameformSearch autocompleteoff stylewidth: 100%; flex-wrap: wrap; classflex row search-bar actionjavascript:void(0);> div classflex row stylewidth: 100%;> input typetext idsearch namesearchterm classsearchTerm autocompleteoff ng-modelsearchTerm ng-keyupsuggest() ng-keydownchangeSelection($event, 1) aria-labelSearch for products, brands and more placeholderSearch for products, brands and more> button typesubmit classsearchButton ng-clicksearchBtnClick($event) aria-labelSearch for products, brands and more> i classfa fa-search aria-hiddentrue>/i> /button> /div> div stylewidth: 100%; position: relative;> div stylez-index: 15; iddivSearchResults classsearch-result-container no-results ng-ifshowNoresults ng-cloak > No Results found /div> div stylez-index: 15; position: absolute; margin-top: -5px; iddivSearchResults classsearch-result-container ng-show(autocorrectTerms.length > 0 || suggestedTerms.length > 0 || suggestedProducts.length > 0 || suggestedBrandList.length > 0 || suggestedCategoryList.length > 0) ng-cloak > div iddivSuggestions ng-showautocorrectTerms.length > 0 || suggestedTerms.length > 0> div classsearch-field-header> span>SUGGESTIONS/span> span ng-clickcloseSuggestions()>Close/span> /div> div classsearch-field-container color-gray> div ng-repeatterm in suggestedTerms| limitTo:filterLimit track by $index stylecursor:pointer;> div classsearch-field-suggest-container stylewidth:100%;> a ng-href/brw/all?searchterm{{term.text | formatQueryStringWithSpace}}> {{term.text}} /a> /div> /div> /div> /div> div iddivCategories ng-showsuggestedCategoryList.length > 0> div classsearch-field-header> CATEGORIES /div> div classsearch-field-container> div ng-repeatcategory in suggestedCategoryList track by $index> span> a classsearch-result-anchor tabindexView All Products title{{term.text}} ng-href/themes/all/{{category.key | formatQueryStringWithSpace}} > {{category.key}} ({{category.doc_count | number}}) /a> /span> /div> /div> /div> div iddivBrands ng-showsuggestedBrandList.length > 0> div classsearch-field-header> BRANDS /div> div classsearch-field-container> div ng-repeatbrand in suggestedBrandList track by $index> span> a classsearch-result-anchor ng-href/brands/{{brand.key | formatQueryStringWithSpace}}/all title{{brand.key }} ({{brand.doc_count | number}}) tabindexView All Products> {{brand.key }} ({{brand.doc_count | number}}) /a> /span> /div> /div> /div> div iddivSearchProducts ng-showsuggestedProducts.length > 0> div classsearch-field-header> span> PRODUCTS /span> span> a ng-hrefbrw/all/{{searchTerm | formatQueryStringWithSpace}}> View Results /a> /span> /div> div classsearch-field-container stylepadding: 0;> div styleborder-bottom: 1px solid #CCCCCC; ng-repeatprd in suggestedProducts track by $index> div classsearch-result-prd-container flex row> div classimg-container flex center> a ng-ifprd && prd._source ng-href{{ getProductUrl(prd._source.definitionName, prd._source.catalog, prd._source.name, prd._source.itemId) }}> div classflex center> img ng-src{{prd.imageUrl ? prd.imageUrl : getImageUrl(prd._source.definitionName, prd._source.catalog, prd._source.itemId)}} onmousedownreturn false; oncontextmenualert(Images are copyright-protected!);return false; onselectstartreturn false> /div> /a> /div> div classinfo-container flex column> div> a ng-ifprd && prd._source classsearch-result-anchor title{{prd._source.name}} ng-href{{ prd.url ? prd.url : getProductUrl(prd._source.definitionName, prd._source.catalog, prd._source.name, prd._source.itemId) }} > {{prd._source.name | lowercase}} /a> /div> div classsearch-result-product> {{prd._source.brand}} /div> div classsearch-result-product> {{prd._source.itemId | uppercase}} /div> div classsearch-result-product ng-bindprd._source.definitionName | getProductType>/div> div ecom-star-review classsearchbar-rating ng-class{not-rated: (prd._source.rating undefined || prd._source.rating 0)} review{{prd._source.rating}} >/div> /div> /div> /div> /div> /div> /div> /div> /form>/div> script> $(#ShowMobileNav).on(click, function () { $(.mobile-nav.snippet).animate({ width: toggle }); }); /script> /div>/div> div classhdr_bottom snippet ng-mouseleaveonDropdownHover(false, data.content.length > 0 ) > div iddropdown-bg classdropdown-bg stylez-index: 10; ng-ifisDropdownActive>/div> div classwrapper flex styleposition:relative> div classflex center nav-container ng-repeatdata in navbar_content stylez-index: 11;> div> div classflex center> span classdropdown unset ng-mouseenteronDropdownHover(true, data.content.length > 0 ) ng-mouseleaveonDropdownHover(false, data.content.length > 0 ) > div data-toggledropdown ng-ifdata && data.href undefined classa-link dropdown-toggle color-white no-text-decoration cursor-pointer > span ng-bind-htmldata.title>/span> i classfa fa-caret-down ng-ifdata.content.length > 0>/i> /div> a ng-ifdata && data.href ! undefined data-toggledropdown classdropdown-toggle color-white no-text-decoration cursor-pointer ng-href{{data.href}} > span ng-bind-htmldata.title>/span> i classfa fa-caret-down ng-ifdata.content.length > 0>/i> /a> ul classdropdown-menu flex row {{data.isDropdown ? regular : multi}} ng-ifdata.content.length > 0 && !data.isMultiDropdown> div classhdr-options> li classclickable ng-repeatcontent in data.content> a ng-ifcontent.href ng-href{{content.href}} ng-bind-htmlcontent.title ng-class{caret-right: content.content.length > 0, special-fa: content.requiresTag} >/a> div classa-link ng-if!content.href ng-bind-htmlcontent.title ng-class{caret-right: content.content.length > 0, special-fa: content.requiresTag} >/div> div classhdr-content ng-ifcontent.content.length > 0 > div classflex row full-width> div classflex column options ng-repeatoptionz in content.content ng-class{wider : optionz.isWider true}> div ng-repeatoptions in optionz.content > ul classimg-section data-ng-ifoptions.imgSection true && options.showSpecialsContent ! true > li> a classheader word-break data-ng-href{{options.href}}> img lazy-load srcloading.gif name{{options.imgUrl}} alt{{options.title}} classlazyload > /a> a data-ng-href{{options.href}}> div classheader word-break> {{options.title}}/div> /a> div classdesc data-ng-bindoptions.content data-ng-ifoptions.content>/div> a data-ng-href{{options.href}} > span ng-bind-htmloptions.hrefLabel classword-break>/span> i classfa fa-arrow-right>/i> /a> /li> /ul> ul data-ng-ifoptions.imgSection ! true && options.showSpecialsContent ! true > div classheader word-break ng-bind-htmloptions.title ng-ifoptions.href undefined>/div> a classheader word-break ng-href{{options.href}} ng-bind-htmloptions.title ng-ifoptions.href && options.href.length >0>/a> div classcontent ng-ifoptions.content.length > 0 ng-repeatoption in options.content> a ng-clickshowAlert(Coming soon) ng-ifoption.notAvailable && option.notAvailable true> span ng-bind-htmloption.title classword-break>/span> i classfa fa-arrow-right hide-right-arrow ng-ifoption.showArrowRight>/i> /a> a ng-href{{option.href}} ng-ifoption.notAvailable ! true> span ng-bind-htmloption.title classword-break>/span> i classfa fa-arrow-right hide-right-arrow ng-ifoption.showArrowRight>/i> /a> /div> a classview-all content ng-ifoptions.isViewAllReqd ng-href{{options.viewAllhref}} > View All i classfa fa-arrow-right>/i> /a> /ul> ul data-ng-if options.showSpecialsContent true ng-initgetActiveSales(data.resetCache);> div classheader word-break ng-bind-htmloptions.title ng-ifoptions.href undefined>/div> div classcontent ng-ifsales.length > 0 ng-repeatoption in sales | limitTo:15> a ng-clickshowAlert(Coming soon) ng-ifoption.notAvailable && option.notAvailable true> span ng-bind-htmloption.title classword-break>/span> i classfa fa-arrow-right hide-right-arrow ng-ifoption.showArrowRight>/i> /a> a ng-href{{option.href}} ng-ifoption.notAvailable ! true> span ng-bind-htmloption.title classword-break>/span> i classfa fa-arrow-right hide-right-arrow ng-ifoption.showArrowRight>/i> /a> /div> a classview-all content ng-iftrue ng-href/specials > View All i classfa fa-arrow-right>/i> /a> /ul> /div> /div> /div> /div> /li> /div> /ul> ul classdropdown-menu flex row mul ng-ifdata.content.length > 0 && data.isdropdown !true && data.isMultiDropdown true> li classclickable multi-width ng-repeatoptionz in data.content> div classflex column options ng-repeatoptions in optionz.content> ul classimg-section data-ng-ifoptions.imgSection true> li> a classheader word-break data-ng-href{{options.href}}> img lazy-load srcloading.gif name{{options.imgUrl}} alt{{options.title}} classlazyload > /a> a data-ng-href{{options.href}}> div classheader word-break> {{options.title}}/div> /a> div classdesc word-break data-ng-bindoptions.content data-ng-ifoptions.content>/div> a data-ng-href{{options.href}} > span ng-bind-htmloptions.hrefLabel>/span> i classfa fa-arrow-right>/i> /a> /li> /ul> ul classimg-section data-ng-ifoptions.imgSection ! true> div classheader word-break ng-bind-htmloptions.title ng-ifoptions.href undefined>/div> a classheader word-break ng-href{{options.href}} ng-bind-htmloptions.title ng-ifoptions.href && options.href.length >0>/a> div classcontent ng-ifoptions.content.length > 0 ng-repeatoption in options.content> a ng-href{{option.href}} ng-ifoption.notAvailable ! true> span classword-break ng-bind-htmloption.title>/span> /a> /div> /ul> /div> /li> /ul> /span> /div> /div> /div> div classright-content flex row> !-- span classflex center> a classflex center href#> img srcfa-comment-dollar.svg altsell with us aria-hiddentrue stylewidth: 1em;> Sell with Us /a> /span> --> !-- span classflex center> a href#> i classfa fa-commenting aria-hiddentrue>/i> Chat with Ann /a> /span> --> span classflex center> a href#> i classfa fa-phone aria-hiddentrue>/i> (888) 288-3009 /a> /span> span classflex center disabled stylemargin-left: 15px;> a classflex center href#> img srcfa-flag-usa.svg altUSD aria-hiddentrue stylewidth: 1em;> USD !-- i classfa fa-caret-down stylecolor: #FFF;>/i> --> /a> /span> /div> /div>/div> div classmobile-nav snippet active stylez-index: 99;> div classnav-content flex> div classnav-header flex row> div classnav-left fa fa-caret-left color-white flex center d-none idnav-left>/div> div classmsg txt-capitalize idwelcomeMessage> Welcome, Embroiderer! /div> div classmsg d-none flex center cursor-pointer idactiveNav>/div> div classnav-close> i classfa fa-times color-white>/i> /div> /div> div classnav-options overflow-y-auto idnav-content> !-- Dynamic Content here --> /div> /div> div idnav-home classd-none> div> div classflex border-bottom> ul classhome> li> a href#> Home /a> /li> /ul> /div> div idnav-maincontent classflex nav-sections ng-repeatcontent in mobile_navbar_content ng-ifcontent.id null > div classheading ng-bindcontent.title >/div> ul classleft-nav> li classheader ng-repeatoptions in content.content> div class{{options.css ! null ? options.css : }} ng-class{caret-right: options.name ! null } name{{ options.name }} > a ng-href{{options.href}} stylecolor: inherit; text-decoration: none; ng-ifoptions.href> i classfa fa-left {{options.icon}} ng-ifoptions.icon ! null>/i> span ng-bind-htmloptions.title>/span> /a> span classa-link stylecolor: inherit; cursor: pointer; ng-if!options.href> i classfa fa-left {{options.icon}} ng-ifoptions.icon ! null>/i> span ng-bind-htmloptions.title>/span> /span> /div> /li> /ul> /div> /div> /div> div id{{content.id}} classd-none ng-repeatcontent in mobile_navbar_content ng-ifcontent.id ! null> div> !-- div classview-all idview-all>View All/div> div classview-all d-none idhide-all>Hide All/div> --> div classflex> ul classleft-nav ng-if!content.isSpecials> li classheader option ng-class{no-option: options.href} ng-repeatoptions in content.content> div ng-class{caret-down: options.content.length > 0, active: $first } nameshop-navOne ng-bind-htmloptions.title ng-if!options.href>/div> a ng-ifoptions.href ng-bind-htmloptions.title ng-href{{options.href}} >/a> ul classoptions> li ng-repeatoption in options.content> a onclickalert(Coming soon) ng-bind-htmloption.title ng-ifoption.notAvailable && option.notAvailable true>/a> a ng-ifoption.notAvailable ! true ng-href{{option.href}} ng-bind-htmloption.title >/a> /li> li ng-ifoptions.isViewAllReqd> a ng-ifoptions && options.viewAllhref ng-href{{options.viewAllhref}} > View All i classfa fa-arrow-right ml-5>/i> /a> /li> /ul> /li> /ul> ul classleft-nav ng-ifcontent.isSpecials> li classheader option ng-class{no-option: sale.href} ng-repeatsale in sales> div ng-class{caret-down: sale.content.length > 0, active: $first } nameshop-navOne ng-bind-htmlsale.title ng-if!sale.href>/div> a ng-ifsale && sale.href ng-bind-htmlsale.title ng-href{{sale.href}} >/a> /li> /ul> /div> /div> /div>/div>script> $(document).ready( function(){ $(#nav-left).hide(); $(#nav-content).html($(#nav-home).html()); $(document).on(click, .mobile-nav .fa-times, (function (event) { event.preventDefault(); $(.mobile-nav).animate({ width: toggle }); })); waitForRender(); function waitForRender() { var interval setInterval(function() { if ($(#nav-maincontent).html() ! undefined) { clearInterval(interval); $(#nav-content).html($(#nav-home).html()); } }, 100); } // $(document).on(click, .mobile-nav #view-all, (function (event) { // $(#view-all).hide(); // $(#hide-all).show(); // $(.option).children(div).addClass(active); // $(.option).children(ul).slideDown(); // })); // $(document).on(click, .mobile-nav #hide-all, (function (event) { // $(#view-all).show(); // $(#hide-all).hide(); // $(.option).children(div).removeClass(active); // $(.option).children(ul).slideUp(); // })); $(document).on(click, .mobile-nav .caret-right, (function (event) { var id $(this).attr(name) $(#nav-left).css(display, flex); $(#welcomeMessage).hide(); $(#activeNav).html($(this).text()).css(display, flex); $(#nav-content).html(null); // make content null if id is not available $(#nav-content).html($(#+id).html()); })); $(document).on(click, .mobile-nav .nav-left, (function (event) { $(#nav-left).hide(); $(#welcomeMessage).show(); $(#activeNav).hide(); $(#nav-content).html($(#nav-home).html()); })); $(document).on(click, .mobile-nav #activeNav, (function (event) { $(#nav-left).hide(); $(#welcomeMessage).show(); $(#activeNav).hide(); $(#nav-content).html($(#nav-home).html()); })); $(document).on(click, .mobile-nav .option, (function (event) { event.stopPropagation(); $(this).children(div).toggleClass(active); $(this).children(ul).slideToggle(); // var activeCount $(this).parent().children(li).children(.active).length; // if( activeCount 0){ // $(.mobile-nav #view-all).show(); // $(.mobile-nav #hide-all).hide(); // } // if(activeCount $(this).parent().children(li).length){ // $(.mobile-nav #view-all).hide(); // $(.mobile-nav #hide-all).show(); // } })); checkHeight(); function checkHeight() { if ($(window).innerHeight() > 800) { $(.nav-options > div).addClass(small); } else { $(.nav-options > div).removeClass(small); } } $(window).resize(function () { if ($(window).width() > 992) { $(.mobile-nav.snippet).css(display, none); } checkHeight(); }); } );/script> /div> ecom-quick-view>/ecom-quick-view> script defer srchttps://www.annthegran.com/themes/assets/static/bundle/quickView.js?v6Gg2oR69oyw5z7JjzcHsqUMRZIwCSy_P1lLXv31cIz4>/script> main classmain-content page-content rolemain idmain-content> ecom-favorite-group>/ecom-favorite-group>div ng-controllerhomepageController ng-initinitialize()> div classwrapper> script typetext/ng-template idecom-product.html> div ecom-product-image classprdImg-section ng-ifid rank{{rank}} variants{{variants}} vendor{{vendor}} saleprice{{salePrice}} product-code{{id}}>/div> div classprdInfo-section> a styletext-decoration: none; title{{name}} ng-href{{productUrl}}> div classprd-title fw-600> h3 class h-no-margin>{{listPrice 0.0 && name.toLowerCase().indexOf(free) -1 ? Free :}}{{name}}/h3>/div> div ng-ifisthreadused classthread-brand> h3 class h-no-margin> {{vendor}} {{threadType}}/h3>/div> /a> div classflex row ng-class{price-info : review > -1} ng-ifdefinitionName.toLowerCase() ! patch> div classflex column review-section ng-ifreview > -1> div ng-class{no-rating: review 0} ecom-star-review review{{review}}>/div> /div> div ecom-product-price ng-iflistPrice saleprice{{salePrice}} listprice{{listPrice}} clubprice{{clubPrice}}>/div> /div> div classprd-btns flex row ng-ifshowbtn ng-class{full-btns : fullListBtn}> div classfavorites-btn titleMark as favorite ng-clickupdateFavoritesList(id, ) ng-controllerFavoritesController ng-mouseenteronListBtnHover($event); idbtn_fav_{{id}} ng-classisItemInFavorites({{id}}) ? active : > span classtxt-uppercase ng-iffullListBtn> + List /span> i classfa fa-heart>/i> i classfa fa-spin fa-spinner>/i> div ng-iffavoriteGroups> ul classfav-groups idfavGroupsDropdownList stylez-index: 15;> li ng-clicktoggleNewFavoritesGroupModal(true, id);> - Create New Group - /li> li ng-repeatgroup in favoriteGroups | orderBy:customSortFavDefaultFunction :false track by $index ng-clickupdateFavoritesList(id, group.groupName) ng-bind(group.groupName undefined ? Default : group.groupName) + ( + group.count + )>/li> /ul> /div> /div> button classbtn-addCart ng-if!isClubOnly || listPrice > 0 ng-clickaddToCart(id, true) idbtn_{{id}} ng-controllerAddToCartController ng-class(customerCartRS && customerCartRS.indexOf(id) ! -1) ? active : > span> span ng-bind(customerCartRS && customerCartRS.indexOf(id) ! -1) ? CHECKOUT : ADD TO CART>/span> /span> i classfa fa-spin fa-spinner>/i> i classfa fa-shopping-cart ml-5 aria-hiddentrue>/i> /button> button classflex center btn-subscribe ng-ifisClubOnly && listPrice 0 title LOGIN ng-clickonPrdLoginBtnClick(account/login)> span classtxt-uppercase> Login /span> /button> /div> div classprd-btns flex row ng-ifdefinitionName.toLowerCase() patch ng-class{full-btns : fullListBtn}> button classbtn-addCart idbtn_{{id}} ng-class(customerCartRS && customerCartRS.indexOf(id) ! -1) ? active : stylemargin:auto; ng-clicknavigateToPatchPage(productUrl) > span> span styletext-transform: uppercase;>Buy As Patch/span> /span> i classfa fa-spin fa-spinner>/i> i classfa fa-shopping-cart ml-5 aria-hiddentrue>/i> /button> /div> div ng-ifcustomerInterestIndex > customerInterestMinIndexThreshold && customerInterestIndex customerInterestMaxIndexThresholdclasscustomer-interest>{{customerInterestIndex}} people have this in their cart/div> div ng-ifcustomerInterestIndex > customerInterestMaxIndexThresholdclasscustomer-interest>More than {{customerInterestMaxIndexThreshold}} people have this in cart/div> /div>/script>script typetext/ng-template idecom-product-price.html> div classprd-saleprice ng-class{large: ((listPrice > 9.99 && salePrice > 0) && (listPrice 99.99 && salePrice 9.99)), x-large: listPrice > 99.99 && salePrice > 9.99}> span classlist-price fw-600 ng-class{free : +listPrice 0, no-sale: (+listPrice +salePrice || +salePrice 0 || salePrice undefined || salePrice )}> {{ +listPrice > 0 ? (\u0024 + (+listPrice | number:2)) : FREE }} /span> span classsale-price fw-600 ml-5 ng-class{d-none: (+listPrice +salePrice || +salePrice 0)}> {{ +salePrice > 0 ? (\u0024 + (+salePrice | number:2)) : FREE }} /span> span classsale-price fw-600 ml-5 ng-if+salePrice 0 ng-class{d-none: (+listPrice +salePrice || salePrice undefined || salePrice )}> {{ +salePrice 0 ? FREE : FREE }} /span> /div> div ng-ifclubPrice ! undefined || clubPrice ! || +clubPrice > 0 classprd-clubprice fw-600 ng-class{large: +clubPrice > 99, x-large: +clubPrice > 999}> Club Price: {{ \u0024 + (getClubPrice(listPrice, salePrice, clubPrice) | number:2) }} /div>/script>script typetext/ng-template idecom-product-image.html> img aria-hiddentrue ng-ifisOnSale classsale-ribbon lazy-load srcloading.gif altsale-ribbon namesale-ribbon.png> img aria-hiddentrue ng-ifisTopSeller classsale-ribbon lazy-load srcloading.gif alttopseller-ribbon nametop_seller.png> a styletext-decoration: none; ng-href{{productUrl}}> div classflex center square-box stylecursor:pointer;> div classsquare-content> div ng-ifid sizelarge rgb mpn ecom-product-image-url vendor{{vendor}} saleprice{{salePrice}} product-code{{id}} definition-name{{definitionName}} catalog{{vendor|formatVendorPath}}>/div> /div> div stylez-index: 10; ng-ifshowQuickview ng-controllerquickViewController classflex center quick-view fw-600 cursor-pointer> span ng-ifdefinitionName.toLowerCase() ! thread ng-clickshowQuickView($event, data);> QUICK VIEW /span> span ng-ifdefinitionName.toLowerCase() thread href#> Select Colors /span> /div> /div> /a> img aria-hiddentrue ng-ifvariants 4 && definitionName.toLowerCase() ! patch classsizes-ribbon lazy-load srcloading.gif altribbon name4-sizes-ribbon.png> img aria-hiddentrue ng-ifvariants 3 && definitionName.toLowerCase() ! patch classsizes-ribbon lazy-load srcloading.gif altribbon name3-sizes-ribbon.png> img aria-hiddentrue ng-ifvariants 2 && definitionName.toLowerCase() ! patch classsizes-ribbon lazy-load srcloading.gif altribbon name2-sizes-ribbon.png> img aria-hiddentrue ng-ifvariants > 4 && definitionName.toLowerCase() ! patch classsizes-ribbon lazy-load srcloading.gif altribbon namesizes-ribbon.png> a data-ng-ifpatchUrl && patchUrl ! data-ng-href{{patchUrl | lowercase}} classribbon patch buy-as-patch-button aria-labelBuy As Patch> h4 classh-no-margin fw-400>Buy As Patch/h4> /a>/script>script typetext/ng-template idecom-product-image-url.html> img aria-hiddentrue name{{imgUrl}} srcloading.gif onmousedownreturn false; oncontextmenualert(Images are copyright-protected!);return false; onselectstartreturn false lazy-loadtrue ng-style{background-color: rgb} alt{{name}} onerrorthis.onerrornull;this.namenoimage.webp;> >/script>script typetext/ng-template idshare_link.html> div classshare-product-container ng-controllershareProductController> span classlbl2 specials-share-label >Share:/span> a classlink no-text-decoration titleSend to a Friend ng-clickopenReferProduct(saleUrl)> i stylefont-size:1.5em; classfa fa-envelope aria-hiddentrue>/i> /a> a classlink no-text-decoration titleShare On Facebook ng-href{{facebook}} target_blank relnoopener noreferrer> i stylefont-size:1.5em; classfa fa-facebook-official aria-hiddentrue>/i> /a> a classlink no-text-decoration titleShare On Pintrest ng-href{{pintrest}} target_blank relnoopener noreferrer> i stylefont-size:1.5em; classfa fa-pinterest-square aria-hiddentrue>/i> /a> /div>/script>script typetext/ng-template idpatch_product_image.html> img aria-hiddentrue data-ng-ifprd.isOnSale classsale-ribbon lazy-load srcloading.gif namesale-ribbon.png> img aria-hiddentrue data-ng-ifprd.isTopSeller classsale-ribbon lazy-load srcloading.gif nametop-seller.png> a styletext-decoration: none; data-ng-href{{prd.url | lowercase}}> div classflex center square-box stylecursor:pointer;> div classsquare-content> div data-lazy-loadtrue> img aria-hiddentrue name{{prd.imgUrl}} srcloading.gif onmousedownreturn false; oncontextmenualert(Images are copyright-protected!);return false; onselectstartreturn false lazy-loadtrue ng-style{background-color: rgb} alt{{name}} onerrorthis.onerrornull;this.namenoimage.webp;> > /div> /div> /div> /a>/script>script typetext/ng-template idpatch_product.html> div data-ng-ifprd data-sizelarge data-img-url{{prd.img}} data-rgb data-mpn data-ecom-patch-product-image classprdImg-section data-hide-quick-view{{prd.hideQuickView}}>/div> div classprdInfo-section data-ng-ifprd> a styletext-decoration: none; title{{prd.name}} href{{prd.url | lowercase}}> h3 classprd-title fw-600 data-ng-bindprd.name>/h3> /a> a classflex center btn cart mt-10 idbtn_{{prd.productId}} titleBuy this Design as Patch data-ng-classactive href{{prd.url | lowercase}} styletext-decoration: none;> div classprd-btns flex row ng-class{full-btns : fullListBtn} stylewidth:100%;margin:auto;justify-content:center;> button classbtn-addCart idbtn_{{prd.productId}}> span> span styletext-transform: uppercase;>Buy As Patch/span> /span> /button> /div> /a> /div>/script> h1 class d-none>Embroidery, Quilting and crafting supplies for all your needlework./h1> div classhome template flex column> !-- #region Section - I --> div classflex column section-one> div classflex row> div classflex row ng-class{active: data.adId activeAdId} ng-repeatdata in ads_data> div classflex row center> img classh-40 ng-src{{data.imageURL}} aria-hiddentrue> /div> div classflex column> div classheading fw-600 ng-binddata.title>/div> div classoffer> span classcolor-dimblack ng-bind-htmldata.content>/span> a ng-ifdata target_blank classshop-now relnoopener noreferrer ng-href{{data.hyperlink}} > span ng-binddata.hyperlinkTitle>/span> i classfa fa-chevron-circle-right>/i> /a> /div> /div> /div> /div> div classd-none > div ng-clickonAdClick(data); ng-repeatdata in ads_data ng-class{active: data.adId activeAdId}> /div> /div> /div> !-- #endregion --> !-- #region Section - II --> div classsection-two> div classresponsive-container> !-- Carousel --> div classcarousel-wrapper> div classcarousel-image> a styleposition: relative; z-index: 2; aria-label{{currentMainAd.title}} data-ng-href{{currentMainAd.hyperlink}} > img loadingeager decodingasync classcarousel-img fetchpriorityhigh alt{{currentMainAd.title}} title{{currentMainAd.title}} data-ng-src{{currentMainAd.webpImageURL}} /> /a> !-- Dots --> div classcarousel-dots> i ng-ifmainAds.length > 1 ng-repeatdata in mainAds track by $index ng-class{ active: activeMainAdIndex $index } ng-clickonCarousalChange($index) >/i> /div> /div> /div> !-- Right Side or Bottom Ads --> div classright-ads-wrapper> div classad-box title{{data.title}} ng-repeatdata in carousalRightAds ng-clickurlNavigate(data.hyperlink, false) > div classicon-container> i ng-if!data.isImage classfa {{data.imageUrl}}>/i> img ng-ifdata.isImage classh-40 ng-src{{data.imageUrl}} aria-hiddentrue altImage > /div> div classheading fw-600 ng-binddata.title>/div> div classcontent txt-uppercase> span ng-binddata.hyperlinkTitle>/span>i classfa fa-chevron-circle-right>/i> /div> /div> /div> /div> /div> !-- #endregion --> div classdecorator> h2 classbackground> span>Top Picks for You/span> !-- a hrefwww.svgdesigns.com> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> --> /h2> /div> !-- #region Section - III --> div ng-initgetTopPicks() ng-controllertopPicksController classflex row section-three product-catalog > div ng-repeatdata in topPicks> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} variants{{data._source.variants.length}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region Section - IV --> div classflex row section-four> div classflex row {{data.imageUrl}} ng-repeatdata in topCategoryAds> div classflex row title{{data.title}} ng-clickurlNavigate(data.hyperlink, true)> div classimg-container flex center> div classflex center img-section background-center>/div> /div> div classflex column> div classheading fw-600 ng-binddata.title>/div> div classcontent txt-uppercase> span ng-binddata.hyperlinkTitle>/span> i classfa fa-chevron-circle-right>/i> /div> /div> /div> /div> /div> !-- #endregion --> !-- #region Section - V --> div classflex row section-five> div classside-section> div classbadge-section h-40> span classbadge bg-green color-white> i classfa fa-star>/i> NEW! /span> /div> div classheader-one> free designs for /div> div classheader-two> Anns Club Members /div> div classimg-container> img lazy-load nameneedle.svg srcloading.gif aria-hiddentrue> /div> div classcontent> div classleft-section> div ng-repeatoptions in bannerContent track by $index> div classtitle ng-bind-htmloptions.title>/div> ul> li ng-repeatoption in options.content> i classfa fa-check-circle>/i> span ng-bind-htmloption>/span> /li> /ul> /div> /div> /div> div classbtn-container flex row> button classflex center titleJOIN THE CLUB > a classfw-600 href/annsclub> JOIN THE CLUB /a> /button> /div> /div> div classflex row product-catalog> !-- Shimmer placeholder for free products --> span classproduct-catalog-shimmer ng-if!freeProducts || freeProducts.length 0 stylewidth: 100%; min-width: 100%; max-width: 100%; > span classproduct-shimmer stylewidth: 100%; min-width: 100%; max-width: 100%; > div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /span> div ng-repeatdata in freeProducts | limitTo: 4> div ecom-product showbtntrue product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} club-only{{data._source.isClubOnly}} variants{{data._source.variants.length}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> /div> !-- #endregion --> !-- #region Category Ads Part 2 --> div classflex row section-four> div classflex row {{data.imageUrl}} ng-repeatdata in bottomCategoryAds> div classflex row title{{data.title}} ng-clickurlNavigate(data.hyperlink, true)> div classimg-container flex center> div classflex center img-section background-center>/div> /div> div classflex column> div classheading fw-600 ng-binddata.title>/div> div classcontent txt-uppercase> span ng-binddata.hyperlinkTitle>/span> i classfa fa-chevron-circle-right>/i> /div> /div> /div> /div> /div> !-- #endregion --> !-- #region Section - VI --> div data-ng-ifpictureAds && pictureAds.length > 0> div classflex row section-six> div classflex ng-repeatdata in pictureAds> a classflex center ng-ifdata.hyperlink ng-href{{data.hyperlink}} aria-label{{data.title}} > div classshimmer-wrapper ng-initimgLoaded false ng-class{ hide-shimmer: imgLoaded }> div classshimmer>/div> /div> img lazy-load ng-src{{data.webpImageURL}} classdeferred-lazyload ng-class{ visible-img: imgLoaded, hidden-img: !imgLoaded } on-img-loadimgLoaded stylemax-height:110px; alt{{data.title}} title{{data.title}} name{{data.webpImageURL}} > /a> /div> /div> /div> !-- #endregion --> !-- #region Upcoming Virtual Events --> div ng-ifevents && events.length > 0> div classdecorator> h2 classbackground> span> Upcoming Events/span> a href/digitalevents/upcoming> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> div> div classflex events> div classflex row event ng-repeatevent in events> div classflex column center info> div classflex column center> div classname title{{event.eventName}} ng-bindevent.eventName>/div> div classdate> i classfa fa-calendar>/i> span ng-bindevent.eventStartDate | date: MMMM dd, yyyy>/span> /div> div classtime ng-initgetEventTimings(event)> i classfa fa-clock-o>/i> span ng-ifevent.utcStartDate && event.utcEndDate ng-bind(event.utcStartDate | date: HH:mm a: CDT) + - + (event.utcEndDate | date: HH:mm a: CDT)>/span> /div> div > !-- button titleREGISTER NOW> --> a classbtn ng-href{{event.eventLink}}>REGISTER NOW/a> !-- /button> --> /div> /div> /div> div classflex center img> img classlazyload lazy-load srcloading.gif name{{eventBannerimgPath}}{{event.bannerImage}} alt{{event.eventName}}> /div> /div> div classflex row event ng-ifevents.length 1> div classflex column center info> div classflex column center> div classf-width flex column center bold> Coming Soon...! /div> div> a ng-href classbtn>Watch Past Events/a> /div> /div> /div> div classflex center img> img lazy-load srcloading.gif namedigital_event.jpg> /div> /div> /div> /div> /div> !-- #endregion --> div classdecorator> h2 classbackground> span>Trending Products/span> a href/brw/designs> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!trendingProducts || trendingProducts.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-seven product-catalog> div ng-repeatdata in trendingProducts> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region Section - VIII --> div classflex row section-eight> !-- Shimmer placeholder for product ads --> span classproduct-catalog-shimmer ng-if!productAds_data || productAds_data.length 0 stylewidth: 100%; > span classproduct-shimmer stylewidth: 100%; min-width: 100%; max-width: 100%; min-height: 200px; > div classimage-shimmer> div classshimmer>/div> /div> /span> /span> div classflex row ng-repeatdata in productAds_data> div classprdImg-section ecom-product-image active-variant1 product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} saleprice{{data._source.salePrice}} variants{{data._source.variants.length}} definition-name{{data._source.definitionName}} >/div> div classflex column prdInfo> div classheader-section> a classheader-one fw-600 ng-binddata._source.name ng-ifdata && data._source ng-href{{ getProductUrl(data._source.definitionName, data._source.catalog, data._source.name, data._id) }} >/a> div classcontent title{{data._source.description}} ng-binddata._source.description>/div> /div> div classflex row review-section> div classflex column> div ecom-star-review review{{data._source.rating}}>/div> a href# classcolor-dimblack ng-ifdata._source.rating > 0 >Reviews/a> /div> div classflex column> div ecom-product-price classprice-section salePrice{{data._source.salePrice}} listPrice{{data._source.listPrice}} clubPrice{{data._source.clubPrice}} >/div> /div> /div> div classbtn-container> div classfavorites-btn aria-labelmark as favorite ng-clickupdateFavoritesList(data._id, ) ng-controllerFavoritesController idbtn_fav_{{data._id}} ng-mouseenteronListBtnHover($event); ng-classisItemInFavorites({{data._id}}) ? active : > span classtxt-uppercase> + List i classfa fa-heart>/i>/span> i classfa fa-spin fa-spinner>/i> div ng-iffavoriteGroups> ul classfav-groups idfavGroupsDropdownList stylez-index: 15;> li ng-clicktoggleNewFavoritesGroupModal(true, data._id);> - Create New Group - /li> li ng-repeatgroup in favoriteGroups | orderBy:customSortFavDefaultFunction :false track by $index ng-clickupdateFavoritesList(data._id, group.groupName) ng-bind(group.groupName undefined ? Default : group.groupName) + ( + group.count + ) >/li> /ul> /div> /div> button ng-clickaddToCart(id, true) classbtn-addCart flex center idbtn_{{id}} ng-controllerAddToCartController ng-class(customerCartRS && customerCartRS.indexOf(id) ! -1) ? active : > span> span ng-bind(customerCartRS && customerCartRS.indexOf(id) ! -1) ? CHECKOUT : ADD TO CART>/span> /span> i classfa fa-spin fa-spinner aria-labelloading>/i> i classfa fa-shopping-cart ml-5 aria-hiddentrue>/i> /button> /div> /div> /div> /div> !-- #endregion --> !-- #region Section - IX --> !-- #region New Designs --> div classdecorator> h2 classbackground> span>New Embroidery Designs/span> a href/newarrivals> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!newArrivals || newArrivals.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-nine product-catalog> div ng-repeatdata in newArrivals> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region New Fonts --> div classdecorator> h2 classbackground> span>New Design Fonts/span> a href/new/alphabets> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!newFonts || newFonts.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-nine product-catalog> div ng-repeatdata in newFonts> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region New Packs --> div classdecorator> h2 classbackground> span>New Design Packs/span> a href/new/packs> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!newPacks || newPacks.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-nine product-catalog> div ng-repeatdata in newPacks> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region New Supplies --> div classdecorator> h2 classbackground> span>New Supplies/span> a href/new/supplies> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!newSupplies || newSupplies.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-nine product-catalog> div ng-repeatdata in newSupplies> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region Sewing PDF Patterns --> div classdecorator> h2 classbackground> span>New PDF Sewing Patterns/span> a hrefnew/sewing-pdf-patterns> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!sewingPDFPatterns || sewingPDFPatterns.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-nine product-catalog> div ng-repeatdata in sewingPDFPatterns> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region Clothing PDF Patterns --> div classdecorator> h2 classbackground> span>New Clothing Sewing Patterns/span> a hrefnew/clothing-pdf-patterns> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!clothingPDFPatterns || clothingPDFPatterns.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-nine product-catalog> div ng-repeatdata in clothingPDFPatterns> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region New Fabrics --> div classdecorator> h2 classbackground> span>New Fabrics/span> a href/new/fabric> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!newFabrics || newFabrics.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-nine product-catalog> div ng-repeatdata in newFabrics> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #region New Machines --> div classdecorator> h2 classbackground> span>New Machines/span> a href/new/machine> span classview-all>View All i classfa fa-chevron-circle-right>/i>/span> /a> /h2> /div> !-- Product catalog shimmer placeholder --> div classproduct-catalog-shimmer ng-if!newMachines || newMachines.length 0> span classproduct-shimmer stylemin-width: 100%; max-width: 100%;> div classimage-shimmer> div classshimmer>/div> /div> div classcontent-shimmer> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> div classline shimmer>/div> /div> /span> /div> div classflex row section-nine product-catalog> div ng-repeatdata in newMachines> div ecom-product showbtnfalse product-code{{data._id}} name{{data._source.name}} vendor{{data._source.catalog}} variants{{data._source.variants.length}} saleprice{{data._source.salePrice}} listprice{{data._source.listPrice}} clubprice{{data._source.clubPrice}} rank{{data._source.saleRank}} definition-name{{data._source.definitionName}} >/div> /div> /div> !-- #endregion --> !-- #endregion --> div classdecorator> h2 classbackground border-blue> span classcolor-blue>Are You Sew Ready?/span> /h2> /div> !-- #region Section - X --> div classflex row section-ten ng-class{space-around: bottomAds.length 3}> div ng-repeatdata in bottomAds | limitTo: 3> a class ng-ifdata && data.adURL ng-href{{data.adURL}} ng-attr-aria-label{{data.title}} > img classlazyload lazy-load srcloading.gif name{{data.webpImageURL}} stylewidth: 100% alt{{data.title || Advertisement image}}> /a> div classflex column center> div classheading ng-bind-htmldata.title>/div> a ng-bind-htmldata.content ng-ifdata && data.adURL classcontent fw-600 cursor-pointer ng-href{{data.adURL}} ng-attr-aria-label{{data.title + - + data.content}} >/a> /div> /div> /div> !-- #endregion --> !-- #region Section-XI --> div classflex row section-eleven> div classside-section> div classbadge-section h-40> span classbadge bg-blue color-white> i classfa fa-users>/i> BLOG /span> /div> div classheader-one> Join embroiderers like you! /div> div classheader-two> Community Creations /div> div classimg-container> img lazy-load srcloading.gif nameneedle.svg aria-hiddentrue> /div> div classcontent> Interested in expanding your embroidery skills? Read our blog for the latest embroidery tips and tricks. Plus, use the forum to connect with embroiderers just like you. /div> div classbtn-container flex row> button titleEXPLORE BLOGS> a classfw-600 hrefhttps://www.annthegran.com/community>EXPLORE BLOGS/a> /button> /div> /div> div> div classheading> i classfa fa-users>/i> RECENT ARTICLES /div> div classcontent flex row> !-- Shimmer placeholder for articles --> span classflex row stylewidth: 100%; display: block; ng-if!articles_data || articles_data.length 0> div> div classshimmer-wrapper styleheight: 30px; margin-bottom: 10px;> div classshimmer>/div> /div> div classshimmer-wrapper styleheight: 20px; width: 70%; margin-bottom: 15px;> div classshimmer>/div> /div> div classshimmer-wrapper styleheight: 80px; margin-bottom: 15px;> div classshimmer>/div> /div> div classshimmer-wrapper styleheight: 36px; width: 200px; float: right;> div classshimmer>/div> /div> /div> /span> div ng-repeatdata in articles_data> div classbadge-section flex> span classbadge bg-green color-white> i classfa fa-star>/i> NEW /span> /div> div classheader fw-600 title {{data.title}}>a ng-hrefhttps://www.annthegran.com/community{{/post/ + data.postID + / + data.slug | lowercase}}>{{data.title}}/a>/div> div classheader-info> By: a stylecolor: inherit; ng-hrefhttps://www.annthegran.com/community/author/{{data.authorName ? (data.authorName | lowercase | replace: :-) : }} ng-binddata.authorName>/a> on span ng-binddata.dateCreated | date>/span> /div> div classarticle-content>span ng-binddata.description | limitTo :120 >/span> span ng-if data.description.length > 120>.../span>/div> div classbutton-container> button titleREAD MORE> a classcolor-white ng-hrefhttps://www.annthegran.com/community{{/post/ + data.postID + / + data.slug | lowercase}}> READ MORE i classml-5 fa fa-chevron-circle-right>/i> /a> /button> /div> /div> /div> /div> /div> !-- #endregion --> div classflex online-ann> img onclickLC_API.open_chat_window() idchat-button altanns lazy-load srcloading.gif name{{online-ann.webp}} titleChat online>/div>script typetext/javascript> window.__lc window.__lc || {}; window.__lc.license 7170371; window.__lc.chat_between_groups false; var isLiveChatLoaded false; function loadLiveChat() { if (!isLiveChatLoaded) { isLiveChatLoaded true; var script document.createElement(script); script.async true; script.type text/javascript; script.src https://cdn.livechatinc.com/tracking.js; document.head.appendChild(script); } } // Load LiveChat after 15 seconds automatically setTimeout(loadLiveChat, 15000); // Load LiveChat immediately if the user clicks the chat button before 5 seconds document.addEventListener(click, function (event) { var target event.target; if (target.closest(#chat-button) || target.closest(.livechat-widget)) { loadLiveChat(); } }); var LC_API LC_API || {}; LC_API.open_chat_window function () { loadLiveChat(); // Ensure LiveChat is loaded before opening the chat window }; LC_API.on_chat_state_changed function (data) { if (typeof liveChatStatusChanged ! undefined) { liveChatStatusChanged(data); } }; LC_API.on_prechat_survey_submitted function (data) { if (typeof preChatSurverySubmitted ! undefined) { preChatSurverySubmitted(data); } };/script>noscript>a hrefhttps://www.livechat.com/chat-with/7170371/ relnofollow>Chat with us/a>, powered by a hrefhttps://www.livechat.com/?welcome relnoopener nofollow target_blank>LiveChat/a>/noscript> /div> /div>/div>link typetext/css relstylesheet mediaall hrefhttps://www.annthegran.com/themes/assets/static/bundle/homepage-styles.css?v_w5a5un4k1p9yr_qhyrqht2d1rirxajcomezkqbj1je >script srchttps://www.annthegran.com/themes/assets/static/bundle/homepage-scripts.js?vn99umeg4rqtcsksxg0timpi5neuobdtmgxfyx9wfwgu>/script> /main> modal classloader idcustomLoader loader> div classloader custom> img srcloader.gif aria-hiddentrue altloader> /div>/modal>modal idloaderModal classhide-section> img srcloader.gif classajax-loader altloader/>/modal> ecom-notification-modal>/ecom-notification-modal> ecom-footer-top-selector>/ecom-footer-top-selector> ecom-footer-selector>/ecom-footer-selector> div classbottom-footer snippet> div classwrapper> div classflex align-center > div> Copyright © {{ currentDate | date:yyyy}} - AnnTheGran.com /div> /div> /div>/div> script typetext/ng-template idecom-star-review.html> div classimg-stars ng-ifreview > 0> img aria-hiddentrue ng-class{ml-5 : !$first} srcstar.png onmousedownreturn false; oncontextmenureturn false; onselectstartreturn false ng-repeatdata in getReviewArray() track by $index altreview > img aria-hiddentrue ng-class{ml-5 : !$first} srcbstar_half.gif onmousedownreturn false; oncontextmenureturn false; onselectstartreturn false ng-ifisHalfStar altreview > img aria-hiddentrue ng-class{ml-5 : !$first} srcempty-star.png onmousedownreturn false; oncontextmenureturn false; onselectstartreturn false ng-repeatdata in getEmptyReviewArray() track by $index altreview > span ng-showratings href# classreview-count styleposition: absolute; margin-left: 5px; ng-clicktoReview() ng-bind( + ratings + )>/span> /div> div classnot-rated ng-ifreview 0 stylecolor: #b7b7b7;> Not Yet Rated /div>/script> !-- #region Styles -->link typetext/css relstylesheet mediaall hrefhttps://www.annthegran.com/themes/assets/static/bundle/currency-converter-styles.css?vkpjmflnyaxshe22-8ivpzz8ricq12tegjwhyl8b9jwy >!-- #endregion -->!-- #region Currency Converter -->div ng-controllercurrencyConverterController ng-cloakcurrencyConversion> !-- #region Convert Button --> button ng-ifcurrencyConversion.localCurrency classbtn-currency-converter ng-clicktoggleCurrency() stylez-index: 100;> Convert to span ng-ifcurrencyConversion.displayCurrency currencyConversion.localCurrency ng-bindcurrencyConversion.storeCurrency.symbol + ( + currencyConversion.storeCurrency.currencyCode + )> /span> span ng-ifcurrencyConversion.displayCurrency currencyConversion.storeCurrency ng-bindcurrencyConversion.localCurrency.symbol + ( + currencyConversion.localCurrency.currencyCode + )> /span> /button> !-- #endregion --> !-- #region Checkout Confirmation Modal --> div classcurrency-converter-modal-wrapper stylez-index: 15 ng-ifcurrencyConversion.showModal> div classcurrency-converter-modal-container> div classcurrency-converter-modal ng-clickcurrencyConverterExitConfirmed()> div> This is the last page you will see the estimated pricing in {{currencyConversion.localCurrency.symbol + ( + currencyConversion.localCurrency.currencyCode + ) + ,}} after this you will see pricing in US dollars. /div> small> i>(Click anywhere to continue)/i> /small> /div> /div> /div> !-- #endregion -->/div>!-- #endregion -->!-- #region Scripts -->script srchttps://www.annthegran.com/themes/assets/static/bundle/currencyconverter-scripts.js?vt_gga05mwsevfexueo-bejiddvkiczx4wfplylbmwc0>/script>!-- #endregion --> ecom-download-progress>/ecom-download-progress> script srchttps://www.annthegran.com/themes/assets/static/bundle/emailcampaign-scripts.js?vtpjm3wzehbmzkcopctmn6jasnmad5ua97bo88dil9be>/script>link typetext/css relstylesheet mediaall hrefhttps://www.annthegran.com/themes/assets/static/bundle/emailcampaign-styles.css?vgv8fg-clsf67pmtqabrlhku9yichwvmp1w0xu649v2m >div classsticky-signup-btn data-ng-if$root.showSignupBtn data-ng-controllermainController data-ng-clickshowEmailSignup()> GET 50% OFF! span classclose-icon data-ng-clickdismissSignup(); $event.stopPropagation();>×/span>/div> script> // For Header Dropdown $(.dropdown).hover(function () { $(this).find(.dropdown-menu).addClass(active).css(z-index, 15); }, function () { $(this).find(.dropdown-menu).removeClass(active).css(z-index, 3); }); /script> script> window.currentDate 1/10/2026 11:42:30 PM; window.resetAdsCacheState false; /script> footer> script srchttps://www.annthegran.com/themes/assets/static/bundle/header-scripts.js?vq63p5gwuicfaxpfsiha2twiuxo-qpitxkem_t_nccky>/script> link typetext/css relstylesheet mediaall href//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css > /footer> /body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]