pro-gallery 5.0.145 → 5.0.146
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/gallery/proGallery/slideshowView.js +1 -1
- package/dist/cjs/components/gallery/proGallery/slideshowView.js.map +1 -1
- package/dist/esm/components/gallery/proGallery/slideshowView.js +1 -1
- package/dist/esm/components/gallery/proGallery/slideshowView.js.map +1 -1
- package/dist/tsconfig-cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -459,7 +459,7 @@ class SlideshowView extends react_1.default.Component {
|
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
461
|
if (!(centeredItemOrGroupIdx >= 0)) {
|
|
462
|
-
centeredItemOrGroupIdx = itemsOrGroups.length - 1;
|
|
462
|
+
centeredItemOrGroupIdx = this.isFirstItem() ? 0 : itemsOrGroups.length - 1;
|
|
463
463
|
}
|
|
464
464
|
return centeredItemOrGroupIdx;
|
|
465
465
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slideshowView.js","sourceRoot":"","sources":["../../../../../src/components/gallery/proGallery/slideshowView.js"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { GALLERY_CONSTS, window, utils, isEditMode, isPreviewMode, optionsMap } from 'pro-gallery-lib';\nimport GroupView from '../../group/groupView.js';\nimport GalleryDebugMessage from './galleryDebugMessage.js';\nimport PlayIcon from '../../svgs/components/play.js';\nimport PauseIcon from '../../svgs/components/pause.js';\nimport NavigationPanel, { getCustomNavigationPanelInlineStyles } from './navigationPanel.js';\nimport { getItemsInViewportOrMarginByActiveGroup } from '../../helpers/virtualization.js';\nimport { NavigationArrows } from './navigationArrows.js';\nimport { shouldRenderNavArrows } from '../../helpers/navigationArrowUtils.js';\nimport { toggleScrollLessAnimation } from './scrollLessAnimationHelper.js';\n\nconst SKIP_SLIDES_MULTIPLIER = 1.5;\n\nfunction getDirection(code) {\n const reverse = [33, 37, 38];\n const direct = [32, 34, 39, 40];\n if (reverse.includes(code)) return -1;\n else if (direct.includes(code)) return 1;\n throw new Error(`no direction is defined for charCode: ${code}`);\n}\n\n/**\n * @typedef Props\n * @prop {import('pro-gallery-lib').Options} options\n */\n\n/**\n * @extends {React.Component<Props>}\n */\nclass SlideshowView extends React.Component {\n constructor(props) {\n super(props);\n this.navigationPanelCallbackOnIndexChange = () => {};\n this.scrollToThumbnail = this.scrollToThumbnail.bind(this);\n this.clearAutoSlideshowInterval = this.clearAutoSlideshowInterval.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onAutoSlideShowButtonClick = this.onAutoSlideShowButtonClick.bind(this);\n this.startAutoSlideshowIfNeeded = this.startAutoSlideshowIfNeeded.bind(this);\n this.updateAutoSlideShowState = this.updateAutoSlideShowState.bind(this);\n this.canStartAutoSlideshow = this.canStartAutoSlideshow.bind(this);\n this.handleSlideshowKeyPress = this.handleSlideshowKeyPress.bind(this);\n this.onAutoSlideshowAutoPlayKeyPress = this.onAutoSlideshowAutoPlayKeyPress.bind(this);\n this.setCurrentItemByScroll = this.setCurrentItemByScroll.bind(this);\n this._setCurrentItemByScroll = utils.throttle(this.setCurrentItemByScroll, 600).bind(this);\n this._next = utils.throttle(this.nextWithEffects.bind(this), props.isScrollLessGallery ? 600 : 400).bind(this);\n this.state = {\n activeIndex: props.activeIndex || 0,\n isInView: true,\n pauseAutoSlideshowClicked: false,\n hideLeftArrow:\n props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].LEFT_TO_RIGHT,\n hideRightArrow:\n props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT,\n shouldBlockAutoSlideshow: false,\n isInFocus: false,\n };\n this.lastCurrentItem = undefined;\n this.shouldCreateSlideShowPlayButton = false;\n this.skipFromSlide = Math.round(this.props.totalItemsCount * SKIP_SLIDES_MULTIPLIER); // Used in infinite loop\n }\n\n isFirstItem() {\n return this.state.activeIndex === 0;\n }\n\n isScrollStart(props = this.props) {\n const slideAnimation = props.options.behaviourParams_gallery_horizontal_slideAnimation;\n if (\n slideAnimation !== GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideAnimation].SCROLL ||\n !this.scrollElement\n ) {\n return false;\n }\n return this.scrollPosition(props) <= 1;\n }\n\n isScrollEnd(props = this.props) {\n const slideAnimation = props.options.behaviourParams_gallery_horizontal_slideAnimation;\n if (\n props.options.behaviourParams_gallery_horizontal_loop ||\n slideAnimation === GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideAnimation].FADE ||\n slideAnimation === GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideAnimation].DECK\n ) {\n return false;\n }\n return (\n this.isAllItemsLoaded(props) &&\n this.scrollPositionAtTheAndOfTheGallery(props) >= Math.floor(this.getScrollElementWidth(props))\n );\n }\n\n isAllItemsLoaded(props = this.props) {\n const { totalItemsCount, getVisibleItems, galleryStructure, container, isPrerenderMode } = props;\n const visibleItemsCount = getVisibleItems(galleryStructure.galleryItems, container, isPrerenderMode).length;\n return visibleItemsCount >= totalItemsCount;\n }\n\n getScrollElementWidth(props = this.props) {\n const { galleryStructure } = props;\n return galleryStructure.width - this.props.options.layoutParams_structure_itemSpacing / 2;\n }\n\n isFirstItemFullyVisible() {\n return !this.props.options.behaviourParams_gallery_horizontal_loop && this.isScrollStart();\n }\n isLastItemFullyVisible() {\n return !this.props.options.behaviourParams_gallery_horizontal_loop && this.isScrollEnd();\n }\n\n isLastItem() {\n const activeIndex = this.state.activeIndex;\n return !this.props.options.behaviourParams_gallery_horizontal_loop && activeIndex >= this.props.totalItemsCount - 1;\n }\n\n //__________________________________Slide show loop functions_____________________________________________\n\n //__________________________________end of slide show loop functions__________________________\n shouldBlockNext({ scrollingUpTheGallery }) {\n return (scrollingUpTheGallery && this.isLastItem()) || (!scrollingUpTheGallery && this.isFirstItem());\n }\n\n shouldNotAllowScroll({ scrollingUpTheGallery }) {\n return (\n (scrollingUpTheGallery && this.isLastItemFullyVisible()) ||\n (!scrollingUpTheGallery && this.isFirstItemFullyVisible())\n );\n }\n\n async nextWithEffects(props) {\n const nextItem = await this.next(props);\n if (\n this.props.options.layoutParams_groups_groupSize === 1 &&\n this.props.isScrollLessGallery &&\n nextItem >= this.skipFromSlide\n ) {\n const skipToSlide = this.skipFromSlide - this.props.totalItemsCount;\n toggleScrollLessAnimation(() => this.onScrollToItemOrGroup(skipToSlide, false));\n }\n }\n\n async next({\n direction,\n isAutoTrigger,\n scrollDuration,\n isKeyboardNavigation = false,\n isContinuousScrolling = false,\n }) {\n const scrollingUpTheGallery =\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? direction <= -1\n : direction >= 1;\n if (this.shouldBlockNext({ scrollingUpTheGallery })) {\n this.clearAutoSlideshowInterval();\n return;\n }\n direction *=\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? -1\n : 1;\n const activeElement = document.activeElement;\n const galleryItemIsFocused = activeElement.className && activeElement.className.includes('gallery-item-container');\n const avoidIndividualNavigation =\n !isKeyboardNavigation || !(this.props.settings?.isAccessible && galleryItemIsFocused);\n let ignoreScrollPosition = false;\n\n if (\n this.props.options.behaviourParams_gallery_horizontal_slideAnimation !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideAnimation].SCROLL\n ) {\n scrollDuration = 0;\n ignoreScrollPosition = true;\n }\n this.removeArrowsIfNeeded();\n\n if (avoidIndividualNavigation && this.props.options.layoutParams_groups_groupSize > 1) {\n return this.nextGroup({\n direction,\n scrollDuration,\n isContinuousScrolling,\n scrollingUpTheGallery,\n }); //if its not in accessibility that requieres individual nav and we are in a horizontal(this file) collage(layout 0) - use group navigation\n } else {\n if (\n avoidIndividualNavigation &&\n GALLERY_CONSTS.isLayout('GRID')(this.props.options) &&\n this.props.options.layoutParams_structure_numberOfGridRows\n ) {\n direction *= this.props.options.layoutParams_structure_numberOfGridRows;\n }\n return this.nextItem({\n direction,\n isAutoTrigger,\n scrollDuration,\n avoidIndividualNavigation,\n ignoreScrollPosition,\n isContinuousScrolling,\n scrollingUpTheGallery,\n });\n }\n }\n\n getNextItemOrGroupToScrollTo(initiator, direction, ignoreScrollPosition, avoidIndividualNavigation, isAutoTrigger) {\n this.isSliding = true;\n let nextIndex;\n if (\n initiator === 'nextGroup' ||\n (initiator === 'nextItem' &&\n !ignoreScrollPosition &&\n avoidIndividualNavigation &&\n !(this.props.options.layoutParams_groups_groupSize > 1))\n ) {\n const key = initiator === 'nextGroup' ? 'groups' : 'galleryItems';\n nextIndex = this.getCenteredItemOrGroupIdxByScroll(key) + direction;\n } else if (initiator === 'nextItem') {\n if (ignoreScrollPosition || !isAutoTrigger) {\n nextIndex = this.state.activeIndex;\n } else {\n nextIndex = this.setCurrentItemByScroll();\n }\n nextIndex += direction;\n\n if (!this.props.options.behaviourParams_gallery_horizontal_loop) {\n nextIndex = Math.min(this.props.galleryStructure.items.length - 1, nextIndex);\n nextIndex = Math.max(0, nextIndex);\n }\n }\n this.isAutoScrolling = true;\n return nextIndex;\n }\n\n async nextItem({\n direction,\n isAutoTrigger,\n scrollDuration,\n avoidIndividualNavigation,\n ignoreScrollPosition,\n isContinuousScrolling,\n scrollingUpTheGallery,\n }) {\n if (this.isSliding) {\n return;\n }\n\n let nextItem = this.getNextItemOrGroupToScrollTo(\n 'nextItem',\n direction,\n ignoreScrollPosition,\n avoidIndividualNavigation,\n isAutoTrigger\n );\n\n try {\n const itemToScroll = ignoreScrollPosition ? 0 : nextItem;\n await this.scrollToItemOrGroup(\n this.props.actions.scrollToItem,\n itemToScroll,\n isContinuousScrolling,\n scrollDuration,\n scrollingUpTheGallery\n );\n\n if (this.props.options.layoutParams_groups_groupSize === 1 && !this.props.isScrollLessGallery) {\n if (nextItem >= this.skipFromSlide) {\n nextItem = utils.inRange(nextItem, this.props.totalItemsCount);\n await this.props.actions.scrollToItem(nextItem);\n }\n }\n\n this.onScrollToItemOrGroup(nextItem, isContinuousScrolling);\n\n if (ignoreScrollPosition) {\n this.props.getMoreItemsIfNeeded(this.props.galleryStructure.galleryItems[nextItem].offset.left);\n this.props.setGotFirstScrollIfNeeded();\n }\n return nextItem;\n } catch (e) {\n this.onThrowScrollError('Cannot proceed to the next Item', e);\n }\n }\n\n async nextGroup({ direction, scrollDuration, isContinuousScrolling = false, scrollingUpTheGallery }) {\n if (this.isSliding) {\n return;\n }\n\n const nextGroup = this.getNextItemOrGroupToScrollTo('nextGroup', direction);\n\n try {\n await this.scrollToItemOrGroup(\n this.props.actions.scrollToGroup,\n nextGroup,\n isContinuousScrolling,\n scrollDuration,\n scrollingUpTheGallery\n );\n const nextItem = this.getCenteredItemOrGroupIdxByScroll('galleryItems') + direction;\n this.onScrollToItemOrGroup(nextItem, isContinuousScrolling);\n } catch (e) {\n this.onThrowScrollError('Cannot proceed to the next Group', e);\n }\n }\n\n async scrollToItemOrGroup(func, indexToScroll, isContinuousScrolling, scrollDuration, scrollingUpTheGallery) {\n const shouldAllowScroll = !this.shouldNotAllowScroll({\n scrollingUpTheGallery,\n });\n const { scrollMarginCorrection, _scrollDuration } = this.getScrollParameters(scrollDuration);\n shouldAllowScroll &&\n (await func(indexToScroll, false, true, _scrollDuration, scrollMarginCorrection, isContinuousScrolling));\n }\n\n onThrowScrollError(massage, e) {\n console.error(massage, e);\n this.clearAutoSlideshowInterval();\n }\n\n onScrollToItemOrGroup(nextItem, isContinuousScrolling) {\n utils.setStateAndLog(\n this,\n 'Next Item',\n {\n activeIndex: nextItem,\n },\n () => {\n this.onCurrentItemChanged();\n this.isSliding = false;\n if (isContinuousScrolling) {\n this.startAutoSlideshowIfNeeded(this.props.options);\n }\n }\n );\n }\n\n getScrollParameters(scrollDuration) {\n return {\n scrollMarginCorrection: this.getStyles().margin || 0,\n _scrollDuration:\n scrollDuration ?? this.props.options.behaviourParams_gallery_horizontal_navigationDuration ?? 400,\n };\n }\n\n onCurrentItemChanged(props = this.props) {\n if (this.lastCurrentItem !== this.state.activeIndex) {\n this.lastCurrentItem = this.state.activeIndex;\n //this.props.actions.onCurrentItemChanged(this.state.currentIdx);\n const currentGalleryItem = this.props.galleryStructure.galleryItems[this.state.activeIndex];\n const item = this.props.items[this.state.activeIndex];\n if (item) {\n item.idx = this.state.activeIndex;\n item.resizedImageSrc = currentGalleryItem.createUrl(\n GALLERY_CONSTS.urlSizes.RESIZED,\n GALLERY_CONSTS.urlTypes.HIGH_RES\n );\n this.props.actions.eventsListener(GALLERY_CONSTS.events.CURRENT_ITEM_CHANGED, item);\n }\n this.navigationPanelCallbackOnIndexChange(this.state.activeIndex);\n }\n this.removeArrowsIfNeeded(props);\n }\n clearAutoSlideshowInterval() {\n clearInterval(this.autoSlideshowInterval);\n }\n\n canStartAutoSlideshow(options) {\n return (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].OFF &&\n !this.state.shouldBlockAutoSlideshow\n );\n }\n\n /**\n *\n * @param {import('pro-gallery-lib').Options} options\n */\n startAutoSlideshowIfNeeded(options) {\n this.clearAutoSlideshowInterval();\n if (this.canStartAutoSlideshow(options)) {\n if (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].CONTINUOUS &&\n options.behaviourParams_gallery_horizontal_autoSlide_speed > 0\n ) {\n this.autoScrollToNextItem();\n } else if (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].INTERVAL &&\n options.behaviourParams_gallery_horizontal_autoSlide_interval > 0\n ) {\n this.autoSlideshowInterval = setInterval(\n this.autoScrollToNextItem,\n options.behaviourParams_gallery_horizontal_autoSlide_interval * 1000\n );\n }\n }\n }\n\n autoScrollToNextItem = () => {\n if (!isEditMode() && (this.props.isInViewport || isPreviewMode())) {\n const { options } = this.props;\n const direction =\n options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? -1\n : 1;\n\n if (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].CONTINUOUS\n ) {\n this._next({\n direction,\n isAutoTrigger: true,\n isContinuousScrolling: true,\n });\n } else if (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].INTERVAL\n ) {\n this._next({\n direction,\n isAutoTrigger: true,\n scrollDuration: 800,\n });\n }\n }\n };\n\n getFirstIdx(itemIdx) {\n const { galleryItems } = this.props.galleryStructure;\n const activeItemId = galleryItems[itemIdx].itemId;\n return galleryItems.find((item) => item.itemId === activeItemId).idx;\n }\n\n scrollToThumbnail(itemIdx, scrollDuration) {\n //not to confuse with this.props.actions.scrollToItem. this is used to replace it only for thumbnail items\n this.props.actions.eventsListener(GALLERY_CONSTS.events.THUMBNAIL_CLICKED, this.props);\n const activeIdx = this.state.activeIndex;\n const targetIdx = activeIdx + (this.getFirstIdx(itemIdx) - this.getFirstIdx(activeIdx));\n this.scrollToIndex({ itemIdx: targetIdx, scrollDuration });\n }\n\n scrollToIndex({ itemIdx, scrollDuration }) {\n //not to confuse with this.props.actions.scrollToItem. this is used to replace it only for thumbnail items\n this.props.setGotFirstScrollIfNeeded(); //load all the images in the thumbnails bar\n\n const isRTL =\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT;\n\n const direction = isRTL ? this.state.activeIndex - itemIdx : itemIdx - this.state.activeIndex;\n return this.next({\n direction,\n isAutoTrigger: false,\n scrollDuration,\n isKeyboardNavigation: false,\n });\n }\n\n handleSlideshowKeyPress(e) {\n e.stopPropagation();\n const relevantKeys = [32, 33, 34, 37, 38, 39, 40, 27];\n // key code -> 32=space, 37=left, 38=up, 39=right, 40=down, 27=esc\n // charCode -> , 33=page up, 34=page down\n const code = e.charCode || e.keyCode;\n\n if (relevantKeys.includes(code) === false) return true;\n e.preventDefault();\n const activeItemIdx = window.document.activeElement.getAttribute('data-idx');\n\n const shouldFocusOutOfViewComponent =\n activeItemIdx &&\n this.props.totalItemsCount - 1 === Number(activeItemIdx) &&\n Number(activeItemIdx) === this.state.activeIndex;\n\n if ((code === 40 && shouldFocusOutOfViewComponent) || code === 27) {\n const elementToFocus = {\n 27: this.props.galleryContainerRef,\n 40: this.props.outOfViewComponent,\n }[code];\n utils.focusGalleryElement(elementToFocus);\n } else {\n this._next({ direction: getDirection(code), isKeyboardNavigation: true });\n }\n return false;\n }\n\n getCenteredItemOrGroupIdxByScroll(key) {\n const itemsOrGroups = this.props.galleryStructure[key];\n let centeredItemOrGroupIdx;\n const scrollPositionAtTheMiddleOfTheGallery = this.scrollPositionAtTheMiddleOfTheGallery();\n\n if (scrollPositionAtTheMiddleOfTheGallery === 0) {\n centeredItemOrGroupIdx = 0;\n } else {\n for (let itemOrGroup, i = 0; (itemOrGroup = itemsOrGroups[i]); i++) {\n const itemOrGroupLeft = key === 'galleryItems' ? itemOrGroup.offset.left : itemOrGroup.left;\n if (itemOrGroupLeft > scrollPositionAtTheMiddleOfTheGallery) {\n centeredItemOrGroupIdx = i - 1;\n break;\n }\n }\n }\n if (!(centeredItemOrGroupIdx >= 0)) {\n centeredItemOrGroupIdx = itemsOrGroups.length - 1;\n }\n return centeredItemOrGroupIdx;\n }\n\n setCurrentItemByScroll() {\n if (utils.isVerbose()) {\n console.log('Setting current Idx by scroll', this.isAutoScrolling);\n }\n\n if (this.isAutoScrolling) {\n //avoid this function if the scroll was originated by us (arrows or navigationPanels)\n this.isAutoScrolling = false;\n return;\n }\n\n const isScrolling = (this.scrollElement && this.scrollElement.getAttribute('data-scrolling')) === 'true';\n\n if (isScrolling) {\n this.clearAutoSlideshowInterval();\n\n //while the scroll is animating, prevent the reaction to this event\n return;\n }\n this.startAutoSlideshowIfNeeded(this.props.options);\n\n const activeIndex = this.getCenteredItemOrGroupIdxByScroll('galleryItems');\n\n if (!utils.isUndefined(activeIndex)) {\n utils.setStateAndLog(\n this,\n 'Set Current Item',\n {\n activeIndex,\n },\n () => {\n this.onCurrentItemChanged();\n }\n );\n }\n return activeIndex;\n }\n\n createDebugMsg() {\n return <GalleryDebugMessage {...this.props.debug} />;\n }\n\n createNavArrows() {\n const { container, options, customComponents, id } = this.props;\n const { hideLeftArrow, hideRightArrow } = this.state;\n return (\n <NavigationArrows\n container={container}\n options={options}\n customNavArrowsRenderer={customComponents.customNavArrowsRenderer}\n hideLeftArrow={hideLeftArrow}\n hideRightArrow={hideRightArrow}\n next={this._next}\n id={id}\n />\n );\n }\n\n getBufferedItems(galleryGroups, container) {\n const { state, props } = this;\n const { options, virtualizationSettings, getVisibleItems, isPrerenderMode } = props;\n const { activeIndex } = state;\n const groups = getVisibleItems(galleryGroups, container, isPrerenderMode);\n const galleryWidth = this.props.galleryContainerRef?.clientWidth || container.galleryWidth || 0;\n\n return getItemsInViewportOrMarginByActiveGroup({\n groups,\n activeIndex,\n galleryWidth,\n options,\n virtualizationSettings,\n });\n }\n createGalleryConfig() {\n return {\n scrollingElement: this.props.scrollingElement,\n scroll: this.props.scroll,\n container: this.props.container,\n options: this.props.options,\n settings: this.props.settings,\n activeIndex: this.state.activeIndex,\n customComponents: this.props.customComponents,\n galleryId: this.props.id,\n gotFirstScrollEvent: this.props.gotFirstScrollEvent,\n playingVideoIdx: this.props.playingVideoIdx,\n playing3DIdx: this.props.playing3DIdx,\n noFollowForSEO: this.props.noFollowForSEO,\n isPrerenderMode: this.props.isPrerenderMode,\n firstUserInteractionExecuted: this.props.firstUserInteractionExecuted,\n enableExperimentalFeatures: this.props.enableExperimentalFeatures,\n actions: {\n eventsListener: this.props.actions.eventsListener,\n },\n totalItemsCount: this.props.totalItemsCount,\n totalWidth: this.props.galleryStructure.width,\n };\n }\n createLayout() {\n const { container, galleryStructure } = this.props;\n const galleryConfig = this.createGalleryConfig();\n const renderGroups = (column) => {\n const layoutGroupView = !!column.galleryGroups.length && this.getBufferedItems(column.galleryGroups, container);\n if (layoutGroupView) {\n return layoutGroupView.map(({ group, shouldRender }) => {\n return group.rendered\n ? React.createElement(GroupView, {\n disableItemFocus: this.props.disableItemFocus,\n activeIndex: this.state.activeIndex,\n slideAnimation: this.props.options.behaviourParams_gallery_horizontal_slideAnimation,\n allowLoop:\n this.props.options.behaviourParams_gallery_horizontal_loop &&\n this.props.galleryStructure.width > this.props.container.width,\n ...group.renderProps(galleryConfig),\n ariaHidden: group.idx > this.skipFromSlide,\n shouldRenderEmpty: !shouldRender,\n container: this.props.container,\n key: group.idx,\n })\n : false;\n });\n }\n };\n\n return galleryStructure.columns.map((column, c) => {\n const columnStyle = {\n width: this.props.isPrerenderMode ? '100%' : column.width,\n height: this.getDimensions().height,\n overflowY: this.props.isPrerenderMode ? 'visible' : 'hidden',\n };\n return (\n <div\n data-hook=\"gallery-column\"\n id={`gallery-horizontal-scroll-${this.props.id}`}\n className={`gallery-horizontal-scroll gallery-column hide-scrollbars ${\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? ' rtl '\n : ' ltr '\n } ${this.props.options.behaviourParams_gallery_horizontal_enableScrollSnap ? ' scroll-snap ' : ''} `}\n key={'column' + c}\n style={columnStyle}\n >\n <div className=\"gallery-horizontal-scroll-inner\">{renderGroups(column)}</div>\n </div>\n );\n });\n }\n\n getDimensions() {\n const height = this.props.container.galleryHeight;\n return this.props.isPrerenderMode\n ? {\n width: '100%',\n height,\n }\n : {\n height,\n width: this.props.container.galleryWidth,\n };\n }\n\n createGallery() {\n // When arrows are set outside of the gallery, gallery is resized (in dimensionsHelper -> getGalleryWidth) and needs to be positioned accordingly\n const galleryStyleForExternalArrows =\n this.props.options.layoutParams_structure_scrollDirection ===\n GALLERY_CONSTS[optionsMap.layoutParams.structure.scrollDirection].HORIZONTAL &&\n this.props.options.layoutParams_navigationArrows_position ===\n GALLERY_CONSTS[optionsMap.layoutParams.navigationArrows.position].OUTSIDE_GALLERY\n ? {\n overflow: 'visible',\n left:\n this.props.options.layoutParams_navigationArrows_size +\n 40 +\n this.props.options.layoutParams_structure_itemSpacing / 2,\n }\n : {};\n const mouseCursorContainerStyle = {\n display: 'flex',\n justifyContent: 'space-between',\n };\n const galleryDimensions = this.getDimensions();\n const galleryStyle = {\n ...galleryDimensions,\n ...galleryStyleForExternalArrows,\n ...mouseCursorContainerStyle,\n };\n\n return (\n <div\n id={this.props.galleryContainerId}\n className={\n 'pro-gallery inline-styles one-row hide-scrollbars ' +\n (this.props.options.behaviourParams_gallery_horizontal_blockScroll ? '' : ' slider ') +\n (this.props.settings?.isAccessible ? ' accessible ' : '') +\n (this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? ' rtl '\n : ' ltr ')\n }\n style={galleryStyle}\n >\n {this.createDebugMsg()}\n {this.createLayout()}\n {this.createAutoSlideShowPlayButton()}\n {this.createSlideShowNumbers()}\n {shouldRenderNavArrows({\n options: this.props.options,\n container: this.props.container,\n isPrerenderMode: this.props.isPrerenderMode,\n galleryStructure: this.props.galleryStructure,\n customNavArrowsRenderer: this.props.customComponents.customNavArrowsRenderer,\n }) && this.createNavArrows()}\n </div>\n );\n }\n\n onAutoSlideShowButtonClick() {\n this.setState({ pauseAutoSlideshowClicked: !this.state.pauseAutoSlideshowClicked }, () => {\n this.updateAutoSlideShowState(this.props);\n });\n }\n\n isFullWidthGallery() {\n return this.props.container.galleryWidth >= utils.getWindowWidth() - 10;\n }\n\n onAutoSlideshowAutoPlayKeyPress(e) {\n switch (e.keyCode || e.charCode) {\n case 32: //space\n case 13: //enter\n e.preventDefault();\n e.stopPropagation();\n this.onAutoSlideShowButtonClick();\n return false;\n default:\n return true;\n }\n }\n\n calcSlideshowCounterWidth() {\n const { totalItemsCount } = this.props;\n if (totalItemsCount < 10) {\n // x/x\n return 26;\n } else if (totalItemsCount < 100) {\n // xx/xx\n return 43;\n } else if (totalItemsCount < 1000) {\n // xxx/xxx\n return 60;\n } else {\n // xxxx/xxxx or more\n return 76;\n }\n }\n\n createAutoSlideShowPlayButton() {\n if (!this.shouldCreateSlideShowPlayButton) {\n return false;\n }\n\n const slideshowInfoAlignment = this.props.options.behaviourParams_gallery_horizontal_slideshowInfo_buttonsAlignment;\n const calculatedItemSpacing =\n this.props.options.layoutParams_structure_itemSpacing / 2 + (this.isFullWidthGallery() ? 50 : 0);\n\n const side =\n slideshowInfoAlignment ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideshowInfo.buttonsAlignment].RIGHT\n ? { left: `${calculatedItemSpacing / 2}px` }\n : {\n right: `${\n calculatedItemSpacing / 2 +\n (this.props.options.behaviourParams_gallery_horizontal_slideshowInfo_enableCounter\n ? this.calcSlideshowCounterWidth()\n : 0)\n }px`,\n };\n return (\n <button\n className={'auto-slideshow-button'}\n onClick={() => {\n this.onAutoSlideShowButtonClick();\n }}\n onKeyDown={this.onAutoSlideshowAutoPlayKeyPress}\n data-hook=\"auto-slideshow-button\"\n title={'slideshow auto play'}\n aria-pressed={this.state.pauseAutoSlideshowClicked}\n tabIndex={0}\n style={{\n top: `calc(100% - ${this.props.options.layoutParams_info_height}px + 3px)`,\n ...side,\n }}\n >\n {this.state.pauseAutoSlideshowClicked ? (\n <PlayIcon width=\"10px\" height=\"100%\" />\n ) : (\n <PauseIcon width=\"10px\" height=\"100%\" />\n )}\n </button>\n );\n }\n\n createSlideShowNumbers() {\n if (!this.props.options.behaviourParams_gallery_horizontal_slideshowInfo_enableCounter) {\n return false;\n }\n const { totalItemsCount } = this.props;\n const slideshowInfoAlignment = this.props.options.behaviourParams_gallery_horizontal_slideshowInfo_buttonsAlignment;\n\n const calculatedItemSpacing =\n this.props.options.layoutParams_structure_itemSpacing / 2 + (this.isFullWidthGallery() ? 50 : 0);\n\n const leftMargin = this.shouldCreateSlideShowPlayButton\n ? calculatedItemSpacing / 2 + 25\n : calculatedItemSpacing / 2;\n\n const side =\n slideshowInfoAlignment ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideshowInfo.buttonsAlignment].RIGHT\n ? { left: `${leftMargin}px` }\n : { right: `${calculatedItemSpacing / 2}px` };\n\n return (\n <div\n className={'auto-slideshow-counter'}\n data-hook=\"auto-slideshow-counter\"\n style={{\n top: `calc(100% - ${this.props.options.layoutParams_info_height}px + 3px)`,\n ...side,\n }}\n >\n <div>{(this.state.activeIndex % totalItemsCount) + 1 + '/' + totalItemsCount}</div>\n </div>\n );\n }\n\n getCustomNavigationPanel = () => {\n if (typeof this.props.customComponents?.EXPERIMENTAL_customNavigationPanelRenderer === 'function') {\n return this.props.customComponents.EXPERIMENTAL_customNavigationPanelRenderer;\n } else {\n return false;\n }\n };\n createOrGetCustomNavigationPanelAPI = () => {\n const isRTL =\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT;\n if (!this.navigationPanelAPI) {\n this.navigationPanelAPI = {\n onGalleryNavigationStart: (handler) => {\n this.props.actions.eventsListener(GALLERY_CONSTS.events.GALLERY_NAVIGATION_START, handler);\n },\n next: () => {\n this.next({\n scrollDuration: 400,\n isKeyboardNavigation: false,\n isAutoTrigger: false,\n avoidIndividualNavigation: false,\n isContinuousScrolling: false,\n direction: isRTL ? -1 : 1,\n });\n },\n previous: () => {\n this.next({\n scrollDuration: 400,\n isKeyboardNavigation: false,\n isAutoTrigger: false,\n avoidIndividualNavigation: false,\n isContinuousScrolling: false,\n direction: isRTL ? 1 : -1,\n });\n },\n navigateNextEnabled: () => {\n return isRTL ? !this.state.hideLeftArrow : !this.state.hideRightArrow;\n },\n navigatePreviousEnabled: () => {\n return isRTL ? !this.state.hideRightArrow : !this.state.hideLeftArrow;\n },\n currentIndex: () => {\n return this.state.activeIndex;\n },\n triggerItemClick: (e, { itemIndex = this.state.activeIndex } = {}) => {\n const galleryConfig = this.createGalleryConfig();\n const item = this.props.galleryStructure.galleryItems[itemIndex % this.props.totalItemsCount];\n const props = item?.renderProps({\n ...galleryConfig,\n visible: true,\n });\n\n this.props.actions.eventsListener(GALLERY_CONSTS.events.ITEM_ACTION_TRIGGERED, props, e);\n },\n navigateToIndex: (itemIdx, animationDuration = 400) => {\n this.scrollToIndex({ itemIdx, scrollDuration: animationDuration });\n },\n };\n }\n this.props.actions.eventsListener(GALLERY_CONSTS.events.NAVIGATION_API_READY, this.navigationPanelAPI);\n return this.navigationPanelAPI;\n };\n\n getNavigationPanelArray() {\n if (!this.props.options.layoutParams_thumbnails_enable) {\n return [false, false];\n }\n\n const customNavigationPanelRenderer = this.getCustomNavigationPanel();\n\n let navigationPanel;\n if (customNavigationPanelRenderer) {\n const { galleryHeight, galleryWidth, height, width } = this.props.container;\n const customNavigationPanelInlineStyles = getCustomNavigationPanelInlineStyles({\n galleryHeight,\n galleryWidth,\n height,\n width,\n galleryThumbnailsAlignment: this.props.options.layoutParams_thumbnails_alignment,\n navigationPanelPosition: this.props.options.layoutParams_thumbnails_position,\n });\n navigationPanel = (domOrder) => (\n <div className=\"custom-navigation-panel\" style={customNavigationPanelInlineStyles}>\n {customNavigationPanelRenderer({\n ...this.props,\n domOrder,\n activeIndex: this.state.activeIndex,\n navigationToIdxCB: this.scrollToThumbnail,\n navigationPanelAPI: this.createOrGetCustomNavigationPanelAPI(),\n })}\n </div>\n );\n } else {\n navigationPanel = (domOrder) => (\n <NavigationPanel\n {...this.props}\n domOrder={domOrder}\n activeIndex={this.state.activeIndex}\n navigationToIdxCB={this.scrollToThumbnail}\n />\n );\n }\n\n const navigationPanels = [];\n if (\n this.props.options.layoutParams_thumbnails_position ===\n GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.position].ON_GALLERY\n ) {\n navigationPanels[0] = false;\n navigationPanels[1] = navigationPanel('after');\n return navigationPanels;\n } else {\n //OUTSIDE_GALLERY\n if (this.props.isPrerenderMode) {\n navigationPanels[0] = navigationPanel('before');\n navigationPanels[1] = navigationPanel('after');\n return navigationPanels;\n }\n switch (this.props.options.layoutParams_thumbnails_alignment) {\n case GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.alignment].TOP:\n case GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.alignment].LEFT:\n navigationPanels[0] = navigationPanel('before');\n navigationPanels[1] = false;\n break;\n case GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.alignment].RIGHT:\n case GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.alignment].BOTTOM:\n navigationPanels[0] = false;\n navigationPanels[1] = navigationPanel('after');\n break;\n }\n return navigationPanels;\n }\n }\n\n getClassNames() {\n let classNames = 'pro-gallery-parent-container';\n if (GALLERY_CONSTS.isLayout('SLIDER')(this.props.options)) {\n classNames += ' gallery-slider';\n } else if (this.props.options.layoutParams_thumbnails_enable) {\n classNames += ' gallery-thumbnails';\n } else if (GALLERY_CONSTS.isLayout('COLUMN')(this.props.options)) {\n classNames += ' gallery-columns';\n }\n\n return classNames;\n }\n getStyles() {\n return {\n margin:\n -1 *\n (this.props.options.layoutParams_structure_itemSpacing / 2 -\n this.props.options.layoutParams_structure_gallerySpacing),\n width: this.props.container.width,\n height: this.props.container.height,\n };\n }\n\n getScrollPosition(props = this.props) {\n return this.scrollElement ? this.scrollPosition(props) : 0;\n }\n\n scrollPositionAtTheMiddleOfTheGallery() {\n return this.getScrollPosition() + this.props.container.galleryWidth / 2;\n }\n\n scrollPositionAtTheAndOfTheGallery(props = this.props) {\n return this.getScrollPosition(props) + props.container.galleryWidth;\n }\n\n scrollPosition(props = this.props) {\n return (\n (props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? -1\n : 1) * this.scrollElement.scrollLeft\n );\n }\n\n //-----------------------------------------| REACT |--------------------------------------------//\n\n updateAutoSlideShowState(props = this.props) {\n const { isGalleryInHover, options, settings } = props;\n const { pauseAutoSlideshowClicked, shouldBlockAutoSlideshow, isInView, isInFocus } = this.state;\n const shouldPauseDueToHover = isGalleryInHover && options.behaviourParams_gallery_horizontal_autoSlide_pauseOnHover;\n const shouldPauseDueToFocus = isInFocus && settings?.isAccessible;\n let shouldBlock = !isInView || pauseAutoSlideshowClicked || shouldPauseDueToFocus || shouldPauseDueToHover;\n if (shouldBlockAutoSlideshow !== shouldBlock) {\n this.setState({ shouldBlockAutoSlideshow: shouldBlock }, () => {\n this.startAutoSlideshowIfNeeded(options);\n });\n }\n }\n\n onFocus() {\n this.setState({ isInFocus: true }, () => {\n this.updateAutoSlideShowState(this.props);\n });\n }\n\n onBlur() {\n this.setState({ isInFocus: false }, () => {\n this.updateAutoSlideShowState(this.props);\n });\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n const isInView = props.isInViewport && (props.isInDisplay ?? true);\n const oldIsInView = this.props.isInViewport && (this.props.isInDisplay ?? true);\n if (isInView !== oldIsInView) {\n this.setState({ isInView }, () => {\n this.updateAutoSlideShowState(props);\n });\n } else if (this.props.isGalleryInHover !== props.isGalleryInHover) {\n this.updateAutoSlideShowState(props);\n } else if (this.props.container.scrollBase != props.container.scrollBase) {\n this.forceUpdate(() => {\n this.startAutoSlideshowIfNeeded(props.options);\n });\n }\n if (this.props.activeIndex !== props.activeIndex) {\n utils.setStateAndLog(\n this,\n 'Next Item',\n {\n activeIndex: props.activeIndex,\n },\n () => {\n this.onCurrentItemChanged(props);\n }\n );\n }\n if (\n this.props.totalItemsCount !== props.totalItemsCount ||\n this.props.container.galleryHeight !== props.container.galleryHeight ||\n this.props.container.galleryWidth !== props.container.galleryWidth ||\n this.state.activeIndex !== props.activeIndex\n ) {\n this.removeArrowsIfNeeded(props);\n }\n if (isEditMode() || isPreviewMode()) {\n if (\n //check that the change is related to the slideshow settings\n ((this.props.options.behaviourParams_gallery_horizontal_autoSlide_behaviour !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].OFF) !==\n props.options.behaviourParams_gallery_horizontal_autoSlide_behaviour) !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].OFF ||\n this.props.options.behaviourParams_gallery_horizontal_autoSlide_interval !==\n props.options.behaviourParams_gallery_horizontal_autoSlide_interval\n ) {\n this.startAutoSlideshowIfNeeded(props.options);\n }\n }\n\n this.shouldCreateSlideShowPlayButton =\n props.options.behaviourParams_gallery_horizontal_autoSlide_behaviour !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].OFF &&\n props.options.behaviourParams_gallery_horizontal_slideshowInfo_enablePlayButton;\n }\n\n removeArrowsIfNeeded(props = this.props) {\n const isRTL =\n props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT;\n const { hideLeftArrow, hideRightArrow } = this.state;\n\n const isScrollStart = this.isScrollStart(props);\n const isFirstItem = this.isFirstItem();\n const isScrollEnd = this.isScrollEnd(props);\n const isLastItem = this.isLastItem();\n\n const atStart = isScrollStart || isFirstItem;\n const atEnd = isScrollEnd || isLastItem;\n\n const nextHideLeft = (!isRTL && atStart) || (isRTL && atEnd);\n const nextHideRight = (isRTL && atStart) || (!isRTL && atEnd);\n const shouldUpdateArrowsState = !!nextHideLeft !== !!hideLeftArrow || !!nextHideRight !== !!hideRightArrow;\n\n if (shouldUpdateArrowsState) {\n this.setState({\n hideLeftArrow: !!nextHideLeft,\n hideRightArrow: !!nextHideRight,\n });\n }\n }\n\n componentDidMount() {\n this.scrollElement = window.document.querySelector(\n `#pro-gallery-${this.props.id} #gallery-horizontal-scroll-${this.props.id}`\n );\n if (this.scrollElement) {\n this.scrollElement.addEventListener('scroll', this._setCurrentItemByScroll);\n }\n if (this.state.activeIndex > 0) {\n this.props.actions.scrollToItem(this.state.activeIndex);\n this.onCurrentItemChanged();\n } else {\n this.setCurrentItemByScroll();\n }\n this.startAutoSlideshowIfNeeded(this.props.options);\n this.createOrGetCustomNavigationPanelAPI();\n }\n\n componentWillUnmount() {\n if (this.scrollElement) {\n this.scrollElement.removeEventListener('scroll', this._setCurrentItemByScroll);\n }\n }\n\n //-----------------------------------------| RENDER |--------------------------------------------//\n\n render() {\n if (utils.isVerbose()) {\n console.count('galleryView render');\n console.count('Rendering Gallery count');\n console.time('Rendering Gallery took ');\n }\n\n const gallery = this.createGallery();\n const navigationPanel = this.getNavigationPanelArray();\n\n if (utils.isVerbose()) {\n console.timeEnd('Rendering Gallery took ');\n }\n\n return (\n <div\n className={this.getClassNames()}\n style={this.getStyles()}\n onKeyDown={this.handleSlideshowKeyPress}\n {...utils.getAriaAttributes({\n proGalleryRole: this.props.proGalleryRole,\n proGalleryRegionLabel: this.props.proGalleryRegionLabel,\n })}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n >\n {navigationPanel[0]}\n {gallery}\n {navigationPanel[1]}\n </div>\n );\n }\n}\n\nexport default SlideshowView;\n"]}
|
|
1
|
+
{"version":3,"file":"slideshowView.js","sourceRoot":"","sources":["../../../../../src/components/gallery/proGallery/slideshowView.js"],"names":[],"mappings":";;;AAAA,0DAA0B;AAC1B,qDAAuG;AACvG,oFAAiD;AACjD,8FAA2D;AAC3D,oFAAqD;AACrD,sFAAuD;AACvD,mFAA6F;AAC7F,uEAA0F;AAC1F,+DAAyD;AACzD,mFAA8E;AAC9E,iFAA2E;AAE3E,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC,SAAS,YAAY,CAAC,IAAI;IACxB,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;SACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACzC,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AAEH;;GAEG;AACH,MAAM,aAAc,SAAQ,eAAK,CAAC,SAAS;IACzC,YAAY,KAAK;QACf,KAAK,CAAC,KAAK,CAAC,CAAC;QAmXf,yBAAoB,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,IAAA,4BAAU,GAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAA,+BAAa,GAAE,CAAC,EAAE;gBACjE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC/B,MAAM,SAAS,GACb,OAAO,CAAC,uCAAuC;oBAC/C,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa;oBAC9E,CAAC,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC,CAAC;gBAER,IACE,OAAO,CAAC,sDAAsD;oBAC9D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,UAAU,EAC5F;oBACA,IAAI,CAAC,KAAK,CAAC;wBACT,SAAS;wBACT,aAAa,EAAE,IAAI;wBACnB,qBAAqB,EAAE,IAAI;qBAC5B,CAAC,CAAC;iBACJ;qBAAM,IACL,OAAO,CAAC,sDAAsD;oBAC9D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,EAC1F;oBACA,IAAI,CAAC,KAAK,CAAC;wBACT,SAAS;wBACT,aAAa,EAAE,IAAI;wBACnB,cAAc,EAAE,GAAG;qBACpB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC;QAmaF,6BAAwB,GAAG,GAAG,EAAE;;YAC9B,IAAI,OAAO,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,0CAAE,0CAA0C,CAAA,KAAK,UAAU,EAAE;gBACjG,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,0CAA0C,CAAC;aAC/E;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC;QACF,wCAAmC,GAAG,GAAG,EAAE;YACzC,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC;gBAC1D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC;YACnF,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,IAAI,CAAC,kBAAkB,GAAG;oBACxB,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE;wBACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAc,CAAC,MAAM,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;oBAC7F,CAAC;oBACD,IAAI,EAAE,GAAG,EAAE;wBACT,IAAI,CAAC,IAAI,CAAC;4BACR,cAAc,EAAE,GAAG;4BACnB,oBAAoB,EAAE,KAAK;4BAC3B,aAAa,EAAE,KAAK;4BACpB,yBAAyB,EAAE,KAAK;4BAChC,qBAAqB,EAAE,KAAK;4BAC5B,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC1B,CAAC,CAAC;oBACL,CAAC;oBACD,QAAQ,EAAE,GAAG,EAAE;wBACb,IAAI,CAAC,IAAI,CAAC;4BACR,cAAc,EAAE,GAAG;4BACnB,oBAAoB,EAAE,KAAK;4BAC3B,aAAa,EAAE,KAAK;4BACpB,yBAAyB,EAAE,KAAK;4BAChC,qBAAqB,EAAE,KAAK;4BAC5B,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC1B,CAAC,CAAC;oBACL,CAAC;oBACD,mBAAmB,EAAE,GAAG,EAAE;wBACxB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;oBACxE,CAAC;oBACD,uBAAuB,EAAE,GAAG,EAAE;wBAC5B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;oBACxE,CAAC;oBACD,YAAY,EAAE,GAAG,EAAE;wBACjB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;oBAChC,CAAC;oBACD,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE;wBACnE,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;wBAC9F,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,iCAC1B,aAAa,KAChB,OAAO,EAAE,IAAI,IACb,CAAC;wBAEH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAc,CAAC,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC3F,CAAC;oBACD,eAAe,EAAE,CAAC,OAAO,EAAE,iBAAiB,GAAG,GAAG,EAAE,EAAE;wBACpD,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBACrE,CAAC;iBACF,CAAC;aACH;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACvG,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACjC,CAAC,CAAC;QAh3BA,IAAI,CAAC,oCAAoC,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,uBAAuB,GAAG,uBAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3F,IAAI,CAAC,KAAK,GAAG,uBAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/G,IAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC;YACnC,QAAQ,EAAE,IAAI;YACd,yBAAyB,EAAE,KAAK;YAChC,aAAa,EACX,KAAK,CAAC,OAAO,CAAC,uCAAuC;gBACrD,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa;YAClF,cAAc,EACZ,KAAK,CAAC,OAAO,CAAC,uCAAuC;gBACrD,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa;YAClF,wBAAwB,EAAE,KAAK;YAC/B,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,+BAA+B,GAAG,KAAK,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,sBAAsB,CAAC,CAAC,CAAC,wBAAwB;IAChH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,iDAAiD,CAAC;QACvF,IACE,cAAc,KAAK,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,MAAM;YACtG,CAAC,IAAI,CAAC,aAAa,EACnB;YACA,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QAC5B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,iDAAiD,CAAC;QACvF,IACE,KAAK,CAAC,OAAO,CAAC,uCAAuC;YACrD,cAAc,KAAK,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,IAAI;YACpG,cAAc,KAAK,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,IAAI,EACpG;YACA,OAAO,KAAK,CAAC;SACd;QACD,OAAO,CACL,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAChG,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QACjC,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;QACjG,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC;QAC5G,OAAO,iBAAiB,IAAI,eAAe,CAAC;IAC9C,CAAC;IAED,qBAAqB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;QACnC,OAAO,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kCAAkC,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,uBAAuB;QACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7F,CAAC;IACD,sBAAsB;QACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3F,CAAC;IAED,UAAU;QACR,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC,IAAI,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;IACtH,CAAC;IAED,0GAA0G;IAE1G,8FAA8F;IAC9F,eAAe,CAAC,EAAE,qBAAqB,EAAE;QACvC,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,oBAAoB,CAAC,EAAE,qBAAqB,EAAE;QAC5C,OAAO,CACL,CAAC,qBAAqB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxD,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAK;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,KAAK,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,mBAAmB;YAC9B,QAAQ,IAAI,IAAI,CAAC,aAAa,EAC9B;YACA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACpE,IAAA,wDAAyB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SACjF;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,oBAAoB,GAAG,KAAK,EAC5B,qBAAqB,GAAG,KAAK,GAC9B;;QACC,MAAM,qBAAqB,GACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC;YAC1D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa;YAC9E,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE;YACnD,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,OAAO;SACR;QACD,SAAS;YACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC;gBAC1D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa;gBAC9E,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC,CAAC;QACR,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;QAC7C,MAAM,oBAAoB,GAAG,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACnH,MAAM,yBAAyB,GAC7B,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,0CAAE,YAAY,KAAI,oBAAoB,CAAC,CAAC;QACxF,IAAI,oBAAoB,GAAG,KAAK,CAAC;QAEjC,IACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iDAAiD;YACpE,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,MAAM,EACnF;YACA,cAAc,GAAG,CAAC,CAAC;YACnB,oBAAoB,GAAG,IAAI,CAAC;SAC7B;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,yBAAyB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,GAAG,CAAC,EAAE;YACrF,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,SAAS;gBACT,cAAc;gBACd,qBAAqB;gBACrB,qBAAqB;aACtB,CAAC,CAAC,CAAC,0IAA0I;SAC/I;aAAM;YACL,IACE,yBAAyB;gBACzB,gCAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC,EAC1D;gBACA,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC,CAAC;aACzE;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC;gBACnB,SAAS;gBACT,aAAa;gBACb,cAAc;gBACd,yBAAyB;gBACzB,oBAAoB;gBACpB,qBAAqB;gBACrB,qBAAqB;aACtB,CAAC,CAAC;SACJ;IACH,CAAC;IAED,4BAA4B,CAAC,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,aAAa;QAC/G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,SAAS,CAAC;QACd,IACE,SAAS,KAAK,WAAW;YACzB,CAAC,SAAS,KAAK,UAAU;gBACvB,CAAC,oBAAoB;gBACrB,yBAAyB;gBACzB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC,EAC1D;YACA,MAAM,GAAG,GAAG,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;YAClE,SAAS,GAAG,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;SACrE;aAAM,IAAI,SAAS,KAAK,UAAU,EAAE;YACnC,IAAI,oBAAoB,IAAI,CAAC,aAAa,EAAE;gBAC1C,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;aACpC;iBAAM;gBACL,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAC3C;YACD,SAAS,IAAI,SAAS,CAAC;YAEvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC,EAAE;gBAC/D,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC9E,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aACpC;SACF;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB;QACC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAC9C,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EACzB,aAAa,CACd,CAAC;QAEF,IAAI;YACF,MAAM,YAAY,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzD,MAAM,IAAI,CAAC,mBAAmB,CAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAC/B,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,qBAAqB,CACtB,CAAC;YAEF,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;gBAC7F,IAAI,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;oBAClC,QAAQ,GAAG,uBAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAC/D,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBACjD;aACF;YAED,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YAE5D,IAAI,oBAAoB,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChG,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC;aACxC;YACD,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,kBAAkB,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,qBAAqB,GAAG,KAAK,EAAE,qBAAqB,EAAE;QACjG,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAE5E,IAAI;YACF,MAAM,IAAI,CAAC,mBAAmB,CAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAChC,SAAS,EACT,qBAAqB,EACrB,cAAc,EACd,qBAAqB,CACtB,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,iCAAiC,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;YACpF,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;SAC7D;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,kBAAkB,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;SAChE;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB;QACzG,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC;YACnD,qBAAqB;SACtB,CAAC,CAAC;QACH,MAAM,EAAE,sBAAsB,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC7F,iBAAiB;YACf,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB;QACnD,uBAAK,CAAC,cAAc,CAClB,IAAI,EACJ,WAAW,EACX;YACE,WAAW,EAAE,QAAQ;SACtB,EACD,GAAG,EAAE;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,qBAAqB,EAAE;gBACzB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACrD;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,cAAc;;QAChC,OAAO;YACL,sBAAsB,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC;YACpD,eAAe,EACb,MAAA,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qDAAqD,mCAAI,GAAG;SACpG,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QACrC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAC9C,iEAAiE;YACjE,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBAClC,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,SAAS,CACjD,gCAAc,CAAC,QAAQ,CAAC,OAAO,EAC/B,gCAAc,CAAC,QAAQ,CAAC,QAAQ,CACjC,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;aACrF;YACD,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SACnE;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,0BAA0B;QACxB,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED,qBAAqB,CAAC,OAAO;QAC3B,OAAO,CACL,OAAO,CAAC,sDAAsD;YAC5D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG;YACvF,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CACrC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,0BAA0B,CAAC,OAAO;QAChC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE;YACvC,IACE,OAAO,CAAC,sDAAsD;gBAC5D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,UAAU;gBAC9F,OAAO,CAAC,kDAAkD,GAAG,CAAC,EAC9D;gBACA,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;iBAAM,IACL,OAAO,CAAC,sDAAsD;gBAC5D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ;gBAC5F,OAAO,CAAC,qDAAqD,GAAG,CAAC,EACjE;gBACA,IAAI,CAAC,qBAAqB,GAAG,WAAW,CACtC,IAAI,CAAC,oBAAoB,EACzB,OAAO,CAAC,qDAAqD,GAAG,IAAI,CACrE,CAAC;aACH;SACF;IACH,CAAC;IAiCD,WAAW,CAAC,OAAO;QACjB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACrD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAClD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,GAAG,CAAC;IACvE,CAAC;IAED,iBAAiB,CAAC,OAAO,EAAE,cAAc;QACvC,0GAA0G;QAC1G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,gCAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACzC,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE;QACvC,0GAA0G;QAC1G,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,2CAA2C;QAEnF,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC;YAC1D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC;QAEnF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC9F,OAAO,IAAI,CAAC,IAAI,CAAC;YACf,SAAS;YACT,aAAa,EAAE,KAAK;YACpB,cAAc;YACd,oBAAoB,EAAE,KAAK;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,CAAC;QACvB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,kEAAkE;QAClE,yCAAyC;QACzC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC;QAErC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACvD,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,aAAa,GAAG,wBAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE7E,MAAM,6BAA6B,GACjC,aAAa;YACb,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,KAAK,MAAM,CAAC,aAAa,CAAC;YACxD,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAEnD,IAAI,CAAC,IAAI,KAAK,EAAE,IAAI,6BAA6B,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE;YACjE,MAAM,cAAc,GAAG;gBACrB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB;gBAClC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB;aAClC,CAAC,IAAI,CAAC,CAAC;YACR,uBAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;SAC3C;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;SAC3E;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iCAAiC,CAAC,GAAG;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,sBAAsB,CAAC;QAC3B,MAAM,qCAAqC,GAAG,IAAI,CAAC,qCAAqC,EAAE,CAAC;QAE3F,IAAI,qCAAqC,KAAK,CAAC,EAAE;YAC/C,sBAAsB,GAAG,CAAC,CAAC;SAC5B;aAAM;YACL,KAAK,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClE,MAAM,eAAe,GAAG,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC5F,IAAI,eAAe,GAAG,qCAAqC,EAAE;oBAC3D,sBAAsB,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC/B,MAAM;iBACP;aACF;SACF;QACD,IAAI,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,EAAE;YAClC,sBAAsB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5E;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,sBAAsB;QACpB,IAAI,uBAAK,CAAC,SAAS,EAAE,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SACpE;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,qFAAqF;YACrF,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,OAAO;SACR;QAED,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,KAAK,MAAM,CAAC;QAEzG,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAElC,mEAAmE;YACnE,OAAO;SACR;QACD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,iCAAiC,CAAC,cAAc,CAAC,CAAC;QAE3E,IAAI,CAAC,uBAAK,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;YACnC,uBAAK,CAAC,cAAc,CAClB,IAAI,EACJ,kBAAkB,EAClB;gBACE,WAAW;aACZ,EACD,GAAG,EAAE;gBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,CAAC,CACF,CAAC;SACH;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,cAAc;QACZ,OAAO,8BAAC,gCAAmB,oBAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAI,CAAC;IACvD,CAAC;IAED,eAAe;QACb,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,OAAO,CACL,8BAAC,sCAAgB,IACf,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,uBAAuB,EAAE,gBAAgB,CAAC,uBAAuB,EACjE,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,CAAC,KAAK,EAChB,EAAE,EAAE,EAAE,GACN,CACH,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,aAAa,EAAE,SAAS;;QACvC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;QACpF,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,0CAAE,WAAW,KAAI,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC;QAEhG,OAAO,IAAA,2DAAuC,EAAC;YAC7C,MAAM;YACN,WAAW;YACX,YAAY;YACZ,OAAO;YACP,sBAAsB;SACvB,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB;QACjB,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAC7C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;YACnC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAC7C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACxB,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB;YACnD,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;YAC3C,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YACzC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;YAC3C,4BAA4B,EAAE,IAAI,CAAC,KAAK,CAAC,4BAA4B;YACrE,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC,0BAA0B;YACjE,OAAO,EAAE;gBACP,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc;aAClD;YACD,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;YAC3C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK;SAC9C,CAAC;IACJ,CAAC;IACD,YAAY;QACV,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAChH,IAAI,eAAe,EAAE;gBACnB,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;oBACrD,OAAO,KAAK,CAAC,QAAQ;wBACnB,CAAC,CAAC,eAAK,CAAC,aAAa,CAAC,sBAAS,gCAC3B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iDAAiD,EACpF,SAAS,EACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC;gCAC1D,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAC7D,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,KACnC,UAAU,EAAE,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,EAC1C,iBAAiB,EAAE,CAAC,YAAY,EAChC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,GAAG,EAAE,KAAK,CAAC,GAAG,IACd;wBACJ,CAAC,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEF,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,WAAW,GAAG;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;gBACzD,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM;gBACnC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;aAC7D,CAAC;YACF,OAAO,CACL,oDACY,gBAAgB,EAC1B,EAAE,EAAE,6BAA6B,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAChD,SAAS,EAAE,4DACT,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC;oBAC1D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa;oBAC9E,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,OACN,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,EACpG,GAAG,EAAE,QAAQ,GAAG,CAAC,EACjB,KAAK,EAAE,WAAW;gBAElB,uCAAK,SAAS,EAAC,iCAAiC,IAAE,YAAY,CAAC,MAAM,CAAC,CAAO,CACzE,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe;YAC/B,CAAC,CAAC;gBACE,KAAK,EAAE,MAAM;gBACb,MAAM;aACP;YACH,CAAC,CAAC;gBACE,MAAM;gBACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY;aACzC,CAAC;IACR,CAAC;IAED,aAAa;;QACX,iJAAiJ;QACjJ,MAAM,6BAA6B,GACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sCAAsC;YACvD,gCAAc,CAAC,4BAAU,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,UAAU;YAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sCAAsC;gBACvD,gCAAc,CAAC,4BAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,eAAe;YACjF,CAAC,CAAC;gBACE,QAAQ,EAAE,SAAS;gBACnB,IAAI,EACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kCAAkC;oBACrD,EAAE;oBACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kCAAkC,GAAG,CAAC;aAC5D;YACH,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,yBAAyB,GAAG;YAChC,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,eAAe;SAChC,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,YAAY,iDACb,iBAAiB,GACjB,6BAA6B,GAC7B,yBAAyB,CAC7B,CAAC;QAEF,OAAO,CACL,uCACE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACjC,SAAS,EACP,oDAAoD;gBACpD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;gBACrF,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,0CAAE,YAAY,EAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC;oBAC3D,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa;oBAC9E,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,OAAO,CAAC,EAEd,KAAK,EAAE,YAAY;YAElB,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,6BAA6B,EAAE;YACpC,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAA,+CAAqB,EAAC;gBACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAC3B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;gBAC/B,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;gBAC3C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;gBAC7C,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,uBAAuB;aAC7E,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CACxB,CACP,CAAC;IACJ,CAAC;IAED,0BAA0B;QACxB,IAAI,CAAC,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE;YACvF,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,IAAI,uBAAK,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC;IAC1E,CAAC;IAED,+BAA+B,CAAC,CAAC;QAC/B,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE;YAC/B,KAAK,EAAE,CAAC,CAAC,OAAO;YAChB,KAAK,EAAE,EAAE,OAAO;gBACd,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;IAED,yBAAyB;QACvB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,eAAe,GAAG,EAAE,EAAE;YACxB,MAAM;YACN,OAAO,EAAE,CAAC;SACX;aAAM,IAAI,eAAe,GAAG,GAAG,EAAE;YAChC,QAAQ;YACR,OAAO,EAAE,CAAC;SACX;aAAM,IAAI,eAAe,GAAG,IAAI,EAAE;YACjC,UAAU;YACV,OAAO,EAAE,CAAC;SACX;aAAM;YACL,oBAAoB;YACpB,OAAO,EAAE,CAAC;SACX;IACH,CAAC;IAED,6BAA6B;QAC3B,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE;YACzC,OAAO,KAAK,CAAC;SACd;QAED,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iEAAiE,CAAC;QACpH,MAAM,qBAAqB,GACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kCAAkC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnG,MAAM,IAAI,GACR,sBAAsB;YACtB,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,KAAK;YAChG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,qBAAqB,GAAG,CAAC,IAAI,EAAE;YAC5C,CAAC,CAAC;gBACE,KAAK,EAAE,GACL,qBAAqB,GAAG,CAAC;oBACzB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,8DAA8D;wBAChF,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE;wBAClC,CAAC,CAAC,CAAC,CACP,IAAI;aACL,CAAC;QACR,OAAO,CACL,0CACE,SAAS,EAAE,uBAAuB,EAClC,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACpC,CAAC,EACD,SAAS,EAAE,IAAI,CAAC,+BAA+B,eACrC,uBAAuB,EACjC,KAAK,EAAE,qBAAqB,kBACd,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAClD,QAAQ,EAAE,CAAC,EACX,KAAK,kBACH,GAAG,EAAE,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,WAAW,IACvE,IAAI,KAGR,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CACtC,8BAAC,iBAAQ,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,GAAG,CACxC,CAAC,CAAC,CAAC,CACF,8BAAC,kBAAS,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,GAAG,CACzC,CACM,CACV,CAAC;IACJ,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,8DAA8D,EAAE;YACtF,OAAO,KAAK,CAAC;SACd;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACvC,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iEAAiE,CAAC;QAEpH,MAAM,qBAAqB,GACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kCAAkC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnG,MAAM,UAAU,GAAG,IAAI,CAAC,+BAA+B;YACrD,CAAC,CAAC,qBAAqB,GAAG,CAAC,GAAG,EAAE;YAChC,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAE9B,MAAM,IAAI,GACR,sBAAsB;YACtB,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,KAAK;YAChG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,UAAU,IAAI,EAAE;YAC7B,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC;QAElD,OAAO,CACL,uCACE,SAAS,EAAE,wBAAwB,eACzB,wBAAwB,EAClC,KAAK,kBACH,GAAG,EAAE,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,WAAW,IACvE,IAAI;YAGT,2CAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,eAAe,CAAO,CAC/E,CACP,CAAC;IACJ,CAAC;IAkED,uBAAuB;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,8BAA8B,EAAE;YACtD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACvB;QAED,MAAM,6BAA6B,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEtE,IAAI,eAAe,CAAC;QACpB,IAAI,6BAA6B,EAAE;YACjC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC5E,MAAM,iCAAiC,GAAG,IAAA,yDAAoC,EAAC;gBAC7E,aAAa;gBACb,YAAY;gBACZ,MAAM;gBACN,KAAK;gBACL,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iCAAiC;gBAChF,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gCAAgC;aAC7E,CAAC,CAAC;YACH,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC9B,uCAAK,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,iCAAiC,IAC9E,6BAA6B,iCACzB,IAAI,CAAC,KAAK,KACb,QAAQ,EACR,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,kBAAkB,EAAE,IAAI,CAAC,mCAAmC,EAAE,IAC9D,CACE,CACP,CAAC;SACH;aAAM;YACL,eAAe,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC9B,8BAAC,4BAAe,oBACV,IAAI,CAAC,KAAK,IACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IACzC,CACH,CAAC;SACH;QAED,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,IACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gCAAgC;YACnD,gCAAc,CAAC,4BAAU,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,EACtE;YACA,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC5B,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,gBAAgB,CAAC;SACzB;aAAM;YACL,iBAAiB;YACjB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;gBAC9B,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAChD,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC/C,OAAO,gBAAgB,CAAC;aACzB;YACD,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE;gBAC5D,KAAK,gCAAc,CAAC,4BAAU,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;gBACtE,KAAK,gCAAc,CAAC,4BAAU,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI;oBACpE,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAChD,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5B,MAAM;gBACR,KAAK,gCAAc,CAAC,4BAAU,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;gBACxE,KAAK,gCAAc,CAAC,4BAAU,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM;oBACtE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAC5B,gBAAgB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;oBAC/C,MAAM;aACT;YACD,OAAO,gBAAgB,CAAC;SACzB;IACH,CAAC;IAED,aAAa;QACX,IAAI,UAAU,GAAG,8BAA8B,CAAC;QAChD,IAAI,gCAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACzD,UAAU,IAAI,iBAAiB,CAAC;SACjC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,8BAA8B,EAAE;YAC5D,UAAU,IAAI,qBAAqB,CAAC;SACrC;aAAM,IAAI,gCAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAChE,UAAU,IAAI,kBAAkB,CAAC;SAClC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,SAAS;QACP,OAAO;YACL,MAAM,EACJ,CAAC,CAAC;gBACF,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kCAAkC,GAAG,CAAC;oBACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qCAAqC,CAAC;YAC7D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK;YACjC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;SACpC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,qCAAqC;QACnC,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,kCAAkC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QACnD,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;IACtE,CAAC;IAED,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QAC/B,OAAO,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,uCAAuC;YACtD,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa;YAC9E,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CACvC,CAAC;IACJ,CAAC;IAED,kGAAkG;IAElG,wBAAwB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QACzC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QACtD,MAAM,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChG,MAAM,qBAAqB,GAAG,gBAAgB,IAAI,OAAO,CAAC,yDAAyD,CAAC;QACpH,MAAM,qBAAqB,GAAG,SAAS,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,CAAA,CAAC;QAClE,IAAI,WAAW,GAAG,CAAC,QAAQ,IAAI,yBAAyB,IAAI,qBAAqB,IAAI,qBAAqB,CAAC;QAC3G,IAAI,wBAAwB,KAAK,WAAW,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC,EAAE,wBAAwB,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE;gBAC5D,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;YACtC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;YACvC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gCAAgC,CAAC,KAAK;;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,MAAA,KAAK,CAAC,WAAW,mCAAI,IAAI,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,IAAI,CAAC,CAAC;QAChF,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE;gBAC/B,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,EAAE;YACjE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE;YACxE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EAAE;YAChD,uBAAK,CAAC,cAAc,CAClB,IAAI,EACJ,WAAW,EACX;gBACE,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,EACD,GAAG,EAAE;gBACH,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC,CACF,CAAC;SACH;QACD,IACE,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe;YACpD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,KAAK,KAAK,CAAC,SAAS,CAAC,aAAa;YACpE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC,YAAY;YAClE,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,EAC5C;YACA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SAClC;QACD,IAAI,IAAA,4BAAU,GAAE,IAAI,IAAA,+BAAa,GAAE,EAAE;YACnC;YACE,4DAA4D;YAC5D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sDAAsD;gBACzE,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;gBACtF,KAAK,CAAC,OAAO,CAAC,sDAAsD,CAAC;gBACrE,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG;gBACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qDAAqD;oBACtE,KAAK,CAAC,OAAO,CAAC,qDAAqD,EACrE;gBACA,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aAChD;SACF;QAED,IAAI,CAAC,+BAA+B;YAClC,KAAK,CAAC,OAAO,CAAC,sDAAsD;gBAClE,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG;gBACvF,KAAK,CAAC,OAAO,CAAC,iEAAiE,CAAC;IACpF,CAAC;IAED,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QACrC,MAAM,KAAK,GACT,KAAK,CAAC,OAAO,CAAC,uCAAuC;YACrD,gCAAc,CAAC,4BAAU,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC;QACnF,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAErD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAErC,MAAM,OAAO,GAAG,aAAa,IAAI,WAAW,CAAC;QAC7C,MAAM,KAAK,GAAG,WAAW,IAAI,UAAU,CAAC;QAExC,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC;QAC9D,MAAM,uBAAuB,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,cAAc,CAAC;QAE3G,IAAI,uBAAuB,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC;gBACZ,aAAa,EAAE,CAAC,CAAC,YAAY;gBAC7B,cAAc,EAAE,CAAC,CAAC,aAAa;aAChC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,wBAAM,CAAC,QAAQ,CAAC,aAAa,CAChD,gBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,+BAA+B,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAC5E,CAAC;QACF,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;SAC7E;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;aAAM;YACL,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,mCAAmC,EAAE,CAAC;IAC7C,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;SAChF;IACH,CAAC;IAED,mGAAmG;IAEnG,MAAM;QACJ,IAAI,uBAAK,CAAC,SAAS,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;SACzC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAEvD,IAAI,uBAAK,CAAC,SAAS,EAAE,EAAE;YACrB,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QAED,OAAO,CACL,qDACE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,EAC/B,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,EACvB,SAAS,EAAE,IAAI,CAAC,uBAAuB,IACnC,uBAAK,CAAC,iBAAiB,CAAC;YAC1B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YACzC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB;SACxD,CAAC,IACF,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YAElB,eAAe,CAAC,CAAC,CAAC;YAClB,OAAO;YACP,eAAe,CAAC,CAAC,CAAC,CACf,CACP,CAAC;IACJ,CAAC;CACF;AAED,kBAAe,aAAa,CAAC","sourcesContent":["import React from 'react';\nimport { GALLERY_CONSTS, window, utils, isEditMode, isPreviewMode, optionsMap } from 'pro-gallery-lib';\nimport GroupView from '../../group/groupView.js';\nimport GalleryDebugMessage from './galleryDebugMessage.js';\nimport PlayIcon from '../../svgs/components/play.js';\nimport PauseIcon from '../../svgs/components/pause.js';\nimport NavigationPanel, { getCustomNavigationPanelInlineStyles } from './navigationPanel.js';\nimport { getItemsInViewportOrMarginByActiveGroup } from '../../helpers/virtualization.js';\nimport { NavigationArrows } from './navigationArrows.js';\nimport { shouldRenderNavArrows } from '../../helpers/navigationArrowUtils.js';\nimport { toggleScrollLessAnimation } from './scrollLessAnimationHelper.js';\n\nconst SKIP_SLIDES_MULTIPLIER = 1.5;\n\nfunction getDirection(code) {\n const reverse = [33, 37, 38];\n const direct = [32, 34, 39, 40];\n if (reverse.includes(code)) return -1;\n else if (direct.includes(code)) return 1;\n throw new Error(`no direction is defined for charCode: ${code}`);\n}\n\n/**\n * @typedef Props\n * @prop {import('pro-gallery-lib').Options} options\n */\n\n/**\n * @extends {React.Component<Props>}\n */\nclass SlideshowView extends React.Component {\n constructor(props) {\n super(props);\n this.navigationPanelCallbackOnIndexChange = () => {};\n this.scrollToThumbnail = this.scrollToThumbnail.bind(this);\n this.clearAutoSlideshowInterval = this.clearAutoSlideshowInterval.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onAutoSlideShowButtonClick = this.onAutoSlideShowButtonClick.bind(this);\n this.startAutoSlideshowIfNeeded = this.startAutoSlideshowIfNeeded.bind(this);\n this.updateAutoSlideShowState = this.updateAutoSlideShowState.bind(this);\n this.canStartAutoSlideshow = this.canStartAutoSlideshow.bind(this);\n this.handleSlideshowKeyPress = this.handleSlideshowKeyPress.bind(this);\n this.onAutoSlideshowAutoPlayKeyPress = this.onAutoSlideshowAutoPlayKeyPress.bind(this);\n this.setCurrentItemByScroll = this.setCurrentItemByScroll.bind(this);\n this._setCurrentItemByScroll = utils.throttle(this.setCurrentItemByScroll, 600).bind(this);\n this._next = utils.throttle(this.nextWithEffects.bind(this), props.isScrollLessGallery ? 600 : 400).bind(this);\n this.state = {\n activeIndex: props.activeIndex || 0,\n isInView: true,\n pauseAutoSlideshowClicked: false,\n hideLeftArrow:\n props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].LEFT_TO_RIGHT,\n hideRightArrow:\n props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT,\n shouldBlockAutoSlideshow: false,\n isInFocus: false,\n };\n this.lastCurrentItem = undefined;\n this.shouldCreateSlideShowPlayButton = false;\n this.skipFromSlide = Math.round(this.props.totalItemsCount * SKIP_SLIDES_MULTIPLIER); // Used in infinite loop\n }\n\n isFirstItem() {\n return this.state.activeIndex === 0;\n }\n\n isScrollStart(props = this.props) {\n const slideAnimation = props.options.behaviourParams_gallery_horizontal_slideAnimation;\n if (\n slideAnimation !== GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideAnimation].SCROLL ||\n !this.scrollElement\n ) {\n return false;\n }\n return this.scrollPosition(props) <= 1;\n }\n\n isScrollEnd(props = this.props) {\n const slideAnimation = props.options.behaviourParams_gallery_horizontal_slideAnimation;\n if (\n props.options.behaviourParams_gallery_horizontal_loop ||\n slideAnimation === GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideAnimation].FADE ||\n slideAnimation === GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideAnimation].DECK\n ) {\n return false;\n }\n return (\n this.isAllItemsLoaded(props) &&\n this.scrollPositionAtTheAndOfTheGallery(props) >= Math.floor(this.getScrollElementWidth(props))\n );\n }\n\n isAllItemsLoaded(props = this.props) {\n const { totalItemsCount, getVisibleItems, galleryStructure, container, isPrerenderMode } = props;\n const visibleItemsCount = getVisibleItems(galleryStructure.galleryItems, container, isPrerenderMode).length;\n return visibleItemsCount >= totalItemsCount;\n }\n\n getScrollElementWidth(props = this.props) {\n const { galleryStructure } = props;\n return galleryStructure.width - this.props.options.layoutParams_structure_itemSpacing / 2;\n }\n\n isFirstItemFullyVisible() {\n return !this.props.options.behaviourParams_gallery_horizontal_loop && this.isScrollStart();\n }\n isLastItemFullyVisible() {\n return !this.props.options.behaviourParams_gallery_horizontal_loop && this.isScrollEnd();\n }\n\n isLastItem() {\n const activeIndex = this.state.activeIndex;\n return !this.props.options.behaviourParams_gallery_horizontal_loop && activeIndex >= this.props.totalItemsCount - 1;\n }\n\n //__________________________________Slide show loop functions_____________________________________________\n\n //__________________________________end of slide show loop functions__________________________\n shouldBlockNext({ scrollingUpTheGallery }) {\n return (scrollingUpTheGallery && this.isLastItem()) || (!scrollingUpTheGallery && this.isFirstItem());\n }\n\n shouldNotAllowScroll({ scrollingUpTheGallery }) {\n return (\n (scrollingUpTheGallery && this.isLastItemFullyVisible()) ||\n (!scrollingUpTheGallery && this.isFirstItemFullyVisible())\n );\n }\n\n async nextWithEffects(props) {\n const nextItem = await this.next(props);\n if (\n this.props.options.layoutParams_groups_groupSize === 1 &&\n this.props.isScrollLessGallery &&\n nextItem >= this.skipFromSlide\n ) {\n const skipToSlide = this.skipFromSlide - this.props.totalItemsCount;\n toggleScrollLessAnimation(() => this.onScrollToItemOrGroup(skipToSlide, false));\n }\n }\n\n async next({\n direction,\n isAutoTrigger,\n scrollDuration,\n isKeyboardNavigation = false,\n isContinuousScrolling = false,\n }) {\n const scrollingUpTheGallery =\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? direction <= -1\n : direction >= 1;\n if (this.shouldBlockNext({ scrollingUpTheGallery })) {\n this.clearAutoSlideshowInterval();\n return;\n }\n direction *=\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? -1\n : 1;\n const activeElement = document.activeElement;\n const galleryItemIsFocused = activeElement.className && activeElement.className.includes('gallery-item-container');\n const avoidIndividualNavigation =\n !isKeyboardNavigation || !(this.props.settings?.isAccessible && galleryItemIsFocused);\n let ignoreScrollPosition = false;\n\n if (\n this.props.options.behaviourParams_gallery_horizontal_slideAnimation !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideAnimation].SCROLL\n ) {\n scrollDuration = 0;\n ignoreScrollPosition = true;\n }\n this.removeArrowsIfNeeded();\n\n if (avoidIndividualNavigation && this.props.options.layoutParams_groups_groupSize > 1) {\n return this.nextGroup({\n direction,\n scrollDuration,\n isContinuousScrolling,\n scrollingUpTheGallery,\n }); //if its not in accessibility that requieres individual nav and we are in a horizontal(this file) collage(layout 0) - use group navigation\n } else {\n if (\n avoidIndividualNavigation &&\n GALLERY_CONSTS.isLayout('GRID')(this.props.options) &&\n this.props.options.layoutParams_structure_numberOfGridRows\n ) {\n direction *= this.props.options.layoutParams_structure_numberOfGridRows;\n }\n return this.nextItem({\n direction,\n isAutoTrigger,\n scrollDuration,\n avoidIndividualNavigation,\n ignoreScrollPosition,\n isContinuousScrolling,\n scrollingUpTheGallery,\n });\n }\n }\n\n getNextItemOrGroupToScrollTo(initiator, direction, ignoreScrollPosition, avoidIndividualNavigation, isAutoTrigger) {\n this.isSliding = true;\n let nextIndex;\n if (\n initiator === 'nextGroup' ||\n (initiator === 'nextItem' &&\n !ignoreScrollPosition &&\n avoidIndividualNavigation &&\n !(this.props.options.layoutParams_groups_groupSize > 1))\n ) {\n const key = initiator === 'nextGroup' ? 'groups' : 'galleryItems';\n nextIndex = this.getCenteredItemOrGroupIdxByScroll(key) + direction;\n } else if (initiator === 'nextItem') {\n if (ignoreScrollPosition || !isAutoTrigger) {\n nextIndex = this.state.activeIndex;\n } else {\n nextIndex = this.setCurrentItemByScroll();\n }\n nextIndex += direction;\n\n if (!this.props.options.behaviourParams_gallery_horizontal_loop) {\n nextIndex = Math.min(this.props.galleryStructure.items.length - 1, nextIndex);\n nextIndex = Math.max(0, nextIndex);\n }\n }\n this.isAutoScrolling = true;\n return nextIndex;\n }\n\n async nextItem({\n direction,\n isAutoTrigger,\n scrollDuration,\n avoidIndividualNavigation,\n ignoreScrollPosition,\n isContinuousScrolling,\n scrollingUpTheGallery,\n }) {\n if (this.isSliding) {\n return;\n }\n\n let nextItem = this.getNextItemOrGroupToScrollTo(\n 'nextItem',\n direction,\n ignoreScrollPosition,\n avoidIndividualNavigation,\n isAutoTrigger\n );\n\n try {\n const itemToScroll = ignoreScrollPosition ? 0 : nextItem;\n await this.scrollToItemOrGroup(\n this.props.actions.scrollToItem,\n itemToScroll,\n isContinuousScrolling,\n scrollDuration,\n scrollingUpTheGallery\n );\n\n if (this.props.options.layoutParams_groups_groupSize === 1 && !this.props.isScrollLessGallery) {\n if (nextItem >= this.skipFromSlide) {\n nextItem = utils.inRange(nextItem, this.props.totalItemsCount);\n await this.props.actions.scrollToItem(nextItem);\n }\n }\n\n this.onScrollToItemOrGroup(nextItem, isContinuousScrolling);\n\n if (ignoreScrollPosition) {\n this.props.getMoreItemsIfNeeded(this.props.galleryStructure.galleryItems[nextItem].offset.left);\n this.props.setGotFirstScrollIfNeeded();\n }\n return nextItem;\n } catch (e) {\n this.onThrowScrollError('Cannot proceed to the next Item', e);\n }\n }\n\n async nextGroup({ direction, scrollDuration, isContinuousScrolling = false, scrollingUpTheGallery }) {\n if (this.isSliding) {\n return;\n }\n\n const nextGroup = this.getNextItemOrGroupToScrollTo('nextGroup', direction);\n\n try {\n await this.scrollToItemOrGroup(\n this.props.actions.scrollToGroup,\n nextGroup,\n isContinuousScrolling,\n scrollDuration,\n scrollingUpTheGallery\n );\n const nextItem = this.getCenteredItemOrGroupIdxByScroll('galleryItems') + direction;\n this.onScrollToItemOrGroup(nextItem, isContinuousScrolling);\n } catch (e) {\n this.onThrowScrollError('Cannot proceed to the next Group', e);\n }\n }\n\n async scrollToItemOrGroup(func, indexToScroll, isContinuousScrolling, scrollDuration, scrollingUpTheGallery) {\n const shouldAllowScroll = !this.shouldNotAllowScroll({\n scrollingUpTheGallery,\n });\n const { scrollMarginCorrection, _scrollDuration } = this.getScrollParameters(scrollDuration);\n shouldAllowScroll &&\n (await func(indexToScroll, false, true, _scrollDuration, scrollMarginCorrection, isContinuousScrolling));\n }\n\n onThrowScrollError(massage, e) {\n console.error(massage, e);\n this.clearAutoSlideshowInterval();\n }\n\n onScrollToItemOrGroup(nextItem, isContinuousScrolling) {\n utils.setStateAndLog(\n this,\n 'Next Item',\n {\n activeIndex: nextItem,\n },\n () => {\n this.onCurrentItemChanged();\n this.isSliding = false;\n if (isContinuousScrolling) {\n this.startAutoSlideshowIfNeeded(this.props.options);\n }\n }\n );\n }\n\n getScrollParameters(scrollDuration) {\n return {\n scrollMarginCorrection: this.getStyles().margin || 0,\n _scrollDuration:\n scrollDuration ?? this.props.options.behaviourParams_gallery_horizontal_navigationDuration ?? 400,\n };\n }\n\n onCurrentItemChanged(props = this.props) {\n if (this.lastCurrentItem !== this.state.activeIndex) {\n this.lastCurrentItem = this.state.activeIndex;\n //this.props.actions.onCurrentItemChanged(this.state.currentIdx);\n const currentGalleryItem = this.props.galleryStructure.galleryItems[this.state.activeIndex];\n const item = this.props.items[this.state.activeIndex];\n if (item) {\n item.idx = this.state.activeIndex;\n item.resizedImageSrc = currentGalleryItem.createUrl(\n GALLERY_CONSTS.urlSizes.RESIZED,\n GALLERY_CONSTS.urlTypes.HIGH_RES\n );\n this.props.actions.eventsListener(GALLERY_CONSTS.events.CURRENT_ITEM_CHANGED, item);\n }\n this.navigationPanelCallbackOnIndexChange(this.state.activeIndex);\n }\n this.removeArrowsIfNeeded(props);\n }\n clearAutoSlideshowInterval() {\n clearInterval(this.autoSlideshowInterval);\n }\n\n canStartAutoSlideshow(options) {\n return (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].OFF &&\n !this.state.shouldBlockAutoSlideshow\n );\n }\n\n /**\n *\n * @param {import('pro-gallery-lib').Options} options\n */\n startAutoSlideshowIfNeeded(options) {\n this.clearAutoSlideshowInterval();\n if (this.canStartAutoSlideshow(options)) {\n if (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].CONTINUOUS &&\n options.behaviourParams_gallery_horizontal_autoSlide_speed > 0\n ) {\n this.autoScrollToNextItem();\n } else if (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].INTERVAL &&\n options.behaviourParams_gallery_horizontal_autoSlide_interval > 0\n ) {\n this.autoSlideshowInterval = setInterval(\n this.autoScrollToNextItem,\n options.behaviourParams_gallery_horizontal_autoSlide_interval * 1000\n );\n }\n }\n }\n\n autoScrollToNextItem = () => {\n if (!isEditMode() && (this.props.isInViewport || isPreviewMode())) {\n const { options } = this.props;\n const direction =\n options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? -1\n : 1;\n\n if (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].CONTINUOUS\n ) {\n this._next({\n direction,\n isAutoTrigger: true,\n isContinuousScrolling: true,\n });\n } else if (\n options.behaviourParams_gallery_horizontal_autoSlide_behaviour ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].INTERVAL\n ) {\n this._next({\n direction,\n isAutoTrigger: true,\n scrollDuration: 800,\n });\n }\n }\n };\n\n getFirstIdx(itemIdx) {\n const { galleryItems } = this.props.galleryStructure;\n const activeItemId = galleryItems[itemIdx].itemId;\n return galleryItems.find((item) => item.itemId === activeItemId).idx;\n }\n\n scrollToThumbnail(itemIdx, scrollDuration) {\n //not to confuse with this.props.actions.scrollToItem. this is used to replace it only for thumbnail items\n this.props.actions.eventsListener(GALLERY_CONSTS.events.THUMBNAIL_CLICKED, this.props);\n const activeIdx = this.state.activeIndex;\n const targetIdx = activeIdx + (this.getFirstIdx(itemIdx) - this.getFirstIdx(activeIdx));\n this.scrollToIndex({ itemIdx: targetIdx, scrollDuration });\n }\n\n scrollToIndex({ itemIdx, scrollDuration }) {\n //not to confuse with this.props.actions.scrollToItem. this is used to replace it only for thumbnail items\n this.props.setGotFirstScrollIfNeeded(); //load all the images in the thumbnails bar\n\n const isRTL =\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT;\n\n const direction = isRTL ? this.state.activeIndex - itemIdx : itemIdx - this.state.activeIndex;\n return this.next({\n direction,\n isAutoTrigger: false,\n scrollDuration,\n isKeyboardNavigation: false,\n });\n }\n\n handleSlideshowKeyPress(e) {\n e.stopPropagation();\n const relevantKeys = [32, 33, 34, 37, 38, 39, 40, 27];\n // key code -> 32=space, 37=left, 38=up, 39=right, 40=down, 27=esc\n // charCode -> , 33=page up, 34=page down\n const code = e.charCode || e.keyCode;\n\n if (relevantKeys.includes(code) === false) return true;\n e.preventDefault();\n const activeItemIdx = window.document.activeElement.getAttribute('data-idx');\n\n const shouldFocusOutOfViewComponent =\n activeItemIdx &&\n this.props.totalItemsCount - 1 === Number(activeItemIdx) &&\n Number(activeItemIdx) === this.state.activeIndex;\n\n if ((code === 40 && shouldFocusOutOfViewComponent) || code === 27) {\n const elementToFocus = {\n 27: this.props.galleryContainerRef,\n 40: this.props.outOfViewComponent,\n }[code];\n utils.focusGalleryElement(elementToFocus);\n } else {\n this._next({ direction: getDirection(code), isKeyboardNavigation: true });\n }\n return false;\n }\n\n getCenteredItemOrGroupIdxByScroll(key) {\n const itemsOrGroups = this.props.galleryStructure[key];\n let centeredItemOrGroupIdx;\n const scrollPositionAtTheMiddleOfTheGallery = this.scrollPositionAtTheMiddleOfTheGallery();\n\n if (scrollPositionAtTheMiddleOfTheGallery === 0) {\n centeredItemOrGroupIdx = 0;\n } else {\n for (let itemOrGroup, i = 0; (itemOrGroup = itemsOrGroups[i]); i++) {\n const itemOrGroupLeft = key === 'galleryItems' ? itemOrGroup.offset.left : itemOrGroup.left;\n if (itemOrGroupLeft > scrollPositionAtTheMiddleOfTheGallery) {\n centeredItemOrGroupIdx = i - 1;\n break;\n }\n }\n }\n if (!(centeredItemOrGroupIdx >= 0)) {\n centeredItemOrGroupIdx = this.isFirstItem() ? 0 : itemsOrGroups.length - 1;\n }\n return centeredItemOrGroupIdx;\n }\n\n setCurrentItemByScroll() {\n if (utils.isVerbose()) {\n console.log('Setting current Idx by scroll', this.isAutoScrolling);\n }\n\n if (this.isAutoScrolling) {\n //avoid this function if the scroll was originated by us (arrows or navigationPanels)\n this.isAutoScrolling = false;\n return;\n }\n\n const isScrolling = (this.scrollElement && this.scrollElement.getAttribute('data-scrolling')) === 'true';\n\n if (isScrolling) {\n this.clearAutoSlideshowInterval();\n\n //while the scroll is animating, prevent the reaction to this event\n return;\n }\n this.startAutoSlideshowIfNeeded(this.props.options);\n\n const activeIndex = this.getCenteredItemOrGroupIdxByScroll('galleryItems');\n\n if (!utils.isUndefined(activeIndex)) {\n utils.setStateAndLog(\n this,\n 'Set Current Item',\n {\n activeIndex,\n },\n () => {\n this.onCurrentItemChanged();\n }\n );\n }\n return activeIndex;\n }\n\n createDebugMsg() {\n return <GalleryDebugMessage {...this.props.debug} />;\n }\n\n createNavArrows() {\n const { container, options, customComponents, id } = this.props;\n const { hideLeftArrow, hideRightArrow } = this.state;\n return (\n <NavigationArrows\n container={container}\n options={options}\n customNavArrowsRenderer={customComponents.customNavArrowsRenderer}\n hideLeftArrow={hideLeftArrow}\n hideRightArrow={hideRightArrow}\n next={this._next}\n id={id}\n />\n );\n }\n\n getBufferedItems(galleryGroups, container) {\n const { state, props } = this;\n const { options, virtualizationSettings, getVisibleItems, isPrerenderMode } = props;\n const { activeIndex } = state;\n const groups = getVisibleItems(galleryGroups, container, isPrerenderMode);\n const galleryWidth = this.props.galleryContainerRef?.clientWidth || container.galleryWidth || 0;\n\n return getItemsInViewportOrMarginByActiveGroup({\n groups,\n activeIndex,\n galleryWidth,\n options,\n virtualizationSettings,\n });\n }\n createGalleryConfig() {\n return {\n scrollingElement: this.props.scrollingElement,\n scroll: this.props.scroll,\n container: this.props.container,\n options: this.props.options,\n settings: this.props.settings,\n activeIndex: this.state.activeIndex,\n customComponents: this.props.customComponents,\n galleryId: this.props.id,\n gotFirstScrollEvent: this.props.gotFirstScrollEvent,\n playingVideoIdx: this.props.playingVideoIdx,\n playing3DIdx: this.props.playing3DIdx,\n noFollowForSEO: this.props.noFollowForSEO,\n isPrerenderMode: this.props.isPrerenderMode,\n firstUserInteractionExecuted: this.props.firstUserInteractionExecuted,\n enableExperimentalFeatures: this.props.enableExperimentalFeatures,\n actions: {\n eventsListener: this.props.actions.eventsListener,\n },\n totalItemsCount: this.props.totalItemsCount,\n totalWidth: this.props.galleryStructure.width,\n };\n }\n createLayout() {\n const { container, galleryStructure } = this.props;\n const galleryConfig = this.createGalleryConfig();\n const renderGroups = (column) => {\n const layoutGroupView = !!column.galleryGroups.length && this.getBufferedItems(column.galleryGroups, container);\n if (layoutGroupView) {\n return layoutGroupView.map(({ group, shouldRender }) => {\n return group.rendered\n ? React.createElement(GroupView, {\n disableItemFocus: this.props.disableItemFocus,\n activeIndex: this.state.activeIndex,\n slideAnimation: this.props.options.behaviourParams_gallery_horizontal_slideAnimation,\n allowLoop:\n this.props.options.behaviourParams_gallery_horizontal_loop &&\n this.props.galleryStructure.width > this.props.container.width,\n ...group.renderProps(galleryConfig),\n ariaHidden: group.idx > this.skipFromSlide,\n shouldRenderEmpty: !shouldRender,\n container: this.props.container,\n key: group.idx,\n })\n : false;\n });\n }\n };\n\n return galleryStructure.columns.map((column, c) => {\n const columnStyle = {\n width: this.props.isPrerenderMode ? '100%' : column.width,\n height: this.getDimensions().height,\n overflowY: this.props.isPrerenderMode ? 'visible' : 'hidden',\n };\n return (\n <div\n data-hook=\"gallery-column\"\n id={`gallery-horizontal-scroll-${this.props.id}`}\n className={`gallery-horizontal-scroll gallery-column hide-scrollbars ${\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? ' rtl '\n : ' ltr '\n } ${this.props.options.behaviourParams_gallery_horizontal_enableScrollSnap ? ' scroll-snap ' : ''} `}\n key={'column' + c}\n style={columnStyle}\n >\n <div className=\"gallery-horizontal-scroll-inner\">{renderGroups(column)}</div>\n </div>\n );\n });\n }\n\n getDimensions() {\n const height = this.props.container.galleryHeight;\n return this.props.isPrerenderMode\n ? {\n width: '100%',\n height,\n }\n : {\n height,\n width: this.props.container.galleryWidth,\n };\n }\n\n createGallery() {\n // When arrows are set outside of the gallery, gallery is resized (in dimensionsHelper -> getGalleryWidth) and needs to be positioned accordingly\n const galleryStyleForExternalArrows =\n this.props.options.layoutParams_structure_scrollDirection ===\n GALLERY_CONSTS[optionsMap.layoutParams.structure.scrollDirection].HORIZONTAL &&\n this.props.options.layoutParams_navigationArrows_position ===\n GALLERY_CONSTS[optionsMap.layoutParams.navigationArrows.position].OUTSIDE_GALLERY\n ? {\n overflow: 'visible',\n left:\n this.props.options.layoutParams_navigationArrows_size +\n 40 +\n this.props.options.layoutParams_structure_itemSpacing / 2,\n }\n : {};\n const mouseCursorContainerStyle = {\n display: 'flex',\n justifyContent: 'space-between',\n };\n const galleryDimensions = this.getDimensions();\n const galleryStyle = {\n ...galleryDimensions,\n ...galleryStyleForExternalArrows,\n ...mouseCursorContainerStyle,\n };\n\n return (\n <div\n id={this.props.galleryContainerId}\n className={\n 'pro-gallery inline-styles one-row hide-scrollbars ' +\n (this.props.options.behaviourParams_gallery_horizontal_blockScroll ? '' : ' slider ') +\n (this.props.settings?.isAccessible ? ' accessible ' : '') +\n (this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? ' rtl '\n : ' ltr ')\n }\n style={galleryStyle}\n >\n {this.createDebugMsg()}\n {this.createLayout()}\n {this.createAutoSlideShowPlayButton()}\n {this.createSlideShowNumbers()}\n {shouldRenderNavArrows({\n options: this.props.options,\n container: this.props.container,\n isPrerenderMode: this.props.isPrerenderMode,\n galleryStructure: this.props.galleryStructure,\n customNavArrowsRenderer: this.props.customComponents.customNavArrowsRenderer,\n }) && this.createNavArrows()}\n </div>\n );\n }\n\n onAutoSlideShowButtonClick() {\n this.setState({ pauseAutoSlideshowClicked: !this.state.pauseAutoSlideshowClicked }, () => {\n this.updateAutoSlideShowState(this.props);\n });\n }\n\n isFullWidthGallery() {\n return this.props.container.galleryWidth >= utils.getWindowWidth() - 10;\n }\n\n onAutoSlideshowAutoPlayKeyPress(e) {\n switch (e.keyCode || e.charCode) {\n case 32: //space\n case 13: //enter\n e.preventDefault();\n e.stopPropagation();\n this.onAutoSlideShowButtonClick();\n return false;\n default:\n return true;\n }\n }\n\n calcSlideshowCounterWidth() {\n const { totalItemsCount } = this.props;\n if (totalItemsCount < 10) {\n // x/x\n return 26;\n } else if (totalItemsCount < 100) {\n // xx/xx\n return 43;\n } else if (totalItemsCount < 1000) {\n // xxx/xxx\n return 60;\n } else {\n // xxxx/xxxx or more\n return 76;\n }\n }\n\n createAutoSlideShowPlayButton() {\n if (!this.shouldCreateSlideShowPlayButton) {\n return false;\n }\n\n const slideshowInfoAlignment = this.props.options.behaviourParams_gallery_horizontal_slideshowInfo_buttonsAlignment;\n const calculatedItemSpacing =\n this.props.options.layoutParams_structure_itemSpacing / 2 + (this.isFullWidthGallery() ? 50 : 0);\n\n const side =\n slideshowInfoAlignment ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideshowInfo.buttonsAlignment].RIGHT\n ? { left: `${calculatedItemSpacing / 2}px` }\n : {\n right: `${\n calculatedItemSpacing / 2 +\n (this.props.options.behaviourParams_gallery_horizontal_slideshowInfo_enableCounter\n ? this.calcSlideshowCounterWidth()\n : 0)\n }px`,\n };\n return (\n <button\n className={'auto-slideshow-button'}\n onClick={() => {\n this.onAutoSlideShowButtonClick();\n }}\n onKeyDown={this.onAutoSlideshowAutoPlayKeyPress}\n data-hook=\"auto-slideshow-button\"\n title={'slideshow auto play'}\n aria-pressed={this.state.pauseAutoSlideshowClicked}\n tabIndex={0}\n style={{\n top: `calc(100% - ${this.props.options.layoutParams_info_height}px + 3px)`,\n ...side,\n }}\n >\n {this.state.pauseAutoSlideshowClicked ? (\n <PlayIcon width=\"10px\" height=\"100%\" />\n ) : (\n <PauseIcon width=\"10px\" height=\"100%\" />\n )}\n </button>\n );\n }\n\n createSlideShowNumbers() {\n if (!this.props.options.behaviourParams_gallery_horizontal_slideshowInfo_enableCounter) {\n return false;\n }\n const { totalItemsCount } = this.props;\n const slideshowInfoAlignment = this.props.options.behaviourParams_gallery_horizontal_slideshowInfo_buttonsAlignment;\n\n const calculatedItemSpacing =\n this.props.options.layoutParams_structure_itemSpacing / 2 + (this.isFullWidthGallery() ? 50 : 0);\n\n const leftMargin = this.shouldCreateSlideShowPlayButton\n ? calculatedItemSpacing / 2 + 25\n : calculatedItemSpacing / 2;\n\n const side =\n slideshowInfoAlignment ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.slideshowInfo.buttonsAlignment].RIGHT\n ? { left: `${leftMargin}px` }\n : { right: `${calculatedItemSpacing / 2}px` };\n\n return (\n <div\n className={'auto-slideshow-counter'}\n data-hook=\"auto-slideshow-counter\"\n style={{\n top: `calc(100% - ${this.props.options.layoutParams_info_height}px + 3px)`,\n ...side,\n }}\n >\n <div>{(this.state.activeIndex % totalItemsCount) + 1 + '/' + totalItemsCount}</div>\n </div>\n );\n }\n\n getCustomNavigationPanel = () => {\n if (typeof this.props.customComponents?.EXPERIMENTAL_customNavigationPanelRenderer === 'function') {\n return this.props.customComponents.EXPERIMENTAL_customNavigationPanelRenderer;\n } else {\n return false;\n }\n };\n createOrGetCustomNavigationPanelAPI = () => {\n const isRTL =\n this.props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT;\n if (!this.navigationPanelAPI) {\n this.navigationPanelAPI = {\n onGalleryNavigationStart: (handler) => {\n this.props.actions.eventsListener(GALLERY_CONSTS.events.GALLERY_NAVIGATION_START, handler);\n },\n next: () => {\n this.next({\n scrollDuration: 400,\n isKeyboardNavigation: false,\n isAutoTrigger: false,\n avoidIndividualNavigation: false,\n isContinuousScrolling: false,\n direction: isRTL ? -1 : 1,\n });\n },\n previous: () => {\n this.next({\n scrollDuration: 400,\n isKeyboardNavigation: false,\n isAutoTrigger: false,\n avoidIndividualNavigation: false,\n isContinuousScrolling: false,\n direction: isRTL ? 1 : -1,\n });\n },\n navigateNextEnabled: () => {\n return isRTL ? !this.state.hideLeftArrow : !this.state.hideRightArrow;\n },\n navigatePreviousEnabled: () => {\n return isRTL ? !this.state.hideRightArrow : !this.state.hideLeftArrow;\n },\n currentIndex: () => {\n return this.state.activeIndex;\n },\n triggerItemClick: (e, { itemIndex = this.state.activeIndex } = {}) => {\n const galleryConfig = this.createGalleryConfig();\n const item = this.props.galleryStructure.galleryItems[itemIndex % this.props.totalItemsCount];\n const props = item?.renderProps({\n ...galleryConfig,\n visible: true,\n });\n\n this.props.actions.eventsListener(GALLERY_CONSTS.events.ITEM_ACTION_TRIGGERED, props, e);\n },\n navigateToIndex: (itemIdx, animationDuration = 400) => {\n this.scrollToIndex({ itemIdx, scrollDuration: animationDuration });\n },\n };\n }\n this.props.actions.eventsListener(GALLERY_CONSTS.events.NAVIGATION_API_READY, this.navigationPanelAPI);\n return this.navigationPanelAPI;\n };\n\n getNavigationPanelArray() {\n if (!this.props.options.layoutParams_thumbnails_enable) {\n return [false, false];\n }\n\n const customNavigationPanelRenderer = this.getCustomNavigationPanel();\n\n let navigationPanel;\n if (customNavigationPanelRenderer) {\n const { galleryHeight, galleryWidth, height, width } = this.props.container;\n const customNavigationPanelInlineStyles = getCustomNavigationPanelInlineStyles({\n galleryHeight,\n galleryWidth,\n height,\n width,\n galleryThumbnailsAlignment: this.props.options.layoutParams_thumbnails_alignment,\n navigationPanelPosition: this.props.options.layoutParams_thumbnails_position,\n });\n navigationPanel = (domOrder) => (\n <div className=\"custom-navigation-panel\" style={customNavigationPanelInlineStyles}>\n {customNavigationPanelRenderer({\n ...this.props,\n domOrder,\n activeIndex: this.state.activeIndex,\n navigationToIdxCB: this.scrollToThumbnail,\n navigationPanelAPI: this.createOrGetCustomNavigationPanelAPI(),\n })}\n </div>\n );\n } else {\n navigationPanel = (domOrder) => (\n <NavigationPanel\n {...this.props}\n domOrder={domOrder}\n activeIndex={this.state.activeIndex}\n navigationToIdxCB={this.scrollToThumbnail}\n />\n );\n }\n\n const navigationPanels = [];\n if (\n this.props.options.layoutParams_thumbnails_position ===\n GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.position].ON_GALLERY\n ) {\n navigationPanels[0] = false;\n navigationPanels[1] = navigationPanel('after');\n return navigationPanels;\n } else {\n //OUTSIDE_GALLERY\n if (this.props.isPrerenderMode) {\n navigationPanels[0] = navigationPanel('before');\n navigationPanels[1] = navigationPanel('after');\n return navigationPanels;\n }\n switch (this.props.options.layoutParams_thumbnails_alignment) {\n case GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.alignment].TOP:\n case GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.alignment].LEFT:\n navigationPanels[0] = navigationPanel('before');\n navigationPanels[1] = false;\n break;\n case GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.alignment].RIGHT:\n case GALLERY_CONSTS[optionsMap.layoutParams.thumbnails.alignment].BOTTOM:\n navigationPanels[0] = false;\n navigationPanels[1] = navigationPanel('after');\n break;\n }\n return navigationPanels;\n }\n }\n\n getClassNames() {\n let classNames = 'pro-gallery-parent-container';\n if (GALLERY_CONSTS.isLayout('SLIDER')(this.props.options)) {\n classNames += ' gallery-slider';\n } else if (this.props.options.layoutParams_thumbnails_enable) {\n classNames += ' gallery-thumbnails';\n } else if (GALLERY_CONSTS.isLayout('COLUMN')(this.props.options)) {\n classNames += ' gallery-columns';\n }\n\n return classNames;\n }\n getStyles() {\n return {\n margin:\n -1 *\n (this.props.options.layoutParams_structure_itemSpacing / 2 -\n this.props.options.layoutParams_structure_gallerySpacing),\n width: this.props.container.width,\n height: this.props.container.height,\n };\n }\n\n getScrollPosition(props = this.props) {\n return this.scrollElement ? this.scrollPosition(props) : 0;\n }\n\n scrollPositionAtTheMiddleOfTheGallery() {\n return this.getScrollPosition() + this.props.container.galleryWidth / 2;\n }\n\n scrollPositionAtTheAndOfTheGallery(props = this.props) {\n return this.getScrollPosition(props) + props.container.galleryWidth;\n }\n\n scrollPosition(props = this.props) {\n return (\n (props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT\n ? -1\n : 1) * this.scrollElement.scrollLeft\n );\n }\n\n //-----------------------------------------| REACT |--------------------------------------------//\n\n updateAutoSlideShowState(props = this.props) {\n const { isGalleryInHover, options, settings } = props;\n const { pauseAutoSlideshowClicked, shouldBlockAutoSlideshow, isInView, isInFocus } = this.state;\n const shouldPauseDueToHover = isGalleryInHover && options.behaviourParams_gallery_horizontal_autoSlide_pauseOnHover;\n const shouldPauseDueToFocus = isInFocus && settings?.isAccessible;\n let shouldBlock = !isInView || pauseAutoSlideshowClicked || shouldPauseDueToFocus || shouldPauseDueToHover;\n if (shouldBlockAutoSlideshow !== shouldBlock) {\n this.setState({ shouldBlockAutoSlideshow: shouldBlock }, () => {\n this.startAutoSlideshowIfNeeded(options);\n });\n }\n }\n\n onFocus() {\n this.setState({ isInFocus: true }, () => {\n this.updateAutoSlideShowState(this.props);\n });\n }\n\n onBlur() {\n this.setState({ isInFocus: false }, () => {\n this.updateAutoSlideShowState(this.props);\n });\n }\n\n UNSAFE_componentWillReceiveProps(props) {\n const isInView = props.isInViewport && (props.isInDisplay ?? true);\n const oldIsInView = this.props.isInViewport && (this.props.isInDisplay ?? true);\n if (isInView !== oldIsInView) {\n this.setState({ isInView }, () => {\n this.updateAutoSlideShowState(props);\n });\n } else if (this.props.isGalleryInHover !== props.isGalleryInHover) {\n this.updateAutoSlideShowState(props);\n } else if (this.props.container.scrollBase != props.container.scrollBase) {\n this.forceUpdate(() => {\n this.startAutoSlideshowIfNeeded(props.options);\n });\n }\n if (this.props.activeIndex !== props.activeIndex) {\n utils.setStateAndLog(\n this,\n 'Next Item',\n {\n activeIndex: props.activeIndex,\n },\n () => {\n this.onCurrentItemChanged(props);\n }\n );\n }\n if (\n this.props.totalItemsCount !== props.totalItemsCount ||\n this.props.container.galleryHeight !== props.container.galleryHeight ||\n this.props.container.galleryWidth !== props.container.galleryWidth ||\n this.state.activeIndex !== props.activeIndex\n ) {\n this.removeArrowsIfNeeded(props);\n }\n if (isEditMode() || isPreviewMode()) {\n if (\n //check that the change is related to the slideshow settings\n ((this.props.options.behaviourParams_gallery_horizontal_autoSlide_behaviour !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].OFF) !==\n props.options.behaviourParams_gallery_horizontal_autoSlide_behaviour) !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].OFF ||\n this.props.options.behaviourParams_gallery_horizontal_autoSlide_interval !==\n props.options.behaviourParams_gallery_horizontal_autoSlide_interval\n ) {\n this.startAutoSlideshowIfNeeded(props.options);\n }\n }\n\n this.shouldCreateSlideShowPlayButton =\n props.options.behaviourParams_gallery_horizontal_autoSlide_behaviour !==\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.horizontal.autoSlide.behaviour].OFF &&\n props.options.behaviourParams_gallery_horizontal_slideshowInfo_enablePlayButton;\n }\n\n removeArrowsIfNeeded(props = this.props) {\n const isRTL =\n props.options.behaviourParams_gallery_layoutDirection ===\n GALLERY_CONSTS[optionsMap.behaviourParams.gallery.layoutDirection].RIGHT_TO_LEFT;\n const { hideLeftArrow, hideRightArrow } = this.state;\n\n const isScrollStart = this.isScrollStart(props);\n const isFirstItem = this.isFirstItem();\n const isScrollEnd = this.isScrollEnd(props);\n const isLastItem = this.isLastItem();\n\n const atStart = isScrollStart || isFirstItem;\n const atEnd = isScrollEnd || isLastItem;\n\n const nextHideLeft = (!isRTL && atStart) || (isRTL && atEnd);\n const nextHideRight = (isRTL && atStart) || (!isRTL && atEnd);\n const shouldUpdateArrowsState = !!nextHideLeft !== !!hideLeftArrow || !!nextHideRight !== !!hideRightArrow;\n\n if (shouldUpdateArrowsState) {\n this.setState({\n hideLeftArrow: !!nextHideLeft,\n hideRightArrow: !!nextHideRight,\n });\n }\n }\n\n componentDidMount() {\n this.scrollElement = window.document.querySelector(\n `#pro-gallery-${this.props.id} #gallery-horizontal-scroll-${this.props.id}`\n );\n if (this.scrollElement) {\n this.scrollElement.addEventListener('scroll', this._setCurrentItemByScroll);\n }\n if (this.state.activeIndex > 0) {\n this.props.actions.scrollToItem(this.state.activeIndex);\n this.onCurrentItemChanged();\n } else {\n this.setCurrentItemByScroll();\n }\n this.startAutoSlideshowIfNeeded(this.props.options);\n this.createOrGetCustomNavigationPanelAPI();\n }\n\n componentWillUnmount() {\n if (this.scrollElement) {\n this.scrollElement.removeEventListener('scroll', this._setCurrentItemByScroll);\n }\n }\n\n //-----------------------------------------| RENDER |--------------------------------------------//\n\n render() {\n if (utils.isVerbose()) {\n console.count('galleryView render');\n console.count('Rendering Gallery count');\n console.time('Rendering Gallery took ');\n }\n\n const gallery = this.createGallery();\n const navigationPanel = this.getNavigationPanelArray();\n\n if (utils.isVerbose()) {\n console.timeEnd('Rendering Gallery took ');\n }\n\n return (\n <div\n className={this.getClassNames()}\n style={this.getStyles()}\n onKeyDown={this.handleSlideshowKeyPress}\n {...utils.getAriaAttributes({\n proGalleryRole: this.props.proGalleryRole,\n proGalleryRegionLabel: this.props.proGalleryRegionLabel,\n })}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n >\n {navigationPanel[0]}\n {gallery}\n {navigationPanel[1]}\n </div>\n );\n }\n}\n\nexport default SlideshowView;\n"]}
|
|
@@ -456,7 +456,7 @@ class SlideshowView extends React.Component {
|
|
|
456
456
|
}
|
|
457
457
|
}
|
|
458
458
|
if (!(centeredItemOrGroupIdx >= 0)) {
|
|
459
|
-
centeredItemOrGroupIdx = itemsOrGroups.length - 1;
|
|
459
|
+
centeredItemOrGroupIdx = this.isFirstItem() ? 0 : itemsOrGroups.length - 1;
|
|
460
460
|
}
|
|
461
461
|
return centeredItemOrGroupIdx;
|
|
462
462
|
}
|