@core-ease/telegram-kit 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +299 -0
- package/dist/animation/index.d.mts +4 -0
- package/dist/animation/index.d.ts +4 -0
- package/dist/animation/index.js +2413 -0
- package/dist/animation/index.mjs +5 -0
- package/dist/animation/lottie/index.d.mts +10 -0
- package/dist/animation/lottie/index.d.ts +10 -0
- package/dist/animation/lottie/index.js +2313 -0
- package/dist/animation/lottie/index.mjs +4 -0
- package/dist/animation/tgs/index.d.mts +18 -0
- package/dist/animation/tgs/index.d.ts +18 -0
- package/dist/animation/tgs/index.js +2402 -0
- package/dist/animation/tgs/index.mjs +4 -0
- package/dist/bot/index.d.mts +477 -0
- package/dist/bot/index.d.ts +477 -0
- package/dist/bot/index.js +870 -0
- package/dist/bot/index.mjs +847 -0
- package/dist/bot-D8BnLWIi.d.mts +2041 -0
- package/dist/bot-D8BnLWIi.d.ts +2041 -0
- package/dist/browser.global.js +23 -0
- package/dist/chunk-7AARTHNW.mjs +40 -0
- package/dist/chunk-7CVYPKAL.mjs +15 -0
- package/dist/chunk-B3PWALX5.mjs +4418 -0
- package/dist/chunk-BQEUEAVK.mjs +2262 -0
- package/dist/chunk-FPWYSKK2.mjs +3089 -0
- package/dist/chunk-JXK5HCDV.mjs +254 -0
- package/dist/chunk-OMH2JGOH.mjs +88 -0
- package/dist/chunk-PXO36YTU.mjs +38 -0
- package/dist/core/index.d.mts +151 -0
- package/dist/core/index.d.ts +151 -0
- package/dist/core/index.js +3837 -0
- package/dist/core/index.mjs +495 -0
- package/dist/dev/index.d.mts +77 -0
- package/dist/dev/index.d.ts +77 -0
- package/dist/dev/index.js +3214 -0
- package/dist/dev/index.mjs +151 -0
- package/dist/engine-BDm1_hzn.d.mts +382 -0
- package/dist/engine-BDm1_hzn.d.ts +382 -0
- package/dist/format/index.d.mts +61 -0
- package/dist/format/index.d.ts +61 -0
- package/dist/format/index.js +121 -0
- package/dist/format/index.mjs +112 -0
- package/dist/hooks/index.d.mts +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +4234 -0
- package/dist/hooks/index.mjs +3 -0
- package/dist/hooks-C5Per70R.d.mts +1066 -0
- package/dist/hooks-C5Per70R.d.ts +1066 -0
- package/dist/index.d.mts +849 -0
- package/dist/index.d.ts +849 -0
- package/dist/index.js +5026 -0
- package/dist/index.mjs +478 -0
- package/dist/keyboards/index.d.mts +50 -0
- package/dist/keyboards/index.d.ts +50 -0
- package/dist/keyboards/index.js +127 -0
- package/dist/keyboards/index.mjs +124 -0
- package/dist/links/index.d.mts +53 -0
- package/dist/links/index.d.ts +53 -0
- package/dist/links/index.js +139 -0
- package/dist/links/index.mjs +133 -0
- package/dist/lottie/index.d.mts +3 -0
- package/dist/lottie/index.d.ts +3 -0
- package/dist/lottie/index.js +2313 -0
- package/dist/lottie/index.mjs +4 -0
- package/dist/qr/index.d.mts +75 -0
- package/dist/qr/index.d.ts +75 -0
- package/dist/qr/index.js +983 -0
- package/dist/qr/index.mjs +946 -0
- package/dist/sdk/index.d.mts +322 -0
- package/dist/sdk/index.d.ts +322 -0
- package/dist/sdk/index.js +3138 -0
- package/dist/sdk/index.mjs +2 -0
- package/dist/server/index.d.mts +28 -0
- package/dist/server/index.d.ts +28 -0
- package/dist/server/index.js +254 -0
- package/dist/server/index.mjs +246 -0
- package/dist/tgs/index.d.mts +3 -0
- package/dist/tgs/index.d.ts +3 -0
- package/dist/tgs/index.js +2402 -0
- package/dist/tgs/index.mjs +4 -0
- package/dist/webapp-B-3_74nK.d.mts +842 -0
- package/dist/webapp-B-3_74nK.d.ts +842 -0
- package/dist/webapp-BDi9q3-a.d.mts +42 -0
- package/dist/webapp-YvmwFYUQ.d.ts +42 -0
- package/package.json +165 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { markDevModeActive } from '../chunk-JXK5HCDV.mjs';
|
|
2
|
+
import { isBootstrapped, Utils, bootstrapTelegramWebApp } from '../chunk-FPWYSKK2.mjs';
|
|
3
|
+
import { __spreadValues } from '../chunk-7AARTHNW.mjs';
|
|
4
|
+
|
|
5
|
+
// src/core/dev.ts
|
|
6
|
+
var DEFAULT_USER = {
|
|
7
|
+
id: 123456789,
|
|
8
|
+
first_name: "Dev",
|
|
9
|
+
last_name: "User",
|
|
10
|
+
username: "dev_user",
|
|
11
|
+
language_code: "en",
|
|
12
|
+
is_premium: false
|
|
13
|
+
};
|
|
14
|
+
var LIGHT_THEME = {
|
|
15
|
+
bg_color: "#ffffff",
|
|
16
|
+
secondary_bg_color: "#f1f1f1",
|
|
17
|
+
text_color: "#000000",
|
|
18
|
+
hint_color: "#999999",
|
|
19
|
+
link_color: "#2678b6",
|
|
20
|
+
button_color: "#2678b6",
|
|
21
|
+
button_text_color: "#ffffff",
|
|
22
|
+
header_bg_color: "#527da3",
|
|
23
|
+
bottom_bar_bg_color: "#ffffff",
|
|
24
|
+
accent_text_color: "#168acd",
|
|
25
|
+
section_bg_color: "#ffffff",
|
|
26
|
+
section_header_text_color: "#168acd",
|
|
27
|
+
section_separator_color: "#e7e7e7",
|
|
28
|
+
subtitle_text_color: "#999999",
|
|
29
|
+
destructive_text_color: "#cc2929"
|
|
30
|
+
};
|
|
31
|
+
var DARK_THEME = {
|
|
32
|
+
bg_color: "#17212b",
|
|
33
|
+
secondary_bg_color: "#232e3c",
|
|
34
|
+
text_color: "#f5f5f5",
|
|
35
|
+
hint_color: "#708499",
|
|
36
|
+
link_color: "#6ab3f3",
|
|
37
|
+
button_color: "#5288c1",
|
|
38
|
+
button_text_color: "#ffffff",
|
|
39
|
+
header_bg_color: "#17212b",
|
|
40
|
+
bottom_bar_bg_color: "#17212b",
|
|
41
|
+
accent_text_color: "#6ab3f3",
|
|
42
|
+
section_bg_color: "#232e3c",
|
|
43
|
+
section_header_text_color: "#6ab3f3",
|
|
44
|
+
section_separator_color: "#ffffff14",
|
|
45
|
+
subtitle_text_color: "#708499",
|
|
46
|
+
destructive_text_color: "#ec3942"
|
|
47
|
+
};
|
|
48
|
+
function getAppTheme() {
|
|
49
|
+
if (typeof document === "undefined") return DARK_THEME;
|
|
50
|
+
const root = document.documentElement;
|
|
51
|
+
const styles = getComputedStyle(root);
|
|
52
|
+
const getColor = (varName, fallback) => styles.getPropertyValue(varName).trim() || fallback;
|
|
53
|
+
const isDark = getColor("--color-scheme", "dark") === "dark" || getColor("--background", "#0f0f0f") === "#0f0f0f";
|
|
54
|
+
return {
|
|
55
|
+
bg_color: getColor("--background", isDark ? "#0f0f0f" : "#ffffff"),
|
|
56
|
+
secondary_bg_color: getColor("--secondary", isDark ? "#101010" : "#f1f1f1"),
|
|
57
|
+
text_color: getColor("--foreground", isDark ? "#f5f5f5" : "#000000"),
|
|
58
|
+
hint_color: getColor("--muted-foreground", isDark ? "#7a7a7a" : "#999999"),
|
|
59
|
+
link_color: getColor("--primary", isDark ? "#6ab3f3" : "#2678b6"),
|
|
60
|
+
button_color: getColor("--primary", isDark ? "#f5f5f5" : "#2678b6"),
|
|
61
|
+
button_text_color: getColor("--primary-foreground", isDark ? "#262626" : "#ffffff"),
|
|
62
|
+
header_bg_color: getColor("--background", isDark ? "#0f0f0f" : "#ffffff"),
|
|
63
|
+
bottom_bar_bg_color: getColor("--background", isDark ? "#0f0f0f" : "#ffffff"),
|
|
64
|
+
accent_text_color: getColor("--accent-foreground", isDark ? "#6ab3f3" : "#168acd"),
|
|
65
|
+
section_bg_color: getColor("--card", isDark ? "#101010" : "#ffffff"),
|
|
66
|
+
section_header_text_color: getColor("--accent-foreground", isDark ? "#6ab3f3" : "#168acd"),
|
|
67
|
+
section_separator_color: getColor("--border", isDark ? "#ffffff14" : "#e7e7e7"),
|
|
68
|
+
subtitle_text_color: getColor("--muted-foreground", isDark ? "#7a7a7a" : "#999999"),
|
|
69
|
+
destructive_text_color: getColor("--destructive", isDark ? "#f16060" : "#cc2929")
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function resolveTheme(colorScheme) {
|
|
73
|
+
if (colorScheme === "light") return LIGHT_THEME;
|
|
74
|
+
if (colorScheme === "dark") return DARK_THEME;
|
|
75
|
+
return getAppTheme();
|
|
76
|
+
}
|
|
77
|
+
function buildFakeTgWebAppData(options) {
|
|
78
|
+
const user = __spreadValues(__spreadValues({}, DEFAULT_USER), options.user);
|
|
79
|
+
const fields = {
|
|
80
|
+
user: JSON.stringify(user),
|
|
81
|
+
auth_date: String(Math.floor(Date.now() / 1e3)),
|
|
82
|
+
hash: "dev_" + Math.random().toString(36).slice(2) + Math.random().toString(36).slice(2)
|
|
83
|
+
};
|
|
84
|
+
if (options.startParam) fields.start_param = options.startParam;
|
|
85
|
+
return Object.entries(fields).map(([key, value]) => `${key}=${encodeURIComponent(value)}`).join("&");
|
|
86
|
+
}
|
|
87
|
+
function looksLikeRealTelegramLaunch() {
|
|
88
|
+
try {
|
|
89
|
+
return typeof location !== "undefined" && location.hash.indexOf("tgWebAppData") !== -1;
|
|
90
|
+
} catch (e) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function installDevMode(options = {}) {
|
|
95
|
+
var _a, _b;
|
|
96
|
+
if (typeof window === "undefined") return false;
|
|
97
|
+
if (looksLikeRealTelegramLaunch() && !options.force) return false;
|
|
98
|
+
if (isBootstrapped()) {
|
|
99
|
+
console.warn(
|
|
100
|
+
"[@core-ease/telegram-kit] installDevMode() was called after the SDK already bootstrapped - call it before any other @core-ease/telegram-kit import touches getWebApp() (hooks, <TelegramProvider>, core functions)."
|
|
101
|
+
);
|
|
102
|
+
if (!options.force) return false;
|
|
103
|
+
}
|
|
104
|
+
Utils.sessionStorageSet("initParams", {
|
|
105
|
+
tgWebAppData: buildFakeTgWebAppData(options),
|
|
106
|
+
tgWebAppVersion: (_a = options.version) != null ? _a : "8.0",
|
|
107
|
+
tgWebAppPlatform: (_b = options.platform) != null ? _b : "tdesktop",
|
|
108
|
+
tgWebAppThemeParams: JSON.stringify(resolveTheme(options.colorScheme))
|
|
109
|
+
});
|
|
110
|
+
markDevModeActive();
|
|
111
|
+
bootstrapTelegramWebApp();
|
|
112
|
+
if (options.showIndicator !== false) attachDevIndicator();
|
|
113
|
+
console.info(
|
|
114
|
+
"%c[@core-ease/telegram-kit] Dev mode active",
|
|
115
|
+
"background:#2678b6;color:#fff;padding:2px 6px;border-radius:3px;font-weight:bold"
|
|
116
|
+
);
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
function attachDevIndicator() {
|
|
120
|
+
if (typeof document === "undefined") return;
|
|
121
|
+
if (document.getElementById("core-ease-telegram-kit-dev-indicator")) return;
|
|
122
|
+
const styles = getComputedStyle(document.documentElement);
|
|
123
|
+
const bgColor = styles.getPropertyValue("--primary").trim() || "#2678b6";
|
|
124
|
+
const textColor = styles.getPropertyValue("--primary-foreground").trim() || "#ffffff";
|
|
125
|
+
const el = document.createElement("div");
|
|
126
|
+
el.id = "core-ease-telegram-kit-dev-indicator";
|
|
127
|
+
el.textContent = "@core-ease/telegram-kit dev";
|
|
128
|
+
el.style.cssText = [
|
|
129
|
+
"position:fixed",
|
|
130
|
+
"bottom:8px",
|
|
131
|
+
"right:8px",
|
|
132
|
+
"z-index:999999",
|
|
133
|
+
`background:${bgColor}`,
|
|
134
|
+
`color:${textColor}`,
|
|
135
|
+
"font:bold 11px/1 monospace",
|
|
136
|
+
"padding:4px 8px",
|
|
137
|
+
"border-radius:4px",
|
|
138
|
+
"pointer-events:none",
|
|
139
|
+
"opacity:0.85",
|
|
140
|
+
"letter-spacing:0.5px",
|
|
141
|
+
"box-shadow:0 2px 4px rgba(0,0,0,0.2)"
|
|
142
|
+
].join(";");
|
|
143
|
+
document.body.appendChild(el);
|
|
144
|
+
}
|
|
145
|
+
function isDevMode() {
|
|
146
|
+
var _a;
|
|
147
|
+
if (typeof window === "undefined") return false;
|
|
148
|
+
return typeof process !== "undefined" && ((_a = process.env) == null ? void 0 : _a.NODE_ENV) === "development" || new URLSearchParams(window.location.search).has("tg_dev");
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export { installDevMode, isDevMode };
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface LottieKeyframe {
|
|
4
|
+
t: number;
|
|
5
|
+
s?: number[];
|
|
6
|
+
e?: number[];
|
|
7
|
+
i?: {
|
|
8
|
+
x: number | number[];
|
|
9
|
+
y: number | number[];
|
|
10
|
+
};
|
|
11
|
+
o?: {
|
|
12
|
+
x: number | number[];
|
|
13
|
+
y: number | number[];
|
|
14
|
+
};
|
|
15
|
+
h?: 0 | 1;
|
|
16
|
+
to?: number[];
|
|
17
|
+
ti?: number[];
|
|
18
|
+
}
|
|
19
|
+
interface AnimatedProperty {
|
|
20
|
+
a: 0 | 1;
|
|
21
|
+
k: number[] | number | LottieKeyframe[];
|
|
22
|
+
ix?: number;
|
|
23
|
+
x?: string;
|
|
24
|
+
}
|
|
25
|
+
interface MultiDimensional extends AnimatedProperty {
|
|
26
|
+
}
|
|
27
|
+
interface ScalarProperty extends AnimatedProperty {
|
|
28
|
+
}
|
|
29
|
+
interface ShapeProperty {
|
|
30
|
+
a: 0 | 1;
|
|
31
|
+
k: ShapeKeyframeValue | ShapeAnimKeyframe[];
|
|
32
|
+
}
|
|
33
|
+
interface ShapeKeyframeValue {
|
|
34
|
+
c: boolean;
|
|
35
|
+
v: number[][];
|
|
36
|
+
i: number[][];
|
|
37
|
+
o: number[][];
|
|
38
|
+
}
|
|
39
|
+
interface ShapeAnimKeyframe {
|
|
40
|
+
t: number;
|
|
41
|
+
s?: ShapeKeyframeValue[];
|
|
42
|
+
e?: ShapeKeyframeValue[];
|
|
43
|
+
i?: {
|
|
44
|
+
x: number | number[];
|
|
45
|
+
y: number | number[];
|
|
46
|
+
};
|
|
47
|
+
o?: {
|
|
48
|
+
x: number | number[];
|
|
49
|
+
y: number | number[];
|
|
50
|
+
};
|
|
51
|
+
h?: 0 | 1;
|
|
52
|
+
}
|
|
53
|
+
interface Transform {
|
|
54
|
+
a?: MultiDimensional;
|
|
55
|
+
p?: MultiDimensional & {
|
|
56
|
+
s?: boolean;
|
|
57
|
+
x?: AnimatedProperty;
|
|
58
|
+
y?: AnimatedProperty;
|
|
59
|
+
};
|
|
60
|
+
s?: MultiDimensional;
|
|
61
|
+
r?: ScalarProperty;
|
|
62
|
+
o?: ScalarProperty;
|
|
63
|
+
sk?: ScalarProperty;
|
|
64
|
+
sa?: ScalarProperty;
|
|
65
|
+
}
|
|
66
|
+
interface GradientColor {
|
|
67
|
+
p: number;
|
|
68
|
+
k: AnimatedProperty;
|
|
69
|
+
}
|
|
70
|
+
interface ShapeItemBase {
|
|
71
|
+
ty: string;
|
|
72
|
+
nm?: string;
|
|
73
|
+
hd?: boolean;
|
|
74
|
+
}
|
|
75
|
+
interface ShapePathItem extends ShapeItemBase {
|
|
76
|
+
ty: "sh";
|
|
77
|
+
ks: ShapeProperty;
|
|
78
|
+
}
|
|
79
|
+
interface ShapeRectItem extends ShapeItemBase {
|
|
80
|
+
ty: "rc";
|
|
81
|
+
p: MultiDimensional;
|
|
82
|
+
s: MultiDimensional;
|
|
83
|
+
r: ScalarProperty;
|
|
84
|
+
}
|
|
85
|
+
interface ShapeEllipseItem extends ShapeItemBase {
|
|
86
|
+
ty: "el";
|
|
87
|
+
p: MultiDimensional;
|
|
88
|
+
s: MultiDimensional;
|
|
89
|
+
}
|
|
90
|
+
interface ShapeStarItem extends ShapeItemBase {
|
|
91
|
+
ty: "sr";
|
|
92
|
+
p: MultiDimensional;
|
|
93
|
+
or: ScalarProperty;
|
|
94
|
+
os: ScalarProperty;
|
|
95
|
+
ir?: ScalarProperty;
|
|
96
|
+
is?: ScalarProperty;
|
|
97
|
+
r: ScalarProperty;
|
|
98
|
+
pt: ScalarProperty;
|
|
99
|
+
sy: 1 | 2;
|
|
100
|
+
}
|
|
101
|
+
interface ShapeFillItem extends ShapeItemBase {
|
|
102
|
+
ty: "fl";
|
|
103
|
+
c: MultiDimensional;
|
|
104
|
+
o: ScalarProperty;
|
|
105
|
+
r?: number;
|
|
106
|
+
}
|
|
107
|
+
interface ShapeGradientFillItem extends ShapeItemBase {
|
|
108
|
+
ty: "gf";
|
|
109
|
+
o: ScalarProperty;
|
|
110
|
+
s: MultiDimensional;
|
|
111
|
+
e: MultiDimensional;
|
|
112
|
+
t: 1 | 2;
|
|
113
|
+
g: GradientColor;
|
|
114
|
+
h?: ScalarProperty;
|
|
115
|
+
a?: ScalarProperty;
|
|
116
|
+
}
|
|
117
|
+
interface ShapeStrokeItem extends ShapeItemBase {
|
|
118
|
+
ty: "st";
|
|
119
|
+
c: MultiDimensional;
|
|
120
|
+
o: ScalarProperty;
|
|
121
|
+
w: ScalarProperty;
|
|
122
|
+
lc?: number;
|
|
123
|
+
lj?: number;
|
|
124
|
+
ml?: number;
|
|
125
|
+
d?: Array<{
|
|
126
|
+
n: string;
|
|
127
|
+
v: AnimatedProperty;
|
|
128
|
+
}>;
|
|
129
|
+
}
|
|
130
|
+
interface ShapeGradientStrokeItem extends ShapeItemBase {
|
|
131
|
+
ty: "gs";
|
|
132
|
+
o: ScalarProperty;
|
|
133
|
+
s: MultiDimensional;
|
|
134
|
+
e: MultiDimensional;
|
|
135
|
+
t: 1 | 2;
|
|
136
|
+
g: GradientColor;
|
|
137
|
+
w: ScalarProperty;
|
|
138
|
+
h?: ScalarProperty;
|
|
139
|
+
a?: ScalarProperty;
|
|
140
|
+
lc?: number;
|
|
141
|
+
lj?: number;
|
|
142
|
+
ml?: number;
|
|
143
|
+
d?: Array<{
|
|
144
|
+
n: string;
|
|
145
|
+
v: AnimatedProperty;
|
|
146
|
+
}>;
|
|
147
|
+
}
|
|
148
|
+
interface ShapeGroupItem extends ShapeItemBase {
|
|
149
|
+
ty: "gr";
|
|
150
|
+
it: ShapeItem[];
|
|
151
|
+
}
|
|
152
|
+
interface ShapeTrimItem extends ShapeItemBase {
|
|
153
|
+
ty: "tm";
|
|
154
|
+
s: ScalarProperty;
|
|
155
|
+
e: ScalarProperty;
|
|
156
|
+
o: ScalarProperty;
|
|
157
|
+
m?: 1 | 2;
|
|
158
|
+
}
|
|
159
|
+
interface ShapeRepeaterItem extends ShapeItemBase {
|
|
160
|
+
ty: "rp";
|
|
161
|
+
c: ScalarProperty;
|
|
162
|
+
o: ScalarProperty;
|
|
163
|
+
tr: {
|
|
164
|
+
p: MultiDimensional;
|
|
165
|
+
a: MultiDimensional;
|
|
166
|
+
s: MultiDimensional;
|
|
167
|
+
r: ScalarProperty;
|
|
168
|
+
so?: ScalarProperty;
|
|
169
|
+
eo?: ScalarProperty;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
interface ShapeMergeItem extends ShapeItemBase {
|
|
173
|
+
ty: "mm";
|
|
174
|
+
mm: number;
|
|
175
|
+
}
|
|
176
|
+
interface ShapeTransformItem extends ShapeItemBase, Transform {
|
|
177
|
+
ty: "tr";
|
|
178
|
+
}
|
|
179
|
+
type ShapeItem = ShapePathItem | ShapeRectItem | ShapeEllipseItem | ShapeStarItem | ShapeFillItem | ShapeGradientFillItem | ShapeStrokeItem | ShapeGradientStrokeItem | ShapeGroupItem | ShapeTrimItem | ShapeRepeaterItem | ShapeMergeItem | ShapeTransformItem;
|
|
180
|
+
interface MaskProperty {
|
|
181
|
+
inv: boolean;
|
|
182
|
+
mode: "a" | "s" | "i" | "l" | "d" | "n";
|
|
183
|
+
pt: ShapeProperty;
|
|
184
|
+
o: ScalarProperty;
|
|
185
|
+
}
|
|
186
|
+
interface LottieLayer {
|
|
187
|
+
ty: number;
|
|
188
|
+
ind?: number;
|
|
189
|
+
parent?: number;
|
|
190
|
+
nm?: string;
|
|
191
|
+
ip: number;
|
|
192
|
+
op: number;
|
|
193
|
+
st: number;
|
|
194
|
+
sr?: number;
|
|
195
|
+
ks: Transform;
|
|
196
|
+
shapes?: ShapeItem[];
|
|
197
|
+
refId?: string;
|
|
198
|
+
w?: number;
|
|
199
|
+
h?: number;
|
|
200
|
+
sc?: string;
|
|
201
|
+
sw?: number;
|
|
202
|
+
sh?: number;
|
|
203
|
+
masksProperties?: MaskProperty[];
|
|
204
|
+
tt?: number;
|
|
205
|
+
td?: number;
|
|
206
|
+
bm?: number;
|
|
207
|
+
hd?: boolean;
|
|
208
|
+
ao?: number;
|
|
209
|
+
tm?: AnimatedProperty;
|
|
210
|
+
}
|
|
211
|
+
interface LottieAsset {
|
|
212
|
+
id: string;
|
|
213
|
+
layers?: LottieLayer[];
|
|
214
|
+
w?: number;
|
|
215
|
+
h?: number;
|
|
216
|
+
u?: string;
|
|
217
|
+
p?: string;
|
|
218
|
+
e?: number;
|
|
219
|
+
}
|
|
220
|
+
interface LottieAnimation {
|
|
221
|
+
v: string;
|
|
222
|
+
fr: number;
|
|
223
|
+
ip: number;
|
|
224
|
+
op: number;
|
|
225
|
+
w: number;
|
|
226
|
+
h: number;
|
|
227
|
+
nm?: string;
|
|
228
|
+
ddd?: number;
|
|
229
|
+
assets?: LottieAsset[];
|
|
230
|
+
layers: LottieLayer[];
|
|
231
|
+
markers?: Array<{
|
|
232
|
+
tm: number;
|
|
233
|
+
cm: string;
|
|
234
|
+
dr: number;
|
|
235
|
+
}>;
|
|
236
|
+
tgs?: number;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
type PlayerState = "loading" | "playing" | "paused" | "stopped" | "frozen" | "error" | "destroyed";
|
|
240
|
+
type PlayMode = "normal" | "bounce";
|
|
241
|
+
interface PlayerEventMap {
|
|
242
|
+
ready: void;
|
|
243
|
+
play: void;
|
|
244
|
+
pause: void;
|
|
245
|
+
stop: void;
|
|
246
|
+
complete: void;
|
|
247
|
+
loop: void;
|
|
248
|
+
frame: {
|
|
249
|
+
frame: number;
|
|
250
|
+
progress: number;
|
|
251
|
+
};
|
|
252
|
+
error: {
|
|
253
|
+
errors?: string[];
|
|
254
|
+
};
|
|
255
|
+
destroyed: void;
|
|
256
|
+
}
|
|
257
|
+
type Listener<K extends keyof PlayerEventMap> = (detail: PlayerEventMap[K]) => void;
|
|
258
|
+
interface AnimationOptions {
|
|
259
|
+
canvas: HTMLCanvasElement;
|
|
260
|
+
loop: boolean | number;
|
|
261
|
+
autoplay: boolean;
|
|
262
|
+
speed: number;
|
|
263
|
+
direction: 1 | -1;
|
|
264
|
+
mode: PlayMode;
|
|
265
|
+
segments?: [number, number];
|
|
266
|
+
}
|
|
267
|
+
declare class LottieAnimationController {
|
|
268
|
+
private doc;
|
|
269
|
+
private canvas;
|
|
270
|
+
private ctx;
|
|
271
|
+
private state;
|
|
272
|
+
private currentFrame;
|
|
273
|
+
private direction;
|
|
274
|
+
private speed;
|
|
275
|
+
private loop;
|
|
276
|
+
private mode;
|
|
277
|
+
private loopsCompleted;
|
|
278
|
+
private segment;
|
|
279
|
+
private rafHandle;
|
|
280
|
+
private lastTs;
|
|
281
|
+
private shapeScratch;
|
|
282
|
+
private listeners;
|
|
283
|
+
constructor(options: AnimationOptions);
|
|
284
|
+
on<K extends keyof PlayerEventMap>(event: K, fn: Listener<K>): () => void;
|
|
285
|
+
private emit;
|
|
286
|
+
setDocument(doc: LottieAnimation): void;
|
|
287
|
+
setError(errors?: string[]): void;
|
|
288
|
+
private getBounds;
|
|
289
|
+
resize(width: number, height: number): void;
|
|
290
|
+
setSegment(segment: [number, number] | null): void;
|
|
291
|
+
play(): void;
|
|
292
|
+
pause(): void;
|
|
293
|
+
freeze(): void;
|
|
294
|
+
unfreeze(): void;
|
|
295
|
+
stop(): void;
|
|
296
|
+
destroy(): void;
|
|
297
|
+
togglePlay(): void;
|
|
298
|
+
setSpeed(speed: number): void;
|
|
299
|
+
setDirection(direction: 1 | -1): void;
|
|
300
|
+
setLoop(loop: boolean | number): void;
|
|
301
|
+
setMode(mode: PlayMode): void;
|
|
302
|
+
getCurrentFrame(): number;
|
|
303
|
+
getState(): PlayerState;
|
|
304
|
+
getTotalFrames(): number;
|
|
305
|
+
seek(value: number | string): void;
|
|
306
|
+
private startLoop;
|
|
307
|
+
private stopLoop;
|
|
308
|
+
private advance;
|
|
309
|
+
private finishPlayback;
|
|
310
|
+
private emitFrameEvent;
|
|
311
|
+
private getShapeScratch;
|
|
312
|
+
private renderCurrentFrame;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
type TgsSource = string | ArrayBuffer | Uint8Array | LottieAnimation | Record<string, unknown>;
|
|
316
|
+
declare function loadTgsSource(src: TgsSource): Promise<LottieAnimation>;
|
|
317
|
+
|
|
318
|
+
interface AnimationPlayerHandle {
|
|
319
|
+
play(): void;
|
|
320
|
+
pause(): void;
|
|
321
|
+
stop(): void;
|
|
322
|
+
togglePlay(): void;
|
|
323
|
+
seek(value: number | string): void;
|
|
324
|
+
setSpeed(speed: number): void;
|
|
325
|
+
setDirection(direction: 1 | -1): void;
|
|
326
|
+
setLoop(loop: boolean | number): void;
|
|
327
|
+
setMode(mode: PlayMode): void;
|
|
328
|
+
setSegment(segment: [number, number] | null): void;
|
|
329
|
+
getCurrentFrame(): number;
|
|
330
|
+
getTotalFrames(): number;
|
|
331
|
+
getState(): PlayerState;
|
|
332
|
+
getAnimationData(): LottieAnimation | null;
|
|
333
|
+
getCanvas(): HTMLCanvasElement | null;
|
|
334
|
+
}
|
|
335
|
+
interface AnimationPlayerBaseProps {
|
|
336
|
+
src: TgsSource;
|
|
337
|
+
autoplay?: boolean;
|
|
338
|
+
loop?: boolean | number;
|
|
339
|
+
speed?: number;
|
|
340
|
+
direction?: 1 | -1;
|
|
341
|
+
mode?: PlayMode;
|
|
342
|
+
segments?: [number, number];
|
|
343
|
+
hover?: boolean;
|
|
344
|
+
pauseWhenOffscreen?: boolean;
|
|
345
|
+
width?: number | string;
|
|
346
|
+
height?: number | string;
|
|
347
|
+
className?: string;
|
|
348
|
+
style?: React.CSSProperties;
|
|
349
|
+
ariaLabel?: string;
|
|
350
|
+
onReady?: () => void;
|
|
351
|
+
onPlay?: () => void;
|
|
352
|
+
onPause?: () => void;
|
|
353
|
+
onStop?: () => void;
|
|
354
|
+
onComplete?: () => void;
|
|
355
|
+
onLoop?: () => void;
|
|
356
|
+
onFrame?: (info: {
|
|
357
|
+
frame: number;
|
|
358
|
+
progress: number;
|
|
359
|
+
}) => void;
|
|
360
|
+
onError?: (errors?: string[]) => void;
|
|
361
|
+
validate?: (doc: LottieAnimation) => string[];
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
interface EngineImageCache {
|
|
365
|
+
get(key: string): HTMLImageElement | undefined;
|
|
366
|
+
set(key: string, img: HTMLImageElement): void;
|
|
367
|
+
}
|
|
368
|
+
interface RenderOptions {
|
|
369
|
+
ctx: CanvasRenderingContext2D;
|
|
370
|
+
canvasWidth: number;
|
|
371
|
+
canvasHeight: number;
|
|
372
|
+
imageCache: EngineImageCache;
|
|
373
|
+
onAssetLoaded?: () => void;
|
|
374
|
+
warnOnce: (key: string, message: string) => void;
|
|
375
|
+
getShapeScratch?: (w: number, h: number) => {
|
|
376
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
377
|
+
ctx: CanvasRenderingContext2D;
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
declare function renderDocumentFrame(doc: LottieAnimation, frame: number, opts: RenderOptions): void;
|
|
381
|
+
|
|
382
|
+
export { type AnimationPlayerBaseProps as A, type LottieAnimation as L, type PlayMode as P, type TgsSource as T, LottieAnimationController as a, type PlayerState as b, type AnimationPlayerHandle as c, loadTgsSource as l, renderDocumentFrame as r };
|