{"version":3,"sources":["webpack:///./cartridges/app_harmony/cartridge/client/default/js/widgets/product/ProductDescriptionItem.js"],"names":["keyCode","Object","freeze","SPACE","ENTER","eventType","CLICK","KEYDOWN","Widget","ProductDescriptionItem","prefs","hiddenClass","collapsedClass","toggleContent","isVisible","ref","toggleClass","attr","handleMoreLessLinks","_el","event","preventEventActions","isExpanded","type","stopPropagation","preventDefault"],"mappings":";;;;;;;;;;AAAA;AAAA;;;;;;AAMA,MAAMA,OAAO,GAAGC,MAAM,CAACC,MAAP,CAAc;AAC1BC,OAAK,EAAE,EADmB;AAE1BC,OAAK,EAAE;AAFmB,CAAd,CAAhB;AAKA,MAAMC,SAAS,GAAGJ,MAAM,CAACC,MAAP,CAAc;AAC5BI,OAAK,EAAE,OADqB;AAE5BC,SAAO,EAAE;AAFmB,CAAd,CAAlB;AAKe,yEAAUC,MAAV,EAAkB;AAC7B,SAAO,MAAMC,sBAAN,SAAqCD,MAArC,CAA4C;AAC/CE,SAAK,GAAG;AACJ,aAAO;AACHC,mBAAW,EAAE,UADV;AAEHC,sBAAc,EAAE,aAFb;AAGH,WAAG,MAAMF,KAAN;AAHA,OAAP;AAKH;;AAEDG,iBAAa,CAACC,SAAD,EAAY;AACrB,WAAKC,GAAL,CAAS,MAAT,EAAiBC,WAAjB,CAA6B,KAAKN,KAAL,GAAaE,cAA1C;AACA,WAAKG,GAAL,CAAS,iBAAT,EACKC,WADL,CACiB,KAAKN,KAAL,GAAaC,WAD9B,EAEKM,IAFL,CAEU,aAFV,EAE0B,GAAEH,SAAU,EAFtC;AAGA,WAAKC,GAAL,CAAS,eAAT,EAA0BE,IAA1B,CAA+B,eAA/B,EAAiD,GAAE,CAACH,SAAU,EAA9D;AACH;AAED;;;;;AAGAI,uBAAmB,CAACC,GAAD,EAAMC,KAAN,EAAa;AAC5B,UAAIC,mBAAmB,GAAG,KAA1B;AACA,YAAMC,UAAU,GAAG,KAAKP,GAAL,CAAS,eAAT,EAA0BE,IAA1B,CAA+B,eAA/B,MAAoD,MAAvE;;AAEA,cAAQG,KAAK,CAACG,IAAd;AACI,aAAKlB,SAAS,CAACC,KAAf;AACI,eAAKO,aAAL,CAAmBS,UAAnB;AACA;;AACJ,aAAKjB,SAAS,CAACE,OAAf;AACI,cAAIa,KAAK,CAACpB,OAAN,KAAkBA,OAAO,CAACG,KAA1B,IAAmCiB,KAAK,CAACpB,OAAN,KAAkBA,OAAO,CAACI,KAAjE,EAAwE;AACpE,iBAAKS,aAAL,CAAmBS,UAAnB;AACAD,+BAAmB,GAAG,IAAtB;AACH;;AACD;;AACJ;AACI;AAXR;;AAcA,UAAIA,mBAAJ,EAAyB;AACrBD,aAAK,CAACI,eAAN;AACAJ,aAAK,CAACK,cAAN;AACH;AACJ;;AA1C8C,GAAnD;AA4CH,C","file":"7.bundle.js","sourcesContent":["/**\n * @description ProductDescriptionItem widget implementation.\n * It is used for handling product's description section\n * @param {Widget} Widget Base widget for extending\n * @returns {typeof ProductDescriptionItem} - ProductDescriptionItem class\n */\nconst keyCode = Object.freeze({\n SPACE: 32,\n ENTER: 13\n});\n\nconst eventType = Object.freeze({\n CLICK: 'click',\n KEYDOWN: 'keydown'\n});\n\nexport default function (Widget) {\n return class ProductDescriptionItem extends Widget {\n prefs() {\n return {\n hiddenClass: 'm-hidden',\n collapsedClass: 'm-collapsed',\n ...super.prefs()\n };\n }\n\n toggleContent(isVisible) {\n this.ref('self').toggleClass(this.prefs().collapsedClass);\n this.ref('expandable-item')\n .toggleClass(this.prefs().hiddenClass)\n .attr('aria-hidden', `${isVisible}`);\n this.ref('controlButton').attr('aria-expanded', `${!isVisible}`);\n }\n\n /**\n * @description Handle triggering `view more` / `view less` links\n */\n handleMoreLessLinks(_el, event) {\n let preventEventActions = false;\n const isExpanded = this.ref('controlButton').attr('aria-expanded') === 'true';\n\n switch (event.type) {\n case eventType.CLICK:\n this.toggleContent(isExpanded);\n break;\n case eventType.KEYDOWN:\n if (event.keyCode === keyCode.SPACE || event.keyCode === keyCode.ENTER) {\n this.toggleContent(isExpanded);\n preventEventActions = true;\n }\n break;\n default:\n return;\n }\n\n if (preventEventActions) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n}\n"],"sourceRoot":""}