@inobeta/ui 20.0.0-build.1773656607 → 20.0.0-build.1773994645

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.
@@ -1,15 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, input, effect, Directive, Injectable, Inject, inject, ViewEncapsulation, Component, NgModule, Input, InjectionToken, TemplateRef, ViewChild, Optional, EventEmitter, Output, booleanAttribute, ContentChild, ChangeDetectionStrategy, contentChild, computed, ContentChildren, ViewChildren, signal, HostBinding } from '@angular/core';
2
+ import { Pipe, input, effect, Directive, Injectable, Inject, inject, ViewEncapsulation, Component, NgModule, Input, InjectionToken, TemplateRef, ViewChild, Optional, EventEmitter, Output, booleanAttribute, ContentChild, ChangeDetectionStrategy, contentChild, computed, ContentChildren, ViewChildren, output, signal, contentChildren, HostBinding } from '@angular/core';
3
3
  import * as i7$1 from '@angular/material/progress-bar';
4
4
  import { MatProgressBar, MatProgressBarModule } from '@angular/material/progress-bar';
5
5
  import { MatProgressSpinner } from '@angular/material/progress-spinner';
6
6
  import { map, catchError, filter, withLatestFrom, mergeMap, delay, takeUntil, switchMap, take, finalize, distinctUntilChanged, tap, debounceTime, skipWhile } from 'rxjs/operators';
7
7
  import * as i1 from '@ngx-translate/core';
8
- import { TranslateModule, TranslateService } from '@ngx-translate/core';
8
+ import { TranslateModule, TranslateService, TranslatePipe } from '@ngx-translate/core';
9
9
  import * as i2 from '@angular/material/snack-bar';
10
10
  import { MatSnackBarModule } from '@angular/material/snack-bar';
11
11
  import * as i1$4 from '@angular/common';
12
- import { CommonModule, NgTemplateOutlet, formatDate, LowerCasePipe } from '@angular/common';
12
+ import { CommonModule, NgTemplateOutlet, formatDate, DecimalPipe, LowerCasePipe, JsonPipe } from '@angular/common';
13
13
  import * as i1$1 from '@angular/common/http';
14
14
  import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi, HttpClient } from '@angular/common/http';
15
15
  import * as i1$2 from '@ngrx/store';
@@ -72,6 +72,8 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
72
72
  import * as i3$4 from '@angular/material/button-toggle';
73
73
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
74
74
  import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
75
+ import { BreakpointObserver } from '@angular/cdk/layout';
76
+ import { MatCard } from '@angular/material/card';
75
77
  import Papa from 'papaparse';
76
78
  import jsPDF from 'jspdf';
77
79
  import { applyPlugin } from 'jspdf-autotable';
@@ -1757,7 +1759,9 @@ const ibKaiTableTranslations = {
1757
1759
  "all": "Tutti i dati",
1758
1760
  "currentPage": "Pagina corrente",
1759
1761
  "selectedRows": "Righe selezionate"
1760
- }
1762
+ },
1763
+ "showDetails": "Mostra dettagli",
1764
+ "hideDetails": "Nascondi dettagli"
1761
1765
  }
1762
1766
  }
1763
1767
  };
@@ -1945,16 +1949,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
1945
1949
  args: [TemplateRef]
1946
1950
  }] } });
1947
1951
  class IbKaiTableActionGroup {
1952
+ templateRef;
1948
1953
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableActionGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1949
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: IbKaiTableActionGroup, isStandalone: false, selector: "ib-table-action-group, [ib-table-action-group]", ngImport: i0 });
1954
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: IbKaiTableActionGroup, isStandalone: false, selector: "ib-table-action-group, [ib-table-action-group]", viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0 });
1950
1955
  }
1951
1956
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableActionGroup, decorators: [{
1952
1957
  type: Directive,
1953
1958
  args: [{
1954
- selector: "ib-table-action-group, [ib-table-action-group]",
1959
+ selector: 'ib-table-action-group, [ib-table-action-group]',
1955
1960
  standalone: false
1956
1961
  }]
1957
- }] });
1962
+ }], propDecorators: { templateRef: [{
1963
+ type: ViewChild,
1964
+ args: [TemplateRef, { static: true }]
1965
+ }] } });
1958
1966
  class IbTableActionModule {
1959
1967
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbTableActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1960
1968
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: IbTableActionModule, declarations: [IbKaiTableAction, IbKaiTableActionGroup], exports: [IbKaiTableAction, IbKaiTableActionGroup] });
@@ -2295,6 +2303,7 @@ class IbColumn {
2295
2303
  headerCell;
2296
2304
  footerCell;
2297
2305
  aggregateCell;
2306
+ isActionColumn = false;
2298
2307
  /** @ignore */
2299
2308
  get matSort() {
2300
2309
  return this._table.sort;
@@ -2358,8 +2367,14 @@ class IbColumn {
2358
2367
  this.columnDef.name = this.name;
2359
2368
  }
2360
2369
  }
2370
+ mobileDataRenderer(data, name) {
2371
+ const value = this.dataAccessor
2372
+ ? this.dataAccessor(data, name)
2373
+ : data?.[name];
2374
+ return value == null ? '' : String(value);
2375
+ }
2361
2376
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbColumn, deps: [], target: i0.ɵɵFactoryTarget.Component });
2362
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.0", type: IbColumn, isStandalone: true, selector: "ib-column", inputs: { name: "name", headerText: "headerText", dataAccessor: "dataAccessor", sortingDataAccessor: "sortingDataAccessor", filterDataAccessor: "filterDataAccessor", sort: ["sort", "sort", booleanAttribute], sticky: ["sticky", "sticky", booleanAttribute], stickyEnd: ["stickyEnd", "stickyEnd", booleanAttribute], aggregate: ["aggregate", "aggregate", booleanAttribute] }, queries: [{ propertyName: "ibCellDef", first: true, predicate: IbCellDef, descendants: true, static: true }], viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true, static: true }, { propertyName: "cell", first: true, predicate: MatCellDef, descendants: true, static: true }, { propertyName: "headerCell", first: true, predicate: MatHeaderCellDef, descendants: true, static: true }, { propertyName: "footerCell", first: true, predicate: MatFooterCellDef, descendants: true, static: true }, { propertyName: "aggregateCell", first: true, predicate: IbAggregateCell, descendants: true }], ngImport: i0, template: `
2377
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.0", type: IbColumn, isStandalone: true, selector: "ib-column", inputs: { name: "name", headerText: "headerText", dataAccessor: "dataAccessor", sortingDataAccessor: "sortingDataAccessor", filterDataAccessor: "filterDataAccessor", sort: ["sort", "sort", booleanAttribute], sticky: ["sticky", "sticky", booleanAttribute], stickyEnd: ["stickyEnd", "stickyEnd", booleanAttribute], aggregate: ["aggregate", "aggregate", booleanAttribute], isActionColumn: ["ib-action-column", "isActionColumn", booleanAttribute] }, queries: [{ propertyName: "ibCellDef", first: true, predicate: IbCellDef, descendants: true, static: true }], viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true, static: true }, { propertyName: "cell", first: true, predicate: MatCellDef, descendants: true, static: true }, { propertyName: "headerCell", first: true, predicate: MatHeaderCellDef, descendants: true, static: true }, { propertyName: "footerCell", first: true, predicate: MatFooterCellDef, descendants: true, static: true }, { propertyName: "aggregateCell", first: true, predicate: IbAggregateCell, descendants: true }], ngImport: i0, template: `
2363
2378
  <ng-container
2364
2379
  matColumnDef
2365
2380
  matSort
@@ -2471,6 +2486,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
2471
2486
  }], aggregateCell: [{
2472
2487
  type: ViewChild,
2473
2488
  args: [IbAggregateCell]
2489
+ }], isActionColumn: [{
2490
+ type: Input,
2491
+ args: [{ alias: 'ib-action-column', transform: booleanAttribute }]
2474
2492
  }] } });
2475
2493
 
2476
2494
  class IbActionColumn {
@@ -2481,7 +2499,7 @@ class IbActionColumn {
2481
2499
  }
2482
2500
  ngOnInit() {
2483
2501
  this.ibColumn.headerText = "";
2484
- this.ibColumn._table.displayedColumns.push("ib-action");
2502
+ this.ibColumn._table?.displayedColumns?.push("ib-action");
2485
2503
  }
2486
2504
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbActionColumn, deps: [{ token: IbColumn }], target: i0.ɵɵFactoryTarget.Directive });
2487
2505
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: IbActionColumn, isStandalone: false, selector: "[ib-action-column]", ngImport: i0 });
@@ -2508,6 +2526,10 @@ class IbDateColumn extends IbColumn {
2508
2526
  filterDataAccessor = (data, name) => new Date(this.dataAccessor(data, name)).getTime();
2509
2527
  /** @ignore */
2510
2528
  transform = { pdf: (data) => formatDate(data, this.format, this.locale) };
2529
+ mobileDataRenderer(data, name) {
2530
+ const value = this.dataAccessor(data, name);
2531
+ return formatDate(value, this.format, this.locale);
2532
+ }
2511
2533
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbDateColumn, deps: null, target: i0.ɵɵFactoryTarget.Component });
2512
2534
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", type: IbDateColumn, isStandalone: false, selector: "ib-date-column", inputs: { format: "format", locale: "locale" }, providers: [
2513
2535
  { provide: IbColumn, useExisting: IbDateColumn },
@@ -2592,6 +2614,14 @@ class IbNumberColumn extends IbColumn {
2592
2614
  locale = "it";
2593
2615
  um = input("", ...(ngDevMode ? [{ debugName: "um" }] : []));
2594
2616
  umPosition = input("right", ...(ngDevMode ? [{ debugName: "umPosition" }] : []));
2617
+ mobileDataRenderer(data, name) {
2618
+ const value = this.dataAccessor(data, name);
2619
+ const formattedValue = DecimalPipe.prototype.transform(value, this.digitsInfo, this.locale) ?? "";
2620
+ if (this.um()) {
2621
+ return this.umPosition() === 'left' ? `${this.um()} ${formattedValue}` : `${formattedValue} ${this.um()}`;
2622
+ }
2623
+ return formattedValue;
2624
+ }
2595
2625
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbNumberColumn, deps: null, target: i0.ɵɵFactoryTarget.Component });
2596
2626
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: IbNumberColumn, isStandalone: false, selector: "ib-number-column", inputs: { digitsInfo: { classPropertyName: "digitsInfo", publicName: "digitsInfo", isSignal: false, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: false, isRequired: false, transformFunction: null }, um: { classPropertyName: "um", publicName: "um", isSignal: true, isRequired: false, transformFunction: null }, umPosition: { classPropertyName: "umPosition", publicName: "umPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
2597
2627
  {
@@ -2622,7 +2652,7 @@ class IbNumberColumn extends IbColumn {
2622
2652
  {{ um() }}&nbsp;
2623
2653
  }
2624
2654
  {{ dataAccessor(data, name) | number : digitsInfo : locale }}
2625
-
2655
+
2626
2656
  @if(umPosition() === 'right') {
2627
2657
  {{ um() }}
2628
2658
  }
@@ -2666,7 +2696,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
2666
2696
  {{ um() }}&nbsp;
2667
2697
  }
2668
2698
  {{ dataAccessor(data, name) | number : digitsInfo : locale }}
2669
-
2699
+
2670
2700
  @if(umPosition() === 'right') {
2671
2701
  {{ um() }}
2672
2702
  }
@@ -3704,6 +3734,7 @@ class IbTableUrlService {
3704
3734
  })
3705
3735
  },
3706
3736
  queryParamsHandling: 'merge',
3737
+ replaceUrl: true,
3707
3738
  });
3708
3739
  }
3709
3740
  getActiveView(tableName) {
@@ -3719,6 +3750,7 @@ class IbTableUrlService {
3719
3750
  })
3720
3751
  },
3721
3752
  queryParamsHandling: 'merge',
3753
+ replaceUrl: true,
3722
3754
  });
3723
3755
  }
3724
3756
  getPaginator(tableName) {
@@ -3736,6 +3768,7 @@ class IbTableUrlService {
3736
3768
  })
3737
3769
  },
3738
3770
  queryParamsHandling: 'merge',
3771
+ replaceUrl: true,
3739
3772
  });
3740
3773
  }
3741
3774
  getAggregatedColumns(tableName) {
@@ -3751,6 +3784,7 @@ class IbTableUrlService {
3751
3784
  })
3752
3785
  },
3753
3786
  queryParamsHandling: 'merge',
3787
+ replaceUrl: true,
3754
3788
  });
3755
3789
  }
3756
3790
  getSort(tableName) {
@@ -3770,6 +3804,7 @@ class IbTableUrlService {
3770
3804
  })
3771
3805
  },
3772
3806
  queryParamsHandling: 'merge',
3807
+ replaceUrl: true,
3773
3808
  });
3774
3809
  }
3775
3810
  getViewState(tableName) {
@@ -3793,6 +3828,7 @@ class IbTableUrlService {
3793
3828
  })
3794
3829
  },
3795
3830
  queryParamsHandling: 'merge',
