@gravity-ui/page-constructor 8.10.0 → 8.12.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 (83) hide show
  1. package/build/cjs/blocks/CardLayout/schema.d.ts +22 -4
  2. package/build/cjs/blocks/ContentLayout/schema.d.ts +11 -2
  3. package/build/cjs/blocks/ExtendedFeatures/schema.d.ts +11 -2
  4. package/build/cjs/blocks/FilterBlock/schema.d.ts +22 -4
  5. package/build/cjs/blocks/FoldableList/schema.d.ts +11 -2
  6. package/build/cjs/blocks/Form/schema.d.ts +11 -2
  7. package/build/cjs/blocks/Header/schema.d.ts +11 -2
  8. package/build/cjs/blocks/HeaderSlider/schema.d.ts +14 -5
  9. package/build/cjs/blocks/Hero/schema.d.ts +19 -10
  10. package/build/cjs/blocks/Icons/schema.d.ts +22 -4
  11. package/build/cjs/blocks/Map/schema.d.ts +11 -2
  12. package/build/cjs/blocks/Media/schema.d.ts +22 -4
  13. package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +11 -2
  14. package/build/cjs/blocks/Questions/schema.d.ts +11 -2
  15. package/build/cjs/blocks/Slider/schema.d.ts +11 -2
  16. package/build/cjs/blocks/SliderOld/schema.d.ts +11 -2
  17. package/build/cjs/blocks/Table/schema.d.ts +11 -2
  18. package/build/cjs/blocks/Tabs/schema.d.ts +11 -2
  19. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +6 -1
  20. package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js.map +1 -1
  21. package/build/cjs/grid/types.d.ts +1 -1
  22. package/build/cjs/grid/types.js.map +1 -1
  23. package/build/cjs/grid/utils.d.ts +1 -0
  24. package/build/cjs/grid/utils.js +36 -1
  25. package/build/cjs/grid/utils.js.map +1 -1
  26. package/build/cjs/models/constructor-items/blocks.d.ts +1 -1
  27. package/build/cjs/models/constructor-items/blocks.js.map +1 -1
  28. package/build/cjs/models/constructor.d.ts +2 -1
  29. package/build/cjs/models/constructor.js.map +1 -1
  30. package/build/cjs/schema/constants.d.ts +9 -9
  31. package/build/cjs/schema/validators/common.d.ts +11 -2
  32. package/build/cjs/schema/validators/common.js +11 -2
  33. package/build/cjs/schema/validators/common.js.map +1 -1
  34. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +5 -5
  35. package/build/cjs/sub-blocks/BasicCard/schema.d.ts +4 -4
  36. package/build/cjs/sub-blocks/Content/Content.css +8 -8
  37. package/build/cjs/text-transform/transformers.js +2 -1
  38. package/build/cjs/text-transform/transformers.js.map +1 -1
  39. package/build/esm/blocks/CardLayout/schema.d.ts +22 -4
  40. package/build/esm/blocks/ContentLayout/schema.d.ts +11 -2
  41. package/build/esm/blocks/ExtendedFeatures/schema.d.ts +11 -2
  42. package/build/esm/blocks/FilterBlock/schema.d.ts +22 -4
  43. package/build/esm/blocks/FoldableList/schema.d.ts +11 -2
  44. package/build/esm/blocks/Form/schema.d.ts +11 -2
  45. package/build/esm/blocks/Header/schema.d.ts +11 -2
  46. package/build/esm/blocks/HeaderSlider/schema.d.ts +14 -5
  47. package/build/esm/blocks/Hero/schema.d.ts +19 -10
  48. package/build/esm/blocks/Icons/schema.d.ts +22 -4
  49. package/build/esm/blocks/Map/schema.d.ts +11 -2
  50. package/build/esm/blocks/Media/schema.d.ts +22 -4
  51. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +11 -2
  52. package/build/esm/blocks/Questions/schema.d.ts +11 -2
  53. package/build/esm/blocks/Slider/schema.d.ts +11 -2
  54. package/build/esm/blocks/SliderOld/schema.d.ts +11 -2
  55. package/build/esm/blocks/Table/schema.d.ts +11 -2
  56. package/build/esm/blocks/Tabs/schema.d.ts +11 -2
  57. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +6 -1
  58. package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js.map +1 -1
  59. package/build/esm/grid/types.d.ts +1 -1
  60. package/build/esm/grid/types.js.map +1 -1
  61. package/build/esm/grid/utils.d.ts +1 -0
  62. package/build/esm/grid/utils.js +35 -1
  63. package/build/esm/grid/utils.js.map +1 -1
  64. package/build/esm/models/constructor-items/blocks.d.ts +1 -1
  65. package/build/esm/models/constructor-items/blocks.js.map +1 -1
  66. package/build/esm/models/constructor.d.ts +2 -1
  67. package/build/esm/models/constructor.js.map +1 -1
  68. package/build/esm/schema/constants.d.ts +9 -9
  69. package/build/esm/schema/validators/common.d.ts +11 -2
  70. package/build/esm/schema/validators/common.js +11 -2
  71. package/build/esm/schema/validators/common.js.map +1 -1
  72. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +5 -5
  73. package/build/esm/sub-blocks/BasicCard/schema.d.ts +4 -4
  74. package/build/esm/sub-blocks/Content/Content.css +8 -8
  75. package/build/esm/text-transform/transformers.js +2 -1
  76. package/build/esm/text-transform/transformers.js.map +1 -1
  77. package/package.json +1 -1
  78. package/schema/index.js +1 -1
  79. package/server/grid/types.d.ts +1 -1
  80. package/server/models/constructor-items/blocks.d.ts +1 -1
  81. package/server/models/constructor.d.ts +2 -1
  82. package/server/text-transform/transformers.js +2 -1
  83. package/widget/index.js +1 -1
