@bizdoc/core 1.14.14 → 1.14.15

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.
@@ -5,7 +5,7 @@ import { OverlayRef, OverlayConfig, OverlayModule, CdkScrollable } from '@angula
5
5
  import { ComponentPortal, PortalModule, TemplatePortal } from '@angular/cdk/portal';
6
6
  import { trigger, state, style, transition, animate, query, stagger, animateChild, keyframes } from '@angular/animations';
7
7
  import { ESCAPE, RIGHT_ARROW, LEFT_ARROW, ENTER, COMMA, UP_ARROW, DOWN_ARROW, SEMICOLON } from '@angular/cdk/keycodes';
8
- import { Subject, Observable, of, fromEvent, forkJoin, interval, takeWhile, tap as tap$1, BehaviorSubject, filter as filter$1, debounceTime as debounceTime$1, takeUntil as takeUntil$1, from, merge, map as map$1, throwError, first as first$1, switchMap as switchMap$1, isObservable, EMPTY } from 'rxjs';
8
+ import { Subject, Observable, of, fromEvent, forkJoin, interval, takeWhile, tap as tap$1, BehaviorSubject, filter as filter$1, debounceTime as debounceTime$1, takeUntil as takeUntil$1, from, merge, map as map$1, first as first$1, throwError, switchMap as switchMap$1, isObservable, EMPTY } from 'rxjs';
9
9
  import { map, tap, filter, switchMap, takeUntil, shareReplay, debounceTime, take, first, catchError, startWith, finalize } from 'rxjs/operators';
10
10
  import { HubConnectionBuilder, HubConnectionState } from '@microsoft/signalr';
11
11
  import dayjs from 'dayjs';
@@ -131,7 +131,7 @@ import * as i9$5 from '@syncfusion/ej2-angular-spreadsheet';
131
131
  import { Spreadsheet, isNumber, SpreadsheetModule, SelectionService as SelectionService$2, BasicModuleService, ClipboardService, CellFormatService, KeyboardNavigationService, KeyboardShortcutService, NumberFormatService } from '@syncfusion/ej2-angular-spreadsheet';
132
132
  import * as i4 from '@ctrl/ngx-emoji-mart';
133
133
  import { PickerModule } from '@ctrl/ngx-emoji-mart';
134
- import { Diagram, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, SymbolPalette, BpmnDiagrams, PortVisibility, PortConstraints, DiagramConstraints, DiagramTools, SelectorConstraints, NodeConstraints, ConnectorConstraints, Connector, Node, ConnectionPointOrigin, SnapConstraints, ComplexHierarchicalTreeService, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService, ComplexHierarchicalTree, DataBinding, LineDistribution, ToolBase } from '@syncfusion/ej2-angular-diagrams';
134
+ import { Diagram, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, SymbolPalette, BpmnDiagrams, PortVisibility, PortConstraints, DiagramConstraints, SelectorConstraints, NodeConstraints, ConnectorConstraints, DiagramTools, Connector, Node, ConnectionPointOrigin, SnapConstraints, ComplexHierarchicalTreeService, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService, ComplexHierarchicalTree, DataBinding, LineDistribution, ToolBase } from '@syncfusion/ej2-angular-diagrams';
135
135
  import * as i9$3 from '@syncfusion/ej2-angular-schedule';
136
136
  import { Schedule, Day, WorkWeek, Month, MonthAgenda, Agenda, Year, ScheduleModule, ExcelExportService as ExcelExportService$2, DayService, WorkWeekService, MonthService, MonthAgendaService, ICalendarExportService, AgendaService, YearService } from '@syncfusion/ej2-angular-schedule';
137
137
  import * as i10$1 from '@syncfusion/ej2-angular-kanban';
