@gravity-ui/page-constructor 6.0.0 → 7.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.css +11 -6
- package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +3 -5
- package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js.map +1 -1
- package/build/cjs/blocks/Header/Header.css +15 -10
- package/build/cjs/blocks/Header/Header.js +6 -1
- package/build/cjs/blocks/Header/Header.js.map +1 -1
- package/build/cjs/blocks/HeaderSlider/HeaderSlider.css +0 -10
- package/build/cjs/blocks/HeaderSlider/HeaderSlider.js +2 -2
- package/build/cjs/blocks/HeaderSlider/HeaderSlider.js.map +1 -1
- package/build/cjs/blocks/HeaderSlider/schema.d.ts +9 -1
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +43 -21
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +3 -1
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
- package/build/cjs/blocks/Share/Share.js +5 -1
- package/build/cjs/blocks/Share/Share.js.map +1 -1
- package/build/cjs/blocks/Slider/Arrow/Arrow.css +22 -21
- package/build/cjs/blocks/Slider/Arrow/Arrow.d.ts +4 -2
- package/build/cjs/blocks/Slider/Arrow/Arrow.js +1 -1
- package/build/cjs/blocks/Slider/Arrow/Arrow.js.map +1 -1
- package/build/cjs/blocks/Slider/Slider.css +549 -329
- package/build/cjs/blocks/Slider/Slider.d.ts +6 -5
- package/build/cjs/blocks/Slider/Slider.js +31 -271
- package/build/cjs/blocks/Slider/Slider.js.map +1 -1
- package/build/cjs/blocks/Slider/i18n/en.json +1 -1
- package/build/cjs/blocks/Slider/i18n/ru.json +1 -1
- package/build/cjs/blocks/Slider/models.d.ts +2 -2
- package/build/cjs/blocks/Slider/models.js +1 -1
- package/build/cjs/blocks/Slider/models.js.map +1 -1
- package/build/cjs/blocks/Slider/schema.d.ts +18 -1
- package/build/cjs/blocks/Slider/schema.js +9 -0
- package/build/cjs/blocks/Slider/schema.js.map +1 -1
- package/build/{esm/blocks/SliderNew → cjs/blocks/Slider}/useSlider.d.ts +1 -0
- package/build/cjs/blocks/{SliderNew → Slider}/useSlider.js +4 -0
- package/build/cjs/blocks/Slider/useSlider.js.map +1 -0
- package/build/cjs/blocks/Slider/useSliderPagination.js.map +1 -0
- package/build/cjs/blocks/Slider/utils.d.ts +7 -28
- package/build/cjs/blocks/Slider/utils.js +27 -109
- package/build/cjs/blocks/Slider/utils.js.map +1 -1
- package/build/cjs/blocks/{SliderNew → SliderOld}/Arrow/Arrow.css +15 -12
- package/build/cjs/blocks/SliderOld/Arrow/Arrow.d.ts +9 -0
- package/build/cjs/blocks/SliderOld/Arrow/Arrow.js +11 -0
- package/build/cjs/blocks/SliderOld/Arrow/Arrow.js.map +1 -0
- package/build/cjs/blocks/SliderOld/SliderOld.css +703 -0
- package/build/cjs/blocks/SliderOld/SliderOld.d.ts +17 -0
- package/build/cjs/blocks/SliderOld/SliderOld.js +292 -0
- package/build/cjs/blocks/SliderOld/SliderOld.js.map +1 -0
- package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/en.json +1 -1
- package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/index.d.ts +1 -1
- package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/index.js +1 -1
- package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/index.js.map +1 -1
- package/build/cjs/blocks/{SliderNew → SliderOld}/i18n/ru.json +1 -1
- package/build/cjs/blocks/{SliderNew → SliderOld}/models.d.ts +2 -2
- package/build/cjs/blocks/{SliderNew → SliderOld}/models.js +1 -1
- package/build/cjs/blocks/{SliderNew → SliderOld}/models.js.map +1 -1
- package/build/{esm/blocks/SliderNew → cjs/blocks/SliderOld}/schema.d.ts +5 -21
- package/build/cjs/blocks/{SliderNew → SliderOld}/schema.js +6 -14
- package/build/cjs/blocks/SliderOld/schema.js.map +1 -0
- package/build/cjs/blocks/SliderOld/utils.d.ts +37 -0
- package/build/cjs/blocks/SliderOld/utils.js +126 -0
- package/build/cjs/blocks/SliderOld/utils.js.map +1 -0
- package/build/cjs/blocks/Table/Table.css +4 -3
- package/build/cjs/blocks/Table/Table.js +3 -1
- package/build/cjs/blocks/Table/Table.js.map +1 -1
- package/build/cjs/blocks/index.d.ts +2 -0
- package/build/cjs/blocks/index.js +3 -1
- package/build/cjs/blocks/index.js.map +1 -1
- package/build/cjs/blocks/validators.d.ts +1 -0
- package/build/cjs/blocks/validators.js +1 -0
- package/build/cjs/blocks/validators.js.map +1 -1
- package/build/cjs/components/ContentList/ContentList.css +16 -12
- package/build/cjs/components/ContentList/ContentList.js +1 -1
- package/build/cjs/components/ContentList/ContentList.js.map +1 -1
- package/build/cjs/components/FileLink/FileLink.js +8 -1
- package/build/cjs/components/FileLink/FileLink.js.map +1 -1
- package/build/cjs/components/FullscreenImage/FullscreenImage.css +96 -18
- package/build/cjs/components/FullscreenImage/FullscreenImage.d.ts +5 -0
- package/build/cjs/components/FullscreenImage/FullscreenImage.js +14 -2
- package/build/cjs/components/FullscreenImage/FullscreenImage.js.map +1 -1
- package/build/cjs/components/HTML/HTML.d.ts +15 -8
- package/build/cjs/components/HTML/HTML.js +15 -10
- package/build/cjs/components/HTML/HTML.js.map +1 -1
- package/build/cjs/components/Link/Link.js +11 -2
- package/build/cjs/components/Link/Link.js.map +1 -1
- package/build/cjs/components/Media/Image/Image.d.ts +1 -0
- package/build/cjs/components/Media/Image/Image.js +7 -5
- package/build/cjs/components/Media/Image/Image.js.map +1 -1
- package/build/cjs/components/Media/Media.css +4 -0
- package/build/cjs/components/Media/Media.d.ts +1 -0
- package/build/cjs/components/Media/Media.js +3 -2
- package/build/cjs/components/Media/Media.js.map +1 -1
- package/build/cjs/components/MetaInfo/MetaInfo.css +1 -1
- package/build/cjs/components/MetaInfo/MetaInfo.js +1 -1
- package/build/cjs/components/MetaInfo/MetaInfo.js.map +1 -1
- package/build/cjs/components/Table/Table.css +2 -1
- package/build/cjs/components/Table/Table.js +4 -2
- package/build/cjs/components/Table/Table.js.map +1 -1
- package/build/cjs/components/Title/TitleItem.css +15 -5
- package/build/cjs/components/Title/TitleItem.js +4 -1
- package/build/cjs/components/Title/TitleItem.js.map +1 -1
- package/build/cjs/components/YFMWrapper/YFMWrapper.d.ts +4 -2
- package/build/cjs/components/YFMWrapper/YFMWrapper.js +4 -3
- package/build/cjs/components/YFMWrapper/YFMWrapper.js.map +1 -1
- package/build/cjs/constructor-items.d.ts +2 -2
- package/build/cjs/constructor-items.js +2 -4
- package/build/cjs/constructor-items.js.map +1 -1
- package/build/cjs/editor/data/templates/{slider-new-block.json → slider-old-block.json} +2 -2
- package/build/cjs/models/common.d.ts +1 -0
- package/build/cjs/models/common.js.map +1 -1
- package/build/cjs/models/constructor-items/blocks.d.ts +17 -15
- package/build/cjs/models/constructor-items/blocks.js +3 -2
- package/build/cjs/models/constructor-items/blocks.js.map +1 -1
- package/build/cjs/models/constructor-items/common.d.ts +2 -2
- package/build/cjs/models/constructor-items/common.js.map +1 -1
- package/build/cjs/schema/constants.js +3 -1
- package/build/cjs/schema/constants.js.map +1 -1
- package/build/cjs/schema/validators/blocks.d.ts +2 -2
- package/build/cjs/schema/validators/blocks.js +2 -2
- package/build/cjs/schema/validators/blocks.js.map +1 -1
- package/build/cjs/schema/validators/common.js +1 -1
- package/build/cjs/schema/validators/common.js.map +1 -1
- package/build/cjs/sub-blocks/BannerCard/BannerCard.css +14 -8
- package/build/cjs/sub-blocks/BannerCard/BannerCard.js +3 -1
- package/build/cjs/sub-blocks/BannerCard/BannerCard.js.map +1 -1
- package/build/cjs/sub-blocks/Content/Content.css +80 -31
- package/build/cjs/sub-blocks/Content/Content.js +3 -1
- package/build/cjs/sub-blocks/Content/Content.js.map +1 -1
- package/build/cjs/sub-blocks/PriceCard/PriceCard.css +2 -1
- package/build/cjs/sub-blocks/PriceCard/PriceCard.js +1 -1
- package/build/cjs/sub-blocks/PriceCard/PriceCard.js.map +1 -1
- package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +1 -0
- package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js.map +1 -1
- package/build/cjs/sub-blocks/Quote/Quote.css +8 -4
- package/build/cjs/sub-blocks/Quote/Quote.js +2 -1
- package/build/cjs/sub-blocks/Quote/Quote.js.map +1 -1
- package/build/cjs/text-transform/common.d.ts +4 -3
- package/build/cjs/text-transform/common.js +41 -18
- package/build/cjs/text-transform/common.js.map +1 -1
- package/build/cjs/text-transform/config.d.ts +5 -2
- package/build/cjs/text-transform/config.js +84 -43
- package/build/cjs/text-transform/config.js.map +1 -1
- package/build/cjs/text-transform/transformers.js +2 -2
- package/build/cjs/text-transform/transformers.js.map +1 -1
- package/build/cjs/utils/blocks.d.ts +10 -2
- package/build/cjs/utils/blocks.js +10 -3
- package/build/cjs/utils/blocks.js.map +1 -1
- package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.css +11 -6
- package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +4 -6
- package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js.map +1 -1
- package/build/esm/blocks/Header/Header.css +15 -10
- package/build/esm/blocks/Header/Header.js +7 -2
- package/build/esm/blocks/Header/Header.js.map +1 -1
- package/build/esm/blocks/HeaderSlider/HeaderSlider.css +0 -10
- package/build/esm/blocks/HeaderSlider/HeaderSlider.js +1 -1
- package/build/esm/blocks/HeaderSlider/HeaderSlider.js.map +1 -1
- package/build/esm/blocks/HeaderSlider/schema.d.ts +9 -1
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.css +43 -21
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +4 -2
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
- package/build/esm/blocks/Share/Share.js +5 -1
- package/build/esm/blocks/Share/Share.js.map +1 -1
- package/build/esm/blocks/Slider/Arrow/Arrow.css +22 -21
- package/build/esm/blocks/Slider/Arrow/Arrow.d.ts +4 -2
- package/build/esm/blocks/Slider/Arrow/Arrow.js +1 -1
- package/build/esm/blocks/Slider/Arrow/Arrow.js.map +1 -1
- package/build/esm/blocks/Slider/Slider.css +549 -329
- package/build/esm/blocks/Slider/Slider.d.ts +6 -5
- package/build/esm/blocks/Slider/Slider.js +32 -272
- package/build/esm/blocks/Slider/Slider.js.map +1 -1
- package/build/esm/blocks/Slider/i18n/en.json +1 -1
- package/build/esm/blocks/Slider/i18n/ru.json +1 -1
- package/build/esm/blocks/Slider/models.d.ts +2 -2
- package/build/esm/blocks/Slider/models.js +1 -1
- package/build/esm/blocks/Slider/models.js.map +1 -1
- package/build/esm/blocks/Slider/schema.d.ts +18 -1
- package/build/esm/blocks/Slider/schema.js +9 -0
- package/build/esm/blocks/Slider/schema.js.map +1 -1
- package/build/{cjs/blocks/SliderNew → esm/blocks/Slider}/useSlider.d.ts +1 -0
- package/build/esm/blocks/{SliderNew → Slider}/useSlider.js +4 -0
- package/build/esm/blocks/Slider/useSlider.js.map +1 -0
- package/build/esm/blocks/Slider/useSliderPagination.js.map +1 -0
- package/build/esm/blocks/Slider/utils.d.ts +7 -28
- package/build/esm/blocks/Slider/utils.js +24 -103
- package/build/esm/blocks/Slider/utils.js.map +1 -1
- package/build/esm/blocks/{SliderNew → SliderOld}/Arrow/Arrow.css +15 -12
- package/build/esm/blocks/SliderOld/Arrow/Arrow.d.ts +10 -0
- package/build/esm/blocks/SliderOld/Arrow/Arrow.js +9 -0
- package/build/esm/blocks/SliderOld/Arrow/Arrow.js.map +1 -0
- package/build/esm/blocks/SliderOld/SliderOld.css +703 -0
- package/build/esm/blocks/SliderOld/SliderOld.d.ts +18 -0
- package/build/esm/blocks/SliderOld/SliderOld.js +288 -0
- package/build/esm/blocks/SliderOld/SliderOld.js.map +1 -0
- package/build/esm/blocks/{SliderNew → SliderOld}/i18n/en.json +1 -1
- package/build/esm/blocks/{SliderNew → SliderOld}/i18n/index.d.ts +1 -1
- package/build/esm/blocks/{SliderNew → SliderOld}/i18n/index.js +1 -1
- package/build/esm/blocks/{SliderNew → SliderOld}/i18n/index.js.map +1 -1
- package/build/esm/blocks/{SliderNew → SliderOld}/i18n/ru.json +1 -1
- package/build/esm/blocks/{SliderNew → SliderOld}/models.d.ts +2 -2
- package/build/esm/blocks/{SliderNew → SliderOld}/models.js +1 -1
- package/build/esm/blocks/{SliderNew → SliderOld}/models.js.map +1 -1
- package/build/{cjs/blocks/SliderNew → esm/blocks/SliderOld}/schema.d.ts +5 -21
- package/build/esm/blocks/{SliderNew → SliderOld}/schema.js +5 -13
- package/build/esm/blocks/SliderOld/schema.js.map +1 -0
- package/build/esm/blocks/SliderOld/utils.d.ts +37 -0
- package/build/esm/blocks/SliderOld/utils.js +116 -0
- package/build/esm/blocks/SliderOld/utils.js.map +1 -0
- package/build/esm/blocks/Table/Table.css +4 -3
- package/build/esm/blocks/Table/Table.js +4 -2
- package/build/esm/blocks/Table/Table.js.map +1 -1
- package/build/esm/blocks/index.d.ts +2 -0
- package/build/esm/blocks/index.js +1 -0
- package/build/esm/blocks/index.js.map +1 -1
- package/build/esm/blocks/validators.d.ts +1 -0
- package/build/esm/blocks/validators.js +1 -0
- package/build/esm/blocks/validators.js.map +1 -1
- package/build/esm/components/ContentList/ContentList.css +16 -12
- package/build/esm/components/ContentList/ContentList.js +1 -1
- package/build/esm/components/ContentList/ContentList.js.map +1 -1
- package/build/esm/components/FileLink/FileLink.js +8 -1
- package/build/esm/components/FileLink/FileLink.js.map +1 -1
- package/build/esm/components/FullscreenImage/FullscreenImage.css +96 -18
- package/build/esm/components/FullscreenImage/FullscreenImage.d.ts +5 -0
- package/build/esm/components/FullscreenImage/FullscreenImage.js +14 -2
- package/build/esm/components/FullscreenImage/FullscreenImage.js.map +1 -1
- package/build/esm/components/HTML/HTML.d.ts +15 -8
- package/build/esm/components/HTML/HTML.js +17 -11
- package/build/esm/components/HTML/HTML.js.map +1 -1
- package/build/esm/components/Link/Link.js +12 -3
- package/build/esm/components/Link/Link.js.map +1 -1
- package/build/esm/components/Media/Image/Image.d.ts +1 -0
- package/build/esm/components/Media/Image/Image.js +7 -5
- package/build/esm/components/Media/Image/Image.js.map +1 -1
- package/build/esm/components/Media/Media.css +4 -0
- package/build/esm/components/Media/Media.d.ts +1 -0
- package/build/esm/components/Media/Media.js +3 -2
- package/build/esm/components/Media/Media.js.map +1 -1
- package/build/esm/components/MetaInfo/MetaInfo.css +1 -1
- package/build/esm/components/MetaInfo/MetaInfo.js +1 -1
- package/build/esm/components/MetaInfo/MetaInfo.js.map +1 -1
- package/build/esm/components/Table/Table.css +2 -1
- package/build/esm/components/Table/Table.js +5 -3
- package/build/esm/components/Table/Table.js.map +1 -1
- package/build/esm/components/Title/TitleItem.css +15 -5
- package/build/esm/components/Title/TitleItem.js +5 -2
- package/build/esm/components/Title/TitleItem.js.map +1 -1
- package/build/esm/components/YFMWrapper/YFMWrapper.d.ts +4 -2
- package/build/esm/components/YFMWrapper/YFMWrapper.js +5 -3
- package/build/esm/components/YFMWrapper/YFMWrapper.js.map +1 -1
- package/build/esm/constructor-items.d.ts +2 -2
- package/build/esm/constructor-items.js +3 -5
- package/build/esm/constructor-items.js.map +1 -1
- package/build/esm/editor/data/templates/{slider-new-block.json → slider-old-block.json} +2 -2
- package/build/esm/models/common.d.ts +1 -0
- package/build/esm/models/common.js.map +1 -1
- package/build/esm/models/constructor-items/blocks.d.ts +17 -15
- package/build/esm/models/constructor-items/blocks.js +3 -2
- package/build/esm/models/constructor-items/blocks.js.map +1 -1
- package/build/esm/models/constructor-items/common.d.ts +2 -2
- package/build/esm/models/constructor-items/common.js.map +1 -1
- package/build/esm/schema/constants.js +4 -2
- package/build/esm/schema/constants.js.map +1 -1
- package/build/esm/schema/validators/blocks.d.ts +2 -2
- package/build/esm/schema/validators/blocks.js +2 -2
- package/build/esm/schema/validators/blocks.js.map +1 -1
- package/build/esm/schema/validators/common.js +1 -1
- package/build/esm/schema/validators/common.js.map +1 -1
- package/build/esm/sub-blocks/BannerCard/BannerCard.css +14 -8
- package/build/esm/sub-blocks/BannerCard/BannerCard.js +4 -2
- package/build/esm/sub-blocks/BannerCard/BannerCard.js.map +1 -1
- package/build/esm/sub-blocks/Content/Content.css +80 -31
- package/build/esm/sub-blocks/Content/Content.js +3 -1
- package/build/esm/sub-blocks/Content/Content.js.map +1 -1
- package/build/esm/sub-blocks/PriceCard/PriceCard.css +2 -1
- package/build/esm/sub-blocks/PriceCard/PriceCard.js +2 -2
- package/build/esm/sub-blocks/PriceCard/PriceCard.js.map +1 -1
- package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +1 -0
- package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js.map +1 -1
- package/build/esm/sub-blocks/Quote/Quote.css +8 -4
- package/build/esm/sub-blocks/Quote/Quote.js +3 -2
- package/build/esm/sub-blocks/Quote/Quote.js.map +1 -1
- package/build/esm/text-transform/common.d.ts +4 -3
- package/build/esm/text-transform/common.js +41 -18
- package/build/esm/text-transform/common.js.map +1 -1
- package/build/esm/text-transform/config.d.ts +5 -2
- package/build/esm/text-transform/config.js +85 -44
- package/build/esm/text-transform/config.js.map +1 -1
- package/build/esm/text-transform/transformers.js +2 -2
- package/build/esm/text-transform/transformers.js.map +1 -1
- package/build/esm/utils/blocks.d.ts +10 -2
- package/build/esm/utils/blocks.js +9 -2
- package/build/esm/utils/blocks.js.map +1 -1
- package/package.json +2 -2
- package/schema/index.js +1 -1
- package/server/models/common.d.ts +1 -0
- package/server/models/constructor-items/blocks.d.ts +17 -15
- package/server/models/constructor-items/blocks.js +3 -2
- package/server/models/constructor-items/common.d.ts +2 -2
- package/server/text-transform/common.d.ts +4 -3
- package/server/text-transform/common.js +41 -18
- package/server/text-transform/config.d.ts +5 -2
- package/server/text-transform/config.js +84 -43
- package/server/text-transform/transformers.js +2 -2
- package/server/utils/blocks.d.ts +10 -2
- package/server/utils/blocks.js +10 -3
- package/styles/fonts.scss +1 -0
- package/styles/styles.css +0 -1
- package/styles/styles.scss +0 -1
- package/styles/variables.scss +1 -0
- package/widget/index.js +1 -1
- package/build/cjs/blocks/SliderNew/Arrow/Arrow.d.ts +0 -11
- package/build/cjs/blocks/SliderNew/Arrow/Arrow.js +0 -11
- package/build/cjs/blocks/SliderNew/Arrow/Arrow.js.map +0 -1
- package/build/cjs/blocks/SliderNew/Slider.css +0 -834
- package/build/cjs/blocks/SliderNew/Slider.d.ts +0 -13
- package/build/cjs/blocks/SliderNew/Slider.js +0 -49
- package/build/cjs/blocks/SliderNew/Slider.js.map +0 -1
- package/build/cjs/blocks/SliderNew/schema.js.map +0 -1
- package/build/cjs/blocks/SliderNew/useSlider.js.map +0 -1
- package/build/cjs/blocks/SliderNew/useSliderPagination.js.map +0 -1
- package/build/cjs/blocks/SliderNew/utils.d.ts +0 -16
- package/build/cjs/blocks/SliderNew/utils.js +0 -44
- package/build/cjs/blocks/SliderNew/utils.js.map +0 -1
- package/build/cjs/blocks/unstable.d.ts +0 -1
- package/build/cjs/blocks/unstable.js +0 -7
- package/build/cjs/blocks/unstable.js.map +0 -1
- package/build/esm/blocks/SliderNew/Arrow/Arrow.d.ts +0 -12
- package/build/esm/blocks/SliderNew/Arrow/Arrow.js +0 -9
- package/build/esm/blocks/SliderNew/Arrow/Arrow.js.map +0 -1
- package/build/esm/blocks/SliderNew/Slider.css +0 -834
- package/build/esm/blocks/SliderNew/Slider.d.ts +0 -14
- package/build/esm/blocks/SliderNew/Slider.js +0 -45
- package/build/esm/blocks/SliderNew/Slider.js.map +0 -1
- package/build/esm/blocks/SliderNew/schema.js.map +0 -1
- package/build/esm/blocks/SliderNew/useSlider.js.map +0 -1
- package/build/esm/blocks/SliderNew/useSliderPagination.js.map +0 -1
- package/build/esm/blocks/SliderNew/utils.d.ts +0 -16
- package/build/esm/blocks/SliderNew/utils.js +0 -37
- package/build/esm/blocks/SliderNew/utils.js.map +0 -1
- package/build/esm/blocks/unstable.d.ts +0 -1
- package/build/esm/blocks/unstable.js +0 -2
- package/build/esm/blocks/unstable.js.map +0 -1
- /package/build/cjs/blocks/{SliderNew → Slider}/useSliderPagination.d.ts +0 -0
- /package/build/cjs/blocks/{SliderNew → Slider}/useSliderPagination.js +0 -0
- /package/build/cjs/blocks/{Slider → SliderOld}/slick.css +0 -0
- /package/build/esm/blocks/{SliderNew → Slider}/useSliderPagination.d.ts +0 -0
- /package/build/esm/blocks/{SliderNew → Slider}/useSliderPagination.js +0 -0
- /package/build/esm/blocks/{Slider → SliderOld}/slick.css +0 -0
|
@@ -2,19 +2,31 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { ChevronsExpandUpRight, Xmark } from '@gravity-ui/icons';
|
|
4
4
|
import { Icon, Modal } from '@gravity-ui/uikit';
|
|
5
|
+
import { SliderBlock } from "../../blocks/index.js";
|
|
6
|
+
import { SliderType } from "../../models/index.js";
|
|
5
7
|
import { block } from "../../utils/index.js";
|
|
6
8
|
import Image from "../Image/Image.js";
|
|
9
|
+
import { getMediaImage } from "../Media/Image/utils.js";
|
|
7
10
|
import { i18n } from "./i18n/index.js";
|
|
8
11
|
import './FullscreenImage.css';
|
|
9
12
|
const b = block('fullscreen-image');
|
|
10
13
|
const FULL_SCREEN_ICON_SIZE = 18;
|
|
11
14
|
const CLOSE_ICON_SIZE = 24;
|
|
12
15
|
const FullscreenImage = (props) => {
|
|
13
|
-
const { imageClassName, modalImageClass, imageStyle, alt = i18n('img-alt'), extraProps } = props;
|
|
16
|
+
const { imageClassName, sliderData, modalImageClass, imageStyle, alt = i18n('img-alt'), extraProps, } = props;
|
|
14
17
|
const [isOpened, setIsOpened] = React.useState(false);
|
|
18
|
+
const [sliderLoaded, setSliderLoaded] = React.useState(false);
|
|
15
19
|
const openModal = () => setIsOpened(true);
|
|
16
20
|
const closeModal = () => setIsOpened(false);
|
|
17
|
-
|
|
21
|
+
React.useEffect(() => {
|
|
22
|
+
if (sliderData && !isOpened) {
|
|
23
|
+
setSliderLoaded(false);
|
|
24
|
+
}
|
|
25
|
+
}, [isOpened, sliderData]);
|
|
26
|
+
const handleSliderImageLoad = () => {
|
|
27
|
+
setSliderLoaded(true);
|
|
28
|
+
};
|
|
29
|
+
return (_jsxs("div", Object.assign({ className: b() }, extraProps, { children: [_jsxs("div", { className: b('image-wrapper'), children: [_jsx(Image, Object.assign({}, props, { alt: alt, className: b('image', imageClassName), onClick: openModal, style: imageStyle })), _jsx("button", { className: b('expand-icon-wrapper'), onClick: openModal, children: _jsx(Icon, { data: ChevronsExpandUpRight, width: FULL_SCREEN_ICON_SIZE, height: FULL_SCREEN_ICON_SIZE, className: b('icon') }) })] }), isOpened && (_jsxs(Modal, { open: isOpened, onClose: closeModal, className: b('modal', { 'with-slider': Boolean(sliderData) }), contentClassName: b('modal-content', { loaded: sliderLoaded }), children: [_jsx("button", { className: b('close-icon-wrapper', { visible: true }), onClick: closeModal, "aria-label": i18n('close'), children: _jsx(Icon, { data: Xmark, width: CLOSE_ICON_SIZE, height: CLOSE_ICON_SIZE, className: b('icon', { hover: true }) }) }), sliderData ? (_jsx("div", { className: b('modal-slider'), children: _jsx(SliderBlock, { initialSlide: sliderData.initialIndex, slidesToShow: 1, type: SliderType.FullscreenCard, children: sliderData.items.map((item, index) => (_jsx("div", { className: b('modal-slider_item'), children: _jsx(Image, Object.assign({ onLoad: handleSliderImageLoad, className: b('modal-slider_item-image', modalImageClass), containerClassName: b('modal-slider_item-image-wrapper') }, getMediaImage(item))) }, index))) }) })) : (_jsx(Image, Object.assign({}, props, { className: b('modal-image', modalImageClass) })))] }))] })));
|
|
18
30
|
};
|
|
19
31
|
export default FullscreenImage;
|
|
20
32
|
//# sourceMappingURL=FullscreenImage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullscreenImage.js","sourceRoot":"../../../../src","sources":["components/FullscreenImage/FullscreenImage.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,qBAAqB,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAClC,OAAO,KAAmB,0BAAuB;
|
|
1
|
+
{"version":3,"file":"FullscreenImage.js","sourceRoot":"../../../../src","sources":["components/FullscreenImage/FullscreenImage.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {ChevronsExpandUpRight, Xmark} from '@gravity-ui/icons';\nimport {Icon, Modal} from '@gravity-ui/uikit';\n\nimport {SliderBlock} from '../../blocks';\nimport {ImageProps as ModelImageProps, SliderType} from '../../models';\nimport {block} from '../../utils';\nimport Image, {ImageProps} from '../Image/Image';\nimport {getMediaImage} from '../Media/Image/utils';\n\nimport {i18n} from './i18n';\n\nimport './FullscreenImage.scss';\n\nexport interface FullscreenImageProps extends ImageProps {\n imageClassName?: string;\n modalImageClass?: string;\n imageStyle?: React.CSSProperties;\n extraProps?: React.HTMLProps<HTMLDivElement>;\n sliderData?: {items: ModelImageProps[]; initialIndex: number};\n}\n\nconst b = block('fullscreen-image');\nconst FULL_SCREEN_ICON_SIZE = 18;\nconst CLOSE_ICON_SIZE = 24;\n\nconst FullscreenImage = (props: FullscreenImageProps) => {\n const {\n imageClassName,\n sliderData,\n modalImageClass,\n imageStyle,\n alt = i18n('img-alt'),\n extraProps,\n } = props;\n const [isOpened, setIsOpened] = React.useState(false);\n const [sliderLoaded, setSliderLoaded] = React.useState(false);\n\n const openModal = () => setIsOpened(true);\n const closeModal = () => setIsOpened(false);\n\n React.useEffect(() => {\n if (sliderData && !isOpened) {\n setSliderLoaded(false);\n }\n }, [isOpened, sliderData]);\n\n const handleSliderImageLoad = () => {\n setSliderLoaded(true);\n };\n\n return (\n <div className={b()} {...extraProps}>\n <div className={b('image-wrapper')}>\n <Image\n {...props}\n alt={alt}\n className={b('image', imageClassName)}\n onClick={openModal}\n style={imageStyle}\n />\n <button className={b('expand-icon-wrapper')} onClick={openModal}>\n <Icon\n data={ChevronsExpandUpRight}\n width={FULL_SCREEN_ICON_SIZE}\n height={FULL_SCREEN_ICON_SIZE}\n className={b('icon')}\n />\n </button>\n </div>\n {isOpened && (\n <Modal\n open={isOpened}\n onClose={closeModal}\n className={b('modal', {'with-slider': Boolean(sliderData)})}\n contentClassName={b('modal-content', {loaded: sliderLoaded})}\n >\n <button\n className={b('close-icon-wrapper', {visible: true})}\n onClick={closeModal}\n aria-label={i18n('close')}\n >\n <Icon\n data={Xmark}\n width={CLOSE_ICON_SIZE}\n height={CLOSE_ICON_SIZE}\n className={b('icon', {hover: true})}\n />\n </button>\n {sliderData ? (\n <div className={b('modal-slider')}>\n <SliderBlock\n initialSlide={sliderData.initialIndex}\n slidesToShow={1}\n type={SliderType.FullscreenCard}\n >\n {sliderData.items.map((item, index) => (\n <div key={index} className={b('modal-slider_item')}>\n <Image\n onLoad={handleSliderImageLoad}\n className={b(\n 'modal-slider_item-image',\n modalImageClass,\n )}\n containerClassName={b(\n 'modal-slider_item-image-wrapper',\n )}\n {...getMediaImage(item)}\n />\n </div>\n ))}\n </SliderBlock>\n </div>\n ) : (\n <Image {...props} className={b('modal-image', modalImageClass)} />\n )}\n </Modal>\n )}\n </div>\n );\n};\n\nexport default FullscreenImage;\n"]}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { QAProps } from "../../models/common.js";
|
|
3
|
-
export interface
|
|
4
|
-
|
|
2
|
+
import { ClassNameProps, QAProps, TagName } from "../../models/common.js";
|
|
3
|
+
export interface HTMLExtraProps {
|
|
4
|
+
tagName?: TagName;
|
|
5
|
+
contentPosition?: 'start' | 'end';
|
|
6
|
+
contentClassName?: string;
|
|
7
|
+
onlyContent?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface HTMLProps extends HTMLExtraProps, React.PropsWithChildren, QAProps, ClassNameProps {
|
|
10
|
+
content?: string;
|
|
5
11
|
block?: boolean;
|
|
6
|
-
className?: string;
|
|
7
12
|
itemProp?: string;
|
|
8
13
|
id?: string;
|
|
9
14
|
}
|
|
10
|
-
declare const HTML: ({ children, block, className,
|
|
15
|
+
declare const HTML: ({ content, children, block, className, contentClassName, qa, contentPosition, tagName, onlyContent, ...rest }: HTMLProps) => React.DOMElement<{
|
|
16
|
+
itemProp?: string;
|
|
17
|
+
id?: string;
|
|
11
18
|
dangerouslySetInnerHTML: {
|
|
12
|
-
__html: string
|
|
19
|
+
__html: string;
|
|
13
20
|
};
|
|
14
21
|
className: string | undefined;
|
|
15
|
-
itemProp: string | undefined;
|
|
16
|
-
id: string | undefined;
|
|
17
22
|
'data-qa': string | undefined;
|
|
23
|
+
}, Element> | React.DetailedReactHTMLElement<{
|
|
24
|
+
className: string | undefined;
|
|
18
25
|
}, HTMLElement> | null;
|
|
19
26
|
export default HTML;
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
+
import { __rest } from "tslib";
|
|
1
2
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
const HTML = (
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { selectTagName } from "../../utils/index.js";
|
|
4
|
+
const HTML = (_a) => {
|
|
5
|
+
var { content, children, block = false, className, contentClassName, qa, contentPosition = 'start', tagName = 'span', onlyContent = false } = _a, rest = __rest(_a, ["content", "children", "block", "className", "contentClassName", "qa", "contentPosition", "tagName", "onlyContent"]);
|
|
6
|
+
const renderedContent = React.useMemo(() => {
|
|
7
|
+
return content
|
|
8
|
+
? React.createElement(selectTagName({ content, block, tagName, children }), Object.assign({ dangerouslySetInnerHTML: { __html: content }, className: contentClassName, 'data-qa': qa }, rest))
|
|
9
|
+
: null;
|
|
10
|
+
}, [block, children, content, contentClassName, qa, rest, tagName]);
|
|
11
|
+
if (onlyContent) {
|
|
12
|
+
return renderedContent;
|
|
6
13
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
});
|
|
14
|
+
if (children) {
|
|
15
|
+
return React.createElement(tagName, {
|
|
16
|
+
className,
|
|
17
|
+
}, contentPosition === 'start' ? renderedContent : null, children, contentPosition === 'end' ? renderedContent : null);
|
|
18
|
+
}
|
|
19
|
+
return renderedContent;
|
|
14
20
|
};
|
|
15
21
|
export default HTML;
|
|
16
22
|
//# sourceMappingURL=HTML.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HTML.js","sourceRoot":"../../../../src","sources":["components/HTML/HTML.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"HTML.js","sourceRoot":"../../../../src","sources":["components/HTML/HTML.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,aAAa,EAAC,6BAAoB;AAmB1C,MAAM,IAAI,GAAG,CAAC,EAWF,EAAE,EAAE;QAXF,EACV,OAAO,EACP,QAAQ,EACR,KAAK,GAAG,KAAK,EACb,SAAS,EACT,gBAAgB,EAChB,EAAE,EACF,eAAe,GAAG,OAAO,EACzB,OAAO,GAAG,MAAM,EAChB,WAAW,GAAG,KAAK,OAEX,EADL,IAAI,cAVG,oHAWb,CADU;IAEP,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,OAAO,OAAO;YACV,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,kBAClE,uBAAuB,EAAE,EAAC,MAAM,EAAE,OAAO,EAAC,EAC1C,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,EAAE,IACV,IAAI,EACT;YACJ,CAAC,CAAC,IAAI,CAAC;IACf,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpE,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,KAAK,CAAC,aAAa,CACtB,OAAO,EACP;YACI,SAAS;SACZ,EACD,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EACpD,QAAQ,EACR,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CACrD,CAAC;IACN,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ClassNameProps, QAProps, TagName} from '../../models/common';\nimport {selectTagName} from '../../utils';\n\nexport interface HTMLExtraProps {\n tagName?: TagName;\n contentPosition?: 'start' | 'end';\n contentClassName?: string;\n onlyContent?: boolean;\n}\nexport interface HTMLProps\n extends HTMLExtraProps,\n React.PropsWithChildren,\n QAProps,\n ClassNameProps {\n content?: string;\n block?: boolean;\n itemProp?: string;\n id?: string;\n}\n\nconst HTML = ({\n content,\n children,\n block = false,\n className,\n contentClassName,\n qa,\n contentPosition = 'start',\n tagName = 'span',\n onlyContent = false,\n ...rest\n}: HTMLProps) => {\n const renderedContent = React.useMemo(() => {\n return content\n ? React.createElement(selectTagName({content, block, tagName, children}), {\n dangerouslySetInnerHTML: {__html: content},\n className: contentClassName,\n 'data-qa': qa,\n ...rest,\n })\n : null;\n }, [block, children, content, contentClassName, qa, rest, tagName]);\n\n if (onlyContent) {\n return renderedContent;\n }\n\n if (children) {\n return React.createElement(\n tagName,\n {\n className,\n },\n contentPosition === 'start' ? renderedContent : null,\n children,\n contentPosition === 'end' ? renderedContent : null,\n );\n }\n\n return renderedContent;\n};\n\nexport default HTML;\n"]}
|
|
@@ -5,7 +5,7 @@ import { Icon } from '@gravity-ui/uikit';
|
|
|
5
5
|
import { LocaleContext } from "../../context/localeContext/index.js";
|
|
6
6
|
import { LocationContext } from "../../context/locationContext/index.js";
|
|
7
7
|
import { useAnalytics } from "../../hooks/index.js";
|
|
8
|
-
import { DefaultEventNames } from "../../models/index.js";
|
|
8
|
+
import { DefaultEventNames, } from "../../models/index.js";
|
|
9
9
|
import { block, getLinkProps, getQaAttrubutes, setUrlTld } from "../../utils/index.js";
|
|
10
10
|
import BackLink from "../BackLink/BackLink.js";
|
|
11
11
|
import FileLink from "../FileLink/FileLink.js";
|
|
@@ -17,6 +17,7 @@ function getArrowSize(size) {
|
|
|
17
17
|
case 'l':
|
|
18
18
|
return 20;
|
|
19
19
|
case 'm':
|
|
20
|
+
case 'sm':
|
|
20
21
|
return 18;
|
|
21
22
|
case 's':
|
|
22
23
|
return 14;
|
|
@@ -24,6 +25,15 @@ function getArrowSize(size) {
|
|
|
24
25
|
return 14;
|
|
25
26
|
}
|
|
26
27
|
}
|
|
28
|
+
function getTextSize({ size, theme }) {
|
|
29
|
+
if (!size) {
|
|
30
|
+
return theme === 'back' ? 'l' : 'm';
|
|
31
|
+
}
|
|
32
|
+
if (size === 'sm') {
|
|
33
|
+
return 'm';
|
|
34
|
+
}
|
|
35
|
+
return size;
|
|
36
|
+
}
|
|
27
37
|
const LinkBlock = (props) => {
|
|
28
38
|
const { text, url, arrow, analyticsEvents, theme = 'file-link', colorTheme = 'light', textSize = 'm', className, target, children, tabIndex, qa, urlTitle, extraProps, } = props;
|
|
29
39
|
const qaAttributes = getQaAttrubutes(qa, ['normal']);
|
|
@@ -31,7 +41,6 @@ const LinkBlock = (props) => {
|
|
|
31
41
|
const { hostname } = React.useContext(LocationContext);
|
|
32
42
|
const { tld } = React.useContext(LocaleContext);
|
|
33
43
|
const href = setUrlTld(props.url, tld);
|
|
34
|
-
const defaultTextSize = theme === 'back' ? 'l' : 'm';
|
|
35
44
|
const onClick = () => {
|
|
36
45
|
handleAnalytics(analyticsEvents);
|
|
37
46
|
};
|
|
@@ -51,7 +60,7 @@ const LinkBlock = (props) => {
|
|
|
51
60
|
return null;
|
|
52
61
|
}
|
|
53
62
|
};
|
|
54
|
-
return (_jsx("div", { className: b({ size: textSize
|
|
63
|
+
return (_jsx("div", { className: b({ size: getTextSize({ size: textSize, theme }) }, className), children: getLinkByType() }));
|
|
55
64
|
};
|
|
56
65
|
export default LinkBlock;
|
|
57
66
|
//# sourceMappingURL=Link.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sourceRoot":"../../../../src","sources":["components/Link/Link.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,aAAa,EAAC,6CAAoC;AAC1D,OAAO,EAAC,eAAe,EAAC,+CAAsC;AAC9D,OAAO,EAAC,YAAY,EAAC,6BAAoB;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"Link.js","sourceRoot":"../../../../src","sources":["components/Link/Link.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {ChevronRight} from '@gravity-ui/icons';\nimport {Icon} from '@gravity-ui/uikit';\n\nimport {LocaleContext} from '../../context/localeContext';\nimport {LocationContext} from '../../context/locationContext';\nimport {useAnalytics} from '../../hooks';\nimport {\n ClassNameProps,\n DefaultEventNames,\n LinkProps,\n LinkTheme,\n Tabbable,\n TextSize,\n} from '../../models';\nimport {QAProps} from '../../models/common';\nimport {block, getLinkProps, getQaAttrubutes, setUrlTld} from '../../utils';\nimport BackLink from '../BackLink/BackLink';\nimport FileLink from '../FileLink/FileLink';\n\nimport './Link.scss';\n\nconst b = block('link-block');\nconst WORD_JOINER_SYM = '\\u200b';\n\nexport type LinkFullProps = LinkProps & ClassNameProps & Tabbable & QAProps;\n\nfunction getArrowSize(size: TextSize) {\n switch (size) {\n case 'l':\n return 20;\n case 'm':\n case 'sm':\n return 18;\n case 's':\n return 14;\n default:\n return 14;\n }\n}\n\nfunction getTextSize({size, theme}: {size?: TextSize; theme: LinkTheme}) {\n if (!size) {\n return theme === 'back' ? 'l' : 'm';\n }\n\n if (size === 'sm') {\n return 'm';\n }\n\n return size;\n}\n\nconst LinkBlock = (props: React.PropsWithChildren<LinkFullProps>) => {\n const {\n text,\n url,\n arrow,\n analyticsEvents,\n theme = 'file-link',\n colorTheme = 'light',\n textSize = 'm',\n className,\n target,\n children,\n tabIndex,\n qa,\n urlTitle,\n extraProps,\n } = props;\n const qaAttributes = getQaAttrubutes(qa, ['normal']);\n\n const handleAnalytics = useAnalytics(DefaultEventNames.Link, url);\n const {hostname} = React.useContext(LocationContext);\n const {tld} = React.useContext(LocaleContext);\n const href = setUrlTld(props.url, tld);\n\n const onClick = () => {\n handleAnalytics(analyticsEvents);\n };\n\n const getLinkByType = () => {\n switch (theme) {\n case 'back':\n return (\n <BackLink\n title={children || text}\n url={href}\n onClick={onClick}\n tabIndex={tabIndex}\n extraProps={extraProps}\n />\n );\n case 'file-link':\n case 'underline':\n return (\n <FileLink\n text={children || text}\n href={href}\n type=\"horizontal\"\n textSize={textSize}\n onClick={onClick}\n tabIndex={tabIndex}\n extraProps={extraProps}\n />\n );\n case 'normal': {\n const linkProps = getLinkProps(url, hostname, target);\n const content = children || text;\n\n return (\n <a\n className={b('link', {theme: colorTheme, 'has-arrow': arrow})}\n href={href}\n onClick={onClick}\n tabIndex={tabIndex}\n title={urlTitle}\n {...linkProps}\n data-qa={qaAttributes.normal}\n {...extraProps}\n >\n {arrow ? (\n <React.Fragment>\n <span className={b('content')}>{content}</span>\n {WORD_JOINER_SYM}\n <Icon\n className={b('arrow')}\n data={ChevronRight}\n size={getArrowSize(textSize)}\n />\n </React.Fragment>\n ) : (\n content\n )}\n </a>\n );\n }\n default:\n return null;\n }\n };\n return (\n <div className={b({size: getTextSize({size: textSize, theme})}, className)}>\n {getLinkByType()}\n </div>\n );\n};\n\nexport default LinkBlock;\n"]}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { animated, config, useSpring } from '@react-spring/web';
|
|
4
4
|
import debounce from "lodash/debounce.js";
|
|
5
|
-
import SliderBlock from "../../../blocks/
|
|
5
|
+
import { SliderBlock } from "../../../blocks/index.js";
|
|
6
6
|
import { SliderType } from "../../../models/index.js";
|
|
7
7
|
import { block, getQaAttrubutes } from "../../../utils/index.js";
|
|
8
8
|
import BackgroundImage from "../../BackgroundImage/BackgroundImage.js";
|
|
@@ -13,7 +13,7 @@ import './Image.css';
|
|
|
13
13
|
const b = block('media-component-image');
|
|
14
14
|
export const defaultAnimatedDivQa = 'animated-div';
|
|
15
15
|
const Image = (props) => {
|
|
16
|
-
const { parallax, height, imageClassName, isBackground, hasVideoFallback, video, fullscreen, disableImageSliderForArrayInput, qa, onLoad, } = props;
|
|
16
|
+
const { parallax, height, imageClassName, fullscreenClassName, isBackground, hasVideoFallback, video, fullscreen, disableImageSliderForArrayInput, qa, onLoad, } = props;
|
|
17
17
|
const image = Array.isArray(props.image) && disableImageSliderForArrayInput
|
|
18
18
|
? props.image[0]
|
|
19
19
|
: props.image;
|
|
@@ -39,9 +39,9 @@ const Image = (props) => {
|
|
|
39
39
|
parallaxInterpolate = springScrollY.to((value) => `translateY(-${Number(value) / parallaxLevel}px)`);
|
|
40
40
|
}
|
|
41
41
|
const imageClass = b('item', { withVideo: Boolean(video) && !hasVideoFallback }, imageClassName);
|
|
42
|
-
const renderFullscreenImage = (item) => {
|
|
42
|
+
const renderFullscreenImage = (item, sliderData) => {
|
|
43
43
|
const itemData = getMediaImage(item);
|
|
44
|
-
return (_jsx(FullscreenImage, Object.assign({}, itemData, { imageClassName: imageClass, imageStyle: { height }, qa: qaAttributes.fullscreenImage }), itemData.alt));
|
|
44
|
+
return (_jsx(FullscreenImage, Object.assign({}, itemData, { imageClassName: imageClass, modalImageClass: fullscreenClassName, imageStyle: { height }, qa: qaAttributes.fullscreenImage, sliderData: sliderData }), itemData.alt));
|
|
45
45
|
};
|
|
46
46
|
const imageBackground = (oneImage) => {
|
|
47
47
|
const imageData = getMediaImage(oneImage);
|
|
@@ -53,7 +53,9 @@ const Image = (props) => {
|
|
|
53
53
|
};
|
|
54
54
|
const imageSlider = (imageArray) => {
|
|
55
55
|
const fullscreenItem = fullscreen === undefined || fullscreen;
|
|
56
|
-
return (_jsx(SliderBlock, { slidesToShow: 1, type: SliderType.MediaCard, children: imageArray.map((item, index) => (_jsx(React.Fragment, { children: fullscreenItem
|
|
56
|
+
return (_jsx(SliderBlock, { slidesToShow: 1, type: SliderType.MediaCard, children: imageArray.map((item, index) => (_jsx(React.Fragment, { children: fullscreenItem
|
|
57
|
+
? renderFullscreenImage(item, { items: imageArray, initialIndex: index })
|
|
58
|
+
: imageOnly(item) }, index))) }));
|
|
57
59
|
};
|
|
58
60
|
if (Array.isArray(image)) {
|
|
59
61
|
return imageSlider(image);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sourceRoot":"../../../../../src","sources":["components/Media/Image/Image.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAgB,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,QAAQ,2BAAwB;AAEvC,OAAO,WAAW,
|
|
1
|
+
{"version":3,"file":"Image.js","sourceRoot":"../../../../../src","sources":["components/Media/Image/Image.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {Interpolation, animated, config, useSpring} from '@react-spring/web';\nimport debounce from 'lodash/debounce';\n\nimport {SliderBlock} from '../../../blocks';\nimport {ImageProps, MediaComponentImageProps, QAProps, SliderType} from '../../../models';\nimport {block, getQaAttrubutes} from '../../../utils';\nimport BackgroundImage from '../../BackgroundImage/BackgroundImage';\nimport FullscreenImage, {FullscreenImageProps} from '../../FullscreenImage/FullscreenImage';\nimport ImageView from '../../Image/Image';\n\nimport {getMediaImage} from './utils';\n\nimport './Image.scss';\n\nconst b = block('media-component-image');\n\nexport interface ImageAdditionProps {\n imageClassName?: string;\n isBackground?: boolean;\n fullscreen?: boolean;\n fullscreenClassName?: string;\n onLoad?: () => void;\n}\n\ninterface InnerImageProps {\n hasVideoFallback: boolean;\n}\n\ntype ImageAllProps = ImageAdditionProps & MediaComponentImageProps & InnerImageProps & QAProps;\n\nexport const defaultAnimatedDivQa = 'animated-div';\n\nconst Image = (props: ImageAllProps) => {\n const {\n parallax,\n height,\n imageClassName,\n fullscreenClassName,\n isBackground,\n hasVideoFallback,\n video,\n fullscreen,\n disableImageSliderForArrayInput,\n qa,\n onLoad,\n } = props;\n const image =\n Array.isArray(props.image) && disableImageSliderForArrayInput\n ? props.image[0]\n : props.image;\n\n const qaAttributes = getQaAttrubutes(\n qa,\n 'fullscreen-image',\n 'animate',\n 'background-image',\n 'image-view',\n 'slider-block',\n );\n const [scrollY, setScrollY] = React.useState(0);\n const [{springScrollY}, springSetScrollY] = useSpring(() => ({\n springScrollY: 0,\n config: config.molasses,\n }));\n\n let parallaxInterpolate: Interpolation<number, string> | string = '';\n\n React.useEffect(() => {\n if (parallax) {\n const handleScroll = () => setScrollY(window.scrollY);\n const debouncedHandler = debounce(handleScroll, 5);\n\n window.addEventListener('scroll', debouncedHandler, {passive: true});\n return () => window.removeEventListener('scroll', debouncedHandler);\n }\n\n return () => {};\n });\n\n if (parallax) {\n const parallaxLevel = 2;\n springSetScrollY.start({springScrollY: height && scrollY > height ? height : scrollY});\n parallaxInterpolate = springScrollY.to(\n (value) => `translateY(-${Number(value) / parallaxLevel}px)`,\n );\n }\n\n const imageClass = b('item', {withVideo: Boolean(video) && !hasVideoFallback}, imageClassName);\n\n const renderFullscreenImage = (\n item: ImageProps,\n sliderData?: FullscreenImageProps['sliderData'],\n ) => {\n const itemData = getMediaImage(item);\n\n return (\n <FullscreenImage\n key={itemData.alt}\n {...itemData}\n imageClassName={imageClass}\n modalImageClass={fullscreenClassName}\n imageStyle={{height}}\n qa={qaAttributes.fullscreenImage}\n sliderData={sliderData}\n />\n );\n };\n\n const imageBackground = (oneImage: ImageProps) => {\n const imageData = getMediaImage(oneImage);\n return (\n <animated.div style={{transform: parallaxInterpolate}} data-qa={qaAttributes.animate}>\n <BackgroundImage\n {...imageData}\n className={imageClass}\n style={{height}}\n qa={qaAttributes.backgroundImage}\n />\n </animated.div>\n );\n };\n\n const imageOnly = (oneImage: ImageProps) => {\n const imageData = getMediaImage(oneImage);\n return (\n <ImageView\n {...imageData}\n className={imageClass}\n style={{height}}\n qa={qaAttributes.imageView}\n onLoad={onLoad}\n />\n );\n };\n\n const imageSlider = (imageArray: ImageProps[]) => {\n const fullscreenItem = fullscreen === undefined || fullscreen;\n\n return (\n <SliderBlock slidesToShow={1} type={SliderType.MediaCard}>\n {imageArray.map((item, index) => (\n <React.Fragment key={index}>\n {fullscreenItem\n ? renderFullscreenImage(item, {items: imageArray, initialIndex: index})\n : imageOnly(item)}\n </React.Fragment>\n ))}\n </SliderBlock>\n );\n };\n\n if (Array.isArray(image)) {\n return imageSlider(image);\n }\n\n if (fullscreen) {\n return renderFullscreenImage(image);\n }\n\n return isBackground ? imageBackground(image) : imageOnly(image);\n};\n\nexport default Image;\n"]}
|
|
@@ -4,6 +4,7 @@ import { VideoAdditionProps } from "./Video/Video.js";
|
|
|
4
4
|
import './Media.css';
|
|
5
5
|
export interface MediaAllProps extends MediaProps, VideoAdditionProps, ImageAdditionProps, QAProps {
|
|
6
6
|
className?: string;
|
|
7
|
+
isFullscreenImageCover?: boolean;
|
|
7
8
|
youtubeClassName?: string;
|
|
8
9
|
autoplay?: boolean;
|
|
9
10
|
onImageLoad?: () => void;
|
|
@@ -12,14 +12,14 @@ import Video from "./Video/Video.js";
|
|
|
12
12
|
import './Media.css';
|
|
13
13
|
const b = block('Media');
|
|
14
14
|
export const Media = (props) => {
|
|
15
|
-
const { image, video, youtube, videoIframe, dataLens, color, height, previewImg, parallax = false, fullscreen, analyticsEvents, className, imageClassName, videoClassName, youtubeClassName, disableImageSliderForArrayInput, playVideo = true, isBackground, playButton, customBarControlsClassName, qa, ratio, autoplay, onImageLoad, iframe, margins, videoMicrodata, } = props;
|
|
15
|
+
const { image, video, youtube, videoIframe, dataLens, color, height, previewImg, parallax = false, fullscreen, isFullscreenImageCover, analyticsEvents, className, imageClassName, videoClassName, youtubeClassName, disableImageSliderForArrayInput, playVideo = true, isBackground, playButton, customBarControlsClassName, qa, ratio, autoplay, onImageLoad, iframe, margins, videoMicrodata, } = props;
|
|
16
16
|
const [hasVideoFallback, setHasVideoFallback] = React.useState(false);
|
|
17
17
|
const { microdata } = React.useContext(InnerContext);
|
|
18
18
|
const qaAttributes = getQaAttrubutes(qa, 'video');
|
|
19
19
|
const content = React.useMemo(() => {
|
|
20
20
|
let result = [];
|
|
21
21
|
if (image) {
|
|
22
|
-
result.push(_jsx(Image, { parallax: parallax, image: image, disableImageSliderForArrayInput: disableImageSliderForArrayInput, height: height, imageClassName: imageClassName, isBackground: isBackground, video: video, hasVideoFallback: hasVideoFallback, fullscreen: fullscreen, qa: qaAttributes.image, onLoad: onImageLoad }, "image"));
|
|
22
|
+
result.push(_jsx(Image, { parallax: parallax, image: image, disableImageSliderForArrayInput: disableImageSliderForArrayInput, height: height, imageClassName: imageClassName, fullscreenClassName: isFullscreenImageCover ? b('fullscreen-image-cover') : undefined, isBackground: isBackground, video: video, hasVideoFallback: hasVideoFallback, fullscreen: fullscreen, qa: qaAttributes.image, onLoad: onImageLoad }, "image"));
|
|
23
23
|
}
|
|
24
24
|
if (video) {
|
|
25
25
|
const videoProps = {
|
|
@@ -67,6 +67,7 @@ export const Media = (props) => {
|
|
|
67
67
|
isBackground,
|
|
68
68
|
hasVideoFallback,
|
|
69
69
|
fullscreen,
|
|
70
|
+
isFullscreenImageCover,
|
|
70
71
|
qaAttributes.image,
|
|
71
72
|
qaAttributes.video,
|
|
72
73
|
onImageLoad,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Media.js","sourceRoot":"../../../../src","sources":["components/Media/Media.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {InnerContext} from '../../context/innerContext';\nimport {MediaProps, QAProps} from '../../models';\nimport {block, getQaAttrubutes} from '../../utils';\nimport {sanitizeMicrodata} from '../../utils/microdata';\nimport IframeVideoBlock from '../VideoBlock/VideoBlock';\n\nimport DataLens from './DataLens/DataLens';\nimport FullscreenVideo from './FullscreenVideo/FullscreenVideo';\nimport Iframe from './Iframe/Iframe';\nimport Image, {ImageAdditionProps} from './Image/Image';\nimport Video, {VideoAdditionProps} from './Video/Video';\n\nimport './Media.scss';\n\nconst b = block('Media');\n\nexport interface MediaAllProps extends MediaProps, VideoAdditionProps, ImageAdditionProps, QAProps {\n className?: string;\n youtubeClassName?: string;\n autoplay?: boolean;\n onImageLoad?: () => void;\n}\n\nexport const Media = (props: MediaAllProps) => {\n const {\n image,\n video,\n youtube,\n videoIframe,\n dataLens,\n color,\n height,\n previewImg,\n parallax = false,\n fullscreen,\n analyticsEvents,\n className,\n imageClassName,\n videoClassName,\n youtubeClassName,\n disableImageSliderForArrayInput,\n playVideo = true,\n isBackground,\n playButton,\n customBarControlsClassName,\n qa,\n ratio,\n autoplay,\n onImageLoad,\n iframe,\n margins,\n videoMicrodata,\n } = props;\n\n const [hasVideoFallback, setHasVideoFallback] = React.useState(false);\n const {microdata} = React.useContext(InnerContext);\n\n const qaAttributes = getQaAttrubutes(qa, 'video');\n\n const content = React.useMemo(() => {\n let result: React.ReactElement | React.ReactElement[] = [];\n\n if (image) {\n result.push(\n <Image\n key=\"image\"\n parallax={parallax}\n image={image}\n disableImageSliderForArrayInput={disableImageSliderForArrayInput}\n height={height}\n imageClassName={imageClassName}\n isBackground={isBackground}\n video={video}\n hasVideoFallback={hasVideoFallback}\n fullscreen={fullscreen}\n qa={qaAttributes.image}\n onLoad={onImageLoad}\n />,\n );\n }\n\n if (video) {\n const videoProps = {\n key: 'video',\n video,\n videoClassName,\n height,\n analyticsEvents,\n playVideo,\n previewImg,\n playButton,\n customBarControlsClassName,\n hasVideoFallback,\n setHasVideoFallback,\n ratio,\n };\n\n if (fullscreen) {\n result.push(<FullscreenVideo {...videoProps} qa={qaAttributes.video} />);\n } else {\n result.push(<Video {...videoProps} qa={qaAttributes.video} />);\n }\n }\n\n if (youtube || videoIframe) {\n result = (\n <IframeVideoBlock\n className={b('youtube', youtubeClassName)}\n record={youtube}\n videoIframe={videoIframe}\n attributes={{color: 'white', rel: '0'}}\n previewImg={previewImg}\n height={height}\n fullscreen={fullscreen}\n analyticsEvents={analyticsEvents}\n autoplay={autoplay}\n onImageLoad={onImageLoad}\n />\n );\n }\n\n if (dataLens) {\n result = <DataLens dataLens={dataLens} />;\n }\n\n if (iframe) {\n result = <Iframe iframe={iframe} margins={margins} />;\n }\n\n return result;\n }, [\n image,\n video,\n videoIframe,\n youtube,\n dataLens,\n iframe,\n parallax,\n disableImageSliderForArrayInput,\n height,\n imageClassName,\n isBackground,\n hasVideoFallback,\n fullscreen,\n qaAttributes.image,\n qaAttributes.video,\n onImageLoad,\n videoClassName,\n analyticsEvents,\n playVideo,\n previewImg,\n playButton,\n customBarControlsClassName,\n ratio,\n youtubeClassName,\n autoplay,\n margins,\n ]);\n\n const videoMicrodataScript = React.useMemo(() => {\n const {name, description} = videoMicrodata || {};\n const json = JSON.stringify({\n '@context': 'http://schema.org/',\n '@type': 'VideoObject',\n uploadDate: microdata?.contentUpdatedDate,\n contentUrl: video?.src?.[0] || videoIframe || youtube,\n thumbnailUrl: previewImg,\n ...(videoMicrodata || {}),\n name: name ? sanitizeMicrodata(name) : name,\n description: description ? sanitizeMicrodata(description) : description,\n });\n\n return video || youtube || videoIframe ? (\n <script type=\"application/ld+json\" dangerouslySetInnerHTML={{__html: json}} />\n ) : null;\n }, [microdata?.contentUpdatedDate, previewImg, video, videoIframe, videoMicrodata, youtube]);\n\n return (\n <div className={b(null, className)} style={{backgroundColor: color}} data-qa={qa}>\n {videoMicrodataScript}\n {content}\n </div>\n );\n};\n\nexport default Media;\n"]}
|
|
1
|
+
{"version":3,"file":"Media.js","sourceRoot":"../../../../src","sources":["components/Media/Media.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {InnerContext} from '../../context/innerContext';\nimport {MediaProps, QAProps} from '../../models';\nimport {block, getQaAttrubutes} from '../../utils';\nimport {sanitizeMicrodata} from '../../utils/microdata';\nimport IframeVideoBlock from '../VideoBlock/VideoBlock';\n\nimport DataLens from './DataLens/DataLens';\nimport FullscreenVideo from './FullscreenVideo/FullscreenVideo';\nimport Iframe from './Iframe/Iframe';\nimport Image, {ImageAdditionProps} from './Image/Image';\nimport Video, {VideoAdditionProps} from './Video/Video';\n\nimport './Media.scss';\n\nconst b = block('Media');\n\nexport interface MediaAllProps extends MediaProps, VideoAdditionProps, ImageAdditionProps, QAProps {\n className?: string;\n isFullscreenImageCover?: boolean;\n youtubeClassName?: string;\n autoplay?: boolean;\n onImageLoad?: () => void;\n}\n\nexport const Media = (props: MediaAllProps) => {\n const {\n image,\n video,\n youtube,\n videoIframe,\n dataLens,\n color,\n height,\n previewImg,\n parallax = false,\n fullscreen,\n isFullscreenImageCover,\n analyticsEvents,\n className,\n imageClassName,\n videoClassName,\n youtubeClassName,\n disableImageSliderForArrayInput,\n playVideo = true,\n isBackground,\n playButton,\n customBarControlsClassName,\n qa,\n ratio,\n autoplay,\n onImageLoad,\n iframe,\n margins,\n videoMicrodata,\n } = props;\n\n const [hasVideoFallback, setHasVideoFallback] = React.useState(false);\n const {microdata} = React.useContext(InnerContext);\n\n const qaAttributes = getQaAttrubutes(qa, 'video');\n\n const content = React.useMemo(() => {\n let result: React.ReactElement | React.ReactElement[] = [];\n\n if (image) {\n result.push(\n <Image\n key=\"image\"\n parallax={parallax}\n image={image}\n disableImageSliderForArrayInput={disableImageSliderForArrayInput}\n height={height}\n imageClassName={imageClassName}\n fullscreenClassName={\n isFullscreenImageCover ? b('fullscreen-image-cover') : undefined\n }\n isBackground={isBackground}\n video={video}\n hasVideoFallback={hasVideoFallback}\n fullscreen={fullscreen}\n qa={qaAttributes.image}\n onLoad={onImageLoad}\n />,\n );\n }\n\n if (video) {\n const videoProps = {\n key: 'video',\n video,\n videoClassName,\n height,\n analyticsEvents,\n playVideo,\n previewImg,\n playButton,\n customBarControlsClassName,\n hasVideoFallback,\n setHasVideoFallback,\n ratio,\n };\n\n if (fullscreen) {\n result.push(<FullscreenVideo {...videoProps} qa={qaAttributes.video} />);\n } else {\n result.push(<Video {...videoProps} qa={qaAttributes.video} />);\n }\n }\n\n if (youtube || videoIframe) {\n result = (\n <IframeVideoBlock\n className={b('youtube', youtubeClassName)}\n record={youtube}\n videoIframe={videoIframe}\n attributes={{color: 'white', rel: '0'}}\n previewImg={previewImg}\n height={height}\n fullscreen={fullscreen}\n analyticsEvents={analyticsEvents}\n autoplay={autoplay}\n onImageLoad={onImageLoad}\n />\n );\n }\n\n if (dataLens) {\n result = <DataLens dataLens={dataLens} />;\n }\n\n if (iframe) {\n result = <Iframe iframe={iframe} margins={margins} />;\n }\n\n return result;\n }, [\n image,\n video,\n videoIframe,\n youtube,\n dataLens,\n iframe,\n parallax,\n disableImageSliderForArrayInput,\n height,\n imageClassName,\n isBackground,\n hasVideoFallback,\n fullscreen,\n isFullscreenImageCover,\n qaAttributes.image,\n qaAttributes.video,\n onImageLoad,\n videoClassName,\n analyticsEvents,\n playVideo,\n previewImg,\n playButton,\n customBarControlsClassName,\n ratio,\n youtubeClassName,\n autoplay,\n margins,\n ]);\n\n const videoMicrodataScript = React.useMemo(() => {\n const {name, description} = videoMicrodata || {};\n const json = JSON.stringify({\n '@context': 'http://schema.org/',\n '@type': 'VideoObject',\n uploadDate: microdata?.contentUpdatedDate,\n contentUrl: video?.src?.[0] || videoIframe || youtube,\n thumbnailUrl: previewImg,\n ...(videoMicrodata || {}),\n name: name ? sanitizeMicrodata(name) : name,\n description: description ? sanitizeMicrodata(description) : description,\n });\n\n return video || youtube || videoIframe ? (\n <script type=\"application/ld+json\" dangerouslySetInnerHTML={{__html: json}} />\n ) : null;\n }, [microdata?.contentUpdatedDate, previewImg, video, videoIframe, videoMicrodata, youtube]);\n\n return (\n <div className={b(null, className)} style={{backgroundColor: color}} data-qa={qa}>\n {videoMicrodataScript}\n {content}\n </div>\n );\n};\n\nexport default Media;\n"]}
|
|
@@ -3,6 +3,6 @@ import { block } from "../../utils/index.js";
|
|
|
3
3
|
import { YFMWrapper } from "../index.js";
|
|
4
4
|
import './MetaInfo.css';
|
|
5
5
|
const b = block('meta-info');
|
|
6
|
-
const MetaInfo = ({ items, className }) => (_jsx("h4", { className: b(null, className), children: items.map((metaInfoItem) => (_jsx(YFMWrapper, { content: metaInfoItem,
|
|
6
|
+
const MetaInfo = ({ items, className }) => (_jsx("h4", { className: b(null, className), children: items.map((metaInfoItem) => (_jsx(YFMWrapper, { content: metaInfoItem, contentClassName: b('item'), modifiers: { constructor: true, constructorMetaInfo: true } }, metaInfoItem))) }));
|
|
7
7
|
export default MetaInfo;
|
|
8
8
|
//# sourceMappingURL=MetaInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaInfo.js","sourceRoot":"../../../../src","sources":["components/MetaInfo/MetaInfo.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAClC,OAAO,EAAC,UAAU,EAAC,oBAAiB;AAEpC,OAAO,gBAAgB,CAAC;AAExB,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;AAM7B,MAAM,QAAQ,GAAG,CAAC,EAAC,KAAK,EAAE,SAAS,EAAiB,EAAE,EAAE,CAAC,CACrD,aAAI,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CACzB,KAAC,UAAU,IACP,OAAO,EAAE,YAAY,EAErB,
|
|
1
|
+
{"version":3,"file":"MetaInfo.js","sourceRoot":"../../../../src","sources":["components/MetaInfo/MetaInfo.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAClC,OAAO,EAAC,UAAU,EAAC,oBAAiB;AAEpC,OAAO,gBAAgB,CAAC;AAExB,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;AAM7B,MAAM,QAAQ,GAAG,CAAC,EAAC,KAAK,EAAE,SAAS,EAAiB,EAAE,EAAE,CAAC,CACrD,aAAI,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,YAC5B,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CACzB,KAAC,UAAU,IACP,OAAO,EAAE,YAAY,EAErB,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,EAC3B,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAC,IAFpD,YAAY,CAGnB,CACL,CAAC,GACD,CACR,CAAC;AACF,eAAe,QAAQ,CAAC","sourcesContent":["import {ClassNameProps} from '../../models';\nimport {block} from '../../utils';\nimport {YFMWrapper} from '../index';\n\nimport './MetaInfo.scss';\n\nconst b = block('meta-info');\n\nexport interface MetaInfpoProps extends ClassNameProps {\n items: string[];\n}\n\nconst MetaInfo = ({items, className}: MetaInfpoProps) => (\n <h4 className={b(null, className)}>\n {items.map((metaInfoItem) => (\n <YFMWrapper\n content={metaInfoItem}\n key={metaInfoItem}\n contentClassName={b('item')}\n modifiers={{constructor: true, constructorMetaInfo: true}}\n />\n ))}\n </h4>\n);\nexport default MetaInfo;\n"]}
|
|
@@ -74,9 +74,10 @@ unpredictable css rules order in build */
|
|
|
74
74
|
.pc-table__legend-item + .pc-table__legend-item {
|
|
75
75
|
margin-left: 32px;
|
|
76
76
|
}
|
|
77
|
-
.pc-table__legent-item-text {
|
|
77
|
+
.pc-table__legent-item-text.pc-table__legent-item-text {
|
|
78
78
|
margin-left: 6px;
|
|
79
79
|
}
|
|
80
|
+
|
|
80
81
|
@media (max-width: 577px) {
|
|
81
82
|
.pc-table__cell {
|
|
82
83
|
min-width: 120px;
|
|
@@ -2,7 +2,7 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Check, Minus } from '@gravity-ui/icons';
|
|
4
4
|
import { Icon } from '@gravity-ui/uikit';
|
|
5
|
-
import {
|
|
5
|
+
import { YFMWrapper } from "../index.js";
|
|
6
6
|
import { block } from "../../utils/index.js";
|
|
7
7
|
import './Table.css';
|
|
8
8
|
function getMarkerId(index) {
|
|
@@ -22,13 +22,15 @@ export default class Table extends React.Component {
|
|
|
22
22
|
}
|
|
23
23
|
renderTable(content, marker, legend) {
|
|
24
24
|
const justify = this.getDefaultJustify(content, this.props.justify);
|
|
25
|
-
return (_jsx("div", { className: b('table'), role: 'rowgroup', children: content.map((row, i) => (_jsx("div", { className: b('row'), role: 'row', children: row.map((cell, j) => (_jsx("div", { className: b('cell', { justify: justify[j] }), role: 'cell', children: legend && i && j ? (this.renderMarker(marker, cell)) : (_jsx(
|
|
25
|
+
return (_jsx("div", { className: b('table'), role: 'rowgroup', children: content.map((row, i) => (_jsx("div", { className: b('row'), role: 'row', children: row.map((cell, j) => (_jsx("div", { className: b('cell', { justify: justify[j] }), role: 'cell', children: legend && i && j ? (this.renderMarker(marker, cell)) : (_jsx(YFMWrapper, { tagName: "span", content: cell, modifiers: {
|
|
26
|
+
constructor: true,
|
|
27
|
+
} })) }, j))) }, i))) }));
|
|
26
28
|
}
|
|
27
29
|
renderMarker(type, cell) {
|
|
28
30
|
return (_jsx("div", { "aria-labelledby": getMarkerId(Number(cell)), className: b('marker', { type, index: String(cell) }), children: type === 'tick' ? (_jsx(Icon, { size: 20, className: b('marker_tick', { check: Number(cell) === 1 }), data: Number(cell) === 1 ? Check : Minus })) : null }));
|
|
29
31
|
}
|
|
30
32
|
renderLegend(legend, marker) {
|
|
31
|
-
return (_jsx("div", { className: b('legend'), children: legend.map((item, index) => (_jsxs("div", { className: b('legend-item'), children: [this.renderMarker(marker, String(index)), _jsx(YFMWrapper, {
|
|
33
|
+
return (_jsx("div", { className: b('legend'), children: legend.map((item, index) => (_jsxs("div", { className: b('legend-item'), children: [this.renderMarker(marker, String(index)), _jsx(YFMWrapper, { contentClassName: b('legent-item-text'), content: item, modifiers: { constructor: true }, id: getMarkerId(index) })] }, item))) }));
|
|
32
34
|
}
|
|
33
35
|
getDefaultJustify(content, justify) {
|
|
34
36
|
return justify || new Array(content[0].length).fill('center');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"../../../../src","sources":["components/Table/Table.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,KAAK,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"../../../../src","sources":["components/Table/Table.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {Check, Minus} from '@gravity-ui/icons';\nimport {Icon} from '@gravity-ui/uikit';\n\nimport {YFMWrapper} from '../';\nimport {ClassNameProps, Justify, LegendTableMarkerType, TableProps} from '../../models';\nimport {block} from '../../utils';\n\nimport './Table.scss';\n\nfunction getMarkerId(index: number): string | undefined {\n if (isNaN(index)) {\n return undefined;\n }\n\n return `marker-${index}`;\n}\n\nconst b = block('table');\n\nexport default class Table extends React.Component<TableProps & ClassNameProps> {\n render() {\n const {content, legend, hideLegend, marker = 'disk', className, caption} = this.props;\n\n if (!content || !content.length || !content[0].length) {\n return null;\n }\n\n return (\n <div className={b(null, className)} role={'table'} aria-label={caption}>\n {this.renderTable(content, marker, legend)}\n {legend && !hideLegend && this.renderLegend(legend, marker)}\n </div>\n );\n }\n\n private renderTable(content: string[][], marker: LegendTableMarkerType, legend?: string[]) {\n const justify = this.getDefaultJustify(content, this.props.justify);\n\n return (\n <div className={b('table')} role={'rowgroup'}>\n {content.map((row, i) => (\n <div key={i} className={b('row')} role={'row'}>\n {row.map((cell, j) => (\n <div key={j} className={b('cell', {justify: justify[j]})} role={'cell'}>\n {legend && i && j ? (\n this.renderMarker(marker, cell)\n ) : (\n <YFMWrapper\n tagName=\"span\"\n content={cell}\n modifiers={{\n constructor: true,\n }}\n />\n )}\n </div>\n ))}\n </div>\n ))}\n </div>\n );\n }\n\n private renderMarker(type: LegendTableMarkerType, cell: string) {\n return (\n <div\n aria-labelledby={getMarkerId(Number(cell))}\n className={b('marker', {type, index: String(cell)})}\n >\n {type === 'tick' ? (\n <Icon\n size={20}\n className={b('marker_tick', {check: Number(cell) === 1})}\n data={Number(cell) === 1 ? Check : Minus}\n />\n ) : null}\n </div>\n );\n }\n\n private renderLegend(legend: string[], marker: LegendTableMarkerType) {\n return (\n <div className={b('legend')}>\n {legend.map((item, index) => (\n <div key={item} className={b('legend-item')}>\n {this.renderMarker(marker, String(index))}\n <YFMWrapper\n contentClassName={b('legent-item-text')}\n content={item}\n modifiers={{constructor: true}}\n id={getMarkerId(index)}\n />\n </div>\n ))}\n </div>\n );\n }\n\n private getDefaultJustify(content: string[][], justify?: Justify[]) {\n return justify || new Array(content[0].length).fill('center');\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.pc-title-item_size_l, .pc-title-item_size_m, .pc-title-item_size_s, .pc-title-item_size_xs {
|
|
1
|
+
.pc-title-item_size_l, .pc-title-item_size_m, .pc-title-item_size_sm, .pc-title-item_size_s, .pc-title-item_size_xs {
|
|
2
2
|
margin: 0;
|
|
3
3
|
}
|
|
4
4
|
|
|
@@ -23,6 +23,13 @@ unpredictable css rules order in build */
|
|
|
23
23
|
font-weight: var(--g-text-accent-font-weight);
|
|
24
24
|
margin-top: 32px;
|
|
25
25
|
}
|
|
26
|
+
.pc-title-item_size_sm {
|
|
27
|
+
font-size: var(--g-text-display-1-font-size);
|
|
28
|
+
line-height: var(--g-text-display-1-line-height);
|
|
29
|
+
color: var(--pc-text-header-color);
|
|
30
|
+
font-weight: var(--g-text-accent-font-weight);
|
|
31
|
+
margin-top: 48px;
|
|
32
|
+
}
|
|
26
33
|
.pc-title-item_size_m {
|
|
27
34
|
font-size: var(--g-text-display-2-font-size);
|
|
28
35
|
line-height: var(--g-text-display-2-line-height);
|
|
@@ -96,22 +103,25 @@ unpredictable css rules order in build */
|
|
|
96
103
|
.pc-title-item__link:hover .pc-title-item__arrow_size_s {
|
|
97
104
|
margin-left: 8px;
|
|
98
105
|
}
|
|
99
|
-
.pc-title-item__text {
|
|
106
|
+
.pc-title-item__text.pc-title-item__text {
|
|
100
107
|
white-space: normal;
|
|
108
|
+
font-size: inherit;
|
|
109
|
+
line-height: inherit;
|
|
101
110
|
}
|
|
102
|
-
.pc-title-item__text a {
|
|
111
|
+
.pc-title-item__text.pc-title-item__text a {
|
|
103
112
|
outline: none;
|
|
104
113
|
color: var(--g-color-text-link);
|
|
105
114
|
text-decoration: none;
|
|
106
115
|
cursor: pointer;
|
|
107
116
|
}
|
|
108
|
-
.utilityfocus .pc-title-item__text a:focus {
|
|
117
|
+
.utilityfocus .pc-title-item__text.pc-title-item__text a:focus {
|
|
109
118
|
outline: 2px solid #ffdb4d;
|
|
110
119
|
}
|
|
111
|
-
.pc-title-item__text a:hover, .pc-title-item__text a:active {
|
|
120
|
+
.pc-title-item__text.pc-title-item__text a:hover, .pc-title-item__text.pc-title-item__text a:active {
|
|
112
121
|
--pc-text-header-color: var(--g-color-text-link-hover);
|
|
113
122
|
color: var(--g-color-text-link-hover);
|
|
114
123
|
}
|
|
124
|
+
|
|
115
125
|
.pc-title-item__wrapper {
|
|
116
126
|
white-space: nowrap;
|
|
117
127
|
}
|