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
@@ -28317,6 +28317,7 @@ const NODE_TYPE = {
28317
28317
  start: 'start',
28318
28318
  content: 'content',
28319
28319
  template: 'template',
28320
+ gateway: 'gateway',
28320
28321
  end: 'end',
28321
28322
  };
28322
28323
 
@@ -28328,6 +28329,7 @@ const NODE_MARGIN = 60;
28328
28329
  const NODE_WIDTH = 150;
28329
28330
  const NODE_HEIGHT = 118;
28330
28331
  const NODE_CIRCLE_SIZE = 72;
28332
+ const NODE_GATEWAY_SIZE = 60;
28331
28333
  const DIAGRAM_HEIGHT = 600;
28332
28334
  const SOCKET_WIDTH = 8;
28333
28335
 
@@ -28338,6 +28340,9 @@ const NODE_STATUS = {
28338
28340
  inProgress: 'inProgress',
28339
28341
  upcoming: 'upcoming',
28340
28342
  approved: 'approved',
28343
+ suspended: 'suspended',
28344
+ ready: 'ready',
28345
+ canceled: 'canceled'
28341
28346
  };
28342
28347
 
28343
28348
  class DiagramPluginsService {
@@ -28365,7 +28370,7 @@ class BaseNodeClass extends ClassicPreset.Node {
28365
28370
  this.height = NODE_HEIGHT;
28366
28371
  this.directions = {
28367
28372
  inputs: IN_OUT_DIRECTION.start,
28368
- outputs: IN_OUT_DIRECTION.end,
28373
+ outputs: IN_OUT_DIRECTION.end
28369
28374
  };
28370
28375
  this.name = config === null || config === void 0 ? void 0 : config.name;
28371
28376
  this.directions = (config === null || config === void 0 ? void 0 : config.directions) || this.directions;
@@ -28377,6 +28382,7 @@ class BaseNodeClass extends ClassicPreset.Node {
28377
28382
  this.content = config === null || config === void 0 ? void 0 : config.content;
28378
28383
  this.config = config === null || config === void 0 ? void 0 : config.config;
28379
28384
  this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
28385
+ this.options = config === null || config === void 0 ? void 0 : config.options;
28380
28386
  }
28381
28387
  }
28382
28388
 
@@ -28388,10 +28394,176 @@ class CircleNode extends BaseNodeClass {
28388
28394
  }
28389
28395
  }
28390
28396
 
28397
+ class DiagramUtils {
28398
+ static createInputId(id, type = 'primary') {
28399
+ return `${id}-${type}-input`;
28400
+ }
28401
+ static createOutputId(id, type = 'primary') {
28402
+ return `${id}-${type}-output`;
28403
+ }
28404
+ static createInputClass(type = 'primary') {
28405
+ return `input-${type}-port`;
28406
+ }
28407
+ static createOutputClass(type = 'primary') {
28408
+ return `output-${type}-port`;
28409
+ }
28410
+ static createOutputsConfig(id, types) {
28411
+ return types.map((type) => {
28412
+ return {
28413
+ id: DiagramUtils.createOutputId(id, type),
28414
+ config: {
28415
+ styleClass: DiagramUtils.createOutputClass(type)
28416
+ }
28417
+ };
28418
+ });
28419
+ }
28420
+ static createInputsConfig(id, types) {
28421
+ return types.map((type) => {
28422
+ return {
28423
+ id: DiagramUtils.createInputId(id, type),
28424
+ config: {
28425
+ styleClass: DiagramUtils.createInputClass(type)
28426
+ }
28427
+ };
28428
+ });
28429
+ }
28430
+ }
28431
+
28432
+ function getRandomNumber(x, y, step = 1, min = 0, max = 1000) {
28433
+ // Create a deterministic seed based on x and y
28434
+ const seed = Math.abs(x * 31 + y * 17) % 100000;
28435
+ // Generate a pseudo-random number based on the seed
28436
+ const seededRandom = ((seed * 9301 + 49297) % 233280) / 233280;
28437
+ // Calculate range
28438
+ const range = Math.floor((max - min) / step) + 1;
28439
+ // Return the adjusted number
28440
+ return min + Math.floor(seededRandom * range) * step;
28441
+ }
28442
+
28443
+ /**
28444
+ *
28445
+ * @param node
28446
+ * @returns
28447
+ */
28448
+ const removeNode = (data, editor) => __awaiter(void 0, void 0, void 0, function* () {
28449
+ if (!data || !editor) {
28450
+ console.log('Node not found.');
28451
+ return;
28452
+ }
28453
+ const nodes = editor.getNodes();
28454
+ const node = editor.getNode(data.nodeId);
28455
+ if (!node) {
28456
+ console.log('Node not found.');
28457
+ return;
28458
+ }
28459
+ if (node.type === NODE_TYPE.start && nodes.length > 1) {
28460
+ return;
28461
+ }
28462
+ const nodeConfig = node.config;
28463
+ return (nodeConfig === null || nodeConfig === void 0 ? void 0 : nodeConfig.isLinked)
28464
+ ? yield removeNodeAndReplaceConnections(node, editor)
28465
+ : yield removeNodeAndConnections(node, editor);
28466
+ });
28467
+ /**
28468
+ *
28469
+ * @param node
28470
+ * @param editor
28471
+ */
28472
+ const removeNodeAndConnections = (node, editor) => __awaiter(void 0, void 0, void 0, function* () {
28473
+ removeConnections(node, editor);
28474
+ yield editor.removeNode(node.id);
28475
+ });
28476
+ /**
28477
+ *
28478
+ * @param node
28479
+ * @param editor
28480
+ */
28481
+ const removeNodeAndReplaceConnections = (node, editor) => __awaiter(void 0, void 0, void 0, function* () {
28482
+ const outputs = getConnections(editor, (connection) => connection.source == node.id);
28483
+ const inputs = getConnections(editor, (connection) => connection.target == node.id);
28484
+ if (!!inputs.length && !!outputs.length) {
28485
+ yield _updateConnections(outputs, inputs, editor);
28486
+ }
28487
+ else {
28488
+ removeConnections(node, editor);
28489
+ }
28490
+ yield editor.removeNode(node.id);
28491
+ });
28492
+ /**
28493
+ *
28494
+ * @param node
28495
+ * @param editor
28496
+ */
28497
+ const removeConnections = (node, editor) => {
28498
+ const connections = getConnections(editor, (connection) => connection.source === node.id || connection.target === node.id);
28499
+ if (connections.length) {
28500
+ connections.forEach((connection) => {
28501
+ editor.removeConnection(connection.id);
28502
+ });
28503
+ }
28504
+ };
28505
+ /**
28506
+ *
28507
+ * @param editor
28508
+ * @param predicate
28509
+ * @returns
28510
+ */
28511
+ const getConnections = (editor, predicate) => {
28512
+ return editor.getConnections().filter(predicate);
28513
+ };
28514
+ /**
28515
+ *
28516
+ * @param outputs
28517
+ * @param inputs
28518
+ * @param editor
28519
+ */
28520
+ const _updateConnections = (outputs, inputs, editor) => __awaiter(void 0, void 0, void 0, function* () {
28521
+ const source = inputs[0].source;
28522
+ const target = outputs[0].target;
28523
+ const sourceNode = editor.getNode(source);
28524
+ const targetNode = editor.getNode(target);
28525
+ [...outputs, ...inputs].forEach((connection) => __awaiter(void 0, void 0, void 0, function* () {
28526
+ yield editor.removeConnection(connection.id);
28527
+ }));
28528
+ if (!sourceNode || !targetNode) {
28529
+ return;
28530
+ }
28531
+ const connection = new Connection(sourceNode, targetNode);
28532
+ yield editor.addConnection(connection);
28533
+ });
28534
+
28535
+ function serializePort(port) {
28536
+ return {
28537
+ id: port.id,
28538
+ label: port.label,
28539
+ socket: {
28540
+ name: port.socket.name,
28541
+ },
28542
+ };
28543
+ }
28544
+ function serializeControl(control) {
28545
+ if (control instanceof ClassicPreset.InputControl) {
28546
+ return {
28547
+ __type: 'ClassicPreset.InputControl',
28548
+ id: control.id,
28549
+ readonly: control.readonly,
28550
+ type: control.type,
28551
+ value: control.value,
28552
+ };
28553
+ }
28554
+ return null;
28555
+ }
28556
+
28391
28557
  class Connection extends ClassicPreset.Connection {
28392
- constructor() {
28393
- super(...arguments);
28394
- this.renderType = 'default';
28558
+ constructor(source, target, config) {
28559
+ super(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));
28560
+ this.status = (config === null || config === void 0 ? void 0 : config.status) || target.status;
28561
+ this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
28562
+ this.label = config === null || config === void 0 ? void 0 : config.label;
28563
+ this.renderType = (config === null || config === void 0 ? void 0 : config.renderType) || 'default';
28564
+ this.sourceNode = source;
28565
+ this.targetNode = target;
28566
+ this.direction = config === null || config === void 0 ? void 0 : config.direction;
28395
28567
  }
28396
28568
  }
28397
28569
 
@@ -28401,10 +28573,24 @@ class ContentNode extends BaseNodeClass {
28401
28573
  }
28402
28574
  }
28403
28575
 
28576
+ class OutputPort extends ClassicPreset.Output {
28577
+ constructor(config) {
28578
+ super(config.socket, config === null || config === void 0 ? void 0 : config.label, (config === null || config === void 0 ? void 0 : config.multipleConnections) !== false);
28579
+ this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
28580
+ }
28581
+ }
28582
+ class InputPort extends ClassicPreset.Input {
28583
+ constructor(config) {
28584
+ super(config.socket, config === null || config === void 0 ? void 0 : config.label, (config === null || config === void 0 ? void 0 : config.multipleConnections) !== false);
28585
+ this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
28586
+ }
28587
+ }
28588
+
28404
28589
  class Socket extends ClassicPreset.Socket {
28405
- constructor(name, renderType = 'default') {
28406
- super(name);
28407
- this.renderType = renderType;
28590
+ constructor(config) {
28591
+ super(config.name);
28592
+ this.renderType = (config === null || config === void 0 ? void 0 : config.renderType) || 'default';
28593
+ this.styleClass = config === null || config === void 0 ? void 0 : config.styleClass;
28408
28594
  }
28409
28595
  }
28410
28596
 
@@ -28418,6 +28604,15 @@ class TemplateNode extends BaseNodeClass {
28418
28604
  }
28419
28605
  }
28420
28606
 
