n8n-editor-ui 1.69.2 → 1.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DsSSKITh.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BntMIzDT.js} +1 -1
  2. package/dist/assets/{AuthView-CjaKK4wD.js → AuthView-Dxh8QCaY.js} +1 -1
  3. package/dist/assets/{CanvasChat-CgmojiIF.js → CanvasChat-rOzwS7Vn.js} +5 -4
  4. package/dist/assets/{CanvasControls-BnaxrDfG.js → CanvasControls-Bmo04dJ7.js} +1 -1
  5. package/dist/assets/{ChangePasswordView-Awz7pSyQ.js → ChangePasswordView-BtxMhBmp.js} +2 -2
  6. package/dist/assets/CollectionParameter-B6D9F9ZW.js +4 -0
  7. package/dist/assets/{CredentialsView-17Gej-4E.js → CredentialsView-B4KE87Vi.js} +5 -5
  8. package/dist/assets/{ErrorView-BruidBTG.js → ErrorView-BIcv6TEp.js} +1 -1
  9. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-ii_x0ZKd.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-u1_TBZpo.js} +2 -2
  10. package/dist/assets/{ExecutionsView-Dju3u6ef.js → ExecutionsView-C8106X7e.js} +22 -22
  11. package/dist/assets/{ExecutionsView-DlxsqdiC.css → ExecutionsView-COFUjHqa.css} +31 -31
  12. package/dist/assets/{FileSaver.min-BrVQYnoo.js → FileSaver.min-BP27OS5o.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-Dqu_mA2o.js → FixedCollectionParameter-jU2z1mVN.js} +1 -1
  14. package/dist/assets/{ForgotMyPasswordView-Cp4QmF_H.js → ForgotMyPasswordView-BPRVyjqF.js} +2 -2
  15. package/dist/assets/{MainHeader-Bwaciykz.js → MainHeader-C5fjzcBU.js} +50 -21
  16. package/dist/assets/{MainHeader-CgL_r4xK.css → MainHeader-ucYChAeW.css} +14 -10
  17. package/dist/assets/{MainSidebar-BazHKbV7.js → MainSidebar-DDwUpW3R.js} +3 -3
  18. package/dist/assets/{NodeCreation-ePvame-B.js → NodeCreation-fYCCIvH0.js} +4 -4
  19. package/dist/assets/{NodeCreator-Cpur7Kbl.js → NodeCreator-CIH8NrPP.js} +11 -11
  20. package/dist/assets/{NodeViewSwitcher-s2TUlOvE.css → NodeViewSwitcher-KdRgfKxB.css} +70 -61
  21. package/dist/assets/{NodeViewSwitcher-CdRH7LXP.js → NodeViewSwitcher-o9O7uIC5.js} +631 -435
  22. package/dist/assets/{ProjectCardBadge-D8ubHLX_.js → ProjectCardBadge-rog20byy.js} +1 -1
  23. package/dist/assets/{ProjectHeader-eYSO6YTI.js → ProjectHeader-Ch7-0YgF.js} +2 -2
  24. package/dist/assets/{ProjectSettings-cWx0MJjr.css → ProjectSettings-CChpfrTS.css} +9 -9
  25. package/dist/assets/{ProjectSettings-9ntb2OnF.js → ProjectSettings-GsW7L_Gg.js} +7 -7
  26. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-Dren_hOA.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DVCg4pLb.js} +1 -1
  27. package/dist/assets/{ResourcesListLayout-BiBawYsn.js → ResourcesListLayout-Btn9Hay8.js} +3 -3
  28. package/dist/assets/{ResourcesListLayout-BuxiQpsj.css → ResourcesListLayout-I4rYUdFt.css} +3 -3
  29. package/dist/assets/{RunDataJson-CerASdyA.js → RunDataJson-BHIY5dHu.js} +12 -12
  30. package/dist/assets/{RunDataJsonActions-eA-SIuvZ.js → RunDataJsonActions-h2GG7hQH.js} +3 -3
  31. package/dist/assets/{RunDataSearch-BDpfiRTf.js → RunDataSearch-C-CgDL9m.js} +1 -1
  32. package/dist/assets/{RunDataTable-BfI_0919.js → RunDataTable-DX2WMhyi.js} +2 -2
  33. package/dist/assets/{SamlOnboarding-Dq7iJ-7g.js → SamlOnboarding-DAv7qRQH.js} +2 -2
  34. package/dist/assets/{SettingsApiView-WyMWubLE.js → SettingsApiView-BpT9mKIy.js} +1 -1
  35. package/dist/assets/{SettingsCommunityNodesView-CbvaPfcU.js → SettingsCommunityNodesView-C_eGce72.js} +3 -3
  36. package/dist/assets/{SettingsExternalSecrets-PXX4hiRu.js → SettingsExternalSecrets-CGbkGSxM.js} +1 -1
  37. package/dist/assets/{SettingsLdapView-CpqTw4nn.js → SettingsLdapView-w-4uJ-WO.js} +1 -1
  38. package/dist/assets/{SettingsLogStreamingView-C1I36idU.js → SettingsLogStreamingView-dIzDyxR0.js} +1 -1
  39. package/dist/assets/{SettingsPersonalView-ooDMcvbk.js → SettingsPersonalView-Cqkzewwp.js} +1 -1
  40. package/dist/assets/{SettingsSourceControl-lEmj3-Gb.js → SettingsSourceControl-DvdzOGOW.js} +1 -1
  41. package/dist/assets/{SettingsSso-CjGQZHRB.js → SettingsSso-CEyzwTf6.js} +1 -1
  42. package/dist/assets/{SettingsUsageAndPlan-4qDjGm85.js → SettingsUsageAndPlan-BfvgFmrE.js} +1 -1
  43. package/dist/assets/{SettingsUsersView-BOPIUoZ-.js → SettingsUsersView-B74JDNzE.js} +1 -1
  44. package/dist/assets/{SettingsView-BIS2ozav.js → SettingsView-BXjB3fL0.js} +1 -1
  45. package/dist/assets/{SetupView-CAtPRjWC.js → SetupView-CUYm-G9-.js} +2 -2
  46. package/dist/assets/{SetupWorkflowCredentialsButton-j83meqE9.js → SetupWorkflowCredentialsButton-ebC2FUi4.js} +1 -1
  47. package/dist/assets/{SetupWorkflowFromTemplateView-BabFdM3f.js → SetupWorkflowFromTemplateView-D9qMRkDl.js} +3 -3
  48. package/dist/assets/{SigninView-BJzONNAN.js → SigninView-DJyuz9c2.js} +2 -2
  49. package/dist/assets/{SignoutView-CDEH1tJc.js → SignoutView-C6UBxu60.js} +1 -1
  50. package/dist/assets/{SignupView-3nULDci3.js → SignupView-D2FWuaiH.js} +2 -2
  51. package/dist/assets/{TemplateDetails-BGjbXxkd.js → TemplateDetails-B2Tjk70m.js} +1 -1
  52. package/dist/assets/{TemplateList-BK1qUSb6.js → TemplateList-HMZjVMyp.js} +1 -1
  53. package/dist/assets/{TemplatesCollectionView-BTLcEbj1.js → TemplatesCollectionView-BIJyxp-d.js} +5 -5
  54. package/dist/assets/{TemplatesSearchView-CJ1ukoqm.js → TemplatesSearchView-DZ_z-833.js} +3 -3
  55. package/dist/assets/{TemplatesView-C-ive7WR.js → TemplatesView-9gF5kWu6.js} +5 -5
  56. package/dist/assets/{TemplatesView-CLyx9byp.css → TemplatesView-BfnDbKo5.css} +6 -6
  57. package/dist/assets/{TemplatesWorkflowView-Dkw5ndaV.js → TemplatesWorkflowView-BuUff8HB.js} +5 -5
  58. package/dist/assets/TestDefinitionEditView-CQZkRDBJ.js +870 -0
  59. package/dist/assets/TestDefinitionEditView-szspUG0t.css +261 -0
  60. package/dist/assets/TestDefinitionListView-BfUssieW.css +117 -0
  61. package/dist/assets/TestDefinitionListView-CjZFxgTi.js +335 -0
  62. package/dist/assets/{VariablesView-D7nKr8tT.js → VariablesView-FC5wqShX.js} +2 -2
  63. package/dist/assets/{WorkerView-CNAJ3EZX.js → WorkerView-C-nSya6I.js} +4 -4
  64. package/dist/assets/{WorkflowActivator-O9hdqbvK.js → WorkflowActivator-CHX1pfvG.js} +2 -2
  65. package/dist/assets/{WorkflowExecutionsInfoAccordion-C1G0o0wW.js → WorkflowExecutionsInfoAccordion-BXyNsJxl.js} +1 -1
  66. package/dist/assets/{WorkflowExecutionsLandingPage-BMjNIsM1.js → WorkflowExecutionsLandingPage-F1VtQsvR.js} +2 -2
  67. package/dist/assets/{WorkflowExecutionsPreview-DGxSqpjo.js → WorkflowExecutionsPreview-D0LX3heg.js} +5 -5
  68. package/dist/assets/{WorkflowExecutionsView-dJP6ReWV.js → WorkflowExecutionsView-CfNb8qea.js} +5 -5
  69. package/dist/assets/{WorkflowHistory-Zb4lcZk3.js → WorkflowHistory-BbJWHQnH.js} +3 -3
  70. package/dist/assets/{WorkflowOnboardingView-RurgeqCr.js → WorkflowOnboardingView-DjX_Iu8m.js} +1 -1
  71. package/dist/assets/{WorkflowPreview-CDuSZTC9.js → WorkflowPreview-CHIMaYHv.js} +1 -1
  72. package/dist/assets/{WorkflowsView-B2NsamHi.js → WorkflowsView-TVYSIx1a.js} +7 -7
  73. package/dist/assets/{index-DT2mIgKW.js → index-CmLVLa2S.js} +1110 -809
  74. package/dist/assets/{index-CNnUWsS4.css → index-CnXoucRo.css} +45 -34
  75. package/dist/assets/{pushConnection.store-B7eN6gh0.js → pushConnection.store-CyaZOmSq.js} +1 -1
  76. package/dist/assets/{templateActions-7xXSSXqk.js → templateActions-BJQmBPkz.js} +1 -1
  77. package/dist/assets/testDefinition.store.ee-C_33eEVx.js +138 -0
  78. package/dist/assets/{useBugReporting-CUiZq-Ox.js → useBugReporting-B6XywIQp.js} +1 -1
  79. package/dist/assets/{useExecutionDebugging-BSblqndL.js → useExecutionDebugging-3jTK_axu.js} +1 -1
  80. package/dist/assets/{useExecutionHelpers-iK-bCWM-.js → useExecutionHelpers-B2Hv6YkQ.js} +1 -1
  81. package/dist/assets/{useGlobalEntityCreation-CUHY9Dd9.js → useGlobalEntityCreation-Bs_R5VRy.js} +1 -1
  82. package/dist/assets/{useNodeViewVersionSwitcher-DkvFHFrT.js → useNodeViewVersionSwitcher-cbmuQpXh.js} +17 -11
  83. package/dist/assets/{usePushConnection-PWa1kbGu.js → usePushConnection-D2ReX4YT.js} +11 -6
  84. package/dist/assets/{useRunWorkflow-CnMmvhVX.js → useRunWorkflow-D5J5xO1e.js} +3 -3
  85. package/dist/assets/{useWorkflowActivate-BT__JYLm.js → useWorkflowActivate-Ck0ToSti.js} +1 -1
  86. package/dist/index.html +2 -2
  87. package/package.json +1 -1
  88. package/dist/assets/CollectionParameter-t3Px_gCv.js +0 -4
