@knoflows/engine 0.1.0-alpha.14 → 0.1.0-alpha.16
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/README.md +5 -10
- package/dist/engine.js +41 -20
- package/dist/migrations/20260919073531_tense_grey_gargoyle/migration.sql +1 -0
- package/dist/migrations/20260919073531_tense_grey_gargoyle/snapshot.json +1348 -0
- package/dist/migrations/20260919081637_fearless_warlock/migration.sql +1 -0
- package/dist/migrations/20260919081637_fearless_warlock/snapshot.json +1358 -0
- package/package.json +4 -4
- package/static/apple-touch-icon.png +0 -0
- package/static/assets/i18n/en.json +47 -6
- package/static/assets/i18n/es.json +47 -6
- package/static/chunk-9U0WIegY.js +1 -0
- package/static/chunk-B0kZCuEt.js +1 -0
- package/static/chunk-B2Xol2Un.js +1 -0
- package/static/chunk-B7WkIFy0.js +1 -0
- package/static/chunk-BW9BdLk-.js +1 -0
- package/static/chunk-Bgl02GNl.js +1 -0
- package/static/chunk-BhF-m2HP.js +70 -0
- package/static/chunk-BhTujCrk.js +1 -0
- package/static/chunk-Bu6_39Nh.js +1 -0
- package/static/chunk-C0HCwfa5.js +1 -0
- package/static/chunk-C2BVYtVN.js +66 -0
- package/static/chunk-C7h8oMzu.js +1 -0
- package/static/chunk-CRdEWPUM.js +1 -0
- package/static/chunk-CRv0PDB7.js +1 -0
- package/static/chunk-CecXf-CU.js +1 -0
- package/static/chunk-CenXuPs5.js +1 -0
- package/static/chunk-CeywzbyD.js +1 -0
- package/static/{chunk-CjitpVjI.js → chunk-Cg2E0vnT.js} +1 -1
- package/static/chunk-CsQ_HDGC.js +1 -0
- package/static/chunk-D19C8Gcb.js +1 -0
- package/static/chunk-DGC4TkAL.js +1 -0
- package/static/chunk-DUkiyf7y.js +1 -0
- package/static/chunk-DYzSLsNo.js +1 -0
- package/static/chunk-DZJZYEZl.js +1 -0
- package/static/chunk-DfcFBVF4.js +1 -0
- package/static/chunk-DixyYfV_.js +1 -0
- package/static/chunk-Dp4H7MY0.js +1 -0
- package/static/chunk-DtQtDE8q.js +1 -0
- package/static/chunk-Dv5GyY6h.js +1 -0
- package/static/chunk-Edaw7VGW.js +1 -0
- package/static/chunk-FOJfn_t9.js +1 -0
- package/static/chunk-Fwpw-z7T.js +1 -0
- package/static/chunk-HUIPNwd9.js +1 -0
- package/static/chunk-NZ-CPWJ2.js +1 -0
- package/static/chunk-Th9whP36.js +1 -0
- package/static/chunk-bCuvpgQS.js +1 -0
- package/static/chunk-iE460Kz5.js +1 -0
- package/static/chunk-p6dftaf8.js +5 -0
- package/static/chunk-yoe_30RI.js +1 -0
- package/static/chunk-z2vvQAle.js +1 -0
- package/static/favicon-16x16.png +0 -0
- package/static/favicon-32x32.png +0 -0
- package/static/favicon.ico +0 -0
- package/static/favicon.svg +12 -0
- package/static/icon-192.png +0 -0
- package/static/icon-512.png +0 -0
- package/static/index.html +30 -5
- package/static/main-CHQMTVIP.js +248 -0
- package/static/media/inter-latin-400-normal-55WT6UWF.woff2 +0 -0
- package/static/media/inter-latin-400-normal-FR5HOXA4.woff +0 -0
- package/static/media/inter-latin-500-normal-W62DVTXI.woff2 +0 -0
- package/static/media/inter-latin-500-normal-ZNGIZ2YB.woff +0 -0
- package/static/media/inter-latin-600-normal-R6Y2SZCR.woff2 +0 -0
- package/static/media/inter-latin-600-normal-ZYHV6QZT.woff +0 -0
- package/static/media/jetbrains-mono-latin-500-normal-ETEQEOVZ.woff +0 -0
- package/static/media/jetbrains-mono-latin-500-normal-V4XIP5OW.woff2 +0 -0
- package/static/media/space-grotesk-latin-500-normal-GESQWJQV.woff2 +0 -0
- package/static/media/space-grotesk-latin-500-normal-HV4TE4RA.woff +0 -0
- package/static/media/space-grotesk-latin-700-normal-6Z7GHSI6.woff +0 -0
- package/static/media/space-grotesk-latin-700-normal-I3MXRIUZ.woff2 +0 -0
- package/static/nz-theme-dark.css +1 -0
- package/static/nz-theme.css +1 -0
- package/static/styles-JGCTKGGH.css +1 -0
- package/static/chunk-7nUPxia9.js +0 -1
- package/static/chunk-B5OZfu7U.js +0 -1
- package/static/chunk-B6yhN6h_.js +0 -1
- package/static/chunk-B8xDFyOW.js +0 -1
- package/static/chunk-BCQYv6zO.js +0 -1
- package/static/chunk-BGD9WiFM.js +0 -1
- package/static/chunk-BRQzRdUy.js +0 -1
- package/static/chunk-BT1tqKUa.js +0 -1
- package/static/chunk-BbMJvJVR.js +0 -5
- package/static/chunk-Bdf1gK_x.js +0 -1
- package/static/chunk-BgZJenki.js +0 -1
- package/static/chunk-BhOOhcFV.js +0 -1
- package/static/chunk-BphvnLVV.js +0 -1
- package/static/chunk-C4ekQTdr.js +0 -1
- package/static/chunk-CMCOXbTF.js +0 -1
- package/static/chunk-CVunAaEq.js +0 -1
- package/static/chunk-CWPY-qdb.js +0 -1
- package/static/chunk-C_RmBwoX.js +0 -1
- package/static/chunk-CkEV4Kdw.js +0 -1
- package/static/chunk-CmjHhm0_.js +0 -1
- package/static/chunk-Cprdc3WE.js +0 -1
- package/static/chunk-CsI-lLXP.js +0 -1
- package/static/chunk-D1s098WO.js +0 -1
- package/static/chunk-D5uYKhQI.js +0 -1
- package/static/chunk-DCwYXBAy.js +0 -1
- package/static/chunk-DDsAcugC.js +0 -66
- package/static/chunk-DWyVd0g2.js +0 -1
- package/static/chunk-Dn9gu9_q.js +0 -1
- package/static/chunk-Doaes0Yg.js +0 -7
- package/static/chunk-Dqf92YVW.js +0 -1
- package/static/chunk-Oq0qp-a6.js +0 -1
- package/static/chunk-PTPh9FQ2.js +0 -1
- package/static/chunk-PfPOHfb1.js +0 -1
- package/static/chunk-WIfL3i6D.js +0 -1
- package/static/chunk-ZTjXJrt4.js +0 -1
- package/static/chunk-bbBn-iZU.js +0 -1
- package/static/chunk-gl_-d0La.js +0 -1
- package/static/chunk-hTFsYp4X.js +0 -1
- package/static/chunk-szOy8Im7.js +0 -1
- package/static/main-OG6DVLH6.js +0 -249
- package/static/styles-4UB6RUIG.css +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knoflows/engine",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.16",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"bin": {
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"test:claude-agent": "tsx src/providers/agent/claude-agent-provider.test.ts",
|
|
38
38
|
"test:cursor-agent": "tsx src/providers/agent/cursor-agent-provider.test.ts",
|
|
39
39
|
"test:preview-models": "tsx src/providers/agent/preview-models.test.ts",
|
|
40
|
-
"test:provider-status": "tsx src/providers/provider-status.test.ts",
|
|
41
|
-
"test:runner": "tsx src/git/worktree-paths.test.ts && tsx src/git/repo-fetch-lock.service.test.ts && tsx src/git/git.service.test.ts && tsx src/runner/extract.test.ts && tsx src/runner/test/resolve-view-subjects.test.ts && tsx src/runner/test/workflow-runner.agent-interaction.test.ts && tsx src/runner/test/workflow-runner.git-shell-provider.test.ts && tsx src/runner/test/workflow-runner.loop-subworkflow.test.ts && tsx src/runner/test/workflow-runner.batch-aggregate.test.ts && tsx src/runner/test/workflow-runner.agent-output-validation.test.ts && tsx src/runner/test/workflow-runner.extended-action.test.ts && tsx src/runner/test/workflow-runner.registry-dispatch.test.ts && tsx src/runner/test/workflow-runner.retry.test.ts && tsx src/runner/test/workflow-runner.cancel.test.ts && tsx src/runner/test/resolve-context-files.test.ts && tsx src/runner/test/workflow-runner.context-files.test.ts && tsx src/runner/test/workflow-runner.worktrees.test.ts && tsx src/runner/test/workflow-runner.extract.test.ts && tsx src/runner/test/agent-concurrency-gate.service.test.ts && tsx src/runner/test/workflow-runner.agent-concurrency.test.ts",
|
|
42
|
-
"test:api": "tsx src/api/test/api-test.ts && tsx src/api/test/boot-empty-secrets.test.ts && tsx src/api/test/providers-status.test.ts && tsx src/api/test/settings.test.ts && tsx src/api/test/preview-models.test.ts && tsx src/api/test/query-templates.test.ts && tsx src/api/test/extended-actions.test.ts && tsx src/api/test/view-binding-shortcuts.test.ts && tsx src/api/test/workflow-library.test.ts && tsx src/api/test/workflow-export-import.test.ts && tsx src/api/test/generate-workflow-instructions.test.ts && tsx src/api/test/context-files.test.ts && tsx src/api/test/filesystem.test.ts && tsx src/api/test/local-repositories.test.ts",
|
|
40
|
+
"test:provider-status": "tsx src/providers/provider-status.test.ts && tsx src/providers/testable-connection.test.ts",
|
|
41
|
+
"test:runner": "tsx src/git/worktree-paths.test.ts && tsx src/git/repo-fetch-lock.service.test.ts && tsx src/git/git.service.test.ts && tsx src/runner/extract.test.ts && tsx src/runner/test/resolve-view-subjects.test.ts && tsx src/runner/test/workflow-runner.agent-interaction.test.ts && tsx src/runner/test/workflow-runner.git-shell-provider.test.ts && tsx src/runner/test/workflow-runner.loop-subworkflow.test.ts && tsx src/runner/test/workflow-runner.subworkflow-source.test.ts && tsx src/runner/test/workflow-runner.batch-aggregate.test.ts && tsx src/runner/test/workflow-runner.agent-output-validation.test.ts && tsx src/runner/test/workflow-runner.comment-review.test.ts && tsx src/runner/test/workflow-runner.extended-action.test.ts && tsx src/runner/test/workflow-runner.registry-dispatch.test.ts && tsx src/runner/test/workflow-runner.retry.test.ts && tsx src/runner/test/workflow-runner.positioned-comments.test.ts && tsx src/runner/test/workflow-runner.cancel.test.ts && tsx src/runner/test/resolve-context-files.test.ts && tsx src/runner/test/workflow-runner.context-files.test.ts && tsx src/runner/test/workflow-runner.worktrees.test.ts && tsx src/runner/test/workflow-runner.extract.test.ts && tsx src/runner/test/agent-concurrency-gate.service.test.ts && tsx src/runner/test/workflow-runner.agent-concurrency.test.ts && tsx src/runner/test/workflow-runner.condition.test.ts",
|
|
42
|
+
"test:api": "tsx src/api/test/api-test.ts && tsx src/api/test/boot-empty-secrets.test.ts && tsx src/api/test/providers-status.test.ts && tsx src/api/test/settings.test.ts && tsx src/api/test/preview-models.test.ts && tsx src/api/test/test-connection.test.ts && tsx src/api/test/query-templates.test.ts && tsx src/api/test/extended-actions.test.ts && tsx src/api/test/view-binding-shortcuts.test.ts && tsx src/api/test/workflow-library.test.ts && tsx src/api/test/workflow-export-import.test.ts && tsx src/api/test/generate-workflow-instructions.test.ts && tsx src/api/test/context-files.test.ts && tsx src/api/test/filesystem.test.ts && tsx src/api/test/local-repositories.test.ts",
|
|
43
43
|
"test:workflows-ids": "tsx src/api/workflows/assign-missing-ids.test.ts",
|
|
44
44
|
"test:listen-port": "tsx src/listen-port.test.ts",
|
|
45
45
|
"test:spa-fallback": "tsx src/static/spa-fallback.test.ts"
|
|
Binary file
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
"nav.settings": "Settings",
|
|
9
9
|
"shell.jobs": "Jobs",
|
|
10
10
|
"shell.manage": "Manage",
|
|
11
|
+
"shell.theme.toDark": "Switch to dark theme",
|
|
12
|
+
"shell.theme.toLight": "Switch to light theme",
|
|
11
13
|
"manage.tab.workflows": "Workflows",
|
|
12
14
|
"manage.tab.views": "Views & Shortcuts",
|
|
13
15
|
"manage.tab.providers": "Providers",
|
|
@@ -52,11 +54,13 @@
|
|
|
52
54
|
"local-repos.column.name": "Name",
|
|
53
55
|
"local-repos.column.localPath": "Repository path",
|
|
54
56
|
"local-repos.column.worktreeBasePath": "Worktree base",
|
|
57
|
+
"local-repos.column.defaultBranch": "Default branch",
|
|
55
58
|
"local-repos.column.actions": "Actions",
|
|
56
59
|
"local-repos.form.name": "Name",
|
|
57
60
|
"local-repos.form.localPath": "Repository path",
|
|
58
61
|
"local-repos.form.worktreeBasePath": "Worktree base path (optional)",
|
|
59
62
|
"local-repos.form.worktreeBaseHint": "Defaults to a sibling folder next to the repository. Do not nest worktrees inside the repo itself.",
|
|
63
|
+
"local-repos.form.defaultBranch": "Default branch (optional)",
|
|
60
64
|
"local-repos.loadFailed": "Failed to load local repositories",
|
|
61
65
|
"local-repos.saveFailed": "Failed to save local repository",
|
|
62
66
|
"local-repos.deleteFailed": "Failed to delete local repository",
|
|
@@ -108,6 +112,7 @@
|
|
|
108
112
|
"shell.group.pullRequests": "Pull Requests",
|
|
109
113
|
"shell.group.documentation": "Documentation",
|
|
110
114
|
"shell.shortcuts": "Shortcuts",
|
|
115
|
+
"shell.reorderHandle": "Reorder",
|
|
111
116
|
"shell.provider.jira": "Jira",
|
|
112
117
|
"shell.provider.bitbucket": "Bitbucket",
|
|
113
118
|
"shell.empty.title": "Welcome to knoflows",
|
|
@@ -119,10 +124,7 @@
|
|
|
119
124
|
"common.cancel": "Cancel",
|
|
120
125
|
"common.loading": "Loading…",
|
|
121
126
|
"common.errorGeneric": "Something went wrong",
|
|
122
|
-
"jobs.title": "Knoflows — Start a Job",
|
|
123
|
-
"jobs.lede": "Pick a workflow that runs one item at a time and start a Job. Watching and resume live on the Job detail page.",
|
|
124
127
|
"jobs.start.heading": "Start a Job",
|
|
125
|
-
"jobs.start.workflow": "Workflow",
|
|
126
128
|
"jobs.start.subjectId": "subjectId",
|
|
127
129
|
"jobs.start.subjectIdPlaceholder": "e.g. T-1",
|
|
128
130
|
"jobs.start.button": "Start",
|
|
@@ -138,10 +140,16 @@
|
|
|
138
140
|
"jobs.status.cancelled": "Cancelled",
|
|
139
141
|
"jobs.resume.heading": "Waiting for human",
|
|
140
142
|
"jobs.resume.noQuestions": "No questions on the waiting event yet.",
|
|
141
|
-
"jobs.resume.
|
|
143
|
+
"jobs.resume.additionalComments": "Additional comments for the agent",
|
|
144
|
+
"jobs.resume.comment": "Comment (optional)",
|
|
145
|
+
"jobs.resume.approve": "Approve",
|
|
146
|
+
"jobs.resume.reject": "Reject",
|
|
142
147
|
"jobs.resume.button": "Resume",
|
|
143
148
|
"jobs.resume.submitting": "Submitting…",
|
|
144
|
-
"jobs.resume.
|
|
149
|
+
"jobs.resume.commentReview.include": "Include",
|
|
150
|
+
"jobs.resume.commentReview.selectAll": "Select all",
|
|
151
|
+
"jobs.resume.commentReview.selectNone": "Select none",
|
|
152
|
+
"jobs.resume.commentReview.empty": "No comment suggestions to review.",
|
|
145
153
|
"jobs.failed.fallback": "Job failed",
|
|
146
154
|
"jobs.errors.loadWorkflows": "Failed to load workflows",
|
|
147
155
|
"jobs.errors.subjectIdRequired": "subjectId is required for this workflow",
|
|
@@ -152,6 +160,7 @@
|
|
|
152
160
|
"jobs.errors.cancelFailed": "Failed to cancel job",
|
|
153
161
|
"jobs.errors.refreshFailed": "Failed to refresh job",
|
|
154
162
|
"jobs.detail.backToStart": "Back to jobs",
|
|
163
|
+
"jobs.detail.copyId": "Copy job id",
|
|
155
164
|
"jobs.detail.loadFailed": "Failed to load job",
|
|
156
165
|
"jobs.detail.workflowLoadFailed": "Failed to load workflow definition for this job",
|
|
157
166
|
"jobs.detail.workflowMissing": "Workflow definition is unavailable; step list cannot be shown.",
|
|
@@ -160,6 +169,8 @@
|
|
|
160
169
|
"jobs.detail.jumpToCurrent": "Jump to current step",
|
|
161
170
|
"jobs.detail.retryWorkflow": "Retry entire workflow",
|
|
162
171
|
"jobs.detail.retryStep": "Retry this step",
|
|
172
|
+
"jobs.detail.reviewAndRetry": "Review and retry",
|
|
173
|
+
"jobs.detail.reviewAndRetryHint": "Comments that already posted are unchecked. Rechecking one will post it again.",
|
|
163
174
|
"jobs.detail.retrying": "Retrying…",
|
|
164
175
|
"jobs.detail.cancel": "Cancel",
|
|
165
176
|
"jobs.detail.cancelling": "Cancelling…",
|
|
@@ -178,6 +189,14 @@
|
|
|
178
189
|
"jobs.detail.inProgress.sub_workflow": "Waiting for child jobs…",
|
|
179
190
|
"jobs.detail.inProgress.interaction": "Waiting for human…",
|
|
180
191
|
"jobs.detail.inProgress.extract": "Extracting…",
|
|
192
|
+
"jobs.detail.skipped.reason": "This step was skipped because its condition held.",
|
|
193
|
+
"jobs.detail.skipped.predicate": "Predicate",
|
|
194
|
+
"jobs.detail.skipped.stepId": "Step id",
|
|
195
|
+
"jobs.detail.skipped.field": "Field",
|
|
196
|
+
"jobs.detail.skipped.equalsValue": "Equals",
|
|
197
|
+
"jobs.detail.skipped.fieldValue": "Evaluated value",
|
|
198
|
+
"jobs.detail.outputView.markdown": "Markdown",
|
|
199
|
+
"jobs.detail.outputView.raw": "Raw",
|
|
181
200
|
"jobs.extract.heading": "Extract did not match",
|
|
182
201
|
"jobs.extract.sourceValue": "Source value",
|
|
183
202
|
"jobs.extract.pattern": "Pattern",
|
|
@@ -204,7 +223,6 @@
|
|
|
204
223
|
"jobs.list.filterByStatus": "Filter by status",
|
|
205
224
|
"jobs.list.filterByWorkflow": "Filter by workflow",
|
|
206
225
|
"jobs.list.showChildJobs": "Show batch/child jobs",
|
|
207
|
-
"jobs.list.startButton": "Start job",
|
|
208
226
|
"jobs.list.empty": "No jobs match these filters.",
|
|
209
227
|
"jobs.list.loadFailed": "Failed to load jobs",
|
|
210
228
|
"jobs.list.filterAll": "All",
|
|
@@ -220,6 +238,7 @@
|
|
|
220
238
|
"workflow-editor.titleEdit": "Edit workflow · {{name}}",
|
|
221
239
|
"workflow-editor.backToWorkflows": "Back to workflows",
|
|
222
240
|
"workflow-editor.export": "Export",
|
|
241
|
+
"workflow-editor.start": "Start",
|
|
223
242
|
"workflow-editor.exportFailed": "Failed to export workflow",
|
|
224
243
|
"workflow-editor.loading": "Loading…",
|
|
225
244
|
"workflow-editor.validation": "Validation",
|
|
@@ -271,6 +290,9 @@
|
|
|
271
290
|
"step-list.selectContextFiles": "Select context files",
|
|
272
291
|
"step-list.outputFormat.label": "Output format",
|
|
273
292
|
"step-list.interaction.label": "Interaction",
|
|
293
|
+
"step-list.sourceStepIds.label": "Suggestion sources",
|
|
294
|
+
"step-list.sourceStepIds.hint": "Prior agent steps whose output format is comment suggestions.",
|
|
295
|
+
"step-list.sourceStepIds.empty": "Add an earlier agent step with comment suggestions output first.",
|
|
274
296
|
"step-list.notify": "Notify",
|
|
275
297
|
"step-list.command": "Command",
|
|
276
298
|
"step-list.operation": "Operation",
|
|
@@ -279,10 +301,20 @@
|
|
|
279
301
|
"step-list.workflowId": "Workflow id",
|
|
280
302
|
"step-list.workflowOption": "{{name}} ({{id}})",
|
|
281
303
|
"step-list.forEach": "forEach",
|
|
304
|
+
"step-list.forEach.selection": "Selection",
|
|
305
|
+
"step-list.forEach.source": "From array",
|
|
306
|
+
"step-list.forEach.sourcePath": "Array source",
|
|
307
|
+
"step-list.forEach.sourceHint": "Path into job context (e.g. decide-repos.repos). Each item becomes that child's inputValues; the child workflow must have appliesTo: none.",
|
|
282
308
|
"step-list.until.type": "until.type",
|
|
283
309
|
"step-list.until.stepId": "until.stepId",
|
|
284
310
|
"step-list.until.field": "until.field",
|
|
285
311
|
"step-list.until.value": "until.value",
|
|
312
|
+
"step-list.fieldCondition.type": "Predicate",
|
|
313
|
+
"step-list.fieldCondition.stepId": "Step id",
|
|
314
|
+
"step-list.fieldCondition.field": "Field",
|
|
315
|
+
"step-list.fieldCondition.value": "Value",
|
|
316
|
+
"step-list.condition.title": "Only run if…",
|
|
317
|
+
"step-list.condition.hint": "Skipped when this condition holds (same predicates as loop until). Field empty skips when that field is empty or absent.",
|
|
286
318
|
"step-list.maxIterations": "Max iterations",
|
|
287
319
|
"step-list.onMaxIterations.action": "onMaxIterations.action",
|
|
288
320
|
"step-list.nestedSteps": "Nested steps",
|
|
@@ -298,6 +330,8 @@
|
|
|
298
330
|
"step-list.availableParameters.arrayOf": "Array of { {{fields}} }",
|
|
299
331
|
"step-list.availableParameters.subjectTypeUnion": "Actual fields depend on which subject type the bound View resolves to.",
|
|
300
332
|
"step-list.availableParameters.subWorkflowArray": "Array of { fanOutIndex, jobId, output }",
|
|
333
|
+
"step-list.availableParameters.subWorkflowForEach": "Selection fans out one child per selected subject. From array (forEach.source) fans out over a prior-step array path; each item is that child's inputValues and the child workflow must be appliesTo: none.",
|
|
334
|
+
"step-list.availableParameters.condition": "Any step may set condition (field_empty or field_equals). When the condition holds, the step is skipped entirely. References to a skipped step's output resolve to undefined, the same as any step that never ran.",
|
|
301
335
|
"step-list.availableParameters.noPrevious": "No previous steps",
|
|
302
336
|
"step-list.availableParameters.missingId": "Set an id to copy tokens",
|
|
303
337
|
"step-list.stepType.agent": "Agent",
|
|
@@ -315,6 +349,7 @@
|
|
|
315
349
|
"step-list.interaction.questionnaire": "Questionnaire",
|
|
316
350
|
"step-list.interaction.confirmation": "Confirmation",
|
|
317
351
|
"step-list.interaction.conversation": "Conversation",
|
|
352
|
+
"step-list.interaction.comment_review": "Comment review",
|
|
318
353
|
"step-list.notifyMode.inherit": "inherit (undefined)",
|
|
319
354
|
"step-list.notifyMode.on": "on (true)",
|
|
320
355
|
"step-list.notifyMode.off": "off (false)",
|
|
@@ -327,6 +362,8 @@
|
|
|
327
362
|
"step-list.createWorktree.newBranch": "New branch",
|
|
328
363
|
"step-list.createWorktree.existingBranch": "Existing branch",
|
|
329
364
|
"step-list.createWorktree.repoPath": "Repository path",
|
|
365
|
+
"step-list.createWorktree.catalogPlaceholder": "Choose from catalog",
|
|
366
|
+
"step-list.createWorktree.browseManually": "Or browse manually",
|
|
330
367
|
"step-list.createWorktree.baseBranch": "Base branch",
|
|
331
368
|
"step-list.createWorktree.branchName": "Branch name",
|
|
332
369
|
"step-list.createWorktree.branch": "Branch",
|
|
@@ -439,6 +476,10 @@
|
|
|
439
476
|
"settings.apiKey.setSuccess": "API key saved",
|
|
440
477
|
"settings.apiKey.setFailed": "Failed to save API key",
|
|
441
478
|
"settings.apiKey.setFailedAfterSave": "Provider saved, but the API key could not be stored. Enter the key again to finish setup.",
|
|
479
|
+
"settings.testConnection": "Test connection",
|
|
480
|
+
"settings.testConnection.connected": "Connected",
|
|
481
|
+
"settings.testConnection.failed": "Connection failed",
|
|
482
|
+
"settings.testConnection.mismatch": "Identity mismatch",
|
|
442
483
|
"settings.model.label": "Default model",
|
|
443
484
|
"settings.model.placeholder": "Provider default",
|
|
444
485
|
"settings.model.fetch": "Fetch available models",
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
"nav.settings": "Ajustes",
|
|
9
9
|
"shell.jobs": "Trabajos",
|
|
10
10
|
"shell.manage": "Administrar",
|
|
11
|
+
"shell.theme.toDark": "Cambiar a tema oscuro",
|
|
12
|
+
"shell.theme.toLight": "Cambiar a tema claro",
|
|
11
13
|
"manage.tab.workflows": "Flujos",
|
|
12
14
|
"manage.tab.views": "Vistas y atajos",
|
|
13
15
|
"manage.tab.providers": "Proveedores",
|
|
@@ -52,11 +54,13 @@
|
|
|
52
54
|
"local-repos.column.name": "Nombre",
|
|
53
55
|
"local-repos.column.localPath": "Ruta del repositorio",
|
|
54
56
|
"local-repos.column.worktreeBasePath": "Base de worktrees",
|
|
57
|
+
"local-repos.column.defaultBranch": "Rama por defecto",
|
|
55
58
|
"local-repos.column.actions": "Acciones",
|
|
56
59
|
"local-repos.form.name": "Nombre",
|
|
57
60
|
"local-repos.form.localPath": "Ruta del repositorio",
|
|
58
61
|
"local-repos.form.worktreeBasePath": "Ruta base de worktrees (opcional)",
|
|
59
62
|
"local-repos.form.worktreeBaseHint": "Por defecto es una carpeta hermana junto al repositorio. No anides worktrees dentro del propio repo.",
|
|
63
|
+
"local-repos.form.defaultBranch": "Rama por defecto (opcional)",
|
|
60
64
|
"local-repos.loadFailed": "No se pudieron cargar los repositorios locales",
|
|
61
65
|
"local-repos.saveFailed": "No se pudo guardar el repositorio local",
|
|
62
66
|
"local-repos.deleteFailed": "No se pudo eliminar el repositorio local",
|
|
@@ -108,6 +112,7 @@
|
|
|
108
112
|
"shell.group.pullRequests": "Pull requests",
|
|
109
113
|
"shell.group.documentation": "Documentación",
|
|
110
114
|
"shell.shortcuts": "Atajos",
|
|
115
|
+
"shell.reorderHandle": "Reordenar",
|
|
111
116
|
"shell.provider.jira": "Jira",
|
|
112
117
|
"shell.provider.bitbucket": "Bitbucket",
|
|
113
118
|
"shell.empty.title": "Bienvenido a knoflows",
|
|
@@ -119,10 +124,7 @@
|
|
|
119
124
|
"common.cancel": "Cancelar",
|
|
120
125
|
"common.loading": "Cargando…",
|
|
121
126
|
"common.errorGeneric": "Algo salió mal",
|
|
122
|
-
"jobs.title": "Knoflows — Iniciar un trabajo",
|
|
123
|
-
"jobs.lede": "Elige un flujo que trabaja de uno en uno e inicia un trabajo. La observación y la reanudación viven en la página de detalle del trabajo.",
|
|
124
127
|
"jobs.start.heading": "Iniciar un trabajo",
|
|
125
|
-
"jobs.start.workflow": "Flujo de trabajo",
|
|
126
128
|
"jobs.start.subjectId": "subjectId",
|
|
127
129
|
"jobs.start.subjectIdPlaceholder": "p. ej. T-1",
|
|
128
130
|
"jobs.start.button": "Iniciar",
|
|
@@ -138,10 +140,16 @@
|
|
|
138
140
|
"jobs.status.cancelled": "Cancelado",
|
|
139
141
|
"jobs.resume.heading": "Esperando intervención humana",
|
|
140
142
|
"jobs.resume.noQuestions": "Aún no hay preguntas en el evento de espera.",
|
|
141
|
-
"jobs.resume.
|
|
143
|
+
"jobs.resume.additionalComments": "Comentarios adicionales para el agente",
|
|
144
|
+
"jobs.resume.comment": "Comentario (opcional)",
|
|
145
|
+
"jobs.resume.approve": "Aprobar",
|
|
146
|
+
"jobs.resume.reject": "Rechazar",
|
|
142
147
|
"jobs.resume.button": "Reanudar",
|
|
143
148
|
"jobs.resume.submitting": "Enviando…",
|
|
144
|
-
"jobs.resume.
|
|
149
|
+
"jobs.resume.commentReview.include": "Incluir",
|
|
150
|
+
"jobs.resume.commentReview.selectAll": "Seleccionar todas",
|
|
151
|
+
"jobs.resume.commentReview.selectNone": "Seleccionar ninguna",
|
|
152
|
+
"jobs.resume.commentReview.empty": "No hay sugerencias de comentarios para revisar.",
|
|
145
153
|
"jobs.failed.fallback": "El trabajo falló",
|
|
146
154
|
"jobs.errors.loadWorkflows": "No se pudieron cargar los flujos",
|
|
147
155
|
"jobs.errors.subjectIdRequired": "subjectId es obligatorio para este flujo",
|
|
@@ -152,6 +160,7 @@
|
|
|
152
160
|
"jobs.errors.cancelFailed": "No se pudo cancelar el trabajo",
|
|
153
161
|
"jobs.errors.refreshFailed": "No se pudo actualizar el trabajo",
|
|
154
162
|
"jobs.detail.backToStart": "Volver a trabajos",
|
|
163
|
+
"jobs.detail.copyId": "Copiar id del trabajo",
|
|
155
164
|
"jobs.detail.loadFailed": "No se pudo cargar el trabajo",
|
|
156
165
|
"jobs.detail.workflowLoadFailed": "No se pudo cargar la definición del flujo para este trabajo",
|
|
157
166
|
"jobs.detail.workflowMissing": "La definición del flujo no está disponible; no se puede mostrar la lista de pasos.",
|
|
@@ -160,6 +169,8 @@
|
|
|
160
169
|
"jobs.detail.jumpToCurrent": "Ir al paso actual",
|
|
161
170
|
"jobs.detail.retryWorkflow": "Reintentar todo el flujo",
|
|
162
171
|
"jobs.detail.retryStep": "Reintentar este paso",
|
|
172
|
+
"jobs.detail.reviewAndRetry": "Revisar y reintentar",
|
|
173
|
+
"jobs.detail.reviewAndRetryHint": "Los comentarios que ya se publicaron aparecen desmarcados. Volver a marcar uno lo publicará de nuevo.",
|
|
163
174
|
"jobs.detail.retrying": "Reintentando…",
|
|
164
175
|
"jobs.detail.cancel": "Cancelar",
|
|
165
176
|
"jobs.detail.cancelling": "Cancelando…",
|
|
@@ -178,6 +189,14 @@
|
|
|
178
189
|
"jobs.detail.inProgress.sub_workflow": "Esperando trabajos hijos…",
|
|
179
190
|
"jobs.detail.inProgress.interaction": "Esperando intervención humana…",
|
|
180
191
|
"jobs.detail.inProgress.extract": "Extrayendo…",
|
|
192
|
+
"jobs.detail.skipped.reason": "Este paso se omitió porque se cumplió su condición.",
|
|
193
|
+
"jobs.detail.skipped.predicate": "Predicado",
|
|
194
|
+
"jobs.detail.skipped.stepId": "Id del paso",
|
|
195
|
+
"jobs.detail.skipped.field": "Campo",
|
|
196
|
+
"jobs.detail.skipped.equalsValue": "Igual a",
|
|
197
|
+
"jobs.detail.skipped.fieldValue": "Valor evaluado",
|
|
198
|
+
"jobs.detail.outputView.markdown": "Markdown",
|
|
199
|
+
"jobs.detail.outputView.raw": "Original",
|
|
181
200
|
"jobs.extract.heading": "La extracción no coincidió",
|
|
182
201
|
"jobs.extract.sourceValue": "Valor de origen",
|
|
183
202
|
"jobs.extract.pattern": "Patrón",
|
|
@@ -204,7 +223,6 @@
|
|
|
204
223
|
"jobs.list.filterByStatus": "Filtrar por estado",
|
|
205
224
|
"jobs.list.filterByWorkflow": "Filtrar por flujo",
|
|
206
225
|
"jobs.list.showChildJobs": "Mostrar trabajos de lote e hijos",
|
|
207
|
-
"jobs.list.startButton": "Iniciar trabajo",
|
|
208
226
|
"jobs.list.empty": "Ningún trabajo coincide con estos filtros.",
|
|
209
227
|
"jobs.list.loadFailed": "No se pudieron cargar los trabajos",
|
|
210
228
|
"jobs.list.filterAll": "Todos",
|
|
@@ -221,6 +239,7 @@
|
|
|
221
239
|
"workflow-editor.titleEdit": "Editar flujo · {{name}}",
|
|
222
240
|
"workflow-editor.backToWorkflows": "Volver a flujos",
|
|
223
241
|
"workflow-editor.export": "Exportar",
|
|
242
|
+
"workflow-editor.start": "Iniciar",
|
|
224
243
|
"workflow-editor.exportFailed": "No se pudo exportar el flujo",
|
|
225
244
|
"workflow-editor.validation": "Validación",
|
|
226
245
|
"workflow-editor.basics": "Básicos",
|
|
@@ -271,6 +290,9 @@
|
|
|
271
290
|
"step-list.selectContextFiles": "Seleccionar archivos de contexto",
|
|
272
291
|
"step-list.outputFormat.label": "Formato de salida",
|
|
273
292
|
"step-list.interaction.label": "Interacción",
|
|
293
|
+
"step-list.sourceStepIds.label": "Fuentes de sugerencias",
|
|
294
|
+
"step-list.sourceStepIds.hint": "Pasos de agente anteriores cuyo formato de salida es sugerencias de comentarios.",
|
|
295
|
+
"step-list.sourceStepIds.empty": "Añade antes un paso de agente con formato de sugerencias de comentarios.",
|
|
274
296
|
"step-list.notify": "Notificar",
|
|
275
297
|
"step-list.command": "Comando",
|
|
276
298
|
"step-list.operation": "Operación",
|
|
@@ -279,10 +301,20 @@
|
|
|
279
301
|
"step-list.workflowId": "Id de flujo",
|
|
280
302
|
"step-list.workflowOption": "{{name}} ({{id}})",
|
|
281
303
|
"step-list.forEach": "forEach",
|
|
304
|
+
"step-list.forEach.selection": "Selección",
|
|
305
|
+
"step-list.forEach.source": "Desde array",
|
|
306
|
+
"step-list.forEach.sourcePath": "Origen del array",
|
|
307
|
+
"step-list.forEach.sourceHint": "Ruta en el contexto del trabajo (p. ej. decide-repos.repos). Cada elemento se convierte en los inputValues del hijo; el flujo hijo debe tener appliesTo: none.",
|
|
282
308
|
"step-list.until.type": "until.type",
|
|
283
309
|
"step-list.until.stepId": "until.stepId",
|
|
284
310
|
"step-list.until.field": "until.field",
|
|
285
311
|
"step-list.until.value": "until.value",
|
|
312
|
+
"step-list.fieldCondition.type": "Predicado",
|
|
313
|
+
"step-list.fieldCondition.stepId": "Id del paso",
|
|
314
|
+
"step-list.fieldCondition.field": "Campo",
|
|
315
|
+
"step-list.fieldCondition.value": "Valor",
|
|
316
|
+
"step-list.condition.title": "Ejecutar solo si…",
|
|
317
|
+
"step-list.condition.hint": "Se omite el paso cuando esta condición se cumple (los mismos predicados que loop until). Field empty omite cuando ese campo está vacío o ausente.",
|
|
286
318
|
"step-list.maxIterations": "Iteraciones máximas",
|
|
287
319
|
"step-list.onMaxIterations.action": "onMaxIterations.action",
|
|
288
320
|
"step-list.nestedSteps": "Pasos anidados",
|
|
@@ -298,6 +330,8 @@
|
|
|
298
330
|
"step-list.availableParameters.arrayOf": "Array de { {{fields}} }",
|
|
299
331
|
"step-list.availableParameters.subjectTypeUnion": "Los campos reales dependen del tipo de sujeto que resuelva la vista vinculada.",
|
|
300
332
|
"step-list.availableParameters.subWorkflowArray": "Array de { fanOutIndex, jobId, output }",
|
|
333
|
+
"step-list.availableParameters.subWorkflowForEach": "Selección crea un hijo por cada sujeto seleccionado. Desde array (forEach.source) recorre un array de un paso anterior; cada elemento son los inputValues del hijo y el flujo hijo debe ser appliesTo: none.",
|
|
334
|
+
"step-list.availableParameters.condition": "Cualquier paso puede definir condition (field_empty o field_equals). Si la condición se cumple, el paso se omite por completo. Las referencias a la salida de un paso omitido se resuelven a undefined, igual que un paso que nunca se ejecutó.",
|
|
301
335
|
"step-list.availableParameters.noPrevious": "Ningún paso anterior",
|
|
302
336
|
"step-list.availableParameters.missingId": "Asigna un id para copiar tokens",
|
|
303
337
|
"step-list.stepType.agent": "agent",
|
|
@@ -315,6 +349,7 @@
|
|
|
315
349
|
"step-list.interaction.questionnaire": "questionnaire",
|
|
316
350
|
"step-list.interaction.confirmation": "confirmation",
|
|
317
351
|
"step-list.interaction.conversation": "conversation",
|
|
352
|
+
"step-list.interaction.comment_review": "comment_review",
|
|
318
353
|
"step-list.notifyMode.inherit": "inherit (undefined)",
|
|
319
354
|
"step-list.notifyMode.on": "on (true)",
|
|
320
355
|
"step-list.notifyMode.off": "off (false)",
|
|
@@ -327,6 +362,8 @@
|
|
|
327
362
|
"step-list.createWorktree.newBranch": "Rama nueva",
|
|
328
363
|
"step-list.createWorktree.existingBranch": "Rama existente",
|
|
329
364
|
"step-list.createWorktree.repoPath": "Ruta del repositorio",
|
|
365
|
+
"step-list.createWorktree.catalogPlaceholder": "Elegir del catálogo",
|
|
366
|
+
"step-list.createWorktree.browseManually": "O examinar manualmente",
|
|
330
367
|
"step-list.createWorktree.baseBranch": "Rama base",
|
|
331
368
|
"step-list.createWorktree.branchName": "Nombre de rama",
|
|
332
369
|
"step-list.createWorktree.branch": "Rama",
|
|
@@ -439,6 +476,10 @@
|
|
|
439
476
|
"settings.apiKey.setSuccess": "Clave de API guardada",
|
|
440
477
|
"settings.apiKey.setFailed": "No se pudo guardar la clave de API",
|
|
441
478
|
"settings.apiKey.setFailedAfterSave": "El proveedor se guardó, pero no se pudo almacenar la clave de API. Introdúcela de nuevo para terminar la configuración.",
|
|
479
|
+
"settings.testConnection": "Probar conexión",
|
|
480
|
+
"settings.testConnection.connected": "Conectado",
|
|
481
|
+
"settings.testConnection.failed": "Error de conexión",
|
|
482
|
+
"settings.testConnection.mismatch": "Identidad no coincide",
|
|
442
483
|
"settings.model.label": "Modelo predeterminado",
|
|
443
484
|
"settings.model.placeholder": "Predeterminado del proveedor",
|
|
444
485
|
"settings.model.fetch": "Obtener modelos disponibles",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {U as Uy}from'./chunk-C2BVYtVN.js';function p(t){switch(t){case "completed":return "success";case "failed":return "error";case "waiting_for_human":case "waiting_for_children":return "info";case "pending":case "cancelled":return "muted";case "planning":case "implementing":case "testing":return "primary"}}function d(t){switch(t){case "completed":return "success";case "failed":return "error";case "completed_with_issues":case "cancelled":return "warning";default:return null}}function m(t){switch(t){case "completed":return "success";case "failed":return "error";case "queued":case "waiting_for_children":return "info";case "running":return "primary";case "pending":case "skipped":return "muted"}}function a(t,e){if(!(!t||e==="dark"))switch(t){case "success":return "success";case "warning":return "warning";case "error":return "error";case "info":case "primary":case "muted":return}}function f(t,e){return !t||e!=="dark"&&!(t==="info"||t==="primary"||t==="muted")?"":`knoflows-tag-${t}`}function x(t,e){return f(p(t),e)}function h(t,e){return a(p(t),e)}function y(t,e){return f(d(t),e)}function S(t,e){return a(d(t),e)}function T(t,e){return f(m(t),e)}function _(t,e){return a(m(t),e)}var g=new Set(["completed","failed","cancelled"]);function C(t){return t==="agent"||t==="shell"||t==="git"||t==="provider_action"}function w(t){return g.has(t)}function I(t){let e=t.stepHistory.find(r=>r.status==="running");if(e)return e;let n=t.stepHistory.find(r=>r.status==="queued");if(n)return n;if((t.status==="waiting_for_human"||t.status==="waiting_for_children")&&t.currentStepExecutionId){let r=t.stepHistory.find(i=>i.id===t.currentStepExecutionId);if(r)return r}return w(t.status)&&t.stepHistory.length>0?t.stepHistory[t.stepHistory.length-1]??null:null}function k(t,e){let n=new Map;for(let r of e)n.set(r.stepDefinitionId,r);return t.map(r=>{let i=n.get(r.id)??null;return {definition:r,execution:i,reached:i!=null}})}function O(t){if(!t)return null;if(t.mode==="single"){let n=t.subject;return `${n.id} \xB7 ${n.title}`}let e=t.subjects.length;if(e===0)return null;if(e===1){let n=t.subjects[0];return `${n.id} \xB7 ${n.title}`}return `${e} subjects`}function b(t){let e=t.workflowSnapshot?.name??t.workflowId;return t.subjectContext?t.subjectContext.mode==="single"?`${e} \u2014 ${t.subjectContext.subject.title}`:`${e} \u2014 ${t.subjectContext.subjects.length} items`:e}function v(t,e,n,r){let i=t.findIndex(s=>s.id===n);if(!(i<0))for(let s=i-1;s>=0;s-=1){let o=t[s];if(o.type!=="agent")continue;let c=e.find(u=>u.stepDefinitionId===o.id);if(c?.output!==void 0)return c.output;if(Object.prototype.hasOwnProperty.call(r.context,o.id))return r.context[o.id]}}function D(t){let e=t.waitingEvent;if(e&&e.questions.length>0)return e.questions;let n=e?.data??t.selectedOutput??t.priorOutput,r=Uy(t.interaction,n);return r.length>0?r:e?.data!=null?[JSON.stringify(e.data,null,2)]:[]}function E(t){return t.waitingEvent?.data??t.selectedOutput??t.priorOutput}function H(t){if(!t||typeof t!="object")return [];let e=t.questions;if(!Array.isArray(e))return [];let n=new Set,r=[];return e.forEach((i,s)=>{let o="",c="";if(typeof i=="string")c=i.trim();else if(i&&typeof i=="object"){let u=i;typeof u.prompt=="string"&&(c=u.prompt.trim()),typeof u.id=="string"&&(o=u.id.trim());}if(c){if(!o){let u=`q${s+1}`;for(;n.has(u);)u=`${u}_${s}`;o=u;}n.add(o),r.push({id:o,prompt:c});}}),r}function A(t,e){return t.every(n=>(e[n.id]??"").trim()!=="")}function P(t,e,n){let r={};for(let s of t)r[s.id]=(e[s.id]??"").trim();let i=n.trim();return i&&(r.additionalComments=i),r}function J(t,e){let n=e.trim();return n?{approved:t,comment:n}:{approved:t}}export{A,C,D,E,H,I,J,O,P,S,T,_,b,h,k,v,w,x,y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {w as we}from'./chunk-yoe_30RI.js';import {A as At}from'./chunk-Th9whP36.js';import {a as ae,l as le}from'./chunk-CRdEWPUM.js';import'./chunk-C7h8oMzu.js';import'./chunk-z2vvQAle.js';import {C,a as C1,b6 as U,$,V as Ve,b as at$1,q as qo,U as Uw,u as ue,r as r$1,aW as Ng,aY as Dg,c as bi,Z as ZE,d as $8,v as v3,Y as pf,a0 as bd,a1 as sp,a2 as fp,K as Kt,j as _i,l as _D,J as Jc,o as gI,M as MD,I as Iw,P as Pw,L as Lh,p as Fw,H as HD,G as FD,m as mh,w as lh,z as rl,O as Fu,Q as ju,n as uh,E as Aw}from'./main-CHQMTVIP.js';import {b}from'./chunk-B7WkIFy0.js';import {G as Gn,u as un}from'./chunk-Dp4H7MY0.js';import'./chunk-B2Xol2Un.js';import {U as U$1}from'./chunk-Fwpw-z7T.js';import'./chunk-BhTujCrk.js';import'./chunk-Cg2E0vnT.js';var et=i=>["/batches",i];function it(i,r){i&1&&(_i(0,"p",1),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(gI(),Lh(Fw(2,1,"common.loading")));}function nt(i,r){if(i&1&&(_i(0,"p",2),Iw(1),Jc()),i&2){let t=HD();gI(),Lh(t.loadError());}}function ot(i,r){i&1&&(_i(0,"a",10),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(lh("routerLink",Aw(4,et,r)),gI(),rl(" ",Fw(2,2,"views.detail.openBatch")," "));}function at(i,r){if(i&1&&(uh(0,"nz-alert",9),_D(1,ot,3,6,"a",10)),i&2){let t,e=HD(2);lh("nzMessage",e.confirmation()),gI(),MD((t=e.confirmationBatchId())?1:-1,t);}}function lt(i,r){i&1&&(_i(0,"p",11),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(gI(),rl(" ",Fw(2,1,"views.detail.noBulkWorkflows")," "));}function rt(i,r){if(i&1&&(_i(0,"p",14),Iw(1),Jc()),i&2){let t=HD(4);gI(),Lh(t.launchError());}}function st(i,r){if(i&1){let t=FD();_i(0,"p",12),Iw(1),Jc(),_i(2,"app-workflow-input-form",13),mh("valuesChange",function(n){Fu(t);let s=HD(3);return ju(s.setInputValues(n))}),Jc(),_D(3,rt,2,1,"p",14),_i(4,"div",15)(5,"button",16),mh("click",function(){Fu(t);let n=HD(3);return ju(n.launch())}),Iw(6),Pw(7,"transloco"),Jc(),_i(8,"button",17),mh("click",function(){Fu(t);let n=HD(3);return ju(n.cancelLaunch())}),Iw(9),Pw(10,"transloco"),Jc()();}if(i&2){let t=r,e=HD(3);gI(),Lh(t.name),gI(),lh("fields",t.inputSchema)("values",e.inputValues()),gI(),MD(e.launchError()?3:-1),gI(2),lh("nzLoading",e.launching())("disabled",e.launching()),gI(),rl(" ",Fw(7,8,e.launching()?"views.detail.launching":"views.detail.launch")," "),gI(3),rl(" ",Fw(10,10,"views.detail.cancelLaunch")," ");}}function ct(i,r){if(i&1&&(_i(0,"section",6)(1,"h2"),Iw(2),Pw(3,"transloco"),Jc(),_D(4,lt,3,3,"p",11)(5,st,11,12),Jc()),i&2){let t,e=HD(2);gI(2),rl(" ",Fw(3,2,r==="view"?"views.detail.launchViewTitle":"views.detail.launchSelectedTitle")," "),gI(2),MD(e.canBulkLaunch()?(t=e.boundWorkflow())?5:-1:4,t);}}function dt(i,r){i&1&&(_i(0,"p",7),Iw(1),Pw(2,"transloco"),Jc()),i&2&&(gI(),Lh(Fw(2,1,"views.detail.emptySubjects")));}function ut(i,r){if(i&1){let t=FD();_i(0,"app-runnable-items-table",18),mh("rowAction",function(n){Fu(t);let s=HD(2);return ju(s.onRowAction(n))})("bulkAction",function(n){Fu(t);let s=HD(2);return ju(s.onBulkAction(n))}),Jc();}if(i&2){let t=HD(2);lh("rows",t.rows())("selectable",true)("showRowAction",t.showRowAction());}}function pt(i,r){if(i&1){let t=FD();_i(0,"header",3)(1,"h1",4),Iw(2),Jc(),_i(3,"button",5),mh("click",function(){Fu(t);let n=HD();return ju(n.beginLaunch("view"))}),Iw(4),Pw(5,"transloco"),Jc()(),_D(6,at,2,2),_D(7,ct,6,4,"section",6),_D(8,dt,3,3,"p",7)(9,ut,1,3,"app-runnable-items-table",8);}if(i&2){let t,e=HD();gI(2),Lh(r.name),gI(),lh("disabled",!e.canBulkLaunch()),gI(),rl(" ",Fw(5,6,"views.detail.runOnAll")," "),gI(2),MD(e.confirmation()?6:-1),gI(),MD((t=e.launchMode())?7:-1,t),gI(),MD(e.subjects().length===0?8:9);}}var zt=(()=>{class i{constructor(){this.route=C(C1),this.viewsApi=C(U),this.workflowsApi=C(b),this.batchesApi=C(U$1),this.jobsApi=C($),this.startJob=C(At),this.transloco=C(Ve),this.destroyRef=C(at$1),this.view=qo(null),this.subjects=qo([]),this.workflows=qo([]),this.latestBySubject=qo({}),this.loading=qo(true),this.loadError=qo(null),this.selectedIds=qo([]),this.launchMode=qo(null),this.inputValues=qo({}),this.launching=qo(false),this.launchError=qo(null),this.confirmation=qo(null),this.confirmationBatchId=qo(null),this.boundWorkflow=Uw(()=>{let t=this.view();return t?this.workflows().find(e=>e.id===t.workflowId)??null:null}),this.canBulkLaunch=Uw(()=>this.boundWorkflow()!=null),this.showRowAction=Uw(()=>this.boundWorkflow()?.subjectHandling==="per-subject"),this.rows=Uw(()=>{let t=this.latestBySubject();return this.subjects().map(e=>({id:e.id,primaryLabel:e.title,subtitle:this.subjectDetails(e),latestJob:t[e.id]??null}))}),this.route.paramMap.pipe(ue(this.destroyRef)).subscribe(t=>{let e=t.get("id");if(!e){this.loading.set(false),this.loadError.set(this.transloco.translate("views.detail.loadFailed"));return}this.load(e);});}subjectDetails(t){if(t.subjectType==="ticket")return [t.status,t.assignee].filter(Boolean).join(" \xB7 ");if(t.subjectType==="pull_request"){let e=`${t.sourceBranch} \u2192 ${t.targetBranch}`;return t.author?`${t.author} \xB7 ${e}`:e}return t.url??""}onBulkAction(t){this.selectedIds.set(t),this.beginLaunch("manual");}onRowAction(t){let e=this.view();e&&this.startJob.start({workflowId:e.workflowId,subjectId:t});}beginLaunch(t){t==="manual"&&this.selectedIds().length===0||(this.launchError.set(null),this.confirmation.set(null),this.confirmationBatchId.set(null),this.launchMode.set(t),this.inputValues.set(ae(this.boundWorkflow()?.inputSchema??[])));}cancelLaunch(){this.launchMode.set(null),this.launchError.set(null);}setInputValues(t){this.inputValues.set(t);}launch(){let t=this.view(),e=this.boundWorkflow(),n=this.launchMode();if(!t||!e||!n)return;let s=n==="view"?{mode:"view",viewId:t.id}:{mode:"manual",subjectType:t.subjectType,subjectIds:[...this.selectedIds()]};this.launching.set(true),this.launchError.set(null),this.batchesApi.launch({workflowId:e.id,selection:s,triggeredBy:n==="view"?"view_bulk":"multiselect",inputValues:r$1({},this.inputValues())}).pipe(ue(this.destroyRef)).subscribe({next:w=>{this.launching.set(false),this.confirmation.set(this.confirmationMessage(w)),this.confirmationBatchId.set(w.kind==="batch"?w.batch.id:null),this.launchMode.set(null),this.refreshLatest(t.workflowId,this.subjects().map(tt=>tt.id));},error:w=>{this.launching.set(false),this.launchError.set(this.errorMessage(w,this.transloco.translate("views.detail.launchFailed")));}});}confirmationMessage(t){return t.kind==="batch"?this.transloco.translate("views.detail.confirmation.batch",{id:t.batch.id,count:t.batch.jobIds.length}):this.transloco.translate("views.detail.confirmation.job",{id:t.job.id})}load(t){this.loading.set(true),this.loadError.set(null),this.selectedIds.set([]),this.launchMode.set(null),this.confirmation.set(null),this.confirmationBatchId.set(null),Ng({view:this.viewsApi.get(t),subjects:this.viewsApi.getSubjects(t),workflows:this.workflowsApi.list()}).pipe(ue(this.destroyRef)).subscribe({next:({view:e,subjects:n,workflows:s})=>{this.view.set(e),this.subjects.set(n),this.workflows.set(s),this.loading.set(false),this.refreshLatest(e.workflowId,n.map(w=>w.id));},error:e=>{this.loading.set(false),this.loadError.set(this.errorMessage(e,this.transloco.translate("views.detail.loadFailed")));}});}refreshLatest(t,e){(e.length===0?Dg({}):this.jobsApi.latestBySubject(t,e)).pipe(ue(this.destroyRef)).subscribe({next:s=>this.latestBySubject.set(s),error:()=>this.latestBySubject.set({})});}errorMessage(t,e){return t instanceof bi||t instanceof Error?t.message:e}static{this.\u0275fac=function(e){return new(e||i)};}static{this.\u0275cmp=ZE({type:i,selectors:[["app-view-detail"]],decls:4,vars:1,consts:[["data-testid","view-detail",1,"detail-page"],["data-testid","loading"],["data-testid","load-error",1,"error"],[1,"header"],["data-testid","view-name"],["nz-button","","nzType","primary","type","button","data-testid","run-on-all",3,"click","disabled"],["data-testid","launch-panel",1,"launch-panel"],["data-testid","empty-subjects",1,"muted"],[3,"rows","selectable","showRowAction"],["data-testid","launch-confirmation","nzType","success",3,"nzMessage"],["nz-button","","nzType","link","data-testid","open-batch",3,"routerLink"],["data-testid","no-bulk-workflows",1,"muted"],["data-testid","launch-workflow",1,"muted"],[3,"valuesChange","fields","values"],["data-testid","launch-error",1,"error"],[1,"launch-actions"],["nz-button","","nzType","primary","type","button","data-testid","launch-submit",3,"click","nzLoading","disabled"],["nz-button","","type","button","data-testid","launch-cancel",3,"click"],[3,"rowAction","bulkAction","rows","selectable","showRowAction"]],template:function(e,n){if(e&1&&(_i(0,"main",0),_D(1,it,3,3,"p",1)(2,nt,2,1,"p",2)(3,pt,10,8),Jc()),e&2){let s;gI(),MD(n.loading()?1:n.loadError()?2:(s=n.view())?3:-1,s);}},dependencies:[$8,v3,Gn,un,pf,bd,sp,fp,le,we,Kt],styles:[".detail-page[_ngcontent-%COMP%]{padding:1.25rem 1.5rem 3rem;display:flex;flex-direction:column;gap:1rem}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:1rem;align-items:center}.header[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.35rem;min-width:14rem}.field[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.85rem;color:#57534e}.launch-panel[_ngcontent-%COMP%]{padding:1rem;border:1px solid #d6d3d1;background:#ffffffb3}.launch-panel[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0 0 .75rem;font-size:1.1rem}.launch-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;margin-top:.5rem}.muted[_ngcontent-%COMP%]{color:#78716c}.error[_ngcontent-%COMP%]{color:#9f1239}.actions[_ngcontent-%COMP%]{white-space:nowrap}[_nghost-%COMP%] .ant-table-tbody>tr>td{white-space:normal;vertical-align:top}"]});}}return i})();export{zt as ViewDetailComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {a7 as KE,a8 as fu,C,bf as _r,br as pn,b as at$1,bu as ml,cz as A,bg as Ci,cl as Vi,dj as lt$1,q as qo,U as Uw,a5 as q0,av as K0,ab as Oe,bw as Gw,bh as Bt$1,bv as pl,bp as de,ba as Se,cG as mt,by as Qr,dk as Me,u as ue,T as id,ag as Ql,bD as hl,bC as il,bR as eD,bj as Nw,bE as fn,bF as oD,bG as ir,m as mh,D as ch,aG as lw,al as Sh,bx as z0,ac as Er,a6 as U0,r as r$1,bz as tl,b9 as Nl,aD as Nr,dl as Zr,bB as Xf,Z as ZE,a3 as Ah,a4 as Th,Y as pf,a0 as bd,a1 as sp,a2 as fp,au as w5,aj as $D,l as _D,aw as rh,aT as Vw,M as MD,bl as wo,bJ as Dh,bI as zD,dm as tp,dn as Ai,dp as Zl,dq as np,bb as er,f as rl,dr as jc,ds as td,ai as ly,aE as J0,x as xD,aO as SD,B as AD,bk as St$1,ax as Eh,an as WD,ao as GD,bK as W0,H as HD,aH as QD,w as lh,j as _i,J as Jc,o as gI,ak as UD,G as FD,O as Fu,Q as ju,k as iE,y as aE,ck as $h,dt as Cw,I as Iw,L as Lh,n as uh,E as Aw,du as bw,z as rl$1}from'./main-CHQMTVIP.js';var nt=new A("");var ht=["otpInput"];function gt(t,o){if(t&1){let e=FD();_i(0,"input",2,0),mh("input",function(i){let r=Fu(e).$index,l=HD();return ju(l.onInput(r,i))})("focus",function(i){Fu(e);let r=HD();return ju(r.onFocus(i))})("keydown",function(i){let r=Fu(e).$index,l=HD();return ju(l.onKeyDown(r,i))})("paste",function(i){let r=Fu(e).$index,l=HD();return ju(l.onPaste(r,i))}),Jc(),iE();}if(t&2){let e=o.$implicit,n=HD();lh("nzSize",n.nzSize)("formControl",e)("nzStatus",n.nzStatus),aE();}}var _t=[[["","nzInputAddonBefore",""]],[["","nzInputAddonAfter",""]],[["","nzInputSearchEnterButton",""]],[["","nzInputPrefix",""]],[["","nzInputSuffix",""]],[["","nzInputClearIcon",""]],[["","nz-input",""]]],vt=["[nzInputAddonBefore]","[nzInputAddonAfter]","[nzInputSearchEnterButton]","[nzInputPrefix]","[nzInputSuffix]","[nzInputClearIcon]","[nz-input]"],Ct=t=>({$implicit:t});function zt(t,o){}function bt(t,o){if(t&1&&rh(0,zt,0,0,"ng-template",4),t&2){HD();let e=QD(4);lh("ngTemplateOutlet",e);}}function yt(t,o){}function Nt(t,o){if(t&1&&rh(0,yt,0,0,"ng-template",4),t&2){HD();let e=QD(8);lh("ngTemplateOutlet",e);}}function Dt(t,o){}function xt(t,o){if(t&1&&rh(0,Dt,0,0,"ng-template",4),t&2){HD();let e=QD(10);lh("ngTemplateOutlet",e);}}function Mt(t,o){if(t&1&&Iw(0),t&2){let e=HD(3);Lh(e.nzAddonBefore());}}function St(t,o){t&1&&(_i(0,"span",6),UD(1,0,null,Mt,1,1),Jc());}function It(t,o){}function wt(t,o){if(t&1&&rh(0,It,0,0,"ng-template",4),t&2){HD(2);let e=QD(6);lh("ngTemplateOutlet",e);}}function At(t,o){}function Et(t,o){if(t&1&&rh(0,At,0,0,"ng-template",4),t&2){HD(2);let e=QD(10);lh("ngTemplateOutlet",e);}}function Tt(t,o){if(t&1&&Iw(0),t&2){HD(2);let e=bw(0);rl$1(" ",e," ");}}function Ft(t,o){t&1&&uh(0,"nz-icon",9);}function Vt(t,o){if(t&1&&_D(0,Tt,1,1)(1,Ft,1,0,"nz-icon",9),t&2){HD();let e=bw(0);MD(e&&typeof e=="string"?0:1);}}function Rt(t,o){if(t&1){let e=FD();$h(0),_i(1,"button",8),mh("click",function(i){Fu(e);let r=HD(3);return ju(r.inputSearchDir.search(i))}),UD(2,2,null,Vt,2,1),Jc();}if(t&2){let e=HD(3),n=Cw(e.inputSearchDir.nzEnterButton()),i=e.inputSearchEnterButton()??n!==false;gI(),lh("nzType",i?"primary":"default")("nzSize",e.size())("nzLoading",e.inputSearchDir.nzLoading());}}function kt(t,o){if(t&1&&Iw(0),t&2){let e=HD(3);Lh(e.nzAddonAfter());}}function Pt(t,o){if(t&1&&(_i(0,"span",6),_D(1,Rt,4,4,"button",7),UD(2,1,null,kt,1,1),Jc()),t&2){let e=HD(2);gI(),MD(e.inputSearchDir?1:-1);}}function Ot(t,o){if(t&1&&(_i(0,"span",5),_D(1,St,3,0,"span",6),_D(2,wt,1,1,null,4)(3,Et,1,1,null,4),_D(4,Pt,4,1,"span",6),Jc()),t&2){let e=HD();gI(),MD(e.hasAddonBefore()?1:-1),gI(),MD(e.hasAffix()?2:3),gI(2),MD(e.hasAddonAfter()?4:-1);}}function Bt(t,o){}function Wt(t,o){if(t&1&&(_i(0,"span"),rh(1,Bt,0,0,"ng-template",4),Jc()),t&2){let e=HD(),n=QD(8);lw(e.affixWrapperClass()),gI(),lh("ngTemplateOutlet",n);}}function Lt(t,o){if(t&1&&Iw(0),t&2){let e=HD(3);Lh(e.nzPrefix());}}function jt(t,o){t&1&&(_i(0,"span",10),UD(1,3,null,Lt,1,1),Jc());}function $t(t,o){}function qt(t,o){t&1&&uh(0,"nz-icon",17);}function Ut(t,o){if(t&1){let e=FD();_i(0,"span",16),mh("click",function(i){Fu(e);let r=HD(3);return r.clear(),ju(r.inputSearchDir?.search(i,"clear"))}),UD(1,5,null,qt,1,0),Jc();}if(t&2){let e=HD(3);Sh("ant-input-clear-icon-has-suffix",e.nzSuffix()||e.suffix()||e.hasFeedback()||e.inputPasswordDir?.nzVisibilityToggle())("ant-input-clear-icon-hidden",!e.inputDir().value()||e.disabled()||e.readOnly());}}function Ht(t,o){if(t&1&&(_i(0,"span",13),Iw(1),Jc()),t&2){let e=HD(3);gI(),Lh(e.dataCount());}}function Gt(t,o){}function Qt(t,o){if(t&1&&rh(0,Gt,0,0,"ng-template",19),t&2){let e=HD(4);lh("ngTemplateOutlet",o)("ngTemplateOutletContext",Aw(2,Ct,e.inputPasswordDir.nzVisible()));}}function Zt(t,o){if(t&1&&uh(0,"nz-icon",20),t&2){let e=HD(4);lh("nzType",e.inputPasswordDir.nzVisible()?"eye":"eye-invisible");}}function Kt(t,o){if(t&1){let e=FD();_i(0,"span",18),mh("click",function(){Fu(e);let i=HD(3);return ju(i.inputPasswordDir.toggleVisible())}),_D(1,Qt,1,4,null,19)(2,Zt,1,1,"nz-icon",20),Jc();}if(t&2){let e,n=HD(3);gI(),MD((e=n.inputPasswordIconTmpl())?1:2,e);}}function Xt(t,o){if(t&1&&Iw(0),t&2){let e=HD(3);Lh(e.nzSuffix());}}function Yt(t,o){if(t&1&&uh(0,"nz-form-item-feedback-icon",15),t&2){let e=HD(3);lh("status",e.status());}}function Jt(t,o){if(t&1&&(_i(0,"span",11),_D(1,Ut,3,4,"span",12),_D(2,Ht,2,1,"span",13),_D(3,Kt,3,1,"span",14),UD(4,4,null,Xt,1,1),_D(6,Yt,1,1,"nz-form-item-feedback-icon",15),Jc()),t&2){let e=HD(2);gI(),MD(e.nzAllowClear()?1:-1),gI(),MD(e.nzShowCount()?2:-1),gI(),MD(e.inputPasswordDir&&e.inputPasswordDir.nzVisibilityToggle()?3:-1),gI(3),MD(e.hasFeedback()&&e.status()?6:-1);}}function en(t,o){if(t&1&&(_D(0,jt,3,0,"span",10),rh(1,$t,0,0,"ng-template",4),_D(2,Jt,7,4,"span",11)),t&2){let e=HD(),n=QD(10);MD(e.hasPrefix()?0:-1),gI(),lh("ngTemplateOutlet",n),gI(),MD(e.hasSuffix()?2:-1);}}function tn(t,o){t&1&&UD(0,6);}var it=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["","nzInputAddonBefore",""]]})}return t})(),rt=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["","nzInputAddonAfter",""]]})}return t})(),ot=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["","nzInputPrefix",""]]})}return t})(),at=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["","nzInputSuffix",""]]})}return t})(),lt=(()=>{class t{nzVisibilityToggle=q0(true);nzVisible=W0(false);toggleVisible(){this.nzVisible.update(e=>!e);}static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["nz-input-password"]],hostAttrs:[1,"ant-input-password"],inputs:{nzVisibilityToggle:[1,"nzVisibilityToggle"],nzVisible:[1,"nzVisible"]},outputs:{nzVisible:"nzVisibleChange"},exportAs:["nzInputPassword"]})}return t})(),st=(()=>{class t{static ngTemplateContextGuard(e,n){return true}static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["","nzInputPasswordIcon",""]]})}return t})(),dt=new A(""),ct=new A(""),nn="ant-input",z=(()=>{class t{elementRef=C(_r);compactSize=C(pn,{optional:true});destroyRef=C(at$1);nzFormStatusService=C(ml,{optional:true});inputWrapper=C(dt,{host:true,optional:true});focusMonitor=C(Ci);hostView=C(Vi);inputPasswordDir=C(lt,{host:true,optional:true});inputSearchDir=C(ct,{host:true,optional:true});formField=C(nt,{self:true,optional:true});ngControl=C(lt$1,{self:true,optional:true});nativeValue=qo(this.elementRef.nativeElement.value);value=Uw(()=>this.formField?String(this.formField.state().value()??""):this.nativeValue());nzVariant=q0();nzSize=q0("default");nzStatus=q0("");disabled=q0(false,{transform:K0});readonly=q0(false,{transform:K0});controlDisabled=qo(false);finalDisabled=Uw(()=>this.formField?this.formField.state().disabled():this.ngControl?this.controlDisabled():this.disabled());dir=C(Oe).valueSignal;size=Gw(this.nzSize);formSize=C(Bt$1,{optional:true});formVariant=C(pl,{optional:true});status=this.nzFormStatusService?de(this.nzFormStatusService.formStatusChanges.pipe(Se(e=>e.status)),{initialValue:""}):this.nzStatus;hasFeedback=de(this.nzFormStatusService?.formStatusChanges.pipe(Se(e=>e.hasFeedback))??mt,{initialValue:false});classes=Uw(()=>Qr(nn,this.status(),this.hasFeedback()));type=Uw(()=>this.inputPasswordDir?this.inputPasswordDir.nzVisible()?"text":"password":this.inputSearchDir?"search":this.elementRef.nativeElement.getAttribute("type")||"text");focused=qo(false);finalSize=Uw(()=>this.formSize?.()?this.formSize():this.compactSize?this.compactSize():this.size());finalVariant=Uw(()=>this.nzVariant()||this.formVariant?.()||"outlined");feedbackRef=null;disabled$=Me(this.finalDisabled);constructor(){this.destroyRef.onDestroy(()=>{this.focusMonitor.stopMonitoring(this.elementRef);}),this.focusMonitor.monitor(this.elementRef,false).pipe(ue()).subscribe(e=>this.focused.set(!!e)),id(()=>{this.renderFeedbackIcon();});}ngOnInit(){this.ngControl?.statusChanges?.pipe(Ql(null),ue(this.destroyRef)).subscribe(()=>{this.controlDisabled.set(!!this.ngControl.disabled);}),this.ngControl?.valueChanges?.pipe(Ql(this.ngControl?.control?.value),ue(this.destroyRef)).subscribe(e=>{this.nativeValue.set(e??"");});}onInput(e){this.nativeValue.set(e.target.value);}renderFeedbackIcon(){if(!this.status()||!this.hasFeedback()||this.inputWrapper){this.hostView.clear(),this.feedbackRef=null;return}this.feedbackRef=this.feedbackRef||this.hostView.createComponent(hl),this.feedbackRef.location.nativeElement.classList.add("ant-input-suffix"),this.feedbackRef.setInput("status",this.status());}focus(e){il(this.elementRef.nativeElement,e);}blur(){this.elementRef.nativeElement.blur();}static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["input","nz-input",""],["textarea","nz-input",""]],hostAttrs:[1,"ant-input"],hostVars:23,hostBindings:function(n,i){n&1&&mh("input",function(l){return i.onInput(l)}),n&2&&(ch("type",i.type())("disabled",i.finalDisabled()||null)("readonly",i.readonly()||null),lw(i.classes()),Sh("ant-input-disabled",i.finalDisabled())("ant-input-outlined",i.finalVariant()==="outlined")("ant-input-borderless",i.finalVariant()==="borderless")("ant-input-filled",i.finalVariant()==="filled")("ant-input-underlined",i.finalVariant()==="underlined")("ant-input-lg",i.finalSize()==="large")("ant-input-sm",i.finalSize()==="small")("ant-input-rtl",i.dir()==="rtl")("ant-input-focused",i.focused()));},inputs:{nzVariant:[1,"nzVariant"],nzSize:[1,"nzSize"],nzStatus:[1,"nzStatus"],disabled:[1,"disabled"],readonly:[1,"readonly"]},exportAs:["nzInput"],features:[Nw([{provide:fn,useValue:"input"}]),oD([ir])]})}return t})(),rn=(()=>{class t{formBuilder=C(tp);destroyRef=C(at$1);otpInputs;nzLength=6;nzSize="default";disabled=false;nzStatus="";nzFormatter=e=>e;nzMask=null;otpArray;internalValue=[];onChangeCallback;onTouched=()=>{};constructor(){this.createFormArray();}ngOnChanges(e){e.nzLength?.currentValue&&this.createFormArray(),e.disabled&&this.setDisabledState(this.disabled);}onInput(e,n){let i=n.target,r=this.otpInputs.toArray()[e+1];i.value&&r?r.nativeElement.focus():r||this.selectInputBox(e);}onFocus(e){e.target.select();}onKeyDown(e,n){let i=this.otpInputs.toArray()[e-1];n.keyCode===8?(n.preventDefault(),this.internalValue[e]="",this.otpArray.at(e).setValue("",{emitEvent:false}),i&&this.selectInputBox(e-1),this.emitValue()):n.keyCode===37?(n.preventDefault(),this.selectInputBox(e-1)):n.keyCode===39&&(n.preventDefault(),this.selectInputBox(e+1));}writeValue(e){if(!e){this.otpArray.reset();return}let n=e.split("");this.internalValue=n,n.forEach((i,r)=>{let l=this.nzFormatter(i),G=this.nzMask?this.nzMask:l;this.otpArray.at(r).setValue(G,{emitEvent:false});});}registerOnChange(e){this.onChangeCallback=e;}registerOnTouched(e){this.onTouched=e;}setDisabledState(e){e?this.otpArray.disable():this.otpArray.enable();}onPaste(e,n){let i=n.clipboardData?.getData("text")||"";if(!i)return;let r=e;for(let l of i.split(""))if(r<this.nzLength){let G=this.nzFormatter(l);this.internalValue[r]=l;let pt=this.nzMask?this.nzMask:G;this.otpArray.at(r).setValue(pt,{emitEvent:false}),r++;}else break;n.preventDefault(),this.selectInputBox(r),this.emitValue();}createFormArray(){this.otpArray=this.formBuilder.array([]),this.internalValue=new Array(this.nzLength).fill("");for(let e=0;e<this.nzLength;e++){let n=this.formBuilder.nonNullable.control("",[Ai.required]);n.valueChanges.pipe(Zl(i=>{let r=this.nzFormatter(i);this.internalValue[e]=r,n.setValue(this.nzMask??r,{emitEvent:false}),this.emitValue();}),ue(this.destroyRef)).subscribe(),this.otpArray.push(n);}}emitValue(){let e=this.internalValue.join("");this.onChangeCallback&&this.onChangeCallback(e);}selectInputBox(e){let n=this.otpInputs.toArray();e<=0&&(e=0),e>=n.length&&(e=n.length-1),n[e].nativeElement.select();}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=ZE({type:t,selectors:[["nz-input-otp"]],viewQuery:function(n,i){if(n&1&&Eh(ht,5),n&2){let r;WD(r=GD())&&(i.otpInputs=r);}},hostAttrs:[1,"ant-otp"],inputs:{nzLength:[2,"nzLength","nzLength",J0],nzSize:"nzSize",disabled:[2,"disabled","disabled",K0],nzStatus:"nzStatus",nzFormatter:"nzFormatter",nzMask:"nzMask"},exportAs:["nzInputOtp"],features:[Nw([{provide:St$1,useExisting:wo(()=>t),multi:true}]),ly],decls:2,vars:0,consts:[["otpInput",""],["nz-input","","type","text","maxlength","1","size","1",1,"ant-otp-input",3,"nzSize","formControl","nzStatus"],["nz-input","","type","text","maxlength","1","size","1",1,"ant-otp-input",3,"input","focus","keydown","paste","nzSize","formControl","nzStatus"]],template:function(n,i){n&1&&xD(0,gt,2,3,"input",1,SD),n&2&&AD(i.otpArray.controls);},dependencies:[z,np,er,rl,jc,td],encapsulation:2})}return t})(),on=(()=>{class t{inputDir=z0.required(z);inputRef=z0.required(z,{read:_r});nzEnterButton=q0(false);nzLoading=q0(false,{transform:K0});nzSearch=U0();size=Uw(()=>this.inputDir().nzSize());search(e,n="input"){this.nzLoading()||this.nzSearch.emit({value:this.inputRef().nativeElement.value,event:e,source:n});}onEnter(e){e.target===this.inputRef().nativeElement&&this.search(e);}static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["nz-input-search"]],contentQueries:function(n,i,r){n&1&&Dh(r,i.inputDir,z,5)(r,i.inputRef,z,5,_r),n&2&&zD(2);},hostAttrs:[1,"ant-input-search"],hostVars:6,hostBindings:function(n,i){n&1&&mh("keydown.enter",function(l){return i.onEnter(l)}),n&2&&Sh("ant-input-search-large",i.size()==="large")("ant-input-search-small",i.size()==="small")("ant-input-search-with-button",i.nzEnterButton()!==false);},inputs:{nzEnterButton:[1,"nzEnterButton"],nzLoading:[1,"nzLoading"]},outputs:{nzSearch:"nzSearch"},exportAs:["nzInputSearch"],features:[Nw([{provide:ct,useExisting:wo(()=>t)}])]})}return t})(),ut=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275dir=eD({type:t,selectors:[["","nzInputSearchEnterButton",""]]})}return t})(),an=(()=>{class t{focusMonitor=C(Ci);inputPasswordDir=C(lt,{self:true,optional:true});inputSearchDir=C(on,{self:true,optional:true});inputRef=z0.required(z,{read:_r});inputDir=z0.required(z);prefix=z0(ot);suffix=z0(at);addonBefore=z0(it);addonAfter=z0(rt);inputPasswordIconTmpl=z0(st,{read:Er});inputSearchEnterButton=z0(ut);nzAllowClear=q0(false,{transform:K0});nzPrefix=q0();nzSuffix=q0();nzAddonBefore=q0();nzAddonAfter=q0();nzShowCount=q0(false,{transform:K0});nzCount=q0();nzClear=U0();size=Uw(()=>this.inputDir().nzSize());variant=Uw(()=>this.inputDir().nzVariant());disabled=Uw(()=>this.inputDir().finalDisabled());readOnly=Uw(()=>this.inputDir().readonly());status=Uw(()=>this.inputDir().status());hasFeedback=Uw(()=>this.inputDir().hasFeedback());hasPrefix=Uw(()=>!!this.nzPrefix()||!!this.prefix());hasSuffix=Uw(()=>!!this.nzSuffix()||!!this.suffix()||this.nzAllowClear()||this.hasFeedback()||this.nzShowCount()||this.inputPasswordDir);hasAffix=Uw(()=>this.hasPrefix()||this.hasSuffix());hasAddonBefore=Uw(()=>!!this.nzAddonBefore()||!!this.addonBefore());hasAddonAfter=Uw(()=>!!this.nzAddonAfter()||!!this.addonAfter()||!!this.inputSearchDir);hasAddon=Uw(()=>this.hasAddonBefore()||this.hasAddonAfter());compactSize=C(pn,{optional:true});dir=C(Oe).valueSignal;focused=qo(false);isTextarea=Uw(()=>this.inputRef().nativeElement instanceof HTMLTextAreaElement);finalSize=Uw(()=>this.compactSize?this.compactSize():this.size());class=Uw(()=>this.hasAddon()?this.groupWrapperClass():this.hasAffix()?this.affixWrapperClass():null);affixWrapperClass=Uw(()=>r$1(r$1({"ant-input-affix-wrapper":true,"ant-input-affix-wrapper-lg":this.finalSize()==="large","ant-input-affix-wrapper-sm":this.finalSize()==="small","ant-input-affix-wrapper-disabled":this.disabled(),"ant-input-affix-wrapper-readonly":this.readOnly(),"ant-input-affix-wrapper-focused":this.focused(),"ant-input-affix-wrapper-rtl":this.dir()==="rtl"},Qr("ant-input-affix-wrapper",this.status(),this.hasFeedback())),tl("ant-input-affix-wrapper",this.variant())));groupWrapperClass=Uw(()=>r$1(r$1({"ant-input-group-wrapper":true,"ant-input-group-wrapper-sm":this.finalSize()==="small","ant-input-group-wrapper-lg":this.finalSize()==="large","ant-input-group-wrapper-rtl":this.dir()==="rtl"},Qr("ant-input-group-wrapper",this.status(),this.hasFeedback())),tl("ant-input-group-wrapper",this.variant())));inputValue=de(Me(this.inputDir).pipe(Nl(e=>{let n=e.ngControl;return n?(n.valueChanges??mt).pipe(Ql(n.value)):mt})));formattedValue=Uw(()=>{let e=this.nzCount(),n=this.inputValue(),i=e?.max??0,r=Nr(n)?String(n):"",l=r;return e?.exceedFormatter&&(l=e.exceedFormatter(r,{max:i})),l});computedCount=Uw(()=>{let e=this.nzCount(),n=this.formattedValue(),i=n.length;return e?.strategy&&(i=e.strategy(n)),i});dataCount=Uw(()=>{let e=this.nzCount(),n=this.computedCount(),i=e?.max;return `${n}${i?`/${i}`:""}`});isOutOfRange=Uw(()=>{let n=this.nzCount()?.max;return Zr(n)?this.computedCount()>n:false});constructor(){let e=C(at$1);Xf(()=>{let n=this.inputRef();this.focusMonitor.monitor(n).pipe(ue(e)).subscribe(i=>{this.focused.set(!!i);}),e.onDestroy(()=>{this.focusMonitor.stopMonitoring(n);});}),id(()=>{if(this.nzCount()){let n=this.inputValue(),i=this.formattedValue();Nr(n)&&i!==n&&this.inputDir().ngControl?.control?.setValue(i);}});}clear(){this.inputDir().ngControl?.control?.setValue(""),this.nzClear.emit();}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=ZE({type:t,selectors:[["nz-input-wrapper"],["nz-input-password"],["nz-input-search"]],contentQueries:function(n,i,r){n&1&&Dh(r,i.inputRef,z,5,_r)(r,i.inputDir,z,5)(r,i.prefix,ot,5)(r,i.suffix,at,5)(r,i.addonBefore,it,5)(r,i.addonAfter,rt,5)(r,i.inputPasswordIconTmpl,st,5,Er)(r,i.inputSearchEnterButton,ut,5),n&2&&zD(8);},hostVars:8,hostBindings:function(n,i){n&2&&(lw(i.class()),Sh("ant-input-disabled",i.disabled())("ant-input-out-of-range",i.nzShowCount()&&i.isOutOfRange())("ant-input-affix-wrapper-textarea-with-clear-btn",i.nzAllowClear()&&i.isTextarea()));},inputs:{nzAllowClear:[1,"nzAllowClear"],nzPrefix:[1,"nzPrefix"],nzSuffix:[1,"nzSuffix"],nzAddonBefore:[1,"nzAddonBefore"],nzAddonAfter:[1,"nzAddonAfter"],nzShowCount:[1,"nzShowCount"],nzCount:[1,"nzCount"]},outputs:{nzClear:"nzClear"},exportAs:["nzInputWrapper"],features:[Nw([{provide:fn,useValue:"input"},{provide:dt,useExisting:wo(()=>t)}]),oD([ir])],ngContentSelectors:vt,decls:11,vars:1,consts:[["inputWithAddonInner",""],["inputWithAffix",""],["inputWithAffixInner",""],["input",""],[3,"ngTemplateOutlet"],[1,"ant-input-wrapper","ant-input-group"],[1,"ant-input-group-addon"],["nz-button","","type","button",1,"ant-input-search-button",3,"nzType","nzSize","nzLoading"],["nz-button","","type","button",1,"ant-input-search-button",3,"click","nzType","nzSize","nzLoading"],["nzType","search","nzTheme","outline"],[1,"ant-input-prefix"],[1,"ant-input-suffix"],["role","button","tabindex","-1",1,"ant-input-clear-icon",3,"ant-input-clear-icon-has-suffix","ant-input-clear-icon-hidden"],[1,"ant-input-show-count-suffix"],["role","button","tabindex","-1",1,"ant-input-password-icon"],[3,"status"],["role","button","tabindex","-1",1,"ant-input-clear-icon",3,"click"],["nzType","close-circle","nzTheme","fill"],["role","button","tabindex","-1",1,"ant-input-password-icon",3,"click"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["nzTheme","outline",3,"nzType"]],template:function(n,i){n&1&&($D(_t),_D(0,bt,1,1,null,4)(1,Nt,1,1,null,4)(2,xt,1,1,null,4),rh(3,Ot,5,3,"ng-template",null,0,Vw)(5,Wt,2,3,"ng-template",null,1,Vw)(7,en,3,3,"ng-template",null,2,Vw)(9,tn,1,0,"ng-template",null,3,Vw)),n&2&&MD(i.hasAddon()?0:i.hasAffix()?1:2);},dependencies:[Ah,Th,pf,bd,sp,fp,hl,w5],encapsulation:2})}return t})();var ai=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=KE({type:t});static \u0275inj=fu({imports:[an,rn]})}return t})();export{ai as a,at as b,it as i,ot as o,rt as r,z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {C,b4 as N2,aV as ix,b_ as u,b5 as cx,i as ie}from'./main-CHQMTVIP.js';var b=(()=>{class r{constructor(){this.http=C(N2),this.baseUrl=`${ix.apiBaseUrl}/workflows`;}list(t){return this.http.get(this.baseUrl,{params:u(t)}).pipe(cx())}get(t){return this.http.get(`${this.baseUrl}/${encodeURIComponent(t)}`).pipe(cx())}create(t){return this.http.post(this.baseUrl,t).pipe(cx())}update(t,i){return this.http.patch(`${this.baseUrl}/${encodeURIComponent(t)}`,i).pipe(cx())}delete(t){return this.http.delete(`${this.baseUrl}/${encodeURIComponent(t)}`).pipe(cx())}exportDefinition(t){return this.http.get(`${this.baseUrl}/${encodeURIComponent(t)}/export`).pipe(cx())}importDefinition(t){return this.http.post(`${this.baseUrl}/import`,t).pipe(cx())}getInstructions(){return this.http.get(`${this.baseUrl}/instructions`,{responseType:"text"}).pipe(cx())}static{this.\u0275fac=function(i){return new(i||r)};}static{this.\u0275prov=ie({token:r,factory:r.\u0275fac,providedIn:"root"});}}return r})();export{b};
|