28607
+ class GateWayNode extends BaseNodeClass {
28608
+ constructor(config) {
28609
+ super(config);
28610
+ this.type = NODE_TYPE.gateway;
28611
+ this.width = NODE_GATEWAY_SIZE;
28612
+ this.height = NODE_GATEWAY_SIZE;
28613
+ }
28614
+ }
28615
+
28421
28616
  /**
28422
28617
  *
28423
28618
  * @param config
@@ -28456,42 +28651,68 @@ const customizeConnection = (config) => (data) => {
28456
28651
  };
28457
28652
  const initNodeByType = (type, config) => {
28458
28653
  const _nodes = {
28459
- start: CircleNode,
28460
- content: ContentNode,
28461
- template: TemplateNode,
28462
- end: CircleNode,
28654
+ [NODE_TYPE.start]: CircleNode,
28655
+ [NODE_TYPE.content]: ContentNode,
28656
+ [NODE_TYPE.template]: TemplateNode,
28657
+ [NODE_TYPE.end]: CircleNode,
28658
+ [NODE_TYPE.gateway]: GateWayNode
28463
28659
  };
28464
28660
  return new _nodes[type](config) || new ContentNode(config);
28465
28661
  };
28466
28662
  const initAngularComponentByType = (type) => {
28467
28663
  const _components = {
28468
- content: ContentNodeComponent,
28469
- start: CircleNodeComponent,
28470
- end: CircleNodeComponent,
28471
- template: TemplateNodeComponent,
28664
+ [NODE_TYPE.content]: ContentNodeComponent,
28665
+ [NODE_TYPE.start]: CircleNodeComponent,
28666
+ [NODE_TYPE.end]: CircleNodeComponent,
28667
+ [NODE_TYPE.template]: TemplateNodeComponent,
28668
+ [NODE_TYPE.gateway]: GatewayNodeComponent
28472
28669
  };
28473
28670
  return _components[type] || NodeComponent;
28474
28671
  };
28475
28672
 
28476
28673
  const createSegmentedPath = (connection, options) => {
28477
- const { multiPoints = true, offset = 0 } = options || {};
28674
+ var _a;
28675
+ const { multiPoints = true, offset = 0 } = ((_a = options === null || options === void 0 ? void 0 : options.transform) === null || _a === void 0 ? void 0 : _a.options) || {};
28676
+ const isVertical = !!(options === null || options === void 0 ? void 0 : options.vertical);
28677
+ const direction = connection.direction;
28478
28678
  return (points) => {
28479
28679
  if (points.length !== 2) {
28480
28680
  throw new Error('Exactly two points are required to create a linear path.');
28481
28681
  }
28482
28682
  const [start, end] = points;
28683
+ if (!isVertical) {
28684
+ switch (direction) {
28685
+ case 'down': {
28686
+ const offset = getRandomNumber(start.x, start.y, 10, 50, 150);
28687
+ const _points = [
28688
+ { x: start.x, y: start.y + offset },
28689
+ { x: end.x, y: end.y + offset }
28690
+ ];
28691
+ return [start, ..._points, end];
28692
+ }
28693
+ case 'backward': {
28694
+ const _points = [{ x: end.x, y: start.y }];
28695
+ return [start, ..._points, end];
28696
+ }
28697
+ case 'forward': {
28698
+ if (end.y < start.y) {
28699
+ const _points = [{ x: start.x, y: end.y }];
28700
+ return [start, ..._points, end];
28701
+ }
28702
+ break;
28703
+ }
28704
+ }
28705
+ }
28483
28706
  if (multiPoints) {
28484
28707
  const midpointY = (end.y - start.y) / 2 + start.y;
28485
28708
  const intermediatePoints = [
28486
28709
  { x: start.x, y: midpointY - offset },
28487
- { x: end.x, y: midpointY + offset },
28710
+ { x: end.x, y: midpointY + offset }
28488
28711
  ];
28489
- // Use bezier curves between points to smooth corners
28490
28712
  return [
28491
28713
  Object.assign(Object.assign({}, start), { controlOut: { x: start.x, y: midpointY - offset } }),
28492
- intermediatePoints[0],
28493
- intermediatePoints[1],
28494
- Object.assign(Object.assign({}, end), { controlIn: { x: end.x, y: midpointY + offset } }),
28714
+ ...intermediatePoints,
28715
+ Object.assign(Object.assign({}, end), { controlIn: { x: end.x, y: midpointY + offset } })
28495
28716
  ];
28496
28717
  }
28497
28718
  return [start, end];
@@ -28502,14 +28723,15 @@ const initPathPlugin = (config) => new ConnectionPathPlugin({
28502
28723
  curve: (c) => { var _a; return (_a = (c.curve || (config === null || config === void 0 ? void 0 : config.curve))) !== null && _a !== void 0 ? _a : curveLinear; },
28503
28724
  transformer: (c) => {
28504
28725
  var _a, _b, _c;
28505
- return ((_a = config === null || config === void 0 ? void 0 : config.transform) === null || _a === void 0 ? void 0 : _a.active)
28506
- ? createSegmentedPath(c, (_b = config === null || config === void 0 ? void 0 : config.transform) === null || _b === void 0 ? void 0 : _b.options)
28507
- : Transformers.classic({
28508
- vertical: !!(config === null || config === void 0 ? void 0 : config.vertical),
28509
- curvature: (_c = config === null || config === void 0 ? void 0 : config.curvature) !== null && _c !== void 0 ? _c : 0.3,
28510
- });
28726
+ if ((_a = config === null || config === void 0 ? void 0 : config.transform) === null || _a === void 0 ? void 0 : _a.active) {
28727
+ 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));
28728
+ }
28729
+ return Transformers.classic({
28730
+ vertical: !!(config === null || config === void 0 ? void 0 : config.vertical),
28731
+ curvature: (_c = config === null || config === void 0 ? void 0 : config.curvature) !== null && _c !== void 0 ? _c : 0.3
28732
+ });
28511
28733
  },
28512
- arrow: (connection) => (!(config === null || config === void 0 ? void 0 : config.arrow) ? false : config === null || config === void 0 ? void 0 : config.arrow),
28734
+ arrow: (connection) => (!(config === null || config === void 0 ? void 0 : config.arrow) ? false : config === null || config === void 0 ? void 0 : config.arrow)
28513
28735
  });
28514
28736
 
28515
28737
  const socketPositionWatcher = (offset = 1, isVertical = false, editor) => getDOMSocketPosition({
@@ -28519,9 +28741,9 @@ const socketPositionWatcher = (offset = 1, isVertical = false, editor) => getDOM
28519
28741
  });
28520
28742
 
28521
28743
  const createDiagramEditor = (container, injector, config) => __awaiter(void 0, void 0, void 0, function* () {
28522
- var _a, _b, _c, _d, _e, _f, _g;
28744
+ var _a, _b, _c, _d, _e, _f, _g, _h;
28523
28745
  //#region PLUGINS
28524
- const socket = new Socket('', config === null || config === void 0 ? void 0 : config.socketType);
28746
+ const socket = new Socket({ name: '', renderType: config === null || config === void 0 ? void 0 : config.socketType });
28525
28747
  const editor = new NodeEditor();
28526
28748
  const area = new AreaPlugin(container);
28527
28749
  const connection = new ConnectionPlugin();
@@ -28539,31 +28761,33 @@ const createDiagramEditor = (container, injector, config) => __awaiter(void 0, v
28539
28761
  RerouteExtensions.selectablePins(reroute, selector, accumulating);
28540
28762
  //#endregion
28541
28763
  //#region PRESETS
28542
- arrange.addPreset(Presets.classic.setup());
28764
+ arrange.addPreset(((_b = config === null || config === void 0 ? void 0 : config.presets) === null || _b === void 0 ? void 0 : _b.arrange)
28765
+ ? config === null || config === void 0 ? void 0 : config.presets.arrange(editor)
28766
+ : Presets.classic.setup());
28543
28767
  angularRender.addPreset(Presets$1.classic.setup({
28544
- socketPositionWatcher: socketPositionWatcher(0, (_b = config === null || config === void 0 ? void 0 : config.path) === null || _b === void 0 ? void 0 : _b.vertical, editor),
28768
+ socketPositionWatcher: socketPositionWatcher(0, (_c = config === null || config === void 0 ? void 0 : config.path) === null || _c === void 0 ? void 0 : _c.vertical, editor),
28545
28769
  customize: {
28546
28770
  node: customizeNode(config, editor),
28547
28771
  connection: customizeConnection(config),
28548
- socket: customizeSocket(config),
28549
- },
28772
+ socket: customizeSocket(config)
28773
+ }
28550
28774
  }));
28551
- angularRender.addPreset(Presets$1.minimap.setup({ size: ((_c = config === null || config === void 0 ? void 0 : config.minimap) === null || _c === void 0 ? void 0 : _c.size) || 150 }));
28775
+ angularRender.addPreset(Presets$1.minimap.setup({ size: ((_d = config === null || config === void 0 ? void 0 : config.minimap) === null || _d === void 0 ? void 0 : _d.size) || 150 }));
28552
28776
  connection.addPreset(Presets$2.classic.setup());
28553
- if ((_d = config === null || config === void 0 ? void 0 : config.area) === null || _d === void 0 ? void 0 : _d.restrict) {
28777
+ if ((_e = config === null || config === void 0 ? void 0 : config.area) === null || _e === void 0 ? void 0 : _e.restrict) {
28554
28778
  const _scaling = (config === null || config === void 0 ? void 0 : config.area.scaling) || { min: 0.5, max: 1.5 };
28555
28779
  AreaExtensions.restrictor(area, {
28556
- scaling: () => _scaling,
28780
+ scaling: () => _scaling
28557
28781
  });
28558
28782
  }
28559
28783
  //#endregion
28560
28784
  //#region USE
28561
- if ((_e = config === null || config === void 0 ? void 0 : config.readonly) === null || _e === void 0 ? void 0 : _e.active) {
28785
+ if ((_f = config === null || config === void 0 ? void 0 : config.readonly) === null || _f === void 0 ? void 0 : _f.active) {
28562
28786
  editor.use(readonly.root);
28563
28787
  area.use(readonly.area);
28564
28788
  }
28565
28789
  editor.use(area);
28566
- if (!((_f = config === null || config === void 0 ? void 0 : config.readonly) === null || _f === void 0 ? void 0 : _f.active)) {
28790
+ if (!((_g = config === null || config === void 0 ? void 0 : config.readonly) === null || _g === void 0 ? void 0 : _g.active)) {
28567
28791
  // Don't use the connection plugin in readonly mode
28568
28792
  area.use(connection);
28569
28793
  }
@@ -28576,7 +28800,7 @@ const createDiagramEditor = (container, injector, config) => __awaiter(void 0, v
28576
28800
  //@ts-ignore
28577
28801
  angularRender.use(reroute);
28578
28802
  }
28579
- if ((_g = config === null || config === void 0 ? void 0 : config.minimap) === null || _g === void 0 ? void 0 : _g.active) {
28803
+ if ((_h = config === null || config === void 0 ? void 0 : config.minimap) === null || _h === void 0 ? void 0 : _h.active) {
28580
28804
  area.use(minimap);
28581
28805
  }
28582
28806
  // Render Diagram
@@ -28590,130 +28814,16 @@ const createDiagramEditor = (container, injector, config) => __awaiter(void 0, v
28590
28814
  connection,
28591
28815
  arrange,
28592
28816
  reroute,
28593
- readonly,
28817
+ readonly
28594
28818
  },
28595
28819
  destroy: () => area.destroy(),
28596
28820
  layout: (props) => arrange.layout(props),
28597
28821
  fitToZoom: () => {
28598
28822
  AreaExtensions.zoomAt(area, editor.getNodes());
28599
- },
28823
+ }
28600
28824
  };
28601
28825
  });
28602
28826
 
28603
- /**
28604
- *
28605
- * @param node
28606
- * @returns
28607
- */
28608
- const removeNode = (data, editor) => __awaiter(void 0, void 0, void 0, function* () {
28609
- if (!data || !editor) {
28610
- console.log('Node not found.');
28611
- return;
28612
- }
28613
- const nodes = editor.getNodes();
28614
- const node = editor.getNode(data.nodeId);
28615
- if (!node) {
28616
- console.log('Node not found.');
28617
- return;
28618
- }
28619
- if (node.type === NODE_TYPE.start && nodes.length > 1) {
28620
- return;
28621
- }
28622
- const nodeConfig = node.config;
28623
- return (nodeConfig === null || nodeConfig === void 0 ? void 0 : nodeConfig.isLinked)
28624
- ? yield removeNodeAndReplaceConnections(node, editor)
28625
- : yield removeNodeAndConnections(node, editor);
28626
- });
28627
- /**
28628
- *
28629
- * @param node
28630
- * @param editor
28631
- */
28632
- const removeNodeAndConnections = (node, editor) => __awaiter(void 0, void 0, void 0, function* () {
28633
- removeConnections(node, editor);
28634
- yield editor.removeNode(node.id);
28635
- });
28636
- /**
28637
- *
28638
- * @param node
28639
- * @param editor
28640
- */
28641
- const removeNodeAndReplaceConnections = (node, editor) => __awaiter(void 0, void 0, void 0, function* () {
28642
- const outputs = getConnections(editor, (connection) => connection.source == node.id);
28643
- const inputs = getConnections(editor, (connection) => connection.target == node.id);
28644
- if (!!inputs.length && !!outputs.length) {
28645
- yield _updateConnections(outputs, inputs, editor);
28646
- }
28647
- else {
28648
- removeConnections(node, editor);
28649
- }
28650
- yield editor.removeNode(node.id);
28651
- });
28652
- /**
28653
- *
28654
- * @param node
28655
- * @param editor
28656
- */
28657
- const removeConnections = (node, editor) => {
28658
- const connections = getConnections(editor, (connection) => connection.source === node.id || connection.target === node.id);
28659
- if (connections.length) {
28660
- connections.forEach((connection) => {
28661
- editor.removeConnection(connection.id);
28662
- });
28663
- }
28664
- };
28665
- /**
28666
- *
28667
- * @param editor
28668
- * @param predicate
28669
- * @returns
28670
- */
28671
- const getConnections = (editor, predicate) => {
28672
- return editor.getConnections().filter(predicate);
28673
- };
28674
- /**
28675
- *
28676
- * @param outputs
28677
- * @param inputs
28678
- * @param editor
28679
- */
28680
- const _updateConnections = (outputs, inputs, editor) => __awaiter(void 0, void 0, void 0, function* () {
28681
- const source = inputs[0].source;
28682
- const target = outputs[0].target;
28683
- const sourceNode = editor.getNode(source);
28684
- const targetNode = editor.getNode(target);
28685
- [...outputs, ...inputs].forEach((connection) => __awaiter(void 0, void 0, void 0, function* () {
28686
- yield editor.removeConnection(connection.id);
28687
- }));
28688
- if (!sourceNode || !targetNode) {
28689
- return;
28690
- }
28691
- const connection = new Connection(sourceNode, `${sourceNode.id}-output`, targetNode, `${targetNode.id}-input`);
28692
- yield editor.addConnection(connection);
28693
- });
28694
-
28695
- function serializePort(port) {
28696
- return {
28697
- id: port.id,
28698
- label: port.label,
28699
- socket: {
28700
- name: port.socket.name,
28701
- },
28702
- };
28703
- }
28704
- function serializeControl(control) {
28705
- if (control instanceof ClassicPreset.InputControl) {
28706
- return {
28707
- __type: 'ClassicPreset.InputControl',
28708
- id: control.id,
28709
- readonly: control.readonly,
28710
- type: control.type,
28711
- value: control.value,
28712
- };
28713
- }
28714
- return null;
28715
- }
28716
-
28717
28827
  class DiagramService {
28718
28828
  /**
28719
28829
  *
@@ -28730,6 +28840,9 @@ class DiagramService {
28730
28840
  this.destroy = editor.destroy;
28731
28841
  this.fitToZoom = editor.fitToZoom;
28732
28842
  }
28843
+ diagramClientRect() {
28844
+ return this.plugins.area.container.getBoundingClientRect();
28845
+ }
28733
28846
  getContentNodes() {
28734
28847
  return this.editor
28735
28848
  .getNodes()
@@ -28754,10 +28867,22 @@ class DiagramService {
28754
28867
  createNode(type = NODE_TYPE.content, config) {
28755
28868
  const _node = initNodeByType(type, config);
28756
28869
  if (config.type !== NODE_TYPE.start) {
28757
- this.createInputs(_node);
28870
+ this.createInput(_node, DiagramUtils.createInputId(_node.id), {
28871
+ styleClass: DiagramUtils.createInputClass()
28872
+ });
28758
28873
  }
28759
28874
  if (config.type !== NODE_TYPE.end) {
28760
- this.createOutputs(_node);
28875
+ this.createOutput(_node, DiagramUtils.createOutputId(_node.id), {
28876
+ styleClass: DiagramUtils.createOutputClass()
28877
+ });
28878
+ }
28879
+ if (config.type === NODE_TYPE.gateway) {
28880
+ this._creteGatewayOutput(_node);
28881
+ }
28882
+ if ([NODE_TYPE.content, NODE_TYPE.template].includes(config.type)) {
28883
+ const contentPorts = ['secondary', 'tertiary', 'quaternary'];
28884
+ DiagramUtils.createInputsConfig(_node.id, contentPorts).forEach(({ id, config }) => this.createInput(_node, id, config));
28885
+ DiagramUtils.createOutputsConfig(_node.id, contentPorts).forEach(({ id, config }) => this.createOutput(_node, id, config));
28761
28886
  }
28762
28887
  _node.notify = this.notifyListener(_node);
28763
28888
  return _node;
@@ -28770,6 +28895,18 @@ class DiagramService {
28770
28895
  const _isExist = _nodes.some((nd) => nd.type === NODE_TYPE.start);
28771
28896
  return !_isExist;
28772
28897
  }
28898
+ getNode(id) {
28899
+ return this.editor.getNode(id);
28900
+ }
28901
+ getNodes() {
28902
+ return this.editor.getNodes();
28903
+ }
28904
+ getConnections() {
28905
+ return this.editor.getConnections();
28906
+ }
28907
+ getConnection(id) {
28908
+ return this.editor.getConnection(id);
28909
+ }
28773
28910
  getLastNode() {
28774
28911
  const nodes = this.editor.getNodes();
28775
28912
  return nodes.length ? nodes[nodes.length - 1] : null;
@@ -28777,27 +28914,35 @@ class DiagramService {
28777
28914
  getNodesByType(type) {
28778
28915
  return this.editor.getNodes().filter((nd) => nd.type === type);
28779
28916
  }
28917
+ getViewNodes() {
28918
+ return Array.from(this.plugins.area.nodeViews.values());
28919
+ }
28780
28920
  getLastViewNode() {
28781
- const nodes = Array.from(this.plugins.area.nodeViews.values());
28921
+ const nodes = this.getViewNodes();
28782
28922
  return nodes.length ? nodes[nodes.length - 1] : null;
28783
28923
  }
28784
- createInputs(node) {
28785
- node.addInput(`${node.id}-input`, new ClassicPreset.Input(this.socket));
28924
+ getViewNode(id) {
28925
+ return this.plugins.area.nodeViews.get(id);
28926
+ }
28927
+ getViewNodePosition(id) {
28928
+ const node = this.getViewNode(id);
28929
+ return node ? node.position : null;
28930
+ }
28931
+ createInput(node, id = `${node.id}-input`, config) {
28932
+ node.addInput(id, new InputPort(Object.assign({ socket: this.socket }, config)));
28786
28933
  return node;
28787
28934
  }
28788
- createOutputs(node) {
28789
- node.addOutput(`${node.id}-output`, new ClassicPreset.Output(this.socket, '', false));
28935
+ createOutput(node, id = `${node.id}-output`, config) {
28936
+ node.addOutput(id, new OutputPort(Object.assign({ socket: this.socket }, config)));
28790
28937
  return node;
28791
28938
  }
28792
- addConnection(sourceNode, targetNode) {
28939
+ addConnection(sourceNode, targetNode, config) {
28793
28940
  return __awaiter(this, void 0, void 0, function* () {
28794
- yield this.editor.addConnection(this.createConnection(sourceNode, targetNode));
28941
+ yield this.editor.addConnection(this.createConnection(sourceNode, targetNode, config));
28795
28942
  });
28796
28943
  }
28797
- createConnection(sourceNode, targetNode) {
28798
- const connection = new Connection(sourceNode, `${sourceNode.id}-output`, targetNode, `${targetNode.id}-input`);
28799
- connection.status = targetNode.status;
28800
- return connection;
28944
+ createConnection(sourceNode, targetNode, config) {
28945
+ return new Connection(sourceNode, targetNode, config);
28801
28946
  }
28802
28947
  appendConnection(connection) {
28803
28948
  return __awaiter(this, void 0, void 0, function* () {
@@ -28818,11 +28963,36 @@ class DiagramService {
28818
28963
  return (eventType, payload) => {
28819
28964
  var _a;
28820
28965
  const _actions = {
28821
- [NOTIFY_EVENT.remove]: this._removeNode.bind(this),
28966
+ [NOTIFY_EVENT.remove]: this._removeNode.bind(this)
28822
28967
  };
28823
28968
  return (_a = _actions[eventType]) === null || _a === void 0 ? void 0 : _a.call(_actions, payload);
28824
28969
  };
28825
28970
  }
28971
+ translateView() {
28972
+ return __awaiter(this, void 0, void 0, function* () {
28973
+ const { container, area } = this.plugins.area;
28974
+ const rect = container.getBoundingClientRect();
28975
+ const k = area.transform.k;
28976
+ const delta = -0.2;
28977
+ const ox = Math.max(0, (rect.left - container.clientWidth / 2) * k);
28978
+ const oy = Math.max(0, (rect.top - container.clientHeight / 2) * k);
28979
+ area.zoom(Math.max(0.1, k * (1 + delta)), ox * delta, oy * delta);
28980
+ });
28981
+ }
28982
+ removeEndNode() {
28983
+ return __awaiter(this, void 0, void 0, function* () {
28984
+ const node = this.getNodesByType(NODE_TYPE.end)[0];
28985
+ if (node) {
28986
+ yield removeNodeAndConnections(node, this.editor);
28987
+ }
28988
+ });
28989
+ }
28990
+ _creteGatewayOutput(_node) {
28991
+ DiagramUtils.createOutputsConfig(_node.id, [
28992
+ 'secondary',
28993
+ 'tertiary'
28994
+ ]).forEach((input) => this.createOutput(_node, input.id, input === null || input === void 0 ? void 0 : input.config));
28995
+ }
28826
28996
  _removeNode(data) {
28827
28997
  return __awaiter(this, void 0, void 0, function* () {
28828
28998
  const node = this.editor.getNode(data.nodeId);
@@ -28860,17 +29030,6 @@ class DiagramService {
28860
29030
  this.plugins.readonly.enable();
28861
29031
  });
28862
29032
  }
28863
- translateView() {
28864
- return __awaiter(this, void 0, void 0, function* () {
28865
- const { container, area } = this.plugins.area;
28866
- const rect = container.getBoundingClientRect();
28867
- const k = area.transform.k;
28868
- const delta = -0.2;
28869
- const ox = Math.max(0, (rect.left - container.clientWidth / 2) * k);
28870
- const oy = Math.max(0, (rect.top - container.clientHeight / 2) * k);
28871
- area.zoom(Math.max(0.1, k * (1 + delta)), ox * delta, oy * delta);
28872
- });
28873
- }
28874
29033
  }
28875
29034
  DiagramService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DiagramService, deps: [{ token: DiagramPluginsService }], target: i0.ɵɵFactoryTarget.Injectable });
28876
29035
  DiagramService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DiagramService });
@@ -28909,9 +29068,6 @@ class WorkflowService {
28909
29068
  this._defaultNodeMargin = NODE_MARGIN;
28910
29069
  this._offset = 60;
28911
29070
  }
28912
- get _diagramClientRect() {
28913
- return this._plugins.area.container.getBoundingClientRect();
28914
- }
28915
29071
  setConfig(_config) {
28916
29072
  this._config = _config;
28917
29073
  this._message.sendMessage(MESSAGE_TYPE.configUpdated, _config);
@@ -28953,10 +29109,7 @@ class WorkflowService {
28953
29109
  }
28954
29110
  removeEndNode() {
28955
29111
  return __awaiter(this, void 0, void 0, function* () {
28956
- const node = this._diagram.getNodesByType(NODE_TYPE.end)[0];
28957
- if (node) {
28958
- yield removeNodeAndConnections(node, this._diagram.editor);
28959
- }
29112
+ yield this._diagram.removeEndNode();
28960
29113
  });
28961
29114
  }
28962
29115
  /**
@@ -28969,7 +29122,7 @@ class WorkflowService {
28969
29122
  const isEndNode = _node.type === NODE_TYPE.end;
28970
29123
  return {
28971
29124
  x: this._calculatePositionX(lastNode.node.type, lastNode.viewNode.position.x),
28972
- y: this._calculatePositionY(isEndNode ? NODE_TYPE.end : lastNode.node.type, lastNode.viewNode.position.y),
29125
+ y: this._calculatePositionY(isEndNode ? NODE_TYPE.end : lastNode.node.type, lastNode.viewNode.position.y)
28973
29126
  };
28974
29127
  }
28975
29128
  _createNode(nodeType, data, config) {
@@ -28987,7 +29140,8 @@ class WorkflowService {
28987
29140
  return this._changeNodeSocketPosition(context);
28988
29141
  }
28989
29142
  }
28990
- if (context.type === 'nodecreated' && context.data.type !== NODE_TYPE.end) {
29143
+ if (context.type === 'nodecreated' &&
29144
+ context.data.type !== NODE_TYPE.end) {
28991
29145
  setTimeout(() => {
28992
29146
  this._updateNodePosition(context);
28993
29147
  });
@@ -29006,12 +29160,12 @@ class WorkflowService {
29006
29160
  }
29007
29161
  return Object.assign({}, context);
29008
29162
  }
29009
- _linkToLastNode(_addedNode) {
29163
+ _linkToLastNode(_addedNode, connectionConfig) {
29010
29164
  return __awaiter(this, void 0, void 0, function* () {
29011
29165
  let node = this._diagram.getLastNode();
29012
29166
  let viewNode = this._diagram.getLastViewNode();
29013
29167
  if (node && viewNode) {
29014
- yield this._diagram.addConnection(node, _addedNode);
29168
+ yield this._diagram.addConnection(node, _addedNode, connectionConfig);
29015
29169
  return { node, viewNode };
29016
29170
  }
29017
29171
  return null;
@@ -29040,7 +29194,7 @@ class WorkflowService {
29040
29194
  const startNode = this._diagram.createNode(NODE_TYPE.start, {
29041
29195
  type: NODE_TYPE.start,
29042
29196
  label: NODE_TYPE.start,
29043
- name: 'start',
29197
+ name: 'start'
29044
29198
  });
29045
29199
  yield this._diagram.addNode(startNode);
29046
29200
  yield this._plugins.area.translate(startNode.id, position);
@@ -29081,7 +29235,7 @@ class WorkflowService {
29081
29235
  */
29082
29236
  _isOverEndBoundary(node, previousNode) {
29083
29237
  var _a;
29084
- const _diagramWidth = Number((_a = this._diagramClientRect) === null || _a === void 0 ? void 0 : _a.width) - this._defaultNodeMargin;
29238
+ const _diagramWidth = Number((_a = this._diagram.diagramClientRect()) === null || _a === void 0 ? void 0 : _a.width) - this._defaultNodeMargin;
29085
29239
  const _width = previousNode.position.x + (node.width + this._defaultNodeMargin) * 2;
29086
29240
  return _width >= _diagramWidth;
29087
29241
  }
@@ -29096,7 +29250,8 @@ class WorkflowService {
29096
29250
  this._defaultNodeWidth +
29097
29251
  this._defaultNodeMargin * 2 +
29098
29252
  this._offset;
29099
- const wrapLine = Number((_a = this._diagramClientRect) === null || _a === void 0 ? void 0 : _a.width) - this._defaultNodeWidth * 2;
29253
+ const wrapLine = Number((_a = this._diagram.diagramClientRect()) === null || _a === void 0 ? void 0 : _a.width) -
29254
+ this._defaultNodeWidth * 2;
29100
29255
  return currentPosition >= wrapLine;
29101
29256
  }
29102
29257
  _updateNodePosition(context) {
@@ -29105,7 +29260,7 @@ class WorkflowService {
29105
29260
  const _previousNode = this._diagram.getLastNode();
29106
29261
  const _nodeViewPosition = (_a = this._plugins.area.nodeViews.get(context.data.id)) === null || _a === void 0 ? void 0 : _a.position;
29107
29262
  if (_previousNode && _nodeViewPosition) {
29108
- const _diagramWidth = Number((_b = this._diagramClientRect) === null || _b === void 0 ? void 0 : _b.width);
29263
+ const _diagramWidth = Number((_b = this._diagram.diagramClientRect()) === null || _b === void 0 ? void 0 : _b.width);
29109
29264
  const _currentX = _nodeViewPosition.x + context.data.width;
29110
29265
  if (_currentX >= _diagramWidth) {
29111
29266
  this._plugins.readonly.disable();
@@ -29119,7 +29274,7 @@ class WorkflowService {
29119
29274
  }
29120
29275
  yield this._plugins.area.translate(context.data.id, {
29121
29276
  x: x,
29122
- y: _nodeViewPosition.y + this._defaultNodeMargin + context.data.height,
29277
+ y: _nodeViewPosition.y + this._defaultNodeMargin + context.data.height
29123
29278
  });
29124
29279
  this._plugins.readonly.enable();
29125
29280
  }
@@ -29168,114 +29323,89 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29168
29323
  type: Input
29169
29324
  }] } });
