nuxeo-development-framework 4.1.1 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +724 -343
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/diagrams/components/circle-node/circle-node.component.js +6 -7
  4. package/esm2015/lib/components/diagrams/components/connection-label.component.js +92 -0
  5. package/esm2015/lib/components/diagrams/components/content-node/content-node.component.js +7 -8
  6. package/esm2015/lib/components/diagrams/components/custom-connection.component.js +68 -32
  7. package/esm2015/lib/components/diagrams/components/custom-socket.component.js +22 -19
  8. package/esm2015/lib/components/diagrams/components/gateway-node/gateway-node.component.js +18 -0
  9. package/esm2015/lib/components/diagrams/components/gateway-ports.component.js +118 -0
  10. package/esm2015/lib/components/diagrams/components/index.js +5 -1
  11. package/esm2015/lib/components/diagrams/components/node-inputs.component.js +34 -35
  12. package/esm2015/lib/components/diagrams/components/node-outputs.component.js +30 -31
  13. package/esm2015/lib/components/diagrams/components/node-ports.component.js +98 -0
  14. package/esm2015/lib/components/diagrams/components/remove-button.component.js +46 -43
  15. package/esm2015/lib/components/diagrams/components/template-node/template-node.component.js +6 -7
  16. package/esm2015/lib/components/diagrams/constants/node-type.js +2 -1
  17. package/esm2015/lib/components/diagrams/constants/sizes.js +2 -1
  18. package/esm2015/lib/components/diagrams/constants/status.js +4 -1
  19. package/esm2015/lib/components/diagrams/diagrams.module.js +14 -6
  20. package/esm2015/lib/components/diagrams/directive/diagram.directive.js +9 -6
  21. package/esm2015/lib/components/diagrams/editor/customize.js +16 -12
  22. package/esm2015/lib/components/diagrams/editor/editor.js +21 -19
  23. package/esm2015/lib/components/diagrams/editor/overrides/connection-path.transformers.js +32 -7
  24. package/esm2015/lib/components/diagrams/editor/path-plugin.js +10 -9
  25. package/esm2015/lib/components/diagrams/models/base-node.model.js +3 -2
  26. package/esm2015/lib/components/diagrams/models/connection.model.js +11 -4
  27. package/esm2015/lib/components/diagrams/models/gate-way.model.js +11 -0
  28. package/esm2015/lib/components/diagrams/models/index.js +2 -1
  29. package/esm2015/lib/components/diagrams/models/ports.model.js +14 -0
  30. package/esm2015/lib/components/diagrams/models/socket.model.js +5 -4
  31. package/esm2015/lib/components/diagrams/services/diagram.service.js +77 -29
  32. package/esm2015/lib/components/diagrams/services/workflow.service.js +14 -19
  33. package/esm2015/lib/components/diagrams/types/common.type.js +1 -1
  34. package/esm2015/lib/components/diagrams/types/connection-config.type.js +2 -0
  35. package/esm2015/lib/components/diagrams/types/connection-label.type.js +2 -0
  36. package/esm2015/lib/components/diagrams/types/diagram-config.type.js +1 -1
  37. package/esm2015/lib/components/diagrams/types/diagram-editor.type.js +1 -1
  38. package/esm2015/lib/components/diagrams/types/index.js +6 -2
  39. package/esm2015/lib/components/diagrams/types/node-definition.js +1 -1
  40. package/esm2015/lib/components/diagrams/types/path.type.js +1 -1
  41. package/esm2015/lib/components/diagrams/types/ports-config.type.js +2 -0
  42. package/esm2015/lib/components/diagrams/types/socket.type.js +2 -0
  43. package/esm2015/lib/components/diagrams/utilities/common.js +35 -0
  44. package/esm2015/lib/components/diagrams/utilities/index.js +3 -1
  45. package/esm2015/lib/components/diagrams/utilities/random.js +11 -0
  46. package/esm2015/lib/components/diagrams/utilities/remove.util.js +2 -2
  47. package/fesm2015/nuxeo-development-framework.js +921 -408
  48. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  49. package/lib/components/diagrams/components/base-node.component.d.ts +1 -0
  50. package/lib/components/diagrams/components/connection-label.component.d.ts +19 -0
  51. package/lib/components/diagrams/components/custom-connection.component.d.ts +5 -0
  52. package/lib/components/diagrams/components/gateway-node/gateway-node.component.d.ts +6 -0
  53. package/lib/components/diagrams/components/gateway-ports.component.d.ts +12 -0
  54. package/lib/components/diagrams/components/index.d.ts +4 -0
  55. package/lib/components/diagrams/components/node-ports.component.d.ts +13 -0
  56. package/lib/components/diagrams/constants/node-type.d.ts +1 -0
  57. package/lib/components/diagrams/constants/sizes.d.ts +1 -0
  58. package/lib/components/diagrams/constants/status.d.ts +3 -0
  59. package/lib/components/diagrams/diagrams.module.d.ts +12 -8
  60. package/lib/components/diagrams/editor/overrides/connection-path.transformers.d.ts +2 -7
  61. package/lib/components/diagrams/models/base-node.model.d.ts +3 -2
  62. package/lib/components/diagrams/models/connection.model.d.ts +9 -1
  63. package/lib/components/diagrams/models/gate-way.model.d.ts +8 -0
  64. package/lib/components/diagrams/models/index.d.ts +1 -0
  65. package/lib/components/diagrams/models/ports.model.d.ts +11 -0
  66. package/lib/components/diagrams/models/socket.model.d.ts +3 -1
  67. package/lib/components/diagrams/services/diagram.service.d.ts +20 -9
  68. package/lib/components/diagrams/services/workflow.service.d.ts +0 -1
  69. package/lib/components/diagrams/types/common.type.d.ts +5 -0
  70. package/lib/components/diagrams/types/connection-config.type.d.ts +11 -0
  71. package/lib/components/diagrams/types/connection-label.type.d.ts +4 -0
  72. package/lib/components/diagrams/types/diagram-config.type.d.ts +6 -0
  73. package/lib/components/diagrams/types/diagram-editor.type.d.ts +3 -2
  74. package/lib/components/diagrams/types/index.d.ts +5 -1
  75. package/lib/components/diagrams/types/node-definition.d.ts +1 -0
  76. package/lib/components/diagrams/types/path.type.d.ts +1 -0
  77. package/lib/components/diagrams/types/ports-config.type.d.ts +11 -0
  78. package/lib/components/diagrams/types/socket.type.d.ts +5 -0
  79. package/lib/components/diagrams/utilities/common.d.ts +19 -0
  80. package/lib/components/diagrams/utilities/index.d.ts +2 -0
  81. package/lib/components/diagrams/utilities/random.d.ts +1 -0
  82. package/lib/components/diagrams/utilities/remove.util.d.ts +1 -1
  83. package/package.json +1 -1
@@ -30289,6 +30289,7 @@
30289
30289
  start: 'start',
30290
30290
  content: 'content',
30291
30291
  template: 'template',
30292
+ gateway: 'gateway',
30292
30293
  end: 'end',
30293
30294
  };
30294
30295
 
@@ -30300,6 +30301,7 @@
30300
30301
  var NODE_WIDTH = 150;
30301
30302
  var NODE_HEIGHT = 118;
30302
30303
  var NODE_CIRCLE_SIZE = 72;
30304
+ var NODE_GATEWAY_SIZE = 60;
30303
30305
  var DIAGRAM_HEIGHT = 600;
30304
30306
  var SOCKET_WIDTH = 8;
30305
30307
 
@@ -30310,6 +30312,9 @@
30310
30312
  inProgress: 'inProgress',
30311
30313
  upcoming: 'upcoming',
30312
30314
  approved: 'approved',
30315
+ suspended: 'suspended',
30316
+ ready: 'ready',
30317
+ canceled: 'canceled'
30313
30318
  };
30314
30319
 
30315
30320
  var DiagramPluginsService = /** @class */ (function () {
@@ -30342,7 +30347,7 @@
30342
30347
  _this.height = NODE_HEIGHT;
30343
30348
  _this.directions = {
30344
30349
  inputs: IN_OUT_DIRECTION.start,
30345
- outputs: IN_OUT_DIRECTION.end,
30350
+ outputs: IN_OUT_DIRECTION.end
30346
30351
  };
30347
30352
  _this.name = config === null || config === void 0 ? void 0 : config.name;
30348
30353
  _this.directions = (config === null || config === void 0 ? void 0 : config.directions) || _this.directions;
@@ -30354,6 +30359,7 @@
30354
30359
  _this.content = config === null || config === void 0 ? void 0 : config.content;
30355
30360
  _this.config = config === null || config === void 0 ? void 0 : config.config;
30356
30361
  _this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
30362
+ _this.options = config === null || config === void 0 ? void 0 : config.options;
30357
30363
  return _this;
30358
30364
  }
30359
30365
  return BaseNodeClass;
@@ -30370,11 +30376,235 @@
30370
30376
  return CircleNode;
30371
30377
  }(BaseNodeClass));
30372
30378
 
