@provoly/hypervisor 0.0.29 → 0.0.30

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 (61) hide show
  1. package/esm2022/public-api.mjs +2 -1
  2. package/esm2022/src/lib/event/detail/event-detail.component.mjs +1 -1
  3. package/esm2022/src/lib/event/list/event-column-order.component.mjs +23 -0
  4. package/esm2022/src/lib/event/list/event-list.component.mjs +19 -24
  5. package/esm2022/src/lib/event/public-api.mjs +2 -1
  6. package/esm2022/src/lib/general/column-order/column-order.component.mjs +4 -9
  7. package/esm2022/src/lib/general/i18n/en.translations.mjs +12 -3
  8. package/esm2022/src/lib/general/i18n/fr.translations.mjs +12 -3
  9. package/esm2022/src/lib/general/infiniteScroll.service.mjs +26 -0
  10. package/esm2022/src/lib/hypervisor.module.mjs +24 -30
  11. package/esm2022/src/lib/model/procedure/hyp-action.interface.mjs +2 -0
  12. package/esm2022/src/lib/model/procedure/hyp-procedure-model.interface.mjs +2 -0
  13. package/esm2022/src/lib/model/procedure/hyp-procedure.interface.mjs +6 -0
  14. package/esm2022/src/lib/model/public-api.mjs +3 -2
  15. package/esm2022/src/lib/procedure/list/procedure-column-order.component.mjs +24 -0
  16. package/esm2022/src/lib/procedure/list/procedure-list.component.mjs +57 -0
  17. package/esm2022/src/lib/procedure/public-api.mjs +3 -0
  18. package/esm2022/src/lib/store/event/event.actions.mjs +1 -1
  19. package/esm2022/src/lib/store/event/event.effects.mjs +4 -2
  20. package/esm2022/src/lib/store/event/event.reducer.mjs +1 -1
  21. package/esm2022/src/lib/store/event/event.service.mjs +2 -2
  22. package/esm2022/src/lib/store/procedure/procedure.actions.mjs +9 -0
  23. package/esm2022/src/lib/store/procedure/procedure.effect.mjs +26 -0
  24. package/esm2022/src/lib/store/procedure/procedure.reducer.mjs +37 -0
  25. package/esm2022/src/lib/store/procedure/procedure.selectors.mjs +17 -0
  26. package/esm2022/src/lib/store/procedure/procedure.service.mjs +35 -0
  27. package/fesm2022/provoly-hypervisor.mjs +292 -95
  28. package/fesm2022/provoly-hypervisor.mjs.map +1 -1
  29. package/package.json +1 -1
  30. package/public-api.d.ts +1 -0
  31. package/src/lib/event/detail/event-detail.component.d.ts +2 -2
  32. package/src/lib/event/list/event-column-order.component.d.ts +9 -0
  33. package/src/lib/event/list/event-list.component.d.ts +4 -5
  34. package/src/lib/event/public-api.d.ts +1 -0
  35. package/src/lib/general/column-order/column-order.component.d.ts +1 -1
  36. package/src/lib/general/i18n/en.translations.d.ts +9 -0
  37. package/src/lib/general/i18n/fr.translations.d.ts +9 -0
  38. package/src/lib/general/infiniteScroll.service.d.ts +13 -0
  39. package/src/lib/hypervisor.module.d.ts +24 -21
  40. package/src/lib/model/procedure/hyp-procedure-model.interface.d.ts +11 -0
  41. package/src/lib/model/{hyp-procedure.interface.d.ts → procedure/hyp-procedure.interface.d.ts} +1 -1
  42. package/src/lib/model/public-api.d.ts +2 -1
  43. package/src/lib/procedure/list/procedure-column-order.component.d.ts +9 -0
  44. package/src/lib/procedure/list/procedure-list.component.d.ts +30 -0
  45. package/src/lib/procedure/public-api.d.ts +2 -0
  46. package/src/lib/store/event/event.actions.d.ts +1 -1
  47. package/src/lib/store/event/event.effects.d.ts +3 -0
  48. package/src/lib/store/event/event.reducer.d.ts +1 -1
  49. package/src/lib/store/event/event.service.d.ts +1 -1
  50. package/src/lib/store/procedure/procedure.actions.d.ts +32 -0
  51. package/src/lib/store/procedure/procedure.effect.d.ts +24 -0
  52. package/src/lib/store/procedure/procedure.reducer.d.ts +15 -0
  53. package/src/lib/store/procedure/procedure.selectors.d.ts +15 -0
  54. package/src/lib/store/procedure/procedure.service.d.ts +16 -0
  55. package/styles/components/_index.scss +1 -0
  56. package/styles/components/_o-hvy-column-order.scss +1 -0
  57. package/styles/components/_o-hvy-events-table.scss +1 -4
  58. package/styles/components/_o-hvy-procedure-list.scss +15 -0
  59. package/esm2022/src/lib/model/hyp-action.interface.mjs +0 -2
  60. package/esm2022/src/lib/model/hyp-procedure.interface.mjs +0 -6
  61. /package/src/lib/model/{hyp-action.interface.d.ts → procedure/hyp-action.interface.d.ts} +0 -0
