{"version":3,"sources":["webpack:///./cartridges/app_harmony/cartridge/client/default/js/widgets/product/HarmonyProductTile.js"],"names":["ProductTile","HarmonyProductTile","init","eventBus","on","availabilityUpdate","params","renderAvailability","renderAddToCart","pid","message","availabilityClass","alert","availability","isPreorder","isBackorder","messages","join","class","alerts","alertsCommon","getById","availabilityLabel","render","ref","availabilityAlert","QuickAddToCart","getConstructor","eachChild","child","renderAddToCartText"],"mappings":";;;;;;;;;;AAAA;AAAA;;;;AAIA;;;;;AAKe,yEAAUA,WAAV,EAAuB;AAClC;;;;AAIA,QAAMC,kBAAN,SAAiCD,WAAjC,CAA6C;AACzCE,QAAI,GAAG;AACH,YAAMA,IAAN;AAEA,WAAKC,QAAL,GAAgBC,EAAhB,CAAmB,qBAAnB,EAA0C,oBAA1C;AACH;AAED;;;;;;AAIAC,sBAAkB,CAACC,MAAD,EAAS;AACvB,WAAKC,kBAAL,CAAwBD,MAAxB;AACA,WAAKE,eAAL,CAAqBF,MAArB;AACH;AAED;;;;;;;AAKAC,sBAAkB,CAACD,MAAD,EAAS;AACvB,UAAI,CAACA,MAAM,CAACG,GAAR,IAAe,KAAKA,GAAL,KAAaH,MAAM,CAACG,GAAvC,EAA4C;AACxC;AACH;;AAED,UAAIC,OAAO,GAAG,EAAd;AACA,UAAIC,iBAAiB,GAAG,EAAxB;AACA,UAAIC,KAAK,GAAG,EAAZ;;AAEA,UAAIN,MAAM,CAACO,YAAP,KAAwBP,MAAM,CAACO,YAAP,CAAoBC,UAApB,IAAkCR,MAAM,CAACO,YAAP,CAAoBE,WAA9E,CAAJ,EAAgG;AAC5F,YAAIT,MAAM,CAACO,YAAP,CAAoBG,QAAxB,EAAkC;AAC9BN,iBAAO,GAAGJ,MAAM,CAACO,YAAP,CAAoBG,QAApB,CAA6BC,IAA7B,CAAkC,EAAlC,CAAV;AACAN,2BAAiB,GAAGL,MAAM,CAACO,YAAP,CAAoBK,KAAxC;AACH;;AAED,YAAIZ,MAAM,CAACO,YAAP,CAAoBM,MAAxB,EAAgC;AAC5BP,eAAK,GAAGN,MAAM,CAACO,YAAP,CAAoBO,YAApB,CAAiCH,IAAjC,CAAsC,EAAtC,CAAR;AACH;AACJ;;AAED,WAAKI,OAAL,CAAa,cAAb,EAA8BC,iBAAD,IAAuB;AAChDA,yBAAiB,CAACC,MAAlB,CAAyB,UAAzB,EAAqC;AACjCb,iBAAO,EAAEA,OADwB;AAEjCQ,eAAK,EAAEP;AAF0B,SAArC,EAGGW,iBAAiB,CAACE,GAAlB,CAAsB,WAAtB,CAHH;AAIH,OALD;AAOA,WAAKH,OAAL,CAAa,mBAAb,EAAmCI,iBAAD,IAAuB;AACrDA,yBAAiB,CAACF,MAAlB,CAAyB,UAAzB,EAAqC;AACjCX,eAAK,EAAEA;AAD0B,SAArC,EAEGa,iBAAiB,CAACD,GAAlB,CAAsB,WAAtB,CAFH;AAGH,OAJD;AAKH;AAED;;;;;;AAIAhB,mBAAe,CAACF,MAAD,EAAS;AACpB,UAAI,CAACA,MAAM,CAACG,GAAR,IAAe,KAAKA,GAAL,KAAaH,MAAM,CAACG,GAAvC,EAA4C;AACxC;AACH;;AAED,YAAMiB,cAAc;AAAG;AAA8B,WAAKC,cAAL,CAAoB,gBAApB,CAArD;AAEA,WAAKC,SAAL,CAAeC,KAAK,IAAI;AACpB,YAAIA,KAAK,YAAYH,cAArB,EAAqC;AACjCG,eAAK,CAACC,mBAAN,CAA0BxB,MAA1B;AACH;AACJ,OAJD;AAKH;;AAvEwC;;AA0E7C,SAAOL,kBAAP;AACH,C","file":"4.bundle.js","sourcesContent":["/**\n * @typedef {ReturnType} QuickAddToCart\n */\n\n/**\n * @description Base HarmonyProductTile implementation\n * @param {ProductTile} ProductTile widget for extending\n * @returns {typeof HarmonyProductTile} HarmonyProductDetail class\n */\nexport default function (ProductTile) {\n /**\n * @class HarmonyProductTile\n * @augments ProductTile\n */\n class HarmonyProductTile extends ProductTile {\n init() {\n super.init();\n\n this.eventBus().on('availability.update', 'availabilityUpdate');\n }\n\n /**\n * @description update components after availability check on change qty\n * @param {object} params - params\n */\n availabilityUpdate(params) {\n this.renderAvailability(params);\n this.renderAddToCart(params);\n }\n\n /**\n * @description Render product availability\n * @param {object} params Product object\n * @returns {void}\n */\n renderAvailability(params) {\n if (!params.pid || this.pid !== params.pid) {\n return;\n }\n\n let message = '';\n let availabilityClass = '';\n let alert = '';\n\n if (params.availability && (params.availability.isPreorder || params.availability.isBackorder)) {\n if (params.availability.messages) {\n message = params.availability.messages.join('');\n availabilityClass = params.availability.class;\n }\n\n if (params.availability.alerts) {\n alert = params.availability.alertsCommon.join('');\n }\n }\n\n this.getById('availability', (availabilityLabel) => {\n availabilityLabel.render('template', {\n message: message,\n class: availabilityClass\n }, availabilityLabel.ref('container'));\n });\n\n this.getById('availabilityAlert', (availabilityAlert) => {\n availabilityAlert.render('template', {\n alert: alert\n }, availabilityAlert.ref('container'));\n });\n }\n\n /**\n * @description Render Add to Cart btn\n * @param {object} params - params\n */\n renderAddToCart(params) {\n if (!params.pid || this.pid !== params.pid) {\n return;\n }\n\n const QuickAddToCart = /** @type {QuickAddToCart} */(this.getConstructor('quickAddToCart'));\n\n this.eachChild(child => {\n if (child instanceof QuickAddToCart) {\n child.renderAddToCartText(params);\n }\n });\n }\n }\n\n return HarmonyProductTile;\n}\n"],"sourceRoot":""}