{"version":3,"file":"SurfaceSlideshow-789049df.js","sources":["../../../../../node_modules/lodash-es/compact.js","../../../app/javascript/vuecomponents/SurfaceSlideshowAuthor.vue","../../../app/javascript/vuecomponents/AutoplayMenu.vue","../../../app/javascript/vuecomponents/AutoplaySettings.vue","../../../app/javascript/vuecomposables/slideshow_panels.ts","../../../app/javascript/vuecomponents/SurfaceSlideshowEmbedPanel.vue","../../../app/javascript/vuecomposables/slideshow_menus.ts","../../../app/javascript/vuecomposables/slideshow_qr_code.ts","../../../app/javascript/vuecomponents/SurfaceSlideshowMoreMenu.vue","../../../app/javascript/vuecomponents/SurfaceSlideshowSharePanel.vue","../../../app/javascript/vuecomponents/SurfaceSlideshowShareViaAnotherAppPanel.vue","../../../app/javascript/vuecomposables/autoplay.ts","../../../app/javascript/vuecomposables/slideshow_overlays.ts","../../../app/javascript/vuecomposables/slideshow_autoplay.ts","../../../app/javascript/vuecomposables/slideshow_navigation.ts","../../../app/javascript/vuecomposables/slideshow_navigation_visibility.ts","../../../app/javascript/vuecomponents/SurfaceSlideshowNavigationBarV2.vue","../../../app/javascript/vuecomponents/SurfaceSlideshow.vue"],"sourcesContent":["/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n","\n\n\n","\n\n\n","\n\n\n","// @file Vue composable for all panel related logic in Slideshow\n\nimport { useSlideshowStore } from '@@/pinia/slideshow'\nimport { storeToRefs } from 'pinia'\nimport { Ref } from 'vue'\n\nexport const useSlideshowPanels = (): {\n isSharePanelOpen: Ref\n isShareViaAnotherAppPanelOpen: Ref\n isEmbedPanelOpen: Ref\n} => {\n const { isSharePanelOpen, isShareViaAnotherAppPanelOpen, isEmbedPanelOpen } = storeToRefs(useSlideshowStore())\n\n return {\n isSharePanelOpen,\n isShareViaAnotherAppPanelOpen,\n isEmbedPanelOpen,\n }\n}\n","\n\n\n","// @file Vue composable for all menu related logic in Slideshow\n\nimport { useSlideshowStore } from '@@/pinia/slideshow'\nimport { storeToRefs } from 'pinia'\nimport type { Ref } from 'vue'\n\nexport const useSlideshowMenus = (): {\n isMoreMenuOpen: Ref\n isAutoplayMenuOpen: Ref\n isAnyMenuOpen: Ref\n} => {\n const { isMoreMenuOpen, isAutoplayMenuOpen, isAnyMenuOpen } = storeToRefs(useSlideshowStore())\n\n return {\n isMoreMenuOpen,\n isAutoplayMenuOpen,\n isAnyMenuOpen,\n }\n}\n","// @file Vue composable for QR code logic used by Slideshow\nimport { trackEvent } from '@@/bits/analytics'\nimport { useSlideshowStore } from '@@/pinia/slideshow'\nimport { storeToRefs } from 'pinia'\nimport type { Ref } from 'vue'\n\nexport const useSlideshowQRCode = (): {\n isQrCodeShown: Ref\n shouldRemoveQrCode: Ref\n toggleQRCode: () => void\n} => {\n const slideshowStore = useSlideshowStore()\n const { isQrCodeShown, shouldRemoveQrCode } = storeToRefs(slideshowStore)\n\n const toggleQRCode = (): void => {\n isQrCodeShown.value = !isQrCodeShown.value\n trackEvent('Slideshow', isQrCodeShown.value ? 'Show QR code' : 'Hide QR code')\n }\n\n return {\n isQrCodeShown,\n shouldRemoveQrCode,\n\n toggleQRCode,\n }\n}\n","\n\n\n","\n\n\n","\n\n\n","// @file Vue composable for all autoplay related logic\nimport type { AutoplayDurationType } from '@@/bits/autoplay'\nimport { getAutoplayNotificationMessages } from '@@/bits/autoplay'\nimport device from '@@/bits/device'\nimport { __ } from '@@/bits/intl'\nimport { PausableTimer } from '@@/bits/pausable_timer'\nimport { SnackbarNotificationType, useGlobalSnackbarStore } from '@@/pinia/global_snackbar'\nimport type { Ref } from 'vue'\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue'\n\ninterface AutoplayOptions {\n currentPageIndex: Ref\n isLastPage: Ref\n autoplayButtonId: string\n pauseOnOverlayOpen?: boolean\n isAnyOtherOverlayOpen: Ref\n computeAutoplayDurationInMs: (x: AutoplayDurationType) => number\n // callback functions\n onStart: () => void\n onPause: () => void\n onStop: () => void\n onNext: () => void\n onRestart: () => void\n}\n\ninterface AutoplayReturn {\n autoplayTimer: PausableTimer\n isAutoplayMenuOpen: Ref\n isAutoplaying: Ref\n isAutoplayPaused: Ref\n isAutoplayLooping: Ref\n selectedAutoplayDuration: Ref\n computedAutoplayDurationInMs: Ref\n onAutoplayLoopingToggle: () => void\n onAutoplayDurationSelected: (durationType: AutoplayDurationType) => void\n toggleAutoplay: () => void\n startAutoplay: () => void\n}\n\nconst useAutoplay = ({\n currentPageIndex,\n isLastPage,\n autoplayButtonId,\n pauseOnOverlayOpen = true,\n isAnyOtherOverlayOpen,\n computeAutoplayDurationInMs,\n onStart,\n onPause,\n onStop,\n onNext,\n onRestart,\n}: AutoplayOptions): AutoplayReturn => {\n const autoplayTimer = new PausableTimer()\n const globalSnackbarStore = useGlobalSnackbarStore()\n\n const isAutoplayMenuOpen = ref(false)\n const isAutoplaying = ref(false)\n const isAutoplayPaused = ref(false)\n const isAutoplayLooping = ref(false)\n\n const previousAutoplayDuration = ref()\n const selectedAutoplayDuration = ref('auto')\n\n const computedAutoplayDurationInMs = computed(() => computeAutoplayDurationInMs(selectedAutoplayDuration.value))\n\n const autoplayHandler = (): void => {\n if (!isLastPage.value) {\n onNext()\n return\n }\n\n if (isAutoplayLooping.value) {\n onRestart()\n } else {\n stopAutoplay()\n }\n }\n\n const resetAutoplayTimer = (): void => {\n autoplayTimer.setTimeoutDuration(computedAutoplayDurationInMs.value)\n autoplayTimer.setOnComplete(autoplayHandler)\n autoplayTimer.start()\n }\n\n const startAutoplay = (): void => {\n isAutoplaying.value = true\n resetAutoplayTimer()\n\n if (!(autoplayTimer.isPaused || autoplayTimer.isResumed)) {\n onStop()\n }\n onStart()\n }\n\n const stopAutoplay = (): void => {\n isAutoplaying.value = false\n autoplayTimer.stop()\n onStop()\n }\n\n const toggleAutoplay = (): void => {\n if (isAutoplaying.value) {\n stopAutoplay()\n } else {\n startAutoplay()\n }\n }\n\n const onAutoplayLoopingToggle = (): void => {\n isAutoplayLooping.value = !isAutoplayLooping.value\n }\n\n const onAutoplayDurationSelected = (durationType: AutoplayDurationType): void => {\n previousAutoplayDuration.value = selectedAutoplayDuration.value\n selectedAutoplayDuration.value = durationType\n autoplayTimer.setTimeoutDuration(computedAutoplayDurationInMs.value)\n }\n\n /**\n * This is the \"engine\" behind autoplay.\n * Since autoplayTimer is not a recurring interval, it ends after progressing a page.\n * We start the timer again if autoplay is still enabled.\n */\n watch(currentPageIndex, () => {\n if (isAutoplaying.value) {\n startAutoplay()\n }\n })\n\n const onPauseWhenOverlayOpen = (): void => {\n isAutoplaying.value = false\n autoplayTimer.pause()\n isAutoplayPaused.value = true\n onPause()\n previousAutoplayDuration.value = selectedAutoplayDuration.value\n }\n\n const isAnyOverlayOpen = computed(() => isAnyOtherOverlayOpen.value || isAutoplayMenuOpen.value)\n if (pauseOnOverlayOpen) {\n watch(isAnyOverlayOpen, () => {\n // pause autoplaying when any menu is open\n if (isAnyOverlayOpen.value && isAutoplaying.value) {\n onPauseWhenOverlayOpen()\n } else if (!isAnyOverlayOpen.value && autoplayTimer.isPaused) {\n isAutoplayPaused.value = false\n\n // resume autoplaying when the menu is closed\n // if user did not change the autoplay duration while the menu is open, resume from where it was paused\n // otherwise, restart autoplaying with the new duration\n if (previousAutoplayDuration.value === selectedAutoplayDuration.value) {\n isAutoplaying.value = true\n autoplayTimer.resume()\n onStart()\n } else {\n startAutoplay()\n }\n }\n })\n }\n\n const pauseAutoplayForMouseDevices = (event: KeyboardEvent): void => {\n if (device.touchable) {\n return\n }\n\n const isKeydownOnAutoplayButton =\n (document.activeElement as HTMLElement).id === autoplayButtonId && [' ', 'Enter'].includes(event.key)\n // if user clicks on the autoplay button, we let the button naturally set isAutoplaying as false\n // so we don't need to manually toggle it here\n if (!isAutoplaying.value || isKeydownOnAutoplayButton) {\n return\n }\n\n stopAutoplay()\n globalSnackbarStore.setSnackbar({\n notificationType: SnackbarNotificationType.success,\n message: getAutoplayNotificationMessages().stoppedAutoplaying,\n actionText: __('Resume'),\n actionTextActions: [\n () => {\n startAutoplay()\n },\n ],\n })\n }\n\n onMounted(() => {\n window.addEventListener('keydown', pauseAutoplayForMouseDevices)\n })\n onUnmounted(() => {\n window.removeEventListener('keydown', pauseAutoplayForMouseDevices)\n })\n\n return {\n // Overlays\n isAutoplayMenuOpen,\n\n // Autoplay\n autoplayTimer,\n isAutoplaying,\n isAutoplayPaused,\n isAutoplayLooping,\n selectedAutoplayDuration,\n computedAutoplayDurationInMs,\n\n // Event handlers\n onAutoplayLoopingToggle,\n onAutoplayDurationSelected,\n toggleAutoplay,\n startAutoplay,\n }\n}\n\ninterface IndicatorAnimationOptions {\n maxScaleValue?: number\n numStepsInScale?: number\n amountToScalePerInterval?: number\n}\n\nexport const useAutoplayWithIndicatorAnimation = ({\n // Autoplay\n currentPageIndex,\n isLastPage,\n autoplayButtonId,\n isAnyOtherOverlayOpen,\n computeAutoplayDurationInMs,\n onNext,\n onRestart,\n // Animation\n maxScaleValue = 1,\n numStepsInScale = 100,\n amountToScalePerInterval = 0.01,\n}: Omit & IndicatorAnimationOptions): AutoplayReturn & {\n indicatorTransformScaleX: Ref\n} => {\n // #region Animates the indicator bar when autoplaying\n const indicatorTransformScaleX = ref(0)\n let indicatorTransformScaleXInterval: ReturnType\n const startIndicatorTransformScaleXAnimation = (computedAutoplayDurationInMs: number): void => {\n stopIndicatorTransformScaleXAnimation()\n\n indicatorTransformScaleXInterval = setInterval(() => {\n indicatorTransformScaleX.value += amountToScalePerInterval\n if (indicatorTransformScaleX.value >= maxScaleValue) {\n stopIndicatorTransformScaleXAnimation()\n }\n }, computedAutoplayDurationInMs / numStepsInScale)\n }\n const stopIndicatorTransformScaleXAnimation = (): void => {\n clearInterval(indicatorTransformScaleXInterval)\n }\n // #endregion\n\n const autoplay = useAutoplay({\n currentPageIndex,\n isLastPage,\n autoplayButtonId,\n pauseOnOverlayOpen: true,\n isAnyOtherOverlayOpen,\n computeAutoplayDurationInMs,\n onStart: () => startIndicatorTransformScaleXAnimation(autoplay.computedAutoplayDurationInMs.value),\n onPause: stopIndicatorTransformScaleXAnimation,\n onStop: () => {\n stopIndicatorTransformScaleXAnimation()\n indicatorTransformScaleX.value = 0\n },\n onNext,\n onRestart,\n })\n\n return {\n ...autoplay,\n indicatorTransformScaleX,\n }\n}\n","// @file Vue composable for all menu+panel related logic in Slideshow\n\nimport { useSlideshowStore } from '@@/pinia/slideshow'\nimport { storeToRefs } from 'pinia'\n\nexport const useSlideshowOverlays = (): {\n isAnyOverlayOpen: typeof isAnyOverlayOpen\n isAutoplayMenuOpen: typeof isAutoplayMenuOpen\n} => {\n const { isAnyOverlayOpen, isAutoplayMenuOpen } = storeToRefs(useSlideshowStore())\n\n return {\n isAnyOverlayOpen,\n isAutoplayMenuOpen,\n }\n}\n","// @file Vue composable for all autoplay related logic in Slideshow\nimport { getSearchParam, isSearchParamTruthy } from '@@/bits/location'\nimport type { AutoplayDurationType } from '@@/bits/slideshow'\nimport { AUTOPLAY_DURATIONS, calculateAutoSlideDuration } from '@@/bits/slideshow'\nimport { useAutoplayWithIndicatorAnimation } from '@@/vuecomposables/autoplay'\nimport { useSlideshowAttachments } from '@@/vuecomposables/slideshow_attachments'\nimport { useSlideshowOverlays } from '@@/vuecomposables/slideshow_overlays'\nimport { useSlideshowPages } from '@@/vuecomposables/slideshow_pages'\nimport { onMounted, watch } from 'vue'\n\nexport const useSlideshowAutoplay = (): {\n isAutoplaying: typeof isAutoplaying\n isAutoplayPaused: typeof isAutoplayPaused\n isAutoplayLooping: typeof isAutoplayLooping\n selectedAutoplayDuration: typeof selectedAutoplayDuration\n computedAutoplayDurationInMs: typeof computedAutoplayDurationInMs\n indicatorTransformScaleX: typeof indicatorTransformScaleX\n toggleAutoplay: typeof toggleAutoplay\n onAutoplayLoopingToggle: typeof onAutoplayLoopingToggle\n onAutoplayDurationSelected: typeof onAutoplayDurationSelected\n} => {\n const { onNext, onRestart, isLastPage, currentPageIndex } = useSlideshowPages()\n const { areAttachmentsLoadedForCurrentPost, numberOfWordsOnPage, numberOfAttachmentsOnPage } =\n useSlideshowAttachments()\n const { isAnyOverlayOpen } = useSlideshowOverlays()\n const {\n autoplayTimer,\n isAutoplaying,\n isAutoplayPaused,\n isAutoplayLooping,\n selectedAutoplayDuration,\n computedAutoplayDurationInMs,\n indicatorTransformScaleX,\n startAutoplay,\n onAutoplayDurationSelected,\n onAutoplayLoopingToggle,\n toggleAutoplay,\n } = useAutoplayWithIndicatorAnimation({\n currentPageIndex,\n isLastPage,\n autoplayButtonId: 'slideshow-autoplay-button',\n isAnyOtherOverlayOpen: isAnyOverlayOpen,\n computeAutoplayDurationInMs: (x: AutoplayDurationType) => {\n if (selectedAutoplayDuration.value === 'auto') {\n return calculateAutoSlideDuration(numberOfWordsOnPage.value, numberOfAttachmentsOnPage.value)\n }\n return selectedAutoplayDuration.value * 1000\n },\n onNext,\n onRestart,\n })\n\n // At `SurfaceSlideshowContent.vue`, we have a OVERSCAN_PAGE_LIMIT for preloading slides in the background\n // so usually post attachments would be loaded by the time user reaches the current slide.\n // But in the case it has not finished loading, we pause autoplaying and resume when it has finished loading\n watch(areAttachmentsLoadedForCurrentPost, () => {\n if (!areAttachmentsLoadedForCurrentPost.value) {\n autoplayTimer.stop()\n } else if (isAutoplaying.value) {\n startAutoplay()\n }\n })\n // #region init slideshow autoplay from query params\n const initSlideshowAutoplayFromQueryParams = (): void => {\n const loopParam = getSearchParam('loop')\n if (isSearchParamTruthy(loopParam)) {\n isAutoplayLooping.value = true\n }\n\n const durationParam = getSearchParam('duration')\n if (durationParam != null && durationParam in AUTOPLAY_DURATIONS) {\n onAutoplayDurationSelected(durationParam as AutoplayDurationType)\n }\n\n const autoplayParam = getSearchParam('autoplay')\n if (isSearchParamTruthy(autoplayParam)) {\n startAutoplay()\n }\n }\n\n onMounted(() => {\n initSlideshowAutoplayFromQueryParams()\n })\n // #endregion\n\n return {\n isAutoplaying,\n isAutoplayPaused,\n isAutoplayLooping,\n selectedAutoplayDuration,\n computedAutoplayDurationInMs,\n indicatorTransformScaleX,\n\n toggleAutoplay,\n onAutoplayLoopingToggle,\n onAutoplayDurationSelected,\n }\n}\n","// @file Vue composable for all navigation related logic in Slideshow\n\nimport { trackEvent } from '@@/bits/analytics'\nimport { isAppUsing } from '@@/bits/flip'\nimport { toggleFullscreen } from '@@/bits/fullscreen'\nimport { SLIDESHOW_ANALYTICS_ID } from '@@/bits/slideshow'\nimport { useSurfaceStore } from '@@/pinia/surface'\nimport { useSlideshowOverlays } from '@@/vuecomposables/slideshow_overlays'\nimport { useSlideshowPages } from '@@/vuecomposables/slideshow_pages'\nimport { useAccessibilitySettings } from '@@/vuecomposables/useAccessibilitySettings'\nimport { storeToRefs } from 'pinia'\nimport type { KeyBindingMap } from 'tinykeys'\nimport { createKeybindingsHandler } from 'tinykeys'\nimport type { Ref } from 'vue'\nimport { nextTick, onMounted, onUnmounted, watch } from 'vue'\n\nexport const useSlideshowNavigation = ({\n currentPageElement,\n slideshowNavigationBarContainerRef,\n}: {\n currentPageElement: HTMLDivElement | undefined\n slideshowNavigationBarContainerRef: Ref\n}): void => {\n const surfaceStore = useSurfaceStore()\n const { dir, user } = storeToRefs(surfaceStore)\n\n const { goToPage, prevPageIndex, nextPageIndex, numberOfPages } = useSlideshowPages()\n const { isAnyOverlayOpen } = useSlideshowOverlays()\n\n const { isKeyboardShortcutsEnabled } = useAccessibilitySettings(user)\n\n // We call `focusCurrentPage` outside `goToNextPage` and `goToPreviousPage`\n // because we only want to invoke it when navigating with the keys\n // and not every time the page changes.\n const focusCurrentPage = (): void => {\n nextTick(() => {\n if (currentPageElement == null) return\n currentPageElement.focus()\n })\n }\n\n const onForwardShortcutKey = (keyboardTarget: string): void => {\n if (dir.value === 'rtl') {\n if (prevPageIndex.value == null) return\n goToPage(prevPageIndex.value, keyboardTarget)\n } else {\n if (nextPageIndex.value == null) return\n goToPage(nextPageIndex.value, keyboardTarget)\n }\n focusCurrentPage()\n }\n\n const onBackwardShortcutKey = (keyboardTarget: string): void => {\n if (dir.value === 'rtl') {\n if (nextPageIndex.value == null) return\n goToPage(nextPageIndex.value, keyboardTarget)\n } else {\n if (prevPageIndex.value == null) return\n goToPage(prevPageIndex.value, keyboardTarget)\n }\n focusCurrentPage()\n }\n\n const onFirstPageShortcutKey = (keyboardTarget: string): void => {\n goToPage(0, keyboardTarget)\n focusCurrentPage()\n }\n\n const onLastPageShortcutKey = (keyboardTarget: string): void => {\n goToPage(numberOfPages.value - 1, keyboardTarget)\n focusCurrentPage()\n }\n\n const setupShortcuts = (): KeyBindingMap => {\n const shortcuts: KeyBindingMap = {\n ArrowLeft: () => onBackwardShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-left-arrow-key']),\n ArrowUp: () => onBackwardShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-up-arrow-key']),\n PageUp: () => onBackwardShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-page-up-key']),\n PageDown: () => onForwardShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-page-down-key']),\n ArrowRight: () => onForwardShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-right-arrow-key']),\n ArrowDown: () => onForwardShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-down-arrow-key']),\n Space: () => {\n if (slideshowNavigationBarContainerRef.value?.contains(document.activeElement) === true) {\n return\n }\n onForwardShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-space-key'])\n },\n Home: () => onFirstPageShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-home-key']),\n End: () => onLastPageShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-end-key']),\n }\n\n if (!isAppUsing('keyboardShortcutsSetting') || isKeyboardShortcutsEnabled.value) {\n shortcuts.F = () => {\n trackEvent('keyboard', {\n target: SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-f-key'],\n })\n toggleFullscreen()\n }\n shortcuts.R = () => onFirstPageShortcutKey(SLIDESHOW_ANALYTICS_ID['slideshow-shortcut-r-key'])\n }\n\n return shortcuts\n }\n\n let keyboardShortcutsHandler = createKeybindingsHandler(setupShortcuts())\n\n const startListeningForKeyboardShortcuts = (): void => window.addEventListener('keydown', keyboardShortcutsHandler)\n const stopListeningForKeyboardShortcuts = (): void => window.removeEventListener('keydown', keyboardShortcutsHandler)\n\n onMounted(() => {\n startListeningForKeyboardShortcuts()\n })\n\n onUnmounted(() => {\n stopListeningForKeyboardShortcuts()\n })\n\n watch(isAnyOverlayOpen, () => {\n if (isAnyOverlayOpen.value) {\n stopListeningForKeyboardShortcuts()\n } else {\n startListeningForKeyboardShortcuts()\n }\n })\n\n watch(isKeyboardShortcutsEnabled, () => {\n stopListeningForKeyboardShortcuts()\n keyboardShortcutsHandler = createKeybindingsHandler(setupShortcuts())\n if (!isAnyOverlayOpen.value) {\n startListeningForKeyboardShortcuts()\n }\n })\n}\n","// @file Vue composable for managing the navigation bar visibility\n\nimport device from '@@/bits/device'\nimport { computed, onMounted, onUnmounted, Ref, ref, watch } from 'vue'\n\nconst OPACITY_TIMEOUT_MS = 300\nconst DURATION_NAVIGATION_BAR_VISIBLE_WITHOUT_INTERACTION_IN_MS = 3000\nlet timeoutForHidingNavigationBar: ReturnType\n\ninterface SlideshowNavigationVisibilityProps {\n /**\n * Needed to support navigation bar visibility on touch devices\n * which don't trigger css hover when using press and drag across the indicator.\n */\n isCurrentlyDragging: Ref\n previousAndNextSlideControlsRef: Ref\n containerRef: Ref\n hasLoadedPages: Ref\n isAnyOverlayOpen: Ref\n isScreenshotMode: Ref\n}\n\nexport const useSlideshowNavigationVisibility = ({\n isCurrentlyDragging,\n previousAndNextSlideControlsRef,\n hasLoadedPages,\n isAnyOverlayOpen,\n isScreenshotMode,\n}: SlideshowNavigationVisibilityProps): {\n isInertWhileNavigationBarInvisible: Ref\n isNavigationBarVisible: Ref\n showNavigationBarWithTimeout: () => void\n startTimeoutForHidingNavigationBar: () => void\n startShowingNavigationBarOnFocus: () => void\n classesToAutoHideElement: Ref\n} => {\n /**\n * On touch devices, the user can't move the mouse to show the navigation bar\n * so they are able to touch it while its opacity-0 without knowing what's there.\n * Thus, we block pointer events so that their first touch only toggles visibility.\n *\n * Checking isNavigationBarVisible alone is not enough,\n * it seems like there's a race condition where the event handlers are still called.\n */\n const isInertWhileNavigationBarInvisible = ref(false)\n const isNavigationBarVisibleWithTimeout = ref(true)\n const isNavigationBarVisible = computed(() => {\n if (isScreenshotMode.value) return false\n\n return isCurrentlyDragging.value || isAnyOverlayOpen.value || isNavigationBarVisibleWithTimeout.value\n })\n\n const classesToAutoHideElement = computed(() => [\n 'slideshow-nav-bar-transition',\n !isNavigationBarVisible.value ? 'slideshow-nav-bar-hidden' : '',\n ])\n\n const showNavigationBarWithTimeoutOnMouseMove = (event: MouseEvent): void => {\n const target = event.target as HTMLElement\n // On touchable devices, the previous/next slide controls always show and\n // pressing them should not show the navigation bar\n if (device.touchable && previousAndNextSlideControlsRef.value?.contains(target) === true) {\n return\n }\n\n showNavigationBarWithTimeout()\n }\n\n const showNavigationBarWithTimeout = (): void => {\n isNavigationBarVisibleWithTimeout.value = true\n startTimeoutForHidingNavigationBar()\n }\n\n const hideNavigationBar = (): void => {\n isNavigationBarVisibleWithTimeout.value = false\n }\n\n const startTimeoutForHidingNavigationBar = (): void => {\n clearTimeout(timeoutForHidingNavigationBar)\n timeoutForHidingNavigationBar = setTimeout(\n hideNavigationBar,\n DURATION_NAVIGATION_BAR_VISIBLE_WITHOUT_INTERACTION_IN_MS,\n )\n }\n\n const startShowingNavigationBarOnFocus = (): void => {\n // If the user clicks on the previous/next slide controls, which are always visible on touchable devices, don't show the rest of the nav bar\n if (device.touchable && previousAndNextSlideControlsRef.value?.contains(document.activeElement) === true) {\n return\n }\n\n showNavigationBarWithTimeout()\n }\n\n watch(isNavigationBarVisible, () => {\n if (!device.touchable) return\n\n if (isNavigationBarVisible.value) {\n setTimeout(() => {\n isInertWhileNavigationBarInvisible.value = false\n }, OPACITY_TIMEOUT_MS)\n return\n }\n\n isInertWhileNavigationBarInvisible.value = true\n })\n\n watch(\n hasLoadedPages,\n () => {\n if (hasLoadedPages.value) {\n startTimeoutForHidingNavigationBar()\n }\n },\n { immediate: true },\n )\n\n onMounted(() => {\n window.addEventListener('mousemove', showNavigationBarWithTimeoutOnMouseMove)\n })\n\n onUnmounted(() => {\n window.removeEventListener('mousemove', showNavigationBarWithTimeoutOnMouseMove)\n })\n\n return {\n isInertWhileNavigationBarInvisible,\n isNavigationBarVisible,\n showNavigationBarWithTimeout,\n startTimeoutForHidingNavigationBar,\n startShowingNavigationBarOnFocus,\n classesToAutoHideElement,\n }\n}\n","\n\n\n\n\n","\n\n\n"],"names":["compact","array","index","length","resIndex","result","value","vEmitClickOnTouch","emitClickOnTouch","authorName","computed","getAuthorDisplayName","props","author","blankUser","authorProfileUrl","profile_url","isRegistered","isUserRegistered","handleSetDurationType","emit","autoplayDurationGroup","Object","keys","AUTOPLAY_DURATIONS","map","duration","text","long","checked","selectedAutoplayDuration","role","autoplayDescription","isAutoplayLooping","__","windowHeight","storeToRefs","useWindowSizeStore","button","ref","popover","reference","$el","floating","MAX_POPOVER_HEIGHT","floatingStyles","useFloating","middleware","shiftUpWhenOverflow","placement","referenceContainerStyles","width","offsetWidth","height","offsetHeight","useSlideshowPanels","isSharePanelOpen","isShareViaAnotherAppPanelOpen","isEmbedPanelOpen","useSlideshowStore","globalSnackbarStore","useGlobalSnackbarStore","links","useSurfaceStore","slideshowEmbedCodeUrlTemplate","hasDarkBackgroundLuminance","useSlideshowStyles","isSmallerThanTabletPortrait","isSmallerThanDesktop","embedStyle","embedSize","embedCode","defaultParams","URLSearchParams","autoplay","isEmbedAutoplaying","loop","isEmbedLooping","embedAutoplayDuration","embedUrl","embed","toString","replace","copyEmbedCode","copyToClipboard","setSnackbar","message","embedSizeOptions","onEmbedSizeSelect","size","onToggleAutoplay","useSlideshowMenus","isMoreMenuOpen","isAutoplayMenuOpen","isAnyMenuOpen","useSlideshowQRCode","slideshowStore","isQrCodeShown","shouldRemoveQrCode","toggleQRCode","trackEvent","ActionType","isEmbedded","onRestart","isFirstPage","currentPageUrl","coverPageUrl","useSlideshowPages","hasLightBackgroundLuminance","useCopyToClipboard","popoverConfig","offset","mainAxis","crossAxis","shift","padding","actionListGroups","shareRow","icon","eventPayload","analyticsId","SLIDESHOW_ANALYTICS_ID","testId","showQRCodeRow","hideQRCodeRow","restartRow","exitSlideshowRow","enterFullscreenRow","exitFullscreenRow","restartRowIfNotFirstPage","qrCodeRowIfFirstPage","fullscreenRow","isFullscreenAvailable","isFullscreen","group","device","app","closeMenu","handleSwipeDown","isAtTopBeforeDragging","copyUrlToClipboard","url","globalSnackbarOptions","notificationType","SnackbarNotificationType","success","timeout","showShareOverlay","_event","actionType","enterFullscreen","exitFullscreen","postMessage","exitSlideshow","publicKey","title","hasAttachmentsOnPage","useSlideshowAttachments","pages","currentPageNumber","getPageLastUpdated","currentPage","canIAccessContentDirectly","useSurfacePermissionsStore","closePanel","shareRows","rightIcon","rightIconSize","splice","exportRows","hoverText","rowStyle","OzMenuRowsRowStyle","Default","Disabled","isDisabled","shareGroup","name","rows","exportGroup","shareViaAnotherApp","shareSlideshow","currentSnackbarUid","makeExportRequest","exportCallback","loadingMessage","errorMessage","wallReadTokenAbortController","AbortController","exportProxyAbortController","clearLoadingSnackbar","removeSnackbar","loadingSnackbarUid","persist","actionText","actionTextActions","abort","err","signal","aborted","error","getExportDelayForPage","page","pageType","PageType","Cover","SLIDESHOW_SLIDE_DEFAULT_DELAY_WITH_ATTACHMENT","SLIDESHOW_SLIDE_DEFAULT_DELAY_WITHOUT_ATTACHMENT","downloadCurrentSlideAsImage","pageToExport","lastUpdated","filename","getSlideshowExportFileName","readToken","fetchExportReadToken","apiVersion","slideUrlForExport","buildSlideUrlForExport","slideExportProxyUrl","buildImageExportProxyUrl","SLIDESHOW_DEFAULT_EXPORT_QUERY_PARAMS","delay","exportProxyBlob","fetchBlob","cors","triggerDownloadFromBlob","buildPageDataForAllSlides","generateFileName","slideshowLink","buildSlideshowLink","show","entityId","pageLastUpdated","file_name","downloadAllSlidesAsImages","pageData","fileName","zipExportProxyUrl","buildImagesToZipExportProxyUrl","zipBlob","fetchImagesToZipBlob","downloadAllSlidesAsPdf","triggerMode","_wallReadTokenAbortController","getSlideshowDocUrl","useSlideshowExports","abortSignal","elvisProxyUrl","makeElvisProxyUrl","CORS","ALL","expiryInDays","blob","triggerPrintFromBlob","mobile","description","wallId","group1Rows","group2Rows","getShareLinkFor","service","buildShareLink","media","snap","params","shareLinkOnService","useAutoplay","currentPageIndex","isLastPage","autoplayButtonId","pauseOnOverlayOpen","isAnyOtherOverlayOpen","computeAutoplayDurationInMs","onStart","onPause","onStop","onNext","autoplayTimer","PausableTimer","isAutoplaying","isAutoplayPaused","previousAutoplayDuration","computedAutoplayDurationInMs","autoplayHandler","stopAutoplay","resetAutoplayTimer","setTimeoutDuration","setOnComplete","start","startAutoplay","isPaused","isResumed","stop","toggleAutoplay","onAutoplayLoopingToggle","onAutoplayDurationSelected","durationType","watch","onPauseWhenOverlayOpen","pause","isAnyOverlayOpen","resume","pauseAutoplayForMouseDevices","event","touchable","isKeydownOnAutoplayButton","document","activeElement","id","includes","key","getAutoplayNotificationMessages","stoppedAutoplaying","onMounted","window","addEventListener","onUnmounted","removeEventListener","useAutoplayWithIndicatorAnimation","maxScaleValue","numStepsInScale","amountToScalePerInterval","indicatorTransformScaleX","indicatorTransformScaleXInterval","startIndicatorTransformScaleXAnimation","stopIndicatorTransformScaleXAnimation","setInterval","clearInterval","useSlideshowOverlays","useSlideshowAutoplay","areAttachmentsLoadedForCurrentPost","numberOfWordsOnPage","numberOfAttachmentsOnPage","x","calculateAutoSlideDuration","initSlideshowAutoplayFromQueryParams","loopParam","getSearchParam","isSearchParamTruthy","durationParam","autoplayParam","useSlideshowNavigation","currentPageElement","slideshowNavigationBarContainerRef","surfaceStore","dir","user","goToPage","prevPageIndex","nextPageIndex","numberOfPages","isKeyboardShortcutsEnabled","useAccessibilitySettings","focusCurrentPage","nextTick","focus","onForwardShortcutKey","keyboardTarget","onBackwardShortcutKey","onFirstPageShortcutKey","onLastPageShortcutKey","setupShortcuts","shortcuts","ArrowLeft","ArrowUp","PageUp","PageDown","ArrowRight","ArrowDown","Space","contains","Home","End","isAppUsing","F","target","toggleFullscreen","R","keyboardShortcutsHandler","createKeybindingsHandler","startListeningForKeyboardShortcuts","stopListeningForKeyboardShortcuts","OPACITY_TIMEOUT_MS","DURATION_NAVIGATION_BAR_VISIBLE_WITHOUT_INTERACTION_IN_MS","timeoutForHidingNavigationBar","useSlideshowNavigationVisibility","isCurrentlyDragging","previousAndNextSlideControlsRef","hasLoadedPages","isScreenshotMode","isInertWhileNavigationBarInvisible","isNavigationBarVisibleWithTimeout","isNavigationBarVisible","classesToAutoHideElement","showNavigationBarWithTimeoutOnMouseMove","showNavigationBarWithTimeout","startTimeoutForHidingNavigationBar","hideNavigationBar","clearTimeout","setTimeout","startShowingNavigationBarOnFocus","immediate","isSmallerThanDesktop3XL","windowWidth","safeAreaInsets","startingState","useSurfaceStartingStateStore","onPrevious","handleOnSelectAutoplayDurationType","containerRef","moreMenuRef","shareMenuRef","moreMenuElement","primaryColorStyle","BUTTON_COLOR_SCHEME","OzIconButtonColorScheme","SecondaryClear","BUTTON_SIZE_PRESET","OzIconButtonSizePreset","H40px","BUTTON_ICON_SIZE","BUTTON_DISABLED_TRANSPARENCY_CLASS","slideshowStatusDescription","totalPages","MINIMUM_PADDING_FROM_EDGE_OF_SCREEN_TO_PREVIEW","INDICATOR_BUTTON_PADDING_START","PREVIEW_BORDER_WIDTH","navigationBarHeight","setNavigationBarHeight","indicatorButtonWidth","shouldIndicatorsBePaginated","previewContainerWidth","previewContainerHeight","previewContentWidth","previewContentHeight","previewContentTransformScaleX","previewContentTransformScaleY","previewStartPosition","currentPreviewPageIndex","startPositionToCenterPreviewOverIndicatorButton","endEdge","previewStartPositionBoundedToStartEdge","Math","max","min","currentHoveredPageIndex","shouldShowActiveButtonStyle","indicatorButtonPageIndex","shouldForceActiveButtonStyle","onIndicatorButtonPointerUp","pageIndex","onIndicatorButtonPointerDown","releasePointerCapture","pointerId","onIndicatorButtonPointerEnter","onIndicatorButtonPointerLeave","useSlideshowLoadingState","openShareOverlay","openSlideshowInANewTab","open","refresh","changeConnectivity","isOnline","address","skinAccentTextColor","xAuthor","surfaceUserContributorsStore","useSurfaceUserContributorsStore","currentPostAuthor","authorId","currentPost","author_id","author_hashid","getUserById","qrCodeBaseStyles","accentColorStyle","isDataLoaded","isPageCoverLoaded","fetchPostAuthors","isWishPath","location","pathname","isSectionPath","COVER_PAGE_INDEX","splitPath","split","entityIdFromPath","matchingEntityPageIndex","findIndex","Post","Section","history","replaceState","isCurrentPageContentLoaded","loadedPages","attachmentsLoadedForCurrentPost","isAutoRefresh","surfaceSlideshowContentRef","shouldShowPadletLogo","shouldShowPadletLogoWithBackground","padletLogoSizePreset","OzPadletLogoSizePreset","W48px","W96px","avatarLogoSize","padletLogoHref","currentHostWithProtocol","onBeforeMount","useSurfaceFetchInitialState","fetchInitialState","postDrafts","submissionRequestLink","observeConnectivity","slideshowMounted"],"mappings":"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","x_google_ignoreList":[0]}