{"mappings":"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","sources":["src/ts/components/quick-view.ts"],"sourcesContent":["import { addJSClass } from '../utils/progressive-enhancement';\r\nimport { getEventElement } from '../utils/event-handlers';\r\nimport { svgPath } from '../utils/svg-path';\r\nimport { translate } from '../utils/translation';\r\nimport { ajaxAbortHandler, ajaxErrorHandler } from '../utils/ajax-helpers';\r\nimport { Share } from './share';\r\n\r\nexport class QuickView {\r\n private quickViewToggles: NodeListOf;\r\n\r\n constructor(private quickViewGrid: HTMLElement) {\r\n addJSClass(quickViewGrid);\r\n\r\n this.quickViewToggles =\r\n quickViewGrid.querySelectorAll('[data-quick-view]');\r\n\r\n this.init();\r\n }\r\n\r\n public static start(): void {\r\n const quickViewGrids = document.querySelectorAll('.gw-quick-view-grid');\r\n\r\n if (quickViewGrids) {\r\n [...(quickViewGrids as any)].map((quickViewGrid) => {\r\n addJSClass(quickViewGrid);\r\n\r\n const instance = new QuickView(quickViewGrid);\r\n\r\n return instance;\r\n });\r\n }\r\n }\r\n\r\n private init(): void {\r\n const quickViewItem = this.initQuickViewItem();\r\n this.initQuickViewToggle(quickViewItem);\r\n }\r\n\r\n private initQuickViewItem(): HTMLLIElement {\r\n // 1. Create an
  • to contain quick view content.\r\n const quickViewItem = document.createElement('li');\r\n quickViewItem.classList.add('gw-quick-view__item');\r\n quickViewItem.setAttribute('tabIndex', '0');\r\n\r\n // 2. Create close button.\r\n const quickViewClose: HTMLButtonElement =\r\n document.createElement('button');\r\n quickViewClose.setAttribute('type', 'button');\r\n quickViewClose.classList.add('gw-button');\r\n quickViewClose.classList.add('gw-button--icon');\r\n quickViewClose.classList.add('gw-quick-view__close');\r\n\r\n const svgHref = svgPath();\r\n const buttonText = translate('Close', 'Close');\r\n const buttonContent = `\r\n \r\n ${buttonText}\r\n \r\n \r\n ${buttonText}\r\n `;\r\n quickViewClose.innerHTML = buttonContent;\r\n\r\n // 3. Create empty
    for Ajax content.\r\n const quickViewAjax: HTMLDivElement = document.createElement('div');\r\n quickViewAjax.classList.add('gw-quick-view__ajax');\r\n\r\n quickViewItem.appendChild(quickViewClose);\r\n quickViewItem.appendChild(quickViewAjax);\r\n\r\n // 4. Handle click event for \"close\" button in quick view card.\r\n quickViewClose?.addEventListener('click', (): void => {\r\n this.handleCloseClick(quickViewItem);\r\n });\r\n\r\n return quickViewItem;\r\n }\r\n\r\n private initQuickViewToggle(quickViewItem: HTMLLIElement): void {\r\n [...(this.quickViewToggles as any)].map((quickViewToggle) => {\r\n quickViewToggle.classList.remove('is-hidden');\r\n\r\n quickViewToggle.addEventListener('click', (e: MouseEvent): void => {\r\n let target = getEventElement(\r\n e.target\r\n ) as HTMLButtonElement | null;\r\n // Button has a nested so ensure we're passing the target as a