29170
29325
 
29171
- class RemoveButtonComponent {
29172
- constructor() {
29173
- this.remove = new EventEmitter();
29174
- }
29175
- }
29176
- RemoveButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RemoveButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29177
- RemoveButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RemoveButtonComponent, selector: "node-remove-button", outputs: { remove: "remove" }, ngImport: i0, template: `
29178
- <button
29179
- mat-icon-button
29180
- (click)="remove.emit()"
29181
- (pointerdown)="$event.stopPropagation()"
29182
- (dblclick)="$event.stopPropagation()"
29183
- class="remove-icon"
29184
- >
29185
- <mat-icon>close</mat-icon>
29186
- </button>
29187
- `, 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$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$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
29188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RemoveButtonComponent, decorators: [{
29189
- type: Component,
29190
- args: [{
29191
- selector: 'node-remove-button',
29192
- template: `
29193
- <button
29194
- mat-icon-button
29195
- (click)="remove.emit()"
29196
- (pointerdown)="$event.stopPropagation()"
29197
- (dblclick)="$event.stopPropagation()"
29198
- class="remove-icon"
29199
- >
29200
- <mat-icon>close</mat-icon>
29201
- </button>
29202
- `,
29203
- styles: [
29204
- `
29205
- :host {
29206
- --size: var(--remove-icon-size, 30px);
29207
- position: var(--remove-icon-position, absolute);
29208
- inset: var(--remove-icon-inset, 0 0 auto auto);
29209
- opacity: var(--remove-icon-opacity, 0);
29210
- background: var(--remove-icon-background, inherit);
29211
- width: var(--size);
29212
- height: var(--size);
29213
- line-height: var(var(--remove-icon-size), calc(var(--size) - 6));
29214
- border-radius: 50%;
29215
- z-index: 2;
29216
- .remove-icon {
29217
- border: 1px solid currentColor;
29218
- border-radius: 50%;
29219
- width: var(--size);
29220
- height: var(--size);
29221
- line-height: var(--remove-icon-size, 30px);
29222
- background: var(--remove-icon-background, inherit);
29223
- }
29224
- }
29225
- `,
29226
- ],
29227
- }]
29228
- }], propDecorators: { remove: [{
29229
- type: Output
29230
- }] } });
29231
-
29232
- class NodeInputsComponent {
29233
- }
29234
- NodeInputsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodeInputsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29235
- NodeInputsComponent.ɵcmp = i0.ɵɵ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, template: `
29236
- <div
29237
- *ngFor="let input of data.inputs | keyvalue : sortByIndex"
29238
- class="da-node__inputs__socket"
29239
- style=" height: var(--socket-size, 16px);"
29240
- refComponent
29241
- [data]="{
29242
- type: 'socket',
29243
- side: 'input',
29244
- key: input.key,
29245
- nodeId: data.id,
29246
- payload: input.value?.socket,
29247
- seed: seed
29248
- }"
29249
- [emit]="emit"
29250
- ></div>
29251
- `, isInline: true, directives: [{ type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4$1.KeyValuePipe }, encapsulation: i0.ViewEncapsulation.None });
29252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodeInputsComponent, decorators: [{
29326
+ class NodePortsComponent {
29327
+ }
29328
+ NodePortsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodePortsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29329
+ NodePortsComponent.ɵcmp = i0.ɵɵ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, template: `
29330
+ <div
29331
+ *ngFor="let input of data.inputs | keyvalue : sortByIndex"
29332
+ class="node-port node-port--input {{ input.value.styleClass }}"
29333
+ refComponent
29334
+ [title]="input.value.styleClass"
29335
+ [data]="{
29336
+ type: 'socket',
29337
+ side: 'input',
29338
+ key: input.key,
29339
+ nodeId: data.id,
29340
+ payload: input.value?.socket,
29341
+ seed: seed
29342
+ }"
29343
+ [emit]="emit"
29344
+ ></div>
29345
+
29346
+ <div
29347
+ *ngFor="let output of data.outputs | keyvalue : sortByIndex"
29348
+ class="node-port node-port--output {{ output.value.styleClass }}"
29349
+ refComponent
29350
+ [title]="output.value.styleClass"
29351
+ [data]="{
29352
+ type: 'socket',
29353
+ side: 'output',
29354
+ key: output.key,
29355
+ nodeId: data.id,
29356
+ payload: output.value?.socket,
29357
+ seed: seed
29358
+ }"
29359
+ [emit]="emit"
29360
+ ></div>
29361
+ `, 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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4$1.KeyValuePipe }, encapsulation: i0.ViewEncapsulation.None });
29362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodePortsComponent, decorators: [{
29253
29363
  type: Component,
29254
29364
  args: [{
29255
- selector: 'node-inputs',
29365
+ selector: 'node-ports',
29256
29366
  encapsulation: ViewEncapsulation.None,
29367
+ styleUrls: ['../styles/ports.scss'],
29257
29368
  host: {
29258
- '[class]': " 'da-node__inputs inputs-' + direction",
29369
+ class: 'node-ports',
29370
+ '[class]': "'node-ports--inputs--' + inputsDirection + ' ' + 'node-ports--outputs--' + outputsDirection "
29259
29371
  },
29260
29372
  template: `
29261
- <div
29262
- *ngFor="let input of data.inputs | keyvalue : sortByIndex"
29263
- class="da-node__inputs__socket"
29264
- style=" height: var(--socket-size, 16px);"
29265
- refComponent
29266
- [data]="{
29267
- type: 'socket',
29268
- side: 'input',
29269
- key: input.key,
29270
- nodeId: data.id,
29271
- payload: input.value?.socket,
29272
- seed: seed
29273
- }"
29274
- [emit]="emit"
29275
- ></div>
29276
- `,
29277
- }]
29278
- }], propDecorators: { direction: [{
29373
+ <div
29374
+ *ngFor="let input of data.inputs | keyvalue : sortByIndex"
29375
+ class="node-port node-port--input {{ input.value.styleClass }}"
29376
+ refComponent
29377
+ [title]="input.value.styleClass"
29378
+ [data]="{
29379
+ type: 'socket',
29380
+ side: 'input',
29381
+ key: input.key,
29382
+ nodeId: data.id,
29383
+ payload: input.value?.socket,
29384
+ seed: seed
29385
+ }"
29386
+ [emit]="emit"
29387
+ ></div>
29388
+
29389
+ <div
29390
+ *ngFor="let output of data.outputs | keyvalue : sortByIndex"
29391
+ class="node-port node-port--output {{ output.value.styleClass }}"
29392
+ refComponent
29393
+ [title]="output.value.styleClass"
29394
+ [data]="{
29395
+ type: 'socket',
29396
+ side: 'output',
29397
+ key: output.key,
29398
+ nodeId: data.id,
29399
+ payload: output.value?.socket,
29400
+ seed: seed
29401
+ }"
29402
+ [emit]="emit"
29403
+ ></div>
29404
+ `
29405
+ }]
29406
+ }], propDecorators: { inputsDirection: [{
29407
+ type: Input
29408
+ }], outputsDirection: [{
29279
29409
  type: Input
29280
29410
  }], data: [{
29281
29411
  type: Input
@@ -29287,64 +29417,74 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29287
29417
  type: Input
29288
29418
  }] } });
29289
29419
 
29290
- class NodeOutputsComponent {
29420
+ class RemoveButtonComponent {
29421
+ constructor() {
29422
+ this.remove = new EventEmitter();
29423
+ }
29291
29424
  }
29292
- NodeOutputsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodeOutputsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29293
- NodeOutputsComponent.ɵcmp = i0.ɵɵ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, template: `<div
29294
- class="da-node__outputs__socket"
29295
- style=" height: var(--socket-size, 16px);"
29296
- *ngFor="let output of data.outputs | keyvalue : sortByIndex"
29297
- refComponent
29298
- [data]="{
29299
- type: 'socket',
29300
- side: 'output',
29301
- key: output.key,
29302
- nodeId: data.id,
29303
- payload: output.value?.socket,
29304
- seed: seed
29305
- }"
29306
- [emit]="emit"
29307
- ></div>`, isInline: true, directives: [{ type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4$1.KeyValuePipe }, encapsulation: i0.ViewEncapsulation.None });
29308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodeOutputsComponent, decorators: [{
29425
+ RemoveButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RemoveButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29426
+ RemoveButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RemoveButtonComponent, selector: "node-remove-button", outputs: { remove: "remove" }, ngImport: i0, template: `
29427
+ <button
29428
+ mat-icon-button
29429
+ (click)="remove.emit()"
29430
+ (pointerdown)="$event.stopPropagation()"
29431
+ (dblclick)="$event.stopPropagation()"
29432
+ class="remove-icon"
29433
+ >
29434
+ <mat-icon>close</mat-icon>
29435
+ </button>
29436
+ `, 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$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$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
29437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RemoveButtonComponent, decorators: [{
29309
29438
  type: Component,
29310
29439
  args: [{
29311
- selector: 'node-outputs',
29312
- encapsulation: ViewEncapsulation.None,
29313
- host: {
29314
- '[class]': " 'da-node__outputs outputs-' + direction",
29315
- },
29316
- template: `<div
29317
- class="da-node__outputs__socket"
29318
- style=" height: var(--socket-size, 16px);"
29319
- *ngFor="let output of data.outputs | keyvalue : sortByIndex"
29320
- refComponent
29321
- [data]="{
29322
- type: 'socket',
29323
- side: 'output',
29324
- key: output.key,
29325
- nodeId: data.id,
29326
- payload: output.value?.socket,
29327
- seed: seed
29328
- }"
29329
- [emit]="emit"
29330
- ></div>`,
29440
+ selector: 'node-remove-button',
29441
+ template: `
29442
+ <button
29443
+ mat-icon-button
29444
+ (click)="remove.emit()"
29445
+ (pointerdown)="$event.stopPropagation()"
29446
+ (dblclick)="$event.stopPropagation()"
29447
+ class="remove-icon"
29448
+ >
29449
+ <mat-icon>close</mat-icon>
29450
+ </button>
29451
+ `,
29452
+ styles: [
29453
+ `
29454
+ :host {
29455
+ --size: var(--remove-icon-size, 30px);
29456
+ position: var(--remove-icon-position, absolute);
29457
+ inset: var(--remove-icon-inset, 0 0 auto auto);
29458
+ opacity: var(--remove-icon-opacity, 0);
29459
+ background: var(--remove-icon-background, #fff);
29460
+ width: var(--size);
29461
+ height: var(--size);
29462
+ line-height: var(var(--remove-icon-size), calc(var(--size) - 6));
29463
+ border-radius: var(--remove-icon-radius, 50%);
29464
+ z-index: 2;
29465
+ .remove-icon {
29466
+ border: 1px solid currentColor;
29467
+ border-radius: var(--remove-icon-radius, 50%);
29468
+ width: var(--size);
29469
+ height: var(--size);
29470
+ line-height: var(--remove-icon-size, 24px);
29471
+ background: var(--remove-icon-background, #fff);
29472
+ display: flex;
29473
+ align-items: center;
29474
+ justify-content: center;
29475
+ }
29476
+ }
29477
+ `
29478
+ ]
29331
29479
  }]
29332
- }], propDecorators: { direction: [{
29333
- type: Input
29334
- }], data: [{
29335
- type: Input
29336
- }], seed: [{
29337
- type: Input
29338
- }], emit: [{
29339
- type: Input
29340
- }], sortByIndex: [{
29341
- type: Input
29480
+ }], propDecorators: { remove: [{
29481
+ type: Output
29342
29482
  }] } });
29343
29483
 
29344
29484
  class CircleNodeComponent extends BaseNodeComponent {
29345
29485
  }
29346
29486
  CircleNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CircleNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29347
- CircleNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CircleNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe } });
29487
+ CircleNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CircleNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe } });
29348
29488
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CircleNodeComponent, decorators: [{
29349
29489
  type: Component,
29350
29490
  args: [{
@@ -29353,6 +29493,95 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29353
29493
  }]
29354
29494
  }] });
29355
29495
 
29496
+ class ConnectionLabelComponent {
29497
+ constructor(_zone) {
29498
+ this._zone = _zone;
29499
+ this.transformStyle = '';
29500
+ this.observer = new MutationObserver(() => {
29501
+ this.calculatePosition();
29502
+ });
29503
+ }
29504
+ ngAfterViewInit() {
29505
+ if (!this.path) {
29506
+ return;
29507
+ }
29508
+ this._zone.runOutsideAngular(() => {
29509
+ this.observer.observe(this.path, {
29510
+ attributes: true
29511
+ });
29512
+ });
29513
+ }
29514
+ ngOnDestroy() {
29515
+ this.observer.disconnect();
29516
+ }
29517
+ calculatePosition() {
29518
+ const positionPoint = this._getPositionPoint();
29519
+ this.labelContainer.nativeElement.style.transform = `translate(${positionPoint.x}px, ${positionPoint.y}px)`;
29520
+ }
29521
+ _getPositionPoint() {
29522
+ const pathLength = this.path.getTotalLength();
29523
+ const textWidth = 12 * `${this.text}`.length;
29524
+ return this.position === 'center'
29525
+ ? this.path.getPointAtLength(pathLength / 2)
29526
+ : this.path.getPointAtLength((this.position === 'start' ? 0 : pathLength) +
29527
+ (this.position === 'end' ? -1 : 1) * (textWidth / 2 + 20));
29528
+ }
29529
+ }
29530
+ ConnectionLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConnectionLabelComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
29531
+ ConnectionLabelComponent.ɵcmp = i0.ɵɵ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, template: ` <div
29532
+ #labelContainer
29533
+ [ngStyle]="{
29534
+ position: 'absolute',
29535
+ top: '0',
29536
+ left: '0',
29537
+ zIndex: ' var(--label-z-index, -1)'
29538
+ }"
29539
+ >
29540
+ <div [ngClass]="{ 'label-text': !!text }">{{ text }}</div>
29541
+ </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$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
29542
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConnectionLabelComponent, decorators: [{
29543
+ type: Component,
29544
+ args: [{
29545
+ selector: 'app-connection-label',
29546
+ template: ` <div
29547
+ #labelContainer
29548
+ [ngStyle]="{
29549
+ position: 'absolute',
29550
+ top: '0',
29551
+ left: '0',
29552
+ zIndex: ' var(--label-z-index, -1)'
29553
+ }"
29554
+ >
29555
+ <div [ngClass]="{ 'label-text': !!text }">{{ text }}</div>
29556
+ </div>`,
29557
+ styles: [
29558
+ `
29559
+ .label-text {
29560
+ position: absolute;
29561
+ transform: translate(-50%, -50%);
29562
+ background: var(--c-label-background, #fff);
29563
+ color: var(--c-label-color, #333);
29564
+ border-radius: var(--c-label-radius, 2em);
29565
+ padding: var(--c-label-padding, 0.2em 0.6em);
29566
+ font-size: var(--c-label-size, 0.7rem);
29567
+ border: var(--c-label-border, 1px solid var(--path-color, #1b3e7f));
29568
+ z-index: var(--c-label-z-index, 0);
29569
+ white-space: pre;
29570
+ }
29571
+ `
29572
+ ]
29573
+ }]
29574
+ }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { path: [{
29575
+ type: Input
29576
+ }], position: [{
29577
+ type: Input
29578
+ }], text: [{
29579
+ type: Input
29580
+ }], labelContainer: [{
29581
+ type: ViewChild,
29582
+ args: ['labelContainer', { static: true }]
29583
+ }] } });
29584
+
29356
29585
  class StatusIconComponent {
29357
29586
  getIcon() {
29358
29587
  switch (this.status) {
@@ -29420,7 +29649,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29420
29649
  class ContentNodeComponent extends BaseNodeComponent {
29421
29650
  }
29422
29651
  ContentNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ContentNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29423
- ContentNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ContentNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29652
+ ContentNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ContentNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29424
29653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ContentNodeComponent, decorators: [{
29425
29654
  type: Component,
29426
29655
  args: [{
@@ -29430,81 +29659,354 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29430
29659
  }] });
29431
29660
 
29432
29661
  class CustomConnectionComponent extends ConnectionComponent {
29662
+ get pathNative() {
29663
+ var _a;
29664
+ return (_a = this.pathElement) === null || _a === void 0 ? void 0 : _a.nativeElement;
29665
+ }
29666
+ get labelText() {
29667
+ var _a, _b, _c;
29668
+ return typeof ((_a = this.data) === null || _a === void 0 ? void 0 : _a.label) === 'string'
29669
+ ? (_b = this.data) === null || _b === void 0 ? void 0 : _b.label
29670
+ : (_c = this.data) === null || _c === void 0 ? void 0 : _c.label.text;
29671
+ }
29672
+ get labelPosition() {
29673
+ return typeof this.data.label === 'string'
29674
+ ? 'center'
29675
+ : this.data.label.position;
29676
+ }
29433
29677
  }
29434
29678
  CustomConnectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29435
- CustomConnectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomConnectionComponent, selector: "connection", inputs: { data: "data" }, usesInheritance: true, ngImport: i0, template: `
29436
- <svg
29437
- data-testid="connection"
29438
- style="z-index:-1"
29439
- class="{{ data?.status ? 'connection-status-' + data?.status : '' }}"
29440
- >
29441
- <path [attr.d]="path" />
29442
- </svg>
29443
- `, 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 "] });
29679
+ CustomConnectionComponent.ɵcmp = i0.ɵɵ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, template: `
29680
+ <svg
29681
+ data-testid="connection"
29682
+ style="z-index:-2"
29683
+ class="{{ data?.status ? 'connection-status-' + data?.status : '' }} {{
29684
+ data?.styleClass
29685
+ }}"
29686
+ >
29687
+ <path [attr.d]="path" #pathElement />
29688
+ </svg>
29689
+ <app-connection-label
29690
+ *ngIf="data?.label && pathNative"
29691
+ [path]="pathNative"
29692
+ [text]="labelText"
29693
+ [position]="labelPosition"
29694
+ ></app-connection-label>
29695
+ `, 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29444
29696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomConnectionComponent, decorators: [{
29445
29697
  type: Component,
29446
29698
  args: [{
29447
29699
  selector: 'connection',
29448
29700
  styles: [
29449
29701
  `
29450
- svg {
29451
- overflow: visible;
29452
- position: absolute;
29453
- pointer-events: none;
29454
- path {
29455
- fill: none;
29456
- stroke-width: 2px;
29457
- stroke: var(--path-color, #1b3e7f);
29458
- pointer-events: auto;
29459
- }
29460
- }
29461
- `,
29702
+ svg {
29703
+ overflow: visible;
29704
+ position: absolute;
29705
+ pointer-events: none;
29706
+ path {
29707
+ fill: none;
29708
+ stroke-width: 2px;
29709
+ stroke: var(--path-color, #1b3e7f);
29710
+ pointer-events: auto;
29711
+ }
29712
+ }
29713
+ `
29462
29714
  ],
29463
29715
  template: `
29464
- <svg
29465
- data-testid="connection"
29466
- style="z-index:-1"
29467
- class="{{ data?.status ? 'connection-status-' + data?.status : '' }}"
29468
- >
29469
- <path [attr.d]="path" />
29470
- </svg>
29471
- `,
29472
- }]
29473
- }], propDecorators: { data: [{
29716
+ <svg
29717
+ data-testid="connection"
29718
+ style="z-index:-2"
29719
+ class="{{ data?.status ? 'connection-status-' + data?.status : '' }} {{
29720
+ data?.styleClass
29721
+ }}"
29722
+ >
29723
+ <path [attr.d]="path" #pathElement />
29724
+ </svg>
29725
+ <app-connection-label
29726
+ *ngIf="data?.label && pathNative"
29727
+ [path]="pathNative"
29728
+ [text]="labelText"
29729
+ [position]="labelPosition"
29730
+ ></app-connection-label>
29731
+ `
29732
+ }]
29733
+ }], propDecorators: { pathElement: [{
29734
+ type: ViewChild,
29735
+ args: ['pathElement', { static: true }]
29736
+ }], data: [{
29474
29737
  type: Input
29475
29738
  }] } });
29476
29739
 
29477
29740
  class CustomSocketComponent extends SocketComponent {
29478
29741
  }
29479
29742
  CustomSocketComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomSocketComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29480
- CustomSocketComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomSocketComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, 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 "] });
29743
+ CustomSocketComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomSocketComponent, selector: "ng-component", host: { properties: { "class": "data?.styleClass" } }, usesInheritance: true, ngImport: i0, 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"] });
29481
29744
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CustomSocketComponent, decorators: [{
29482
29745
  type: Component,
29483
29746
  args: [{
29484
29747
  template: ``,
29485
29748
  styles: [
29486
29749
  `
29487
- :host {
29488
- display: inline-block;
29489
- cursor: pointer;
29490
- border: 1px solid var(--primary-color, #1b3e7f);
29491
- width: var(--socket-size, 16px);
29492
- height: var(--socket-size, 16px);
29493
- vertical-align: middle;
29494
- background: white;
29495
- z-index: 2;
29496
- box-sizing: border-box;
29497
- opacity: var(--socket-opacity, 0);
29498
- border-radius: var(--socket-radius, 50%);
29499
- &:hover {
29500
- box-shadow: 0 0 0 1px var(--primary-color, #1b3e7f);
29501
- }
29502
- }
29503
- `,
29750
+ :host {
29751
+ display: inline-block;
29752
+ cursor: pointer;
29753
+ border: 1px solid var(--primary-color, #1b3e7f);
29754
+ width: var(--socket-size, 16px);
29755
+ height: var(--socket-size, 16px);
29756
+ vertical-align: var(--socket-vertical-align, top);
29757
+ background: white;
29758
+ z-index: 2;
29759
+ box-sizing: border-box;
29760
+ opacity: var(--socket-opacity, 0);
29761
+ border-radius: var(--socket-radius, 0);
29762
+ &:hover {
29763
+ box-shadow: 0 0 0 1px var(--primary-color, #1b3e7f);
29764
+ }
29765
+ }
29766
+ `
29504
29767
  ],
29768
+ host: {
29769
+ '[class]': 'data?.styleClass'
29770
+ }
29771
+ }]
29772
+ }] });
29773
+
29774
+ class GatewayPortsComponent {
29775
+ }
29776
+ GatewayPortsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GatewayPortsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29777
+ GatewayPortsComponent.ɵcmp = i0.ɵɵ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, template: `
29778
+ <div
29779
+ *ngFor="let input of data.inputs | keyvalue : sortByIndex"
29780
+ class="gateway-port gateway-port--input {{ input.value.styleClass }}"
29781
+ refComponent
29782
+ [data]="{
29783
+ type: 'socket',
29784
+ side: 'input',
29785
+ key: input.key,
29786
+ nodeId: data.id,
29787
+ payload: input.value?.socket,
29788
+ seed: seed
29789
+ }"
29790
+ [emit]="emit"
29791
+ ></div>
29792
+
29793
+ <div
29794
+ *ngFor="let output of data.outputs | keyvalue : sortByIndex"
29795
+ class="gateway-port gateway-port--output {{ output.value.styleClass }}"
29796
+ refComponent
29797
+ [data]="{
29798
+ type: 'socket',
29799
+ side: 'output',
29800
+ key: output.key,
29801
+ nodeId: data.id,
29802
+ payload: output.value?.socket,
29803
+ seed: seed
29804
+ }"
29805
+ [emit]="emit"
29806
+ ></div>
29807
+ `, 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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4$1.KeyValuePipe }, encapsulation: i0.ViewEncapsulation.None });
29808
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GatewayPortsComponent, decorators: [{
29809
+ type: Component,
29810
+ args: [{
29811
+ selector: 'gateway-ports',
29812
+ encapsulation: ViewEncapsulation.None,
29813
+ template: `
29814
+ <div
29815
+ *ngFor="let input of data.inputs | keyvalue : sortByIndex"
29816
+ class="gateway-port gateway-port--input {{ input.value.styleClass }}"
29817
+ refComponent
29818
+ [data]="{
29819
+ type: 'socket',
29820
+ side: 'input',
29821
+ key: input.key,
29822
+ nodeId: data.id,
29823
+ payload: input.value?.socket,
29824
+ seed: seed
29825
+ }"
29826
+ [emit]="emit"
29827
+ ></div>
29828
+
29829
+ <div
29830
+ *ngFor="let output of data.outputs | keyvalue : sortByIndex"
29831
+ class="gateway-port gateway-port--output {{ output.value.styleClass }}"
29832
+ refComponent
29833
+ [data]="{
29834
+ type: 'socket',
29835
+ side: 'output',
29836
+ key: output.key,
29837
+ nodeId: data.id,
29838
+ payload: output.value?.socket,
29839
+ seed: seed
29840
+ }"
29841
+ [emit]="emit"
29842
+ ></div>
29843
+ `,
29844
+ styles: [
29845
+ `
29846
+ .gateway-port {
29847
+ --socket-vertical-align: top;
29848
+ --width: var(--port-width, var(--socket-size, 14px));
29849
+ --height: var(--port-height, var(--socket-size, 14px));
29850
+ position: absolute;
29851
+ inset-inline: var(--port-inset-inline);
29852
+ inset-block: var(--port-inset-block);
29853
+ display: inline-block;
29854
+ width: var(--width);
29855
+ height: var(--height);
29856
+ &.input-primary-port {
29857
+ --port-inset-inline: calc(var(--width) / -2) auto;
29858
+ --port-inset-block: calc(50% - var(--height) / 2) 0;
29859
+ }
29860
+ &.output-primary-port {
29861
+ --port-inset-inline: auto calc(var(--width) / -2);
29862
+ --port-inset-block: calc(50% - var(--height) / 2) auto;
29863
+ }
29864
+ &.output-secondary-port {
29865
+ --port-inset-inline: calc(50% - var(--width) / 2) auto;
29866
+ --port-inset-block: calc(var(--height) / -2) auto;
29867
+ }
29868
+ &.output-tertiary-port {
29869
+ --port-inset-inline: calc(50% - var(--width) / 2) 0;
29870
+ --port-inset-block: auto calc(var(--height) / -2);
29871
+ }
29872
+ }
29873
+ `
29874
+ ]
29875
+ }]
29876
+ }], propDecorators: { direction: [{
29877
+ type: Input
29878
+ }], data: [{
29879
+ type: Input
29880
+ }], seed: [{
29881
+ type: Input
29882
+ }], emit: [{
29883
+ type: Input
29884
+ }], sortByIndex: [{
29885
+ type: Input
29886
+ }] } });
29887
+
29888
+ class GatewayNodeComponent extends BaseNodeComponent {
29889
+ }
29890
+ GatewayNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GatewayNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29891
+ GatewayNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GatewayNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
29892
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GatewayNodeComponent, decorators: [{
29893
+ type: Component,
29894
+ args: [{
29895
+ templateUrl: './gateway-node.component.html',
29896
+ styleUrls: ['../../styles/node.scss', './gateway-node.component.scss']
29505
29897
  }]
29506
29898
  }] });
29507
29899
 
29900
+ class NodeInputsComponent {
29901
+ }
29902
+ NodeInputsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodeInputsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29903
+ NodeInputsComponent.ɵcmp = i0.ɵɵ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, template: `
29904
+ <div
29905
+ *ngFor="let input of data.inputs | keyvalue : sortByIndex"
29906
+ class="node-ports__port {{ input.value.styleClass }}"
29907
+ refComponent
29908
+ [data]="{
29909
+ type: 'socket',
29910
+ side: 'input',
29911
+ key: input.key,
29912
+ nodeId: data.id,
29913
+ payload: input.value?.socket,
29914
+ seed: seed
29915
+ }"
29916
+ [emit]="emit"
29917
+ ></div>
29918
+ `, 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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4$1.KeyValuePipe }, encapsulation: i0.ViewEncapsulation.None });
29919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodeInputsComponent, decorators: [{
29920
+ type: Component,
29921
+ args: [{
29922
+ selector: 'node-inputs',
29923
+ encapsulation: ViewEncapsulation.None,
29924
+ styleUrls: ['../styles/ports.scss'],
29925
+ host: {
29926
+ '[class]': " 'node-ports node-ports--inputs node-ports--' + direction"
29927
+ },
29928
+ template: `
29929
+ <div
29930
+ *ngFor="let input of data.inputs | keyvalue : sortByIndex"
29931
+ class="node-ports__port {{ input.value.styleClass }}"
29932
+ refComponent
29933
+ [data]="{
29934
+ type: 'socket',
29935
+ side: 'input',
29936
+ key: input.key,
29937
+ nodeId: data.id,
29938
+ payload: input.value?.socket,
29939
+ seed: seed
29940
+ }"
29941
+ [emit]="emit"
29942
+ ></div>
29943
+ `
29944
+ }]
29945
+ }], propDecorators: { direction: [{
29946
+ type: Input
29947
+ }], data: [{
29948
+ type: Input
29949
+ }], seed: [{
29950
+ type: Input
29951
+ }], emit: [{
29952
+ type: Input
29953
+ }], sortByIndex: [{
29954
+ type: Input
29955
+ }] } });
29956
+
29957
+ class NodeOutputsComponent {
29958
+ }
29959
+ NodeOutputsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodeOutputsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29960
+ NodeOutputsComponent.ɵcmp = i0.ɵɵ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, template: `<div
29961
+ class="node-ports__port {{ output.value.styleClass }}"
29962
+ *ngFor="let output of data.outputs | keyvalue : sortByIndex"
29963
+ refComponent
29964
+ [data]="{
29965
+ type: 'socket',
29966
+ side: 'output',
29967
+ key: output.key,
29968
+ nodeId: data.id,
29969
+ payload: output.value?.socket,
29970
+ seed: seed
29971
+ }"
29972
+ [emit]="emit"
29973
+ ></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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$8.RefDirective, selector: "[refComponent]", inputs: ["data", "emit"] }], pipes: { "keyvalue": i4$1.KeyValuePipe }, encapsulation: i0.ViewEncapsulation.None });
29974
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NodeOutputsComponent, decorators: [{
29975
+ type: Component,
29976
+ args: [{
29977
+ selector: 'node-outputs',
29978
+ encapsulation: ViewEncapsulation.None,
29979
+ styleUrls: ['../styles/ports.scss'],
29980
+ host: {
29981
+ '[class]': " 'node-ports node-ports--outputs node-ports--' + direction"
29982
+ },
29983
+ template: `<div
29984
+ class="node-ports__port {{ output.value.styleClass }}"
29985
+ *ngFor="let output of data.outputs | keyvalue : sortByIndex"
29986
+ refComponent
29987
+ [data]="{
29988
+ type: 'socket',
29989
+ side: 'output',
29990
+ key: output.key,
29991
+ nodeId: data.id,
29992
+ payload: output.value?.socket,
29993
+ seed: seed
29994
+ }"
29995
+ [emit]="emit"
29996
+ ></div>`
29997
+ }]
29998
+ }], propDecorators: { direction: [{
29999
+ type: Input
30000
+ }], data: [{
30001
+ type: Input
30002
+ }], seed: [{
30003
+ type: Input
30004
+ }], emit: [{
30005
+ type: Input
30006
+ }], sortByIndex: [{
30007
+ type: Input
30008
+ }] } });
30009
+
29508
30010
  class TemplateNodeComponent extends BaseNodeComponent {
29509
30011
  ngOnInit() { }
29510
30012
  get templateOutletContext() {
@@ -29521,7 +30023,7 @@ class TemplateNodeComponent extends BaseNodeComponent {
29521
30023
  }
29522
30024
  }
29523
30025
  TemplateNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TemplateNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29524
- TemplateNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TemplateNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
30026
+ TemplateNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TemplateNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
29525
30027
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TemplateNodeComponent, decorators: [{
29526
30028
  type: Component,
29527
30029
  args: [{
@@ -29627,8 +30129,7 @@ class DiagramDirective {
29627
30129
  return __awaiter(this, void 0, void 0, function* () {
29628
30130
  this._appendZoomComponent();
29629
30131
  try {
29630
- const editor = yield createDiagramEditor(this._elementRef.nativeElement, this._injector, this.config //TODO it's Should be merged with DIAGRAM_DEFAULT_OPTIONS
29631
- );
30132
+ const editor = yield createDiagramEditor(this._elementRef.nativeElement, this._injector, this.config);
29632
30133
  this._pluginsService.setPlugins(editor);
29633
30134
  this._diagramService.setEditor(editor);
29634
30135
  this.diagramEditor = editor;
@@ -29640,12 +30141,16 @@ class DiagramDirective {
29640
30141
  });
29641
30142
  }
29642
30143
  _appendStyles() {
30144
+ var _a, _b;
29643
30145
  const _requiredStyles = {
29644
30146
  position: 'var(--diagram-position, relative)',
29645
30147
  width: `var(--diagram-width, ${this.width})`,
29646
30148
  height: `var(--diagram-height, ${this.height})`,
29647
- direction: 'ltr',
30149
+ direction: 'ltr'
29648
30150
  };
30151
+ if ((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.readonly) === null || _b === void 0 ? void 0 : _b.active) {
30152
+ this._elementRef.nativeElement.style.setProperty('--port-offset', 'var(--custom-diagram-port-offset , calc(50% - 8px))');
30153
+ }
29649
30154
  Object.entries(_requiredStyles).forEach(([key, value]) => {
29650
30155
  this._renderer.setStyle(this._elementRef.nativeElement, key, value);
29651
30156
  });
@@ -29657,7 +30162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29657
30162
  type: Directive,
29658
30163
  args: [{
29659
30164
  selector: '[appDiagram]',
29660
- exportAs: 'diagram',
30165
+ exportAs: 'diagram'
29661
30166
  }]
29662
30167
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: DiagramService }, { type: DiagramPluginsService }]; }, propDecorators: { height: [{
29663
30168
  type: Input
@@ -29685,7 +30190,11 @@ DiagramsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
29685
30190
  NodeIconComponent,
29686
30191
  StatusIconComponent,
29687
30192
  NodeInputsComponent,
29688
- NodeOutputsComponent], imports: [CommonModule,
30193
+ NodeOutputsComponent,
30194
+ GatewayNodeComponent,
30195
+ ConnectionLabelComponent,
30196
+ NodePortsComponent,
30197
+ GatewayPortsComponent], imports: [CommonModule,
29689
30198
  ReteModule,
29690
30199
  MatButtonModule,
29691
30200
  MatIconModule,
@@ -29699,7 +30208,7 @@ DiagramsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
29699
30208
  MatIconModule,
29700
30209
  FormsModule,
29701
30210
  TranslateModule,
29702
- MatTooltipModule,
30211
+ MatTooltipModule
29703
30212
  ]] });
29704
30213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DiagramsModule, decorators: [{
29705
30214
  type: NgModule,
@@ -29717,6 +30226,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29717
30226
  StatusIconComponent,
29718
30227
  NodeInputsComponent,
29719
30228
  NodeOutputsComponent,
30229
+ GatewayNodeComponent,
30230
+ ConnectionLabelComponent,
30231
+ NodePortsComponent,
30232
+ GatewayPortsComponent
29720
30233
  ],
29721
30234
  imports: [
29722
30235
  CommonModule,
@@ -29725,10 +30238,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29725
30238
  MatIconModule,
29726
30239
  FormsModule,
29727
30240
  TranslateModule,
29728
- MatTooltipModule,
30241
+ MatTooltipModule
29729
30242
  ],
29730
30243
  exports: [DiagramDirective, ZoomControlComponent],
29731
- providers: [DiagramService, DiagramPluginsService, WorkflowService],
30244
+ providers: [DiagramService, DiagramPluginsService, WorkflowService]
29732
30245
  }]
29733
30246
  }] });