@@ -0,0 +1,261 @@
1
+ ._arrowConnector_1ffe6_1 {
2
+ position: relative;
3
+ height: var(--arrow-height, 3rem);
4
+ margin: 0.5rem 0;
5
+ }
6
+ ._arrowConnector_1ffe6_1::before, ._arrowConnector_1ffe6_1::after {
7
+ content: "";
8
+ position: absolute;
9
+ left: 50%;
10
+ -webkit-transform: translateX(-50%);
11
+ transform: translateX(-50%);
12
+ }
13
+ ._arrowConnector_1ffe6_1::before {
14
+ top: 0;
15
+ width: 2px;
16
+ height: calc(100% - 8px);
17
+ background-color: var(--color-text-dark);
18
+ }
19
+ ._arrowConnector_1ffe6_1::after {
20
+ bottom: 0;
21
+ width: 0;
22
+ height: 0;
23
+ border-left: 6px solid transparent;
24
+ border-right: 6px solid transparent;
25
+ border-top: 8px solid var(--color-text-dark);
26
+ }._header_1htk6_1 {
27
+ display: -webkit-box;
28
+ display: -ms-flexbox;
29
+ display: flex;
30
+ -webkit-box-align: center;
31
+ -ms-flex-align: center;
32
+ align-items: center;
33
+ gap: var(--spacing-2xs);
34
+ margin-bottom: var(--spacing-l);
35
+ }
36
+ ._header_1htk6_1:hover ._editInputButton_1htk6_7 {
37
+ opacity: 1;
38
+ }
39
+ ._title_1htk6_11 {
40
+ margin: 0;
41
+ -webkit-box-flex: 1;
42
+ -ms-flex-positive: 1;
43
+ flex-grow: 1;
44
+ font-size: var(--font-size-xl);
45
+ font-weight: var(--font-weight-bold);
46
+ color: var(--color-text-dark);
47
+ display: -webkit-box;
48
+ display: -ms-flexbox;
49
+ display: flex;
50
+ -webkit-box-align: center;
51
+ -ms-flex-align: center;
52
+ align-items: center;
53
+ max-width: 100%;
54
+ overflow: hidden;
55
+ }
56
+ ._title_1htk6_11 ._titleText_1htk6_22 {
57
+ display: block;
58
+ white-space: nowrap;
59
+ overflow: hidden;
60
+ text-overflow: ellipsis;
61
+ }
62
+ ._editInputButton_1htk6_7 {
63
+ --button-font-color: var(--prim-gray-490);
64
+ opacity: 0;
65
+ border: none;
66
+ }
67
+ ._backButton_1htk6_35 {
68
+ --button-font-color: var(--color-text-light);
69
+ border: none;
70
+ }._field_15r7v_1 {
71
+ width: 100%;
72
+ margin-top: var(--spacing-xs);
73
+ }._evaluationStep_efi3y_1 {
74
+ display: grid;
75
+ grid-template-columns: 1fr;
76
+ gap: var(--spacing-m);
77
+ background: var(--color-background-light);
78
+ padding: var(--spacing-s);
79
+ border-radius: var(--border-radius-xlarge);
80
+ -webkit-box-shadow: var(--box-shadow-base);
81
+ box-shadow: var(--box-shadow-base);
82
+ border: var(--border-base);
83
+ width: 100%;
84
+ color: var(--color-text-dark);
85
+ }
86
+ ._evaluationStep_efi3y_1._small_efi3y_13 {
87
+ width: 80%;
88
+ }
89
+ ._icon_efi3y_17 {
90
+ display: -webkit-box;
91
+ display: -ms-flexbox;
92
+ display: flex;
93
+ -webkit-box-align: center;
94
+ -ms-flex-align: center;
95
+ align-items: center;
96
+ -webkit-box-pack: center;
97
+ -ms-flex-pack: center;
98
+ justify-content: center;
99
+ border-radius: var(--border-radius-base);
100
+ overflow: hidden;
101
+ width: 2rem;
102
+ height: 2rem;
103
+ }
104
+ ._icon_efi3y_17._warning_efi3y_26 {
105
+ background-color: var(--color-warning-tint-2);
106
+ }
107
+ ._content_efi3y_30 {
108
+ display: grid;
109
+ gap: var(--spacing-2xs);
110
+ }
111
+ ._header_efi3y_35 {
112
+ display: -webkit-box;
113
+ display: -ms-flexbox;
114
+ display: flex;
115
+ gap: var(--spacing-2xs);
116
+ -webkit-box-align: center;
117
+ -ms-flex-align: center;
118
+ align-items: center;
119
+ }
120
+ ._title_efi3y_41 {
121
+ font-weight: var(--font-weight-bold);
122
+ font-size: var(--font-size-s);
123
+ line-height: 1.125rem;
124
+ }
125
+ ._warningIcon_efi3y_47 {
126
+ color: var(--color-warning);
127
+ }
128
+ ._cardContent_efi3y_51 {
129
+ font-size: var(--font-size-s);
130
+ margin-top: var(--spacing-xs);
131
+ }
132
+ ._collapseButton_efi3y_56 {
133
+ cursor: pointer;
134
+ border: none;
135
+ background: none;
136
+ padding: 0;
137
+ font-size: var(--font-size-3xs);
138
+ color: var(--color-text-base);
139
+ margin-left: auto;
140
+ text-wrap: none;
141
+ overflow: hidden;
142
+ min-width: -webkit-fit-content;
143
+ min-width: -moz-fit-content;
144
+ min-width: fit-content;
145
+ }
146
+ ._cardContentWrapper_efi3y_69 {
147
+ height: -webkit-max-content;
148
+ height: -moz-max-content;
149
+ height: max-content;
150
+ }._tagsRead_ekbvu_1:hover ._editInputButton_ekbvu_1 {
151
+ opacity: 1;
152
+ }
153
+ ._editInputButton_ekbvu_1 {
154
+ opacity: 0;
155
+ border: none;
156
+ --button-font-color: var(--prim-gray-490);
157
+ }._metricsContainer_lwkya_1 {
158
+ display: -webkit-box;
159
+ display: -ms-flexbox;
160
+ display: flex;
161
+ -webkit-box-orient: vertical;
162
+ -webkit-box-direction: normal;
163
+ -ms-flex-direction: column;
164
+ flex-direction: column;
165
+ gap: var(--spacing-xs);
166
+ }
167
+ ._metricField_lwkya_7 {
168
+ width: 100%;
169
+ margin-top: var(--spacing-xs);
170
+ }
171
+ ._metricsDivider_lwkya_12 {
172
+ margin-top: var(--spacing-4xs);
173
+ margin-bottom: var(--spacing-3xs);
174
+ }
175
+ ._newMetricButton_lwkya_17 {
176
+ -ms-flex-item-align: start;
177
+ align-self: flex-start;
178
+ margin-top: var(--spacing-2xs);
179
+ width: 100%;
180
+ background-color: var(--color-sticky-code-background);
181
+ border-color: var(--color-button-secondary-focus-outline);
182
+ color: var(--color-button-secondary-font);
183
+ }._container_1lz9n_1 {
184
+ width: 100%;
185
+ height: 100%;
186
+ padding: var(--spacing-s);
187
+ display: grid;
188
+ grid-template-columns: minmax(auto, 24rem) 1fr;
189
+ gap: var(--spacing-2xl);
190
+ }
191
+ ._content_1lz9n_10 {
192
+ min-width: 0;
193
+ width: 100%;
194
+ }
195
+ ._panelBlock_1lz9n_15 {
196
+ max-width: var(--evaluation-edit-panel-width, 24rem);
197
+ display: grid;
198
+ justify-items: end;
199
+ }
200
+ ._panelIntro_1lz9n_21 {
201
+ font-size: var(--font-size-m);
202
+ color: var(--color-text-dark);
203
+ margin-top: var(--spacing-s);
204
+ justify-self: center;
205
+ position: relative;
206
+ display: block;
207
+ }
208
+ ._step_1lz9n_30 {
209
+ position: relative;
210
+ }
211
+ ._step_1lz9n_30:not(:first-child) {
212
+ margin-top: var(--spacing-m);
213
+ }
214
+ ._introArrow_1lz9n_37 {
215
+ --arrow-height: 1.5rem;
216
+ justify-self: center;
217
+ }
218
+ ._evaluationArrows_1lz9n_42 {
219
+ --arrow-height: 11rem;
220
+ display: -webkit-box;
221
+ display: -ms-flexbox;
222
+ display: flex;
223
+ -webkit-box-pack: justify;
224
+ -ms-flex-pack: justify;
225
+ justify-content: space-between;
226
+ width: 100%;
227
+ max-width: 80%;
228
+ margin: 0 auto;
229
+ margin-bottom: -100%;
230
+ z-index: 0;
231
+ }
232
+ ._footer_1lz9n_53 {
233
+ margin-top: var(--spacing-xl);
234
+ display: -webkit-box;
235
+ display: -ms-flexbox;
236
+ display: flex;
237
+ -webkit-box-pack: start;
238
+ -ms-flex-pack: start;
239
+ justify-content: flex-start;
240
+ }
241
+ ._workflow_1lz9n_59 {
242
+ padding: var(--spacing-l);
243
+ background-color: var(--color-background-light);
244
+ border-radius: var(--border-radius-large);
245
+ border: var(--border-base);
246
+ }
247
+ ._workflowSteps_1lz9n_66 {
248
+ display: grid;
249
+ gap: var(--spacing-2xs);
250
+ max-width: 42rem;
251
+ margin: 0 auto;
252
+ }
253
+ ._sideBySide_1lz9n_73 {
254
+ display: grid;
255
+ grid-template-columns: 1fr auto 1fr;
256
+ gap: var(--spacing-2xs);
257
+ justify-items: end;
258
+ -webkit-box-align: start;
259
+ -ms-flex-align: start;
260
+ align-items: start;
261
+ }
@@ -0,0 +1,117 @@
1
+ ._container_18phz_1 {
2
+ max-width: 44rem;
3
+ margin: var(--spacing-4xl) auto 0;
4
+ gap: var(--spacing-l);
5
+ }
6
+ ._header_18phz_7 {
7
+ display: -webkit-box;
8
+ display: -ms-flexbox;
9
+ display: flex;
10
+ -webkit-box-pack: justify;
11
+ -ms-flex-pack: justify;
12
+ justify-content: space-between;
13
+ -webkit-box-align: center;
14
+ -ms-flex-align: center;
15
+ align-items: center;
16
+ color: var(--color-text-dark);
17
+ font-size: var(--font-size-l);
18
+ margin-bottom: var(--spacing-xl);
19
+ }
20
+ ._header_18phz_7 h1 {
21
+ margin: 0;
22
+ }._testItem_1lysx_1 {
23
+ display: -webkit-box;
24
+ display: -ms-flexbox;
25
+ display: flex;
26
+ -webkit-box-align: center;
27
+ -ms-flex-align: center;
28
+ align-items: center;
29
+ padding: var(--spacing-s) var(--spacing-s) var(--spacing-s) var(--spacing-xl);
30
+ border: 1px solid var(--color-foreground-base);
31
+ border-radius: var(--border-radius-base);
32
+ background-color: var(--color-background-light);
33
+ cursor: pointer;
34
+ }
35
+ ._testItem_1lysx_1:hover {
36
+ background-color: var(--color-background-base);
37
+ }
38
+ ._testInfo_1lysx_14 {
39
+ display: -webkit-box;
40
+ display: -ms-flexbox;
41
+ display: flex;
42
+ -webkit-box-flex: 1;
43
+ -ms-flex: 1;
44
+ flex: 1;
45
+ gap: var(--spacing-2xs);
46
+ }
47
+ ._testName_1lysx_20 {
48
+ display: -webkit-box;
49
+ display: -ms-flexbox;
50
+ display: flex;
51
+ -webkit-box-align: center;
52
+ -ms-flex-align: center;
53
+ align-items: center;
54
+ gap: var(--spacing-2xs);
55
+ font-weight: var(--font-weight-bold);
56
+ margin-bottom: var(--spacing-4xs);
57
+ font-size: var(--font-size-s);
58
+ }
59
+ ._testCases_1lysx_29 {
60
+ color: var(--color-text-base);
61
+ font-size: var(--font-size-2xs);
62
+ display: -webkit-box;
63
+ display: -ms-flexbox;
64
+ display: flex;
65
+ -webkit-box-align: center;
66
+ -ms-flex-align: center;
67
+ align-items: center;
68
+ gap: var(--spacing-2xs);
69
+ }
70
+ ._metrics_1lysx_37 {
71
+ display: -webkit-box;
72
+ display: -ms-flexbox;
73
+ display: flex;
74
+ gap: var(--spacing-l);
75
+ margin: 0 var(--spacing-l);
76
+ }
77
+ ._metric_1lysx_37 {
78
+ font-size: var(--font-size-2xs);
79
+ color: var(--color-text-dark);
80
+ white-space: nowrap;
81
+ }
82
+ ._actions_1lysx_49 {
83
+ display: -webkit-box;
84
+ display: -ms-flexbox;
85
+ display: flex;
86
+ gap: var(--spacing-xs);
87
+ --color-button-secondary-font: var(--color-callout-info-icon);
88
+ }._testsList_1aleg_1 {
89
+ display: -webkit-box;
90
+ display: -ms-flexbox;
91
+ display: flex;
92
+ -webkit-box-orient: vertical;
93
+ -webkit-box-direction: normal;
94
+ -ms-flex-direction: column;
95
+ flex-direction: column;
96
+ gap: var(--spacing-s);
97
+ }
98
+ ._testsHeader_1aleg_7 {
99
+ margin-bottom: var(--spacing-m);
100
+ }._container_an92i_1 {
101
+ padding: var(--spacing-xl) var(--spacing-l);
102
+ height: 100%;
103
+ width: 100%;
104
+ max-width: var(--content-container-width);
105
+ }
106
+ ._loading_an92i_8 {
107
+ display: -webkit-box;
108
+ display: -ms-flexbox;
109
+ display: flex;
110
+ -webkit-box-pack: center;
111
+ -ms-flex-pack: center;
112
+ justify-content: center;
113
+ -webkit-box-align: center;
114
+ -ms-flex-align: center;
115
+ align-items: center;
116
+ height: 200px;
117
+ }
@@ -0,0 +1,335 @@
1
+ import { d as defineComponent, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, t as toDisplayString, l as unref, n as normalizeClass, i as createVNode, g as useI18n, _ as _export_sfc, k as createTextVNode, e as createBlock, f as createCommentVNode, F as Fragment, A as renderList, w as withCtx, I as withModifiers, aY as resolveDynamicComponent, ep as _sfc_main$4, aX as mergeProps, b as useRouter, j5 as useAnnotationTagsStore, r as ref, a as useToast, q as computed, o as onMounted, V as VIEWS } from "./index-CmLVLa2S.js";
2
+ import { u as useTestDefinitionStore } from "./testDefinition.store.ee-C_33eEVx.js";
3
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4
+ __name: "EmptyState",
5
+ emits: ["create-test"],
6
+ setup(__props) {
7
+ const locale = useI18n();
8
+ return (_ctx, _cache) => {
9
+ const _component_n8n_action_box = resolveComponent("n8n-action-box");
10
+ return openBlock(), createElementBlock("div", {
11
+ class: normalizeClass(_ctx.$style.container)
12
+ }, [
13
+ createBaseVNode("div", {
14
+ class: normalizeClass(_ctx.$style.header)
15
+ }, [
16
+ createBaseVNode("h1", null, toDisplayString(unref(locale).baseText("testDefinition.list.tests")), 1)
17
+ ], 2),
18
+ createVNode(_component_n8n_action_box, {
19
+ description: unref(locale).baseText("testDefinition.list.actionDescription"),
20
+ "button-text": unref(locale).baseText("testDefinition.list.actionButton"),
21
+ "onClick:button": _cache[0] || (_cache[0] = ($event) => _ctx.$emit("create-test"))
22
+ }, null, 8, ["description", "button-text"])
23
+ ], 2);
24
+ };
25
+ }
26
+ });
27
+ const container$1 = "_container_18phz_1";
28
+ const header = "_header_18phz_7";
29
+ const style0$3 = {
30
+ container: container$1,
31
+ header
32
+ };
33
+ const cssModules$3 = {
34
+ "$style": style0$3
35
+ };
36
+ const EmptyState = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$3]]);
37
+ const _hoisted_1 = { key: 1 };
38
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
39
+ __name: "TestItem",
40
+ props: {
41
+ test: {}
42
+ },
43
+ emits: ["run-test", "view-details", "edit-test", "delete-test"],
44
+ setup(__props, { emit: __emit }) {
45
+ const props = __props;
46
+ const locale = useI18n();
47
+ const emit = __emit;
48
+ const actions2 = [
49
+ {
50
+ icon: "play",
51
+ event: () => emit("run-test", props.test.id),
52
+ tooltip: locale.baseText("testDefinition.runTest")
53
+ },
54
+ {
55
+ icon: "list",
56
+ event: () => emit("view-details", props.test.id),
57
+ tooltip: locale.baseText("testDefinition.viewDetails")
58
+ },
59
+ {
60
+ icon: "pen",
61
+ event: () => emit("edit-test", props.test.id),
62
+ tooltip: locale.baseText("testDefinition.editTest")
63
+ },
64
+ {
65
+ icon: "trash",
66
+ event: () => emit("delete-test", props.test.id),
67
+ tooltip: locale.baseText("testDefinition.deleteTest")
68
+ }
69
+ ];
70
+ return (_ctx, _cache) => {
71
+ const _component_n8n_tag = resolveComponent("n8n-tag");
72
+ const _component_n8n_loading = resolveComponent("n8n-loading");
73
+ const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
74
+ return openBlock(), createElementBlock("div", {
75
+ class: normalizeClass(_ctx.$style.testItem),
76
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("view-details", _ctx.test.id))
77
+ }, [
78
+ createBaseVNode("div", {
79
+ class: normalizeClass(_ctx.$style.testInfo)
80
+ }, [
81
+ createBaseVNode("div", {
82
+ class: normalizeClass(_ctx.$style.testName)
83
+ }, [
84
+ createTextVNode(toDisplayString(_ctx.test.name) + " ", 1),
85
+ _ctx.test.tagName ? (openBlock(), createBlock(_component_n8n_tag, {
86
+ key: 0,
87
+ text: _ctx.test.tagName
88
+ }, null, 8, ["text"])) : createCommentVNode("", true)
89
+ ], 2),
90
+ createBaseVNode("div", {
91
+ class: normalizeClass(_ctx.$style.testCases)
92
+ }, [
93
+ createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.list.testCases", { adjustToNumber: _ctx.test.testCases })) + " ", 1),
94
+ !_ctx.test.execution.lastRun ? (openBlock(), createBlock(_component_n8n_loading, {
95
+ key: 0,
96
+ loading: true,
97
+ rows: 1
98
+ })) : (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(unref(locale).baseText("testDefinition.list.lastRun", {
99
+ interpolate: { lastRun: _ctx.test.execution.lastRun }
100
+ })), 1))
101
+ ], 2)
102
+ ], 2),
103
+ createBaseVNode("div", {
104
+ class: normalizeClass(_ctx.$style.metrics)
105
+ }, [
106
+ createBaseVNode("div", {
107
+ class: normalizeClass(_ctx.$style.metric)
108
+ }, toDisplayString(unref(locale).baseText("testDefinition.list.errorRate", {
109
+ interpolate: { errorRate: _ctx.test.execution.errorRate ?? "-" }
110
+ })), 3),
111
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.test.execution.metrics, (value, key) => {
112
+ return openBlock(), createElementBlock("div", {
113
+ key,
114
+ class: normalizeClass(_ctx.$style.metric)
115
+ }, toDisplayString(key) + ": " + toDisplayString(value ?? "-"), 3);
116
+ }), 128))
117
+ ], 2),
118
+ createBaseVNode("div", {
119
+ class: normalizeClass(_ctx.$style.actions)
120
+ }, [
121
+ (openBlock(), createElementBlock(Fragment, null, renderList(actions2, (action) => {
122
+ return createVNode(_component_n8n_tooltip, {
123
+ key: action.icon,
124
+ placement: "top",
125
+ "show-after": 1e3
126
+ }, {
127
+ content: withCtx(() => [
128
+ createTextVNode(toDisplayString(action.tooltip), 1)
129
+ ]),
130
+ default: withCtx(() => [
131
+ (openBlock(), createBlock(resolveDynamicComponent(unref(_sfc_main$4)), {
132
+ icon: action.icon,
133
+ type: "tertiary",
134
+ size: "mini",
135
+ onClick: withModifiers(action.event, ["stop"])
136
+ }, null, 8, ["icon", "onClick"]))
137
+ ]),
138
+ _: 2
139
+ }, 1024);
140
+ }), 64))
141
+ ], 2)
142
+ ], 2);
143
+ };
144
+ }
145
+ });
146
+ const testItem = "_testItem_1lysx_1";
147
+ const testInfo = "_testInfo_1lysx_14";
148
+ const testName = "_testName_1lysx_20";
149
+ const testCases = "_testCases_1lysx_29";
150
+ const metrics = "_metrics_1lysx_37";
151
+ const metric = "_metric_1lysx_37";
152
+ const actions = "_actions_1lysx_49";
153
+ const style0$2 = {
154
+ testItem,
155
+ testInfo,
156
+ testName,
157
+ testCases,
158
+ metrics,
159
+ metric,
160
+ actions
161
+ };
162
+ const cssModules$2 = {
163
+ "$style": style0$2
164
+ };
165
+ const TestItem = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
166
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
167
+ __name: "TestsList",
168
+ props: {
169
+ tests: {}
170
+ },
171
+ emits: ["create-test"],
172
+ setup(__props) {
173
+ const locale = useI18n();
174
+ return (_ctx, _cache) => {
175
+ const _component_n8n_button = resolveComponent("n8n-button");
176
+ return openBlock(), createElementBlock("div", {
177
+ class: normalizeClass(_ctx.$style.testsList)
178
+ }, [
179
+ createBaseVNode("div", {
180
+ class: normalizeClass(_ctx.$style.testsHeader)
181
+ }, [
182
+ createVNode(_component_n8n_button, {
183
+ label: unref(locale).baseText("testDefinition.list.createNew"),
184
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("create-test"))
185
+ }, null, 8, ["label"])
186
+ ], 2),
187
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.tests, (test) => {
188
+ return openBlock(), createBlock(TestItem, mergeProps({
189
+ key: test.id,
190
+ test,
191
+ ref_for: true
192
+ }, _ctx.$attrs), null, 16, ["test"]);
193
+ }), 128))
194
+ ], 2);
195
+ };
196
+ }
197
+ });
198
+ const testsList = "_testsList_1aleg_1";
199
+ const testsHeader = "_testsHeader_1aleg_7";
200
+ const style0$1 = {
201
+ testsList,
202
+ testsHeader
203
+ };
204
+ const cssModules$1 = {
205
+ "$style": style0$1
206
+ };
207
+ const TestsList = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
208
+ const _sfc_main = /* @__PURE__ */ defineComponent({
209
+ __name: "TestDefinitionListView",
210
+ setup(__props) {
211
+ const router = useRouter();
212
+ const tagsStore = useAnnotationTagsStore();
213
+ const testDefinitionStore = useTestDefinitionStore();
214
+ const isLoading = ref(false);
215
+ const toast = useToast();
216
+ const locale = useI18n();
217
+ const tests = computed(() => {
218
+ return testDefinitionStore.allTestDefinitions.filter((test) => test.id !== void 0).sort((a, b) => new Date((b == null ? void 0 : b.updatedAt) ?? "").getTime() - new Date((a == null ? void 0 : a.updatedAt) ?? "").getTime()).map((test) => ({
219
+ id: test.id,
220
+ name: test.name ?? "",
221
+ tagName: test.annotationTagId ? getTagName(test.annotationTagId) : "",
222
+ testCases: 0,
223
+ // TODO: This should come from the API
224
+ execution: getTestExecution(test.id)
225
+ }));
226
+ });
227
+ const hasTests = computed(() => tests.value.length > 0);
228
+ const allTags = computed(() => tagsStore.allTags);
229
+ function getTagName(tagId) {
230
+ const matchingTag = allTags.value.find((t) => t.id === tagId);
231
+ return (matchingTag == null ? void 0 : matchingTag.name) ?? "";
232
+ }
233
+ function getTestExecution(_testId) {
234
+ const mockExecutions = {
235
+ lastRun: "an hour ago",
236
+ errorRate: 0,
237
+ metrics: { metric1: 0.12, metric2: 0.99, metric3: 0.87 }
238
+ };
239
+ return mockExecutions || {
240
+ lastRun: null,
241
+ errorRate: null,
242
+ metrics: { metric1: null, metric2: null, metric3: null }
243
+ };
244
+ }
245
+ function onCreateTest() {
246
+ void router.push({ name: VIEWS.NEW_TEST_DEFINITION });
247
+ }
248
+ function onRunTest(_testId) {
249
+ toast.showMessage({
250
+ title: locale.baseText("testDefinition.notImplemented"),
251
+ type: "warning"
252
+ });
253
+ }
254
+ function onViewDetails(_testId) {
255
+ toast.showMessage({
256
+ title: locale.baseText("testDefinition.notImplemented"),
257
+ type: "warning"
258
+ });
259
+ }
260
+ function onEditTest(testId) {
261
+ void router.push({ name: VIEWS.TEST_DEFINITION_EDIT, params: { testId } });
262
+ }
263
+ async function onDeleteTest(testId) {
264
+ await testDefinitionStore.deleteById(testId);
265
+ toast.showMessage({
266
+ title: locale.baseText("testDefinition.list.testDeleted"),
267
+ type: "success"
268
+ });
269
+ }
270
+ async function loadInitialData() {
271
+ isLoading.value = true;
272
+ try {
273
+ await tagsStore.fetchAll();
274
+ await testDefinitionStore.fetchAll();
275
+ } finally {
276
+ isLoading.value = false;
277
+ }
278
+ }
279
+ onMounted(() => {
280
+ if (!testDefinitionStore.isFeatureEnabled) {
281
+ toast.showMessage({
282
+ title: locale.baseText("testDefinition.notImplemented"),
283
+ type: "warning"
284
+ });
285
+ void router.push({
286
+ name: VIEWS.WORKFLOW,
287
+ params: { name: router.currentRoute.value.params.name }
288
+ });
289
+ }
290
+ void loadInitialData();
291
+ });
292
+ return (_ctx, _cache) => {
293
+ const _component_n8n_loading = resolveComponent("n8n-loading");
294
+ return openBlock(), createElementBlock("div", {
295
+ class: normalizeClass(_ctx.$style.container)
296
+ }, [
297
+ isLoading.value ? (openBlock(), createElementBlock("div", {
298
+ key: 0,
299
+ class: normalizeClass(_ctx.$style.loading)
300
+ }, [
301
+ createVNode(_component_n8n_loading, {
302
+ loading: true,
303
+ rows: 3
304
+ })
305
+ ], 2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
306
+ !hasTests.value ? (openBlock(), createBlock(EmptyState, {
307
+ key: 0,
308
+ onCreateTest
309
+ })) : (openBlock(), createBlock(TestsList, {
310
+ key: 1,
311
+ tests: tests.value,
312
+ onCreateTest,
313
+ onRunTest,
314
+ onViewDetails,
315
+ onEditTest,
316
+ onDeleteTest
317
+ }, null, 8, ["tests"]))
318
+ ], 64))
319
+ ], 2);
320
+ };
321
+ }
322
+ });
323
+ const container = "_container_an92i_1";
324
+ const loading = "_loading_an92i_8";
325
+ const style0 = {
326
+ container,
327
+ loading
328
+ };
329
+ const cssModules = {
330
+ "$style": style0
331
+ };
332
+ const TestDefinitionListView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
333
+ export {
334
+ TestDefinitionListView as default
335
+ };