{"version":3,"sources":["../../../../Content/Logo/Templates/Microsoft365/src/consts.js","../../../../Content/Logo/Templates/Microsoft365/src/Microsoft365.js","../../../../Content/Logo/Templates/Microsoft365/src/Microsoft365PromoTwentyDollars.js","../../../../Content/Logo/Templates/Microsoft365/src/Microsoft365PromoExtraTime.js","../../../../Content/Logo/Templates/Microsoft365/src/main.js"],"names":["c","banner","top","bottom","popup","show","modalWindow","closeBtn","content","picture","title","description","copyCodeBtn","couponCode","Microsoft365","o","$ep","create","_","this","on","e","logEvent","target","mainTabClick","contentTabClick","keyCode","el","clientParams","ActionContext","$","data","ccs_cc_log","dispatchEvent","$el","hasClass","parent","find","concat","toggleClass","attr","closest","Microsoft365PromoTwentyDollars","arguments","promo","$contents","$footer","_this","renderFooter","$container","showPopup","prependTo","$prices","applyDiscount","renderPromoElements","initPromoEvents","footerHtml","footerText","appendTo","$elements","each","i","price","text","trim","length","discountPrice","getDiscountPrice","discountValue","empty","append","priceString","discount","number","replace","match","relative","absolute","toFixed","renderBanner","bannerTexts","renderPopup","popupTexts","renderFakeATC","classes","texts","bannerHtml","popupHtml","$atc","$fakeAddToCard","addClass","before","logEventPromo","closePopup","showPopupOnAddToCartClick","copyCodeToClipboard","Action","off","one","triggerClickToATC","stopPropagation","removeClass","$fakeAtcBtn","$atcButtonContainer","next","atcSelector","atcButton","click","$couponCode","focus","select","document","execCommand","iosCopyFallback","blur","editable","contentEditable","readOnly","range","createRange","selectNodeContents","selection","window","getSelection","removeAllRanges","addRange","setSelectionRange","Microsoft365PromoExtraTime","$header","renderHeader","renderCardText","_mainTabClick","mainTabClickOverride","remove","headerHtml","headerText","card","$card","_this2","type","productType","productFamily","cardHtml","cardText","hide","options","entryPointId","instance"],"mappings":"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","file":"microsoft365.min.js","sourcesContent":["export default {\r\n\tactionContextSelector: \"[data-action-context]\",\r\n\tactiveClass: \"ccs-logo-ms365-active\",\r\n\r\n\twrapperSelector: \".ccs-logo-ms365-wrapper\",\r\n\tcontentsSelector: \".ccs-logo-ms365-inner\",\r\n\tmainTabSelector: \".ccs-logo-ms365-main-tab\",\r\n\tsubTabSelector: \".ccs-logo-ms365-sub-tab\",\r\n\ttabContentSelector: \".ccs-logo-ms365-tabcontent\",\r\n\tcardsSelector: \".ccs-logo-ms365-cards\",\r\n\tspecsSelector: \".ccs-logo-ms365-specs\",\r\n\tfooterSelector: \".ccs-logo-ms365-footer\",\r\n\tfooterTextClass: \"ccs-logo-ms365-footer-text\",\r\n\r\n\taddToCartSelector: \"[data-logo-addtocart]\",\r\n\tpriceSelector: \"[data-logo-dynamic-price]\",\r\n\tfakeAddToCartClass: \"ccs-ms365-promo-fake-atc\",\r\n\r\n\twrapperPromoAttr: \"data-promo\",\r\n\tcopyCodeEventAttr: \"data-copy-code-event\",\r\n\tpromoContainerClass: \"ccs-ms365-promo\",\r\n\tpromoBannerShowAttr: \"data-show-popup\",\r\n\tbannerClasses: {\r\n\t\tbanner: \"ccs-ms365-promo-banner\",\r\n\t\ttop: \"ccs-ms365-promo-banner-top\",\r\n\t\tbottom: \"ccs-ms365-promo-banner-bottom\"\r\n\t},\r\n\tpopupClasses: {\r\n\t\tpopup: \"ccs-ms365-promo-popup\",\r\n\t\tshow: \"ccs-ms365-popup-show\",\r\n\t\tmodalWindow: \"ccs-ms365-promo-modal\",\r\n\t\tcloseBtn: \"ccs-ms365-promo-close\",\r\n\t\tcontent: \"ccs-ms365-promo-content\",\r\n\t\tpicture: \"ccs-ms365-promo-picture\",\r\n\t\ttitle: \"ccs-ms365-promo-title\",\r\n\t\tdescription: \"ccs-ms365-promo-desc\",\r\n\t\tcopyCodeBtn: \"ccs-ms365-promo-copy-code-btn\",\r\n\t\tcouponCode: \"ccs-ms365-promo-coupon-code\"\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport c from \"./consts\";\r\n\r\nexport default class Microsoft365 {\r\n\tconstructor(o, $ep) {\r\n\t\tthis.o = o;\r\n\t\tthis.$ep = $ep;\r\n\r\n\t\tthis.create();\r\n\t}\r\n\r\n\tcreate() {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.$ep.on(\"click\", c.actionContextSelector, e => _.logEvent(e.target));\r\n\r\n\t\t_.$ep.on(\"click\", c.mainTabSelector, e => _.mainTabClick(e.target));\r\n\r\n\t\t_.$ep.on(\"click\", c.subTabSelector, e => _.contentTabClick(e.target));\r\n\r\n\t\t_.$ep.on(\"keypress\", c.mainTabSelector, e => {\r\n\t\t\t if (e.keyCode === 32 || e.keyCode === 13) {\r\n\t\t\t\t _.mainTabClick(e.target);\r\n\t\t\t }\r\n\t\t});\r\n\r\n\t\t_.$ep.on(\"keypress\", c.subTabSelector, e => {\r\n\t\t\tif (e.keyCode === 32 || e.keyCode === 13) {\r\n\t\t\t\t _.contentTabClick(e.target);\r\n\t\t\t }\r\n\t\t});\r\n\t}\r\n\r\n\tlogEvent(el) {\r\n\t\tconst _ = this,\r\n\t\t\tclientParams = {\r\n\t\t\t\tActionContext: $(el).data(\"action-context\")\r\n\t\t\t};\r\n\r\n\t\tccs_cc_log.dispatchEvent(_.o.logEvent, clientParams);\r\n\t}\r\n\r\n\tmainTabClick(el) {\r\n\t\tconst _ = this,\r\n\t\t\t$el = $(el);\r\n\r\n\t\tif ($el.hasClass(c.activeClass))\r\n\t\t\treturn;\r\n\r\n\t\t$el.parent()\r\n\t\t\t.find(`.${c.activeClass}`)\r\n\t\t\t.toggleClass(c.activeClass)\r\n\t\t\t.attr('aria-selected', false);\r\n\r\n\t\t$el.toggleClass(c.activeClass)\r\n\t\t\t.attr('aria-selected', true)\r\n\t\t\t.closest(c.wrapperSelector)\r\n\t\t\t.find(c.tabContentSelector)\r\n\t\t\t.toggleClass(c.activeClass);\r\n\t}\r\n\r\n\tcontentTabClick(el) {\r\n\t\tconst _ = this,\r\n\t\t\t$el = $(el);\r\n\r\n\t\tif ($el.hasClass(c.activeClass))\r\n\t\t\treturn;\r\n\r\n\t\t$el.parent()\r\n\t\t\t.find(`${c.subTabSelector}`)\r\n\t\t\t.attr('aria-selected', false);\r\n\r\n\t\t$el.attr('aria-selected', true);\r\n\r\n\t\t$el.closest(c.tabContentSelector)\r\n\t\t\t.find(`${c.subTabSelector}, ${c.cardsSelector}, ${c.specsSelector}`)\r\n\t\t\t.toggleClass(c.activeClass);\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport c from \"./consts\";\r\n\r\nimport Microsoft365 from \"./Microsoft365\";\r\n\r\nexport default class Microsoft365PromoTwentyDollars extends Microsoft365 {\r\n\tconstructor(o, $ep) {\r\n\t\tsuper(...arguments);\r\n\r\n\t\tthis.promo = o.promo;\r\n\r\n\t\tthis.$contents = $ep.find(c.contentsSelector);\r\n\t\tthis.$footer = this.renderFooter();\r\n\r\n\t\tthis.$container = $(`.${c.promoContainerClass}`)\r\n\t\t\t.attr(c.promoBannerShowAttr, o.promo.showPopup)\r\n\t\t\t.prependTo(this.$footer);\r\n\r\n\t\tconst $prices = $ep.find(c.priceSelector);\r\n\t\tthis.applyDiscount($prices);\r\n\r\n\t\tthis.renderPromoElements();\r\n\t\tthis.initPromoEvents();\r\n\r\n\t\tthis.$ep.attr(c.wrapperPromoAttr, true);\r\n\t}\r\n\r\n\trenderFooter() {\r\n\t\tconst footerHtml =\r\n\t\t\t`<div class=\"ccs-logo-ms365-footer\">\r\n\t<div class=\"${c.promoContainerClass}\"></div>\r\n\t<div class=\"${c.footerTextClass}\">${this.promo.footerText}</div>\r\n</div>`;\r\n\r\n\t\treturn $(footerHtml).appendTo(this.$contents);\r\n\t}\r\n\r\n\tapplyDiscount($elements) {\r\n\t\tconst _ = this;\r\n\r\n\t\t$.each($elements, (i, el) => {\r\n\t\t\tconst $el = $(el),\r\n\t\t\t\tprice = $el.text().trim();\r\n\r\n\t\t\tif (price.length === 0)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tconst discountPrice = _.getDiscountPrice(price, _.promo.discountValue);\r\n\t\t\tif (!discountPrice)\r\n\t\t\t\treturn;\r\n\r\n\t\t\t$el.empty()\r\n\t\t\t\t.append(`<div class=\"ccs-ms365-current-price\">${price}</div>`)\r\n\t\t\t\t.append(`<div class=\"ccs-ms365-promo-price\">${discountPrice}</div>`);\r\n\t\t});\r\n\t}\r\n\r\n\tgetDiscountPrice(priceString, discount) {\r\n\t\tpriceString = priceString.replace(\",\", \".\");\r\n\t\tconst number = priceString.match(/\\d+\\.\\d+|\\d+/);\r\n\r\n\t\tif (!number)\r\n\t\t\treturn \"\";\r\n\r\n\t\tif (!discount)\r\n\t\t\treturn priceString;\r\n\r\n\t\tlet price;\r\n\r\n\t\tif (!discount.relative) {\r\n\t\t\tprice = number - discount.absolute;\r\n\t\t} else {\r\n\t\t\tprice = number * (1 - discount.relative);\r\n\t\t}\r\n\r\n\t\tif (price % 1 !== 0) {\r\n\t\t\tprice = price.toFixed(2);\r\n\t\t}\r\n\r\n\t\tif (price <= 0)\r\n\t\t\treturn false;\r\n\r\n\t\treturn priceString.replace(number, price);\r\n\t}\r\n\r\n\trenderPromoElements() {\r\n\t\tconst _ = this;\r\n\r\n\t\tconst $banner = _.renderBanner(c.bannerClasses, _.promo.bannerTexts);\r\n\t\t$banner.appendTo(_.$container);\r\n\r\n\t\tif (!_.promo.showPopup)\r\n\t\t\treturn;\r\n\r\n\t\tconst $popup = _.renderPopup(c.popupClasses, _.promo.popupTexts);\r\n\t\t$popup.appendTo(_.$contents.parent());\r\n\r\n\t\t_.renderFakeATC();\r\n\t}\r\n\r\n\trenderBanner(classes, texts) {\r\n\t\tconst bannerHtml =\r\n\t\t\t`<div class=\"${classes.banner}\" tabindex=\"0\" role=\"button\">\r\n\t<div class=\"${classes.top}\">${texts.top}</div>\r\n\t<div class=\"${classes.bottom}\">${texts.bottom}</div>\r\n</div>`;\r\n\r\n\t\treturn $(bannerHtml);\r\n\t}\r\n\r\n\trenderPopup(classes, texts) {\r\n\t\tconst popupHtml =\r\n\t\t\t`<div class=\"${classes.popup}\">\r\n\t<div class=\"${classes.modalWindow}\">\r\n\t\t<div class=\"${classes.closeBtn}\" tabindex=\"0\" role=\"button\"></div>\r\n\t\t<div class=\"${classes.content}\">\r\n\t\t\t<div class=\"${classes.title}\">${texts.title}</div>\r\n\t\t\t<input aria-label=\"${texts.couponCode}\" class=\"${classes.couponCode}\" value=\"${texts.couponCode}\" type=\"text\" readonly contenteditable=\"false\">\r\n\t\t\t<div class=\"${classes.description}\">${texts.description}</div>\r\n\t\t\t<a class=\"${classes.copyCodeBtn}\" href=\"#\" role=\"button\">${texts.copyCodeBtn}</a>\r\n\t\t</div>\r\n\t\t<div class=\"${classes.picture}\"></div>\r\n\t</div>\r\n</div>`;\r\n\r\n\t\treturn $(popupHtml);\r\n\t}\r\n\r\n\trenderFakeATC() {\r\n\t\tconst _ = this,\r\n\t\t\t$atc = _.$ep.find(c.addToCartSelector);\r\n\r\n\t\tif ($atc.length === 0)\r\n\t\t\treturn;\r\n\r\n\t\tconst $fakeAddToCard = $(\"<div>\").addClass(c.fakeAddToCartClass);\r\n\r\n\t\t$atc.before($fakeAddToCard);\r\n\t}\r\n\r\n\tinitPromoEvents() {\r\n\t\tconst _ = this;\r\n\r\n\t\t_.$ep.on(\"click\", `.${c.popupClasses.copyCodeBtn}`, () => _.logEventPromo());\r\n\r\n\t\t_.$ep.on(\"keypress\", `.${c.popupClasses.copyCodeBtn}`, e => {\r\n\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\t_.logEventPromo();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_.$ep.on(\"click\", `[${c.promoBannerShowAttr}]`, () => _.showPopup());\r\n\r\n\t\t_.$ep.on(\"keypress\", `[${c.promoBannerShowAttr}]`, e => {\r\n\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\t_.showPopup();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_.$ep.on(\"click\", `.${c.popupClasses.closeBtn}`, e => _.closePopup($(e.target)));\r\n\r\n\t\t_.$ep.on(\"keypress\", `.${c.popupClasses.closeBtn}`, e => {\r\n\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\t_.closePopup($(e.target));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_.$ep.on(\"click\", `.${c.fakeAddToCartClass}`, e => {\r\n\t\t\t_.showPopup();\r\n\t\t\t_.showPopupOnAddToCartClick($(e.target));\r\n\t\t});\r\n\r\n\t\t_.$ep.on(\"keypress\", `.${c.fakeAddToCartClass}`, e => {\r\n\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\t_.showPopup();\r\n\t\t\t\t_.showPopupOnAddToCartClick($(e.target));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_.$ep.on(\"click\", `.${c.popupClasses.copyCodeBtn}`, e => {\r\n\t\t\t_.copyCodeToClipboard();\r\n\t\t\t_.closePopup($(e.target));\r\n\t\t});\r\n\r\n\t\t_.$ep.on(\"keypress\", `.${c.popupClasses.copyCodeBtn}`, e => {\r\n\t\t\tif (e.keyCode === 13) {\r\n\t\t\t\t_.copyCodeToClipboard();\r\n\t\t\t\t_.closePopup($(e.target));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_.$ep.on(\"ccsPrice.success\", c.priceSelector, e => _.applyDiscount($(e.target)));\r\n\t}\r\n\r\n\tlogEventPromo() {\r\n\t\tconst _ = this,\r\n\t\t\tclientParams = {\r\n\t\t\t\tAction: \"click\",\r\n\t\t\t\tActionContext: \"copy-to-clipboard\"\r\n\t\t\t};\r\n\r\n\t\tccs_cc_log.dispatchEvent(_.o.logEvent, clientParams);\r\n\t}\r\n\r\n\tshowPopup() {\r\n\t\tthis.$ep.find(`.${c.popupClasses.popup}`).addClass(c.popupClasses.show);\r\n\t}\r\n\r\n\tshowPopupOnAddToCartClick(el) {\r\n\t\tconst _ = this,\r\n\t\t\t$el = $(el);\r\n\r\n\t\t_.$ep.find(`.${c.popupClasses.closeBtn}`)\r\n\t\t\t.off(\"click.ccs_Microsoft365Promo\")\r\n\t\t\t.one(\"click.ccs_Microsoft365Promo\",\r\n\t\t\t\tfunction (e) {\r\n\t\t\t\t\t_.triggerClickToATC($el);\r\n\t\t\t\t\t_.closePopup($(e.target));\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t_.$ep.find(`.${c.popupClasses.copyCodeBtn}`)\r\n\t\t\t.off(\"click.ccs_Microsoft365Promo\")\r\n\t\t\t.one(\"click.ccs_Microsoft365Promo\",\r\n\t\t\t\tfunction (e) {\r\n\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\t_.copyCodeToClipboard();\r\n\t\t\t\t\t_.triggerClickToATC($el);\r\n\t\t\t\t\t_.closePopup($(e.target));\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tclosePopup($el) {\r\n\t\t$el.closest(`.${c.popupClasses.popup}`).removeClass(c.popupClasses.show);\r\n\t}\r\n\r\n\ttriggerClickToATC($fakeAtcBtn) {\r\n\t\tconst $atcButtonContainer = $fakeAtcBtn.next();\r\n\t\tconst atcSelector = $atcButtonContainer.find(\"input[type=submit]\").length\r\n\t\t\t? \"input[type=submit]\"\r\n\t\t\t: \"a, button\";\r\n\r\n\t\tconst atcButton = $atcButtonContainer.find(atcSelector)[0];\r\n\t\tif (!atcButton)\r\n\t\t\treturn;\r\n\r\n\t\tatcButton.click();\r\n\t}\r\n\r\n\tcopyCodeToClipboard() {\r\n\t\tconst _ = this;\r\n\t\tconst $couponCode = _.$ep.find(`.${c.popupClasses.couponCode}`);\r\n\r\n\t\t$couponCode.focus().select();\r\n\r\n\t\tconst success = document.execCommand(\"copy\");\r\n\t\tif (!success) {\r\n\t\t\t_.iosCopyFallback($couponCode);\r\n\t\t}\r\n\r\n\t\t$couponCode.blur();\r\n\t}\r\n\r\n\tiosCopyFallback($couponCode) {\r\n\t\tconst couponCode = $couponCode[0];\r\n\r\n\t\tconst editable = couponCode.contentEditable;\r\n\t\tconst readOnly = couponCode.readOnly;\r\n\r\n\t\tcouponCode.contentEditable = true;\r\n\t\tcouponCode.readOnly = true;\r\n\r\n\t\tconst range = document.createRange();\r\n\t\trange.selectNodeContents(couponCode);\r\n\r\n\t\tconst selection = window.getSelection();\r\n\t\tselection.removeAllRanges();\r\n\t\tselection.addRange(range);\r\n\r\n\t\tcouponCode.setSelectionRange(0, 999999);\r\n\r\n\t\tcouponCode.contentEditable = editable;\r\n\t\tcouponCode.readOnly = readOnly;\r\n\r\n\t\tdocument.execCommand(\"copy\");\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport c from \"./consts\";\r\n\r\nimport Microsoft365 from \"./Microsoft365\";\r\n\r\nexport default class Microsoft365PromoExtraTime extends Microsoft365 {\r\n\tconstructor(o, $ep) {\r\n\t\tsuper(...arguments);\r\n\r\n\t\tthis.promo = o.promo;\r\n\r\n\t\tthis.$contents = $ep.find(c.contentsSelector);\r\n\t\tthis.$header = this.$contents.find(\".ccs-logo-ms365-header\");\r\n\t\tthis.$footer = this.renderFooter();\r\n\r\n\t\tthis.renderHeader();\r\n\t\tthis.renderCardText();\r\n\r\n\t\tthis._mainTabClick = this.mainTabClick;\r\n\t\tthis.mainTabClick = this.mainTabClickOverride;\r\n\t}\r\n\r\n\trenderFooter() {\r\n\t\tconst footerHtml =\r\n\t\t\t`<div class=\"ccs-logo-ms365-footer\">\r\n\t\t\t\t<div class=\"ccs-logo-ms365-footer-extratime\">${this.promo.footerText}</div>\r\n\t\t\t</div>`;\r\n\r\n\t\treturn $(footerHtml).appendTo(this.$contents);\r\n\t}\r\n\r\n\trenderHeader() {\r\n\t\t$(\".ccs-logo-ms365-microsoft.ccs-logo-ms365-header-logo\").remove();\r\n\t\tconst headerHtml =\r\n\t\t\t`<div class=\"ccs-logo-ms365-header-logo-img\"></div>\r\n\t\t\t<div class=\"ccs-logo-ms365-office-is-microsoft-now\">${this.promo.headerText}</div>`;\r\n\t\tthis.$header.find(\".ccs-logo-ms365-main-tabs\").append($(headerHtml));\r\n\t}\r\n\r\n\trenderCardText() {\r\n\t\tvar $cards = this.$contents.find(\".ccs-logo-ms365-card\");\r\n\t\t$cards.each((_, card) => {\r\n\t\t\tvar $card = $(card);\r\n\r\n\t\t\tif ($card.attr(\"data-promo-type\") === this.promo.type &&\r\n\t\t\t\t$card.attr(\"data-product-type\") === this.promo.productType) {\r\n\t\t\t\tif ($card.attr(\"data-family\") === this.promo.productFamily) {\r\n\t\t\t\t\tconst cardHtml =\r\n\t\t\t\t\t\t`<div class=\"ccs-logo-ms365-extratime-card\">\r\n\t\t\t\t\t\t${this.promo.cardText}\r\n\t\t\t\t\t</div>`;\r\n\t\t\t\t\t$(cardHtml).appendTo($card);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t$card.addClass(\"ccs-logo-ms365-card__without-promo\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tmainTabClickOverride(el) {\r\n\t\tthis._mainTabClick(el);\r\n\r\n\t\tvar active = $(el).attr(\"data-action-context\");\r\n\t\tif (active === this.promo.productType) {\r\n\t\t\tthis.$footer.show();\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.$footer.hide();\r\n\t\t}\r\n\t}\r\n}\r\n","import $ from \"jquery\";\r\nimport \"ElementQueries\";\r\n\r\nimport Microsoft365 from \"./Microsoft365\";\r\nimport Microsoft365PromoTwentyDollars from \"./Microsoft365PromoTwentyDollars\";\r\nimport Microsoft365PromoExtraTime from \"./Microsoft365PromoExtraTime\"\r\n\r\nexport default function (options) {\r\n\tconst $ep = $(`#${options.entryPointId}`);\r\n\r\n\tif ($ep.length === 0)\r\n\t\treturn;\r\n\r\n\tconst instance = !options.promo\r\n\t\t? new Microsoft365(options, $ep)\r\n\t\t: options.promo.type === \"TwentyDollarsPromo\"\r\n\t\t\t? new Microsoft365PromoTwentyDollars(options, $ep)\r\n\t\t\t: options.promo.type === \"ExtraTimeOffer\"\r\n\t\t\t\t? new Microsoft365PromoExtraTime(options, $ep)\r\n\t\t\t\t: new Microsoft365(options, $ep);\r\n\r\n\t$ep.data(\"microsoft365\", instance);\r\n}\r\n"],"sourceRoot":"../../../.."}