{"version":3,"sources":["webpack:///./ResourcePackages/Mofa/assets/src/js/functions/element-enumerator.js","webpack:///./ResourcePackages/Mofa/assets/src/js/functions/widget-initializer.js","webpack:///./ResourcePackages/Mofa/assets/src/js/functions/slider-util.js","webpack:///./ResourcePackages/Mofa/assets/src/js/widgets/notifications-carousel.js"],"names":["ElementsEnumerator","elementsClass","this","prototype","getElements","elements","document","getElementsByClassName","elementIdPrefix","i","length","setAttribute","WidgetInitializer","innerInitialization","initializationCallback","notInitializedElements","element","hasAttribute","newElement","initialize","that","widgetInitialisation","call","SliderUtil","onSlickActiveChange","slickSlideNumber","slickSlideElementsLength","titleLink","Constants","SELECTORS","SLICK_SLIDE_LINK","viewAllLink","SLICK_VIEW_ALL","contentBlock","SLICK_SLIDE_CONTENT","classList","contains","setTimeout","querySelectorAll","SLICK_ALERT","onArrowActiveChange","widgetInitializer","COMPONENTS","NOTIFICATIONS_CAROUSEL","initNotificationsCarouselApp","Vue","el","id","data","settings","slickSlideObservers","slickArrowsObservers","mounted","slickSlideElements","Array","from","$el","SLICK_SLIDE","forEach","options","attributes","observer","MutationObserver","mutationList","mutation","type","attributeName","observe","push","SLICK_ARROW","beforeDestroy","disconnect","components","VueSlickCarousel","GlobalApp","registerInitializationHandler"],"mappings":"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","file":"notifications-carousel.98005438f75b92f09586.js","sourcesContent":["export var ElementsEnumerator = function (elementsClass) {\r\n this.elementsClass = elementsClass;\r\n};\r\n\rElementsEnumerator.prototype.getElements = function () {\r var elements = document.getElementsByClassName(this.elementsClass);\r\n var elementIdPrefix = this.elementsClass + \"-\";\r\n for (var i = 0; i < elements.length; i++) {\r\n var element = elements[i];\r\n element.setAttribute(\"id\", (elementIdPrefix + (i + 1)));\r\n }\r return elements;\r};","import { widgetInitialisation } from \"./widget-init\";\r\nimport { ElementsEnumerator } from \"./element-enumerator\";\r\n\r\nconst initializedVueAppAttrName = \"data-vue-initialized\";\r\n\r\nexport var WidgetInitializer = function (elementsClass) {\r\n this.elementsClass = elementsClass;\r\n};\r\n\r\nWidgetInitializer.prototype.initialize = function (initializationCallback) {\r\n var that = this;\r\n widgetInitialisation(function () {\r\n return innerInitialization.call(that, initializationCallback);\r\n });\r\n};\r\n\r\nfunction innerInitialization(initializationCallback) {\r\n var elementsEnumerator = new ElementsEnumerator(this.elementsClass);\r\n var notInitializedElements = elementsEnumerator.getElements();\r\n for (var i = 0; i < notInitializedElements.length; i++) {\r\n var element = notInitializedElements[i];\r\n if (element.hasAttribute(initializedVueAppAttrName))\r\n return;\r\n\r\n var newElement = initializationCallback(element);\r\n if (newElement)\r\n { element = newElement; }\r\n\r\n element.setAttribute(initializedVueAppAttrName, '');\r\n }\r\n};","import { Constants } from \"./constants\";\r\n\r\nexport var SliderUtil = {\r\n\r\n onSlickActiveChange(element, slickSlideNumber, slickSlideElementsLength) {\r\n let titleLink = element.getElementsByClassName(Constants.SELECTORS.SLICK_SLIDE_LINK)[0];\r\n let viewAllLink = element.getElementsByClassName(Constants.SELECTORS.SLICK_VIEW_ALL)[0];\r\n let contentBlock = element.getElementsByClassName(Constants.SELECTORS.SLICK_SLIDE_CONTENT)[0];\r\n \r\n if (element.classList.contains('slick-active')) {\r\n setTimeout(() => {\r\n if (contentBlock){\r\n contentBlock.setAttribute('tabindex', '0');\r\n }\r\n \r\n if(titleLink) {\r\n titleLink.setAttribute('tabindex', '0');\r\n }\r\n \r\n if(viewAllLink) {\r\n viewAllLink.setAttribute('tabindex', '0'); \r\n }\r\n\r\n if(slickSlideNumber && slickSlideElementsLength) {\r\n let slickCarouselAlert = document.querySelectorAll(Constants.SELECTORS.SLICK_ALERT)[0];\r\n slickCarouselAlert.setAttribute('aria-label', `item ${slickSlideNumber} of ${slickSlideElementsLength}`)\r\n }\r\n }, 100)\r\n } else {\r\n setTimeout(() => {\r\n if (contentBlock){\r\n contentBlock.setAttribute('tabindex', '-1');\r\n }\r\n \r\n if(titleLink) {\r\n titleLink.setAttribute('tabindex', '-1');\r\n }\r\n \r\n if(viewAllLink) {\r\n viewAllLink.setAttribute('tabindex', '-1');\r\n }\r\n }, 100)\r\n }\r\n },\r\n onArrowActiveChange(element) {\r\n if (element.classList.contains('slick-disabled')) {\r\n setTimeout(() => {\r\n element.setAttribute('aria-disabled', 'true');\r\n }, 100)\r\n } else {\r\n setTimeout(() => {\r\n element.setAttribute('aria-disabled', 'false');\r\n }, 100)\r\n }\r\n }\r\n}","import { WidgetInitializer } from \"../functions/widget-initializer\";\r\nimport { Constants } from \"../functions/constants\";\r\nimport VueSlickCarousel from 'vue-slick-carousel';\r\nimport { SliderUtil } from \"../functions/slider-util\";\r\n\r\nvar widgetInitializer = new WidgetInitializer(Constants.COMPONENTS.NOTIFICATIONS_CAROUSEL);\r\nGlobalApp.registerInitializationHandler(Constants.COMPONENTS.NOTIFICATIONS_CAROUSEL, function () {\r\n widgetInitializer.initialize(initNotificationsCarouselApp);\r\n\r\n});\r\n\r\nfunction initNotificationsCarouselApp(element) {\r\n let vueApp = new Vue({\r\n el: '#' + element.id,\r\n data: {\r\n settings: {\r\n \"dots\": false,\r\n \"speed\": 200,\r\n \"fade\": true,\r\n \"slidesToShow\": 1,\r\n \"slidesToScroll\": 1,\r\n \"accessibility\": true,\r\n \"arrows\": true,\r\n },\r\n slickSlideObservers: [],\r\n slickArrowsObservers: []\r\n },\r\n mounted() {\r\n let slickSlideElements = Array.from(this.$el.getElementsByClassName(Constants.COMPONENTS.SLICK_SLIDE));\r\n slickSlideElements.forEach((element) => {\r\n //initial tabIndex change when slick is active\r\n SliderUtil.onSlickActiveChange(element, null, null);\r\n\r\n let options = {\r\n attributes: true,\r\n slickSlideNumber: this.slickSlideObservers.length + 1,\r\n slickSlideElementsLength: slickSlideElements.length\r\n }\r\n function callback(mutationList, observer) {\r\n mutationList.forEach(function (mutation) {\r\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\r\n //tabIndex change when change the active slick// handle class change\r\n SliderUtil.onSlickActiveChange(element, options.slickSlideNumber, options.slickSlideElementsLength);\r\n }\r\n })\r\n }\r\n\r\n const observer = new MutationObserver(callback)\r\n observer.observe(element, options)\r\n this.slickSlideObservers.push(observer)\r\n });\r\n\r\n Array.from(this.$el.getElementsByClassName(Constants.COMPONENTS.SLICK_ARROW)).forEach((element) => {\r\n //initial aria-disabled change when slick is active\r\n SliderUtil.onArrowActiveChange(element);\r\n\r\n let options = {\r\n attributes: true\r\n }\r\n function callback(mutationList, observer) {\r\n mutationList.forEach(function (mutation) {\r\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\r\n //aria-disabled change when add/remove slick-disabled class\r\n SliderUtil.onArrowActiveChange(element);\r\n }\r\n })\r\n }\r\n\r\n const observer = new MutationObserver(callback)\r\n observer.observe(element, options)\r\n this.slickArrowsObservers.push(observer)\r\n });\r\n },\r\n beforeDestroy() {\r\n this.slickSlideObservers.forEach((observer) => {\r\n observer.disconnect();\r\n });\r\n this.slickArrowsObservers.forEach((observer) => {\r\n observer.disconnect();\r\n });\r\n },\r\n components: {\r\n VueSlickCarousel,\r\n },\r\n });\r\n\r\n return vueApp.$el;\r\n}"],"sourceRoot":""}