{"version":3,"file":"mosaic-card.js","sources":["../../../../src/assets/scripts/mosaic-card.entry.js"],"sourcesContent":["window.mosaicCardJs = window.mosaicCardJs || {\n isInitialized: false,\n hoverTimeoutId: null,\n hasMoreItems: true,\n resizeHandler: function () {\n const mosaicCards = [...document.querySelectorAll('.arjo-m-mosaic-card')];\n mosaicCards.forEach((card) => {\n var rect = card.getBoundingClientRect();\n if (window.arjoJs.isMobile()) {\n card.setAttribute('data-mobile', '');\n } else {\n card.removeAttribute('data-mobile');\n }\n\n if (rect.width < 500) {\n card.setAttribute('data-sm', '');\n } else {\n card.removeAttribute('data-sm');\n }\n\n if (rect.width < 380) {\n card.setAttribute('data-xs', '');\n } else {\n card.removeAttribute('data-xs');\n }\n\n const imageContainer = card.querySelector('.arjo-m-mosaic-card__image-container');\n if (imageContainer) {\n const image = imageContainer.querySelector('.arjo-a-picture');\n if (image) {\n const imagePosition =\n card.classList.contains('arjo-m-mosaic-card--round-image') || card.classList.contains('arjo-m-mosaic-card--presenter');\n if (imagePosition) {\n var imageContainerRect = imageContainer.getBoundingClientRect();\n var diameter = card.classList.contains('arjo-m-mosaic-card--full-banner')\n ? imageContainerRect.width\n : card.hasAttribute('data-mobile') || card.hasAttribute('data-sm') || card.classList.contains('arjo-m-mosaic-card--image-auto-height')\n ? Math.min(imageContainerRect.width, 440)\n : Math.min(imageContainerRect.width, imageContainerRect.height, 440);\n image.style.width = diameter + 'px';\n image.style.height = diameter + 'px';\n } else {\n image.style.removeProperty('width');\n image.style.removeProperty('height');\n }\n image.style.opacity = 1;\n }\n }\n });\n },\n loadMoreClickHandler: function (cardList) {\n const loadMoreButton = cardList.querySelector('.arjo-m-mosaic-card-list__load-more');\n const loadMoreLabel = loadMoreButton?.querySelector('.arjo-m-button-expander__label');\n\n if (!loadMoreLabel) return;\n\n const itemContainer = cardList.querySelector('.arjo-m-mosaic-card-list__items');\n if (!itemContainer) {\n return;\n }\n\n const loadMoreElement = itemContainer.querySelector('.arjo-m-mosaic-card-list__load-more-url');\n if (!loadMoreElement) {\n loadMoreLabel.dataset.inactive = \"true\"\n return;\n }\n\n const spinner = cardList.querySelector('.arjo-a-spinner');\n\n const loadMoreUrl = loadMoreElement.getAttribute('data-url');\n if (!loadMoreUrl) {\n return;\n }\n loadMoreElement.remove();\n loadMoreLabel.dataset.inactive = \"true\"\n\n if (spinner) {\n spinner.style.display = 'flex';\n }\n\n axios\n .get(loadMoreUrl)\n .then((response) => {\n if (!response.data) {\n return;\n }\n\n itemContainer.insertAdjacentHTML('beforeend', response.data);\n const hasMoreItems = itemContainer.querySelector('.arjo-m-mosaic-card-list__load-more-url');\n\n if (hasMoreItems) {\n this.hasMoreItems = true;\n loadMoreLabel.removeAttribute('data-inactive')\n } else {\n this.hasMoreItems = false;\n loadMoreButton.style.display = 'none';\n }\n })\n .catch(function (error) {\n console.log(error);\n loadMoreLabel.style.removeProperty('display');\n loadMoreLabel.dataset.inactive = \"true\"\n })\n .finally(function () {\n if (spinner) {\n spinner.style.removeProperty('display');\n }\n });\n },\n loadMoreOnHover: function (loadMoreButton, loadMoreLabel, cardList, hoverDelay) {\n if (!hoverDelay || !this.hasMoreItems) return;\n const spinner = cardList.querySelector('.arjo-a-spinner');\n\n loadMoreButton?.addEventListener('mouseenter', () => {\n spinner.style.display = 'block';\n loadMoreLabel.dataset.inactive = \"true\"\n\n this.hoverTimeoutId = setTimeout(() => {\n this.loadMoreClickHandler(cardList);\n }, +hoverDelay);\n });\n },\n spinnerOnHover: function (loadMoreButton, cardList, loadMoreLabel) {\n const spinner = cardList.querySelector('.arjo-a-spinner');\n\n if (!spinner) return;\n\n loadMoreButton.addEventListener('mouseleave', () => {\n if (this.hoverTimeoutId) {\n setTimeout(() => {\n window.clearTimeout(this.hoverTimeoutId);\n spinner.style.display = 'none';\n\n if (this.hasMoreItems) {\n loadMoreLabel.removeAttribute('data-inactive')\n }\n }, 50);\n }\n });\n },\n setupLoadMore: function () {\n const mosaicCardLists = [...document.querySelectorAll('.arjo-m-mosaic-card-list')];\n mosaicCardLists.forEach((cardList) => {\n const hoverDelay = cardList.dataset.hoverDelay;\n\n if (cardList.hasAttribute('data-auto-load-more')) {\n this.loadMoreClickHandler(cardList);\n }\n\n const buttonArea = cardList.querySelector('.arjo-m-mosaic-card-list__buttons');\n if (!buttonArea) {\n return;\n }\n\n const loadMoreButton = buttonArea.querySelector('.arjo-m-mosaic-card-list__load-more');\n if (!loadMoreButton) {\n return;\n }\n\n buttonArea.removeAttribute('data-hidden');\n\n loadMoreButton.addEventListener('click', () => this.loadMoreClickHandler(cardList));\n const loadMoreLabel = loadMoreButton?.querySelector('.arjo-m-button-expander__label');\n\n if (!loadMoreLabel) return;\n\n this.loadMoreOnHover(loadMoreButton, loadMoreLabel, cardList, hoverDelay);\n this.spinnerOnHover(loadMoreButton, cardList, loadMoreLabel);\n });\n },\n setupLinkForImage: function () {\n const mosaicCards = [...document.querySelectorAll('.arjo-m-mosaic-card')];\n\n mosaicCards.forEach((card) => {\n const imageContainer = card.querySelector('.arjo-m-mosaic-card__image-container');\n const buttonsContainer = card.querySelector('.arjo-m-mosaic-card__buttons');\n\n if (imageContainer && buttonsContainer) {\n const buttonEl = buttonsContainer.querySelector('.arjo-a-button');\n const linkEl = buttonsContainer.querySelector('.arjo-a-link');\n\n let target = imageContainer;\n\n if (card.classList.contains('arjo-m-mosaic-card--no-image')) {\n return;\n } else if (card.classList.contains('arjo-m-mosaic-card--background-image')) {\n target = card;\n }\n\n if (linkEl || buttonEl) {\n target.style.cursor = 'pointer';\n\n target.addEventListener('mousedown', (e) => {\n const { button, shiftKey, ctrlKey, altKey } = e;\n\n if (button !== 2 && !linkEl?.contains(e.target) && !buttonEl?.contains(e.target)) {\n linkEl && linkEl.dispatchEvent(new MouseEvent('mousedown'));\n buttonEl && buttonEl.dispatchEvent(new MouseEvent('mousedown'));\n }\n\n linkEl && linkEl.dispatchEvent(new MouseEvent('click', { button, shiftKey, ctrlKey, altKey }));\n buttonEl && buttonEl.dispatchEvent(new MouseEvent('click', { button, shiftKey, ctrlKey, altKey }));\n });\n }\n }\n });\n },\n init: function () {\n if (this.isInitialized) {\n return;\n }\n this.isInitialized = true;\n\n addEventListener('resize', () => this.resizeHandler());\n this.setupLoadMore();\n this.setupLinkForImage();\n\n if ('ResizeObserver' in window) {\n // create an Observer instance\n const resizeObserver = new ResizeObserver(() => this.resizeHandler());\n\n // start observing a DOM node\n resizeObserver.observe(document.body);\n }\n },\n};\n\nwindow.addEventListener('load', function () {\n window.mosaicCardJs.init();\n});\n\nwindow.mosaicCardJs.resizeHandler();\n"],"names":["card","rect","imageContainer","image","imageContainerRect","diameter","cardList","loadMoreButton","loadMoreLabel","itemContainer","loadMoreElement","spinner","loadMoreUrl","response","error","hoverDelay","buttonArea","buttonsContainer","buttonEl","linkEl","target","e","button","shiftKey","ctrlKey","altKey"],"mappings":"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"}