@@ -477,8 +477,17 @@ export declare const ContentLayoutBlock: {
477
477
  };
478
478
  };
479
479
  visible: {
480
- type: string;
481
- enum: string[];
480
+ oneOf: ({
481
+ type: string;
482
+ enum: string[];
483
+ additionalProperties?: undefined;
484
+ properties?: undefined;
485
+ } | {
486
+ type: string;
487
+ additionalProperties: boolean;
488
+ properties: {};
489
+ enum?: undefined;
490
+ })[];
482
491
  };
483
492
  resetPaddings: {
484
493
  type: string;
@@ -325,8 +325,17 @@ export declare const ExtendedFeaturesBlock: {
325
325
  };
326
326
  };
327
327
  visible: {
328
- type: string;
329
- enum: string[];
328
+ oneOf: ({
329
+ type: string;
330
+ enum: string[];
331
+ additionalProperties?: undefined;
332
+ properties?: undefined;
333
+ } | {
334
+ type: string;
335
+ additionalProperties: boolean;
336
+ properties: {};
337
+ enum?: undefined;
338
+ })[];
330
339
  };
331
340
  resetPaddings: {
332
341
  type: string;
@@ -291,8 +291,17 @@ export declare const FilterProps: {
291
291
  };
292
292
  };
293
293
  visible: {
294
- type: string;
295
- enum: string[];
294
+ oneOf: ({
295
+ type: string;
296
+ enum: string[];
297
+ additionalProperties?: undefined;
298
+ properties?: undefined;
299
+ } | {
300
+ type: string;
301
+ additionalProperties: boolean;
302
+ properties: {};
303
+ enum?: undefined;
304
+ })[];
296
305
  };
297
306
  resetPaddings: {
298
307
  type: string;
@@ -547,8 +556,17 @@ export declare const FilterBlock: {
547
556
  };
548
557
  };
549
558
  visible: {
550
- type: string;
551
- enum: string[];
559
+ oneOf: ({
560
+ type: string;
561
+ enum: string[];
562
+ additionalProperties?: undefined;
563
+ properties?: undefined;
564
+ } | {
565
+ type: string;
566
+ additionalProperties: boolean;
567
+ properties: {};
568
+ enum?: undefined;
569
+ })[];
552
570
  };
553
571
  resetPaddings: {
554
572
  type: string;
@@ -188,8 +188,17 @@ export declare const FoldableListBlock: {
188
188
  };
189
189
  };
190
190
  visible: {
191
- type: string;
192
- enum: string[];
191
+ oneOf: ({
192
+ type: string;
193
+ enum: string[];
194
+ additionalProperties?: undefined;
195
+ properties?: undefined;
196
+ } | {
197
+ type: string;
198
+ additionalProperties: boolean;
199
+ properties: {};
200
+ enum?: undefined;
201
+ })[];
193
202
  };
194
203
  resetPaddings: {
195
204
  type: string;
@@ -296,8 +296,17 @@ export declare const FormBlock: {
296
296
  };
297
297
  };
298
298
  visible: {
299
- type: string;
300
- enum: string[];
299
+ oneOf: ({
300
+ type: string;
301
+ enum: string[];
302
+ additionalProperties?: undefined;
303
+ properties?: undefined;
304
+ } | {
305
+ type: string;
306
+ additionalProperties: boolean;
307
+ properties: {};
308
+ enum?: undefined;
309
+ })[];
301
310
  };
302
311
  resetPaddings: {
303
312
  type: string;
@@ -1551,8 +1551,17 @@ export declare const HeaderBlock: {
1551
1551
  };
1552
1552
  };
1553
1553
  visible: {
1554
- type: string;
1555
- enum: string[];
1554
+ oneOf: ({
1555
+ type: string;
1556
+ enum: string[];
1557
+ additionalProperties?: undefined;
1558
+ properties?: undefined;
1559
+ } | {
1560
+ type: string;
1561
+ additionalProperties: boolean;
1562
+ properties: {};
1563
+ enum?: undefined;
1564
+ })[];
1556
1565
  };
1557
1566
  resetPaddings: {
1558
1567
  type: string;
@@ -608,9 +608,6 @@ export declare const HeaderSliderBlock: {
608
608
  };
609
609
  };
610
610
  };
611
- type: {
612
- type: string;
613
- };
614
611
  dots: {
615
612
  type: string;
616
613
  };
@@ -656,6 +653,9 @@ export declare const HeaderSliderBlock: {
656
653
  animated: {
657
654
  type: string;
658
655
  };
656
+ type: {
657
+ type: string;
658
+ };
659
659
  arrowSize: {
660
660
  type: string;
661
661
  };
@@ -677,8 +677,17 @@ export declare const HeaderSliderBlock: {
677
677
  };
678
678
  };
679
679
  visible: {
680
- type: string;
681
- enum: string[];
680
+ oneOf: ({
681
+ type: string;
682
+ enum: string[];
683
+ additionalProperties?: undefined;
684
+ properties?: undefined;
685
+ } | {
686
+ type: string;
687
+ additionalProperties: boolean;
688
+ properties: {};
689
+ enum?: undefined;
690
+ })[];
682
691
  };