30379
+ var DiagramUtils = /** @class */ (function () {
30380
+ function DiagramUtils() {
30381
+ }
30382
+ DiagramUtils.createInputId = function (id, type) {
30383
+ if (type === void 0) { type = 'primary'; }
30384
+ return id + "-" + type + "-input";
30385
+ };
30386
+ DiagramUtils.createOutputId = function (id, type) {
30387
+ if (type === void 0) { type = 'primary'; }
30388
+ return id + "-" + type + "-output";
30389
+ };
30390
+ DiagramUtils.createInputClass = function (type) {
30391
+ if (type === void 0) { type = 'primary'; }
30392
+ return "input-" + type + "-port";
30393
+ };
30394
+ DiagramUtils.createOutputClass = function (type) {
30395
+ if (type === void 0) { type = 'primary'; }
30396
+ return "output-" + type + "-port";
30397
+ };
30398
+ DiagramUtils.createOutputsConfig = function (id, types) {
30399
+ return types.map(function (type) {
30400
+ return {
30401
+ id: DiagramUtils.createOutputId(id, type),
30402
+ config: {
30403
+ styleClass: DiagramUtils.createOutputClass(type)
30404
+ }
30405
+ };
30406
+ });
30407
+ };
30408
+ DiagramUtils.createInputsConfig = function (id, types) {
30409
+ return types.map(function (type) {
30410
+ return {
30411
+ id: DiagramUtils.createInputId(id, type),
30412
+ config: {
30413
+ styleClass: DiagramUtils.createInputClass(type)
30414
+ }
30415
+ };
30416
+ });
30417
+ };
30418
+ return DiagramUtils;
30419
+ }());
30420
+
30421
+ function getRandomNumber(x, y, step, min, max) {
30422
+ if (step === void 0) { step = 1; }
30423
+ if (min === void 0) { min = 0; }
30424
+ if (max === void 0) { max = 1000; }
30425
+ // Create a deterministic seed based on x and y
30426
+ var seed = Math.abs(x * 31 + y * 17) % 100000;
30427
+ // Generate a pseudo-random number based on the seed
30428
+ var seededRandom = ((seed * 9301 + 49297) % 233280) / 233280;
30429
+ // Calculate range
30430
+ var range = Math.floor((max - min) / step) + 1;
30431
+ // Return the adjusted number
30432
+ return min + Math.floor(seededRandom * range) * step;
30433
+ }
30434
+
30435
+ /**
30436
+ *
30437
+ * @param node
30438
+ * @returns
30439
+ */
30440
+ var removeNode = function (data, editor) { return __awaiter(void 0, void 0, void 0, function () {
30441
+ var nodes, node, nodeConfig, _a;
30442
+ return __generator(this, function (_b) {
30443
+ switch (_b.label) {
30444
+ case 0:
30445
+ if (!data || !editor) {
30446
+ console.log('Node not found.');
30447
+ return [2 /*return*/];
30448
+ }
30449
+ nodes = editor.getNodes();
30450
+ node = editor.getNode(data.nodeId);
30451
+ if (!node) {
30452
+ console.log('Node not found.');
30453
+ return [2 /*return*/];
30454
+ }
30455
+ if (node.type === NODE_TYPE.start && nodes.length > 1) {
30456
+ return [2 /*return*/];
30457
+ }
30458
+ nodeConfig = node.config;
30459
+ if (!(nodeConfig === null || nodeConfig === void 0 ? void 0 : nodeConfig.isLinked)) return [3 /*break*/, 2];
30460
+ return [4 /*yield*/, removeNodeAndReplaceConnections(node, editor)];
30461
+ case 1:
30462
+ _a = _b.sent();
30463
+ return [3 /*break*/, 4];
30464
+ case 2: return [4 /*yield*/, removeNodeAndConnections(node, editor)];
30465
+ case 3:
30466
+ _a = _b.sent();
30467
+ _b.label = 4;
30468
+ case 4: return [2 /*return*/, _a];
30469
+ }
30470
+ });
30471
+ }); };
30472
+ /**
30473
+ *
30474
+ * @param node
30475
+ * @param editor
30476
+ */
30477
+ var removeNodeAndConnections = function (node, editor) { return __awaiter(void 0, void 0, void 0, function () {
30478
+ return __generator(this, function (_a) {
30479
+ switch (_a.label) {
30480
+ case 0:
30481
+ removeConnections(node, editor);
30482
+ return [4 /*yield*/, editor.removeNode(node.id)];
30483
+ case 1:
30484
+ _a.sent();
30485
+ return [2 /*return*/];
30486
+ }
30487
+ });
30488
+ }); };
30489
+ /**
30490
+ *
30491
+ * @param node
30492
+ * @param editor
30493
+ */
30494
+ var removeNodeAndReplaceConnections = function (node, editor) { return __awaiter(void 0, void 0, void 0, function () {
30495
+ var outputs, inputs;
30496
+ return __generator(this, function (_a) {
30497
+ switch (_a.label) {
30498
+ case 0:
30499
+ outputs = getConnections(editor, function (connection) { return connection.source == node.id; });
30500
+ inputs = getConnections(editor, function (connection) { return connection.target == node.id; });
30501
+ if (!(!!inputs.length && !!outputs.length)) return [3 /*break*/, 2];
30502
+ return [4 /*yield*/, _updateConnections(outputs, inputs, editor)];
30503
+ case 1:
30504
+ _a.sent();
30505
+ return [3 /*break*/, 3];
30506
+ case 2:
30507
+ removeConnections(node, editor);
30508
+ _a.label = 3;
30509
+ case 3: return [4 /*yield*/, editor.removeNode(node.id)];
30510
+ case 4:
30511
+ _a.sent();
30512
+ return [2 /*return*/];
30513
+ }
30514
+ });
30515
+ }); };
30516
+ /**
30517
+ *
30518
+ * @param node
30519
+ * @param editor
30520
+ */
30521
+ var removeConnections = function (node, editor) {
30522
+ var connections = getConnections(editor, function (connection) { return connection.source === node.id || connection.target === node.id; });
30523
+ if (connections.length) {
30524
+ connections.forEach(function (connection) {
30525
+ editor.removeConnection(connection.id);
30526
+ });
30527
+ }
30528
+ };
30529
+ /**
30530
+ *
30531
+ * @param editor
30532
+ * @param predicate
30533
+ * @returns
30534
+ */
30535
+ var getConnections = function (editor, predicate) {
30536
+ return editor.getConnections().filter(predicate);
30537
+ };
30538
+ /**
30539
+ *
30540
+ * @param outputs
30541
+ * @param inputs
30542
+ * @param editor
30543
+ */
30544
+ var _updateConnections = function (outputs, inputs, editor) { return __awaiter(void 0, void 0, void 0, function () {
30545
+ var source, target, sourceNode, targetNode, connection;
30546
+ return __generator(this, function (_a) {
30547
+ switch (_a.label) {
30548
+ case 0:
30549
+ source = inputs[0].source;
30550
+ target = outputs[0].target;
30551
+ sourceNode = editor.getNode(source);
30552
+ targetNode = editor.getNode(target);
30553
+ __spreadArray(__spreadArray([], __read(outputs)), __read(inputs)).forEach(function (connection) { return __awaiter(void 0, void 0, void 0, function () {
30554
+ return __generator(this, function (_a) {
30555
+ switch (_a.label) {
30556
+ case 0: return [4 /*yield*/, editor.removeConnection(connection.id)];
30557
+ case 1:
30558
+ _a.sent();
30559
+ return [2 /*return*/];
30560
+ }
30561
+ });
30562
+ }); });
30563
+ if (!sourceNode || !targetNode) {
30564
+ return [2 /*return*/];
30565
+ }
30566
+ connection = new Connection(sourceNode, targetNode);
30567
+ return [4 /*yield*/, editor.addConnection(connection)];
30568
+ case 1:
30569
+ _a.sent();
30570
+ return [2 /*return*/];
30571
+ }
30572
+ });
30573
+ }); };
30574
+
30575
+ function serializePort(port) {
30576
+ return {
30577
+ id: port.id,
30578
+ label: port.label,
30579
+ socket: {
30580
+ name: port.socket.name,
30581
+ },
30582
+ };
30583
+ }
30584
+ function serializeControl(control) {
30585
+ if (control instanceof rete.ClassicPreset.InputControl) {
30586
+ return {
30587
+ __type: 'ClassicPreset.InputControl',
30588
+ id: control.id,
30589
+ readonly: control.readonly,
30590
+ type: control.type,
30591
+ value: control.value,
30592
+ };
30593
+ }
30594
+ return null;
30595
+ }
30596
+
30373
30597
  var Connection = /** @class */ (function (_super) {
30374
30598
  __extends(Connection, _super);
30375
- function Connection() {
30376
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
30377
- _this.renderType = 'default';
30599
+ function Connection(source, target, config) {
30600
+ var _this = _super.call(this, source, (config === null || config === void 0 ? void 0 : config.sourceOutput) || DiagramUtils.createOutputId(source.id), target, (config === null || config === void 0 ? void 0 : config.targetInput) || DiagramUtils.createInputId(target.id)) || this;
30601
+ _this.status = (config === null || config === void 0 ? void 0 : config.status) || target.status;
30602
+ _this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
30603
+ _this.label = config === null || config === void 0 ? void 0 : config.label;
30604
+ _this.renderType = (config === null || config === void 0 ? void 0 : config.renderType) || 'default';
30605
+ _this.sourceNode = source;
30606
+ _this.targetNode = target;
30607
+ _this.direction = config === null || config === void 0 ? void 0 : config.direction;
30378
30608
  return _this;
30379
30609
  }
30380
30610
  return Connection;
@@ -30388,12 +30618,31 @@
30388
30618
  return ContentNode;
30389
30619
  }(BaseNodeClass));
30390
30620
 
30621
+ var OutputPort = /** @class */ (function (_super) {
30622
+ __extends(OutputPort, _super);
30623
+ function OutputPort(config) {
30624
+ var _this = _super.call(this, config.socket, config === null || config === void 0 ? void 0 : config.label, (config === null || config === void 0 ? void 0 : config.multipleConnections) !== false) || this;
30625
+ _this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
30626
+ return _this;
30627
+ }
30628
+ return OutputPort;
30629
+ }(rete.ClassicPreset.Output));
30630
+ var InputPort = /** @class */ (function (_super) {
30631
+ __extends(InputPort, _super);
30632
+ function InputPort(config) {
30633
+ var _this = _super.call(this, config.socket, config === null || config === void 0 ? void 0 : config.label, (config === null || config === void 0 ? void 0 : config.multipleConnections) !== false) || this;
30634
+ _this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
30635
+ return _this;
30636
+ }
30637
+ return InputPort;
30638
+ }(rete.ClassicPreset.Input));
30639
+
30391
30640
  var Socket = /** @class */ (function (_super) {
30392
30641
  __extends(Socket, _super);
30393
- function Socket(name, renderType) {
30394
- if (renderType === void 0) { renderType = 'default'; }
30395
- var _this = _super.call(this, name) || this;
30396
- _this.renderType = renderType;
30642
+ function Socket(config) {
30643
+ var _this = _super.call(this, config.name) || this;
30644
+ _this.renderType = (config === null || config === void 0 ? void 0 : config.renderType) || 'default';
30645
+ _this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
30397
30646
  return _this;
30398
30647
  }
30399
30648
  return Socket;
@@ -30412,6 +30661,18 @@
30412
30661
  return TemplateNode;
30413
30662
  }(BaseNodeClass));
30414
30663
 
30664
+ var GateWayNode = /** @class */ (function (_super) {
30665
+ __extends(GateWayNode, _super);
30666
+ function GateWayNode(config) {
30667
+ var _this = _super.call(this, config) || this;
30668
+ _this.type = NODE_TYPE.gateway;
30669
+ _this.width = NODE_GATEWAY_SIZE;
30670
+ _this.height = NODE_GATEWAY_SIZE;
30671
+ return _this;
30672
+ }
30673
+ return GateWayNode;
30674
+ }(BaseNodeClass));
30675
+
30415
30676
  /**
30416
30677
  *
30417
30678
  * @param config
@@ -30449,44 +30710,72 @@
30449
30710
  return i2$8.ConnectionComponent;
30450
30711
  }; };
30451
30712
  var initNodeByType = function (type, config) {
30452
- var _nodes = {
30453
- start: CircleNode,
30454
- content: ContentNode,
30455
- template: TemplateNode,
30456
- end: CircleNode,
30457
- };
30713
+ var _b;
30714
+ var _nodes = (_b = {},
30715
+ _b[NODE_TYPE.start] = CircleNode,
30716
+ _b[NODE_TYPE.content] = ContentNode,
30717
+ _b[NODE_TYPE.template] = TemplateNode,
30718
+ _b[NODE_TYPE.end] = CircleNode,
30719
+ _b[NODE_TYPE.gateway] = GateWayNode,
30720
+ _b);
30458
30721
  return new _nodes[type](config) || new ContentNode(config);
30459
30722
  };
30460
30723
  var initAngularComponentByType = function (type) {
30461
- var _components = {
30462
- content: ContentNodeComponent,
30463
- start: CircleNodeComponent,
30464
- end: CircleNodeComponent,
30465
- template: TemplateNodeComponent,
30466
- };
30724
+ var _b;
30725
+ var _components = (_b = {},
30726
+ _b[NODE_TYPE.content] = ContentNodeComponent,
30727
+ _b[NODE_TYPE.start] = CircleNodeComponent,
30728
+ _b[NODE_TYPE.end] = CircleNodeComponent,
30729
+ _b[NODE_TYPE.template] = TemplateNodeComponent,
30730
+ _b[NODE_TYPE.gateway] = GatewayNodeComponent,
30731
+ _b);
30467
30732
  return _components[type] || i2$8.NodeComponent;
30468
30733
  };
30469
30734
 
30470
30735
  var createSegmentedPath = function (connection, options) {
30471
- var _a = options || {}, _b = _a.multiPoints, multiPoints = _b === void 0 ? true : _b, _c = _a.offset, offset = _c === void 0 ? 0 : _c;
30736
+ var _a;
30737
+ var _b = ((_a = options === null || options === void 0 ? void 0 : options.transform) === null || _a === void 0 ? void 0 : _a.options) || {}, _c = _b.multiPoints, multiPoints = _c === void 0 ? true : _c, _d = _b.offset, offset = _d === void 0 ? 0 : _d;
30738
+ var isVertical = !!(options === null || options === void 0 ? void 0 : options.vertical);
30739
+ var direction = connection.direction;
30472
30740
  return function (points) {
30473
30741
  if (points.length !== 2) {
30474
30742
  throw new Error('Exactly two points are required to create a linear path.');
30475
30743
  }
30476
- var _a = __read(points, 2), start = _a[0], end = _a[1];
30744
+ var _b = __read(points, 2), start = _b[0], end = _b[1];
30745
+ if (!isVertical) {
30746
+ switch (direction) {
30747
+ case 'down': {
30748
+ var offset_1 = getRandomNumber(start.x, start.y, 10, 50, 150);
30749
+ var _points = [
30750
+ { x: start.x, y: start.y + offset_1 },
30751
+ { x: end.x, y: end.y + offset_1 }
30752
+ ];
30753
+ return __spreadArray(__spreadArray([start], __read(_points)), [end]);
30754
+ }
30755
+ case 'backward': {
30756
+ var _points = [{ x: end.x, y: start.y }];
30757
+ return __spreadArray(__spreadArray([start], __read(_points)), [end]);
30758
+ }
30759
+ case 'forward': {
30760
+ if (end.y < start.y) {
30761
+ var _points = [{ x: start.x, y: end.y }];
30762
+ return __spreadArray(__spreadArray([start], __read(_points)), [end]);
30763
+ }
30764
+ break;
30765
+ }
30766
+ }
30767
+ }
30477
30768
  if (multiPoints) {
30478
30769
  var midpointY = (end.y - start.y) / 2 + start.y;
30479
30770
  var intermediatePoints = [
30480
30771
  { x: start.x, y: midpointY - offset },
30481
- { x: end.x, y: midpointY + offset },
30482
- ];
30483
- // Use bezier curves between points to smooth corners
30484
- return [
30485
- Object.assign(Object.assign({}, start), { controlOut: { x: start.x, y: midpointY - offset } }),
30486
- intermediatePoints[0],
30487
- intermediatePoints[1],
30488
- Object.assign(Object.assign({}, end), { controlIn: { x: end.x, y: midpointY + offset } }),
30772
+ { x: end.x, y: midpointY + offset }
30489
30773
  ];
30774
+ return __spreadArray(__spreadArray([
30775
+ Object.assign(Object.assign({}, start), { controlOut: { x: start.x, y: midpointY - offset } })
30776
+ ], __read(intermediatePoints)), [
30777
+ Object.assign(Object.assign({}, end), { controlIn: { x: end.x, y: midpointY + offset } })
30778
+ ]);
30490
30779
  }
30491
30780
  return [start, end];
30492
30781
  };
@@ -30496,14 +30785,15 @@
30496
30785
  curve: function (c) { var _a; return (_a = (c.curve || (config === null || config === void 0 ? void 0 : config.curve))) !== null && _a !== void 0 ? _a : d3Shape.curveLinear; },
30497
30786
  transformer: function (c) {
30498
30787
  var _a, _b, _c;
30499
- return ((_a = config === null || config === void 0 ? void 0 : config.transform) === null || _a === void 0 ? void 0 : _a.active)
30500
- ? createSegmentedPath(c, (_b = config === null || config === void 0 ? void 0 : config.transform) === null || _b === void 0 ? void 0 : _b.options)
30501
- : reteConnectionPathPlugin.Transformers.classic({
30502
- vertical: !!(config === null || config === void 0 ? void 0 : config.vertical),
30503
- curvature: (_c = config === null || config === void 0 ? void 0 : config.curvature) !== null && _c !== void 0 ? _c : 0.3,
30504
- });
30788
+ if ((_a = config === null || config === void 0 ? void 0 : config.transform) === null || _a === void 0 ? void 0 : _a.active) {
30789
+ return (((_b = c === null || c === void 0 ? void 0 : c.createSegmentedPath) === null || _b === void 0 ? void 0 : _b.call(c, c, config)) || createSegmentedPath(c, config));
30790
+ }
30791
+ return reteConnectionPathPlugin.Transformers.classic({
30792
+ vertical: !!(config === null || config === void 0 ? void 0 : config.vertical),
30793
+ curvature: (_c = config === null || config === void 0 ? void 0 : config.curvature) !== null && _c !== void 0 ? _c : 0.3
30794
+ });
30505
30795
  },
30506
- arrow: function (connection) { return (!(config === null || config === void 0 ? void 0 : config.arrow) ? false : config === null || config === void 0 ? void 0 : config.arrow); },
30796
+ arrow: function (connection) { return (!(config === null || config === void 0 ? void 0 : config.arrow) ? false : config === null || config === void 0 ? void 0 : config.arrow); }
30507
30797
  }); };
30508
30798
 
30509
30799
  var socketPositionWatcher = function (offset, isVertical, editor) {
@@ -30518,9 +30808,9 @@
30518
30808
  };
30519
30809
 
30520
30810
  var createDiagramEditor = function (container, injector, config) { return __awaiter(void 0, void 0, void 0, function () {
30521
- var _a, _b, _c, _d, _e, _f, _g, socket, editor, area, connection, pathPlugin, angularRender, readonly, arrange, reroute, minimap, selector, accumulating, _scaling_1;
30522
- return __generator(this, function (_h) {
30523
- socket = new Socket('', config === null || config === void 0 ? void 0 : config.socketType);
30811
+ var _a, _b, _c, _d, _e, _f, _g, _h, socket, editor, area, connection, pathPlugin, angularRender, readonly, arrange, reroute, minimap, selector, accumulating, _scaling_1;
30812
+ return __generator(this, function (_j) {
30813
+ socket = new Socket({ name: '', renderType: config === null || config === void 0 ? void 0 : config.socketType });
30524
30814
  editor = new rete.NodeEditor();
30525
30815
  area = new reteAreaPlugin.AreaPlugin(container);
30526
30816
  connection = new reteConnectionPlugin.ConnectionPlugin();
@@ -30536,31 +30826,33 @@
30536
30826
  reteConnectionReroutePlugin.RerouteExtensions.selectablePins(reroute, selector, accumulating);
30537
30827
  //#endregion
30538
30828
  //#region PRESETS
30539
- arrange.addPreset(reteAutoArrangePlugin.Presets.classic.setup());
30829
+ arrange.addPreset(((_b = config === null || config === void 0 ? void 0 : config.presets) === null || _b === void 0 ? void 0 : _b.arrange)
30830
+ ? config === null || config === void 0 ? void 0 : config.presets.arrange(editor)
30831
+ : reteAutoArrangePlugin.Presets.classic.setup());
30540
30832
  angularRender.addPreset(i2$8.Presets.classic.setup({
30541
- socketPositionWatcher: socketPositionWatcher(0, (_b = config === null || config === void 0 ? void 0 : config.path) === null || _b === void 0 ? void 0 : _b.vertical, editor),
30833
+ socketPositionWatcher: socketPositionWatcher(0, (_c = config === null || config === void 0 ? void 0 : config.path) === null || _c === void 0 ? void 0 : _c.vertical, editor),
30542
30834
  customize: {
30543
30835
  node: customizeNode(config, editor),
30544
30836
  connection: customizeConnection(config),
30545
- socket: customizeSocket(config),
30546
- },
30837
+ socket: customizeSocket(config)
30838
+ }
30547
30839
  }));
30548
- angularRender.addPreset(i2$8.Presets.minimap.setup({ size: ((_c = config === null || config === void 0 ? void 0 : config.minimap) === null || _c === void 0 ? void 0 : _c.size) || 150 }));
30840
+ angularRender.addPreset(i2$8.Presets.minimap.setup({ size: ((_d = config === null || config === void 0 ? void 0 : config.minimap) === null || _d === void 0 ? void 0 : _d.size) || 150 }));
30549
30841
  connection.addPreset(reteConnectionPlugin.Presets.classic.setup());
30550
- if ((_d = config === null || config === void 0 ? void 0 : config.area) === null || _d === void 0 ? void 0 : _d.restrict) {
30842
+ if ((_e = config === null || config === void 0 ? void 0 : config.area) === null || _e === void 0 ? void 0 : _e.restrict) {
30551
30843
  _scaling_1 = (config === null || config === void 0 ? void 0 : config.area.scaling) || { min: 0.5, max: 1.5 };
30552
30844
  reteAreaPlugin.AreaExtensions.restrictor(area, {
30553
- scaling: function () { return _scaling_1; },
30845
+ scaling: function () { return _scaling_1; }
30554
30846
  });
30555
30847
  }
30556
30848
  //#endregion
30557
30849
  //#region USE
30558
- if ((_e = config === null || config === void 0 ? void 0 : config.readonly) === null || _e === void 0 ? void 0 : _e.active) {
30850
+ if ((_f = config === null || config === void 0 ? void 0 : config.readonly) === null || _f === void 0 ? void 0 : _f.active) {
30559
30851
  editor.use(readonly.root);
30560
30852
  area.use(readonly.area);
30561
30853
  }
30562
30854
  editor.use(area);
30563
- if (!((_f = config === null || config === void 0 ? void 0 : config.readonly) === null || _f === void 0 ? void 0 : _f.active)) {
30855
+ if (!((_g = config === null || config === void 0 ? void 0 : config.readonly) === null || _g === void 0 ? void 0 : _g.active)) {
30564
30856
  // Don't use the connection plugin in readonly mode
30565
30857
  area.use(connection);
30566
30858
  }
@@ -30573,7 +30865,7 @@
30573
30865
  //@ts-ignore
30574
30866
  angularRender.use(reroute);
30575
30867
  }
30576
- if ((_g = config === null || config === void 0 ? void 0 : config.minimap) === null || _g === void 0 ? void 0 : _g.active) {
30868
+ if ((_h = config === null || config === void 0 ? void 0 : config.minimap) === null || _h === void 0 ? void 0 : _h.active) {
30577
30869
  area.use(minimap);
30578
30870
  }
30579
30871
  // Render Diagram
@@ -30587,179 +30879,17 @@
30587
30879
  connection: connection,
30588
30880
  arrange: arrange,
30589
30881
  reroute: reroute,
30590
- readonly: readonly,
30882
+ readonly: readonly
30591
30883
  },
30592
30884
  destroy: function () { return area.destroy(); },
30593
30885
  layout: function (props) { return arrange.layout(props); },
30594
30886
  fitToZoom: function () {
30595
30887
  reteAreaPlugin.AreaExtensions.zoomAt(area, editor.getNodes());
30596
- },
30597
- }];
30598
- });
30599
- }); };
30600
-
30601
- /**
30602
- *
30603
- * @param node
30604
- * @returns
30605
- */
30606
- var removeNode = function (data, editor) { return __awaiter(void 0, void 0, void 0, function () {
30607
- var nodes, node, nodeConfig, _a;
30608
- return __generator(this, function (_b) {
30609
- switch (_b.label) {
30610
- case 0:
30611
- if (!data || !editor) {
30612
- console.log('Node not found.');
30613
- return [2 /*return*/];
30614
- }
30615
- nodes = editor.getNodes();
30616
- node = editor.getNode(data.nodeId);
30617
- if (!node) {
30618
- console.log('Node not found.');
30619
- return [2 /*return*/];
30620
- }
30621
- if (node.type === NODE_TYPE.start && nodes.length > 1) {
30622
- return [2 /*return*/];
30623
30888
  }
30624
- nodeConfig = node.config;
30625
- if (!(nodeConfig === null || nodeConfig === void 0 ? void 0 : nodeConfig.isLinked)) return [3 /*break*/, 2];
30626
- return [4 /*yield*/, removeNodeAndReplaceConnections(node, editor)];
30627
- case 1:
30628
- _a = _b.sent();
30629
- return [3 /*break*/, 4];
30630
- case 2: return [4 /*yield*/, removeNodeAndConnections(node, editor)];
30631
- case 3:
30632
- _a = _b.sent();
30633
- _b.label = 4;
30634
- case 4: return [2 /*return*/, _a];
30635
- }
30636
- });
30637
- }); };
30638
- /**
30639
- *
30640
- * @param node
30641
- * @param editor
30642
- */
30643
- var removeNodeAndConnections = function (node, editor) { return __awaiter(void 0, void 0, void 0, function () {
30644
- return __generator(this, function (_a) {
30645
- switch (_a.label) {
30646
- case 0:
30647
- removeConnections(node, editor);
30648
- return [4 /*yield*/, editor.removeNode(node.id)];
30649
- case 1:
30650
- _a.sent();
30651
- return [2 /*return*/];
30652
- }
30653
- });
30654
- }); };
30655
- /**
30656
- *
30657
- * @param node
30658
- * @param editor
30659
- */
30660
- var removeNodeAndReplaceConnections = function (node, editor) { return __awaiter(void 0, void 0, void 0, function () {
30661
- var outputs, inputs;
30662
- return __generator(this, function (_a) {
30663
- switch (_a.label) {
30664
- case 0:
30665
- outputs = getConnections(editor, function (connection) { return connection.source == node.id; });
30666
- inputs = getConnections(editor, function (connection) { return connection.target == node.id; });
30667
- if (!(!!inputs.length && !!outputs.length)) return [3 /*break*/, 2];
30668
- return [4 /*yield*/, _updateConnections(outputs, inputs, editor)];
30669
- case 1:
30670
- _a.sent();
30671
- return [3 /*break*/, 3];
30672
- case 2:
30673
- removeConnections(node, editor);
30674
- _a.label = 3;
30675
- case 3: return [4 /*yield*/, editor.removeNode(node.id)];
30676
- case 4:
30677
- _a.sent();
30678
- return [2 /*return*/];
30679
- }
30680
- });
30681
- }); };
30682
- /**
30683
- *
30684
- * @param node
30685
- * @param editor
30686
- */
30687
- var removeConnections = function (node, editor) {
30688
- var connections = getConnections(editor, function (connection) { return connection.source === node.id || connection.target === node.id; });
30689
- if (connections.length) {
30690
- connections.forEach(function (connection) {
30691
- editor.removeConnection(connection.id);
30692
- });
30693
- }
30694
- };
30695
- /**
30696
- *
30697
- * @param editor
30698
- * @param predicate
30699
- * @returns
30700
- */
30701
- var getConnections = function (editor, predicate) {
30702
- return editor.getConnections().filter(predicate);
30703
- };
30704
- /**
30705
- *
30706
- * @param outputs
30707
- * @param inputs
30708
- * @param editor
30709
- */
30710
- var _updateConnections = function (outputs, inputs, editor) { return __awaiter(void 0, void 0, void 0, function () {
30711
- var source, target, sourceNode, targetNode, connection;
30712
- return __generator(this, function (_a) {
30713
- switch (_a.label) {
30714
- case 0:
30715
- source = inputs[0].source;
30716
- target = outputs[0].target;
30717
- sourceNode = editor.getNode(source);
30718
- targetNode = editor.getNode(target);
30719
- __spreadArray(__spreadArray([], __read(outputs)), __read(inputs)).forEach(function (connection) { return __awaiter(void 0, void 0, void 0, function () {
30720
- return __generator(this, function (_a) {
30721
- switch (_a.label) {
30722
- case 0: return [4 /*yield*/, editor.removeConnection(connection.id)];
30723
- case 1:
30724
- _a.sent();
30725
- return [2 /*return*/];
30726
- }
30727
- });
30728
- }); });
30729
- if (!sourceNode || !targetNode) {
30730
- return [2 /*return*/];
30731
- }
30732
- connection = new Connection(sourceNode, sourceNode.id + "-output", targetNode, targetNode.id + "-input");
30733
- return [4 /*yield*/, editor.addConnection(connection)];
30734
- case 1:
30735
- _a.sent();
30736
- return [2 /*return*/];
30737
- }
30889
+ }];
30738
30890
  });
30739
30891
  }); };
