{"version":3,"sources":["node_modules/browser-pack/_prelude.js","src/js/powerReviews.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","mobileProductReviews","$","window","innerWidth","remove","HMSPowerReviews","_classCallCheck","this","reviewsToRender","init","key","value","$control","pageId","data","controlId","attr","components","review","locale","reviews","merchant_group_id","merchantGroupId","merchant_id","merchantId","api_key","apiKey","page_id","subject","@context","@type","id","reviewCurrentUrl","name","reviewProductName","description","reviewDescription","image","reviewImgUrl","sku","reviewSku","brand","Write","POWERREVIEWS","display","render","CategorySnippet","push","_objectSpread","ENABLE_CLIENT_SIDE_STRUCTURED_DATA","ReviewDisplay","REVIEW_DISPLAY_SNAPSHOT_TYPE","ReviewSnippet","reviewtype","reviewFound","each","index","currentReview","renderReviews","sampleItemNames","orderItems","tracker","String","split","createTracker","text","product_name","quantity","unit_price","trackCheckout","marketingOptIn","toLowerCase","userEmail","merchantUserId","userFirstName","userLastName","orderId","_this","$controls","control","reviewType","setupTracking","checkReviewByPageId","pwr","q","arguments","console","error"],"mappings":"CAAA,SAAAA,EAAAC,EAAAC,EAAAC,GAAA,SAAAC,EAAAC,EAAAC,GAAA,IAAAJ,EAAAG,GAAA,CAAA,IAAAJ,EAAAI,GAAA,CAAA,IAAAE,EAAA,mBAAAC,SAAAA,QAAA,IAAAF,GAAAC,EAAA,OAAAA,EAAAF,GAAA,GAAA,GAAAI,EAAA,OAAAA,EAAAJ,GAAA,GAAA,MAAAK,EAAA,IAAAC,MAAA,uBAAAN,EAAA,MAAAO,KAAA,mBAAAF,EAAAG,EAAAX,EAAAG,GAAA,CAAAS,QAAA,IAAAb,EAAAI,GAAA,GAAAU,KAAAF,EAAAC,QAAA,SAAAd,GAAA,OAAAI,EAAAH,EAAAI,GAAA,GAAAL,IAAAA,IAAAa,EAAAA,EAAAC,QAAAd,EAAAC,EAAAC,EAAAC,GAAA,OAAAD,EAAAG,GAAAS,QAAA,IAAA,IAAAL,EAAA,mBAAAD,SAAAA,QAAAH,EAAA,EAAAA,EAAAF,EAAAa,OAAAX,IAAAD,EAAAD,EAAAE,IAAA,OAAAD,EAAA,CAAA,CAAAa,EAAA,CAAA,SAAAT,EAAAU,EAAAJ,gB,42CCAA,IAAMK,EAAuBC,EAAE,2BAEP,IAApBC,OAAOC,YACTH,EAAqBI,SAkBvBF,OAAOG,gBAAe,WACpB,SAAAA,K,4FAAcC,CAAAC,KAAAF,GACZE,KAAKC,gBAAkB,GACvBD,KAAKE,O,UAoJN,O,EAnJAJ,G,EAAA,CAAA,CAAAK,IAAA,gBAAAC,MAED,SAAcC,GACZ,IAAMC,EAASD,EAASE,KAAK,UACvBC,EAAYH,EAASI,KAAK,MAC1BC,EAAa,GAEbC,EAAS,CACbC,OAAQC,QAAQD,OAChBE,kBAAmBD,QAAQE,gBAC3BC,YAAaH,QAAQI,WACrBC,QAASL,QAAQM,OACjBC,QAASd,EACTe,QAAS,CACPC,WAAY,qBACZC,QAAS,UACTC,GAAIX,QAAQY,iBACZC,KAAMb,QAAQc,kBACdC,YAAaf,QAAQgB,kBACrBC,MAAOjB,QAAQkB,aACfC,IAAKnB,QAAQoB,UACbC,MAAOrB,QAAQqB,OAEjBxB,WAAYA,GAId,OADmBL,EAASE,KAAK,eAE/B,IAAK,aACHG,EAAWyB,MAAQ3B,EACnB4B,aAAaC,QAAQC,OAAO3B,GAC5B,MACF,IAAK,WACHD,EAAW6B,gBAAkB/B,EAC7BR,KAAKC,gBAAgBuC,KAAIC,EAAAA,EAAA,GACpB9B,GAAM,GAAA,CACT+B,oCAAoC,KAEtC,MACF,IAAK,gBACHhC,EAAWiC,cAAgBnC,EAC3BG,EAAOiC,6BAA+B,SACtC5C,KAAKC,gBAAgBuC,KAAK7B,GAC1B,MACF,IAAK,SACHD,EAAWmC,cAAgBrC,EAC3BR,KAAKC,gBAAgBuC,KAAK7B,MAG/B,CAAAR,IAAA,sBAAAC,MAED,SAAoBC,EAAUyC,GAC5B,IAAMxC,EAASD,EAASE,KAAK,UACvBC,EAAYH,EAASI,KAAK,MAC5BsC,GAAc,EAClBrD,EAAEM,KAAKC,iBAAiB+C,KAAK,SAACC,EAAOC,GAC9BH,GAEDG,EAAc9B,UAAYd,IACzB4C,EAAcxC,WAAWmC,eACxBK,EAAcxC,WAAWiC,iBAER,WAAfG,EACFI,EAAcxC,WAAWmC,cAAgBrC,EACjB,kBAAfsC,IACTI,EAAcxC,WAAWiC,cAAgBnC,EACzC0C,EAAcN,6BAA+B,UAE/CG,GAAc,KAIfA,GACH/C,KAAKmD,cAAc9C,KAEtB,CAAAF,IAAA,gBAAAC,MAED,SAAcC,GACZ,IAIMC,EACA8C,EAKAC,EA3GSjD,EAiGVgC,aAAakB,UAIZhD,EAASiD,OAAOlD,EAASE,KAAK,WAC9B6C,EAAkB/C,EAASE,KAAK,kBAAkBiD,MAAM,KAExDF,EAAUlB,aAAakB,QAAQG,cAAc,CACjD1C,gBAAiBF,QAAQE,kBAErBsC,EAAa,GACnB3D,EAAEY,EAAOkD,MAAM,MAAMR,KAAK,SAACC,EAAOS,GAChCL,EAAWb,KAAK,CACdpB,QAASsC,EACTC,aAAcP,EAAgB9D,OAAS2D,EAAQG,EAAgBH,GAAS,GACxEW,SAAU,EACVC,WAAY,MAIhBP,EAAQQ,cAAc,CACpB/C,gBAAiBF,QAAQE,gBACzBE,WAAYJ,QAAQI,WACpBL,OAAQC,QAAQD,OAChBmD,gBArHU,UAFZ3D,EADmB,iBADJA,EAyHaC,EAASE,KAAK,gBAvHlCH,EAAM4D,cAEZ5D,GACFA,GAAQ,EACW,UAAVA,IACTA,GAAQ,GAGHA,GAgHH6D,UAAW5D,EAASE,KAAK,SACzB2D,eAAgB7D,EAASE,KAAK,SAC9B4D,cAAe9D,EAASE,KAAK,cAAgB,GAC7C6D,aAAc/D,EAASE,KAAK,YAC5B8D,QAAShE,EAASE,KAAK,WACvB8C,WAAAA,OAEH,CAAAlD,IAAA,OAAAC,MAED,WAAO,IAAAkE,EAAAtE,KACL,IACEA,KAAKC,gBAAgBX,OAAS,EAC9B,IAAMiF,EAAY7E,EAAE,cAChB6E,EAAUjF,SACZiF,EAAUvB,KAAK,SAACC,EAAOuB,GACrB,IAAMnE,EAAWX,EAAE8E,GAEbC,EAAapE,EAASE,KAAK,cACjC,OAAQkE,GACN,IAAK,iBACHH,EAAKI,cAAcrE,GACnB,MACF,IAAK,WACL,IAAK,aACHiE,EAAKnB,cAAc9C,GACnB,MACF,IAAK,gBACL,IAAK,SACHiE,EAAKK,oBAAoBtE,EAAUoE,MAKrCzE,KAAKC,gBAAgBX,SACvBK,OAAOiF,IAAMjF,OAAOiF,KAAO,YAExBjF,OAAOiF,IAAIC,EAAIlF,OAAOiF,IAAIC,GAAK,IAAIrC,KAAKsC,YAE3CnF,OAAOiF,IAAI,SAAU5E,KAAKC,mBAG9B,MAAO1B,GACPoB,OAAOoF,SAAWpF,OAAOoF,QAAQC,OAASrF,OAAOoF,QAAQC,MAAMzG,S,8EAElEuB,EAvJmB","file":"powerReviews.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 991) {\r\n mobileProductReviews.remove();\r\n}\r\n\r\nfunction toBoolean(value) {\r\n if (typeof value === 'string') {\r\n value = value.toLowerCase();\r\n }\r\n if (value === 'true') {\r\n value = true;\r\n } else if (value === 'false') {\r\n value = false;\r\n }\r\n\r\n return value;\r\n}\r\n\r\n/* global reviews, POWERREVIEWS */\r\n/* eslint-disable camelcase */\r\nwindow.HMSPowerReviews = class HMSPowerReviews {\r\n constructor() {\r\n this.reviewsToRender = [];\r\n this.init();\r\n }\r\n\r\n renderReviews($control) {\r\n const pageId = $control.data('pageid');\r\n const controlId = $control.attr('id');\r\n const components = {};\r\n\r\n const review = {\r\n locale: reviews.locale,\r\n merchant_group_id: reviews.merchantGroupId,\r\n merchant_id: reviews.merchantId,\r\n api_key: reviews.apiKey,\r\n page_id: pageId,\r\n subject: {\r\n '@context': 'https://schema.org',\r\n '@type': 'Product',\r\n id: reviews.reviewCurrentUrl,\r\n name: reviews.reviewProductName,\r\n description: reviews.reviewDescription,\r\n image: reviews.reviewImgUrl,\r\n sku: reviews.reviewSku,\r\n brand: reviews.brand\r\n },\r\n components: components\r\n };\r\n\r\n const reviewType = $control.data('reviewtype');\r\n switch (reviewType) {\r\n case 'ReviewForm':\r\n components.Write = controlId;\r\n POWERREVIEWS.display.render(review);\r\n break;\r\n case 'Category':\r\n components.CategorySnippet = controlId;\r\n this.reviewsToRender.push({\r\n ...review,\r\n ENABLE_CLIENT_SIDE_STRUCTURED_DATA: false\r\n });\r\n break;\r\n case 'ReviewDisplay':\r\n components.ReviewDisplay = controlId;\r\n review.REVIEW_DISPLAY_SNAPSHOT_TYPE = 'SIMPLE';\r\n this.reviewsToRender.push(review);\r\n break;\r\n case 'Review':\r\n components.ReviewSnippet = controlId;\r\n this.reviewsToRender.push(review);\r\n break;\r\n }\r\n }\r\n\r\n checkReviewByPageId($control, reviewtype) {\r\n const pageId = $control.data('pageid');\r\n const controlId = $control.attr('id');\r\n let reviewFound = false;\r\n $(this.reviewsToRender).each((index, currentReview) => {\r\n if (!reviewFound) {\r\n if (\r\n currentReview.page_id === pageId &&\r\n (currentReview.components.ReviewSnippet ||\r\n currentReview.components.ReviewDisplay)\r\n ) {\r\n if (reviewtype === 'Review') {\r\n currentReview.components.ReviewSnippet = controlId;\r\n } else if (reviewtype === 'ReviewDisplay') {\r\n currentReview.components.ReviewDisplay = controlId;\r\n currentReview.REVIEW_DISPLAY_SNAPSHOT_TYPE = 'SIMPLE';\r\n }\r\n reviewFound = true;\r\n }\r\n }\r\n });\r\n if (!reviewFound) {\r\n this.renderReviews($control);\r\n }\r\n }\r\n\r\n setupTracking($control) {\r\n if (!POWERREVIEWS.tracker) {\r\n\r\n return;\r\n }\r\n const pageId = String($control.data('pageid'));\r\n const sampleItemNames = $control.data('sampleitemname').split('|');\r\n\r\n const tracker = POWERREVIEWS.tracker.createTracker({\r\n merchantGroupId: reviews.merchantGroupId\r\n });\r\n const orderItems = [];\r\n $(pageId.split(',')).each((index, text) => {\r\n orderItems.push({\r\n page_id: text,\r\n product_name: sampleItemNames.length > index ? sampleItemNames[index] : '',\r\n quantity: 1,\r\n unit_price: 1.0\r\n });\r\n });\r\n\r\n tracker.trackCheckout({\r\n merchantGroupId: reviews.merchantGroupId,\r\n merchantId: reviews.merchantId,\r\n locale: reviews.locale,\r\n marketingOptIn: toBoolean($control.data('futureoptin')),\r\n userEmail: $control.data('email'),\r\n merchantUserId: $control.data('email'),\r\n userFirstName: $control.data('firstname') || '',\r\n userLastName: $control.data('lastname'),\r\n orderId: $control.data('orderid'),\r\n orderItems\r\n });\r\n }\r\n\r\n init() {\r\n try {\r\n this.reviewsToRender.length = 0;\r\n const $controls = $('.js-review');\r\n if ($controls.length) {\r\n $controls.each((index, control) => {\r\n const $control = $(control);\r\n\r\n const reviewType = $control.data('reviewtype');\r\n switch (reviewType) {\r\n case 'CheckoutBeacon':\r\n this.setupTracking($control);\r\n break;\r\n case 'Category':\r\n case 'ReviewForm':\r\n this.renderReviews($control);\r\n break;\r\n case 'ReviewDisplay':\r\n case 'Review':\r\n this.checkReviewByPageId($control, reviewType);\r\n break;\r\n }\r\n });\r\n\r\n if (this.reviewsToRender.length) {\r\n window.pwr = window.pwr || function () {\r\n // eslint-disable-next-line id-length\r\n (window.pwr.q = window.pwr.q || []).push(arguments);\r\n };\r\n window.pwr('render', this.reviewsToRender );\r\n }\r\n }\r\n } catch (e) {\r\n window.console && window.console.error && window.console.error(e);\r\n }\r\n }\r\n}"]}