Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers KSM5THDHSS | KitchenAid (2024)

Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers

Model: KSM5THDHSS

Model: KSM5THDHSS

KSM5THDHSS

Model: KSM5THDHSS

Hurry! Limited Time Offer Ends Soon

Customize Your Stand Mixer (Free)

Personalize your stand mixer with laser engraving and special offers on additional bowls and attachments. Available on select colors.

CUSTOMIZE IT

Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers KSM5THDHSS | KitchenAid (1)

'; setTimeout(function (){ if (window.location.href.indexOf("ksm150") > -1) { if (window.digitalData.product[0].productInfo.availability == "inStock"){ $(".productvariants").append(customSection); } } }, 5000); // How long you want the delay to be, measured in milliseconds. });

Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers KSM5THDHSS | KitchenAid (2)

Augmented Reality

DOES IT FIT IN YOUR SPACE?

Use your camera to view in your room.

Preview in your space

Use your phone camera to see it in your space.

`; class AgileVideoComponent extends HTMLElement { constructor() { super(); this.cfUrl = this.getAttribute("cf-data-url"); this.vidUniqId = `video-`+String(Date.now()); this.jsonData = {}; this.urlSku = ""; this.pageType = window.digitalData.page.pageInfo.pageType; this.pageType = 'productdetail'; if (this.pageType.includes("productdetail")) { this.urlSku = window.location.pathname.split('p.').pop().split('.') } // ===================== ATTACHING SHADOW AND SETTING DELEGATES FOCUS TO MAKE ELEMENTS INSIDE THE COMPONENT FOCUSABLE ===================== this.attachShadow({ mode: "open", delegatesFocus: true }); this.shadowRoot.appendChild(pdpTemplate.content.cloneNode(true)); this.classList.add('hidden') } connectedCallback() { this.shadowRoot.querySelector('[name=play-icon]').addEventListener('slotchange', (e)=>{ // *** Can I move this to document scoped CSS since it cannot be changed from the within the component scoped styles? *** // If/when this is moved to codebase, we can bring in and use YT internally, which would eliminate the need to bring these in via slots and allow us to use/style them within the component. const playSvg = this.querySelector('.play-svg svg') playSvg.setAttribute('style', 'height:100%;') playSvg.addEventListener('mouseenter',()=>{ playSvg.parentElement.style.scale = '1.15' }) playSvg.addEventListener('mouseleave',()=>{ playSvg.parentElement.style.scale = '1' }) // ************* }) const modal = document.getElementById(this.getAttribute('modal-id')) // if(!window.location.host.includes('aem-author.whirlpool') ){ // this.classList.add('hidden') // }else if(window.location.host.includes('aem-author.whirlpool') ){ this.classList.remove('hidden') this.shadowRoot.querySelector('.headline').textContent = 'Agile Video Placeholder' this.closest('.xf-content-height').style.margin = '0'; this.shadowRoot.querySelector('.img-placeholder').style.display = 'inline-block' } // *** Fetch Content Fragment, Or JSON Data *** // // this.getCfData.bind(this)(); document.addEventListener('readystatechange', ()=>this.getCfData.bind(this)() ) // ************* // } // ===================== FETCH CONTENT FRAGMENT/JSON DATA ===================== // **** Newest Version uses web-workers to handle most of the logic, that will further improve the performance as nearly all the logic will be taken off the main thread **** async getCfData () { if(document.readyState == 'complete' ){ await fetch(this.cfUrl) .then( response => response.json() ) .then( data => this.jsonData = data ) .then( () => this.parseSet.bind(this)(this.jsonData) ) .catch( err => console.log("Getting cf data failed: ", err)) } } // ===================== PARSE CONTENT FRAGMENT DATA ===================== // **** Newest Version uses web-workers to handle most of the logic, that will further improve the performance as nearly all the logic will be taken off the main thread **** async parseSet(data) { let cfObj = this.jsonData || data;// console.log(cfObj, this.urlSku) let foundVid = cfObj["videos"].forEach((vid, i) => { let loadVid = this.urlSku.filter(item=>{ if(!vid["skus"])return return vid["skus"].includes(item) }) // console.log(loadVid) if (this.pageType.includes("productdetail") && loadVid.length>0 ) { this.setPdpVidAttrs({ overline: vid.overline, headline: vid.headline, subtitle: vid.subtitle, dataVideoId: vid.dataVideoId, mobileImg: vid.mobileImg, desktopImg: vid.desktopImg, ctaText: vid.ctaText, ctaTitle: vid.ctaTitle, dataUniqueId: this.vidUniqId, }); } }); } // ===================== SET ATTRIBUTES ===================== setPdpVidAttrs = (vidDataToRender) => { // ===================== CONTENT CARD SELECTORS ===================== const vidSel = this.shadowRoot ? { overline: this.shadowRoot.querySelector(".overline"), headline: this.shadowRoot.querySelector(".headline"), subtitle: this.shadowRoot.querySelector(".subtitle"), ctaText: this.querySelector(".platform-components-video__button .button-text"), playSvg: this.querySelector(".play-svg"), playBtn: this.querySelector('.platform-components-video__button'), desktopImg: this.shadowRoot.querySelector('[media="(min-width: 768px)"]'), mobileImg: this.shadowRoot.querySelector('[media="(max-width: 767px)"]'), img: this.shadowRoot.querySelector( ".image" ), } : ""; this.videoId = vidDataToRender.dataVideoId // Check to see if the agile-video element has been hydrated first to avoid unneccessary work. if(!this.getAttribute('hyrdrated')){ for(const prop in vidDataToRender){ switch(prop){ case 'overline': let contentContainer = this.shadowRoot.querySelector('.agile-pdp-content') let overline = document.createElement('h1') contentContainer.insertAdjacentElement('afterbegin',overline) overline.textContent = vidDataToRender[prop] overline.classList.add('overline') break; case 'headline': // Check to see if ® is in the text, if it is, superscript it vidDataToRender[prop].includes('®') ? vidSel[prop].innerHTML = vidDataToRender[prop].replace('®','®') : vidSel[prop].textContent = vidDataToRender[prop] break; case 'subtitle': // Check to see if ® is in the text, if it is, superscript it vidDataToRender[prop].includes('®') ? vidSel[prop].innerHTML = vidDataToRender[prop].replace('®','®') : vidSel[prop].textContent = vidDataToRender[prop] break; case 'desktopImg': vidSel[prop].getAttribute('srcset', vidDataToRender[prop]) vidSel["img"].setAttribute('src', (window.innerWidth >= 768 ? vidDataToRender[prop] :vidDataToRender["mobileImg"])) break; case 'mobileImg': vidSel[prop].getAttribute('srcset', vidDataToRender[prop]) break; case 'ctaTitle': vidSel["playSvg"].setAttribute('title', vidDataToRender[prop]) vidSel["playBtn"].setAttribute('title', vidDataToRender[prop]) break; case 'dataVideoId': {vidSel["playSvg"].setAttribute('data-video-id', vidDataToRender[prop]) vidSel["playBtn"].setAttribute('data-video-id', vidDataToRender[prop])} break; case 'dataUniqueId': { vidSel["playSvg"].setAttribute('data-unique-id', this.vidUniqId) vidSel["playBtn"].setAttribute('data-unique-id', this.vidUniqId)} break; } } } this.setAttribute('hydrated', ''); this.classList.remove('hidden'); }; } // ===================== CHECK TO MAKE SURE ELEMENT ISN'T ALREADY REGISTERED & REGISTER ===================== if (!customElements.get("agile-video")) { window.customElements.define("agile-video", AgileVideoComponent); }

How to Preview in Your Space

Scan QR Code to view product in your space

  • Point your Phone Camera at a flat surface

    Try a different space if you cannot view the product

  • Moving the product in your space

    Use one finger to move product

  • Scale to see product detail

    Use two fingers to pinch, scale, and rotate product

  • Tap twice to reset

    Return to original scale by double tapping with one finger on the product

Augmented Reality experience is currently supported on the following devices: iPhone on iOS 12+ Android 8.0+ with ARCore 1.9 support

Get Started

Key Features

Long-lasting Durability

Easy To Clean

For KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers

Model KSM5THDHSS includes

Color:

Other

Hurry! Limited Time Offer Ends Soon

Sign in to unlock lower pricing

Temporarily out of stock

Success!

We will send you an email when this product is back in stock. Thank you.

in.stock.toast.message

Provide your ZIP code to check availability in your area.

Estimating In-Home Delivery for ...

Change this location?

Estimated Shipping Date for :

product.tray.arrival.date.unavailable.label

Change this location?

Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers KSM5THDHSS | KitchenAid (3) Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers KSM5THDHSS | KitchenAid (4) Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers KSM5THDHSS | KitchenAid (5) Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers KSM5THDHSS | KitchenAid (6)

Protection Plans(Optional)

  • No-hassle Claim Process
  • Service Scheduled at Your Convenience
  • Multi-year Protection Options
  • Convenient Payment Options

View Full Policy

Flexible Appliance Protection Plans for Your NeedsLearn More

Stainless Steel Dough Hook for KitchenAid® 4.5 and 5 Quart Tilt-Head Stand Mixers KSM5THDHSS | KitchenAid (2024)

References

Top Articles
Latest Posts
Article information

Author: Gregorio Kreiger

Last Updated:

Views: 6743

Rating: 4.7 / 5 (77 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Gregorio Kreiger

Birthday: 1994-12-18

Address: 89212 Tracey Ramp, Sunside, MT 08453-0951

Phone: +9014805370218

Job: Customer Designer

Hobby: Mountain biking, Orienteering, Hiking, Sewing, Backpacking, Mushroom hunting, Backpacking

Introduction: My name is Gregorio Kreiger, I am a tender, brainy, enthusiastic, combative, agreeable, gentle, gentle person who loves writing and wants to share my knowledge and understanding with you.