3831
+ replaceUrl: true,
3796
3832
  });
3797
3833
  }
3798
3834
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbTableUrlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -4228,6 +4264,23 @@ class IbFilterBase {
4228
4264
  closeMenu() {
4229
4265
  this.button?.closeMenu();
4230
4266
  }
4267
+ mobileLabel() {
4268
+ return this.name;
4269
+ }
4270
+ mobileSummary() {
4271
+ const raw = this.rawValue;
4272
+ if (raw == null) {
4273
+ return "";
4274
+ }
4275
+ if (typeof raw !== "object") {
4276
+ return String(raw);
4277
+ }
4278
+ const values = Object.values(raw).filter(v => v != null && v !== "");
4279
+ return values.length ? values.map(v => String(v)).join(" • ") : "";
4280
+ }
4281
+ mobileHasValue() {
4282
+ return !!this.mobileSummary();
4283
+ }
4231
4284
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbFilterBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
4232
4285
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: IbFilterBase, isStandalone: false, selector: "ib-filter-base", inputs: { name: "name" }, viewQueries: [{ propertyName: "button", first: true, predicate: IbFilterButton, descendants: true }], ngImport: i0 });
4233
4286
  }
@@ -4245,6 +4298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
4245
4298
  }] } });
4246
4299
 
4247
4300
  class IbFilter {
4301
+ templateRef;
4248
4302
  /** @ignore */
4249
4303
  filters;
4250
4304
  /** @ignore */
@@ -4279,6 +4333,9 @@ class IbFilter {
4279
4333
  query = {};
4280
4334
  hideFilters = false;
4281
4335
  initialized = new ReplaySubject(1);
4336
+ constructor(templateRef) {
4337
+ this.templateRef = templateRef;
4338
+ }
4282
4339
  ngOnInit() {
4283
4340
  }
4284
4341
  ngAfterViewInit() {
@@ -4316,7 +4373,7 @@ class IbFilter {
4316
4373
  this.initialized.next();
4317
4374
  this.initialized.complete();
4318
4375
  }
4319
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbFilter, deps: [], target: i0.ɵɵFactoryTarget.Component });
4376
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbFilter, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
4320
4377
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: IbFilter, isStandalone: false, selector: "ib-filter", inputs: { value: "value" }, outputs: { ibFilterUpdated: "ibFilterUpdated", ibQueryUpdated: "ibQueryUpdated" }, providers: [{ provide: IB_FILTER, useExisting: IbFilter }], queries: [{ propertyName: "filters", predicate: IbFilterBase }], viewQueries: [{ propertyName: "hideFilterAction", first: true, predicate: IbKaiTableAction, descendants: true }], ngImport: i0, template: `
4321
4378
  <section
4322
4379
  class="ib-filter"
@@ -4331,7 +4388,7 @@ class IbFilter {
4331
4388
  <ng-content></ng-content>
4332
4389
  </section>
4333
4390
  </section>
4334
-
4391
+
4335
4392
  <button
4336
4393
  *ibTableAction
4337
4394
  mat-icon-button
@@ -4359,7 +4416,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
4359
4416
  <ng-content></ng-content>
4360
4417
  </section>
4361
4418
  </section>
4362
-
4419
+
4363
4420
  <button
4364
4421
  *ibTableAction
4365
4422
  mat-icon-button
@@ -4370,7 +4427,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
4370
4427
  <mat-icon>{{ "filter_alt" }}</mat-icon>
4371
4428
  </button>
4372
4429
  `, encapsulation: ViewEncapsulation.None, providers: [{ provide: IB_FILTER, useExisting: IbFilter }], standalone: false, styles: [":host{display:block}section.ib-filter{opacity:1;overflow:hidden}section.ib-filter ib-search-bar{display:block}section.ib-filter__list{display:flex;max-height:56px;padding:12px 0 12px 12px;flex-wrap:wrap;align-items:center;gap:.4em;--mat-button-filled-container-height: 32px;--mat-button-filled-touch-target-display: block;--mat-button-outlined-container-height: 32px;--mat-button-outlined-touch-target-display: block;--mat-button-protected-container-height: 32px;--mat-button-protected-touch-target-display: block;--mat-button-text-container-height: 32px;--mat-button-text-touch-target-display: block;--mat-button-tonal-container-height: 32px;--mat-button-tonal-touch-target-display: block}section.ib-filter__list .ib-filter-button,section.ib-filter__list .ib-add-filter-button{font-size:12px;border-radius:20px}section.ib-filter__list .ib-add-column-filter-button .mdc-evolution-chip__cell--primary .mdc-evolution-chip__action{padding-left:0}section.ib-filter__list mat-icon:first-child{margin:0 12px}.cdk-overlay-container .mat-mdc-menu-panel{overflow-x:hidden;border-radius:8px;margin-top:8px}\n"] }]
4373
- }], propDecorators: { filters: [{
4430
+ }], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
4431
+ type: Optional
4432
+ }] }], propDecorators: { filters: [{
4374
4433
  type: ContentChildren,
4375
4434
  args: [IbFilterBase]
4376
4435
  }], hideFilterAction: [{
@@ -6831,6 +6890,12 @@ class IbTextFilter extends IbFilterBase {
6831
6890
  }
6832
6891
  return { regex, like, condition, text };
6833
6892
  }
6893
+ mobileSummary() {
6894
+ if (!this.displayValue) {
6895
+ return "";
6896
+ }
6897
+ return `${this.displayCondition ?? ""} ${this.displayValue}`.trim();
6898
+ }
6834
6899
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbTextFilter, deps: null, target: i0.ɵɵFactoryTarget.Component });
6835
6900
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: IbTextFilter, isStandalone: false, selector: "ib-text-filter", providers: [{ provide: IbFilterBase, useExisting: IbTextFilter }], usesInheritance: true, ngImport: i0, template: "<ib-filter-button [attr.data-cy]=\"'ib-text-filter-' + name\">\n <span ib-filter-name><ng-content></ng-content></span>\n @if (isDirty) {\n <span ib-filter-value>\n {{ displayCondition | translate | lowercase }} \"{{ displayValue }}\"\n </span>\n }\n\n <section [formGroup]=\"filter?.form\" style=\"padding: 0.5em 1em 0 1em\">\n <section [formGroupName]=\"name\">\n <mat-form-field style=\"width: 100%\">\n <mat-label>{{ \"shared.ibFilter.condition\" | translate }}</mat-label>\n <mat-select formControlName=\"operator\" [attr.data-cy]=\"'ib-text-filter-' + name + '-condition'\">\n @for (operator of operators; track operator) {\n <mat-option [value]=\"operator.value\">\n {{ operator.displayValue | translate }}\n </mat-option>\n }\n </mat-select>\n <mat-error>{{ \"shared.ibFilter.condition\" | translate }}\n {{ \"shared.ibKaiFilter.required\" | translate }}</mat-error>\n </mat-form-field>\n <mat-form-field style=\"width: 100%\">\n <mat-label>{{ \"shared.ibFilter.value\" | translate }}</mat-label>\n <input matInput formControlName=\"value\" [attr.data-cy]=\"'ib-text-filter-' + name + '-value'\" />\n <mat-error>{{ \"shared.ibFilter.value\" | translate }}\n {{ \"shared.ibKaiFilter.required\" | translate }}</mat-error>\n </mat-form-field>\n </section>\n </section>\n\n <ib-filter-action-group>\n <button mat-button (click)=\"clear()\" [disabled]=\"!isDirty\" [attr.data-cy]=\"'ib-filter-clear'\">\n {{ \"shared.ibFilter.clear\" | translate }}\n </button>\n <button mat-button color=\"primary\" (click)=\"applyFilter()\" [attr.data-cy]=\"'ib-filter-update'\">\n {{ \"shared.ibFilter.update\" | translate }}\n </button>\n </ib-filter-action-group>\n</ib-filter-button>", dependencies: [{ kind: "directive", type: i1$6.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: i1$6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$6.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: IbFilterButton, selector: "ib-filter-button" }, { kind: "directive", type: IbFilterActionGroup, selector: "ib-filter-action-group" }, { kind: "directive", type: IbFilterValueDirective, selector: "[ib-filter-value]" }, { kind: "pipe", type: i1$4.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
6836
6901
  }
@@ -7632,6 +7697,564 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
7632
7697
  }]
7633
7698
  }] });
7634
7699
 
