news

Saturday, December 16, 2023

Victoria Myers

Good morning lovely yarners!  I know that it is serious CRUNCH time now and you are all busily weaving in ends and blocking and wrapping, but we've got a few fun things happening - all to reward you for all of your yarning goodness this season!

First - the 12 Days Cowl is SHIPPING NOW!  If you order today, it should still arrive in time for you to start your selfish knitting season with a bang!  It may still arrive if you wait until next week, but yuh know - shipping this time of year - it is a little dicey!

For those of you who still want to bang out a few chunky hats and cowls, I dyed some new LUSCIOUS skeins of Singulush!

We've got boatloads of great gifts for knitters and crocheters in store as well as giftcards!  So make sure your last minute shoppers know where to get you the good stuff!

Don't forget to vote on the Shawl Showdown in this week's podcast!  Next Monday is our last Podcast of the year and the FINAL round of the Shawl Showdown!  The pattern chosen in that final round will be FREE for the month of January!

Our hours will remain the same through the holiday (Weds - Sat, 12 - 5) since Christmas and New Year's are on Monday when we are closed anyway.

There will be no Sunday clinic after tomorrow until the new year since both Christmas Eve and New Year's Eve fall on Sunday.  Make sure you get yourself signed up for our great winter classes!

Ok - I know we're all super busy so I tried to keep it short and to the point for once!  I hope to see you all this lovely day!

 

Island Yarn 

189 Main Street
Maynard, MA  01754
Hours: Wednesday through Saturday, 12 - 5

Leave a Comment

Please note, comments must be approved before they are published

const selectVariantByClickingImage = { // Create variant images from productJson object _createVariantImage: function (product) { const variantImageObject = {}; product.variants.forEach((variant) => { if ( typeof variant.featured_image !== 'undefined' && variant.featured_image !== null ) { const variantImage = variant.featured_image.src .split('?')[0] .replace(/http(s)?:/, ''); variantImageObject[variantImage] = variantImageObject[variantImage] || {}; product.options.forEach((option, index) => { const optionValue = variant.options[index]; const optionKey = `option-${index}`; if ( typeof variantImageObject[variantImage][optionKey] === 'undefined' ) { variantImageObject[variantImage][optionKey] = optionValue; } else { const oldValue = variantImageObject[variantImage][optionKey]; if (oldValue !== null && oldValue !== optionValue) { variantImageObject[variantImage][optionKey] = null; } } }); } }); return variantImageObject; }, _updateVariant: function (event, id, product, variantImages) { const arrImage = event.target.src .split('?')[0] .replace(/http(s)?:/, '') .split('.'); const strExtention = arrImage.pop(); const strRemaining = arrImage.pop().replace(/_[a-zA-Z0-9@]+$/, ''); const strNewImage = `${arrImage.join('.')}.${strRemaining}.${strExtention}`; if (typeof variantImages[strNewImage] !== 'undefined') { product.variants.forEach((option, index) => { const optionValue = variantImages[strNewImage][`option-${index}`]; if (optionValue !== null && optionValue !== undefined) { const selects = document.querySelectorAll('#'+ id + ' [class*=single-option-selector]'); const options = selects[index].options; for (let option, n = 0; (option = options[n]); n += 1) { if (option.value === optionValue) { selects[index].selectedIndex = n; selects[index].dispatchEvent(new Event('change')); break; } } } }); } }, _selectVariant: function() { const productJson = document.querySelectorAll('[id^=ProductJson-'); if (productJson.length > 0) { productJson.forEach((product) => { const sectionId = product.id.replace("ProductJson-", "shopify-section-"); const thumbnails = document.querySelectorAll('#'+ sectionId + ' img[src*="/products/"]'); if (thumbnails.length > 1) { const productObject = JSON.parse(product.innerHTML); const variantImages = this._createVariantImage(productObject); // need to check variants > 1 if (productObject.variants.length > 1) { thumbnails.forEach((thumbnail) => { thumbnail.addEventListener('click', (e) => this._updateVariant(e, sectionId, productObject, variantImages), ); }); } } }); } }, }; if (document.readyState !== 'loading') { selectVariantByClickingImage._selectVariant(); } else { document.addEventListener( 'DOMContentLoaded', selectVariantByClickingImage._selectVariant(), ); }