@inspirer-dev/crm-dashboard 1.0.85 → 1.0.86

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.
@@ -1,304 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const React = require("react");
5
- const designSystem = require("@strapi/design-system");
6
- const icons = require("@strapi/icons");
7
- const styledComponents = require("styled-components");
8
- const TRIGGER_PARAMS = [
9
- {
10
- key: "delaySeconds",
11
- label: "Задержка",
12
- description: "Задержка перед показом после срабатывания триггера",
13
- unit: "сек",
14
- min: 0,
15
- placeholder: "7",
16
- stageTypes: ["side_hint", "modal", "retry"]
17
- },
18
- {
19
- key: "timeOnSiteSeconds",
20
- label: "Время на сайте",
21
- description: "Мин. время на сайте для срабатывания",
22
- unit: "сек",
23
- min: 0,
24
- placeholder: "120",
25
- stageTypes: ["exit_intent", "side_hint", "modal"]
26
- },
27
- {
28
- key: "scrollThresholdPx",
29
- label: "Порог скролла",
30
- description: "Скролл в пикселях для срабатывания",
31
- unit: "px",
32
- min: 0,
33
- placeholder: "200",
34
- stageTypes: ["side_hint"]
35
- },
36
- {
37
- key: "idleSeconds",
38
- label: "Бездействие",
39
- description: "Время без кликов/скролла",
40
- unit: "сек",
41
- min: 0,
42
- placeholder: "15",
43
- stageTypes: ["side_hint"]
44
- },
45
- {
46
- key: "caseViewSeconds",
47
- label: "Просмотр кейса",
48
- description: "Время на странице кейса",
49
- unit: "сек",
50
- min: 0,
51
- placeholder: "12",
52
- stageTypes: ["modal", "side_hint"]
53
- },
54
- {
55
- key: "activePlayMinutes",
56
- label: "Активная игра",
57
- description: "Время активной игры",
58
- unit: "мин",
59
- min: 0,
60
- placeholder: "10",
61
- stageTypes: ["modal"]
62
- },
63
- {
64
- key: "actionCountThreshold",
65
- label: "Порог действий",
66
- description: "Кол-во значимых действий + низкий баланс",
67
- unit: "",
68
- min: 0,
69
- placeholder: "2",
70
- stageTypes: ["modal"]
71
- },
72
- {
73
- key: "balanceThresholdMultiplier",
74
- label: "Множитель баланса",
75
- description: 'Множитель мин. цены кейса для "низкого баланса"',
76
- unit: "×",
77
- min: 0,
78
- placeholder: "1.5",
79
- stageTypes: ["modal", "side_hint"]
80
- },
81
- {
82
- key: "abandonedTimeoutMinutes",
83
- label: "Таймаут заброшенного депозита",
84
- description: "Через сколько минут депозит считается заброшенным",
85
- unit: "мин",
86
- min: 1,
87
- placeholder: "10",
88
- stageTypes: ["retry"]
89
- },
90
- {
91
- key: "minDepositAmount",
92
- label: "Мин. сумма депозита",
93
- description: "Подстановка в {{min_deposit}} в текстах",
94
- unit: "₽",
95
- min: 0,
96
- placeholder: "250",
97
- stageTypes: ["modal", "side_hint", "retry"]
98
- }
99
- ];
100
- const STAGE_TYPE_LABELS = {
101
- side_hint: "Side-hint",
102
- modal: "Modal",
103
- exit_intent: "Exit intent",
104
- retry: "Retry"
105
- };
106
- const parseValue = (value) => {
107
- if (!value) return {};
108
- if (typeof value === "object" && !Array.isArray(value)) return value;
109
- if (typeof value === "string") {
110
- try {
111
- const parsed = JSON.parse(value);
112
- if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) return parsed;
113
- } catch {
114
- }
115
- }
116
- return {};
117
- };
118
- const serialize = (params) => {
119
- const out = {};
120
- for (const [key, val] of Object.entries(params)) {
121
- if (typeof val === "number") out[key] = val;
122
- }
123
- return JSON.stringify(out);
124
- };
125
- const useThemeColors = () => {
126
- const theme = styledComponents.useTheme();
127
- const isDark = theme?.colors?.neutral0 === "#212134";
128
- return React.useMemo(
129
- () => ({
130
- isDark,
131
- emptyBorder: isDark ? "#32324d" : "#dcdce4",
132
- cardBorder: isDark ? "#32324d" : "#eaeaef",
133
- tagBg: isDark ? "#2d2d4a" : "#f0f0ff"
134
- }),
135
- [isDark]
136
- );
137
- };
138
- const TriggerParamsField = React.forwardRef(
139
- ({ name, value, onChange, intlLabel, disabled, error, required, hint }, ref) => {
140
- const initialRef = React.useRef(value);
141
- const [params, setParams] = React.useState(() => parseValue(initialRef.current));
142
- const colors = useThemeColors();
143
- const update = (next) => {
144
- setParams(next);
145
- onChange({ target: { name, value: serialize(next) } });
146
- };
147
- const activeKeys = Object.keys(params);
148
- const availableParams = TRIGGER_PARAMS.filter((p) => !activeKeys.includes(p.key));
149
- const addParam = (key) => {
150
- const def = TRIGGER_PARAMS.find((p) => p.key === key);
151
- if (!def) return;
152
- update({ ...params, [key]: null });
153
- };
154
- const removeParam = (key) => {
155
- const next = { ...params };
156
- delete next[key];
157
- update(next);
158
- };
159
- const setParamValue = (key, val) => {
160
- update({ ...params, [key]: val ?? null });
161
- };
162
- const getParamDef = (key) => TRIGGER_PARAMS.find((p) => p.key === key);
163
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { name, error, required, hint, ref, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 3, children: [
164
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "space-between", alignItems: "center", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
165
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: intlLabel?.defaultMessage || "Trigger Params" }),
166
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", textColor: "neutral500", children: "Настройте параметры срабатывания для этого этапа" })
167
- ] }) }),
168
- activeKeys.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
169
- designSystem.Box,
170
- {
171
- padding: 5,
172
- background: "neutral100",
173
- hasRadius: true,
174
- style: {
175
- border: `2px dashed ${colors.emptyBorder}`,
176
- textAlign: "center"
177
- },
178
- children: [
179
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", textColor: "neutral500", children: "Параметры не настроены" }),
180
- /* @__PURE__ */ jsxRuntime.jsx(
181
- designSystem.Typography,
182
- {
183
- variant: "pi",
184
- textColor: "neutral400",
185
- style: { display: "block", marginTop: 4 },
186
- children: "Добавьте параметры триггера, чтобы управлять условиями показа этапа"
187
- }
188
- )
189
- ]
190
- }
191
- ) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", gap: 2, children: activeKeys.map((key) => {
192
- const def = getParamDef(key);
193
- if (!def) return null;
194
- return /* @__PURE__ */ jsxRuntime.jsx(
195
- designSystem.Card,
196
- {
197
- background: "neutral0",
198
- style: {
199
- border: `1px solid ${colors.cardBorder}`
200
- },
201
- children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 3, alignItems: "center", padding: 3, children: [
202
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { style: { flex: 1, minWidth: 0 }, children: [
203
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "center", marginBottom: 1, children: [
204
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", fontWeight: "semiBold", children: def.label }),
205
- def.unit && /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "pi", textColor: "neutral500", children: [
206
- "(",
207
- def.unit,
208
- ")"
209
- ] })
210
- ] }),
211
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", textColor: "neutral500", children: def.description }),
212
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { gap: 1, marginTop: 1, wrap: "wrap", children: def.stageTypes.map((st) => /* @__PURE__ */ jsxRuntime.jsx(
213
- designSystem.Box,
214
- {
215
- style: {
216
- padding: "1px 6px",
217
- borderRadius: "4px",
218
- backgroundColor: colors.tagBg,
219
- fontSize: "11px"
220
- },
221
- children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", textColor: "primary600", children: STAGE_TYPE_LABELS[st] || st })
222
- },
223
- st
224
- )) })
225
- ] }),
226
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: { width: 120, flexShrink: 0 }, children: /* @__PURE__ */ jsxRuntime.jsx(
227
- designSystem.NumberInput,
228
- {
229
- placeholder: def.placeholder,
230
- value: params[key] ?? "",
231
- onValueChange: (val) => setParamValue(key, val),
232
- disabled,
233
- size: "S",
234
- step: key === "balanceThresholdMultiplier" ? 0.1 : 1
235
- }
236
- ) }),
237
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { label: "Удалить параметр", children: /* @__PURE__ */ jsxRuntime.jsx(
238
- designSystem.IconButton,
239
- {
240
- onClick: () => removeParam(key),
241
- label: "Delete",
242
- variant: "ghost",
243
- size: "S",
244
- disabled,
245
- style: { color: "#d02b20", flexShrink: 0 },
246
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, { width: 16, height: 16 })
247
- }
248
- ) })
249
- ] }) })
250
- },
251
- key
252
- );
253
- }) }),
254
- availableParams.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
255
- AddParamSelect,
256
- {
257
- available: availableParams,
258
- onAdd: addParam,
259
- disabled
260
- }
261
- ),
262
- error && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {}),
263
- hint && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
264
- ] }) });
265
- }
266
- );
267
- TriggerParamsField.displayName = "TriggerParamsField";
268
- const AddParamSelect = ({ available, onAdd, disabled }) => {
269
- const [selected, setSelected] = React.useState(null);
270
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, alignItems: "flex-end", children: [
271
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { style: { flex: 1 }, children: /* @__PURE__ */ jsxRuntime.jsx(
272
- designSystem.SingleSelect,
273
- {
274
- placeholder: "Выберите параметр...",
275
- value: selected,
276
- onChange: (val) => setSelected(val),
277
- disabled,
278
- size: "S",
279
- children: available.map((p) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.SingleSelectOption, { value: p.key, children: [
280
- p.label,
281
- " — ",
282
- p.description
283
- ] }, p.key))
284
- }
285
- ) }),
286
- /* @__PURE__ */ jsxRuntime.jsx(
287
- designSystem.Button,
288
- {
289
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Plus, {}),
290
- onClick: () => {
291
- if (selected) {
292
- onAdd(selected);
293
- setSelected(null);
294
- }
295
- },
296
- disabled: disabled || !selected,
297
- variant: "secondary",
298
- size: "S",
299
- children: "Добавить"
300
- }
301
- )
302
- ] });
303
- };
304
- exports.default = TriggerParamsField;
@@ -1,304 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useRef, useState, useMemo } from "react";
3
- import { Field, Flex, Box, Typography, Card, CardContent, NumberInput, Tooltip, IconButton, SingleSelect, SingleSelectOption, Button } from "@strapi/design-system";
4
- import { Trash, Plus } from "@strapi/icons";
5
- import { useTheme } from "styled-components";
6
- const TRIGGER_PARAMS = [
7
- {
8
- key: "delaySeconds",
9
- label: "Задержка",
10
- description: "Задержка перед показом после срабатывания триггера",
11
- unit: "сек",
12
- min: 0,
13
- placeholder: "7",
14
- stageTypes: ["side_hint", "modal", "retry"]
15
- },
16
- {
17
- key: "timeOnSiteSeconds",
18
- label: "Время на сайте",
19
- description: "Мин. время на сайте для срабатывания",
20
- unit: "сек",
21
- min: 0,
22
- placeholder: "120",
23
- stageTypes: ["exit_intent", "side_hint", "modal"]
24
- },
25
- {
26
- key: "scrollThresholdPx",
27
- label: "Порог скролла",
28
- description: "Скролл в пикселях для срабатывания",
29
- unit: "px",
30
- min: 0,
31
- placeholder: "200",
32
- stageTypes: ["side_hint"]
33
- },
34
- {
35
- key: "idleSeconds",
36
- label: "Бездействие",
37
- description: "Время без кликов/скролла",
38
- unit: "сек",
39
- min: 0,
40
- placeholder: "15",
41
- stageTypes: ["side_hint"]
42
- },
43
- {
44
- key: "caseViewSeconds",
45
- label: "Просмотр кейса",
46
- description: "Время на странице кейса",
47
- unit: "сек",
48
- min: 0,
49
- placeholder: "12",
50
- stageTypes: ["modal", "side_hint"]
51
- },
52
- {
53
- key: "activePlayMinutes",
54
- label: "Активная игра",
55
- description: "Время активной игры",
56
- unit: "мин",
57
- min: 0,
58
- placeholder: "10",
59
- stageTypes: ["modal"]
60
- },
61
- {
62
- key: "actionCountThreshold",
63
- label: "Порог действий",
64
- description: "Кол-во значимых действий + низкий баланс",
65
- unit: "",
66
- min: 0,
67
- placeholder: "2",
68
- stageTypes: ["modal"]
69
- },
70
- {
71
- key: "balanceThresholdMultiplier",
72
- label: "Множитель баланса",
73
- description: 'Множитель мин. цены кейса для "низкого баланса"',
74
- unit: "×",
75
- min: 0,
76
- placeholder: "1.5",
77
- stageTypes: ["modal", "side_hint"]
78
- },
79
- {
80
- key: "abandonedTimeoutMinutes",
81
- label: "Таймаут заброшенного депозита",
82
- description: "Через сколько минут депозит считается заброшенным",
83
- unit: "мин",
84
- min: 1,
85
- placeholder: "10",
86
- stageTypes: ["retry"]
87
- },
88
- {
89
- key: "minDepositAmount",
90
- label: "Мин. сумма депозита",
91
- description: "Подстановка в {{min_deposit}} в текстах",
92
- unit: "₽",
93
- min: 0,
94
- placeholder: "250",
95
- stageTypes: ["modal", "side_hint", "retry"]
96
- }
97
- ];
98
- const STAGE_TYPE_LABELS = {
99
- side_hint: "Side-hint",
100
- modal: "Modal",
101
- exit_intent: "Exit intent",
102
- retry: "Retry"
103
- };
104
- const parseValue = (value) => {
105
- if (!value) return {};
106
- if (typeof value === "object" && !Array.isArray(value)) return value;
107
- if (typeof value === "string") {
108
- try {
109
- const parsed = JSON.parse(value);
110
- if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) return parsed;
111
- } catch {
112
- }
113
- }
114
- return {};
115
- };
116
- const serialize = (params) => {
117
- const out = {};
118
- for (const [key, val] of Object.entries(params)) {
119
- if (typeof val === "number") out[key] = val;
120
- }
121
- return JSON.stringify(out);
122
- };
123
- const useThemeColors = () => {
124
- const theme = useTheme();
125
- const isDark = theme?.colors?.neutral0 === "#212134";
126
- return useMemo(
127
- () => ({
128
- isDark,
129
- emptyBorder: isDark ? "#32324d" : "#dcdce4",
130
- cardBorder: isDark ? "#32324d" : "#eaeaef",
131
- tagBg: isDark ? "#2d2d4a" : "#f0f0ff"
132
- }),
133
- [isDark]
134
- );
135
- };
136
- const TriggerParamsField = forwardRef(
137
- ({ name, value, onChange, intlLabel, disabled, error, required, hint }, ref) => {
138
- const initialRef = useRef(value);
139
- const [params, setParams] = useState(() => parseValue(initialRef.current));
140
- const colors = useThemeColors();
141
- const update = (next) => {
142
- setParams(next);
143
- onChange({ target: { name, value: serialize(next) } });
144
- };
145
- const activeKeys = Object.keys(params);
146
- const availableParams = TRIGGER_PARAMS.filter((p) => !activeKeys.includes(p.key));
147
- const addParam = (key) => {
148
- const def = TRIGGER_PARAMS.find((p) => p.key === key);
149
- if (!def) return;
150
- update({ ...params, [key]: null });
151
- };
152
- const removeParam = (key) => {
153
- const next = { ...params };
154
- delete next[key];
155
- update(next);
156
- };
157
- const setParamValue = (key, val) => {
158
- update({ ...params, [key]: val ?? null });
159
- };
160
- const getParamDef = (key) => TRIGGER_PARAMS.find((p) => p.key === key);
161
- return /* @__PURE__ */ jsx(Field.Root, { name, error, required, hint, ref, children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 3, children: [
162
- /* @__PURE__ */ jsx(Flex, { justifyContent: "space-between", alignItems: "center", children: /* @__PURE__ */ jsxs(Box, { children: [
163
- /* @__PURE__ */ jsx(Field.Label, { children: intlLabel?.defaultMessage || "Trigger Params" }),
164
- /* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "neutral500", children: "Настройте параметры срабатывания для этого этапа" })
165
- ] }) }),
166
- activeKeys.length === 0 ? /* @__PURE__ */ jsxs(
167
- Box,
168
- {
169
- padding: 5,
170
- background: "neutral100",
171
- hasRadius: true,
172
- style: {
173
- border: `2px dashed ${colors.emptyBorder}`,
174
- textAlign: "center"
175
- },
176
- children: [
177
- /* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "neutral500", children: "Параметры не настроены" }),
178
- /* @__PURE__ */ jsx(
179
- Typography,
180
- {
181
- variant: "pi",
182
- textColor: "neutral400",
183
- style: { display: "block", marginTop: 4 },
184
- children: "Добавьте параметры триггера, чтобы управлять условиями показа этапа"
185
- }
186
- )
187
- ]
188
- }
189
- ) : /* @__PURE__ */ jsx(Flex, { direction: "column", gap: 2, children: activeKeys.map((key) => {
190
- const def = getParamDef(key);
191
- if (!def) return null;
192
- return /* @__PURE__ */ jsx(
193
- Card,
194
- {
195
- background: "neutral0",
196
- style: {
197
- border: `1px solid ${colors.cardBorder}`
198
- },
199
- children: /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(Flex, { gap: 3, alignItems: "center", padding: 3, children: [
200
- /* @__PURE__ */ jsxs(Box, { style: { flex: 1, minWidth: 0 }, children: [
201
- /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "center", marginBottom: 1, children: [
202
- /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "semiBold", children: def.label }),
203
- def.unit && /* @__PURE__ */ jsxs(Typography, { variant: "pi", textColor: "neutral500", children: [
204
- "(",
205
- def.unit,
206
- ")"
207
- ] })
208
- ] }),
209
- /* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "neutral500", children: def.description }),
210
- /* @__PURE__ */ jsx(Flex, { gap: 1, marginTop: 1, wrap: "wrap", children: def.stageTypes.map((st) => /* @__PURE__ */ jsx(
211
- Box,
212
- {
213
- style: {
214
- padding: "1px 6px",
215
- borderRadius: "4px",
216
- backgroundColor: colors.tagBg,
217
- fontSize: "11px"
218
- },
219
- children: /* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "primary600", children: STAGE_TYPE_LABELS[st] || st })
220
- },
221
- st
222
- )) })
223
- ] }),
224
- /* @__PURE__ */ jsx(Box, { style: { width: 120, flexShrink: 0 }, children: /* @__PURE__ */ jsx(
225
- NumberInput,
226
- {
227
- placeholder: def.placeholder,
228
- value: params[key] ?? "",
229
- onValueChange: (val) => setParamValue(key, val),
230
- disabled,
231
- size: "S",
232
- step: key === "balanceThresholdMultiplier" ? 0.1 : 1
233
- }
234
- ) }),
235
- /* @__PURE__ */ jsx(Tooltip, { label: "Удалить параметр", children: /* @__PURE__ */ jsx(
236
- IconButton,
237
- {
238
- onClick: () => removeParam(key),
239
- label: "Delete",
240
- variant: "ghost",
241
- size: "S",
242
- disabled,
243
- style: { color: "#d02b20", flexShrink: 0 },
244
- children: /* @__PURE__ */ jsx(Trash, { width: 16, height: 16 })
245
- }
246
- ) })
247
- ] }) })
248
- },
249
- key
250
- );
251
- }) }),
252
- availableParams.length > 0 && /* @__PURE__ */ jsx(
253
- AddParamSelect,
254
- {
255
- available: availableParams,
256
- onAdd: addParam,
257
- disabled
258
- }
259
- ),
260
- error && /* @__PURE__ */ jsx(Field.Error, {}),
261
- hint && /* @__PURE__ */ jsx(Field.Hint, {})
262
- ] }) });
263
- }
264
- );
265
- TriggerParamsField.displayName = "TriggerParamsField";
266
- const AddParamSelect = ({ available, onAdd, disabled }) => {
267
- const [selected, setSelected] = useState(null);
268
- return /* @__PURE__ */ jsxs(Flex, { gap: 2, alignItems: "flex-end", children: [
269
- /* @__PURE__ */ jsx(Box, { style: { flex: 1 }, children: /* @__PURE__ */ jsx(
270
- SingleSelect,
271
- {
272
- placeholder: "Выберите параметр...",
273
- value: selected,
274
- onChange: (val) => setSelected(val),
275
- disabled,
276
- size: "S",
277
- children: available.map((p) => /* @__PURE__ */ jsxs(SingleSelectOption, { value: p.key, children: [
278
- p.label,
279
- " — ",
280
- p.description
281
- ] }, p.key))
282
- }
283
- ) }),
284
- /* @__PURE__ */ jsx(
285
- Button,
286
- {
287
- startIcon: /* @__PURE__ */ jsx(Plus, {}),
288
- onClick: () => {
289
- if (selected) {
290
- onAdd(selected);
291
- setSelected(null);
292
- }
293
- },
294
- disabled: disabled || !selected,
295
- variant: "secondary",
296
- size: "S",
297
- children: "Добавить"
298
- }
299
- )
300
- ] });
301
- };
302
- export {
303
- TriggerParamsField as default
304
- };