@gravity-ui/page-constructor 1.26.0-alpha.1 → 2.0.0-alpha.0

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.
Files changed (121) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/cjs/blocks/Icons/Icons.js +1 -1
  3. package/build/cjs/blocks/Map/schema.d.ts +0 -12
  4. package/build/cjs/blocks/Share/Share.js +1 -2
  5. package/build/cjs/components/BackLink/BackLink.js +1 -2
  6. package/build/cjs/components/Button/Button.js +1 -2
  7. package/build/cjs/components/FileLink/FileLink.js +1 -2
  8. package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -2
  9. package/build/cjs/components/Link/Link.js +1 -2
  10. package/build/cjs/components/Map/GoogleMap.js +7 -5
  11. package/build/cjs/components/Map/Map.css +5 -0
  12. package/build/cjs/components/Map/YMap/YMap.d.ts +4 -2
  13. package/build/cjs/components/Map/YMap/YMap.js +18 -10
  14. package/build/cjs/components/Map/YMap/YandexMap.js +18 -9
  15. package/build/cjs/components/Title/Title.js +1 -2
  16. package/build/cjs/components/index.d.ts +0 -1
  17. package/build/cjs/components/index.js +1 -3
  18. package/build/cjs/constructor-items.d.ts +0 -1
  19. package/build/cjs/constructor-items.js +0 -1
  20. package/build/cjs/models/constructor-items/common.d.ts +0 -79
  21. package/build/cjs/models/constructor-items/common.js +1 -14
  22. package/build/cjs/models/constructor-items/sub-blocks.d.ts +2 -6
  23. package/build/cjs/models/constructor-items/sub-blocks.js +0 -1
  24. package/build/cjs/navigation/components/NavigationItem/components/GithubButton/GithubButton.js +1 -2
  25. package/build/cjs/navigation/components/SocialIcon/SocialIcon.js +1 -1
  26. package/build/cjs/schema/index.js +1 -3
  27. package/build/cjs/schema/validators/common.d.ts +0 -6
  28. package/build/cjs/schema/validators/common.js +0 -4
  29. package/build/cjs/schema/validators/sub-blocks.d.ts +0 -1
  30. package/build/cjs/schema/validators/sub-blocks.js +0 -1
  31. package/build/cjs/sub-blocks/Quote/Quote.js +1 -1
  32. package/build/cjs/sub-blocks/index.d.ts +0 -1
  33. package/build/cjs/sub-blocks/index.js +1 -3
  34. package/build/cjs/text-transform/blocks.js +0 -27
  35. package/build/esm/blocks/Icons/Icons.js +2 -2
  36. package/build/esm/blocks/Map/schema.d.ts +0 -12
  37. package/build/esm/blocks/Share/Share.js +1 -2
  38. package/build/esm/components/BackLink/BackLink.js +1 -2
  39. package/build/esm/components/Button/Button.js +1 -2
  40. package/build/esm/components/FileLink/FileLink.js +1 -2
  41. package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -2
  42. package/build/esm/components/Link/Link.js +1 -2
  43. package/build/esm/components/Map/GoogleMap.js +7 -5
  44. package/build/esm/components/Map/Map.css +5 -0
  45. package/build/esm/components/Map/YMap/YMap.d.ts +4 -2
  46. package/build/esm/components/Map/YMap/YMap.js +18 -10
  47. package/build/esm/components/Map/YMap/YandexMap.js +18 -9
  48. package/build/esm/components/Title/Title.js +1 -2
  49. package/build/esm/components/index.d.ts +0 -1
  50. package/build/esm/components/index.js +0 -1
  51. package/build/esm/constructor-items.d.ts +0 -1
  52. package/build/esm/constructor-items.js +1 -2
  53. package/build/esm/models/constructor-items/common.d.ts +0 -79
  54. package/build/esm/models/constructor-items/common.js +0 -13
  55. package/build/esm/models/constructor-items/sub-blocks.d.ts +2 -6
  56. package/build/esm/models/constructor-items/sub-blocks.js +0 -1
  57. package/build/esm/navigation/components/NavigationItem/components/GithubButton/GithubButton.js +1 -2
  58. package/build/esm/navigation/components/SocialIcon/SocialIcon.js +2 -2
  59. package/build/esm/schema/index.js +2 -4
  60. package/build/esm/schema/validators/common.d.ts +0 -6
  61. package/build/esm/schema/validators/common.js +0 -4
  62. package/build/esm/schema/validators/sub-blocks.d.ts +0 -1
  63. package/build/esm/schema/validators/sub-blocks.js +0 -1
  64. package/build/esm/sub-blocks/Quote/Quote.js +2 -2
  65. package/build/esm/sub-blocks/index.d.ts +0 -1
  66. package/build/esm/sub-blocks/index.js +0 -1
  67. package/build/esm/text-transform/blocks.js +0 -27
  68. package/package.json +10 -6
  69. package/server/models/constructor-items/common.d.ts +0 -79
  70. package/server/models/constructor-items/common.js +1 -14
  71. package/server/models/constructor-items/sub-blocks.d.ts +2 -6
  72. package/server/models/constructor-items/sub-blocks.js +0 -1
  73. package/server/text-transform/blocks.js +0 -27
  74. package/build/cjs/components/LinkBase/LinkBase.d.ts +0 -3
  75. package/build/cjs/components/LinkBase/LinkBase.js +0 -18
  76. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.css +0 -35
  77. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.d.ts +0 -12
  78. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +0 -60
  79. package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.css +0 -62
  80. package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.d.ts +0 -10
  81. package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +0 -54
  82. package/build/cjs/sub-blocks/PriceDetailed/PriceDetailed.d.ts +0 -3
  83. package/build/cjs/sub-blocks/PriceDetailed/PriceDetailed.js +0 -22
  84. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/Details/List.css +0 -11
  85. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/Details/List.d.ts +0 -7
  86. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/Details/List.js +0 -15
  87. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/Details/Settings.css +0 -20
  88. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/Details/Settings.d.ts +0 -8
  89. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/Details/Settings.js +0 -15
  90. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.css +0 -43
  91. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.d.ts +0 -11
  92. package/build/cjs/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.js +0 -56
  93. package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.css +0 -9
  94. package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.d.ts +0 -10
  95. package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +0 -15
  96. package/build/cjs/sub-blocks/PriceDetailed/schema.d.ts +0 -93
  97. package/build/cjs/sub-blocks/PriceDetailed/schema.js +0 -155
  98. package/build/esm/components/LinkBase/LinkBase.d.ts +0 -3
  99. package/build/esm/components/LinkBase/LinkBase.js +0 -16
  100. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.css +0 -35
  101. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.d.ts +0 -13
  102. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +0 -58
  103. package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.css +0 -62
  104. package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.d.ts +0 -11
  105. package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +0 -52
  106. package/build/esm/sub-blocks/PriceDetailed/PriceDetailed.d.ts +0 -3
  107. package/build/esm/sub-blocks/PriceDetailed/PriceDetailed.js +0 -19
  108. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/Details/List.css +0 -11
  109. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/Details/List.d.ts +0 -8
  110. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/Details/List.js +0 -13
  111. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/Details/Settings.css +0 -20
  112. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/Details/Settings.d.ts +0 -9
  113. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/Details/Settings.js +0 -13
  114. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.css +0 -43
  115. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.d.ts +0 -12
  116. package/build/esm/sub-blocks/PriceDetailed/PriceDetails/PriceDetails.js +0 -54
  117. package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.css +0 -9
  118. package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.d.ts +0 -11
  119. package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +0 -13
  120. package/build/esm/sub-blocks/PriceDetailed/schema.d.ts +0 -93
  121. package/build/esm/sub-blocks/PriceDetailed/schema.js +0 -152
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = tslib_1.__importStar(require("react"));
5
- const lodash_1 = require("lodash");
6
- const locationContext_1 = require("../../context/locationContext");
7
- const RouterLink_1 = tslib_1.__importDefault(require("../RouterLink/RouterLink"));
8
- const LinkBase = (props) => {
9
- const { href, children } = props, linkProps = tslib_1.__rest(props, ["href", "children"]);
10
- const { Link } = (0, react_1.useContext)(locationContext_1.LocationContext);
11
- if (Link && href && !(linkProps === null || linkProps === void 0 ? void 0 : linkProps.target)) {
12
- const extractedProps = (0, lodash_1.omit)(linkProps, ['rel', 'ref']);
13
- return (react_1.default.createElement(RouterLink_1.default, { href: href },
14
- react_1.default.createElement("a", Object.assign({}, extractedProps), children)));
15
- }
16
- return (react_1.default.createElement("a", Object.assign({ href: href }, linkProps), children));
17
- };
18
- exports.default = LinkBase;
@@ -1,35 +0,0 @@
1
- /* use this for style redefinitions to awoid problems with
2
- unpredictable css rules order in build */
3
- .pc-combined-price-detailed-block__row {
4
- /* stylelint-disable declaration-no-important */
5
- margin: 0 !important;
6
- }
7
- .pc-combined-price-detailed-block__row .col {
8
- padding: 0;
9
- margin: 12px;
10
- }
11
- .pc-combined-price-detailed-block__row > * {
12
- display: flex;
13
- width: 100%;
14
- }
15
- .pc-combined-price-detailed-block__row:not(:last-child) {
16
- border-bottom: 1px solid var(--yc-color-line-generic);
17
- margin-bottom: 12px !important;
18
- padding-bottom: 12px;
19
- }
20
- @media (min-width: 1081px) {
21
- .pc-combined-price-detailed-block__description > * {
22
- padding-top: 12px;
23
- }
24
- .pc-combined-price-detailed-block__description_delimiter > * {
25
- border-top: 1px solid var(--yc-color-line-generic);
26
- }
27
- .pc-combined-price-detailed-block__empty-column {
28
- border-top: 0;
29
- }
30
- }
31
- @media (max-width: 1080px) {
32
- .pc-combined-price-detailed-block__description > * {
33
- margin-top: 0 !important;
34
- }
35
- }
@@ -1,12 +0,0 @@
1
- /// <reference types="react" />
2
- import { CardBorder, PriceDescriptionProps, PriceDetailsListProps, PriceDetailsSettingsProps, PriceItemProps } from '../../../models';
3
- interface CombinedPriceDetailedProps {
4
- items: PriceItemProps[];
5
- numberGroupItems: number;
6
- useMixedView?: boolean;
7
- getDescriptionComponent: (priceDescription: PriceDescriptionProps) => JSX.Element;
8
- getDetailsComponent: (priceDetails?: PriceDetailsSettingsProps[] | PriceDetailsListProps[]) => JSX.Element;
9
- border?: CardBorder;
10
- }
11
- declare const CombinedPriceDetailed: (props: CombinedPriceDetailedProps) => JSX.Element;
12
- export default CombinedPriceDetailed;
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
5
- const react_1 = tslib_1.__importStar(require("react"));
6
- const utils_1 = require("../../../utils");
7
- const components_1 = require("../../../components");
8
- const grid_1 = require("../../../grid");
9
- const constants_1 = require("../../../constants");
10
- const b = (0, utils_1.block)('combined-price-detailed-block');
11
- const CombinedPricesGroupSize = {
12
- [grid_1.GridColumnSize.Sm]: 1,
13
- [grid_1.GridColumnSize.Md]: 2,
14
- [grid_1.GridColumnSize.Lg]: 3,
15
- };
16
- const CombinedPriceDetailed = (props) => {
17
- const { items, numberGroupItems, border, useMixedView, getDescriptionComponent, getDetailsComponent, } = props;
18
- const [groupItemsSize, setGroupItemsSize] = (0, react_1.useState)(numberGroupItems);
19
- const updateGroupItemsSize = (0, react_1.useCallback)((windowWidth) => {
20
- if (windowWidth >= constants_1.BREAKPOINTS.lg) {
21
- setGroupItemsSize(numberGroupItems);
22
- }
23
- else if (constants_1.BREAKPOINTS.lg > windowWidth && windowWidth >= constants_1.BREAKPOINTS.md) {
24
- setGroupItemsSize(CombinedPricesGroupSize[grid_1.GridColumnSize.Lg]);
25
- }
26
- else if (constants_1.BREAKPOINTS.md > windowWidth && windowWidth >= constants_1.BREAKPOINTS.sm) {
27
- setGroupItemsSize(CombinedPricesGroupSize[grid_1.GridColumnSize.Md]);
28
- }
29
- else {
30
- setGroupItemsSize(CombinedPricesGroupSize[grid_1.GridColumnSize.Sm]);
31
- }
32
- }, [numberGroupItems]);
33
- (0, react_1.useEffect)(() => {
34
- function handleResize() {
35
- updateGroupItemsSize(window.innerWidth);
36
- }
37
- handleResize();
38
- window.addEventListener('resize', handleResize);
39
- return () => window.removeEventListener('resize', handleResize);
40
- }, [updateGroupItemsSize]);
41
- const getPrice = (groupPrices) => {
42
- const descriptionComponents = Array(groupItemsSize);
43
- const detailsComponents = Array(groupItemsSize);
44
- for (let id = 0; id < groupItemsSize; id++) {
45
- const price = groupPrices[id];
46
- descriptionComponents[id] = (react_1.default.createElement(grid_1.Col, { key: `card_${id}` }, price && getDescriptionComponent(price)));
47
- detailsComponents[id] = (react_1.default.createElement(grid_1.Col, { key: `details_${id}`, className: price ? '' : b('empty-column') }, price && getDetailsComponent(price.items)));
48
- }
49
- return (react_1.default.createElement(react_1.Fragment, null,
50
- react_1.default.createElement("div", null, descriptionComponents),
51
- react_1.default.createElement("div", { className: b('description', { delimiter: useMixedView }) }, detailsComponents)));
52
- };
53
- const chunkedItems = lodash_1.default.chunk(items, groupItemsSize);
54
- return (react_1.default.createElement(components_1.CardBase, { className: b(), border: border },
55
- react_1.default.createElement(components_1.CardBase.Content, null,
56
- react_1.default.createElement(grid_1.Grid, null, chunkedItems.map((chunk, id) => {
57
- return (react_1.default.createElement(grid_1.Row, { key: id, className: b('row') }, getPrice(chunk)));
58
- })))));
59
- };
60
- exports.default = CombinedPriceDetailed;
@@ -1,62 +0,0 @@
1
- /* use this for style redefinitions to awoid problems with
2
- unpredictable css rules order in build */
3
- .pc-price-description {
4
- margin-bottom: 12px;
5
- }
6
- .pc-price-description__title_size_l, .pc-price-description__description_size_l, .pc-price-description__detailed-title_size_l, .pc-price-description__label_size_l {
7
- font-size: var(--yc-text-header-1-font-size);
8
- line-height: var(--yc-text-header-1-line-height);
9
- }
10
- .pc-price-description__title_size_m, .pc-price-description__description_size_m, .pc-price-description__detailed-title_size_m, .pc-price-description__label_size_m {
11
- font-size: var(--yc-text-body-2-font-size);
12
- line-height: var(--yc-text-body-2-line-height);
13
- }
14
- .pc-price-description__title_size_s, .pc-price-description__description_size_s, .pc-price-description__detailed-title_size_s, .pc-price-description__label_size_s {
15
- font-size: var(--yc-text-body-1-font-size);
16
- line-height: var(--yc-text-body-1-line-height);
17
- }
18
- .pc-price-description__main-title {
19
- font-weight: 500;
20
- }
21
- .pc-price-description__main-title_color_cornflower {
22
- color: var(--yc-my-color-brand-normal);
23
- }
24
- .pc-price-description__main-title_color_black {
25
- color: var(--yc-color-text-primary);
26
- }
27
- .pc-price-description__title {
28
- display: flex;
29
- padding: 16px 0 12px 0;
30
- align-items: flex-end;
31
- }
32
- .pc-price-description__description {
33
- font-weight: 400;
34
- }
35
- .pc-price-description__detailed-title {
36
- margin-left: 4px;
37
- }
38
- .pc-price-description__label {
39
- padding: 4px 12px;
40
- border-radius: 4px;
41
- width: fit-content;
42
- }
43
- .pc-price-description__label_color_blue {
44
- background: var(--yc-color-promo-highlight-sky);
45
- }
46
- .pc-price-description__label_color_green {
47
- background: var(--yc-color-promo-highlight-mint);
48
- }
49
- .pc-price-description__label_color_yellow {
50
- background: var(--yc-color-promo-highlight-gold);
51
- }
52
- .pc-price-description__label_color_purple {
53
- background: var(--yc-color-promo-highlight-neon);
54
- }
55
- .pc-price-description__label_color_red {
56
- background: var(--yc-color-promo-highlight-tomato);
57
- }
58
- @media (max-width: 577px) {
59
- .pc-price-description {
60
- min-width: 160px;
61
- }
62
- }
@@ -1,10 +0,0 @@
1
- import { PriceDescriptionColor, PriceDescriptionProps, PriceLabelColor, TextSize } from '../../../models';
2
- interface PriceDescriptionExtendProps extends PriceDescriptionProps {
3
- titleSize?: TextSize;
4
- descriptionSize?: TextSize;
5
- colorTitle?: PriceDescriptionColor;
6
- labelsDefaultText?: Record<PriceLabelColor, string>;
7
- className?: string;
8
- }
9
- declare const PriceDescription: (props: PriceDescriptionExtendProps) => JSX.Element;
10
- export default PriceDescription;
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = tslib_1.__importStar(require("react"));
5
- const utils_1 = require("../../../utils");
6
- const stylesContext_1 = require("../../../context/stylesContext");
7
- const components_1 = require("../../../components");
8
- const b = (0, utils_1.block)('price-description');
9
- const PriceDescription = (props) => {
10
- const { title, detailedTitle = '', description, titleSize = 'l', descriptionSize = 'm', colorTitle = 'cornflower', label, labelsDefaultText, className, } = props;
11
- const descriptionRef = react_1.default.useRef(null);
12
- const { pricesDetailedDescriptionHeight, setStyles } = (0, react_1.useContext)(stylesContext_1.StylesContext);
13
- const setDescriptionHeight = (0, react_1.useCallback)(() => {
14
- var _a;
15
- if (!descriptionRef || !descriptionRef.current) {
16
- return;
17
- }
18
- const descriptionChildren = (_a = descriptionRef.current) === null || _a === void 0 ? void 0 : _a.children;
19
- if (!descriptionChildren) {
20
- return;
21
- }
22
- const childrenHeight = [...descriptionChildren].reduce((result, element) => result + element.clientHeight, 0);
23
- if (pricesDetailedDescriptionHeight === undefined ||
24
- Number(pricesDetailedDescriptionHeight) < childrenHeight) {
25
- setStyles({ pricesDetailedDescriptionHeight: childrenHeight.toString() });
26
- }
27
- else if (childrenHeight < Number(pricesDetailedDescriptionHeight)) {
28
- descriptionRef.current.style.height = `${pricesDetailedDescriptionHeight}px`;
29
- }
30
- }, [pricesDetailedDescriptionHeight, setStyles]);
31
- (0, react_1.useEffect)(() => {
32
- setDescriptionHeight();
33
- window.addEventListener('resize', setDescriptionHeight);
34
- return () => window.removeEventListener('resize', setDescriptionHeight);
35
- }, [setDescriptionHeight]);
36
- const labelElement = (0, react_1.useMemo)(() => {
37
- if (!label) {
38
- return null;
39
- }
40
- const labelTitle = label.text || (labelsDefaultText && labelsDefaultText[label.color]);
41
- return (react_1.default.createElement("div", { className: b('label', { color: label.color, size: label.size || descriptionSize }) }, labelTitle));
42
- }, [descriptionSize, label, labelsDefaultText]);
43
- const titleElement = (0, react_1.useMemo)(() => {
44
- return (react_1.default.createElement("div", { className: b('title', { size: titleSize }) },
45
- react_1.default.createElement("div", { className: b('main-title', { color: colorTitle }) }, title),
46
- react_1.default.createElement("div", { className: b('detailed-title', { size: descriptionSize }) }, detailedTitle)));
47
- }, [colorTitle, descriptionSize, detailedTitle, title, titleSize]);
48
- return (react_1.default.createElement("div", { className: b(null, className), ref: descriptionRef },
49
- labelElement,
50
- titleElement,
51
- react_1.default.createElement("div", { className: b('description', { size: descriptionSize }) },
52
- react_1.default.createElement(components_1.YFMWrapper, { content: description, modifiers: { constructor: true } }))));
53
- };
54
- exports.default = PriceDescription;
@@ -1,3 +0,0 @@
1
- import { PriceDetailedProps } from '../../models';
2
- declare const PriceDetailed: (props: PriceDetailedProps) => JSX.Element;
3
- export default PriceDetailed;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = tslib_1.__importStar(require("react"));
5
- const models_1 = require("../../models");
6
- const PriceDescription_1 = tslib_1.__importDefault(require("./PriceDescription/PriceDescription"));
7
- const PriceDetails_1 = tslib_1.__importDefault(require("./PriceDetails/PriceDetails"));
8
- const CombinedPriceDetailed_1 = tslib_1.__importDefault(require("./CombinedPriceDetailed/CombinedPriceDetailed"));
9
- const SeparatePriceDetailed_1 = tslib_1.__importDefault(require("./SeparatePriceDetailed/SeparatePriceDetailed"));
10
- const PriceDetailed = (props) => {
11
- const { priceType = models_1.PriceDetailsType.SETTINGS, items, numberGroupItems = 1, description, details, foldable, labelsDefaultText, isCombined = false, useMixedView = false, border, } = props;
12
- const { titleSize: descriptionTitleSize = 'l', descriptionSize = 'm', titleColor: descriptionTitleColor = 'cornflower', } = description || {};
13
- const { titleSize: detailsTitleSize = 's', descriptionSize: detailsDescriptionSize = 'm' } = details || {};
14
- const getDescriptionComponent = (priceDescription) => {
15
- return (react_1.default.createElement(PriceDescription_1.default, Object.assign({}, priceDescription, { titleSize: descriptionTitleSize, descriptionSize: descriptionSize, colorTitle: descriptionTitleColor, labelsDefaultText: labelsDefaultText })));
16
- };
17
- const getDetailsComponent = (priceDetails) => {
18
- return (react_1.default.createElement(PriceDetails_1.default, { items: priceDetails, type: priceType, foldable: foldable, titleSize: detailsTitleSize, descriptionSize: detailsDescriptionSize, useMixedView: useMixedView }));
19
- };
20
- return (react_1.default.createElement(react_1.Fragment, null, isCombined ? (react_1.default.createElement(CombinedPriceDetailed_1.default, { items: items, numberGroupItems: numberGroupItems, border: border, useMixedView: useMixedView, getDescriptionComponent: getDescriptionComponent, getDetailsComponent: getDetailsComponent })) : (react_1.default.createElement(SeparatePriceDetailed_1.default, { items: items, border: border, getDescriptionComponent: getDescriptionComponent, getDetailsComponent: getDetailsComponent }))));
21
- };
22
- exports.default = PriceDetailed;
@@ -1,11 +0,0 @@
1
- .pc-marked-list__list-item {
2
- display: flex;
3
- }
4
- .pc-marked-list__text {
5
- margin-left: 8px;
6
- }
7
- .pc-marked-list__img {
8
- margin-top: 5px;
9
- height: fit-content;
10
- content: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0xLjUgNCA1IDcuNSAxMS41IDEiIHN0cm9rZT0iIzUyODJGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==");
11
- }
@@ -1,7 +0,0 @@
1
- import { PriceDetailsListProps, TextSize } from '../../../../models';
2
- export interface ListProps {
3
- items: PriceDetailsListProps[];
4
- titleSize?: TextSize;
5
- }
6
- declare const List: (props: ListProps) => JSX.Element;
7
- export default List;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = tslib_1.__importStar(require("react"));
5
- const utils_1 = require("../../../../utils");
6
- const components_1 = require("../../../../components");
7
- const b = (0, utils_1.block)('marked-list');
8
- const List = (props) => {
9
- const { items = [], titleSize = 's' } = props;
10
- return (react_1.default.createElement(react_1.Fragment, null, items.map((item, id) => (react_1.default.createElement("div", { key: id, className: b('list-item') },
11
- react_1.default.createElement("img", { className: b('img') }),
12
- react_1.default.createElement("div", { className: b('text', { size: titleSize }) },
13
- react_1.default.createElement(components_1.YFMWrapper, { content: item.text, modifiers: { constructor: true } })))))));
14
- };
15
- exports.default = List;
@@ -1,20 +0,0 @@
1
- /* use this for style redefinitions to awoid problems with
2
- unpredictable css rules order in build */
3
- .pc-settings-list__title, .pc-settings-list__description {
4
- font-weight: 400;
5
- }
6
- .pc-settings-list__title_size_l, .pc-settings-list__description_size_l {
7
- font-size: var(--yc-text-header-1-font-size);
8
- line-height: var(--yc-text-header-1-line-height);
9
- }
10
- .pc-settings-list__title_size_m, .pc-settings-list__description_size_m {
11
- font-size: var(--yc-text-body-2-font-size);
12
- line-height: var(--yc-text-body-2-line-height);
13
- }
14
- .pc-settings-list__title_size_s, .pc-settings-list__description_size_s {
15
- font-size: var(--yc-text-body-1-font-size);
16
- line-height: var(--yc-text-body-1-line-height);
17
- }
18
- .pc-settings-list__title {
19
- color: var(--yc-color-text-hint);
20
- }
@@ -1,8 +0,0 @@
1
- import { PriceDetailsSettingsProps, TextSize } from '../../../../models';
2
- export interface SettingsComponentProps {
3
- items: PriceDetailsSettingsProps[];
4
- titleSize?: TextSize;
5
- descriptionSize?: TextSize;
6
- }
7
- declare const Settings: (props: SettingsComponentProps) => JSX.Element;
8
- export default Settings;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = tslib_1.__importStar(require("react"));
5
- const utils_1 = require("../../../../utils");
6
- const components_1 = require("../../../../components");
7
- const b = (0, utils_1.block)('settings-list');
8
- const Settings = (props) => {
9
- const { items = [], titleSize = 's', descriptionSize = 'm' } = props;
10
- return (react_1.default.createElement(react_1.Fragment, null, items.map((item, id) => (react_1.default.createElement("div", { key: id },
11
- react_1.default.createElement("div", { className: b('title', { size: titleSize }) }, item.title),
12
- react_1.default.createElement("div", { className: b('description', { size: descriptionSize }) },
13
- react_1.default.createElement(components_1.YFMWrapper, { content: item.description, modifiers: { constructor: true } })))))));
14
- };
15
- exports.default = Settings;
@@ -1,43 +0,0 @@
1
- /* use this for style redefinitions to awoid problems with
2
- unpredictable css rules order in build */
3
- @media (min-width: 1081px) {
4
- .pc-price-details__non_foldable {
5
- display: block;
6
- }
7
- .pc-price-details__foldable {
8
- display: none;
9
- }
10
- }
11
- @media (max-width: 1080px) {
12
- .pc-price-details__non_foldable {
13
- display: none;
14
- }
15
- .pc-price-details__foldable {
16
- display: block;
17
- }
18
- }
19
- .pc-price-details__delimiter-line {
20
- border-top: 1px solid var(--yc-color-line-generic);
21
- }
22
- .pc-price-details__arrow {
23
- margin: auto 10px;
24
- }
25
- .pc-price-details__foldable_title {
26
- cursor: pointer;
27
- display: flex;
28
- font-weight: 400;
29
- font-size: var(--yc-text-body-2-font-size);
30
- line-height: var(--yc-text-body-2-line-height);
31
- }
32
- .pc-price-details__foldable_title_color_cornflower {
33
- color: var(--yc-color-text-link);
34
- }
35
- .pc-price-details__foldable_title_color_black {
36
- color: var(--yc-color-text-primary);
37
- }
38
- .pc-price-details__foldable_block > * {
39
- padding-top: 12px;
40
- }
41
- .pc-price-details .pc-settings-list__title {
42
- margin-bottom: 2px;
43
- }
@@ -1,11 +0,0 @@
1
- import { PriceDetailsType, TextSize, PriceDetailsProps, PriceFoldableDetailsProps } from '../../../models';
2
- interface PriceDetailsExtendProps extends PriceDetailsProps {
3
- type: PriceDetailsType;
4
- titleSize?: TextSize;
5
- descriptionSize?: TextSize;
6
- foldable?: PriceFoldableDetailsProps;
7
- useMixedView?: boolean;
8
- className?: string;
9
- }
10
- declare const PriceDetails: (props: PriceDetailsExtendProps) => JSX.Element;
11
- export default PriceDetails;
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = tslib_1.__importStar(require("react"));
5
- const utils_1 = require("../../../utils");
6
- const components_1 = require("../../../components");
7
- const models_1 = require("../../../models");
8
- const List_1 = tslib_1.__importDefault(require("./Details/List"));
9
- const Settings_1 = tslib_1.__importDefault(require("./Details/Settings"));
10
- const b = (0, utils_1.block)('price-details');
11
- const PriceDetails = (props) => {
12
- const [isOpened, setIsOpened] = (0, react_1.useState)(false);
13
- const toggleOpen = (0, react_1.useCallback)(() => {
14
- setIsOpened(!isOpened);
15
- }, [isOpened]);
16
- const { items = [], type = models_1.PriceDetailsType.SETTINGS, titleSize = 's', descriptionSize = 'm', foldable, useMixedView, className, } = props;
17
- const { title: foldableTitle, size: foldableSize = descriptionSize, titleColor: foldableColor = 'cornflower', } = foldable || {};
18
- const getPriceDetails = () => {
19
- switch (type) {
20
- case models_1.PriceDetailsType.MARKED_LIST:
21
- return react_1.default.createElement(List_1.default, { items: items, titleSize: titleSize });
22
- case models_1.PriceDetailsType.SETTINGS:
23
- default:
24
- return (react_1.default.createElement(Settings_1.default, { items: items, titleSize: titleSize, descriptionSize: descriptionSize }));
25
- }
26
- };
27
- const getFoldableBlock = () => {
28
- return react_1.default.createElement("div", { className: b('foldable_block') }, getPriceDetails());
29
- };
30
- const getFoldableTitle = () => {
31
- return (react_1.default.createElement("div", { className: b('foldable_title', { color: foldableColor, size: foldableSize }), onClick: toggleOpen },
32
- foldableTitle,
33
- react_1.default.createElement(components_1.ToggleArrow, { open: isOpened, size: 14, type: 'vertical', className: b('arrow') })));
34
- };
35
- const getFoldableComponent = (customClassName = '') => {
36
- return (react_1.default.createElement("div", { className: customClassName },
37
- getFoldableTitle(),
38
- react_1.default.createElement(components_1.Foldable, { isOpened: isOpened }, getFoldableBlock())));
39
- };
40
- const getNonFoldableComponent = (customClassName = '') => {
41
- return react_1.default.createElement("div", { className: customClassName }, getFoldableBlock());
42
- };
43
- const getComponentMixedView = () => {
44
- if (foldable) {
45
- return (react_1.default.createElement(react_1.Fragment, null,
46
- getFoldableComponent(b('foldable')),
47
- getNonFoldableComponent(b('non_foldable'))));
48
- }
49
- return getNonFoldableComponent(b('delimiter-line'));
50
- };
51
- const getComponentSimpleView = () => {
52
- return foldable ? getFoldableComponent() : getNonFoldableComponent(b('delimiter-line'));
53
- };
54
- return (react_1.default.createElement("div", { className: b(null, className) }, useMixedView ? getComponentMixedView() : getComponentSimpleView()));
55
- };
56
- exports.default = PriceDetails;
@@ -1,9 +0,0 @@
1
- .pc-separate-price-detailed-block .pc-price-description {
2
- margin-bottom: 0;
3
- }
4
- .pc-separate-price-detailed-block .pc-price-details > * {
5
- padding-top: 12px;
6
- }
7
- .pc-separate-price-detailed-block .pc-price-details {
8
- margin-top: 24px;
9
- }
@@ -1,10 +0,0 @@
1
- /// <reference types="react" />
2
- import { CardBorder, PriceDescriptionProps, PriceDetailsListProps, PriceDetailsSettingsProps, PriceItemProps } from '../../../models';
3
- interface SeparatePriceDetailedProps {
4
- items: PriceItemProps[];
5
- getDescriptionComponent: (priceDescription: PriceDescriptionProps) => JSX.Element;
6
- getDetailsComponent: (priceDetails?: PriceDetailsSettingsProps[] | PriceDetailsListProps[]) => JSX.Element;
7
- border?: CardBorder;
8
- }
9
- declare const SeparatePriceDetailed: (props: SeparatePriceDetailedProps) => JSX.Element;
10
- export default SeparatePriceDetailed;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = tslib_1.__importStar(require("react"));
5
- const utils_1 = require("../../../utils");
6
- const components_1 = require("../../../components");
7
- const b = (0, utils_1.block)('separate-price-detailed-block');
8
- const SeparatePriceDetailed = (props) => {
9
- const { items, border, getDescriptionComponent, getDetailsComponent } = props;
10
- return (react_1.default.createElement(react_1.Fragment, null, items.map((item, id) => (react_1.default.createElement(components_1.CardBase, { key: id, className: b(), border: border },
11
- react_1.default.createElement(components_1.CardBase.Content, null,
12
- getDescriptionComponent(item),
13
- getDetailsComponent(item.items)))))));
14
- };
15
- exports.default = SeparatePriceDetailed;
@@ -1,93 +0,0 @@
1
- export declare const PriceDetailedBlock: {
2
- 'price-detailed': {
3
- additionalProperties: boolean;
4
- required: string[];
5
- properties: {
6
- items: {
7
- type: string;
8
- items: {
9
- type: string;
10
- properties: {
11
- when: {
12
- type: string;
13
- };
14
- };
15
- };
16
- };
17
- description: {
18
- additionalProperties: boolean;
19
- required: never[];
20
- properties: {
21
- titleSize: {
22
- type: string;
23
- enum: string[];
24
- };
25
- descriptionSize: {
26
- type: string;
27
- enum: string[];
28
- };
29
- titleColor: {
30
- type: string;
31
- enum: string[];
32
- };
33
- };
34
- };
35
- details: {
36
- additionalProperties: boolean;
37
- required: never[];
38
- properties: {
39
- titleSize: {
40
- type: string;
41
- enum: string[];
42
- };
43
- descriptionSize: {
44
- type: string;
45
- enum: string[];
46
- };
47
- };
48
- };
49
- priceType: {
50
- type: string;
51
- enum: string[];
52
- };
53
- numberGroupItems: {
54
- type: string;
55
- enum: number[];
56
- };
57
- isCombined: {
58
- type: string;
59
- };
60
- useMixedView: {
61
- type: string;
62
- };
63
- foldable: {
64
- additionalProperties: boolean;
65
- required: string[];
66
- properties: {
67
- title: {
68
- type: string;
69
- contentType: string;
70
- };
71
- size: {
72
- type: string;
73
- enum: string[];
74
- };
75
- titleColor: {
76
- type: string;
77
- enum: string[];
78
- };
79
- };
80
- };
81
- labelsDefaultText: {
82
- additionalProperties: boolean;
83
- required: never[];
84
- properties: {};
85
- };
86
- animated: {
87
- type: string;
88
- };
89
- type: {};
90
- when: {};
91
- };
92
- };
93
- };