@dangl/angular-ava 1.5.2-beta0086 → 1.5.2-beta0089

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.
@@ -19,7 +19,7 @@ import * as i6 from '@angular/material/input';
19
19
  import { MatInputModule } from '@angular/material/input';
20
20
  import * as i4 from '@angular/material/tooltip';
21
21
  import { MatTooltipModule } from '@angular/material/tooltip';
22
- import { BehaviorSubject, map, distinctUntilChanged, ReplaySubject, of, Subject, takeUntil, combineLatestWith, take, switchMap, debounceTime, tap, filter, combineLatest, fromEvent } from 'rxjs';
22
+ import { BehaviorSubject, map, distinctUntilChanged, ReplaySubject, of, Subject, takeUntil, combineLatestWith, take, switchMap, debounceTime, tap, filter, combineLatest, startWith, pairwise, fromEvent } from 'rxjs';
23
23
  import * as i1 from '@angular/material/checkbox';
24
24
  import { MatCheckboxModule } from '@angular/material/checkbox';
25
25
  import * as i1$1 from '@angular/material/table';
@@ -39,12 +39,12 @@ var ModeViewType;
39
39
 
40
40
  // This file is automatically generated as part of the build process
41
41
  const version = {
42
- version: "1.5.2-beta0086",
43
- commitInfo: "Branch.develop.Sha.7344878aedb76f5984b1d7154a951aef56ca8256",
42
+ version: "1.5.2-beta0089",
43
+ commitInfo: "Branch.develop.Sha.a1f18fa71bc47fe821b914da3979dd38b246e5d9",
44
44
  commitDate: "2026-04-26",
45
- commitHash: "7344878aedb76f5984b1d7154a951aef56ca8256",
46
- informationalVersion: "1.5.2-beta.86+Branch.develop.Sha.7344878aedb76f5984b1d7154a951aef56ca8256",
47
- buildDateUtc: new Date(Date.UTC(2026, 3, 26, 19, 0, 31))
45
+ commitHash: "a1f18fa71bc47fe821b914da3979dd38b246e5d9",
46
+ informationalVersion: "1.5.2-beta.89+Branch.develop.Sha.a1f18fa71bc47fe821b914da3979dd38b246e5d9",
47
+ buildDateUtc: new Date(Date.UTC(2026, 3, 26, 19, 59, 42))
48
48
  };
49
49
 
50
50
  class TreeHoverTooltipService {
@@ -2388,6 +2388,11 @@ class AvaTreeComponent {
2388
2388
  * actually focussing them, e.g. for further processing.
2389
2389
  */
2390
2390
  this.selectedElementsChanged = output();
2391
+ /**
2392
+ * This is emitted in tree view mode when a top-level element's expansion state changes.
2393
+ * The event contains the element id and whether it is now expanded or collapsed.
2394
+ */
2395
+ this.topLevelExpansionChanged = output();
2391
2396
  this.avaTreeWrapper = viewChild.required('avaTreeWrapper');
2392
2397
  this.avaMainWrapper = viewChild.required('avaMainWrapper');
2393
2398
  this.avaTreeFilterInput = viewChild.required('avaTreeFilterInput');
@@ -2427,15 +2432,17 @@ class AvaTreeComponent {
2427
2432
  else if (this.modeview() === ModeViewType.List ||
2428
2433
  (this.modeview() === ModeViewType.Tree && this.avaTreeFilterInput().nativeElement.value)) {
2429
2434
  if (this.listStructureComponent) {
2430
- foundInTree = this.listStructureComponent.updateList(elementIds);
2435
+ this.listStructureComponent.updateList(elementIds);
2431
2436
  }
2437
+ foundInTree = true;
2432
2438
  }
2433
2439
  else {
2434
2440
  // If we're in the list view, we don't directly update the elements but we regenerate
2435
2441
  // the list view for them
2436
2442
  foundInTree = true;
2437
2443
  }
2438
- if (hasAddedOrRemovedElements && foundInTree) {
2444
+ if (foundInTree &&
2445
+ (hasAddedOrRemovedElements || this.modeview() === ModeViewType.List || this.avaTreeFilterInput().nativeElement.value)) {
2439
2446
  this.flatElementsService.setElementsDto(this.serviceSpecification());
2440
2447
  }
2441
2448
  }
@@ -2546,6 +2553,21 @@ class AvaTreeComponent {
2546
2553
  this.expandParentGroupService.setExpansionState(s);
2547
2554
  }
2548
2555
  });
2556
+ toObservable(this.expandParentGroupService.getExpansionState())
2557
+ .pipe(startWith({}), pairwise(), takeUntil(this.$destroy))
2558
+ .subscribe(([prev, curr]) => {
2559
+ if (this.modeview() !== ModeViewType.Tree) {
2560
+ return;
2561
+ }
2562
+ const topLevelIds = new Set((this.serviceSpecification()?.elements ?? []).map((e) => e.id));
2563
+ for (const id of topLevelIds) {
2564
+ const wasExpanded = !!prev[id];
2565
+ const isExpanded = !!curr[id];
2566
+ if (wasExpanded !== isExpanded) {
2567
+ this.topLevelExpansionChanged.emit({ elementId: id, isExpanded });
2568
+ }
2569
+ }
2570
+ });
2549
2571
  });