@@ -7,7 +7,7 @@ import { createAction, props, createReducer, on, createFeatureSelector, createSe
7
7
  import * as i3$1 from '@angular/cdk/overlay';
8
8
  import { OverlayConfig } from '@angular/cdk/overlay';
9
9
  import { TemplatePortal } from '@angular/cdk/portal';
10
- import { mergeMap, of, fromEvent, combineLatest, map, withLatestFrom, filter, auditTime, BehaviorSubject } from 'rxjs';
10
+ import { mergeMap, of, fromEvent, withLatestFrom, filter, auditTime, combineLatest, map as map$1, BehaviorSubject, Subject, distinctUntilChanged } from 'rxjs';
11
11
  import * as i1 from '@angular/common/http';
12
12
  import { HttpParams } from '@angular/common/http';
13
13
  import * as i4 from '@provoly/dashboard/components/checkbox';
@@ -18,9 +18,9 @@ import * as i1$2 from '@angular/common';
18
18
  import { NgForOf, AsyncPipe, NgStyle, DatePipe, KeyValuePipe, JsonPipe } from '@angular/common';
19
19
  import * as i2 from '@angular/router';
20
20
  import { RouterLink } from '@angular/router';
21
- import * as i10 from '@provoly/dashboard/components/sinceDate';
21
+ import { map, debounceTime, mergeMap as mergeMap$1, catchError } from 'rxjs/operators';
22
+ import * as i11 from '@provoly/dashboard/components/sinceDate';
22
23
  import { PrySinceDateModule } from '@provoly/dashboard/components/sinceDate';
23
- import { map as map$1, debounceTime, mergeMap as mergeMap$1, catchError } from 'rxjs/operators';
24
24
  import * as i1$3 from '@ngrx/effects';
25
25
  import { createEffect, ofType, EffectsModule } from '@ngrx/effects';
26
26
 
@@ -71,18 +71,18 @@ const hypFeatureKey = '@hvy/general';
71
71
  const hypInitialState = {
72
72
  url: '/api/hypervisor',
73
73
  };
74
- const internalReducer$2 = createReducer(hypInitialState, on(HypervisorActions.setUrl, (state, action) => ({
74
+ const internalReducer$3 = createReducer(hypInitialState, on(HypervisorActions.setUrl, (state, action) => ({
75
75
  ...state,
76
76
  url: action.url ?? state.url,
77
77
  })));
78
78
  function hypervisorReducer(state, action) {
79
- return internalReducer$2(state, action);
79
+ return internalReducer$3(state, action);
80
80
  }
81
81
 
82
- const feature$2 = createFeatureSelector(hypFeatureKey);
83
- const url = createSelector(feature$2, (state) => state.url);
82
+ const feature$3 = createFeatureSelector(hypFeatureKey);
83
+ const url = createSelector(feature$3, (state) => state.url);
84
84
  const HypSelectors = {
85
- feature: feature$2,
85
+ feature: feature$3,
86
86
  url
87
87
  };
88
88
 
@@ -542,7 +542,7 @@ const eventInitialState = {
542
542
  selectedIds: [],
543
543
  details: {}
544
544
  };
545
- const internalReducer$1 = createReducer(eventInitialState, on(EventActions.load, (state, action) => ({
545
+ const internalReducer$2 = createReducer(eventInitialState, on(EventActions.load, (state, action) => ({
546
546
  ...state,
547
547
  loading: true
548
548
  })), on(EventActions.loadSuccess, (state, { events, startingFrom }) => {
@@ -579,77 +579,105 @@ const internalReducer$1 = createReducer(eventInitialState, on(EventActions.load,
579
579
  filters: { ...state.filters, [filterSet]: filters }
580
580
  })));
581
581
  function eventReducer(state, action) {
582
- return internalReducer$1(state, action);
582
+ return internalReducer$2(state, action);
583
583
  }
584
584
 
585
- const feature$1 = createFeatureSelector(eventFeatureKey);
586
- const events = createSelector(feature$1, (state) => state.events);
587
- const noMoreEvents = createSelector(feature$1, (state) => state.noMoreEvents);
588
- const selectedIds = createSelector(feature$1, (state) => state.selectedIds);
589
- const loading$1 = createSelector(feature$1, (state) => state.loading);
590
- const filters = createSelector(feature$1, (state) => state.filters);
591
- const details = createSelector(feature$1, (state) => state.details);
592
- const sort = createSelector(feature$1, (state) => state.sort);
585
+ const feature$2 = createFeatureSelector(eventFeatureKey);
586
+ const events = createSelector(feature$2, (state) => state.events);
587
+ const noMoreEvents = createSelector(feature$2, (state) => state.noMoreEvents);
588
+ const selectedIds = createSelector(feature$2, (state) => state.selectedIds);
589
+ const loading$2 = createSelector(feature$2, (state) => state.loading);
590
+ const filters = createSelector(feature$2, (state) => state.filters);
591
+ const details = createSelector(feature$2, (state) => state.details);
592
+ const sort$1 = createSelector(feature$2, (state) => state.sort);
593
593
  const EventSelectors = {
594
- feature: feature$1,
594
+ feature: feature$2,
595
595
  events,
596
596
  selectedIds,
597
- loading: loading$1,
597
+ loading: loading$2,
598
598
  filters,
599
599
  details,
600
600
  noMoreEvents,
601
- sort
601
+ sort: sort$1
602
602
  };
603
603
 
604
+ const SCROLL_PX_TO_TRIGGER_FETCH_PAGE = { value: 200 };
605
+ class InfiniteScrollService {
606
+ constructor(store) {
607
+ this.store = store;
608
+ this.isEndOfPage = (scrollContainer, noMoreSelector) => {
609
+ return fromEvent((scrollContainer), 'scroll').pipe(map((e) => {
610
+ const target = e.currentTarget;
611
+ return target.scrollHeight - target.offsetHeight - target.scrollTop;
612
+ }), withLatestFrom(this.store.select(noMoreSelector)), filter(([remaningScroll, noMore]) => !noMore && remaningScroll < SCROLL_PX_TO_TRIGGER_FETCH_PAGE.value), auditTime(200));
613
+ };
614
+ }
615
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: InfiniteScrollService, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
616
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: InfiniteScrollService, providedIn: 'root' }); }
617
+ }
618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: InfiniteScrollService, decorators: [{
619
+ type: Injectable,
620
+ args: [{
621
+ providedIn: 'root'
622
+ }]
623
+ }], ctorParameters: () => [{ type: i1$1.Store }] });
624
+
604
625
  class ColumnOrderComponent extends SubscriptionnerDirective {
605
626
  constructor(store) {
606
627
  super();
607
628
  this.store = store;
608
629
  this.field = 'no-field-defined';
609
- this.subscriptions.add(this.store.select(EventSelectors.sort).subscribe(sort => this.sortValue = sort));
610
- }
611
- sort(order) {
612
- this.store.dispatch(EventActions.sort({ field: this.field, order }));
613
630
  }
631
+ sort(order) { }
614
632
  isActive(order) {
615
633
  return this.field === this.sortValue?.field && order === this.sortValue.order;
616
634
  }
617
635
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ColumnOrderComponent, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
618
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ColumnOrderComponent, selector: "hvy-column-order", inputs: { field: "field" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-column-order\">\n <div>\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }] }); }
636
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ColumnOrderComponent, selector: "hvy-column-order", inputs: { field: "field" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-column-order\">\n <div class=\"o-hvy-column-order__content\">\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }] }); }
619
637
  }
620
638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ColumnOrderComponent, decorators: [{
621
639
  type: Component,
622
- args: [{ selector: 'hvy-column-order', template: "<div class=\"o-hvy-column-order\">\n <div>\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n" }]
640
+ args: [{ selector: 'hvy-column-order', template: "<div class=\"o-hvy-column-order\">\n <div class=\"o-hvy-column-order__content\">\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n" }]
623
641
  }], ctorParameters: () => [{ type: i1$1.Store }], propDecorators: { field: [{
624
642
  type: Input
625
643
  }] } });
626
644
 
645
+ class EventColumnOrderComponent extends ColumnOrderComponent {
646
+ constructor(store) {
647
+ super(store);
648
+ this.subscriptions.add(this.store.select(EventSelectors.sort).subscribe(sort => this.sortValue = sort));
649
+ }
650
+ sort(order) {
651
+ this.store.dispatch(EventActions.sort({ field: this.field, order }));
652
+ }
653
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventColumnOrderComponent, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
654
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: EventColumnOrderComponent, selector: "hvy-event-column-order", usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-column-order\">\n <div class=\"o-hvy-column-order__content\">\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }] }); }
655
+ }
656
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventColumnOrderComponent, decorators: [{
657
+ type: Component,
658
+ args: [{ selector: 'hvy-event-column-order', template: "<div class=\"o-hvy-column-order\">\n <div class=\"o-hvy-column-order__content\">\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n" }]
659
+ }], ctorParameters: () => [{ type: i1$1.Store }] });
660
+
627
661
  const EVENT_LINK = {
628
662
  fn: (event, store) => ['./', event.id]
629
663
  };
630
- const SCROLL_PX_TO_TRIGGER_FETCH_PAGE = { value: 200 };
631
664
  class EventListComponent extends SubscriptionnerDirective {
632
- constructor(store, el, router) {
665
+ constructor(store, el, router, scroll) {
633
666
  super();
634
667
  this.store = store;
635
668
  this.el = el;
636
669
  this.router = router;
670
+ this.scroll = scroll;
637
671
  this.EVENT_LINK = EVENT_LINK;
638
672
  this._store = this.store;
639
673
  this._inhibate = true;
640
674
  this.store.dispatch(EventActions.load({}));
641
675
  this.events$ = this.store.select(EventSelectors.events);
642
676
  this.selectedIds$ = this.store.select(EventSelectors.selectedIds);
643
- this.allSelected$ = combineLatest([this.events$, this.selectedIds$]).pipe(map(([events, selectedIds]) => events.filter((ev) => !selectedIds.includes(ev.id)).length === 0));
677
+ this.allSelected$ = combineLatest([this.events$, this.selectedIds$]).pipe(map$1(([events, selectedIds]) => events.filter((ev) => !selectedIds.includes(ev.id)).length === 0));
644
678
  }
645
679
  ngAfterViewInit() {
646
- this.subscriptions.add(fromEvent(this.el.nativeElement, 'scroll')
647
- .pipe(
648
- // Are we close to end
649
- map((e) => {
650
- const target = e.currentTarget;
651
- return target.scrollHeight - target.offsetHeight - target.scrollTop;
652
- }), withLatestFrom(this.store.select(EventSelectors.noMoreEvents)), filter(([remaningScroll, noMore]) => !noMore && remaningScroll < SCROLL_PX_TO_TRIGGER_FETCH_PAGE.value), auditTime(200))
680
+ this.subscriptions.add(this.scroll.isEndOfPage(this.el.nativeElement, EventSelectors.noMoreEvents)
653
681
  .subscribe(() => {
654
682
  this.store.dispatch(EventActions.load({ next: true }));
655
683
  }));
@@ -673,16 +701,16 @@ class EventListComponent extends SubscriptionnerDirective {
673
701
  this._inhibate = true;
674
702
  setTimeout(() => (this._inhibate = false), 100);
675
703
  }
676
- goto(event) {
704
+ goTo(event) {
677
705
  return this.router.navigate(this.EVENT_LINK.fn(event, this.store));
678
706
  }
679
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventListComponent, deps: [{ token: i1$1.Store }, { token: i0.ElementRef }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
680
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: EventListComponent, selector: "hvy-event-list", usesInheritance: true, ngImport: i0, template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th>\n <pry-checkbox [ngModel]=\"allSelected$|async\" (ngModelChange)=\"selectAll($event)\"></pry-checkbox>\n </th>\n <th>{{ '@hvy.event.criticality.name' | i18n }}</th>\n <th>{{ '@hvy.event.name' | i18n }}</th>\n <th>{{ '@hvy.event.category.name' | i18n }}</th>\n <th>{{ '@hvy.event.address' | i18n }}</th>\n <th>\n <hvy-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"lastModificationDate\">{{ '@hvy.event.lastModificationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"procedureProgress\">{{ '@hvy.procedure.progress' | i18n }}</hvy-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$|async; track event.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"goto(event)\">\n <td class=\"o-hvy-events-table__line__cell\">\n <pry-checkbox [ngModel]=\"(selectedIds$|async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div\n class=\"o-hvy-events-table__line__cell__name__sub\">{{ event.equipment?.name ? event.equipment?.name : '' }}\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ '@hvy.event.category.' + event.category | i18n }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.address }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.creationDate| sinceDate: { onlyLocale: true } }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.lastModificationDate | sinceDate: { onlyLocale: true } }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-status-display [event]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n {{ event.procedureProgress }} %\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"EVENT_LINK.fn(event, _store)\">\n > {{ '@hvy.action.consult' | i18n }} @if (event.linkedEvents > 1) {\n ({{ event.linkedEvents }})\n }\n </a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}.</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { 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: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: StatusDisplayComponent, selector: "hvy-status-display", inputs: ["event", "modifiable"], outputs: ["modified"] }, { kind: "component", type: ColumnOrderComponent, selector: "hvy-column-order", inputs: ["field"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i10.PrySinceDatePipe, name: "sinceDate" }] }); }
707
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventListComponent, deps: [{ token: i1$1.Store }, { token: i0.ElementRef }, { token: i2.Router }, { token: InfiniteScrollService }], target: i0.ɵɵFactoryTarget.Component }); }
708
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: EventListComponent, selector: "hvy-event-list", usesInheritance: true, ngImport: i0, template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$|async\" (ngModelChange)=\"selectAll($event)\"></pry-checkbox>\n </th>\n <th>{{ '@hvy.event.criticality.name' | i18n }}</th>\n <th>{{ '@hvy.event.name' | i18n }}</th>\n <th>{{ '@hvy.event.category.name' | i18n }}</th>\n <th>{{ '@hvy.event.address' | i18n }}</th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\">{{ '@hvy.event.lastModificationDate' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\">{{ '@hvy.procedure.progress' | i18n }}</hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$|async; track event.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell\">\n <pry-checkbox [ngModel]=\"(selectedIds$|async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div\n class=\"o-hvy-events-table__line__cell__name__sub\">{{ event.equipment?.name ? event.equipment?.name : '' }}\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ '@hvy.event.category.' + event.category | i18n }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.address }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.creationDate| sinceDate: { onlyLocale: true } }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.lastModificationDate | sinceDate: { onlyLocale: true } }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-status-display [event]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n {{ event.procedureProgress }} %\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"EVENT_LINK.fn(event, _store)\">\n > {{ '@hvy.action.consult' | i18n }} @if (event.linkedEvents > 1) {\n ({{ event.linkedEvents }})\n }\n </a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}.</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", dependencies: [{ kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { 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: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: EventColumnOrderComponent, selector: "hvy-event-column-order" }, { kind: "component", type: IconDisplayComponent, selector: "hvy-icon-display", inputs: ["event"] }, { kind: "component", type: StatusDisplayComponent, selector: "hvy-status-display", inputs: ["event", "modifiable"], outputs: ["modified"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i11.PrySinceDatePipe, name: "sinceDate" }] }); }
681
709
  }
682
710
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventListComponent, decorators: [{
683
711
  type: Component,
684
- args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th>\n <pry-checkbox [ngModel]=\"allSelected$|async\" (ngModelChange)=\"selectAll($event)\"></pry-checkbox>\n </th>\n <th>{{ '@hvy.event.criticality.name' | i18n }}</th>\n <th>{{ '@hvy.event.name' | i18n }}</th>\n <th>{{ '@hvy.event.category.name' | i18n }}</th>\n <th>{{ '@hvy.event.address' | i18n }}</th>\n <th>\n <hvy-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"lastModificationDate\">{{ '@hvy.event.lastModificationDate' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-column-order>\n </th>\n <th>\n <hvy-column-order field=\"procedureProgress\">{{ '@hvy.procedure.progress' | i18n }}</hvy-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$|async; track event.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"goto(event)\">\n <td class=\"o-hvy-events-table__line__cell\">\n <pry-checkbox [ngModel]=\"(selectedIds$|async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div\n class=\"o-hvy-events-table__line__cell__name__sub\">{{ event.equipment?.name ? event.equipment?.name : '' }}\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ '@hvy.event.category.' + event.category | i18n }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.address }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.creationDate| sinceDate: { onlyLocale: true } }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.lastModificationDate | sinceDate: { onlyLocale: true } }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-status-display [event]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n {{ event.procedureProgress }} %\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"EVENT_LINK.fn(event, _store)\">\n > {{ '@hvy.action.consult' | i18n }} @if (event.linkedEvents > 1) {\n ({{ event.linkedEvents }})\n }\n </a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}.</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n" }]
685
- }], ctorParameters: () => [{ type: i1$1.Store }, { type: i0.ElementRef }, { type: i2.Router }] });
712
+ args: [{ selector: 'hvy-event-list', template: "<table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th class=\"-checkbox\">\n <pry-checkbox [ngModel]=\"allSelected$|async\" (ngModelChange)=\"selectAll($event)\"></pry-checkbox>\n </th>\n <th>{{ '@hvy.event.criticality.name' | i18n }}</th>\n <th>{{ '@hvy.event.name' | i18n }}</th>\n <th>{{ '@hvy.event.category.name' | i18n }}</th>\n <th>{{ '@hvy.event.address' | i18n }}</th>\n <th>\n <hvy-event-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"lastModificationDate\">{{ '@hvy.event.lastModificationDate' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"status\">{{ '@hvy.event.status.name' | i18n }}</hvy-event-column-order>\n </th>\n <th>\n <hvy-event-column-order field=\"procedureProgress\">{{ '@hvy.procedure.progress' | i18n }}</hvy-event-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (event of events$|async; track event.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"goTo(event)\">\n <td class=\"o-hvy-events-table__line__cell\">\n <pry-checkbox [ngModel]=\"(selectedIds$|async)!.includes(event.id)\"\n (click)=\"select(event, $event)\"></pry-checkbox>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-icon-display [event]=\"event\"></hvy-icon-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <div class=\"o-hvy-events-table__line__cell__name__main\">{{ event.name }}</div>\n <div\n class=\"o-hvy-events-table__line__cell__name__sub\">{{ event.equipment?.name ? event.equipment?.name : '' }}\n </div>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ '@hvy.event.category.' + event.category | i18n }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.address }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.creationDate| sinceDate: { onlyLocale: true } }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ event.lastModificationDate | sinceDate: { onlyLocale: true } }}\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n <hvy-status-display [event]=\"event\"></hvy-status-display>\n </td>\n <td class=\"o-hvy-events-table__line__cell -centered\">\n {{ event.procedureProgress }} %\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"EVENT_LINK.fn(event, _store)\">\n > {{ '@hvy.action.consult' | i18n }} @if (event.linkedEvents > 1) {\n ({{ event.linkedEvents }})\n }\n </a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.event.log.empty' | i18n }}.</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n" }]
713
+ }], ctorParameters: () => [{ type: i1$1.Store }, { type: i0.ElementRef }, { type: i2.Router }, { type: InfiniteScrollService }] });
686
714
 