683
692
  resetPaddings: {
684
693
  type: string;
@@ -1135,15 +1135,15 @@ export declare const HeroBlockProps: {
1135
1135
  contentType?: undefined;
1136
1136
  })[];
1137
1137
  };
1138
+ theme: {
1139
+ type: string;
1140
+ enum: string[];
1141
+ };
1138
1142
  text: {
1139
1143
  type: string;
1140
1144
  contentType: string;
1141
1145
  inputType: string;
1142
1146
  };
1143
- theme: {
1144
- type: string;
1145
- enum: string[];
1146
- };
1147
1147
  additionalInfo: {
1148
1148
  type: string;
1149
1149
  contentType: string;
@@ -1993,15 +1993,15 @@ export declare const HeroBlock: {
1993
1993
  contentType?: undefined;
1994
1994
  })[];
1995
1995
  };
1996
+ theme: {
1997
+ type: string;
1998
+ enum: string[];
1999
+ };
1996
2000
  text: {
1997
2001
  type: string;
1998
2002
  contentType: string;
1999
2003
  inputType: string;
2000
2004
  };
2001
- theme: {
2002
- type: string;
2003
- enum: string[];
2004
- };
2005
2005
  additionalInfo: {
2006
2006
  type: string;
2007
2007
  contentType: string;
@@ -2046,8 +2046,17 @@ export declare const HeroBlock: {
2046
2046
  };
2047
2047
  };
2048
2048
  visible: {
2049
- type: string;
2050
- enum: string[];
2049
+ oneOf: ({
2050
+ type: string;
2051
+ enum: string[];
2052
+ additionalProperties?: undefined;
2053
+ properties?: undefined;
2054
+ } | {
2055
+ type: string;
2056
+ additionalProperties: boolean;
2057
+ properties: {};
2058
+ enum?: undefined;
2059
+ })[];
2051
2060
  };
2052
2061
  resetPaddings: {
2053
2062
  type: string;
@@ -142,8 +142,17 @@ export declare const IconsProps: {
142
142
  };
143
143
  };
144
144
  visible: {
145
- type: string;
146
- enum: string[];
145
+ oneOf: ({
146
+ type: string;
147
+ enum: string[];
148
+ additionalProperties?: undefined;
149
+ properties?: undefined;
150
+ } | {
151
+ type: string;
152
+ additionalProperties: boolean;
153
+ properties: {};
154
+ enum?: undefined;
155
+ })[];
147
156
  };
148
157
  resetPaddings: {
149
158
  type: string;
@@ -314,8 +323,17 @@ export declare const IconsBlock: {
314
323
  };
315
324
  };
316
325
  visible: {
317
- type: string;
318
- enum: string[];
326
+ oneOf: ({
327
+ type: string;
328
+ enum: string[];
329
+ additionalProperties?: undefined;
330
+ properties?: undefined;
331
+ } | {
332
+ type: string;
333
+ additionalProperties: boolean;
334
+ properties: {};
335
+ enum?: undefined;
336
+ })[];
319
337
  };
320
338
  resetPaddings: {
321
339
  type: string;
@@ -561,8 +561,17 @@ export declare const MapBlock: {
561
561
  };
562
562
  };
563
563
  visible: {
564
- type: string;
565
- enum: string[];
564
+ oneOf: ({
565
+ type: string;
566
+ enum: string[];
567
+ additionalProperties?: undefined;
568
+ properties?: undefined;
569
+ } | {
570
+ type: string;
571
+ additionalProperties: boolean;
572
+ properties: {};
573
+ enum?: undefined;
574
+ })[];
566
575
  };
567
576
  resetPaddings: {
568
577
  type: string;
@@ -677,8 +677,17 @@ export declare const MediaBlockBaseProps: {
677
677
  };
678
678
  };
679
679
  visible: {
680
- type: string;
681
- enum: string[];
680
+ oneOf: ({
681
+ type: string;
682
+ enum: string[];
683
+ additionalProperties?: undefined;
684
+ properties?: undefined;
685
+ } | {
686
+ type: string;
687
+ additionalProperties: boolean;
688
+ properties: {};
689
+ enum?: undefined;
690
+ })[];
682
691
  };
683
692
  resetPaddings: {
684
693
  type: string;
@@ -1396,8 +1405,17 @@ export declare const MediaBlock: {
1396
1405
  };
1397
1406
  };
1398
1407
  visible: {
1399
- type: string;
1400
- enum: string[];
1408
+ oneOf: ({
1409
+ type: string;
1410
+ enum: string[];
1411
+ additionalProperties?: undefined;
1412
+ properties?: undefined;
1413
+ } | {
1414
+ type: string;
1415
+ additionalProperties: boolean;
1416
+ properties: {};
1417
+ enum?: undefined;
1418
+ })[];
1401
1419
  };
1402
1420
  resetPaddings: {
1403
1421
  type: string;
@@ -482,8 +482,17 @@ export declare const PromoFeaturesBlock: {
482
482
  };
483
483
  };
484
484
  visible: {
485
- type: string;
486
- enum: string[];
485
+ oneOf: ({
486
+ type: string;
487
+ enum: string[];
488
+ additionalProperties?: undefined;
489
+ properties?: undefined;
490
+ } | {
491
+ type: string;
492
+ additionalProperties: boolean;
493
+ properties: {};
494
+ enum?: undefined;
495
+ })[];
487
496
  };
