@camunda/task-testing 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +128 -58
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -362,18 +362,30 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
362
362
|
* except in compliance with the MIT License.
|
|
363
363
|
*/
|
|
364
364
|
|
|
365
|
-
|
|
366
|
-
|
|
365
|
+
/**
|
|
366
|
+
* @import {
|
|
367
|
+
* TaskExecutionApi,
|
|
368
|
+
* TaskExecutionResult,
|
|
369
|
+
* TaskExecutionError,
|
|
370
|
+
* TaskExecutionStatus } from './types';
|
|
371
|
+
*/
|
|
367
372
|
|
|
368
373
|
/**
|
|
369
|
-
* @import {
|
|
374
|
+
* @import {
|
|
375
|
+
* CreateProcessInstanceResponse,
|
|
376
|
+
* DeployResourceResponse
|
|
377
|
+
* } from '@camunda8/sdk/dist/c8/lib/C8Dto';
|
|
370
378
|
*/
|
|
371
379
|
|
|
380
|
+
|
|
381
|
+
const INTERVAL_MS = 1000;
|
|
382
|
+
|
|
372
383
|
/**
|
|
373
384
|
* Emits:
|
|
374
385
|
* - `taskExecution.status.changed` with one of {@link TaskExecutionStatus}
|
|
375
386
|
* - `taskExecution.finished` with {@link TaskExecutionResult}
|
|
376
387
|
* - `taskExecution.error` with {@link TaskExecutionError}
|
|
388
|
+
* - `taskExecution.interrupted` when execution is interrupted by switching focus
|
|
377
389
|
*/
|
|
378
390
|
class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
379
391
|
/**
|
|
@@ -386,9 +398,13 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
386
398
|
/** @type {TaskExecutionApi} */
|
|
387
399
|
this._api = api;
|
|
388
400
|
this._interval = null;
|
|
401
|
+
|
|
402
|
+
/** @type {TaskExecutionStatus} */
|
|
403
|
+
this._status = 'idle';
|
|
389
404
|
const eventBus = injector.get('eventBus');
|
|
390
405
|
eventBus.on(['selection.changed', 'commandStack.changed'], () => {
|
|
391
406
|
this.cancelTaskExecution();
|
|
407
|
+
this.emit('taskExecution.interrupted');
|
|
392
408
|
});
|
|
393
409
|
}
|
|
394
410
|
|
|
@@ -401,9 +417,12 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
401
417
|
* @returns {Promise<void>}
|
|
402
418
|
*/
|
|
403
419
|
async executeTask(elementId, variables) {
|
|
404
|
-
|
|
405
|
-
this.emit('taskExecution.status.changed', 'deploying');
|
|
420
|
+
this._changeStatus('deploying');
|
|
406
421
|
const deploymentResult = await this._api.deploy();
|
|
422
|
+
if (this._status === 'idle') {
|
|
423
|
+
// Execution was canceled in the meantime
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
407
426
|
if (!deploymentResult.success) {
|
|
408
427
|
this._emitError('Failed to deploy process definition', deploymentResult.error);
|
|
409
428
|
this.cancelTaskExecution();
|
|
@@ -415,8 +434,12 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
415
434
|
this.cancelTaskExecution();
|
|
416
435
|
return;
|
|
417
436
|
}
|
|
418
|
-
this.
|
|
437
|
+
this._changeStatus('starting-instance');
|
|
419
438
|
const startInstanceResult = await this._api.startInstance(processId, elementId, variables);
|
|
439
|
+
if (/** @type {TaskExecutionStatus} */this._status === 'idle') {
|
|
440
|
+
// Execution was canceled in the meantime
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
420
443
|
if (!startInstanceResult.success) {
|
|
421
444
|
this._emitError('Failed to start process instance', startInstanceResult.error);
|
|
422
445
|
this.cancelTaskExecution();
|
|
@@ -428,9 +451,14 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
428
451
|
this.cancelTaskExecution();
|
|
429
452
|
return;
|
|
430
453
|
}
|
|
431
|
-
this.
|
|
454
|
+
this._changeStatus('executing', processInstanceKey);
|
|
432
455
|
const intervalCallback = async () => {
|
|
433
456
|
const getProcessInstanceResult = await this._api.getProcessInstance(processInstanceKey);
|
|
457
|
+
if (this._status === 'idle') {
|
|
458
|
+
// Execution was canceled in the meantime
|
|
459
|
+
this.cancelTaskExecution();
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
434
462
|
if (!getProcessInstanceResult.success) {
|
|
435
463
|
this._emitError('Failed to get process instance', getProcessInstanceResult.error);
|
|
436
464
|
return;
|
|
@@ -445,6 +473,11 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
445
473
|
let incident = null;
|
|
446
474
|
if (hasIncident) {
|
|
447
475
|
const getProcessInstanceIncidentResult = await this._api.getProcessInstanceIncident(processInstanceKey);
|
|
476
|
+
if (/** @type {TaskExecutionStatus} */this._status === 'idle') {
|
|
477
|
+
// Execution was canceled in the meantime
|
|
478
|
+
this.cancelTaskExecution();
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
448
481
|
if (!getProcessInstanceIncidentResult.success) {
|
|
449
482
|
this._emitError('Failed to get process instance incident', getProcessInstanceIncidentResult.error);
|
|
450
483
|
return;
|
|
@@ -454,6 +487,11 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
454
487
|
const isCompleted = ['COMPLETED', 'TERMINATED', 'CANCELED'].includes(state);
|
|
455
488
|
if (isCompleted || hasIncident) {
|
|
456
489
|
const getProcessInstanceVariablesResult = await this._api.getProcessInstanceVariables(processInstanceKey);
|
|
490
|
+
if (/** @type {TaskExecutionStatus} */this._status === 'idle') {
|
|
491
|
+
// Execution was canceled in the meantime
|
|
492
|
+
this.cancelTaskExecution();
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
457
495
|
if (!getProcessInstanceVariablesResult.success) {
|
|
458
496
|
this._emitError('Failed to get process instance variables', getProcessInstanceVariablesResult.error);
|
|
459
497
|
return;
|
|
@@ -471,9 +509,7 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
471
509
|
}
|
|
472
510
|
|
|
473
511
|
/**
|
|
474
|
-
* Cancel current task execution, clean up and
|
|
475
|
-
* - `taskExecution.status.changed` with status `idle`
|
|
476
|
-
* - `taskExecution.canceled`
|
|
512
|
+
* Cancel current task execution, clean up and change status to `idle`.
|
|
477
513
|
*/
|
|
478
514
|
async cancelTaskExecution() {
|
|
479
515
|
// TODO: Proper clean up:
|
|
@@ -484,8 +520,7 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
484
520
|
if (this._interval) {
|
|
485
521
|
clearInterval(this._interval);
|
|
486
522
|
}
|
|
487
|
-
this.
|
|
488
|
-
this.emit('taskExecution.canceled');
|
|
523
|
+
this._changeStatus('idle');
|
|
489
524
|
}
|
|
490
525
|
|
|
491
526
|
/**
|
|
@@ -502,19 +537,25 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
502
537
|
};
|
|
503
538
|
this.emit('taskExecution.error', error);
|
|
504
539
|
}
|
|
540
|
+
|
|
541
|
+
/** @param {TaskExecutionStatus} status */
|
|
542
|
+
_changeStatus(status, ...args) {
|
|
543
|
+
if (this._status === status) {
|
|
544
|
+
return;
|
|
545
|
+
}
|
|
546
|
+
this._status = status;
|
|
547
|
+
this.emit('taskExecution.status.changed', status, ...args);
|
|
548
|
+
}
|
|
505
549
|
}
|
|
506
550
|
|
|
507
551
|
/**
|
|
508
552
|
* Get the process ID from the deployment response.
|
|
509
553
|
*
|
|
510
|
-
* @param {
|
|
554
|
+
* @param {DeployResourceResponse} response
|
|
511
555
|
*
|
|
512
556
|
* @returns {string|null} The process ID or null if not found.
|
|
513
557
|
*/
|
|
514
558
|
function getProcessId(response) {
|
|
515
|
-
if (!response) {
|
|
516
|
-
return null;
|
|
517
|
-
}
|
|
518
559
|
const {
|
|
519
560
|
processes = []
|
|
520
561
|
} = response;
|
|
@@ -529,14 +570,11 @@ function getProcessId(response) {
|
|
|
529
570
|
/**
|
|
530
571
|
* Get the process instance key from the response.
|
|
531
572
|
*
|
|
532
|
-
* @param {
|
|
573
|
+
* @param {CreateProcessInstanceResponse} response
|
|
533
574
|
*
|
|
534
575
|
* @returns {string|null} The process instance key or null if not found.
|
|
535
576
|
*/
|
|
536
577
|
function getProcessInstanceKey(response) {
|
|
537
|
-
if (!response) {
|
|
538
|
-
return null;
|
|
539
|
-
}
|
|
540
578
|
const {
|
|
541
579
|
processInstanceKey
|
|
542
580
|
} = response;
|
|
@@ -1120,25 +1158,23 @@ function ErrorBanner({
|
|
|
1120
1158
|
}) {
|
|
1121
1159
|
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
|
|
1122
1160
|
className: "output__error",
|
|
1123
|
-
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.
|
|
1124
|
-
className: "output__error--
|
|
1125
|
-
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
|
|
1131
|
-
children: title
|
|
1132
|
-
}), actionLabel && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_carbon_react__WEBPACK_IMPORTED_MODULE_1__.Link, {
|
|
1161
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
|
|
1162
|
+
className: "output__error--title",
|
|
1163
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
|
|
1164
|
+
children: title
|
|
1165
|
+
}), actionLabel && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
|
|
1166
|
+
className: "output__error--action",
|
|
1167
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_carbon_react__WEBPACK_IMPORTED_MODULE_1__.Link, {
|
|
1133
1168
|
href: actionUrl,
|
|
1134
1169
|
onClick: () => onActionClick(),
|
|
1135
1170
|
children: actionLabel
|
|
1136
|
-
})]
|
|
1137
|
-
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
|
|
1138
|
-
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
|
|
1139
|
-
children: description
|
|
1140
1171
|
})
|
|
1141
1172
|
})]
|
|
1173
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
|
|
1174
|
+
className: "output__error--content",
|
|
1175
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
|
|
1176
|
+
children: description
|
|
1177
|
+
})
|
|
1142
1178
|
})]
|
|
1143
1179
|
});
|
|
1144
1180
|
}
|
|
@@ -1317,7 +1353,7 @@ const NO_ELEMENT_TEXT = 'Select a task to start testing';
|
|
|
1317
1353
|
* @param {Function} [props.onConfigChanged=() => {}]
|
|
1318
1354
|
* @param {string} [props.operateBaseUrl]
|
|
1319
1355
|
* @param {Function} [props.onTaskExecution=() => {}]
|
|
1320
|
-
* @param {Function} [props.
|
|
1356
|
+
* @param {Function} [props.onTaskExecutionInterrupted=() => {}]
|
|
1321
1357
|
*/
|
|
1322
1358
|
function TaskTesting({
|
|
1323
1359
|
injector,
|
|
@@ -1331,7 +1367,7 @@ function TaskTesting({
|
|
|
1331
1367
|
onConfigChanged = () => {},
|
|
1332
1368
|
operateBaseUrl,
|
|
1333
1369
|
onTaskExecution = () => {},
|
|
1334
|
-
|
|
1370
|
+
onTaskExecutionInterrupted = () => {}
|
|
1335
1371
|
}) {
|
|
1336
1372
|
/**
|
|
1337
1373
|
* @type {React.RefObject<ElementVariables?>}
|
|
@@ -1471,13 +1507,13 @@ function TaskTesting({
|
|
|
1471
1507
|
taskExecutionRef === null || taskExecutionRef === void 0 || (_taskExecutionRef$cur = taskExecutionRef.current) === null || _taskExecutionRef$cur === void 0 || _taskExecutionRef$cur.on('taskExecution.finished', handleFinished);
|
|
1472
1508
|
taskExecutionRef === null || taskExecutionRef === void 0 || (_taskExecutionRef$cur2 = taskExecutionRef.current) === null || _taskExecutionRef$cur2 === void 0 || _taskExecutionRef$cur2.on('taskExecution.status.changed', handleStatusChange);
|
|
1473
1509
|
taskExecutionRef === null || taskExecutionRef === void 0 || (_taskExecutionRef$cur3 = taskExecutionRef.current) === null || _taskExecutionRef$cur3 === void 0 || _taskExecutionRef$cur3.on('taskExecution.error', handleError);
|
|
1474
|
-
taskExecutionRef === null || taskExecutionRef === void 0 || (_taskExecutionRef$cur4 = taskExecutionRef.current) === null || _taskExecutionRef$cur4 === void 0 || _taskExecutionRef$cur4.on('taskExecution.
|
|
1510
|
+
taskExecutionRef === null || taskExecutionRef === void 0 || (_taskExecutionRef$cur4 = taskExecutionRef.current) === null || _taskExecutionRef$cur4 === void 0 || _taskExecutionRef$cur4.on('taskExecution.interrupted', () => onTaskExecutionInterrupted());
|
|
1475
1511
|
return () => {
|
|
1476
1512
|
if (taskExecutionRef.current) {
|
|
1477
1513
|
taskExecutionRef.current.off('taskExecution.finished', handleFinished);
|
|
1478
1514
|
taskExecutionRef.current.off('taskExecution.status.changed', handleStatusChange);
|
|
1479
1515
|
taskExecutionRef.current.off('taskExecution.error', handleError);
|
|
1480
|
-
taskExecutionRef.current.off('taskExecution.
|
|
1516
|
+
taskExecutionRef.current.off('taskExecution.interrupted', () => onTaskExecutionInterrupted());
|
|
1481
1517
|
}
|
|
1482
1518
|
};
|
|
1483
1519
|
}, [element]);
|
|
@@ -1558,8 +1594,11 @@ function TaskTesting({
|
|
|
1558
1594
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)("div", {
|
|
1559
1595
|
className: "task-testing__container--header",
|
|
1560
1596
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)("div", {
|
|
1561
|
-
className: "task-
|
|
1562
|
-
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(
|
|
1597
|
+
className: "task-header",
|
|
1598
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("span", {
|
|
1599
|
+
className: "task-type",
|
|
1600
|
+
children: (0,_utils_element__WEBPACK_IMPORTED_MODULE_10__.getType)(element)
|
|
1601
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("span", {
|
|
1563
1602
|
children: (0,_utils_element__WEBPACK_IMPORTED_MODULE_10__.getName)(element)
|
|
1564
1603
|
})]
|
|
1565
1604
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_carbon_react__WEBPACK_IMPORTED_MODULE_1__.Tooltip, {
|
|
@@ -2003,7 +2042,8 @@ function hasPropertyAfter(state, pos) {
|
|
|
2003
2042
|
|
|
2004
2043
|
__webpack_require__.r(__webpack_exports__);
|
|
2005
2044
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2006
|
-
/* harmony export */ getName: () => (/* binding */ getName)
|
|
2045
|
+
/* harmony export */ getName: () => (/* binding */ getName),
|
|
2046
|
+
/* harmony export */ getType: () => (/* binding */ getType)
|
|
2007
2047
|
/* harmony export */ });
|
|
2008
2048
|
/* harmony import */ var bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ "./node_modules/bpmn-js/lib/util/ModelUtil.js");
|
|
2009
2049
|
|
|
@@ -2024,6 +2064,40 @@ function getName(element) {
|
|
|
2024
2064
|
return name;
|
|
2025
2065
|
}
|
|
2026
2066
|
|
|
2067
|
+
/**
|
|
2068
|
+
* Get the name of a BPMN element.
|
|
2069
|
+
*
|
|
2070
|
+
* @param {import('../types').Element} element
|
|
2071
|
+
*
|
|
2072
|
+
* @returns {string}
|
|
2073
|
+
*/
|
|
2074
|
+
function getType(element) {
|
|
2075
|
+
const businessObject = (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element);
|
|
2076
|
+
const {
|
|
2077
|
+
$type: type
|
|
2078
|
+
} = businessObject;
|
|
2079
|
+
switch (type) {
|
|
2080
|
+
case 'bpmn:Task':
|
|
2081
|
+
return 'Task';
|
|
2082
|
+
case 'bpmn:UserTask':
|
|
2083
|
+
return 'User Task';
|
|
2084
|
+
case 'bpmn:ScriptTask':
|
|
2085
|
+
return 'Script Task';
|
|
2086
|
+
case 'bpmn:ServiceTask':
|
|
2087
|
+
return 'Service Task';
|
|
2088
|
+
case 'bpmn:BusinessRuleTask':
|
|
2089
|
+
return 'Business Rule Task';
|
|
2090
|
+
case 'bpmn:SendTask':
|
|
2091
|
+
return 'Send Task';
|
|
2092
|
+
case 'bpmn:ManualTask':
|
|
2093
|
+
return 'Manual Task';
|
|
2094
|
+
case 'bpmn:ReceiveTask':
|
|
2095
|
+
return 'Receive Task';
|
|
2096
|
+
default:
|
|
2097
|
+
return 'Task';
|
|
2098
|
+
}
|
|
2099
|
+
}
|
|
2100
|
+
|
|
2027
2101
|
/***/ }),
|
|
2028
2102
|
|
|
2029
2103
|
/***/ "./node_modules/@bpmn-io/extract-process-variables/zeebe/index.mjs":
|
|
@@ -32526,11 +32600,13 @@ ___CSS_LOADER_EXPORT___.push([module.id, `.task-testing__container {
|
|
|
32526
32600
|
gap: 12px;
|
|
32527
32601
|
width: 100%;
|
|
32528
32602
|
}
|
|
32529
|
-
.task-testing__container .task-testing__container--header .task-
|
|
32603
|
+
.task-testing__container .task-testing__container--header .task-header {
|
|
32530
32604
|
display: flex;
|
|
32531
|
-
font-weight: bold;
|
|
32532
32605
|
gap: 6px;
|
|
32533
32606
|
}
|
|
32607
|
+
.task-testing__container .task-testing__container--header .task-header .task-type {
|
|
32608
|
+
font-weight: bold;
|
|
32609
|
+
}
|
|
32534
32610
|
.task-testing__container .task-testing__container--header .btn-execute {
|
|
32535
32611
|
width: 138px;
|
|
32536
32612
|
}
|
|
@@ -32613,7 +32689,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `.task-testing__container {
|
|
|
32613
32689
|
}
|
|
32614
32690
|
.task-testing__container .output .output__error {
|
|
32615
32691
|
display: flex;
|
|
32616
|
-
flex-direction:
|
|
32692
|
+
flex-direction: column;
|
|
32617
32693
|
gap: 12px;
|
|
32618
32694
|
padding: 12px;
|
|
32619
32695
|
margin-bottom: 12px;
|
|
@@ -32621,24 +32697,18 @@ ___CSS_LOADER_EXPORT___.push([module.id, `.task-testing__container {
|
|
|
32621
32697
|
border-left-width: 3px;
|
|
32622
32698
|
background-color: #fff1f1;
|
|
32623
32699
|
}
|
|
32624
|
-
.task-testing__container .output .output__error .output__error--
|
|
32625
|
-
display: flex;
|
|
32626
|
-
flex-direction: column;
|
|
32627
|
-
gap: 6px;
|
|
32628
|
-
flex-grow: 1;
|
|
32629
|
-
margin-top: 1px;
|
|
32630
|
-
}
|
|
32631
|
-
.task-testing__container .output .output__error .output__error--content .output__error--title {
|
|
32700
|
+
.task-testing__container .output .output__error .output__error--title {
|
|
32632
32701
|
display: flex;
|
|
32633
|
-
|
|
32702
|
+
flex-direction: row;
|
|
32703
|
+
align-items: center;
|
|
32634
32704
|
font-weight: bold;
|
|
32635
32705
|
}
|
|
32636
|
-
.task-testing__container .output .output__error .output__error--
|
|
32637
|
-
cursor: pointer;
|
|
32638
|
-
}
|
|
32639
|
-
.task-testing__container .output .output__error .output__error--icon svg {
|
|
32706
|
+
.task-testing__container .output .output__error .output__error--title svg {
|
|
32640
32707
|
fill: #da1e28;
|
|
32641
32708
|
}
|
|
32709
|
+
.task-testing__container .output .output__error .output__error--title .output__error--action {
|
|
32710
|
+
margin-left: auto;
|
|
32711
|
+
}
|
|
32642
32712
|
.task-testing__container .output .output__variables--empty {
|
|
32643
32713
|
height: 32px;
|
|
32644
32714
|
display: flex;
|
|
@@ -32722,7 +32792,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `.task-testing__container {
|
|
|
32722
32792
|
}
|
|
32723
32793
|
.code__editor .code__editor-copy-button svg {
|
|
32724
32794
|
fill: #525252;
|
|
32725
|
-
}`, "",{"version":3,"sources":["webpack://./lib/style/style.scss"],"names":[],"mappings":"AAAA;EACE,aAAA;EACA,mBAAA;EACA,YAAA;EACA,WAAA;EACA,aAAA;EACA,eAAA;AACF;AAEI;;EAEE,aAAA;EACA,mBAAA;EACA,QAAA;EACA,YAAA;AAAN;AAEM;;EACE,oBAAA;EACA,uBAAA;AACR;AAIE;EACE,UAAA;EACA,aAAA;EACA,sBAAA;EACA,+BAAA;EACA,kBAAA;AAFJ;AAKE;EACE,UAAA;EACA,aAAA;EACA,sBAAA;EACA,iBAAA;AAHJ;AAME;EACE,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8BAAA;EACA,SAAA;EACA,WAAA;AAJJ;AAMI;EACE,aAAA;EACA,
|
|
32795
|
+
}`, "",{"version":3,"sources":["webpack://./lib/style/style.scss"],"names":[],"mappings":"AAAA;EACE,aAAA;EACA,mBAAA;EACA,YAAA;EACA,WAAA;EACA,aAAA;EACA,eAAA;AACF;AAEI;;EAEE,aAAA;EACA,mBAAA;EACA,QAAA;EACA,YAAA;AAAN;AAEM;;EACE,oBAAA;EACA,uBAAA;AACR;AAIE;EACE,UAAA;EACA,aAAA;EACA,sBAAA;EACA,+BAAA;EACA,kBAAA;AAFJ;AAKE;EACE,UAAA;EACA,aAAA;EACA,sBAAA;EACA,iBAAA;AAHJ;AAME;EACE,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,8BAAA;EACA,SAAA;EACA,WAAA;AAJJ;AAMI;EACE,aAAA;EACA,QAAA;AAJN;AAMM;EACE,iBAAA;AAJR;AAQI;EACE,YAAA;AANN;AASI;EACE,aAAA;AAPN;AAUI;EACE,aAAA;AARN;AAWI;EACE,oBAAA;EACA,uBAAA;AATN;AAaE;EACE,YAAA;EACA,aAAA;EACA,sBAAA;EACA,QAAA;AAXJ;AAaI;EACE,aAAA;EACA,mBAAA;EACA,QAAA;AAXN;AAcI;EACE,cAAA;AAZN;AAgBE;EACE,YAAA;EACA,aAAA;EACA,sBAAA;EACA,QAAA;AAdJ;AAgBI;EACE,aAAA;EACA,mBAAA;EACA,YAAA;EACA,WAAA;AAdN;AAiBI;EACE,cAAA;EACA,aAAA;EACA,mBAAA;EACA,QAAA;AAfN;AAiBM;EACE,aAAA;AAfR;AAkBM;EACE,aAAA;AAhBR;AAmBM;EACE,aAAA;AAjBR;AAoBM;EACE,iBAAA;EACA,uBAAA;AAlBR;AAsBI;EACE,iBAAA;AApBN;AAuBI;EACE,aAAA;EACA,sBAAA;EACA,YAAA;EACA,kBAAA;AArBN;AAuBM;EACE,oCAAA;AArBR;AAwBM;EACE,UAAA;EACA,yBAAA;AAtBR;AAyBM;EACE,aAAA;AAvBR;AA2BM;EACE,aAAA;AAzBR;AA6BI;EACE,aAAA;EACA,sBAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,yBAAA;EACA,sBAAA;EACA,yBAAA;AA3BN;AA6BM;EACE,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,iBAAA;AA3BR;AA6BQ;EACE,aAAA;AA3BV;AA8BQ;EACE,iBAAA;AA5BV;AAiCI;EACE,YAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;AA/BN;AAkCI;EACE,iBAAA;AAhCN;AAmCI;EACE,WAAA;AAjCN;AAoCI;EACE,qBAAA;EACA,YAAA;AAlCN;AAqCI;EACE,eAAA;AAnCN;;AAwCA;EACE,kBAAA;EACA,YAAA;EACA,aAAA;EACA,sBAAA;AArCF;AAuCE;EACE,0BAAA;EACA,oBAAA;AArCJ;AAwCE;EACE,kBAAA;EACA,YAAA;AAtCJ;AAwCI;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;AAtCN;AAwCM;EACE,YAAA;EACA,2CAAA;AAtCR;AAyCM;EACE,2BAAA;AAvCR;AA0CM;EACE,aAAA;AAxCR;AA2CM;EACE,aAAA;AAzCR;AA4CM;EACE,eAAA;AA1CR;AA6CM;EACE,YAAA;EACA,sBAAA;EACA,eAAA;EACA,gBAAA;EACA,qBAAA;AA3CR;AA6CQ;EACE,kBAAA;AA3CV;AA8CQ;EACE,eAAA;AA5CV;AAkDE;EACE,cAAA;EACA,eAAA;EACA,eAAA;AAhDJ;AAmDE;EACE,kBAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;AAjDJ;AAmDI;EACE,aAAA;AAjDN","sourcesContent":[".task-testing__container {\n display: flex;\n flex-direction: row;\n height: 100%;\n width: 100%;\n padding: 10px;\n font-size: 14px;\n\n &.task-testing__container--empty {\n .task-testing__container-no-config,\n .task-testing__container-no-element {\n display: flex;\n align-items: center;\n gap: 5px;\n height: 32px;\n\n .cds--inline-loading {\n inline-size: initial;\n min-block-size: initial;\n }\n }\n }\n\n .task-testing__container--left {\n width: 50%;\n display: flex;\n flex-direction: column;\n border-right: 1px solid #E0E0E0;\n padding-right: 6px;\n }\n\n .task-testing__container--right {\n width: 50%;\n display: flex;\n flex-direction: column;\n padding-left: 6px;\n }\n\n .task-testing__container--header {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n width: 100%;\n\n .task-header {\n display: flex;\n gap: 6px;\n \n .task-type {\n font-weight: bold;\n }\n }\n\n .btn-execute {\n width: 138px;\n }\n\n .cds--popover-container:not(.has-error) .cds--popover {\n display: none;\n }\n\n .cds--tooltip-content {\n padding: 12px;\n }\n\n .cds--btn .cds--inline-loading {\n inline-size: initial;\n min-block-size: initial;\n }\n }\n\n .input {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n gap: 5px;\n\n .input__header {\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n .input__header--title {\n color: #525252;\n }\n }\n\n .output {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n gap: 5px;\n\n .output__header {\n display: flex;\n align-items: center;\n height: 32px;\n width: 100%;\n }\n\n .output__header--title {\n color: #525252;\n display: flex;\n align-items: center;\n gap: 6px;\n\n svg.output__status-icon--ready {\n fill: #0043ce;\n }\n\n svg.output__status-icon--success {\n fill: #24a148;\n }\n\n svg.output__status-icon--error {\n fill: #da1e28;\n }\n\n .cds--inline-loading {\n inline-size: 16px;\n min-block-size: initial;\n }\n }\n\n .output__header--button-operate {\n margin-left: auto;\n }\n\n .output__body {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n position: relative;\n\n .cds--tabs {\n --cds-layout-size-height-local: 32px;\n }\n \n .cds--tab-content {\n padding: 0;\n height: calc(100% - 20px);\n }\n\n .cds--tab-content:not([hidden]) {\n display: flex;\n }\n\n // Tooltip on Carbon Button with absolute position is broken.\n .cds--popover {\n display: none;\n }\n }\n\n .output__error {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n margin-bottom: 12px;\n border: 1px solid #da1e28;\n border-left-width: 3px;\n background-color: #fff1f1;\n\n .output__error--title {\n display: flex;\n flex-direction: row;\n align-items: center;\n font-weight: bold;\n\n svg {\n fill: #da1e28;\n }\n\n .output__error--action {\n margin-left: auto;\n }\n }\n }\n\n .output__variables--empty {\n height: 32px;\n display: flex;\n align-items: center;\n color: #525252;\n }\n\n .output__variables--empty-action {\n font-weight: bold;\n }\n\n .cds--snippet-container {\n width: 100%;\n }\n\n .cds--snippet {\n max-inline-size: 100%;\n height: 100%;\n }\n\n code {\n font-size: 14px;\n }\n }\n}\n\n.code__editor {\n position: relative;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n\n &.code__editor--error .code__editor-codemirror .code__editor-codemirror-inner .cm-editor {\n outline: 1px solid #da1e28;\n outline-offset: -1px;\n }\n\n .code__editor-codemirror {\n position: relative;\n flex-grow: 1;\n\n .code__editor-codemirror-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n .cm-editor {\n height: 100%;\n background-color: var(--cds-layer, #f4f4f4);\n }\n\n .cm-scroller {\n overflow-y: auto !important;\n }\n\n .cm-content {\n padding: 15px;\n }\n\n .cm-focused {\n outline: none;\n }\n\n .cm-tooltip {\n font-size: 14px;\n }\n\n .info {\n padding: 5px;\n font-family: monospace;\n font-size: 12px;\n max-width: 300px;\n word-wrap: break-word;\n\n span {\n font-style: italic;\n }\n\n pre {\n margin-top: 5px;\n }\n }\n }\n }\n\n .code__editor-error {\n color: #da1e28;\n font-size: 13px;\n margin-top: 5px;\n }\n\n .code__editor-copy-button {\n position: absolute;\n top: 10px;\n right: 10px;\n z-index: 10;\n\n svg {\n fill: #525252;\n }\n }\n}"],"sourceRoot":""}]);
|
|
32726
32796
|
// Exports
|
|
32727
32797
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
32728
32798
|
|