30740
30892
 
30741
- function serializePort(port) {
30742
- return {
30743
- id: port.id,
30744
- label: port.label,
30745
- socket: {
30746
- name: port.socket.name,
30747
- },
30748
- };
30749
- }
30750
- function serializeControl(control) {
30751
- if (control instanceof rete.ClassicPreset.InputControl) {
30752
- return {
30753
- __type: 'ClassicPreset.InputControl',
30754
- id: control.id,
30755
- readonly: control.readonly,
30756
- type: control.type,
30757
- value: control.value,
30758
- };
30759
- }
30760
- return null;
30761
- }
30762
-
30763
30893
  var DiagramService = /** @class */ (function () {
30764
30894
  /**
30765
30895
  *
@@ -30776,6 +30906,9 @@
30776
30906
  this.destroy = editor.destroy;
30777
30907
  this.fitToZoom = editor.fitToZoom;
30778
30908
  };
30909
+ DiagramService.prototype.diagramClientRect = function () {
30910
+ return this.plugins.area.container.getBoundingClientRect();
30911
+ };
30779
30912
  DiagramService.prototype.getContentNodes = function () {
30780
30913
  return this.editor
30781
30914
  .getNodes()
@@ -30805,13 +30938,32 @@
30805
30938
  });
30806
30939
  };
30807
30940
  DiagramService.prototype.createNode = function (type, config) {
30941
+ var _this = this;
30808
30942
  if (type === void 0) { type = NODE_TYPE.content; }
30809
30943
  var _node = initNodeByType(type, config);
30810
30944
  if (config.type !== NODE_TYPE.start) {
30811
- this.createInputs(_node);
30945
+ this.createInput(_node, DiagramUtils.createInputId(_node.id), {
30946
+ styleClass: DiagramUtils.createInputClass()
30947
+ });
30812
30948
  }
30813
30949
  if (config.type !== NODE_TYPE.end) {
30814
- this.createOutputs(_node);
30950
+ this.createOutput(_node, DiagramUtils.createOutputId(_node.id), {
30951
+ styleClass: DiagramUtils.createOutputClass()
30952
+ });
30953
+ }
30954
+ if (config.type === NODE_TYPE.gateway) {
30955
+ this._creteGatewayOutput(_node);
30956
+ }
30957
+ if ([NODE_TYPE.content, NODE_TYPE.template].includes(config.type)) {
30958
+ var contentPorts = ['secondary', 'tertiary', 'quaternary'];
30959
+ DiagramUtils.createInputsConfig(_node.id, contentPorts).forEach(function (_b) {
30960
+ var id = _b.id, config = _b.config;
30961
+ return _this.createInput(_node, id, config);
30962
+ });
30963
+ DiagramUtils.createOutputsConfig(_node.id, contentPorts).forEach(function (_b) {
30964
+ var id = _b.id, config = _b.config;
30965
+ return _this.createOutput(_node, id, config);
30966
+ });
30815
30967
  }
30816
30968
  _node.notify = this.notifyListener(_node);
30817
30969
  return _node;
@@ -30824,6 +30976,18 @@
30824
30976
  var _isExist = _nodes.some(function (nd) { return nd.type === NODE_TYPE.start; });
30825
30977
  return !_isExist;
30826
30978
  };
30979
+ DiagramService.prototype.getNode = function (id) {
30980
+ return this.editor.getNode(id);
30981
+ };
30982
+ DiagramService.prototype.getNodes = function () {
30983
+ return this.editor.getNodes();
30984
+ };
30985
+ DiagramService.prototype.getConnections = function () {
30986
+ return this.editor.getConnections();
30987
+ };
30988
+ DiagramService.prototype.getConnection = function (id) {
30989
+ return this.editor.getConnection(id);
30990
+ };
30827
30991
  DiagramService.prototype.getLastNode = function () {
30828
30992
  var nodes = this.editor.getNodes();
30829
30993
  return nodes.length ? nodes[nodes.length - 1] : null;
@@ -30831,23 +30995,35 @@
30831
30995
  DiagramService.prototype.getNodesByType = function (type) {
30832
30996
  return this.editor.getNodes().filter(function (nd) { return nd.type === type; });
30833
30997
  };
30998
+ DiagramService.prototype.getViewNodes = function () {
30999
+ return Array.from(this.plugins.area.nodeViews.values());
31000
+ };
30834
31001
  DiagramService.prototype.getLastViewNode = function () {
30835
- var nodes = Array.from(this.plugins.area.nodeViews.values());
31002
+ var nodes = this.getViewNodes();
30836
31003
  return nodes.length ? nodes[nodes.length - 1] : null;
30837
31004
  };
30838
- DiagramService.prototype.createInputs = function (node) {
30839
- node.addInput(node.id + "-input", new rete.ClassicPreset.Input(this.socket));
31005
+ DiagramService.prototype.getViewNode = function (id) {
31006
+ return this.plugins.area.nodeViews.get(id);
31007
+ };
31008
+ DiagramService.prototype.getViewNodePosition = function (id) {
31009
+ var node = this.getViewNode(id);
31010
+ return node ? node.position : null;
31011
+ };
31012
+ DiagramService.prototype.createInput = function (node, id, config) {
31013
+ if (id === void 0) { id = node.id + "-input"; }
31014
+ node.addInput(id, new InputPort(Object.assign({ socket: this.socket }, config)));
30840
31015
  return node;
30841
31016
  };
30842
- DiagramService.prototype.createOutputs = function (node) {
30843
- node.addOutput(node.id + "-output", new rete.ClassicPreset.Output(this.socket, '', false));
31017
+ DiagramService.prototype.createOutput = function (node, id, config) {
31018
+ if (id === void 0) { id = node.id + "-output"; }
31019
+ node.addOutput(id, new OutputPort(Object.assign({ socket: this.socket }, config)));
30844
31020
  return node;
30845
31021
  };
30846
- DiagramService.prototype.addConnection = function (sourceNode, targetNode) {
31022
+ DiagramService.prototype.addConnection = function (sourceNode, targetNode, config) {
30847
31023
  return __awaiter(this, void 0, void 0, function () {
30848
31024
  return __generator(this, function (_b) {
30849
31025
  switch (_b.label) {
30850
- case 0: return [4 /*yield*/, this.editor.addConnection(this.createConnection(sourceNode, targetNode))];
31026
+ case 0: return [4 /*yield*/, this.editor.addConnection(this.createConnection(sourceNode, targetNode, config))];
30851
31027
  case 1:
30852
31028
  _b.sent();
30853
31029
  return [2 /*return*/];
@@ -30855,10 +31031,8 @@
30855
31031
  });
30856
31032
  });
30857
31033
  };
30858
- DiagramService.prototype.createConnection = function (sourceNode, targetNode) {
30859
- var connection = new Connection(sourceNode, sourceNode.id + "-output", targetNode, targetNode.id + "-input");
30860
- connection.status = targetNode.status;
30861
- return connection;
31034
+ DiagramService.prototype.createConnection = function (sourceNode, targetNode, config) {
31035
+ return new Connection(sourceNode, targetNode, config);
30862
31036
  };
30863
31037
  DiagramService.prototype.appendConnection = function (connection) {
30864
31038
  return __awaiter(this, void 0, void 0, function () {
@@ -30899,6 +31073,45 @@
30899
31073
  return (_a = _actions[eventType]) === null || _a === void 0 ? void 0 : _a.call(_actions, payload);
30900
31074
  };
30901
31075
  };
31076
+ DiagramService.prototype.translateView = function () {
31077
+ return __awaiter(this, void 0, void 0, function () {
31078
+ var _b, container, area, rect, k, delta, ox, oy;
31079
+ return __generator(this, function (_c) {
31080
+ _b = this.plugins.area, container = _b.container, area = _b.area;
31081
+ rect = container.getBoundingClientRect();
31082
+ k = area.transform.k;
31083
+ delta = -0.2;
31084
+ ox = Math.max(0, (rect.left - container.clientWidth / 2) * k);
31085
+ oy = Math.max(0, (rect.top - container.clientHeight / 2) * k);
31086
+ area.zoom(Math.max(0.1, k * (1 + delta)), ox * delta, oy * delta);
31087
+ return [2 /*return*/];
31088
+ });
31089
+ });
31090
+ };
31091
+ DiagramService.prototype.removeEndNode = function () {
31092
+ return __awaiter(this, void 0, void 0, function () {
31093
+ var node;
31094
+ return __generator(this, function (_b) {
31095
+ switch (_b.label) {
31096
+ case 0:
31097
+ node = this.getNodesByType(NODE_TYPE.end)[0];
31098
+ if (!node) return [3 /*break*/, 2];
31099
+ return [4 /*yield*/, removeNodeAndConnections(node, this.editor)];
31100
+ case 1:
31101
+ _b.sent();
31102
+ _b.label = 2;
31103
+ case 2: return [2 /*return*/];
31104
+ }
31105
+ });
31106
+ });
31107
+ };
31108
+ DiagramService.prototype._creteGatewayOutput = function (_node) {
31109
+ var _this = this;
31110
+ DiagramUtils.createOutputsConfig(_node.id, [
31111
+ 'secondary',
31112
+ 'tertiary'
31113
+ ]).forEach(function (input) { return _this.createOutput(_node, input.id, input === null || input === void 0 ? void 0 : input.config); });
31114
+ };
30902
31115
  DiagramService.prototype._removeNode = function (data) {
30903
31116
  return __awaiter(this, void 0, void 0, function () {
30904
31117
  var node, viewNode, config, index, position, direction, nodes, _node, _dir, _position;
@@ -30952,21 +31165,6 @@
30952
31165
  });
30953
31166
  });
30954
31167
  };
30955
- DiagramService.prototype.translateView = function () {
30956
- return __awaiter(this, void 0, void 0, function () {
30957
- var _b, container, area, rect, k, delta, ox, oy;
30958
- return __generator(this, function (_c) {
30959
- _b = this.plugins.area, container = _b.container, area = _b.area;
30960
- rect = container.getBoundingClientRect();
30961
- k = area.transform.k;
30962
- delta = -0.2;
30963
- ox = Math.max(0, (rect.left - container.clientWidth / 2) * k);
30964
- oy = Math.max(0, (rect.top - container.clientHeight / 2) * k);
30965
- area.zoom(Math.max(0.1, k * (1 + delta)), ox * delta, oy * delta);
30966
- return [2 /*return*/];
30967
- });
30968
- });
30969
- };
30970
31168
  return DiagramService;
30971
31169
  }());
