news

Saturday, March 19, 2022

Victoria Myers

Good morning lovely knitters!  What a beautiful day (we had yesterday)!  Ah well, at least today will be a good knitting day!  And to add some sunshine to this dreary one - there were NEW Sunshiney Firey Mad Balls this week!

 

We also got the NEW spring Noro Magazine this week!  It isn't online yet, so you'll have to swim in to nab one!  Lots of crochet in this issue and some other really awesome patterns!

This last Thursday was our last Zoom knit night (hopefully) which means??!?!  Knit night is back in person starting this coming Thursday (3/24) and that also means we'll have a later hours on Thursday again!  We'll be open until 8 for knit night and yarn fondling of all sorts on Thursdays!

I've been noticing a lot of people ordering our Snooze Kits lately even though I haven't talked about this fun project in ages.  I wonder if everyone is making nice little travel blankies for upcoming and despertaely needed travels?  Anyway, I refreshed the listing and added some NEW colorsets in the NEW Silk Garden colors!  This is a super easy, quick knit, and the result is a lovely, light, but cozy blanket that rolls up into a perfect little pillow case for traveling or storing!

I know loads of you have a Karma Blanket on the needles for Boston Medical Center, but if you missed our post about it, see all the details here!

Island Yarn 
189 Main Street
Maynard, MA  01754
Hours: Wednesday 12 - 5, Thursday 12 - 8, Friday and 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(), ); }