@dangl/angular-ava 1.0.1-beta0011 → 1.0.1-beta0024

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 (32) hide show
  1. package/esm2022/lib/angular-ava.module.mjs +4 -4
  2. package/esm2022/lib/ava-tree/invoice/invoice-display/invoice-display.component.mjs +68 -0
  3. package/esm2022/lib/ava-tree/tree/components/ava-tree/ava-tree.component.mjs +3 -3
  4. package/esm2022/lib/ava-tree/tree/components/list-structure/list-structure.component.mjs +3 -3
  5. package/esm2022/lib/ava-tree/tree/components/table-structure/table-structure.component.mjs +3 -3
  6. package/esm2022/lib/ava-tree/tree/components/tree-item/tree-item.component.mjs +3 -3
  7. package/esm2022/lib/ava-tree/tree/components/tree-node/tree-node.component.mjs +3 -3
  8. package/esm2022/lib/ava-tree/tree/components/tree-structure/tree-structure.component.mjs +3 -3
  9. package/esm2022/lib/ava-tree/tree/constants/defaultTextWordInvoice.mjs +77 -0
  10. package/esm2022/lib/ava-tree/tree/constants/index.mjs +3 -2
  11. package/esm2022/lib/ava-tree/tree/directives/save-changing-view.directive.mjs +3 -3
  12. package/esm2022/lib/ava-tree/tree/model/index.mjs +1 -1
  13. package/esm2022/lib/ava-tree/tree/model/invoice-models.mjs +46 -0
  14. package/esm2022/lib/ava-tree/tree/model/invoice-words.model.mjs +2 -0
  15. package/esm2022/lib/ava-tree/tree/pipes/element-icon-name.pipe.mjs +3 -3
  16. package/esm2022/lib/ava-tree/tree/pipes/element-item-number.pipe.mjs +3 -3
  17. package/esm2022/lib/ava-tree/tree/pipes/element-text.pipe.mjs +3 -3
  18. package/esm2022/lib/ava-tree/tree/pipes/group-child-elements.pipe.mjs +3 -3
  19. package/esm2022/lib/ava-tree/tree/services/flat-elements.service.mjs +3 -3
  20. package/esm2022/lib/ava-tree/tree/services/select-element.service.mjs +3 -3
  21. package/esm2022/lib/version.mjs +7 -7
  22. package/esm2022/public-api.mjs +3 -1
  23. package/fesm2022/dangl-angular-ava.mjs +193 -52
  24. package/fesm2022/dangl-angular-ava.mjs.map +1 -1
  25. package/lib/ava-tree/invoice/invoice-display/invoice-display.component.d.ts +54 -0
  26. package/lib/ava-tree/tree/constants/defaultTextWordInvoice.d.ts +3 -0
  27. package/lib/ava-tree/tree/constants/index.d.ts +2 -1
  28. package/lib/ava-tree/tree/model/index.d.ts +2 -1
  29. package/lib/ava-tree/tree/model/invoice-models.d.ts +389 -0
  30. package/lib/ava-tree/tree/model/invoice-words.model.d.ts +38 -0
  31. package/package.json +1 -1
  32. package/public-api.d.ts +2 -0
@@ -1,7 +1,7 @@
1
1
  import * as i3 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
2
+ import { CommonModule, CurrencyPipe, DatePipe } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, inject, Directive, Input, Pipe, Component, EventEmitter, Self, Output, ViewChild, NgModule } from '@angular/core';
4
+ import { Injectable, inject, Directive, Input, Pipe, Component, EventEmitter, Self, Output, ViewChild, NgModule, input, ChangeDetectionStrategy } from '@angular/core';
5
5
  import * as i5 from '@angular/forms';
6
6
  import { ReactiveFormsModule, FormsModule } from '@angular/forms';
7
7
  import * as i11 from '@angular/material/button';
@@ -251,6 +251,83 @@ const DEFAULT_FILTERS = [
251
251
  }
252
252
  ];
253
253
 
254
+ const DEFAULT_TEXT_WORD_INVOICE = {
255
+ invoiceTitle: 'Invoice',
256
+ vatId: 'VAT ID',
257
+ detailsInvoiceNumber: 'Invoice Number',
258
+ detailsInvoiceDate: 'Invoice Date',
259
+ detailsPaymentDueDate: 'Due Date',
260
+ detailsCurrencyCode: 'Currency',
261
+ detailsPaymentTerms: 'Payment Terms',
262
+ referencesTopic: 'References',
263
+ referencesBuyerReference: 'Buyer Reference',
264
+ referencesProjectReference: 'Project Reference',
265
+ referencesContractReference: 'Contract Reference',
266
+ referencesPurchaseOrderReference: 'Purchase Order Reference',
267
+ referencesSalesOrderReference: 'Sales Order Reference',
268
+ referencesReceivingAdviceReference: 'Receiving Advice Reference',
269
+ referencesDispatchAdviceReference: 'Dispatch Advice Reference',
270
+ referencesTenderOrLotReference: 'Tender or Lot Reference',
271
+ referencesInvoicedObjectIdentifier: 'Invoiced Object Identifier',
272
+ tableHeadDescription: 'Description',
273
+ tableHeadQuantity: 'Quantity',
274
+ tableHeadUnit: 'Unit',
275
+ tableHeadNetPrice: 'Net Price',
276
+ tableHeadNetAmount: 'Net Amount',
277
+ totalsTopic: 'Totals',
278
+ totalsTotalNet: 'Total Net',
279
+ totalsTotalAllowances: 'Total Allowances',
280
+ totalsTotalCharges: 'Total Charges',
281
+ totalsTotalAfterDeductions: 'Total After Deductions',
282
+ totalsTotalVatAmount: 'Total VAT Amount',
283
+ totalsTotalGross: 'Total Gross',
284
+ totalsAlreadyPaidTotal: 'Already Paid Total',
285
+ totalsTotalToBePaid: 'Total to be Paid',
286
+ instructionsTopic: 'Payment Instructions',
287
+ instructionsAccountIdentifier: 'Account Identifier',
288
+ instructionsAccountName: 'Account Name',
289
+ instructionsServiceProviderIdentifier: 'Service Provider Identifier',
290
+ notesTopic: 'Notes'
291
+ };
292
+ const germanTextsInvoice = {
293
+ invoiceTitle: 'InvoiceDE',
294
+ vatId: 'VAT_ID DE',
295
+ detailsInvoiceNumber: 'Invoice Number DE',
296
+ detailsInvoiceDate: 'Invoice Date DE',
297
+ detailsPaymentDueDate: 'Due Date DE',
298
+ detailsCurrencyCode: 'Currency DE',
299
+ detailsPaymentTerms: 'Payment Terms DE',
300
+ referencesTopic: 'References DE',
301
+ referencesBuyerReference: 'Buyer Reference DE',
302
+ referencesProjectReference: 'Project Reference DE',
303
+ referencesContractReference: 'Contract Reference DE',
304
+ referencesPurchaseOrderReference: 'Purchase Order Reference DE',
305
+ referencesSalesOrderReference: 'Sales Order Reference DE',
306
+ referencesReceivingAdviceReference: 'Receiving Advice Reference DE',
307
+ referencesDispatchAdviceReference: 'Dispatch Advice Reference DE',
308
+ referencesTenderOrLotReference: 'Tender or Lot Reference DE',
309
+ referencesInvoicedObjectIdentifier: 'Invoiced Object Identifier DE',
310
+ tableHeadDescription: 'Description DE',
311
+ tableHeadQuantity: 'Quantity DE',
312
+ tableHeadUnit: 'Unit DE',
313
+ tableHeadNetPrice: 'Net Price DE',
314
+ tableHeadNetAmount: 'Net Amount DE',
315
+ totalsTopic: 'Totals DE',
316
+ totalsTotalNet: 'Total Net DE',
317
+ totalsTotalAllowances: 'Total Allowances DE',
318
+ totalsTotalCharges: 'Total Charges DE',
319
+ totalsTotalAfterDeductions: 'Total After Deductions DE',
320
+ totalsTotalVatAmount: 'Total VAT Amount DE',
321
+ totalsTotalGross: 'Total Gross DE',
322
+ totalsAlreadyPaidTotal: 'Already Paid Total DE',
323
+ totalsTotalToBePaid: 'Total to be Paid DE',
324
+ instructionsTopic: 'Payment Instructions DE',
325
+ instructionsAccountIdentifier: 'Account Identifier DE',
326
+ instructionsAccountName: 'Account Name DE',
327
+ instructionsServiceProviderIdentifier: 'Service Provider Identifier DE',
328
+ notesTopic: 'Notes DE'
329
+ };
330
+
254
331
  const DEFAULT_TEXT_WORDS = {
255
332
  textSearch: 'Suche',
256
333
  textNothing: 'Nichts',
@@ -380,10 +457,10 @@ class FlatElementsService {
380
457
  }
381
458
  return null;
382
459
  }
383
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FlatElementsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
384
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FlatElementsService, providedIn: 'root' }); }
460
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FlatElementsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
461
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FlatElementsService, providedIn: 'root' }); }
385
462
  }
386
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FlatElementsService, decorators: [{
463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: FlatElementsService, decorators: [{
387
464
  type: Injectable,
388
465
  args: [{
389
466
  providedIn: 'root'
@@ -418,10 +495,10 @@ class SelectElementService {
418
495
  setContextMenuElement(data) {
419
496
  this.selectContextMenuElementSource.next(data);
420
497
  }
421
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SelectElementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
422
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SelectElementService, providedIn: 'root' }); }
498
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SelectElementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
499
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SelectElementService, providedIn: 'root' }); }
423
500
  }
