PageSourceSearch

https://www.mrappliance.ca/brand/_assets/js/o2/opus2.service-list-module.d4bfc6e02a0c5550dc25.js

js mrappliance.ca collected 2026-10-07 01:59:28 UTC 11,656 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkcrownpeak_opus2=self.webpackChunkcrownpeak_opus2||[]).push([["service-list-module"],{"./src/js/opus2/header/brandLocalAccordion.ts"(e,t,c){function i(e){const t=window.location.origin,c=localStorage.getItem("franchiseWebLocationId"),i=document.getElementById("weblocationId"),a=(null==i?void 0:i.value)?null==i?void 0:i.value:c,o=localStorage.getItem("dbaName");let n=[];const s=document.querySelector(".residential-accordion .req-call-tabs");return o&&s?n.push("serviceaccordion","show",e,a,o):o&&n.push("serviceaccordion","hide",e,a,o),`${t}/${n.join("/")}`}function a(){const e=document.querySelector(".residential-accordion"),t=null==e?void 0:e.querySelector(".req-call-tabs");null==t||t.addEventListener("click",t=>{const c=t.target,i=e.querySelector(`#${c.htmlFor}`);if(i){i.checked=!0;const e=i.dataset.nbly;e&&function(e){var t;const c=document.querySelector(".residential-accordion"),i=null==c?void 0:c.querySelectorAll(".accordion-icon-list .card-list"),a=document.querySelector(".residential-accordion .accordion-icon-list");a&&(a.style.display=""),null==i||i.forEach(e=>{e.style.display="none"});const o={residential:null==c?void 0:c.querySelectorAll(".authorable-residential"),commercial:null==c?void 0:c.querySelectorAll(".authorable-commercial"),auto:null==c?void 0:c.querySelectorAll(".authorable-auto"),emergency:null==c?void 0:c.querySelectorAll(".authorable-emergency")};null===(t=Object.values(o))||void 0===t||t.forEach(e=>{null==e||e.forEach(e=>{e.style.display="none"})});const n=`service-acc-tab--${e.replace("accor-","")}`,s=null==c?void 0:c.querySelectorAll(`.accordion-icon-list .${n}`);null==s||s.forEach(e=>{e.style.display="flex"});const r={"accor-residential":["residential"],"accor-commercial":["commercial"],"accor-auto":["auto"],"accor-emergency":["emergency"]}[e]||[];r&&o[r].forEach(e=>{e.style.display="flex"})}(e)}})}c.d(t,{attachNewTabListeners:()=>a,getServiceAccordionPath:()=>i})},"./src/js/opus2/services/list.ts"(e,t,c){c.r(t),c.d(t,{ServiceList:()=>r});var i=c(/*! tslib */"./node_modules/tslib/tslib.es6.mjs"),a=c(/*! ../apiCaching/apiWrapper */"./src/js/opus2/apiCaching/apiWrapper.ts"),o=c(/*! ../config/cachingConfig */"./src/js/opus2/config/cachingConfig.ts"),n=c(/*! ../header/brandLocalAccordion */"./src/js/opus2/header/brandLocalAccordion.ts"),s=c(/*! ../util/pageSettings */"./src/js/opus2/util/pageSettings.ts");class r{constructor(){this.maxCharacterCount=375,document.addEventListener("DOMContentLoaded",()=>{this.initialize()})}initialize(){return(0,i.__awaiter)(this,void 0,void 0,function*(){this.showReadMoreButton();const e=localStorage.getItem("dbaName");localStorage.getItem("weblocationId")&&e&&!window.location.href.includes(e)&&this.localAccordion(),this.appendAuthorableItems(),this.updateAuthorableItems(),(0,n.attachNewTabListeners)()})}appendAuthorableItems(){[{tabId:"accor-residential",authorableClass:".authorable-residential"},{tabId:"accor-commercial",authorableClass:".authorable-commercial"},{tabId:"accor-auto",authorableClass:".authorable-auto"},{tabId:"accor-emergency",authorableClass:".authorable-emergency"}].forEach(e=>{const t=document.querySelector(`#${e.tabId}`),c=document.querySelector(e.authorableClass);if(t&&c){const e=document.querySelector(".accordion-icon-list#accordion-service");null==e||e.appendChild(c)}})}localAccordion(){return(0,i.__awaiter)(this,void 0,void 0,function*(){if(this.hasServiceAccordion()){const e=this.hasSkipgroup(),t=(0,n.getServiceAccordionPath)(e);try{if(t){let e=yield(0,a.getCachedAPIResponse)(t,o.apiCaching.serviceAccordion,!1);e&&this.handleAccordionApiResponse(e)}}catch(e){console.error("Error in fetching accordion infor")}}})}handleAccordionApiResponse(e){const t=(new DOMParser).parseFromString(e,"text/html"),c=t.querySelectorAll("#ser-accordion-service-modifier li"),i=t.querySelectorAll("#ser-accordion > li");(null==c?void 0:c.length)>0&&this.appendListItems(".residential-block ul.req-call-tabs",c),(null==i?void 0:i.length)>0&&this.appendListItems(".residential-block ul.accordion-icon-list#accordion-service",i),this.appendAuthorableItems(),(0,n.attachNewTabListeners)(),"function"==typeof window.initFlowbite&&window.initFlowbite()}hasSkipgroup(){const e=(0,s.getPageSettings)("skipgrouping");return"true"===e||!0===e?"skipgroup":"showgroup"}hasServiceAccordion(){const e=(0,s.getPageSettings)("containsserviceaccordion"),t=(0,s.getPageSettings)("pagescope");return("true"===e||!0===e)&&"national"===t}appendListItems(e,t){const c=document.querySelector(e);
1if(c){c.innerHTML="";let e="";t.forEach(t=>{e+=t.outerHTML}),c.insertAdjacentHTML("beforeend",e)}}showReadMoreButton(){const e=document.querySelector(".read-more-wrap .residential-text"),t=document.getElementById("readMoreButton");if(e&&t){e.innerText.length<this.maxCharacterCount&&t.classList.add("hidden")}}updateAuthorableItems(){var e;const t=[];this.authorableItems=document.querySelectorAll("ul#accordion-service > li");let c=document.getElementById("accordion-service");const i=document.querySelector('input[name="request-call"]:checked');let a="";if(i){const e=i.value;"0"===e?a="residential":"1"===e?a="commercial":"2"===e?a="auto":"3"===e&&(a="emergency")}const o=document.querySelectorAll(".service-acc-tab--residential").length,n=document.querySelectorAll(".service-acc-tab--commercial").length,s=document.querySelectorAll(".service-acc-tab--auto").length,r=document.querySelectorAll(".service-acc-tab--emergency").length;let l=o+1,d=n+1,u=s+1,h=r+1;null===(e=this.authorableItems)||void 0===e||e.forEach((e,c)=>{var i;if(Array.from(e.classList).some(e=>e.startsWith("authorable-"))){e.style.display="none";const c=null===(i=e.querySelector(".card-title"))||void 0===i?void 0:i.textContent;let o,n,s="residential";e.classList.contains("authorable-commercial")?s="commercial":e.classList.contains("authorable-auto")?s="auto":e.classList.contains("authorable-emergency")&&(s="emergency"),o=s===a?"flex":"none",n="residential"===s?l:"commercial"===s?d:"auto"===s?u:"emergency"===s?h:0;const r=`service-${s}-${n}`;let m="";if(e.querySelector("button")){const t=e.querySelector(".accordion-list"),i=!t||0===t.children.length;m+=`\n                        <li class="card-list service-acc-tab--${s}" style="display: ${o};">\n                            <button type="button" class="${i?"list-accordion-btn disabled":"list-accordion-btn"}" data-accordion-target="#${r}" aria-expanded="false" aria-controls="${r}" ${i?"disabled":""}>\n                                <div class="icon-block">\n                                    <div class="icon-wrap">\n                                        <svg aria-hidden="true" class="icon">\n                                            <use xlink:href="/brand/_assets/images/icons/hero-icon-sprite.svg#star-primary"></use>\n                                        </svg>\n                                    </div>\n                                    <div class="icon-block-text">\n                                        <h3 class="card-title">${c}</h3>\n                                    </div>\n                                </div>\n                                ${i?"":'\n                                    <div class="accordion-close accordion-arrow">\n                                        <img src="/brand/_assets/images/icons/plus.svg" alt="Plus" width="16" height="16">\n                                    </div>\n                                    <div class="accordion-open accordion-arrow">\n                                        <img src="/brand/_assets/images/icons/minus.svg" alt="Minus" width="16" height="16">\n                                    </div>\n                                '}\n                            </button>\n                            <div class="card-info hidden" id="${r}">\n                                <ul class="accordion-list">\n                    `,t&&t.querySelectorAll("li").forEach(e=>{const t=e.textContent,c=e.querySelector("a"),i=c?c.getAttribute("href"):"#",a=c?c.getAttribute("target"):"_self";m+=`\n                                <li><a href="${i}" target="${a}">${t}</a></li>\n                            `}),m+="\n                                </ul>\n                            </div>\n                        </li>\n                    "}else if(e.querySelector("a")){const t=e.querySelector("a"),i=t?t.getAttribute("href"):"#",a=t?t.getAttribute("target"):"_self";m+=`\n                        <li class="card-list service-acc-tab--${s}" style="display: ${o};">\n                            <a id="${r}" href="${i}" target="${a}" class="list-accordion-btn">\n                                <div class="icon-block">\n                                    <div class="icon-wrap">\n                                        <svg aria-hidden="true" class="icon">\n                                            <use xlink:href="/brand/_assets/images/icons/hero-icon-sprite.svg#star-primary"></use>\n                                        </svg>\n                                    </div>\n                                    <div class="icon-block-text">\n                                        <h3 class="card-title">${c}</h3>\n                                    </div>\n                                </div>\n                                <svg aria-hidden="true" class="accordion-arrow">\n                                    <use xlink:href="/brand/_assets/images/icons/hero-icon-sprite.svg#arrow-small-right-black"></use>\n                                </svg>\n                            </a>\n                        </li>\n                    `}else m+=`\n                        <li class="card-list service-acc-tab--${s}" style="display: ${o};">\n                            <button class="list-accordion-btn disabled" disabled aria-disabled="true">\n                                <div class="icon-block">\n                                    <div class="icon-wrap">\n                                        <svg aria-hidden="true"  class="icon">\n                                            <use xlink:href="/brand/_assets/images/icons/hero-icon-sprite.svg#star-primary"></use>\n                                        </svg>\n                                    </div>\n                                    <div class="icon-block-text">\n                                        <h3 class="card-title">${c}</h3>\n                                    </div>\n                                </div>\n                                <div class="accordion-close accordion-arrow hidden">\n                                    <img src="/brand/_assets/images/icons/plus.svg" alt="Plus" width="16" height="16">\n                                </div>\n                                <div class="accordion-open accordion-arrow hidden">\n                                    <img src="/brand/_assets/images/icons/minus.svg" alt="Minus" width="16" height="16">\n                                </div>\n                            </button>\n                            <div class="card-info hidden" id="${r}">\n                                <ul class="accordion-list">\n                                </ul>\n                            </div>\n                        </li>\n                    `;t.push(m),"residential"===s?l++:"commercial"===s?d++:"auto"===s?u++:"emergency"===s&&h++,e.remove()}}
1),t.forEach(e=>{null==c||c.insertAdjacentHTML("beforeend",e);const t=null==c?void 0:c.querySelectorAll("li");null==t||t.forEach(e=>{e.classList.contains("service-acc-tab--residential")&&(e.style.display="flex")})})}}new r}}]);
2//# sourceMappingURL=opus2.service-list-module.d4bfc6e02a0c5550dc25.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.