687
715
  class EventFiltersComponent extends SubscriptionnerDirective {
688
716
  constructor(store) {
@@ -919,7 +947,7 @@ const eventSummaryInitialState = {
919
947
  summaries: { ...emptySummaries },
920
948
  loading: false,
921
949
  };
922
- const internalReducer = createReducer(eventSummaryInitialState, on(EventSummaryActions.load, (state, action) => ({
950
+ const internalReducer$1 = createReducer(eventSummaryInitialState, on(EventSummaryActions.load, (state, action) => ({
923
951
  ...state,
924
952
  loading: true
925
953
  })), on(EventSummaryActions.loadSuccess, (state, { summaries }) => ({
@@ -931,16 +959,16 @@ const internalReducer = createReducer(eventSummaryInitialState, on(EventSummaryA
931
959
  loading: false
932
960
  })));
933
961
  function eventSummaryReducer(state, action) {
934
- return internalReducer(state, action);
962
+ return internalReducer$1(state, action);
935
963
  }
936
964
 
937
- const feature = createFeatureSelector(eventSummaryFeatureKey);
938
- const summaries = createSelector(feature, (state) => state.summaries);
939
- const loading = createSelector(feature, (state) => state.loading);
965
+ const feature$1 = createFeatureSelector(eventSummaryFeatureKey);
966
+ const summaries = createSelector(feature$1, (state) => state.summaries);
967
+ const loading$1 = createSelector(feature$1, (state) => state.loading);
940
968
  const EventSummarySelectors = {
941
- feature,
969
+ feature: feature$1,
942
970
  summaries,
943
- loading
971
+ loading: loading$1
944
972
  };
945
973
 
946
974
  const eventForWriteAPI = (event) => ({
@@ -953,7 +981,7 @@ const procedureForWriteAPI = (procedure) => ({
953
981
  events: procedure.events.map(eventForWriteAPI)
954
982
  });
955
983
 
956
- const PAGE_SIZE_FETCH = { value: 20 };
984
+ const PAGE_SIZE_FETCH$1 = { value: 20 };
957
985
  const KNOWN_FILTER_SETS = {
958
986
  EVENTS: 'events',
959
987
  SUMMARY: 'summary'
@@ -963,7 +991,7 @@ class EventService {
963
991
  this.httpClient = httpClient;
964
992
  this.store = store;
965
993
  }
966
- list(startWith = 0, pageSize = PAGE_SIZE_FETCH.value) {
994
+ list(startWith = 0, pageSize = PAGE_SIZE_FETCH$1.value) {
967
995
  return this.store.select(HypSelectors.url).pipe(withLatestFrom(this.store.select(EventSelectors.filters), this.store.select(EventSelectors.sort)), mergeMap(([url, filterSets, sort]) => {
968
996
  const filters = filterSets[KNOWN_FILTER_SETS.EVENTS] ?? {};
969
997
  let params = new HttpParams();
@@ -1094,7 +1122,7 @@ class EventSummaryPageComponent extends SubscriptionnerDirective {
1094
1122
  this.store.dispatch(EventSummaryActions.load());
1095
1123
  this.selectedCriticality$ = this.store
1096
1124
  .select(EventSelectors.filters)
1097
- .pipe(map$1((filters) => (filters[KNOWN_FILTER_SETS.EVENTS] ?? {})['criticality']?.[0] ?? 'ALL'));
1125
+ .pipe(map((filters) => (filters[KNOWN_FILTER_SETS.EVENTS] ?? {})['criticality']?.[0] ?? 'ALL'));
1098
1126
  this.subscriptions.add(this.store.select(EventSummarySelectors.summaries).subscribe((summaries) => {
1099
1127
  this.summaries = summaries;
1100
1128
  }));
@@ -1120,6 +1148,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
1120
1148
  type: Input
1121
1149
  }] } });
1122
1150
 
1151
+ const ProcedureActions = {
1152
+ load: createAction('[Procedure] Load Procedures', props()),
1153
+ loadSuccess: createAction('[Procedure] (bus) Load Procedure Success', props()),
1154
+ loadFailure: createAction('[Procedure] Load Procedures Failure', props()),
1155
+ sort: createAction('[Procedure] Set Procedure List Sorting', props()),
1156
+ search: createAction('[Procedure] Set Search Query Value', props())
1157
+ };
1158
+
1159
+ const procedureFeatureKey = '@hvy/procedure';
1160
+ const procedureInitialState = {
1161
+ procedures: [],
1162
+ noMoreProcedures: false,
1163
+ loading: false,
1164
+ };
1165
+ const internalReducer = createReducer(procedureInitialState, on(ProcedureActions.load, (state) => ({
1166
+ ...state,
1167
+ loading: true
1168
+ })), on(ProcedureActions.loadSuccess, (state, { procedures, startingFrom }) => {
1169
+ return {
1170
+ ...state,
1171
+ loading: false,
1172
+ noMoreProcedures: procedures.length < 20,
1173
+ procedures: [...state.procedures.slice(0, startingFrom), ...procedures]
1174
+ };
1175
+ }), on(ProcedureActions.loadFailure, (state) => ({
1176
+ ...state,
1177
+ loading: false,
1178
+ procedures: []
1179
+ })), on(ProcedureActions.search, (state, { search }) => ({
1180
+ ...state,
1181
+ events: [],
1182
+ noMoreProcedures: false,
1183
+ search
1184
+ })), on(ProcedureActions.sort, (state, { field, order }) => ({
1185
+ ...state,
1186
+ events: [],
1187
+ noMoreProcedures: false,
1188
+ sort: { field, order }
1189
+ })));
1190
+ function procedureReducer(state, action) {
1191
+ return internalReducer(state, action);
1192
+ }
1193
+
1194
+ const feature = createFeatureSelector(procedureFeatureKey);
1195
+ const procedures = createSelector(feature, (state) => state.procedures);
1196
+ const noMoreProcedures = createSelector(feature, (state) => state.noMoreProcedures);
1197
+ const loading = createSelector(feature, (state) => state.loading);
1198
+ const search = createSelector(feature, (state) => state.search);
1199
+ const sort = createSelector(feature, (state) => state.sort);
1200
+ const ProcedureSelectors = {
1201
+ feature,
1202
+ procedures,
1203
+ loading,
1204
+ noMoreProcedures,
1205
+ search,
1206
+ sort
1207
+ };
1208
+
1209
+ class ProcedureColumnOrderComponent extends ColumnOrderComponent {
1210
+ constructor(store) {
1211
+ super(store);
1212
+ this.subscriptions.add(this.store.select(ProcedureSelectors.sort).subscribe(sort => this.sortValue = sort));
1213
+ }
1214
+ sort(order) {
1215
+ throw Error('Sort not implemented.');
1216
+ this.store.dispatch(ProcedureActions.sort({ field: this.field, order }));
1217
+ }
1218
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureColumnOrderComponent, deps: [{ token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
1219
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ProcedureColumnOrderComponent, selector: "hvy-procedure-column-order", usesInheritance: true, ngImport: i0, template: "<div class=\"o-hvy-column-order\">\n <div class=\"o-hvy-column-order__content\">\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }] }); }
1220
+ }
1221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureColumnOrderComponent, decorators: [{
1222
+ type: Component,
1223
+ args: [{ selector: 'hvy-procedure-column-order', template: "<div class=\"o-hvy-column-order\">\n <div class=\"o-hvy-column-order__content\">\n <ng-content></ng-content>\n </div>\n <div class=\"o-hvy-column-order__chevrons\">\n <pry-icon iconSvg=\"caret_top\" (click)=\"sort('ASC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('ASC')\"></pry-icon>\n <pry-icon iconSvg=\"caret_bottom\" (click)=\"sort('DESC')\" [height]=\"10\" [width]=\"10\" [class.-active]=\"isActive('DESC')\"></pry-icon>\n </div>\n</div>\n" }]
1224
+ }], ctorParameters: () => [{ type: i1$1.Store }] });
1225
+
1226
+ const PROCEDURE_LINK = {
1227
+ fn: (procedure, store) => ['./', procedure.id]
1228
+ };
1229
+ class ProcedureListComponent extends SubscriptionnerDirective {
1230
+ constructor(store, el, router, scroll) {
1231
+ super();
1232
+ this.store = store;
1233
+ this.el = el;
1234
+ this.router = router;
1235
+ this.scroll = scroll;
1236
+ this.PROCEDURE_LINK = PROCEDURE_LINK;
1237
+ this.search = '';
1238
+ this.search$ = new Subject;
1239
+ this.store.dispatch(ProcedureActions.load({}));
1240
+ this.procedures$ = this.store.select(ProcedureSelectors.procedures);
1241
+ this.subscriptions.add(this.search$.pipe(debounceTime(300), distinctUntilChanged()).subscribe((search) => {
1242
+ throw Error('Search not implemented.');
1243
+ this.store.dispatch(ProcedureActions.search({ search }));
1244
+ }));
1245
+ }
1246
+ ngAfterViewInit() {
1247
+ this.subscriptions.add(this.scroll.isEndOfPage(this.el.nativeElement, ProcedureSelectors.noMoreProcedures)
1248
+ .subscribe(() => {
1249
+ this.store.dispatch(ProcedureActions.load({ next: true }));
1250
+ }));
1251
+ }
1252
+ emitSearch() {
1253
+ this.search$.next(this.search);
1254
+ }
1255
+ goTo(procedure) {
1256
+ return this.router.navigate(this.PROCEDURE_LINK.fn(procedure, this.store));
1257
+ }
1258
+ ngOnDestroy() {
1259
+ this.store.dispatch(ProcedureActions.search({ search: undefined }));
1260
+ }
1261
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureListComponent, deps: [{ token: i1$1.Store }, { token: i0.ElementRef }, { token: i2.Router }, { token: InfiniteScrollService }], target: i0.ɵɵFactoryTarget.Component }); }
1262
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ProcedureListComponent, selector: "hvy-procedure-list", usesInheritance: true, ngImport: i0, template: "<div class=\"o-procedure-list\">\n <div class=\"m-form-label-field o-procedure-list__search\">\n <input class=\"a-form-field o-procedure-list__search-input\" type=\"text\" [(ngModel)]=\"search\" (ngModelChange)=\"emitSearch()\" placeholder=\"{{ '@hvy.action.search' | i18n }}...\">\n <pry-icon iconSvg=\"search\" class=\"o-procedure-list__search-icon\"></pry-icon>\n </div>\n <table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th>\n <hvy-procedure-column-order field=\"useCount\">{{ '@hvy.procedure.useCount' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"title\">{{ '@hvy.procedure.title' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"domain\">{{ '@hvy.procedure.domain' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"creator\">{{ '@hvy.procedure.author' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"id\">{{ '@hvy.procedure.id' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"lastModificationDate\"><span>{{ '@hvy.event.lastModificationDate' | i18n }}</span></hvy-procedure-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (procedure of procedures$ | async; track procedure.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"goTo(procedure)\">\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.useCount }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.name }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.domain }}</td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ procedure.creator }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.id }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.creationDate| date : 'dd/mm/YYYY HH:MM' }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.lastModificationDate | date : 'dd/mm/YYYY HH:MM' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"PROCEDURE_LINK.fn(procedure, store)\">> {{ '@hvy.action.consult' | i18n }}</a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.procedure.noContent' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n", dependencies: [{ 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: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: ProcedureColumnOrderComponent, selector: "hvy-procedure-column-order" }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i1$2.DatePipe, name: "date" }] }); }
1263
+ }
1264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureListComponent, decorators: [{
1265
+ type: Component,
1266
+ args: [{ selector: 'hvy-procedure-list', template: "<div class=\"o-procedure-list\">\n <div class=\"m-form-label-field o-procedure-list__search\">\n <input class=\"a-form-field o-procedure-list__search-input\" type=\"text\" [(ngModel)]=\"search\" (ngModelChange)=\"emitSearch()\" placeholder=\"{{ '@hvy.action.search' | i18n }}...\">\n <pry-icon iconSvg=\"search\" class=\"o-procedure-list__search-icon\"></pry-icon>\n </div>\n <table class=\"o-hvy-events-table\">\n <thead>\n <tr class=\"o-hvy-events-table__header\">\n <th>\n <hvy-procedure-column-order field=\"useCount\">{{ '@hvy.procedure.useCount' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"title\">{{ '@hvy.procedure.title' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"domain\">{{ '@hvy.procedure.domain' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"creator\">{{ '@hvy.procedure.author' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"id\">{{ '@hvy.procedure.id' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"creationDate\">{{ '@hvy.event.creationDate' | i18n }}</hvy-procedure-column-order>\n </th>\n <th>\n <hvy-procedure-column-order field=\"lastModificationDate\"><span>{{ '@hvy.event.lastModificationDate' | i18n }}</span></hvy-procedure-column-order>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (procedure of procedures$ | async; track procedure.id) {\n <tr class=\"o-hvy-events-table__line\" (click)=\"goTo(procedure)\">\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.useCount }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.name }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.domain }}</td>\n <td class=\"o-hvy-events-table__line__cell -centered\">{{ procedure.creator }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.id }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.creationDate| date : 'dd/mm/YYYY HH:MM' }}</td>\n <td class=\"o-hvy-events-table__line__cell\">{{ procedure.lastModificationDate | date : 'dd/mm/YYYY HH:MM' }}\n </td>\n <td class=\"o-hvy-events-table__line__cell\">\n <a [routerLink]=\"PROCEDURE_LINK.fn(procedure, store)\">> {{ '@hvy.action.consult' | i18n }}</a>\n </td>\n </tr>\n } @empty {\n <tr>\n <td class=\"o-hvy-events-table__empty\" colspan=\"50\">\n <div>{{ '@hvy.procedure.noContent' | i18n }}</div>\n <div>\n <ng-content></ng-content>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n</div>\n" }]
1267
+ }], ctorParameters: () => [{ type: i1$1.Store }, { type: i0.ElementRef }, { type: i2.Router }, { type: InfiniteScrollService }] });
1268
+
1123
1269
  const HYP_BASE_CONFIG = new InjectionToken('base config');
1124
1270
 
1125
1271
  const enTranslations = {
@@ -1228,7 +1374,15 @@ const enTranslations = {
1228
1374
  },
1229
1375
  procedure: {
1230
1376
  name: 'Procedure',
1231
- progress: 'Procedure progress %'
1377
+ progress: 'Procedure progress %',
1378
+ useCount: 'Usage',
1379
+ title: 'Title',
1380
+ category: 'Category',
1381
+ author: 'Author',
1382
+ id: 'Id',
1383
+ missingProperty: 'Missing property',
1384
+ noContent: 'No existing procedures found',
1385
+ domain: "Domain"
1232
1386
  },
1233
1387
  action: {
1234
1388
  consult: 'Consult',
@@ -1237,7 +1391,8 @@ const enTranslations = {
1237
1391
  comment: 'Comment',
1238
1392
  associate: 'Link to procedure',
1239
1393
  validate: 'Validate',
1240
- cancel: 'Cancel'
1394
+ cancel: 'Cancel',
1395
+ search: 'Search'
1241
1396
  }
1242
1397
  }
1243
1398
  };
@@ -1348,7 +1503,15 @@ const frTranslations = {
1348
1503
  },
1349
1504
  procedure: {
1350
1505
  name: 'Procédure',
1351
- progress: '% avancement procédure'
1506
+ progress: '% avancement procédure',
1507
+ useCount: 'Usage',
1508
+ title: 'Titre',
1509
+ category: 'Métier',
1510
+ author: 'Créateur',
1511
+ id: 'Identifiant',
1512
+ missingProperty: 'Propriété manquante',
1513
+ noContent: 'Aucune procédure n\'a été créée.',
1514
+ domain: "Métier",
1352
1515
  },
1353
1516
  action: {
1354
1517
  consult: 'Consulter',
@@ -1357,7 +1520,8 @@ const frTranslations = {
1357
1520
  comment: 'Commenter',
1358
1521
  associate: 'Associer à une procédure',
1359
1522
  validate: 'Valider',
1360
- cancel: 'Annuler'
1523
+ cancel: 'Annuler',
1524
+ search: 'Rechercher'
1361
1525
  }
1362
1526
  }
1363
1527
  };
@@ -1373,20 +1537,21 @@ class EventEffects {
1373
1537
  this.actions$ = actions$;
1374
1538
  this.eventService = eventService;
1375
1539
  this.store = store;
1376
- this.loadEvents$ = createEffect(() => this.actions$.pipe(ofType(EventActions.load), debounceTime(200), withLatestFrom(this.store.select(EventSelectors.events), this.store.select(EventSelectors.noMoreEvents)), filter(([action, events, noMore]) => !noMore), mergeMap$1(([action, stateEvents]) => this.eventService.list(action.next ? stateEvents.length : 0).pipe(map$1((events) => EventActions.loadSuccess({ events, startingFrom: action.next ? stateEvents.length : 0 })), catchError((error) => [EventActions.loadFailure({ error: error })])))));
1377
- this.getEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.get), debounceTime(200), mergeMap$1((action) => this.eventService.get(action.id).pipe(map$1((event) => EventActions.getSuccess({ event })), catchError((error) => [EventActions.getFailure({ error: error })])))));
1378
- this.getForProcedureEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.getForProcedure), debounceTime(200), mergeMap$1((action) => this.eventService.getProcedure(action.id).pipe(map$1((procedure) => EventActions.getSuccess({ procedure })), catchError((error) => [EventActions.getFailure({ error: error })])))));
1379
- this.saveEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.save), debounceTime(200), mergeMap$1((action) => this.eventService.save(action.event).pipe(map$1((event) => EventActions.saveSuccess({ event: action.event })), catchError((error) => [EventActions.saveFailure({ error: error })])))));
1380
- this.saveProcedure$ = createEffect(() => this.actions$.pipe(ofType(EventActions.saveProcedure), debounceTime(200), mergeMap$1((action) => this.eventService.saveProcedure(action.procedure).pipe(map$1((procedure) => EventActions.saveSuccess({ procedure: action.procedure })), catchError((error) => [EventActions.saveFailure({ error: error })])))));
1540
+ this.loadEvents$ = createEffect(() => this.actions$.pipe(ofType(EventActions.load), debounceTime(200), withLatestFrom(this.store.select(EventSelectors.events), this.store.select(EventSelectors.noMoreEvents)), filter(([action, events, noMore]) => !noMore), mergeMap$1(([action, stateEvents]) => this.eventService.list(action.next ? stateEvents.length : 0).pipe(map((events) => EventActions.loadSuccess({ events, startingFrom: action.next ? stateEvents.length : 0 })), catchError((error) => [EventActions.loadFailure({ error: error })])))));
1541
+ this.getEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.get), debounceTime(200), mergeMap$1((action) => this.eventService.get(action.id).pipe(map((event) => EventActions.getSuccess({ event })), catchError((error) => [EventActions.getFailure({ error: error })])))));
1542
+ this.getForProcedureEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.getForProcedure), debounceTime(200), mergeMap$1((action) => this.eventService.getProcedure(action.id).pipe(map((procedure) => EventActions.getSuccess({ procedure })), catchError((error) => [EventActions.getFailure({ error: error })])))));
1543
+ this.saveEvent$ = createEffect(() => this.actions$.pipe(ofType(EventActions.save), debounceTime(200), mergeMap$1((action) => this.eventService.save(action.event).pipe(map((event) => EventActions.saveSuccess({ event: action.event })), catchError((error) => [EventActions.saveFailure({ error: error })])))));
1544
+ this.saveProcedure$ = createEffect(() => this.actions$.pipe(ofType(EventActions.saveProcedure), debounceTime(200), mergeMap$1((action) => this.eventService.saveProcedure(action.procedure).pipe(map((procedure) => EventActions.saveSuccess({ procedure: action.procedure })), catchError((error) => [EventActions.saveFailure({ error: error })])))));
1381
1545
  this.close$ = createEffect(() => this.actions$.pipe(ofType(EventActions.status), debounceTime(200), mergeMap$1((action) => {
1382
1546
  if (!!action.event) {
1383
- return this.eventService.status(action.event, action.targetStatus, action.comment).pipe(map$1((event) => EventActions.statusSuccess()), catchError((error) => [EventActions.statusFailure({ error: error })]));
1547
+ return this.eventService.status(action.event, action.targetStatus, action.comment).pipe(map((event) => EventActions.statusSuccess()), catchError((error) => [EventActions.statusFailure({ error: error })]));
1384
1548
  }
1385
1549
  else {
1386
- return this.eventService.statusProcedure(action.procedure, action.targetStatus, action.comment).pipe(map$1((event) => EventActions.statusSuccess()), catchError((error) => [EventActions.statusFailure({ error: error })]));
1550
+ return this.eventService.statusProcedure(action.procedure, action.targetStatus, action.comment).pipe(map((event) => EventActions.statusSuccess()), catchError((error) => [EventActions.statusFailure({ error: error })]));
1387
1551
  }
1388
1552
  })));