424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SelectElementService, decorators: [{
501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SelectElementService, decorators: [{
425
502
  type: Injectable,
426
503
  args: [{
427
504
  providedIn: 'root'
@@ -705,10 +782,10 @@ class SaveChangingViewDirective {
705
782
  }
706
783
  }
707
784
  }
708
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SaveChangingViewDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: FlatElementsService }], target: i0.ɵɵFactoryTarget.Directive }); }
709
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: SaveChangingViewDirective, selector: "[saveChangingView]", inputs: { attributeValue: "attributeValue" }, ngImport: i0 }); }
785
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SaveChangingViewDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: FlatElementsService }], target: i0.ɵɵFactoryTarget.Directive }); }
786
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.5", type: SaveChangingViewDirective, selector: "[saveChangingView]", inputs: { attributeValue: "attributeValue" }, ngImport: i0 }); }
710
787
  }
711
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SaveChangingViewDirective, decorators: [{
788
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SaveChangingViewDirective, decorators: [{
712
789
  type: Directive,
713
790
  args: [{
714
791
  selector: '[saveChangingView]'
@@ -732,10 +809,10 @@ class ElementIconNamePipe {
732
809
  return '';
733
810
  }
734
811
  }
735
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementIconNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
736
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: ElementIconNamePipe, name: "elementIconName" }); }
812
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ElementIconNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
813
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: ElementIconNamePipe, name: "elementIconName" }); }
737
814
  }
738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementIconNamePipe, decorators: [{
815
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ElementIconNamePipe, decorators: [{
739
816
  type: Pipe,
740
817
  args: [{
741
818
  name: 'elementIconName'
@@ -757,10 +834,10 @@ class ElementTextPipe {
757
834
  return '';
758
835
  }
759
836
  }
760
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
761
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: ElementTextPipe, name: "elementText" }); }
837
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ElementTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
838
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: ElementTextPipe, name: "elementText" }); }
762
839
  }
763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementTextPipe, decorators: [{
840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ElementTextPipe, decorators: [{
764
841
  type: Pipe,
765
842
  args: [{
766
843
  name: 'elementText'
@@ -778,10 +855,10 @@ class ElementItemNumberPipe {
778
855
  return '';
779
856
  }
780
857
  }
781
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementItemNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
782
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: ElementItemNumberPipe, name: "elementItemNumber" }); }
858
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ElementItemNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
859
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: ElementItemNumberPipe, name: "elementItemNumber" }); }
783
860
  }
