{"version":3,"file":"VideoCarouselModal.Main.min.js","mappings":"yBAEO,IAAMA,EAAoB,qBAwDjC,SAASC,EAAwBC,GAChC,IAAMC,EAAkC,WAAdD,EAAME,IAC1BC,EAAmD,UAAdH,EAAME,KAAmBE,EAAEJ,EAAMK,QAAQC,SAAS,oBACvFC,EAA+B,QAAdP,EAAME,IACvBM,EAAmBR,EAAMS,SAE3BR,GAAYE,EACfO,IACUH,IAAUC,GAAWJ,EAAEJ,EAAMK,QAAQC,SAAS,qBACxDF,EAAEJ,EAAMK,QAAQM,QAAQ,iBAAiBC,QACzCZ,EAAMa,kBACIN,GAASC,GAAWJ,EAAEJ,EAAMK,QAAQC,SAAS,kBACvDF,EAAEJ,EAAMK,QAAQS,KAAK,qBAAqBF,QAC1CZ,EAAMa,iBAER,CAEA,SAASH,IACR,IAAMK,EAAgBX,EAAE,mBAAmBO,QAAQ,uBAC7CK,EAAYD,EAAcJ,QAAQ,8BAClCM,EAAkBF,EAAcD,KAAKhB,GACrCoB,EAAeD,EAAgBH,KAAK,yBACpCK,EAAgBF,EAAgBH,KAAK,oBACrCM,EAAgCD,EAAcL,KA9EpB,oCAgFhCG,EAAgBI,YAAY,kBAC5BJ,EAAgBH,KAAK,wBAAwBQ,IAAI,UAAW,QAC5DL,EAAgBH,KAAK,wBAAwBQ,IAAI,UAAW,SAC5DL,EAAgBM,SAAS,wBAAwBD,IAAI,UAAW,QAChEH,EAAcE,YAAY,gBAC1BH,EAAaM,WAAW,YACxBN,EAAaI,IAAI,UAAW,QAE5BF,EAA8BK,KAAK,SAAU,QAE7CrB,EAAE,qBAAqBsB,MAAK,WAC3BtB,EAAEuB,MAAMN,YAAY,iBACrB,IAEAL,EAAUF,KAAK,wEAAwEc,IAAI,iBAAiBC,OAE5GZ,EAAgBK,IAAI,CACnB,MAAS,GACT,OAAU,GACV,IAAO,GACP,KAAQ,KAGTH,EAAcG,IAAI,CACjB,MAAS,GACT,OAAU,KAGXlB,EAAE,QAAQiB,YAAY,iBAEtBJ,EAAgBa,IAAI,UAAW/B,GAG/BgC,OAAOC,KAAKC,uBAAuBd,EACpC,CCjHMY,OAAQG,wBDCP,WACwB,CAAC,IAAK,IAAK,KAE7BC,SAAQ,SAACC,GACpBL,OAAOM,WAAW,sBAAeD,EAAU,QAAOE,iBAAiB,UAAU,WAC5E5B,GACD,GACD,IAEAN,EAAE2B,QAAQQ,GAAG,UAAU,YAyGxB,SAAqBC,GACpB,KAAIA,EAAaC,QAAU,GAA3B,CAIA,IAAMC,EAAUtC,EAAE2B,QACZd,EAAkBuB,EAAa1B,KAAKhB,GACpCqB,EAAgBF,EAAgBH,KAAK,oBACrC6B,EAAQ,GAAK,EAEfD,EAAQE,SAAWF,EAAQG,QAAUF,GACxC1B,EAAgB2B,OAAO,QACvB3B,EAAgB4B,OAAO5B,EAAgB2B,SAAW,IAAMD,EAAQ,MAEhE1B,EAAgB4B,MAAM,QACtB5B,EAAgB2B,QAAQ3B,EAAgB4B,QAAU,IAAMF,EAAQ,KAGjE,IAAMG,EAAMJ,EAAQE,SAAW,EAAI3B,EAAgB2B,SAAW,EACxDG,EAAOL,EAAQG,QAAU,EAAI5B,EAAgB4B,QAAU,EAE7D5B,EAAgBK,IAAI,MAAOwB,EAAM,MACjC7B,EAAgBK,IAAI,OAAQyB,EAAO,MAEnC5B,EAAc0B,MAAM5B,EAAgB4B,QAAU,IAC9C1B,EAAcyB,OAAO3B,EAAgB2B,SAAW,GAtBhD,CAuBD,CAlIEI,CAAY5C,EAAE,mBAAmBO,QAAQ,uBAC1C,IAMAP,EAAE6C,UAAUV,GAAG,QAAS,2CAA2C,WAClE7B,GACD,GACD,C","sources":["/./VideoCarouselModal/VideoCarouselModal.ts","/./VideoCarouselModal/VideoCarouselModal.Main.ts"],"sourcesContent":["// Copyright (C) Microsoft Corporation. All rights reserved.\r\n\r\nexport const containerSelector = 'div.videoContainer';\r\nexport const videoAreaSelector = 'div.cardControlCarouselVideoArea';\r\n\r\nexport function InitializeCarouselModalEvents() {\r\n\tconst breakpoints: number[] = [900, 768, 480];\r\n\r\n\tbreakpoints.forEach((breakpoint: number) => {\r\n\t\twindow.matchMedia(`(max-width: ${breakpoint}px)`).addEventListener('change', () => {\r\n\t\t\tresetCarouselVideoModal();\r\n\t\t});\r\n\t});\r\n\r\n\t$(window).on('resize', function () {\r\n\t\tresizeModal($('.modalContainer').closest('.supCardControlCard'));\r\n\t});\r\n\r\n\t// Use event delegation to listen click event since slick.js will\r\n\t// re-initialize when number of card number is not default value and\r\n\t// event delegation is able to attach dynamic content for the event\r\n\t// listener.\r\n\t$(document).on('click', '.modalCloseButton, .modalPageBackground', function () {\r\n\t\tresetCarouselVideoModal();\r\n\t});\r\n}\r\n\r\nexport function setCarouselVideoModal(carouselCard: JQuery) {\r\n\r\n\tif (carouselCard.length <= 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst $carousel = carouselCard.closest('div.supCardControlCarousel');\r\n\tconst $modalContainer = carouselCard.find(containerSelector);\r\n\tconst $modalContent = $modalContainer.find('div.videoContent');\r\n\tconst $closeButton = $modalContainer.find('span.modalCloseButton');\r\n\r\n\t$modalContainer.addClass('modalContainer');\r\n\t$modalContainer.find('.modalCloseButton').css('display', 'block');\r\n\t$modalContainer.find('.supCardControlImage').css('display', 'none');\r\n\t$modalContainer.siblings('.modalPageBackground').css('display', 'block');\r\n\t$modalContent.addClass('modalContent');\r\n\t$closeButton.css('display', 'block');\r\n\t$closeButton.attr(\"tabindex\", \"0\");\r\n\r\n\t$('[class^=\"slick-\"]').each(function () {\r\n\t\t$(this).addClass('resetTransform');\r\n\t});\r\n\r\n\t$carousel.find('.supCardControlCarouselPrevButton, .supCardControlCarouselNextButton').not('.slick-hidden').hide();\r\n\t$('body').addClass('disableScroll');\r\n\r\n\t$modalContainer.on('keydown', onModalContainerKeyDown);\r\n\r\n\tresizeModal(carouselCard);\r\n}\r\n\r\nfunction onModalContainerKeyDown(event: JQuery.KeyDownEvent) {\r\n\tconst isEscape: boolean = event.key === 'Escape';\r\n\tconst isEnterOnModalCloseButton: boolean = event.key === 'Enter' && $(event.target).hasClass('modalCloseButton');\r\n\tconst isTab: boolean = event.key === 'Tab';\r\n\tconst isShift: boolean = event.shiftKey;\r\n\r\n\tif (isEscape || isEnterOnModalCloseButton) {\r\n\t\tresetCarouselVideoModal();\r\n\t} else if (isTab && !isShift && $(event.target).hasClass('modalCloseButton')) {\r\n\t\t$(event.target).closest('.slick-active').focus();\r\n\t\tevent.preventDefault();\r\n\t} else if (isTab && isShift && $(event.target).hasClass('slick-active')) {\r\n\t\t$(event.target).find('.modalCloseButton').focus();\r\n\t\tevent.preventDefault();\r\n\t}\r\n}\r\n\r\nfunction resetCarouselVideoModal() {\r\n\tconst $carouselCard = $('.modalContainer').closest('.supCardControlCard');\r\n\tconst $carousel = $carouselCard.closest('div.supCardControlCarousel');\r\n\tconst $modalContainer = $carouselCard.find(containerSelector);\r\n\tconst $closeButton = $modalContainer.find('span.modalCloseButton');\r\n\tconst $modalContent = $modalContainer.find('div.videoContent');\r\n\tconst $cardControlCarouselVideoArea = $modalContent.find(videoAreaSelector);\r\n\r\n\t$modalContainer.removeClass('modalContainer');\r\n\t$modalContainer.find('div.modalCloseButton').css('display', 'none');\r\n\t$modalContainer.find('.supCardControlImage').css('display', 'block');\r\n\t$modalContainer.siblings('.modalPageBackground').css('display', 'none');\r\n\t$modalContent.removeClass('modalContent');\r\n\t$closeButton.removeAttr(\"tabindex\");\r\n\t$closeButton.css('display', 'none');\r\n\r\n\t$cardControlCarouselVideoArea.attr('hidden', 'true');\r\n\r\n\t$('[class^=\"slick-\"]').each(function () {\r\n\t\t$(this).removeClass('resetTransform');\r\n\t});\r\n\r\n\t$carousel.find('.supCardControlCarouselPrevButton, .supCardControlCarouselNextButton').not('.slick-hidden').show();\r\n\r\n\t$modalContainer.css({\r\n\t\t'width': '',\r\n\t\t'height': '',\r\n\t\t'top': '',\r\n\t\t'left': ''\r\n\t});\r\n\r\n\t$modalContent.css({\r\n\t\t'width': '',\r\n\t\t'height': ''\r\n\t});\r\n\r\n\t$('body').removeClass('disableScroll');\r\n\r\n\t$modalContainer.off('keydown', onModalContainerKeyDown);\r\n\r\n\t// Pause video play\r\n\twindow.occe.suspendStateOfContents($modalContent);\r\n}\r\n\r\nfunction resizeModal(carouselCard: JQuery) {\r\n\tif (carouselCard.length <= 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst $window = $(window);\r\n\tconst $modalContainer = carouselCard.find(containerSelector);\r\n\tconst $modalContent = $modalContainer.find('div.videoContent');\r\n\tconst ratio = 16 / 9;\r\n\r\n\tif ($window.height() < $window.width() / ratio) {\r\n\t\t$modalContainer.height(\"95vh\");\r\n\t\t$modalContainer.width(($modalContainer.height() - 80) * ratio + 80);\r\n\t} else {\r\n\t\t$modalContainer.width(\"95vw\");\r\n\t\t$modalContainer.height(($modalContainer.width() - 80) / ratio + 80);\r\n\t}\r\n\r\n\tconst top = $window.height() / 2 - $modalContainer.height() / 2;\r\n\tconst left = $window.width() / 2 - $modalContainer.width() / 2;\r\n\r\n\t$modalContainer.css('top', top + 'px');\r\n\t$modalContainer.css('left', left + 'px');\r\n\r\n\t$modalContent.width($modalContainer.width() - 80);\r\n\t$modalContent.height($modalContainer.height() - 80);\r\n}\r\n","// Copyright (C) Microsoft Corporation. All rights reserved.\r\n\r\nimport { InitializeCarouselModalEvents } from './VideoCarouselModal';\r\n\r\n(window).InitializeCarouselModal = InitializeCarouselModalEvents;\r\n"],"names":["containerSelector","onModalContainerKeyDown","event","isEscape","key","isEnterOnModalCloseButton","$","target","hasClass","isTab","isShift","shiftKey","resetCarouselVideoModal","closest","focus","preventDefault","find","$carouselCard","$carousel","$modalContainer","$closeButton","$modalContent","$cardControlCarouselVideoArea","removeClass","css","siblings","removeAttr","attr","each","this","not","show","off","window","occe","suspendStateOfContents","InitializeCarouselModal","forEach","breakpoint","matchMedia","addEventListener","on","carouselCard","length","$window","ratio","height","width","top","left","resizeModal","document"],"sourceRoot":""}