@camunda/task-testing 0.2.3 → 0.2.5
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/LICENSE +20 -20
- package/README.md +34 -34
- package/dist/index.js +252 -247
- package/dist/index.js.map +1 -1
- package/package.json +92 -91
package/dist/index.js
CHANGED
|
@@ -33,8 +33,8 @@ class ElementConfig extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
33
33
|
this._injector = injector;
|
|
34
34
|
this._elementVariables = elementVariables;
|
|
35
35
|
|
|
36
|
-
/**
|
|
37
|
-
* @type {import('./types').Config}
|
|
36
|
+
/**
|
|
37
|
+
* @type {import('./types').Config}
|
|
38
38
|
*/
|
|
39
39
|
this._config = {
|
|
40
40
|
...DEFAULT_CONFIG,
|
|
@@ -108,9 +108,9 @@ class ElementConfig extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
108
108
|
return this._config.input[element.id];
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
/**
|
|
112
|
-
* @param {import('./types').Element} element
|
|
113
|
-
* @returns {import('./types').ElementOutput}
|
|
111
|
+
/**
|
|
112
|
+
* @param {import('./types').Element} element
|
|
113
|
+
* @returns {import('./types').ElementOutput}
|
|
114
114
|
*/
|
|
115
115
|
getOutputConfigForElement(element) {
|
|
116
116
|
if (!(0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.isAny)(element, SUPPORTED_ELEMENT_TYPES)) {
|
|
@@ -127,12 +127,12 @@ class ElementConfig extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
/**
|
|
131
|
-
* Get input parameters from a BPMN element.
|
|
132
|
-
*
|
|
133
|
-
* @param {import('./types').Element} element
|
|
134
|
-
*
|
|
135
|
-
* @returns {import('./types').ModdleElement[]}
|
|
130
|
+
/**
|
|
131
|
+
* Get input parameters from a BPMN element.
|
|
132
|
+
*
|
|
133
|
+
* @param {import('./types').Element} element
|
|
134
|
+
*
|
|
135
|
+
* @returns {import('./types').ModdleElement[]}
|
|
136
136
|
*/
|
|
137
137
|
function getInputParameters(element) {
|
|
138
138
|
const businessObject = (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element);
|
|
@@ -151,20 +151,20 @@ function getInputParameters(element) {
|
|
|
151
151
|
return ioMapping.get('inputParameters');
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
/**
|
|
155
|
-
* Unflatten an object with dot notation keys into a nested object.
|
|
156
|
-
*
|
|
157
|
-
* Example:
|
|
158
|
-
*
|
|
159
|
-
* ```
|
|
160
|
-
* unflatten({
|
|
161
|
-
* 'foo.bar': 'baz'
|
|
162
|
-
* }) // returns { foo: { bar: 'baz' } }
|
|
163
|
-
* ```
|
|
164
|
-
*
|
|
165
|
-
* @param {Object} obj
|
|
166
|
-
*
|
|
167
|
-
* @returns {Object}
|
|
154
|
+
/**
|
|
155
|
+
* Unflatten an object with dot notation keys into a nested object.
|
|
156
|
+
*
|
|
157
|
+
* Example:
|
|
158
|
+
*
|
|
159
|
+
* ```
|
|
160
|
+
* unflatten({
|
|
161
|
+
* 'foo.bar': 'baz'
|
|
162
|
+
* }) // returns { foo: { bar: 'baz' } }
|
|
163
|
+
* ```
|
|
164
|
+
*
|
|
165
|
+
* @param {Object} obj
|
|
166
|
+
*
|
|
167
|
+
* @returns {Object}
|
|
168
168
|
*/
|
|
169
169
|
function unflatten(obj) {
|
|
170
170
|
const result = {};
|
|
@@ -183,16 +183,16 @@ function unflatten(obj) {
|
|
|
183
183
|
return result;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
/**
|
|
187
|
-
* Create default input config for a BPMN element.
|
|
188
|
-
*
|
|
189
|
-
* @todo Only simple input parameter sources can be handled until
|
|
190
|
-
* https://github.com/bpmn-io/internal-docs/issues/1218 is implemented.
|
|
191
|
-
*
|
|
192
|
-
* @param {import('./types').Element} element
|
|
193
|
-
* @param {import('./types').Variable[]} variablesForElement
|
|
194
|
-
*
|
|
195
|
-
* @returns {string}
|
|
186
|
+
/**
|
|
187
|
+
* Create default input config for a BPMN element.
|
|
188
|
+
*
|
|
189
|
+
* @todo Only simple input parameter sources can be handled until
|
|
190
|
+
* https://github.com/bpmn-io/internal-docs/issues/1218 is implemented.
|
|
191
|
+
*
|
|
192
|
+
* @param {import('./types').Element} element
|
|
193
|
+
* @param {import('./types').Variable[]} variablesForElement
|
|
194
|
+
*
|
|
195
|
+
* @returns {string}
|
|
196
196
|
*/
|
|
197
197
|
function createDefaultInputConfig(element, variablesForElement) {
|
|
198
198
|
const inputParameters = getInputParameters(element);
|
|
@@ -234,18 +234,18 @@ function createDefaultInputConfig(element, variablesForElement) {
|
|
|
234
234
|
return JSON.stringify(unflatten(foundVariables), null, 2);
|
|
235
235
|
}
|
|
236
236
|
|
|
237
|
-
/**
|
|
238
|
-
* Get the name from a source string.
|
|
239
|
-
*
|
|
240
|
-
* @example
|
|
241
|
-
*
|
|
242
|
-
* getNameFromSource('=foo') // 'foo'
|
|
243
|
-
* getNameFromSource('=foo + bar') // null
|
|
244
|
-
* getNameFromSource('= 1 + 2') // null
|
|
245
|
-
*
|
|
246
|
-
* @param {string} source
|
|
247
|
-
*
|
|
248
|
-
* @returns {string|null}
|
|
237
|
+
/**
|
|
238
|
+
* Get the name from a source string.
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
*
|
|
242
|
+
* getNameFromSource('=foo') // 'foo'
|
|
243
|
+
* getNameFromSource('=foo + bar') // null
|
|
244
|
+
* getNameFromSource('= 1 + 2') // null
|
|
245
|
+
*
|
|
246
|
+
* @param {string} source
|
|
247
|
+
*
|
|
248
|
+
* @returns {string|null}
|
|
249
249
|
*/
|
|
250
250
|
function getNameFromSource(source) {
|
|
251
251
|
if (source && isFeel(source)) {
|
|
@@ -257,36 +257,36 @@ function getNameFromSource(source) {
|
|
|
257
257
|
return null;
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
/**
|
|
261
|
-
* Check if a source string is a FEEL expression.
|
|
262
|
-
*
|
|
263
|
-
* @example
|
|
264
|
-
*
|
|
265
|
-
* isFeel('=foo') // true
|
|
266
|
-
* isFeel('= 1 + 2') // true
|
|
267
|
-
* isFeel('foo') // false
|
|
268
|
-
*
|
|
269
|
-
* @param {string} source
|
|
270
|
-
*
|
|
271
|
-
* @returns {boolean}
|
|
260
|
+
/**
|
|
261
|
+
* Check if a source string is a FEEL expression.
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
*
|
|
265
|
+
* isFeel('=foo') // true
|
|
266
|
+
* isFeel('= 1 + 2') // true
|
|
267
|
+
* isFeel('foo') // false
|
|
268
|
+
*
|
|
269
|
+
* @param {string} source
|
|
270
|
+
*
|
|
271
|
+
* @returns {boolean}
|
|
272
272
|
*/
|
|
273
273
|
function isFeel(source) {
|
|
274
274
|
return !!source && source.startsWith('=');
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
-
/**
|
|
278
|
-
* Check if a source string is a boolean FEEL expression.
|
|
279
|
-
*
|
|
280
|
-
* @example
|
|
281
|
-
*
|
|
282
|
-
* isBoolean('=true') // true
|
|
283
|
-
* isBoolean('= false') // true
|
|
284
|
-
* isBoolean('=foo') // false
|
|
285
|
-
* isBoolean('=1 + 2') // false
|
|
286
|
-
*
|
|
287
|
-
* @param {string} source
|
|
288
|
-
*
|
|
289
|
-
* @return {boolean}
|
|
277
|
+
/**
|
|
278
|
+
* Check if a source string is a boolean FEEL expression.
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
*
|
|
282
|
+
* isBoolean('=true') // true
|
|
283
|
+
* isBoolean('= false') // true
|
|
284
|
+
* isBoolean('=foo') // false
|
|
285
|
+
* isBoolean('=1 + 2') // false
|
|
286
|
+
*
|
|
287
|
+
* @param {string} source
|
|
288
|
+
*
|
|
289
|
+
* @return {boolean}
|
|
290
290
|
*/
|
|
291
291
|
function isBoolean(source) {
|
|
292
292
|
return !!source && /^=\s*(true|false)\s*$/i.test(source);
|
|
@@ -352,33 +352,33 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
352
352
|
/* harmony export */ });
|
|
353
353
|
/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! events */ "./node_modules/events/events.js");
|
|
354
354
|
/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_0__);
|
|
355
|
-
/**
|
|
356
|
-
* Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH
|
|
357
|
-
* under one or more contributor license agreements. See the NOTICE file
|
|
358
|
-
* distributed with this work for additional information regarding copyright
|
|
359
|
-
* ownership.
|
|
360
|
-
*
|
|
361
|
-
* Camunda licenses this file to you under the MIT; you may not use this file
|
|
362
|
-
* except in compliance with the MIT License.
|
|
355
|
+
/**
|
|
356
|
+
* Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH
|
|
357
|
+
* under one or more contributor license agreements. See the NOTICE file
|
|
358
|
+
* distributed with this work for additional information regarding copyright
|
|
359
|
+
* ownership.
|
|
360
|
+
*
|
|
361
|
+
* Camunda licenses this file to you under the MIT; you may not use this file
|
|
362
|
+
* except in compliance with the MIT License.
|
|
363
363
|
*/
|
|
364
364
|
|
|
365
365
|
|
|
366
366
|
const INTERVAL_MS = 1000;
|
|
367
367
|
|
|
368
|
-
/**
|
|
369
|
-
* @import { TaskExecutionApi, TaskExecutionResult, TaskExecutionError, TaskExecutionStatus } from './types';
|
|
368
|
+
/**
|
|
369
|
+
* @import { TaskExecutionApi, TaskExecutionResult, TaskExecutionError, TaskExecutionStatus } from './types';
|
|
370
370
|
*/
|
|
371
371
|
|
|
372
|
-
/**
|
|
373
|
-
* Emits:
|
|
374
|
-
* - `taskExecution.status.changed` with one of {@link TaskExecutionStatus}
|
|
375
|
-
* - `taskExecution.finished` with {@link TaskExecutionResult}
|
|
376
|
-
* - `taskExecution.error` with {@link TaskExecutionError}
|
|
372
|
+
/**
|
|
373
|
+
* Emits:
|
|
374
|
+
* - `taskExecution.status.changed` with one of {@link TaskExecutionStatus}
|
|
375
|
+
* - `taskExecution.finished` with {@link TaskExecutionResult}
|
|
376
|
+
* - `taskExecution.error` with {@link TaskExecutionError}
|
|
377
377
|
*/
|
|
378
378
|
class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
379
|
-
/**
|
|
380
|
-
* @param {Object} injector
|
|
381
|
-
* @param {TaskExecutionApi} api
|
|
379
|
+
/**
|
|
380
|
+
* @param {Object} injector
|
|
381
|
+
* @param {TaskExecutionApi} api
|
|
382
382
|
*/
|
|
383
383
|
constructor(injector, api) {
|
|
384
384
|
super();
|
|
@@ -392,20 +392,19 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
392
392
|
const eventBus = injector.get('eventBus');
|
|
393
393
|
eventBus.on(['selection.changed', 'commandStack.changed'], () => {
|
|
394
394
|
if (this._status !== 'idle') {
|
|
395
|
-
console.log('Interrupting task execution in TaskExecution');
|
|
396
395
|
this.emit('taskExecution.interrupted');
|
|
397
396
|
}
|
|
398
397
|
this.cancelTaskExecution();
|
|
399
398
|
});
|
|
400
399
|
}
|
|
401
400
|
|
|
402
|
-
/**
|
|
403
|
-
* Start task execution.
|
|
404
|
-
*
|
|
405
|
-
* @param {string} elementId
|
|
406
|
-
* @param {Object} variables
|
|
407
|
-
*
|
|
408
|
-
* @returns {Promise<void>}
|
|
401
|
+
/**
|
|
402
|
+
* Start task execution.
|
|
403
|
+
*
|
|
404
|
+
* @param {string} elementId
|
|
405
|
+
* @param {Object} variables
|
|
406
|
+
*
|
|
407
|
+
* @returns {Promise<void>}
|
|
409
408
|
*/
|
|
410
409
|
async executeTask(elementId, variables) {
|
|
411
410
|
this._changeStatus('deploying');
|
|
@@ -499,8 +498,8 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
499
498
|
this._interval = setInterval(intervalCallback, INTERVAL_MS);
|
|
500
499
|
}
|
|
501
500
|
|
|
502
|
-
/**
|
|
503
|
-
* Cancel current task execution, clean up and change status to `idle`.
|
|
501
|
+
/**
|
|
502
|
+
* Cancel current task execution, clean up and change status to `idle`.
|
|
504
503
|
*/
|
|
505
504
|
async cancelTaskExecution() {
|
|
506
505
|
// TODO: Proper clean up:
|
|
@@ -514,11 +513,11 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
514
513
|
this._changeStatus('idle');
|
|
515
514
|
}
|
|
516
515
|
|
|
517
|
-
/**
|
|
518
|
-
* Emit `taskExecution.error` event.
|
|
519
|
-
*
|
|
520
|
-
* @param {string} message
|
|
521
|
-
* @param {any} [response]
|
|
516
|
+
/**
|
|
517
|
+
* Emit `taskExecution.error` event.
|
|
518
|
+
*
|
|
519
|
+
* @param {string} message
|
|
520
|
+
* @param {any} [response]
|
|
522
521
|
*/
|
|
523
522
|
_emitError(message, response) {
|
|
524
523
|
/** @type {import('./types').TaskExecutionError} */
|
|
@@ -539,12 +538,12 @@ class TaskExecution extends (events__WEBPACK_IMPORTED_MODULE_0___default()) {
|
|
|
539
538
|
}
|
|
540
539
|
}
|
|
541
540
|
|
|
542
|
-
/**
|
|
543
|
-
* Get the process ID from the deployment response.
|
|
544
|
-
*
|
|
545
|
-
* @param {import('./types').DeploymentResponse} [response]
|
|
546
|
-
*
|
|
547
|
-
* @returns {string|null} The process ID or null if not found.
|
|
541
|
+
/**
|
|
542
|
+
* Get the process ID from the deployment response.
|
|
543
|
+
*
|
|
544
|
+
* @param {import('./types').DeploymentResponse} [response]
|
|
545
|
+
*
|
|
546
|
+
* @returns {string|null} The process ID or null if not found.
|
|
548
547
|
*/
|
|
549
548
|
function getProcessId(response) {
|
|
550
549
|
if (!response) {
|
|
@@ -561,12 +560,12 @@ function getProcessId(response) {
|
|
|
561
560
|
return null;
|
|
562
561
|
}
|
|
563
562
|
|
|
564
|
-
/**
|
|
565
|
-
* Get the process instance key from the response.
|
|
566
|
-
*
|
|
567
|
-
* @param {import('./types').StartInstanceResponse} [response]
|
|
568
|
-
*
|
|
569
|
-
* @returns {string|null} The process instance key or null if not found.
|
|
563
|
+
/**
|
|
564
|
+
* Get the process instance key from the response.
|
|
565
|
+
*
|
|
566
|
+
* @param {import('./types').StartInstanceResponse} [response]
|
|
567
|
+
*
|
|
568
|
+
* @returns {string|null} The process instance key or null if not found.
|
|
570
569
|
*/
|
|
571
570
|
function getProcessInstanceKey(response) {
|
|
572
571
|
if (!response) {
|
|
@@ -770,21 +769,21 @@ function InputEditor({
|
|
|
770
769
|
value
|
|
771
770
|
}));
|
|
772
771
|
|
|
773
|
-
/**
|
|
774
|
-
* @type {import('@codemirror/autocomplete').Completion[]}
|
|
772
|
+
/**
|
|
773
|
+
* @type {import('@codemirror/autocomplete').Completion[]}
|
|
775
774
|
*/
|
|
776
775
|
const result = [...variablesForElementAutocompletions, ...outputVariablesAutocompletions];
|
|
777
776
|
return result;
|
|
778
777
|
}, [allOutputs, variablesForElement]);
|
|
779
778
|
const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
780
779
|
|
|
781
|
-
/**
|
|
782
|
-
* @type {ReturnType<typeof useState<EditorView>>}
|
|
780
|
+
/**
|
|
781
|
+
* @type {ReturnType<typeof useState<EditorView>>}
|
|
783
782
|
*/
|
|
784
783
|
const [editorView, setEditorView] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
785
784
|
|
|
786
|
-
/**
|
|
787
|
-
* @type {ReturnType<typeof useState<string?>>}
|
|
785
|
+
/**
|
|
786
|
+
* @type {ReturnType<typeof useState<string?>>}
|
|
788
787
|
*/
|
|
789
788
|
const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
790
789
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
@@ -892,19 +891,19 @@ function getAllOutputVariables(allOutputs) {
|
|
|
892
891
|
return allOutputVariables;
|
|
893
892
|
}
|
|
894
893
|
|
|
895
|
-
/**
|
|
896
|
-
* Get a string representation of the type of a value.
|
|
897
|
-
*
|
|
898
|
-
* @example
|
|
899
|
-
*
|
|
900
|
-
* getDetail('foo') // String
|
|
901
|
-
* getDetail(1337) // Number
|
|
902
|
-
* getDetail(true) // Boolean
|
|
903
|
-
* getDetail({}) // Object
|
|
904
|
-
*
|
|
905
|
-
* @param {any} value
|
|
906
|
-
*
|
|
907
|
-
* @return {string}
|
|
894
|
+
/**
|
|
895
|
+
* Get a string representation of the type of a value.
|
|
896
|
+
*
|
|
897
|
+
* @example
|
|
898
|
+
*
|
|
899
|
+
* getDetail('foo') // String
|
|
900
|
+
* getDetail(1337) // Number
|
|
901
|
+
* getDetail(true) // Boolean
|
|
902
|
+
* getDetail({}) // Object
|
|
903
|
+
*
|
|
904
|
+
* @param {any} value
|
|
905
|
+
*
|
|
906
|
+
* @return {string}
|
|
908
907
|
*/
|
|
909
908
|
function getDetail(value) {
|
|
910
909
|
const type = typeof value;
|
|
@@ -949,17 +948,17 @@ const TASK_EXECUTION_STATUS_LABEL = {
|
|
|
949
948
|
executing: 'Waiting for task to be completed...'
|
|
950
949
|
};
|
|
951
950
|
|
|
952
|
-
/**
|
|
953
|
-
* @param {Object} props
|
|
954
|
-
* @param {boolean} props.isConnectionConfigured
|
|
955
|
-
* @param {string} [props.configureConnectionBannerTitle]
|
|
956
|
-
* @param {string} [props.configureConnectionBannerDescription]
|
|
957
|
-
* @param {string} [props.configureConnectionLabel]
|
|
958
|
-
* @param {Function} [props.onConfigureConnection]
|
|
959
|
-
* @param {boolean} props.isTaskExecuting
|
|
960
|
-
* @param {import('../../types').ElementOutput} props.output
|
|
961
|
-
* @param {Function} props.onResetOutput
|
|
962
|
-
* @param {import('../../types').TaskExecutionStatus} props.taskExecutionStatus
|
|
951
|
+
/**
|
|
952
|
+
* @param {Object} props
|
|
953
|
+
* @param {boolean} props.isConnectionConfigured
|
|
954
|
+
* @param {string} [props.configureConnectionBannerTitle]
|
|
955
|
+
* @param {string} [props.configureConnectionBannerDescription]
|
|
956
|
+
* @param {string} [props.configureConnectionLabel]
|
|
957
|
+
* @param {Function} [props.onConfigureConnection]
|
|
958
|
+
* @param {boolean} props.isTaskExecuting
|
|
959
|
+
* @param {import('../../types').ElementOutput} props.output
|
|
960
|
+
* @param {Function} props.onResetOutput
|
|
961
|
+
* @param {import('../../types').TaskExecutionStatus} props.taskExecutionStatus
|
|
963
962
|
*/
|
|
964
963
|
function Output({
|
|
965
964
|
isConnectionConfigured,
|
|
@@ -991,6 +990,7 @@ function Output({
|
|
|
991
990
|
});
|
|
992
991
|
}, [output, isTaskExecuting, isConnectionConfigured]);
|
|
993
992
|
const showResetButton = isConnectionConfigured && ((output === null || output === void 0 ? void 0 : output.success) || (output === null || output === void 0 ? void 0 : output.error) || (output === null || output === void 0 ? void 0 : output.incident));
|
|
993
|
+
const showOperateUrl = isConnectionConfigured && (output === null || output === void 0 ? void 0 : output.operateUrl);
|
|
994
994
|
const headerText = isTaskExecuting ? TASK_EXECUTION_STATUS_LABEL[taskExecutionStatus] : 'Results';
|
|
995
995
|
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
|
|
996
996
|
className: "output",
|
|
@@ -1010,7 +1010,7 @@ function Output({
|
|
|
1010
1010
|
tooltipPosition: "right",
|
|
1011
1011
|
iconDescription: "Reset output",
|
|
1012
1012
|
children: "Reset"
|
|
1013
|
-
}),
|
|
1013
|
+
}), showOperateUrl && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_carbon_react__WEBPACK_IMPORTED_MODULE_1__.Link, {
|
|
1014
1014
|
href: output.operateUrl,
|
|
1015
1015
|
target: "_blank",
|
|
1016
1016
|
className: "output__header--button-operate",
|
|
@@ -1137,14 +1137,14 @@ function OutputVariables({
|
|
|
1137
1137
|
});
|
|
1138
1138
|
}
|
|
1139
1139
|
|
|
1140
|
-
/**
|
|
1141
|
-
*
|
|
1142
|
-
* @param {Object} props
|
|
1143
|
-
* @param {string} props.title
|
|
1144
|
-
* @param {string} props.description
|
|
1145
|
-
* @param {string} [props.actionLabel]
|
|
1146
|
-
* @param {string} [props.actionUrl]
|
|
1147
|
-
* @param {Function} [props.onActionClick]
|
|
1140
|
+
/**
|
|
1141
|
+
*
|
|
1142
|
+
* @param {Object} props
|
|
1143
|
+
* @param {string} props.title
|
|
1144
|
+
* @param {string} props.description
|
|
1145
|
+
* @param {string} [props.actionLabel]
|
|
1146
|
+
* @param {string} [props.actionUrl]
|
|
1147
|
+
* @param {Function} [props.onActionClick]
|
|
1148
1148
|
*/
|
|
1149
1149
|
function ErrorBanner({
|
|
1150
1150
|
title,
|
|
@@ -1176,12 +1176,12 @@ function ErrorBanner({
|
|
|
1176
1176
|
});
|
|
1177
1177
|
}
|
|
1178
1178
|
|
|
1179
|
-
/**
|
|
1180
|
-
* Print the details of an incident.
|
|
1181
|
-
*
|
|
1182
|
-
* @param {Object} incident
|
|
1183
|
-
*
|
|
1184
|
-
* @returns {string}
|
|
1179
|
+
/**
|
|
1180
|
+
* Print the details of an incident.
|
|
1181
|
+
*
|
|
1182
|
+
* @param {Object} incident
|
|
1183
|
+
*
|
|
1184
|
+
* @returns {string}
|
|
1185
1185
|
*/
|
|
1186
1186
|
function printIncident(incident) {
|
|
1187
1187
|
let text = '';
|
|
@@ -1191,16 +1191,16 @@ function printIncident(incident) {
|
|
|
1191
1191
|
return text;
|
|
1192
1192
|
}
|
|
1193
1193
|
|
|
1194
|
-
/**
|
|
1195
|
-
* Capitalize a string, adding spaces before capital letters.
|
|
1196
|
-
*
|
|
1197
|
-
* @example
|
|
1198
|
-
*
|
|
1199
|
-
* capitalize('fooBar'); // Foo Bar
|
|
1200
|
-
*
|
|
1201
|
-
* @param {string} string
|
|
1202
|
-
*
|
|
1203
|
-
* @returns {string}
|
|
1194
|
+
/**
|
|
1195
|
+
* Capitalize a string, adding spaces before capital letters.
|
|
1196
|
+
*
|
|
1197
|
+
* @example
|
|
1198
|
+
*
|
|
1199
|
+
* capitalize('fooBar'); // Foo Bar
|
|
1200
|
+
*
|
|
1201
|
+
* @param {string} string
|
|
1202
|
+
*
|
|
1203
|
+
* @returns {string}
|
|
1204
1204
|
*/
|
|
1205
1205
|
function capitalize(string) {
|
|
1206
1206
|
return string.replace(/([A-Z])/g, ' $1').replace(/^./, match => match.toUpperCase());
|
|
@@ -1239,8 +1239,8 @@ function OutputEditor({
|
|
|
1239
1239
|
}) {
|
|
1240
1240
|
const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
1241
1241
|
|
|
1242
|
-
/**
|
|
1243
|
-
* @type {ReturnType<typeof useState<EditorView>>}
|
|
1242
|
+
/**
|
|
1243
|
+
* @type {ReturnType<typeof useState<EditorView>>}
|
|
1244
1244
|
*/
|
|
1245
1245
|
const [editorView, setEditorView] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
1246
1246
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
@@ -1335,23 +1335,24 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1335
1335
|
|
|
1336
1336
|
|
|
1337
1337
|
|
|
1338
|
-
const NO_ELEMENT_TEXT = 'Select a task to start testing';
|
|
1338
|
+
const NO_ELEMENT_TEXT = 'Select a task to start testing.';
|
|
1339
1339
|
|
|
1340
|
-
/**
|
|
1341
|
-
* @param {Object} props
|
|
1342
|
-
* @param {Object} props.injector
|
|
1343
|
-
* @param {import('../../types').TaskExecutionApi} props.api
|
|
1344
|
-
* @param {boolean} props.isConnectionConfigured
|
|
1345
|
-
* @param {string} [props.configureConnectionBannerTitle]
|
|
1346
|
-
* @param {string} [props.configureConnectionBannerDescription]
|
|
1347
|
-
* @param {string} [props.configureConnectionLabel]
|
|
1348
|
-
* @param {Function} [props.onConfigureConnection]
|
|
1349
|
-
* @param {import('../../types').Config|undefined} [props.config]
|
|
1350
|
-
* @param {Function} [props.onConfigChanged=() => {}]
|
|
1351
|
-
* @param {string} [props.operateBaseUrl]
|
|
1352
|
-
* @param {
|
|
1353
|
-
* @param {Function} [props.
|
|
1354
|
-
* @param {Function} [props.
|
|
1340
|
+
/**
|
|
1341
|
+
* @param {Object} props
|
|
1342
|
+
* @param {Object} props.injector
|
|
1343
|
+
* @param {import('../../types').TaskExecutionApi} props.api
|
|
1344
|
+
* @param {boolean} props.isConnectionConfigured
|
|
1345
|
+
* @param {string} [props.configureConnectionBannerTitle]
|
|
1346
|
+
* @param {string} [props.configureConnectionBannerDescription]
|
|
1347
|
+
* @param {string} [props.configureConnectionLabel]
|
|
1348
|
+
* @param {Function} [props.onConfigureConnection]
|
|
1349
|
+
* @param {import('../../types').Config|undefined} [props.config]
|
|
1350
|
+
* @param {Function} [props.onConfigChanged=() => {}]
|
|
1351
|
+
* @param {string} [props.operateBaseUrl]
|
|
1352
|
+
* @param {string} [props.documentationUrl]
|
|
1353
|
+
* @param {Function} [props.onTaskExecutionStarted=() => {}]
|
|
1354
|
+
* @param {Function} [props.onTaskExecutionFinished=() => {}]
|
|
1355
|
+
* @param {Function} [props.onTaskExecutionInterrupted=() => {}]
|
|
1355
1356
|
*/
|
|
1356
1357
|
function TaskTesting({
|
|
1357
1358
|
injector,
|
|
@@ -1364,41 +1365,42 @@ function TaskTesting({
|
|
|
1364
1365
|
config,
|
|
1365
1366
|
onConfigChanged = () => {},
|
|
1366
1367
|
operateBaseUrl,
|
|
1368
|
+
documentationUrl,
|
|
1367
1369
|
onTaskExecutionStarted = () => {},
|
|
1368
1370
|
onTaskExecutionFinished = () => {},
|
|
1369
1371
|
onTaskExecutionInterrupted = () => {}
|
|
1370
1372
|
}) {
|
|
1371
|
-
/**
|
|
1372
|
-
* @type {React.RefObject<ElementVariables?>}
|
|
1373
|
+
/**
|
|
1374
|
+
* @type {React.RefObject<ElementVariables?>}
|
|
1373
1375
|
*/
|
|
1374
1376
|
const elementVariablesRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
1375
1377
|
|
|
1376
|
-
/**
|
|
1377
|
-
* @type {React.RefObject<ElementConfig?>}
|
|
1378
|
+
/**
|
|
1379
|
+
* @type {React.RefObject<ElementConfig?>}
|
|
1378
1380
|
*/
|
|
1379
1381
|
const elementConfigRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
1380
1382
|
const [variablesForElement, setVariablesForElement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);
|
|
1381
1383
|
|
|
1382
|
-
/**
|
|
1383
|
-
* @type {ReturnType<typeof useState<import('../../types').TaskExecutionStatus>>}
|
|
1384
|
+
/**
|
|
1385
|
+
* @type {ReturnType<typeof useState<import('../../types').TaskExecutionStatus>>}
|
|
1384
1386
|
*/
|
|
1385
1387
|
const [taskExecutionStatus, setTaskExecutionStatus] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
1386
1388
|
|
|
1387
|
-
/**
|
|
1388
|
-
* @type {ReturnType<typeof useState<string>>}
|
|
1389
|
+
/**
|
|
1390
|
+
* @type {ReturnType<typeof useState<string>>}
|
|
1389
1391
|
*/
|
|
1390
1392
|
const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
1391
1393
|
|
|
1392
|
-
/**
|
|
1393
|
-
* @type {ReturnType<typeof useState<import('../../types').ElementOutput>>}
|
|
1394
|
+
/**
|
|
1395
|
+
* @type {ReturnType<typeof useState<import('../../types').ElementOutput>>}
|
|
1394
1396
|
*/
|
|
1395
1397
|
const [output, setOutput] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
1396
1398
|
const [allOutputs, setAllOutputs] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});
|
|
1397
1399
|
const [inputError, setInputError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
|
|
1398
1400
|
const element = (0,_hooks_useSelectedElement__WEBPACK_IMPORTED_MODULE_4__.useSelectedElement)(injector);
|
|
1399
1401
|
|
|
1400
|
-
/**
|
|
1401
|
-
* @type {React.RefObject<TaskExecution?>}
|
|
1402
|
+
/**
|
|
1403
|
+
* @type {React.RefObject<TaskExecution?>}
|
|
1402
1404
|
*/
|
|
1403
1405
|
const taskExecutionRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
1404
1406
|
|
|
@@ -1477,9 +1479,9 @@ function TaskTesting({
|
|
|
1477
1479
|
});
|
|
1478
1480
|
};
|
|
1479
1481
|
|
|
1480
|
-
/**
|
|
1481
|
-
* @param {import('../../types').TaskExecutionStatus} status
|
|
1482
|
-
* @param {string} [processInstanceKey]
|
|
1482
|
+
/**
|
|
1483
|
+
* @param {import('../../types').TaskExecutionStatus} status
|
|
1484
|
+
* @param {string} [processInstanceKey]
|
|
1483
1485
|
*/
|
|
1484
1486
|
const handleStatusChange = (status, processInstanceKey) => {
|
|
1485
1487
|
setTaskExecutionStatus(status);
|
|
@@ -1505,7 +1507,6 @@ function TaskTesting({
|
|
|
1505
1507
|
onTaskExecutionFinished(element, output);
|
|
1506
1508
|
};
|
|
1507
1509
|
const handleInterrupted = () => {
|
|
1508
|
-
console.log('interrrrrrupted');
|
|
1509
1510
|
onTaskExecutionInterrupted();
|
|
1510
1511
|
};
|
|
1511
1512
|
taskExecutionRef === null || taskExecutionRef === void 0 || (_taskExecutionRef$cur = taskExecutionRef.current) === null || _taskExecutionRef$cur === void 0 || _taskExecutionRef$cur.on('taskExecution.finished', handleFinished);
|
|
@@ -1585,8 +1586,12 @@ function TaskTesting({
|
|
|
1585
1586
|
className: "task-testing__container task-testing__container--empty",
|
|
1586
1587
|
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)("div", {
|
|
1587
1588
|
className: "task-testing__container-no-element",
|
|
1588
|
-
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_2__.Cursor_1, {}),
|
|
1589
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_2__.Cursor_1, {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("span", {
|
|
1589
1590
|
children: NO_ELEMENT_TEXT
|
|
1591
|
+
}), documentationUrl && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_carbon_react__WEBPACK_IMPORTED_MODULE_1__.Link, {
|
|
1592
|
+
href: documentationUrl,
|
|
1593
|
+
target: "_blank",
|
|
1594
|
+
children: "Learn more."
|
|
1590
1595
|
})]
|
|
1591
1596
|
})
|
|
1592
1597
|
});
|
|
@@ -1782,11 +1787,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1782
1787
|
|
|
1783
1788
|
const SUPPORTED_ELEMENT_TYPES = ['bpmn:Task'];
|
|
1784
1789
|
|
|
1785
|
-
/**
|
|
1786
|
-
* Get currently selected BPMN element, if it is a single `bpmn:Task`.
|
|
1787
|
-
*
|
|
1788
|
-
* @param {Object} injector
|
|
1789
|
-
* @return {Object|null} Selected BPMN element or null
|
|
1790
|
+
/**
|
|
1791
|
+
* Get currently selected BPMN element, if it is a single `bpmn:Task`.
|
|
1792
|
+
*
|
|
1793
|
+
* @param {Object} injector
|
|
1794
|
+
* @return {Object|null} Selected BPMN element or null
|
|
1790
1795
|
*/
|
|
1791
1796
|
function useSelectedElement(injector) {
|
|
1792
1797
|
const [selectedElement, setSelectedElement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
|
|
@@ -1884,21 +1889,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1884
1889
|
|
|
1885
1890
|
|
|
1886
1891
|
|
|
1887
|
-
/**
|
|
1888
|
-
* @typedef {import('@codemirror/autocomplete').Completion} Completion
|
|
1889
|
-
* @typedef {import('@codemirror/autocomplete').CompletionContext} CompletionContext
|
|
1890
|
-
* @typedef {import('@codemirror/autocomplete').CompletionResult} CompletionResult
|
|
1892
|
+
/**
|
|
1893
|
+
* @typedef {import('@codemirror/autocomplete').Completion} Completion
|
|
1894
|
+
* @typedef {import('@codemirror/autocomplete').CompletionContext} CompletionContext
|
|
1895
|
+
* @typedef {import('@codemirror/autocomplete').CompletionResult} CompletionResult
|
|
1891
1896
|
*/
|
|
1892
1897
|
|
|
1893
|
-
/**
|
|
1894
|
-
* @param {Completion[]} variables
|
|
1898
|
+
/**
|
|
1899
|
+
* @param {Completion[]} variables
|
|
1895
1900
|
*/
|
|
1896
1901
|
function getAutocompletionExtensions(variables) {
|
|
1897
1902
|
return [autoCompletionExtension(variables), startCompletionExtension()];
|
|
1898
1903
|
}
|
|
1899
1904
|
|
|
1900
|
-
/**
|
|
1901
|
-
* @param {Completion[]} variables
|
|
1905
|
+
/**
|
|
1906
|
+
* @param {Completion[]} variables
|
|
1902
1907
|
*/
|
|
1903
1908
|
function autoCompletionExtension(variables) {
|
|
1904
1909
|
return (0,_codemirror_autocomplete__WEBPACK_IMPORTED_MODULE_0__.autocompletion)({
|
|
@@ -1906,8 +1911,8 @@ function autoCompletionExtension(variables) {
|
|
|
1906
1911
|
});
|
|
1907
1912
|
}
|
|
1908
1913
|
|
|
1909
|
-
/**
|
|
1910
|
-
* Trigger autocompletion when the user goes into a new line.
|
|
1914
|
+
/**
|
|
1915
|
+
* Trigger autocompletion when the user goes into a new line.
|
|
1911
1916
|
*/
|
|
1912
1917
|
function startCompletionExtension() {
|
|
1913
1918
|
return _codemirror_view__WEBPACK_IMPORTED_MODULE_1__.EditorView.updateListener.of(update => {
|
|
@@ -1931,11 +1936,11 @@ function startCompletionExtension() {
|
|
|
1931
1936
|
});
|
|
1932
1937
|
}
|
|
1933
1938
|
|
|
1934
|
-
/**
|
|
1935
|
-
* @param {CompletionContext} context
|
|
1936
|
-
* @param {Array} variables
|
|
1937
|
-
*
|
|
1938
|
-
* @returns {CompletionResult | null}
|
|
1939
|
+
/**
|
|
1940
|
+
* @param {CompletionContext} context
|
|
1941
|
+
* @param {Array} variables
|
|
1942
|
+
*
|
|
1943
|
+
* @returns {CompletionResult | null}
|
|
1939
1944
|
*/
|
|
1940
1945
|
function autocomplete(context, variables) {
|
|
1941
1946
|
const {
|
|
@@ -2026,13 +2031,13 @@ function autocomplete(context, variables) {
|
|
|
2026
2031
|
};
|
|
2027
2032
|
}
|
|
2028
2033
|
|
|
2029
|
-
/**
|
|
2030
|
-
* Check if there is a property after the current position by looking for a `"` character.
|
|
2031
|
-
*
|
|
2032
|
-
* @param {*} state
|
|
2033
|
-
* @param {number} pos
|
|
2034
|
-
*
|
|
2035
|
-
* @returns {boolean}
|
|
2034
|
+
/**
|
|
2035
|
+
* Check if there is a property after the current position by looking for a `"` character.
|
|
2036
|
+
*
|
|
2037
|
+
* @param {*} state
|
|
2038
|
+
* @param {number} pos
|
|
2039
|
+
*
|
|
2040
|
+
* @returns {boolean}
|
|
2036
2041
|
*/
|
|
2037
2042
|
function hasPropertyAfter(state, pos) {
|
|
2038
2043
|
const textAfter = state.sliceDoc(pos).trimStart();
|
|
@@ -2055,12 +2060,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2055
2060
|
/* 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");
|
|
2056
2061
|
|
|
2057
2062
|
|
|
2058
|
-
/**
|
|
2059
|
-
* Get the name of a BPMN element.
|
|
2060
|
-
*
|
|
2061
|
-
* @param {import('../types').Element} element
|
|
2062
|
-
*
|
|
2063
|
-
* @returns {string}
|
|
2063
|
+
/**
|
|
2064
|
+
* Get the name of a BPMN element.
|
|
2065
|
+
*
|
|
2066
|
+
* @param {import('../types').Element} element
|
|
2067
|
+
*
|
|
2068
|
+
* @returns {string}
|
|
2064
2069
|
*/
|
|
2065
2070
|
function getName(element) {
|
|
2066
2071
|
const businessObject = (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element);
|
|
@@ -2071,12 +2076,12 @@ function getName(element) {
|
|
|
2071
2076
|
return name;
|
|
2072
2077
|
}
|
|
2073
2078
|
|
|
2074
|
-
/**
|
|
2075
|
-
* Get the name of a BPMN element.
|
|
2076
|
-
*
|
|
2077
|
-
* @param {import('../types').Element} element
|
|
2078
|
-
*
|
|
2079
|
-
* @returns {string}
|
|
2079
|
+
/**
|
|
2080
|
+
* Get the name of a BPMN element.
|
|
2081
|
+
*
|
|
2082
|
+
* @param {import('../types').Element} element
|
|
2083
|
+
*
|
|
2084
|
+
* @returns {string}
|
|
2080
2085
|
*/
|
|
2081
2086
|
function getType(element) {
|
|
2082
2087
|
const businessObject = (0,bpmn_js_lib_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element);
|
|
@@ -32814,7 +32819,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `.task-testing__container {
|
|
|
32814
32819
|
}
|
|
32815
32820
|
.code__editor .code__editor-copy-button svg {
|
|
32816
32821
|
fill: #525252;
|
|
32817
|
-
}`, "",{"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":""}]);
|
|
32822
|
+
}`, "",{"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 {\r\n display: flex;\r\n flex-direction: row;\r\n height: 100%;\r\n width: 100%;\r\n padding: 10px;\r\n font-size: 14px;\r\n\r\n &.task-testing__container--empty {\r\n .task-testing__container-no-config,\r\n .task-testing__container-no-element {\r\n display: flex;\r\n align-items: center;\r\n gap: 5px;\r\n height: 32px;\r\n\r\n .cds--inline-loading {\r\n inline-size: initial;\r\n min-block-size: initial;\r\n }\r\n }\r\n }\r\n\r\n .task-testing__container--left {\r\n width: 50%;\r\n display: flex;\r\n flex-direction: column;\r\n border-right: 1px solid #E0E0E0;\r\n padding-right: 6px;\r\n }\r\n\r\n .task-testing__container--right {\r\n width: 50%;\r\n display: flex;\r\n flex-direction: column;\r\n padding-left: 6px;\r\n }\r\n\r\n .task-testing__container--header {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 12px;\r\n width: 100%;\r\n\r\n .task-header {\r\n display: flex;\r\n gap: 6px;\r\n \r\n .task-type {\r\n font-weight: bold;\r\n }\r\n }\r\n\r\n .btn-execute {\r\n width: 138px;\r\n }\r\n\r\n .cds--popover-container:not(.has-error) .cds--popover {\r\n display: none;\r\n }\r\n\r\n .cds--tooltip-content {\r\n padding: 12px;\r\n }\r\n\r\n .cds--btn .cds--inline-loading {\r\n inline-size: initial;\r\n min-block-size: initial;\r\n }\r\n }\r\n\r\n .input {\r\n flex-grow: 1;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 5px;\r\n\r\n .input__header {\r\n display: flex;\r\n align-items: center;\r\n gap: 5px;\r\n }\r\n\r\n .input__header--title {\r\n color: #525252;\r\n }\r\n }\r\n\r\n .output {\r\n flex-grow: 1;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 5px;\r\n\r\n .output__header {\r\n display: flex;\r\n align-items: center;\r\n height: 32px;\r\n width: 100%;\r\n }\r\n\r\n .output__header--title {\r\n color: #525252;\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n\r\n svg.output__status-icon--ready {\r\n fill: #0043ce;\r\n }\r\n\r\n svg.output__status-icon--success {\r\n fill: #24a148;\r\n }\r\n\r\n svg.output__status-icon--error {\r\n fill: #da1e28;\r\n }\r\n\r\n .cds--inline-loading {\r\n inline-size: 16px;\r\n min-block-size: initial;\r\n }\r\n }\r\n\r\n .output__header--button-operate {\r\n margin-left: auto;\r\n }\r\n\r\n .output__body {\r\n display: flex;\r\n flex-direction: column;\r\n flex-grow: 1;\r\n position: relative;\r\n\r\n .cds--tabs {\r\n --cds-layout-size-height-local: 32px;\r\n }\r\n \r\n .cds--tab-content {\r\n padding: 0;\r\n height: calc(100% - 20px);\r\n }\r\n\r\n .cds--tab-content:not([hidden]) {\r\n display: flex;\r\n }\r\n\r\n // Tooltip on Carbon Button with absolute position is broken.\r\n .cds--popover {\r\n display: none;\r\n }\r\n }\r\n\r\n .output__error {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n padding: 12px;\r\n margin-bottom: 12px;\r\n border: 1px solid #da1e28;\r\n border-left-width: 3px;\r\n background-color: #fff1f1;\r\n\r\n .output__error--title {\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n font-weight: bold;\r\n\r\n svg {\r\n fill: #da1e28;\r\n }\r\n\r\n .output__error--action {\r\n margin-left: auto;\r\n }\r\n }\r\n }\r\n\r\n .output__variables--empty {\r\n height: 32px;\r\n display: flex;\r\n align-items: center;\r\n color: #525252;\r\n }\r\n\r\n .output__variables--empty-action {\r\n font-weight: bold;\r\n }\r\n\r\n .cds--snippet-container {\r\n width: 100%;\r\n }\r\n\r\n .cds--snippet {\r\n max-inline-size: 100%;\r\n height: 100%;\r\n }\r\n\r\n code {\r\n font-size: 14px;\r\n }\r\n }\r\n}\r\n\r\n.code__editor {\r\n position: relative;\r\n flex-grow: 1;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n &.code__editor--error .code__editor-codemirror .code__editor-codemirror-inner .cm-editor {\r\n outline: 1px solid #da1e28;\r\n outline-offset: -1px;\r\n }\r\n\r\n .code__editor-codemirror {\r\n position: relative;\r\n flex-grow: 1;\r\n\r\n .code__editor-codemirror-inner {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n\r\n .cm-editor {\r\n height: 100%;\r\n background-color: var(--cds-layer, #f4f4f4);\r\n }\r\n\r\n .cm-scroller {\r\n overflow-y: auto !important;\r\n }\r\n\r\n .cm-content {\r\n padding: 15px;\r\n }\r\n\r\n .cm-focused {\r\n outline: none;\r\n }\r\n\r\n .cm-tooltip {\r\n font-size: 14px;\r\n }\r\n\r\n .info {\r\n padding: 5px;\r\n font-family: monospace;\r\n font-size: 12px;\r\n max-width: 300px;\r\n word-wrap: break-word;\r\n\r\n span {\r\n font-style: italic;\r\n }\r\n\r\n pre {\r\n margin-top: 5px;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .code__editor-error {\r\n color: #da1e28;\r\n font-size: 13px;\r\n margin-top: 5px;\r\n }\r\n\r\n .code__editor-copy-button {\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n z-index: 10;\r\n\r\n svg {\r\n fill: #525252;\r\n }\r\n }\r\n}"],"sourceRoot":""}]);
|
|
32818
32823
|
// Exports
|
|
32819
32824
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
32820
32825
|
|