news

Saturday, January 14, 2023

Victoria Myers

Good morning lovely knitters!  I know - it is kind of a gloomy day out there, but that makes popping in and filling your eyes up with color an even better idea!  And really - all through the winter - I think that seeing all those colors everyday keeps me from getting the deep winter blues!

Speaking of color - we have another NEW Mad Ball pattern this week - the Mad Cape!  I love this one - it is so snuggly and easy!  It uses Alpaca Moda for the solid color which make it extra cozy!

And we also had a nice big batch of NEW Mad Balls this week!  For you neutral lovers - to make an understated, but still Mad project!

And MORE color!  We got our NEW colors of Cumulus Rainbow in!  Come get an eyeful (or an armful)!

That means, we also update our Love from Afar kits - these colors would make such gorgeous, cheery baby blankets for the new arrivals of this year!

I was also engaging in a little purging of the under the counter abyss - and I found loads of leftover free patterns and pattern packs from previous events - so come in today and score a free pattern or more!

Classes are starting back up tomorrow!  There's only a little space left in the Double Knitting classes, but also make sure you check out all of the others!

And don't forget to grab your Blurry kit while it is still discounted for January!!

Island Yarn 
189 Main Street
Maynard, MA  01754
Hours: Wednesday 12 - 5, Thursday 12 - 6, Friday and Saturday,

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(), ); }