1389
- this.sort$ = createEffect(() => this.actions$.pipe(ofType(EventActions.sort, EventActions.filter), debounceTime(200), map$1(() => EventActions.load({}))));
1553
+ this.sort$ = createEffect(() => this.actions$.pipe(ofType(EventActions.sort), debounceTime(200), map(() => EventActions.load({}))));
1554
+ this.filter$ = createEffect(() => this.actions$.pipe(ofType(EventActions.filter), filter((action) => action.filterSet === KNOWN_FILTER_SETS.EVENTS), debounceTime(200), map(() => EventActions.load({}))));
1390
1555
  }
1391
1556
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventEffects, deps: [{ token: i1$3.Actions }, { token: EventService }, { token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
1392
1557
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventEffects }); }
@@ -1453,7 +1618,7 @@ class EventSummaryEffects {
1453
1618
  constructor(actions$, eventSummaryService) {
1454
1619
  this.actions$ = actions$;
1455
1620
  this.eventSummaryService = eventSummaryService;
1456
- this.loadSummaries$ = createEffect(() => this.actions$.pipe(ofType(EventSummaryActions.load), debounceTime(200), mergeMap$1((action) => this.eventSummaryService.list().pipe(map$1((summaries) => EventSummaryActions.loadSuccess({ summaries })), catchError((error) => [EventSummaryActions.loadFailure({ error: error })])))));
1621
+ this.loadSummaries$ = createEffect(() => this.actions$.pipe(ofType(EventSummaryActions.load), debounceTime(200), mergeMap$1((action) => this.eventSummaryService.list().pipe(map((summaries) => EventSummaryActions.loadSuccess({ summaries })), catchError((error) => [EventSummaryActions.loadFailure({ error: error })])))));
1457
1622
  }
1458
1623
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventSummaryEffects, deps: [{ token: i1$3.Actions }, { token: EventSummaryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
1459
1624
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: EventSummaryEffects }); }
@@ -1462,9 +1627,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
1462
1627
  type: Injectable
