@gravity-ui/page-constructor 7.0.0-alpha.5 → 7.0.0-alpha.6

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.
@@ -38,7 +38,9 @@ const SliderBlock = ({ animated, title, description, type, anchorId, arrows = tr
38
38
  });
39
39
  return ((0, jsx_runtime_1.jsxs)("div", { className: b({
40
40
  'one-slide': childrenCount === 1,
41
- 'only-arrows': !title?.text && !description && arrows,
41
+ 'only-arrows': (!title || (typeof title !== 'string' && !title?.text)) &&
42
+ !description &&
43
+ arrows,
42
44
  'without-dots': !dots || isLocked,
43
45
  type,
44
46
  }, blockClassName), children: [anchorId && (0, jsx_runtime_1.jsx)(Anchor_1.default, { id: anchorId }), (0, jsx_runtime_1.jsx)(Title_1.default, { title: title, subtitle: description, className: b('header', { 'no-description': !description }) }), (0, jsx_runtime_1.jsxs)(AnimateBlock_1.default, { className: b('animate-slides'), animate: animated, children: [(0, jsx_runtime_1.jsx)(react_1.Swiper, { className: b('slider', className), onSwiper: onSwiper, speed: 1000, autoplay: autoplay, autoHeight: adaptive, initialSlide: initialSlide, noSwiping: false, breakpoints: breakpoints, onSlideChange: onSlideChange, onSlideChangeTransitionStart: onSlideChangeTransitionStart, onSlideChangeTransitionEnd: onSlideChangeTransitionEnd, onActiveIndexChange: onActiveIndexChange, onBreakpoint: onBreakpoint, onLock: () => setIsLocked(true), onUnlock: () => setIsLocked(false), onImagesReady: onImagesReady, watchSlidesVisibility: true, watchOverflow: true, a11y: {
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sourceRoot":"../../../../src","sources":["blocks/Slider/Slider.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport Swiper, {A11y, Autoplay, Pagination} from 'swiper';\nimport {Swiper as SwiperReact, SwiperSlide} from 'swiper/react';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport Title from '../../components/Title/Title';\nimport {ClassNameProps, Refable, SliderProps as SliderParams, SliderType} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {useSlider} from './useSlider';\nimport {useSliderPagination} from './useSliderPagination';\n\nimport './Slider.scss';\nimport 'swiper/swiper-bundle.css';\n\nexport type {Swiper, SwiperOptions} from 'swiper';\n\nconst b = block('SliderBlock');\n\nexport interface SliderProps\n extends Omit<SliderParams, 'children'>,\n Partial<\n Pick<\n SwiperReact,\n | 'onSlideChange'\n | 'onSlideChangeTransitionStart'\n | 'onSlideChangeTransitionEnd'\n | 'onActiveIndexChange'\n | 'onBreakpoint'\n >\n >,\n Refable<HTMLDivElement>,\n ClassNameProps {\n type?: string;\n anchorId?: string;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialSlide?: number;\n}\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nSwiper.use([Autoplay, A11y, Pagination]);\n\nexport const SliderBlock = ({\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplayMs,\n dots = true,\n initialSlide = 0,\n className,\n dotsClassName,\n disclaimer,\n children,\n blockClassName,\n arrowSize,\n slidesToShow,\n onSlideChange,\n onSlideChangeTransitionStart,\n onSlideChangeTransitionEnd,\n onActiveIndexChange,\n onBreakpoint,\n}: React.PropsWithChildren<SliderProps>) => {\n const {\n autoplay,\n isLocked,\n childrenCount,\n breakpoints,\n onSwiper,\n onImagesReady,\n onPrev,\n onNext,\n setIsLocked,\n } = useSlider({\n slidesToShow,\n children,\n type,\n autoplayMs,\n });\n\n const isA11yControlHidden = Boolean(autoplay);\n const controlTabIndex = isA11yControlHidden ? -1 : 0;\n\n const paginationProps = useSliderPagination({\n enabled: dots,\n isA11yControlHidden,\n controlTabIndex,\n bulletClass: b('dot', dotsClassName),\n bulletActiveClass: b('dot_active'),\n paginationLabel: i18n('pagination-label'),\n });\n\n return (\n <div\n className={b(\n {\n 'one-slide': childrenCount === 1,\n 'only-arrows': !title?.text && !description && arrows,\n 'without-dots': !dots || isLocked,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n <SwiperReact\n className={b('slider', className)}\n onSwiper={onSwiper}\n speed={1000}\n autoplay={autoplay}\n autoHeight={adaptive}\n initialSlide={initialSlide}\n noSwiping={false}\n breakpoints={breakpoints}\n onSlideChange={onSlideChange}\n onSlideChangeTransitionStart={onSlideChangeTransitionStart}\n onSlideChangeTransitionEnd={onSlideChangeTransitionEnd}\n onActiveIndexChange={onActiveIndexChange}\n onBreakpoint={onBreakpoint}\n onLock={() => setIsLocked(true)}\n onUnlock={() => setIsLocked(false)}\n onImagesReady={onImagesReady}\n watchSlidesVisibility\n watchOverflow\n a11y={{\n slideLabelMessage: '',\n paginationBulletMessage: i18n('dot-label', {index: '{{index}}'}),\n }}\n {...paginationProps}\n >\n {React.Children.map(children, (elem, index) => (\n <SwiperSlide className={b('slide')} key={index}>\n {({isVisible}) => (\n <div\n className={b('slide-item')}\n aria-hidden={!isA11yControlHidden && !isVisible}\n >\n {elem}\n </div>\n )}\n </SwiperSlide>\n ))}\n </SwiperReact>\n {arrows && !isLocked && (\n <React.Fragment>\n <div aria-hidden={isA11yControlHidden}>\n <Arrow\n className={b('arrow', {prev: true})}\n type=\"left\"\n transparent={type === SliderType.HeaderCard}\n onClick={onPrev}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n <Arrow\n className={b('arrow', {next: true})}\n type=\"right\"\n transparent={type === SliderType.HeaderCard}\n onClick={onNext}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n </div>\n </React.Fragment>\n )}\n <div className={b('footer')}>\n {disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer?.size || 'm'})}>\n {disclaimer?.text}\n </div>\n ) : null}\n </div>\n </AnimateBlock>\n </div>\n );\n};\n\nexport default SliderBlock;\n"]}
1
+ {"version":3,"file":"Slider.js","sourceRoot":"../../../../src","sources":["blocks/Slider/Slider.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport Swiper, {A11y, Autoplay, Pagination} from 'swiper';\nimport {Swiper as SwiperReact, SwiperSlide} from 'swiper/react';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport Title from '../../components/Title/Title';\nimport {ClassNameProps, Refable, SliderProps as SliderParams, SliderType} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {useSlider} from './useSlider';\nimport {useSliderPagination} from './useSliderPagination';\n\nimport './Slider.scss';\nimport 'swiper/swiper-bundle.css';\n\nexport type {Swiper, SwiperOptions} from 'swiper';\n\nconst b = block('SliderBlock');\n\nexport interface SliderProps\n extends Omit<SliderParams, 'children'>,\n Partial<\n Pick<\n SwiperReact,\n | 'onSlideChange'\n | 'onSlideChangeTransitionStart'\n | 'onSlideChangeTransitionEnd'\n | 'onActiveIndexChange'\n | 'onBreakpoint'\n >\n >,\n Refable<HTMLDivElement>,\n ClassNameProps {\n type?: string;\n anchorId?: string;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialSlide?: number;\n}\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nSwiper.use([Autoplay, A11y, Pagination]);\n\nexport const SliderBlock = ({\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplayMs,\n dots = true,\n initialSlide = 0,\n className,\n dotsClassName,\n disclaimer,\n children,\n blockClassName,\n arrowSize,\n slidesToShow,\n onSlideChange,\n onSlideChangeTransitionStart,\n onSlideChangeTransitionEnd,\n onActiveIndexChange,\n onBreakpoint,\n}: React.PropsWithChildren<SliderProps>) => {\n const {\n autoplay,\n isLocked,\n childrenCount,\n breakpoints,\n onSwiper,\n onImagesReady,\n onPrev,\n onNext,\n setIsLocked,\n } = useSlider({\n slidesToShow,\n children,\n type,\n autoplayMs,\n });\n\n const isA11yControlHidden = Boolean(autoplay);\n const controlTabIndex = isA11yControlHidden ? -1 : 0;\n\n const paginationProps = useSliderPagination({\n enabled: dots,\n isA11yControlHidden,\n controlTabIndex,\n bulletClass: b('dot', dotsClassName),\n bulletActiveClass: b('dot_active'),\n paginationLabel: i18n('pagination-label'),\n });\n\n return (\n <div\n className={b(\n {\n 'one-slide': childrenCount === 1,\n 'only-arrows':\n (!title || (typeof title !== 'string' && !title?.text)) &&\n !description &&\n arrows,\n 'without-dots': !dots || isLocked,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n <SwiperReact\n className={b('slider', className)}\n onSwiper={onSwiper}\n speed={1000}\n autoplay={autoplay}\n autoHeight={adaptive}\n initialSlide={initialSlide}\n noSwiping={false}\n breakpoints={breakpoints}\n onSlideChange={onSlideChange}\n onSlideChangeTransitionStart={onSlideChangeTransitionStart}\n onSlideChangeTransitionEnd={onSlideChangeTransitionEnd}\n onActiveIndexChange={onActiveIndexChange}\n onBreakpoint={onBreakpoint}\n onLock={() => setIsLocked(true)}\n onUnlock={() => setIsLocked(false)}\n onImagesReady={onImagesReady}\n watchSlidesVisibility\n watchOverflow\n a11y={{\n slideLabelMessage: '',\n paginationBulletMessage: i18n('dot-label', {index: '{{index}}'}),\n }}\n {...paginationProps}\n >\n {React.Children.map(children, (elem, index) => (\n <SwiperSlide className={b('slide')} key={index}>\n {({isVisible}) => (\n <div\n className={b('slide-item')}\n aria-hidden={!isA11yControlHidden && !isVisible}\n >\n {elem}\n </div>\n )}\n </SwiperSlide>\n ))}\n </SwiperReact>\n {arrows && !isLocked && (\n <React.Fragment>\n <div aria-hidden={isA11yControlHidden}>\n <Arrow\n className={b('arrow', {prev: true})}\n type=\"left\"\n transparent={type === SliderType.HeaderCard}\n onClick={onPrev}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n <Arrow\n className={b('arrow', {next: true})}\n type=\"right\"\n transparent={type === SliderType.HeaderCard}\n onClick={onNext}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n </div>\n </React.Fragment>\n )}\n <div className={b('footer')}>\n {disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer?.size || 'm'})}>\n {disclaimer?.text}\n </div>\n ) : null}\n </div>\n </AnimateBlock>\n </div>\n );\n};\n\nexport default SliderBlock;\n"]}
@@ -252,7 +252,9 @@ const SliderOldBlock = (props) => {
252
252
  return ((0, jsx_runtime_1.jsx)(StylesContext_1.StylesContext.Provider, { value: { ...childStyles, setStyles: setChildStyles }, children: (0, jsx_runtime_1.jsxs)("div", { className: b({
253
253
  'align-left': childrenCount < slidesCountByBreakpoint,
254
254
  'one-slide': childrenCount === 1,
255
- 'only-arrows': !title?.text && !description && arrows,
255
+ 'only-arrows': (!title || (typeof title !== 'string' && !title?.text)) &&
256
+ !description &&
257
+ arrows,
256
258
  mobile: isMobile,
257
259
  type,
258
260
  }, blockClassName), children: [anchorId && (0, jsx_runtime_1.jsx)(Anchor_1.default, { id: anchorId }), (0, jsx_runtime_1.jsx)(Title_1.default, { title: title, subtitle: description, className: b('header', { 'no-description': !description }) }), (0, jsx_runtime_1.jsx)(AnimateBlock_1.default, { className: b('animate-slides'), animate: animated, children: renderSlider() })] }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"SliderOld.js","sourceRoot":"../../../../src","sources":["blocks/SliderOld/SliderOld.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {useUniqId} from '@gravity-ui/uikit';\nimport debounce from 'lodash/debounce';\nimport get from 'lodash/get';\nimport noop from 'lodash/noop';\nimport SlickSlider, {Settings} from 'react-slick';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport OutsideClick from '../../components/OutsideClick/OutsideClick';\nimport Title from '../../components/Title/Title';\nimport {BREAKPOINTS} from '../../constants';\nimport {MobileContext} from '../../context/mobileContext';\nimport {SSRContext} from '../../context/ssrContext';\nimport {StylesContext} from '../../context/stylesContext/StylesContext';\nimport useFocus from '../../hooks/useFocus';\nimport {\n ClassNameProps,\n Refable,\n SliderOldProps as SliderParams,\n SliderType,\n Timeout,\n} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow, {ArrowType} from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {SliderBreakpointParams} from './models';\nimport {\n getSliderResponsiveParams,\n getSlidesCountByBreakpoint,\n getSlidesToShowCount,\n getSlidesToShowWithDefaults,\n isFocusable,\n useRovingTabIndex,\n} from './utils';\n\nimport './SliderOld.scss';\n\nconst b = block('SliderOldBlock');\nconst slick = block('slick-origin');\n\nconst DOT_WIDTH = 8;\nconst DOT_GAP = 16;\n\n/** @deprecated */\nexport interface SliderOldProps\n extends Omit<SliderParams, 'children'>,\n Refable<HTMLDivElement>,\n ClassNameProps,\n Pick<Settings, 'lazyLoad'> {\n type?: string;\n anchorId?: string;\n onAfterChange?: (index: number) => void;\n onBeforeChange?: (current: number, next: number) => void;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialIndex?: number;\n}\n\n// eslint-disable-next-line valid-jsdoc\n/** @deprecated */\nexport const SliderOldBlock = (props: React.PropsWithChildren<SliderOldProps>) => {\n const {\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplaySpeed,\n dots = true,\n dotsClassName,\n disclaimer,\n children,\n className,\n blockClassName,\n lazyLoad,\n arrowSize,\n onAfterChange: handleAfterChange,\n onBeforeChange: handleBeforeChange,\n initialIndex = 0,\n } = props;\n\n const {isServer} = React.useContext(SSRContext);\n const isMobile = React.useContext(MobileContext);\n const [breakpoint, setBreakpoint] = React.useState<number>(BREAKPOINTS.xl);\n const sliderId = useUniqId();\n const disclosedChildren = React.useMemo<React.ReactElement[]>(\n () => discloseAllNestedChildren(children as React.ReactElement[], sliderId),\n [children, sliderId],\n );\n const childrenCount = disclosedChildren.length;\n const isAutoplayEnabled = autoplaySpeed !== undefined && autoplaySpeed > 0;\n const isUserInteractionRef = React.useRef(false);\n\n const [slidesToShow] = React.useState<SliderBreakpointParams>(\n getSlidesToShowWithDefaults({\n contentLength: childrenCount,\n breakpoints: props.slidesToShow,\n mobileFullscreen: Boolean(\n props.type && Object.values(SliderType).includes(props.type as SliderType),\n ),\n }),\n );\n\n const slidesToShowCount = getSlidesToShowCount(slidesToShow);\n const slidesCountByBreakpoint = getSlidesCountByBreakpoint(breakpoint, slidesToShow);\n\n const [currentIndex, setCurrentIndex] = React.useState<number>(initialIndex);\n const [childStyles, setChildStyles] = React.useState<Object>({});\n const [slider, setSlider] = React.useState<SlickSlider>();\n const prevIndexRef = React.useRef<number>(0);\n const autoplayTimeId = React.useRef<Timeout>();\n const {hasFocus, unsetFocus} = useFocus(slider?.innerSlider?.list);\n\n const asUserInteraction =\n <T extends unknown[], R>(fn: (...args: T) => R) =>\n (...args: T): R => {\n isUserInteractionRef.current = true;\n return fn(...args);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onResize = React.useCallback(\n debounce(() => {\n if (!slider) {\n return;\n }\n\n const newBreakpoint = get(slider, 'state.breakpoint') || BREAKPOINTS.xl;\n\n if (newBreakpoint !== breakpoint) {\n setBreakpoint(newBreakpoint);\n setCurrentIndex(0);\n\n slider.slickGoTo(0);\n }\n }, 100),\n [slider, breakpoint],\n );\n\n const scrollLastSlide = React.useCallback(\n (current: number) => {\n const lastSlide = childrenCount - slidesToShowCount;\n\n if (isAutoplayEnabled && lastSlide === current) {\n // Slick doesn't support autoplay with no infinity scroll\n autoplayTimeId.current = setTimeout(() => {\n if (slider) {\n slider.slickGoTo(0, false);\n slider.slickPause();\n }\n setTimeout(() => {\n if (slider) {\n slider.slickPlay();\n }\n }, 500);\n }, autoplaySpeed);\n }\n },\n [autoplaySpeed, childrenCount, isAutoplayEnabled, slider, slidesToShowCount],\n );\n\n React.useEffect(() => {\n if (hasFocus && autoplayTimeId.current) {\n clearTimeout(autoplayTimeId.current);\n } else {\n scrollLastSlide(currentIndex);\n }\n }, [currentIndex, hasFocus, scrollLastSlide]);\n\n React.useEffect(() => {\n onResize();\n\n window.addEventListener('resize', onResize, {passive: true});\n\n return () => window.removeEventListener('resize', onResize);\n }, [onResize]);\n\n const handleArrowClick = (direction: ArrowType) => {\n let nextIndex;\n\n if (direction === 'right') {\n nextIndex =\n currentIndex === childrenCount - slidesCountByBreakpoint ? 0 : currentIndex + 1;\n } else {\n nextIndex =\n currentIndex === 0 ? childrenCount - slidesCountByBreakpoint : currentIndex - 1;\n }\n\n if (slider) {\n slider.slickGoTo(nextIndex);\n }\n };\n\n const onBeforeChange = React.useCallback(\n (current: number, next: number) => {\n if (handleBeforeChange) {\n handleBeforeChange(current, next);\n }\n\n prevIndexRef.current = current;\n\n setCurrentIndex(Math.ceil(next));\n },\n [handleBeforeChange],\n );\n\n const onAfterChange = React.useCallback(\n (current: number) => {\n if (handleAfterChange) {\n handleAfterChange(current);\n }\n\n if (autoplayTimeId.current) {\n clearTimeout(autoplayTimeId.current);\n }\n\n if (!hasFocus) {\n scrollLastSlide(current);\n }\n\n if (isUserInteractionRef.current) {\n const focusIndex =\n prevIndexRef.current >= current\n ? current\n : Math.max(current, prevIndexRef.current + slidesCountByBreakpoint);\n\n const firstNewSlide = document.getElementById(getSlideId(sliderId, focusIndex));\n if (firstNewSlide) {\n const focusableChild = Array.from(firstNewSlide.querySelectorAll('*')).find(\n isFocusable,\n ) as HTMLElement | undefined;\n focusableChild?.focus();\n }\n }\n\n isUserInteractionRef.current = false;\n },\n [handleAfterChange, hasFocus, scrollLastSlide, sliderId, slidesCountByBreakpoint],\n );\n\n const handleDotClick = (index: number) => {\n const nextIndex = index > currentIndex ? index + 1 - slidesCountByBreakpoint : index;\n\n if (slider) {\n slider.slickGoTo(nextIndex);\n }\n };\n\n const barSlidesCount = childrenCount - slidesCountByBreakpoint + 1;\n const barPosition = (DOT_GAP + DOT_WIDTH) * currentIndex;\n const barWidth = DOT_WIDTH + (DOT_GAP + DOT_WIDTH) * (slidesCountByBreakpoint - 1);\n\n const {getRovingItemProps, rovingListProps} = useRovingTabIndex({\n itemCount: barSlidesCount,\n activeIndex: currentIndex + 1,\n firstIndex: 1,\n uniqId: sliderId,\n });\n\n const renderBar = () => {\n return (\n slidesCountByBreakpoint > 1 && (\n <li\n className={b('bar')}\n style={{\n left: barPosition,\n width: barWidth,\n }}\n />\n )\n );\n };\n\n // renders additional bar, not visible in the layout but visible for screenreaders\n const renderAccessibleBar = (index: number) => {\n return (\n // To have this key differ from keys used in renderDot function, added `-accessible-bar` part\n <React.Fragment key={`${index}-accessible-bar`}>\n {slidesCountByBreakpoint > 0 && (\n <li\n className={b('accessible-bar')}\n role=\"menuitemradio\"\n aria-checked\n aria-label={i18n('dot-label', {\n index: currentIndex + 1,\n count: barSlidesCount,\n })}\n style={{\n left: barPosition,\n width: barWidth,\n }}\n {...getRovingItemProps(currentIndex + 1)}\n />\n )}\n </React.Fragment>\n );\n };\n\n const getCurrentSlideNumber = (index: number) => {\n const currentIndexDiff = index - currentIndex;\n\n let currentSlideNumber;\n if (0 <= currentIndexDiff && currentIndexDiff < slidesCountByBreakpoint) {\n currentSlideNumber = currentIndex + 1;\n } else if (currentIndexDiff >= slidesCountByBreakpoint) {\n currentSlideNumber = index - slidesCountByBreakpoint + 2;\n } else {\n currentSlideNumber = index + 1;\n }\n return currentSlideNumber;\n };\n const isVisibleSlide = (index: number) => {\n const currentIndexDiff = index - currentIndex;\n\n const result =\n slidesCountByBreakpoint > 0 &&\n 0 <= currentIndexDiff &&\n currentIndexDiff < slidesCountByBreakpoint;\n return result;\n };\n\n const renderDot = (index: number) => {\n const isVisible = isVisibleSlide(index);\n const currentSlideNumber = getCurrentSlideNumber(index);\n const rovingItemProps = isVisible ? undefined : getRovingItemProps(currentSlideNumber);\n return (\n <li\n key={index}\n className={b('dot', {active: index === currentIndex})}\n onClick={asUserInteraction(() => handleDotClick(index))}\n onKeyDown={(e) => {\n const key = e.key.toLowerCase();\n if (key === 'space' || key === 'enter') {\n e.currentTarget.click();\n }\n }}\n role=\"menuitemradio\"\n aria-checked={false}\n tabIndex={-1}\n aria-hidden={isVisible}\n aria-label={i18n('dot-label', {\n index: currentSlideNumber,\n count: barSlidesCount,\n })}\n {...rovingItemProps}\n />\n );\n };\n\n const renderNavigation = () => {\n if (childrenCount <= slidesCountByBreakpoint || !dots || childrenCount === 1) {\n return null;\n }\n const dotsList = Array(childrenCount)\n .fill(null)\n .map((_item, index) => renderDot(index));\n dotsList.splice(currentIndex, 0, renderAccessibleBar(currentIndex));\n\n return (\n <div className={b('dots', dotsClassName)}>\n <ul\n className={b('dots-list')}\n role=\"menu\"\n aria-label={i18n('pagination-label')}\n {...rovingListProps}\n >\n {renderBar()}\n {dotsList}\n </ul>\n </div>\n );\n };\n\n const renderDisclaimer = () => {\n return disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer.size || 'm'})}>{disclaimer.text}</div>\n ) : null;\n };\n\n const renderSlider = () => {\n /* Disable adding of width in inline styles when SSR to prevent overriding of default styles */\n /* Calculate appropriate breakpoint for mobile devices with user agent */\n const variableWidth = isServer && isMobile;\n\n const settings = {\n ref: (slickSlider: SlickSlider) => setSlider(slickSlider),\n className: slick(null, className),\n arrows,\n variableWidth,\n infinite: false,\n speed: 1000,\n adaptiveHeight: adaptive,\n autoplay: isAutoplayEnabled,\n autoplaySpeed,\n slidesToShow: slidesToShowCount,\n slidesToScroll: 1,\n responsive: getSliderResponsiveParams(slidesToShow),\n beforeChange: onBeforeChange,\n afterChange: onAfterChange,\n initialSlide: initialIndex,\n nextArrow: (\n <Arrow\n type=\"right\"\n handleClick={asUserInteraction(handleArrowClick)}\n size={arrowSize}\n />\n ),\n prevArrow: (\n <Arrow\n type=\"left\"\n handleClick={asUserInteraction(handleArrowClick)}\n size={arrowSize}\n />\n ),\n lazyLoad,\n accessibility: false,\n };\n\n return (\n <OutsideClick onOutsideClick={isMobile ? unsetFocus : noop}>\n <SlickSlider {...settings}>{disclosedChildren}</SlickSlider>\n <div className={b('footer')}>\n {renderDisclaimer()}\n {renderNavigation()}\n </div>\n </OutsideClick>\n );\n };\n\n return (\n <StylesContext.Provider value={{...childStyles, setStyles: setChildStyles}}>\n <div\n className={b(\n {\n 'align-left': childrenCount < slidesCountByBreakpoint,\n 'one-slide': childrenCount === 1,\n 'only-arrows': !title?.text && !description && arrows,\n mobile: isMobile,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n {renderSlider()}\n </AnimateBlock>\n </div>\n </StylesContext.Provider>\n );\n};\n\nfunction getSlideId(sliderId: string, index: number) {\n return `slider-${sliderId}-child-${index}`;\n}\n\n// TODO remove this and rework PriceDetailed CLOUDFRONT-12230\nfunction discloseAllNestedChildren(\n children: React.ReactElement[],\n sliderId: string,\n): React.ReactElement[] {\n if (!children) {\n return [];\n }\n\n let childIndex = 0;\n const wrapped = (child: React.ReactElement) => {\n const id = getSlideId(sliderId, childIndex++);\n\n return (\n <div key={id} id={id}>\n {child}\n </div>\n );\n };\n\n return React.Children.map(children, (child) => {\n if (child) {\n // TODO: if child has 'items' then 'items' determinate like nested children for Slider.\n const nestedChildren = child.props.data?.items;\n\n if (nestedChildren) {\n return nestedChildren.map((nestedChild: React.ReactElement) => {\n return wrapped(\n React.cloneElement(child, {\n data: {\n ...child.props.data,\n items: [nestedChild],\n },\n }),\n );\n });\n }\n }\n return child && wrapped(child);\n }).filter(Boolean);\n}\n\nexport default SliderOldBlock;\n"]}
1
+ {"version":3,"file":"SliderOld.js","sourceRoot":"../../../../src","sources":["blocks/SliderOld/SliderOld.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {useUniqId} from '@gravity-ui/uikit';\nimport debounce from 'lodash/debounce';\nimport get from 'lodash/get';\nimport noop from 'lodash/noop';\nimport SlickSlider, {Settings} from 'react-slick';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport OutsideClick from '../../components/OutsideClick/OutsideClick';\nimport Title from '../../components/Title/Title';\nimport {BREAKPOINTS} from '../../constants';\nimport {MobileContext} from '../../context/mobileContext';\nimport {SSRContext} from '../../context/ssrContext';\nimport {StylesContext} from '../../context/stylesContext/StylesContext';\nimport useFocus from '../../hooks/useFocus';\nimport {\n ClassNameProps,\n Refable,\n SliderOldProps as SliderParams,\n SliderType,\n Timeout,\n} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow, {ArrowType} from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {SliderBreakpointParams} from './models';\nimport {\n getSliderResponsiveParams,\n getSlidesCountByBreakpoint,\n getSlidesToShowCount,\n getSlidesToShowWithDefaults,\n isFocusable,\n useRovingTabIndex,\n} from './utils';\n\nimport './SliderOld.scss';\n\nconst b = block('SliderOldBlock');\nconst slick = block('slick-origin');\n\nconst DOT_WIDTH = 8;\nconst DOT_GAP = 16;\n\n/** @deprecated */\nexport interface SliderOldProps\n extends Omit<SliderParams, 'children'>,\n Refable<HTMLDivElement>,\n ClassNameProps,\n Pick<Settings, 'lazyLoad'> {\n type?: string;\n anchorId?: string;\n onAfterChange?: (index: number) => void;\n onBeforeChange?: (current: number, next: number) => void;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialIndex?: number;\n}\n\n// eslint-disable-next-line valid-jsdoc\n/** @deprecated */\nexport const SliderOldBlock = (props: React.PropsWithChildren<SliderOldProps>) => {\n const {\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplaySpeed,\n dots = true,\n dotsClassName,\n disclaimer,\n children,\n className,\n blockClassName,\n lazyLoad,\n arrowSize,\n onAfterChange: handleAfterChange,\n onBeforeChange: handleBeforeChange,\n initialIndex = 0,\n } = props;\n\n const {isServer} = React.useContext(SSRContext);\n const isMobile = React.useContext(MobileContext);\n const [breakpoint, setBreakpoint] = React.useState<number>(BREAKPOINTS.xl);\n const sliderId = useUniqId();\n const disclosedChildren = React.useMemo<React.ReactElement[]>(\n () => discloseAllNestedChildren(children as React.ReactElement[], sliderId),\n [children, sliderId],\n );\n const childrenCount = disclosedChildren.length;\n const isAutoplayEnabled = autoplaySpeed !== undefined && autoplaySpeed > 0;\n const isUserInteractionRef = React.useRef(false);\n\n const [slidesToShow] = React.useState<SliderBreakpointParams>(\n getSlidesToShowWithDefaults({\n contentLength: childrenCount,\n breakpoints: props.slidesToShow,\n mobileFullscreen: Boolean(\n props.type && Object.values(SliderType).includes(props.type as SliderType),\n ),\n }),\n );\n\n const slidesToShowCount = getSlidesToShowCount(slidesToShow);\n const slidesCountByBreakpoint = getSlidesCountByBreakpoint(breakpoint, slidesToShow);\n\n const [currentIndex, setCurrentIndex] = React.useState<number>(initialIndex);\n const [childStyles, setChildStyles] = React.useState<Object>({});\n const [slider, setSlider] = React.useState<SlickSlider>();\n const prevIndexRef = React.useRef<number>(0);\n const autoplayTimeId = React.useRef<Timeout>();\n const {hasFocus, unsetFocus} = useFocus(slider?.innerSlider?.list);\n\n const asUserInteraction =\n <T extends unknown[], R>(fn: (...args: T) => R) =>\n (...args: T): R => {\n isUserInteractionRef.current = true;\n return fn(...args);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onResize = React.useCallback(\n debounce(() => {\n if (!slider) {\n return;\n }\n\n const newBreakpoint = get(slider, 'state.breakpoint') || BREAKPOINTS.xl;\n\n if (newBreakpoint !== breakpoint) {\n setBreakpoint(newBreakpoint);\n setCurrentIndex(0);\n\n slider.slickGoTo(0);\n }\n }, 100),\n [slider, breakpoint],\n );\n\n const scrollLastSlide = React.useCallback(\n (current: number) => {\n const lastSlide = childrenCount - slidesToShowCount;\n\n if (isAutoplayEnabled && lastSlide === current) {\n // Slick doesn't support autoplay with no infinity scroll\n autoplayTimeId.current = setTimeout(() => {\n if (slider) {\n slider.slickGoTo(0, false);\n slider.slickPause();\n }\n setTimeout(() => {\n if (slider) {\n slider.slickPlay();\n }\n }, 500);\n }, autoplaySpeed);\n }\n },\n [autoplaySpeed, childrenCount, isAutoplayEnabled, slider, slidesToShowCount],\n );\n\n React.useEffect(() => {\n if (hasFocus && autoplayTimeId.current) {\n clearTimeout(autoplayTimeId.current);\n } else {\n scrollLastSlide(currentIndex);\n }\n }, [currentIndex, hasFocus, scrollLastSlide]);\n\n React.useEffect(() => {\n onResize();\n\n window.addEventListener('resize', onResize, {passive: true});\n\n return () => window.removeEventListener('resize', onResize);\n }, [onResize]);\n\n const handleArrowClick = (direction: ArrowType) => {\n let nextIndex;\n\n if (direction === 'right') {\n nextIndex =\n currentIndex === childrenCount - slidesCountByBreakpoint ? 0 : currentIndex + 1;\n } else {\n nextIndex =\n currentIndex === 0 ? childrenCount - slidesCountByBreakpoint : currentIndex - 1;\n }\n\n if (slider) {\n slider.slickGoTo(nextIndex);\n }\n };\n\n const onBeforeChange = React.useCallback(\n (current: number, next: number) => {\n if (handleBeforeChange) {\n handleBeforeChange(current, next);\n }\n\n prevIndexRef.current = current;\n\n setCurrentIndex(Math.ceil(next));\n },\n [handleBeforeChange],\n );\n\n const onAfterChange = React.useCallback(\n (current: number) => {\n if (handleAfterChange) {\n handleAfterChange(current);\n }\n\n if (autoplayTimeId.current) {\n clearTimeout(autoplayTimeId.current);\n }\n\n if (!hasFocus) {\n scrollLastSlide(current);\n }\n\n if (isUserInteractionRef.current) {\n const focusIndex =\n prevIndexRef.current >= current\n ? current\n : Math.max(current, prevIndexRef.current + slidesCountByBreakpoint);\n\n const firstNewSlide = document.getElementById(getSlideId(sliderId, focusIndex));\n if (firstNewSlide) {\n const focusableChild = Array.from(firstNewSlide.querySelectorAll('*')).find(\n isFocusable,\n ) as HTMLElement | undefined;\n focusableChild?.focus();\n }\n }\n\n isUserInteractionRef.current = false;\n },\n [handleAfterChange, hasFocus, scrollLastSlide, sliderId, slidesCountByBreakpoint],\n );\n\n const handleDotClick = (index: number) => {\n const nextIndex = index > currentIndex ? index + 1 - slidesCountByBreakpoint : index;\n\n if (slider) {\n slider.slickGoTo(nextIndex);\n }\n };\n\n const barSlidesCount = childrenCount - slidesCountByBreakpoint + 1;\n const barPosition = (DOT_GAP + DOT_WIDTH) * currentIndex;\n const barWidth = DOT_WIDTH + (DOT_GAP + DOT_WIDTH) * (slidesCountByBreakpoint - 1);\n\n const {getRovingItemProps, rovingListProps} = useRovingTabIndex({\n itemCount: barSlidesCount,\n activeIndex: currentIndex + 1,\n firstIndex: 1,\n uniqId: sliderId,\n });\n\n const renderBar = () => {\n return (\n slidesCountByBreakpoint > 1 && (\n <li\n className={b('bar')}\n style={{\n left: barPosition,\n width: barWidth,\n }}\n />\n )\n );\n };\n\n // renders additional bar, not visible in the layout but visible for screenreaders\n const renderAccessibleBar = (index: number) => {\n return (\n // To have this key differ from keys used in renderDot function, added `-accessible-bar` part\n <React.Fragment key={`${index}-accessible-bar`}>\n {slidesCountByBreakpoint > 0 && (\n <li\n className={b('accessible-bar')}\n role=\"menuitemradio\"\n aria-checked\n aria-label={i18n('dot-label', {\n index: currentIndex + 1,\n count: barSlidesCount,\n })}\n style={{\n left: barPosition,\n width: barWidth,\n }}\n {...getRovingItemProps(currentIndex + 1)}\n />\n )}\n </React.Fragment>\n );\n };\n\n const getCurrentSlideNumber = (index: number) => {\n const currentIndexDiff = index - currentIndex;\n\n let currentSlideNumber;\n if (0 <= currentIndexDiff && currentIndexDiff < slidesCountByBreakpoint) {\n currentSlideNumber = currentIndex + 1;\n } else if (currentIndexDiff >= slidesCountByBreakpoint) {\n currentSlideNumber = index - slidesCountByBreakpoint + 2;\n } else {\n currentSlideNumber = index + 1;\n }\n return currentSlideNumber;\n };\n const isVisibleSlide = (index: number) => {\n const currentIndexDiff = index - currentIndex;\n\n const result =\n slidesCountByBreakpoint > 0 &&\n 0 <= currentIndexDiff &&\n currentIndexDiff < slidesCountByBreakpoint;\n return result;\n };\n\n const renderDot = (index: number) => {\n const isVisible = isVisibleSlide(index);\n const currentSlideNumber = getCurrentSlideNumber(index);\n const rovingItemProps = isVisible ? undefined : getRovingItemProps(currentSlideNumber);\n return (\n <li\n key={index}\n className={b('dot', {active: index === currentIndex})}\n onClick={asUserInteraction(() => handleDotClick(index))}\n onKeyDown={(e) => {\n const key = e.key.toLowerCase();\n if (key === 'space' || key === 'enter') {\n e.currentTarget.click();\n }\n }}\n role=\"menuitemradio\"\n aria-checked={false}\n tabIndex={-1}\n aria-hidden={isVisible}\n aria-label={i18n('dot-label', {\n index: currentSlideNumber,\n count: barSlidesCount,\n })}\n {...rovingItemProps}\n />\n );\n };\n\n const renderNavigation = () => {\n if (childrenCount <= slidesCountByBreakpoint || !dots || childrenCount === 1) {\n return null;\n }\n const dotsList = Array(childrenCount)\n .fill(null)\n .map((_item, index) => renderDot(index));\n dotsList.splice(currentIndex, 0, renderAccessibleBar(currentIndex));\n\n return (\n <div className={b('dots', dotsClassName)}>\n <ul\n className={b('dots-list')}\n role=\"menu\"\n aria-label={i18n('pagination-label')}\n {...rovingListProps}\n >\n {renderBar()}\n {dotsList}\n </ul>\n </div>\n );\n };\n\n const renderDisclaimer = () => {\n return disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer.size || 'm'})}>{disclaimer.text}</div>\n ) : null;\n };\n\n const renderSlider = () => {\n /* Disable adding of width in inline styles when SSR to prevent overriding of default styles */\n /* Calculate appropriate breakpoint for mobile devices with user agent */\n const variableWidth = isServer && isMobile;\n\n const settings = {\n ref: (slickSlider: SlickSlider) => setSlider(slickSlider),\n className: slick(null, className),\n arrows,\n variableWidth,\n infinite: false,\n speed: 1000,\n adaptiveHeight: adaptive,\n autoplay: isAutoplayEnabled,\n autoplaySpeed,\n slidesToShow: slidesToShowCount,\n slidesToScroll: 1,\n responsive: getSliderResponsiveParams(slidesToShow),\n beforeChange: onBeforeChange,\n afterChange: onAfterChange,\n initialSlide: initialIndex,\n nextArrow: (\n <Arrow\n type=\"right\"\n handleClick={asUserInteraction(handleArrowClick)}\n size={arrowSize}\n />\n ),\n prevArrow: (\n <Arrow\n type=\"left\"\n handleClick={asUserInteraction(handleArrowClick)}\n size={arrowSize}\n />\n ),\n lazyLoad,\n accessibility: false,\n };\n\n return (\n <OutsideClick onOutsideClick={isMobile ? unsetFocus : noop}>\n <SlickSlider {...settings}>{disclosedChildren}</SlickSlider>\n <div className={b('footer')}>\n {renderDisclaimer()}\n {renderNavigation()}\n </div>\n </OutsideClick>\n );\n };\n\n return (\n <StylesContext.Provider value={{...childStyles, setStyles: setChildStyles}}>\n <div\n className={b(\n {\n 'align-left': childrenCount < slidesCountByBreakpoint,\n 'one-slide': childrenCount === 1,\n 'only-arrows':\n (!title || (typeof title !== 'string' && !title?.text)) &&\n !description &&\n arrows,\n mobile: isMobile,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n {renderSlider()}\n </AnimateBlock>\n </div>\n </StylesContext.Provider>\n );\n};\n\nfunction getSlideId(sliderId: string, index: number) {\n return `slider-${sliderId}-child-${index}`;\n}\n\n// TODO remove this and rework PriceDetailed CLOUDFRONT-12230\nfunction discloseAllNestedChildren(\n children: React.ReactElement[],\n sliderId: string,\n): React.ReactElement[] {\n if (!children) {\n return [];\n }\n\n let childIndex = 0;\n const wrapped = (child: React.ReactElement) => {\n const id = getSlideId(sliderId, childIndex++);\n\n return (\n <div key={id} id={id}>\n {child}\n </div>\n );\n };\n\n return React.Children.map(children, (child) => {\n if (child) {\n // TODO: if child has 'items' then 'items' determinate like nested children for Slider.\n const nestedChildren = child.props.data?.items;\n\n if (nestedChildren) {\n return nestedChildren.map((nestedChild: React.ReactElement) => {\n return wrapped(\n React.cloneElement(child, {\n data: {\n ...child.props.data,\n items: [nestedChild],\n },\n }),\n );\n });\n }\n }\n return child && wrapped(child);\n }).filter(Boolean);\n}\n\nexport default SliderOldBlock;\n"]}
@@ -77,7 +77,7 @@ export interface SliderOldProps extends Childable, Animatable, LoadableChildren
77
77
  text: string;
78
78
  size?: TextSize;
79
79
  };
80
- title?: TitleItemBaseProps;
80
+ title?: TitleItemBaseProps | string;
81
81
  description?: string;
82
82
  autoplay?: number;
83
83
  randomOrder?: boolean;
@@ -91,7 +91,7 @@ export interface SliderProps extends Childable, Animatable, LoadableChildren {
91
91
  text: string;
92
92
  size?: TextSize;
93
93
  };
94
- title?: TitleItemBaseProps;
94
+ title?: TitleItemBaseProps | string;
95
95
  description?: string;
96
96
  autoplay?: number;
97
97
  randomOrder?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"../../../../src","sources":["models/constructor-items/blocks.ts"],"names":[],"mappings":";;;AA2CA,IAAY,SAuBX;AAvBD,WAAY,SAAS;IACjB,wDAA2C,CAAA;IAC3C,8DAAiD,CAAA;IACjD,kBAAkB;IAClB,gDAAmC,CAAA;IACnC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,uCAA0B,CAAA;IAC1B,kDAAqC,CAAA;IACrC,wDAA2C,CAAA;IAC3C,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;AAC5B,CAAC,EAvBW,SAAS,yBAAT,SAAS,QAuBpB;AAEY,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,gBAAgB,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAgCrF,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;AACb,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,gDAAkC,CAAA;AACtC,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAkUD,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,iCAAS,CAAA;IACT,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;AACzB,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B;AAOD,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACvB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,kDAA4B,CAAA;IAC5B,kDAA4B,CAAA;IAC5B,uCAAiB,CAAA;AACrB,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {GridColumnSize, GridColumnSizesType, IndentValue} from '../../grid/types';\nimport {ThemeSupporting} from '../../utils';\nimport {AnalyticsEventsBase} from '../common';\n\nimport {\n AnchorProps,\n Animatable,\n BackgroundImageProps,\n ButtonProps,\n CardBorder,\n ContentSize,\n ContentTextSize,\n ContentTheme,\n FileLinkProps,\n HeaderBreadCrumbsProps,\n HeaderImageSize,\n HeaderOffset,\n HeaderWidth,\n ImageDeviceProps,\n ImageProps,\n Justify,\n LegendTableMarkerType,\n LinkProps,\n MapProps,\n MediaDirection,\n MediaProps,\n MediaView,\n TextSize,\n TextTheme,\n ThemedImage,\n ThemedMediaProps,\n ThemedMediaVideoProps,\n TitleItemBaseProps,\n TitleItemProps,\n WithBorder,\n YandexFormProps,\n} from './common';\nimport {BannerCardProps, HubspotFormProps, SubBlock, SubBlockModels} from './sub-blocks';\n\nexport enum BlockType {\n PromoFeaturesBlock = 'promo-features-block',\n ExtendedFeaturesBlock = 'extended-features-block',\n /** @deprecated */\n SliderOldBlock = 'slider-old-block',\n SliderBlock = 'slider-block',\n QuestionsBlock = 'questions-block',\n FoldableListBlock = 'foldable-list-block',\n BannerBlock = 'banner-block',\n CompaniesBlock = 'companies-block',\n MediaBlock = 'media-block',\n InfoBlock = 'info-block',\n TableBlock = 'table-block',\n TabsBlock = 'tabs-block',\n HeaderSliderBlock = 'header-slider-block',\n HeaderBlock = 'header-block',\n IconsBlock = 'icons-block',\n CardLayoutBlock = 'card-layout-block',\n ContentLayoutBlock = 'content-layout-block',\n ShareBlock = 'share-block',\n MapBlock = 'map-block',\n FilterBlock = 'filter-block',\n FormBlock = 'form-block',\n}\n\nexport const BlockTypes = Object.values(BlockType);\nexport const HeaderBlockTypes = [BlockType.HeaderBlock, BlockType.HeaderSliderBlock];\n\nexport interface Childable {\n children?: SubBlock[];\n}\n\n//block props\nexport interface BlockBaseProps {\n anchor?: AnchorProps;\n visible?: GridColumnSize;\n /** @deprecated */\n resetPaddings?: boolean;\n indent?: {\n top?: IndentValue;\n bottom?: IndentValue;\n };\n qa?: string;\n}\n\nexport interface LoadableProps {\n source: string;\n /**\n * @deprecated Will be moved to params\n */\n serviceId?: number;\n params?: Record<string, string | number | boolean | object>;\n}\n\nexport interface LoadableChildren {\n loadable?: LoadableProps;\n}\n\nexport enum SliderBreakpointNames {\n Sm = 'sm',\n Md = 'md',\n Lg = 'lg',\n Xl = 'xl',\n}\n\nexport enum SliderType {\n MediaCard = 'media-card',\n HeaderCard = 'header-card',\n FullscreenCard = 'fullscreen-card',\n}\n\nexport type SliderBreakpointParams = Record<SliderBreakpointNames, number>;\nexport type SlidesToShow = Partial<SliderBreakpointParams> | number;\n\nexport interface SliderOldProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface SliderProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface HeaderSliderBlockProps extends Omit<SliderOldProps, 'title' | 'description'> {\n items: HeaderBlockProps[];\n}\n\ninterface HeaderBackgroundProps {\n /** @deprecated replaced by Media Props image */\n url?: string;\n /** @deprecated replaced by Media Props image */\n disableCompress?: boolean;\n}\n\nexport interface HeaderBlockBackground extends Partial<HeaderBackgroundProps>, Partial<MediaProps> {\n fullWidth?: boolean;\n fullWidthMedia?: boolean;\n}\n\nexport type ThemedHeaderBlockBackground = ThemeSupporting<HeaderBlockBackground>;\n\nexport interface HeaderBlockProps {\n title: string;\n overtitle?: string | JSX.Element;\n description?: string;\n additionalInfo?: string;\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme' | 'primary' | 'size' | 'extraProps'>[];\n width?: HeaderWidth;\n /** @deprecated imageSize now depends on width */\n imageSize?: HeaderImageSize;\n /**\n * @deprecated used only on the main page\n * TODO: delete after the possibility to remove padding-bottom in the block\n */\n offset?: HeaderOffset;\n image?: ThemedImage;\n video?: ThemedMediaVideoProps;\n mediaView?: MediaView;\n centered?: boolean;\n background?: ThemedHeaderBlockBackground;\n theme?: 'light' | 'dark';\n verticalOffset?: '0' | 's' | 'm' | 'l' | 'xl';\n breadcrumbs?: HeaderBreadCrumbsProps;\n status?: JSX.Element;\n renderTitle?: (title: string) => React.ReactNode;\n}\n\nexport interface ExtendedFeaturesItem\n extends Omit<ContentBlockProps, 'theme' | 'centered' | 'colSizes' | 'size' | 'title'> {\n title: string;\n label?: string;\n icon?: ThemedImage;\n /** @deprecated **/\n link?: LinkProps;\n}\n\nexport interface ExtendedFeaturesProps extends Animatable {\n items: ExtendedFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n colSizes?: GridColumnSizesType;\n}\n\nexport interface PromoFeaturesItem {\n title: string;\n text: string;\n theme?: 'accent' | 'accent-light' | 'primary';\n media?: ThemeSupporting<MediaProps>;\n}\n\nexport interface PromoFeaturesProps extends Animatable {\n items: PromoFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n theme?: 'grey' | 'default';\n}\n\nexport interface QuestionItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface QuestionsProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: QuestionItem[];\n}\n\nexport interface QuestionBlockItemProps extends QuestionItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface FoldableListItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface FoldableListProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: FoldableListItem[];\n}\n\nexport interface FoldableListBlockItemProps extends FoldableListItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface BannerBlockProps extends BannerCardProps, Animatable {}\n\nexport interface CompaniesBlockProps extends Animatable {\n title: string;\n description?: string;\n images: ThemeSupporting<ImageDeviceProps>;\n}\n\nexport interface MediaBaseBlockProps extends Animatable, MediaContentProps {\n direction?: MediaDirection;\n mobileDirection?: MediaDirection;\n largeMedia?: boolean;\n mediaOnly?: boolean;\n mediaOnlyColSizes?: GridColumnSizesType;\n}\n\nexport interface MediaContentProps\n extends Omit<ContentBlockProps, 'colSizes' | 'text' | 'title' | 'theme' | 'centered'> {\n title: string;\n description?: string;\n /** @deprecated Use array of buttons from ContentBlockProps instead**/\n button?: ButtonProps;\n}\n\nexport interface MediaBlockProps extends MediaBaseBlockProps, WithBorder {\n media: ThemeSupporting<MediaProps>;\n}\n\nexport interface MapBlockProps extends MediaBaseBlockProps, WithBorder {\n map: MapProps;\n}\n\nexport interface InfoBlockProps {\n theme?: TextTheme;\n backgroundColor?: ThemeSupporting<string>;\n /** @deprecated **/\n title?: string;\n /** @deprecated **/\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme'>[];\n /** @deprecated **/\n sectionsTitle?: string;\n /** @deprecated **/\n links?: Pick<LinkProps, 'text' | 'url'>[];\n leftContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n rightContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n}\n\nexport interface TableProps {\n content: string[][];\n legend?: string[];\n hideLegend?: boolean;\n justify?: Justify[];\n marker?: LegendTableMarkerType;\n /**\n * Only as accessible name, not displayed explicitly\n */\n caption?: string;\n}\n\nexport interface TableBlockProps {\n title: string;\n table: TableProps;\n}\n\nexport interface TabsBlockItem\n extends Omit<ContentBlockProps, 'size' | 'colSizes' | 'centered' | 'theme'>,\n WithBorder {\n tabName: string;\n /**\n * @deprecated Use array links from ContentBlockProps instead\n */\n link?: LinkProps;\n image?: ThemedImage;\n caption?: string;\n media?: ThemedMediaProps;\n}\n\nexport interface TabsBlockProps extends Animatable {\n title?: TitleItemProps | string;\n description?: string;\n tabsColSizes?: GridColumnSizesType;\n centered?: boolean;\n direction?: MediaDirection;\n items: TabsBlockItem[];\n contentSize?: ContentSize;\n}\n\nexport interface CardLayoutBlockProps extends Childable, Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n titleClassName?: string;\n description?: string;\n colSizes?: GridColumnSizesType;\n background?: ThemeSupporting<\n BackgroundImageProps & {\n border?: CardBorder;\n }\n >;\n}\n\nexport type FilterTag = {\n id: string;\n label: string;\n};\n\nexport type FilterItem = {\n tags: string[];\n card: SubBlockModels;\n};\n\nexport interface FilterBlockProps extends Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n description?: string;\n tags: FilterTag[];\n items: FilterItem[];\n tagButtonSize?: ButtonSize;\n allTag?: boolean | string;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n}\n\nexport interface IconsBlockItemProps extends AnalyticsEventsBase {\n url: string;\n text: string;\n src: ThemeSupporting<string>;\n}\n\nexport interface IconsBlockProps {\n title?: string;\n description?: string;\n size?: 's' | 'm' | 'l';\n items: IconsBlockItemProps[];\n colSizes?: GridColumnSizesType;\n}\n\ninterface ContentLayoutBlockParams {\n size?: ContentSize;\n background?: ThemeSupporting<BackgroundImageProps>;\n centered?: boolean;\n theme?: ContentTheme;\n textWidth?: ContentTextSize;\n}\n\nexport interface ContentLayoutBlockProps extends ContentLayoutBlockParams {\n textContent: ContentBlockProps;\n fileContent?: FileLinkProps[];\n}\n\nexport type SVGIcon = React.FC<React.SVGProps<SVGSVGElement>>;\n\nexport interface ContentItemProps {\n title?: string;\n text?: string;\n icon: ThemeSupporting<ImageProps | SVGIcon>;\n}\n\nexport interface ContentListProps {\n list: ContentItemProps[];\n size: ContentSize;\n theme?: ContentTheme;\n}\n\nexport interface ContentBlockProps {\n title?: TitleItemBaseProps | string;\n titleId?: string;\n text?: string;\n textId?: string;\n additionalInfo?: string;\n links?: LinkProps[];\n buttons?: ButtonProps[];\n size?: ContentSize;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n theme?: ContentTheme;\n list?: ContentItemProps[];\n controlPosition?: 'default' | 'bottom';\n}\n\nexport enum PCShareSocialNetwork {\n Vk = 'vk',\n Telegram = 'telegram',\n Twitter = 'twitter',\n Facebook = 'facebook',\n LinkedIn = 'linkedin',\n}\n\nexport interface ShareBlockProps {\n items: PCShareSocialNetwork[];\n title?: string;\n}\n\nexport enum FormBlockDataTypes {\n YANDEX = 'yandex',\n HUBSPOT = 'hubspot',\n}\n\nexport enum FormBlockDirection {\n FormContent = 'form-content',\n ContentForm = 'content-form',\n Center = 'center',\n}\n\nexport interface FormBlockYandexData {\n yandex: ThemeSupporting<YandexFormProps>;\n}\n\nexport interface FormBlockHubspotData {\n hubspot: ThemeSupporting<HubspotFormProps>;\n}\n\nexport type FormBlockData = FormBlockYandexData | FormBlockHubspotData;\n\nexport interface FormBlockProps {\n formData: FormBlockData;\n title?: string;\n textContent?: Omit<ContentBlockProps, 'centered' | 'colSizes' | 'size'>;\n direction?: FormBlockDirection;\n background?: ThemeSupporting<BackgroundImageProps>;\n}\n\n//block models\nexport type HeaderBlockModel = {\n type: BlockType.HeaderBlock;\n} & HeaderBlockProps;\n\nexport type SliderOldBlockModel = {\n type: BlockType.SliderOldBlock;\n} & SliderOldProps;\n\nexport type ExtendedFeaturesBlockModel = {\n type: BlockType.ExtendedFeaturesBlock;\n} & ExtendedFeaturesProps;\n\nexport type PromoFeaturesBlockModel = {\n type: BlockType.PromoFeaturesBlock;\n} & PromoFeaturesProps;\n\nexport type QuestionsBlockModel = {\n type: BlockType.QuestionsBlock;\n} & QuestionsProps;\n\nexport type FoldableListBlockModel = {\n type: BlockType.FoldableListBlock;\n} & FoldableListProps;\n\nexport type BannerBlockModel = {\n type: BlockType.BannerBlock;\n} & BannerBlockProps;\n\nexport type CompaniesBlockModel = {\n type: BlockType.CompaniesBlock;\n} & CompaniesBlockProps;\n\nexport type MediaBlockModel = {\n type: BlockType.MediaBlock;\n} & MediaBlockProps;\n\nexport type MapBlockModel = {\n type: BlockType.MapBlock;\n} & MapBlockProps;\n\nexport type InfoBlockModel = {\n type: BlockType.InfoBlock;\n} & InfoBlockProps;\n\nexport type TableBlockModel = {\n type: BlockType.TableBlock;\n} & TableBlockProps;\n\nexport type TabsBlockModel = {\n type: BlockType.TabsBlock;\n} & TabsBlockProps;\n\nexport type CardLayoutBlockModel = {\n type: BlockType.CardLayoutBlock;\n} & CardLayoutBlockProps;\n\nexport type FilterBlockModel = {\n type: BlockType.FilterBlock;\n} & FilterBlockProps;\n\nexport type IconsBlockModel = {\n type: BlockType.IconsBlock;\n} & IconsBlockProps;\n\nexport type HeaderSliderBlockModel = {\n type: BlockType.HeaderSliderBlock;\n} & HeaderSliderBlockProps;\n\nexport type ContentLayoutBlockModel = {\n type: BlockType.ContentLayoutBlock;\n} & ContentLayoutBlockProps;\n\nexport type ShareBLockModel = {\n type: BlockType.ShareBlock;\n} & ShareBlockProps;\n\nexport type FormBlockModel = {\n type: BlockType.FormBlock;\n} & FormBlockProps;\n\nexport type SliderBlockModel = {\n type: BlockType.SliderBlock;\n} & SliderProps;\n\ntype BlockModels =\n | SliderOldBlockModel\n | SliderBlockModel\n | ExtendedFeaturesBlockModel\n | PromoFeaturesBlockModel\n | QuestionsBlockModel\n | FoldableListBlockModel\n | BannerBlockModel\n | CompaniesBlockModel\n | MediaBlockModel\n | MapBlockModel\n | InfoBlockModel\n | TableBlockModel\n | TabsBlockModel\n | HeaderBlockModel\n | IconsBlockModel\n | HeaderSliderBlockModel\n | CardLayoutBlockModel\n | ContentLayoutBlockModel\n | ShareBLockModel\n | FilterBlockModel\n | FormBlockModel;\n\nexport type Block = BlockModels & BlockBaseProps;\n"]}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"../../../../src","sources":["models/constructor-items/blocks.ts"],"names":[],"mappings":";;;AA2CA,IAAY,SAuBX;AAvBD,WAAY,SAAS;IACjB,wDAA2C,CAAA;IAC3C,8DAAiD,CAAA;IACjD,kBAAkB;IAClB,gDAAmC,CAAA;IACnC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,uCAA0B,CAAA;IAC1B,kDAAqC,CAAA;IACrC,wDAA2C,CAAA;IAC3C,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;AAC5B,CAAC,EAvBW,SAAS,yBAAT,SAAS,QAuBpB;AAEY,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACtC,QAAA,gBAAgB,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAgCrF,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;AACb,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,gDAAkC,CAAA;AACtC,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAkUD,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,iCAAS,CAAA;IACT,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;AACzB,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B;AAOD,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACvB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,kDAA4B,CAAA;IAC5B,kDAA4B,CAAA;IAC5B,uCAAiB,CAAA;AACrB,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {GridColumnSize, GridColumnSizesType, IndentValue} from '../../grid/types';\nimport {ThemeSupporting} from '../../utils';\nimport {AnalyticsEventsBase} from '../common';\n\nimport {\n AnchorProps,\n Animatable,\n BackgroundImageProps,\n ButtonProps,\n CardBorder,\n ContentSize,\n ContentTextSize,\n ContentTheme,\n FileLinkProps,\n HeaderBreadCrumbsProps,\n HeaderImageSize,\n HeaderOffset,\n HeaderWidth,\n ImageDeviceProps,\n ImageProps,\n Justify,\n LegendTableMarkerType,\n LinkProps,\n MapProps,\n MediaDirection,\n MediaProps,\n MediaView,\n TextSize,\n TextTheme,\n ThemedImage,\n ThemedMediaProps,\n ThemedMediaVideoProps,\n TitleItemBaseProps,\n TitleItemProps,\n WithBorder,\n YandexFormProps,\n} from './common';\nimport {BannerCardProps, HubspotFormProps, SubBlock, SubBlockModels} from './sub-blocks';\n\nexport enum BlockType {\n PromoFeaturesBlock = 'promo-features-block',\n ExtendedFeaturesBlock = 'extended-features-block',\n /** @deprecated */\n SliderOldBlock = 'slider-old-block',\n SliderBlock = 'slider-block',\n QuestionsBlock = 'questions-block',\n FoldableListBlock = 'foldable-list-block',\n BannerBlock = 'banner-block',\n CompaniesBlock = 'companies-block',\n MediaBlock = 'media-block',\n InfoBlock = 'info-block',\n TableBlock = 'table-block',\n TabsBlock = 'tabs-block',\n HeaderSliderBlock = 'header-slider-block',\n HeaderBlock = 'header-block',\n IconsBlock = 'icons-block',\n CardLayoutBlock = 'card-layout-block',\n ContentLayoutBlock = 'content-layout-block',\n ShareBlock = 'share-block',\n MapBlock = 'map-block',\n FilterBlock = 'filter-block',\n FormBlock = 'form-block',\n}\n\nexport const BlockTypes = Object.values(BlockType);\nexport const HeaderBlockTypes = [BlockType.HeaderBlock, BlockType.HeaderSliderBlock];\n\nexport interface Childable {\n children?: SubBlock[];\n}\n\n//block props\nexport interface BlockBaseProps {\n anchor?: AnchorProps;\n visible?: GridColumnSize;\n /** @deprecated */\n resetPaddings?: boolean;\n indent?: {\n top?: IndentValue;\n bottom?: IndentValue;\n };\n qa?: string;\n}\n\nexport interface LoadableProps {\n source: string;\n /**\n * @deprecated Will be moved to params\n */\n serviceId?: number;\n params?: Record<string, string | number | boolean | object>;\n}\n\nexport interface LoadableChildren {\n loadable?: LoadableProps;\n}\n\nexport enum SliderBreakpointNames {\n Sm = 'sm',\n Md = 'md',\n Lg = 'lg',\n Xl = 'xl',\n}\n\nexport enum SliderType {\n MediaCard = 'media-card',\n HeaderCard = 'header-card',\n FullscreenCard = 'fullscreen-card',\n}\n\nexport type SliderBreakpointParams = Record<SliderBreakpointNames, number>;\nexport type SlidesToShow = Partial<SliderBreakpointParams> | number;\n\nexport interface SliderOldProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps | string;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface SliderProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps | string;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface HeaderSliderBlockProps extends Omit<SliderOldProps, 'title' | 'description'> {\n items: HeaderBlockProps[];\n}\n\ninterface HeaderBackgroundProps {\n /** @deprecated replaced by Media Props image */\n url?: string;\n /** @deprecated replaced by Media Props image */\n disableCompress?: boolean;\n}\n\nexport interface HeaderBlockBackground extends Partial<HeaderBackgroundProps>, Partial<MediaProps> {\n fullWidth?: boolean;\n fullWidthMedia?: boolean;\n}\n\nexport type ThemedHeaderBlockBackground = ThemeSupporting<HeaderBlockBackground>;\n\nexport interface HeaderBlockProps {\n title: string;\n overtitle?: string | JSX.Element;\n description?: string;\n additionalInfo?: string;\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme' | 'primary' | 'size' | 'extraProps'>[];\n width?: HeaderWidth;\n /** @deprecated imageSize now depends on width */\n imageSize?: HeaderImageSize;\n /**\n * @deprecated used only on the main page\n * TODO: delete after the possibility to remove padding-bottom in the block\n */\n offset?: HeaderOffset;\n image?: ThemedImage;\n video?: ThemedMediaVideoProps;\n mediaView?: MediaView;\n centered?: boolean;\n background?: ThemedHeaderBlockBackground;\n theme?: 'light' | 'dark';\n verticalOffset?: '0' | 's' | 'm' | 'l' | 'xl';\n breadcrumbs?: HeaderBreadCrumbsProps;\n status?: JSX.Element;\n renderTitle?: (title: string) => React.ReactNode;\n}\n\nexport interface ExtendedFeaturesItem\n extends Omit<ContentBlockProps, 'theme' | 'centered' | 'colSizes' | 'size' | 'title'> {\n title: string;\n label?: string;\n icon?: ThemedImage;\n /** @deprecated **/\n link?: LinkProps;\n}\n\nexport interface ExtendedFeaturesProps extends Animatable {\n items: ExtendedFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n colSizes?: GridColumnSizesType;\n}\n\nexport interface PromoFeaturesItem {\n title: string;\n text: string;\n theme?: 'accent' | 'accent-light' | 'primary';\n media?: ThemeSupporting<MediaProps>;\n}\n\nexport interface PromoFeaturesProps extends Animatable {\n items: PromoFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n theme?: 'grey' | 'default';\n}\n\nexport interface QuestionItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface QuestionsProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: QuestionItem[];\n}\n\nexport interface QuestionBlockItemProps extends QuestionItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface FoldableListItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface FoldableListProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: FoldableListItem[];\n}\n\nexport interface FoldableListBlockItemProps extends FoldableListItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface BannerBlockProps extends BannerCardProps, Animatable {}\n\nexport interface CompaniesBlockProps extends Animatable {\n title: string;\n description?: string;\n images: ThemeSupporting<ImageDeviceProps>;\n}\n\nexport interface MediaBaseBlockProps extends Animatable, MediaContentProps {\n direction?: MediaDirection;\n mobileDirection?: MediaDirection;\n largeMedia?: boolean;\n mediaOnly?: boolean;\n mediaOnlyColSizes?: GridColumnSizesType;\n}\n\nexport interface MediaContentProps\n extends Omit<ContentBlockProps, 'colSizes' | 'text' | 'title' | 'theme' | 'centered'> {\n title: string;\n description?: string;\n /** @deprecated Use array of buttons from ContentBlockProps instead**/\n button?: ButtonProps;\n}\n\nexport interface MediaBlockProps extends MediaBaseBlockProps, WithBorder {\n media: ThemeSupporting<MediaProps>;\n}\n\nexport interface MapBlockProps extends MediaBaseBlockProps, WithBorder {\n map: MapProps;\n}\n\nexport interface InfoBlockProps {\n theme?: TextTheme;\n backgroundColor?: ThemeSupporting<string>;\n /** @deprecated **/\n title?: string;\n /** @deprecated **/\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme'>[];\n /** @deprecated **/\n sectionsTitle?: string;\n /** @deprecated **/\n links?: Pick<LinkProps, 'text' | 'url'>[];\n leftContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n rightContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n}\n\nexport interface TableProps {\n content: string[][];\n legend?: string[];\n hideLegend?: boolean;\n justify?: Justify[];\n marker?: LegendTableMarkerType;\n /**\n * Only as accessible name, not displayed explicitly\n */\n caption?: string;\n}\n\nexport interface TableBlockProps {\n title: string;\n table: TableProps;\n}\n\nexport interface TabsBlockItem\n extends Omit<ContentBlockProps, 'size' | 'colSizes' | 'centered' | 'theme'>,\n WithBorder {\n tabName: string;\n /**\n * @deprecated Use array links from ContentBlockProps instead\n */\n link?: LinkProps;\n image?: ThemedImage;\n caption?: string;\n media?: ThemedMediaProps;\n}\n\nexport interface TabsBlockProps extends Animatable {\n title?: TitleItemProps | string;\n description?: string;\n tabsColSizes?: GridColumnSizesType;\n centered?: boolean;\n direction?: MediaDirection;\n items: TabsBlockItem[];\n contentSize?: ContentSize;\n}\n\nexport interface CardLayoutBlockProps extends Childable, Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n titleClassName?: string;\n description?: string;\n colSizes?: GridColumnSizesType;\n background?: ThemeSupporting<\n BackgroundImageProps & {\n border?: CardBorder;\n }\n >;\n}\n\nexport type FilterTag = {\n id: string;\n label: string;\n};\n\nexport type FilterItem = {\n tags: string[];\n card: SubBlockModels;\n};\n\nexport interface FilterBlockProps extends Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n description?: string;\n tags: FilterTag[];\n items: FilterItem[];\n tagButtonSize?: ButtonSize;\n allTag?: boolean | string;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n}\n\nexport interface IconsBlockItemProps extends AnalyticsEventsBase {\n url: string;\n text: string;\n src: ThemeSupporting<string>;\n}\n\nexport interface IconsBlockProps {\n title?: string;\n description?: string;\n size?: 's' | 'm' | 'l';\n items: IconsBlockItemProps[];\n colSizes?: GridColumnSizesType;\n}\n\ninterface ContentLayoutBlockParams {\n size?: ContentSize;\n background?: ThemeSupporting<BackgroundImageProps>;\n centered?: boolean;\n theme?: ContentTheme;\n textWidth?: ContentTextSize;\n}\n\nexport interface ContentLayoutBlockProps extends ContentLayoutBlockParams {\n textContent: ContentBlockProps;\n fileContent?: FileLinkProps[];\n}\n\nexport type SVGIcon = React.FC<React.SVGProps<SVGSVGElement>>;\n\nexport interface ContentItemProps {\n title?: string;\n text?: string;\n icon: ThemeSupporting<ImageProps | SVGIcon>;\n}\n\nexport interface ContentListProps {\n list: ContentItemProps[];\n size: ContentSize;\n theme?: ContentTheme;\n}\n\nexport interface ContentBlockProps {\n title?: TitleItemBaseProps | string;\n titleId?: string;\n text?: string;\n textId?: string;\n additionalInfo?: string;\n links?: LinkProps[];\n buttons?: ButtonProps[];\n size?: ContentSize;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n theme?: ContentTheme;\n list?: ContentItemProps[];\n controlPosition?: 'default' | 'bottom';\n}\n\nexport enum PCShareSocialNetwork {\n Vk = 'vk',\n Telegram = 'telegram',\n Twitter = 'twitter',\n Facebook = 'facebook',\n LinkedIn = 'linkedin',\n}\n\nexport interface ShareBlockProps {\n items: PCShareSocialNetwork[];\n title?: string;\n}\n\nexport enum FormBlockDataTypes {\n YANDEX = 'yandex',\n HUBSPOT = 'hubspot',\n}\n\nexport enum FormBlockDirection {\n FormContent = 'form-content',\n ContentForm = 'content-form',\n Center = 'center',\n}\n\nexport interface FormBlockYandexData {\n yandex: ThemeSupporting<YandexFormProps>;\n}\n\nexport interface FormBlockHubspotData {\n hubspot: ThemeSupporting<HubspotFormProps>;\n}\n\nexport type FormBlockData = FormBlockYandexData | FormBlockHubspotData;\n\nexport interface FormBlockProps {\n formData: FormBlockData;\n title?: string;\n textContent?: Omit<ContentBlockProps, 'centered' | 'colSizes' | 'size'>;\n direction?: FormBlockDirection;\n background?: ThemeSupporting<BackgroundImageProps>;\n}\n\n//block models\nexport type HeaderBlockModel = {\n type: BlockType.HeaderBlock;\n} & HeaderBlockProps;\n\nexport type SliderOldBlockModel = {\n type: BlockType.SliderOldBlock;\n} & SliderOldProps;\n\nexport type ExtendedFeaturesBlockModel = {\n type: BlockType.ExtendedFeaturesBlock;\n} & ExtendedFeaturesProps;\n\nexport type PromoFeaturesBlockModel = {\n type: BlockType.PromoFeaturesBlock;\n} & PromoFeaturesProps;\n\nexport type QuestionsBlockModel = {\n type: BlockType.QuestionsBlock;\n} & QuestionsProps;\n\nexport type FoldableListBlockModel = {\n type: BlockType.FoldableListBlock;\n} & FoldableListProps;\n\nexport type BannerBlockModel = {\n type: BlockType.BannerBlock;\n} & BannerBlockProps;\n\nexport type CompaniesBlockModel = {\n type: BlockType.CompaniesBlock;\n} & CompaniesBlockProps;\n\nexport type MediaBlockModel = {\n type: BlockType.MediaBlock;\n} & MediaBlockProps;\n\nexport type MapBlockModel = {\n type: BlockType.MapBlock;\n} & MapBlockProps;\n\nexport type InfoBlockModel = {\n type: BlockType.InfoBlock;\n} & InfoBlockProps;\n\nexport type TableBlockModel = {\n type: BlockType.TableBlock;\n} & TableBlockProps;\n\nexport type TabsBlockModel = {\n type: BlockType.TabsBlock;\n} & TabsBlockProps;\n\nexport type CardLayoutBlockModel = {\n type: BlockType.CardLayoutBlock;\n} & CardLayoutBlockProps;\n\nexport type FilterBlockModel = {\n type: BlockType.FilterBlock;\n} & FilterBlockProps;\n\nexport type IconsBlockModel = {\n type: BlockType.IconsBlock;\n} & IconsBlockProps;\n\nexport type HeaderSliderBlockModel = {\n type: BlockType.HeaderSliderBlock;\n} & HeaderSliderBlockProps;\n\nexport type ContentLayoutBlockModel = {\n type: BlockType.ContentLayoutBlock;\n} & ContentLayoutBlockProps;\n\nexport type ShareBLockModel = {\n type: BlockType.ShareBlock;\n} & ShareBlockProps;\n\nexport type FormBlockModel = {\n type: BlockType.FormBlock;\n} & FormBlockProps;\n\nexport type SliderBlockModel = {\n type: BlockType.SliderBlock;\n} & SliderProps;\n\ntype BlockModels =\n | SliderOldBlockModel\n | SliderBlockModel\n | ExtendedFeaturesBlockModel\n | PromoFeaturesBlockModel\n | QuestionsBlockModel\n | FoldableListBlockModel\n | BannerBlockModel\n | CompaniesBlockModel\n | MediaBlockModel\n | MapBlockModel\n | InfoBlockModel\n | TableBlockModel\n | TabsBlockModel\n | HeaderBlockModel\n | IconsBlockModel\n | HeaderSliderBlockModel\n | CardLayoutBlockModel\n | ContentLayoutBlockModel\n | ShareBLockModel\n | FilterBlockModel\n | FormBlockModel;\n\nexport type Block = BlockModels & BlockBaseProps;\n"]}
@@ -35,7 +35,9 @@ export const SliderBlock = ({ animated, title, description, type, anchorId, arro
35
35
  });
36
36
  return (_jsxs("div", { className: b({
37
37
  'one-slide': childrenCount === 1,
38
- 'only-arrows': !title?.text && !description && arrows,
38
+ 'only-arrows': (!title || (typeof title !== 'string' && !title?.text)) &&
39
+ !description &&
40
+ arrows,
39
41
  'without-dots': !dots || isLocked,
40
42
  type,
41
43
  }, blockClassName), children: [anchorId && _jsx(Anchor, { id: anchorId }), _jsx(Title, { title: title, subtitle: description, className: b('header', { 'no-description': !description }) }), _jsxs(AnimateBlock, { className: b('animate-slides'), animate: animated, children: [_jsx(SwiperReact, { className: b('slider', className), onSwiper: onSwiper, speed: 1000, autoplay: autoplay, autoHeight: adaptive, initialSlide: initialSlide, noSwiping: false, breakpoints: breakpoints, onSlideChange: onSlideChange, onSlideChangeTransitionStart: onSlideChangeTransitionStart, onSlideChangeTransitionEnd: onSlideChangeTransitionEnd, onActiveIndexChange: onActiveIndexChange, onBreakpoint: onBreakpoint, onLock: () => setIsLocked(true), onUnlock: () => setIsLocked(false), onImagesReady: onImagesReady, watchSlidesVisibility: true, watchOverflow: true, a11y: {
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sourceRoot":"../../../../src","sources":["blocks/Slider/Slider.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport Swiper, {A11y, Autoplay, Pagination} from 'swiper';\nimport {Swiper as SwiperReact, SwiperSlide} from 'swiper/react';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport Title from '../../components/Title/Title';\nimport {ClassNameProps, Refable, SliderProps as SliderParams, SliderType} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {useSlider} from './useSlider';\nimport {useSliderPagination} from './useSliderPagination';\n\nimport './Slider.scss';\nimport 'swiper/swiper-bundle.css';\n\nexport type {Swiper, SwiperOptions} from 'swiper';\n\nconst b = block('SliderBlock');\n\nexport interface SliderProps\n extends Omit<SliderParams, 'children'>,\n Partial<\n Pick<\n SwiperReact,\n | 'onSlideChange'\n | 'onSlideChangeTransitionStart'\n | 'onSlideChangeTransitionEnd'\n | 'onActiveIndexChange'\n | 'onBreakpoint'\n >\n >,\n Refable<HTMLDivElement>,\n ClassNameProps {\n type?: string;\n anchorId?: string;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialSlide?: number;\n}\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nSwiper.use([Autoplay, A11y, Pagination]);\n\nexport const SliderBlock = ({\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplayMs,\n dots = true,\n initialSlide = 0,\n className,\n dotsClassName,\n disclaimer,\n children,\n blockClassName,\n arrowSize,\n slidesToShow,\n onSlideChange,\n onSlideChangeTransitionStart,\n onSlideChangeTransitionEnd,\n onActiveIndexChange,\n onBreakpoint,\n}: React.PropsWithChildren<SliderProps>) => {\n const {\n autoplay,\n isLocked,\n childrenCount,\n breakpoints,\n onSwiper,\n onImagesReady,\n onPrev,\n onNext,\n setIsLocked,\n } = useSlider({\n slidesToShow,\n children,\n type,\n autoplayMs,\n });\n\n const isA11yControlHidden = Boolean(autoplay);\n const controlTabIndex = isA11yControlHidden ? -1 : 0;\n\n const paginationProps = useSliderPagination({\n enabled: dots,\n isA11yControlHidden,\n controlTabIndex,\n bulletClass: b('dot', dotsClassName),\n bulletActiveClass: b('dot_active'),\n paginationLabel: i18n('pagination-label'),\n });\n\n return (\n <div\n className={b(\n {\n 'one-slide': childrenCount === 1,\n 'only-arrows': !title?.text && !description && arrows,\n 'without-dots': !dots || isLocked,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n <SwiperReact\n className={b('slider', className)}\n onSwiper={onSwiper}\n speed={1000}\n autoplay={autoplay}\n autoHeight={adaptive}\n initialSlide={initialSlide}\n noSwiping={false}\n breakpoints={breakpoints}\n onSlideChange={onSlideChange}\n onSlideChangeTransitionStart={onSlideChangeTransitionStart}\n onSlideChangeTransitionEnd={onSlideChangeTransitionEnd}\n onActiveIndexChange={onActiveIndexChange}\n onBreakpoint={onBreakpoint}\n onLock={() => setIsLocked(true)}\n onUnlock={() => setIsLocked(false)}\n onImagesReady={onImagesReady}\n watchSlidesVisibility\n watchOverflow\n a11y={{\n slideLabelMessage: '',\n paginationBulletMessage: i18n('dot-label', {index: '{{index}}'}),\n }}\n {...paginationProps}\n >\n {React.Children.map(children, (elem, index) => (\n <SwiperSlide className={b('slide')} key={index}>\n {({isVisible}) => (\n <div\n className={b('slide-item')}\n aria-hidden={!isA11yControlHidden && !isVisible}\n >\n {elem}\n </div>\n )}\n </SwiperSlide>\n ))}\n </SwiperReact>\n {arrows && !isLocked && (\n <React.Fragment>\n <div aria-hidden={isA11yControlHidden}>\n <Arrow\n className={b('arrow', {prev: true})}\n type=\"left\"\n transparent={type === SliderType.HeaderCard}\n onClick={onPrev}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n <Arrow\n className={b('arrow', {next: true})}\n type=\"right\"\n transparent={type === SliderType.HeaderCard}\n onClick={onNext}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n </div>\n </React.Fragment>\n )}\n <div className={b('footer')}>\n {disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer?.size || 'm'})}>\n {disclaimer?.text}\n </div>\n ) : null}\n </div>\n </AnimateBlock>\n </div>\n );\n};\n\nexport default SliderBlock;\n"]}
1
+ {"version":3,"file":"Slider.js","sourceRoot":"../../../../src","sources":["blocks/Slider/Slider.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport Swiper, {A11y, Autoplay, Pagination} from 'swiper';\nimport {Swiper as SwiperReact, SwiperSlide} from 'swiper/react';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport Title from '../../components/Title/Title';\nimport {ClassNameProps, Refable, SliderProps as SliderParams, SliderType} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {useSlider} from './useSlider';\nimport {useSliderPagination} from './useSliderPagination';\n\nimport './Slider.scss';\nimport 'swiper/swiper-bundle.css';\n\nexport type {Swiper, SwiperOptions} from 'swiper';\n\nconst b = block('SliderBlock');\n\nexport interface SliderProps\n extends Omit<SliderParams, 'children'>,\n Partial<\n Pick<\n SwiperReact,\n | 'onSlideChange'\n | 'onSlideChangeTransitionStart'\n | 'onSlideChangeTransitionEnd'\n | 'onActiveIndexChange'\n | 'onBreakpoint'\n >\n >,\n Refable<HTMLDivElement>,\n ClassNameProps {\n type?: string;\n anchorId?: string;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialSlide?: number;\n}\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nSwiper.use([Autoplay, A11y, Pagination]);\n\nexport const SliderBlock = ({\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplayMs,\n dots = true,\n initialSlide = 0,\n className,\n dotsClassName,\n disclaimer,\n children,\n blockClassName,\n arrowSize,\n slidesToShow,\n onSlideChange,\n onSlideChangeTransitionStart,\n onSlideChangeTransitionEnd,\n onActiveIndexChange,\n onBreakpoint,\n}: React.PropsWithChildren<SliderProps>) => {\n const {\n autoplay,\n isLocked,\n childrenCount,\n breakpoints,\n onSwiper,\n onImagesReady,\n onPrev,\n onNext,\n setIsLocked,\n } = useSlider({\n slidesToShow,\n children,\n type,\n autoplayMs,\n });\n\n const isA11yControlHidden = Boolean(autoplay);\n const controlTabIndex = isA11yControlHidden ? -1 : 0;\n\n const paginationProps = useSliderPagination({\n enabled: dots,\n isA11yControlHidden,\n controlTabIndex,\n bulletClass: b('dot', dotsClassName),\n bulletActiveClass: b('dot_active'),\n paginationLabel: i18n('pagination-label'),\n });\n\n return (\n <div\n className={b(\n {\n 'one-slide': childrenCount === 1,\n 'only-arrows':\n (!title || (typeof title !== 'string' && !title?.text)) &&\n !description &&\n arrows,\n 'without-dots': !dots || isLocked,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n <SwiperReact\n className={b('slider', className)}\n onSwiper={onSwiper}\n speed={1000}\n autoplay={autoplay}\n autoHeight={adaptive}\n initialSlide={initialSlide}\n noSwiping={false}\n breakpoints={breakpoints}\n onSlideChange={onSlideChange}\n onSlideChangeTransitionStart={onSlideChangeTransitionStart}\n onSlideChangeTransitionEnd={onSlideChangeTransitionEnd}\n onActiveIndexChange={onActiveIndexChange}\n onBreakpoint={onBreakpoint}\n onLock={() => setIsLocked(true)}\n onUnlock={() => setIsLocked(false)}\n onImagesReady={onImagesReady}\n watchSlidesVisibility\n watchOverflow\n a11y={{\n slideLabelMessage: '',\n paginationBulletMessage: i18n('dot-label', {index: '{{index}}'}),\n }}\n {...paginationProps}\n >\n {React.Children.map(children, (elem, index) => (\n <SwiperSlide className={b('slide')} key={index}>\n {({isVisible}) => (\n <div\n className={b('slide-item')}\n aria-hidden={!isA11yControlHidden && !isVisible}\n >\n {elem}\n </div>\n )}\n </SwiperSlide>\n ))}\n </SwiperReact>\n {arrows && !isLocked && (\n <React.Fragment>\n <div aria-hidden={isA11yControlHidden}>\n <Arrow\n className={b('arrow', {prev: true})}\n type=\"left\"\n transparent={type === SliderType.HeaderCard}\n onClick={onPrev}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n <Arrow\n className={b('arrow', {next: true})}\n type=\"right\"\n transparent={type === SliderType.HeaderCard}\n onClick={onNext}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n </div>\n </React.Fragment>\n )}\n <div className={b('footer')}>\n {disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer?.size || 'm'})}>\n {disclaimer?.text}\n </div>\n ) : null}\n </div>\n </AnimateBlock>\n </div>\n );\n};\n\nexport default SliderBlock;\n"]}
@@ -249,7 +249,9 @@ export const SliderOldBlock = (props) => {
249
249
  return (_jsx(StylesContext.Provider, { value: { ...childStyles, setStyles: setChildStyles }, children: _jsxs("div", { className: b({
250
250
  'align-left': childrenCount < slidesCountByBreakpoint,
251
251
  'one-slide': childrenCount === 1,
252
- 'only-arrows': !title?.text && !description && arrows,
252
+ 'only-arrows': (!title || (typeof title !== 'string' && !title?.text)) &&
253
+ !description &&
254
+ arrows,
253
255
  mobile: isMobile,
254
256
  type,
255
257
  }, blockClassName), children: [anchorId && _jsx(Anchor, { id: anchorId }), _jsx(Title, { title: title, subtitle: description, className: b('header', { 'no-description': !description }) }), _jsx(AnimateBlock, { className: b('animate-slides'), animate: animated, children: renderSlider() })] }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"SliderOld.js","sourceRoot":"../../../../src","sources":["blocks/SliderOld/SliderOld.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {useUniqId} from '@gravity-ui/uikit';\nimport debounce from 'lodash/debounce';\nimport get from 'lodash/get';\nimport noop from 'lodash/noop';\nimport SlickSlider, {Settings} from 'react-slick';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport OutsideClick from '../../components/OutsideClick/OutsideClick';\nimport Title from '../../components/Title/Title';\nimport {BREAKPOINTS} from '../../constants';\nimport {MobileContext} from '../../context/mobileContext';\nimport {SSRContext} from '../../context/ssrContext';\nimport {StylesContext} from '../../context/stylesContext/StylesContext';\nimport useFocus from '../../hooks/useFocus';\nimport {\n ClassNameProps,\n Refable,\n SliderOldProps as SliderParams,\n SliderType,\n Timeout,\n} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow, {ArrowType} from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {SliderBreakpointParams} from './models';\nimport {\n getSliderResponsiveParams,\n getSlidesCountByBreakpoint,\n getSlidesToShowCount,\n getSlidesToShowWithDefaults,\n isFocusable,\n useRovingTabIndex,\n} from './utils';\n\nimport './SliderOld.scss';\n\nconst b = block('SliderOldBlock');\nconst slick = block('slick-origin');\n\nconst DOT_WIDTH = 8;\nconst DOT_GAP = 16;\n\n/** @deprecated */\nexport interface SliderOldProps\n extends Omit<SliderParams, 'children'>,\n Refable<HTMLDivElement>,\n ClassNameProps,\n Pick<Settings, 'lazyLoad'> {\n type?: string;\n anchorId?: string;\n onAfterChange?: (index: number) => void;\n onBeforeChange?: (current: number, next: number) => void;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialIndex?: number;\n}\n\n// eslint-disable-next-line valid-jsdoc\n/** @deprecated */\nexport const SliderOldBlock = (props: React.PropsWithChildren<SliderOldProps>) => {\n const {\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplaySpeed,\n dots = true,\n dotsClassName,\n disclaimer,\n children,\n className,\n blockClassName,\n lazyLoad,\n arrowSize,\n onAfterChange: handleAfterChange,\n onBeforeChange: handleBeforeChange,\n initialIndex = 0,\n } = props;\n\n const {isServer} = React.useContext(SSRContext);\n const isMobile = React.useContext(MobileContext);\n const [breakpoint, setBreakpoint] = React.useState<number>(BREAKPOINTS.xl);\n const sliderId = useUniqId();\n const disclosedChildren = React.useMemo<React.ReactElement[]>(\n () => discloseAllNestedChildren(children as React.ReactElement[], sliderId),\n [children, sliderId],\n );\n const childrenCount = disclosedChildren.length;\n const isAutoplayEnabled = autoplaySpeed !== undefined && autoplaySpeed > 0;\n const isUserInteractionRef = React.useRef(false);\n\n const [slidesToShow] = React.useState<SliderBreakpointParams>(\n getSlidesToShowWithDefaults({\n contentLength: childrenCount,\n breakpoints: props.slidesToShow,\n mobileFullscreen: Boolean(\n props.type && Object.values(SliderType).includes(props.type as SliderType),\n ),\n }),\n );\n\n const slidesToShowCount = getSlidesToShowCount(slidesToShow);\n const slidesCountByBreakpoint = getSlidesCountByBreakpoint(breakpoint, slidesToShow);\n\n const [currentIndex, setCurrentIndex] = React.useState<number>(initialIndex);\n const [childStyles, setChildStyles] = React.useState<Object>({});\n const [slider, setSlider] = React.useState<SlickSlider>();\n const prevIndexRef = React.useRef<number>(0);\n const autoplayTimeId = React.useRef<Timeout>();\n const {hasFocus, unsetFocus} = useFocus(slider?.innerSlider?.list);\n\n const asUserInteraction =\n <T extends unknown[], R>(fn: (...args: T) => R) =>\n (...args: T): R => {\n isUserInteractionRef.current = true;\n return fn(...args);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onResize = React.useCallback(\n debounce(() => {\n if (!slider) {\n return;\n }\n\n const newBreakpoint = get(slider, 'state.breakpoint') || BREAKPOINTS.xl;\n\n if (newBreakpoint !== breakpoint) {\n setBreakpoint(newBreakpoint);\n setCurrentIndex(0);\n\n slider.slickGoTo(0);\n }\n }, 100),\n [slider, breakpoint],\n );\n\n const scrollLastSlide = React.useCallback(\n (current: number) => {\n const lastSlide = childrenCount - slidesToShowCount;\n\n if (isAutoplayEnabled && lastSlide === current) {\n // Slick doesn't support autoplay with no infinity scroll\n autoplayTimeId.current = setTimeout(() => {\n if (slider) {\n slider.slickGoTo(0, false);\n slider.slickPause();\n }\n setTimeout(() => {\n if (slider) {\n slider.slickPlay();\n }\n }, 500);\n }, autoplaySpeed);\n }\n },\n [autoplaySpeed, childrenCount, isAutoplayEnabled, slider, slidesToShowCount],\n );\n\n React.useEffect(() => {\n if (hasFocus && autoplayTimeId.current) {\n clearTimeout(autoplayTimeId.current);\n } else {\n scrollLastSlide(currentIndex);\n }\n }, [currentIndex, hasFocus, scrollLastSlide]);\n\n React.useEffect(() => {\n onResize();\n\n window.addEventListener('resize', onResize, {passive: true});\n\n return () => window.removeEventListener('resize', onResize);\n }, [onResize]);\n\n const handleArrowClick = (direction: ArrowType) => {\n let nextIndex;\n\n if (direction === 'right') {\n nextIndex =\n currentIndex === childrenCount - slidesCountByBreakpoint ? 0 : currentIndex + 1;\n } else {\n nextIndex =\n currentIndex === 0 ? childrenCount - slidesCountByBreakpoint : currentIndex - 1;\n }\n\n if (slider) {\n slider.slickGoTo(nextIndex);\n }\n };\n\n const onBeforeChange = React.useCallback(\n (current: number, next: number) => {\n if (handleBeforeChange) {\n handleBeforeChange(current, next);\n }\n\n prevIndexRef.current = current;\n\n setCurrentIndex(Math.ceil(next));\n },\n [handleBeforeChange],\n );\n\n const onAfterChange = React.useCallback(\n (current: number) => {\n if (handleAfterChange) {\n handleAfterChange(current);\n }\n\n if (autoplayTimeId.current) {\n clearTimeout(autoplayTimeId.current);\n }\n\n if (!hasFocus) {\n scrollLastSlide(current);\n }\n\n if (isUserInteractionRef.current) {\n const focusIndex =\n prevIndexRef.current >= current\n ? current\n : Math.max(current, prevIndexRef.current + slidesCountByBreakpoint);\n\n const firstNewSlide = document.getElementById(getSlideId(sliderId, focusIndex));\n if (firstNewSlide) {\n const focusableChild = Array.from(firstNewSlide.querySelectorAll('*')).find(\n isFocusable,\n ) as HTMLElement | undefined;\n focusableChild?.focus();\n }\n }\n\n isUserInteractionRef.current = false;\n },\n [handleAfterChange, hasFocus, scrollLastSlide, sliderId, slidesCountByBreakpoint],\n );\n\n const handleDotClick = (index: number) => {\n const nextIndex = index > currentIndex ? index + 1 - slidesCountByBreakpoint : index;\n\n if (slider) {\n slider.slickGoTo(nextIndex);\n }\n };\n\n const barSlidesCount = childrenCount - slidesCountByBreakpoint + 1;\n const barPosition = (DOT_GAP + DOT_WIDTH) * currentIndex;\n const barWidth = DOT_WIDTH + (DOT_GAP + DOT_WIDTH) * (slidesCountByBreakpoint - 1);\n\n const {getRovingItemProps, rovingListProps} = useRovingTabIndex({\n itemCount: barSlidesCount,\n activeIndex: currentIndex + 1,\n firstIndex: 1,\n uniqId: sliderId,\n });\n\n const renderBar = () => {\n return (\n slidesCountByBreakpoint > 1 && (\n <li\n className={b('bar')}\n style={{\n left: barPosition,\n width: barWidth,\n }}\n />\n )\n );\n };\n\n // renders additional bar, not visible in the layout but visible for screenreaders\n const renderAccessibleBar = (index: number) => {\n return (\n // To have this key differ from keys used in renderDot function, added `-accessible-bar` part\n <React.Fragment key={`${index}-accessible-bar`}>\n {slidesCountByBreakpoint > 0 && (\n <li\n className={b('accessible-bar')}\n role=\"menuitemradio\"\n aria-checked\n aria-label={i18n('dot-label', {\n index: currentIndex + 1,\n count: barSlidesCount,\n })}\n style={{\n left: barPosition,\n width: barWidth,\n }}\n {...getRovingItemProps(currentIndex + 1)}\n />\n )}\n </React.Fragment>\n );\n };\n\n const getCurrentSlideNumber = (index: number) => {\n const currentIndexDiff = index - currentIndex;\n\n let currentSlideNumber;\n if (0 <= currentIndexDiff && currentIndexDiff < slidesCountByBreakpoint) {\n currentSlideNumber = currentIndex + 1;\n } else if (currentIndexDiff >= slidesCountByBreakpoint) {\n currentSlideNumber = index - slidesCountByBreakpoint + 2;\n } else {\n currentSlideNumber = index + 1;\n }\n return currentSlideNumber;\n };\n const isVisibleSlide = (index: number) => {\n const currentIndexDiff = index - currentIndex;\n\n const result =\n slidesCountByBreakpoint > 0 &&\n 0 <= currentIndexDiff &&\n currentIndexDiff < slidesCountByBreakpoint;\n return result;\n };\n\n const renderDot = (index: number) => {\n const isVisible = isVisibleSlide(index);\n const currentSlideNumber = getCurrentSlideNumber(index);\n const rovingItemProps = isVisible ? undefined : getRovingItemProps(currentSlideNumber);\n return (\n <li\n key={index}\n className={b('dot', {active: index === currentIndex})}\n onClick={asUserInteraction(() => handleDotClick(index))}\n onKeyDown={(e) => {\n const key = e.key.toLowerCase();\n if (key === 'space' || key === 'enter') {\n e.currentTarget.click();\n }\n }}\n role=\"menuitemradio\"\n aria-checked={false}\n tabIndex={-1}\n aria-hidden={isVisible}\n aria-label={i18n('dot-label', {\n index: currentSlideNumber,\n count: barSlidesCount,\n })}\n {...rovingItemProps}\n />\n );\n };\n\n const renderNavigation = () => {\n if (childrenCount <= slidesCountByBreakpoint || !dots || childrenCount === 1) {\n return null;\n }\n const dotsList = Array(childrenCount)\n .fill(null)\n .map((_item, index) => renderDot(index));\n dotsList.splice(currentIndex, 0, renderAccessibleBar(currentIndex));\n\n return (\n <div className={b('dots', dotsClassName)}>\n <ul\n className={b('dots-list')}\n role=\"menu\"\n aria-label={i18n('pagination-label')}\n {...rovingListProps}\n >\n {renderBar()}\n {dotsList}\n </ul>\n </div>\n );\n };\n\n const renderDisclaimer = () => {\n return disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer.size || 'm'})}>{disclaimer.text}</div>\n ) : null;\n };\n\n const renderSlider = () => {\n /* Disable adding of width in inline styles when SSR to prevent overriding of default styles */\n /* Calculate appropriate breakpoint for mobile devices with user agent */\n const variableWidth = isServer && isMobile;\n\n const settings = {\n ref: (slickSlider: SlickSlider) => setSlider(slickSlider),\n className: slick(null, className),\n arrows,\n variableWidth,\n infinite: false,\n speed: 1000,\n adaptiveHeight: adaptive,\n autoplay: isAutoplayEnabled,\n autoplaySpeed,\n slidesToShow: slidesToShowCount,\n slidesToScroll: 1,\n responsive: getSliderResponsiveParams(slidesToShow),\n beforeChange: onBeforeChange,\n afterChange: onAfterChange,\n initialSlide: initialIndex,\n nextArrow: (\n <Arrow\n type=\"right\"\n handleClick={asUserInteraction(handleArrowClick)}\n size={arrowSize}\n />\n ),\n prevArrow: (\n <Arrow\n type=\"left\"\n handleClick={asUserInteraction(handleArrowClick)}\n size={arrowSize}\n />\n ),\n lazyLoad,\n accessibility: false,\n };\n\n return (\n <OutsideClick onOutsideClick={isMobile ? unsetFocus : noop}>\n <SlickSlider {...settings}>{disclosedChildren}</SlickSlider>\n <div className={b('footer')}>\n {renderDisclaimer()}\n {renderNavigation()}\n </div>\n </OutsideClick>\n );\n };\n\n return (\n <StylesContext.Provider value={{...childStyles, setStyles: setChildStyles}}>\n <div\n className={b(\n {\n 'align-left': childrenCount < slidesCountByBreakpoint,\n 'one-slide': childrenCount === 1,\n 'only-arrows': !title?.text && !description && arrows,\n mobile: isMobile,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n {renderSlider()}\n </AnimateBlock>\n </div>\n </StylesContext.Provider>\n );\n};\n\nfunction getSlideId(sliderId: string, index: number) {\n return `slider-${sliderId}-child-${index}`;\n}\n\n// TODO remove this and rework PriceDetailed CLOUDFRONT-12230\nfunction discloseAllNestedChildren(\n children: React.ReactElement[],\n sliderId: string,\n): React.ReactElement[] {\n if (!children) {\n return [];\n }\n\n let childIndex = 0;\n const wrapped = (child: React.ReactElement) => {\n const id = getSlideId(sliderId, childIndex++);\n\n return (\n <div key={id} id={id}>\n {child}\n </div>\n );\n };\n\n return React.Children.map(children, (child) => {\n if (child) {\n // TODO: if child has 'items' then 'items' determinate like nested children for Slider.\n const nestedChildren = child.props.data?.items;\n\n if (nestedChildren) {\n return nestedChildren.map((nestedChild: React.ReactElement) => {\n return wrapped(\n React.cloneElement(child, {\n data: {\n ...child.props.data,\n items: [nestedChild],\n },\n }),\n );\n });\n }\n }\n return child && wrapped(child);\n }).filter(Boolean);\n}\n\nexport default SliderOldBlock;\n"]}
1
+ {"version":3,"file":"SliderOld.js","sourceRoot":"../../../../src","sources":["blocks/SliderOld/SliderOld.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {useUniqId} from '@gravity-ui/uikit';\nimport debounce from 'lodash/debounce';\nimport get from 'lodash/get';\nimport noop from 'lodash/noop';\nimport SlickSlider, {Settings} from 'react-slick';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport OutsideClick from '../../components/OutsideClick/OutsideClick';\nimport Title from '../../components/Title/Title';\nimport {BREAKPOINTS} from '../../constants';\nimport {MobileContext} from '../../context/mobileContext';\nimport {SSRContext} from '../../context/ssrContext';\nimport {StylesContext} from '../../context/stylesContext/StylesContext';\nimport useFocus from '../../hooks/useFocus';\nimport {\n ClassNameProps,\n Refable,\n SliderOldProps as SliderParams,\n SliderType,\n Timeout,\n} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow, {ArrowType} from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {SliderBreakpointParams} from './models';\nimport {\n getSliderResponsiveParams,\n getSlidesCountByBreakpoint,\n getSlidesToShowCount,\n getSlidesToShowWithDefaults,\n isFocusable,\n useRovingTabIndex,\n} from './utils';\n\nimport './SliderOld.scss';\n\nconst b = block('SliderOldBlock');\nconst slick = block('slick-origin');\n\nconst DOT_WIDTH = 8;\nconst DOT_GAP = 16;\n\n/** @deprecated */\nexport interface SliderOldProps\n extends Omit<SliderParams, 'children'>,\n Refable<HTMLDivElement>,\n ClassNameProps,\n Pick<Settings, 'lazyLoad'> {\n type?: string;\n anchorId?: string;\n onAfterChange?: (index: number) => void;\n onBeforeChange?: (current: number, next: number) => void;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialIndex?: number;\n}\n\n// eslint-disable-next-line valid-jsdoc\n/** @deprecated */\nexport const SliderOldBlock = (props: React.PropsWithChildren<SliderOldProps>) => {\n const {\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplaySpeed,\n dots = true,\n dotsClassName,\n disclaimer,\n children,\n className,\n blockClassName,\n lazyLoad,\n arrowSize,\n onAfterChange: handleAfterChange,\n onBeforeChange: handleBeforeChange,\n initialIndex = 0,\n } = props;\n\n const {isServer} = React.useContext(SSRContext);\n const isMobile = React.useContext(MobileContext);\n const [breakpoint, setBreakpoint] = React.useState<number>(BREAKPOINTS.xl);\n const sliderId = useUniqId();\n const disclosedChildren = React.useMemo<React.ReactElement[]>(\n () => discloseAllNestedChildren(children as React.ReactElement[], sliderId),\n [children, sliderId],\n );\n const childrenCount = disclosedChildren.length;\n const isAutoplayEnabled = autoplaySpeed !== undefined && autoplaySpeed > 0;\n const isUserInteractionRef = React.useRef(false);\n\n const [slidesToShow] = React.useState<SliderBreakpointParams>(\n getSlidesToShowWithDefaults({\n contentLength: childrenCount,\n breakpoints: props.slidesToShow,\n mobileFullscreen: Boolean(\n props.type && Object.values(SliderType).includes(props.type as SliderType),\n ),\n }),\n );\n\n const slidesToShowCount = getSlidesToShowCount(slidesToShow);\n const slidesCountByBreakpoint = getSlidesCountByBreakpoint(breakpoint, slidesToShow);\n\n const [currentIndex, setCurrentIndex] = React.useState<number>(initialIndex);\n const [childStyles, setChildStyles] = React.useState<Object>({});\n const [slider, setSlider] = React.useState<SlickSlider>();\n const prevIndexRef = React.useRef<number>(0);\n const autoplayTimeId = React.useRef<Timeout>();\n const {hasFocus, unsetFocus} = useFocus(slider?.innerSlider?.list);\n\n const asUserInteraction =\n <T extends unknown[], R>(fn: (...args: T) => R) =>\n (...args: T): R => {\n isUserInteractionRef.current = true;\n return fn(...args);\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onResize = React.useCallback(\n debounce(() => {\n if (!slider) {\n return;\n }\n\n const newBreakpoint = get(slider, 'state.breakpoint') || BREAKPOINTS.xl;\n\n if (newBreakpoint !== breakpoint) {\n setBreakpoint(newBreakpoint);\n setCurrentIndex(0);\n\n slider.slickGoTo(0);\n }\n }, 100),\n [slider, breakpoint],\n );\n\n const scrollLastSlide = React.useCallback(\n (current: number) => {\n const lastSlide = childrenCount - slidesToShowCount;\n\n if (isAutoplayEnabled && lastSlide === current) {\n // Slick doesn't support autoplay with no infinity scroll\n autoplayTimeId.current = setTimeout(() => {\n if (slider) {\n slider.slickGoTo(0, false);\n slider.slickPause();\n }\n setTimeout(() => {\n if (slider) {\n slider.slickPlay();\n }\n }, 500);\n }, autoplaySpeed);\n }\n },\n [autoplaySpeed, childrenCount, isAutoplayEnabled, slider, slidesToShowCount],\n );\n\n React.useEffect(() => {\n if (hasFocus && autoplayTimeId.current) {\n clearTimeout(autoplayTimeId.current);\n } else {\n scrollLastSlide(currentIndex);\n }\n }, [currentIndex, hasFocus, scrollLastSlide]);\n\n React.useEffect(() => {\n onResize();\n\n window.addEventListener('resize', onResize, {passive: true});\n\n return () => window.removeEventListener('resize', onResize);\n }, [onResize]);\n\n const handleArrowClick = (direction: ArrowType) => {\n let nextIndex;\n\n if (direction === 'right') {\n nextIndex =\n currentIndex === childrenCount - slidesCountByBreakpoint ? 0 : currentIndex + 1;\n } else {\n nextIndex =\n currentIndex === 0 ? childrenCount - slidesCountByBreakpoint : currentIndex - 1;\n }\n\n if (slider) {\n slider.slickGoTo(nextIndex);\n }\n };\n\n const onBeforeChange = React.useCallback(\n (current: number, next: number) => {\n if (handleBeforeChange) {\n handleBeforeChange(current, next);\n }\n\n prevIndexRef.current = current;\n\n setCurrentIndex(Math.ceil(next));\n },\n [handleBeforeChange],\n );\n\n const onAfterChange = React.useCallback(\n (current: number) => {\n if (handleAfterChange) {\n handleAfterChange(current);\n }\n\n if (autoplayTimeId.current) {\n clearTimeout(autoplayTimeId.current);\n }\n\n if (!hasFocus) {\n scrollLastSlide(current);\n }\n\n if (isUserInteractionRef.current) {\n const focusIndex =\n prevIndexRef.current >= current\n ? current\n : Math.max(current, prevIndexRef.current + slidesCountByBreakpoint);\n\n const firstNewSlide = document.getElementById(getSlideId(sliderId, focusIndex));\n if (firstNewSlide) {\n const focusableChild = Array.from(firstNewSlide.querySelectorAll('*')).find(\n isFocusable,\n ) as HTMLElement | undefined;\n focusableChild?.focus();\n }\n }\n\n isUserInteractionRef.current = false;\n },\n [handleAfterChange, hasFocus, scrollLastSlide, sliderId, slidesCountByBreakpoint],\n );\n\n const handleDotClick = (index: number) => {\n const nextIndex = index > currentIndex ? index + 1 - slidesCountByBreakpoint : index;\n\n if (slider) {\n slider.slickGoTo(nextIndex);\n }\n };\n\n const barSlidesCount = childrenCount - slidesCountByBreakpoint + 1;\n const barPosition = (DOT_GAP + DOT_WIDTH) * currentIndex;\n const barWidth = DOT_WIDTH + (DOT_GAP + DOT_WIDTH) * (slidesCountByBreakpoint - 1);\n\n const {getRovingItemProps, rovingListProps} = useRovingTabIndex({\n itemCount: barSlidesCount,\n activeIndex: currentIndex + 1,\n firstIndex: 1,\n uniqId: sliderId,\n });\n\n const renderBar = () => {\n return (\n slidesCountByBreakpoint > 1 && (\n <li\n className={b('bar')}\n style={{\n left: barPosition,\n width: barWidth,\n }}\n />\n )\n );\n };\n\n // renders additional bar, not visible in the layout but visible for screenreaders\n const renderAccessibleBar = (index: number) => {\n return (\n // To have this key differ from keys used in renderDot function, added `-accessible-bar` part\n <React.Fragment key={`${index}-accessible-bar`}>\n {slidesCountByBreakpoint > 0 && (\n <li\n className={b('accessible-bar')}\n role=\"menuitemradio\"\n aria-checked\n aria-label={i18n('dot-label', {\n index: currentIndex + 1,\n count: barSlidesCount,\n })}\n style={{\n left: barPosition,\n width: barWidth,\n }}\n {...getRovingItemProps(currentIndex + 1)}\n />\n )}\n </React.Fragment>\n );\n };\n\n const getCurrentSlideNumber = (index: number) => {\n const currentIndexDiff = index - currentIndex;\n\n let currentSlideNumber;\n if (0 <= currentIndexDiff && currentIndexDiff < slidesCountByBreakpoint) {\n currentSlideNumber = currentIndex + 1;\n } else if (currentIndexDiff >= slidesCountByBreakpoint) {\n currentSlideNumber = index - slidesCountByBreakpoint + 2;\n } else {\n currentSlideNumber = index + 1;\n }\n return currentSlideNumber;\n };\n const isVisibleSlide = (index: number) => {\n const currentIndexDiff = index - currentIndex;\n\n const result =\n slidesCountByBreakpoint > 0 &&\n 0 <= currentIndexDiff &&\n currentIndexDiff < slidesCountByBreakpoint;\n return result;\n };\n\n const renderDot = (index: number) => {\n const isVisible = isVisibleSlide(index);\n const currentSlideNumber = getCurrentSlideNumber(index);\n const rovingItemProps = isVisible ? undefined : getRovingItemProps(currentSlideNumber);\n return (\n <li\n key={index}\n className={b('dot', {active: index === currentIndex})}\n onClick={asUserInteraction(() => handleDotClick(index))}\n onKeyDown={(e) => {\n const key = e.key.toLowerCase();\n if (key === 'space' || key === 'enter') {\n e.currentTarget.click();\n }\n }}\n role=\"menuitemradio\"\n aria-checked={false}\n tabIndex={-1}\n aria-hidden={isVisible}\n aria-label={i18n('dot-label', {\n index: currentSlideNumber,\n count: barSlidesCount,\n })}\n {...rovingItemProps}\n />\n );\n };\n\n const renderNavigation = () => {\n if (childrenCount <= slidesCountByBreakpoint || !dots || childrenCount === 1) {\n return null;\n }\n const dotsList = Array(childrenCount)\n .fill(null)\n .map((_item, index) => renderDot(index));\n dotsList.splice(currentIndex, 0, renderAccessibleBar(currentIndex));\n\n return (\n <div className={b('dots', dotsClassName)}>\n <ul\n className={b('dots-list')}\n role=\"menu\"\n aria-label={i18n('pagination-label')}\n {...rovingListProps}\n >\n {renderBar()}\n {dotsList}\n </ul>\n </div>\n );\n };\n\n const renderDisclaimer = () => {\n return disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer.size || 'm'})}>{disclaimer.text}</div>\n ) : null;\n };\n\n const renderSlider = () => {\n /* Disable adding of width in inline styles when SSR to prevent overriding of default styles */\n /* Calculate appropriate breakpoint for mobile devices with user agent */\n const variableWidth = isServer && isMobile;\n\n const settings = {\n ref: (slickSlider: SlickSlider) => setSlider(slickSlider),\n className: slick(null, className),\n arrows,\n variableWidth,\n infinite: false,\n speed: 1000,\n adaptiveHeight: adaptive,\n autoplay: isAutoplayEnabled,\n autoplaySpeed,\n slidesToShow: slidesToShowCount,\n slidesToScroll: 1,\n responsive: getSliderResponsiveParams(slidesToShow),\n beforeChange: onBeforeChange,\n afterChange: onAfterChange,\n initialSlide: initialIndex,\n nextArrow: (\n <Arrow\n type=\"right\"\n handleClick={asUserInteraction(handleArrowClick)}\n size={arrowSize}\n />\n ),\n prevArrow: (\n <Arrow\n type=\"left\"\n handleClick={asUserInteraction(handleArrowClick)}\n size={arrowSize}\n />\n ),\n lazyLoad,\n accessibility: false,\n };\n\n return (\n <OutsideClick onOutsideClick={isMobile ? unsetFocus : noop}>\n <SlickSlider {...settings}>{disclosedChildren}</SlickSlider>\n <div className={b('footer')}>\n {renderDisclaimer()}\n {renderNavigation()}\n </div>\n </OutsideClick>\n );\n };\n\n return (\n <StylesContext.Provider value={{...childStyles, setStyles: setChildStyles}}>\n <div\n className={b(\n {\n 'align-left': childrenCount < slidesCountByBreakpoint,\n 'one-slide': childrenCount === 1,\n 'only-arrows':\n (!title || (typeof title !== 'string' && !title?.text)) &&\n !description &&\n arrows,\n mobile: isMobile,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n {renderSlider()}\n </AnimateBlock>\n </div>\n </StylesContext.Provider>\n );\n};\n\nfunction getSlideId(sliderId: string, index: number) {\n return `slider-${sliderId}-child-${index}`;\n}\n\n// TODO remove this and rework PriceDetailed CLOUDFRONT-12230\nfunction discloseAllNestedChildren(\n children: React.ReactElement[],\n sliderId: string,\n): React.ReactElement[] {\n if (!children) {\n return [];\n }\n\n let childIndex = 0;\n const wrapped = (child: React.ReactElement) => {\n const id = getSlideId(sliderId, childIndex++);\n\n return (\n <div key={id} id={id}>\n {child}\n </div>\n );\n };\n\n return React.Children.map(children, (child) => {\n if (child) {\n // TODO: if child has 'items' then 'items' determinate like nested children for Slider.\n const nestedChildren = child.props.data?.items;\n\n if (nestedChildren) {\n return nestedChildren.map((nestedChild: React.ReactElement) => {\n return wrapped(\n React.cloneElement(child, {\n data: {\n ...child.props.data,\n items: [nestedChild],\n },\n }),\n );\n });\n }\n }\n return child && wrapped(child);\n }).filter(Boolean);\n}\n\nexport default SliderOldBlock;\n"]}
@@ -77,7 +77,7 @@ export interface SliderOldProps extends Childable, Animatable, LoadableChildren
77
77
  text: string;
78
78
  size?: TextSize;
79
79
  };
80
- title?: TitleItemBaseProps;
80
+ title?: TitleItemBaseProps | string;
81
81
  description?: string;
82
82
  autoplay?: number;
83
83
  randomOrder?: boolean;
@@ -91,7 +91,7 @@ export interface SliderProps extends Childable, Animatable, LoadableChildren {
91
91
  text: string;
92
92
  size?: TextSize;
93
93
  };
94
- title?: TitleItemBaseProps;
94
+ title?: TitleItemBaseProps | string;
95
95
  description?: string;
96
96
  autoplay?: number;
97
97
  randomOrder?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"../../../../src","sources":["models/constructor-items/blocks.ts"],"names":[],"mappings":"AA2CA,MAAM,CAAN,IAAY,SAuBX;AAvBD,WAAY,SAAS;IACjB,wDAA2C,CAAA;IAC3C,8DAAiD,CAAA;IACjD,kBAAkB;IAClB,gDAAmC,CAAA;IACnC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,uCAA0B,CAAA;IAC1B,kDAAqC,CAAA;IACrC,wDAA2C,CAAA;IAC3C,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;AAC5B,CAAC,EAvBW,SAAS,KAAT,SAAS,QAuBpB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAgCrF,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;AACb,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,gDAAkC,CAAA;AACtC,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAkUD,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,iCAAS,CAAA;IACT,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;AACzB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAOD,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACvB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,kDAA4B,CAAA;IAC5B,kDAA4B,CAAA;IAC5B,uCAAiB,CAAA;AACrB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {GridColumnSize, GridColumnSizesType, IndentValue} from '../../grid/types';\nimport {ThemeSupporting} from '../../utils';\nimport {AnalyticsEventsBase} from '../common';\n\nimport {\n AnchorProps,\n Animatable,\n BackgroundImageProps,\n ButtonProps,\n CardBorder,\n ContentSize,\n ContentTextSize,\n ContentTheme,\n FileLinkProps,\n HeaderBreadCrumbsProps,\n HeaderImageSize,\n HeaderOffset,\n HeaderWidth,\n ImageDeviceProps,\n ImageProps,\n Justify,\n LegendTableMarkerType,\n LinkProps,\n MapProps,\n MediaDirection,\n MediaProps,\n MediaView,\n TextSize,\n TextTheme,\n ThemedImage,\n ThemedMediaProps,\n ThemedMediaVideoProps,\n TitleItemBaseProps,\n TitleItemProps,\n WithBorder,\n YandexFormProps,\n} from './common';\nimport {BannerCardProps, HubspotFormProps, SubBlock, SubBlockModels} from './sub-blocks';\n\nexport enum BlockType {\n PromoFeaturesBlock = 'promo-features-block',\n ExtendedFeaturesBlock = 'extended-features-block',\n /** @deprecated */\n SliderOldBlock = 'slider-old-block',\n SliderBlock = 'slider-block',\n QuestionsBlock = 'questions-block',\n FoldableListBlock = 'foldable-list-block',\n BannerBlock = 'banner-block',\n CompaniesBlock = 'companies-block',\n MediaBlock = 'media-block',\n InfoBlock = 'info-block',\n TableBlock = 'table-block',\n TabsBlock = 'tabs-block',\n HeaderSliderBlock = 'header-slider-block',\n HeaderBlock = 'header-block',\n IconsBlock = 'icons-block',\n CardLayoutBlock = 'card-layout-block',\n ContentLayoutBlock = 'content-layout-block',\n ShareBlock = 'share-block',\n MapBlock = 'map-block',\n FilterBlock = 'filter-block',\n FormBlock = 'form-block',\n}\n\nexport const BlockTypes = Object.values(BlockType);\nexport const HeaderBlockTypes = [BlockType.HeaderBlock, BlockType.HeaderSliderBlock];\n\nexport interface Childable {\n children?: SubBlock[];\n}\n\n//block props\nexport interface BlockBaseProps {\n anchor?: AnchorProps;\n visible?: GridColumnSize;\n /** @deprecated */\n resetPaddings?: boolean;\n indent?: {\n top?: IndentValue;\n bottom?: IndentValue;\n };\n qa?: string;\n}\n\nexport interface LoadableProps {\n source: string;\n /**\n * @deprecated Will be moved to params\n */\n serviceId?: number;\n params?: Record<string, string | number | boolean | object>;\n}\n\nexport interface LoadableChildren {\n loadable?: LoadableProps;\n}\n\nexport enum SliderBreakpointNames {\n Sm = 'sm',\n Md = 'md',\n Lg = 'lg',\n Xl = 'xl',\n}\n\nexport enum SliderType {\n MediaCard = 'media-card',\n HeaderCard = 'header-card',\n FullscreenCard = 'fullscreen-card',\n}\n\nexport type SliderBreakpointParams = Record<SliderBreakpointNames, number>;\nexport type SlidesToShow = Partial<SliderBreakpointParams> | number;\n\nexport interface SliderOldProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface SliderProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface HeaderSliderBlockProps extends Omit<SliderOldProps, 'title' | 'description'> {\n items: HeaderBlockProps[];\n}\n\ninterface HeaderBackgroundProps {\n /** @deprecated replaced by Media Props image */\n url?: string;\n /** @deprecated replaced by Media Props image */\n disableCompress?: boolean;\n}\n\nexport interface HeaderBlockBackground extends Partial<HeaderBackgroundProps>, Partial<MediaProps> {\n fullWidth?: boolean;\n fullWidthMedia?: boolean;\n}\n\nexport type ThemedHeaderBlockBackground = ThemeSupporting<HeaderBlockBackground>;\n\nexport interface HeaderBlockProps {\n title: string;\n overtitle?: string | JSX.Element;\n description?: string;\n additionalInfo?: string;\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme' | 'primary' | 'size' | 'extraProps'>[];\n width?: HeaderWidth;\n /** @deprecated imageSize now depends on width */\n imageSize?: HeaderImageSize;\n /**\n * @deprecated used only on the main page\n * TODO: delete after the possibility to remove padding-bottom in the block\n */\n offset?: HeaderOffset;\n image?: ThemedImage;\n video?: ThemedMediaVideoProps;\n mediaView?: MediaView;\n centered?: boolean;\n background?: ThemedHeaderBlockBackground;\n theme?: 'light' | 'dark';\n verticalOffset?: '0' | 's' | 'm' | 'l' | 'xl';\n breadcrumbs?: HeaderBreadCrumbsProps;\n status?: JSX.Element;\n renderTitle?: (title: string) => React.ReactNode;\n}\n\nexport interface ExtendedFeaturesItem\n extends Omit<ContentBlockProps, 'theme' | 'centered' | 'colSizes' | 'size' | 'title'> {\n title: string;\n label?: string;\n icon?: ThemedImage;\n /** @deprecated **/\n link?: LinkProps;\n}\n\nexport interface ExtendedFeaturesProps extends Animatable {\n items: ExtendedFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n colSizes?: GridColumnSizesType;\n}\n\nexport interface PromoFeaturesItem {\n title: string;\n text: string;\n theme?: 'accent' | 'accent-light' | 'primary';\n media?: ThemeSupporting<MediaProps>;\n}\n\nexport interface PromoFeaturesProps extends Animatable {\n items: PromoFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n theme?: 'grey' | 'default';\n}\n\nexport interface QuestionItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface QuestionsProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: QuestionItem[];\n}\n\nexport interface QuestionBlockItemProps extends QuestionItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface FoldableListItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface FoldableListProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: FoldableListItem[];\n}\n\nexport interface FoldableListBlockItemProps extends FoldableListItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface BannerBlockProps extends BannerCardProps, Animatable {}\n\nexport interface CompaniesBlockProps extends Animatable {\n title: string;\n description?: string;\n images: ThemeSupporting<ImageDeviceProps>;\n}\n\nexport interface MediaBaseBlockProps extends Animatable, MediaContentProps {\n direction?: MediaDirection;\n mobileDirection?: MediaDirection;\n largeMedia?: boolean;\n mediaOnly?: boolean;\n mediaOnlyColSizes?: GridColumnSizesType;\n}\n\nexport interface MediaContentProps\n extends Omit<ContentBlockProps, 'colSizes' | 'text' | 'title' | 'theme' | 'centered'> {\n title: string;\n description?: string;\n /** @deprecated Use array of buttons from ContentBlockProps instead**/\n button?: ButtonProps;\n}\n\nexport interface MediaBlockProps extends MediaBaseBlockProps, WithBorder {\n media: ThemeSupporting<MediaProps>;\n}\n\nexport interface MapBlockProps extends MediaBaseBlockProps, WithBorder {\n map: MapProps;\n}\n\nexport interface InfoBlockProps {\n theme?: TextTheme;\n backgroundColor?: ThemeSupporting<string>;\n /** @deprecated **/\n title?: string;\n /** @deprecated **/\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme'>[];\n /** @deprecated **/\n sectionsTitle?: string;\n /** @deprecated **/\n links?: Pick<LinkProps, 'text' | 'url'>[];\n leftContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n rightContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n}\n\nexport interface TableProps {\n content: string[][];\n legend?: string[];\n hideLegend?: boolean;\n justify?: Justify[];\n marker?: LegendTableMarkerType;\n /**\n * Only as accessible name, not displayed explicitly\n */\n caption?: string;\n}\n\nexport interface TableBlockProps {\n title: string;\n table: TableProps;\n}\n\nexport interface TabsBlockItem\n extends Omit<ContentBlockProps, 'size' | 'colSizes' | 'centered' | 'theme'>,\n WithBorder {\n tabName: string;\n /**\n * @deprecated Use array links from ContentBlockProps instead\n */\n link?: LinkProps;\n image?: ThemedImage;\n caption?: string;\n media?: ThemedMediaProps;\n}\n\nexport interface TabsBlockProps extends Animatable {\n title?: TitleItemProps | string;\n description?: string;\n tabsColSizes?: GridColumnSizesType;\n centered?: boolean;\n direction?: MediaDirection;\n items: TabsBlockItem[];\n contentSize?: ContentSize;\n}\n\nexport interface CardLayoutBlockProps extends Childable, Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n titleClassName?: string;\n description?: string;\n colSizes?: GridColumnSizesType;\n background?: ThemeSupporting<\n BackgroundImageProps & {\n border?: CardBorder;\n }\n >;\n}\n\nexport type FilterTag = {\n id: string;\n label: string;\n};\n\nexport type FilterItem = {\n tags: string[];\n card: SubBlockModels;\n};\n\nexport interface FilterBlockProps extends Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n description?: string;\n tags: FilterTag[];\n items: FilterItem[];\n tagButtonSize?: ButtonSize;\n allTag?: boolean | string;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n}\n\nexport interface IconsBlockItemProps extends AnalyticsEventsBase {\n url: string;\n text: string;\n src: ThemeSupporting<string>;\n}\n\nexport interface IconsBlockProps {\n title?: string;\n description?: string;\n size?: 's' | 'm' | 'l';\n items: IconsBlockItemProps[];\n colSizes?: GridColumnSizesType;\n}\n\ninterface ContentLayoutBlockParams {\n size?: ContentSize;\n background?: ThemeSupporting<BackgroundImageProps>;\n centered?: boolean;\n theme?: ContentTheme;\n textWidth?: ContentTextSize;\n}\n\nexport interface ContentLayoutBlockProps extends ContentLayoutBlockParams {\n textContent: ContentBlockProps;\n fileContent?: FileLinkProps[];\n}\n\nexport type SVGIcon = React.FC<React.SVGProps<SVGSVGElement>>;\n\nexport interface ContentItemProps {\n title?: string;\n text?: string;\n icon: ThemeSupporting<ImageProps | SVGIcon>;\n}\n\nexport interface ContentListProps {\n list: ContentItemProps[];\n size: ContentSize;\n theme?: ContentTheme;\n}\n\nexport interface ContentBlockProps {\n title?: TitleItemBaseProps | string;\n titleId?: string;\n text?: string;\n textId?: string;\n additionalInfo?: string;\n links?: LinkProps[];\n buttons?: ButtonProps[];\n size?: ContentSize;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n theme?: ContentTheme;\n list?: ContentItemProps[];\n controlPosition?: 'default' | 'bottom';\n}\n\nexport enum PCShareSocialNetwork {\n Vk = 'vk',\n Telegram = 'telegram',\n Twitter = 'twitter',\n Facebook = 'facebook',\n LinkedIn = 'linkedin',\n}\n\nexport interface ShareBlockProps {\n items: PCShareSocialNetwork[];\n title?: string;\n}\n\nexport enum FormBlockDataTypes {\n YANDEX = 'yandex',\n HUBSPOT = 'hubspot',\n}\n\nexport enum FormBlockDirection {\n FormContent = 'form-content',\n ContentForm = 'content-form',\n Center = 'center',\n}\n\nexport interface FormBlockYandexData {\n yandex: ThemeSupporting<YandexFormProps>;\n}\n\nexport interface FormBlockHubspotData {\n hubspot: ThemeSupporting<HubspotFormProps>;\n}\n\nexport type FormBlockData = FormBlockYandexData | FormBlockHubspotData;\n\nexport interface FormBlockProps {\n formData: FormBlockData;\n title?: string;\n textContent?: Omit<ContentBlockProps, 'centered' | 'colSizes' | 'size'>;\n direction?: FormBlockDirection;\n background?: ThemeSupporting<BackgroundImageProps>;\n}\n\n//block models\nexport type HeaderBlockModel = {\n type: BlockType.HeaderBlock;\n} & HeaderBlockProps;\n\nexport type SliderOldBlockModel = {\n type: BlockType.SliderOldBlock;\n} & SliderOldProps;\n\nexport type ExtendedFeaturesBlockModel = {\n type: BlockType.ExtendedFeaturesBlock;\n} & ExtendedFeaturesProps;\n\nexport type PromoFeaturesBlockModel = {\n type: BlockType.PromoFeaturesBlock;\n} & PromoFeaturesProps;\n\nexport type QuestionsBlockModel = {\n type: BlockType.QuestionsBlock;\n} & QuestionsProps;\n\nexport type FoldableListBlockModel = {\n type: BlockType.FoldableListBlock;\n} & FoldableListProps;\n\nexport type BannerBlockModel = {\n type: BlockType.BannerBlock;\n} & BannerBlockProps;\n\nexport type CompaniesBlockModel = {\n type: BlockType.CompaniesBlock;\n} & CompaniesBlockProps;\n\nexport type MediaBlockModel = {\n type: BlockType.MediaBlock;\n} & MediaBlockProps;\n\nexport type MapBlockModel = {\n type: BlockType.MapBlock;\n} & MapBlockProps;\n\nexport type InfoBlockModel = {\n type: BlockType.InfoBlock;\n} & InfoBlockProps;\n\nexport type TableBlockModel = {\n type: BlockType.TableBlock;\n} & TableBlockProps;\n\nexport type TabsBlockModel = {\n type: BlockType.TabsBlock;\n} & TabsBlockProps;\n\nexport type CardLayoutBlockModel = {\n type: BlockType.CardLayoutBlock;\n} & CardLayoutBlockProps;\n\nexport type FilterBlockModel = {\n type: BlockType.FilterBlock;\n} & FilterBlockProps;\n\nexport type IconsBlockModel = {\n type: BlockType.IconsBlock;\n} & IconsBlockProps;\n\nexport type HeaderSliderBlockModel = {\n type: BlockType.HeaderSliderBlock;\n} & HeaderSliderBlockProps;\n\nexport type ContentLayoutBlockModel = {\n type: BlockType.ContentLayoutBlock;\n} & ContentLayoutBlockProps;\n\nexport type ShareBLockModel = {\n type: BlockType.ShareBlock;\n} & ShareBlockProps;\n\nexport type FormBlockModel = {\n type: BlockType.FormBlock;\n} & FormBlockProps;\n\nexport type SliderBlockModel = {\n type: BlockType.SliderBlock;\n} & SliderProps;\n\ntype BlockModels =\n | SliderOldBlockModel\n | SliderBlockModel\n | ExtendedFeaturesBlockModel\n | PromoFeaturesBlockModel\n | QuestionsBlockModel\n | FoldableListBlockModel\n | BannerBlockModel\n | CompaniesBlockModel\n | MediaBlockModel\n | MapBlockModel\n | InfoBlockModel\n | TableBlockModel\n | TabsBlockModel\n | HeaderBlockModel\n | IconsBlockModel\n | HeaderSliderBlockModel\n | CardLayoutBlockModel\n | ContentLayoutBlockModel\n | ShareBLockModel\n | FilterBlockModel\n | FormBlockModel;\n\nexport type Block = BlockModels & BlockBaseProps;\n"]}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"../../../../src","sources":["models/constructor-items/blocks.ts"],"names":[],"mappings":"AA2CA,MAAM,CAAN,IAAY,SAuBX;AAvBD,WAAY,SAAS;IACjB,wDAA2C,CAAA;IAC3C,8DAAiD,CAAA;IACjD,kBAAkB;IAClB,gDAAmC,CAAA;IACnC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,uCAA0B,CAAA;IAC1B,kDAAqC,CAAA;IACrC,wDAA2C,CAAA;IAC3C,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;AAC5B,CAAC,EAvBW,SAAS,KAAT,SAAS,QAuBpB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAgCrF,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;AACb,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,gDAAkC,CAAA;AACtC,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAkUD,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,iCAAS,CAAA;IACT,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;AACzB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAOD,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACvB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,kDAA4B,CAAA;IAC5B,kDAA4B,CAAA;IAC5B,uCAAiB,CAAA;AACrB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {GridColumnSize, GridColumnSizesType, IndentValue} from '../../grid/types';\nimport {ThemeSupporting} from '../../utils';\nimport {AnalyticsEventsBase} from '../common';\n\nimport {\n AnchorProps,\n Animatable,\n BackgroundImageProps,\n ButtonProps,\n CardBorder,\n ContentSize,\n ContentTextSize,\n ContentTheme,\n FileLinkProps,\n HeaderBreadCrumbsProps,\n HeaderImageSize,\n HeaderOffset,\n HeaderWidth,\n ImageDeviceProps,\n ImageProps,\n Justify,\n LegendTableMarkerType,\n LinkProps,\n MapProps,\n MediaDirection,\n MediaProps,\n MediaView,\n TextSize,\n TextTheme,\n ThemedImage,\n ThemedMediaProps,\n ThemedMediaVideoProps,\n TitleItemBaseProps,\n TitleItemProps,\n WithBorder,\n YandexFormProps,\n} from './common';\nimport {BannerCardProps, HubspotFormProps, SubBlock, SubBlockModels} from './sub-blocks';\n\nexport enum BlockType {\n PromoFeaturesBlock = 'promo-features-block',\n ExtendedFeaturesBlock = 'extended-features-block',\n /** @deprecated */\n SliderOldBlock = 'slider-old-block',\n SliderBlock = 'slider-block',\n QuestionsBlock = 'questions-block',\n FoldableListBlock = 'foldable-list-block',\n BannerBlock = 'banner-block',\n CompaniesBlock = 'companies-block',\n MediaBlock = 'media-block',\n InfoBlock = 'info-block',\n TableBlock = 'table-block',\n TabsBlock = 'tabs-block',\n HeaderSliderBlock = 'header-slider-block',\n HeaderBlock = 'header-block',\n IconsBlock = 'icons-block',\n CardLayoutBlock = 'card-layout-block',\n ContentLayoutBlock = 'content-layout-block',\n ShareBlock = 'share-block',\n MapBlock = 'map-block',\n FilterBlock = 'filter-block',\n FormBlock = 'form-block',\n}\n\nexport const BlockTypes = Object.values(BlockType);\nexport const HeaderBlockTypes = [BlockType.HeaderBlock, BlockType.HeaderSliderBlock];\n\nexport interface Childable {\n children?: SubBlock[];\n}\n\n//block props\nexport interface BlockBaseProps {\n anchor?: AnchorProps;\n visible?: GridColumnSize;\n /** @deprecated */\n resetPaddings?: boolean;\n indent?: {\n top?: IndentValue;\n bottom?: IndentValue;\n };\n qa?: string;\n}\n\nexport interface LoadableProps {\n source: string;\n /**\n * @deprecated Will be moved to params\n */\n serviceId?: number;\n params?: Record<string, string | number | boolean | object>;\n}\n\nexport interface LoadableChildren {\n loadable?: LoadableProps;\n}\n\nexport enum SliderBreakpointNames {\n Sm = 'sm',\n Md = 'md',\n Lg = 'lg',\n Xl = 'xl',\n}\n\nexport enum SliderType {\n MediaCard = 'media-card',\n HeaderCard = 'header-card',\n FullscreenCard = 'fullscreen-card',\n}\n\nexport type SliderBreakpointParams = Record<SliderBreakpointNames, number>;\nexport type SlidesToShow = Partial<SliderBreakpointParams> | number;\n\nexport interface SliderOldProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps | string;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface SliderProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps | string;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface HeaderSliderBlockProps extends Omit<SliderOldProps, 'title' | 'description'> {\n items: HeaderBlockProps[];\n}\n\ninterface HeaderBackgroundProps {\n /** @deprecated replaced by Media Props image */\n url?: string;\n /** @deprecated replaced by Media Props image */\n disableCompress?: boolean;\n}\n\nexport interface HeaderBlockBackground extends Partial<HeaderBackgroundProps>, Partial<MediaProps> {\n fullWidth?: boolean;\n fullWidthMedia?: boolean;\n}\n\nexport type ThemedHeaderBlockBackground = ThemeSupporting<HeaderBlockBackground>;\n\nexport interface HeaderBlockProps {\n title: string;\n overtitle?: string | JSX.Element;\n description?: string;\n additionalInfo?: string;\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme' | 'primary' | 'size' | 'extraProps'>[];\n width?: HeaderWidth;\n /** @deprecated imageSize now depends on width */\n imageSize?: HeaderImageSize;\n /**\n * @deprecated used only on the main page\n * TODO: delete after the possibility to remove padding-bottom in the block\n */\n offset?: HeaderOffset;\n image?: ThemedImage;\n video?: ThemedMediaVideoProps;\n mediaView?: MediaView;\n centered?: boolean;\n background?: ThemedHeaderBlockBackground;\n theme?: 'light' | 'dark';\n verticalOffset?: '0' | 's' | 'm' | 'l' | 'xl';\n breadcrumbs?: HeaderBreadCrumbsProps;\n status?: JSX.Element;\n renderTitle?: (title: string) => React.ReactNode;\n}\n\nexport interface ExtendedFeaturesItem\n extends Omit<ContentBlockProps, 'theme' | 'centered' | 'colSizes' | 'size' | 'title'> {\n title: string;\n label?: string;\n icon?: ThemedImage;\n /** @deprecated **/\n link?: LinkProps;\n}\n\nexport interface ExtendedFeaturesProps extends Animatable {\n items: ExtendedFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n colSizes?: GridColumnSizesType;\n}\n\nexport interface PromoFeaturesItem {\n title: string;\n text: string;\n theme?: 'accent' | 'accent-light' | 'primary';\n media?: ThemeSupporting<MediaProps>;\n}\n\nexport interface PromoFeaturesProps extends Animatable {\n items: PromoFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n theme?: 'grey' | 'default';\n}\n\nexport interface QuestionItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface QuestionsProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: QuestionItem[];\n}\n\nexport interface QuestionBlockItemProps extends QuestionItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface FoldableListItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface FoldableListProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: FoldableListItem[];\n}\n\nexport interface FoldableListBlockItemProps extends FoldableListItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface BannerBlockProps extends BannerCardProps, Animatable {}\n\nexport interface CompaniesBlockProps extends Animatable {\n title: string;\n description?: string;\n images: ThemeSupporting<ImageDeviceProps>;\n}\n\nexport interface MediaBaseBlockProps extends Animatable, MediaContentProps {\n direction?: MediaDirection;\n mobileDirection?: MediaDirection;\n largeMedia?: boolean;\n mediaOnly?: boolean;\n mediaOnlyColSizes?: GridColumnSizesType;\n}\n\nexport interface MediaContentProps\n extends Omit<ContentBlockProps, 'colSizes' | 'text' | 'title' | 'theme' | 'centered'> {\n title: string;\n description?: string;\n /** @deprecated Use array of buttons from ContentBlockProps instead**/\n button?: ButtonProps;\n}\n\nexport interface MediaBlockProps extends MediaBaseBlockProps, WithBorder {\n media: ThemeSupporting<MediaProps>;\n}\n\nexport interface MapBlockProps extends MediaBaseBlockProps, WithBorder {\n map: MapProps;\n}\n\nexport interface InfoBlockProps {\n theme?: TextTheme;\n backgroundColor?: ThemeSupporting<string>;\n /** @deprecated **/\n title?: string;\n /** @deprecated **/\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme'>[];\n /** @deprecated **/\n sectionsTitle?: string;\n /** @deprecated **/\n links?: Pick<LinkProps, 'text' | 'url'>[];\n leftContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n rightContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n}\n\nexport interface TableProps {\n content: string[][];\n legend?: string[];\n hideLegend?: boolean;\n justify?: Justify[];\n marker?: LegendTableMarkerType;\n /**\n * Only as accessible name, not displayed explicitly\n */\n caption?: string;\n}\n\nexport interface TableBlockProps {\n title: string;\n table: TableProps;\n}\n\nexport interface TabsBlockItem\n extends Omit<ContentBlockProps, 'size' | 'colSizes' | 'centered' | 'theme'>,\n WithBorder {\n tabName: string;\n /**\n * @deprecated Use array links from ContentBlockProps instead\n */\n link?: LinkProps;\n image?: ThemedImage;\n caption?: string;\n media?: ThemedMediaProps;\n}\n\nexport interface TabsBlockProps extends Animatable {\n title?: TitleItemProps | string;\n description?: string;\n tabsColSizes?: GridColumnSizesType;\n centered?: boolean;\n direction?: MediaDirection;\n items: TabsBlockItem[];\n contentSize?: ContentSize;\n}\n\nexport interface CardLayoutBlockProps extends Childable, Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n titleClassName?: string;\n description?: string;\n colSizes?: GridColumnSizesType;\n background?: ThemeSupporting<\n BackgroundImageProps & {\n border?: CardBorder;\n }\n >;\n}\n\nexport type FilterTag = {\n id: string;\n label: string;\n};\n\nexport type FilterItem = {\n tags: string[];\n card: SubBlockModels;\n};\n\nexport interface FilterBlockProps extends Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n description?: string;\n tags: FilterTag[];\n items: FilterItem[];\n tagButtonSize?: ButtonSize;\n allTag?: boolean | string;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n}\n\nexport interface IconsBlockItemProps extends AnalyticsEventsBase {\n url: string;\n text: string;\n src: ThemeSupporting<string>;\n}\n\nexport interface IconsBlockProps {\n title?: string;\n description?: string;\n size?: 's' | 'm' | 'l';\n items: IconsBlockItemProps[];\n colSizes?: GridColumnSizesType;\n}\n\ninterface ContentLayoutBlockParams {\n size?: ContentSize;\n background?: ThemeSupporting<BackgroundImageProps>;\n centered?: boolean;\n theme?: ContentTheme;\n textWidth?: ContentTextSize;\n}\n\nexport interface ContentLayoutBlockProps extends ContentLayoutBlockParams {\n textContent: ContentBlockProps;\n fileContent?: FileLinkProps[];\n}\n\nexport type SVGIcon = React.FC<React.SVGProps<SVGSVGElement>>;\n\nexport interface ContentItemProps {\n title?: string;\n text?: string;\n icon: ThemeSupporting<ImageProps | SVGIcon>;\n}\n\nexport interface ContentListProps {\n list: ContentItemProps[];\n size: ContentSize;\n theme?: ContentTheme;\n}\n\nexport interface ContentBlockProps {\n title?: TitleItemBaseProps | string;\n titleId?: string;\n text?: string;\n textId?: string;\n additionalInfo?: string;\n links?: LinkProps[];\n buttons?: ButtonProps[];\n size?: ContentSize;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n theme?: ContentTheme;\n list?: ContentItemProps[];\n controlPosition?: 'default' | 'bottom';\n}\n\nexport enum PCShareSocialNetwork {\n Vk = 'vk',\n Telegram = 'telegram',\n Twitter = 'twitter',\n Facebook = 'facebook',\n LinkedIn = 'linkedin',\n}\n\nexport interface ShareBlockProps {\n items: PCShareSocialNetwork[];\n title?: string;\n}\n\nexport enum FormBlockDataTypes {\n YANDEX = 'yandex',\n HUBSPOT = 'hubspot',\n}\n\nexport enum FormBlockDirection {\n FormContent = 'form-content',\n ContentForm = 'content-form',\n Center = 'center',\n}\n\nexport interface FormBlockYandexData {\n yandex: ThemeSupporting<YandexFormProps>;\n}\n\nexport interface FormBlockHubspotData {\n hubspot: ThemeSupporting<HubspotFormProps>;\n}\n\nexport type FormBlockData = FormBlockYandexData | FormBlockHubspotData;\n\nexport interface FormBlockProps {\n formData: FormBlockData;\n title?: string;\n textContent?: Omit<ContentBlockProps, 'centered' | 'colSizes' | 'size'>;\n direction?: FormBlockDirection;\n background?: ThemeSupporting<BackgroundImageProps>;\n}\n\n//block models\nexport type HeaderBlockModel = {\n type: BlockType.HeaderBlock;\n} & HeaderBlockProps;\n\nexport type SliderOldBlockModel = {\n type: BlockType.SliderOldBlock;\n} & SliderOldProps;\n\nexport type ExtendedFeaturesBlockModel = {\n type: BlockType.ExtendedFeaturesBlock;\n} & ExtendedFeaturesProps;\n\nexport type PromoFeaturesBlockModel = {\n type: BlockType.PromoFeaturesBlock;\n} & PromoFeaturesProps;\n\nexport type QuestionsBlockModel = {\n type: BlockType.QuestionsBlock;\n} & QuestionsProps;\n\nexport type FoldableListBlockModel = {\n type: BlockType.FoldableListBlock;\n} & FoldableListProps;\n\nexport type BannerBlockModel = {\n type: BlockType.BannerBlock;\n} & BannerBlockProps;\n\nexport type CompaniesBlockModel = {\n type: BlockType.CompaniesBlock;\n} & CompaniesBlockProps;\n\nexport type MediaBlockModel = {\n type: BlockType.MediaBlock;\n} & MediaBlockProps;\n\nexport type MapBlockModel = {\n type: BlockType.MapBlock;\n} & MapBlockProps;\n\nexport type InfoBlockModel = {\n type: BlockType.InfoBlock;\n} & InfoBlockProps;\n\nexport type TableBlockModel = {\n type: BlockType.TableBlock;\n} & TableBlockProps;\n\nexport type TabsBlockModel = {\n type: BlockType.TabsBlock;\n} & TabsBlockProps;\n\nexport type CardLayoutBlockModel = {\n type: BlockType.CardLayoutBlock;\n} & CardLayoutBlockProps;\n\nexport type FilterBlockModel = {\n type: BlockType.FilterBlock;\n} & FilterBlockProps;\n\nexport type IconsBlockModel = {\n type: BlockType.IconsBlock;\n} & IconsBlockProps;\n\nexport type HeaderSliderBlockModel = {\n type: BlockType.HeaderSliderBlock;\n} & HeaderSliderBlockProps;\n\nexport type ContentLayoutBlockModel = {\n type: BlockType.ContentLayoutBlock;\n} & ContentLayoutBlockProps;\n\nexport type ShareBLockModel = {\n type: BlockType.ShareBlock;\n} & ShareBlockProps;\n\nexport type FormBlockModel = {\n type: BlockType.FormBlock;\n} & FormBlockProps;\n\nexport type SliderBlockModel = {\n type: BlockType.SliderBlock;\n} & SliderProps;\n\ntype BlockModels =\n | SliderOldBlockModel\n | SliderBlockModel\n | ExtendedFeaturesBlockModel\n | PromoFeaturesBlockModel\n | QuestionsBlockModel\n | FoldableListBlockModel\n | BannerBlockModel\n | CompaniesBlockModel\n | MediaBlockModel\n | MapBlockModel\n | InfoBlockModel\n | TableBlockModel\n | TabsBlockModel\n | HeaderBlockModel\n | IconsBlockModel\n | HeaderSliderBlockModel\n | CardLayoutBlockModel\n | ContentLayoutBlockModel\n | ShareBLockModel\n | FilterBlockModel\n | FormBlockModel;\n\nexport type Block = BlockModels & BlockBaseProps;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "7.0.0-alpha.5",
3
+ "version": "7.0.0-alpha.6",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -77,7 +77,7 @@ export interface SliderOldProps extends Childable, Animatable, LoadableChildren
77
77
  text: string;
78
78
  size?: TextSize;
79
79
  };
80
- title?: TitleItemBaseProps;
80
+ title?: TitleItemBaseProps | string;
81
81
  description?: string;
82
82
  autoplay?: number;
83
83
  randomOrder?: boolean;
@@ -91,7 +91,7 @@ export interface SliderProps extends Childable, Animatable, LoadableChildren {
91
91
  text: string;
92
92
  size?: TextSize;
93
93
  };
94
- title?: TitleItemBaseProps;
94
+ title?: TitleItemBaseProps | string;
95
95
  description?: string;
96
96
  autoplay?: number;
97
97
  randomOrder?: boolean;