@knime/hub-features 1.30.0 → 1.31.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.
@@ -935,6 +935,29 @@ export const hintClosed = <T extends DefaultContext>(ctx: T) => (eventData: Even
935
935
  return event;
936
936
  };
937
937
 
938
+ /**
939
+ * Fired when the user clicks Apply and Execute in the node configuration panel
940
+ */
941
+ export const applyAndExecuteNodeConfig = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"applyAndExecuteNodeConfig">): AnalyticsEvent => {
942
+ const staticData = {
943
+ ...toSnakeCaseDeep(ctx),
944
+ unique_event_id: crypto.randomUUID(),
945
+ timestamp: new Date().toISOString(),
946
+ event_name: "node_configuration_applied_and_executed",
947
+ event_source: "editor",
948
+ event_display_name: "Node configuration applied and executed",
949
+ interaction: {
950
+ location: "node_configuration",
951
+ trigger: "user",
952
+ type: "click",
953
+ },
954
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
955
+
956
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
957
+
958
+ return event;
959
+ };
960
+
938
961
  export const configurationCompletedApply = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"configurationCompletedApply">): AnalyticsEvent => {
939
962
  const staticData = {
940
963
  ...toSnakeCaseDeep(ctx),
@@ -1140,3 +1163,731 @@ export const nodeConfigFeedbackSubmitted = <T extends DefaultContext>(ctx: T) =>
1140
1163
  return event;
1141
1164
  };
1142
1165
 
1166
+ /**
1167
+ * Fired when the user executes all nodes via the context menu
1168
+ */
1169
+ export const executeAllNodesCtxMenu = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1170
+ const staticData = {
1171
+ ...toSnakeCaseDeep(ctx),
1172
+ unique_event_id: crypto.randomUUID(),
1173
+ timestamp: new Date().toISOString(),
1174
+ event_name: "all_nodes_executed",
1175
+ event_source: "editor",
1176
+ event_display_name: "All Nodes Executed",
1177
+ interaction: {
1178
+ location: "canvas",
1179
+ trigger: "user",
1180
+ type: "click",
1181
+ ui_element: "context_menu",
1182
+ },
1183
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1184
+
1185
+ const event = { id: staticData.event_name, data: { ...staticData } };
1186
+
1187
+ return event;
1188
+ };
1189
+
1190
+ /**
1191
+ * Fired when the user executes all nodes via the keyboard shortcut
1192
+ */
1193
+ export const executeAllNodesKeyboard = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1194
+ const staticData = {
1195
+ ...toSnakeCaseDeep(ctx),
1196
+ unique_event_id: crypto.randomUUID(),
1197
+ timestamp: new Date().toISOString(),
1198
+ event_name: "all_nodes_executed",
1199
+ event_source: "editor",
1200
+ event_display_name: "All Nodes Executed",
1201
+ interaction: {
1202
+ location: "global",
1203
+ trigger: "user",
1204
+ type: "shortcut",
1205
+ },
1206
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1207
+
1208
+ const event = { id: staticData.event_name, data: { ...staticData } };
1209
+
1210
+ return event;
1211
+ };
1212
+
1213
+ /**
1214
+ * Fired when the user executes all nodes via the workflow toolbar
1215
+ */
1216
+ export const executeAllNodesToolbar = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1217
+ const staticData = {
1218
+ ...toSnakeCaseDeep(ctx),
1219
+ unique_event_id: crypto.randomUUID(),
1220
+ timestamp: new Date().toISOString(),
1221
+ event_name: "all_nodes_executed",
1222
+ event_source: "editor",
1223
+ event_display_name: "All Nodes Executed",
1224
+ interaction: {
1225
+ location: "workflow_toolbar",
1226
+ trigger: "user",
1227
+ type: "click",
1228
+ },
1229
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1230
+
1231
+ const event = { id: staticData.event_name, data: { ...staticData } };
1232
+
1233
+ return event;
1234
+ };
1235
+
1236
+ /**
1237
+ * Fired when the user executes a selection of nodes via the context menu
1238
+ */
1239
+ export const executeSelectedNodesCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"executeSelectedNodesCtxMenu">): AnalyticsEvent => {
1240
+ const staticData = {
1241
+ ...toSnakeCaseDeep(ctx),
1242
+ unique_event_id: crypto.randomUUID(),
1243
+ timestamp: new Date().toISOString(),
1244
+ event_name: "nodes_executed",
1245
+ event_source: "editor",
1246
+ event_display_name: "Nodes Executed",
1247
+ interaction: {
1248
+ location: "canvas",
1249
+ trigger: "user",
1250
+ type: "click",
1251
+ ui_element: "context_menu",
1252
+ },
1253
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1254
+
1255
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1256
+
1257
+ return event;
1258
+ };
1259
+
1260
+ /**
1261
+ * Fired when the user executes a selection of nodes via the keyboard shortcut
1262
+ */
1263
+ export const executeSelectedNodesKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"executeSelectedNodesKeyboard">): AnalyticsEvent => {
1264
+ const staticData = {
1265
+ ...toSnakeCaseDeep(ctx),
1266
+ unique_event_id: crypto.randomUUID(),
1267
+ timestamp: new Date().toISOString(),
1268
+ event_name: "nodes_executed",
1269
+ event_source: "editor",
1270
+ event_display_name: "Nodes Executed",
1271
+ interaction: {
1272
+ location: "global",
1273
+ trigger: "user",
1274
+ type: "shortcut",
1275
+ },
1276
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1277
+
1278
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1279
+
1280
+ return event;
1281
+ };
1282
+
1283
+ /**
1284
+ * Fired when the user executes a selection of nodes via the workflow toolbar
1285
+ */
1286
+ export const executeSelectedNodesToolbar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"executeSelectedNodesToolbar">): AnalyticsEvent => {
1287
+ const staticData = {
1288
+ ...toSnakeCaseDeep(ctx),
1289
+ unique_event_id: crypto.randomUUID(),
1290
+ timestamp: new Date().toISOString(),
1291
+ event_name: "nodes_executed",
1292
+ event_source: "editor",
1293
+ event_display_name: "Nodes Executed",
1294
+ interaction: {
1295
+ location: "workflow_toolbar",
1296
+ trigger: "user",
1297
+ type: "click",
1298
+ },
1299
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1300
+
1301
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1302
+
1303
+ return event;
1304
+ };
1305
+
1306
+ /**
1307
+ * Fired when the user cancels all nodes via the context menu
1308
+ */
1309
+ export const cancelAllNodesCtxMenu = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1310
+ const staticData = {
1311
+ ...toSnakeCaseDeep(ctx),
1312
+ unique_event_id: crypto.randomUUID(),
1313
+ timestamp: new Date().toISOString(),
1314
+ event_name: "all_nodes_cancelled",
1315
+ event_source: "editor",
1316
+ event_display_name: "All Nodes Cancelled",
1317
+ interaction: {
1318
+ location: "canvas",
1319
+ trigger: "user",
1320
+ type: "click",
1321
+ ui_element: "context_menu",
1322
+ },
1323
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1324
+
1325
+ const event = { id: staticData.event_name, data: { ...staticData } };
1326
+
1327
+ return event;
1328
+ };
1329
+
1330
+ /**
1331
+ * Fired when the user cancels all nodes via the keyboard shortcut
1332
+ */
1333
+ export const cancelAllNodesKeyboard = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1334
+ const staticData = {
1335
+ ...toSnakeCaseDeep(ctx),
1336
+ unique_event_id: crypto.randomUUID(),
1337
+ timestamp: new Date().toISOString(),
1338
+ event_name: "all_nodes_cancelled",
1339
+ event_source: "editor",
1340
+ event_display_name: "All Nodes Cancelled",
1341
+ interaction: {
1342
+ location: "global",
1343
+ trigger: "user",
1344
+ type: "shortcut",
1345
+ },
1346
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1347
+
1348
+ const event = { id: staticData.event_name, data: { ...staticData } };
1349
+
1350
+ return event;
1351
+ };
1352
+
1353
+ /**
1354
+ * Fired when the user cancels all nodes via the workflow toolbar
1355
+ */
1356
+ export const cancelAllNodesToolbar = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1357
+ const staticData = {
1358
+ ...toSnakeCaseDeep(ctx),
1359
+ unique_event_id: crypto.randomUUID(),
1360
+ timestamp: new Date().toISOString(),
1361
+ event_name: "all_nodes_cancelled",
1362
+ event_source: "editor",
1363
+ event_display_name: "All Nodes Cancelled",
1364
+ interaction: {
1365
+ location: "workflow_toolbar",
1366
+ trigger: "user",
1367
+ type: "click",
1368
+ },
1369
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1370
+
1371
+ const event = { id: staticData.event_name, data: { ...staticData } };
1372
+
1373
+ return event;
1374
+ };
1375
+
1376
+ /**
1377
+ * Fired when the user cancels a selection of nodes via the context menu
1378
+ */
1379
+ export const cancelSelectedNodesCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"cancelSelectedNodesCtxMenu">): AnalyticsEvent => {
1380
+ const staticData = {
1381
+ ...toSnakeCaseDeep(ctx),
1382
+ unique_event_id: crypto.randomUUID(),
1383
+ timestamp: new Date().toISOString(),
1384
+ event_name: "nodes_cancelled",
1385
+ event_source: "editor",
1386
+ event_display_name: "Nodes Cancelled",
1387
+ interaction: {
1388
+ location: "canvas",
1389
+ trigger: "user",
1390
+ type: "click",
1391
+ ui_element: "context_menu",
1392
+ },
1393
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1394
+
1395
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1396
+
1397
+ return event;
1398
+ };
1399
+
1400
+ /**
1401
+ * Fired when the user cancels a selection of nodes via the keyboard shortcut
1402
+ */
1403
+ export const cancelSelectedNodesKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"cancelSelectedNodesKeyboard">): AnalyticsEvent => {
1404
+ const staticData = {
1405
+ ...toSnakeCaseDeep(ctx),
1406
+ unique_event_id: crypto.randomUUID(),
1407
+ timestamp: new Date().toISOString(),
1408
+ event_name: "nodes_cancelled",
1409
+ event_source: "editor",
1410
+ event_display_name: "Nodes Cancelled",
1411
+ interaction: {
1412
+ location: "global",
1413
+ trigger: "user",
1414
+ type: "shortcut",
1415
+ },
1416
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1417
+
1418
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1419
+
1420
+ return event;
1421
+ };
1422
+
1423
+ /**
1424
+ * Fired when the user cancels a selection of nodes via the workflow toolbar
1425
+ */
1426
+ export const cancelSelectedNodesToolbar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"cancelSelectedNodesToolbar">): AnalyticsEvent => {
1427
+ const staticData = {
1428
+ ...toSnakeCaseDeep(ctx),
1429
+ unique_event_id: crypto.randomUUID(),
1430
+ timestamp: new Date().toISOString(),
1431
+ event_name: "nodes_cancelled",
1432
+ event_source: "editor",
1433
+ event_display_name: "Nodes Cancelled",
1434
+ interaction: {
1435
+ location: "workflow_toolbar",
1436
+ trigger: "user",
1437
+ type: "click",
1438
+ },
1439
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1440
+
1441
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1442
+
1443
+ return event;
1444
+ };
1445
+
1446
+ /**
1447
+ * Fired when the user resets all nodes via the context menu
1448
+ */
1449
+ export const resetAllNodesCtxMenu = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1450
+ const staticData = {
1451
+ ...toSnakeCaseDeep(ctx),
1452
+ unique_event_id: crypto.randomUUID(),
1453
+ timestamp: new Date().toISOString(),
1454
+ event_name: "all_nodes_reset",
1455
+ event_source: "editor",
1456
+ event_display_name: "All Nodes Reset",
1457
+ interaction: {
1458
+ location: "canvas",
1459
+ trigger: "user",
1460
+ type: "click",
1461
+ ui_element: "context_menu",
1462
+ },
1463
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1464
+
1465
+ const event = { id: staticData.event_name, data: { ...staticData } };
1466
+
1467
+ return event;
1468
+ };
1469
+
1470
+ /**
1471
+ * Fired when the user resets all nodes via the keyboard shortcut
1472
+ */
1473
+ export const resetAllNodesKeyboard = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1474
+ const staticData = {
1475
+ ...toSnakeCaseDeep(ctx),
1476
+ unique_event_id: crypto.randomUUID(),
1477
+ timestamp: new Date().toISOString(),
1478
+ event_name: "all_nodes_reset",
1479
+ event_source: "editor",
1480
+ event_display_name: "All Nodes Reset",
1481
+ interaction: {
1482
+ location: "global",
1483
+ trigger: "user",
1484
+ type: "shortcut",
1485
+ },
1486
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1487
+
1488
+ const event = { id: staticData.event_name, data: { ...staticData } };
1489
+
1490
+ return event;
1491
+ };
1492
+
1493
+ /**
1494
+ * Fired when the user resets all nodes via the workflow toolbar
1495
+ */
1496
+ export const resetAllNodesToolbar = <T extends DefaultContext>(ctx: T) => (): AnalyticsEvent => {
1497
+ const staticData = {
1498
+ ...toSnakeCaseDeep(ctx),
1499
+ unique_event_id: crypto.randomUUID(),
1500
+ timestamp: new Date().toISOString(),
1501
+ event_name: "all_nodes_reset",
1502
+ event_source: "editor",
1503
+ event_display_name: "All Nodes Reset",
1504
+ interaction: {
1505
+ location: "workflow_toolbar",
1506
+ trigger: "user",
1507
+ type: "click",
1508
+ },
1509
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1510
+
1511
+ const event = { id: staticData.event_name, data: { ...staticData } };
1512
+
1513
+ return event;
1514
+ };
1515
+
1516
+ /**
1517
+ * Fired when the user resets a selection of nodes via the context menu
1518
+ */
1519
+ export const resetSelectedNodesCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"resetSelectedNodesCtxMenu">): AnalyticsEvent => {
1520
+ const staticData = {
1521
+ ...toSnakeCaseDeep(ctx),
1522
+ unique_event_id: crypto.randomUUID(),
1523
+ timestamp: new Date().toISOString(),
1524
+ event_name: "nodes_reset",
1525
+ event_source: "editor",
1526
+ event_display_name: "Nodes Reset",
1527
+ interaction: {
1528
+ location: "canvas",
1529
+ trigger: "user",
1530
+ type: "click",
1531
+ ui_element: "context_menu",
1532
+ },
1533
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1534
+
1535
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1536
+
1537
+ return event;
1538
+ };
1539
+
1540
+ /**
1541
+ * Fired when the user resets a selection of nodes via the keyboard shortcut
1542
+ */
1543
+ export const resetSelectedNodesKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"resetSelectedNodesKeyboard">): AnalyticsEvent => {
1544
+ const staticData = {
1545
+ ...toSnakeCaseDeep(ctx),
1546
+ unique_event_id: crypto.randomUUID(),
1547
+ timestamp: new Date().toISOString(),
1548
+ event_name: "nodes_reset",
1549
+ event_source: "editor",
1550
+ event_display_name: "Nodes Reset",
1551
+ interaction: {
1552
+ location: "global",
1553
+ trigger: "user",
1554
+ type: "shortcut",
1555
+ },
1556
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1557
+
1558
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1559
+
1560
+ return event;
1561
+ };
1562
+
1563
+ /**
1564
+ * Fired when the user resets a selection of nodes via the workflow toolbar
1565
+ */
1566
+ export const resetSelectedNodesToolbar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"resetSelectedNodesToolbar">): AnalyticsEvent => {
1567
+ const staticData = {
1568
+ ...toSnakeCaseDeep(ctx),
1569
+ unique_event_id: crypto.randomUUID(),
1570
+ timestamp: new Date().toISOString(),
1571
+ event_name: "nodes_reset",
1572
+ event_source: "editor",
1573
+ event_display_name: "Nodes Reset",
1574
+ interaction: {
1575
+ location: "workflow_toolbar",
1576
+ trigger: "user",
1577
+ type: "click",
1578
+ },
1579
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1580
+
1581
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1582
+
1583
+ return event;
1584
+ };
1585
+
1586
+ /**
1587
+ * Fired when the user executes a single node via the node action bar
1588
+ */
1589
+ export const executeNodeActionBar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"executeNodeActionBar">): AnalyticsEvent => {
1590
+ const staticData = {
1591
+ ...toSnakeCaseDeep(ctx),
1592
+ unique_event_id: crypto.randomUUID(),
1593
+ timestamp: new Date().toISOString(),
1594
+ event_name: "nodes_executed",
1595
+ event_source: "editor",
1596
+ event_display_name: "Nodes Executed",
1597
+ interaction: {
1598
+ location: "canvas",
1599
+ trigger: "user",
1600
+ type: "click",
1601
+ ui_element: "node_action_bar",
1602
+ },
1603
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1604
+
1605
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1606
+
1607
+ return event;
1608
+ };
1609
+
1610
+ /**
1611
+ * Fired when the user executes a single node via the workflow monitor
1612
+ */
1613
+ export const executeNodeFromMonitor = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"executeNodeFromMonitor">): AnalyticsEvent => {
1614
+ const staticData = {
1615
+ ...toSnakeCaseDeep(ctx),
1616
+ unique_event_id: crypto.randomUUID(),
1617
+ timestamp: new Date().toISOString(),
1618
+ event_name: "nodes_executed",
1619
+ event_source: "editor",
1620
+ event_display_name: "Nodes Executed",
1621
+ interaction: {
1622
+ location: "node_monitor",
1623
+ trigger: "user",
1624
+ type: "click",
1625
+ },
1626
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1627
+
1628
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1629
+
1630
+ return event;
1631
+ };
1632
+
1633
+ /**
1634
+ * Fired when the user resets a single node via the node action bar
1635
+ */
1636
+ export const resetNodeActionBar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"resetNodeActionBar">): AnalyticsEvent => {
1637
+ const staticData = {
1638
+ ...toSnakeCaseDeep(ctx),
1639
+ unique_event_id: crypto.randomUUID(),
1640
+ timestamp: new Date().toISOString(),
1641
+ event_name: "nodes_reset",
1642
+ event_source: "editor",
1643
+ event_display_name: "Nodes Reset",
1644
+ interaction: {
1645
+ location: "canvas",
1646
+ trigger: "user",
1647
+ type: "click",
1648
+ ui_element: "node_action_bar",
1649
+ },
1650
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1651
+
1652
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1653
+
1654
+ return event;
1655
+ };
1656
+
1657
+ /**
1658
+ * Fired when the user cancels execution of a single node via the node action bar
1659
+ */
1660
+ export const cancelNodeActionBar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"cancelNodeActionBar">): AnalyticsEvent => {
1661
+ const staticData = {
1662
+ ...toSnakeCaseDeep(ctx),
1663
+ unique_event_id: crypto.randomUUID(),
1664
+ timestamp: new Date().toISOString(),
1665
+ event_name: "nodes_cancelled",
1666
+ event_source: "editor",
1667
+ event_display_name: "Nodes Cancelled",
1668
+ interaction: {
1669
+ location: "canvas",
1670
+ trigger: "user",
1671
+ type: "click",
1672
+ ui_element: "node_action_bar",
1673
+ },
1674
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1675
+
1676
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1677
+
1678
+ return event;
1679
+ };
1680
+
1681
+ /**
1682
+ * Fired when the user pauses loop execution via the keyboard shortcut
1683
+ */
1684
+ export const pauseLoopExecutionKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"pauseLoopExecutionKeyboard">): AnalyticsEvent => {
1685
+ const staticData = {
1686
+ ...toSnakeCaseDeep(ctx),
1687
+ unique_event_id: crypto.randomUUID(),
1688
+ timestamp: new Date().toISOString(),
1689
+ event_name: "loop_paused",
1690
+ event_source: "editor",
1691
+ event_display_name: "Loop Paused",
1692
+ interaction: {
1693
+ location: "global",
1694
+ trigger: "user",
1695
+ type: "shortcut",
1696
+ },
1697
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1698
+
1699
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1700
+
1701
+ return event;
1702
+ };
1703
+
1704
+ /**
1705
+ * Fired when the user pauses loop execution via the node action bar
1706
+ */
1707
+ export const pauseLoopExecutionActionBar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"pauseLoopExecutionActionBar">): AnalyticsEvent => {
1708
+ const staticData = {
1709
+ ...toSnakeCaseDeep(ctx),
1710
+ unique_event_id: crypto.randomUUID(),
1711
+ timestamp: new Date().toISOString(),
1712
+ event_name: "loop_paused",
1713
+ event_source: "editor",
1714
+ event_display_name: "Loop Paused",
1715
+ interaction: {
1716
+ location: "canvas",
1717
+ trigger: "user",
1718
+ type: "click",
1719
+ ui_element: "node_action_bar",
1720
+ },
1721
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1722
+
1723
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1724
+
1725
+ return event;
1726
+ };
1727
+
1728
+ /**
1729
+ * Fired when the user resumes loop execution via the keyboard shortcut
1730
+ */
1731
+ export const resumeLoopExecutionKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"resumeLoopExecutionKeyboard">): AnalyticsEvent => {
1732
+ const staticData = {
1733
+ ...toSnakeCaseDeep(ctx),
1734
+ unique_event_id: crypto.randomUUID(),
1735
+ timestamp: new Date().toISOString(),
1736
+ event_name: "loop_resumed",
1737
+ event_source: "editor",
1738
+ event_display_name: "Loop Resumed",
1739
+ interaction: {
1740
+ location: "global",
1741
+ trigger: "user",
1742
+ type: "shortcut",
1743
+ },
1744
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1745
+
1746
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1747
+
1748
+ return event;
1749
+ };
1750
+
1751
+ /**
1752
+ * Fired when the user resumes loop execution via the node action bar
1753
+ */
1754
+ export const resumeLoopExecutionActionBar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"resumeLoopExecutionActionBar">): AnalyticsEvent => {
1755
+ const staticData = {
1756
+ ...toSnakeCaseDeep(ctx),
1757
+ unique_event_id: crypto.randomUUID(),
1758
+ timestamp: new Date().toISOString(),
1759
+ event_name: "loop_resumed",
1760
+ event_source: "editor",
1761
+ event_display_name: "Loop Resumed",
1762
+ interaction: {
1763
+ location: "canvas",
1764
+ trigger: "user",
1765
+ type: "click",
1766
+ ui_element: "node_action_bar",
1767
+ },
1768
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1769
+
1770
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1771
+
1772
+ return event;
1773
+ };
1774
+
1775
+ /**
1776
+ * Fired when the user steps through loop execution via the keyboard shortcut
1777
+ */
1778
+ export const stepLoopExecutionKeyboard = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"stepLoopExecutionKeyboard">): AnalyticsEvent => {
1779
+ const staticData = {
1780
+ ...toSnakeCaseDeep(ctx),
1781
+ unique_event_id: crypto.randomUUID(),
1782
+ timestamp: new Date().toISOString(),
1783
+ event_name: "loop_stepped",
1784
+ event_source: "editor",
1785
+ event_display_name: "Loop Stepped",
1786
+ interaction: {
1787
+ location: "global",
1788
+ trigger: "user",
1789
+ type: "shortcut",
1790
+ },
1791
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1792
+
1793
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1794
+
1795
+ return event;
1796
+ };
1797
+
1798
+ /**
1799
+ * Fired when the user steps through loop execution via the node action bar
1800
+ */
1801
+ export const stepLoopExecutionActionBar = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"stepLoopExecutionActionBar">): AnalyticsEvent => {
1802
+ const staticData = {
1803
+ ...toSnakeCaseDeep(ctx),
1804
+ unique_event_id: crypto.randomUUID(),
1805
+ timestamp: new Date().toISOString(),
1806
+ event_name: "loop_stepped",
1807
+ event_source: "editor",
1808
+ event_display_name: "Loop Stepped",
1809
+ interaction: {
1810
+ location: "canvas",
1811
+ trigger: "user",
1812
+ type: "click",
1813
+ ui_element: "node_action_bar",
1814
+ },
1815
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1816
+
1817
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1818
+
1819
+ return event;
1820
+ };
1821
+
1822
+ /**
1823
+ * Fired when the user pauses loop execution via the context menu
1824
+ */
1825
+ export const pauseLoopExecutionCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"pauseLoopExecutionCtxMenu">): AnalyticsEvent => {
1826
+ const staticData = {
1827
+ ...toSnakeCaseDeep(ctx),
1828
+ unique_event_id: crypto.randomUUID(),
1829
+ timestamp: new Date().toISOString(),
1830
+ event_name: "loop_paused",
1831
+ event_source: "editor",
1832
+ event_display_name: "Loop Paused",
1833
+ interaction: {
1834
+ location: "canvas",
1835
+ trigger: "user",
1836
+ type: "click",
1837
+ ui_element: "context_menu",
1838
+ },
1839
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1840
+
1841
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1842
+
1843
+ return event;
1844
+ };
1845
+
1846
+ /**
1847
+ * Fired when the user resumes loop execution via the context menu
1848
+ */
1849
+ export const resumeLoopExecutionCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"resumeLoopExecutionCtxMenu">): AnalyticsEvent => {
1850
+ const staticData = {
1851
+ ...toSnakeCaseDeep(ctx),
1852
+ unique_event_id: crypto.randomUUID(),
1853
+ timestamp: new Date().toISOString(),
1854
+ event_name: "loop_resumed",
1855
+ event_source: "editor",
1856
+ event_display_name: "Loop Resumed",
1857
+ interaction: {
1858
+ location: "canvas",
1859
+ trigger: "user",
1860
+ type: "click",
1861
+ ui_element: "context_menu",
1862
+ },
1863
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1864
+
1865
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1866
+
1867
+ return event;
1868
+ };
1869
+
1870
+ /**
1871
+ * Fired when the user steps through loop execution via the context menu
1872
+ */
1873
+ export const stepLoopExecutionCtxMenu = <T extends DefaultContext>(ctx: T) => (eventData: EventFunctionArgs<"stepLoopExecutionCtxMenu">): AnalyticsEvent => {
1874
+ const staticData = {
1875
+ ...toSnakeCaseDeep(ctx),
1876
+ unique_event_id: crypto.randomUUID(),
1877
+ timestamp: new Date().toISOString(),
1878
+ event_name: "loop_stepped",
1879
+ event_source: "editor",
1880
+ event_display_name: "Loop Stepped",
1881
+ interaction: {
1882
+ location: "canvas",
1883
+ trigger: "user",
1884
+ type: "click",
1885
+ ui_element: "context_menu",
1886
+ },
1887
+ } satisfies SchemaStaticFields & GeneratedStaticFields;
1888
+
1889
+ const event = { id: staticData.event_name, data: { ...staticData, payload: { ...toSnakeCaseDeep(eventData as Record<string, any>) } } };
1890
+
1891
+ return event;
1892
+ };
1893
+