784
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementItemNumberPipe, decorators: [{
861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ElementItemNumberPipe, decorators: [{
785
862
  type: Pipe,
786
863
  args: [{
787
864
  name: 'elementItemNumber'
@@ -860,10 +937,10 @@ class TreeItemComponent {
860
937
  changeSelecting(element, isSelected) {
861
938
  this.treeNodeSelectionService.changeSelecting(isSelected, element.id);
862
939
  }
863
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeItemComponent, deps: [{ token: SelectElementService }, { token: TreeNodeSelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
864
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TreeItemComponent, selector: "ava-tree-item", inputs: { element: "element", expansionState: "expansionState", isSelectionMode: "isSelectionMode", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<div\n *ngIf=\"element\"\n (click)=\"select()\"\n (dblclick)=\"dblSelect()\"\n (contextmenu)=\"openContextMenu($event)\"\n class=\"ava-tree-item\"\n [id]=\"element.id\"\n>\n <mat-icon\n class=\"ava-tree-item__icon\"\n saveChangingView=\"icon\"\n [id]=\"element.id\"\n >{{ element | elementIconName }}</mat-icon\n >\n <div\n *ngIf=\"!isSelectionMode\"\n class=\"ava-tree-item__text\"\n [class.choose]=\"!isSelectionMode && element.id === preselectedElement?.id\"\n [id]=\"element.id\"\n saveChangingView=\"text\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n <mat-checkbox\n *ngIf=\"isSelectionMode\"\n class=\"ava-tree-item__checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"ava-tree-item__text\"\n saveChangingView=\"text\"\n [id]=\"element.id\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n </mat-checkbox>\n</div>\n\n<ng-template #text>\n <ng-container\n *ngIf=\"\n element?.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' || element?.elementTypeDiscriminator === 'PositionDto';\n else simpleText\n \"\n >\n {{ element | elementItemNumber }} - {{ element | elementText }}\n </ng-container>\n</ng-template>\n<ng-template #simpleText>\n {{ element | elementText }}\n</ng-template>\n", styles: ["::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}::ng-deep .ava-tree-item__checkbox .mat-mdc-checkbox-touch-target{width:16px!important;height:16px!important}.ava-tree-item{display:flex;align-items:center}.ava-tree-item__icon,.ava-tree-item__checkbox{flex-shrink:0}.ava-tree-item__text{flex-grow:1;-webkit-user-select:none;user-select:none;white-space:nowrap}.ava-tree-item__text.choose{color:red!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: SaveChangingViewDirective, selector: "[saveChangingView]", inputs: ["attributeValue"] }, { kind: "pipe", type: ElementIconNamePipe, name: "elementIconName" }, { kind: "pipe", type: ElementTextPipe, name: "elementText" }, { kind: "pipe", type: ElementItemNumberPipe, name: "elementItemNumber" }] }); }
940
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TreeItemComponent, deps: [{ token: SelectElementService }, { token: TreeNodeSelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
941
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: TreeItemComponent, selector: "ava-tree-item", inputs: { element: "element", expansionState: "expansionState", isSelectionMode: "isSelectionMode", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<div\n *ngIf=\"element\"\n (click)=\"select()\"\n (dblclick)=\"dblSelect()\"\n (contextmenu)=\"openContextMenu($event)\"\n class=\"ava-tree-item\"\n [id]=\"element.id\"\n>\n <mat-icon\n class=\"ava-tree-item__icon\"\n saveChangingView=\"icon\"\n [id]=\"element.id\"\n >{{ element | elementIconName }}</mat-icon\n >\n <div\n *ngIf=\"!isSelectionMode\"\n class=\"ava-tree-item__text\"\n [class.choose]=\"!isSelectionMode && element.id === preselectedElement?.id\"\n [id]=\"element.id\"\n saveChangingView=\"text\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n <mat-checkbox\n *ngIf=\"isSelectionMode\"\n class=\"ava-tree-item__checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"ava-tree-item__text\"\n saveChangingView=\"text\"\n [id]=\"element.id\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n </mat-checkbox>\n</div>\n\n<ng-template #text>\n <ng-container\n *ngIf=\"\n element?.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' || element?.elementTypeDiscriminator === 'PositionDto';\n else simpleText\n \"\n >\n {{ element | elementItemNumber }} - {{ element | elementText }}\n </ng-container>\n</ng-template>\n<ng-template #simpleText>\n {{ element | elementText }}\n</ng-template>\n", styles: ["::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}::ng-deep .ava-tree-item__checkbox .mat-mdc-checkbox-touch-target{width:16px!important;height:16px!important}.ava-tree-item{display:flex;align-items:center}.ava-tree-item__icon,.ava-tree-item__checkbox{flex-shrink:0}.ava-tree-item__text{flex-grow:1;-webkit-user-select:none;user-select:none;white-space:nowrap}.ava-tree-item__text.choose{color:red!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: SaveChangingViewDirective, selector: "[saveChangingView]", inputs: ["attributeValue"] }, { kind: "pipe", type: ElementIconNamePipe, name: "elementIconName" }, { kind: "pipe", type: ElementTextPipe, name: "elementText" }, { kind: "pipe", type: ElementItemNumberPipe, name: "elementItemNumber" }] }); }
865
942
  }
866
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeItemComponent, decorators: [{
943
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TreeItemComponent, decorators: [{
867
944
  type: Component,
868
945
  args: [{ selector: 'ava-tree-item', template: "<div\n *ngIf=\"element\"\n (click)=\"select()\"\n (dblclick)=\"dblSelect()\"\n (contextmenu)=\"openContextMenu($event)\"\n class=\"ava-tree-item\"\n [id]=\"element.id\"\n>\n <mat-icon\n class=\"ava-tree-item__icon\"\n saveChangingView=\"icon\"\n [id]=\"element.id\"\n >{{ element | elementIconName }}</mat-icon\n >\n <div\n *ngIf=\"!isSelectionMode\"\n class=\"ava-tree-item__text\"\n [class.choose]=\"!isSelectionMode && element.id === preselectedElement?.id\"\n [id]=\"element.id\"\n saveChangingView=\"text\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n <mat-checkbox\n *ngIf=\"isSelectionMode\"\n class=\"ava-tree-item__checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"ava-tree-item__text\"\n saveChangingView=\"text\"\n [id]=\"element.id\"\n >\n <ng-container [ngTemplateOutlet]=\"text\"></ng-container>\n </div>\n </mat-checkbox>\n</div>\n\n<ng-template #text>\n <ng-container\n *ngIf=\"\n element?.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' || element?.elementTypeDiscriminator === 'PositionDto';\n else simpleText\n \"\n >\n {{ element | elementItemNumber }} - {{ element | elementText }}\n </ng-container>\n</ng-template>\n<ng-template #simpleText>\n {{ element | elementText }}\n</ng-template>\n", styles: ["::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .ava-tree-item__checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .ava-tree-item__checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}::ng-deep .ava-tree-item__checkbox .mat-mdc-checkbox-touch-target{width:16px!important;height:16px!important}.ava-tree-item{display:flex;align-items:center}.ava-tree-item__icon,.ava-tree-item__checkbox{flex-shrink:0}.ava-tree-item__text{flex-grow:1;-webkit-user-select:none;user-select:none;white-space:nowrap}.ava-tree-item__text.choose{color:red!important}\n"] }]
869
946
  }], ctorParameters: () => [{ type: SelectElementService }, { type: TreeNodeSelectionService }, { type: i0.ChangeDetectorRef }], propDecorators: { element: [{
@@ -883,10 +960,10 @@ class GroupChildElementsPipe {
883
960
  }
884
961
  return null;
885
962
  }
886
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: GroupChildElementsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
887
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: GroupChildElementsPipe, name: "groupChildElements" }); }
963
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: GroupChildElementsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
964
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: GroupChildElementsPipe, name: "groupChildElements" }); }
888
965
  }
889
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: GroupChildElementsPipe, decorators: [{
966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: GroupChildElementsPipe, decorators: [{
890
967
  type: Pipe,
891
968
  args: [{
892
969
  name: 'groupChildElements',
@@ -918,10 +995,10 @@ class TreeNodeComponent {
918
995
  expand(element) {
919
996
  this.expansionState[element.id] = !this.expansionState[element.id];
920
997
  }
921
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeNodeComponent, deps: [{ token: SelectElementService }], target: i0.ɵɵFactoryTarget.Component }); }
922
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TreeNodeComponent, selector: "ava-tree-node", inputs: { elementList: "elementList", indent: "indent", expansionState: "expansionState", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ng-container *ngFor=\"let element of elementList\">\n <div\n class=\"tree-node-wrapper\"\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <div class=\"tree-node-wrapper__content\">\n <mat-icon\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto'; else nullIcon\"\n matRipple\n (click)=\"expand(element)\"\n class=\"tree-node__icon\"\n >\n {{ expansionState[element.id] ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n <ava-tree-item\n [element]=\"element\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n </div>\n\n <div\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' && expansionState?.[element.id]\"\n [style.paddingLeft]=\"indent\"\n >\n <ava-tree-node\n [elementList]=\"element | groupChildElements\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n [indent]=\"indent\"\n ></ava-tree-node>\n </div>\n</ng-container>\n<ng-template #nullIcon>\n <mat-icon></mat-icon>\n</ng-template>\n", styles: [".tree-node-wrapper{display:flex;align-items:center}.tree-node-wrapper__content{flex:1 0 100%;display:flex}.tree-node__icon{flex-shrink:0}.select{background-color:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: TreeNodeComponent, selector: "ava-tree-node", inputs: ["elementList", "indent", "expansionState", "isSelectionMode", "selectedColor", "allowDblClick"] }, { kind: "component", type: TreeItemComponent, selector: "ava-tree-item", inputs: ["element", "expansionState", "isSelectionMode", "allowDblClick"] }, { kind: "pipe", type: GroupChildElementsPipe, name: "groupChildElements" }] }); }
998
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TreeNodeComponent, deps: [{ token: SelectElementService }], target: i0.ɵɵFactoryTarget.Component }); }
999
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: TreeNodeComponent, selector: "ava-tree-node", inputs: { elementList: "elementList", indent: "indent", expansionState: "expansionState", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ng-container *ngFor=\"let element of elementList\">\n <div\n class=\"tree-node-wrapper\"\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <div class=\"tree-node-wrapper__content\">\n <mat-icon\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto'; else nullIcon\"\n matRipple\n (click)=\"expand(element)\"\n class=\"tree-node__icon\"\n >\n {{ expansionState[element.id] ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n <ava-tree-item\n [element]=\"element\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n </div>\n\n <div\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' && expansionState?.[element.id]\"\n [style.paddingLeft]=\"indent\"\n >\n <ava-tree-node\n [elementList]=\"element | groupChildElements\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n [indent]=\"indent\"\n ></ava-tree-node>\n </div>\n</ng-container>\n<ng-template #nullIcon>\n <mat-icon></mat-icon>\n</ng-template>\n", styles: [".tree-node-wrapper{display:flex;align-items:center}.tree-node-wrapper__content{flex:1 0 100%;display:flex}.tree-node__icon{flex-shrink:0}.select{background-color:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: TreeNodeComponent, selector: "ava-tree-node", inputs: ["elementList", "indent", "expansionState", "isSelectionMode", "selectedColor", "allowDblClick"] }, { kind: "component", type: TreeItemComponent, selector: "ava-tree-item", inputs: ["element", "expansionState", "isSelectionMode", "allowDblClick"] }, { kind: "pipe", type: GroupChildElementsPipe, name: "groupChildElements" }] }); }
923
1000
  }
924
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeNodeComponent, decorators: [{
1001
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TreeNodeComponent, decorators: [{
925
1002
  type: Component,
926
1003
  args: [{ selector: 'ava-tree-node', template: "<ng-container *ngFor=\"let element of elementList\">\n <div\n class=\"tree-node-wrapper\"\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <div class=\"tree-node-wrapper__content\">\n <mat-icon\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto'; else nullIcon\"\n matRipple\n (click)=\"expand(element)\"\n class=\"tree-node__icon\"\n >\n {{ expansionState[element.id] ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n <ava-tree-item\n [element]=\"element\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n </div>\n\n <div\n *ngIf=\"element.elementTypeDiscriminator === 'ServiceSpecificationGroupDto' && expansionState?.[element.id]\"\n [style.paddingLeft]=\"indent\"\n >\n <ava-tree-node\n [elementList]=\"element | groupChildElements\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n [indent]=\"indent\"\n ></ava-tree-node>\n </div>\n</ng-container>\n<ng-template #nullIcon>\n <mat-icon></mat-icon>\n</ng-template>\n", styles: [".tree-node-wrapper{display:flex;align-items:center}.tree-node-wrapper__content{flex:1 0 100%;display:flex}.tree-node__icon{flex-shrink:0}.select{background-color:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"] }]
927
1004
  }], ctorParameters: () => [{ type: SelectElementService }], propDecorators: { elementList: [{
@@ -947,10 +1024,10 @@ class TreeStructureComponent {
947
1024
  this.selectedColor = null;
948
1025
  this.allowDblClick = true;
949
1026
  }
950
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeStructureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
951
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TreeStructureComponent, selector: "ava-tree-structure", inputs: { serviceSpecification: "serviceSpecification", indent: "indent", expansionState: "expansionState", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ava-tree-node\n *ngIf=\"serviceSpecification?.elements\"\n [elementList]=\"serviceSpecification?.elements\"\n [indent]=\"indent\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n>\n</ava-tree-node>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TreeNodeComponent, selector: "ava-tree-node", inputs: ["elementList", "indent", "expansionState", "isSelectionMode", "selectedColor", "allowDblClick"] }] }); }
1027
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TreeStructureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1028
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: TreeStructureComponent, selector: "ava-tree-structure", inputs: { serviceSpecification: "serviceSpecification", indent: "indent", expansionState: "expansionState", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ava-tree-node\n *ngIf=\"serviceSpecification?.elements\"\n [elementList]=\"serviceSpecification?.elements\"\n [indent]=\"indent\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n>\n</ava-tree-node>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TreeNodeComponent, selector: "ava-tree-node", inputs: ["elementList", "indent", "expansionState", "isSelectionMode", "selectedColor", "allowDblClick"] }] }); }
952
1029
  }
953
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TreeStructureComponent, decorators: [{
1030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TreeStructureComponent, decorators: [{
954
1031
  type: Component,
955
1032
  args: [{ selector: 'ava-tree-structure', template: "<ava-tree-node\n *ngIf=\"serviceSpecification?.elements\"\n [elementList]=\"serviceSpecification?.elements\"\n [indent]=\"indent\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n>\n</ava-tree-node>\n" }]
956
1033
  }], propDecorators: { serviceSpecification: [{
@@ -986,10 +1063,10 @@ class ListStructureComponent {
986
1063
  this.$destroy.next(true);
987
1064
  this.$destroy.complete();
988
1065
  }
989
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ListStructureComponent, deps: [{ token: SelectElementService }], target: i0.ɵɵFactoryTarget.Component }); }
990
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ListStructureComponent, selector: "ava-list-structure", inputs: { filteredElementList: "filteredElementList", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ng-container *ngFor=\"let element of filteredElementList\">\n <div\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <ava-tree-item\n [element]=\"element\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n</ng-container>\n", styles: [".select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TreeItemComponent, selector: "ava-tree-item", inputs: ["element", "expansionState", "isSelectionMode", "allowDblClick"] }] }); }
1066
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ListStructureComponent, deps: [{ token: SelectElementService }], target: i0.ɵɵFactoryTarget.Component }); }
1067
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: ListStructureComponent, selector: "ava-list-structure", inputs: { filteredElementList: "filteredElementList", isSelectionMode: "isSelectionMode", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<ng-container *ngFor=\"let element of filteredElementList\">\n <div\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <ava-tree-item\n [element]=\"element\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n</ng-container>\n", styles: [".select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TreeItemComponent, selector: "ava-tree-item", inputs: ["element", "expansionState", "isSelectionMode", "allowDblClick"] }] }); }
991
1068
  }
992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ListStructureComponent, decorators: [{
1069
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ListStructureComponent, decorators: [{
993
1070
  type: Component,
994
1071
  args: [{ selector: 'ava-list-structure', template: "<ng-container *ngFor=\"let element of filteredElementList\">\n <div\n [class.select]=\"!isSelectionMode && element.id === selectedElement?.id\"\n [style.background]=\"!isSelectionMode && element.id === selectedElement?.id ? selectedColor || '' : ''\"\n >\n <ava-tree-item\n [element]=\"element\"\n [isSelectionMode]=\"isSelectionMode\"\n [allowDblClick]=\"allowDblClick\"\n ></ava-tree-item>\n </div>\n</ng-container>\n", styles: [".select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}\n"] }]
995
1072
  }], ctorParameters: () => [{ type: SelectElementService }], propDecorators: { filteredElementList: [{
@@ -1079,10 +1156,10 @@ class TableStructureComponent {
1079
1156
  changeSelecting(element, event) {
1080
1157
  this.treeNodeSelectionService.changeSelecting(event, element.id);
1081
1158
  }
1082
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TableStructureComponent, deps: [{ token: SelectElementService }, { token: TreeNodeSelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1083
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TableStructureComponent, selector: "ava-table-structure", inputs: { filteredElementList: "filteredElementList", isSelectionMode: "isSelectionMode", addTableColumns: "addTableColumns", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<table\n mat-table\n [dataSource]=\"filteredElementList\"\n>\n <ng-container matColumnDef=\"icon\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-cell-small-width\"\n >\n <mat-icon\n class=\"icon-element\"\n saveChangingView=\"icon\"\n [id]=\"row.id\"\n >\n {{ row | elementIconName }}\n </mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"checkbox\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"table-cell-small-width\"\n >\n <mat-checkbox\n class=\"checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"itemNumber\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n OZ\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n [style.width.ch]=\"row?.itemNumber?.stringRepresentation.length\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementItemNumber }}\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"text\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n Text\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-text\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementText }}\n </div>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let oneColumn of addTableColumns\">\n <ng-container matColumnDef=\"{{ oneColumn.name }}\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n {{ oneColumn.title }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n >\n <div\n [style.textAlign]=\"oneColumn.align\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ !oneColumn.numberFormat ? row[oneColumn.name] : (row[oneColumn.name] | number: oneColumn.numberFormat) }}\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <tr\n mat-header-row\n *matHeaderRowDef=\"displayedColumns; sticky: true\"\n class=\"mat-header-row\"\n ></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n (click)=\"select(row)\"\n (dblclick)=\"dblSelect(row)\"\n (contextmenu)=\"openContextMenu($event, row)\"\n [ngClass]=\"{\n choose: !isSelectionMode && row.id === preselectedElement?.id,\n select: !isSelectionMode && row.id === selectedElement?.id\n }\"\n [style.background]=\"!isSelectionMode && row.id === selectedElement?.id ? selectedColor || '' : ''\"\n [id]=\"row.id\"\n ></tr>\n</table>\n", styles: ["table{width:100%}table tr.mat-mdc-row,table tr.mat-mdc-header-row{height:24px}table tr input{box-sizing:border-box;padding:0 3px;outline:none;border:none;height:20px;width:calc(100% - 2px)}table tr input:focus{background:#fff!important}table tr .right{text-align:right}table tr td,table tr th{border-right:1px solid #777;border-bottom:1px solid #777;padding:0}table tr td:first-child,table tr th:first-child{border-left:1px solid #777}table tr td.min-width,table tr th.min-width{width:12ch;min-width:12ch}table tr td div,table tr th div{padding:0 3px}table tr th{border-top:1px solid #777;padding:0 3px}.table-text{overflow-x:hidden;position:relative}.table-text div{position:absolute;top:50%;left:0;white-space:nowrap;transform:translateY(-50%)}.select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}.choose div{color:red!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}.text-element{-webkit-user-select:none;user-select:none}.table-cell-small-width{width:24px;min-width:24px;position:relative;text-align:center}.table-cell-small-width .icon-element{position:absolute;top:0;left:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: SaveChangingViewDirective, selector: "[saveChangingView]", inputs: ["attributeValue"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: ElementIconNamePipe, name: "elementIconName" }, { kind: "pipe", type: ElementTextPipe, name: "elementText" }, { kind: "pipe", type: ElementItemNumberPipe, name: "elementItemNumber" }] }); }
1159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TableStructureComponent, deps: [{ token: SelectElementService }, { token: TreeNodeSelectionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: TableStructureComponent, selector: "ava-table-structure", inputs: { filteredElementList: "filteredElementList", isSelectionMode: "isSelectionMode", addTableColumns: "addTableColumns", selectedColor: "selectedColor", allowDblClick: "allowDblClick" }, ngImport: i0, template: "<table\n mat-table\n [dataSource]=\"filteredElementList\"\n>\n <ng-container matColumnDef=\"icon\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-cell-small-width\"\n >\n <mat-icon\n class=\"icon-element\"\n saveChangingView=\"icon\"\n [id]=\"row.id\"\n >\n {{ row | elementIconName }}\n </mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"checkbox\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"table-cell-small-width\"\n >\n <mat-checkbox\n class=\"checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"itemNumber\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n OZ\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n [style.width.ch]=\"row?.itemNumber?.stringRepresentation.length\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementItemNumber }}\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"text\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n Text\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-text\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementText }}\n </div>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let oneColumn of addTableColumns\">\n <ng-container matColumnDef=\"{{ oneColumn.name }}\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n {{ oneColumn.title }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n >\n <div\n [style.textAlign]=\"oneColumn.align\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ !oneColumn.numberFormat ? row[oneColumn.name] : (row[oneColumn.name] | number: oneColumn.numberFormat) }}\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <tr\n mat-header-row\n *matHeaderRowDef=\"displayedColumns; sticky: true\"\n class=\"mat-header-row\"\n ></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n (click)=\"select(row)\"\n (dblclick)=\"dblSelect(row)\"\n (contextmenu)=\"openContextMenu($event, row)\"\n [ngClass]=\"{\n choose: !isSelectionMode && row.id === preselectedElement?.id,\n select: !isSelectionMode && row.id === selectedElement?.id\n }\"\n [style.background]=\"!isSelectionMode && row.id === selectedElement?.id ? selectedColor || '' : ''\"\n [id]=\"row.id\"\n ></tr>\n</table>\n", styles: ["table{width:100%}table tr.mat-mdc-row,table tr.mat-mdc-header-row{height:24px}table tr input{box-sizing:border-box;padding:0 3px;outline:none;border:none;height:20px;width:calc(100% - 2px)}table tr input:focus{background:#fff!important}table tr .right{text-align:right}table tr td,table tr th{border-right:1px solid #777;border-bottom:1px solid #777;padding:0}table tr td:first-child,table tr th:first-child{border-left:1px solid #777}table tr td.min-width,table tr th.min-width{width:12ch;min-width:12ch}table tr td div,table tr th div{padding:0 3px}table tr th{border-top:1px solid #777;padding:0 3px}.table-text{overflow-x:hidden;position:relative}.table-text div{position:absolute;top:50%;left:0;white-space:nowrap;transform:translateY(-50%)}.select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}.choose div{color:red!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}.text-element{-webkit-user-select:none;user-select:none}.table-cell-small-width{width:24px;min-width:24px;position:relative;text-align:center}.table-cell-small-width .icon-element{position:absolute;top:0;left:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: SaveChangingViewDirective, selector: "[saveChangingView]", inputs: ["attributeValue"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: ElementIconNamePipe, name: "elementIconName" }, { kind: "pipe", type: ElementTextPipe, name: "elementText" }, { kind: "pipe", type: ElementItemNumberPipe, name: "elementItemNumber" }] }); }
1084
1161
  }
1085
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TableStructureComponent, decorators: [{
1162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TableStructureComponent, decorators: [{
1086
1163
  type: Component,
1087
1164
  args: [{ selector: 'ava-table-structure', template: "<table\n mat-table\n [dataSource]=\"filteredElementList\"\n>\n <ng-container matColumnDef=\"icon\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-cell-small-width\"\n >\n <mat-icon\n class=\"icon-element\"\n saveChangingView=\"icon\"\n [id]=\"row.id\"\n >\n {{ row | elementIconName }}\n </mat-icon>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"checkbox\">\n <th\n mat-header-cell\n *matHeaderCellDef\n ></th>\n <td\n mat-cell\n *matCellDef=\"let element\"\n class=\"table-cell-small-width\"\n >\n <mat-checkbox\n class=\"checkbox\"\n color=\"primary\"\n [indeterminate]=\"checkedElements[element.id].indeterminate\"\n [(ngModel)]=\"checkedElements[element.id].checked\"\n (ngModelChange)=\"changeSelecting(element, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n </mat-checkbox>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"itemNumber\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n OZ\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n [style.width.ch]=\"row?.itemNumber?.stringRepresentation.length\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementItemNumber }}\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"text\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n Text\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n class=\"table-text\"\n >\n <div\n class=\"text-element\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ row | elementText }}\n </div>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let oneColumn of addTableColumns\">\n <ng-container matColumnDef=\"{{ oneColumn.name }}\">\n <th\n mat-header-cell\n *matHeaderCellDef\n >\n {{ oneColumn.title }}\n </th>\n <td\n mat-cell\n *matCellDef=\"let row\"\n >\n <div\n [style.textAlign]=\"oneColumn.align\"\n saveChangingView=\"text\"\n [id]=\"row.id\"\n >\n {{ !oneColumn.numberFormat ? row[oneColumn.name] : (row[oneColumn.name] | number: oneColumn.numberFormat) }}\n </div>\n </td>\n </ng-container>\n </ng-container>\n\n <tr\n mat-header-row\n *matHeaderRowDef=\"displayedColumns; sticky: true\"\n class=\"mat-header-row\"\n ></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns\"\n (click)=\"select(row)\"\n (dblclick)=\"dblSelect(row)\"\n (contextmenu)=\"openContextMenu($event, row)\"\n [ngClass]=\"{\n choose: !isSelectionMode && row.id === preselectedElement?.id,\n select: !isSelectionMode && row.id === selectedElement?.id\n }\"\n [style.background]=\"!isSelectionMode && row.id === selectedElement?.id ? selectedColor || '' : ''\"\n [id]=\"row.id\"\n ></tr>\n</table>\n", styles: ["table{width:100%}table tr.mat-mdc-row,table tr.mat-mdc-header-row{height:24px}table tr input{box-sizing:border-box;padding:0 3px;outline:none;border:none;height:20px;width:calc(100% - 2px)}table tr input:focus{background:#fff!important}table tr .right{text-align:right}table tr td,table tr th{border-right:1px solid #777;border-bottom:1px solid #777;padding:0}table tr td:first-child,table tr th:first-child{border-left:1px solid #777}table tr td.min-width,table tr th.min-width{width:12ch;min-width:12ch}table tr td div,table tr th div{padding:0 3px}table tr th{border-top:1px solid #777;padding:0 3px}.table-text{overflow-x:hidden;position:relative}.table-text div{position:absolute;top:50%;left:0;white-space:nowrap;transform:translateY(-50%)}.select{background:var(--mdc-filled-text-field-caret-color);color:#fff}.select *{color:#fff}.choose div{color:red!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox{padding:0;flex:0 0 16px;width:16px;height:16px}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control{width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:0!important}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background{top:0;left:0;width:100%;height:100%}::ng-deep .checkbox .mdc-form-field .mdc-checkbox .mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff!important}::ng-deep .checkbox .mdc-form-field>label{line-height:24px;padding-left:8px;-webkit-user-select:none;user-select:none}.text-element{-webkit-user-select:none;user-select:none}.table-cell-small-width{width:24px;min-width:24px;position:relative;text-align:center}.table-cell-small-width .icon-element{position:absolute;top:0;left:0}\n"] }]
1088
1165
  }], ctorParameters: () => [{ type: SelectElementService }, { type: TreeNodeSelectionService }, { type: i0.ChangeDetectorRef }], propDecorators: { filteredElementList: [{
@@ -1434,10 +1511,10 @@ class AvaTreeComponent {
1434
1511
  }
1435
1512
  });
1436
1513
  }
1437
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: AvaTreeComponent, deps: [{ token: FlatElementsService, self: true }, { token: SelectElementService, self: true }, { token: TreeNodeSelectionService, self: true }, { token: ExpandParentGroupService, self: true }, { token: KeyboardOperationService, self: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1438
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: AvaTreeComponent, selector: "ava-tree", inputs: { project: "project", expansionState: "expansionState", selectedNodeId: "selectedNodeId", indent: "indent", selectedColor: "selectedColor", modeView: "modeView", allowDblClick: "allowDblClick", isSelectionMode: "isSelectionMode", initiallySelectedElements: "initiallySelectedElements", textWords: "textWords", mouseAwareKeyboardControl: "mouseAwareKeyboardControl", customKeyboardOperationConfig: "customKeyboardOperationConfig", listFilterFunc: "listFilterFunc", addTableColumns: "addTableColumns", functionView: "functionView" }, outputs: { selectClick: "selectClick", selectDblClick: "selectDblClick", contextMenuEvent: "contextMenuEvent", selectedElementsChanged: "selectedElementsChanged" }, providers: [FlatElementsService, SelectElementService, TreeNodeSelectionService, ExpandParentGroupService, KeyboardOperationService], viewQueries: [{ propertyName: "avaTreeWrapper", first: true, predicate: ["avaTreeWrapper"], descendants: true }, { propertyName: "avaMainWrapper", first: true, predicate: ["avaMainWrapper"], descendants: true }, { propertyName: "avaTreeFilterInput", first: true, predicate: ["avaTreeFilterInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"main-wrapper\"\n #avaMainWrapper\n>\n <div\n class=\"control\"\n #control\n >\n <mat-form-field class=\"control-filter\">\n <mat-label>{{ textWords?.textSearch }}</mat-label>\n <input\n matInput\n [ngModel]=\"filterInput\"\n (ngModelChange)=\"onFilter($event)\"\n #avaTreeFilterInput\n />\n </mat-form-field>\n <ng-container *ngIf=\"modeView === listModeViewType.Tree\">\n <button\n class=\"control-icon\"\n mat-icon-button\n color=\"primary\"\n (click)=\"changeAllElementsExpansionStatus(true)\"\n [matTooltip]=\"textWords?.tooltipAllOpen || ''\"\n >\n <mat-icon class=\"layer-background\">layers</mat-icon>\n <mat-icon class=\"layer-icon\">add</mat-icon>\n </button>\n <button\n class=\"control-icon\"\n mat-icon-button\n color=\"primary\"\n (click)=\"changeAllElementsExpansionStatus(false)\"\n [matTooltip]=\"textWords?.tooltipAllClose || ''\"\n >\n <mat-icon class=\"layer-background\">layers</mat-icon>\n <mat-icon class=\"layer-icon\">remove</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"isSelectionMode\">\n <button\n mat-raised-button\n (click)=\"selectOrDeselectAll(true)\"\n [matTooltip]=\"textWords?.tooltipAllAdd || ''\"\n class=\"control-button\"\n >\n <mat-icon>add</mat-icon>\n <span>{{ textWords?.textAll }}</span>\n </button>\n <button\n mat-raised-button\n (click)=\"selectOrDeselectAll(false)\"\n [matTooltip]=\"textWords?.tooltipAllRemove || ''\"\n class=\"control-button\"\n >\n <mat-icon>remove</mat-icon>\n <span>{{ textWords?.textAll }}</span>\n </button>\n </ng-container>\n </div>\n <div\n [style.height]=\"'calc(100% - ' + control.offsetHeight + 'px)'\"\n class=\"ava-tree-wrapper\"\n #avaTreeWrapper\n >\n <ng-container *ngIf=\"flatElements?.length; else nothing\">\n <ng-container *ngIf=\"filteredElementList?.length; else nothingFiltered\">\n <ava-tree-structure\n *ngIf=\"modeView === listModeViewType.Tree && !avaTreeFilterInput.value\"\n [serviceSpecification]=\"serviceSpecification\"\n [indent]=\"indent\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-tree-structure>\n <ava-list-structure\n *ngIf=\"modeView === listModeViewType.List || (modeView === listModeViewType.Tree && avaTreeFilterInput.value)\"\n [filteredElementList]=\"filteredElementList\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-list-structure>\n <ava-table-structure\n *ngIf=\"modeView === listModeViewType.Table\"\n [filteredElementList]=\"filteredElementList\"\n [isSelectionMode]=\"isSelectionMode\"\n [addTableColumns]=\"addTableColumns\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-table-structure>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<ng-template #nothing>\n {{ textWords?.textNothing }}\n</ng-template>\n<ng-template #nothingFiltered>\n {{ textWords?.textNothingFiltered }}\n</ng-template>\n", styles: [".main-wrapper{max-height:100%;height:100%;overflow-y:auto;overflow-x:hidden}.control{display:flex;align-items:center;gap:5px;padding:4px}.control-filter{flex-grow:1}.control-icon{width:36px;height:36px;padding:0}.control-button{padding:0 5px}.ava-tree-wrapper{overflow-y:auto;overflow-x:hidden}::ng-deep .control .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .control .control-filter .mat-mdc-form-field-infix{min-height:auto;padding-top:10px;padding-bottom:2px}::ng-deep .control .control-filter .mat-mdc-floating-label{top:18px}::ng-deep .control .control-filter .mdc-text-field{padding:0 6px}.layer-background{font-size:36px;width:36px;height:36px}.layer-icon{width:36px;height:36px;position:absolute;inset:1px 0 0;color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: TreeStructureComponent, selector: "ava-tree-structure", inputs: ["serviceSpecification", "indent", "expansionState", "isSelectionMode", "selectedColor", "allowDblClick"] }, { kind: "component", type: ListStructureComponent, selector: "ava-list-structure", inputs: ["filteredElementList", "isSelectionMode", "selectedColor", "allowDblClick"] }, { kind: "component", type: TableStructureComponent, selector: "ava-table-structure", inputs: ["filteredElementList", "isSelectionMode", "addTableColumns", "selectedColor", "allowDblClick"] }] }); }
1514
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AvaTreeComponent, deps: [{ token: FlatElementsService, self: true }, { token: SelectElementService, self: true }, { token: TreeNodeSelectionService, self: true }, { token: ExpandParentGroupService, self: true }, { token: KeyboardOperationService, self: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1515
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.5", type: AvaTreeComponent, selector: "ava-tree", inputs: { project: "project", expansionState: "expansionState", selectedNodeId: "selectedNodeId", indent: "indent", selectedColor: "selectedColor", modeView: "modeView", allowDblClick: "allowDblClick", isSelectionMode: "isSelectionMode", initiallySelectedElements: "initiallySelectedElements", textWords: "textWords", mouseAwareKeyboardControl: "mouseAwareKeyboardControl", customKeyboardOperationConfig: "customKeyboardOperationConfig", listFilterFunc: "listFilterFunc", addTableColumns: "addTableColumns", functionView: "functionView" }, outputs: { selectClick: "selectClick", selectDblClick: "selectDblClick", contextMenuEvent: "contextMenuEvent", selectedElementsChanged: "selectedElementsChanged" }, providers: [FlatElementsService, SelectElementService, TreeNodeSelectionService, ExpandParentGroupService, KeyboardOperationService], viewQueries: [{ propertyName: "avaTreeWrapper", first: true, predicate: ["avaTreeWrapper"], descendants: true }, { propertyName: "avaMainWrapper", first: true, predicate: ["avaMainWrapper"], descendants: true }, { propertyName: "avaTreeFilterInput", first: true, predicate: ["avaTreeFilterInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"main-wrapper\"\n #avaMainWrapper\n>\n <div\n class=\"control\"\n #control\n >\n <mat-form-field class=\"control-filter\">\n <mat-label>{{ textWords?.textSearch }}</mat-label>\n <input\n matInput\n [ngModel]=\"filterInput\"\n (ngModelChange)=\"onFilter($event)\"\n #avaTreeFilterInput\n />\n </mat-form-field>\n <ng-container *ngIf=\"modeView === listModeViewType.Tree\">\n <button\n class=\"control-icon\"\n mat-icon-button\n color=\"primary\"\n (click)=\"changeAllElementsExpansionStatus(true)\"\n [matTooltip]=\"textWords?.tooltipAllOpen || ''\"\n >\n <mat-icon class=\"layer-background\">layers</mat-icon>\n <mat-icon class=\"layer-icon\">add</mat-icon>\n </button>\n <button\n class=\"control-icon\"\n mat-icon-button\n color=\"primary\"\n (click)=\"changeAllElementsExpansionStatus(false)\"\n [matTooltip]=\"textWords?.tooltipAllClose || ''\"\n >\n <mat-icon class=\"layer-background\">layers</mat-icon>\n <mat-icon class=\"layer-icon\">remove</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"isSelectionMode\">\n <button\n mat-raised-button\n (click)=\"selectOrDeselectAll(true)\"\n [matTooltip]=\"textWords?.tooltipAllAdd || ''\"\n class=\"control-button\"\n >\n <mat-icon>add</mat-icon>\n <span>{{ textWords?.textAll }}</span>\n </button>\n <button\n mat-raised-button\n (click)=\"selectOrDeselectAll(false)\"\n [matTooltip]=\"textWords?.tooltipAllRemove || ''\"\n class=\"control-button\"\n >\n <mat-icon>remove</mat-icon>\n <span>{{ textWords?.textAll }}</span>\n </button>\n </ng-container>\n </div>\n <div\n [style.height]=\"'calc(100% - ' + control.offsetHeight + 'px)'\"\n class=\"ava-tree-wrapper\"\n #avaTreeWrapper\n >\n <ng-container *ngIf=\"flatElements?.length; else nothing\">\n <ng-container *ngIf=\"filteredElementList?.length; else nothingFiltered\">\n <ava-tree-structure\n *ngIf=\"modeView === listModeViewType.Tree && !avaTreeFilterInput.value\"\n [serviceSpecification]=\"serviceSpecification\"\n [indent]=\"indent\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-tree-structure>\n <ava-list-structure\n *ngIf=\"modeView === listModeViewType.List || (modeView === listModeViewType.Tree && avaTreeFilterInput.value)\"\n [filteredElementList]=\"filteredElementList\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-list-structure>\n <ava-table-structure\n *ngIf=\"modeView === listModeViewType.Table\"\n [filteredElementList]=\"filteredElementList\"\n [isSelectionMode]=\"isSelectionMode\"\n [addTableColumns]=\"addTableColumns\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-table-structure>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<ng-template #nothing>\n {{ textWords?.textNothing }}\n</ng-template>\n<ng-template #nothingFiltered>\n {{ textWords?.textNothingFiltered }}\n</ng-template>\n", styles: [".main-wrapper{max-height:100%;height:100%;overflow-y:auto;overflow-x:hidden}.control{display:flex;align-items:center;gap:5px;padding:4px}.control-filter{flex-grow:1}.control-icon{width:36px;height:36px;padding:0}.control-button{padding:0 5px}.ava-tree-wrapper{overflow-y:auto;overflow-x:hidden}::ng-deep .control .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .control .control-filter .mat-mdc-form-field-infix{min-height:auto;padding-top:10px;padding-bottom:2px}::ng-deep .control .control-filter .mat-mdc-floating-label{top:18px}::ng-deep .control .control-filter .mdc-text-field{padding:0 6px}.layer-background{font-size:36px;width:36px;height:36px}.layer-icon{width:36px;height:36px;position:absolute;inset:1px 0 0;color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: TreeStructureComponent, selector: "ava-tree-structure", inputs: ["serviceSpecification", "indent", "expansionState", "isSelectionMode", "selectedColor", "allowDblClick"] }, { kind: "component", type: ListStructureComponent, selector: "ava-list-structure", inputs: ["filteredElementList", "isSelectionMode", "selectedColor", "allowDblClick"] }, { kind: "component", type: TableStructureComponent, selector: "ava-table-structure", inputs: ["filteredElementList", "isSelectionMode", "addTableColumns", "selectedColor", "allowDblClick"] }] }); }
1439
1516
  }
1440
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: AvaTreeComponent, decorators: [{
1517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AvaTreeComponent, decorators: [{
1441
1518
  type: Component,
1442
1519
  args: [{ selector: 'ava-tree', providers: [FlatElementsService, SelectElementService, TreeNodeSelectionService, ExpandParentGroupService, KeyboardOperationService], template: "<div\n class=\"main-wrapper\"\n #avaMainWrapper\n>\n <div\n class=\"control\"\n #control\n >\n <mat-form-field class=\"control-filter\">\n <mat-label>{{ textWords?.textSearch }}</mat-label>\n <input\n matInput\n [ngModel]=\"filterInput\"\n (ngModelChange)=\"onFilter($event)\"\n #avaTreeFilterInput\n />\n </mat-form-field>\n <ng-container *ngIf=\"modeView === listModeViewType.Tree\">\n <button\n class=\"control-icon\"\n mat-icon-button\n color=\"primary\"\n (click)=\"changeAllElementsExpansionStatus(true)\"\n [matTooltip]=\"textWords?.tooltipAllOpen || ''\"\n >\n <mat-icon class=\"layer-background\">layers</mat-icon>\n <mat-icon class=\"layer-icon\">add</mat-icon>\n </button>\n <button\n class=\"control-icon\"\n mat-icon-button\n color=\"primary\"\n (click)=\"changeAllElementsExpansionStatus(false)\"\n [matTooltip]=\"textWords?.tooltipAllClose || ''\"\n >\n <mat-icon class=\"layer-background\">layers</mat-icon>\n <mat-icon class=\"layer-icon\">remove</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"isSelectionMode\">\n <button\n mat-raised-button\n (click)=\"selectOrDeselectAll(true)\"\n [matTooltip]=\"textWords?.tooltipAllAdd || ''\"\n class=\"control-button\"\n >\n <mat-icon>add</mat-icon>\n <span>{{ textWords?.textAll }}</span>\n </button>\n <button\n mat-raised-button\n (click)=\"selectOrDeselectAll(false)\"\n [matTooltip]=\"textWords?.tooltipAllRemove || ''\"\n class=\"control-button\"\n >\n <mat-icon>remove</mat-icon>\n <span>{{ textWords?.textAll }}</span>\n </button>\n </ng-container>\n </div>\n <div\n [style.height]=\"'calc(100% - ' + control.offsetHeight + 'px)'\"\n class=\"ava-tree-wrapper\"\n #avaTreeWrapper\n >\n <ng-container *ngIf=\"flatElements?.length; else nothing\">\n <ng-container *ngIf=\"filteredElementList?.length; else nothingFiltered\">\n <ava-tree-structure\n *ngIf=\"modeView === listModeViewType.Tree && !avaTreeFilterInput.value\"\n [serviceSpecification]=\"serviceSpecification\"\n [indent]=\"indent\"\n [expansionState]=\"expansionState\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-tree-structure>\n <ava-list-structure\n *ngIf=\"modeView === listModeViewType.List || (modeView === listModeViewType.Tree && avaTreeFilterInput.value)\"\n [filteredElementList]=\"filteredElementList\"\n [isSelectionMode]=\"isSelectionMode\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-list-structure>\n <ava-table-structure\n *ngIf=\"modeView === listModeViewType.Table\"\n [filteredElementList]=\"filteredElementList\"\n [isSelectionMode]=\"isSelectionMode\"\n [addTableColumns]=\"addTableColumns\"\n [selectedColor]=\"selectedColor\"\n [allowDblClick]=\"allowDblClick\"\n >\n </ava-table-structure>\n </ng-container>\n </ng-container>\n </div>\n</div>\n<ng-template #nothing>\n {{ textWords?.textNothing }}\n</ng-template>\n<ng-template #nothingFiltered>\n {{ textWords?.textNothingFiltered }}\n</ng-template>\n", styles: [".main-wrapper{max-height:100%;height:100%;overflow-y:auto;overflow-x:hidden}.control{display:flex;align-items:center;gap:5px;padding:4px}.control-filter{flex-grow:1}.control-icon{width:36px;height:36px;padding:0}.control-button{padding:0 5px}.ava-tree-wrapper{overflow-y:auto;overflow-x:hidden}::ng-deep .control .mat-mdc-form-field-subscript-wrapper{display:none}::ng-deep .control .control-filter .mat-mdc-form-field-infix{min-height:auto;padding-top:10px;padding-bottom:2px}::ng-deep .control .control-filter .mat-mdc-floating-label{top:18px}::ng-deep .control .control-filter .mdc-text-field{padding:0 6px}.layer-background{font-size:36px;width:36px;height:36px}.layer-icon{width:36px;height:36px;position:absolute;inset:1px 0 0;color:#fff}\n"] }]
1443
1520
  }], ctorParameters: () => [{ type: FlatElementsService, decorators: [{
@@ -1500,8 +1577,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
1500
1577
  }] } });
1501
1578
 
1502
1579
  class AngularAvaModule {
1503
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: AngularAvaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1504
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: AngularAvaModule, declarations: [TreeStructureComponent,
1580
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AngularAvaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1581
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: AngularAvaModule, declarations: [TreeStructureComponent,
1505
1582
  TreeNodeComponent,
1506
1583
  AvaTreeComponent,
1507
1584
  TreeItemComponent,
@@ -1522,7 +1599,7 @@ class AngularAvaModule {
1522
1599
  MatCheckboxModule,
1523
1600
  MatTableModule,
1524
1601
  MatTooltipModule], exports: [AvaTreeComponent] }); }
1525
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: AngularAvaModule, imports: [CommonModule,
1602
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AngularAvaModule, imports: [CommonModule,
1526
1603
  MatIconModule,
1527
1604
  MatRippleModule,
1528
1605
  MatInputModule,
@@ -1534,7 +1611,7 @@ class AngularAvaModule {
1534
1611
  MatTableModule,
1535
1612
  MatTooltipModule] }); }
1536
1613
  }
1537
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: AngularAvaModule, decorators: [{
1614
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AngularAvaModule, decorators: [{
1538
1615
  type: NgModule,
1539
1616
  args: [{
1540
1617
  declarations: [
@@ -1569,14 +1646,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
1569
1646
 
1570
1647
  // This file is automatically generated as part of the build process
1571
1648
  const version = {
1572
- version: "1.0.1-beta0011",
1573
- commitInfo: "Branch.develop.Sha.f3134912ea1cf46262435544bc253af6173bfdcf",
1574
- commitDate: "2024-05-10",
1575
- commitHash: "f3134912ea1cf46262435544bc253af6173bfdcf",
1576
- informationalVersion: "1.0.1-beta.11+Branch.develop.Sha.f3134912ea1cf46262435544bc253af6173bfdcf",
1577
- buildDateUtc: new Date(Date.UTC(2024, 4, 10, 8, 26, 8))
1649
+ version: "1.0.1-beta0024",
1650
+ commitInfo: "Branch.develop.Sha.c2f0afd29b74bb627c910141320dab0715472fda",
1651
+ commitDate: "2024-07-08",
1652
+ commitHash: "c2f0afd29b74bb627c910141320dab0715472fda",
1653
+ informationalVersion: "1.0.1-beta.24+Branch.develop.Sha.c2f0afd29b74bb627c910141320dab0715472fda",
1654
+ buildDateUtc: new Date(Date.UTC(2024, 6, 8, 13, 26, 17))
1578
1655
  };
1579
1656
 
1657
+ class InvoiceDisplayComponent {
1658
+ /**
1659
+ * You can supply a map of strings to be used for the text in the tree. This allows you to translate
1660
+ * the text in the tree to other languages.
1661
+ * {
1662
+ * invoiceTitle?: string;
1663
+ * vatId?: string;
1664
+ * detailsInvoiceNumber?: string;
1665
+ * detailsInvoiceDate?: string;
1666
+ * detailsPaymentDueDate?: string;
1667
+ * detailsCurrencyCode?: string;
1668
+ * detailsPaymentTerms?: string;
1669
+ * referencesTopic?: string;
1670
+ * referencesBuyerReference?: string;
1671
+ * referencesProjectReference?: string;
1672
+ * referencesContractReference?: string;
1673
+ * referencesPurchaseOrderReference?: string;
1674
+ * referencesSalesOrderReference?: string;
1675
+ * referencesReceivingAdviceReference?: string;
1676
+ * referencesDispatchAdviceReference?: string;
1677
+ * referencesTenderOrLotReference?: string;
1678
+ * referencesInvoicedObjectIdentifier?: string;
1679
+ * tableHeadDescription?: string;
1680
+ * tableHeadQuantity?: string;
1681
+ * tableHeadUnit?: string;
1682
+ * tableHeadNetPrice?: string;
1683
+ * tableHeadNetAmount?: string;
1684
+ * totalsTopic?: string;
1685
+ * totalsTotalNet?: string;
1686
+ * totalsTotalAllowances?: string;
1687
+ * totalsTotalCharges?: string;
1688
+ * totalsTotalAfterDeductions?: string;
1689
+ * totalsTotalVatAmount?: string;
1690
+ * totalsTotalGross?: string;
1691
+ * totalsAlreadyPaidTotal?: string;
1692
+ * totalsTotalToBePaid?: string;
1693
+ * instructionsTopic?: string;
1694
+ * instructionsAccountIdentifier?: string;
1695
+ * instructionsAccountName?: string;
1696
+ * instructionsServiceProviderIdentifier?: string;
1697
+ * notesTopic?: string;
1698
+ * }
1699
+ */
1700
+ set textWords(words) {
1701
+ this._textWords = { ...this.textWords, ...words };
1702
+ } // allow to translate all texts to other language
1703
+ get textWords() {
1704
+ return this._textWords;
1705
+ }
1706
+ constructor() {
1707
+ this.invoice = input.required();
1708
+ this._textWords = null;
1709
+ this._textWords = { ...DEFAULT_TEXT_WORD_INVOICE };
1710
+ }
1711
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: InvoiceDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1712
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: InvoiceDisplayComponent, isStandalone: true, selector: "ava-invoice-display", inputs: { invoice: { classPropertyName: "invoice", publicName: "invoice", isSignal: true, isRequired: true, transformFunction: null }, textWords: { classPropertyName: "textWords", publicName: "textWords", isSignal: false, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"invoice-container\">\n <!-- Seller and Buyer Information -->\n <h1 class=\"invoice-title\">{{ textWords?.invoiceTitle }}</h1>\n <header class=\"invoice-header\">\n <div class=\"seller-info\">\n <p>\n <strong>{{ invoice().seller?.name }}</strong>\n </p>\n <p>{{ invoice().seller?.address }}</p>\n <p>{{ invoice().seller?.city }}, {{ invoice().seller?.zipCode }}</p>\n <p>{{ invoice().seller?.countryCode }}</p>\n <p>\n <strong>{{ textWords?.vatId }}:</strong> {{ invoice().seller?.vatId }}\n </p>\n </div>\n <div class=\"invoice-details\">\n <p>\n <strong>{{ textWords?.detailsInvoiceNumber }}:</strong> {{ invoice().invoiceNumber }}\n </p>\n <p>\n <strong>{{ textWords?.detailsInvoiceDate }}:</strong> {{ invoice().invoiceDate | date: 'dd.MM.yyyy' }}\n </p>\n <p>\n <strong>{{ textWords?.detailsPaymentDueDate }}:</strong> {{ invoice().paymentDueDate | date: 'dd.MM.yyyy' }}\n </p>\n <p>\n <strong>{{ textWords?.detailsCurrencyCode }}:</strong> {{ invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.detailsPaymentTerms }}:</strong> {{ invoice().paymentTerms }}\n </p>\n </div>\n <div class=\"buyer-info\">\n <p>\n <strong>{{ invoice().buyer?.name }}</strong>\n </p>\n <p>{{ invoice().buyer?.address }}</p>\n <p>{{ invoice().buyer?.city }}, {{ invoice().buyer?.zipCode }}</p>\n <p>{{ invoice().buyer?.countryCode }}</p>\n <p>\n <strong>{{ textWords?.vatId }}:</strong> {{ invoice().buyer?.vatId }}\n </p>\n </div>\n </header>\n\n <section class=\"invoice-references\">\n <h2>{{ textWords?.referencesTopic }}</h2>\n <p>\n <strong>{{ textWords?.referencesBuyerReference }}:</strong> {{ invoice().references?.buyerReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesProjectReference }}:</strong> {{ invoice().references?.projectReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesContractReference }}:</strong> {{ invoice().references?.contractReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesPurchaseOrderReference }}:</strong> {{ invoice().references?.purchaseOrderReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesSalesOrderReference }}:</strong> {{ invoice().references?.salesOrderReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesReceivingAdviceReference }}:</strong> {{ invoice().references?.receivingAdviceReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesDispatchAdviceReference }}:</strong> {{ invoice().references?.dispatchAdviceReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesTenderOrLotReference }}:</strong> {{ invoice().references?.tenderOrLotReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesInvoicedObjectIdentifier }}:</strong> {{ invoice().references?.invoicedObjectIdentifier }}\n </p>\n </section>\n\n <table class=\"invoice-table\">\n <thead>\n <tr>\n <th>#</th>\n <th>{{ textWords?.tableHeadDescription }}</th>\n <th>{{ textWords?.tableHeadQuantity }}</th>\n <th>{{ textWords?.tableHeadUnit }}</th>\n <th>{{ textWords?.tableHeadNetPrice }}</th>\n <th>{{ textWords?.tableHeadNetAmount }}</th>\n </tr>\n </thead>\n <tbody>\n @for (item of invoice().lineItems; track item; let i = $index) {\n <tr>\n <td>{{ i + 1 }}</td>\n <td>{{ item.itemInformation?.description }}</td>\n <td>{{ item.quantity }}</td>\n <td>{{ item.unitCode }}</td>\n <td>{{ item.priceDetails?.netPrice | currency: invoice().currencyCode }}</td>\n <td>{{ item.netAmount | currency: invoice().currencyCode }}</td>\n </tr>\n }\n </tbody>\n </table>\n\n <div class=\"addition-info\">\n <section class=\"invoice-totals\">\n <h2>{{ textWords?.totalsTopic }}</h2>\n <p>\n <strong>{{ textWords?.totalsTotalNet }}:</strong> {{ invoice().totals?.totalNet | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalAllowances }}:</strong> {{ invoice().totals?.totalAllowances | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalCharges }}:</strong> {{ invoice().totals?.totalCharges | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalAfterDeductions }}:</strong>\n {{ invoice().totals?.totalAfterDeductions | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalVatAmount }}:</strong> {{ invoice().totals?.totalVatAmount | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalGross }}:</strong> {{ invoice().totals?.totalGross | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsAlreadyPaidTotal }}:</strong>\n {{ invoice().totals?.alreadyPaidTotal | currency: invoice().currencyCode }}\n </p>\n <p class=\"total\">\n <strong>{{ textWords?.totalsTotalToBePaid }}:</strong>\n <strong> {{ invoice().totals?.totalToBePaid | currency: invoice().currencyCode }}</strong>\n </p>\n </section>\n\n <section class=\"payment-instructions\">\n <h2>{{ textWords?.instructionsTopic }}</h2>\n <p>{{ invoice().paymentInstructions?.description }}</p>\n @for (means of invoice().paymentInstructions?.paymentMeans; track means) {\n <div>\n <p>\n <strong>{{ textWords?.instructionsAccountIdentifier }}:</strong> {{ means.accountIdentifier }}\n </p>\n <p>\n <strong>{{ textWords?.instructionsAccountName }}:</strong> {{ means.accountName }}\n </p>\n <p>\n <strong>{{ textWords?.instructionsServiceProviderIdentifier }}:</strong> {{ means.serviceProviderIdentifier }}\n </p>\n </div>\n }\n </section>\n </div>\n\n <section class=\"invoice-notes\">\n <h2>{{ textWords?.notesTopic }}</h2>\n @for (note of invoice().invoiceNotes; track note) {\n <div>\n <p>\n <strong>{{ note.shortText }}</strong>\n </p>\n <p>{{ note.longText }}</p>\n </div>\n }\n </section>\n</div>\n", styles: [".invoice-container{width:100%;max-width:800px;margin:auto;font-family:Arial,sans-serif;line-height:1.5}.invoice-header{display:flex;justify-content:space-between;margin-bottom:20px}.seller-info,.buyer-info,.invoice-details{width:30%}.invoice-title{font-size:48px;margin:20px 0}.invoice-references,.invoice-totals,.payment-instructions,.invoice-notes{margin:20px 0}.invoice-table{width:100%;border-collapse:collapse;margin:20px 0}.invoice-table th,.invoice-table td{border:1px solid #000;padding:8px;text-align:left}.invoice-table th{background-color:var(--color-primary)}.invoice-totals p,.payment-instructions p,.invoice-notes p{margin:5px 0}h2{font-size:18px;margin-bottom:10px}.addition-info{display:flex;justify-content:space-between}.total{background-color:var(--color-light)}\n"], dependencies: [{ kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1713
+ }
1714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: InvoiceDisplayComponent, decorators: [{
1715
+ type: Component,
1716
+ args: [{ selector: 'ava-invoice-display', standalone: true, imports: [CurrencyPipe, DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"invoice-container\">\n <!-- Seller and Buyer Information -->\n <h1 class=\"invoice-title\">{{ textWords?.invoiceTitle }}</h1>\n <header class=\"invoice-header\">\n <div class=\"seller-info\">\n <p>\n <strong>{{ invoice().seller?.name }}</strong>\n </p>\n <p>{{ invoice().seller?.address }}</p>\n <p>{{ invoice().seller?.city }}, {{ invoice().seller?.zipCode }}</p>\n <p>{{ invoice().seller?.countryCode }}</p>\n <p>\n <strong>{{ textWords?.vatId }}:</strong> {{ invoice().seller?.vatId }}\n </p>\n </div>\n <div class=\"invoice-details\">\n <p>\n <strong>{{ textWords?.detailsInvoiceNumber }}:</strong> {{ invoice().invoiceNumber }}\n </p>\n <p>\n <strong>{{ textWords?.detailsInvoiceDate }}:</strong> {{ invoice().invoiceDate | date: 'dd.MM.yyyy' }}\n </p>\n <p>\n <strong>{{ textWords?.detailsPaymentDueDate }}:</strong> {{ invoice().paymentDueDate | date: 'dd.MM.yyyy' }}\n </p>\n <p>\n <strong>{{ textWords?.detailsCurrencyCode }}:</strong> {{ invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.detailsPaymentTerms }}:</strong> {{ invoice().paymentTerms }}\n </p>\n </div>\n <div class=\"buyer-info\">\n <p>\n <strong>{{ invoice().buyer?.name }}</strong>\n </p>\n <p>{{ invoice().buyer?.address }}</p>\n <p>{{ invoice().buyer?.city }}, {{ invoice().buyer?.zipCode }}</p>\n <p>{{ invoice().buyer?.countryCode }}</p>\n <p>\n <strong>{{ textWords?.vatId }}:</strong> {{ invoice().buyer?.vatId }}\n </p>\n </div>\n </header>\n\n <section class=\"invoice-references\">\n <h2>{{ textWords?.referencesTopic }}</h2>\n <p>\n <strong>{{ textWords?.referencesBuyerReference }}:</strong> {{ invoice().references?.buyerReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesProjectReference }}:</strong> {{ invoice().references?.projectReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesContractReference }}:</strong> {{ invoice().references?.contractReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesPurchaseOrderReference }}:</strong> {{ invoice().references?.purchaseOrderReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesSalesOrderReference }}:</strong> {{ invoice().references?.salesOrderReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesReceivingAdviceReference }}:</strong> {{ invoice().references?.receivingAdviceReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesDispatchAdviceReference }}:</strong> {{ invoice().references?.dispatchAdviceReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesTenderOrLotReference }}:</strong> {{ invoice().references?.tenderOrLotReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesInvoicedObjectIdentifier }}:</strong> {{ invoice().references?.invoicedObjectIdentifier }}\n </p>\n </section>\n\n <table class=\"invoice-table\">\n <thead>\n <tr>\n <th>#</th>\n <th>{{ textWords?.tableHeadDescription }}</th>\n <th>{{ textWords?.tableHeadQuantity }}</th>\n <th>{{ textWords?.tableHeadUnit }}</th>\n <th>{{ textWords?.tableHeadNetPrice }}</th>\n <th>{{ textWords?.tableHeadNetAmount }}</th>\n </tr>\n </thead>\n <tbody>\n @for (item of invoice().lineItems; track item; let i = $index) {\n <tr>\n <td>{{ i + 1 }}</td>\n <td>{{ item.itemInformation?.description }}</td>\n <td>{{ item.quantity }}</td>\n <td>{{ item.unitCode }}</td>\n <td>{{ item.priceDetails?.netPrice | currency: invoice().currencyCode }}</td>\n <td>{{ item.netAmount | currency: invoice().currencyCode }}</td>\n </tr>\n }\n </tbody>\n </table>\n\n <div class=\"addition-info\">\n <section class=\"invoice-totals\">\n <h2>{{ textWords?.totalsTopic }}</h2>\n <p>\n <strong>{{ textWords?.totalsTotalNet }}:</strong> {{ invoice().totals?.totalNet | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalAllowances }}:</strong> {{ invoice().totals?.totalAllowances | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalCharges }}:</strong> {{ invoice().totals?.totalCharges | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalAfterDeductions }}:</strong>\n {{ invoice().totals?.totalAfterDeductions | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalVatAmount }}:</strong> {{ invoice().totals?.totalVatAmount | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalGross }}:</strong> {{ invoice().totals?.totalGross | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsAlreadyPaidTotal }}:</strong>\n {{ invoice().totals?.alreadyPaidTotal | currency: invoice().currencyCode }}\n </p>\n <p class=\"total\">\n <strong>{{ textWords?.totalsTotalToBePaid }}:</strong>\n <strong> {{ invoice().totals?.totalToBePaid | currency: invoice().currencyCode }}</strong>\n </p>\n </section>\n\n <section class=\"payment-instructions\">\n <h2>{{ textWords?.instructionsTopic }}</h2>\n <p>{{ invoice().paymentInstructions?.description }}</p>\n @for (means of invoice().paymentInstructions?.paymentMeans; track means) {\n <div>\n <p>\n <strong>{{ textWords?.instructionsAccountIdentifier }}:</strong> {{ means.accountIdentifier }}\n </p>\n <p>\n <strong>{{ textWords?.instructionsAccountName }}:</strong> {{ means.accountName }}\n </p>\n <p>\n <strong>{{ textWords?.instructionsServiceProviderIdentifier }}:</strong> {{ means.serviceProviderIdentifier }}\n </p>\n </div>\n }\n </section>\n </div>\n\n <section class=\"invoice-notes\">\n <h2>{{ textWords?.notesTopic }}</h2>\n @for (note of invoice().invoiceNotes; track note) {\n <div>\n <p>\n <strong>{{ note.shortText }}</strong>\n </p>\n <p>{{ note.longText }}</p>\n </div>\n }\n </section>\n</div>\n", styles: [".invoice-container{width:100%;max-width:800px;margin:auto;font-family:Arial,sans-serif;line-height:1.5}.invoice-header{display:flex;justify-content:space-between;margin-bottom:20px}.seller-info,.buyer-info,.invoice-details{width:30%}.invoice-title{font-size:48px;margin:20px 0}.invoice-references,.invoice-totals,.payment-instructions,.invoice-notes{margin:20px 0}.invoice-table{width:100%;border-collapse:collapse;margin:20px 0}.invoice-table th,.invoice-table td{border:1px solid #000;padding:8px;text-align:left}.invoice-table th{background-color:var(--color-primary)}.invoice-totals p,.payment-instructions p,.invoice-notes p{margin:5px 0}h2{font-size:18px;margin-bottom:10px}.addition-info{display:flex;justify-content:space-between}.total{background-color:var(--color-light)}\n"] }]
1717
+ }], ctorParameters: () => [], propDecorators: { textWords: [{
1718
+ type: Input
1719
+ }] } });
1720
+
1580
1721
  /*
1581
1722
  * Public API Surface of angular-ava
1582
1723
  */
@@ -1585,5 +1726,5 @@ const version = {
1585
1726
  * Generated bundle index. Do not edit.
1586
1727
  */
1587
1728
 
1588
- export { AngularAvaModule, AvaTreeComponent, ExchangePhaseDto, ItemNumberSchemaTierTypeDto, ItemNumberTypeDto, ModeViewType, OriginDto, PriceRoundingModeDto, PriceTypeDto, version };
1729
+ export { AngularAvaModule, AvaTreeComponent, DEFAULT_FILTERS, DEFAULT_TEXT_WORDS, DEFAULT_TEXT_WORD_INVOICE, ExchangePhaseDto, InvoiceDisplayComponent, ItemNumberSchemaTierTypeDto, ItemNumberTypeDto, ModeViewType, OriginDto, PriceRoundingModeDto, PriceTypeDto, defaults, germanTextsInvoice, version };
1589
1730
  //# sourceMappingURL=dangl-angular-ava.mjs.map