@theseam/ui-common 1.0.0-beta.1 → 1.0.0-beta.10
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/breadcrumbs/index.d.ts +1 -2
- package/buttons/index.d.ts +20 -13
- package/datatable/index.d.ts +77 -39
- package/dynamic/index.d.ts +5 -5
- package/fesm2022/theseam-ui-common-asset-reader.mjs +28 -29
- package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs +25 -31
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-buttons.mjs +108 -66
- package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-card.mjs +21 -21
- package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-carousel.mjs +28 -30
- package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-checkbox.mjs +27 -27
- package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs +23 -27
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-core.mjs +31 -11
- package/fesm2022/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-exporter.mjs +18 -19
- package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-filters.mjs +80 -64
- package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +51 -49
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +145 -112
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable.mjs +727 -420
- package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +12 -14
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic.mjs +60 -48
- package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-footer-bar.mjs +9 -15
- package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field-error.mjs +60 -43
- package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field.mjs +129 -76
- package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-framework.mjs +669 -543
- package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
- package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-graphql.mjs +252 -195
- package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-icon.mjs +125 -89
- package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-layout.mjs +18 -26
- package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-loading.mjs +19 -28
- package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-menu.mjs +124 -95
- package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-modal.mjs +178 -129
- package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-models.mjs +3 -3
- package/fesm2022/theseam-ui-common-models.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-navigation-reload.mjs +13 -11
- package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-popover.mjs +81 -88
- package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-progress.mjs +15 -19
- package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-rich-text.mjs +65 -52
- package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-scrollbar.mjs +12 -9
- package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-services.mjs +41 -26
- package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-shared.mjs +149 -159
- package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-storage.mjs +9 -6
- package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-story-helpers.mjs +148 -86
- package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tabbed.mjs +43 -39
- package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-type.mjs +63 -39
- package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-types.mjs +182 -144
- package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table.mjs +62 -41
- package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tel-input.mjs +98 -63
- package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-testing.mjs +13 -10
- package/fesm2022/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tiled-select.mjs +54 -50
- package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-edit.mjs +41 -37
- package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-group.mjs +30 -31
- package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tooltip.mjs +225 -66
- package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +14 -12
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-utils.mjs +113 -77
- package/fesm2022/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-validators.mjs +10 -9
- package/fesm2022/theseam-ui-common-validators.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +39 -17
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-viewers.mjs +80 -53
- package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-widget.mjs +288 -314
- package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
- package/form-field/index.d.ts +1 -1
- package/framework/base-layout/base-layout.component.scss +9 -4
- package/framework/base-layout/styles/_variables.scss +4 -9
- package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
- package/framework/index.d.ts +6 -6
- package/framework/nav/nav-item/nav-item.component.scss +7 -6
- package/framework/nav/styles/_themes/light/_variables.scss +21 -5
- package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
- package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
- package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
- package/graphql/index.d.ts +5 -5
- package/modal/README.md +5 -5
- package/modal/index.d.ts +1 -1
- package/models/index.d.ts +1 -1
- package/package.json +62 -63
- package/popover/index.d.ts +0 -2
- package/progress/progress-circle/styles/_variables.scss +15 -3
- package/shared/index.d.ts +0 -13
- package/story-helpers/index.d.ts +11 -1
- package/styles/bootstrap/_bootstrap.scss +34 -34
- package/styles/bootstrap/_bs-styles.scss +4 -8
- package/styles/bootstrap/_bs-utilities.scss +4 -4
- package/styles/bootstrap/_bs-variables.scss +65 -70
- package/styles/common/_forms.scss +9 -10
- package/styles/common/_global.scss +0 -1
- package/styles/common/_hacks.scss +1 -1
- package/styles/common/_table.scss +0 -1
- package/styles/common/_text.scss +3 -1
- package/styles/theme.scss +1 -1
- package/styles/vendor/ng-select/_ng-select-bs4.scss +292 -294
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +63 -32
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +37 -10
- package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +3 -1
- package/styles/vendor/quill/_quill.scss +15 -9
- package/table/index.d.ts +4 -1
- package/table-cell-type/index.d.ts +27 -2
- package/tel-input/README.md +27 -27
- package/utils/index.d.ts +3 -3
- package/viewers/index.d.ts +9 -2
- package/widget/_widget-theme.scss +1 -1
- package/widget/styles/_variables.scss +2 -2
- package/widget/widget/widget.component.scss +0 -2
- package/widget/widget-content-components/widget-tile/widget-tile.component.scss +1 -3
- package/widget/widget-footer/widget-footer.component.scss +0 -1
package/breadcrumbs/index.d.ts
CHANGED
|
@@ -11,8 +11,7 @@ declare class TheSeamBreadcrumbsComponent {
|
|
|
11
11
|
static ɵcmp: i0.ɵɵComponentDeclaration<TheSeamBreadcrumbsComponent, "seam-breadcrumbs", never, {}, {}, never, never, true, never>;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
}
|
|
14
|
+
type TheSeamBreadcrumbsResolver = Resolve<string>;
|
|
16
15
|
|
|
17
16
|
interface TheSeamBreadcrumb {
|
|
18
17
|
/** Value to display on breadcrumb. */
|
package/buttons/index.d.ts
CHANGED
|
@@ -28,8 +28,7 @@ declare class TheSeamBaseButtonComponentHarness extends ContentContainerComponen
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
/** A set of criteria that can be used to filter a list of `TheSeamBaseBadgeButtonComponentHarness` instances. */
|
|
31
|
-
|
|
32
|
-
}
|
|
31
|
+
type TheSeamBaseBadgeButtonComponentHarnessFilters = TheSeamBaseButtonComponentHarnessFilters;
|
|
33
32
|
declare class TheSeamBaseBadgeButtonComponentHarness extends TheSeamBaseButtonComponentHarness {
|
|
34
33
|
private readonly _badgeElement;
|
|
35
34
|
/** Gets the text of the button item. */
|
|
@@ -41,8 +40,7 @@ declare class TheSeamBaseBadgeButtonComponentHarness extends TheSeamBaseButtonCo
|
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
/** A set of criteria that can be used to filter a list of `TheSeamAnchorBadgeButtonComponentHarness` instances. */
|
|
44
|
-
|
|
45
|
-
}
|
|
43
|
+
type TheSeamAnchorBadgeButtonComponentHarnessFilters = TheSeamBaseBadgeButtonComponentHarnessFilters;
|
|
46
44
|
declare class TheSeamAnchorBadgeButtonComponentHarness extends TheSeamBaseBadgeButtonComponentHarness {
|
|
47
45
|
/** The selector for the host element of a `TheSeamAnchorBadgeButtonComponent` instance. */
|
|
48
46
|
static hostSelector: string;
|
|
@@ -56,8 +54,7 @@ declare class TheSeamAnchorBadgeButtonComponentHarness extends TheSeamBaseBadgeB
|
|
|
56
54
|
}
|
|
57
55
|
|
|
58
56
|
/** A set of criteria that can be used to filter a list of `TheSeamAnchorButtonComponentHarness` instances. */
|
|
59
|
-
|
|
60
|
-
}
|
|
57
|
+
type TheSeamAnchorButtonComponentHarnessFilters = TheSeamBaseButtonComponentHarnessFilters;
|
|
61
58
|
declare class TheSeamAnchorButtonComponentHarness extends TheSeamBaseButtonComponentHarness {
|
|
62
59
|
/** The selector for the host element of a `TheSeamAnchorButtonComponent` instance. */
|
|
63
60
|
static hostSelector: string;
|
|
@@ -71,8 +68,7 @@ declare class TheSeamAnchorButtonComponentHarness extends TheSeamBaseButtonCompo
|
|
|
71
68
|
}
|
|
72
69
|
|
|
73
70
|
/** A set of criteria that can be used to filter a list of `TheSeamBadgeButtonComponentHarness` instances. */
|
|
74
|
-
|
|
75
|
-
}
|
|
71
|
+
type TheSeamBadgeButtonComponentHarnessFilters = TheSeamBaseBadgeButtonComponentHarnessFilters;
|
|
76
72
|
declare class TheSeamBadgeButtonComponentHarness extends TheSeamBaseBadgeButtonComponentHarness {
|
|
77
73
|
/** The selector for the host element of a `TheSeamBadgeButtonComponent` instance. */
|
|
78
74
|
static hostSelector: string;
|
|
@@ -85,8 +81,7 @@ declare class TheSeamBadgeButtonComponentHarness extends TheSeamBaseBadgeButtonC
|
|
|
85
81
|
}
|
|
86
82
|
|
|
87
83
|
/** A set of criteria that can be used to filter a list of `TheSeamButtonComponentHarness` instances. */
|
|
88
|
-
|
|
89
|
-
}
|
|
84
|
+
type TheSeamButtonComponentHarnessFilters = TheSeamBaseButtonComponentHarnessFilters;
|
|
90
85
|
declare class TheSeamButtonComponentHarness extends TheSeamBaseButtonComponentHarness {
|
|
91
86
|
/** The selector for the host element of a `TheSeamButtonComponent` instance. */
|
|
92
87
|
static hostSelector: string;
|
|
@@ -119,9 +114,9 @@ declare class TheSeamToggleButtonComponentHarness extends TheSeamBaseButtonCompo
|
|
|
119
114
|
}
|
|
120
115
|
|
|
121
116
|
declare class TheSeamButtonBase implements OnDestroy {
|
|
122
|
-
_elementRef: ElementRef;
|
|
123
|
-
_focusMonitor: FocusMonitor;
|
|
124
|
-
_renderer: Renderer2;
|
|
117
|
+
readonly _elementRef: ElementRef;
|
|
118
|
+
readonly _focusMonitor: FocusMonitor;
|
|
119
|
+
readonly _renderer: Renderer2;
|
|
125
120
|
constructor(_elementRef: ElementRef, _focusMonitor: FocusMonitor, _renderer: Renderer2);
|
|
126
121
|
ngOnDestroy(): void;
|
|
127
122
|
/** Focuses the button. */
|
|
@@ -132,6 +127,9 @@ declare class TheSeamButtonBase implements OnDestroy {
|
|
|
132
127
|
}
|
|
133
128
|
declare const _TheSeamButtonMixinBase: CanDisableCtor & CanThemeCtor & CanSizeCtor & typeof TheSeamButtonBase;
|
|
134
129
|
declare class TheSeamButtonComponent extends _TheSeamButtonMixinBase implements OnDestroy {
|
|
130
|
+
readonly _elementRef: ElementRef;
|
|
131
|
+
readonly _focusMonitor: FocusMonitor;
|
|
132
|
+
readonly _renderer: Renderer2;
|
|
135
133
|
/** ARIA type for the button. */
|
|
136
134
|
type: 'button' | 'submit' | 'reset';
|
|
137
135
|
constructor(_elementRef: ElementRef, _focusMonitor: FocusMonitor, _renderer: Renderer2);
|
|
@@ -140,6 +138,9 @@ declare class TheSeamButtonComponent extends _TheSeamButtonMixinBase implements
|
|
|
140
138
|
static ɵcmp: i0.ɵɵComponentDeclaration<TheSeamButtonComponent, "button[seamButton]", ["seamButton"], { "disabled": { "alias": "disabled"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
141
139
|
}
|
|
142
140
|
declare class TheSeamAnchorButtonComponent extends _TheSeamButtonMixinBase implements OnDestroy {
|
|
141
|
+
readonly _elementRef: ElementRef;
|
|
142
|
+
readonly _focusMonitor: FocusMonitor;
|
|
143
|
+
readonly _renderer: Renderer2;
|
|
143
144
|
/** Tabindex of the button. */
|
|
144
145
|
tabIndex: number | undefined | null;
|
|
145
146
|
constructor(_elementRef: ElementRef, _focusMonitor: FocusMonitor, _renderer: Renderer2);
|
|
@@ -150,6 +151,9 @@ declare class TheSeamAnchorButtonComponent extends _TheSeamButtonMixinBase imple
|
|
|
150
151
|
}
|
|
151
152
|
|
|
152
153
|
declare class TheSeamBadgeButtonComponent extends TheSeamButtonComponent implements OnDestroy {
|
|
154
|
+
readonly _elementRef: ElementRef;
|
|
155
|
+
readonly _focusMonitor: FocusMonitor;
|
|
156
|
+
readonly _renderer: Renderer2;
|
|
153
157
|
_textNoWrap: boolean;
|
|
154
158
|
badgeTheme: ThemeTypes;
|
|
155
159
|
badgeText: string;
|
|
@@ -159,6 +163,9 @@ declare class TheSeamBadgeButtonComponent extends TheSeamButtonComponent impleme
|
|
|
159
163
|
static ɵcmp: i0.ɵɵComponentDeclaration<TheSeamBadgeButtonComponent, "button[seamBadgeButton]", ["seamBadgeButton"], { "disabled": { "alias": "disabled"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "size": { "alias": "size"; "required": false; }; "badgeTheme": { "alias": "badgeTheme"; "required": false; }; "badgeText": { "alias": "badgeText"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
160
164
|
}
|
|
161
165
|
declare class TheSeamAnchorBadgeButtonComponent extends TheSeamAnchorButtonComponent implements OnDestroy {
|
|
166
|
+
readonly _elementRef: ElementRef;
|
|
167
|
+
readonly _focusMonitor: FocusMonitor;
|
|
168
|
+
readonly _renderer: Renderer2;
|
|
162
169
|
_textNoWrap: boolean;
|
|
163
170
|
badgeTheme: ThemeTypes;
|
|
164
171
|
badgeText: string;
|
package/datatable/index.d.ts
CHANGED
|
@@ -5,49 +5,49 @@ import * as i0 from '@angular/core';
|
|
|
5
5
|
import { EventEmitter, QueryList, TemplateRef, OnChanges, PipeTransform, SimpleChanges, InjectionToken, KeyValueDiffers, OnInit, OnDestroy, ChangeDetectorRef, ElementRef, ViewContainerRef, NgZone } from '@angular/core';
|
|
6
6
|
import * as rxjs from 'rxjs';
|
|
7
7
|
import { Observable } from 'rxjs';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i26 from '@marklb/ngx-datatable';
|
|
9
9
|
import { TableColumnProp, TableColumn, SortType, SelectionType, DataTableColumnDirective, DataTableColumnHeaderDirective, DataTableColumnCellTreeToggle, TreeStatus, ColumnMode, ContextmenuType, DatatableComponent as DatatableComponent$1, DatatableRowDetailDirective } from '@marklb/ngx-datatable';
|
|
10
10
|
import * as _theseam_ui_common_data_filters from '@theseam/ui-common/data-filters';
|
|
11
11
|
import { IDataFilter, DataFilterContainer, DataFilter, DataFilterState } from '@theseam/ui-common/data-filters';
|
|
12
|
-
import * as
|
|
12
|
+
import * as i30 from '@theseam/ui-common/shared';
|
|
13
13
|
import { TheSeamElementResizedEvent } from '@theseam/ui-common/shared';
|
|
14
|
-
import * as
|
|
14
|
+
import * as i28 from '@angular/cdk/overlay';
|
|
15
15
|
import { ConnectionPositionPair, Overlay } from '@angular/cdk/overlay';
|
|
16
|
-
import * as
|
|
16
|
+
import * as i31 from '@angular/router';
|
|
17
17
|
import { Router } from '@angular/router';
|
|
18
|
-
import * as
|
|
18
|
+
import * as i38 from '@theseam/ui-common/confirm-dialog';
|
|
19
19
|
import { SeamConfirmDialogService } from '@theseam/ui-common/confirm-dialog';
|
|
20
|
-
import * as
|
|
20
|
+
import * as i32 from '@theseam/ui-common/menu';
|
|
21
21
|
import { MenuComponent } from '@theseam/ui-common/menu';
|
|
22
22
|
import { ThemeTypes } from '@theseam/ui-common/models';
|
|
23
|
-
import * as
|
|
24
|
-
import { TableCellTypeName, TableCellTypeConfig, TableCellTypeColumn, TableCellTypeExportProps } from '@theseam/ui-common/table-cell-type';
|
|
25
|
-
import * as
|
|
23
|
+
import * as i43 from '@theseam/ui-common/table-cell-type';
|
|
24
|
+
import { TableCellTypeName, TableCellTypeConfig, TableCellTypeColumn, TableCellTypeExportProps, TheSeamTableCellTypeColumnAlign } from '@theseam/ui-common/table-cell-type';
|
|
25
|
+
import * as i42 from '@angular/forms';
|
|
26
26
|
import { FormGroup, FormControl, UntypedFormControl } from '@angular/forms';
|
|
27
27
|
import { TheSeamPreferencesBase, TheSeamPreferencesManagerService, TheSeamPreferencesAccessor } from '@theseam/ui-common/services';
|
|
28
28
|
import { AlterationDisplayItem } from '@theseam/ui-common/datatable-alterations-display';
|
|
29
|
-
import * as
|
|
29
|
+
import * as i34 from '@theseam/ui-common/icon';
|
|
30
30
|
import { SeamIcon } from '@theseam/ui-common/icon';
|
|
31
|
-
import * as
|
|
31
|
+
import * as i35 from 'ngx-toastr';
|
|
32
32
|
import { ToastrService } from 'ngx-toastr';
|
|
33
33
|
import { IDataExporter } from '@theseam/ui-common/data-exporter';
|
|
34
34
|
import { DynamicValueHelperService } from '@theseam/ui-common/dynamic';
|
|
35
|
-
import * as
|
|
35
|
+
import * as i36 from '@theseam/ui-common/loading';
|
|
36
36
|
import { TheSeamLoadingOverlayService } from '@theseam/ui-common/loading';
|
|
37
37
|
import { HttpClient } from '@angular/common/http';
|
|
38
38
|
import { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader';
|
|
39
39
|
import { Modal } from '@theseam/ui-common/modal';
|
|
40
40
|
import { TheSeamOverlayScrollbarsService } from '@theseam/ui-common/scrollbar';
|
|
41
|
-
import * as
|
|
42
|
-
import * as
|
|
43
|
-
import * as
|
|
44
|
-
import * as
|
|
45
|
-
import * as
|
|
46
|
-
import * as
|
|
47
|
-
import * as
|
|
48
|
-
import * as
|
|
49
|
-
import * as
|
|
50
|
-
import * as
|
|
41
|
+
import * as i25 from '@angular/common';
|
|
42
|
+
import * as i27 from '@fortawesome/angular-fontawesome';
|
|
43
|
+
import * as i29 from '@angular/cdk/a11y';
|
|
44
|
+
import * as i33 from '@theseam/ui-common/buttons';
|
|
45
|
+
import * as i37 from '@angular/cdk/portal';
|
|
46
|
+
import * as i39 from '@theseam/ui-common/popover';
|
|
47
|
+
import * as i40 from '@theseam/ui-common/checkbox';
|
|
48
|
+
import * as i41 from '@theseam/ui-common/form-field';
|
|
49
|
+
import * as i45 from '@ng-select/ng-select';
|
|
50
|
+
import * as i46 from '@theseam/ui-common/toggle-group';
|
|
51
51
|
|
|
52
52
|
declare class DatatableActionMenuItemComponent {
|
|
53
53
|
label: string | undefined | null;
|
|
@@ -137,17 +137,38 @@ declare class DatatableColumnComponent implements OnChanges {
|
|
|
137
137
|
summaryFunc?: ((cells: any[]) => any) | null;
|
|
138
138
|
summaryTemplate?: TemplateRef<any> | null;
|
|
139
139
|
hidden?: boolean | null;
|
|
140
|
+
align?: 'left' | 'center' | 'right' | null;
|
|
141
|
+
alignHeader?: 'left' | 'center' | 'right' | null;
|
|
142
|
+
alignCell?: 'left' | 'center' | 'right' | null;
|
|
140
143
|
private _isFirstChange;
|
|
141
144
|
cellTplDirective?: DatatableCellTplDirective;
|
|
142
145
|
_cellTemplateInput?: TemplateRef<any> | null;
|
|
143
146
|
_cellTemplateQuery?: TemplateRef<any>;
|
|
144
147
|
get cellTemplate(): TemplateRef<any> | undefined | null;
|
|
148
|
+
readonly __propsChanged: string[];
|
|
145
149
|
constructor(_columnChangesService: DatatableColumnChangesService);
|
|
146
150
|
ngOnChanges(changes: SimpleChanges): void;
|
|
147
151
|
getCellDirective(): DatatableCellTplDirective | null;
|
|
148
152
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnComponent, never>;
|
|
149
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnComponent, "seam-datatable-column", never, { "name": { "alias": "name"; "required": false; }; "prop": { "alias": "prop"; "required": false; }; "flexGrow": { "alias": "flexGrow"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "width": { "alias": "width"; "required": false; }; "resizeable": { "alias": "resizeable"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "canAutoResize": { "alias": "canAutoResize"; "required": false; }; "comparator": { "alias": "comparator"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "checkboxable": { "alias": "checkboxable"; "required": false; }; "headerCheckboxable": { "alias": "headerCheckboxable"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "frozenLeft": { "alias": "frozenLeft"; "required": false; }; "frozenRight": { "alias": "frozenRight"; "required": false; }; "pipe": { "alias": "pipe"; "required": false; }; "isTreeColumn": { "alias": "isTreeColumn"; "required": false; }; "treeLevelIndent": { "alias": "treeLevelIndent"; "required": false; }; "summaryFunc": { "alias": "summaryFunc"; "required": false; }; "summaryTemplate": { "alias": "summaryTemplate"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "_cellTemplateInput": { "alias": "cellTemplate"; "required": false; }; }, {}, ["cellTplDirective", "_cellTemplateQuery"], never, false, never>;
|
|
153
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnComponent, "seam-datatable-column", never, { "name": { "alias": "name"; "required": false; }; "prop": { "alias": "prop"; "required": false; }; "flexGrow": { "alias": "flexGrow"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "width": { "alias": "width"; "required": false; }; "resizeable": { "alias": "resizeable"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "canAutoResize": { "alias": "canAutoResize"; "required": false; }; "comparator": { "alias": "comparator"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "checkboxable": { "alias": "checkboxable"; "required": false; }; "headerCheckboxable": { "alias": "headerCheckboxable"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "frozenLeft": { "alias": "frozenLeft"; "required": false; }; "frozenRight": { "alias": "frozenRight"; "required": false; }; "pipe": { "alias": "pipe"; "required": false; }; "isTreeColumn": { "alias": "isTreeColumn"; "required": false; }; "treeLevelIndent": { "alias": "treeLevelIndent"; "required": false; }; "summaryFunc": { "alias": "summaryFunc"; "required": false; }; "summaryTemplate": { "alias": "summaryTemplate"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "align": { "alias": "align"; "required": false; }; "alignHeader": { "alias": "alignHeader"; "required": false; }; "alignCell": { "alias": "alignCell"; "required": false; }; "_cellTemplateInput": { "alias": "cellTemplate"; "required": false; }; }, {}, ["cellTplDirective", "_cellTemplateQuery"], never, false, never>;
|
|
150
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Check if a column is bound to a property.
|
|
157
|
+
*
|
|
158
|
+
* This is not guaranteed to be 100% accurate in all cases, but Angular seems
|
|
159
|
+
* to now define properties on the instance for all inputs. So, just relying
|
|
160
|
+
* on defined properties determine if bound will not work. The workaround is
|
|
161
|
+
* to track changes in `ngOnChanges` and use that to determine if a property
|
|
162
|
+
* is bound.
|
|
163
|
+
*
|
|
164
|
+
* NOTE: This is not an instance method, because the way we are handling the
|
|
165
|
+
* instance was causing the method to not be available where needed.
|
|
166
|
+
*
|
|
167
|
+
* @param column the column to check
|
|
168
|
+
* @param propName name of an input property
|
|
169
|
+
* @returns true if the property is bound, false otherwise
|
|
170
|
+
*/
|
|
171
|
+
declare function isColumnBoundToProp(column: DatatableColumnComponent, propName: string): boolean;
|
|
151
172
|
|
|
152
173
|
declare class TheSeamDatatableFooterDirective {
|
|
153
174
|
_templateInput: TemplateRef<any> | undefined | null;
|
|
@@ -270,6 +291,12 @@ interface TheSeamDatatableColumnFilterable<T extends TheSeamDatatableColumnFilte
|
|
|
270
291
|
* Additional options for a specific filter type.
|
|
271
292
|
*/
|
|
272
293
|
filterOptions?: T;
|
|
294
|
+
/**
|
|
295
|
+
* Whether the filter is active or not.
|
|
296
|
+
*
|
|
297
|
+
* This is set internally, it will likely not work if set from outside.
|
|
298
|
+
*/
|
|
299
|
+
filterActive?: boolean;
|
|
273
300
|
}
|
|
274
301
|
interface TheSeamDatatableColumnFilterableConfig {
|
|
275
302
|
/**
|
|
@@ -285,7 +312,7 @@ interface TheSeamDatatableColumnFilterableConfig {
|
|
|
285
312
|
*/
|
|
286
313
|
filterType?: string;
|
|
287
314
|
}
|
|
288
|
-
type TheSeamDatatableColumn<T extends TableCellTypeName = any, C extends TableCellTypeConfig<T> = any, F extends TheSeamDatatableColumnFilterableConfig = any> = TableColumn & TableCellTypeColumn<T, C> & TableCellTypeExportProps & TheSeamDatatableColumnHidable & TheSeamDatatableColumnFilterable<F
|
|
315
|
+
type TheSeamDatatableColumn<T extends TableCellTypeName = any, C extends TableCellTypeConfig<T> = any, F extends TheSeamDatatableColumnFilterableConfig = any> = TableColumn & TableCellTypeColumn<T, C> & TableCellTypeExportProps & TheSeamDatatableColumnHidable & TheSeamDatatableColumnFilterable<F> & TheSeamTableCellTypeColumnAlign;
|
|
289
316
|
|
|
290
317
|
interface TheSeamDatatableAccessor {
|
|
291
318
|
columns: TheSeamDatatableColumn[];
|
|
@@ -399,7 +426,7 @@ declare const ActionItemColumnPosition: readonly ["frozenLeft", "frozenRight", "
|
|
|
399
426
|
*
|
|
400
427
|
* If `staticRight`, action item column will be the last static column on the right side of the table.
|
|
401
428
|
*/
|
|
402
|
-
type ActionItemColumnPosition = typeof ActionItemColumnPosition[number];
|
|
429
|
+
type ActionItemColumnPosition = (typeof ActionItemColumnPosition)[number];
|
|
403
430
|
|
|
404
431
|
type InternalColumnsGetter = () => TableColumn[];
|
|
405
432
|
declare class ColumnsManagerService {
|
|
@@ -440,6 +467,7 @@ declare class ColumnsManagerService {
|
|
|
440
467
|
private _getInternalColumns;
|
|
441
468
|
private _getInternalColumn;
|
|
442
469
|
private _findColumnByProp;
|
|
470
|
+
private _getTemplateColumnByProp;
|
|
443
471
|
private _getDifMapForColumnsType;
|
|
444
472
|
private _getColumnDiffer;
|
|
445
473
|
private _getColDif;
|
|
@@ -852,8 +880,8 @@ declare class DatatableComponent<TRow = any> implements OnInit, OnDestroy, TheSe
|
|
|
852
880
|
_columnFilterIcon: SeamIcon | undefined | null;
|
|
853
881
|
get columnFilterUpdateMethod(): TheSeamDatatableColumnFilterUpdateMethod | undefined | null;
|
|
854
882
|
set columnFilterUpdateMethod(value: TheSeamDatatableColumnFilterUpdateMethod | undefined | null);
|
|
855
|
-
private readonly _columnFilterUpdateMethodDefault;
|
|
856
883
|
_columnFilterUpdateMethod: TheSeamDatatableColumnFilterUpdateMethod | undefined | null;
|
|
884
|
+
private readonly _columnFilterUpdateMethodDefault;
|
|
857
885
|
get columnFilterUpdateDebounce(): number | undefined | null;
|
|
858
886
|
set columnFilterUpdateDebounce(value: number | undefined | null);
|
|
859
887
|
private readonly _columnFilterUpdateDebounceDefault;
|
|
@@ -953,7 +981,7 @@ declare class DatatableColumnFilterMenuComponent implements OnInit {
|
|
|
953
981
|
submit(): void;
|
|
954
982
|
clearFilter(): void;
|
|
955
983
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnFilterMenuComponent, never>;
|
|
956
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnFilterMenuComponent, "seam-datatable-column-filter-menu", never, { "column": { "alias": "column"; "required": false; }; "updateMethod": { "alias": "updateMethod"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; }, { "closePopover": "closePopover"; }, never, never,
|
|
984
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnFilterMenuComponent, "seam-datatable-column-filter-menu", never, { "column": { "alias": "column"; "required": false; }; "updateMethod": { "alias": "updateMethod"; "required": false; }; "debounce": { "alias": "debounce"; "required": false; }; }, { "closePopover": "closePopover"; }, never, never, true, never>;
|
|
957
985
|
}
|
|
958
986
|
|
|
959
987
|
declare const THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME: "search-date";
|
|
@@ -961,7 +989,7 @@ declare const THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES: readonly ["lt", "lt
|
|
|
961
989
|
declare const THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES: string[];
|
|
962
990
|
declare const THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES: string[];
|
|
963
991
|
declare const THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES: string[];
|
|
964
|
-
type TheSeamColumnsDataFilterDateSearchType = typeof THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES[number];
|
|
992
|
+
type TheSeamColumnsDataFilterDateSearchType = (typeof THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES)[number];
|
|
965
993
|
type TheSeamColumnsDataFilterDateSearchForm = FormGroup<{
|
|
966
994
|
searchType: FormControl<TheSeamColumnsDataFilterDateSearchType | null>;
|
|
967
995
|
searchText: FormControl<string | null>;
|
|
@@ -993,32 +1021,32 @@ declare const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES: readonly ["gt",
|
|
|
993
1021
|
declare const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES: string[];
|
|
994
1022
|
declare const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES: string[];
|
|
995
1023
|
declare const THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES: string[];
|
|
996
|
-
type TheSeamColumnsDataFilterNumericSearchType = typeof THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES[number];
|
|
1024
|
+
type TheSeamColumnsDataFilterNumericSearchType = (typeof THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES)[number];
|
|
997
1025
|
type TheSeamColumnsDataFilterNumericSearchForm = FormGroup<{
|
|
998
1026
|
searchType: FormControl<TheSeamColumnsDataFilterNumericSearchType | null>;
|
|
999
1027
|
searchText: FormControl<string | null>;
|
|
1000
1028
|
fromText: FormControl<string | null>;
|
|
1001
1029
|
toText: FormControl<string | null>;
|
|
1002
1030
|
}>;
|
|
1003
|
-
|
|
1031
|
+
interface TheSeamColumnsDataFilterNumericSearchFormState {
|
|
1004
1032
|
searchType: TheSeamColumnsDataFilterNumericSearchType | null;
|
|
1005
1033
|
searchText: string | null;
|
|
1006
1034
|
fromText: string | null;
|
|
1007
1035
|
toText: string | null;
|
|
1008
|
-
}
|
|
1036
|
+
}
|
|
1009
1037
|
declare const THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME: "search-text";
|
|
1010
1038
|
declare const THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES: readonly ["contains", "ncontains", "eq", "neq", "blank", "not-blank"];
|
|
1011
1039
|
declare const THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES: string[];
|
|
1012
1040
|
declare const THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES: string[];
|
|
1013
|
-
type TheSeamColumnsDataFilterTextSearchType = typeof THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES[number];
|
|
1041
|
+
type TheSeamColumnsDataFilterTextSearchType = (typeof THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES)[number];
|
|
1014
1042
|
type TheSeamColumnsDataFilterTextSearchForm = FormGroup<{
|
|
1015
1043
|
searchType: FormControl<TheSeamColumnsDataFilterTextSearchType | null>;
|
|
1016
1044
|
searchText: FormControl<string | null>;
|
|
1017
1045
|
}>;
|
|
1018
|
-
|
|
1046
|
+
interface TheSeamColumnsDataFilterTextSearchFormState {
|
|
1019
1047
|
searchType: TheSeamColumnsDataFilterTextSearchType | null;
|
|
1020
1048
|
searchText: string | null;
|
|
1021
|
-
}
|
|
1049
|
+
}
|
|
1022
1050
|
|
|
1023
1051
|
declare class DatatableColumnFilterSearchDateComponent implements OnInit {
|
|
1024
1052
|
searchTypes: {
|
|
@@ -1032,7 +1060,7 @@ declare class DatatableColumnFilterSearchDateComponent implements OnInit {
|
|
|
1032
1060
|
showRangeInputs$: Observable<boolean> | undefined;
|
|
1033
1061
|
ngOnInit(): void;
|
|
1034
1062
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnFilterSearchDateComponent, never>;
|
|
1035
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnFilterSearchDateComponent, "seam-datatable-column-filter-search-date", never, { "options": { "alias": "options"; "required": false; }; "filterForm": { "alias": "filterForm"; "required": false; }; }, {}, never, never,
|
|
1063
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnFilterSearchDateComponent, "seam-datatable-column-filter-search-date", never, { "options": { "alias": "options"; "required": false; }; "filterForm": { "alias": "filterForm"; "required": false; }; }, {}, never, never, true, never>;
|
|
1036
1064
|
}
|
|
1037
1065
|
|
|
1038
1066
|
declare class DatatableColumnFilterSearchNumericComponent implements OnInit {
|
|
@@ -1045,7 +1073,7 @@ declare class DatatableColumnFilterSearchNumericComponent implements OnInit {
|
|
|
1045
1073
|
showRangeInputs$: Observable<boolean> | undefined;
|
|
1046
1074
|
ngOnInit(): void;
|
|
1047
1075
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnFilterSearchNumericComponent, never>;
|
|
1048
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnFilterSearchNumericComponent, "seam-datatable-column-filter-search-numeric", never, { "filterForm": { "alias": "filterForm"; "required": false; }; }, {}, never, never,
|
|
1076
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnFilterSearchNumericComponent, "seam-datatable-column-filter-search-numeric", never, { "filterForm": { "alias": "filterForm"; "required": false; }; }, {}, never, never, true, never>;
|
|
1049
1077
|
}
|
|
1050
1078
|
|
|
1051
1079
|
declare class DatatableColumnFilterSearchTextComponent implements OnInit {
|
|
@@ -1057,7 +1085,7 @@ declare class DatatableColumnFilterSearchTextComponent implements OnInit {
|
|
|
1057
1085
|
showTextbox$: Observable<boolean> | undefined;
|
|
1058
1086
|
ngOnInit(): void;
|
|
1059
1087
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnFilterSearchTextComponent, never>;
|
|
1060
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnFilterSearchTextComponent, "seam-datatable-column-filter-search-text", never, { "filterForm": { "alias": "filterForm"; "required": false; }; }, {}, never, never,
|
|
1088
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnFilterSearchTextComponent, "seam-datatable-column-filter-search-text", never, { "filterForm": { "alias": "filterForm"; "required": false; }; }, {}, never, never, true, never>;
|
|
1061
1089
|
}
|
|
1062
1090
|
|
|
1063
1091
|
declare class DatatableColumnPreferencesComponent {
|
|
@@ -1329,11 +1357,21 @@ declare function withStoredColumnInfo(columns: TheSeamDatatableColumn[], prefere
|
|
|
1329
1357
|
|
|
1330
1358
|
declare function mapColumnsAlterationsStates(states: ColumnsAlterationState[]): ColumnsAlteration[];
|
|
1331
1359
|
|
|
1360
|
+
declare class DatatableColumnHeaderComponent {
|
|
1361
|
+
column: i0.InputSignal<TheSeamDatatableColumn>;
|
|
1362
|
+
sortFn: i0.InputSignal<() => void>;
|
|
1363
|
+
columnFilterIcon: i0.InputSignal<SeamIcon | null | undefined>;
|
|
1364
|
+
columnFilterUpdateMethod: i0.InputSignal<TheSeamDatatableColumnFilterUpdateMethod | null | undefined>;
|
|
1365
|
+
columnFilterUpdateDebounce: i0.InputSignal<number | null | undefined>;
|
|
1366
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DatatableColumnHeaderComponent, never>;
|
|
1367
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DatatableColumnHeaderComponent, "seam-datatable-column-header", never, { "column": { "alias": "column"; "required": true; "isSignal": true; }; "sortFn": { "alias": "sortFn"; "required": true; "isSignal": true; }; "columnFilterIcon": { "alias": "columnFilterIcon"; "required": false; "isSignal": true; }; "columnFilterUpdateMethod": { "alias": "columnFilterUpdateMethod"; "required": false; "isSignal": true; }; "columnFilterUpdateDebounce": { "alias": "columnFilterUpdateDebounce"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1332
1370
|
declare class TheSeamDatatableModule {
|
|
1333
1371
|
static ɵfac: i0.ɵɵFactoryDeclaration<TheSeamDatatableModule, never>;
|
|
1334
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<TheSeamDatatableModule, [typeof DatatableComponent, typeof DatatableCellTplDirective, typeof DatatableColumnComponent, typeof DatatableActionMenuComponent, typeof DatatableActionMenuToggleDirective, typeof DatatableActionMenuItemComponent, typeof DatatableMenuBarComponent, typeof DatatableFilterDirective, typeof DatatableRowActionItemDirective, typeof DatatableExportButtonComponent, typeof TheSeamDatatableRowDetailDirective, typeof DatatableRowDetailTplDirective, typeof TheSeamDatatableFooterDirective, typeof DatatableFooterTplDirective, typeof DatatableColumnPreferencesComponent, typeof DatatableColumnPreferencesButtonComponent, typeof DatatableActionMenuItemDirective, typeof DatatableMenuBarRowComponent, typeof DatatableMenuBarColumnLeftComponent, typeof DatatableMenuBarColumnCenterComponent, typeof DatatableMenuBarColumnRightComponent, typeof DatatableMenuBarTextComponent, typeof
|
|
1372
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<TheSeamDatatableModule, [typeof DatatableComponent, typeof DatatableCellTplDirective, typeof DatatableColumnComponent, typeof DatatableActionMenuComponent, typeof DatatableActionMenuToggleDirective, typeof DatatableActionMenuItemComponent, typeof DatatableMenuBarComponent, typeof DatatableFilterDirective, typeof DatatableRowActionItemDirective, typeof DatatableExportButtonComponent, typeof TheSeamDatatableRowDetailDirective, typeof DatatableRowDetailTplDirective, typeof TheSeamDatatableFooterDirective, typeof DatatableFooterTplDirective, typeof DatatableColumnPreferencesComponent, typeof DatatableColumnPreferencesButtonComponent, typeof DatatableActionMenuItemDirective, typeof DatatableMenuBarRowComponent, typeof DatatableMenuBarColumnLeftComponent, typeof DatatableMenuBarColumnCenterComponent, typeof DatatableMenuBarColumnRightComponent, typeof DatatableMenuBarTextComponent, typeof DatatableColumnFilterTplDirective, typeof TheSeamDatatableColumnFilterDirective], [typeof i25.CommonModule, typeof i26.NgxDatatableModule, typeof i27.FontAwesomeModule, typeof i28.OverlayModule, typeof i29.A11yModule, typeof i30.TheSeamSharedModule, typeof i31.RouterModule, typeof i32.TheSeamMenuModule, typeof i33.TheSeamButtonsModule, typeof i34.TheSeamIconModule, typeof i35.ToastrModule, typeof i36.TheSeamLoadingModule, typeof i37.PortalModule, typeof i38.TheSeamConfirmDialogModule, typeof i39.TheSeamPopoverModule, typeof i40.TheSeamCheckboxComponent, typeof i41.TheSeamFormFieldModule, typeof i42.ReactiveFormsModule, typeof i43.TheSeamTableCellTypeModule, typeof _theseam_ui_common_data_filters.TheSeamDataFiltersModule, typeof i45.NgSelectModule, typeof i46.TheSeamToggleGroupModule, typeof DatatableColumnHeaderComponent, typeof DatatableColumnFilterMenuComponent, typeof DatatableColumnFilterSearchTextComponent, typeof DatatableColumnFilterSearchNumericComponent, typeof DatatableColumnFilterSearchDateComponent], [typeof DatatableComponent, typeof DatatableCellTplDirective, typeof DatatableColumnComponent, typeof DatatableActionMenuComponent, typeof DatatableActionMenuItemComponent, typeof DatatableMenuBarComponent, typeof DatatableFilterDirective, typeof DatatableRowActionItemDirective, typeof DatatableExportButtonComponent, typeof TheSeamDatatableRowDetailDirective, typeof DatatableRowDetailTplDirective, typeof TheSeamDatatableFooterDirective, typeof DatatableFooterTplDirective, typeof DatatableColumnPreferencesComponent, typeof DatatableColumnPreferencesButtonComponent, typeof DatatableActionMenuItemDirective, typeof DatatableMenuBarRowComponent, typeof DatatableMenuBarColumnLeftComponent, typeof DatatableMenuBarColumnCenterComponent, typeof DatatableMenuBarColumnRightComponent, typeof DatatableMenuBarTextComponent, typeof DatatableColumnFilterMenuComponent, typeof DatatableColumnFilterSearchTextComponent, typeof DatatableColumnFilterSearchNumericComponent, typeof DatatableColumnFilterSearchDateComponent, typeof DatatableColumnFilterTplDirective, typeof TheSeamDatatableColumnFilterDirective]>;
|
|
1335
1373
|
static ɵinj: i0.ɵɵInjectorDeclaration<TheSeamDatatableModule>;
|
|
1336
1374
|
}
|
|
1337
1375
|
|
|
1338
|
-
export { CURRENT_DATATABLE_PREFERENCES_VERSION, ColumnsAlteration, ColumnsDataFilter, ColumnsFiltersService, DatatableActionMenuComponent, DatatableActionMenuItemComponent, DatatableActionMenuItemDirective, DatatableActionMenuToggleDirective, DatatableCellTplDirective, DatatableColumnChangesService, DatatableColumnComponent, DatatableColumnFilterMenuComponent, DatatableColumnFilterSearchDateComponent, DatatableColumnFilterSearchNumericComponent, DatatableColumnFilterSearchTextComponent, DatatableColumnFilterTplDirective, DatatableColumnPreferencesButtonComponent, DatatableColumnPreferencesComponent, DatatableComponent, DatatableDataSource, DatatableExportButtonComponent, DatatableFilterDirective, DatatableFooterTplDirective, DatatableGqlDataSource, DatatableMenuBarColumnCenterComponent, DatatableMenuBarColumnLeftComponent, DatatableMenuBarColumnRightComponent, DatatableMenuBarComponent, DatatableMenuBarRowComponent, DatatableMenuBarTextComponent, DatatablePreferencesService, DatatableRowActionItemDirective, DatatableRowDetailTplDirective, EMPTY_DATATABLE_PREFERENCES, SearchDateColumnsDataFilter, SearchNumericColumnsDataFilter, SearchTextColumnsDataFilter, THESEAM_COLUMNS_DATA_FILTER, THESEAM_COLUMNS_DATA_FILTERS_DEFAULT, THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES, THESEAM_DATATABLE, THESEAM_DATATABLE_CONFIG, THESEAM_DATATABLE_PREFERENCES_ACCESSOR, THESEAM_MENUBAR_ITEM_DATA, TheSeamDatatableColumnFilterDirective, TheSeamDatatableFooterDirective, TheSeamDatatableModule, TheSeamDatatableRowDetailDirective, TheSeamDatatableScrollbarHelperService, _THESEAM_DATATABLE, _THESEAM_DATATABLE_ACCESSOR, _THESEAM_DATA_FILTER_CONTAINER, getFormattedDateForComparison, mapColumnsAlterationsStates, withStoredColumnInfo };
|
|
1376
|
+
export { CURRENT_DATATABLE_PREFERENCES_VERSION, ColumnsAlteration, ColumnsDataFilter, ColumnsFiltersService, DatatableActionMenuComponent, DatatableActionMenuItemComponent, DatatableActionMenuItemDirective, DatatableActionMenuToggleDirective, DatatableCellTplDirective, DatatableColumnChangesService, DatatableColumnComponent, DatatableColumnFilterMenuComponent, DatatableColumnFilterSearchDateComponent, DatatableColumnFilterSearchNumericComponent, DatatableColumnFilterSearchTextComponent, DatatableColumnFilterTplDirective, DatatableColumnPreferencesButtonComponent, DatatableColumnPreferencesComponent, DatatableComponent, DatatableDataSource, DatatableExportButtonComponent, DatatableFilterDirective, DatatableFooterTplDirective, DatatableGqlDataSource, DatatableMenuBarColumnCenterComponent, DatatableMenuBarColumnLeftComponent, DatatableMenuBarColumnRightComponent, DatatableMenuBarComponent, DatatableMenuBarRowComponent, DatatableMenuBarTextComponent, DatatablePreferencesService, DatatableRowActionItemDirective, DatatableRowDetailTplDirective, EMPTY_DATATABLE_PREFERENCES, SearchDateColumnsDataFilter, SearchNumericColumnsDataFilter, SearchTextColumnsDataFilter, THESEAM_COLUMNS_DATA_FILTER, THESEAM_COLUMNS_DATA_FILTERS_DEFAULT, THESEAM_COLUMNS_DATA_FILTER_DATE_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_DATE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_DATE_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_RANGE_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_NUMERIC_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_NAME, THESEAM_COLUMNS_DATA_FILTER_TEXT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_SELECT_SEARCH_TYPES, THESEAM_COLUMNS_DATA_FILTER_TEXT_TEXT_SEARCH_TYPES, THESEAM_DATATABLE, THESEAM_DATATABLE_CONFIG, THESEAM_DATATABLE_PREFERENCES_ACCESSOR, THESEAM_MENUBAR_ITEM_DATA, TheSeamDatatableColumnFilterDirective, TheSeamDatatableFooterDirective, TheSeamDatatableModule, TheSeamDatatableRowDetailDirective, TheSeamDatatableScrollbarHelperService, _THESEAM_DATATABLE, _THESEAM_DATATABLE_ACCESSOR, _THESEAM_DATA_FILTER_CONTAINER, getFormattedDateForComparison, isColumnBoundToProp, mapColumnsAlterationsStates, withStoredColumnInfo };
|
|
1339
1377
|
export type { ColumnsAlterationState, ColumnsDataFilterState, ColumnsDataFilterStateState, ICellContext, IDatatableExportButtonData, MenubarItemData, SortEvent, SortItem, TheSeamColumnsDataFilterDateSearchDateType, TheSeamColumnsDataFilterDateSearchForm, TheSeamColumnsDataFilterDateSearchFormState, TheSeamColumnsDataFilterDateSearchOptions, TheSeamColumnsDataFilterDateSearchType, TheSeamColumnsDataFilterNumericSearchForm, TheSeamColumnsDataFilterNumericSearchFormState, TheSeamColumnsDataFilterNumericSearchType, TheSeamColumnsDataFilterTextSearchForm, TheSeamColumnsDataFilterTextSearchFormState, TheSeamColumnsDataFilterTextSearchType, TheSeamDatatableAccessor, TheSeamDatatableColumn, TheSeamDatatableColumnFilterUpdateMethod, TheSeamDatatableColumnFilterable, TheSeamDatatableColumnFilterableConfig, TheSeamDatatableColumnHidable, TheSeamDatatableConfig, TheSeamDatatableDateColumnFilterableConfig, TheSeamDatatableMessages, TheSeamDatatablePreferences, TheSeamDatatablePreferencesAccessor, TheSeamDatatablePreferencesColumn, TheSeamDatatablePreferences_v1, TheSeamDatatablePreferences_v2, TheSeamDatatableRow, TheSeamPageInfo };
|
package/dynamic/index.d.ts
CHANGED
|
@@ -177,11 +177,11 @@ type ApiRequestMethodHeader = string | {
|
|
|
177
177
|
[name: string]: string | string[];
|
|
178
178
|
};
|
|
179
179
|
interface ApiRequestMethodHeaders {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
180
|
+
GET?: ApiRequestMethodHeader;
|
|
181
|
+
POST?: ApiRequestMethodHeader;
|
|
182
|
+
PUT?: ApiRequestMethodHeader;
|
|
183
|
+
PATCH?: ApiRequestMethodHeader;
|
|
184
|
+
DELETE?: ApiRequestMethodHeader;
|
|
185
185
|
}
|
|
186
186
|
declare const VALID_REQUEST_METHODS: (keyof ApiRequestMethodHeaders)[];
|
|
187
187
|
declare function isValidRequestMethod(method: string): method is keyof ApiRequestMethodHeaders;
|
|
@@ -48,30 +48,31 @@ class AssetReaderHelperService {
|
|
|
48
48
|
// }
|
|
49
49
|
return of(false);
|
|
50
50
|
}
|
|
51
|
-
const data$ = this._assetReader
|
|
52
|
-
.
|
|
51
|
+
const data$ = this._assetReader
|
|
52
|
+
.getAssetBlobFromUrl(url, detectMimeFromContent)
|
|
53
|
+
.pipe(switchMap((v) => {
|
|
53
54
|
const filename = v instanceof Blob ? undefined : v.filename;
|
|
54
55
|
const blob = v instanceof Blob ? v : v.blob;
|
|
55
|
-
return from(readFileAsync(blob))
|
|
56
|
-
.pipe(switchMap(_buf => _buf
|
|
56
|
+
return from(readFileAsync(blob)).pipe(switchMap((_buf) => _buf
|
|
57
57
|
? from(fileDataFromBuffer(_buf))
|
|
58
|
-
: throwError('Unable to read file.')), map(data => ({ ...data, blob, filename })));
|
|
58
|
+
: throwError('Unable to read file.')), map((data) => ({ ...data, blob, filename })));
|
|
59
59
|
}));
|
|
60
|
-
const open$ = data
|
|
61
|
-
.pipe(tap(data => {
|
|
60
|
+
const open$ = data$.pipe(tap((data) => {
|
|
62
61
|
if (!data || !data.blob) {
|
|
63
62
|
throw new Error('File unsuccessfully read.');
|
|
64
63
|
}
|
|
65
|
-
const filename = data.filename
|
|
64
|
+
const filename = data.filename
|
|
65
|
+
? data.filename
|
|
66
|
+
: `Untitled${data.ext ? `.${data.ext}` : ''}`;
|
|
66
67
|
if (download) {
|
|
67
68
|
FileSaver.saveAs(data.blob, filename);
|
|
68
69
|
}
|
|
69
70
|
else {
|
|
70
71
|
openBlob(data.blob, target, filename);
|
|
71
72
|
}
|
|
72
|
-
}), catchError(err => {
|
|
73
|
-
// eslint-disable-next-line no-console
|
|
73
|
+
}), catchError((err) => {
|
|
74
74
|
if (isDevMode()) {
|
|
75
|
+
// eslint-disable-next-line no-console
|
|
75
76
|
console.error('err', err);
|
|
76
77
|
}
|
|
77
78
|
return of(false);
|
|
@@ -80,13 +81,13 @@ class AssetReaderHelperService {
|
|
|
80
81
|
}
|
|
81
82
|
return of(false);
|
|
82
83
|
}
|
|
83
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
84
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
84
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: AssetReaderHelperService, deps: [{ token: EncryptedAssetReader, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
85
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: AssetReaderHelperService, providedIn: 'root' });
|
|
85
86
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: AssetReaderHelperService, decorators: [{
|
|
87
88
|
type: Injectable,
|
|
88
89
|
args: [{
|
|
89
|
-
providedIn: 'root'
|
|
90
|
+
providedIn: 'root',
|
|
90
91
|
}]
|
|
91
92
|
}], ctorParameters: () => [{ type: EncryptedAssetReader, decorators: [{
|
|
92
93
|
type: Optional
|
|
@@ -107,7 +108,9 @@ class EncryptedAssetLinkDirective {
|
|
|
107
108
|
seamDetectMimeFromContent = true;
|
|
108
109
|
seamDownloadAsset = false;
|
|
109
110
|
// TODO: Find out why I need this for buttons.
|
|
110
|
-
get _attrHref() {
|
|
111
|
+
get _attrHref() {
|
|
112
|
+
return this.seamEncryptedAssetLink;
|
|
113
|
+
}
|
|
111
114
|
_onClick(event) {
|
|
112
115
|
if (!this.seamEncryptedAssetLink) {
|
|
113
116
|
return;
|
|
@@ -134,8 +137,8 @@ class EncryptedAssetLinkDirective {
|
|
|
134
137
|
_getTarget() {
|
|
135
138
|
return this._elementRef.nativeElement.target;
|
|
136
139
|
}
|
|
137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
138
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
140
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: EncryptedAssetLinkDirective, deps: [{ token: i0.ElementRef }, { token: AssetReaderHelperService }, { token: i2.TheSeamLoadingOverlayService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
141
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.7", type: EncryptedAssetLinkDirective, isStandalone: false, selector: "[seamEncryptedAssetLink]", inputs: { seamEncryptedAssetLink: "seamEncryptedAssetLink", seamShowLoadingOverlay: "seamShowLoadingOverlay", seamDetectMimeFromContent: "seamDetectMimeFromContent", seamDownloadAsset: "seamDownloadAsset" }, host: { listeners: { "click": "_onClick($event)" }, properties: { "attr.href": "this._attrHref" } }, ngImport: i0 });
|
|
139
142
|
}
|
|
140
143
|
__decorate([
|
|
141
144
|
InputBoolean()
|
|
@@ -146,11 +149,11 @@ __decorate([
|
|
|
146
149
|
__decorate([
|
|
147
150
|
InputBoolean()
|
|
148
151
|
], EncryptedAssetLinkDirective.prototype, "seamDownloadAsset", void 0);
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: EncryptedAssetLinkDirective, decorators: [{
|
|
150
153
|
type: Directive,
|
|
151
154
|
args: [{
|
|
152
155
|
selector: '[seamEncryptedAssetLink]',
|
|
153
|
-
standalone: false
|
|
156
|
+
standalone: false,
|
|
154
157
|
}]
|
|
155
158
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: AssetReaderHelperService }, { type: i2.TheSeamLoadingOverlayService }], propDecorators: { seamEncryptedAssetLink: [{
|
|
156
159
|
type: Input
|
|
@@ -169,19 +172,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
169
172
|
}] } });
|
|
170
173
|
|
|
171
174
|
class TheSeamAssetReaderModule {
|
|
172
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
173
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
174
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
175
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamAssetReaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
176
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamAssetReaderModule, declarations: [EncryptedAssetLinkDirective], exports: [EncryptedAssetLinkDirective] });
|
|
177
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamAssetReaderModule });
|
|
175
178
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamAssetReaderModule, decorators: [{
|
|
177
180
|
type: NgModule,
|
|
178
181
|
args: [{
|
|
179
|
-
declarations: [
|
|
180
|
-
|
|
181
|
-
],
|
|
182
|
-
exports: [
|
|
183
|
-
EncryptedAssetLinkDirective
|
|
184
|
-
]
|
|
182
|
+
declarations: [EncryptedAssetLinkDirective],
|
|
183
|
+
exports: [EncryptedAssetLinkDirective],
|
|
185
184
|
}]
|
|
186
185
|
}] });
|
|
187
186
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-asset-reader.mjs","sources":["../../../projects/ui-common/asset-reader/encrypted-asset-reader.ts","../../../projects/ui-common/asset-reader/asset-reader-helper.service.ts","../../../projects/ui-common/asset-reader/encrypted-asset-link.directive.ts","../../../projects/ui-common/asset-reader/asset-reader.module.ts","../../../projects/ui-common/asset-reader/theseam-ui-common-asset-reader.ts"],"sourcesContent":["import { Observable } from 'rxjs'\n\n/**\n *\n * THIS SHOULD BE IMPLEMENTED AND PROVIDED BY APPLICATION USING 'ui-common'.\n *\n * Example:\n * ```\n * @NgModule({\n * imports: [ ... ],\n * declarations: [ ... ]\n * providers: [\n * ...,\n * { provide: IEncryptedAssetReaderService useClass: YourAssetService }\n * ]\n * }\n * ```\n *\n */\n\nexport abstract class EncryptedAssetReader {\n\n abstract getAssetBlobFromUrl(url: string, detectMimeFromContent: boolean): Observable<Blob | { blob: Blob, filename?: string }>\n\n}\n","import { Injectable, isDevMode, Optional } from '@angular/core'\nimport { from, Observable, of, throwError } from 'rxjs'\nimport { catchError, map, mapTo, switchMap, tap } from 'rxjs/operators'\n\nimport FileSaver from 'file-saver'\n\nimport { fileDataFromBuffer, openBlob, readFileAsync } from '@theseam/ui-common/utils'\n\nimport { EncryptedAssetReader } from './encrypted-asset-reader'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetReaderHelperService {\n\n constructor(\n @Optional() private _assetReader?: EncryptedAssetReader\n ) {\n if (isDevMode() && !this._assetReader) {\n // eslint-disable-next-line no-console\n console.warn(`[EncryptedAssetLinkDirective] Unable to get encrypted files unless an EncryptedAssetReader is provided.`)\n }\n }\n\n public openLink(\n url: string,\n detectMimeFromContent: boolean = true,\n download: boolean = true,\n target?: string\n ): Observable<boolean> {\n if (!(url === undefined || url === null)) {\n if (!this._assetReader) {\n // Fallback\n const win = window.open(url, target)\n // TODO: Consider if always setting opener to null is to restrictive\n // if (win && target && target.toLowerCase() === '_blank') {\n // win.opener = null\n // }\n return of(false)\n }\n\n const data$ = this._assetReader.getAssetBlobFromUrl(url, detectMimeFromContent)\n .pipe(\n switchMap(v => {\n const filename: string | undefined = v instanceof Blob ? undefined : v.filename\n const blob: Blob = v instanceof Blob ? v : v.blob\n return from(readFileAsync(blob))\n .pipe(\n switchMap(_buf => _buf\n ? from(fileDataFromBuffer(_buf))\n : throwError('Unable to read file.')\n ),\n map(data => ({ ...data, blob, filename }))\n )\n })\n )\n\n const open$ = data$\n .pipe(\n tap(data => {\n if (!data || !data.blob) { throw new Error('File unsuccessfully read.') }\n const filename = data.filename ? data.filename : `Untitled${data.ext ? `.${data.ext}` : ''}`\n if (download) {\n FileSaver.saveAs(data.blob, filename)\n } else {\n openBlob(data.blob, target, filename)\n }\n }),\n catchError(err => {\n // eslint-disable-next-line no-console\n if (isDevMode()) { console.error('err', err) }\n return of(false)\n }),\n mapTo(true)\n )\n\n return open$\n }\n\n return of(false)\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Directive, ElementRef, HostBinding, HostListener, Input } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { TheSeamLoadingOverlayService } from '@theseam/ui-common/loading'\n\nimport { AssetReaderHelperService } from './asset-reader-helper.service'\n\n// TODO: Add a dev warning or handle both `seamEncryptedAssetLink` and `attr.href` being set on a single element.\n\n// TODO: This can easily be used for non-encrypted assets, because the provided\n// reader can do whatever it wants. So, consider renaming to 'seamAssetLink'.\n\n@Directive({\n selector: '[seamEncryptedAssetLink]',\n standalone: false\n})\nexport class EncryptedAssetLinkDirective {\n static ngAcceptInputType_seamShowLoadingOverlay: BooleanInput\n static ngAcceptInputType_seamDetectMimeFromContent: BooleanInput\n static ngAcceptInputType_seamDownloadAsset: BooleanInput\n\n @Input() seamEncryptedAssetLink: string | undefined | null\n @Input() @InputBoolean() seamShowLoadingOverlay = true\n @Input() @InputBoolean() seamDetectMimeFromContent = true\n @Input() @InputBoolean() seamDownloadAsset = false\n\n // TODO: Find out why I need this for buttons.\n @HostBinding('attr.href') get _attrHref() { return this.seamEncryptedAssetLink }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: MouseEvent) {\n if (!this.seamEncryptedAssetLink) { return }\n\n let open$ = this._assetReaderHelper.openLink(\n this.seamEncryptedAssetLink,\n this.seamDetectMimeFromContent,\n this.seamDownloadAsset,\n this._isAnchor() && this._hasTarget() ? this._getTarget() : undefined\n )\n if (this.seamShowLoadingOverlay) {\n open$ = this._loading.while(open$)\n }\n open$.subscribe()\n }\n\n constructor(\n private _elementRef: ElementRef,\n private _assetReaderHelper: AssetReaderHelperService,\n private _loading: TheSeamLoadingOverlayService\n ) { }\n\n /** Determines if the component host is an anchor. */\n protected _isAnchor(): boolean {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n protected _hasTarget(): boolean {\n const elem = this._elementRef.nativeElement as HTMLAnchorElement\n return !(elem.target === undefined || elem.target === null)\n }\n\n protected _getTarget(): string {\n return (this._elementRef.nativeElement as HTMLAnchorElement).target\n }\n\n}\n","import { NgModule } from '@angular/core'\n\nimport { EncryptedAssetLinkDirective } from './encrypted-asset-link.directive'\n\n@NgModule({\n declarations: [\n EncryptedAssetLinkDirective\n ],\n exports: [\n EncryptedAssetLinkDirective\n ]\n})\nexport class TheSeamAssetReaderModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EncryptedAssetReader","i1.AssetReaderHelperService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-asset-reader.mjs","sources":["../../../projects/ui-common/asset-reader/encrypted-asset-reader.ts","../../../projects/ui-common/asset-reader/asset-reader-helper.service.ts","../../../projects/ui-common/asset-reader/encrypted-asset-link.directive.ts","../../../projects/ui-common/asset-reader/asset-reader.module.ts","../../../projects/ui-common/asset-reader/theseam-ui-common-asset-reader.ts"],"sourcesContent":["import { Observable } from 'rxjs'\n\n/**\n *\n * THIS SHOULD BE IMPLEMENTED AND PROVIDED BY APPLICATION USING 'ui-common'.\n *\n * Example:\n * ```\n * @NgModule({\n * imports: [ ... ],\n * declarations: [ ... ]\n * providers: [\n * ...,\n * { provide: IEncryptedAssetReaderService useClass: YourAssetService }\n * ]\n * }\n * ```\n *\n */\n\nexport abstract class EncryptedAssetReader {\n abstract getAssetBlobFromUrl(\n url: string,\n detectMimeFromContent: boolean,\n ): Observable<Blob | { blob: Blob; filename?: string }>\n}\n","import { Injectable, isDevMode, Optional } from '@angular/core'\nimport { from, Observable, of, throwError } from 'rxjs'\nimport { catchError, map, mapTo, switchMap, tap } from 'rxjs/operators'\n\nimport FileSaver from 'file-saver'\n\nimport {\n fileDataFromBuffer,\n openBlob,\n readFileAsync,\n} from '@theseam/ui-common/utils'\n\nimport { EncryptedAssetReader } from './encrypted-asset-reader'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AssetReaderHelperService {\n constructor(@Optional() private _assetReader?: EncryptedAssetReader) {\n if (isDevMode() && !this._assetReader) {\n // eslint-disable-next-line no-console\n console.warn(\n `[EncryptedAssetLinkDirective] Unable to get encrypted files unless an EncryptedAssetReader is provided.`,\n )\n }\n }\n\n public openLink(\n url: string,\n detectMimeFromContent: boolean = true,\n download: boolean = true,\n target?: string,\n ): Observable<boolean> {\n if (!(url === undefined || url === null)) {\n if (!this._assetReader) {\n // Fallback\n const win = window.open(url, target)\n // TODO: Consider if always setting opener to null is to restrictive\n // if (win && target && target.toLowerCase() === '_blank') {\n // win.opener = null\n // }\n return of(false)\n }\n\n const data$ = this._assetReader\n .getAssetBlobFromUrl(url, detectMimeFromContent)\n .pipe(\n switchMap((v) => {\n const filename: string | undefined =\n v instanceof Blob ? undefined : v.filename\n const blob: Blob = v instanceof Blob ? v : v.blob\n return from(readFileAsync(blob)).pipe(\n switchMap((_buf) =>\n _buf\n ? from(fileDataFromBuffer(_buf))\n : throwError('Unable to read file.'),\n ),\n map((data) => ({ ...data, blob, filename })),\n )\n }),\n )\n\n const open$ = data$.pipe(\n tap((data) => {\n if (!data || !data.blob) {\n throw new Error('File unsuccessfully read.')\n }\n const filename = data.filename\n ? data.filename\n : `Untitled${data.ext ? `.${data.ext}` : ''}`\n if (download) {\n FileSaver.saveAs(data.blob, filename)\n } else {\n openBlob(data.blob, target, filename)\n }\n }),\n catchError((err) => {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.error('err', err)\n }\n return of(false)\n }),\n mapTo(true),\n )\n\n return open$\n }\n\n return of(false)\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n} from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { TheSeamLoadingOverlayService } from '@theseam/ui-common/loading'\n\nimport { AssetReaderHelperService } from './asset-reader-helper.service'\n\n// TODO: Add a dev warning or handle both `seamEncryptedAssetLink` and `attr.href` being set on a single element.\n\n// TODO: This can easily be used for non-encrypted assets, because the provided\n// reader can do whatever it wants. So, consider renaming to 'seamAssetLink'.\n\n@Directive({\n selector: '[seamEncryptedAssetLink]',\n standalone: false,\n})\nexport class EncryptedAssetLinkDirective {\n static ngAcceptInputType_seamShowLoadingOverlay: BooleanInput\n static ngAcceptInputType_seamDetectMimeFromContent: BooleanInput\n static ngAcceptInputType_seamDownloadAsset: BooleanInput\n\n @Input() seamEncryptedAssetLink: string | undefined | null\n @Input() @InputBoolean() seamShowLoadingOverlay = true\n @Input() @InputBoolean() seamDetectMimeFromContent = true\n @Input() @InputBoolean() seamDownloadAsset = false\n\n // TODO: Find out why I need this for buttons.\n @HostBinding('attr.href') get _attrHref() {\n return this.seamEncryptedAssetLink\n }\n\n @HostListener('click', ['$event'])\n _onClick(event: MouseEvent) {\n if (!this.seamEncryptedAssetLink) {\n return\n }\n\n let open$ = this._assetReaderHelper.openLink(\n this.seamEncryptedAssetLink,\n this.seamDetectMimeFromContent,\n this.seamDownloadAsset,\n this._isAnchor() && this._hasTarget() ? this._getTarget() : undefined,\n )\n if (this.seamShowLoadingOverlay) {\n open$ = this._loading.while(open$)\n }\n open$.subscribe()\n }\n\n constructor(\n private _elementRef: ElementRef,\n private _assetReaderHelper: AssetReaderHelperService,\n private _loading: TheSeamLoadingOverlayService,\n ) {}\n\n /** Determines if the component host is an anchor. */\n protected _isAnchor(): boolean {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a'\n }\n\n protected _hasTarget(): boolean {\n const elem = this._elementRef.nativeElement as HTMLAnchorElement\n return !(elem.target === undefined || elem.target === null)\n }\n\n protected _getTarget(): string {\n return (this._elementRef.nativeElement as HTMLAnchorElement).target\n }\n}\n","import { NgModule } from '@angular/core'\n\nimport { EncryptedAssetLinkDirective } from './encrypted-asset-link.directive'\n\n@NgModule({\n declarations: [EncryptedAssetLinkDirective],\n exports: [EncryptedAssetLinkDirective],\n})\nexport class TheSeamAssetReaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EncryptedAssetReader","i1.AssetReaderHelperService"],"mappings":"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"}
|