@dereekb/dbx-web 12.1.7 → 12.1.9
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.
- package/esm2022/lib/extension/download/text/download.text.component.mjs +18 -14
- package/esm2022/table/lib/index.mjs +4 -1
- package/esm2022/table/lib/table.cell.action.component.mjs +2 -2
- package/esm2022/table/lib/table.component.mjs +99 -8
- package/esm2022/table/lib/table.fullsummaryrow.component.mjs +34 -0
- package/esm2022/table/lib/table.group.directive.mjs +20 -0
- package/esm2022/table/lib/table.group.footer.component.mjs +35 -0
- package/esm2022/table/lib/table.group.header.component.mjs +35 -0
- package/esm2022/table/lib/table.item.action.component.mjs +4 -4
- package/esm2022/table/lib/table.item.cell.component.mjs +4 -4
- package/esm2022/table/lib/table.item.directive.mjs +7 -7
- package/esm2022/table/lib/table.item.header.component.mjs +4 -4
- package/esm2022/table/lib/table.mjs +10 -2
- package/esm2022/table/lib/table.module.mjs +4 -16
- package/esm2022/table/lib/table.store.mjs +16 -2
- package/fesm2022/dereekb-dbx-web-table.mjs +232 -27
- package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web.mjs +15 -11
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/extension/download/text/download.text.component.d.ts +7 -9
- package/lib/extension/table/_table.scss +7 -0
- package/lib/layout/style/_style.scss +4 -0
- package/package.json +1 -1
- package/table/lib/date/daterange.table.cell.input.component.d.ts +1 -1
- package/table/lib/index.d.ts +3 -0
- package/table/lib/table.cell.action.component.d.ts +1 -1
- package/table/lib/table.cell.input.component.d.ts +1 -1
- package/table/lib/table.cell.summaryend.component.d.ts +1 -1
- package/table/lib/table.cell.summarystart.component.d.ts +1 -1
- package/table/lib/table.column.directive.d.ts +1 -1
- package/table/lib/table.component.d.ts +38 -15
- package/table/lib/table.d.ts +47 -7
- package/table/lib/table.directive.d.ts +2 -2
- package/table/lib/table.fullsummaryrow.component.d.ts +12 -0
- package/table/lib/table.group.directive.d.ts +14 -0
- package/table/lib/table.group.footer.component.d.ts +9 -0
- package/table/lib/table.group.header.component.d.ts +9 -0
- package/table/lib/table.item.action.component.d.ts +2 -2
- package/table/lib/table.item.cell.component.d.ts +2 -2
- package/table/lib/table.item.directive.d.ts +6 -6
- package/table/lib/table.item.header.component.d.ts +2 -2
- package/table/lib/table.module.d.ts +1 -13
- package/table/lib/table.store.d.ts +11 -9
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { signal, Component, ChangeDetectionStrategy, Injectable, inject, computed, NgModule, input, Directive, effect } from '@angular/core';
|
|
3
|
-
import { DatePipe } from '@angular/common';
|
|
3
|
+
import { DatePipe, NgClass } from '@angular/common';
|
|
4
4
|
import { isSameDateDay } from '@dereekb/date';
|
|
5
|
-
import { filterMaybe, beginLoading, valueFromFinishedLoadingState, SubscriptionObject, maybeValueFromObservableOrValue, loadingStateContext } from '@dereekb/rxjs';
|
|
5
|
+
import { filterMaybe, beginLoading, valueFromFinishedLoadingState, mapLoadingStateValueWithOperator, asObservable, SubscriptionObject, maybeValueFromObservableOrValue, loadingStateContext } from '@dereekb/rxjs';
|
|
6
6
|
import { ComponentStore } from '@ngrx/component-store';
|
|
7
7
|
import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, combineLatest, of, startWith, filter, throttleTime } from 'rxjs';
|
|
8
8
|
import * as i1 from '@angular/material/datepicker';
|
|
@@ -19,6 +19,7 @@ import { DbxLoadingComponent } from '@dereekb/dbx-web';
|
|
|
19
19
|
import { InfiniteScrollDirective } from 'ngx-infinite-scroll';
|
|
20
20
|
import * as i1$1 from '@angular/material/table';
|
|
21
21
|
import { MatTableModule } from '@angular/material/table';
|
|
22
|
+
import { pushArrayItemsIntoArray } from '@dereekb/util';
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* A table header component used for rendering date values on the header.
|
|
@@ -72,6 +73,16 @@ function dbxTableDateHeaderInjectionFactory() {
|
|
|
72
73
|
};
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
const NO_GROUPS_ID = 'none';
|
|
77
|
+
function defaultDbxTableItemGroup(items) {
|
|
78
|
+
return {
|
|
79
|
+
groupId: NO_GROUPS_ID,
|
|
80
|
+
items,
|
|
81
|
+
meta: undefined,
|
|
82
|
+
default: true
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
75
86
|
class DbxTableStore extends ComponentStore {
|
|
76
87
|
constructor() {
|
|
77
88
|
super({
|
|
@@ -109,6 +120,19 @@ class DbxTableStore extends ComponentStore {
|
|
|
109
120
|
columns$ = this.data$.pipe(map((x) => x.columns), shareReplay(1));
|
|
110
121
|
itemsState$ = this.data$.pipe(switchMap((x) => x.items$), shareReplay(1));
|
|
111
122
|
items$ = this.itemsState$.pipe(valueFromFinishedLoadingState(), filterMaybe(), shareReplay(1));
|
|
123
|
+
groupsState$ = this.itemsState$.pipe(mapLoadingStateValueWithOperator(switchMap((x) => {
|
|
124
|
+
return this.viewDelegate$.pipe(switchMap((viewDelegate) => {
|
|
125
|
+
let groups;
|
|
126
|
+
if (viewDelegate.groupBy) {
|
|
127
|
+
groups = asObservable(viewDelegate.groupBy(x));
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
groups = of([defaultDbxTableItemGroup(x)]);
|
|
131
|
+
}
|
|
132
|
+
return groups;
|
|
133
|
+
}));
|
|
134
|
+
})), shareReplay(1));
|
|
135
|
+
groups$ = this.groupsState$.pipe(valueFromFinishedLoadingState(), filterMaybe(), shareReplay(1));
|
|
112
136
|
// MARK: State Changes
|
|
113
137
|
setInput = this.updater((state, input) => ({ ...state, input }));
|
|
114
138
|
setDataDelegate = this.updater((state, dataDelegate) => ({ ...state, dataDelegate }));
|
|
@@ -276,7 +300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
276
300
|
|
|
277
301
|
class DbxTableActionCellComponent {
|
|
278
302
|
tableStore = inject(DbxTableStore);
|
|
279
|
-
config$ = this.tableStore.viewDelegate$.pipe(map((x) => x.
|
|
303
|
+
config$ = this.tableStore.viewDelegate$.pipe(map((x) => x.actionHeader), distinctUntilChanged());
|
|
280
304
|
configSignal = toSignal(this.config$);
|
|
281
305
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableActionCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
282
306
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxTableActionCellComponent, isStandalone: true, selector: "dbx-table-action-cell", ngImport: i0, template: `
|
|
@@ -443,20 +467,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
443
467
|
/**
|
|
444
468
|
* Abstract directive that has an element input.
|
|
445
469
|
*/
|
|
446
|
-
class
|
|
470
|
+
class AbstractDbxTableItemDirective {
|
|
447
471
|
tableStore = inject((DbxTableStore));
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type:
|
|
451
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type:
|
|
472
|
+
item = input();
|
|
473
|
+
item$ = toObservable(this.item).pipe(filterMaybe(), distinctUntilChanged());
|
|
474
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxTableItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
475
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: AbstractDbxTableItemDirective, inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
452
476
|
}
|
|
453
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type:
|
|
477
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxTableItemDirective, decorators: [{
|
|
454
478
|
type: Directive
|
|
455
479
|
}] });
|
|
456
480
|
|
|
457
|
-
class DbxTableItemCellComponent extends
|
|
481
|
+
class DbxTableItemCellComponent extends AbstractDbxTableItemDirective {
|
|
458
482
|
column = input();
|
|
459
|
-
config$ = this.tableStore.viewDelegate$.pipe(switchMap((viewDelegate) => combineLatest([toObservable(this.column).pipe(filterMaybe()), this.
|
|
483
|
+
config$ = this.tableStore.viewDelegate$.pipe(switchMap((viewDelegate) => combineLatest([toObservable(this.column).pipe(filterMaybe()), this.item$]).pipe(map(([column, item]) => viewDelegate.itemCell(column, item)))), maybeValueFromObservableOrValue(), distinctUntilChanged());
|
|
460
484
|
configSignal = toSignal(this.config$);
|
|
461
485
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableItemCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
462
486
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxTableItemCellComponent, isStandalone: true, selector: "dbx-table-item-cell", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
@@ -476,8 +500,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
476
500
|
}]
|
|
477
501
|
}] });
|
|
478
502
|
|
|
479
|
-
class DbxTableItemHeaderComponent extends
|
|
480
|
-
config$ = this.tableStore.viewDelegate$.pipe(switchMap((viewDelegate) => this.
|
|
503
|
+
class DbxTableItemHeaderComponent extends AbstractDbxTableItemDirective {
|
|
504
|
+
config$ = this.tableStore.viewDelegate$.pipe(switchMap((viewDelegate) => this.item$.pipe(map((x) => viewDelegate.itemHeader(x)))), maybeValueFromObservableOrValue(), distinctUntilChanged());
|
|
481
505
|
configSignal = toSignal(this.config$);
|
|
482
506
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableItemHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
483
507
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxTableItemHeaderComponent, isStandalone: true, selector: "dbx-table-item-header", usesInheritance: true, ngImport: i0, template: `
|
|
@@ -497,12 +521,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
497
521
|
}]
|
|
498
522
|
}] });
|
|
499
523
|
|
|
500
|
-
class DbxTableItemActionComponent extends
|
|
524
|
+
class DbxTableItemActionComponent extends AbstractDbxTableItemDirective {
|
|
501
525
|
config$ = this.tableStore.viewDelegate$.pipe(map((viewDelegate) => {
|
|
502
526
|
const itemAction = viewDelegate.itemAction;
|
|
503
527
|
let obs = undefined;
|
|
504
528
|
if (itemAction) {
|
|
505
|
-
obs = this.
|
|
529
|
+
obs = this.item$.pipe(map((x) => itemAction(x)));
|
|
506
530
|
}
|
|
507
531
|
return obs;
|
|
508
532
|
}), maybeValueFromObservableOrValue(), distinctUntilChanged());
|
|
@@ -525,8 +549,112 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
525
549
|
}]
|
|
526
550
|
}] });
|
|
527
551
|
|
|
552
|
+
/**
|
|
553
|
+
* Abstract directive that has an element input.
|
|
554
|
+
*/
|
|
555
|
+
class AbstractDbxTableGroupDirective {
|
|
556
|
+
tableStore = inject((DbxTableStore));
|
|
557
|
+
group = input();
|
|
558
|
+
group$ = toObservable(this.group).pipe(filterMaybe(), distinctUntilChanged());
|
|
559
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxTableGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
560
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: AbstractDbxTableGroupDirective, inputs: { group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
561
|
+
}
|
|
562
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxTableGroupDirective, decorators: [{
|
|
563
|
+
type: Directive
|
|
564
|
+
}] });
|
|
565
|
+
|
|
566
|
+
class DbxTableGroupHeaderComponent extends AbstractDbxTableGroupDirective {
|
|
567
|
+
config$ = this.tableStore.viewDelegate$.pipe(map((viewDelegate) => {
|
|
568
|
+
const groupHeader = viewDelegate.groupHeader;
|
|
569
|
+
let obs = undefined;
|
|
570
|
+
if (groupHeader) {
|
|
571
|
+
obs = this.group$.pipe(map((x) => groupHeader(x)));
|
|
572
|
+
}
|
|
573
|
+
return obs;
|
|
574
|
+
}), maybeValueFromObservableOrValue(), distinctUntilChanged());
|
|
575
|
+
configSignal = toSignal(this.config$);
|
|
576
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableGroupHeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
577
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxTableGroupHeaderComponent, isStandalone: true, selector: "dbx-table-group-header", usesInheritance: true, ngImport: i0, template: `
|
|
578
|
+
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
579
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
580
|
+
}
|
|
581
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableGroupHeaderComponent, decorators: [{
|
|
582
|
+
type: Component,
|
|
583
|
+
args: [{
|
|
584
|
+
selector: 'dbx-table-group-header',
|
|
585
|
+
template: `
|
|
586
|
+
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
587
|
+
`,
|
|
588
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
589
|
+
imports: [DbxInjectionComponent],
|
|
590
|
+
standalone: true
|
|
591
|
+
}]
|
|
592
|
+
}] });
|
|
593
|
+
|
|
594
|
+
class DbxTableGroupFooterComponent extends AbstractDbxTableGroupDirective {
|
|
595
|
+
config$ = this.tableStore.viewDelegate$.pipe(map((viewDelegate) => {
|
|
596
|
+
const groupFooter = viewDelegate.groupFooter;
|
|
597
|
+
let obs = undefined;
|
|
598
|
+
if (groupFooter) {
|
|
599
|
+
obs = this.group$.pipe(map((x) => groupFooter(x)));
|
|
600
|
+
}
|
|
601
|
+
return obs;
|
|
602
|
+
}), maybeValueFromObservableOrValue(), distinctUntilChanged());
|
|
603
|
+
configSignal = toSignal(this.config$);
|
|
604
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableGroupFooterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
605
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxTableGroupFooterComponent, isStandalone: true, selector: "dbx-table-group-footer", usesInheritance: true, ngImport: i0, template: `
|
|
606
|
+
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
607
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
608
|
+
}
|
|
609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableGroupFooterComponent, decorators: [{
|
|
610
|
+
type: Component,
|
|
611
|
+
args: [{
|
|
612
|
+
selector: 'dbx-table-group-footer',
|
|
613
|
+
template: `
|
|
614
|
+
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
615
|
+
`,
|
|
616
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
617
|
+
imports: [DbxInjectionComponent],
|
|
618
|
+
standalone: true
|
|
619
|
+
}]
|
|
620
|
+
}] });
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* A table header component used for injecting the input picker view.
|
|
624
|
+
*/
|
|
625
|
+
class DbxTableFullSummaryRowComponent {
|
|
626
|
+
tableStore = inject(DbxTableStore);
|
|
627
|
+
config$ = this.tableStore.viewDelegate$.pipe(map((x) => x.fullSummaryRow), distinctUntilChanged());
|
|
628
|
+
configSignal = toSignal(this.config$);
|
|
629
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableFullSummaryRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
630
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxTableFullSummaryRowComponent, isStandalone: true, selector: "dbx-table-full-summary-row", host: { classAttribute: "dbx-h100 dbx-flex-bar" }, ngImport: i0, template: `
|
|
631
|
+
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
632
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
633
|
+
}
|
|
634
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableFullSummaryRowComponent, decorators: [{
|
|
635
|
+
type: Component,
|
|
636
|
+
args: [{
|
|
637
|
+
selector: 'dbx-table-full-summary-row',
|
|
638
|
+
template: `
|
|
639
|
+
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
640
|
+
`,
|
|
641
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
642
|
+
standalone: true,
|
|
643
|
+
imports: [DbxInjectionComponent],
|
|
644
|
+
host: {
|
|
645
|
+
class: 'dbx-h100 dbx-flex-bar'
|
|
646
|
+
}
|
|
647
|
+
}]
|
|
648
|
+
}] });
|
|
649
|
+
|
|
528
650
|
const DBX_TABLE_ITEMS_COLUMN_NAME = '_items';
|
|
529
651
|
const DBX_TABLE_ACTIONS_COLUMN_NAME = '_actions';
|
|
652
|
+
function isDbxTableViewGroupElement(element) {
|
|
653
|
+
return element.type === 'group';
|
|
654
|
+
}
|
|
655
|
+
function isDbxTableViewItemElement(element) {
|
|
656
|
+
return element.type === 'item';
|
|
657
|
+
}
|
|
530
658
|
/**
|
|
531
659
|
* A table with fixed content
|
|
532
660
|
*/
|
|
@@ -543,7 +671,48 @@ class DbxTableViewComponent {
|
|
|
543
671
|
innerColumnNames$ = this.innerColumns$.pipe(map((x) => x.map((y) => y.columnName)), shareReplay(1));
|
|
544
672
|
innerColumnsSignal = toSignal(this.innerColumns$);
|
|
545
673
|
innerColumnNamesSignal = toSignal(this.innerColumnNames$);
|
|
546
|
-
|
|
674
|
+
elementsState$ = this.tableStore.groupsState$.pipe(mapLoadingStateValueWithOperator(switchMap((groups) => {
|
|
675
|
+
return this.tableStore.viewDelegate$.pipe(map((viewDelegate) => {
|
|
676
|
+
const { groupHeader: inputGroupHeader, groupFooter: inputGroupFooter } = viewDelegate;
|
|
677
|
+
const hasGroupHeader = inputGroupHeader != null ? (group) => inputGroupHeader(group) != null : () => false;
|
|
678
|
+
const hasGroupFooter = inputGroupFooter != null ? (group) => inputGroupFooter(group) != null : () => false;
|
|
679
|
+
return groups
|
|
680
|
+
.map((group) => {
|
|
681
|
+
const { items } = group;
|
|
682
|
+
const itemElements = items.map((item) => ({
|
|
683
|
+
type: 'item',
|
|
684
|
+
item
|
|
685
|
+
}));
|
|
686
|
+
let elements;
|
|
687
|
+
if (group.default) {
|
|
688
|
+
elements = itemElements;
|
|
689
|
+
}
|
|
690
|
+
else {
|
|
691
|
+
const header = hasGroupHeader(group);
|
|
692
|
+
const footer = hasGroupFooter(group);
|
|
693
|
+
elements = [];
|
|
694
|
+
if (header) {
|
|
695
|
+
elements.push({
|
|
696
|
+
type: 'group',
|
|
697
|
+
location: 'header',
|
|
698
|
+
group
|
|
699
|
+
});
|
|
700
|
+
}
|
|
701
|
+
pushArrayItemsIntoArray(elements, itemElements);
|
|
702
|
+
if (footer) {
|
|
703
|
+
elements.push({
|
|
704
|
+
type: 'group',
|
|
705
|
+
location: 'footer',
|
|
706
|
+
group
|
|
707
|
+
});
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
return elements;
|
|
711
|
+
})
|
|
712
|
+
.flat();
|
|
713
|
+
}));
|
|
714
|
+
})), shareReplay(1));
|
|
715
|
+
elements$ = this.elementsState$.pipe(valueFromFinishedLoadingState([]), shareReplay(1));
|
|
547
716
|
displayedColumns$ = this.innerColumnNames$.pipe(map((columnNames) => {
|
|
548
717
|
return [this.itemsColumnName, ...columnNames, this.actionsColumnName];
|
|
549
718
|
}), shareReplay(1));
|
|
@@ -551,21 +720,60 @@ class DbxTableViewComponent {
|
|
|
551
720
|
const columnNames = this.innerColumnNamesSignal() || [];
|
|
552
721
|
return [this.itemsColumnName, ...columnNames, this.actionsColumnName];
|
|
553
722
|
});
|
|
723
|
+
visibleColumnsSignal = computed(() => {
|
|
724
|
+
const displayedColumns = this.displayedColumnsSignal();
|
|
725
|
+
// TODO: Every time the table is rendered/size changes/etc we should recompute width of the first n columns that span the viewport
|
|
726
|
+
// in order to calculate a colspan for the group header/footer that is not greater than span of the table for a given view size
|
|
727
|
+
// I.E. if the screen shrinks to only show the first 4 columns, then the colspan should be 4.
|
|
728
|
+
// as a temporary measure, we just show half the columns
|
|
729
|
+
return displayedColumns.length / 2;
|
|
730
|
+
});
|
|
554
731
|
trackByFunction$ = this.tableStore.viewDelegate$.pipe(map((x) => x.trackBy ?? this.DEFAULT_TRACK_BY_FUNCTION), shareReplay(1));
|
|
555
|
-
|
|
732
|
+
inputTrackByFunctionSignal = toSignal(this.trackByFunction$, { initialValue: this.DEFAULT_TRACK_BY_FUNCTION });
|
|
733
|
+
trackElementByFunctionSignal = computed(() => {
|
|
734
|
+
const trackByFunction = this.inputTrackByFunctionSignal();
|
|
735
|
+
const fn = (index, element) => {
|
|
736
|
+
if (element.type === 'item') {
|
|
737
|
+
return `i_${trackByFunction(index, element.item)}`;
|
|
738
|
+
}
|
|
739
|
+
else {
|
|
740
|
+
return `g_${element.group.groupId}`;
|
|
741
|
+
}
|
|
742
|
+
};
|
|
743
|
+
return fn;
|
|
744
|
+
});
|
|
556
745
|
context = loadingStateContext({ obs: this.tableStore.dataState$ });
|
|
557
|
-
dataLoadingContext = loadingStateContext({ obs: this.
|
|
746
|
+
dataLoadingContext = loadingStateContext({ obs: this.elementsState$ });
|
|
558
747
|
contextSignal = toSignal(this.context.state$);
|
|
559
748
|
dataLoadingContextSignal = toSignal(this.dataLoadingContext.state$);
|
|
749
|
+
viewDelegateSignal = toSignal(this.tableStore.viewDelegate$);
|
|
560
750
|
onScrollDown() {
|
|
561
751
|
this.tableStore.loadMore();
|
|
562
752
|
}
|
|
753
|
+
showItemRow(_, row) {
|
|
754
|
+
return row.type === 'item';
|
|
755
|
+
}
|
|
756
|
+
showGroupHeaderRow(_, row) {
|
|
757
|
+
return row.type === 'group' && row.location === 'header';
|
|
758
|
+
}
|
|
759
|
+
showGroupFooterRow(_, row) {
|
|
760
|
+
return row.type === 'group' && row.location === 'footer';
|
|
761
|
+
}
|
|
762
|
+
showFooterRowSignal = computed(() => {
|
|
763
|
+
const viewDelegate = this.viewDelegateSignal();
|
|
764
|
+
const showFooterRow = viewDelegate && (viewDelegate.summaryRowHeader != null || viewDelegate.columnFooter != null || viewDelegate.summaryRowEnd != null);
|
|
765
|
+
return showFooterRow;
|
|
766
|
+
});
|
|
767
|
+
showFullSummaryRowSignal = computed(() => {
|
|
768
|
+
const viewDelegate = this.viewDelegateSignal();
|
|
769
|
+
return viewDelegate?.fullSummaryRow != null;
|
|
770
|
+
});
|
|
563
771
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
564
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxTableViewComponent, isStandalone: true, selector: "dbx-table-view", inputs: { scrollDistance: { classPropertyName: "scrollDistance", publicName: "scrollDistance", isSignal: true, isRequired: false, transformFunction: null }, throttleScroll: { classPropertyName: "throttleScroll", publicName: "throttleScroll", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elements$\" [trackBy]=\"
|
|
772
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxTableViewComponent, isStandalone: true, selector: "dbx-table-view", inputs: { scrollDistance: { classPropertyName: "scrollDistance", publicName: "scrollDistance", isSignal: true, isRequired: false, transformFunction: null }, throttleScroll: { classPropertyName: "throttleScroll", publicName: "throttleScroll", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elements$\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-header [group]=\"element.group\"></dbx-table-group-header>\n </td>\n </ng-container>\n\n <!-- Group Footer column -->\n <ng-container matColumnDef=\"groupFooterColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-footer [group]=\"element.group\"></dbx-table-group-footer>\n </td>\n </ng-container>\n\n <!-- Items -->\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n @if (element.item) {\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n }\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-start-cell></dbx-table-summary-start-cell>\n </td>\n </ng-container>\n\n <!-- Column Definitions -->\n @for (column of innerColumnsSignal(); track column.columnName) {\n <ng-container [matColumnDef]=\"column.columnName\" [sticky]=\"false\">\n <th mat-header-cell *matHeaderCellDef>\n <dbx-table-column-header [column]=\"column\"></dbx-table-column-header>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n @if (element.item) {\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n }\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-column-footer [column]=\"column\"></dbx-table-column-footer>\n </td>\n </ng-container>\n }\n\n <!-- Tail/Action column -->\n <ng-container [matColumnDef]=\"actionsColumnName\" [stickyEnd]=\"true\">\n <th mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n @if (element.item) {\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n }\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-end-cell></dbx-table-summary-end-cell>\n </td>\n </ng-container>\n\n <!-- Table View -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeaderColumn']; when: showGroupHeaderRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsSignal(); when: showItemRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['groupFooterColumn']; when: showGroupFooterRow\"></tr>\n\n <tr [ngClass]=\"{ 'dbx-hide': !showFooterRowSignal() }\" mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n <!-- Full summary row -->\n @if (showFullSummaryRowSignal()) {\n <div class=\"mat-mdc-table dbx-table-view-full-summary-row-container\">\n <div class=\"mdc-data-table__cell mat-mdc-row\">\n <dbx-table-full-summary-row></dbx-table-full-summary-row>\n </div>\n </div>\n }\n</dbx-loading>\n", dependencies: [{ kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i1$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$1.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i1$1.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i1$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i1$1.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i1$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i1$1.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: DbxTableInputCellComponent, selector: "dbx-table-input-cell" }, { kind: "component", type: DbxTableItemHeaderComponent, selector: "dbx-table-item-header" }, { kind: "component", type: DbxTableItemCellComponent, selector: "dbx-table-item-cell", inputs: ["column"] }, { kind: "component", type: DbxTableItemActionComponent, selector: "dbx-table-item-action" }, { kind: "component", type: DbxTableActionCellComponent, selector: "dbx-table-action-cell" }, { kind: "component", type: DbxTableColumnHeaderComponent, selector: "dbx-table-column-header" }, { kind: "component", type: DbxTableColumnFooterComponent, selector: "dbx-table-column-footer" }, { kind: "component", type: DbxTableSummaryStartCellComponent, selector: "dbx-table-summary-start-cell" }, { kind: "component", type: DbxTableSummaryEndCellComponent, selector: "dbx-table-summary-end-cell" }, { kind: "component", type: DbxTableGroupHeaderComponent, selector: "dbx-table-group-header" }, { kind: "component", type: DbxTableGroupFooterComponent, selector: "dbx-table-group-footer" }, { kind: "component", type: DbxTableFullSummaryRowComponent, selector: "dbx-table-full-summary-row" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
565
773
|
}
|
|
566
774
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableViewComponent, decorators: [{
|
|
567
775
|
type: Component,
|
|
568
|
-
args: [{ selector: 'dbx-table-view', imports: [DbxLoadingComponent, InfiniteScrollDirective, MatTableModule, DbxTableInputCellComponent, DbxTableItemHeaderComponent, DbxTableItemCellComponent, DbxTableItemActionComponent, DbxTableActionCellComponent, DbxTableColumnHeaderComponent, DbxTableColumnFooterComponent, DbxTableSummaryStartCellComponent, DbxTableSummaryEndCellComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elements$\" [trackBy]=\"
|
|
776
|
+
args: [{ selector: 'dbx-table-view', imports: [DbxLoadingComponent, NgClass, InfiniteScrollDirective, MatTableModule, DbxTableInputCellComponent, DbxTableItemHeaderComponent, DbxTableItemCellComponent, DbxTableItemActionComponent, DbxTableActionCellComponent, DbxTableColumnHeaderComponent, DbxTableColumnFooterComponent, DbxTableSummaryStartCellComponent, DbxTableSummaryEndCellComponent, DbxTableGroupHeaderComponent, DbxTableGroupFooterComponent, DbxTableFullSummaryRowComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elements$\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-header [group]=\"element.group\"></dbx-table-group-header>\n </td>\n </ng-container>\n\n <!-- Group Footer column -->\n <ng-container matColumnDef=\"groupFooterColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-footer [group]=\"element.group\"></dbx-table-group-footer>\n </td>\n </ng-container>\n\n <!-- Items -->\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n @if (element.item) {\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n }\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-start-cell></dbx-table-summary-start-cell>\n </td>\n </ng-container>\n\n <!-- Column Definitions -->\n @for (column of innerColumnsSignal(); track column.columnName) {\n <ng-container [matColumnDef]=\"column.columnName\" [sticky]=\"false\">\n <th mat-header-cell *matHeaderCellDef>\n <dbx-table-column-header [column]=\"column\"></dbx-table-column-header>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n @if (element.item) {\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n }\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-column-footer [column]=\"column\"></dbx-table-column-footer>\n </td>\n </ng-container>\n }\n\n <!-- Tail/Action column -->\n <ng-container [matColumnDef]=\"actionsColumnName\" [stickyEnd]=\"true\">\n <th mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n @if (element.item) {\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n }\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-end-cell></dbx-table-summary-end-cell>\n </td>\n </ng-container>\n\n <!-- Table View -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeaderColumn']; when: showGroupHeaderRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsSignal(); when: showItemRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['groupFooterColumn']; when: showGroupFooterRow\"></tr>\n\n <tr [ngClass]=\"{ 'dbx-hide': !showFooterRowSignal() }\" mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n <!-- Full summary row -->\n @if (showFullSummaryRowSignal()) {\n <div class=\"mat-mdc-table dbx-table-view-full-summary-row-container\">\n <div class=\"mdc-data-table__cell mat-mdc-row\">\n <dbx-table-full-summary-row></dbx-table-full-summary-row>\n </div>\n </div>\n }\n</dbx-loading>\n" }]
|
|
569
777
|
}] });
|
|
570
778
|
|
|
571
779
|
/**
|
|
@@ -595,14 +803,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
595
803
|
}]
|
|
596
804
|
}] });
|
|
597
805
|
|
|
598
|
-
const importsAndExports = [DbxTableDirective, DbxTableViewComponent
|
|
599
|
-
/**
|
|
600
|
-
* @deprecated import DbxTableDirective and DbxTableViewComponent directly instead.
|
|
601
|
-
*/
|
|
806
|
+
const importsAndExports = [DbxTableDirective, DbxTableViewComponent];
|
|
602
807
|
class DbxTableModule {
|
|
603
808
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
604
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxTableModule, imports: [DbxTableDirective, DbxTableViewComponent
|
|
605
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableModule, imports: [DbxTableViewComponent
|
|
809
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxTableModule, imports: [DbxTableDirective, DbxTableViewComponent], exports: [DbxTableDirective, DbxTableViewComponent] });
|
|
810
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableModule, imports: [DbxTableViewComponent] });
|
|
606
811
|
}
|
|
607
812
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableModule, decorators: [{
|
|
608
813
|
type: NgModule,
|
|
@@ -616,5 +821,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
616
821
|
* Generated bundle index. Do not edit.
|
|
617
822
|
*/
|
|
618
823
|
|
|
619
|
-
export { AbstractDbxTableColumnDirective,
|
|
824
|
+
export { AbstractDbxTableColumnDirective, AbstractDbxTableGroupDirective, AbstractDbxTableItemDirective, DBX_TABLE_ACTIONS_COLUMN_NAME, DBX_TABLE_ITEMS_COLUMN_NAME, DEFAULT_DBX_TABLE_DATE_RANGE_DAY_BUTTON_FORMAT, DEFAULT_DBX_TABLE_DATE_RANGE_DAY_DISTIANCE_INPUT_CELL_COMPONENT_CONFIG, DbxTableActionCellComponent, DbxTableColumnFooterComponent, DbxTableColumnHeaderComponent, DbxTableDateHeaderComponent, DbxTableDateModule, DbxTableDateRangeDayDistanceInputCellInputComponent, DbxTableDateRangeDayDistanceInputCellInputRangeSelectionStrategy, DbxTableDirective, DbxTableGroupFooterComponent, DbxTableGroupHeaderComponent, DbxTableInputCellComponent, DbxTableItemActionComponent, DbxTableItemCellComponent, DbxTableItemHeaderComponent, DbxTableModule, DbxTableStore, DbxTableSummaryEndCellComponent, DbxTableSummaryStartCellComponent, DbxTableViewComponent, NO_GROUPS_ID, dbxTableDateHeaderInjectionFactory, dbxTableDateRangeDayDistanceInputCellInput, defaultDbxTableItemGroup, isDbxTableViewGroupElement, isDbxTableViewItemElement };
|
|
620
825
|
//# sourceMappingURL=dereekb-dbx-web-table.mjs.map
|