1463
1628
  }], ctorParameters: () => [{ type: i1$3.Actions }, { type: EventSummaryService }] });
1464
1629
 
1630
+ const PAGE_SIZE_FETCH = { value: 20 };
1631
+ class ProcedureService {
1632
+ constructor(httpClient, store) {
1633
+ this.httpClient = httpClient;
1634
+ this.store = store;
1635
+ }
1636
+ list(startWith = 0, pageSize = PAGE_SIZE_FETCH.value) {
1637
+ return this.store.select(HypSelectors.url).pipe(withLatestFrom(this.store.select(ProcedureSelectors.sort), this.store.select(ProcedureSelectors.search)), mergeMap(([url, sort, search]) => {
1638
+ let params = new HttpParams();
1639
+ params = params.set('page', startWith / pageSize + 1);
1640
+ if (search)
1641
+ params = params.set('search', search);
1642
+ if (sort)
1643
+ params = params.set('sort', sort.field).set('order', sort.order);
1644
+ return this.httpClient.get(encodeURI(`${url}/procedures/catalog`), { params });
1645
+ }));
1646
+ }
1647
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureService, deps: [{ token: i1.HttpClient }, { token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
1648
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureService, providedIn: 'root' }); }
1649
+ }
1650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureService, decorators: [{
1651
+ type: Injectable,
1652
+ args: [{
1653
+ providedIn: 'root'
1654
+ }]
1655
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i1$1.Store }] });
1656
+
1657
+ class ProcedureEffects {
1658
+ constructor(actions$, procedureService, store) {
1659
+ this.actions$ = actions$;
1660
+ this.procedureService = procedureService;
1661
+ this.store = store;
1662
+ this.loadProcedures$ = createEffect(() => this.actions$.pipe(ofType(ProcedureActions.load), debounceTime(200), withLatestFrom(this.store.select(ProcedureSelectors.procedures), this.store.select(ProcedureSelectors.noMoreProcedures)), filter(([action, stateProcedures, noMore]) => !noMore), mergeMap$1(([action, stateProcedures]) => this.procedureService.list(action.next ? stateProcedures.length : 0).pipe(map((procedures) => ProcedureActions.loadSuccess({ procedures, startingFrom: action.next ? stateProcedures.length : 0 })), catchError((error) => [ProcedureActions.loadFailure({ error: error })])))));
1663
+ this.search$ = createEffect(() => this.actions$.pipe(ofType(ProcedureActions.search), debounceTime(200), map(() => ProcedureActions.load({}))));
1664
+ this.sort$ = createEffect(() => this.actions$.pipe(ofType(ProcedureActions.sort), debounceTime(200), map(() => ProcedureActions.load({}))));
1665
+ }
1666
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureEffects, deps: [{ token: i1$3.Actions }, { token: ProcedureService }, { token: i1$1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
1667
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureEffects }); }
1668
+ }
1669
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ProcedureEffects, decorators: [{
1670
+ type: Injectable
1671
+ }], ctorParameters: () => [{ type: i1$3.Actions }, { type: ProcedureService }, { type: i1$1.Store }] });
1672
+
1465
1673
  const components = [
1466
1674
  EventDetailComponent,
1467
1675
  EventListComponent,
1676
+ EventColumnOrderComponent,
1468
1677
  IconDisplayComponent,
1469
1678
  EventSummaryItemComponent,
1470
1679
  EventSummaryListComponent,
@@ -1476,7 +1685,9 @@ const components = [
1476
1685
  ColumnOrderComponent,
1477
1686
  EventFiltersComponent,
1478
1687
  DateFilterComponent,
1479
- ChoiceFilterComponent
1688
+ ChoiceFilterComponent,
1689
+ ProcedureListComponent,
1690
+ ProcedureColumnOrderComponent
1480
1691
  ];
1481
1692
  class PvyHypervisorModule {
1482
1693
  static forRoot(options) {
@@ -1498,6 +1709,7 @@ class PvyHypervisorModule {
1498
1709
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: PvyHypervisorModule, deps: [{ token: HYP_BASE_CONFIG }, { token: i1$1.Store }, { token: i3.PryI18nService }], target: i0.ɵɵFactoryTarget.NgModule }); }
1499
1710
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: PvyHypervisorModule, declarations: [EventDetailComponent,
1500
1711
  EventListComponent,
1712
+ EventColumnOrderComponent,
1501
1713
  IconDisplayComponent,
1502
1714
  EventSummaryItemComponent,
1503
1715
  EventSummaryListComponent,
@@ -1509,12 +1721,12 @@ class PvyHypervisorModule {
1509
1721
  ColumnOrderComponent,
1510
1722
  EventFiltersComponent,
1511
1723
  DateFilterComponent,
1512
- ChoiceFilterComponent], imports: [i1$1.StoreFeatureModule, i1$1.StoreFeatureModule, i1$1.StoreFeatureModule, i1$3.EffectsFeatureModule, NgForOf,
1724
+ ChoiceFilterComponent,
1725
+ ProcedureListComponent,
1726
+ ProcedureColumnOrderComponent], imports: [i1$1.StoreFeatureModule, i1$1.StoreFeatureModule, i1$1.StoreFeatureModule, i1$1.StoreFeatureModule, i1$3.EffectsFeatureModule, NgForOf,
1513
1727
  AsyncPipe,
1514
1728
  PryI18nModule,
1515
1729
  PryCoreModule,
1516
- AsyncPipe,
1517
- PryCoreModule,
1518
1730
  NgStyle,
1519
1731
  PryCheckboxModule,
1520
1732
  FormsModule,
@@ -1524,15 +1736,10 @@ class PvyHypervisorModule {
1524
1736
  PryIconModule,
1525
1737
  KeyValuePipe,
1526
1738
  PrySelectModule,
1527
- FormsModule,
1528
1739
  JsonPipe,
1529
- PryDatePickerModule,
1530
- PryI18nModule,
1531
- PryIconModule,
1532
- PryI18nModule,
1533
- AsyncPipe,
1534
- PryI18nModule], exports: [EventDetailComponent,
1740
+ PryDatePickerModule], exports: [EventDetailComponent,
1535
1741
  EventListComponent,
1742
+ EventColumnOrderComponent,
1536
1743
  IconDisplayComponent,
1537
1744
  EventSummaryItemComponent,
1538
1745
  EventSummaryListComponent,
@@ -1544,25 +1751,22 @@ class PvyHypervisorModule {
1544
1751
  ColumnOrderComponent,
1545
1752
  EventFiltersComponent,
1546
1753
  DateFilterComponent,
1547
- ChoiceFilterComponent] }); }
1754
+ ChoiceFilterComponent,
1755
+ ProcedureListComponent,
1756
+ ProcedureColumnOrderComponent] }); }
1548
1757
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: PvyHypervisorModule, imports: [StoreModule.forFeature(hypFeatureKey, hypervisorReducer),
1549
1758
  StoreModule.forFeature(eventFeatureKey, eventReducer),
1550
1759
  StoreModule.forFeature(eventSummaryFeatureKey, eventSummaryReducer),
1551
- EffectsModule.forFeature([EventEffects, EventSummaryEffects, HypervisorEffects]),
1760
+ StoreModule.forFeature(procedureFeatureKey, procedureReducer),
1761
+ EffectsModule.forFeature([EventEffects, EventSummaryEffects, ProcedureEffects, HypervisorEffects]),
1552
1762
  PryI18nModule,
1553
1763
  PryCoreModule,
1554
- PryCoreModule,
1555
1764
  PryCheckboxModule,
1556
1765
  FormsModule,
1557
1766
  PrySinceDateModule,
1558
1767
  PryIconModule,
1559
1768
  PrySelectModule,
1560
- FormsModule,
1561
- PryDatePickerModule,
1562
- PryI18nModule,
1563
- PryIconModule,
1564
- PryI18nModule,
1565
- PryI18nModule] }); }
1769
+ PryDatePickerModule] }); }
1566
1770
  }