7700
+ class IbKaiTableMobileInfiniteScrollComponent {
7701
+ hasMoreRows = input(false, ...(ngDevMode ? [{ debugName: "hasMoreRows" }] : []));
7702
+ data = input([], ...(ngDevMode ? [{ debugName: "data" }] : []));
7703
+ visibleCountChanged = output();
7704
+ scrollAnchor;
7705
+ pageSize = input(20, ...(ngDevMode ? [{ debugName: "pageSize" }] : []));
7706
+ observer;
7707
+ visibleCount = signal(this.pageSize(), ...(ngDevMode ? [{ debugName: "visibleCount" }] : []));
7708
+ constructor() {
7709
+ effect(() => {
7710
+ this.data();
7711
+ this.pageSize();
7712
+ this.visibleCount.set(this.pageSize());
7713
+ });
7714
+ effect(() => {
7715
+ this.hasMoreRows();
7716
+ queueMicrotask(() => this.watchAnchor());
7717
+ });
7718
+ effect(() => {
7719
+ this.visibleCount();
7720
+ this.visibleCountChanged.emit(this.visibleCount());
7721
+ });
7722
+ }
7723
+ ngAfterViewInit() {
7724
+ this.setupInfiniteScroll();
7725
+ }
7726
+ setupInfiniteScroll() {
7727
+ this.observer?.disconnect();
7728
+ this.observer = new IntersectionObserver(entries => {
7729
+ for (const entry of entries) {
7730
+ if (entry.isIntersecting && this.hasMoreRows()) {
7731
+ this.loadMore();
7732
+ }
7733
+ }
7734
+ }, {
7735
+ root: null,
7736
+ rootMargin: '200px 0px',
7737
+ threshold: 0,
7738
+ });
7739
+ this.watchAnchor();
7740
+ }
7741
+ watchAnchor = () => {
7742
+ this.observer?.disconnect();
7743
+ const anchor = this.scrollAnchor?.nativeElement;
7744
+ if (anchor && this.hasMoreRows()) {
7745
+ this.observer?.observe(anchor);
7746
+ }
7747
+ };
7748
+ loadMore() {
7749
+ const total = this.data()?.length ?? 0;
7750
+ const next = Math.min(this.visibleCount() + this.pageSize(), total);
7751
+ this.visibleCount.set(next);
7752
+ }
7753
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableMobileInfiniteScrollComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7754
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.0", type: IbKaiTableMobileInfiniteScrollComponent, isStandalone: true, selector: "ib-kai-table-mobile-infinitescroll", inputs: { hasMoreRows: { classPropertyName: "hasMoreRows", publicName: "hasMoreRows", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleCountChanged: "visibleCountChanged" }, viewQueries: [{ propertyName: "scrollAnchor", first: true, predicate: ["scrollAnchor"], descendants: true }], ngImport: i0, template: `
7755
+ <div #scrollAnchor class="ib-kai-table-mobile__scroll-anchor"></div>
7756
+ `, isInline: true, styles: [".ib-kai-table-mobile__scroll-anchor{width:100%;height:1px}\n"] });
7757
+ }
7758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableMobileInfiniteScrollComponent, decorators: [{
7759
+ type: Component,
7760
+ args: [{ selector: 'ib-kai-table-mobile-infinitescroll', standalone: true, imports: [], template: `
7761
+ <div #scrollAnchor class="ib-kai-table-mobile__scroll-anchor"></div>
7762
+ `, styles: [".ib-kai-table-mobile__scroll-anchor{width:100%;height:1px}\n"] }]
7763
+ }], ctorParameters: () => [], propDecorators: { scrollAnchor: [{
7764
+ type: ViewChild,
7765
+ args: ['scrollAnchor']
7766
+ }] } });
7767
+
7768
+ class IbKaiTableMobileItemComponent {
7769
+ row;
7770
+ cardDataColumns = input([], ...(ngDevMode ? [{ debugName: "cardDataColumns" }] : []));
7771
+ cardActionColumns = input([], ...(ngDevMode ? [{ debugName: "cardActionColumns" }] : []));
7772
+ rowGroup = input(null, ...(ngDevMode ? [{ debugName: "rowGroup" }] : []));
7773
+ isExpanded = signal(false, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
7774
+ toggleRowGroup() {
7775
+ this.isExpanded.update(current => !current);
7776
+ }
7777
+ isRowGroupExpanded() {
7778
+ return this.isExpanded();
7779
+ }
7780
+ isOdd(value) {
7781
+ return value % 2 !== 0;
7782
+ }
7783
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableMobileItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7784
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: IbKaiTableMobileItemComponent, isStandalone: true, selector: "ib-kai-table-mobile-item", inputs: { row: { classPropertyName: "row", publicName: "row", isSignal: false, isRequired: false, transformFunction: null }, cardDataColumns: { classPropertyName: "cardDataColumns", publicName: "cardDataColumns", isSignal: true, isRequired: false, transformFunction: null }, cardActionColumns: { classPropertyName: "cardActionColumns", publicName: "cardActionColumns", isSignal: true, isRequired: false, transformFunction: null }, rowGroup: { classPropertyName: "rowGroup", publicName: "rowGroup", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
7785
+ <mat-card>
7786
+ <div class="ib-kai-table-mobile__grid">
7787
+ @for (col of cardDataColumns(); track col.name; let last = $last; let even = $even) {
7788
+ <section
7789
+ class="ib-kai-table-mobile__item"
7790
+ [class.ib-kai-table-mobile__item--right]="even && !(last && isOdd(cardDataColumns().length))"
7791
+ [class.ib-kai-table-mobile__item--full]="last && isOdd(cardDataColumns().length)"
7792
+ >
7793
+ <div class="ib-kai-table-mobile__label">
7794
+ {{ col.headerText || col.name }}
7795
+ </div>
7796
+
7797
+ <div class="ib-kai-table-mobile__value">
7798
+ @if (col.ibCellDef) {
7799
+ <ng-container
7800
+ *ngTemplateOutlet="
7801
+ col.ibCellDef.templateRef;
7802
+ context: { $implicit: row }
7803
+ "
7804
+ />
7805
+ } @else {
7806
+ {{ col.mobileDataRenderer(row, col.name) }}
7807
+ }
7808
+ </div>
7809
+ </section>
7810
+ }
7811
+ </div>
7812
+
7813
+ @if (cardActionColumns().length) {
7814
+ <div class="ib-kai-table-mobile__card-actions">
7815
+ @for (col of cardActionColumns(); track col.name ?? $index) {
7816
+ @if (col.ibCellDef?.templateRef) {
7817
+ <ng-container
7818
+ *ngTemplateOutlet="
7819
+ col.ibCellDef.templateRef;
7820
+ context: { $implicit: row }
7821
+ "
7822
+ />
7823
+ }
7824
+ }
7825
+ </div>
7826
+ }
7827
+
7828
+ @if (rowGroup()) {
7829
+ <button
7830
+ type="button"
7831
+ class="ib-kai-table-mobile__details-toggle"
7832
+ (click)="toggleRowGroup()"
7833
+ >
7834
+ <span>
7835
+ {{ (isExpanded() ? 'shared.ibTable.hideDetails' : 'shared.ibTable.showDetails' )| translate }}
7836
+ </span>
7837
+ <span
7838
+ class="ib-kai-table-mobile__chevron"
7839
+ [class.ib-kai-table-mobile__chevron--expanded]="isExpanded()"
7840
+ >
7841
+
7842
+ </span>
7843
+ </button>
7844
+
7845
+ @if (isExpanded()) {
7846
+ <div class="ib-kai-table-mobile__details">
7847
+ <ng-container
7848
+ *ngTemplateOutlet="
7849
+ rowGroup()!.templateRef;
7850
+ context: { $implicit: row }
7851
+ "
7852
+ />
7853
+ </div>
7854
+ }
7855
+ }
7856
+ </mat-card>
7857
+ `, isInline: true, styles: [".ib-kai-table-mobile__card{width:100%;min-width:0;box-sizing:border-box;background:var(--ib-mobile-card-bg);border:1px solid var(--ib-mobile-border);border-radius:var(--ib-mobile-radius);box-shadow:var(--ib-mobile-shadow);overflow:hidden}.ib-kai-table-mobile__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.ib-kai-table-mobile__item{min-width:0;padding:12px 14px 10px;border-bottom:1px solid var(--ib-mobile-separator)}.ib-kai-table-mobile__item--right{border-right:1px solid color-mix(in srgb,var(--ib-mobile-separator) 70%,transparent)}.ib-kai-table-mobile__item--full{grid-column:1 / -1}.ib-kai-table-mobile__label{font-size:11px;line-height:1.2;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ib-mobile-text-muted);margin-bottom:4px}.ib-kai-table-mobile__value{min-width:0;color:var(--ib-mobile-text);font-size:15px;line-height:1.3;font-weight:600;word-break:break-word}.ib-kai-table-mobile__card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--ib-mobile-separator)}.ib-kai-table-mobile__details-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:0;border-top:1px solid var(--ib-mobile-separator);background:transparent;color:var(--ib-mobile-text);font:inherit;font-weight:600;cursor:pointer}.ib-kai-table-mobile__chevron{display:inline-block;transition:transform .16s ease}.ib-kai-table-mobile__chevron--expanded{transform:rotate(180deg)}.ib-kai-table-mobile__details{padding:12px 14px 14px;border-top:1px solid var(--ib-mobile-separator);background:var(--mat-sys-surface-container)}\n"], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
7858
+ }
7859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableMobileItemComponent, decorators: [{
7860
+ type: Component,
7861
+ args: [{ selector: 'ib-kai-table-mobile-item', template: `
7862
+ <mat-card>
7863
+ <div class="ib-kai-table-mobile__grid">
7864
+ @for (col of cardDataColumns(); track col.name; let last = $last; let even = $even) {
7865
+ <section
7866
+ class="ib-kai-table-mobile__item"
7867
+ [class.ib-kai-table-mobile__item--right]="even && !(last && isOdd(cardDataColumns().length))"
7868
+ [class.ib-kai-table-mobile__item--full]="last && isOdd(cardDataColumns().length)"
7869
+ >
7870
+ <div class="ib-kai-table-mobile__label">
7871
+ {{ col.headerText || col.name }}
7872
+ </div>
7873
+
7874
+ <div class="ib-kai-table-mobile__value">
7875
+ @if (col.ibCellDef) {
7876
+ <ng-container
7877
+ *ngTemplateOutlet="
7878
+ col.ibCellDef.templateRef;
7879
+ context: { $implicit: row }
7880
+ "
7881
+ />
7882
+ } @else {
7883
+ {{ col.mobileDataRenderer(row, col.name) }}
7884
+ }
7885
+ </div>
7886
+ </section>
7887
+ }
7888
+ </div>
7889
+
7890
+ @if (cardActionColumns().length) {
7891
+ <div class="ib-kai-table-mobile__card-actions">
7892
+ @for (col of cardActionColumns(); track col.name ?? $index) {
7893
+ @if (col.ibCellDef?.templateRef) {
7894
+ <ng-container
7895
+ *ngTemplateOutlet="
7896
+ col.ibCellDef.templateRef;
7897
+ context: { $implicit: row }
7898
+ "
7899
+ />
7900
+ }
7901
+ }
7902
+ </div>
7903
+ }
7904
+
7905
+ @if (rowGroup()) {
7906
+ <button
7907
+ type="button"
7908
+ class="ib-kai-table-mobile__details-toggle"
7909
+ (click)="toggleRowGroup()"
7910
+ >
7911
+ <span>
7912
+ {{ (isExpanded() ? 'shared.ibTable.hideDetails' : 'shared.ibTable.showDetails' )| translate }}
7913
+ </span>
7914
+ <span
7915
+ class="ib-kai-table-mobile__chevron"
7916
+ [class.ib-kai-table-mobile__chevron--expanded]="isExpanded()"
7917
+ >
7918
+
7919
+ </span>
7920
+ </button>
7921
+
7922
+ @if (isExpanded()) {
7923
+ <div class="ib-kai-table-mobile__details">
7924
+ <ng-container
7925
+ *ngTemplateOutlet="
7926
+ rowGroup()!.templateRef;
7927
+ context: { $implicit: row }
7928
+ "
7929
+ />
7930
+ </div>
7931
+ }
7932
+ }
7933
+ </mat-card>
7934
+ `, imports: [
7935
+ MatCard, NgTemplateOutlet, TranslatePipe
7936
+ ], styles: [".ib-kai-table-mobile__card{width:100%;min-width:0;box-sizing:border-box;background:var(--ib-mobile-card-bg);border:1px solid var(--ib-mobile-border);border-radius:var(--ib-mobile-radius);box-shadow:var(--ib-mobile-shadow);overflow:hidden}.ib-kai-table-mobile__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.ib-kai-table-mobile__item{min-width:0;padding:12px 14px 10px;border-bottom:1px solid var(--ib-mobile-separator)}.ib-kai-table-mobile__item--right{border-right:1px solid color-mix(in srgb,var(--ib-mobile-separator) 70%,transparent)}.ib-kai-table-mobile__item--full{grid-column:1 / -1}.ib-kai-table-mobile__label{font-size:11px;line-height:1.2;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ib-mobile-text-muted);margin-bottom:4px}.ib-kai-table-mobile__value{min-width:0;color:var(--ib-mobile-text);font-size:15px;line-height:1.3;font-weight:600;word-break:break-word}.ib-kai-table-mobile__card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--ib-mobile-separator)}.ib-kai-table-mobile__details-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:0;border-top:1px solid var(--ib-mobile-separator);background:transparent;color:var(--ib-mobile-text);font:inherit;font-weight:600;cursor:pointer}.ib-kai-table-mobile__chevron{display:inline-block;transition:transform .16s ease}.ib-kai-table-mobile__chevron--expanded{transform:rotate(180deg)}.ib-kai-table-mobile__details{padding:12px 14px 14px;border-top:1px solid var(--ib-mobile-separator);background:var(--mat-sys-surface-container)}\n"] }]
7937
+ }], propDecorators: { row: [{
7938
+ type: Input
7939
+ }] } });
7940
+
7941
+ class IbKaiTableMobileToolbarComponent {
7942
+ headerActions = input([], ...(ngDevMode ? [{ debugName: "headerActions" }] : []));
7943
+ filters = input([], ...(ngDevMode ? [{ debugName: "filters" }] : []));
7944
+ filtersOpen = signal(false, ...(ngDevMode ? [{ debugName: "filtersOpen" }] : []));
7945
+ activeFiltersCount = computed(() => {
7946
+ return this.filters().filter(f => f.mobileHasValue()).length;
7947
+ }, ...(ngDevMode ? [{ debugName: "activeFiltersCount" }] : []));
7948
+ toggleFilters() {
7949
+ this.filtersOpen.update(v => !v);
7950
+ }
7951
+ closeFilters() {
7952
+ this.filtersOpen.set(false);
7953
+ }
7954
+ clearAllFilters() {
7955
+ this.filters().forEach(f => f.clear());
7956
+ }
7957
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableMobileToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7958
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: IbKaiTableMobileToolbarComponent, isStandalone: true, selector: "ib-kai-table-mobile-toolbar", inputs: { headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
7959
+ <div class="ib-kai-table-mobile__toolbar">
7960
+ <div class="ib-kai-table-mobile__toolbar-actions">
7961
+ @for (action of headerActions(); track $index) {
7962
+ @if (action.templateRef) {
7963
+ <ng-container
7964
+ *ngTemplateOutlet="action.templateRef">
7965
+ </ng-container>
7966
+ }
7967
+ }
7968
+ </div>
7969
+
7970
+ @if (filters().length) {
7971
+ <mat-card>
7972
+ <button
7973
+ type="button"
7974
+ class="ib-kai-table-mobile__filter-button"
7975
+ (click)="toggleFilters()"
7976
+ >
7977
+ Filtri
7978
+ @if (activeFiltersCount() > 0) {
7979
+ <span class="ib-kai-table-mobile__filter-badge">
7980
+ {{ activeFiltersCount() }}
7981
+ </span>
7982
+ }
7983
+ </button>
7984
+ </mat-card>
7985
+ }
7986
+ </div>
7987
+
7988
+ @if (filtersOpen()) {
7989
+ <mat-card>
7990
+ <div class="ib-kai-table-mobile__filters-panel-header">
7991
+ <div class="ib-kai-table-mobile__filters-title">Filtri</div>
7992
+
7993
+ <div class="ib-kai-table-mobile__filters-panel-actions">
7994
+ <button
7995
+ type="button"
7996
+ class="ib-kai-table-mobile__filters-action"
7997
+ (click)="clearAllFilters()"
7998
+ >
7999
+ Reset
8000
+ </button>
8001
+
8002
+ <button
8003
+ type="button"
8004
+ class="ib-kai-table-mobile__filters-action"
8005
+ (click)="closeFilters()"
8006
+ >
8007
+ Chiudi
8008
+ </button>
8009
+ </div>
8010
+ </div>
8011
+
8012
+ <div class="ib-kai-table-mobile__filters-content">
8013
+ @for (f of filters(); track f.name) {
8014
+ <div class="ib-kai-table-mobile__filter-item">
8015
+ <div class="ib-kai-table-mobile__filter-item-main">
8016
+ <div class="ib-kai-table-mobile__filter-item-label">
8017
+ {{ f.mobileLabel() }}
8018
+ </div>
8019
+
8020
+ <div class="ib-kai-table-mobile__filter-item-value">
8021
+ {{ f.mobileSummary() || 'Nessun filtro attivo' }}
8022
+ </div>
8023
+ </div>
8024
+
8025
+ <div class="ib-kai-table-mobile__filter-item-actions">
8026
+ @if (f.mobileHasValue()) {
8027
+ <button
8028
+ type="button"
8029
+ class="ib-kai-table-mobile__filter-item-button"
8030
+ (click)="f.clear()"
8031
+ >
8032
+ Reset
8033
+ </button>
8034
+ }
8035
+ </div>
8036
+ </div>
8037
+ }
8038
+ </div>
8039
+ </mat-card>
8040
+ }
8041
+
8042
+
8043
+ `, isInline: true, styles: [".ib-kai-table-mobile__toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:10px 12px;border:1px solid var(--ib-mobile-border);border-radius:16px;background:var(--ib-mobile-card-bg);box-shadow:var(--ib-mobile-shadow)}.ib-kai-table-mobile__toolbar-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.ib-kai-table-mobile__filter-button,.ib-kai-table-mobile__filters-action,.ib-kai-table-mobile__filter-item-button{border:1px solid var(--ib-mobile-border);background:var(--mat-sys-surface-container-high);color:var(--ib-mobile-text);border-radius:999px;padding:8px 12px;font:inherit;font-weight:600;cursor:pointer}.ib-kai-table-mobile__filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 4px;border-radius:999px;background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);font-size:11px;line-height:1}.ib-kai-table-mobile__filters-panel{margin-top:10px;border:1px solid var(--ib-mobile-border);border-radius:16px;background:var(--ib-mobile-card-bg);box-shadow:var(--ib-mobile-shadow);overflow:hidden}.ib-kai-table-mobile__filters-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid var(--ib-mobile-separator)}.ib-kai-table-mobile__filters-title{font-weight:700;color:var(--ib-mobile-text)}.ib-kai-table-mobile__filters-panel-actions{display:flex;align-items:center;gap:8px}.ib-kai-table-mobile__filters-content{display:flex;flex-direction:column;gap:10px;padding:12px}.ib-kai-table-mobile__filter-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--ib-mobile-separator);border-radius:12px;background:var(--mat-sys-surface-container)}.ib-kai-table-mobile__filter-item-main{min-width:0}.ib-kai-table-mobile__filter-item-label{font-size:12px;font-weight:700;color:var(--ib-mobile-text);margin-bottom:4px}.ib-kai-table-mobile__filter-item-value{font-size:13px;color:var(--ib-mobile-text-muted);word-break:break-word}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }] });
8044
+ }
8045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableMobileToolbarComponent, decorators: [{
8046
+ type: Component,
8047
+ args: [{ selector: 'ib-kai-table-mobile-toolbar', standalone: true, imports: [NgTemplateOutlet, MatCard], template: `
8048
+ <div class="ib-kai-table-mobile__toolbar">
8049
+ <div class="ib-kai-table-mobile__toolbar-actions">
8050
+ @for (action of headerActions(); track $index) {
8051
+ @if (action.templateRef) {
8052
+ <ng-container
8053
+ *ngTemplateOutlet="action.templateRef">
8054
+ </ng-container>
8055
+ }
8056
+ }
8057
+ </div>
8058
+
8059
+ @if (filters().length) {
8060
+ <mat-card>
8061
+ <button
8062
+ type="button"
8063
+ class="ib-kai-table-mobile__filter-button"
8064
+ (click)="toggleFilters()"
8065
+ >
8066
+ Filtri
8067
+ @if (activeFiltersCount() > 0) {
8068
+ <span class="ib-kai-table-mobile__filter-badge">
8069
+ {{ activeFiltersCount() }}
8070
+ </span>
8071
+ }
8072
+ </button>
8073
+ </mat-card>
8074
+ }
8075
+ </div>
8076
+
8077
+ @if (filtersOpen()) {
8078
+ <mat-card>
8079
+ <div class="ib-kai-table-mobile__filters-panel-header">
8080
+ <div class="ib-kai-table-mobile__filters-title">Filtri</div>
8081
+
8082
+ <div class="ib-kai-table-mobile__filters-panel-actions">
8083
+ <button
8084
+ type="button"
8085
+ class="ib-kai-table-mobile__filters-action"
8086
+ (click)="clearAllFilters()"
8087
+ >
8088
+ Reset
8089
+ </button>
8090
+
8091
+ <button
8092
+ type="button"
8093
+ class="ib-kai-table-mobile__filters-action"
8094
+ (click)="closeFilters()"
8095
+ >
8096
+ Chiudi
8097
+ </button>
8098
+ </div>
8099
+ </div>
8100
+
8101
+ <div class="ib-kai-table-mobile__filters-content">
8102
+ @for (f of filters(); track f.name) {
8103
+ <div class="ib-kai-table-mobile__filter-item">
8104
+ <div class="ib-kai-table-mobile__filter-item-main">
8105
+ <div class="ib-kai-table-mobile__filter-item-label">
8106
+ {{ f.mobileLabel() }}
8107
+ </div>
8108
+
8109
+ <div class="ib-kai-table-mobile__filter-item-value">
8110
+ {{ f.mobileSummary() || 'Nessun filtro attivo' }}
8111
+ </div>
8112
+ </div>
8113
+
8114
+ <div class="ib-kai-table-mobile__filter-item-actions">
8115
+ @if (f.mobileHasValue()) {
8116
+ <button
8117
+ type="button"
8118
+ class="ib-kai-table-mobile__filter-item-button"
8119
+ (click)="f.clear()"
8120
+ >
8121
+ Reset
8122
+ </button>
8123
+ }
8124
+ </div>
8125
+ </div>
8126
+ }
8127
+ </div>
8128
+ </mat-card>
8129
+ }
8130
+
8131
+
8132
+ `, styles: [".ib-kai-table-mobile__toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:10px 12px;border:1px solid var(--ib-mobile-border);border-radius:16px;background:var(--ib-mobile-card-bg);box-shadow:var(--ib-mobile-shadow)}.ib-kai-table-mobile__toolbar-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.ib-kai-table-mobile__filter-button,.ib-kai-table-mobile__filters-action,.ib-kai-table-mobile__filter-item-button{border:1px solid var(--ib-mobile-border);background:var(--mat-sys-surface-container-high);color:var(--ib-mobile-text);border-radius:999px;padding:8px 12px;font:inherit;font-weight:600;cursor:pointer}.ib-kai-table-mobile__filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 4px;border-radius:999px;background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);font-size:11px;line-height:1}.ib-kai-table-mobile__filters-panel{margin-top:10px;border:1px solid var(--ib-mobile-border);border-radius:16px;background:var(--ib-mobile-card-bg);box-shadow:var(--ib-mobile-shadow);overflow:hidden}.ib-kai-table-mobile__filters-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid var(--ib-mobile-separator)}.ib-kai-table-mobile__filters-title{font-weight:700;color:var(--ib-mobile-text)}.ib-kai-table-mobile__filters-panel-actions{display:flex;align-items:center;gap:8px}.ib-kai-table-mobile__filters-content{display:flex;flex-direction:column;gap:10px;padding:12px}.ib-kai-table-mobile__filter-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--ib-mobile-separator);border-radius:12px;background:var(--mat-sys-surface-container)}.ib-kai-table-mobile__filter-item-main{min-width:0}.ib-kai-table-mobile__filter-item-label{font-size:12px;font-weight:700;color:var(--ib-mobile-text);margin-bottom:4px}.ib-kai-table-mobile__filter-item-value{font-size:13px;color:var(--ib-mobile-text-muted);word-break:break-word}\n"] }]
8133
+ }] });
8134
+
8135
+ class IbKaiTableMobileComponent {
8136
+ state = input('idle', ...(ngDevMode ? [{ debugName: "state" }] : []));
8137
+ data = input([], ...(ngDevMode ? [{ debugName: "data" }] : []));
8138
+ dataSource = input(new IbTableDataSource([]), ...(ngDevMode ? [{ debugName: "dataSource" }] : []));
8139
+ tableName = input(btoa(window.location.pathname + window.location.hash), ...(ngDevMode ? [{ debugName: "tableName" }] : []));
8140
+ tableDef = input({}, ...(ngDevMode ? [{ debugName: "tableDef" }] : []));
8141
+ displayedColumns = input([], ...(ngDevMode ? [{ debugName: "displayedColumns" }] : []));
8142
+ pageSize = input(20, ...(ngDevMode ? [{ debugName: "pageSize" }] : []));
8143
+ columns = input(...(ngDevMode ? [undefined, { debugName: "columns" }] : []));
8144
+ rowGroup = input(...(ngDevMode ? [undefined, { debugName: "rowGroup" }] : []));
8145
+ filter = input(...(ngDevMode ? [undefined, { debugName: "filter" }] : []));
8146
+ filters = input(...(ngDevMode ? [undefined, { debugName: "filters" }] : []));
8147
+ headerActions = input(...(ngDevMode ? [undefined, { debugName: "headerActions" }] : []));
8148
+ actionColumn = input(...(ngDevMode ? [undefined, { debugName: "actionColumn" }] : []));
8149
+ scrollAnchor;
8150
+ observer;
8151
+ visibleCount = signal(this.pageSize(), ...(ngDevMode ? [{ debugName: "visibleCount" }] : []));
8152
+ filtersOpen = signal(false, ...(ngDevMode ? [{ debugName: "filtersOpen" }] : []));
8153
+ visibleColumns = computed(() => {
8154
+ const cols = this.columns() ?? [];
8155
+ const displayed = [...(this.displayedColumns() ?? [])];
8156
+ if (!!this.actionColumn && !displayed.includes('ib-action')) {
8157
+ displayed.push('ib-action');
8158
+ }
8159
+ if (!displayed.length) {
8160
+ return cols;
8161
+ }
8162
+ const byName = new Map(cols.map(col => [col.name, col]));
8163
+ return displayed
8164
+ .map(name => byName.get(name))
8165
+ .filter((col) => !!col);
8166
+ }, ...(ngDevMode ? [{ debugName: "visibleColumns" }] : []));
8167
+ cardDataColumns = computed(() => {
8168
+ return this.visibleColumns().filter(col => !col.isActionColumn);
8169
+ }, ...(ngDevMode ? [{ debugName: "cardDataColumns" }] : []));
8170
+ cardActionColumns = computed(() => {
8171
+ return this.visibleColumns().filter(col => col.isActionColumn);
8172
+ }, ...(ngDevMode ? [{ debugName: "cardActionColumns" }] : []));
8173
+ visibleRows = computed(() => {
8174
+ return (this.data() ?? []).slice(0, this.visibleCount());
8175
+ }, ...(ngDevMode ? [{ debugName: "visibleRows" }] : []));
8176
+ hasMoreRows = computed(() => {
8177
+ return this.visibleRows().length < (this.data()?.length ?? 0);
8178
+ }, ...(ngDevMode ? [{ debugName: "hasMoreRows" }] : []));
8179
+ trackRow(index, row) {
8180
+ return this.getRowKey(row, index);
8181
+ }
8182
+ getRowKey(row, index) {
8183
+ return row?.id ?? row?.uuid ?? row?.key ?? index;
8184
+ }
8185
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8186
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: IbKaiTableMobileComponent, isStandalone: true, selector: "ib-kai-table-mobile", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, tableName: { classPropertyName: "tableName", publicName: "tableName", isSignal: true, isRequired: false, transformFunction: null }, tableDef: { classPropertyName: "tableDef", publicName: "tableDef", isSignal: true, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, rowGroup: { classPropertyName: "rowGroup", publicName: "rowGroup", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, actionColumn: { classPropertyName: "actionColumn", publicName: "actionColumn", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "scrollAnchor", first: true, predicate: ["scrollAnchor"], descendants: true }], ngImport: i0, template: `
8187
+ <div class="ib-kai-table-mobile">
8188
+ @if (headerActions().length || filters().length) {
8189
+ <!-- TBD <div class="ib-kai-table-mobile__sticky-header">
8190
+ <ib-kai-table-mobile-toolbar
8191
+ [headerActions]="headerActions()"
8192
+ [filters]="filters()"
8193
+ ></ib-kai-table-mobile-toolbar>
8194
+ </div>-->
8195
+ }
8196
+ @if (cardDataColumns().length || cardActionColumns().length) {
8197
+ <div class="ib-kai-table-mobile__content">
8198
+ @for (row of visibleRows(); track trackRow($index, row)) {
8199
+ <ib-kai-table-mobile-item
8200
+ [row]="row"
8201
+ [cardDataColumns]="cardDataColumns()"
8202
+ [cardActionColumns]="cardActionColumns()"
8203
+ [rowGroup]="rowGroup()"
8204
+ ></ib-kai-table-mobile-item>
8205
+ }
8206
+
8207
+ @if (hasMoreRows()) {
8208
+ <ib-kai-table-mobile-infinitescroll
8209
+ [hasMoreRows]="hasMoreRows()"
8210
+ [data]="data()"
8211
+ (visibleCountChanged)="visibleCount.set($event)"
8212
+ ></ib-kai-table-mobile-infinitescroll>
8213
+ }
8214
+ </div>
8215
+ }
8216
+ </div>
8217
+ `, isInline: true, styles: [":host{display:block;width:100%;min-width:0;--ib-mobile-bg: var(--mat-sys-surface);--ib-mobile-card-bg: var(--mat-sys-surface-container-low);--ib-mobile-border: var(--mat-sys-outline-variant);--ib-mobile-separator: var(--mat-sys-outline-variant);--ib-mobile-text: var(--mat-sys-on-surface);--ib-mobile-text-muted: var(--mat-sys-on-surface-variant);--ib-mobile-shadow: var(--mat-sys-level1);--ib-mobile-radius: 18px;--ib-mobile-sticky-top: 0px}.ib-kai-table-mobile{width:100%;min-width:0;box-sizing:border-box;background:var(--ib-mobile-bg)}.ib-kai-table-mobile__sticky-header{position:sticky;top:var(--ib-mobile-sticky-top);z-index:20;background:var(--ib-mobile-bg);padding:12px 12px 8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ib-kai-table-mobile__content{display:flex;flex-direction:column;gap:14px;padding:4px 12px 12px;width:100%;min-width:0;box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: IbKaiTableMobileItemComponent, selector: "ib-kai-table-mobile-item", inputs: ["row", "cardDataColumns", "cardActionColumns", "rowGroup"] }, { kind: "component", type: IbKaiTableMobileInfiniteScrollComponent, selector: "ib-kai-table-mobile-infinitescroll", inputs: ["hasMoreRows", "data", "pageSize"], outputs: ["visibleCountChanged"] }] });
8218
+ }
8219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbKaiTableMobileComponent, decorators: [{
8220
+ type: Component,
8221
+ args: [{ selector: 'ib-kai-table-mobile', standalone: true, imports: [IbKaiTableMobileToolbarComponent, IbKaiTableMobileItemComponent, IbKaiTableMobileInfiniteScrollComponent, JsonPipe], template: `
8222
+ <div class="ib-kai-table-mobile">
8223
+ @if (headerActions().length || filters().length) {
8224
+ <!-- TBD <div class="ib-kai-table-mobile__sticky-header">
8225
+ <ib-kai-table-mobile-toolbar
8226
+ [headerActions]="headerActions()"
8227
+ [filters]="filters()"
8228
+ ></ib-kai-table-mobile-toolbar>
8229
+ </div>-->
8230
+ }
8231
+ @if (cardDataColumns().length || cardActionColumns().length) {
8232
+ <div class="ib-kai-table-mobile__content">
8233
+ @for (row of visibleRows(); track trackRow($index, row)) {
8234
+ <ib-kai-table-mobile-item
8235
+ [row]="row"
8236
+ [cardDataColumns]="cardDataColumns()"
8237
+ [cardActionColumns]="cardActionColumns()"
8238
+ [rowGroup]="rowGroup()"
8239
+ ></ib-kai-table-mobile-item>
8240
+ }
8241
+
8242
+ @if (hasMoreRows()) {
8243
+ <ib-kai-table-mobile-infinitescroll
8244
+ [hasMoreRows]="hasMoreRows()"
8245
+ [data]="data()"
8246
+ (visibleCountChanged)="visibleCount.set($event)"
8247
+ ></ib-kai-table-mobile-infinitescroll>
8248
+ }
8249
+ </div>
8250
+ }
8251
+ </div>
8252
+ `, styles: [":host{display:block;width:100%;min-width:0;--ib-mobile-bg: var(--mat-sys-surface);--ib-mobile-card-bg: var(--mat-sys-surface-container-low);--ib-mobile-border: var(--mat-sys-outline-variant);--ib-mobile-separator: var(--mat-sys-outline-variant);--ib-mobile-text: var(--mat-sys-on-surface);--ib-mobile-text-muted: var(--mat-sys-on-surface-variant);--ib-mobile-shadow: var(--mat-sys-level1);--ib-mobile-radius: 18px;--ib-mobile-sticky-top: 0px}.ib-kai-table-mobile{width:100%;min-width:0;box-sizing:border-box;background:var(--ib-mobile-bg)}.ib-kai-table-mobile__sticky-header{position:sticky;top:var(--ib-mobile-sticky-top);z-index:20;background:var(--ib-mobile-bg);padding:12px 12px 8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ib-kai-table-mobile__content{display:flex;flex-direction:column;gap:14px;padding:4px 12px 12px;width:100%;min-width:0;box-sizing:border-box}\n"] }]
8253
+ }], propDecorators: { scrollAnchor: [{
8254
+ type: ViewChild,
8255
+ args: ['scrollAnchor']
8256
+ }] } });
8257
+
7635
8258
  const defaultTableDef = {
7636
8259
  paginator: {
7637
8260
  pageSizeOptions: [10, 20, 50, 100],
@@ -7641,6 +8264,22 @@ const defaultTableDef = {
7641
8264
  };
7642
8265
  class IbTable {
7643
8266
  _destroyed = new Subject();
8267
+ /**
8268
+ *
8269
+ * MOBILE STUFF
8270
+ */
8271
+ mobileColumns = contentChildren(IbColumn, ...(ngDevMode ? [{ debugName: "mobileColumns" }] : []));
8272
+ mobileRowGroup = contentChild(IbKaiRowGroupDirective, ...(ngDevMode ? [{ debugName: "mobileRowGroup" }] : []));
8273
+ mobileFilter = contentChild(IbFilter, ...(ngDevMode ? [{ debugName: "mobileFilter" }] : []));
8274
+ mobileFilters = contentChildren(IbFilterBase, ...(ngDevMode ? [{ debugName: "mobileFilters", descendants: true }] : [{ descendants: true }]));
8275
+ mobileHeaderActions = contentChildren(IbKaiTableAction, ...(ngDevMode ? [{ debugName: "mobileHeaderActions", descendants: true }] : [{ descendants: true }]));
8276
+ mobileActionColumn = contentChild(IbActionColumn, ...(ngDevMode ? [{ debugName: "mobileActionColumn" }] : []));
8277
+ breakpointObserver = inject(BreakpointObserver);
8278
+ isMobile = this.breakpointObserver.isMatched('(max-width: 767px)');
8279
+ get hasTableContainerClass() {
8280
+ return !this.isMobile;
8281
+ }
8282
+ /** END MOBILE STUFF */
7644
8283
  columns;
7645
8284
  selectionColumn;
7646
8285
  rowGroup;
@@ -7821,7 +8460,7 @@ class IbTable {
7821
8460
  });
7822
8461
  }
7823
8462
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
7824
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: IbTable, isStandalone: false, selector: "ib-kai-table", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: false, isRequired: false, transformFunction: null }, tableName: { classPropertyName: "tableName", publicName: "tableName", isSignal: false, isRequired: false, transformFunction: null }, tableDef: { classPropertyName: "tableDef", publicName: "tableDef", isSignal: false, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: false, isRequired: false, transformFunction: null }, stripedRows: { classPropertyName: "stripedRows", publicName: "stripedRows", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, activeRowParams: { classPropertyName: "activeRowParams", publicName: "activeRowParams", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ib-table-striped-rows": "this.stripedRows" }, classAttribute: "ib-table__container" }, providers: [{ provide: IB_TABLE, useExisting: IbTable }], queries: [{ propertyName: "selectionColumn", first: true, predicate: IbSelectionColumn, descendants: true }, { propertyName: "rowGroup", first: true, predicate: IbKaiRowGroupDirective, descendants: true }, { propertyName: "filter", first: true, predicate: IbFilter, descendants: true }, { propertyName: "view", first: true, predicate: IbTableViewGroup, descendants: true }, { propertyName: "exportAction", first: true, predicate: IbTableDataExportAction, descendants: true }, { propertyName: "columns", predicate: IbColumn }], viewQueries: [{ propertyName: "matTable", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], ngImport: i0, template: "<section class=\"ib-table__toolbar\">\n <ng-content select=\"ib-table-view-group\" />\n <section class=\"ib-table__toolbar__actions\">\n <ng-content select=\"ib-table-action-group, [ib-table-action-group]\" />\n @for (portal of actionPortals; track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\" />\n }\n </section>\n</section>\n\n<ng-content select=\"ib-filter\" />\n\n<section class=\"ib-table__content\" [class.ib-table__content--loading]=\"state === 'loading'\">\n @if (state === 'loading') {\n <div class=\"ib-table__content__progress-bar\">\n <mat-progress-bar mode=\"indeterminate\" />\n </div>\n }\n\n <table class=\"ib-table\" mat-table matSort multiTemplateDataRows [matSortActive]=\"this.dataSource.sortState.active\"\n [matSortDirection]=\"this.dataSource.sortState.direction\" [dataSource]=\"dataSource\">\n <ng-content select=\"ib-selection-column\" />\n <ng-content />\n\n @if (rowGroup) {\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\">\n <div class=\"ib-table__cell-detail\" [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\">\n <ng-container *ngTemplateOutlet=\"rowGroup.templateRef; context: {'$implicit': element, 'row': element}\" />\n </div>\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true;\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"ib-table__row\"\n [class.ib-table__row--expanded]=\"expandedElement === row\"\n [class.ib-table__row--selected]=\"activeRouteId() && row[activeRowParams()?.dataParamId]?.toString() === activeRouteId()\"\n (click)=\"rowGroup && (expandedElement = expandedElement === row ? null : row)\"></tr>\n @if (rowGroup) {\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"ib-table__row-group\"\n [class.ib-table__row-group--hidden]=\"expandedElement !== row\"></tr>\n }\n\n <tr *matNoDataRow>\n <td [attr.colspan]=\"columns.length\">\n <div>\n @if (state === 'idle') {\n <mat-icon style=\"color: #888\">inbox</mat-icon>\n {{ \"common.noItems\" | translate }}\n }\n\n @if (state === 'http_error') {\n <mat-icon style=\"color: #888\">error</mat-icon>\n {{ \"common.httpError\" | translate }}\n }\n </div>\n </td>\n </tr>\n\n @if (dataSource.shouldDisplayAggregationFooter) {\n <tr class=\"ib-table__rollup-row\" mat-footer-row *matFooterRowDef=\"displayedColumns; sticky: true\"></tr>\n }\n </table>\n</section>\n<mat-paginator class=\"ib-table__paginator\"\n [disabled]=\"state !== 'idle'\"\n [style.display]=\"tableDef.paginator.hide ? 'none' : 'block'\"\n [pageSize]=\"tableDef.paginator.pageSize\"\n [showFirstLastButtons]=\"tableDef.paginator.showFirstLastButtons\"\n [pageSizeOptions]=\"tableDef.paginator.pageSizeOptions\"\n (page)=\"setPaginatorState({ pageIndex: $event.pageIndex, pageSize: $event.pageSize })\"\n />\n", styles: [".ib-table__container{--ib-table-minimum-rows-private: var(--ib-table-minimum-rows, 10);--ib-table-has-footer-row: 0;--ib-table-filter-max-height: 112px;--ib-table-content-max-height-private: var( --ib-table-content-max-height, calc( var(--mat-table-header-container-height) + var(--mat-table-row-item-container-height) * (var(--ib-table-minimum-rows-private) + var(--ib-table-has-footer-row)) ) );--ib-table-outline-color-private: var( --ib-table-outline-color, var(--mat-table-row-item-outline-color) );--ib-table-column-outline-width-private: var( --ib-table-column-outline-width, 0 );--ib-table-border-width: 1px;display:block;border:var(--ib-table-border-width) solid var(--ib-table-outline-color-private);overflow:hidden}.ib-table__container:has(.ib-table__rollup-row){--ib-table-has-footer-row: 1}.ib-table__container .ib-table__toolbar{display:flex;align-items:center;justify-content:flex-end}.ib-table__container .ib-table__toolbar:has(ib-table-view-group),.ib-table__container .ib-table__toolbar:has(>section:not(:empty)){height:56px;border-bottom:1px solid var(--ib-table-outline-color-private)}.ib-table__container .ib-table__toolbar__actions{padding-right:8px}.ib-table__container .ib-table__toolbar__actions ib-table-action-group{display:inline-block}.ib-table__container .ib-filter--hidden{max-height:0;opacity:0}.ib-table__container ib-filter:not(:has(.ib-filter--hidden))~.ib-table__content{max-height:calc(var(--ib-table-content-max-height-private) - var(--ib-table-filter-max-height))}.ib-table__container ib-filter:has(.ib-filter--hidden)~.ib-table__content{max-height:calc(var(--ib-table-content-max-height-private))}.ib-table__container .ib-table__content{overflow-y:auto;position:relative;max-height:var(--ib-table-content-max-height-private)}.ib-table__container .ib-table__content--loading{pointer-events:none;overflow:hidden;filter:brightness(.95)}.ib-table__container .ib-table__content__progress-bar{position:sticky;height:0;top:var(--mat-table-header-container-height)}.ib-table__container .ib-table__content .mat-mdc-header-cell{border-right-color:var(--ib-table-outline-color-private);border-right-width:var(--ib-table-column-outline-width-private);border-right-style:solid}.ib-table__container .ib-table__content .mat-mdc-header-cell:last-child{border-right-style:none}.ib-table__container .ib-table__content .mat-mdc-cell{border-right-color:var(--ib-table-outline-color-private);border-right-width:var(--ib-table-column-outline-width-private);border-right-style:solid}.ib-table__container .ib-table__content .mat-mdc-cell:last-child{border-right-style:none}.ib-table__container .ib-table__content .ib-table__row--expanded .mat-mdc-cell{border-bottom-width:0}.ib-table__container .ib-table__content .ib-table__cell-detail{overflow:hidden;display:flex}.ib-table__container .ib-table__content .ib-table__row-group{height:0}.ib-table__container .ib-table__content .ib-table__row-group--hidden .mat-mdc-cell{border-bottom-width:0}.ib-table__container .ib-table__content .mat-mdc-no-data-row>td>div{display:flex;flex-direction:column;gap:4px;align-items:center;padding:12px 0}.ib-table__container ib-aggregate{display:flex;align-items:center;justify-content:flex-end;gap:2em}.ib-table__container ib-aggregate .ib-aggregate__function{display:flex;align-items:center;width:fit-content}.ib-table__container ib-aggregate .ib-aggregate__display-value{text-align:end;font-weight:500;white-space:nowrap}.ib-table__container .ib-table__rollup-row{box-shadow:0 -1px var(--ib-table-outline-color-private)}.ib-table__container .ib-table__paginator{border-top:1px solid var(--ib-table-outline-color-private)}td.cdk-column-ib-action>:first-child,td.mat-column-ib-action>:first-child{display:flex;gap:4px;justify-content:flex-end;align-content:center}\n"], dependencies: [{ kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i2$2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$2.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i2$2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i2$2.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "directive", type: i2$2.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "directive", type: i3$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i7$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], animations: [
8463
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.0", type: IbTable, isStandalone: false, selector: "ib-kai-table", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: false, isRequired: false, transformFunction: null }, tableName: { classPropertyName: "tableName", publicName: "tableName", isSignal: false, isRequired: false, transformFunction: null }, tableDef: { classPropertyName: "tableDef", publicName: "tableDef", isSignal: false, isRequired: false, transformFunction: null }, displayedColumns: { classPropertyName: "displayedColumns", publicName: "displayedColumns", isSignal: false, isRequired: false, transformFunction: null }, stripedRows: { classPropertyName: "stripedRows", publicName: "stripedRows", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, activeRowParams: { classPropertyName: "activeRowParams", publicName: "activeRowParams", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ib-table__container": "this.hasTableContainerClass", "class.ib-table-striped-rows": "this.stripedRows" } }, providers: [{ provide: IB_TABLE, useExisting: IbTable }], queries: [{ propertyName: "mobileColumns", predicate: IbColumn, isSignal: true }, { propertyName: "mobileRowGroup", first: true, predicate: IbKaiRowGroupDirective, descendants: true, isSignal: true }, { propertyName: "mobileFilter", first: true, predicate: IbFilter, descendants: true, isSignal: true }, { propertyName: "mobileFilters", predicate: IbFilterBase, descendants: true, isSignal: true }, { propertyName: "mobileHeaderActions", predicate: IbKaiTableAction, descendants: true, isSignal: true }, { propertyName: "mobileActionColumn", first: true, predicate: IbActionColumn, descendants: true, isSignal: true }, { propertyName: "selectionColumn", first: true, predicate: IbSelectionColumn, descendants: true }, { propertyName: "rowGroup", first: true, predicate: IbKaiRowGroupDirective, descendants: true }, { propertyName: "filter", first: true, predicate: IbFilter, descendants: true }, { propertyName: "view", first: true, predicate: IbTableViewGroup, descendants: true }, { propertyName: "exportAction", first: true, predicate: IbTableDataExportAction, descendants: true }, { propertyName: "columns", predicate: IbColumn }], viewQueries: [{ propertyName: "matTable", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], ngImport: i0, template: "<div class=\"ib-table-desktop\">\n <section class=\"ib-table__toolbar\">\n <ng-content select=\"ib-table-view-group\" />\n <section class=\"ib-table__toolbar__actions\">\n <ng-content select=\"ib-table-action-group, [ib-table-action-group]\" />\n @for (portal of actionPortals; track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\" />\n }\n </section>\n </section>\n\n <ng-content select=\"ib-filter\" />\n\n <section class=\"ib-table__content\" [class.ib-table__content--loading]=\"state === 'loading'\">\n @if (state === 'loading') {\n <div class=\"ib-table__content__progress-bar\">\n <mat-progress-bar mode=\"indeterminate\" />\n </div>\n }\n\n <table class=\"ib-table\" mat-table matSort multiTemplateDataRows [matSortActive]=\"this.dataSource.sortState.active\"\n [matSortDirection]=\"this.dataSource.sortState.direction\" [dataSource]=\"dataSource\">\n <ng-content select=\"ib-selection-column\" />\n <ng-content />\n\n @if (rowGroup) {\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\">\n <div class=\"ib-table__cell-detail\" [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\">\n <ng-container *ngTemplateOutlet=\"rowGroup.templateRef; context: {'$implicit': element, 'row': element}\" />\n </div>\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true;\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"ib-table__row\"\n [class.ib-table__row--expanded]=\"expandedElement === row\"\n [class.ib-table__row--selected]=\"activeRouteId() && row[activeRowParams()?.dataParamId]?.toString() === activeRouteId()\"\n (click)=\"rowGroup && (expandedElement = expandedElement === row ? null : row)\"></tr>\n @if (rowGroup) {\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"ib-table__row-group\"\n [class.ib-table__row-group--hidden]=\"expandedElement !== row\"></tr>\n }\n\n <tr *matNoDataRow>\n <td [attr.colspan]=\"columns.length\">\n <div>\n @if (state === 'idle') {\n <mat-icon style=\"color: #888\">inbox</mat-icon>\n {{ \"common.noItems\" | translate }}\n }\n\n @if (state === 'http_error') {\n <mat-icon style=\"color: #888\">error</mat-icon>\n {{ \"common.httpError\" | translate }}\n }\n </div>\n </td>\n </tr>\n\n @if (dataSource.shouldDisplayAggregationFooter) {\n <tr class=\"ib-table__rollup-row\" mat-footer-row *matFooterRowDef=\"displayedColumns; sticky: true\"></tr>\n }\n </table>\n </section>\n <mat-paginator class=\"ib-table__paginator\"\n [disabled]=\"state !== 'idle'\"\n [style.display]=\"tableDef.paginator.hide ? 'none' : 'block'\"\n [pageSize]=\"tableDef.paginator.pageSize\"\n [showFirstLastButtons]=\"tableDef.paginator.showFirstLastButtons\"\n [pageSizeOptions]=\"tableDef.paginator.pageSizeOptions\"\n (page)=\"setPaginatorState({ pageIndex: $event.pageIndex, pageSize: $event.pageSize })\"\n />\n</div>\n<div class=\"ib-table-mobile\">\n <ib-kai-table-mobile\n [tableName]=\"tableName\"\n [displayedColumns]=\"displayedColumns\"\n [data]=\"dataSource.data\"\n [state]=\"state\"\n [columns]=\"mobileColumns()\"\n [rowGroup]=\"mobileRowGroup()\"\n [filter]=\"mobileFilter()\"\n [filters]=\"mobileFilters()\"\n [headerActions]=\"mobileHeaderActions()\"\n [actionColumn]=\"mobileActionColumn()\"\n >\n </ib-kai-table-mobile>\n</div>\n", styles: [".ib-table__container{--ib-table-minimum-rows-private: var(--ib-table-minimum-rows, 10);--ib-table-has-footer-row: 0;--ib-table-filter-max-height: 112px;--ib-table-content-max-height-private: var( --ib-table-content-max-height, calc( var(--mat-table-header-container-height) + var(--mat-table-row-item-container-height) * (var(--ib-table-minimum-rows-private) + var(--ib-table-has-footer-row)) ) );--ib-table-outline-color-private: var( --ib-table-outline-color, var(--mat-table-row-item-outline-color) );--ib-table-column-outline-width-private: var( --ib-table-column-outline-width, 0 );--ib-table-border-width: 1px;display:block;border:var(--ib-table-border-width) solid var(--ib-table-outline-color-private);overflow:hidden}.ib-table__container:has(.ib-table__rollup-row){--ib-table-has-footer-row: 1}.ib-table__container .ib-table__toolbar{display:flex;align-items:center;justify-content:flex-end}.ib-table__container .ib-table__toolbar:has(ib-table-view-group),.ib-table__container .ib-table__toolbar:has(>section:not(:empty)){height:56px;border-bottom:1px solid var(--ib-table-outline-color-private)}.ib-table__container .ib-table__toolbar__actions{padding-right:8px}.ib-table__container .ib-table__toolbar__actions ib-table-action-group{display:inline-block}.ib-table__container .ib-filter--hidden{max-height:0;opacity:0}.ib-table__container ib-filter:not(:has(.ib-filter--hidden))~.ib-table__content{max-height:calc(var(--ib-table-content-max-height-private) - var(--ib-table-filter-max-height))}.ib-table__container ib-filter:has(.ib-filter--hidden)~.ib-table__content{max-height:calc(var(--ib-table-content-max-height-private))}.ib-table__container .ib-table__content{overflow-y:auto;position:relative;max-height:var(--ib-table-content-max-height-private)}.ib-table__container .ib-table__content--loading{pointer-events:none;overflow:hidden;filter:brightness(.95)}.ib-table__container .ib-table__content__progress-bar{position:sticky;height:0;top:var(--mat-table-header-container-height)}.ib-table__container .ib-table__content .mat-mdc-header-cell{border-right-color:var(--ib-table-outline-color-private);border-right-width:var(--ib-table-column-outline-width-private);border-right-style:solid}.ib-table__container .ib-table__content .mat-mdc-header-cell:last-child{border-right-style:none}.ib-table__container .ib-table__content .mat-mdc-cell{border-right-color:var(--ib-table-outline-color-private);border-right-width:var(--ib-table-column-outline-width-private);border-right-style:solid}.ib-table__container .ib-table__content .mat-mdc-cell:last-child{border-right-style:none}.ib-table__container .ib-table__content .ib-table__row--expanded .mat-mdc-cell{border-bottom-width:0}.ib-table__container .ib-table__content .ib-table__cell-detail{overflow:hidden;display:flex}.ib-table__container .ib-table__content .ib-table__row-group{height:0}.ib-table__container .ib-table__content .ib-table__row-group--hidden .mat-mdc-cell{border-bottom-width:0}.ib-table__container .ib-table__content .mat-mdc-no-data-row>td>div{display:flex;flex-direction:column;gap:4px;align-items:center;padding:12px 0}.ib-table__container ib-aggregate{display:flex;align-items:center;justify-content:flex-end;gap:2em}.ib-table__container ib-aggregate .ib-aggregate__function{display:flex;align-items:center;width:fit-content}.ib-table__container ib-aggregate .ib-aggregate__display-value{text-align:end;font-weight:500;white-space:nowrap}.ib-table__container .ib-table__rollup-row{box-shadow:0 -1px var(--ib-table-outline-color-private)}.ib-table__container .ib-table__paginator{border-top:1px solid var(--ib-table-outline-color-private)}td.cdk-column-ib-action>:first-child,td.mat-column-ib-action>:first-child{display:flex;gap:4px;justify-content:flex-end;align-content:center}.ib-table-mobile{display:none!important}@media (max-width: 767px){.ib-table-desktop{display:none!important}.ib-table-mobile{display:block!important}}\n"], dependencies: [{ kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i2$2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$2.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i2$2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i2$2.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "directive", type: i2$2.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "directive", type: i3$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i7$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: IbKaiTableMobileComponent, selector: "ib-kai-table-mobile", inputs: ["state", "data", "dataSource", "tableName", "tableDef", "displayedColumns", "pageSize", "columns", "rowGroup", "filter", "filters", "headerActions", "actionColumn"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], animations: [
7825
8464
  trigger("detailExpand", [
7826
8465
  state("collapsed", style({ height: "0px", minHeight: "0" })),
7827
8466
  state("expanded", style({ height: "*" })),
@@ -7831,16 +8470,17 @@ class IbTable {
7831
8470
  }
7832
8471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: IbTable, decorators: [{
7833
8472
  type: Component,
7834
- args: [{ selector: "ib-kai-table", host: {
7835
- class: "ib-table__container",
7836
- }, animations: [
8473
+ args: [{ selector: "ib-kai-table", animations: [
7837
8474
  trigger("detailExpand", [
7838
8475
  state("collapsed", style({ height: "0px", minHeight: "0" })),
7839
8476
  state("expanded", style({ height: "*" })),
7840
8477
  transition("expanded <=> collapsed", animate("225ms cubic-bezier(0.4, 0.0, 0.2, 1)")),
7841
8478
  ]),
7842
- ], providers: [{ provide: IB_TABLE, useExisting: IbTable }], encapsulation: ViewEncapsulation.None, standalone: false, template: "<section class=\"ib-table__toolbar\">\n <ng-content select=\"ib-table-view-group\" />\n <section class=\"ib-table__toolbar__actions\">\n <ng-content select=\"ib-table-action-group, [ib-table-action-group]\" />\n @for (portal of actionPortals; track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\" />\n }\n </section>\n</section>\n\n<ng-content select=\"ib-filter\" />\n\n<section class=\"ib-table__content\" [class.ib-table__content--loading]=\"state === 'loading'\">\n @if (state === 'loading') {\n <div class=\"ib-table__content__progress-bar\">\n <mat-progress-bar mode=\"indeterminate\" />\n </div>\n }\n\n <table class=\"ib-table\" mat-table matSort multiTemplateDataRows [matSortActive]=\"this.dataSource.sortState.active\"\n [matSortDirection]=\"this.dataSource.sortState.direction\" [dataSource]=\"dataSource\">\n <ng-content select=\"ib-selection-column\" />\n <ng-content />\n\n @if (rowGroup) {\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\">\n <div class=\"ib-table__cell-detail\" [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\">\n <ng-container *ngTemplateOutlet=\"rowGroup.templateRef; context: {'$implicit': element, 'row': element}\" />\n </div>\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true;\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"ib-table__row\"\n [class.ib-table__row--expanded]=\"expandedElement === row\"\n [class.ib-table__row--selected]=\"activeRouteId() && row[activeRowParams()?.dataParamId]?.toString() === activeRouteId()\"\n (click)=\"rowGroup && (expandedElement = expandedElement === row ? null : row)\"></tr>\n @if (rowGroup) {\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"ib-table__row-group\"\n [class.ib-table__row-group--hidden]=\"expandedElement !== row\"></tr>\n }\n\n <tr *matNoDataRow>\n <td [attr.colspan]=\"columns.length\">\n <div>\n @if (state === 'idle') {\n <mat-icon style=\"color: #888\">inbox</mat-icon>\n {{ \"common.noItems\" | translate }}\n }\n\n @if (state === 'http_error') {\n <mat-icon style=\"color: #888\">error</mat-icon>\n {{ \"common.httpError\" | translate }}\n }\n </div>\n </td>\n </tr>\n\n @if (dataSource.shouldDisplayAggregationFooter) {\n <tr class=\"ib-table__rollup-row\" mat-footer-row *matFooterRowDef=\"displayedColumns; sticky: true\"></tr>\n }\n </table>\n</section>\n<mat-paginator class=\"ib-table__paginator\"\n [disabled]=\"state !== 'idle'\"\n [style.display]=\"tableDef.paginator.hide ? 'none' : 'block'\"\n [pageSize]=\"tableDef.paginator.pageSize\"\n [showFirstLastButtons]=\"tableDef.paginator.showFirstLastButtons\"\n [pageSizeOptions]=\"tableDef.paginator.pageSizeOptions\"\n (page)=\"setPaginatorState({ pageIndex: $event.pageIndex, pageSize: $event.pageSize })\"\n />\n", styles: [".ib-table__container{--ib-table-minimum-rows-private: var(--ib-table-minimum-rows, 10);--ib-table-has-footer-row: 0;--ib-table-filter-max-height: 112px;--ib-table-content-max-height-private: var( --ib-table-content-max-height, calc( var(--mat-table-header-container-height) + var(--mat-table-row-item-container-height) * (var(--ib-table-minimum-rows-private) + var(--ib-table-has-footer-row)) ) );--ib-table-outline-color-private: var( --ib-table-outline-color, var(--mat-table-row-item-outline-color) );--ib-table-column-outline-width-private: var( --ib-table-column-outline-width, 0 );--ib-table-border-width: 1px;display:block;border:var(--ib-table-border-width) solid var(--ib-table-outline-color-private);overflow:hidden}.ib-table__container:has(.ib-table__rollup-row){--ib-table-has-footer-row: 1}.ib-table__container .ib-table__toolbar{display:flex;align-items:center;justify-content:flex-end}.ib-table__container .ib-table__toolbar:has(ib-table-view-group),.ib-table__container .ib-table__toolbar:has(>section:not(:empty)){height:56px;border-bottom:1px solid var(--ib-table-outline-color-private)}.ib-table__container .ib-table__toolbar__actions{padding-right:8px}.ib-table__container .ib-table__toolbar__actions ib-table-action-group{display:inline-block}.ib-table__container .ib-filter--hidden{max-height:0;opacity:0}.ib-table__container ib-filter:not(:has(.ib-filter--hidden))~.ib-table__content{max-height:calc(var(--ib-table-content-max-height-private) - var(--ib-table-filter-max-height))}.ib-table__container ib-filter:has(.ib-filter--hidden)~.ib-table__content{max-height:calc(var(--ib-table-content-max-height-private))}.ib-table__container .ib-table__content{overflow-y:auto;position:relative;max-height:var(--ib-table-content-max-height-private)}.ib-table__container .ib-table__content--loading{pointer-events:none;overflow:hidden;filter:brightness(.95)}.ib-table__container .ib-table__content__progress-bar{position:sticky;height:0;top:var(--mat-table-header-container-height)}.ib-table__container .ib-table__content .mat-mdc-header-cell{border-right-color:var(--ib-table-outline-color-private);border-right-width:var(--ib-table-column-outline-width-private);border-right-style:solid}.ib-table__container .ib-table__content .mat-mdc-header-cell:last-child{border-right-style:none}.ib-table__container .ib-table__content .mat-mdc-cell{border-right-color:var(--ib-table-outline-color-private);border-right-width:var(--ib-table-column-outline-width-private);border-right-style:solid}.ib-table__container .ib-table__content .mat-mdc-cell:last-child{border-right-style:none}.ib-table__container .ib-table__content .ib-table__row--expanded .mat-mdc-cell{border-bottom-width:0}.ib-table__container .ib-table__content .ib-table__cell-detail{overflow:hidden;display:flex}.ib-table__container .ib-table__content .ib-table__row-group{height:0}.ib-table__container .ib-table__content .ib-table__row-group--hidden .mat-mdc-cell{border-bottom-width:0}.ib-table__container .ib-table__content .mat-mdc-no-data-row>td>div{display:flex;flex-direction:column;gap:4px;align-items:center;padding:12px 0}.ib-table__container ib-aggregate{display:flex;align-items:center;justify-content:flex-end;gap:2em}.ib-table__container ib-aggregate .ib-aggregate__function{display:flex;align-items:center;width:fit-content}.ib-table__container ib-aggregate .ib-aggregate__display-value{text-align:end;font-weight:500;white-space:nowrap}.ib-table__container .ib-table__rollup-row{box-shadow:0 -1px var(--ib-table-outline-color-private)}.ib-table__container .ib-table__paginator{border-top:1px solid var(--ib-table-outline-color-private)}td.cdk-column-ib-action>:first-child,td.mat-column-ib-action>:first-child{display:flex;gap:4px;justify-content:flex-end;align-content:center}\n"] }]
7843
- }], ctorParameters: () => [], propDecorators: { columns: [{
8479
+ ], providers: [{ provide: IB_TABLE, useExisting: IbTable }], encapsulation: ViewEncapsulation.None, standalone: false, template: "<div class=\"ib-table-desktop\">\n <section class=\"ib-table__toolbar\">\n <ng-content select=\"ib-table-view-group\" />\n <section class=\"ib-table__toolbar__actions\">\n <ng-content select=\"ib-table-action-group, [ib-table-action-group]\" />\n @for (portal of actionPortals; track portal) {\n <ng-template [cdkPortalOutlet]=\"portal\" />\n }\n </section>\n </section>\n\n <ng-content select=\"ib-filter\" />\n\n <section class=\"ib-table__content\" [class.ib-table__content--loading]=\"state === 'loading'\">\n @if (state === 'loading') {\n <div class=\"ib-table__content__progress-bar\">\n <mat-progress-bar mode=\"indeterminate\" />\n </div>\n }\n\n <table class=\"ib-table\" mat-table matSort multiTemplateDataRows [matSortActive]=\"this.dataSource.sortState.active\"\n [matSortDirection]=\"this.dataSource.sortState.direction\" [dataSource]=\"dataSource\">\n <ng-content select=\"ib-selection-column\" />\n <ng-content />\n\n @if (rowGroup) {\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\">\n <div class=\"ib-table__cell-detail\" [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\">\n <ng-container *ngTemplateOutlet=\"rowGroup.templateRef; context: {'$implicit': element, 'row': element}\" />\n </div>\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true;\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" class=\"ib-table__row\"\n [class.ib-table__row--expanded]=\"expandedElement === row\"\n [class.ib-table__row--selected]=\"activeRouteId() && row[activeRowParams()?.dataParamId]?.toString() === activeRouteId()\"\n (click)=\"rowGroup && (expandedElement = expandedElement === row ? null : row)\"></tr>\n @if (rowGroup) {\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"ib-table__row-group\"\n [class.ib-table__row-group--hidden]=\"expandedElement !== row\"></tr>\n }\n\n <tr *matNoDataRow>\n <td [attr.colspan]=\"columns.length\">\n <div>\n @if (state === 'idle') {\n <mat-icon style=\"color: #888\">inbox</mat-icon>\n {{ \"common.noItems\" | translate }}\n }\n\n @if (state === 'http_error') {\n <mat-icon style=\"color: #888\">error</mat-icon>\n {{ \"common.httpError\" | translate }}\n }\n </div>\n </td>\n </tr>\n\n @if (dataSource.shouldDisplayAggregationFooter) {\n <tr class=\"ib-table__rollup-row\" mat-footer-row *matFooterRowDef=\"displayedColumns; sticky: true\"></tr>\n }\n </table>\n </section>\n <mat-paginator class=\"ib-table__paginator\"\n [disabled]=\"state !== 'idle'\"\n [style.display]=\"tableDef.paginator.hide ? 'none' : 'block'\"\n [pageSize]=\"tableDef.paginator.pageSize\"\n [showFirstLastButtons]=\"tableDef.paginator.showFirstLastButtons\"\n [pageSizeOptions]=\"tableDef.paginator.pageSizeOptions\"\n (page)=\"setPaginatorState({ pageIndex: $event.pageIndex, pageSize: $event.pageSize })\"\n />\n</div>\n<div class=\"ib-table-mobile\">\n <ib-kai-table-mobile\n [tableName]=\"tableName\"\n [displayedColumns]=\"displayedColumns\"\n [data]=\"dataSource.data\"\n [state]=\"state\"\n [columns]=\"mobileColumns()\"\n [rowGroup]=\"mobileRowGroup()\"\n [filter]=\"mobileFilter()\"\n [filters]=\"mobileFilters()\"\n [headerActions]=\"mobileHeaderActions()\"\n [actionColumn]=\"mobileActionColumn()\"\n >\n </ib-kai-table-mobile>\n</div>\n", styles: [".ib-table__container{--ib-table-minimum-rows-private: var(--ib-table-minimum-rows, 10);--ib-table-has-footer-row: 0;--ib-table-filter-max-height: 112px;--ib-table-content-max-height-private: var( --ib-table-content-max-height, calc( var(--mat-table-header-container-height) + var(--mat-table-row-item-container-height) * (var(--ib-table-minimum-rows-private) + var(--ib-table-has-footer-row)) ) );--ib-table-outline-color-private: var( --ib-table-outline-color, var(--mat-table-row-item-outline-color) );--ib-table-column-outline-width-private: var( --ib-table-column-outline-width, 0 );--ib-table-border-width: 1px;display:block;border:var(--ib-table-border-width) solid var(--ib-table-outline-color-private);overflow:hidden}.ib-table__container:has(.ib-table__rollup-row){--ib-table-has-footer-row: 1}.ib-table__container .ib-table__toolbar{display:flex;align-items:center;justify-content:flex-end}.ib-table__container .ib-table__toolbar:has(ib-table-view-group),.ib-table__container .ib-table__toolbar:has(>section:not(:empty)){height:56px;border-bottom:1px solid var(--ib-table-outline-color-private)}.ib-table__container .ib-table__toolbar__actions{padding-right:8px}.ib-table__container .ib-table__toolbar__actions ib-table-action-group{display:inline-block}.ib-table__container .ib-filter--hidden{max-height:0;opacity:0}.ib-table__container ib-filter:not(:has(.ib-filter--hidden))~.ib-table__content{max-height:calc(var(--ib-table-content-max-height-private) - var(--ib-table-filter-max-height))}.ib-table__container ib-filter:has(.ib-filter--hidden)~.ib-table__content{max-height:calc(var(--ib-table-content-max-height-private))}.ib-table__container .ib-table__content{overflow-y:auto;position:relative;max-height:var(--ib-table-content-max-height-private)}.ib-table__container .ib-table__content--loading{pointer-events:none;overflow:hidden;filter:brightness(.95)}.ib-table__container .ib-table__content__progress-bar{position:sticky;height:0;top:var(--mat-table-header-container-height)}.ib-table__container .ib-table__content .mat-mdc-header-cell{border-right-color:var(--ib-table-outline-color-private);border-right-width:var(--ib-table-column-outline-width-private);border-right-style:solid}.ib-table__container .ib-table__content .mat-mdc-header-cell:last-child{border-right-style:none}.ib-table__container .ib-table__content .mat-mdc-cell{border-right-color:var(--ib-table-outline-color-private);border-right-width:var(--ib-table-column-outline-width-private);border-right-style:solid}.ib-table__container .ib-table__content .mat-mdc-cell:last-child{border-right-style:none}.ib-table__container .ib-table__content .ib-table__row--expanded .mat-mdc-cell{border-bottom-width:0}.ib-table__container .ib-table__content .ib-table__cell-detail{overflow:hidden;display:flex}.ib-table__container .ib-table__content .ib-table__row-group{height:0}.ib-table__container .ib-table__content .ib-table__row-group--hidden .mat-mdc-cell{border-bottom-width:0}.ib-table__container .ib-table__content .mat-mdc-no-data-row>td>div{display:flex;flex-direction:column;gap:4px;align-items:center;padding:12px 0}.ib-table__container ib-aggregate{display:flex;align-items:center;justify-content:flex-end;gap:2em}.ib-table__container ib-aggregate .ib-aggregate__function{display:flex;align-items:center;width:fit-content}.ib-table__container ib-aggregate .ib-aggregate__display-value{text-align:end;font-weight:500;white-space:nowrap}.ib-table__container .ib-table__rollup-row{box-shadow:0 -1px var(--ib-table-outline-color-private)}.ib-table__container .ib-table__paginator{border-top:1px solid var(--ib-table-outline-color-private)}td.cdk-column-ib-action>:first-child,td.mat-column-ib-action>:first-child{display:flex;gap:4px;justify-content:flex-end;align-content:center}.ib-table-mobile{display:none!important}@media (max-width: 767px){.ib-table-desktop{display:none!important}.ib-table-mobile{display:block!important}}\n"] }]
8480
+ }], ctorParameters: () => [], propDecorators: { hasTableContainerClass: [{
8481
+ type: HostBinding,
8482
+ args: ['class.ib-table__container']
8483
+ }], columns: [{
7844
8484
  type: ContentChildren,
7845
8485
  args: [IbColumn]
7846
8486
  }], selectionColumn: [{
@@ -7957,7 +8597,8 @@ class IbKaiTableModule {
7957
8597
  MatTooltipModule,
7958
8598
  MatCheckboxModule,
7959
8599
  MatPaginatorModule,
7960
- MatProgressBarModule, i1.TranslateModule], exports: [IbTable,
8600
+ MatProgressBarModule,
8601
+ IbKaiTableMobileComponent, i1.TranslateModule], exports: [IbTable,
7961
8602
  IbKaiRowGroupDirective,
7962
8603
  IbCellDef,
7963
8604
  IbSelectionColumn,
@@ -7990,6 +8631,7 @@ class IbKaiTableModule {
7990
8631
  MatCheckboxModule,
7991
8632
  MatPaginatorModule,
7992
8633
  MatProgressBarModule,
8634
+ IbKaiTableMobileComponent,
7993
8635
  TranslateModule.forChild({
7994
8636
  extend: true,
7995
8637
  })] });
@@ -8035,6 +8677,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
8035
8677
  MatCheckboxModule,
8036
8678
  MatPaginatorModule,
8037
8679
  MatProgressBarModule,
8680
+ IbKaiTableMobileComponent,
8038
8681
  TranslateModule.forChild({
8039
8682
  extend: true,
8040
8683
  }),
@@ -9946,5 +10589,5 @@ var SingleValueVariant;
9946
10589
  * Generated bundle index. Do not edit.
9947
10590
  */
9948
10591
 
9949
- export { AppLoadingDirective, BarChartComponent, IB_DATA_JSPDF_AUTOTABLE_USER_OPTIONS, IB_DATA_JSPDF_OPTIONS, IB_TRANSLATE_ASSETS_PATH, IbActionColumn, IbAggregate, IbAggregateCell, IbAuthGuard, IbAuthTypes, IbAverageAggregateProvider, IbBooleanFilter, IbBreadcrumbComponent, IbBreadcrumbModule, IbCSVExportProvider, IbCSVExportService, IbCellDef, IbCheckbox, IbColumn, IbDataExportModule, IbDataExportProvider, IbDataExportService, IbDataTransformer, IbDateColumn, IbDateFilter, IbDateFilterCategory, IbDateFilterPeriod, IbDefaultTableView, IbDropdown, IbDynamicFormArrayComponent, IbDynamicFormComponent, IbDynamicFormControlComponent, IbDynamicFormsModule, IbFilter, IbFilterActionGroup, IbFilterBase, IbFilterButton, IbFilterModule, IbFilterOperator, IbFilterPipe, IbFormArray, IbFormControlBase, IbFormControlBaseComponent, IbFormControlDirective, IbFormControlErrors, IbFormControlService, IbHttpModule, IbHttpTestModule, IbKaiRowGroupDirective, IbKaiTableAction, IbKaiTableActionGroup, IbKaiTableModule, IbLoadingDirective, IbLoadingSkeletonContainerComponent, IbLoadingSkeletonRectComponent, IbLoadingStubDirective, IbLoginGuard, IbLoginService, IbMainMenuBarComponent, IbMainMenuBarStubComponent, IbMainMenuDialogComponent, IbMainMenuExpandedComponent, IbMainMenuHeaderFooterButtonsComponent, IbMainMenuModule, IbMainMenuTestModule, IbMatActionsPosition, IbMatAutocompleteComponent, IbMatAutocompleteControl, IbMatButtonComponent, IbMatButtonControl, IbMatCheckboxComponent, IbMatCheckboxControl, IbMatDatepickerComponent, IbMatDatepickerControl, IbMatDropdownComponent, IbMatDropdownControl, IbMatLabelComponent, IbMatLabelControl, IbMatPaddingComponent, IbMatPaddingControl, IbMatRadioComponent, IbMatRadioControl, IbMatSlideToggleComponent, IbMatSlideToggleControl, IbMatTextareaComponent, IbMatTextareaControl, IbMatTextboxComponent, IbMatTextboxControl, IbMaterialBreadcrumbComponent, IbMaterialFormArrayComponent, IbMaterialFormComponent, IbMaterialFormControlComponent, IbMaterialFormModule, IbMaterialFormStubComponent, IbMaterialFormTestModule, IbModalMessageComponent, IbModalMessageService, IbModalMessageServiceStub, IbModalModule, IbModalTestModule, IbNumberColumn, IbNumberFilter, IbPDFExportProvider, IbPDFExportService, IbPatchFormValue, IbRadio, IbRoleCheckDirective, IbRoleGuard, IbSearchBar, IbSelectionColumn, IbSession, IbSessionEffects, IbSortHeader, IbSpinnerLoadingComponent, IbStorageModule, IbStorageService, IbStorageTestModule, IbStorageTypes, IbSumAggregateProvider, IbTable, IbTableActionModule, IbTableDataExportAction, IbTableDataExportDialog, IbTableRemoteDataSource, IbTableUrlService, IbTableView, IbTableViewDialog, IbTableViewGroup, IbTagFilter, IbTextColumn, IbTextFilter, IbTextbox, IbToastModule, IbToastNotification, IbToastTestModule, IbTranslateModuleLoader, IbUploaderComponent, IbUploaderModule, IbUserLogin, IbView, IbViewList, IbViewModule, IbViewService, IbXLSXExportService, IbXLXSExportProvider, LineChartComponent, MapPipe, OVERRIDE_EXPORT_FORMATS, PieChartComponent, RingGaugeComponent, SingleValueComponent, SpinnerLoadingStubComponent, TableViewActions, and, applyFilter, contains, dateRequiredValidator, endsWith, eq, evalOperation, gt, gte, ibAuthActions, ibCrudToast, ibHttpEffects, ibHttpReducers, ibKaiTableExtraSelectors, ibLoaderActions, ibLoaderExtraSelectors, ibLoaderFeature, ibLoaderReducerMain, ibMatDatepickerTranslate, ibSelectAccessTokenExp, ibSelectActiveSession, ibSelectDecodedData, ibSelectIsHttpLoading, ibSelectIsHttpUrlLoading, ibSessionFeature, ibSessionReducerMain, ibSetupHydration, ibTableSelectLastQueryString, ibTableSelectLastQueryStringRaw, ibTableSelectUrlState, ibViewsFeature, initialState, lt, lte, ncontains, neq, none, or, reducers, selectTableViews, selectViews, startsWith, toastServiceStub, urlStateActions, viewsReducer };
10592
+ export { AppLoadingDirective, BarChartComponent, IB_DATA_JSPDF_AUTOTABLE_USER_OPTIONS, IB_DATA_JSPDF_OPTIONS, IB_TRANSLATE_ASSETS_PATH, IbActionColumn, IbAggregate, IbAggregateCell, IbAuthGuard, IbAuthTypes, IbAverageAggregateProvider, IbBooleanFilter, IbBreadcrumbComponent, IbBreadcrumbModule, IbCSVExportProvider, IbCSVExportService, IbCellDef, IbCheckbox, IbColumn, IbDataExportModule, IbDataExportProvider, IbDataExportService, IbDataTransformer, IbDateColumn, IbDateFilter, IbDateFilterCategory, IbDateFilterPeriod, IbDefaultTableView, IbDropdown, IbDynamicFormArrayComponent, IbDynamicFormComponent, IbDynamicFormControlComponent, IbDynamicFormsModule, IbFilter, IbFilterActionGroup, IbFilterBase, IbFilterButton, IbFilterModule, IbFilterOperator, IbFilterPipe, IbFormArray, IbFormControlBase, IbFormControlBaseComponent, IbFormControlDirective, IbFormControlErrors, IbFormControlService, IbHttpModule, IbHttpTestModule, IbKaiRowGroupDirective, IbKaiTableAction, IbKaiTableActionGroup, IbKaiTableMobileComponent, IbKaiTableMobileInfiniteScrollComponent, IbKaiTableMobileItemComponent, IbKaiTableMobileToolbarComponent, IbKaiTableModule, IbLoadingDirective, IbLoadingSkeletonContainerComponent, IbLoadingSkeletonRectComponent, IbLoadingStubDirective, IbLoginGuard, IbLoginService, IbMainMenuBarComponent, IbMainMenuBarStubComponent, IbMainMenuDialogComponent, IbMainMenuExpandedComponent, IbMainMenuHeaderFooterButtonsComponent, IbMainMenuModule, IbMainMenuTestModule, IbMatActionsPosition, IbMatAutocompleteComponent, IbMatAutocompleteControl, IbMatButtonComponent, IbMatButtonControl, IbMatCheckboxComponent, IbMatCheckboxControl, IbMatDatepickerComponent, IbMatDatepickerControl, IbMatDropdownComponent, IbMatDropdownControl, IbMatLabelComponent, IbMatLabelControl, IbMatPaddingComponent, IbMatPaddingControl, IbMatRadioComponent, IbMatRadioControl, IbMatSlideToggleComponent, IbMatSlideToggleControl, IbMatTextareaComponent, IbMatTextareaControl, IbMatTextboxComponent, IbMatTextboxControl, IbMaterialBreadcrumbComponent, IbMaterialFormArrayComponent, IbMaterialFormComponent, IbMaterialFormControlComponent, IbMaterialFormModule, IbMaterialFormStubComponent, IbMaterialFormTestModule, IbModalMessageComponent, IbModalMessageService, IbModalMessageServiceStub, IbModalModule, IbModalTestModule, IbNumberColumn, IbNumberFilter, IbPDFExportProvider, IbPDFExportService, IbPatchFormValue, IbRadio, IbRoleCheckDirective, IbRoleGuard, IbSearchBar, IbSelectionColumn, IbSession, IbSessionEffects, IbSortHeader, IbSpinnerLoadingComponent, IbStorageModule, IbStorageService, IbStorageTestModule, IbStorageTypes, IbSumAggregateProvider, IbTable, IbTableActionModule, IbTableDataExportAction, IbTableDataExportDialog, IbTableRemoteDataSource, IbTableUrlService, IbTableView, IbTableViewDialog, IbTableViewGroup, IbTagFilter, IbTextColumn, IbTextFilter, IbTextbox, IbToastModule, IbToastNotification, IbToastTestModule, IbTranslateModuleLoader, IbUploaderComponent, IbUploaderModule, IbUserLogin, IbView, IbViewList, IbViewModule, IbViewService, IbXLSXExportService, IbXLXSExportProvider, LineChartComponent, MapPipe, OVERRIDE_EXPORT_FORMATS, PieChartComponent, RingGaugeComponent, SingleValueComponent, SpinnerLoadingStubComponent, TableViewActions, and, applyFilter, contains, dateRequiredValidator, endsWith, eq, evalOperation, gt, gte, ibAuthActions, ibCrudToast, ibHttpEffects, ibHttpReducers, ibKaiTableExtraSelectors, ibLoaderActions, ibLoaderExtraSelectors, ibLoaderFeature, ibLoaderReducerMain, ibMatDatepickerTranslate, ibSelectAccessTokenExp, ibSelectActiveSession, ibSelectDecodedData, ibSelectIsHttpLoading, ibSelectIsHttpUrlLoading, ibSessionFeature, ibSessionReducerMain, ibSetupHydration, ibTableSelectLastQueryString, ibTableSelectLastQueryStringRaw, ibTableSelectUrlState, ibViewsFeature, initialState, lt, lte, ncontains, neq, none, or, reducers, selectTableViews, selectViews, startsWith, toastServiceStub, urlStateActions, viewsReducer };
9950
10593
  //# sourceMappingURL=inobeta-ui.mjs.map