488
497
  resetPaddings: {
489
498
  type: string;
@@ -188,8 +188,17 @@ export declare const QuestionsBlock: {
188
188
  };
189
189
  };
190
190
  visible: {
191
- type: string;
192
- enum: string[];
191
+ oneOf: ({
192
+ type: string;
193
+ enum: string[];
194
+ additionalProperties?: undefined;
195
+ properties?: undefined;
196
+ } | {
197
+ type: string;
198
+ additionalProperties: boolean;
199
+ properties: {};
200
+ enum?: undefined;
201
+ })[];
193
202
  };
194
203
  resetPaddings: {
195
204
  type: string;
@@ -316,8 +316,17 @@ export declare const SliderBlock: {
316
316
  };
317
317
  };
318
318
  visible: {
319
- type: string;
320
- enum: string[];
319
+ oneOf: ({
320
+ type: string;
321
+ enum: string[];
322
+ additionalProperties?: undefined;
323
+ properties?: undefined;
324
+ } | {
325
+ type: string;
326
+ additionalProperties: boolean;
327
+ properties: {};
328
+ enum?: undefined;
329
+ })[];
321
330
  };
322
331
  resetPaddings: {
323
332
  type: string;
@@ -299,8 +299,17 @@ export declare const SliderOldBlock: {
299
299
  };
300
300
  };
301
301
  visible: {
302
- type: string;
303
- enum: string[];
302
+ oneOf: ({
303
+ type: string;
304
+ enum: string[];
305
+ additionalProperties?: undefined;
306
+ properties?: undefined;
307
+ } | {
308
+ type: string;
309
+ additionalProperties: boolean;
310
+ properties: {};
311
+ enum?: undefined;
312
+ })[];
304
313
  };
305
314
  resetPaddings: {
306
315
  type: string;
@@ -72,8 +72,17 @@ export declare const TableBlock: {
72
72
  };
73
73
  };
74
74
  visible: {
75
- type: string;
76
- enum: string[];
75
+ oneOf: ({
76
+ type: string;
77
+ enum: string[];
78
+ additionalProperties?: undefined;
79
+ properties?: undefined;
80
+ } | {
81
+ type: string;
82
+ additionalProperties: boolean;
83
+ properties: {};
84
+ enum?: undefined;
85
+ })[];
77
86
  };
78
87
  resetPaddings: {
79
88
  type: string;
@@ -814,8 +814,17 @@ export declare const TabsBlock: {
814
814
  };
815
815
  };
816
816
  visible: {
817
- type: string;
818
- enum: string[];
817
+ oneOf: ({
818
+ type: string;
819
+ enum: string[];
820
+ additionalProperties?: undefined;
821
+ properties?: undefined;
822
+ } | {
823
+ type: string;
824
+ additionalProperties: boolean;
825
+ properties: {};
826
+ enum?: undefined;
827
+ })[];
819
828
  };