1567
1771
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: PvyHypervisorModule, decorators: [{
1568
1772
  type: NgModule,
@@ -1574,13 +1778,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
1574
1778
  StoreModule.forFeature(hypFeatureKey, hypervisorReducer),
1575
1779
  StoreModule.forFeature(eventFeatureKey, eventReducer),
1576
1780
  StoreModule.forFeature(eventSummaryFeatureKey, eventSummaryReducer),
1577
- EffectsModule.forFeature([EventEffects, EventSummaryEffects, HypervisorEffects]),
1781
+ StoreModule.forFeature(procedureFeatureKey, procedureReducer),
1782
+ EffectsModule.forFeature([EventEffects, EventSummaryEffects, ProcedureEffects, HypervisorEffects]),
1578
1783
  NgForOf,
1579
1784
  AsyncPipe,
1580
1785
  PryI18nModule,
1581
1786
  PryCoreModule,
1582
- AsyncPipe,
1583
- PryCoreModule,
1584
1787
  NgStyle,
1585
1788
  PryCheckboxModule,
1586
1789
  FormsModule,
@@ -1590,14 +1793,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
1590
1793
  PryIconModule,
1591
1794
  KeyValuePipe,
1592
1795
  PrySelectModule,
1593
- FormsModule,
1594
1796
  JsonPipe,
1595
1797
  PryDatePickerModule,
1596
- PryI18nModule,
1597
- PryIconModule,
1598
- PryI18nModule,
1599
- AsyncPipe,
1600
- PryI18nModule,
1601
1798
  ],
1602
1799
  exports: [
1603
1800
  ...components,
@@ -1616,5 +1813,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
1616
1813
  * Generated bundle index. Do not edit.
1617
1814
  */
1618
1815
 
1619
- export { CATEGORIES_BY_TYPE, ChoiceFilterComponent, ColumnOrderComponent, DOMAINS, DateFilterComponent, EVENT_LINK, EVENT_TO_ICON, EquipmentService, EventActions, EventDetailComponent, EventEffects, EventFiltersComponent, EventIconPipe, EventListComponent, EventSelectors, EventService, EventSummaryActions, EventSummaryEffects, EventSummaryItemComponent, EventSummaryListComponent, EventSummaryPageComponent, EventSummarySelectors, ForDatetimeLocalPipe, HYP_BASE_CONFIG, HypEventCategory, HypEventCriticality, HypEventStatus, HypEventType, HypSelectors, HypervisorActions, HypervisorEffects, HypervisorService, IconDisplayComponent, KNOWN_FILTER_SETS, PAGE_SIZE_FETCH, ProgressDisplayComponent, PvyHypervisorModule, SCROLL_PX_TO_TRIGGER_FETCH_PAGE, StatusDisplayComponent, enTranslations, eventFeatureKey, eventForWriteAPI, eventInitialState, eventReducer, eventSummaryFeatureKey, eventSummaryInitialState, eventSummaryReducer, frTranslations, hypFeatureKey, hypInitialState, hypervisorReducer, procedureForWriteAPI };
1816
+ export { CATEGORIES_BY_TYPE, ChoiceFilterComponent, ColumnOrderComponent, DOMAINS, DateFilterComponent, EVENT_LINK, EVENT_TO_ICON, EquipmentService, EventActions, EventColumnOrderComponent, EventDetailComponent, EventEffects, EventFiltersComponent, EventIconPipe, EventListComponent, EventSelectors, EventService, EventSummaryActions, EventSummaryEffects, EventSummaryItemComponent, EventSummaryListComponent, EventSummaryPageComponent, EventSummarySelectors, ForDatetimeLocalPipe, HYP_BASE_CONFIG, HypEventCategory, HypEventCriticality, HypEventStatus, HypEventType, HypSelectors, HypervisorActions, HypervisorEffects, HypervisorService, IconDisplayComponent, KNOWN_FILTER_SETS, PAGE_SIZE_FETCH$1 as PAGE_SIZE_FETCH, PROCEDURE_LINK, ProcedureColumnOrderComponent, ProcedureListComponent, ProgressDisplayComponent, PvyHypervisorModule, StatusDisplayComponent, enTranslations, eventFeatureKey, eventForWriteAPI, eventInitialState, eventReducer, eventSummaryFeatureKey, eventSummaryInitialState, eventSummaryReducer, frTranslations, hypFeatureKey, hypInitialState, hypervisorReducer, procedureForWriteAPI };
1620
1817
  //# sourceMappingURL=provoly-hypervisor.mjs.map