@@ -13313,8 +13313,8 @@ class WorkflowNodeComponent {
13313
13313
  this._pane = _pane;
13314
13314
  this.change = new EventEmitter();
13315
13315
  this.connector = this._fb.group({
13316
- action: '',
13317
- case: ''
13316
+ action: null,
13317
+ case: null
13318
13318
  });
13319
13319
  this._elementDestroy = new Subject();
13320
13320
  this.actions = _session.profile.actions;
@@ -13340,25 +13340,24 @@ class WorkflowNodeComponent {
13340
13340
  this._pane.icon = 'link';
13341
13341
  this.connector.valueChanges.pipe(takeUntil$1(this._elementDestroy)).subscribe(v => {
13342
13342
  const content = v['case'] || v['action'];
13343
- this.connectors.forEach(c => {
13344
- if (!c.addInfo)
13345
- c.addInfo = this.connector.getRawValue();
13346
- else
13347
- Object.assign(c.addInfo, this.connector.getRawValue());
13348
- cleanup(c.addInfo);
13349
- if (!c.annotations.length)
13350
- c.annotations.push({
13343
+ if (!connector.addInfo)
13344
+ connector.addInfo = this.connector.getRawValue();
13345
+ else
13346
+ Object.assign(connector.addInfo, this.connector.getRawValue());
13347
+ cleanup(connector.addInfo);
13348
+ if (connector.annotations.length) {
13349
+ connector.annotations[0].content = content;
13350
+ this.diagram.dataBind();
13351
+ }
13352
+ else
13353
+ this.diagram.addConnectorLabels(connector, [{
13351
13354
  style: {
13352
13355
  color: this._session.theme.dark ? 'white' : 'black',
13353
13356
  fill: 'transparent',
13354
13357
  opacity: .8,
13355
13358
  },
13356
13359
  content
13357
- });
13358
- else
13359
- c.annotations[0].content = content;
13360
- });
13361
- this.diagram.dataBind();
13360
+ }]);
13362
13361
  this.change.emit();
13363
13362
  });
13364
13363
  this.argumentstemplate.createEmbeddedView(this.connectorargs);
@@ -13372,21 +13371,22 @@ class WorkflowNodeComponent {
13372
13371
  const annotationArg = tool.arguments.find(a => a.diagram);
13373
13372
  function change(m) {
13374
13373
  if (annotationArg && m[annotationArg.name] !== null) {
13375
- if (node.annotations.length)
13374
+ if (node.annotations.length) {
13376
13375
  node.annotations[0].content = m[annotationArg.name] || null;
13376
+ this.diagram.dataBind();
13377
+ }
13377
13378
  else
13378
- node.annotations.push({
13379
- style: {
13380
- color: this._session.theme.dark ? 'white' : 'black',
13381
- fill: 'transparent',
13382
- opacity: .8,
13383
- },
13384
- content: m[annotationArg.name] || null
13385
- });
13379
+ this.diagram.addNodeLabels(node, [{
13380
+ style: {
13381
+ color: this._session.theme.dark ? 'white' : 'black',
13382
+ fill: 'transparent',
13383
+ opacity: .8,
13384
+ },
13385
+ content: m[annotationArg.name] || null
13386
+ }]);
13386
13387
  }
13387
13388
  Object.assign(addInfo, m);
13388
13389
  cleanup(addInfo);
13389
- this.diagram.dataBind();
13390
13390
  this.change.emit();
13391
13391
  }
13392
13392
  if (tool.template) {
@@ -13484,15 +13484,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
13484
13484
 
13485
13485
  Diagram.Inject(UndoRedo, ConnectorBridging, ConnectorEditing, Snapping);
13486
13486
  SymbolPalette.Inject(BpmnDiagrams);
13487
- function getPorts$1() {
13488
- const ports = [
13489
- { id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
13490
- { id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
13491
- { id: 'port3', shape: 'Circle', offset: { x: 1, y: 0.5 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
13492
- { id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw }
13493
- ];
13494
- return ports;
13495
- }
13487
+ const ports = [
13488
+ { id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
13489
+ { id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
13490
+ { id: 'port3', shape: 'Circle', offset: { x: 1, y: 0.5 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
13491
+ { id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw }
13492
+ ];
13496
13493
  function showPaletteIcon() {
13497
13494
  const paletteSpace = document.getElementById('palette-space');
13498
13495
  const isMobile = window.matchMedia('(max-width:550px)').matches;
@@ -13532,60 +13529,45 @@ class WorkflowComponent {
13532
13529
  this.dirty = false;
13533
13530
  this.palettes = [];
13534
13531
  this.diagramConstraints = DiagramConstraints.Default | DiagramConstraints.Bridging | DiagramConstraints.UserInteraction | DiagramConstraints.Zoom;
13535
- this.diagramTool = DiagramTools.Default;
13536
13532
  //SymbolPalette Properties
13537
13533
  this.symbolMargin = { left: 10, right: 10, top: 10, bottom: 10 };
13538
13534
  this.snapSettings = {
13539
- // horizontalGridlines: gridlines,
13540
- // verticalGridlines: gridlines,
13541
- // constraints: SnapConstraints.All & ~SnapConstraints.ShowLines
13535
+ snapLineColor: this._session.getAccent(100)
13542
13536
  };
13543
13537
  this.selectedItems = {
13544
- constraints: SelectorConstraints.All & ~SelectorConstraints.Rotate
13538
+ constraints: SelectorConstraints.All & ~SelectorConstraints.Rotate,
13545
13539
  };
13546
13540
  this.scrollSettings = {
13547
13541
  minZoom: .5,
13548
- maxZoom: 2.5
13549
- };
13550
- this._rulerColor = this._session.getAccent(100);
13551
- this.rulerSettings = {
13552
- horizontalRuler: { markerColor: this._rulerColor },
13553
- verticalRuler: { markerColor: this._rulerColor }
13542
+ maxZoom: 2.5,
13554
13543
  };
13544
+ this.rulerSettings = {};
13555
13545
  this._destroy = new Subject();
13556
13546
  this._nodedestroy = new Subject();
13557
13547
  this.nodeDefaults = (obj) => {
13558
- if (obj.addInfo && obj.addInfo['nodeType']) {
13559
- obj.style = {
13560
- fill: 'transparent',
13561
- strokeColor: this._session.theme.dark ? 'white' : 'black',
13562
- strokeWidth: 1
13563
- },
13564
- obj.constraints = NodeConstraints.Default | NodeConstraints.AspectRatio,
13565
- obj.ports = getPorts$1();
13566
- if (obj.width === undefined) {
13567
- obj.width = 145;
13568
- }
13569
- else {
13570
- const ratio = 100 / obj.width;
13571
- obj.width = 100;
13572
- obj.height *= ratio;
13573
- }
13548
+ switch (obj.shape.type) {
13549
+ case 'SwimLane':
13550
+ break;
13551
+ case 'Text':
13552
+ if (obj.id !== 'version')
13553
+ obj.constraints = NodeConstraints.Default & ~NodeConstraints.InConnect & ~NodeConstraints.OutConnect;
13554
+ break;
13555
+ default:
13556
+ if (obj.addInfo && obj.addInfo['nodeType']) {
13557
+ obj.constraints = NodeConstraints.Default | NodeConstraints.AspectRatio;
13558
+ obj.style.strokeColor = this._session.theme.dark ? 'white' : 'black';
13559
+ obj.ports = ports;
13560
+ }
13561
+ break;
13574
13562
  }
13575
13563
  return obj;
13576
13564
  };
13577
13565
  this.connDefaults = (obj) => {
13578
- obj.constraints = ConnectorConstraints.Default | ConnectorConstraints.Bridging |
13579
- ConnectorConstraints.Bridging;
13566
+ obj.constraints = ConnectorConstraints.Default | ConnectorConstraints.Bridging;
13580
13567
  obj.style.strokeColor = this._session.theme.dark ? 'white' : 'black';
13581
- obj.type = this.connectorType;
13582
- // if (!obj.annotations) obj.annotations = [{
13583
- // style: {
13584
- // color: this._session.theme.dark ? 'white' : 'black',
13585
- // fill: 'transparent',
13586
- // opacity: .8,
13587
- // },
13588
- // }];
13568
+ if (!obj.type)
13569
+ obj.type = this.connectorType;
13570
+ return obj;
13589
13571
  };
13590
13572
  this._tools = localStorage.getItem('diagram_tools') === '1';
13591
13573
  this._palettes();
@@ -13617,14 +13599,13 @@ class WorkflowComponent {
13617
13599
  snapSettings: this.snapSettings,
13618
13600
  getConnectorDefaults: this.connDefaults.bind(this),
13619
13601
  constraints: this.diagramConstraints,
13620
- tool: this.diagramTool,
13621
13602
  getNodeDefaults: this.nodeDefaults.bind(this),
13622
13603
  scrollSettings: this.scrollSettings,
13623
13604
  selectedItems: this.selectedItems,
13624
13605
  rulerSettings: this.rulerSettings,
13625
13606
  dragEnter: this.dragEnter.bind(this),
13626
13607
  connectionChange: this.change.bind(this),
13627
- collectionChange: this.change.bind(this),
13608
+ collectionChange: this.collectionChange.bind(this),
13628
13609
  propertyChange: this.propertyChange.bind(this),
13629
13610
  selectionChange: this.selectionChange.bind(this),
13630
13611
  }, this.diagramEl.nativeElement);
@@ -13655,6 +13636,8 @@ class WorkflowComponent {
13655
13636
  nodeType: n.name,
13656
13637
  title: n.title
13657
13638
  },
13639
+ width: 145,
13640
+ height: 145,
13658
13641
  };
13659
13642
  node.node = n.name;
13660
13643
  let palette = this.palettes.find(p => p.title === (n.palette || ''));
@@ -13684,11 +13667,14 @@ class WorkflowComponent {
13684
13667
  },
13685
13668
  {
13686
13669
  id: 'text', shape: { type: 'Text', content: 'T' },
13670
+ style: {
13671
+ fill: 'transparent'
13672
+ },
13687
13673
  constraints: NodeConstraints.Default & ~NodeConstraints.InConnect & ~NodeConstraints.OutConnect,
13688
13674
  addInfo: { title: this._translate.get('Text') }
13689
13675
  }]
13690
13676
  });
13691
- const color = MATERIAL_PALETTES['grey'][200]; // this._session.getPrimery(100);
13677
+ const color = MATERIAL_PALETTES['grey'][200];
13692
13678
  this.palettes.push({
13693
13679
  id: 'swimlaneShapes',
13694
13680
  expanded: true,
@@ -13700,11 +13686,15 @@ class WorkflowComponent {
13700
13686
  title: this._translate.get('Horizontal')
13701
13687
  },
13702
13688
  shape: {
13689
+ header: {
13690
+ annotation: { content: 'Plan' }
13691
+ },
13703
13692
  type: 'SwimLane',
13704
13693
  lanes: [
13705
13694
  {
13706
13695
  id: 'lane1',
13707
13696
  header: {
13697
+ annotation: { content: 'Lane' },
13708
13698
  style: { fill: color }
13709
13699
  }
13710
13700
  }
@@ -13723,10 +13713,14 @@ class WorkflowComponent {
13723
13713
  },
13724
13714
  shape: {
13725
13715
  type: 'SwimLane',
13716
+ header: {
13717
+ annotation: { content: 'Plan' }
13718
+ },
13726
13719
  lanes: [
13727
13720
  {
13728
13721
  id: 'lane1',
13729
13722
  header: {
13723
+ annotation: { content: 'Lane' },
13730
13724
  style: { fill: color }
13731
13725
  }
13732
13726
  }
@@ -13744,8 +13738,14 @@ class WorkflowComponent {
13744
13738
  },
13745
13739
  shape: {
13746
13740
  type: 'SwimLane',
13747
- phases: [{ style: { strokeWidth: 1, strokeDashArray: '3,3', strokeColor: color }, }],
13748
- annotations: [{ text: '' }],
13741
+ phases: [
13742
+ {
13743
+ style: { strokeWidth: 1, strokeDashArray: '3,3', strokeColor: color },
13744
+ header: {
13745
+ annotation: { text: 'Phase' }
13746
+ }
13747
+ }
13748
+ ],
13749
13749
  orientation: 'Vertical', isPhase: true
13750
13750
  },
13751
13751
  height: 60,
@@ -13758,12 +13758,16 @@ class WorkflowComponent {
13758
13758
  },
13759
13759
  shape: {
13760
13760
  type: 'SwimLane',
13761
- phases: [{ style: { strokeWidth: 1, strokeDashArray: '3,3', strokeColor: color }, }],
13762
- annotations: [{ text: '' }],
13761
+ phases: [{
13762
+ style: { strokeWidth: 1, strokeDashArray: '3,3', strokeColor: color },
13763
+ header: {
13764
+ annotation: { text: 'Phase' }
13765
+ }
13766
+ }],
13763
13767
  orientation: 'Horizontal', isPhase: true
13764
13768
  },
13765
13769
  height: 60,
13766
- width: 80,
13770
+ width: 140,
13767
13771
  style: { strokeColor: color }
13768
13772
  }
13769
13773
  ]
@@ -13796,7 +13800,6 @@ class WorkflowComponent {
13796
13800
  }
13797
13801
  getSymbolDefaults(symbol) {
13798
13802
  symbol.width = symbol.height = 40;
13799
- symbol.constraints = NodeConstraints.Default | NodeConstraints.AspectRatio;
13800
13803
  }
13801
13804
  pan() {
13802
13805
  this.diagram.constraints = this.diagram.constraints | DiagramConstraints.Pan;
@@ -13808,7 +13811,7 @@ class WorkflowComponent {
13808
13811
  }
13809
13812
  selectionChange(evt) {
13810
13813
  const { newValue, state } = evt;
13811
- if (state !== 'Changed' || !newValue.length) {
13814
+ if (state !== 'Changing' || !newValue.length) {
13812
13815
  this._nodedestroy.next();
13813
13816
  return;
13814
13817
  }
@@ -13825,10 +13828,10 @@ class WorkflowComponent {
13825
13828
  const nodes = newValue.filter(n => n instanceof Node);
13826
13829
  if (nodes.length) {
13827
13830
  const node = nodes[0], addInfo = node.addInfo;
13828
- if (addInfo && addInfo.nodeType && node.annotations.length && node.annotations[0].style)
13829
- this.fontSize = node.annotations[0].style.fontSize;
13830
- else
13831
+ if (!addInfo || !addInfo['nodeType'])
13831
13832
  return;
13833
+ if (node.annotations.length && node.annotations[0].style)
13834
+ this.fontSize = node.annotations[0].style.fontSize;
13832
13835
  }
13833
13836
  this._router.navigate(WorkflowNodeComponent, {
13834
13837
  state: {
@@ -13840,12 +13843,12 @@ class WorkflowComponent {
13840
13843
  expandable: false,
13841
13844
  group: ''
13842
13845
  }).then(p => {
13843
- p.instance.change.
13844
- pipe(takeUntil(this._nodedestroy.pipe(tap$1(() => p.close())))).subscribe(() => this.dirty = true);
13846
+ p.instance.change.pipe(takeUntil(this._nodedestroy)).subscribe(() => this.change());
13847
+ this._nodedestroy.pipe(first$1()).subscribe(() => p.close());
13845
13848
  });
13846
13849
  }
13847
13850
  align(value) {
13848
- function align(n) {
13851
+ this.diagram.selectedItems.nodes.forEach(n => {
13849
13852
  n.annotations.length && Object.assign(n.annotations[0], {
13850
13853
  offset: {
13851
13854
  x: value === 'Right' ? 1 : value === 'Left' ? 0 : .5,
@@ -13854,44 +13857,50 @@ class WorkflowComponent {
13854
13857
  verticalAlignment: value === 'Top' ? 'Bottom' : value === 'Bottom' ? 'Top' : 'Center',
13855
13858
  horizontalAlignment: value === 'Right' ? 'Left' : value === 'Left' ? 'Right' : 'Center'
13856
13859
  });
13857
- }
13858
- this.diagram.selectedItems.nodes.forEach(align);
13859
- this.diagram.selectedItems.connectors.forEach(c => {
13860
- c.annotations.forEach(a => {
13861
- a.alignment = value === 'Left' ? 'Before' :
13862
- value === 'Right' ? 'After' : 'Center';
13863
- a.offset = 5;
13864
- a.displacement = {
13865
- x: value === 'Right' ? 1 : value === 'Left' ? 0 : .5,
13866
- y: value === 'Top' ? 0 : value === 'Bottom' ? 1 : .5
13867
- };
13868
- });
13869
13860
  });
13861
+ this.diagram.selectedItems.connectors.forEach(c => c.annotations.forEach(a => Object.assign(a, {
13862
+ verticalAlignment: value === 'Top' ? 'Bottom' : value === 'Bottom' ? 'Top' : 'Center',
13863
+ horizontalAlignment: value === 'Left' ? 'Left' : value === 'Right' ? 'Right' : 'Center',
13864
+ // displacement: {
13865
+ // x: value === 'Right' ? 10 : value === 'Left' ? -10 : 0,
13866
+ // y: value === 'Top' ? -10 : value === 'Bottom' ? 10 : 0
13867
+ // }
13868
+ })));
13870
13869
  this.alignment = value;
13871
13870
  this.dirty = true;
13872
13871
  }
13873
13872
  dragEnter(args) {
13874
13873
  if (args.element instanceof Node) {
13875
- const shape = args.element.shape;
13876
- if (shape.isLane) {
13877
- switch (shape.orientation) {
13878
- case 'Horizontal':
13879
- shape.lanes[0].height = 100;
13880
- shape.lanes[0].width = 400;
13881
- break;
13882
- case 'Vertical':
13883
- shape.lanes[0].height = 400;
13884
- shape.lanes[0].width = 100;
13874
+ switch (args.element.shape.type) {
13875
+ case 'SwimLane':
13876
+ {
13877
+ const shape = args.element.shape;
13878
+ switch (shape.orientation) {
13879
+ case 'Horizontal':
13880
+ shape.lanes[0].width = 400;
13881
+ break;
13882
+ case 'Vertical':
13883
+ shape.lanes[0].height = 400;
13884
+ break;
13885
+ }
13885
13886
  break;
13886
- }
13887
- }
13888
- else {
13889
- const { width, height } = args.element;
13890
- args.element.width = 100;
13891
- args.element.height *= 100 / width;
13892
- args.element.offsetX += (args.element.width - width) / 2;
13893
- args.element.offsetY += (args.element.height - height) / 2;
13894
- args.element.style = { fill: 'white', strokeColor: 'black' };
13887
+ }
13888
+ case 'Text':
13889
+ //(args.element.style as TextStyleModel).fontSize = 20;
13890
+ break;
13891
+ default:
13892
+ {
13893
+ const { width, height } = args.element;
13894
+ args.element.width = 100;
13895
+ args.element.height *= 100 / width;
13896
+ args.element.offsetX += (args.element.width - width) / 2;
13897
+ args.element.offsetY += (args.element.height - height) / 2;
13898
+ args.element.style = {
13899
+ fill: 'transparent',
13900
+ strokeColor: this._session.theme.dark ? 'white' : 'black',
13901
+ strokeWidth: 1
13902
+ };
13903
+ }
13895
13904
  }
13896
13905
  }
13897
13906
  }
@@ -13902,6 +13911,10 @@ class WorkflowComponent {
13902
13911
  change() {
13903
13912
  this.dirty = true;
13904
13913
  }
13914
+ collectionChange() {
13915
+ this._router.collapse();
13916
+ this.dirty = true;
13917
+ }
13905
13918
  /**
13906
13919
  * Ctrl-s save
13907
13920
  * @param event
@@ -13926,21 +13939,55 @@ class WorkflowComponent {
13926
13939
  this.connectorType = type;
13927
13940
  this.dirty = true;
13928
13941
  }
13942
+ boldChange() {
13943
+ const val = !this.diagram.selectedItems.nodes[0].annotations[0]?.style?.bold;
13944
+ function change(node) {
13945
+ if (node.shape.type === 'Text')
13946
+ node.style.bold = val;
13947
+ else
13948
+ node.annotations.forEach(a => {
13949
+ if (!a.style)
13950
+ a.style = { bold: val };
13951
+ else
13952
+ a.style.bold = val;
13953
+ });
13954
+ }
13955
+ this.diagram.selectedItems.nodes.forEach(change);
13956
+ this.diagram.selectedItems.connectors.forEach(change);
13957
+ this.diagram.dataBind();
13958
+ }
13959
+ italicChange() {
13960
+ const val = !this.diagram.selectedItems.nodes[0].annotations[0]?.style?.italic;
13961
+ function change(node) {
13962
+ if (node.shape.type === 'Text')
13963
+ node.style.italic = val;
13964
+ else
13965
+ node.annotations.forEach(a => {
13966
+ if (!a.style)
13967
+ a.style = { italic: val };
13968
+ else
13969
+ a.style.italic = val;
13970
+ });
13971
+ }
13972
+ this.diagram.selectedItems.nodes.forEach(change);
13973
+ this.diagram.selectedItems.connectors.forEach(change);
13974
+ this.diagram.dataBind();
13975
+ }
13929
13976
  fontSizeChange(val) {
13930
13977
  function change(node) {
13931
- node.annotations?.forEach(a => {
13932
- if (!a.style)
13933
- a.style = { fontSize: val };
13934
- else
13935
- a.style.fontSize = val;
13936
- });
13937
13978
  if (node.shape.type === 'Text')
13938
13979
  node.style.fontSize = val;
13980
+ else
13981
+ node.annotations?.forEach(a => {
13982
+ if (!a.style)
13983
+ a.style = { fontSize: val };
13984
+ else
13985
+ a.style.fontSize = val;
13986
+ });
13939
13987
  }
13940
13988
  this.diagram.selectedItems.nodes.forEach(change);
13941
13989
  this.diagram.selectedItems.connectors.forEach(change);
13942
13990
  this.diagram.dataBind();
13943
- this.dirty = true;
13944
13991
  }
13945
13992
  strokeChange(val) {
13946
13993
  this.diagram.selectedItems.connectors.forEach(c => {
@@ -13955,11 +14002,7 @@ class WorkflowComponent {
13955
14002
  this.diagram.serializationSettings = { preventDefaults: true };
13956
14003
  const obj = JSON.parse(this.diagram.saveDiagram());
13957
14004
  this._form.workflow.connectors = obj.connectors;
13958
- this._form.workflow.nodes = obj.nodes.filter(n => n.id !== 'version').map((n) => {
13959
- n.offsetX = Math.round(n.offsetX);
13960
- n.offsetY = Math.round(n.offsetY);
13961
- return n;
13962
- });
14005
+ this._form.workflow.nodes = obj.nodes.filter(n => n.id !== 'version');
13963
14006
  this.saving = true;
13964
14007
  return this._service.save(this._form).toPromise().then(v => {
13965
14008
  this.ps.toast('ChangesSaved');
@@ -13987,12 +14030,12 @@ class WorkflowComponent {
13987
14030
  }
13988
14031
  }
13989
14032
  WorkflowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: WorkflowComponent, deps: [{ token: PromptService }, { token: FormService }, { token: PaneRef }, { token: PanesRouter }, { token: SessionService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component });
13990
- WorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n <!--<ng-container *ngIf=\"connectors.length\">\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n <ng-container *ngIf=\"nodes[0].annotations.length\">\r\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\r\n </ng-container>\r\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n </ng-container>-->\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\r\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\r\n [bizdocTooltip]=\"'FontSize'|translate\">\r\n <mat-icon>format_size</mat-icon>\r\n </button>\r\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item *ngFor=\"let size of fontSizes\" (click)=\"fontSizeChange(size)\">\r\n {{size}}\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPaletteEl>\r\n </div>\r\n </div>\r\n <div #diagramEl id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7.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: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i9$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i25.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i23.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], pipes: { "translate": TranslatePipe } });
14033
+ WorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n <!--<ng-container *ngIf=\"connectors.length\">\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n <ng-container *ngIf=\"nodes[0].annotations.length\">\r\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\r\n </ng-container>\r\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n </ng-container>-->\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\r\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\r\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\r\n [bizdocTooltip]=\"'FontSize'|translate\">\r\n <mat-icon>format_size</mat-icon>\r\n </button>\r\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item *ngFor=\"let size of fontSizes\" (click)=\"fontSizeChange(size)\">\r\n {{size}}\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPaletteEl>\r\n </div>\r\n </div>\r\n <div #diagramEl id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7.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: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i9$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i25.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i23.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], pipes: { "translate": TranslatePipe } });
13991
14034
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: WorkflowComponent, decorators: [{
13992
14035
  type: Component,
13993
14036
  args: [{ selector: 'bizdoc-workflow', host: {
13994
14037
  class: 'pane'
13995
- }, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n <!--<ng-container *ngIf=\"connectors.length\">\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n <ng-container *ngIf=\"nodes[0].annotations.length\">\r\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\r\n </ng-container>\r\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n </ng-container>-->\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\r\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\r\n [bizdocTooltip]=\"'FontSize'|translate\">\r\n <mat-icon>format_size</mat-icon>\r\n </button>\r\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item *ngFor=\"let size of fontSizes\" (click)=\"fontSizeChange(size)\">\r\n {{size}}\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPaletteEl>\r\n </div>\r\n </div>\r\n <div #diagramEl id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"] }]
14038
+ }, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n <!--<ng-container *ngIf=\"connectors.length\">\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n <ng-container *ngIf=\"nodes[0].annotations.length\">\r\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\r\n </ng-container>\r\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\r\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\r\n </ng-container>-->\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\r\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\r\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\r\n [bizdocTooltip]=\"'FontSize'|translate\">\r\n <mat-icon>format_size</mat-icon>\r\n </button>\r\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\r\n <button mat-menu-item *ngFor=\"let size of fontSizes\" (click)=\"fontSizeChange(size)\">\r\n {{size}}\r\n </button>\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPaletteEl>\r\n </div>\r\n </div>\r\n <div #diagramEl id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"] }]
13996
14039
  }], ctorParameters: function () { return [{ type: PromptService }, { type: FormService }, { type: PaneRef }, { type: PanesRouter }, { type: SessionService }, { type: TranslateService }]; }, propDecorators: { symbolPaletteEl: [{
13997
14040
  type: ViewChild,
13998
14041
  args: ['symbolPaletteEl', { static: true }]
@@ -15391,24 +15434,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
15391
15434
  type: Injectable
15392
15435
  }], ctorParameters: function () { return [{ type: MailboxService }]; } });
15393
15436
 
15437
+ class SaveChangesDialog {
15438
+ ngOnInit() {
15439
+ playAudio('alert_error-03');
15440
+ }
15441
+ }
15442
+ SaveChangesDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: SaveChangesDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
15443
+ SaveChangesDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: SaveChangesDialog, selector: "ng-component", ngImport: i0, template: " <h2 mat-dialog-title>\r\n {{'SaveChanges' | translate}}\r\n </h2>\r\n <mat-dialog-content>\r\n <p class=\"mat-body\">\r\n {{'SaveChangesAsk' | translate}}\r\n </p>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=true color=\"primary\" cdkFocusInitial>{{'Save'|translate}}</button>\r\n <button mat-button mat-dialog-close color=\"warn\">{{'DiscardChanges'|translate}}</button>\r\n <button mat-button [mat-dialog-close]=\"false\">{{'ContinueEditing'|translate}}</button>\r\n </mat-dialog-actions>\r\n", components: [{ type: i7.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"] }], directives: [{ type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "translate": TranslatePipe } });
15444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: SaveChangesDialog, decorators: [{
15445
+ type: Component,
15446
+ args: [{ template: " <h2 mat-dialog-title>\r\n {{'SaveChanges' | translate}}\r\n </h2>\r\n <mat-dialog-content>\r\n <p class=\"mat-body\">\r\n {{'SaveChangesAsk' | translate}}\r\n </p>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=true color=\"primary\" cdkFocusInitial>{{'Save'|translate}}</button>\r\n <button mat-button mat-dialog-close color=\"warn\">{{'DiscardChanges'|translate}}</button>\r\n <button mat-button [mat-dialog-close]=\"false\">{{'ContinueEditing'|translate}}</button>\r\n </mat-dialog-actions>\r\n" }]
15447
+ }] });
15448
+
15394
15449
  class AdminDismiss {
15395
- constructor(_sb) {
15396
- this._sb = _sb;
15450
+ constructor(_dialog) {
15451
+ this._dialog = _dialog;
15397
15452
  }
15398
15453
  onDismiss(component) {
15399
15454
  if (component.dirty)
15400
- return this._sb.ask('SaveChangesAsk', 'SaveChanges', { i18n: true, color: 'primary', ok: 'Save', cancel: 'DiscardChanges' }).
15401
- toPromise().
15402
- then(ok => ok ? component.save().then(() => true) : true);
15455
+ return new Promise((resolve, reject) => this._dialog.open(SaveChangesDialog).
15456
+ afterClosed().
15457
+ subscribe(ok => {
15458
+ if (ok)
15459
+ component.save().then(() => resolve(true), reject);
15460
+ else
15461
+ resolve(ok !== false);
15462
+ }));
15403
15463
  else
15404
15464
  return true;
15405
15465
  }
15406
15466
  }
15407
- AdminDismiss.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AdminDismiss, deps: [{ token: PromptService }], target: i0.ɵɵFactoryTarget.Injectable });
15467
+ AdminDismiss.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AdminDismiss, deps: [{ token: i3$1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
15408
15468
  AdminDismiss.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AdminDismiss });
15409
15469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: AdminDismiss, decorators: [{
15410
15470
  type: Injectable
15411
- }], ctorParameters: function () { return [{ type: PromptService }]; } });
15471
+ }], ctorParameters: function () { return [{ type: i3$1.MatDialog }]; } });
15412
15472
 
15413
15473
  class AgoPipe {
15414
15474
  constructor(_translate) {
@@ -15662,18 +15722,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
15662
15722
  }]
15663
15723
  }], ctorParameters: function () { return [{ type: PanesRouter }, { type: i0.ElementRef }, { type: TranslateService }, { type: PaneRef }]; } });
15664
15724
 
15665
- class SaveChangesDialog {
15666
- ngOnInit() {
15667
- playAudio('alert_error-03');
15668
- }
15669
- }
15670
- SaveChangesDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: SaveChangesDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
15671
- SaveChangesDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: SaveChangesDialog, selector: "ng-component", ngImport: i0, template: " <h2 mat-dialog-title>\r\n {{'SaveChanges' | translate}}\r\n </h2>\r\n <mat-dialog-content>\r\n <p class=\"mat-body\">\r\n {{'SaveChangesAsk' | translate}}\r\n </p>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=true color=\"primary\" cdkFocusInitial>{{'Save'|translate}}</button>\r\n <button mat-button [mat-dialog-close]=\"false\">{{'ContinueEditing'|translate}}</button>\r\n <button mat-button mat-dialog-close>{{'DiscardChanges'|translate}}</button>\r\n </mat-dialog-actions>\r\n", components: [{ type: i7.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"] }], directives: [{ type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "translate": TranslatePipe } });
15672
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: SaveChangesDialog, decorators: [{
15673
- type: Component,
15674
- args: [{ template: " <h2 mat-dialog-title>\r\n {{'SaveChanges' | translate}}\r\n </h2>\r\n <mat-dialog-content>\r\n <p class=\"mat-body\">\r\n {{'SaveChangesAsk' | translate}}\r\n </p>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=true color=\"primary\" cdkFocusInitial>{{'Save'|translate}}</button>\r\n <button mat-button [mat-dialog-close]=\"false\">{{'ContinueEditing'|translate}}</button>\r\n <button mat-button mat-dialog-close>{{'DiscardChanges'|translate}}</button>\r\n </mat-dialog-actions>\r\n" }]
15675
- }] });
15676
-
15677
15725
  class ComposeDismiss {
15678
15726
  constructor(_dialog) {
15679
15727
  this._dialog = _dialog;