@theseam/ui-common 1.0.0-beta.8 → 1.0.0-beta.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/datatable/index.d.ts +49 -30
- package/fesm2022/theseam-ui-common-asset-reader.mjs +10 -10
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs +6 -6
- package/fesm2022/theseam-ui-common-buttons.mjs +25 -25
- package/fesm2022/theseam-ui-common-card.mjs +16 -16
- package/fesm2022/theseam-ui-common-carousel.mjs +10 -10
- package/fesm2022/theseam-ui-common-checkbox.mjs +7 -7
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs +13 -13
- package/fesm2022/theseam-ui-common-data-exporter.mjs +10 -10
- package/fesm2022/theseam-ui-common-data-filters.mjs +13 -13
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +12 -12
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +25 -25
- package/fesm2022/theseam-ui-common-datatable.mjs +214 -152
- package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +7 -7
- package/fesm2022/theseam-ui-common-dynamic.mjs +21 -21
- package/fesm2022/theseam-ui-common-footer-bar.mjs +7 -7
- package/fesm2022/theseam-ui-common-form-field-error.mjs +16 -16
- package/fesm2022/theseam-ui-common-form-field.mjs +22 -22
- package/fesm2022/theseam-ui-common-framework.mjs +157 -157
- package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-google-maps.mjs +40 -40
- package/fesm2022/theseam-ui-common-graphql.mjs +3 -3
- package/fesm2022/theseam-ui-common-icon.mjs +13 -13
- package/fesm2022/theseam-ui-common-layout.mjs +7 -7
- package/fesm2022/theseam-ui-common-loading.mjs +10 -10
- package/fesm2022/theseam-ui-common-menu.mjs +25 -25
- package/fesm2022/theseam-ui-common-modal.mjs +43 -43
- package/fesm2022/theseam-ui-common-navigation-reload.mjs +3 -3
- package/fesm2022/theseam-ui-common-popover.mjs +10 -10
- package/fesm2022/theseam-ui-common-progress.mjs +7 -7
- package/fesm2022/theseam-ui-common-rich-text.mjs +7 -7
- package/fesm2022/theseam-ui-common-scrollbar.mjs +6 -6
- package/fesm2022/theseam-ui-common-services.mjs +12 -12
- package/fesm2022/theseam-ui-common-shared.mjs +37 -37
- package/fesm2022/theseam-ui-common-storage.mjs +3 -3
- package/fesm2022/theseam-ui-common-story-helpers.mjs +26 -26
- package/fesm2022/theseam-ui-common-tabbed.mjs +22 -22
- package/fesm2022/theseam-ui-common-table-cell-type.mjs +39 -11
- package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-types.mjs +31 -31
- package/fesm2022/theseam-ui-common-table.mjs +28 -18
- package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tel-input.mjs +13 -13
- package/fesm2022/theseam-ui-common-tiled-select.mjs +22 -22
- package/fesm2022/theseam-ui-common-toggle-edit.mjs +16 -16
- package/fesm2022/theseam-ui-common-toggle-group.mjs +10 -10
- package/fesm2022/theseam-ui-common-tooltip.mjs +10 -10
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +10 -10
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +3 -3
- package/fesm2022/theseam-ui-common-viewers.mjs +12 -12
- package/fesm2022/theseam-ui-common-widget.mjs +135 -135
- package/package.json +57 -57
- package/table/index.d.ts +4 -1
- package/table-cell-type/index.d.ts +27 -2
|
@@ -12,10 +12,10 @@ import { isNullOrUndefined } from '@theseam/ui-common/utils';
|
|
|
12
12
|
|
|
13
13
|
class TheSeamTabbedTabContentDirective {
|
|
14
14
|
isActive = false;
|
|
15
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
16
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedTabContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamTabbedTabContentDirective, isStandalone: true, selector: "[seamTabbedTabContent]", exportAs: ["seamTabbedTabContent"], ngImport: i0 });
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedTabContentDirective, decorators: [{
|
|
19
19
|
type: Directive,
|
|
20
20
|
args: [{
|
|
21
21
|
selector: '[seamTabbedTabContent]',
|
|
@@ -42,10 +42,10 @@ class TheSeamTabbedService {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
46
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedService });
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedService, decorators: [{
|
|
49
49
|
type: Injectable
|
|
50
50
|
}] });
|
|
51
51
|
|
|
@@ -73,10 +73,10 @@ class TheSeamTabbedTabDirective {
|
|
|
73
73
|
// }
|
|
74
74
|
// })
|
|
75
75
|
}
|
|
76
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
77
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedTabDirective, deps: [{ token: i0.ElementRef }, { token: TheSeamTabbedService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
77
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamTabbedTabDirective, isStandalone: true, selector: "[seamTabbedTab]", exportAs: ["seamTabbedTab"], ngImport: i0 });
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedTabDirective, decorators: [{
|
|
80
80
|
type: Directive,
|
|
81
81
|
args: [{
|
|
82
82
|
selector: '[seamTabbedTab]',
|
|
@@ -86,10 +86,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
86
86
|
|
|
87
87
|
class TheSeamTabbedContentComponent {
|
|
88
88
|
tabbedItem;
|
|
89
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
90
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
89
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
90
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamTabbedContentComponent, isStandalone: true, selector: "seam-tabbed-content", inputs: { tabbedItem: "tabbedItem" }, ngImport: i0, template: "<div fxFlexFill>\n <ng-container *ngIf=\"tabbedItem\">\n <ng-template\n *ngIf=\"tabbedItem.tabbedContentTpl\"\n [ngTemplateOutlet]=\"tabbedItem.tabbedContentTpl\"\n ></ng-template>\n <ng-container *ngIf=\"tabbedItem.contentFromRoute\"\n ><router-outlet></router-outlet\n ></ng-container>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i3.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }] });
|
|
91
91
|
}
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedContentComponent, decorators: [{
|
|
93
93
|
type: Component,
|
|
94
94
|
args: [{ selector: 'seam-tabbed-content', imports: [NgIf, NgTemplateOutlet, RouterModule, FlexLayoutModule], template: "<div fxFlexFill>\n <ng-container *ngIf=\"tabbedItem\">\n <ng-template\n *ngIf=\"tabbedItem.tabbedContentTpl\"\n [ngTemplateOutlet]=\"tabbedItem.tabbedContentTpl\"\n ></ng-template>\n <ng-container *ngIf=\"tabbedItem.contentFromRoute\"\n ><router-outlet></router-outlet\n ></ng-container>\n </ng-container>\n</div>\n" }]
|
|
95
95
|
}], propDecorators: { tabbedItem: [{
|
|
@@ -103,13 +103,13 @@ class TheSeamTabbedItemComponent {
|
|
|
103
103
|
name;
|
|
104
104
|
label;
|
|
105
105
|
contentFromRoute = false;
|
|
106
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
107
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
106
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamTabbedItemComponent, isStandalone: true, selector: "seam-tabbed-item", inputs: { name: "name", label: "label", contentFromRoute: "contentFromRoute" }, queries: [{ propertyName: "tabbedTabTpl", first: true, predicate: TheSeamTabbedTabDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "tabbedContentTpl", first: true, predicate: TheSeamTabbedTabContentDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "", styles: [""] });
|
|
108
108
|
}
|
|
109
109
|
__decorate([
|
|
110
110
|
InputBoolean()
|
|
111
111
|
], TheSeamTabbedItemComponent.prototype, "contentFromRoute", void 0);
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedItemComponent, decorators: [{
|
|
113
113
|
type: Component,
|
|
114
114
|
args: [{ selector: 'seam-tabbed-item', template: "" }]
|
|
115
115
|
}], propDecorators: { tabbedTabTpl: [{
|
|
@@ -226,10 +226,10 @@ class TheSeamTabbedComponent {
|
|
|
226
226
|
console.warn(`Tab with name '${name}' not found`);
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
230
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
229
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedComponent, deps: [{ token: TheSeamTabbedService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
230
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamTabbedComponent, isStandalone: true, selector: "seam-tabbed", inputs: { direction: "direction", hideTabs: "hideTabs", onlyRouteContent: "onlyRouteContent", activeTabName: "activeTabName" }, outputs: { tabChanged: "tabChanged" }, providers: [TheSeamTabbedService], queries: [{ propertyName: "tabbedItems", predicate: TheSeamTabbedItemComponent }], ngImport: i0, template: "<div [fxLayout]=\"direction === 'horizontal' ? 'column' : 'row'\" fxFlexFill>\n <!-- Tabs -->\n <div\n *ngIf=\"!hideTabs\"\n [fxLayout]=\"direction === 'horizontal' ? 'row' : 'column'\"\n style=\"position: relative\"\n >\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div\n class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\"\n >\n <ng-template\n *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\"\n [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"\n ></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content\n fxFlexFill\n [tabbedItem]=\"selectedTab\"\n ></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n</div>\n", styles: [":host{display:block}.tabbed-tab{box-sizing:border-box;font-weight:400;font-size:10pt;min-width:130px;transform:translateZ(0);overflow:hidden;border:1px solid #dee2e6}.tabbed-tab:not(.active){background-color:#fff!important}.tabbed-tab.active{font-weight:700;color:#357ebd}.tabbed-tab:hover{cursor:pointer}.tabbed-tab.tab-dir-horizontal{border-bottom:0}.tabbed-tab.tab-dir-horizontal:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-horizontal:last-child{border-top-right-radius:.25rem}.tabbed-tab.tab-dir-horizontal:not(:last-child){border-right:0}.tabbed-tab.tab-dir-horizontal.active{margin-bottom:-2px}.tabbed-tab.tab-dir-vertical{border-right:0}.tabbed-tab.tab-dir-vertical:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:last-child{border-bottom-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:not(:last-child){border-bottom:0}.tabbed-tab.tab-dir-vertical.active{margin-right:-2px}.tabbed-tabs-content{display:block;flex:1 1 auto;overflow:hidden;border:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: TheSeamTabbedContentComponent, selector: "seam-tabbed-content", inputs: ["tabbedItem"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
231
231
|
}
|
|
232
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedComponent, decorators: [{
|
|
233
233
|
type: Component,
|
|
234
234
|
args: [{ selector: 'seam-tabbed', providers: [TheSeamTabbedService], imports: [
|
|
235
235
|
NgIf,
|
|
@@ -255,8 +255,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
255
255
|
}] } });
|
|
256
256
|
|
|
257
257
|
class TheSeamTabbedModule {
|
|
258
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
259
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
258
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
259
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedModule, imports: [TheSeamTabbedComponent,
|
|
260
260
|
TheSeamTabbedTabContentDirective,
|
|
261
261
|
TheSeamTabbedTabDirective,
|
|
262
262
|
TheSeamTabbedItemComponent,
|
|
@@ -265,10 +265,10 @@ class TheSeamTabbedModule {
|
|
|
265
265
|
TheSeamTabbedTabDirective,
|
|
266
266
|
TheSeamTabbedItemComponent,
|
|
267
267
|
TheSeamTabbedContentComponent] });
|
|
268
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
268
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedModule, imports: [TheSeamTabbedComponent,
|
|
269
269
|
TheSeamTabbedContentComponent] });
|
|
270
270
|
}
|
|
271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTabbedModule, decorators: [{
|
|
272
272
|
type: NgModule,
|
|
273
273
|
args: [{
|
|
274
274
|
imports: [
|
|
@@ -8,6 +8,34 @@ import { CommonModule } from '@angular/common';
|
|
|
8
8
|
import { takeUntil } from 'rxjs/operators';
|
|
9
9
|
import * as i1$1 from '@theseam/ui-common/dynamic';
|
|
10
10
|
|
|
11
|
+
function setColumnAlignDefaults(column) {
|
|
12
|
+
if (!Object.prototype.hasOwnProperty.call(column, 'align')) {
|
|
13
|
+
column.align = 'left';
|
|
14
|
+
}
|
|
15
|
+
if (!Object.prototype.hasOwnProperty.call(column, 'alignHeader')) {
|
|
16
|
+
column.alignHeader = column.align;
|
|
17
|
+
}
|
|
18
|
+
if (!Object.prototype.hasOwnProperty.call(column, 'alignCell')) {
|
|
19
|
+
column.alignCell = column.align;
|
|
20
|
+
}
|
|
21
|
+
if (!Object.prototype.hasOwnProperty.call(column, 'headerClass')) {
|
|
22
|
+
column.headerClass = `text-${column.alignHeader}`;
|
|
23
|
+
}
|
|
24
|
+
else if (typeof column.headerClass === 'string' &&
|
|
25
|
+
column.headerClass.length > 0 &&
|
|
26
|
+
!column.headerClass.includes('text-')) {
|
|
27
|
+
column.headerClass = `text-${column.alignHeader} ${column.headerClass}`;
|
|
28
|
+
}
|
|
29
|
+
if (!Object.prototype.hasOwnProperty.call(column, 'cellClass')) {
|
|
30
|
+
column.cellClass = `text-${column.alignCell}`;
|
|
31
|
+
}
|
|
32
|
+
else if (typeof column.cellClass === 'string' &&
|
|
33
|
+
column.cellClass.length > 0 &&
|
|
34
|
+
!column.cellClass.includes('text-')) {
|
|
35
|
+
column.cellClass = `text-${column.alignCell} ${column.cellClass}`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
11
39
|
const TABLE_CELL_TYPE_MANIFEST = new InjectionToken('TABLE_CELL_TYPE_MANIFEST');
|
|
12
40
|
const TABLE_CELL_DATA = new InjectionToken('TABLE_CELL_DATA');
|
|
13
41
|
|
|
@@ -87,8 +115,8 @@ class TableCellTypeSelectorComponent {
|
|
|
87
115
|
}
|
|
88
116
|
return false;
|
|
89
117
|
}
|
|
90
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
91
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
118
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TableCellTypeSelectorComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: TABLE_CELL_TYPE_MANIFEST, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: TableCellTypeSelectorComponent, isStandalone: false, selector: "seam-table-cell-type-selector", inputs: { type: "type", value: "value", rowIndex: "rowIndex", row: "row", colData: "colData" }, usesOnChanges: true, ngImport: i0, template: `
|
|
92
120
|
<ng-template
|
|
93
121
|
*ngIf="componentPortal; else noPortal"
|
|
94
122
|
[cdkPortalOutlet]="componentPortal"
|
|
@@ -96,7 +124,7 @@ class TableCellTypeSelectorComponent {
|
|
|
96
124
|
<ng-template #noPortal>{{ value }}</ng-template>
|
|
97
125
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
98
126
|
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TableCellTypeSelectorComponent, decorators: [{
|
|
100
128
|
type: Component,
|
|
101
129
|
args: [{ selector: 'seam-table-cell-type-selector', template: `
|
|
102
130
|
<ng-template
|
|
@@ -174,10 +202,10 @@ class TableCellTypesHelpersService {
|
|
|
174
202
|
const context = this._resolveValueContext(contextOrContextFn);
|
|
175
203
|
return from(this._dynamicActionHelper.exec(action, context));
|
|
176
204
|
}
|
|
177
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
178
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
205
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TableCellTypesHelpersService, deps: [{ token: i1$1.DynamicActionHelperService }, { token: i1$1.DynamicValueHelperService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
206
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TableCellTypesHelpersService, providedIn: 'root' });
|
|
179
207
|
}
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TableCellTypesHelpersService, decorators: [{
|
|
181
209
|
type: Injectable,
|
|
182
210
|
args: [{
|
|
183
211
|
providedIn: 'root',
|
|
@@ -185,11 +213,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
185
213
|
}], ctorParameters: () => [{ type: i1$1.DynamicActionHelperService }, { type: i1$1.DynamicValueHelperService }] });
|
|
186
214
|
|
|
187
215
|
class TheSeamTableCellTypeModule {
|
|
188
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
189
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
190
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
216
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTableCellTypeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
217
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTableCellTypeModule, declarations: [TableCellTypeSelectorComponent], imports: [CommonModule, PortalModule], exports: [TableCellTypeSelectorComponent] });
|
|
218
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTableCellTypeModule, imports: [CommonModule, PortalModule] });
|
|
191
219
|
}
|
|
192
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamTableCellTypeModule, decorators: [{
|
|
193
221
|
type: NgModule,
|
|
194
222
|
args: [{
|
|
195
223
|
declarations: [TableCellTypeSelectorComponent],
|
|
@@ -203,5 +231,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
203
231
|
* Generated bundle index. Do not edit.
|
|
204
232
|
*/
|
|
205
233
|
|
|
206
|
-
export { TABLE_CELL_DATA, TABLE_CELL_TYPE_MANIFEST, TableCellTypeSelectorComponent, TableCellTypesHelpersService, TheSeamTableCellTypeModule };
|
|
234
|
+
export { TABLE_CELL_DATA, TABLE_CELL_TYPE_MANIFEST, TableCellTypeSelectorComponent, TableCellTypesHelpersService, TheSeamTableCellTypeModule, setColumnAlignDefaults };
|
|
207
235
|
//# sourceMappingURL=theseam-ui-common-table-cell-type.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-table-cell-type.mjs","sources":["../../../projects/ui-common/table-cell-type/table-cell-type-tokens.ts","../../../projects/ui-common/table-cell-type/table-cell-type-selector.component.ts","../../../projects/ui-common/table-cell-type/services/table-cell-types-helpers.service.ts","../../../projects/ui-common/table-cell-type/table-cell-type.module.ts","../../../projects/ui-common/table-cell-type/theseam-ui-common-table-cell-type.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\n\nimport { ITableCellTypeManifest, TableCellData } from './table-cell-type-models'\n\nexport const TABLE_CELL_TYPE_MANIFEST =\n new InjectionToken<ITableCellTypeManifest>('TABLE_CELL_TYPE_MANIFEST')\n\nexport const TABLE_CELL_DATA = new InjectionToken<TableCellData<any, any>>(\n 'TABLE_CELL_DATA',\n)\n","import { ComponentPortal } from '@angular/cdk/portal'\nimport { ComponentType } from '@angular/cdk/portal'\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Injector,\n Input,\n isDevMode,\n OnChanges,\n Optional,\n SimpleChanges,\n} from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { TableCellTypeConfig } from './table-cell-type-config'\nimport type { TheSeamTableColumn } from './table-cell-type-models'\nimport {\n ITableCellTypeManifest,\n TableCellData,\n TableCellDataChange,\n} from './table-cell-type-models'\nimport {\n TABLE_CELL_DATA,\n TABLE_CELL_TYPE_MANIFEST,\n} from './table-cell-type-tokens'\n\n@Component({\n selector: 'seam-table-cell-type-selector',\n template: `\n <ng-template\n *ngIf=\"componentPortal; else noPortal\"\n [cdkPortalOutlet]=\"componentPortal\"\n ></ng-template>\n <ng-template #noPortal>{{ value }}</ng-template>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableCellTypeSelectorComponent<\n T extends string = any,\n D = any,\n V = any,\n >\n implements AfterViewInit, OnChanges\n{\n @Input() type: T | undefined | null\n @Input() value: V | undefined | null\n @Input() rowIndex: number | undefined | null\n @Input() row: D | undefined | null\n @Input() colData:\n | TheSeamTableColumn<T, TableCellTypeConfig<T>>\n | undefined\n | null\n\n public componentPortal?: ComponentPortal<unknown>\n\n private _data: TableCellData<T, TableCellTypeConfig<T>> | undefined\n private _dataChangeSubject?: Subject<\n TableCellDataChange<T, TableCellTypeConfig<T>>\n >\n private _manifests: ITableCellTypeManifest[]\n\n constructor(\n private _injector: Injector,\n private _ref: ChangeDetectorRef,\n @Optional()\n @Inject(TABLE_CELL_TYPE_MANIFEST)\n manifests?: ITableCellTypeManifest[],\n ) {\n this._manifests = manifests || []\n }\n\n ngAfterViewInit() {\n if (!this.type) {\n return\n }\n\n const comp = this._getComponent(this.type)\n if (comp) {\n this._dataChangeSubject = new Subject<\n TableCellDataChange<T, TableCellTypeConfig<T>>\n >()\n\n this._data = {\n row: this.row,\n rowIndex: this.rowIndex ?? -1,\n colData: this.colData ?? {},\n value: this.value,\n changed: this._dataChangeSubject.asObservable(),\n }\n\n this.componentPortal = new ComponentPortal(\n comp,\n null,\n this._createInjector(this._data),\n )\n this._ref.detectChanges()\n } else {\n if (isDevMode()) {\n throw new Error(`CellType '${this.type}' not found.`)\n } else {\n // TODO: Implement fallback\n }\n }\n }\n\n private _getComponent(name: string): ComponentType<unknown> | undefined {\n const manifest = this._manifests.find((m) => m.name === name)\n return manifest ? manifest.component : undefined\n }\n\n private _createInjector(\n cellData: TableCellData<T, TableCellTypeConfig<T>>,\n ): Injector {\n return Injector.create({\n parent: this._injector,\n providers: [{ provide: TABLE_CELL_DATA, useValue: cellData }],\n })\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this._data) {\n const dataChanged =\n [\n this._tryUpdateDataProp(changes, 'row'),\n this._tryUpdateDataProp(changes, 'rowIndex'),\n this._tryUpdateDataProp(changes, 'colData'),\n this._tryUpdateDataProp(changes, 'value'),\n ].findIndex((b) => b === true) !== -1\n\n if (dataChanged && this._dataChangeSubject) {\n this._dataChangeSubject.next({\n data: this._data,\n changes,\n })\n }\n }\n }\n\n private _tryUpdateDataProp(\n changes: SimpleChanges,\n prop: keyof Omit<TableCellData<T, TableCellTypeConfig<T>>, 'changed'>,\n ): boolean {\n if (this._data && Object.prototype.hasOwnProperty.call(changes, prop)) {\n this._data[prop] = changes[prop].currentValue\n return true\n }\n return false\n }\n}\n","import { Injectable } from '@angular/core'\nimport { from, Observable, Subject, Subscriber } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport {\n DynamicActionHelperService,\n DynamicActionModalDef,\n DynamicValueHelperService,\n} from '@theseam/ui-common/dynamic'\n\nimport { TableCellTypeConfig } from '../table-cell-type-config'\nimport {\n CaluclatedValueContextType,\n ICalucatedValueContext,\n TableCellData,\n} from '../table-cell-type-models'\nimport { TableCellTypeName } from '../table-cell-type-name'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TableCellTypesHelpersService {\n constructor(\n private _dynamicActionHelper: DynamicActionHelperService,\n private _valueHelper: DynamicValueHelperService,\n ) {}\n\n public parseValueProp(\n value: any,\n contextOrContextFn: CaluclatedValueContextType,\n ) {\n const context = this._resolveValueContext(contextOrContextFn)\n return this._valueHelper.evalSync(value, context)\n }\n\n public getValueContext<T extends TableCellTypeName>(\n value: any,\n data?: TableCellData<T, TableCellTypeConfig<T>>,\n ): ICalucatedValueContext {\n return {\n row: data && data.row,\n rowIndex: data && data.rowIndex,\n colData: data && data.colData,\n value,\n }\n }\n\n private _resolveValueContext(contextOrContextFn: CaluclatedValueContextType) {\n let context = contextOrContextFn\n if (typeof context === 'function') {\n context = context()\n }\n return context\n }\n\n public handleModalAction<R = any>(\n action: DynamicActionModalDef,\n contextOrContextFn: CaluclatedValueContextType,\n ) {\n // TODO: Try to simplify this observable. It seems fairly easy to read like\n // this, but seems like it is doing more than it needs to with the multiple\n // subjects.\n return new Observable((subscriber: Subscriber<R>) => {\n // Passed to helper function to emit results to subscriber.\n const resultSubject = new Subject<any>()\n // Used to stop observing.\n const stopSubject = new Subject<any>()\n\n // Observe results to emit to subscriber.\n resultSubject.pipe(takeUntil(stopSubject)).subscribe(\n (result) => subscriber.next(result),\n (err) => subscriber.error(err),\n () => stopSubject.complete(),\n )\n\n // Handle the potentially deep chain of actions.\n this._handleModalAction(action, contextOrContextFn, resultSubject)\n .pipe(takeUntil(stopSubject))\n .subscribe(\n () => {},\n (err) => subscriber.error(err),\n () => subscriber.complete(),\n )\n\n // Clean up on unsubscribe.\n return () => {\n stopSubject.next(undefined)\n stopSubject.complete()\n }\n })\n }\n\n private _handleModalAction(\n action: DynamicActionModalDef,\n contextOrContextFn: CaluclatedValueContextType,\n resultSubject: Subject<any>,\n ) {\n const context = this._resolveValueContext(contextOrContextFn)\n return from(this._dynamicActionHelper.exec(action, context))\n }\n}\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TableCellTypeSelectorComponent } from './table-cell-type-selector.component'\n\n@NgModule({\n declarations: [TableCellTypeSelectorComponent],\n imports: [CommonModule, PortalModule],\n providers: [],\n exports: [TableCellTypeSelectorComponent],\n})\nexport class TheSeamTableCellTypeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-table-cell-type.mjs","sources":["../../../projects/ui-common/table-cell-type/table-cell-type-column-align.ts","../../../projects/ui-common/table-cell-type/table-cell-type-tokens.ts","../../../projects/ui-common/table-cell-type/table-cell-type-selector.component.ts","../../../projects/ui-common/table-cell-type/services/table-cell-types-helpers.service.ts","../../../projects/ui-common/table-cell-type/table-cell-type.module.ts","../../../projects/ui-common/table-cell-type/theseam-ui-common-table-cell-type.ts"],"sourcesContent":["export interface TheSeamTableCellTypeColumnAlign {\r\n /**\r\n * Alignment for header and cell content.\r\n *\r\n * Defaults to 'left'.\r\n */\r\n align?: 'left' | 'center' | 'right'\r\n\r\n /**\r\n * Alignment for header content.\r\n *\r\n * Defaults to `align` if not provided.\r\n */\r\n alignHeader?: 'left' | 'center' | 'right'\r\n\r\n /**\r\n * Alignment for cell content.\r\n *\r\n * Defaults to `align` if not provided.\r\n */\r\n alignCell?: 'left' | 'center' | 'right'\r\n}\r\n\r\nexport function setColumnAlignDefaults(\r\n column: TheSeamTableCellTypeColumnAlign & {\r\n headerClass?: string | null | ((data: any) => string | any)\r\n cellClass?: string | null | ((data: any) => string | any)\r\n },\r\n): void {\r\n if (!Object.prototype.hasOwnProperty.call(column, 'align')) {\r\n column.align = 'left'\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(column, 'alignHeader')) {\r\n column.alignHeader = column.align\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(column, 'alignCell')) {\r\n column.alignCell = column.align\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(column, 'headerClass')) {\r\n column.headerClass = `text-${column.alignHeader}`\r\n } else if (\r\n typeof column.headerClass === 'string' &&\r\n column.headerClass.length > 0 &&\r\n !column.headerClass.includes('text-')\r\n ) {\r\n column.headerClass = `text-${column.alignHeader} ${column.headerClass}`\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(column, 'cellClass')) {\r\n column.cellClass = `text-${column.alignCell}`\r\n } else if (\r\n typeof column.cellClass === 'string' &&\r\n column.cellClass.length > 0 &&\r\n !column.cellClass.includes('text-')\r\n ) {\r\n column.cellClass = `text-${column.alignCell} ${column.cellClass}`\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core'\n\nimport { ITableCellTypeManifest, TableCellData } from './table-cell-type-models'\n\nexport const TABLE_CELL_TYPE_MANIFEST =\n new InjectionToken<ITableCellTypeManifest>('TABLE_CELL_TYPE_MANIFEST')\n\nexport const TABLE_CELL_DATA = new InjectionToken<TableCellData<any, any>>(\n 'TABLE_CELL_DATA',\n)\n","import { ComponentPortal } from '@angular/cdk/portal'\nimport { ComponentType } from '@angular/cdk/portal'\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n Injector,\n Input,\n isDevMode,\n OnChanges,\n Optional,\n SimpleChanges,\n} from '@angular/core'\nimport { Subject } from 'rxjs'\n\nimport { TableCellTypeConfig } from './table-cell-type-config'\nimport type { TheSeamTableColumn } from './table-cell-type-models'\nimport {\n ITableCellTypeManifest,\n TableCellData,\n TableCellDataChange,\n} from './table-cell-type-models'\nimport {\n TABLE_CELL_DATA,\n TABLE_CELL_TYPE_MANIFEST,\n} from './table-cell-type-tokens'\n\n@Component({\n selector: 'seam-table-cell-type-selector',\n template: `\n <ng-template\n *ngIf=\"componentPortal; else noPortal\"\n [cdkPortalOutlet]=\"componentPortal\"\n ></ng-template>\n <ng-template #noPortal>{{ value }}</ng-template>\n `,\n styles: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class TableCellTypeSelectorComponent<\n T extends string = any,\n D = any,\n V = any,\n >\n implements AfterViewInit, OnChanges\n{\n @Input() type: T | undefined | null\n @Input() value: V | undefined | null\n @Input() rowIndex: number | undefined | null\n @Input() row: D | undefined | null\n @Input() colData:\n | TheSeamTableColumn<T, TableCellTypeConfig<T>>\n | undefined\n | null\n\n public componentPortal?: ComponentPortal<unknown>\n\n private _data: TableCellData<T, TableCellTypeConfig<T>> | undefined\n private _dataChangeSubject?: Subject<\n TableCellDataChange<T, TableCellTypeConfig<T>>\n >\n private _manifests: ITableCellTypeManifest[]\n\n constructor(\n private _injector: Injector,\n private _ref: ChangeDetectorRef,\n @Optional()\n @Inject(TABLE_CELL_TYPE_MANIFEST)\n manifests?: ITableCellTypeManifest[],\n ) {\n this._manifests = manifests || []\n }\n\n ngAfterViewInit() {\n if (!this.type) {\n return\n }\n\n const comp = this._getComponent(this.type)\n if (comp) {\n this._dataChangeSubject = new Subject<\n TableCellDataChange<T, TableCellTypeConfig<T>>\n >()\n\n this._data = {\n row: this.row,\n rowIndex: this.rowIndex ?? -1,\n colData: this.colData ?? {},\n value: this.value,\n changed: this._dataChangeSubject.asObservable(),\n }\n\n this.componentPortal = new ComponentPortal(\n comp,\n null,\n this._createInjector(this._data),\n )\n this._ref.detectChanges()\n } else {\n if (isDevMode()) {\n throw new Error(`CellType '${this.type}' not found.`)\n } else {\n // TODO: Implement fallback\n }\n }\n }\n\n private _getComponent(name: string): ComponentType<unknown> | undefined {\n const manifest = this._manifests.find((m) => m.name === name)\n return manifest ? manifest.component : undefined\n }\n\n private _createInjector(\n cellData: TableCellData<T, TableCellTypeConfig<T>>,\n ): Injector {\n return Injector.create({\n parent: this._injector,\n providers: [{ provide: TABLE_CELL_DATA, useValue: cellData }],\n })\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this._data) {\n const dataChanged =\n [\n this._tryUpdateDataProp(changes, 'row'),\n this._tryUpdateDataProp(changes, 'rowIndex'),\n this._tryUpdateDataProp(changes, 'colData'),\n this._tryUpdateDataProp(changes, 'value'),\n ].findIndex((b) => b === true) !== -1\n\n if (dataChanged && this._dataChangeSubject) {\n this._dataChangeSubject.next({\n data: this._data,\n changes,\n })\n }\n }\n }\n\n private _tryUpdateDataProp(\n changes: SimpleChanges,\n prop: keyof Omit<TableCellData<T, TableCellTypeConfig<T>>, 'changed'>,\n ): boolean {\n if (this._data && Object.prototype.hasOwnProperty.call(changes, prop)) {\n this._data[prop] = changes[prop].currentValue\n return true\n }\n return false\n }\n}\n","import { Injectable } from '@angular/core'\nimport { from, Observable, Subject, Subscriber } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport {\n DynamicActionHelperService,\n DynamicActionModalDef,\n DynamicValueHelperService,\n} from '@theseam/ui-common/dynamic'\n\nimport { TableCellTypeConfig } from '../table-cell-type-config'\nimport {\n CaluclatedValueContextType,\n ICalucatedValueContext,\n TableCellData,\n} from '../table-cell-type-models'\nimport { TableCellTypeName } from '../table-cell-type-name'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TableCellTypesHelpersService {\n constructor(\n private _dynamicActionHelper: DynamicActionHelperService,\n private _valueHelper: DynamicValueHelperService,\n ) {}\n\n public parseValueProp(\n value: any,\n contextOrContextFn: CaluclatedValueContextType,\n ) {\n const context = this._resolveValueContext(contextOrContextFn)\n return this._valueHelper.evalSync(value, context)\n }\n\n public getValueContext<T extends TableCellTypeName>(\n value: any,\n data?: TableCellData<T, TableCellTypeConfig<T>>,\n ): ICalucatedValueContext {\n return {\n row: data && data.row,\n rowIndex: data && data.rowIndex,\n colData: data && data.colData,\n value,\n }\n }\n\n private _resolveValueContext(contextOrContextFn: CaluclatedValueContextType) {\n let context = contextOrContextFn\n if (typeof context === 'function') {\n context = context()\n }\n return context\n }\n\n public handleModalAction<R = any>(\n action: DynamicActionModalDef,\n contextOrContextFn: CaluclatedValueContextType,\n ) {\n // TODO: Try to simplify this observable. It seems fairly easy to read like\n // this, but seems like it is doing more than it needs to with the multiple\n // subjects.\n return new Observable((subscriber: Subscriber<R>) => {\n // Passed to helper function to emit results to subscriber.\n const resultSubject = new Subject<any>()\n // Used to stop observing.\n const stopSubject = new Subject<any>()\n\n // Observe results to emit to subscriber.\n resultSubject.pipe(takeUntil(stopSubject)).subscribe(\n (result) => subscriber.next(result),\n (err) => subscriber.error(err),\n () => stopSubject.complete(),\n )\n\n // Handle the potentially deep chain of actions.\n this._handleModalAction(action, contextOrContextFn, resultSubject)\n .pipe(takeUntil(stopSubject))\n .subscribe(\n () => {},\n (err) => subscriber.error(err),\n () => subscriber.complete(),\n )\n\n // Clean up on unsubscribe.\n return () => {\n stopSubject.next(undefined)\n stopSubject.complete()\n }\n })\n }\n\n private _handleModalAction(\n action: DynamicActionModalDef,\n contextOrContextFn: CaluclatedValueContextType,\n resultSubject: Subject<any>,\n ) {\n const context = this._resolveValueContext(contextOrContextFn)\n return from(this._dynamicActionHelper.exec(action, context))\n }\n}\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TableCellTypeSelectorComponent } from './table-cell-type-selector.component'\n\n@NgModule({\n declarations: [TableCellTypeSelectorComponent],\n imports: [CommonModule, PortalModule],\n providers: [],\n exports: [TableCellTypeSelectorComponent],\n})\nexport class TheSeamTableCellTypeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|