820
829
  resetPaddings: {
821
830
  type: string;
@@ -3,11 +3,16 @@ import * as React from 'react';
3
3
  import { BlockIdContext } from "../../../../context/blockIdContext/index.js";
4
4
  import { InnerContext } from "../../../../context/innerContext/index.js";
5
5
  import { BlockDecoration } from "../../../../customization/BlockDecoration.js";
6
+ import { getVisibleClasses } from "../../../../grid/utils.js";
6
7
  export const ConstructorItem = ({ data, blockKey, children, }) => {
7
8
  const { itemMap } = React.useContext(InnerContext);
8
9
  const { type, ...rest } = data;
9
10
  const Component = itemMap[type];
10
11
  return (_jsx(BlockIdContext.Provider, { value: blockKey, children: _jsx(Component, { ...rest, children: children }) }));
11
12
  };
12
- export const ConstructorHeader = ({ data, blockKey, }) => (_jsx(BlockDecoration, { type: data.type, children: _jsx(ConstructorItem, { data: data, blockKey: blockKey }, data.type) }));
13
+ export const ConstructorHeader = ({ data, blockKey, }) => {
14
+ const { visible } = data;
15
+ const visibilityClasses = visible ? getVisibleClasses(visible) : '';
16
+ return (_jsx("div", { className: visibilityClasses, children: _jsx(BlockDecoration, { type: data.type, children: _jsx(ConstructorItem, { data: data, blockKey: blockKey }, data.type) }) }));
17
+ };
13
18
  //# sourceMappingURL=ConstructorItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConstructorItem.js","sourceRoot":"../../../../../../src","sources":["containers/PageConstructor/components/ConstructorItem/ConstructorItem.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,cAAc,EAAC,oDAA2C;AAClE,OAAO,EAAC,YAAY,EAAC,kDAAyC;AAC9D,OAAO,EAAC,eAAe,EAAC,qDAAkD;AAQ1E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,QAAQ,GACoC,EAAE,EAAE;IAChD,MAAM,EAAC,OAAO,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,EAAC,IAAI,EAAE,GAAG,IAAI,EAAC,GAAG,IAAI,CAAC;IAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAE7B,CAAC;IAEF,OAAO,CACH,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YACpC,KAAC,SAAS,OAAK,IAAI,YAAG,QAAQ,GAAa,GACrB,CAC7B,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,IAAI,EACJ,QAAQ,GACsC,EAAE,EAAE,CAAC,CACnD,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,CAAC,IAAiB,YACzC,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAkB,QAAQ,EAAE,QAAQ,IAA7B,IAAI,CAAC,IAAI,CAAwB,GACrD,CACrB,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {BlockIdContext} from '../../../../context/blockIdContext';\nimport {InnerContext} from '../../../../context/innerContext';\nimport {BlockDecoration} from '../../../../customization/BlockDecoration';\nimport {BlockType, ConstructorBlock} from '../../../../models';\n\nexport interface ConstructorItemProps {\n data: ConstructorBlock;\n blockKey: string;\n}\n\nexport const ConstructorItem = ({\n data,\n blockKey,\n children,\n}: React.PropsWithChildren<ConstructorItemProps>) => {\n const {itemMap} = React.useContext(InnerContext);\n const {type, ...rest} = data;\n\n const Component = itemMap[type] as React.ComponentType<\n React.ComponentProps<(typeof itemMap)[typeof type]>\n >;\n\n return (\n <BlockIdContext.Provider value={blockKey}>\n <Component {...rest}>{children}</Component>\n </BlockIdContext.Provider>\n );\n};\n\nexport const ConstructorHeader = ({\n data,\n blockKey,\n}: Pick<ConstructorItemProps, 'data' | 'blockKey'>) => (\n <BlockDecoration type={data.type as BlockType}>\n <ConstructorItem data={data} key={data.type} blockKey={blockKey} />\n </BlockDecoration>\n);\n"]}
1
+ {"version":3,"file":"ConstructorItem.js","sourceRoot":"../../../../../../src","sources":["containers/PageConstructor/components/ConstructorItem/ConstructorItem.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,cAAc,EAAC,oDAA2C;AAClE,OAAO,EAAC,YAAY,EAAC,kDAAyC;AAC9D,OAAO,EAAC,eAAe,EAAC,qDAAkD;AAC1E,OAAO,EAAC,iBAAiB,EAAC,kCAA+B;AAQzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,QAAQ,GACoC,EAAE,EAAE;IAChD,MAAM,EAAC,OAAO,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,EAAC,IAAI,EAAE,GAAG,IAAI,EAAC,GAAG,IAAI,CAAC;IAE7B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAE7B,CAAC;IAEF,OAAO,CACH,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YACpC,KAAC,SAAS,OAAK,IAAI,YAAG,QAAQ,GAAa,GACrB,CAC7B,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,IAAI,EACJ,QAAQ,GACsC,EAAE,EAAE;IAClD,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC;IAEvB,MAAM,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,OAAO,CACH,cAAK,SAAS,EAAE,iBAAiB,YAC7B,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,CAAC,IAAiB,YACzC,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAkB,QAAQ,EAAE,QAAQ,IAA7B,IAAI,CAAC,IAAI,CAAwB,GACrD,GAChB,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {BlockIdContext} from '../../../../context/blockIdContext';\nimport {InnerContext} from '../../../../context/innerContext';\nimport {BlockDecoration} from '../../../../customization/BlockDecoration';\nimport {getVisibleClasses} from '../../../../grid/utils';\nimport {BlockType, ConstructorBlock} from '../../../../models';\n\nexport interface ConstructorItemProps {\n data: ConstructorBlock;\n blockKey: string;\n}\n\nexport const ConstructorItem = ({\n data,\n blockKey,\n children,\n}: React.PropsWithChildren<ConstructorItemProps>) => {\n const {itemMap} = React.useContext(InnerContext);\n const {type, ...rest} = data;\n\n const Component = itemMap[type] as React.ComponentType<\n React.ComponentProps<(typeof itemMap)[typeof type]>\n >;\n\n return (\n <BlockIdContext.Provider value={blockKey}>\n <Component {...rest}>{children}</Component>\n </BlockIdContext.Provider>\n );\n};\n\nexport const ConstructorHeader = ({\n data,\n blockKey,\n}: Pick<ConstructorItemProps, 'data' | 'blockKey'>) => {\n const {visible} = data;\n\n const visibilityClasses = visible ? getVisibleClasses(visible) : '';\n\n return (\n <div className={visibilityClasses}>\n <BlockDecoration type={data.type as BlockType}>\n <ConstructorItem data={data} key={data.type} blockKey={blockKey} />\n </BlockDecoration>\n </div>\n );\n};\n"]}
@@ -43,7 +43,7 @@ export interface GridColumnClassParams {
43
43
  offsets?: GridColumnSizesType;
44
44
  orders?: GridColumnOrderSizesType;
45
45
  hidden?: GridColumnSize;
46
- visible?: GridColumnSize;
46
+ visible?: GridColumnSize | Partial<Record<GridColumnSize, boolean>>;
47
47
  alignSelf?: GridColumnAlignSelf;
48
48
  justifyContent?: GridJustifyContent;
49
49
  reset?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"../../../src","sources":["grid/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,qDAA+B,CAAA;IAC/B,uDAAiC,CAAA;IACjC,iDAA2B,CAAA;IAC3B,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;AACvC,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,6CAA2B,CAAA;IAC3B,+CAA6B,CAAA;IAC7B,yCAAuB,CAAA;AAC3B,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,2BAAS,CAAA;IACT,2BAAS,CAAA;IACT,2BAAS,CAAA;IACT,2BAAS,CAAA;IACT,6BAAW,CAAA;AACf,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAED,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,iDAA0B,CAAA;IAC1B,mDAA4B,CAAA;IAC5B,6CAAsB,CAAA;AAC1B,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC7B,oCAAW,CAAA;IACX,0CAAiB,CAAA;IACjB,wCAAe,CAAA;AACnB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED,MAAM,CAAN,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACjC,0CAAa,CAAA;IACb,4CAAe,CAAA;AACnB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,QAGpC;AAED,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,yCAAe,CAAA;IACf,uCAAa,CAAA;AACjB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC","sourcesContent":["export enum GridJustifyContent {\n Start = 'justify-content-start',\n Center = 'justify-content-center',\n End = 'justify-content-end',\n Around = 'justify-content-around',\n Between = 'justify-content-between',\n}\n\nexport enum GridAlignItems {\n Start = 'align-items-start',\n Center = 'align-items-center',\n End = 'align-items-end',\n}\n\nexport enum GridColumnSize {\n Sm = 'sm',\n Md = 'md',\n Lg = 'lg',\n Xl = 'xl',\n All = 'all',\n}\n\nexport enum GridColumnAlignSelf {\n Start = 'align-self-start',\n Center = 'align-self-center',\n End = 'align-self-end',\n}\n\nexport enum GridColumnClassPrefix {\n Col = 'col',\n Offset = 'offset',\n Order = 'order',\n}\n\nexport enum GridColumnVisibilityClass {\n None = 'none',\n Block = 'block',\n}\n\nexport enum GridColumnOrderClasses {\n First = 'first',\n Last = 'last',\n}\n\nexport type GridColumnSizesType = Partial<Record<GridColumnSize, number>>;\nexport type GridColumnOrderSizesType = Partial<\n Record<GridColumnSize, number | GridColumnOrderClasses>\n>;\n\nexport interface GridColumnClassParams {\n className?: string;\n sizes?: GridColumnSizesType | number;\n offsets?: GridColumnSizesType;\n orders?: GridColumnOrderSizesType;\n hidden?: GridColumnSize;\n visible?: GridColumnSize;\n alignSelf?: GridColumnAlignSelf;\n justifyContent?: GridJustifyContent;\n reset?: boolean;\n}\n\nexport type IndentValue = '0' | 'xs' | 's' | 'm' | 'l' | 'xl';\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"../../../src","sources":["grid/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,qDAA+B,CAAA;IAC/B,uDAAiC,CAAA;IACjC,iDAA2B,CAAA;IAC3B,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;AACvC,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,6CAA2B,CAAA;IAC3B,+CAA6B,CAAA;IAC7B,yCAAuB,CAAA;AAC3B,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,2BAAS,CAAA;IACT,2BAAS,CAAA;IACT,2BAAS,CAAA;IACT,2BAAS,CAAA;IACT,6BAAW,CAAA;AACf,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAED,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,iDAA0B,CAAA;IAC1B,mDAA4B,CAAA;IAC5B,6CAAsB,CAAA;AAC1B,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC7B,oCAAW,CAAA;IACX,0CAAiB,CAAA;IACjB,wCAAe,CAAA;AACnB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED,MAAM,CAAN,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACjC,0CAAa,CAAA;IACb,4CAAe,CAAA;AACnB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,QAGpC;AAED,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAC9B,yCAAe,CAAA;IACf,uCAAa,CAAA;AACjB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC","sourcesContent":["export enum GridJustifyContent {\n Start = 'justify-content-start',\n Center = 'justify-content-center',\n End = 'justify-content-end',\n Around = 'justify-content-around',\n Between = 'justify-content-between',\n}\n\nexport enum GridAlignItems {\n Start = 'align-items-start',\n Center = 'align-items-center',\n End = 'align-items-end',\n}\n\nexport enum GridColumnSize {\n Sm = 'sm',\n Md = 'md',\n Lg = 'lg',\n Xl = 'xl',\n All = 'all',\n}\n\nexport enum GridColumnAlignSelf {\n Start = 'align-self-start',\n Center = 'align-self-center',\n End = 'align-self-end',\n}\n\nexport enum GridColumnClassPrefix {\n Col = 'col',\n Offset = 'offset',\n Order = 'order',\n}\n\nexport enum GridColumnVisibilityClass {\n None = 'none',\n Block = 'block',\n}\n\nexport enum GridColumnOrderClasses {\n First = 'first',\n Last = 'last',\n}\n\nexport type GridColumnSizesType = Partial<Record<GridColumnSize, number>>;\nexport type GridColumnOrderSizesType = Partial<\n Record<GridColumnSize, number | GridColumnOrderClasses>\n>;\n\nexport interface GridColumnClassParams {\n className?: string;\n sizes?: GridColumnSizesType | number;\n offsets?: GridColumnSizesType;\n orders?: GridColumnOrderSizesType;\n hidden?: GridColumnSize;\n visible?: GridColumnSize | Partial<Record<GridColumnSize, boolean>>;\n alignSelf?: GridColumnAlignSelf;\n justifyContent?: GridJustifyContent;\n reset?: boolean;\n}\n\nexport type IndentValue = '0' | 'xs' | 's' | 'm' | 'l' | 'xl';\n"]}
@@ -3,6 +3,7 @@ export declare function getClasses(items: GridColumnSizesType | GridColumnOrderS
3
3
  export declare function getOffsetClass(offsets: GridColumnSizesType): string;
4
4
  export declare function getOrderClass(orders: GridColumnOrderSizesType): string;
5
5
  export declare function getVisibilityClasses(size: GridColumnSize, type: GridColumnVisibilityClass): string;
6
+ export declare function getVisibleClasses(visible: GridColumnSize | Partial<Record<GridColumnSize, boolean>>): string;
6
7
  export declare function getSizeClass(sizes: GridColumnSizesType | number): string;
7
8
  export declare function getJustifyClass(justifyContent: GridJustifyContent): string;
8
9
  export declare function getResetClass(): string;
@@ -17,11 +17,45 @@ export function getOrderClass(orders) {
17
17
  return getClasses(orders, GridColumnClassPrefix.Order);
18
18
  }
19
19
  export function getVisibilityClasses(size, type) {
20
+ if (size === GridColumnSize.All) {
21
+ return getVisibilityClass(type);
22
+ }
20
23
  const [oppositeClass, mainClass] = type === GridColumnVisibilityClass.None
21
24
  ? [GridColumnVisibilityClass.None, GridColumnVisibilityClass.Block]
22
25
  : [GridColumnVisibilityClass.Block, GridColumnVisibilityClass.None];
23
26
  return `${getVisibilityClass(mainClass)} ${getVisibilityClass(oppositeClass, size)}`;
24
27
  }
28
+ export function getVisibleClasses(visible) {
29
+ if (typeof visible === 'string') {
30
+ return getVisibilityClasses(visible, GridColumnVisibilityClass.Block);
31
+ }
32
+ const breakpoints = [
33
+ GridColumnSize.Sm,
34
+ GridColumnSize.Md,
35
+ GridColumnSize.Lg,
36
+ GridColumnSize.Xl,
37
+ ];
38
+ const classes = [];
39
+ const hasAnyFalse = breakpoints.some((bp) => visible[bp] === false);
40
+ if (!hasAnyFalse) {
41
+ return '';
42
+ }
43
+ const baseVisible = visible[GridColumnSize.Sm] !== false;
44
+ classes.push(baseVisible
45
+ ? getVisibilityClass(GridColumnVisibilityClass.Block)
46
+ : getVisibilityClass(GridColumnVisibilityClass.None));
47
+ let prevVisible = baseVisible;
48
+ for (const bp of breakpoints) {
49
+ const bpVisible = visible[bp] ?? prevVisible;
50
+ if (bpVisible !== prevVisible) {
51
+ classes.push(bpVisible
52
+ ? getVisibilityClass(GridColumnVisibilityClass.Block, bp)
53
+ : getVisibilityClass(GridColumnVisibilityClass.None, bp));
54
+ }
55
+ prevVisible = bpVisible;
56
+ }
57
+ return classes.join(' ');
58
+ }
25
59
  export function getSizeClass(sizes) {
26
60
  if (typeof sizes === 'number') {
27
61
  return `${GridColumnClassPrefix.Col}-${sizes.toString()}`;
@@ -44,7 +78,7 @@ export function getColClass(params) {
44
78
  offsets && getOffsetClass(offsets),
45
79
  orders && getOrderClass(orders),
46
80
  hidden && getVisibilityClasses(hidden, GridColumnVisibilityClass.None),
47
- visible && getVisibilityClasses(visible, GridColumnVisibilityClass.Block),
81
+ visible && getVisibleClasses(visible),
48
82
  reset && getResetClass(),
49
83
  className,
50
84
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"../../../src","sources":["grid/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GridColumnClassParams,\n GridColumnClassPrefix,\n GridColumnOrderSizesType,\n GridColumnSize,\n GridColumnSizesType,\n GridColumnVisibilityClass,\n GridJustifyContent,\n} from './types';\n\nfunction getVisibilityClass(visibility: GridColumnVisibilityClass, size?: GridColumnSize) {\n return `d${size ? `-${size}` : ''}-${visibility}`;\n}\n\nexport function getClasses(\n items: GridColumnSizesType | GridColumnOrderSizesType,\n prefix: GridColumnClassPrefix,\n) {\n return Object.keys(items).reduce((result, size) => {\n const sizeName = size === GridColumnSize.All ? '' : `-${size}`;\n const itemSize = items[size as keyof GridColumnSizesType];\n const sizeValue = !itemSize && prefix === GridColumnClassPrefix.Col ? '' : `-${itemSize}`;\n\n return result + ` ${prefix}${sizeName}${sizeValue}`;\n }, '');\n}\n\nexport function getOffsetClass(offsets: GridColumnSizesType) {\n return getClasses(offsets, GridColumnClassPrefix.Offset);\n}\n\nexport function getOrderClass(orders: GridColumnOrderSizesType) {\n return getClasses(orders, GridColumnClassPrefix.Order);\n}\n\nexport function getVisibilityClasses(size: GridColumnSize, type: GridColumnVisibilityClass) {\n const [oppositeClass, mainClass] =\n type === GridColumnVisibilityClass.None\n ? [GridColumnVisibilityClass.None, GridColumnVisibilityClass.Block]\n : [GridColumnVisibilityClass.Block, GridColumnVisibilityClass.None];\n\n return `${getVisibilityClass(mainClass)} ${getVisibilityClass(oppositeClass, size)}`;\n}\n\nexport function getSizeClass(sizes: GridColumnSizesType | number): string {\n if (typeof sizes === 'number') {\n return `${GridColumnClassPrefix.Col}-${sizes.toString()}`;\n }\n\n return getClasses(sizes, GridColumnClassPrefix.Col);\n}\n\nexport function getJustifyClass(justifyContent: GridJustifyContent): string {\n return `d-flex ${justifyContent}`;\n}\n\nexport function getResetClass() {\n return 'col-reset';\n}\n\nexport function getColClass(params: GridColumnClassParams) {\n const {\n className = '',\n sizes,\n offsets,\n orders,\n hidden,\n visible,\n alignSelf,\n justifyContent,\n reset,\n } = params;\n return [\n GridColumnClassPrefix.Col,\n alignSelf,\n justifyContent && getJustifyClass(justifyContent),\n sizes && getSizeClass(sizes),\n offsets && getOffsetClass(offsets),\n orders && getOrderClass(orders),\n hidden && getVisibilityClasses(hidden, GridColumnVisibilityClass.None),\n visible && getVisibilityClasses(visible, GridColumnVisibilityClass.Block),\n reset && getResetClass(),\n className,\n ]\n .filter(Boolean)\n .join(' ');\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"../../../src","sources":["grid/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GridColumnClassParams,\n GridColumnClassPrefix,\n GridColumnOrderSizesType,\n GridColumnSize,\n GridColumnSizesType,\n GridColumnVisibilityClass,\n GridJustifyContent,\n} from './types';\n\nfunction getVisibilityClass(visibility: GridColumnVisibilityClass, size?: GridColumnSize) {\n return `d${size ? `-${size}` : ''}-${visibility}`;\n}\n\nexport function getClasses(\n items: GridColumnSizesType | GridColumnOrderSizesType,\n prefix: GridColumnClassPrefix,\n) {\n return Object.keys(items).reduce((result, size) => {\n const sizeName = size === GridColumnSize.All ? '' : `-${size}`;\n const itemSize = items[size as keyof GridColumnSizesType];\n const sizeValue = !itemSize && prefix === GridColumnClassPrefix.Col ? '' : `-${itemSize}`;\n\n return result + ` ${prefix}${sizeName}${sizeValue}`;\n }, '');\n}\n\nexport function getOffsetClass(offsets: GridColumnSizesType) {\n return getClasses(offsets, GridColumnClassPrefix.Offset);\n}\n\nexport function getOrderClass(orders: GridColumnOrderSizesType) {\n return getClasses(orders, GridColumnClassPrefix.Order);\n}\n\nexport function getVisibilityClasses(size: GridColumnSize, type: GridColumnVisibilityClass) {\n if (size === GridColumnSize.All) {\n return getVisibilityClass(type);\n }\n\n const [oppositeClass, mainClass] =\n type === GridColumnVisibilityClass.None\n ? [GridColumnVisibilityClass.None, GridColumnVisibilityClass.Block]\n : [GridColumnVisibilityClass.Block, GridColumnVisibilityClass.None];\n\n return `${getVisibilityClass(mainClass)} ${getVisibilityClass(oppositeClass, size)}`;\n}\n\nexport function getVisibleClasses(\n visible: GridColumnSize | Partial<Record<GridColumnSize, boolean>>,\n): string {\n if (typeof visible === 'string') {\n return getVisibilityClasses(visible, GridColumnVisibilityClass.Block);\n }\n\n const breakpoints: GridColumnSize[] = [\n GridColumnSize.Sm,\n GridColumnSize.Md,\n GridColumnSize.Lg,\n GridColumnSize.Xl,\n ];\n\n const classes: string[] = [];\n\n const hasAnyFalse = breakpoints.some((bp) => visible[bp] === false);\n\n if (!hasAnyFalse) {\n return '';\n }\n\n const baseVisible = visible[GridColumnSize.Sm] !== false;\n classes.push(\n baseVisible\n ? getVisibilityClass(GridColumnVisibilityClass.Block)\n : getVisibilityClass(GridColumnVisibilityClass.None),\n );\n\n let prevVisible = baseVisible;\n\n for (const bp of breakpoints) {\n const bpVisible = visible[bp] ?? prevVisible;\n\n if (bpVisible !== prevVisible) {\n classes.push(\n bpVisible\n ? getVisibilityClass(GridColumnVisibilityClass.Block, bp)\n : getVisibilityClass(GridColumnVisibilityClass.None, bp),\n );\n }\n\n prevVisible = bpVisible;\n }\n\n return classes.join(' ');\n}\n\nexport function getSizeClass(sizes: GridColumnSizesType | number): string {\n if (typeof sizes === 'number') {\n return `${GridColumnClassPrefix.Col}-${sizes.toString()}`;\n }\n\n return getClasses(sizes, GridColumnClassPrefix.Col);\n}\n\nexport function getJustifyClass(justifyContent: GridJustifyContent): string {\n return `d-flex ${justifyContent}`;\n}\n\nexport function getResetClass() {\n return 'col-reset';\n}\n\nexport function getColClass(params: GridColumnClassParams) {\n const {\n className = '',\n sizes,\n offsets,\n orders,\n hidden,\n visible,\n alignSelf,\n justifyContent,\n reset,\n } = params;\n return [\n GridColumnClassPrefix.Col,\n alignSelf,\n justifyContent && getJustifyClass(justifyContent),\n sizes && getSizeClass(sizes),\n offsets && getOffsetClass(offsets),\n orders && getOrderClass(orders),\n hidden && getVisibilityClasses(hidden, GridColumnVisibilityClass.None),\n visible && getVisibleClasses(visible),\n reset && getResetClass(),\n className,\n ]\n .filter(Boolean)\n .join(' ');\n}\n"]}
@@ -38,7 +38,7 @@ export interface Childable {
38
38
  }
39
39
  export interface BlockBaseProps {
40
40
  anchor?: AnchorProps;
41
- visible?: GridColumnSize;
41
+ visible?: GridColumnSize | Partial<Record<GridColumnSize, boolean>>;
42
42
  /** @deprecated */
43
43
  resetPaddings?: boolean;
44
44
  indent?: {