{"version":3,"file":"modal-gallery.js","mappings":"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","sources":["webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/modal-gallery/constants.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/modal-gallery/Slide.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/components/modal-gallery/index.js","webpack://@upstatement/harvard-law-school-wp-theme/./static/js/utils/StateMachine.js"],"sourcesContent":["export const STATE = {\n unmounted: 'unmounted',\n beforeUnmount: 'beforeUnmount',\n beforeMount: 'beforeMount',\n mounted: 'mounted',\n open: 'open',\n beforeOpen: 'beforeOpen',\n beforeClose: 'beforeClose',\n};\n\nexport const TARGET_CLASSES = {\n root: 'js-modal-gallery__root',\n trigger: 'js-modal-gallery__trigger',\n hidden: 'js-modal-gallery__hidden',\n videoOverlay: 'js-modal-gallery__video-overlay',\n videoButton: 'js-modal-gallery__video-button',\n open: 'js-modal-gallery__open',\n caption: 'js-modal-gallery__caption',\n close: 'js-modal-gallery__close',\n countCurrent: 'js-modal-gallery__count--current',\n countTotal: 'js-modal-gallery__count--total',\n credit: 'js-modal-gallery__credit',\n next: 'js-modal-gallery__next',\n previous: 'js-modal-gallery__previous',\n slideAsset: 'js-modal-gallery__asset',\n slideActive: 'js-modal-gallery__slide--active',\n slideNext: 'js-modal-gallery__slide--next',\n slidePrevious: 'js-modal-gallery__slide--previous',\n extraSlides: 'js-modal-gallery__extra-slides',\n};\n\nexport const COMPONENTS = {\n caption: null,\n close: [],\n countCurrent: null,\n countTotal: null,\n credit: null,\n next: [],\n open: [],\n previous: [],\n slideActive: null,\n slideNext: null,\n slidePrevious: null,\n};\n","import { StateMachine, on } from '@src/utils';\nimport { KEY_CODES } from '@src/utils/constants';\nimport { TARGET_CLASSES } from './constants';\n\nconst STATE = {\n unmounted: 'unmounted',\n beforeMount: 'beforeMount',\n mounted: 'mounted',\n beforeUnmount: 'beforeUnmount',\n};\n\nconst VIDEO_LABELS = {\n play: 'Play',\n pause: 'Pause',\n ariaPlay: 'Play Video',\n ariaPause: 'Pause Video',\n};\n\nclass Slide {\n /**\n * Creates a new slide for the modal gallery.\n *\n * @param {HTMLImageElement|HTMLVideoElement} ref the original reference to the image or video element\n * on the page\n */\n constructor(ref) {\n this.stateManager = new StateMachine(STATE.unmounted, {\n [STATE.unmounted]: [STATE.beforeMount],\n [STATE.beforeMount]: [STATE.mounted],\n [STATE.mounted]: [STATE.beforeUnmount],\n [STATE.beforeUnmount]: [STATE.unmounted],\n });\n\n this.ref = ref;\n this.wrapper = null;\n this.button = null;\n this.el = null; // the media element (img/video)\n this.videoPoster = null;\n\n this.initialize();\n this.mount();\n }\n\n initialize() {\n // Clone the ref to display it in the slide and give it our custom class\n this.el = this.ref.cloneNode(true);\n this.el.className = TARGET_CLASSES.slideAsset;\n\n if (this.isVideo) {\n this.videoPoster = document.createElement('img');\n this.videoPoster.src = this.ref.poster;\n } else {\n // For image sizes\n this.el.src = this.ref.dataset.src || this.ref.src;\n this.el.srcset = this.ref.dataset.srcset || this.ref.srcset;\n this.el.sizes = this.ref.dataset.sizes || this.ref.sizes;\n }\n }\n\n /**\n * @type {boolean} whether the slide is currently mounted\n */\n get isMounted() {\n return this.stateManager.isStateOneOf([STATE.beforeMount, STATE.mounted, STATE.beforeUnmount]);\n }\n\n /**\n * @type {HTMLImageElement} the preview to show for inactive slides\n */\n get preview() {\n if (this.isVideo) {\n return this.videoPoster;\n }\n return this.el;\n }\n\n /**\n * @type {boolean} whether the slide is a video\n */\n get isVideo() {\n return this.ref instanceof HTMLVideoElement;\n }\n\n /**\n * @type {string} the slide's media caption\n */\n get caption() {\n return this.ref.dataset.caption || '';\n }\n\n /**\n * @type {string} the slide's media credit\n */\n get credit() {\n return this.ref.dataset.credit || '';\n }\n\n /**\n * Callback before the slide is mounted. Wraps the media reference in a `span` for\n * adding the open button.\n */\n _beforeMount() {\n const wrapper = document.createElement('span');\n wrapper.classList.add(TARGET_CLASSES.trigger);\n\n // If the media item isn't absolutely positioned, add a relative class\n // to position the wrapper element correctly\n if (window.getComputedStyle(this.ref).position !== 'absolute') {\n wrapper.classList.add('relative');\n }\n\n let videoOverlay = null;\n const isFromVideoBlock = this.ref.parentNode.classList.contains('wp-block-video');\n\n if (this.isVideo && isFromVideoBlock) {\n wrapper.classList.add('video');\n videoOverlay = this.createVideoOverlayElem();\n }\n\n // Add the wrapper around the media element\n this.ref.parentNode.insertBefore(wrapper, this.ref);\n\n // Append the media element to the wrapper\n wrapper.append(this.ref);\n\n // Append the video overlay and play the video\n if (videoOverlay) {\n wrapper.append(videoOverlay);\n this.ref.play();\n }\n\n this.wrapper = wrapper;\n }\n\n /**\n * Mounts the slide to the DOM. If the slide is already mounted, an error\n * is thrown.\n */\n mount() {\n if (this.isMounted) {\n throw new Error('Slide is already mounted!');\n }\n\n this.stateManager.setState(STATE.beforeMount);\n this._beforeMount();\n this.stateManager.setState(STATE.mounted);\n }\n\n /**\n * Unwraps the media reference, removes the wrapper, and resets both the wrapper and button.\n */\n _beforeUnmount() {\n if (this.wrapper) {\n this.wrapper.parentNode.insertBefore(this.wrapper, this.ref);\n this.wrapper.parentNode.removeChild(this.wrapper);\n }\n\n this.button = null;\n this.wrapper = null;\n }\n\n /**\n * Unmounts the slide from the DOM, if the slide was mounted.\n */\n unmount() {\n if (this.stateManager.state === STATE.mounted) {\n this.stateManager.setState(STATE.beforeUnmount);\n this._beforeUnmount();\n this.stateManager.setState(STATE.unmounted);\n }\n }\n\n /**\n * Retrieves the slide's open button or, if it doesn't exist, creates one.\n *\n * @return {HTMLButtonElement} the open button, or `null` if the slide isn't mounted\n */\n getOrCreateOpenButton() {\n if (this.stateManager.state !== STATE.mounted) {\n return null;\n } else if (!this.button) {\n const button = document.createElement('button');\n\n button.setAttribute('aria-label', 'Open modal gallery');\n button.classList.add(TARGET_CLASSES.open);\n\n this.wrapper.append(button);\n this.button = button;\n }\n return this.button;\n }\n\n /**\n * Renders the slide to the given element.\n *\n * @param {HTMLElement} element the element to render to\n * @param {boolean} [active=false] whether the slide is currently active\n * @return {HTMLImageElement|HTMLVideoElement} the rendered slide\n */\n renderTo(element, active = false) {\n if (this.stateManager.state !== STATE.mounted || !element) {\n return null;\n }\n\n if (active) {\n element.appendChild(this.el);\n\n // Append the video overlay and play the video from the beginning\n if (this.isVideo) {\n const videoOverlay = this.createVideoOverlayElem();\n element.append(videoOverlay);\n\n this.el.currentTime = 0;\n this.el.play();\n }\n\n return;\n }\n\n return element.appendChild(this.preview);\n }\n\n /**\n * Returns overlay div allow video play/pause functionality\n *\n * @return {HTMLElement} video overlay div with button\n */\n createVideoOverlayElem() {\n const button = document.createElement('button');\n button.classList.add('article-asset-mod__video-btn');\n button.classList.add(TARGET_CLASSES.videoButton);\n button.innerHTML =\n 'PauseVideo playing';\n\n on(button, 'click', this.toggleVideoPlay);\n on(button, 'keydown', e => {\n const spaceKey = e.key === KEY_CODES.SPACE || e.key === KEY_CODES.SPACE_IE11;\n const enterKey = e.key === KEY_CODES.ENTER;\n if (spaceKey || enterKey) {\n e.preventDefault(); // prevent page from scrolling down\n this.toggleVideoPlay(e);\n }\n });\n\n return button;\n }\n\n /**\n * Toggles video play/pause state\n *\n * @param {MouseEvent|KeyboardEvent} e The event from the click or keydown event listeners\n * @return void\n */\n toggleVideoPlay(e) {\n const videoButton = e.currentTarget;\n // Get the