@gxpl/sdk 0.0.8 → 0.0.9
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/lib/index.d.ts +1 -4
- package/lib/index.js +1 -4
- package/lib/sdk/Client/Client.d.ts +0 -2
- package/lib/sdk/Client/Client.js +0 -11
- package/lib/sdk/schemas/article/Article.schema.d.ts +40 -45
- package/lib/sdk/schemas/article/Article.schema.js +1 -1
- package/lib/sdk/schemas/article/Item.schema.js +64 -84
- package/lib/sdk/schemas/article/ItemBase.schema.d.ts +15 -18
- package/lib/sdk/schemas/article/ItemBase.schema.js +3 -4
- package/lib/sdk/schemas/article/ItemState.schema.d.ts +76 -76
- package/lib/sdk/schemas/article/RichTextItem.schema.d.ts +78 -86
- package/lib/sdk/schemas/article/RichTextItem.schema.js +9 -11
- package/lib/sdk/schemas/article/Section.schema.d.ts +20 -23
- package/lib/sdk/schemas/article/Section.schema.js +4 -5
- package/lib/sdk/schemas/keyframe/Keyframes.schema.d.ts +0 -90
- package/lib/sdk/schemas/keyframe/Keyframes.schema.js +0 -1
- package/lib/sdk/schemas/project/Project.schema.d.ts +3 -28
- package/lib/sdk/schemas/project/Project.schema.js +1 -2
- package/lib/sdk/types/article/Article.d.ts +1 -1
- package/lib/sdk/types/article/Item.d.ts +75 -114
- package/lib/sdk/types/article/Section.d.ts +4 -5
- package/lib/sdk/types/keyframe/Keyframe.d.ts +0 -1
- package/lib/sdk/types/project/Project.d.ts +1 -2
- package/lib/sdk-nextjs/common/useExemplary.js +1 -5
- package/lib/sdk-nextjs/common/useItemFXData.js +1 -1
- package/lib/sdk-nextjs/common/useKeyframeValue.d.ts +1 -1
- package/lib/sdk-nextjs/common/useKeyframeValue.js +4 -7
- package/lib/sdk-nextjs/common/useLayoutDeviation.d.ts +5 -0
- package/lib/sdk-nextjs/common/useLayoutDeviation.js +20 -0
- package/lib/sdk-nextjs/components/ArticleWrapper.js +3 -4
- package/lib/sdk-nextjs/components/Section/Section.js +12 -31
- package/lib/sdk-nextjs/components/Section/useSectionHeightMap.d.ts +1 -3
- package/lib/sdk-nextjs/components/Section/useSectionHeightMap.js +1 -9
- package/lib/sdk-nextjs/components/items/CodeEmbedItem/CodeEmbedItem.js +16 -35
- package/lib/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.d.ts +2 -4
- package/lib/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.js +3 -17
- package/lib/sdk-nextjs/components/items/ComponentItem/ComponentItem.js +13 -23
- package/lib/sdk-nextjs/components/items/ComponentItem/useComponentItem.d.ts +2 -2
- package/lib/sdk-nextjs/components/items/ComponentItem/useComponentItem.js +2 -14
- package/lib/sdk-nextjs/components/items/CompoundItem/CompoundChild.js +40 -46
- package/lib/sdk-nextjs/components/items/CompoundItem/CompoundItem.js +8 -14
- package/lib/sdk-nextjs/components/items/CompoundItem/useCompoundItem.d.ts +1 -1
- package/lib/sdk-nextjs/components/items/CompoundItem/useCompoundItem.js +1 -8
- package/lib/sdk-nextjs/components/items/CustomItem/CustomItem.js +11 -16
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/VimeoEmbed.js +28 -37
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/YoutubeEmbed.js +17 -29
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/useEmbedVideoItem.d.ts +3 -3
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/useEmbedVideoItem.js +3 -20
- package/lib/sdk-nextjs/components/items/FileItem/ImageItem.js +48 -54
- package/lib/sdk-nextjs/components/items/FileItem/VideoItem.js +53 -64
- package/lib/sdk-nextjs/components/items/FileItem/useFileItem.d.ts +6 -6
- package/lib/sdk-nextjs/components/items/FileItem/useFileItem.js +5 -32
- package/lib/sdk-nextjs/components/items/GroupItem/GroupItem.js +3 -13
- package/lib/sdk-nextjs/components/items/GroupItem/useGroupItem.d.ts +2 -2
- package/lib/sdk-nextjs/components/items/GroupItem/useGroupItem.js +2 -14
- package/lib/sdk-nextjs/components/items/Item.js +23 -48
- package/lib/sdk-nextjs/components/items/RectangleItem/RectangleItem.js +19 -29
- package/lib/sdk-nextjs/components/items/RectangleItem/useRectangleItem.d.ts +6 -6
- package/lib/sdk-nextjs/components/items/RectangleItem/useRectangleItem.js +6 -38
- package/lib/sdk-nextjs/components/items/RichTextItem/RichTextItem.js +23 -31
- package/lib/sdk-nextjs/components/items/RichTextItem/useRichTextItem.js +2 -2
- package/lib/sdk-nextjs/components/items/useItemAngle.d.ts +1 -1
- package/lib/sdk-nextjs/components/items/useItemAngle.js +1 -1
- package/lib/sdk-nextjs/components/items/useItemArea.d.ts +4 -4
- package/lib/sdk-nextjs/components/items/useItemArea.js +2 -8
- package/lib/sdk-nextjs/components/items/useItemScale.d.ts +1 -1
- package/lib/sdk-nextjs/components/items/useItemScale.js +1 -3
- package/lib/sdk-nextjs/components/items/useRichTextItemValues.d.ts +6 -6
- package/lib/sdk-nextjs/components/items/useRichTextItemValues.js +6 -28
- package/lib/sdk-nextjs/components/items/useSizing.js +2 -4
- package/lib/sdk-nextjs/components/items/useStickyItemTop.js +3 -9
- package/lib/sdk-nextjs/interactions/InteractionsRegistry.d.ts +1 -1
- package/lib/sdk-nextjs/interactions/InteractionsRegistry.js +2 -2
- package/lib/sdk-nextjs/provider/CntrlSdkContext.d.ts +5 -6
- package/lib/sdk-nextjs/provider/CntrlSdkContext.js +6 -6
- package/lib/sdk-nextjs/provider/InteractionsContext.js +2 -6
- package/lib/sdk-nextjs/utils/RichTextConverter/RichTextConverter.d.ts +1 -2
- package/lib/sdk-nextjs/utils/RichTextConverter/RichTextConverter.js +37 -62
- package/lib/sdk-nextjs/utils/getStyleFromItemStateAndParams.d.ts +1 -1
- package/package.json +1 -1
- package/lib/cli.d.ts +0 -10
- package/lib/cli.js +0 -64
- package/lib/sdk/schemas/project/Layout.schema.d.ts +0 -17
- package/lib/sdk/schemas/project/Layout.schema.js +0 -10
- package/lib/sdk/types/component/Component.d.ts +0 -15
- package/lib/sdk/types/component/Component.js +0 -2
- package/lib/sdk/types/project/Layout.d.ts +0 -6
- package/lib/sdk/types/project/Layout.js +0 -2
- package/lib/sdk-nextjs/common/useCurrentLayout.d.ts +0 -6
- package/lib/sdk-nextjs/common/useCurrentLayout.js +0 -42
- package/lib/sdk-nextjs/components/useLayoutContext.d.ts +0 -1
- package/lib/sdk-nextjs/components/useLayoutContext.js +0 -9
- package/lib/sdk-nextjs/provider/LayoutContext.d.ts +0 -1
- package/lib/sdk-nextjs/provider/LayoutContext.js +0 -5
- package/lib/utils.d.ts +0 -3
- package/lib/utils.js +0 -30
|
@@ -8,115 +8,109 @@ export type ItemAny = Item<ArticleItemType>;
|
|
|
8
8
|
export interface Item<T extends ArticleItemType> {
|
|
9
9
|
id: string;
|
|
10
10
|
type: T;
|
|
11
|
-
area:
|
|
12
|
-
hidden:
|
|
11
|
+
area: ItemArea;
|
|
12
|
+
hidden: boolean;
|
|
13
13
|
link?: Link;
|
|
14
14
|
items?: T extends (ArticleItemType.Group | ArticleItemType.Compound) ? ItemAny[] : never;
|
|
15
|
-
sticky:
|
|
16
|
-
compoundSettings?:
|
|
17
|
-
commonParams: ItemCommonParamsMap[T];
|
|
15
|
+
sticky: StickyParams | null;
|
|
16
|
+
compoundSettings?: CompoundSettings;
|
|
18
17
|
state: ItemState<T>;
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
export interface
|
|
22
|
-
[ArticleItemType.Image]:
|
|
23
|
-
[ArticleItemType.Video]:
|
|
24
|
-
[ArticleItemType.RichText]:
|
|
25
|
-
[ArticleItemType.Rectangle]:
|
|
26
|
-
[ArticleItemType.VimeoEmbed]:
|
|
27
|
-
[ArticleItemType.YoutubeEmbed]:
|
|
28
|
-
[ArticleItemType.Custom]:
|
|
29
|
-
[ArticleItemType.Group]:
|
|
30
|
-
[ArticleItemType.Compound]:
|
|
31
|
-
[ArticleItemType.CodeEmbed]:
|
|
32
|
-
[ArticleItemType.Component]:
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
[ArticleItemType.Image]: ImageLayoutParams;
|
|
36
|
-
[ArticleItemType.Video]: VideoLayoutParams;
|
|
37
|
-
[ArticleItemType.RichText]: RichTextLayoutParams;
|
|
38
|
-
[ArticleItemType.Rectangle]: RectangleLayoutParams;
|
|
39
|
-
[ArticleItemType.VimeoEmbed]: VimeoEmbedLayoutParams;
|
|
40
|
-
[ArticleItemType.YoutubeEmbed]: YoutubeEmbedLayoutParams;
|
|
41
|
-
[ArticleItemType.Custom]: CustomLayoutParams;
|
|
42
|
-
[ArticleItemType.Group]: GroupLayoutParams;
|
|
43
|
-
[ArticleItemType.Compound]: CompoundLayoutParams;
|
|
44
|
-
[ArticleItemType.CodeEmbed]: CodeEmbedLayoutParams;
|
|
45
|
-
[ArticleItemType.Component]: ComponentLayoutParams;
|
|
46
|
-
}
|
|
47
|
-
interface CommonParamsBase {
|
|
18
|
+
params: ItemParamsMap[T];
|
|
19
|
+
}
|
|
20
|
+
export interface ItemParamsMap {
|
|
21
|
+
[ArticleItemType.Image]: ImageParams;
|
|
22
|
+
[ArticleItemType.Video]: VideoParams;
|
|
23
|
+
[ArticleItemType.RichText]: RichTextParams;
|
|
24
|
+
[ArticleItemType.Rectangle]: RectangleParams;
|
|
25
|
+
[ArticleItemType.VimeoEmbed]: VimeoEmbedParams;
|
|
26
|
+
[ArticleItemType.YoutubeEmbed]: YoutubeEmbedParams;
|
|
27
|
+
[ArticleItemType.Custom]: CustomParams;
|
|
28
|
+
[ArticleItemType.Group]: GroupParams;
|
|
29
|
+
[ArticleItemType.Compound]: CompoundParams;
|
|
30
|
+
[ArticleItemType.CodeEmbed]: CodeEmbedParams;
|
|
31
|
+
[ArticleItemType.Component]: ComponentParams;
|
|
32
|
+
}
|
|
33
|
+
interface ParamsBase {
|
|
48
34
|
pointerEvents?: 'never' | 'when_visible' | 'always';
|
|
49
35
|
}
|
|
50
|
-
interface
|
|
36
|
+
interface ImageParams extends MediaParams {
|
|
37
|
+
}
|
|
38
|
+
interface MediaParams extends ParamsBase {
|
|
51
39
|
url: string;
|
|
52
40
|
hasGLEffect?: boolean;
|
|
53
41
|
fragmentShader: string | null;
|
|
54
42
|
FXControls?: FXControlAny[];
|
|
43
|
+
opacity: number;
|
|
44
|
+
radius: number;
|
|
45
|
+
strokeWidth: number;
|
|
46
|
+
strokeFill: FillLayer[];
|
|
47
|
+
blur: number;
|
|
48
|
+
isDraggable?: boolean;
|
|
55
49
|
}
|
|
56
|
-
interface
|
|
50
|
+
interface VideoParams extends MediaParams {
|
|
57
51
|
coverUrl: string | null;
|
|
52
|
+
play: 'on-hover' | 'on-click' | 'auto';
|
|
53
|
+
muted: boolean;
|
|
54
|
+
controls: boolean;
|
|
55
|
+
scrollPlayback: ScrollPlaybackParams | null;
|
|
58
56
|
}
|
|
59
|
-
interface
|
|
60
|
-
}
|
|
61
|
-
interface RichTextCommonParams extends CommonParamsBase {
|
|
57
|
+
interface RichTextParams extends ParamsBase {
|
|
62
58
|
text: string;
|
|
63
59
|
blocks?: RichTextBlock[];
|
|
60
|
+
rangeStyles?: RichTextStyle[];
|
|
61
|
+
textAlign: TextAlign;
|
|
62
|
+
sizing: string;
|
|
63
|
+
blur: number;
|
|
64
|
+
fontSize: number;
|
|
65
|
+
lineHeight: number;
|
|
66
|
+
letterSpacing: number;
|
|
67
|
+
wordSpacing: number;
|
|
68
|
+
textTransform: TextTransform;
|
|
69
|
+
verticalAlign: VerticalAlign;
|
|
70
|
+
color: string;
|
|
71
|
+
typeFace: string;
|
|
72
|
+
fontStyle: string;
|
|
73
|
+
fontWeight: number;
|
|
74
|
+
fontVariant: string;
|
|
75
|
+
isDraggable?: boolean;
|
|
64
76
|
}
|
|
65
|
-
interface
|
|
77
|
+
interface RectangleParams extends ParamsBase {
|
|
66
78
|
ratioLock: boolean;
|
|
67
|
-
}
|
|
68
|
-
interface CustomCommonParams extends CommonParamsBase {
|
|
69
|
-
name: string;
|
|
70
|
-
}
|
|
71
|
-
interface GroupCommonParams extends CommonParamsBase {
|
|
72
|
-
}
|
|
73
|
-
interface CompoundCommonParams extends CommonParamsBase {
|
|
74
|
-
overflow: 'hidden' | 'visible';
|
|
75
|
-
}
|
|
76
|
-
interface CodeEmbedCommonParams extends CommonParamsBase {
|
|
77
|
-
html: string;
|
|
78
|
-
scale: boolean;
|
|
79
|
-
iframe: boolean;
|
|
80
|
-
}
|
|
81
|
-
interface VimeoEmbedCommonParams extends CommonParamsBase {
|
|
82
|
-
url: string;
|
|
83
|
-
coverUrl: string | null;
|
|
84
|
-
}
|
|
85
|
-
interface YoutubeEmbedCommonParams extends CommonParamsBase {
|
|
86
|
-
url: string;
|
|
87
|
-
coverUrl: string | null;
|
|
88
|
-
}
|
|
89
|
-
interface ComponentCommonParams extends CommonParamsBase {
|
|
90
|
-
componentId: string;
|
|
91
|
-
content?: any;
|
|
92
|
-
}
|
|
93
|
-
interface MediaLayoutParams {
|
|
94
|
-
opacity: number;
|
|
95
79
|
radius: number;
|
|
96
80
|
strokeWidth: number;
|
|
81
|
+
fill: FillLayer[];
|
|
97
82
|
strokeFill: FillLayer[];
|
|
98
83
|
blur: number;
|
|
84
|
+
backdropBlur: number;
|
|
85
|
+
blurMode: 'default' | 'backdrop';
|
|
99
86
|
isDraggable?: boolean;
|
|
100
87
|
}
|
|
101
|
-
interface
|
|
88
|
+
interface CustomParams extends ParamsBase {
|
|
89
|
+
name: string;
|
|
102
90
|
isDraggable?: boolean;
|
|
103
91
|
}
|
|
104
|
-
interface
|
|
92
|
+
interface GroupParams extends ParamsBase {
|
|
105
93
|
opacity: number;
|
|
106
94
|
blur: number;
|
|
107
95
|
isDraggable?: boolean;
|
|
108
96
|
}
|
|
109
|
-
interface
|
|
97
|
+
interface CompoundParams extends ParamsBase {
|
|
98
|
+
overflow: 'hidden' | 'visible';
|
|
110
99
|
opacity: number;
|
|
111
100
|
isDraggable?: boolean;
|
|
112
101
|
}
|
|
113
|
-
interface
|
|
102
|
+
interface CodeEmbedParams extends ParamsBase {
|
|
103
|
+
html: string;
|
|
104
|
+
scale: boolean;
|
|
105
|
+
iframe: boolean;
|
|
114
106
|
areaAnchor: AreaAnchor;
|
|
115
107
|
opacity: number;
|
|
116
108
|
blur: number;
|
|
117
109
|
isDraggable?: boolean;
|
|
118
110
|
}
|
|
119
|
-
interface
|
|
111
|
+
interface VimeoEmbedParams extends ParamsBase {
|
|
112
|
+
url: string;
|
|
113
|
+
coverUrl: string | null;
|
|
120
114
|
play: 'on-hover' | 'on-click' | 'auto';
|
|
121
115
|
controls: boolean;
|
|
122
116
|
loop: boolean;
|
|
@@ -126,7 +120,9 @@ interface VimeoEmbedLayoutParams {
|
|
|
126
120
|
blur: number;
|
|
127
121
|
opacity: number;
|
|
128
122
|
}
|
|
129
|
-
interface
|
|
123
|
+
interface YoutubeEmbedParams extends ParamsBase {
|
|
124
|
+
url: string;
|
|
125
|
+
coverUrl: string | null;
|
|
130
126
|
play: 'on-hover' | 'on-click' | 'auto';
|
|
131
127
|
controls: boolean;
|
|
132
128
|
loop: boolean;
|
|
@@ -134,41 +130,12 @@ interface YoutubeEmbedLayoutParams {
|
|
|
134
130
|
blur: number;
|
|
135
131
|
opacity: number;
|
|
136
132
|
}
|
|
137
|
-
interface
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
controls: boolean;
|
|
143
|
-
scrollPlayback: ScrollPlaybackParams | null;
|
|
144
|
-
}
|
|
145
|
-
interface RichTextLayoutParams {
|
|
146
|
-
rangeStyles?: RichTextStyle[];
|
|
147
|
-
textAlign: TextAlign;
|
|
148
|
-
sizing: string;
|
|
149
|
-
blur: number;
|
|
150
|
-
fontSize: number;
|
|
151
|
-
lineHeight: number;
|
|
152
|
-
letterSpacing: number;
|
|
153
|
-
wordSpacing: number;
|
|
154
|
-
textTransform: TextTransform;
|
|
155
|
-
verticalAlign: VerticalAlign;
|
|
156
|
-
color: string;
|
|
157
|
-
typeFace: string;
|
|
158
|
-
fontStyle: string;
|
|
159
|
-
fontWeight: number;
|
|
160
|
-
fontVariant: string;
|
|
161
|
-
isDraggable?: boolean;
|
|
162
|
-
}
|
|
163
|
-
interface RectangleLayoutParams {
|
|
164
|
-
radius: number;
|
|
165
|
-
strokeWidth: number;
|
|
166
|
-
fill: FillLayer[];
|
|
167
|
-
strokeFill: FillLayer[];
|
|
133
|
+
interface ComponentParams extends ParamsBase {
|
|
134
|
+
componentId: string;
|
|
135
|
+
content?: any;
|
|
136
|
+
parameters?: any;
|
|
137
|
+
opacity: number;
|
|
168
138
|
blur: number;
|
|
169
|
-
backdropBlur: number;
|
|
170
|
-
blurMode: 'default' | 'backdrop';
|
|
171
|
-
isDraggable?: boolean;
|
|
172
139
|
}
|
|
173
140
|
export type FillLayer = SolidFillLayer | LinearGradientFillLayer | RadialGradientFillLayer | ConicGradientFillLayer | ImageLayer;
|
|
174
141
|
type ColorPoint = {
|
|
@@ -230,12 +197,6 @@ export interface Link {
|
|
|
230
197
|
url: string;
|
|
231
198
|
target: string;
|
|
232
199
|
}
|
|
233
|
-
type LayoutIdentifier = string;
|
|
234
|
-
interface ComponentLayoutParams {
|
|
235
|
-
parameters?: any;
|
|
236
|
-
opacity: number;
|
|
237
|
-
blur: number;
|
|
238
|
-
}
|
|
239
200
|
export type VideoItem = Item<ArticleItemType.Video>;
|
|
240
201
|
export type RectangleItem = Item<ArticleItemType.Rectangle>;
|
|
241
202
|
export type ImageItem = Item<ArticleItemType.Image>;
|
|
@@ -28,10 +28,9 @@ export type SectionMedia = SectionVideo | SectionImage;
|
|
|
28
28
|
export interface Section {
|
|
29
29
|
id: string;
|
|
30
30
|
name?: string;
|
|
31
|
-
height:
|
|
32
|
-
hidden:
|
|
31
|
+
height: SectionHeight;
|
|
32
|
+
hidden: boolean;
|
|
33
33
|
items: ItemAny[];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
media?: Record<string, SectionMedia>;
|
|
34
|
+
color: string | null;
|
|
35
|
+
media?: SectionMedia;
|
|
37
36
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Layout } from './Layout';
|
|
2
1
|
import { Fonts } from './Fonts';
|
|
3
2
|
import { Meta } from './Meta';
|
|
4
3
|
import { Page } from './Page';
|
|
@@ -11,7 +10,7 @@ export interface Project {
|
|
|
11
10
|
id: string;
|
|
12
11
|
html: AdditionalHTML;
|
|
13
12
|
meta: Meta;
|
|
14
|
-
|
|
13
|
+
exemplary: number;
|
|
15
14
|
pages: Page[];
|
|
16
15
|
fonts: Fonts;
|
|
17
16
|
}
|
|
@@ -2,12 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useExemplary = void 0;
|
|
4
4
|
const useCntrlContext_1 = require("../provider/useCntrlContext");
|
|
5
|
-
const useLayoutContext_1 = require("../components/useLayoutContext");
|
|
6
5
|
const useExemplary = () => {
|
|
7
|
-
|
|
8
|
-
const { layouts } = (0, useCntrlContext_1.useCntrlContext)();
|
|
9
|
-
const layout = (0, useLayoutContext_1.useLayoutContext)();
|
|
10
|
-
const exemplary = (_b = (_a = layouts.find(l => l.id === layout)) === null || _a === void 0 ? void 0 : _a.exemplary) !== null && _b !== void 0 ? _b : 1;
|
|
6
|
+
const { exemplary } = (0, useCntrlContext_1.useCntrlContext)();
|
|
11
7
|
return exemplary;
|
|
12
8
|
};
|
|
13
9
|
exports.useExemplary = useExemplary;
|
|
@@ -12,7 +12,7 @@ uniform float u_time;
|
|
|
12
12
|
uniform vec2 u_cursor;
|
|
13
13
|
varying vec2 v_texCoord;`;
|
|
14
14
|
function useItemFXData(item, sectionId) {
|
|
15
|
-
const { fragmentShader: shaderBody, FXControls } = item.
|
|
15
|
+
const { fragmentShader: shaderBody, FXControls } = item.params;
|
|
16
16
|
const controls = FXControls !== null && FXControls !== void 0 ? FXControls : [];
|
|
17
17
|
const controlsVariables = controls.map((c) => `uniform ${c.type} ${c.shaderParam};`)
|
|
18
18
|
.join('\n');
|
|
@@ -3,6 +3,6 @@ import { Animator } from '../utils/Animator/Animator';
|
|
|
3
3
|
import { ItemAny } from '../../sdk/types/article/Item';
|
|
4
4
|
import { KeyframeType } from '../../sdk/types/keyframe/Keyframe';
|
|
5
5
|
export type AnimatorGetter<T> = (animator: Animator, scroll: number, value: T) => T;
|
|
6
|
-
type ItemParamGetter<T> = (item: ItemAny
|
|
6
|
+
type ItemParamGetter<T> = (item: ItemAny) => T;
|
|
7
7
|
export declare function useKeyframeValue<T>(item: ItemAny, type: KeyframeType, itemParamsGetter: ItemParamGetter<T>, animatorGetter: AnimatorGetter<T>, sectionId: string, deps?: DependencyList): T;
|
|
8
8
|
export {};
|
|
@@ -9,7 +9,6 @@ const react_1 = require("react");
|
|
|
9
9
|
const ArticleRectContext_1 = require("../provider/ArticleRectContext");
|
|
10
10
|
const KeyframesContext_1 = require("../provider/KeyframesContext");
|
|
11
11
|
const Animator_1 = require("../utils/Animator/Animator");
|
|
12
|
-
const useLayoutContext_1 = require("../components/useLayoutContext");
|
|
13
12
|
const emptyDeps = [];
|
|
14
13
|
function useKeyframeValue(item, type, itemParamsGetter, animatorGetter, sectionId, deps = emptyDeps) {
|
|
15
14
|
const animatorGetterRef = (0, react_1.useRef)(animatorGetter);
|
|
@@ -17,27 +16,25 @@ function useKeyframeValue(item, type, itemParamsGetter, animatorGetter, sectionI
|
|
|
17
16
|
animatorGetterRef.current = animatorGetter;
|
|
18
17
|
itemParamsGetterRef.current = itemParamsGetter;
|
|
19
18
|
const articleRectObserver = (0, react_1.useContext)(ArticleRectContext_1.ArticleRectContext);
|
|
20
|
-
const layoutId = (0, useLayoutContext_1.useLayoutContext)();
|
|
21
19
|
const keyframesRepo = (0, react_1.useContext)(KeyframesContext_1.KeyframesContext);
|
|
22
20
|
const keyframes = (0, react_1.useMemo)(() => keyframesRepo.getItemKeyframes(item.id).filter(kf => kf.type === type), [item.id, keyframesRepo, type]);
|
|
23
21
|
const paramValue = (0, react_1.useMemo)(() => {
|
|
24
|
-
return itemParamsGetterRef.current(item
|
|
25
|
-
}, [item,
|
|
22
|
+
return itemParamsGetterRef.current(item);
|
|
23
|
+
}, [item, ...deps]);
|
|
26
24
|
const [adjustedValue, setAdjustedValue] = (0, react_1.useState)(paramValue);
|
|
27
25
|
const adjustedValueRef = (0, react_1.useRef)(adjustedValue);
|
|
28
26
|
adjustedValueRef.current = adjustedValue;
|
|
29
27
|
const animator = (0, react_1.useMemo)(() => {
|
|
30
|
-
if (!
|
|
28
|
+
if (!keyframes.length)
|
|
31
29
|
return;
|
|
32
30
|
const animationData = keyframes
|
|
33
|
-
.filter(k => k.layoutId === layoutId)
|
|
34
31
|
.map(({ position, type, value }) => ({
|
|
35
32
|
position,
|
|
36
33
|
type,
|
|
37
34
|
value
|
|
38
35
|
}));
|
|
39
36
|
return new Animator_1.Animator(animationData);
|
|
40
|
-
}, [keyframes
|
|
37
|
+
}, [keyframes]);
|
|
41
38
|
const handleKeyframeValue = (0, react_1.useCallback)((scroll) => {
|
|
42
39
|
if (!animator)
|
|
43
40
|
return;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLayoutDeviation = useLayoutDeviation;
|
|
4
|
+
const useCntrlContext_1 = require("../provider/useCntrlContext");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const ArticleRectContext_1 = require("../provider/ArticleRectContext");
|
|
7
|
+
function useLayoutDeviation() {
|
|
8
|
+
const { exemplary } = (0, useCntrlContext_1.useCntrlContext)();
|
|
9
|
+
const articleRectObserver = (0, react_1.useContext)(ArticleRectContext_1.ArticleRectContext);
|
|
10
|
+
const [deviation, setDeviation] = (0, react_1.useState)(1);
|
|
11
|
+
(0, react_1.useEffect)(() => {
|
|
12
|
+
if (!articleRectObserver)
|
|
13
|
+
return;
|
|
14
|
+
return articleRectObserver.on('resize', () => {
|
|
15
|
+
const articleWidth = articleRectObserver.width;
|
|
16
|
+
setDeviation(articleWidth / exemplary);
|
|
17
|
+
});
|
|
18
|
+
}, [articleRectObserver, exemplary]);
|
|
19
|
+
return { layoutDeviation: deviation };
|
|
20
|
+
}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ArticleWrapper = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const
|
|
6
|
-
const LayoutContext_1 = require("../provider/LayoutContext");
|
|
5
|
+
const useLayoutDeviation_1 = require("../common/useLayoutDeviation");
|
|
7
6
|
const ArticleWrapper = ({ children }) => {
|
|
8
|
-
const {
|
|
7
|
+
const { layoutDeviation } = (0, useLayoutDeviation_1.useLayoutDeviation)();
|
|
9
8
|
const layoutDeviationStyle = { '--layout-deviation': layoutDeviation };
|
|
10
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
9
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "article-wrapper", style: Object.assign({}, layoutDeviationStyle), children: children }));
|
|
11
10
|
};
|
|
12
11
|
exports.ArticleWrapper = ArticleWrapper;
|
|
@@ -11,51 +11,34 @@ const style_1 = __importDefault(require("styled-jsx/style"));
|
|
|
11
11
|
const useCntrlContext_1 = require("../../provider/useCntrlContext");
|
|
12
12
|
const useSectionRegistry_1 = require("../../utils/ArticleRectManager/useSectionRegistry");
|
|
13
13
|
const color_1 = require("@cntrl-site/color");
|
|
14
|
-
const useLayoutContext_1 = require("../useLayoutContext");
|
|
15
14
|
const SectionVideo_1 = require("./SectionVideo");
|
|
16
15
|
const SectionImage_1 = require("./SectionImage");
|
|
17
16
|
const checkOverflowClipSupport_1 = require("../../utils/checkOverflowClipSupport");
|
|
18
17
|
const Section_1 = require("../../../sdk/types/article/Section");
|
|
19
|
-
const utils_1 = require("../../../utils");
|
|
20
18
|
const DEFAULT_COLOR = 'rgba(0, 0, 0, 0)';
|
|
21
19
|
const Section = ({ section, data, children }) => {
|
|
22
|
-
var _a;
|
|
23
20
|
const id = (0, react_1.useId)();
|
|
24
21
|
const sectionRef = (0, react_1.useRef)(null);
|
|
25
|
-
const {
|
|
26
|
-
const
|
|
27
|
-
const layoutValues = [section.height, section.color, (_a = section.media) !== null && _a !== void 0 ? _a : {}];
|
|
22
|
+
const { customSections } = (0, useCntrlContext_1.useCntrlContext)();
|
|
23
|
+
const { height, color, hidden } = section;
|
|
28
24
|
const SectionComponent = section.name ? customSections.getComponent(section.name) : undefined;
|
|
29
25
|
(0, useSectionRegistry_1.useSectionRegistry)(section.id, sectionRef.current);
|
|
30
|
-
const sectionHeight = layout && section.height[layout] ? section.height[layout] : undefined;
|
|
31
|
-
const layoutMedia = layout && section.media && section.media[layout] ? section.media[layout] : undefined;
|
|
32
26
|
const media = (0, react_1.useMemo)(() => {
|
|
33
|
-
if (
|
|
34
|
-
return Object.assign(Object.assign({},
|
|
27
|
+
if (section.media && !(0, checkOverflowClipSupport_1.isOverflowClipSupported)()) {
|
|
28
|
+
return Object.assign(Object.assign({}, section.media), { position: 'local' });
|
|
35
29
|
}
|
|
36
|
-
return
|
|
37
|
-
}, [
|
|
38
|
-
const getSectionVisibilityStyles = () => {
|
|
39
|
-
return layouts
|
|
40
|
-
.sort((a, b) => a.startsWith - b.startsWith)
|
|
41
|
-
.reduce((acc, layout) => {
|
|
42
|
-
const isHidden = section.hidden[layout.id];
|
|
43
|
-
return `
|
|
44
|
-
${acc}
|
|
45
|
-
${(0, utils_1.getLayoutMediaQuery)(layout.id, layouts)} {
|
|
46
|
-
.section-${section.id} {
|
|
47
|
-
display: ${isHidden ? 'none' : 'block'};
|
|
48
|
-
}
|
|
49
|
-
}`;
|
|
50
|
-
}, '');
|
|
51
|
-
};
|
|
30
|
+
return section.media;
|
|
31
|
+
}, [section.media]);
|
|
52
32
|
if (SectionComponent)
|
|
53
33
|
return (0, jsx_runtime_1.jsx)("div", { ref: sectionRef, children: (0, jsx_runtime_1.jsx)(SectionComponent, { data: data, children: children }) });
|
|
54
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: `section-${section.id}`, id: section.name, ref: sectionRef, children: [media && media.size !== 'none' && sectionRef.current && ((0, jsx_runtime_1.jsx)("div", { className: `section-background-overlay-${section.id}`, children: (0, jsx_runtime_1.jsxs)("div", { className: `section-background-wrapper-${section.id}`, style:
|
|
55
|
-
|
|
34
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: `section-${section.id}`, id: section.name, ref: sectionRef, children: [media && media.size !== 'none' && sectionRef.current && ((0, jsx_runtime_1.jsx)("div", { className: `section-background-overlay-${section.id}`, children: (0, jsx_runtime_1.jsxs)("div", { className: `section-background-wrapper-${section.id}`, style: {
|
|
35
|
+
transform: media.position === 'fixed' ? 'translateY(-100vh)' : 'unset',
|
|
36
|
+
height: media.position === 'fixed' ? `calc(${getSectionHeight(height)} + 200vh)` : getSectionHeight(height)
|
|
37
|
+
}, children: [media.type === 'video' && ((0, jsx_runtime_1.jsx)(SectionVideo_1.SectionVideo, { container: sectionRef.current, sectionId: section.id, media: media })), media.type === 'image' && ((0, jsx_runtime_1.jsx)(SectionImage_1.SectionImage, { media: media, sectionId: section.id }))] }, `section-background-wrapper-${section.id}`) })), children] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
|
|
56
38
|
.section-${section.id} {
|
|
57
39
|
height: ${getSectionHeight(height)};
|
|
58
40
|
position: relative;
|
|
41
|
+
display: ${hidden ? 'none' : 'block'};
|
|
59
42
|
background-color: ${color_1.CntrlColor.parse(color !== null && color !== void 0 ? color : DEFAULT_COLOR).fmt('rgba')};
|
|
60
43
|
}
|
|
61
44
|
.section-background-overlay-${section.id} {
|
|
@@ -70,9 +53,7 @@ const Section = ({ section, data, children }) => {
|
|
|
70
53
|
height: ${(media === null || media === void 0 ? void 0 : media.position) === 'fixed' ? `calc(${getSectionHeight(height)} + 200vh)` : getSectionHeight(height)};
|
|
71
54
|
width: 100%;
|
|
72
55
|
}
|
|
73
|
-
|
|
74
|
-
${getSectionVisibilityStyles()}
|
|
75
|
-
` })] }));
|
|
56
|
+
` })] }));
|
|
76
57
|
};
|
|
77
58
|
exports.Section = Section;
|
|
78
59
|
function getSectionHeight(heightData) {
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const useSectionHeightData: (sectionId: string) => Record<string, string>;
|
|
3
|
-
export declare function getSectionHeightMap(sectionHeight: Record<string, SectionHeight>): Record<string, string>;
|
|
1
|
+
export declare const useSectionHeightData: (sectionId: string) => string;
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useSectionHeightData = void 0;
|
|
4
|
-
exports.getSectionHeightMap = getSectionHeightMap;
|
|
5
4
|
const react_1 = require("react");
|
|
6
5
|
const CntrlContext_1 = require("../../provider/CntrlContext");
|
|
7
6
|
const Section_1 = require("./Section");
|
|
8
7
|
const useSectionHeightData = (sectionId) => {
|
|
9
8
|
const sectionHeightContext = (0, react_1.useContext)(CntrlContext_1.CntrlContext);
|
|
10
|
-
const layouts = sectionHeightContext.layouts;
|
|
11
9
|
const sectionHeightData = sectionHeightContext.getSectionHeightData(sectionId);
|
|
12
|
-
return sectionHeightData ?
|
|
10
|
+
return sectionHeightData ? (0, Section_1.getSectionHeight)(sectionHeightData) : '0';
|
|
13
11
|
};
|
|
14
12
|
exports.useSectionHeightData = useSectionHeightData;
|
|
15
|
-
function getSectionHeightMap(sectionHeight) {
|
|
16
|
-
return Object.fromEntries(Object.entries(sectionHeight).map(([sectionId, heightData]) => [sectionId, (0, Section_1.getSectionHeight)(heightData)]));
|
|
17
|
-
}
|
|
18
|
-
function getDefaultHeightData(layouts) {
|
|
19
|
-
return layouts.reduce((acc, layout) => (Object.assign(Object.assign({}, acc), { [layout.id]: '0' })), {});
|
|
20
|
-
}
|
|
@@ -13,34 +13,21 @@ const useRegisterResize_1 = require("../../../common/useRegisterResize");
|
|
|
13
13
|
const useItemAngle_1 = require("../useItemAngle");
|
|
14
14
|
const LinkWrapper_1 = require("../LinkWrapper");
|
|
15
15
|
const useCodeEmbedItem_1 = require("./useCodeEmbedItem");
|
|
16
|
-
const ItemArea_1 = require("../../../../sdk/types/article/ItemArea");
|
|
17
|
-
const utils_1 = require("../../../../utils");
|
|
18
16
|
const FontFaceGenerator_1 = require("../../../../sdk/FontFaceGenerator/FontFaceGenerator");
|
|
19
|
-
const
|
|
20
|
-
[ItemArea_1.AreaAnchor.TopLeft]: {},
|
|
21
|
-
[ItemArea_1.AreaAnchor.TopCenter]: { justifyContent: 'center' },
|
|
22
|
-
[ItemArea_1.AreaAnchor.TopRight]: { justifyContent: 'flex-end' },
|
|
23
|
-
[ItemArea_1.AreaAnchor.MiddleLeft]: { alignItems: 'center' },
|
|
24
|
-
[ItemArea_1.AreaAnchor.MiddleCenter]: { justifyContent: 'center', alignItems: 'center' },
|
|
25
|
-
[ItemArea_1.AreaAnchor.MiddleRight]: { justifyContent: 'flex-end', alignItems: 'center' },
|
|
26
|
-
[ItemArea_1.AreaAnchor.BottomLeft]: { alignItems: 'flex-end' },
|
|
27
|
-
[ItemArea_1.AreaAnchor.BottomCenter]: { justifyContent: 'center', alignItems: 'flex-end' },
|
|
28
|
-
[ItemArea_1.AreaAnchor.BottomRight]: { justifyContent: 'flex-end', alignItems: 'flex-end' }
|
|
29
|
-
};
|
|
17
|
+
const useExemplary_1 = require("../../../common/useExemplary");
|
|
30
18
|
const CodeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilityChange }) => {
|
|
31
19
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
32
20
|
const id = (0, react_1.useId)();
|
|
33
|
-
const {
|
|
21
|
+
const { fonts } = (0, useCntrlContext_1.useCntrlContext)();
|
|
34
22
|
const fontGoogleTags = fonts === null || fonts === void 0 ? void 0 : fonts.google;
|
|
35
23
|
const fontAdobeTags = fonts === null || fonts === void 0 ? void 0 : fonts.adobe;
|
|
36
24
|
const fontCustomTags = new FontFaceGenerator_1.FontFaceGenerator((_a = fonts === null || fonts === void 0 ? void 0 : fonts.custom) !== null && _a !== void 0 ? _a : []).generate();
|
|
37
|
-
const {
|
|
25
|
+
const { blur: itemBlur, opacity: itemOpacity } = (0, useCodeEmbedItem_1.useCodeEmbedItem)(item, sectionId);
|
|
38
26
|
const itemAngle = (0, useItemAngle_1.useItemAngle)(item, sectionId);
|
|
39
|
-
const html = decodeBase64(item.
|
|
27
|
+
const html = decodeBase64(item.params.html);
|
|
28
|
+
const exemplary = (0, useExemplary_1.useExemplary)();
|
|
40
29
|
const [ref, setRef] = (0, react_1.useState)(null);
|
|
41
30
|
(0, useRegisterResize_1.useRegisterResize)(ref, onResize);
|
|
42
|
-
const pos = stylesMap[anchor];
|
|
43
|
-
const layoutValues = [item.area, item.layoutParams];
|
|
44
31
|
const stateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['angle', 'blur', 'opacity']);
|
|
45
32
|
const blur = ((_c = (_b = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _b === void 0 ? void 0 : _b.blur) !== null && _c !== void 0 ? _c : itemBlur);
|
|
46
33
|
const opacity = (_e = (_d = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _d === void 0 ? void 0 : _d.opacity) !== null && _e !== void 0 ? _e : itemOpacity;
|
|
@@ -79,37 +66,31 @@ const CodeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilit
|
|
|
79
66
|
${html}
|
|
80
67
|
`;
|
|
81
68
|
iframe.srcdoc = htmlWithStyles;
|
|
82
|
-
}, [html, item.
|
|
69
|
+
}, [html, item.params.iframe, ref]);
|
|
83
70
|
const isInteractive = opacity !== 0;
|
|
84
71
|
(0, react_1.useEffect)(() => {
|
|
85
72
|
onVisibilityChange === null || onVisibilityChange === void 0 ? void 0 : onVisibilityChange(isInteractive);
|
|
86
73
|
}, [isInteractive, onVisibilityChange]);
|
|
87
|
-
return ((0, jsx_runtime_1.jsxs)(LinkWrapper_1.LinkWrapper, { url: (_h = item.link) === null || _h === void 0 ? void 0 : _h.url, target: (_j = item.link) === null || _j === void 0 ? void 0 : _j.target, children: [(0, jsx_runtime_1.jsx)("div", { className: `embed-wrapper-${item.id}`, style: Object.assign(Object.assign(
|
|
74
|
+
return ((0, jsx_runtime_1.jsxs)(LinkWrapper_1.LinkWrapper, { url: (_h = item.link) === null || _h === void 0 ? void 0 : _h.url, target: (_j = item.link) === null || _j === void 0 ? void 0 : _j.target, children: [(0, jsx_runtime_1.jsx)("div", { className: `embed-wrapper-${item.id}`, style: Object.assign(Object.assign({ transform: `rotate(${angle}deg)` }, (blur !== undefined ? { filter: `blur(${blur * 100}vw)` } : {})), { willChange: blur !== 0 && blur !== undefined ? 'transform' : 'unset', transition: (_k = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _k !== void 0 ? _k : 'none' }), ref: setRef, children: item.params.iframe ? ((0, jsx_runtime_1.jsx)("iframe", { "data-embed": item.id, className: `embed-${item.id}`, style: {
|
|
75
|
+
border: 'unset'
|
|
76
|
+
} })) : ((0, jsx_runtime_1.jsx)("div", { className: `embed-${item.id}`, dangerouslySetInnerHTML: { __html: html } })) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
|
|
88
77
|
.embed-wrapper-${item.id} {
|
|
89
78
|
position: absolute;
|
|
90
79
|
width: 100%;
|
|
91
80
|
height: 100%;
|
|
81
|
+
opacity: ${item.params.opacity};
|
|
82
|
+
transform: rotate(${item.area.angle}deg);
|
|
83
|
+
filter: ${item.params.blur !== 0 ? `blur(${item.params.blur * 100}vw)` : 'unset'};
|
|
84
|
+
${item.params.blur !== 0 ? 'will-change: transform;' : ''}
|
|
92
85
|
}
|
|
93
86
|
.embed-${item.id} {
|
|
94
|
-
transform: ${item.
|
|
87
|
+
transform: ${item.params.scale ? 'scale(var(--layout-deviation))' : 'none'};
|
|
95
88
|
transform-origin: top left;
|
|
96
89
|
z-index: 1;
|
|
97
90
|
border: none;
|
|
91
|
+
width: ${item.params.scale ? `${item.area.width * exemplary}px` : '100%'};
|
|
92
|
+
height: ${item.params.scale ? `${item.area.height * exemplary}px` : '100%'};
|
|
98
93
|
}
|
|
99
|
-
${(0, utils_1.getLayoutStyles)(layouts, layoutValues, ([area, layoutParams], exemplary) => {
|
|
100
|
-
return (`
|
|
101
|
-
.embed-wrapper-${item.id} {
|
|
102
|
-
opacity: ${layoutParams.opacity};
|
|
103
|
-
transform: rotate(${area.angle}deg);
|
|
104
|
-
filter: ${layoutParams.blur !== 0 ? `blur(${layoutParams.blur * 100}vw)` : 'unset'};
|
|
105
|
-
${layoutParams.blur !== 0 ? 'will-change: transform;' : ''}
|
|
106
|
-
}
|
|
107
|
-
.embed-${item.id} {
|
|
108
|
-
width: ${item.commonParams.scale ? `${area.width * exemplary}px` : '100%'};
|
|
109
|
-
height: ${item.commonParams.scale ? `${area.height * exemplary}px` : '100%'};
|
|
110
|
-
}
|
|
111
|
-
`);
|
|
112
|
-
})}
|
|
113
94
|
` })] }));
|
|
114
95
|
};
|
|
115
96
|
exports.CodeEmbedItem = CodeEmbedItem;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { CodeEmbedItem } from '../../../../sdk/types/article/Item';
|
|
2
|
-
import { AreaAnchor } from '../../../../sdk/types/article/ItemArea';
|
|
3
2
|
export declare function useCodeEmbedItem(item: CodeEmbedItem, sectionId: string): {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
opacity: number | undefined;
|
|
3
|
+
blur: number;
|
|
4
|
+
opacity: number;
|
|
7
5
|
};
|
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useCodeEmbedItem = useCodeEmbedItem;
|
|
4
|
-
const useLayoutContext_1 = require("../../useLayoutContext");
|
|
5
4
|
const useKeyframeValue_1 = require("../../../common/useKeyframeValue");
|
|
6
5
|
const Keyframe_1 = require("../../../../sdk/types/keyframe/Keyframe");
|
|
7
|
-
const ItemArea_1 = require("../../../../sdk/types/article/ItemArea");
|
|
8
6
|
function useCodeEmbedItem(item, sectionId) {
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
return;
|
|
13
|
-
const layoutParams = item.layoutParams[layoutId];
|
|
14
|
-
return 'blur' in layoutParams ? layoutParams.blur : 0;
|
|
15
|
-
}, (animator, scroll, value) => value !== undefined ? animator.getBlur({ blur: value }, scroll).blur : undefined, sectionId, [layoutId]);
|
|
16
|
-
const opacity = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Opacity, (item, layoutId) => {
|
|
17
|
-
if (!layoutId)
|
|
18
|
-
return;
|
|
19
|
-
const layoutParams = item.layoutParams[layoutId];
|
|
20
|
-
return 'opacity' in layoutParams ? layoutParams.opacity : 1;
|
|
21
|
-
}, (animator, scroll, value) => value !== undefined ? animator.getOpacity({ opacity: value }, scroll).opacity : undefined, sectionId, [layoutId]);
|
|
22
|
-
const anchor = layoutId && 'areaAnchor' in item.layoutParams[layoutId] ? item.layoutParams[layoutId].areaAnchor : ItemArea_1.AreaAnchor.TopLeft;
|
|
23
|
-
return { anchor, blur, opacity };
|
|
7
|
+
const blur = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Blur, (item) => 'blur' in item.params ? item.params.blur : 0, (animator, scroll, value) => animator.getBlur({ blur: value }, scroll).blur, sectionId);
|
|
8
|
+
const opacity = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Opacity, (item) => 'opacity' in item.params ? item.params.opacity : 1, (animator, scroll, value) => animator.getOpacity({ opacity: value }, scroll).opacity, sectionId);
|
|
9
|
+
return { blur, opacity };
|
|
24
10
|
}
|