29734
30247
 
@@ -31762,5 +32275,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
31762
32275
  * Generated bundle index. Do not edit.
31763
32276
  */
31764
32277
 
31765
- export { ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AvatarComponent, AvatarModule, BaseColumnComponent, BaseComponent, BaseDialogComponent, BaseNodeClass, BaseSelector, BaseService, BooleanViewerComponent, ButtonComponent, CachingExpiryUnit, CallApiService, CardComponent, CardModule, ChartDataService, CircleNode, CircleNodeComponent, ClickOutsideDirective, ClipboardComponent, CommentApiService, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, Connection, ContentActionType, ContentNode, ContentNodeComponent, CopyComponent, CorrespondenceRelationComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomConnectionComponent, CustomDocumentViewerComponent, CustomPpViewerComponent, CustomSocketComponent, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DIAGRAM_DEFAULT_OPTIONS, DIAGRAM_HEIGHT, DataViewerComponent, DateFormatterService, DateHelperService, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DestroySubject$1 as DestroySubject, DiagramDirective, DiagramPluginsService, DiagramService, DiagramsModule, DialogMangmentService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicSingleChartComponent, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicViewModule, ENTITY_TYPE, EXTENSION_JSONS, EnvManager, EvaluatorsService, ExtensionLoaderService, ExtensionService, FILTER_DATES_TYPE, FileGridInfiniteScrollDirective, FileManagerAbstract, FileManagerAdapter, FileManagerPaginationConfig, FileManagerService, FileMangerModule, FileSizePipe, FilterComponent, FilterModule, FolderModalComponent, FolderishType, FormBuilderService, GlobalAdminService, GlobalPdfTron, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, IN_OUT_DIRECTION, IconService, InitializationService, ItemListComponent, Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService, LocalizedDatePipe, MESSAGE_TYPE, MY_MOMENT_FORMATS, MainfolderService, MessageService, MomentDateAdapter, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NODE_CIRCLE_SIZE, NODE_HEIGHT, NODE_MARGIN, NODE_STATUS, NODE_TYPE, NODE_WIDTH, NOTIFICATIONS_LIST_OPTIONS, NOTIFICATION_ICON, NOTIFICATION_ITEM, NOTIFICATION_STATUS, NOTIFY_EVENT, NdfConfirmationDialogComponent, NdfNuxeoDialog, NgxHijriGregorianDatepickerModule, NoDataComponent, NodeIconComponent, NodeInputsComponent, NodeOutputsComponent, NotificationIconDirective, NotificationItemComponent, NotificationItemDirective, NotificationSourceSelectComponent, NotificationStatusToggleComponent, NotificationToastComponent, NotificationsButtonComponent, NotificationsDateSelectComponent, NotificationsListComponent, NotificationsListContainerComponent, NotificationsModule, NotificationsService, NotificationsSettingsContainerComponent, NuxeoCoreModule, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoDialogModule, NuxeoDialogService, NuxeoMapper, NuxeoService, PAGINATION_MODE, PANEL_MODE, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PublishDialogComponent, PublishingDocumentService, ReadMoreComponent, RecentlyViewedService, RemoveButtonComponent, RenameComponent, RolesService, SOCKET_WIDTH, SUBSCRIPTION_STATE, SafeHtmlPipe, ScanComponent, ScanModalComponent, SearchAutocompleteComponent, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SingleActivityComponent, Socket, SpinnerComponent, StatusIconComponent, TRANSLATION_PROVIDER, TableComponent, TableModule, TagsApiService, TemplateModalComponent, TemplateNode, TemplateNodeComponent, TimeAgoPipe, ToastsModule, TransferDocComponent, TranslateLoaderService, TranslatedVocabularySelectComponent, TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UserCardComponent, UserComponent, UserModule, UserPreferenceValues, UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, UtilityService, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService, VocabularyComponent, VocabularyModule, WorkflowService, ZoomControlComponent, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getConnections, getValue, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, removeConnections, removeNode, removeNodeAndConnections, serializeControl, serializePort, sortByOrder };
32278
+ export { ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AvatarComponent, AvatarModule, BaseColumnComponent, BaseComponent, BaseDialogComponent, BaseNodeClass, BaseSelector, BaseService, BooleanViewerComponent, ButtonComponent, CachingExpiryUnit, CallApiService, CardComponent, CardModule, ChartDataService, CircleNode, CircleNodeComponent, ClickOutsideDirective, ClipboardComponent, CommentApiService, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, Connection, ConnectionLabelComponent, ContentActionType, ContentNode, ContentNodeComponent, CopyComponent, CorrespondenceRelationComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomConnectionComponent, CustomDocumentViewerComponent, CustomPpViewerComponent, CustomSocketComponent, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DIAGRAM_DEFAULT_OPTIONS, DIAGRAM_HEIGHT, DataViewerComponent, DateFormatterService, DateHelperService, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DestroySubject$1 as DestroySubject, DiagramDirective, DiagramPluginsService, DiagramService, DiagramUtils, DiagramsModule, DialogMangmentService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicSingleChartComponent, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicViewModule, ENTITY_TYPE, EXTENSION_JSONS, EnvManager, EvaluatorsService, ExtensionLoaderService, ExtensionService, FILTER_DATES_TYPE, FileGridInfiniteScrollDirective, FileManagerAbstract, FileManagerAdapter, FileManagerPaginationConfig, FileManagerService, FileMangerModule, FileSizePipe, FilterComponent, FilterModule, FolderModalComponent, FolderishType, FormBuilderService, GatewayNodeComponent, GatewayPortsComponent, GlobalAdminService, GlobalPdfTron, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, IN_OUT_DIRECTION, IconService, InitializationService, InputPort, ItemListComponent, Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService, LocalizedDatePipe, MESSAGE_TYPE, MY_MOMENT_FORMATS, MainfolderService, MessageService, MomentDateAdapter, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NODE_CIRCLE_SIZE, NODE_GATEWAY_SIZE, NODE_HEIGHT, NODE_MARGIN, NODE_STATUS, NODE_TYPE, NODE_WIDTH, NOTIFICATIONS_LIST_OPTIONS, NOTIFICATION_ICON, NOTIFICATION_ITEM, NOTIFICATION_STATUS, NOTIFY_EVENT, NdfConfirmationDialogComponent, NdfNuxeoDialog, NgxHijriGregorianDatepickerModule, NoDataComponent, NodeIconComponent, NodeInputsComponent, NodeOutputsComponent, NodePortsComponent, NotificationIconDirective, NotificationItemComponent, NotificationItemDirective, NotificationSourceSelectComponent, NotificationStatusToggleComponent, NotificationToastComponent, NotificationsButtonComponent, NotificationsDateSelectComponent, NotificationsListComponent, NotificationsListContainerComponent, NotificationsModule, NotificationsService, NotificationsSettingsContainerComponent, NuxeoCoreModule, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoDialogModule, NuxeoDialogService, NuxeoMapper, NuxeoService, OutputPort, PAGINATION_MODE, PANEL_MODE, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PublishDialogComponent, PublishingDocumentService, ReadMoreComponent, RecentlyViewedService, RemoveButtonComponent, RenameComponent, RolesService, SOCKET_WIDTH, SUBSCRIPTION_STATE, SafeHtmlPipe, ScanComponent, ScanModalComponent, SearchAutocompleteComponent, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SingleActivityComponent, Socket, SpinnerComponent, StatusIconComponent, TRANSLATION_PROVIDER, TableComponent, TableModule, TagsApiService, TemplateModalComponent, TemplateNode, TemplateNodeComponent, TimeAgoPipe, ToastsModule, TransferDocComponent, TranslateLoaderService, TranslatedVocabularySelectComponent, TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UserCardComponent, UserComponent, UserModule, UserPreferenceValues, UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, UtilityService, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService, VocabularyComponent, VocabularyModule, WorkflowService, ZoomControlComponent, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getConnections, getRandomNumber, getValue, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, removeConnections, removeNode, removeNodeAndConnections, serializeControl, serializePort, sortByOrder };
31766
32279
  //# sourceMappingURL=nuxeo-development-framework.js.map