2550
2572
  }
2551
2573
  ngAfterViewInit() {
@@ -2682,7 +2704,7 @@ class AvaTreeComponent {
2682
2704
  });
2683
2705
  }
2684
2706
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: AvaTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2685
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: AvaTreeComponent, isStandalone: true, selector: "ava-tree", inputs: { project: { classPropertyName: "project", publicName: "project", isSignal: true, isRequired: true, transformFunction: null }, expansionstate: { classPropertyName: "expansionstate", publicName: "expansionstate", isSignal: true, isRequired: false, transformFunction: null }, selectednodeid: { classPropertyName: "selectednodeid", publicName: "selectednodeid", isSignal: true, isRequired: false, transformFunction: null }, modeview: { classPropertyName: "modeview", publicName: "modeview", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectClick: "selectClick", selectDblClick: "selectDblClick", contextMenuEvent: "contextMenuEvent", selectedElementsChanged: "selectedElementsChanged" }, providers: [
2707
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: AvaTreeComponent, isStandalone: true, selector: "ava-tree", inputs: { project: { classPropertyName: "project", publicName: "project", isSignal: true, isRequired: true, transformFunction: null }, expansionstate: { classPropertyName: "expansionstate", publicName: "expansionstate", isSignal: true, isRequired: false, transformFunction: null }, selectednodeid: { classPropertyName: "selectednodeid", publicName: "selectednodeid", isSignal: true, isRequired: false, transformFunction: null }, modeview: { classPropertyName: "modeview", publicName: "modeview", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectClick: "selectClick", selectDblClick: "selectDblClick", contextMenuEvent: "contextMenuEvent", selectedElementsChanged: "selectedElementsChanged", topLevelExpansionChanged: "topLevelExpansionChanged" }, providers: [
2686
2708
  FlatElementsService,
2687
2709
  SelectElementService,
2688
2710
  TreeNodeSelectionService,
@@ -2724,7 +2746,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
2724
2746
  }], listStructureComponent: [{
2725
2747
  type: ViewChild,
2726
2748
  args: [ListStructureComponent]
2727
- }], project: [{ type: i0.Input, args: [{ isSignal: true, alias: "project", required: true }] }], expansionstate: [{ type: i0.Input, args: [{ isSignal: true, alias: "expansionstate", required: false }] }], selectednodeid: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectednodeid", required: false }] }], modeview: [{ type: i0.Input, args: [{ isSignal: true, alias: "modeview", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], selectClick: [{ type: i0.Output, args: ["selectClick"] }], selectDblClick: [{ type: i0.Output, args: ["selectDblClick"] }], contextMenuEvent: [{ type: i0.Output, args: ["contextMenuEvent"] }], selectedElementsChanged: [{ type: i0.Output, args: ["selectedElementsChanged"] }], avaTreeWrapper: [{ type: i0.ViewChild, args: ['avaTreeWrapper', { isSignal: true }] }], avaMainWrapper: [{ type: i0.ViewChild, args: ['avaMainWrapper', { isSignal: true }] }], avaTreeFilterInput: [{ type: i0.ViewChild, args: ['avaTreeFilterInput', { isSignal: true }] }] } });
2749
+ }], project: [{ type: i0.Input, args: [{ isSignal: true, alias: "project", required: true }] }], expansionstate: [{ type: i0.Input, args: [{ isSignal: true, alias: "expansionstate", required: false }] }], selectednodeid: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectednodeid", required: false }] }], modeview: [{ type: i0.Input, args: [{ isSignal: true, alias: "modeview", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], selectClick: [{ type: i0.Output, args: ["selectClick"] }], selectDblClick: [{ type: i0.Output, args: ["selectDblClick"] }], contextMenuEvent: [{ type: i0.Output, args: ["contextMenuEvent"] }], selectedElementsChanged: [{ type: i0.Output, args: ["selectedElementsChanged"] }], topLevelExpansionChanged: [{ type: i0.Output, args: ["topLevelExpansionChanged"] }], avaTreeWrapper: [{ type: i0.ViewChild, args: ['avaTreeWrapper', { isSignal: true }] }], avaMainWrapper: [{ type: i0.ViewChild, args: ['avaMainWrapper', { isSignal: true }] }], avaTreeFilterInput: [{ type: i0.ViewChild, args: ['avaTreeFilterInput', { isSignal: true }] }] } });
2728
2750
 
2729
2751
  const ALIGNMENT_OPTIONS = {
2730
2752
  previousInvoiceAlignment: 'right'