30972
31170
  DiagramService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DiagramService, deps: [{ token: DiagramPluginsService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
@@ -31007,13 +31205,6 @@
31007
31205
  this._defaultNodeMargin = NODE_MARGIN;
31008
31206
  this._offset = 60;
31009
31207
  }
31010
- Object.defineProperty(WorkflowService.prototype, "_diagramClientRect", {
31011
- get: function () {
31012
- return this._plugins.area.container.getBoundingClientRect();
31013
- },
31014
- enumerable: false,
31015
- configurable: true
31016
- });
31017
31208
  WorkflowService.prototype.setConfig = function (_config) {
31018
31209
  this._config = _config;
31019
31210
  this._message.sendMessage(MESSAGE_TYPE.configUpdated, _config);
@@ -31072,17 +31263,12 @@
31072
31263
  };
31073
31264
  WorkflowService.prototype.removeEndNode = function () {
31074
31265
  return __awaiter(this, void 0, void 0, function () {
31075
- var node;
31076
31266
  return __generator(this, function (_c) {
31077
31267
  switch (_c.label) {
31078
- case 0:
31079
- node = this._diagram.getNodesByType(NODE_TYPE.end)[0];
31080
- if (!node) return [3 /*break*/, 2];
31081
- return [4 /*yield*/, removeNodeAndConnections(node, this._diagram.editor)];
31268
+ case 0: return [4 /*yield*/, this._diagram.removeEndNode()];
31082
31269
  case 1:
31083
31270
  _c.sent();
31084
- _c.label = 2;
31085
- case 2: return [2 /*return*/];
31271
+ return [2 /*return*/];
31086
31272
  }
31087
31273
  });
31088
31274
  });
@@ -31097,7 +31283,7 @@
31097
31283
  var isEndNode = _node.type === NODE_TYPE.end;
31098
31284
  return {
31099
31285
  x: this._calculatePositionX(lastNode.node.type, lastNode.viewNode.position.x),
31100
- y: this._calculatePositionY(isEndNode ? NODE_TYPE.end : lastNode.node.type, lastNode.viewNode.position.y),
31286
+ y: this._calculatePositionY(isEndNode ? NODE_TYPE.end : lastNode.node.type, lastNode.viewNode.position.y)
31101
31287
  };
31102
31288
  };
31103
31289
  WorkflowService.prototype._createNode = function (nodeType, data, config) {
@@ -31121,7 +31307,8 @@
31121
31307
  return [3 /*break*/, 3];
31122
31308
  case 2: return [2 /*return*/, this._changeNodeSocketPosition(context)];
31123
31309
  case 3:
31124
- if (context.type === 'nodecreated' && context.data.type !== NODE_TYPE.end) {
31310
+ if (context.type === 'nodecreated' &&
31311
+ context.data.type !== NODE_TYPE.end) {
31125
31312
  setTimeout(function () {
31126
31313
  _this._updateNodePosition(context);
31127
31314
  });
@@ -31142,7 +31329,7 @@
31142
31329
  }
31143
31330
  return Object.assign({}, context);
31144
31331
  };
31145
- WorkflowService.prototype._linkToLastNode = function (_addedNode) {
31332
+ WorkflowService.prototype._linkToLastNode = function (_addedNode, connectionConfig) {
31146
31333
  return __awaiter(this, void 0, void 0, function () {
31147
31334
  var node, viewNode;
31148
31335
  return __generator(this, function (_c) {
@@ -31151,7 +31338,7 @@
31151
31338
  node = this._diagram.getLastNode();
31152
31339
  viewNode = this._diagram.getLastViewNode();
31153
31340
  if (!(node && viewNode)) return [3 /*break*/, 2];
31154
- return [4 /*yield*/, this._diagram.addConnection(node, _addedNode)];
31341
+ return [4 /*yield*/, this._diagram.addConnection(node, _addedNode, connectionConfig)];
31155
31342
  case 1:
31156
31343
  _c.sent();
31157
31344
  return [2 /*return*/, { node: node, viewNode: viewNode }];
@@ -31187,7 +31374,7 @@
31187
31374
  startNode = this._diagram.createNode(NODE_TYPE.start, {
31188
31375
  type: NODE_TYPE.start,
31189
31376
  label: NODE_TYPE.start,
31190
- name: 'start',
31377
+ name: 'start'
31191
31378
  });
31192
31379
  return [4 /*yield*/, this._diagram.addNode(startNode)];
31193
31380
  case 1:
@@ -31235,7 +31422,7 @@
31235
31422
  */
31236
31423
  WorkflowService.prototype._isOverEndBoundary = function (node, previousNode) {
31237
31424
  var _a;
31238
- var _diagramWidth = Number((_a = this._diagramClientRect) === null || _a === void 0 ? void 0 : _a.width) - this._defaultNodeMargin;
31425
+ var _diagramWidth = Number((_a = this._diagram.diagramClientRect()) === null || _a === void 0 ? void 0 : _a.width) - this._defaultNodeMargin;
31239
31426
  var _width = previousNode.position.x + (node.width + this._defaultNodeMargin) * 2;
31240
31427
  return _width >= _diagramWidth;
31241
31428
  };
@@ -31250,7 +31437,8 @@
31250
31437
  this._defaultNodeWidth +
31251
31438
  this._defaultNodeMargin * 2 +
31252
31439
  this._offset;
31253
- var wrapLine = Number((_a = this._diagramClientRect) === null || _a === void 0 ? void 0 : _a.width) - this._defaultNodeWidth * 2;
31440
+ var wrapLine = Number((_a = this._diagram.diagramClientRect()) === null || _a === void 0 ? void 0 : _a.width) -
31441
+ this._defaultNodeWidth * 2;
31254
31442
  return currentPosition >= wrapLine;
31255
31443
  };
31256
31444
  WorkflowService.prototype._updateNodePosition = function (context) {
@@ -31263,7 +31451,7 @@
31263
31451
  _previousNode = this._diagram.getLastNode();
31264
31452
  _nodeViewPosition = (_a = this._plugins.area.nodeViews.get(context.data.id)) === null || _a === void 0 ? void 0 : _a.position;
31265
31453
  if (!(_previousNode && _nodeViewPosition)) return [3 /*break*/, 2];
31266
- _diagramWidth = Number((_b = this._diagramClientRect) === null || _b === void 0 ? void 0 : _b.width);
31454
+ _diagramWidth = Number((_b = this._diagram.diagramClientRect()) === null || _b === void 0 ? void 0 : _b.width);
31267
31455
  _currentX = _nodeViewPosition.x + context.data.width;
31268
31456
  if (!(_currentX >= _diagramWidth)) return [3 /*break*/, 2];
31269
31457
  this._plugins.readonly.disable();
@@ -31277,7 +31465,7 @@
31277
31465
  }
31278
31466
  return [4 /*yield*/, this._plugins.area.translate(context.data.id, {
31279
31467
  x: x,
31280
- y: _nodeViewPosition.y + this._defaultNodeMargin + context.data.height,
31468
+ y: _nodeViewPosition.y + this._defaultNodeMargin + context.data.height
31281
31469
  })];
31282
31470
  case 1:
31283
31471
  _c.sent();
@@ -31333,45 +31521,28 @@
31333
31521
  type: i0.Input
31334
31522
  }] } });
31335
31523
 
31336
- var RemoveButtonComponent = /** @class */ (function () {
31337
- function RemoveButtonComponent() {
31338
- this.remove = new i0.EventEmitter();
31339
- }
31340
- return RemoveButtonComponent;
31341
- }());
31342
- RemoveButtonComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RemoveButtonComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
31343
- RemoveButtonComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RemoveButtonComponent, selector: "node-remove-button", outputs: { remove: "remove" }, ngImport: i0__namespace, template: "\n <button\n mat-icon-button\n (click)=\"remove.emit()\"\n (pointerdown)=\"$event.stopPropagation()\"\n (dblclick)=\"$event.stopPropagation()\"\n class=\"remove-icon\"\n >\n <mat-icon>close</mat-icon>\n </button>\n ", isInline: true, styles: ["\n :host {\n --size: var(--remove-icon-size, 30px);\n position: var(--remove-icon-position, absolute);\n inset: var(--remove-icon-inset, 0 0 auto auto);\n opacity: var(--remove-icon-opacity, 0);\n background: var(--remove-icon-background, inherit);\n width: var(--size);\n height: var(--size);\n line-height: var(var(--remove-icon-size), calc(var(--size) - 6));\n border-radius: 50%;\n z-index: 2;\n .remove-icon {\n border: 1px solid currentColor;\n border-radius: 50%;\n width: var(--size);\n height: var(--size);\n line-height: var(--remove-icon-size, 30px);\n background: var(--remove-icon-background, inherit);\n }\n }\n "], components: [{ type: i1__namespace$8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
31344
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RemoveButtonComponent, decorators: [{
31345
- type: i0.Component,
31346
- args: [{
31347
- selector: 'node-remove-button',
31348
- template: "\n <button\n mat-icon-button\n (click)=\"remove.emit()\"\n (pointerdown)=\"$event.stopPropagation()\"\n (dblclick)=\"$event.stopPropagation()\"\n class=\"remove-icon\"\n >\n <mat-icon>close</mat-icon>\n </button>\n ",
31349
- styles: [
31350
- "\n :host {\n --size: var(--remove-icon-size, 30px);\n position: var(--remove-icon-position, absolute);\n inset: var(--remove-icon-inset, 0 0 auto auto);\n opacity: var(--remove-icon-opacity, 0);\n background: var(--remove-icon-background, inherit);\n width: var(--size);\n height: var(--size);\n line-height: var(var(--remove-icon-size), calc(var(--size) - 6));\n border-radius: 50%;\n z-index: 2;\n .remove-icon {\n border: 1px solid currentColor;\n border-radius: 50%;\n width: var(--size);\n height: var(--size);\n line-height: var(--remove-icon-size, 30px);\n background: var(--remove-icon-background, inherit);\n }\n }\n ",
31351
- ],
31352
- }]
31353
- }], propDecorators: { remove: [{
31354
- type: i0.Output
31355
- }] } });
31356
-
31357
- var NodeInputsComponent = /** @class */ (function () {
31358
- function NodeInputsComponent() {
31524
+ var NodePortsComponent = /** @class */ (function () {
31525
+ function NodePortsComponent() {
31359
31526
  }
31360
- return NodeInputsComponent;
31527
+ return NodePortsComponent;
31361
31528
  }());
31362
- NodeInputsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodeInputsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
31363
- NodeInputsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NodeInputsComponent, selector: "node-inputs", inputs: { direction: "direction", data: "data", seed: "seed", emit: "emit", sortByIndex: "sortByIndex" }, host: { properties: { "class": " 'da-node__inputs inputs-' + direction" } }, ngImport: i0__namespace, template: "\n <div\n *ngFor=\"let input of data.inputs | keyvalue : sortByIndex\"\n class=\"da-node__inputs__socket\"\n style=\" height: var(--socket-size, 16px);\"\n refComponent\n [data]=\"{\n type: 'socket',\n side: 'input',\n key: input.key,\n nodeId: data.id,\n payload: input.value?.socket,\n seed: seed\n }\"\n [emit]=\"emit\"\n ></div>\n ", isInline: true, directives: [{ type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4__namespace$1.KeyValuePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
31364
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodeInputsComponent, decorators: [{
31529
+ NodePortsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodePortsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
31530
+ NodePortsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NodePortsComponent, selector: "node-ports", inputs: { inputsDirection: "inputsDirection", outputsDirection: "outputsDirection", data: "data", seed: "seed", emit: "emit", sortByIndex: "sortByIndex" }, host: { properties: { "class": "'node-ports--inputs--' + inputsDirection + ' ' + 'node-ports--outputs--' + outputsDirection " }, classAttribute: "node-ports" }, ngImport: i0__namespace, template: "\n\t\t<div\n\t\t\t*ngFor=\"let input of data.inputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"node-port node-port--input {{ input.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[title]=\"input.value.styleClass\"\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'input',\n\t\t\t\tkey: input.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: input.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\n\t\t<div\n\t\t\t*ngFor=\"let output of data.outputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"node-port node-port--output {{ output.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[title]=\"output.value.styleClass\"\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'output',\n\t\t\t\tkey: output.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: output.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\t", isInline: true, styles: [".node-ports{--port-size: 16px;position:absolute;width:100%;height:100%}.node-port{position:absolute;inset-inline:var(--port-inset-inline);inset-block:var(--port-inset-block);display:inline-block;width:var(--port-size);height:var(--port-size)}.node-ports--inputs--start .input-primary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--start .input-secondary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--start .input-tertiary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--start .input-quaternary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--end .input-primary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--end .input-secondary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--end .input-tertiary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--end .input-quaternary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--top .input-primary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--top .input-secondary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--top .input-tertiary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--top .input-quaternary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--bottom .input-primary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--bottom .input-secondary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--bottom .input-tertiary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--bottom .input-quaternary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--outputs--top .output-primary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--top .output-secondary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--top .output-tertiary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--top .output-quaternary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--bottom .output-primary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--bottom .output-secondary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--bottom .output-tertiary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--bottom .output-quaternary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-primary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-secondary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--start .output-tertiary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-quaternary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--end .output-primary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--end .output-secondary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--end .output-tertiary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--end .output-quaternary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}\n"], directives: [{ type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4__namespace$1.KeyValuePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
31531
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodePortsComponent, decorators: [{
31365
31532
  type: i0.Component,
31366
31533
  args: [{
31367
- selector: 'node-inputs',
31534
+ selector: 'node-ports',
31368
31535
  encapsulation: i0.ViewEncapsulation.None,
31536
+ styleUrls: ['../styles/ports.scss'],
31369
31537
  host: {
31370
- '[class]': " 'da-node__inputs inputs-' + direction",
31538
+ class: 'node-ports',
31539
+ '[class]': "'node-ports--inputs--' + inputsDirection + ' ' + 'node-ports--outputs--' + outputsDirection "
31371
31540
  },
31372
- template: "\n <div\n *ngFor=\"let input of data.inputs | keyvalue : sortByIndex\"\n class=\"da-node__inputs__socket\"\n style=\" height: var(--socket-size, 16px);\"\n refComponent\n [data]=\"{\n type: 'socket',\n side: 'input',\n key: input.key,\n nodeId: data.id,\n payload: input.value?.socket,\n seed: seed\n }\"\n [emit]=\"emit\"\n ></div>\n ",
31541
+ template: "\n\t\t<div\n\t\t\t*ngFor=\"let input of data.inputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"node-port node-port--input {{ input.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[title]=\"input.value.styleClass\"\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'input',\n\t\t\t\tkey: input.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: input.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\n\t\t<div\n\t\t\t*ngFor=\"let output of data.outputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"node-port node-port--output {{ output.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[title]=\"output.value.styleClass\"\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'output',\n\t\t\t\tkey: output.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: output.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\t"
31373
31542
  }]
31374
- }], propDecorators: { direction: [{
31543
+ }], propDecorators: { inputsDirection: [{
31544
+ type: i0.Input
31545
+ }], outputsDirection: [{
31375
31546
  type: i0.Input
31376
31547
  }], data: [{
31377
31548
  type: i0.Input
@@ -31383,33 +31554,25 @@
31383
31554
  type: i0.Input
31384
31555
  }] } });
31385
31556
 
31386
- var NodeOutputsComponent = /** @class */ (function () {
31387
- function NodeOutputsComponent() {
31557
+ var RemoveButtonComponent = /** @class */ (function () {
31558
+ function RemoveButtonComponent() {
31559
+ this.remove = new i0.EventEmitter();
31388
31560
  }
31389
- return NodeOutputsComponent;
31561
+ return RemoveButtonComponent;
31390
31562
  }());
31391
- NodeOutputsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodeOutputsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
31392
- NodeOutputsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NodeOutputsComponent, selector: "node-outputs", inputs: { direction: "direction", data: "data", seed: "seed", emit: "emit", sortByIndex: "sortByIndex" }, host: { properties: { "class": " 'da-node__outputs outputs-' + direction" } }, ngImport: i0__namespace, template: "<div\n class=\"da-node__outputs__socket\"\n style=\" height: var(--socket-size, 16px);\"\n *ngFor=\"let output of data.outputs | keyvalue : sortByIndex\"\n refComponent\n [data]=\"{\n type: 'socket',\n side: 'output',\n key: output.key,\n nodeId: data.id,\n payload: output.value?.socket,\n seed: seed\n }\"\n [emit]=\"emit\"\n ></div>", isInline: true, directives: [{ type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4__namespace$1.KeyValuePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
31393
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodeOutputsComponent, decorators: [{
31563
+ RemoveButtonComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RemoveButtonComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
31564
+ RemoveButtonComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RemoveButtonComponent, selector: "node-remove-button", outputs: { remove: "remove" }, ngImport: i0__namespace, template: "\n\t\t<button\n\t\t\tmat-icon-button\n\t\t\t(click)=\"remove.emit()\"\n\t\t\t(pointerdown)=\"$event.stopPropagation()\"\n\t\t\t(dblclick)=\"$event.stopPropagation()\"\n\t\t\tclass=\"remove-icon\"\n\t\t>\n\t\t\t<mat-icon>close</mat-icon>\n\t\t</button>\n\t", isInline: true, styles: ["\n\t\t\t:host {\n\t\t\t\t--size: var(--remove-icon-size, 30px);\n\t\t\t\tposition: var(--remove-icon-position, absolute);\n\t\t\t\tinset: var(--remove-icon-inset, 0 0 auto auto);\n\t\t\t\topacity: var(--remove-icon-opacity, 0);\n\t\t\t\tbackground: var(--remove-icon-background, #fff);\n\t\t\t\twidth: var(--size);\n\t\t\t\theight: var(--size);\n\t\t\t\tline-height: var(var(--remove-icon-size), calc(var(--size) - 6));\n\t\t\t\tborder-radius: var(--remove-icon-radius, 50%);\n\t\t\t\tz-index: 2;\n\t\t\t\t.remove-icon {\n\t\t\t\t\tborder: 1px solid currentColor;\n\t\t\t\t\tborder-radius: var(--remove-icon-radius, 50%);\n\t\t\t\t\twidth: var(--size);\n\t\t\t\t\theight: var(--size);\n\t\t\t\t\tline-height: var(--remove-icon-size, 24px);\n\t\t\t\t\tbackground: var(--remove-icon-background, #fff);\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t}\n\t\t\t}\n\t\t"], components: [{ type: i1__namespace$8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
31565
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RemoveButtonComponent, decorators: [{
31394
31566
  type: i0.Component,
31395
31567
  args: [{
31396
- selector: 'node-outputs',
31397
- encapsulation: i0.ViewEncapsulation.None,
31398
- host: {
31399
- '[class]': " 'da-node__outputs outputs-' + direction",
31400
- },
31401
- template: "<div\n class=\"da-node__outputs__socket\"\n style=\" height: var(--socket-size, 16px);\"\n *ngFor=\"let output of data.outputs | keyvalue : sortByIndex\"\n refComponent\n [data]=\"{\n type: 'socket',\n side: 'output',\n key: output.key,\n nodeId: data.id,\n payload: output.value?.socket,\n seed: seed\n }\"\n [emit]=\"emit\"\n ></div>",
31568
+ selector: 'node-remove-button',
31569
+ template: "\n\t\t<button\n\t\t\tmat-icon-button\n\t\t\t(click)=\"remove.emit()\"\n\t\t\t(pointerdown)=\"$event.stopPropagation()\"\n\t\t\t(dblclick)=\"$event.stopPropagation()\"\n\t\t\tclass=\"remove-icon\"\n\t\t>\n\t\t\t<mat-icon>close</mat-icon>\n\t\t</button>\n\t",
31570
+ styles: [
31571
+ "\n\t\t\t:host {\n\t\t\t\t--size: var(--remove-icon-size, 30px);\n\t\t\t\tposition: var(--remove-icon-position, absolute);\n\t\t\t\tinset: var(--remove-icon-inset, 0 0 auto auto);\n\t\t\t\topacity: var(--remove-icon-opacity, 0);\n\t\t\t\tbackground: var(--remove-icon-background, #fff);\n\t\t\t\twidth: var(--size);\n\t\t\t\theight: var(--size);\n\t\t\t\tline-height: var(var(--remove-icon-size), calc(var(--size) - 6));\n\t\t\t\tborder-radius: var(--remove-icon-radius, 50%);\n\t\t\t\tz-index: 2;\n\t\t\t\t.remove-icon {\n\t\t\t\t\tborder: 1px solid currentColor;\n\t\t\t\t\tborder-radius: var(--remove-icon-radius, 50%);\n\t\t\t\t\twidth: var(--size);\n\t\t\t\t\theight: var(--size);\n\t\t\t\t\tline-height: var(--remove-icon-size, 24px);\n\t\t\t\t\tbackground: var(--remove-icon-background, #fff);\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t}\n\t\t\t}\n\t\t"
31572
+ ]
31402
31573
  }]
31403
- }], propDecorators: { direction: [{
31404
- type: i0.Input
31405
- }], data: [{
31406
- type: i0.Input
31407
- }], seed: [{
31408
- type: i0.Input
31409
- }], emit: [{
31410
- type: i0.Input
31411
- }], sortByIndex: [{
31412
- type: i0.Input
31574
+ }], propDecorators: { remove: [{
31575
+ type: i0.Output
31413
31576
  }] } });
31414
31577
 
31415
31578
  var CircleNodeComponent = /** @class */ (function (_super) {
@@ -31420,7 +31583,7 @@
31420
31583
  return CircleNodeComponent;
31421
31584
  }(BaseNodeComponent));
31422
31585
  CircleNodeComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CircleNodeComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
31423
- CircleNodeComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CircleNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n class=\"da-node da-node--{{ data.type }} circle-node circle-node--{{ data.type }} {{\r\n data?.status ? ' da-node--' + data?.status : ''\r\n }} \"\r\n [style.--node-width]=\"data.width + 'px'\"\r\n [style.--node-height]=\"data.width + 'px'\"\r\n>\r\n <node-remove-button\r\n (remove)=\"removeNode()\"\r\n *ngIf=\"data.config?.canRemove\"\r\n ></node-remove-button>\r\n\r\n <div\r\n class=\"da-node__title circle-node__title\"\r\n [attr.tooltip]=\"data.content?.data?.tooltip\"\r\n [class.node-tooltip]=\"!!data.content?.data?.tooltip\"\r\n >\r\n {{ 'diagram.' + data.name | translate }}\r\n </div>\r\n\r\n <node-inputs\r\n [direction]=\"data.directions.inputs\"\r\n [data]=\"data\"\r\n [seed]=\"seed\"\r\n [emit]=\"emit\"\r\n [sortByIndex]=\"sortByIndex\"\r\n ></node-inputs>\r\n\r\n <node-outputs\r\n [direction]=\"data.directions.outputs\"\r\n [data]=\"data\"\r\n [seed]=\"seed\"\r\n [emit]=\"emit\"\r\n [sortByIndex]=\"sortByIndex\"\r\n ></node-outputs>\r\n</div>\r\n", styles: [".da-node{--width: var(--node-width);--height: var(--node-height);--socket-offset-negative: 0;--socket-position-start: var(--socket-offset-negative) auto;--socket-position-end: auto var(--socket-offset-negative);width:var(--width);height:var(--height);display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);border:var(--node-border, 1px solid #234990);border-radius:var(--node-radius, 10px);color:var(--node-color, #234990);background:var(--node-background, #fff);box-shadow:var(--node-shadow, unset);cursor:var(--node-cursor, pointer)}.da-node--draft{--node-color: var(--status-draft-color, #555);--node-background: var( --status-draft-background, #f5f5f5 );--node-border: var(--status-draft-border, 1px solid #555);--node-shadow: var(--status-draft-shadow, unset)}.da-node--upcoming{--node-color: var(--status-upcoming-color, var(--Primary-100, #234990));--node-background: var( --status-upcoming-background, #fff );--node-border: var(--status-upcoming-border, 1px solid var(--node-color, #234990));--node-shadow: var(--status-upcoming-shadow, unset)}.da-node--inProgress{--node-color: var(--status-progress-color, var(--orange-color, #f29339));--node-background: var( --status-progress-background, var(--light-orange-color, #fdf4dc) );--node-border: var(--status-progress-border, 1px solid var(--orange-color, #f29339));--node-shadow: var(--status-progress-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)))}.da-node--completed{--node-color: var(--status-completed-color, var(--green-color, #05cd99));--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var(--status-completed-border, 1px solid var(--green-color, #05cd99));--node-shadow: var(--status-completed-shadow, unset)}.da-node--approved{--node-color: var(--status-completed-color, var(--green-color, #05cd99));--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var(--status-completed-border, 1px solid var(--green-color, #05cd99));--node-shadow: var(--status-completed-shadow, unset)}.da-node--rejected{--node-color: var(--status-rejected-color, var(--red-color, #bf0b30));--node-background: var( --status-rejected-background, var(--light-red-color, #ffe0e7) );--node-border: var(--status-rejected-border, 1px solid var(--red-color, #bf0b30));--node-shadow: var(--status-rejected-shadow, unset)}.da-node__check-status{position:absolute;position:var(--check-icon-position, absolute);inset:var(--check-icon-inset, -6px -6px auto auto);color:var(--check-icon-color)}.da-node__check-status--completed{--check-icon-color: var(--status-completed-color)}.da-node__check-status--rejected{--check-icon-color: var(--status-rejected-color)}.da-node__title{text-align:center;font-weight:600}.da-node__description,.da-node__title{color:var(--node-text-color, #28282d);font-size:var(--node-text-font-size, .8rem);text-align:var(--node-text-align, center);padding-inline:var(--node-text-inline, .4rem)}.da-node__icon{position:absolute;inset-inline-start:var(--node-icon-inset-inline, 5px);inset-block-start:var(--node-icon-inset-block, 5px)}.da-node__inputs,.da-node__outputs{position:var(--input-output-position, absolute);inset-inline:var(--in-out-inset-inline);inset-block:var(--in-out-inset-block);height:var(--socket-size, 16px)}.da-node__inputs__socket,.da-node__outputs__socket{height:var(--socket-size, 16px)}.da-node__inputs.inputs-top{--in-out-inset-block: var(--socket-position-start)}.da-node__inputs.inputs-bottom{--in-out-inset-block: var(--socket-position-end)}.da-node__inputs.inputs-start{--in-out-inset-inline: var(--socket-position-start)}.da-node__inputs.inputs-end{--in-out-inset-inline: var(--socket-position-end)}.da-node__outputs.outputs-top{--in-out-inset-block: var(--socket-offset-negative)}.da-node__outputs.outputs-bottom{--in-out-inset-block: var(--socket-position-end)}.da-node__outputs.outputs-start{--in-out-inset-inline: var(--socket-position-start)}.da-node__outputs.outputs-end{--in-out-inset-inline: var(--socket-position-end)}.da-node:hover{--remove-icon-inset: -8px -8px auto auto;--remove-icon-opacity: 1}\n", ".circle-node{--node-radius: 50%}.circle-node__title.node-tooltip:after{content:attr(tooltip);position:absolute;left:50%;top:-6px;transform:translate(-50%) translateY(-100%);background:rgba(0,0,0,.7);text-align:center;color:#fff;padding:4px 2px;font-size:12px;min-width:100px;border-radius:5px;pointer-events:none;display:var(--tooltip-display, none)}.circle-node:hover{--tooltip-display: block}.da-node--end{border-width:3px}\n"], components: [{ type: RemoveButtonComponent, selector: "node-remove-button", outputs: ["remove"] }, { type: NodeInputsComponent, selector: "node-inputs", inputs: ["direction", "data", "seed", "emit", "sortByIndex"] }, { type: NodeOutputsComponent, selector: "node-outputs", inputs: ["direction", "data", "seed", "emit", "sortByIndex"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe } });
31586
+ CircleNodeComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CircleNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n\tclass=\"da-node da-node--{{ data.type }} circle-node circle-node--{{\r\n\t\tdata.type\r\n\t}} {{ data?.status ? ' da-node--' + data?.status : '' }} \"\r\n\t[style.--node-width]=\"data.width + 'px'\"\r\n\t[style.--node-height]=\"data.width + 'px'\"\r\n>\r\n\t<node-ports\r\n\t\t[inputsDirection]=\"data.directions.inputs\"\r\n\t\t[outputsDirection]=\"data.directions.outputs\"\r\n\t\t[data]=\"data\"\r\n\t\t[seed]=\"seed\"\r\n\t\t[emit]=\"emit\"\r\n\t\t[sortByIndex]=\"sortByIndex\"\r\n\t></node-ports>\r\n\r\n\t<div class=\"da-node__content circle-node__content\">\r\n\t\t<node-remove-button\r\n\t\t\t(remove)=\"removeNode()\"\r\n\t\t\t*ngIf=\"data.config?.canRemove\"\r\n\t\t></node-remove-button>\r\n\r\n\t\t<div\r\n\t\t\tclass=\"da-node__title circle-node__title\"\r\n\t\t\t[attr.tooltip]=\"data.content?.data?.tooltip\"\r\n\t\t\t[class.node-tooltip]=\"!!data.content?.data?.tooltip\"\r\n\t\t>\r\n\t\t\t{{ 'diagram.' + data.name | translate }}\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: [".da-node{--socket-size: 16px;--width: var(--node-width);--height: var(--node-height);width:var(--width);height:var(--height);display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);border:var(--node-border, 1px solid #234990);border-radius:var(--node-radius, 10px);color:var(--node-color, #234990);background:var(--node-background, #fff);box-shadow:var(--node-shadow, unset);cursor:var(--node-cursor, pointer);z-index:var(--node-z-index, 1)}.da-node--draft{--node-color: var( --status-draft-color, #555 );--node-background: var( --status-draft-background, #f5f5f5 );--node-border: var( --status-draft-border, 1px solid #555 );--node-shadow: var( --status-draft-shadow, unset )}.da-node--upcoming{--node-color: var( --status-upcoming-color, var(--Primary-100, #234990) );--node-background: var( --status-upcoming-background, #fff );--node-border: var( --status-upcoming-border, 1px solid var(--node-color, #234990) );--node-shadow: var( --status-upcoming-shadow, unset )}.da-node--ready{--node-color: var( --status-ready-color, var(--Primary-100, #234990) );--node-background: var( --status-ready-background, #fff );--node-border: var( --status-ready-border, 1px solid var(--node-color, #234990) );--node-shadow: var( --status-ready-shadow, unset )}.da-node--suspended{--node-color: var( --status-suspended-color, var(--orange-color, #f29339) );--node-background: var( --status-suspended-background, var(--light-orange-color, #fdf4dc) );--node-border: var( --status-suspended-border, 1px solid var(--orange-color, #f29339) );--node-shadow: var( --status-suspended-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)) )}.da-node--inProgress{--node-color: var( --status-progress-color, var(--orange-color, #f29339) );--node-background: var( --status-progress-background, var(--light-orange-color, #fdf4dc) );--node-border: var( --status-progress-border, 1px solid var(--orange-color, #f29339) );--node-shadow: var( --status-progress-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)) )}.da-node--completed{--node-color: var( --status-completed-color, var(--green-color, #05cd99) );--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var( --status-completed-border, 1px solid var(--green-color, #05cd99) );--node-shadow: var( --status-completed-shadow, unset )}.da-node--approved{--node-color: var( --status-completed-color, var(--green-color, #05cd99) );--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var( --status-completed-border, 1px solid var(--green-color, #05cd99) );--node-shadow: var( --status-completed-shadow, unset )}.da-node--rejected{--node-color: var( --status-rejected-color, var(--red-color, #bf0b30) );--node-background: var( --status-rejected-background, var(--light-red-color, #ffe0e7) );--node-border: var( --status-rejected-border, 1px solid var(--red-color, #bf0b30) );--node-shadow: var( --status-rejected-shadow, unset )}.da-node--canceled{--node-color: var( --status-canceled-color, var(--red-color, #bf0b30) );--node-background: var( --status-canceled-background, var(--light-red-color, #ffe0e7) );--node-border: var( --status-canceled-border, 1px solid var(--red-color, #bf0b30) );--node-shadow: var( --status-canceled-shadow, unset )}.da-node__check-status{position:absolute;position:var(--check-icon-position, absolute);inset:var(--check-icon-inset, -6px -6px auto auto);color:var(--check-icon-color)}.da-node__check-status--completed{--check-icon-color: var(--status-completed-color)}.da-node__check-status--rejected{--check-icon-color: var(--status-rejected-color)}.da-node__content{width:calc(100% - var(--socket-size));height:calc(100% - var(--socket-size));display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);z-index:var(--node-z-index, 1)}.da-node__title{text-align:center;font-weight:600}.da-node__description,.da-node__title{color:var(--node-text-color, #28282d);font-size:var(--node-text-font-size, .8rem);text-align:var(--node-text-align, center);padding-inline:var(--node-text-inline, .4rem)}.da-node__icon{position:absolute;inset-inline-start:var(--node-icon-inset-inline, 5px);inset-block-start:var(--node-icon-inset-block, 5px)}.da-node:hover{--remove-icon-inset: -8px -8px auto auto;--remove-icon-opacity: 1}\n", ".circle-node{--node-radius: 50%}.circle-node__title.node-tooltip:after{content:attr(tooltip);position:absolute;left:50%;top:-6px;transform:translate(-50%) translateY(-100%);background:rgba(0,0,0,.7);text-align:center;color:#fff;padding:4px 2px;font-size:12px;min-width:100px;border-radius:5px;pointer-events:none;display:var(--tooltip-display, none)}.circle-node:hover{--tooltip-display: block}.da-node--end{border-width:3px}\n"], components: [{ type: NodePortsComponent, selector: "node-ports", inputs: ["inputsDirection", "outputsDirection", "data", "seed", "emit", "sortByIndex"] }, { type: RemoveButtonComponent, selector: "node-remove-button", outputs: ["remove"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe } });
31424
31587
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CircleNodeComponent, decorators: [{
31425
31588
  type: i0.Component,
31426
31589
  args: [{
@@ -31429,6 +31592,65 @@
31429
31592
  }]
31430
31593
  }] });
31431
31594
 
31595
+ var ConnectionLabelComponent = /** @class */ (function () {
31596
+ function ConnectionLabelComponent(_zone) {
31597
+ var _this = this;
31598
+ this._zone = _zone;
31599
+ this.transformStyle = '';
31600
+ this.observer = new MutationObserver(function () {
31601
+ _this.calculatePosition();
31602
+ });
31603
+ }
31604
+ ConnectionLabelComponent.prototype.ngAfterViewInit = function () {
31605
+ var _this = this;
31606
+ if (!this.path) {
31607
+ return;
31608
+ }
31609
+ this._zone.runOutsideAngular(function () {
31610
+ _this.observer.observe(_this.path, {
31611
+ attributes: true
31612
+ });
31613
+ });
31614
+ };
31615
+ ConnectionLabelComponent.prototype.ngOnDestroy = function () {
31616
+ this.observer.disconnect();
31617
+ };
31618
+ ConnectionLabelComponent.prototype.calculatePosition = function () {
31619
+ var positionPoint = this._getPositionPoint();
31620
+ this.labelContainer.nativeElement.style.transform = "translate(" + positionPoint.x + "px, " + positionPoint.y + "px)";
31621
+ };
31622
+ ConnectionLabelComponent.prototype._getPositionPoint = function () {
31623
+ var pathLength = this.path.getTotalLength();
31624
+ var textWidth = 12 * ("" + this.text).length;
31625
+ return this.position === 'center'
31626
+ ? this.path.getPointAtLength(pathLength / 2)
31627
+ : this.path.getPointAtLength((this.position === 'start' ? 0 : pathLength) +
31628
+ (this.position === 'end' ? -1 : 1) * (textWidth / 2 + 20));
31629
+ };
31630
+ return ConnectionLabelComponent;
31631
+ }());
31632
+ ConnectionLabelComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ConnectionLabelComponent, deps: [{ token: i0__namespace.NgZone }], target: i0__namespace.ɵɵFactoryTarget.Component });
31633
+ ConnectionLabelComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ConnectionLabelComponent, selector: "app-connection-label", inputs: { path: "path", position: "position", text: "text" }, viewQueries: [{ propertyName: "labelContainer", first: true, predicate: ["labelContainer"], descendants: true, static: true }], ngImport: i0__namespace, template: " <div\n\t\t#labelContainer\n\t\t[ngStyle]=\"{\n\t\t\tposition: 'absolute',\n\t\t\ttop: '0',\n\t\t\tleft: '0',\n\t\t\tzIndex: ' var(--label-z-index, -1)'\n\t\t}\"\n\t>\n\t\t<div [ngClass]=\"{ 'label-text': !!text }\">{{ text }}</div>\n\t</div>", isInline: true, styles: ["\n\t\t\t.label-text {\n\t\t\t\tposition: absolute;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t\tbackground: var(--c-label-background, #fff);\n\t\t\t\tcolor: var(--c-label-color, #333);\n\t\t\t\tborder-radius: var(--c-label-radius, 2em);\n\t\t\t\tpadding: var(--c-label-padding, 0.2em 0.6em);\n\t\t\t\tfont-size: var(--c-label-size, 0.7rem);\n\t\t\t\tborder: var(--c-label-border, 1px solid var(--path-color, #1b3e7f));\n\t\t\t\tz-index: var(--c-label-z-index, 0);\n\t\t\t\twhite-space: pre;\n\t\t\t}\n\t\t"], directives: [{ type: i4__namespace$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
31634
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ConnectionLabelComponent, decorators: [{
31635
+ type: i0.Component,
31636
+ args: [{
31637
+ selector: 'app-connection-label',
31638
+ template: " <div\n\t\t#labelContainer\n\t\t[ngStyle]=\"{\n\t\t\tposition: 'absolute',\n\t\t\ttop: '0',\n\t\t\tleft: '0',\n\t\t\tzIndex: ' var(--label-z-index, -1)'\n\t\t}\"\n\t>\n\t\t<div [ngClass]=\"{ 'label-text': !!text }\">{{ text }}</div>\n\t</div>",
31639
+ styles: [
31640
+ "\n\t\t\t.label-text {\n\t\t\t\tposition: absolute;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t\tbackground: var(--c-label-background, #fff);\n\t\t\t\tcolor: var(--c-label-color, #333);\n\t\t\t\tborder-radius: var(--c-label-radius, 2em);\n\t\t\t\tpadding: var(--c-label-padding, 0.2em 0.6em);\n\t\t\t\tfont-size: var(--c-label-size, 0.7rem);\n\t\t\t\tborder: var(--c-label-border, 1px solid var(--path-color, #1b3e7f));\n\t\t\t\tz-index: var(--c-label-z-index, 0);\n\t\t\t\twhite-space: pre;\n\t\t\t}\n\t\t"
31641
+ ]
31642
+ }]
31643
+ }], ctorParameters: function () { return [{ type: i0__namespace.NgZone }]; }, propDecorators: { path: [{
31644
+ type: i0.Input
31645
+ }], position: [{
31646
+ type: i0.Input
31647
+ }], text: [{
31648
+ type: i0.Input
31649
+ }], labelContainer: [{
31650
+ type: i0.ViewChild,
31651
+ args: ['labelContainer', { static: true }]
31652
+ }] } });
31653
+
31432
31654
  var StatusIconComponent = /** @class */ (function () {
31433
31655
  function StatusIconComponent() {
31434
31656
  }
@@ -31493,7 +31715,7 @@
31493
31715
  return ContentNodeComponent;
31494
31716
  }(BaseNodeComponent));
31495
31717
  ContentNodeComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ContentNodeComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
31496
- ContentNodeComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ContentNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n class=\"da-node da-node--{{ data.type }} {{\r\n data?.status ? ' da-node--' + data?.status : ''\r\n }} {{ data?.styleClass }}\"\r\n [style.--node-width]=\"data.width + 'px'\"\r\n [style.--node-height]=\"data.height + 'px'\"\r\n>\r\n <node-remove-button (remove)=\"removeNode()\" *ngIf=\"data?.config?.canRemove\">\r\n </node-remove-button>\r\n\r\n <status-icon [status]=\"data?.status\" *ngIf=\"data?.status\"></status-icon>\r\n\r\n <node-icon *ngIf=\"data.content?.icon\" [icon]=\"data.content?.icon\"></node-icon>\r\n\r\n <div class=\"da-node__title\">{{ data.name }}</div>\r\n <div class=\"da-node__description\" *ngIf=\"data.description\">\r\n {{ data.description }}\r\n </div>\r\n <node-inputs\r\n [direction]=\"data.directions.inputs\"\r\n [data]=\"data\"\r\n [seed]=\"seed\"\r\n [emit]=\"emit\"\r\n [sortByIndex]=\"sortByIndex\"\r\n ></node-inputs>\r\n\r\n <node-outputs\r\n [direction]=\"data.directions.outputs\"\r\n [data]=\"data\"\r\n [seed]=\"seed\"\r\n [emit]=\"emit\"\r\n [sortByIndex]=\"sortByIndex\"\r\n ></node-outputs>\r\n</div>\r\n", styles: [".da-node{--width: var(--node-width);--height: var(--node-height);--socket-offset-negative: 0;--socket-position-start: var(--socket-offset-negative) auto;--socket-position-end: auto var(--socket-offset-negative);width:var(--width);height:var(--height);display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);border:var(--node-border, 1px solid #234990);border-radius:var(--node-radius, 10px);color:var(--node-color, #234990);background:var(--node-background, #fff);box-shadow:var(--node-shadow, unset);cursor:var(--node-cursor, pointer)}.da-node--draft{--node-color: var(--status-draft-color, #555);--node-background: var( --status-draft-background, #f5f5f5 );--node-border: var(--status-draft-border, 1px solid #555);--node-shadow: var(--status-draft-shadow, unset)}.da-node--upcoming{--node-color: var(--status-upcoming-color, var(--Primary-100, #234990));--node-background: var( --status-upcoming-background, #fff );--node-border: var(--status-upcoming-border, 1px solid var(--node-color, #234990));--node-shadow: var(--status-upcoming-shadow, unset)}.da-node--inProgress{--node-color: var(--status-progress-color, var(--orange-color, #f29339));--node-background: var( --status-progress-background, var(--light-orange-color, #fdf4dc) );--node-border: var(--status-progress-border, 1px solid var(--orange-color, #f29339));--node-shadow: var(--status-progress-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)))}.da-node--completed{--node-color: var(--status-completed-color, var(--green-color, #05cd99));--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var(--status-completed-border, 1px solid var(--green-color, #05cd99));--node-shadow: var(--status-completed-shadow, unset)}.da-node--approved{--node-color: var(--status-completed-color, var(--green-color, #05cd99));--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var(--status-completed-border, 1px solid var(--green-color, #05cd99));--node-shadow: var(--status-completed-shadow, unset)}.da-node--rejected{--node-color: var(--status-rejected-color, var(--red-color, #bf0b30));--node-background: var( --status-rejected-background, var(--light-red-color, #ffe0e7) );--node-border: var(--status-rejected-border, 1px solid var(--red-color, #bf0b30));--node-shadow: var(--status-rejected-shadow, unset)}.da-node__check-status{position:absolute;position:var(--check-icon-position, absolute);inset:var(--check-icon-inset, -6px -6px auto auto);color:var(--check-icon-color)}.da-node__check-status--completed{--check-icon-color: var(--status-completed-color)}.da-node__check-status--rejected{--check-icon-color: var(--status-rejected-color)}.da-node__title{text-align:center;font-weight:600}.da-node__description,.da-node__title{color:var(--node-text-color, #28282d);font-size:var(--node-text-font-size, .8rem);text-align:var(--node-text-align, center);padding-inline:var(--node-text-inline, .4rem)}.da-node__icon{position:absolute;inset-inline-start:var(--node-icon-inset-inline, 5px);inset-block-start:var(--node-icon-inset-block, 5px)}.da-node__inputs,.da-node__outputs{position:var(--input-output-position, absolute);inset-inline:var(--in-out-inset-inline);inset-block:var(--in-out-inset-block);height:var(--socket-size, 16px)}.da-node__inputs__socket,.da-node__outputs__socket{height:var(--socket-size, 16px)}.da-node__inputs.inputs-top{--in-out-inset-block: var(--socket-position-start)}.da-node__inputs.inputs-bottom{--in-out-inset-block: var(--socket-position-end)}.da-node__inputs.inputs-start{--in-out-inset-inline: var(--socket-position-start)}.da-node__inputs.inputs-end{--in-out-inset-inline: var(--socket-position-end)}.da-node__outputs.outputs-top{--in-out-inset-block: var(--socket-offset-negative)}.da-node__outputs.outputs-bottom{--in-out-inset-block: var(--socket-position-end)}.da-node__outputs.outputs-start{--in-out-inset-inline: var(--socket-position-start)}.da-node__outputs.outputs-end{--in-out-inset-inline: var(--socket-position-end)}.da-node:hover{--remove-icon-inset: -8px -8px auto auto;--remove-icon-opacity: 1}\n"], components: [{ type: RemoveButtonComponent, selector: "node-remove-button", outputs: ["remove"] }, { type: StatusIconComponent, selector: "status-icon", inputs: ["status"] }, { type: NodeIconComponent, selector: "node-icon", inputs: ["icon"] }, { type: NodeInputsComponent, selector: "node-inputs", inputs: ["direction", "data", "seed", "emit", "sortByIndex"] }, { type: NodeOutputsComponent, selector: "node-outputs", inputs: ["direction", "data", "seed", "emit", "sortByIndex"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
31718
+ ContentNodeComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ContentNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n\tclass=\"da-node da-node--{{ data.type }} {{\r\n\t\tdata?.status ? ' da-node--' + data?.status : ''\r\n\t}} {{ data?.styleClass }}\"\r\n\t[style.--node-width]=\"data.width + 'px'\"\r\n\t[style.--node-height]=\"data.height + 'px'\"\r\n>\r\n\t<node-ports\r\n\t\t[inputsDirection]=\"data.directions.inputs\"\r\n\t\t[outputsDirection]=\"data.directions.outputs\"\r\n\t\t[data]=\"data\"\r\n\t\t[seed]=\"seed\"\r\n\t\t[emit]=\"emit\"\r\n\t\t[sortByIndex]=\"sortByIndex\"\r\n\t></node-ports>\r\n\r\n\t<div class=\"da-node__content\">\r\n\t\t<node-remove-button (remove)=\"removeNode()\" *ngIf=\"data?.config?.canRemove\">\r\n\t\t</node-remove-button>\r\n\t\t<status-icon [status]=\"data?.status\" *ngIf=\"data?.status\"></status-icon>\r\n\r\n\t\t<node-icon\r\n\t\t\t*ngIf=\"data.content?.icon\"\r\n\t\t\t[icon]=\"data.content?.icon\"\r\n\t\t></node-icon>\r\n\r\n\t\t<div class=\"da-node__title\">{{ data.name }}</div>\r\n\t\t<div class=\"da-node__description\" *ngIf=\"data.description\">\r\n\t\t\t{{ data.description }}\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", styles: [".da-node{--socket-size: 16px;--width: var(--node-width);--height: var(--node-height);width:var(--width);height:var(--height);display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);border:var(--node-border, 1px solid #234990);border-radius:var(--node-radius, 10px);color:var(--node-color, #234990);background:var(--node-background, #fff);box-shadow:var(--node-shadow, unset);cursor:var(--node-cursor, pointer);z-index:var(--node-z-index, 1)}.da-node--draft{--node-color: var( --status-draft-color, #555 );--node-background: var( --status-draft-background, #f5f5f5 );--node-border: var( --status-draft-border, 1px solid #555 );--node-shadow: var( --status-draft-shadow, unset )}.da-node--upcoming{--node-color: var( --status-upcoming-color, var(--Primary-100, #234990) );--node-background: var( --status-upcoming-background, #fff );--node-border: var( --status-upcoming-border, 1px solid var(--node-color, #234990) );--node-shadow: var( --status-upcoming-shadow, unset )}.da-node--ready{--node-color: var( --status-ready-color, var(--Primary-100, #234990) );--node-background: var( --status-ready-background, #fff );--node-border: var( --status-ready-border, 1px solid var(--node-color, #234990) );--node-shadow: var( --status-ready-shadow, unset )}.da-node--suspended{--node-color: var( --status-suspended-color, var(--orange-color, #f29339) );--node-background: var( --status-suspended-background, var(--light-orange-color, #fdf4dc) );--node-border: var( --status-suspended-border, 1px solid var(--orange-color, #f29339) );--node-shadow: var( --status-suspended-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)) )}.da-node--inProgress{--node-color: var( --status-progress-color, var(--orange-color, #f29339) );--node-background: var( --status-progress-background, var(--light-orange-color, #fdf4dc) );--node-border: var( --status-progress-border, 1px solid var(--orange-color, #f29339) );--node-shadow: var( --status-progress-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)) )}.da-node--completed{--node-color: var( --status-completed-color, var(--green-color, #05cd99) );--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var( --status-completed-border, 1px solid var(--green-color, #05cd99) );--node-shadow: var( --status-completed-shadow, unset )}.da-node--approved{--node-color: var( --status-completed-color, var(--green-color, #05cd99) );--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var( --status-completed-border, 1px solid var(--green-color, #05cd99) );--node-shadow: var( --status-completed-shadow, unset )}.da-node--rejected{--node-color: var( --status-rejected-color, var(--red-color, #bf0b30) );--node-background: var( --status-rejected-background, var(--light-red-color, #ffe0e7) );--node-border: var( --status-rejected-border, 1px solid var(--red-color, #bf0b30) );--node-shadow: var( --status-rejected-shadow, unset )}.da-node--canceled{--node-color: var( --status-canceled-color, var(--red-color, #bf0b30) );--node-background: var( --status-canceled-background, var(--light-red-color, #ffe0e7) );--node-border: var( --status-canceled-border, 1px solid var(--red-color, #bf0b30) );--node-shadow: var( --status-canceled-shadow, unset )}.da-node__check-status{position:absolute;position:var(--check-icon-position, absolute);inset:var(--check-icon-inset, -6px -6px auto auto);color:var(--check-icon-color)}.da-node__check-status--completed{--check-icon-color: var(--status-completed-color)}.da-node__check-status--rejected{--check-icon-color: var(--status-rejected-color)}.da-node__content{width:calc(100% - var(--socket-size));height:calc(100% - var(--socket-size));display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);z-index:var(--node-z-index, 1)}.da-node__title{text-align:center;font-weight:600}.da-node__description,.da-node__title{color:var(--node-text-color, #28282d);font-size:var(--node-text-font-size, .8rem);text-align:var(--node-text-align, center);padding-inline:var(--node-text-inline, .4rem)}.da-node__icon{position:absolute;inset-inline-start:var(--node-icon-inset-inline, 5px);inset-block-start:var(--node-icon-inset-block, 5px)}.da-node:hover{--remove-icon-inset: -8px -8px auto auto;--remove-icon-opacity: 1}\n"], components: [{ type: NodePortsComponent, selector: "node-ports", inputs: ["inputsDirection", "outputsDirection", "data", "seed", "emit", "sortByIndex"] }, { type: RemoveButtonComponent, selector: "node-remove-button", outputs: ["remove"] }, { type: StatusIconComponent, selector: "status-icon", inputs: ["status"] }, { type: NodeIconComponent, selector: "node-icon", inputs: ["icon"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
31497
31719
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: ContentNodeComponent, decorators: [{
31498
31720
  type: i0.Component,
31499
31721
  args: [{
@@ -31507,20 +31729,50 @@
31507
31729
  function CustomConnectionComponent() {
31508
31730
  return _super !== null && _super.apply(this, arguments) || this;
31509
31731
  }
31732
+ Object.defineProperty(CustomConnectionComponent.prototype, "pathNative", {
31733
+ get: function () {
31734
+ var _a;
31735
+ return (_a = this.pathElement) === null || _a === void 0 ? void 0 : _a.nativeElement;
31736
+ },
31737
+ enumerable: false,
31738
+ configurable: true
31739
+ });
31740
+ Object.defineProperty(CustomConnectionComponent.prototype, "labelText", {
31741
+ get: function () {
31742
+ var _a, _b, _c;
31743
+ return typeof ((_a = this.data) === null || _a === void 0 ? void 0 : _a.label) === 'string'
31744
+ ? (_b = this.data) === null || _b === void 0 ? void 0 : _b.label
31745
+ : (_c = this.data) === null || _c === void 0 ? void 0 : _c.label.text;
31746
+ },
31747
+ enumerable: false,
31748
+ configurable: true
31749
+ });
31750
+ Object.defineProperty(CustomConnectionComponent.prototype, "labelPosition", {
31751
+ get: function () {
31752
+ return typeof this.data.label === 'string'
31753
+ ? 'center'
31754
+ : this.data.label.position;
31755
+ },
31756
+ enumerable: false,
31757
+ configurable: true
31758
+ });
31510
31759
  return CustomConnectionComponent;
31511
31760
  }(i2$8.ConnectionComponent));
31512
31761
  CustomConnectionComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomConnectionComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
31513
- CustomConnectionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomConnectionComponent, selector: "connection", inputs: { data: "data" }, usesInheritance: true, ngImport: i0__namespace, template: "\n <svg\n data-testid=\"connection\"\n style=\"z-index:-1\"\n class=\"{{ data?.status ? 'connection-status-' + data?.status : '' }}\"\n >\n <path [attr.d]=\"path\" />\n </svg>\n ", isInline: true, styles: ["\n svg {\n overflow: visible;\n position: absolute;\n pointer-events: none;\n path {\n fill: none;\n stroke-width: 2px;\n stroke: var(--path-color, #1b3e7f);\n pointer-events: auto;\n }\n }\n "] });
31762
+ CustomConnectionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomConnectionComponent, selector: "connection", inputs: { data: "data" }, viewQueries: [{ propertyName: "pathElement", first: true, predicate: ["pathElement"], descendants: true, static: true }], usesInheritance: true, ngImport: i0__namespace, template: "\n\t\t<svg\n\t\t\tdata-testid=\"connection\"\n\t\t\tstyle=\"z-index:-2\"\n\t\t\tclass=\"{{ data?.status ? 'connection-status-' + data?.status : '' }} {{\n\t\t\t\tdata?.styleClass\n\t\t\t}}\"\n\t\t>\n\t\t\t<path [attr.d]=\"path\" #pathElement />\n\t\t</svg>\n\t\t<app-connection-label\n\t\t\t*ngIf=\"data?.label && pathNative\"\n\t\t\t[path]=\"pathNative\"\n\t\t\t[text]=\"labelText\"\n\t\t\t[position]=\"labelPosition\"\n\t\t></app-connection-label>\n\t", isInline: true, styles: ["\n\t\t\tsvg {\n\t\t\t\toverflow: visible;\n\t\t\t\tposition: absolute;\n\t\t\t\tpointer-events: none;\n\t\t\t\tpath {\n\t\t\t\t\tfill: none;\n\t\t\t\t\tstroke-width: 2px;\n\t\t\t\t\tstroke: var(--path-color, #1b3e7f);\n\t\t\t\t\tpointer-events: auto;\n\t\t\t\t}\n\t\t\t}\n\t\t"], components: [{ type: ConnectionLabelComponent, selector: "app-connection-label", inputs: ["path", "position", "text"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
31514
31763
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomConnectionComponent, decorators: [{
31515
31764
  type: i0.Component,
31516
31765
  args: [{
31517
31766
  selector: 'connection',
31518
31767
  styles: [
31519
- "\n svg {\n overflow: visible;\n position: absolute;\n pointer-events: none;\n path {\n fill: none;\n stroke-width: 2px;\n stroke: var(--path-color, #1b3e7f);\n pointer-events: auto;\n }\n }\n ",
31768
+ "\n\t\t\tsvg {\n\t\t\t\toverflow: visible;\n\t\t\t\tposition: absolute;\n\t\t\t\tpointer-events: none;\n\t\t\t\tpath {\n\t\t\t\t\tfill: none;\n\t\t\t\t\tstroke-width: 2px;\n\t\t\t\t\tstroke: var(--path-color, #1b3e7f);\n\t\t\t\t\tpointer-events: auto;\n\t\t\t\t}\n\t\t\t}\n\t\t"
31520
31769
  ],
31521
- template: "\n <svg\n data-testid=\"connection\"\n style=\"z-index:-1\"\n class=\"{{ data?.status ? 'connection-status-' + data?.status : '' }}\"\n >\n <path [attr.d]=\"path\" />\n </svg>\n ",
31770
+ template: "\n\t\t<svg\n\t\t\tdata-testid=\"connection\"\n\t\t\tstyle=\"z-index:-2\"\n\t\t\tclass=\"{{ data?.status ? 'connection-status-' + data?.status : '' }} {{\n\t\t\t\tdata?.styleClass\n\t\t\t}}\"\n\t\t>\n\t\t\t<path [attr.d]=\"path\" #pathElement />\n\t\t</svg>\n\t\t<app-connection-label\n\t\t\t*ngIf=\"data?.label && pathNative\"\n\t\t\t[path]=\"pathNative\"\n\t\t\t[text]=\"labelText\"\n\t\t\t[position]=\"labelPosition\"\n\t\t></app-connection-label>\n\t"
31522
31771
  }]
31523
- }], propDecorators: { data: [{
31772
+ }], propDecorators: { pathElement: [{
31773
+ type: i0.ViewChild,
31774
+ args: ['pathElement', { static: true }]
31775
+ }], data: [{
31524
31776
  type: i0.Input
31525
31777
  }] } });
31526
31778
 
@@ -31532,17 +31784,126 @@
31532
31784
  return CustomSocketComponent;
31533
31785
  }(i2$8.SocketComponent));
31534
31786
  CustomSocketComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomSocketComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
31535
- CustomSocketComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomSocketComponent, selector: "ng-component", usesInheritance: true, ngImport: i0__namespace, template: "", isInline: true, styles: ["\n :host {\n display: inline-block;\n cursor: pointer;\n border: 1px solid var(--primary-color, #1b3e7f);\n width: var(--socket-size, 16px);\n height: var(--socket-size, 16px);\n vertical-align: middle;\n background: white;\n z-index: 2;\n box-sizing: border-box;\n opacity: var(--socket-opacity, 0);\n border-radius: var(--socket-radius, 50%);\n &:hover {\n box-shadow: 0 0 0 1px var(--primary-color, #1b3e7f);\n }\n }\n "] });
31787
+ CustomSocketComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomSocketComponent, selector: "ng-component", host: { properties: { "class": "data?.styleClass" } }, usesInheritance: true, ngImport: i0__namespace, template: "", isInline: true, styles: ["\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tcursor: pointer;\n\t\t\t\tborder: 1px solid var(--primary-color, #1b3e7f);\n\t\t\t\twidth: var(--socket-size, 16px);\n\t\t\t\theight: var(--socket-size, 16px);\n\t\t\t\tvertical-align: var(--socket-vertical-align, top);\n\t\t\t\tbackground: white;\n\t\t\t\tz-index: 2;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\topacity: var(--socket-opacity, 0);\n\t\t\t\tborder-radius: var(--socket-radius, 0);\n\t\t\t\t&:hover {\n\t\t\t\t\tbox-shadow: 0 0 0 1px var(--primary-color, #1b3e7f);\n\t\t\t\t}\n\t\t\t}\n\t\t"] });
31536
31788
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomSocketComponent, decorators: [{
31537
31789
  type: i0.Component,
31538
31790
  args: [{
31539
31791
  template: "",
31540
31792
  styles: [
31541
- "\n :host {\n display: inline-block;\n cursor: pointer;\n border: 1px solid var(--primary-color, #1b3e7f);\n width: var(--socket-size, 16px);\n height: var(--socket-size, 16px);\n vertical-align: middle;\n background: white;\n z-index: 2;\n box-sizing: border-box;\n opacity: var(--socket-opacity, 0);\n border-radius: var(--socket-radius, 50%);\n &:hover {\n box-shadow: 0 0 0 1px var(--primary-color, #1b3e7f);\n }\n }\n ",
31793
+ "\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tcursor: pointer;\n\t\t\t\tborder: 1px solid var(--primary-color, #1b3e7f);\n\t\t\t\twidth: var(--socket-size, 16px);\n\t\t\t\theight: var(--socket-size, 16px);\n\t\t\t\tvertical-align: var(--socket-vertical-align, top);\n\t\t\t\tbackground: white;\n\t\t\t\tz-index: 2;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\topacity: var(--socket-opacity, 0);\n\t\t\t\tborder-radius: var(--socket-radius, 0);\n\t\t\t\t&:hover {\n\t\t\t\t\tbox-shadow: 0 0 0 1px var(--primary-color, #1b3e7f);\n\t\t\t\t}\n\t\t\t}\n\t\t"
31542
31794
  ],
31795
+ host: {
31796
+ '[class]': 'data?.styleClass'
31797
+ }
31798
+ }]
31799
+ }] });
31800
+
31801
+ var GatewayPortsComponent = /** @class */ (function () {
31802
+ function GatewayPortsComponent() {
31803
+ }
31804
+ return GatewayPortsComponent;
31805
+ }());
31806
+ GatewayPortsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GatewayPortsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
31807
+ GatewayPortsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GatewayPortsComponent, selector: "gateway-ports", inputs: { direction: "direction", data: "data", seed: "seed", emit: "emit", sortByIndex: "sortByIndex" }, ngImport: i0__namespace, template: "\n\t\t<div\n\t\t\t*ngFor=\"let input of data.inputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"gateway-port gateway-port--input {{ input.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'input',\n\t\t\t\tkey: input.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: input.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\n\t\t<div\n\t\t\t*ngFor=\"let output of data.outputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"gateway-port gateway-port--output {{ output.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'output',\n\t\t\t\tkey: output.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: output.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\t", isInline: true, styles: ["\n\t\t\t.gateway-port {\n\t\t\t\t--socket-vertical-align: top;\n\t\t\t\t--width: var(--port-width, var(--socket-size, 14px));\n\t\t\t\t--height: var(--port-height, var(--socket-size, 14px));\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-inline: var(--port-inset-inline);\n\t\t\t\tinset-block: var(--port-inset-block);\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: var(--width);\n\t\t\t\theight: var(--height);\n\t\t\t\t&.input-primary-port {\n\t\t\t\t\t--port-inset-inline: calc(var(--width) / -2) auto;\n\t\t\t\t\t--port-inset-block: calc(50% - var(--height) / 2) 0;\n\t\t\t\t}\n\t\t\t\t&.output-primary-port {\n\t\t\t\t\t--port-inset-inline: auto calc(var(--width) / -2);\n\t\t\t\t\t--port-inset-block: calc(50% - var(--height) / 2) auto;\n\t\t\t\t}\n\t\t\t\t&.output-secondary-port {\n\t\t\t\t\t--port-inset-inline: calc(50% - var(--width) / 2) auto;\n\t\t\t\t\t--port-inset-block: calc(var(--height) / -2) auto;\n\t\t\t\t}\n\t\t\t\t&.output-tertiary-port {\n\t\t\t\t\t--port-inset-inline: calc(50% - var(--width) / 2) 0;\n\t\t\t\t\t--port-inset-block: auto calc(var(--height) / -2);\n\t\t\t\t}\n\t\t\t}\n\t\t"], directives: [{ type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4__namespace$1.KeyValuePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
31808
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GatewayPortsComponent, decorators: [{
31809
+ type: i0.Component,
31810
+ args: [{
31811
+ selector: 'gateway-ports',
31812
+ encapsulation: i0.ViewEncapsulation.None,
31813
+ template: "\n\t\t<div\n\t\t\t*ngFor=\"let input of data.inputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"gateway-port gateway-port--input {{ input.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'input',\n\t\t\t\tkey: input.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: input.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\n\t\t<div\n\t\t\t*ngFor=\"let output of data.outputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"gateway-port gateway-port--output {{ output.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'output',\n\t\t\t\tkey: output.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: output.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\t",
31814
+ styles: [
31815
+ "\n\t\t\t.gateway-port {\n\t\t\t\t--socket-vertical-align: top;\n\t\t\t\t--width: var(--port-width, var(--socket-size, 14px));\n\t\t\t\t--height: var(--port-height, var(--socket-size, 14px));\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-inline: var(--port-inset-inline);\n\t\t\t\tinset-block: var(--port-inset-block);\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: var(--width);\n\t\t\t\theight: var(--height);\n\t\t\t\t&.input-primary-port {\n\t\t\t\t\t--port-inset-inline: calc(var(--width) / -2) auto;\n\t\t\t\t\t--port-inset-block: calc(50% - var(--height) / 2) 0;\n\t\t\t\t}\n\t\t\t\t&.output-primary-port {\n\t\t\t\t\t--port-inset-inline: auto calc(var(--width) / -2);\n\t\t\t\t\t--port-inset-block: calc(50% - var(--height) / 2) auto;\n\t\t\t\t}\n\t\t\t\t&.output-secondary-port {\n\t\t\t\t\t--port-inset-inline: calc(50% - var(--width) / 2) auto;\n\t\t\t\t\t--port-inset-block: calc(var(--height) / -2) auto;\n\t\t\t\t}\n\t\t\t\t&.output-tertiary-port {\n\t\t\t\t\t--port-inset-inline: calc(50% - var(--width) / 2) 0;\n\t\t\t\t\t--port-inset-block: auto calc(var(--height) / -2);\n\t\t\t\t}\n\t\t\t}\n\t\t"
31816
+ ]
31817
+ }]
31818
+ }], propDecorators: { direction: [{
31819
+ type: i0.Input
31820
+ }], data: [{
31821
+ type: i0.Input
31822
+ }], seed: [{
31823
+ type: i0.Input
31824
+ }], emit: [{
31825
+ type: i0.Input
31826
+ }], sortByIndex: [{
31827
+ type: i0.Input
31828
+ }] } });
31829
+
31830
+ var GatewayNodeComponent = /** @class */ (function (_super) {
31831
+ __extends(GatewayNodeComponent, _super);
31832
+ function GatewayNodeComponent() {
31833
+ return _super !== null && _super.apply(this, arguments) || this;
31834
+ }
31835
+ return GatewayNodeComponent;
31836
+ }(BaseNodeComponent));
31837
+ GatewayNodeComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GatewayNodeComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
31838
+ GatewayNodeComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GatewayNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n\tclass=\"da-node gateway-node--{{ data.type }} gateway-node {{\r\n\t\tdata?.status ? ' da-node--' + data?.status : ''\r\n\t}}\"\r\n\t[style.--node-width]=\"data.width + 'px'\"\r\n\t[style.--node-height]=\"data.width + 'px'\"\r\n>\r\n\t<div class=\"gateway-node__wrapper\">\r\n\t\t<node-remove-button\r\n\t\t\t(remove)=\"removeNode()\"\r\n\t\t\t*ngIf=\"data.config?.canRemove\"\r\n\t\t></node-remove-button>\r\n\t\t<div class=\"gateway-node__content\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"da-node__title gate-node__title\"\r\n\t\t\t\t[attr.tooltip]=\"data.content?.data?.tooltip\"\r\n\t\t\t\t[class.node-tooltip]=\"!!data.content?.data?.tooltip\"\r\n\t\t\t>\r\n\t\t\t\t{{ data.name }}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<gateway-ports\r\n\t\tclass=\"gateway-node__ports\"\r\n\t\t[data]=\"data\"\r\n\t\t[seed]=\"seed\"\r\n\t\t[emit]=\"emit\"\r\n\t\t[sortByIndex]=\"sortByIndex\"\r\n\t></gateway-ports>\r\n</div>\r\n", styles: [".da-node{--socket-size: 16px;--width: var(--node-width);--height: var(--node-height);width:var(--width);height:var(--height);display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);border:var(--node-border, 1px solid #234990);border-radius:var(--node-radius, 10px);color:var(--node-color, #234990);background:var(--node-background, #fff);box-shadow:var(--node-shadow, unset);cursor:var(--node-cursor, pointer);z-index:var(--node-z-index, 1)}.da-node--draft{--node-color: var( --status-draft-color, #555 );--node-background: var( --status-draft-background, #f5f5f5 );--node-border: var( --status-draft-border, 1px solid #555 );--node-shadow: var( --status-draft-shadow, unset )}.da-node--upcoming{--node-color: var( --status-upcoming-color, var(--Primary-100, #234990) );--node-background: var( --status-upcoming-background, #fff );--node-border: var( --status-upcoming-border, 1px solid var(--node-color, #234990) );--node-shadow: var( --status-upcoming-shadow, unset )}.da-node--ready{--node-color: var( --status-ready-color, var(--Primary-100, #234990) );--node-background: var( --status-ready-background, #fff );--node-border: var( --status-ready-border, 1px solid var(--node-color, #234990) );--node-shadow: var( --status-ready-shadow, unset )}.da-node--suspended{--node-color: var( --status-suspended-color, var(--orange-color, #f29339) );--node-background: var( --status-suspended-background, var(--light-orange-color, #fdf4dc) );--node-border: var( --status-suspended-border, 1px solid var(--orange-color, #f29339) );--node-shadow: var( --status-suspended-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)) )}.da-node--inProgress{--node-color: var( --status-progress-color, var(--orange-color, #f29339) );--node-background: var( --status-progress-background, var(--light-orange-color, #fdf4dc) );--node-border: var( --status-progress-border, 1px solid var(--orange-color, #f29339) );--node-shadow: var( --status-progress-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)) )}.da-node--completed{--node-color: var( --status-completed-color, var(--green-color, #05cd99) );--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var( --status-completed-border, 1px solid var(--green-color, #05cd99) );--node-shadow: var( --status-completed-shadow, unset )}.da-node--approved{--node-color: var( --status-completed-color, var(--green-color, #05cd99) );--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var( --status-completed-border, 1px solid var(--green-color, #05cd99) );--node-shadow: var( --status-completed-shadow, unset )}.da-node--rejected{--node-color: var( --status-rejected-color, var(--red-color, #bf0b30) );--node-background: var( --status-rejected-background, var(--light-red-color, #ffe0e7) );--node-border: var( --status-rejected-border, 1px solid var(--red-color, #bf0b30) );--node-shadow: var( --status-rejected-shadow, unset )}.da-node--canceled{--node-color: var( --status-canceled-color, var(--red-color, #bf0b30) );--node-background: var( --status-canceled-background, var(--light-red-color, #ffe0e7) );--node-border: var( --status-canceled-border, 1px solid var(--red-color, #bf0b30) );--node-shadow: var( --status-canceled-shadow, unset )}.da-node__check-status{position:absolute;position:var(--check-icon-position, absolute);inset:var(--check-icon-inset, -6px -6px auto auto);color:var(--check-icon-color)}.da-node__check-status--completed{--check-icon-color: var(--status-completed-color)}.da-node__check-status--rejected{--check-icon-color: var(--status-rejected-color)}.da-node__content{width:calc(100% - var(--socket-size));height:calc(100% - var(--socket-size));display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);z-index:var(--node-z-index, 1)}.da-node__title{text-align:center;font-weight:600}.da-node__description,.da-node__title{color:var(--node-text-color, #28282d);font-size:var(--node-text-font-size, .8rem);text-align:var(--node-text-align, center);padding-inline:var(--node-text-inline, .4rem)}.da-node__icon{position:absolute;inset-inline-start:var(--node-icon-inset-inline, 5px);inset-block-start:var(--node-icon-inset-block, 5px)}.da-node:hover{--remove-icon-inset: -8px -8px auto auto;--remove-icon-opacity: 1}\n", ".gateway-node{--node-radius: 0;--angle: 45deg;--socket-radius: 0;border-width:0;background:transparent}.gateway-node__wrapper{width:calc(100% - var(--socket-size, 14px));height:calc(100% - var(--socket-size, 14px));transform:rotate(var(--angle));border:var(--node-border, 1px solid #234990);border-radius:var(--node-radius);background:var(--node-background, #fff)}.gateway-node__content{--rotate: calc(var(--angle) * -1);transform:rotate(var(--rotate));height:100%;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}\n"], components: [{ type: RemoveButtonComponent, selector: "node-remove-button", outputs: ["remove"] }, { type: GatewayPortsComponent, selector: "gateway-ports", inputs: ["direction", "data", "seed", "emit", "sortByIndex"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
31839
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GatewayNodeComponent, decorators: [{
31840
+ type: i0.Component,
31841
+ args: [{
31842
+ templateUrl: './gateway-node.component.html',
31843
+ styleUrls: ['../../styles/node.scss', './gateway-node.component.scss']
31543
31844
  }]
31544
31845
  }] });
31545
31846
 
31847
+ var NodeInputsComponent = /** @class */ (function () {
31848
+ function NodeInputsComponent() {
31849
+ }
31850
+ return NodeInputsComponent;
31851
+ }());
31852
+ NodeInputsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodeInputsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
31853
+ NodeInputsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NodeInputsComponent, selector: "node-inputs", inputs: { direction: "direction", data: "data", seed: "seed", emit: "emit", sortByIndex: "sortByIndex" }, host: { properties: { "class": " 'node-ports node-ports--inputs node-ports--' + direction" } }, ngImport: i0__namespace, template: "\n\t\t<div\n\t\t\t*ngFor=\"let input of data.inputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"node-ports__port {{ input.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'input',\n\t\t\t\tkey: input.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: input.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\t", isInline: true, styles: [".node-ports{--port-size: 16px;position:absolute;width:100%;height:100%}.node-port{position:absolute;inset-inline:var(--port-inset-inline);inset-block:var(--port-inset-block);display:inline-block;width:var(--port-size);height:var(--port-size)}.node-ports--inputs--start .input-primary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--start .input-secondary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--start .input-tertiary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--start .input-quaternary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--end .input-primary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--end .input-secondary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--end .input-tertiary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--end .input-quaternary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--top .input-primary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--top .input-secondary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--top .input-tertiary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--top .input-quaternary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--bottom .input-primary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--bottom .input-secondary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--bottom .input-tertiary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--bottom .input-quaternary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--outputs--top .output-primary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--top .output-secondary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--top .output-tertiary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--top .output-quaternary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--bottom .output-primary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--bottom .output-secondary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--bottom .output-tertiary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--bottom .output-quaternary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-primary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-secondary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--start .output-tertiary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-quaternary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--end .output-primary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--end .output-secondary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--end .output-tertiary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--end .output-quaternary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}\n"], directives: [{ type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4__namespace$1.KeyValuePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
31854
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodeInputsComponent, decorators: [{
31855
+ type: i0.Component,
31856
+ args: [{
31857
+ selector: 'node-inputs',
31858
+ encapsulation: i0.ViewEncapsulation.None,
31859
+ styleUrls: ['../styles/ports.scss'],
31860
+ host: {
31861
+ '[class]': " 'node-ports node-ports--inputs node-ports--' + direction"
31862
+ },
31863
+ template: "\n\t\t<div\n\t\t\t*ngFor=\"let input of data.inputs | keyvalue : sortByIndex\"\n\t\t\tclass=\"node-ports__port {{ input.value.styleClass }}\"\n\t\t\trefComponent\n\t\t\t[data]=\"{\n\t\t\t\ttype: 'socket',\n\t\t\t\tside: 'input',\n\t\t\t\tkey: input.key,\n\t\t\t\tnodeId: data.id,\n\t\t\t\tpayload: input.value?.socket,\n\t\t\t\tseed: seed\n\t\t\t}\"\n\t\t\t[emit]=\"emit\"\n\t\t></div>\n\t"
31864
+ }]
31865
+ }], propDecorators: { direction: [{
31866
+ type: i0.Input
31867
+ }], data: [{
31868
+ type: i0.Input
31869
+ }], seed: [{
31870
+ type: i0.Input
31871
+ }], emit: [{
31872
+ type: i0.Input
31873
+ }], sortByIndex: [{
31874
+ type: i0.Input
31875
+ }] } });
31876
+
31877
+ var NodeOutputsComponent = /** @class */ (function () {
31878
+ function NodeOutputsComponent() {
31879
+ }
31880
+ return NodeOutputsComponent;
31881
+ }());
31882
+ NodeOutputsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodeOutputsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
31883
+ NodeOutputsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NodeOutputsComponent, selector: "node-outputs", inputs: { direction: "direction", data: "data", seed: "seed", emit: "emit", sortByIndex: "sortByIndex" }, host: { properties: { "class": " 'node-ports node-ports--outputs node-ports--' + direction" } }, ngImport: i0__namespace, template: "<div\n\t\tclass=\"node-ports__port {{ output.value.styleClass }}\"\n\t\t*ngFor=\"let output of data.outputs | keyvalue : sortByIndex\"\n\t\trefComponent\n\t\t[data]=\"{\n\t\t\ttype: 'socket',\n\t\t\tside: 'output',\n\t\t\tkey: output.key,\n\t\t\tnodeId: data.id,\n\t\t\tpayload: output.value?.socket,\n\t\t\tseed: seed\n\t\t}\"\n\t\t[emit]=\"emit\"\n\t></div>", isInline: true, styles: [".node-ports{--port-size: 16px;position:absolute;width:100%;height:100%}.node-port{position:absolute;inset-inline:var(--port-inset-inline);inset-block:var(--port-inset-block);display:inline-block;width:var(--port-size);height:var(--port-size)}.node-ports--inputs--start .input-primary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--start .input-secondary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--start .input-tertiary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--start .input-quaternary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--end .input-primary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--end .input-secondary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--end .input-tertiary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--end .input-quaternary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--top .input-primary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--top .input-secondary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--top .input-tertiary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--top .input-quaternary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--bottom .input-primary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: auto 0}.node-ports--inputs--bottom .input-secondary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--inputs--bottom .input-tertiary-port{--port-inset-inline: var( --port-offset, calc(50% - var(--port-size)) ) auto;--port-inset-block: 0 auto}.node-ports--inputs--bottom .input-quaternary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, calc(50% - var(--port-size)) ) auto}.node-ports--outputs--top .output-primary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--top .output-secondary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--top .output-tertiary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--top .output-quaternary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--bottom .output-primary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--bottom .output-secondary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--bottom .output-tertiary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--bottom .output-quaternary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-primary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-secondary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}.node-ports--outputs--start .output-tertiary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--start .output-quaternary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--end .output-primary-port{--port-inset-inline: auto 0;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--end .output-secondary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: auto 0}.node-ports--outputs--end .output-tertiary-port{--port-inset-inline: 0 auto;--port-inset-block: var( --port-offset, 50% ) auto}.node-ports--outputs--end .output-quaternary-port{--port-inset-inline: var( --port-offset, 50% ) auto;--port-inset-block: 0 auto}\n"], directives: [{ type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4__namespace$1.KeyValuePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
31884
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NodeOutputsComponent, decorators: [{
31885
+ type: i0.Component,
31886
+ args: [{
31887
+ selector: 'node-outputs',
31888
+ encapsulation: i0.ViewEncapsulation.None,
31889
+ styleUrls: ['../styles/ports.scss'],
31890
+ host: {
31891
+ '[class]': " 'node-ports node-ports--outputs node-ports--' + direction"
31892
+ },
31893
+ template: "<div\n\t\tclass=\"node-ports__port {{ output.value.styleClass }}\"\n\t\t*ngFor=\"let output of data.outputs | keyvalue : sortByIndex\"\n\t\trefComponent\n\t\t[data]=\"{\n\t\t\ttype: 'socket',\n\t\t\tside: 'output',\n\t\t\tkey: output.key,\n\t\t\tnodeId: data.id,\n\t\t\tpayload: output.value?.socket,\n\t\t\tseed: seed\n\t\t}\"\n\t\t[emit]=\"emit\"\n\t></div>"
31894
+ }]
31895
+ }], propDecorators: { direction: [{
31896
+ type: i0.Input
31897
+ }], data: [{
31898
+ type: i0.Input
31899
+ }], seed: [{
31900
+ type: i0.Input
31901
+ }], emit: [{
31902
+ type: i0.Input
31903
+ }], sortByIndex: [{
31904
+ type: i0.Input
31905
+ }] } });
31906
+
31546
31907
  var TemplateNodeComponent = /** @class */ (function (_super) {
31547
31908
  __extends(TemplateNodeComponent, _super);
31548
31909
  function TemplateNodeComponent() {
@@ -31568,7 +31929,7 @@
31568
31929
  return TemplateNodeComponent;
31569
31930
  }(BaseNodeComponent));
31570
31931
  TemplateNodeComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TemplateNodeComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
31571
- TemplateNodeComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TemplateNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n class=\"da-node da-node--{{ data.type }} {{\r\n data?.status ? ' da-node--' + data?.status : ''\r\n }} {{ data?.styleClass }}\"\r\n [style.--node-width]=\"data.width + 'px'\"\r\n [style.--node-height]=\"data.height + 'px'\"\r\n>\r\n <node-remove-button (remove)=\"removeNode()\" *ngIf=\"data?.config?.canRemove\">\r\n </node-remove-button>\r\n\r\n <node-icon\r\n *ngIf=\"data.content?.icon\"\r\n [icon]=\"data.content?.icon\"\r\n class=\"da-node__icon\"\r\n ></node-icon>\r\n\r\n <ng-container\r\n [ngTemplateOutlet]=\"data?.template || defaultTemplate\"\r\n [ngTemplateOutletContext]=\"templateOutletContext\"\r\n ></ng-container>\r\n\r\n <ng-template #defaultTemplate>\r\n <div class=\"da-node__title\">{{ data?.name }}</div>\r\n </ng-template>\r\n\r\n <node-inputs\r\n [direction]=\"data.directions.inputs\"\r\n [data]=\"data\"\r\n [seed]=\"seed\"\r\n [emit]=\"emit\"\r\n [sortByIndex]=\"sortByIndex\"\r\n ></node-inputs>\r\n\r\n <node-outputs\r\n [direction]=\"data.directions.outputs\"\r\n [data]=\"data\"\r\n [seed]=\"seed\"\r\n [emit]=\"emit\"\r\n [sortByIndex]=\"sortByIndex\"\r\n ></node-outputs>\r\n</div>\r\n", styles: [".da-node{--width: var(--node-width);--height: var(--node-height);--socket-offset-negative: 0;--socket-position-start: var(--socket-offset-negative) auto;--socket-position-end: auto var(--socket-offset-negative);width:var(--width);height:var(--height);display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);border:var(--node-border, 1px solid #234990);border-radius:var(--node-radius, 10px);color:var(--node-color, #234990);background:var(--node-background, #fff);box-shadow:var(--node-shadow, unset);cursor:var(--node-cursor, pointer)}.da-node--draft{--node-color: var(--status-draft-color, #555);--node-background: var( --status-draft-background, #f5f5f5 );--node-border: var(--status-draft-border, 1px solid #555);--node-shadow: var(--status-draft-shadow, unset)}.da-node--upcoming{--node-color: var(--status-upcoming-color, var(--Primary-100, #234990));--node-background: var( --status-upcoming-background, #fff );--node-border: var(--status-upcoming-border, 1px solid var(--node-color, #234990));--node-shadow: var(--status-upcoming-shadow, unset)}.da-node--inProgress{--node-color: var(--status-progress-color, var(--orange-color, #f29339));--node-background: var( --status-progress-background, var(--light-orange-color, #fdf4dc) );--node-border: var(--status-progress-border, 1px solid var(--orange-color, #f29339));--node-shadow: var(--status-progress-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)))}.da-node--completed{--node-color: var(--status-completed-color, var(--green-color, #05cd99));--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var(--status-completed-border, 1px solid var(--green-color, #05cd99));--node-shadow: var(--status-completed-shadow, unset)}.da-node--approved{--node-color: var(--status-completed-color, var(--green-color, #05cd99));--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var(--status-completed-border, 1px solid var(--green-color, #05cd99));--node-shadow: var(--status-completed-shadow, unset)}.da-node--rejected{--node-color: var(--status-rejected-color, var(--red-color, #bf0b30));--node-background: var( --status-rejected-background, var(--light-red-color, #ffe0e7) );--node-border: var(--status-rejected-border, 1px solid var(--red-color, #bf0b30));--node-shadow: var(--status-rejected-shadow, unset)}.da-node__check-status{position:absolute;position:var(--check-icon-position, absolute);inset:var(--check-icon-inset, -6px -6px auto auto);color:var(--check-icon-color)}.da-node__check-status--completed{--check-icon-color: var(--status-completed-color)}.da-node__check-status--rejected{--check-icon-color: var(--status-rejected-color)}.da-node__title{text-align:center;font-weight:600}.da-node__description,.da-node__title{color:var(--node-text-color, #28282d);font-size:var(--node-text-font-size, .8rem);text-align:var(--node-text-align, center);padding-inline:var(--node-text-inline, .4rem)}.da-node__icon{position:absolute;inset-inline-start:var(--node-icon-inset-inline, 5px);inset-block-start:var(--node-icon-inset-block, 5px)}.da-node__inputs,.da-node__outputs{position:var(--input-output-position, absolute);inset-inline:var(--in-out-inset-inline);inset-block:var(--in-out-inset-block);height:var(--socket-size, 16px)}.da-node__inputs__socket,.da-node__outputs__socket{height:var(--socket-size, 16px)}.da-node__inputs.inputs-top{--in-out-inset-block: var(--socket-position-start)}.da-node__inputs.inputs-bottom{--in-out-inset-block: var(--socket-position-end)}.da-node__inputs.inputs-start{--in-out-inset-inline: var(--socket-position-start)}.da-node__inputs.inputs-end{--in-out-inset-inline: var(--socket-position-end)}.da-node__outputs.outputs-top{--in-out-inset-block: var(--socket-offset-negative)}.da-node__outputs.outputs-bottom{--in-out-inset-block: var(--socket-position-end)}.da-node__outputs.outputs-start{--in-out-inset-inline: var(--socket-position-start)}.da-node__outputs.outputs-end{--in-out-inset-inline: var(--socket-position-end)}.da-node:hover{--remove-icon-inset: -8px -8px auto auto;--remove-icon-opacity: 1}\n", "\n :host {\n display: block;\n }\n "], components: [{ type: RemoveButtonComponent, selector: "node-remove-button", outputs: ["remove"] }, { type: NodeIconComponent, selector: "node-icon", inputs: ["icon"] }, { type: NodeInputsComponent, selector: "node-inputs", inputs: ["direction", "data", "seed", "emit", "sortByIndex"] }, { type: NodeOutputsComponent, selector: "node-outputs", inputs: ["direction", "data", "seed", "emit", "sortByIndex"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.Default });
31932
+ TemplateNodeComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TemplateNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n\tclass=\"da-node da-node--{{ data.type }} {{\r\n\t\tdata?.status ? ' da-node--' + data?.status : ''\r\n\t}} {{ data?.styleClass }}\"\r\n\t[style.--node-width]=\"data.width + 'px'\"\r\n\t[style.--node-height]=\"data.height + 'px'\"\r\n>\r\n\t<node-ports\r\n\t\t[inputsDirection]=\"data.directions.inputs\"\r\n\t\t[outputsDirection]=\"data.directions.outputs\"\r\n\t\t[data]=\"data\"\r\n\t\t[seed]=\"seed\"\r\n\t\t[emit]=\"emit\"\r\n\t\t[sortByIndex]=\"sortByIndex\"\r\n\t></node-ports>\r\n\t<div class=\"da-node__content\">\r\n\t\t<node-remove-button (remove)=\"removeNode()\" *ngIf=\"data?.config?.canRemove\">\r\n\t\t</node-remove-button>\r\n\r\n\t\t<node-icon\r\n\t\t\t*ngIf=\"data.content?.icon\"\r\n\t\t\t[icon]=\"data.content?.icon\"\r\n\t\t\tclass=\"da-node__icon\"\r\n\t\t></node-icon>\r\n\r\n\t\t<ng-container\r\n\t\t\t[ngTemplateOutlet]=\"data?.template || defaultTemplate\"\r\n\t\t\t[ngTemplateOutletContext]=\"templateOutletContext\"\r\n\t\t></ng-container>\r\n\r\n\t\t<ng-template #defaultTemplate>\r\n\t\t\t<div class=\"da-node__title\">{{ data?.name }}</div>\r\n\t\t</ng-template>\r\n\t</div>\r\n</div>\r\n", styles: [".da-node{--socket-size: 16px;--width: var(--node-width);--height: var(--node-height);width:var(--width);height:var(--height);display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);border:var(--node-border, 1px solid #234990);border-radius:var(--node-radius, 10px);color:var(--node-color, #234990);background:var(--node-background, #fff);box-shadow:var(--node-shadow, unset);cursor:var(--node-cursor, pointer);z-index:var(--node-z-index, 1)}.da-node--draft{--node-color: var( --status-draft-color, #555 );--node-background: var( --status-draft-background, #f5f5f5 );--node-border: var( --status-draft-border, 1px solid #555 );--node-shadow: var( --status-draft-shadow, unset )}.da-node--upcoming{--node-color: var( --status-upcoming-color, var(--Primary-100, #234990) );--node-background: var( --status-upcoming-background, #fff );--node-border: var( --status-upcoming-border, 1px solid var(--node-color, #234990) );--node-shadow: var( --status-upcoming-shadow, unset )}.da-node--ready{--node-color: var( --status-ready-color, var(--Primary-100, #234990) );--node-background: var( --status-ready-background, #fff );--node-border: var( --status-ready-border, 1px solid var(--node-color, #234990) );--node-shadow: var( --status-ready-shadow, unset )}.da-node--suspended{--node-color: var( --status-suspended-color, var(--orange-color, #f29339) );--node-background: var( --status-suspended-background, var(--light-orange-color, #fdf4dc) );--node-border: var( --status-suspended-border, 1px solid var(--orange-color, #f29339) );--node-shadow: var( --status-suspended-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)) )}.da-node--inProgress{--node-color: var( --status-progress-color, var(--orange-color, #f29339) );--node-background: var( --status-progress-background, var(--light-orange-color, #fdf4dc) );--node-border: var( --status-progress-border, 1px solid var(--orange-color, #f29339) );--node-shadow: var( --status-progress-shadow, var(--node-shadow, inset 0 0 0 2px var(--node-background), inset 0 0 0 3px var(--orange-color, #f29339)) )}.da-node--completed{--node-color: var( --status-completed-color, var(--green-color, #05cd99) );--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var( --status-completed-border, 1px solid var(--green-color, #05cd99) );--node-shadow: var( --status-completed-shadow, unset )}.da-node--approved{--node-color: var( --status-completed-color, var(--green-color, #05cd99) );--node-background: var( --status-completed-background, var(--light-green-color, #f0fff0) );--node-border: var( --status-completed-border, 1px solid var(--green-color, #05cd99) );--node-shadow: var( --status-completed-shadow, unset )}.da-node--rejected{--node-color: var( --status-rejected-color, var(--red-color, #bf0b30) );--node-background: var( --status-rejected-background, var(--light-red-color, #ffe0e7) );--node-border: var( --status-rejected-border, 1px solid var(--red-color, #bf0b30) );--node-shadow: var( --status-rejected-shadow, unset )}.da-node--canceled{--node-color: var( --status-canceled-color, var(--red-color, #bf0b30) );--node-background: var( --status-canceled-background, var(--light-red-color, #ffe0e7) );--node-border: var( --status-canceled-border, 1px solid var(--red-color, #bf0b30) );--node-shadow: var( --status-canceled-shadow, unset )}.da-node__check-status{position:absolute;position:var(--check-icon-position, absolute);inset:var(--check-icon-inset, -6px -6px auto auto);color:var(--check-icon-color)}.da-node__check-status--completed{--check-icon-color: var(--status-completed-color)}.da-node__check-status--rejected{--check-icon-color: var(--status-rejected-color)}.da-node__content{width:calc(100% - var(--socket-size));height:calc(100% - var(--socket-size));display:var(--node-display, flex);justify-content:var(--node-justify, center);align-items:var(--node-items, center);flex-direction:var(--node-direction, column);z-index:var(--node-z-index, 1)}.da-node__title{text-align:center;font-weight:600}.da-node__description,.da-node__title{color:var(--node-text-color, #28282d);font-size:var(--node-text-font-size, .8rem);text-align:var(--node-text-align, center);padding-inline:var(--node-text-inline, .4rem)}.da-node__icon{position:absolute;inset-inline-start:var(--node-icon-inset-inline, 5px);inset-block-start:var(--node-icon-inset-block, 5px)}.da-node:hover{--remove-icon-inset: -8px -8px auto auto;--remove-icon-opacity: 1}\n", "\n :host {\n display: block;\n }\n "], components: [{ type: NodePortsComponent, selector: "node-ports", inputs: ["inputsDirection", "outputsDirection", "data", "seed", "emit", "sortByIndex"] }, { type: RemoveButtonComponent, selector: "node-remove-button", outputs: ["remove"] }, { type: NodeIconComponent, selector: "node-icon", inputs: ["icon"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.Default });
31572
31933
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TemplateNodeComponent, decorators: [{
31573
31934
  type: i0.Component,
31574
31935
  args: [{
@@ -31644,24 +32005,23 @@
31644
32005
  DiagramDirective.prototype.ngAfterViewInit = function () {
31645
32006
  return __awaiter(this, void 0, void 0, function () {
31646
32007
  var editor, error_1;
31647
- return __generator(this, function (_a) {
31648
- switch (_a.label) {
32008
+ return __generator(this, function (_c) {
32009
+ switch (_c.label) {
31649
32010
  case 0:
31650
32011
  this._appendZoomComponent();
31651
- _a.label = 1;
32012
+ _c.label = 1;
31652
32013
  case 1:
31653
- _a.trys.push([1, 3, , 4]);
31654
- return [4 /*yield*/, createDiagramEditor(this._elementRef.nativeElement, this._injector, this.config //TODO it's Should be merged with DIAGRAM_DEFAULT_OPTIONS
31655
- )];
32014
+ _c.trys.push([1, 3, , 4]);
32015
+ return [4 /*yield*/, createDiagramEditor(this._elementRef.nativeElement, this._injector, this.config)];
31656
32016
  case 2:
31657
- editor = _a.sent();
32017
+ editor = _c.sent();
31658
32018
  this._pluginsService.setPlugins(editor);
31659
32019
  this._diagramService.setEditor(editor);
31660
32020
  this.diagramEditor = editor;
31661
32021
  this.onDiagramReady.emit(editor);
31662
32022
  return [3 /*break*/, 4];
31663
32023
  case 3:
31664
- error_1 = _a.sent();
32024
+ error_1 = _c.sent();
31665
32025
  console.log(error_1);
31666
32026
  return [3 /*break*/, 4];
31667
32027
  case 4: return [2 /*return*/];
@@ -31671,14 +32031,18 @@
31671
32031
  };
31672
32032
  DiagramDirective.prototype._appendStyles = function () {
31673
32033
  var _this = this;
32034
+ var _a, _b;
31674
32035
  var _requiredStyles = {
31675
32036
  position: 'var(--diagram-position, relative)',
31676
32037
  width: "var(--diagram-width, " + this.width + ")",
31677
32038
  height: "var(--diagram-height, " + this.height + ")",
31678
- direction: 'ltr',
32039
+ direction: 'ltr'
31679
32040
  };
31680
- Object.entries(_requiredStyles).forEach(function (_a) {
31681
- var _b = __read(_a, 2), key = _b[0], value = _b[1];
32041
+ if ((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.readonly) === null || _b === void 0 ? void 0 : _b.active) {
32042
+ this._elementRef.nativeElement.style.setProperty('--port-offset', 'var(--custom-diagram-port-offset , calc(50% - 8px))');
32043
+ }
32044
+ Object.entries(_requiredStyles).forEach(function (_c) {
32045
+ var _d = __read(_c, 2), key = _d[0], value = _d[1];
31682
32046
  _this._renderer.setStyle(_this._elementRef.nativeElement, key, value);
31683
32047
  });
31684
32048
  };
@@ -31690,7 +32054,7 @@
31690
32054
  type: i0.Directive,
31691
32055
  args: [{
31692
32056
  selector: '[appDiagram]',
31693
- exportAs: 'diagram',
32057
+ exportAs: 'diagram'
31694
32058
  }]
31695
32059
  }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }, { type: i0__namespace.Renderer2 }, { type: i0__namespace.Injector }, { type: i0__namespace.ViewContainerRef }, { type: i0__namespace.ComponentFactoryResolver }, { type: DiagramService }, { type: DiagramPluginsService }]; }, propDecorators: { height: [{
31696
32060
  type: i0.Input
@@ -31721,7 +32085,11 @@
31721
32085
  NodeIconComponent,
31722
32086
  StatusIconComponent,
31723
32087
  NodeInputsComponent,
31724
- NodeOutputsComponent], imports: [i4.CommonModule,
32088
+ NodeOutputsComponent,
32089
+ GatewayNodeComponent,
32090
+ ConnectionLabelComponent,
32091
+ NodePortsComponent,
32092
+ GatewayPortsComponent], imports: [i4.CommonModule,
31725
32093
  i2$8.ReteModule,
31726
32094
  i1$7.MatButtonModule,
31727
32095
  i2$1.MatIconModule,
@@ -31735,7 +32103,7 @@
31735
32103
  i2$1.MatIconModule,
31736
32104
  i6.FormsModule,
31737
32105
  i1$1.TranslateModule,
31738
- i2$2.MatTooltipModule,
32106
+ i2$2.MatTooltipModule
31739
32107
  ]] });
31740
32108
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DiagramsModule, decorators: [{
31741
32109
  type: i0.NgModule,
@@ -31753,6 +32121,10 @@
31753
32121
  StatusIconComponent,
31754
32122
  NodeInputsComponent,
31755
32123
  NodeOutputsComponent,
32124
+ GatewayNodeComponent,
32125
+ ConnectionLabelComponent,
32126
+ NodePortsComponent,
32127
+ GatewayPortsComponent
31756
32128
  ],
31757
32129
  imports: [
31758
32130
  i4.CommonModule,
@@ -31761,10 +32133,10 @@
31761
32133
  i2$1.MatIconModule,
31762
32134
  i6.FormsModule,
31763
32135
  i1$1.TranslateModule,
31764
- i2$2.MatTooltipModule,
32136
+ i2$2.MatTooltipModule
31765
32137
  ],
31766
32138
  exports: [DiagramDirective, ZoomControlComponent],
31767
- providers: [DiagramService, DiagramPluginsService, WorkflowService],
32139
+ providers: [DiagramService, DiagramPluginsService, WorkflowService]
31768
32140
  }]
31769
32141
  }] });
31770
32142
 
@@ -34028,6 +34400,7 @@
34028
34400
  exports.ConfirmationDialogComponent = ConfirmationDialogComponent;
34029
34401
  exports.ConfirmationDialogModule = ConfirmationDialogModule;
34030
34402
  exports.Connection = Connection;
34403
+ exports.ConnectionLabelComponent = ConnectionLabelComponent;
34031
34404
  exports.ContentNode = ContentNode;
34032
34405
  exports.ContentNodeComponent = ContentNodeComponent;
34033
34406
  exports.CopyComponent = CopyComponent;
@@ -34063,6 +34436,7 @@
34063
34436
  exports.DiagramDirective = DiagramDirective;
34064
34437
  exports.DiagramPluginsService = DiagramPluginsService;
34065
34438
  exports.DiagramService = DiagramService;
34439
+ exports.DiagramUtils = DiagramUtils;
34066
34440
  exports.DiagramsModule = DiagramsModule;
34067
34441
  exports.DialogMangmentService = DialogMangmentService;
34068
34442
  exports.DirectiveModule = DirectiveModule;
@@ -34134,6 +34508,8 @@
34134
34508
  exports.FilterModule = FilterModule;
34135
34509
  exports.FolderModalComponent = FolderModalComponent;
34136
34510
  exports.FormBuilderService = FormBuilderService;
34511
+ exports.GatewayNodeComponent = GatewayNodeComponent;
34512
+ exports.GatewayPortsComponent = GatewayPortsComponent;
34137
34513
  exports.GlobalAdminService = GlobalAdminService;
34138
34514
  exports.GlobalPdfTron = GlobalPdfTron;
34139
34515
  exports.GregorianDatepickerComponent = GregorianDatepickerComponent;
@@ -34143,6 +34519,7 @@
34143
34519
  exports.IN_OUT_DIRECTION = IN_OUT_DIRECTION;
34144
34520
  exports.IconService = IconService;
34145
34521
  exports.InitializationService = InitializationService;
34522
+ exports.InputPort = InputPort;
34146
34523
  exports.ItemListComponent = ItemListComponent;
34147
34524
  exports.LatestActivityComponent = LatestActivityComponent;
34148
34525
  exports.LatestActivityModule = LatestActivityModule;
@@ -34161,6 +34538,7 @@
34161
34538
  exports.MultipleDynamicFormViewerComponent = MultipleDynamicFormViewerComponent;
34162
34539
  exports.MutipleDynamicFormViewerModule = MutipleDynamicFormViewerModule;
34163
34540
  exports.NODE_CIRCLE_SIZE = NODE_CIRCLE_SIZE;
34541
+ exports.NODE_GATEWAY_SIZE = NODE_GATEWAY_SIZE;
34164
34542
  exports.NODE_HEIGHT = NODE_HEIGHT;
34165
34543
  exports.NODE_MARGIN = NODE_MARGIN;
34166
34544
  exports.NODE_STATUS = NODE_STATUS;
@@ -34178,6 +34556,7 @@
34178
34556
  exports.NodeIconComponent = NodeIconComponent;
34179
34557
  exports.NodeInputsComponent = NodeInputsComponent;
34180
34558
  exports.NodeOutputsComponent = NodeOutputsComponent;
34559
+ exports.NodePortsComponent = NodePortsComponent;
34181
34560
  exports.NotificationIconDirective = NotificationIconDirective;
34182
34561
  exports.NotificationItemComponent = NotificationItemComponent;
34183
34562
  exports.NotificationItemDirective = NotificationItemDirective;
@@ -34199,6 +34578,7 @@
34199
34578
  exports.NuxeoDialogService = NuxeoDialogService;
34200
34579
  exports.NuxeoMapper = NuxeoMapper;
34201
34580
  exports.NuxeoService = NuxeoService;
34581
+ exports.OutputPort = OutputPort;
34202
34582
  exports.PAGINATION_MODE = PAGINATION_MODE;
34203
34583
  exports.PANEL_MODE = PANEL_MODE;
34204
34584
  exports.PaginationComponent = PaginationComponent;
@@ -34279,6 +34659,7 @@
34279
34659
  exports.extensionJsonsFactory = extensionJsonsFactory;
34280
34660
  exports.filterEnabled = filterEnabled;
34281
34661
  exports.getConnections = getConnections;
34662
+ exports.getRandomNumber = getRandomNumber;
34282
34663
  exports.getValue = getValue;
34283
34664
  exports.mergeArrays = mergeArrays;
34284
34665
  exports.mergeObjects = mergeObjects;