{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_project/cartridge/client/default/js/pageMagazine.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","console","log","document","addEventListener","initialItems","Array","from","querySelectorAll","tagsArray","forEach","magazineItem","item","querySelector","ctaLink","ctaLinkImg","tags","getAttribute","tagsSplitted","split","tag","index","trim","setAttribute","a","b","predicate","bItem","some","cItem","push","merge","classList","add","currentLink","url","URL","searchParams","append","removeAttribute","currentLinkImg","urlImg","btnDefault","createElement","applyMasonryLayout","container","columnCount","window","innerWidth","innerHTML","columns","length","column","appendChild","columnIndex","sort","dateA","Date","reverse","join","contains","style","width","previousInNextColumn","lastElementChild","previousHeight","getBoundingClientRect","height","currentColumnPreviousHeight","alignmentSpacer","spacer","remove","colIndex","children","rowIndex","featuredItem","resizeTimeout","event","btn","indexOf","buttons","clearTimeout","setTimeout"],"mappings":"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","file":"app_project/cartridge/static/default/js/pageMagazine.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 110);\n","'use strict';\r\n\r\nconsole.log('BCAME')\r\n\r\nconst merge = (a, b, predicate = (a, b) => a === b) => {\r\n const c = [...a]; // copy to avoid side effects\r\n // add all items from B to copy C if they're not already present\r\n b.forEach((bItem) => (c.some((cItem) => predicate(bItem, cItem)) ? null : c.push(bItem)))\r\n return c;\r\n}\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n // Save initial order items\r\n const initialItems = Array.from(document.querySelectorAll('.magazine-item'));\r\n let tagsArray = [];\r\n\r\n // Port attribute from article to parent div and create tags array\r\n document.querySelectorAll('.magazine-item').forEach(magazineItem => {\r\n const item = magazineItem.querySelector('.article');\r\n const ctaLink = magazineItem.querySelector('.article-link');\r\n const ctaLinkImg = magazineItem.querySelector('.article-link-img');\r\n const tags = item.getAttribute('tags');\r\n if (tags) {\r\n let tagsSplitted = tags.split(',');\r\n\r\n tagsSplitted.forEach((tag, index) => {\r\n tagsSplitted[index] = tag.trim(); \r\n });\r\n\r\n magazineItem.setAttribute('tags', tags);\r\n tagsArray = merge(tagsArray, tagsSplitted)\r\n }\r\n\r\n if (item.getAttribute('featured') == 'true') {\r\n magazineItem.classList.add('featured')\r\n }\r\n\r\n if (item.getAttribute('publishdate') && item.getAttribute('publishdate') !== 'false') {\r\n magazineItem.setAttribute('publishdate', item.getAttribute('publishdate'));\r\n } else {\r\n magazineItem.setAttribute('publishdate', '01-01-1970');\r\n }\r\n\r\n if (ctaLink) {\r\n var currentLink = ctaLink.getAttribute('data-href');\r\n const url = new URL(currentLink);\r\n url.searchParams.append('fromMagazine', 'true');\r\n ctaLink.setAttribute('href', url);\r\n ctaLink.removeAttribute('data-href');\r\n }\r\n\r\n if (ctaLinkImg) {\r\n var currentLinkImg = ctaLinkImg.getAttribute('data-href');\r\n const urlImg = new URL(currentLinkImg);\r\n urlImg.searchParams.append('fromMagazine', 'true');\r\n ctaLinkImg.setAttribute('href', urlImg);\r\n ctaLinkImg.removeAttribute('data-href');\r\n }\r\n\r\n });\r\n\r\n // Create default button VIEW ALL\r\n const btnDefault = document.createElement('button');\r\n btnDefault.classList.add('btn')\r\n btnDefault.classList.add('btn-boxed')\r\n btnDefault.classList.add('btn-tag')\r\n btnDefault.classList.add('active')\r\n btnDefault.innerHTML = document.querySelector('.tags').getAttribute('view-all-text');\r\n btnDefault.addEventListener('click', function (event) {\r\n initialItems.forEach(item => {\r\n document.querySelectorAll('.btn-tag').forEach(btn => {\r\n btn.classList.remove('active')\r\n });\r\n btnDefault.classList.add('active')\r\n item.classList.remove('d-none');\r\n });\r\n applyMasonryLayout();\r\n });\r\n document.querySelector('.tags').appendChild(btnDefault);\r\n\r\n // Create other button tags\r\n tagsArray.forEach(tag => {\r\n let btn = document.createElement('button');\r\n btn.classList.add('btn')\r\n btn.classList.add('btn-boxed')\r\n btn.classList.add('btn-tag')\r\n btn.innerHTML = tag;\r\n btn.addEventListener('click', function (event) {\r\n initialItems.forEach(item => {\r\n item.classList.remove('d-none')\r\n if (!item.getAttribute('tags') || item.getAttribute('tags').indexOf(tag) < 0) {\r\n item.classList.add('d-none')\r\n }\r\n document.querySelectorAll('.btn-tag').forEach(buttons => {\r\n buttons.classList.remove('active')\r\n });\r\n btn.classList.add('active')\r\n });\r\n applyMasonryLayout();\r\n });\r\n document.querySelector('.tags').appendChild(btn);\r\n });\r\n\r\n function applyMasonryLayout() {\r\n const container = document.querySelector('.magazine-container');\r\n const columnCount = window.innerWidth < 768 ? 1 : 4; // Use a single column on mobile, 4 in desktop\r\n container.innerHTML = ''; // Reset container for reassign\r\n\r\n const columns = Array.from({ length: columnCount }, () => document.createElement('div'));\r\n\r\n // Add class column to every column and append into container\r\n columns.forEach(column => {\r\n column.classList.add('column');\r\n container.appendChild(column);\r\n });\r\n\r\n let columnIndex = 0; // Current index column\r\n\r\n // Assing articles inside column based on initial order\r\n\r\n // Sort elements most recently\r\n if (document.querySelector('.page-magazine').getAttribute('orderbydate') === 'true') {\r\n initialItems.sort((a, b) => {\r\n const dateA = new Date(a.getAttribute('publishdate').split('-').reverse().join('-'));\r\n const dateB = new Date(b.getAttribute('publishdate').split('-').reverse().join('-'));\r\n return dateB - dateA; // Ordine decrescente\r\n });\r\n }\r\n\r\n // `initialItems` è ora ordinato per data dalla più recente alla meno recente\r\n initialItems.forEach((item) => {\r\n if (!item.classList.contains('d-none')) {\r\n if (item.classList.contains('featured') && columnCount > 1) {\r\n // Remove class \"featured\" if element is positioned in last column\r\n if ((columnIndex % columnCount) === columnCount - 1) {\r\n item.classList.remove('featured');\r\n item.style.width = '100%'; // Reset width\r\n } else {\r\n // set double width for occupy two column\r\n item.style.width = 'calc(200% + 16px)';\r\n\r\n // Check if previous element in next column is taller than current column\r\n const previousInNextColumn = columns[(columnIndex + 1) % columnCount].lastElementChild;\r\n const previousHeight = previousInNextColumn ? previousInNextColumn.getBoundingClientRect().height : 0;\r\n const currentColumnPreviousHeight = columns[columnIndex % columnCount].lastElementChild ? columns[columnIndex % columnCount].lastElementChild.getBoundingClientRect().height : 0;\r\n\r\n // Add a spacer above the featured article if next column is taller than current column\r\n if (previousHeight > currentColumnPreviousHeight) {\r\n const alignmentSpacer = document.createElement('div');\r\n alignmentSpacer.classList.add('alignment-spacer');\r\n alignmentSpacer.style.height = (previousHeight - currentColumnPreviousHeight - 40) + 'px';\r\n columns[columnIndex % columnCount].appendChild(alignmentSpacer);\r\n }\r\n \r\n // Insert \"featured\" article inside current column\r\n columns[columnIndex % columnCount].appendChild(item);\r\n\r\n // Create a placeholder withou set height (set height in second loop)\r\n const spacer = document.createElement('div');\r\n spacer.classList.add('spacer');\r\n columns[(columnIndex + 1) % columnCount].appendChild(spacer);\r\n\r\n // Skip two column for \"featured\" articles\r\n columnIndex += 2;\r\n return; // next element\r\n }\r\n }\r\n\r\n // Position articles non featured without placeholder\r\n item.style.width = '100%'; // Set normal width\r\n columns[columnIndex % columnCount].appendChild(item);\r\n columnIndex += 1; // next element\r\n }\r\n });\r\n\r\n // second loop: Set height of placeholders based on height of feature article correspondent\r\n columns.forEach((column, colIndex) => {\r\n const itemsInColumn = Array.from(column.children);\r\n \r\n itemsInColumn.forEach((item, rowIndex) => {\r\n if (item.classList.contains('spacer')) {\r\n // find the \"featured\" article in previous column in the same position\r\n const featuredItem = columns[(colIndex - 1 + columnCount) % columnCount].children[rowIndex];\r\n if (featuredItem && featuredItem.classList.contains('featured')) {\r\n // set height of placeholder equal to featured article correspondent\r\n item.style.height = featuredItem.getBoundingClientRect().height + 'px';\r\n }\r\n }\r\n });\r\n });\r\n\r\n document.querySelector('.overlay').classList.remove('loading');\r\n }\r\n\r\n // Apply initial masonry layout\r\n applyMasonryLayout();\r\n\r\n // repeat on resize with debounce\r\n let resizeTimeout;\r\n window.addEventListener('resize', () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(() => {\r\n applyMasonryLayout();\r\n }, 200);\r\n });\r\n});"],"sourceRoot":""}