@theseam/ui-common 1.0.0-beta.0 → 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.
Files changed (153) hide show
  1. package/breadcrumbs/index.d.ts +1 -2
  2. package/buttons/index.d.ts +20 -13
  3. package/datatable/index.d.ts +77 -39
  4. package/dynamic/index.d.ts +5 -5
  5. package/fesm2022/theseam-ui-common-asset-reader.mjs +28 -29
  6. package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
  7. package/fesm2022/theseam-ui-common-breadcrumbs.mjs +25 -31
  8. package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  9. package/fesm2022/theseam-ui-common-buttons.mjs +108 -66
  10. package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
  11. package/fesm2022/theseam-ui-common-card.mjs +21 -21
  12. package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
  13. package/fesm2022/theseam-ui-common-carousel.mjs +28 -30
  14. package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
  15. package/fesm2022/theseam-ui-common-checkbox.mjs +27 -27
  16. package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
  17. package/fesm2022/theseam-ui-common-confirm-dialog.mjs +23 -27
  18. package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  19. package/fesm2022/theseam-ui-common-core.mjs +31 -11
  20. package/fesm2022/theseam-ui-common-core.mjs.map +1 -1
  21. package/fesm2022/theseam-ui-common-data-exporter.mjs +18 -19
  22. package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
  23. package/fesm2022/theseam-ui-common-data-filters.mjs +80 -64
  24. package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
  25. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +51 -49
  26. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
  27. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +145 -112
  28. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  29. package/fesm2022/theseam-ui-common-datatable.mjs +727 -420
  30. package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
  31. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +12 -14
  32. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  33. package/fesm2022/theseam-ui-common-dynamic.mjs +60 -48
  34. package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
  35. package/fesm2022/theseam-ui-common-footer-bar.mjs +9 -15
  36. package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
  37. package/fesm2022/theseam-ui-common-form-field-error.mjs +60 -43
  38. package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
  39. package/fesm2022/theseam-ui-common-form-field.mjs +129 -76
  40. package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
  41. package/fesm2022/theseam-ui-common-framework.mjs +669 -543
  42. package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
  43. package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
  44. package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
  45. package/fesm2022/theseam-ui-common-graphql.mjs +311 -254
  46. package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
  47. package/fesm2022/theseam-ui-common-icon.mjs +125 -89
  48. package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
  49. package/fesm2022/theseam-ui-common-layout.mjs +18 -26
  50. package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
  51. package/fesm2022/theseam-ui-common-loading.mjs +19 -28
  52. package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
  53. package/fesm2022/theseam-ui-common-menu.mjs +124 -95
  54. package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
  55. package/fesm2022/theseam-ui-common-modal.mjs +178 -129
  56. package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
  57. package/fesm2022/theseam-ui-common-models.mjs +3 -3
  58. package/fesm2022/theseam-ui-common-models.mjs.map +1 -1
  59. package/fesm2022/theseam-ui-common-navigation-reload.mjs +13 -11
  60. package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
  61. package/fesm2022/theseam-ui-common-popover.mjs +81 -88
  62. package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
  63. package/fesm2022/theseam-ui-common-progress.mjs +15 -19
  64. package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
  65. package/fesm2022/theseam-ui-common-rich-text.mjs +65 -52
  66. package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
  67. package/fesm2022/theseam-ui-common-scrollbar.mjs +12 -9
  68. package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
  69. package/fesm2022/theseam-ui-common-services.mjs +41 -26
  70. package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
  71. package/fesm2022/theseam-ui-common-shared.mjs +149 -159
  72. package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
  73. package/fesm2022/theseam-ui-common-storage.mjs +9 -6
  74. package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
  75. package/fesm2022/theseam-ui-common-story-helpers.mjs +148 -86
  76. package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
  77. package/fesm2022/theseam-ui-common-tabbed.mjs +43 -39
  78. package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
  79. package/fesm2022/theseam-ui-common-table-cell-type.mjs +63 -39
  80. package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
  81. package/fesm2022/theseam-ui-common-table-cell-types.mjs +182 -144
  82. package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
  83. package/fesm2022/theseam-ui-common-table.mjs +62 -41
  84. package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
  85. package/fesm2022/theseam-ui-common-tel-input.mjs +98 -63
  86. package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
  87. package/fesm2022/theseam-ui-common-testing.mjs +13 -10
  88. package/fesm2022/theseam-ui-common-testing.mjs.map +1 -1
  89. package/fesm2022/theseam-ui-common-tiled-select.mjs +54 -50
  90. package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
  91. package/fesm2022/theseam-ui-common-toggle-edit.mjs +41 -37
  92. package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
  93. package/fesm2022/theseam-ui-common-toggle-group.mjs +30 -31
  94. package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
  95. package/fesm2022/theseam-ui-common-tooltip.mjs +225 -66
  96. package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
  97. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +14 -12
  98. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  99. package/fesm2022/theseam-ui-common-utils.mjs +113 -77
  100. package/fesm2022/theseam-ui-common-utils.mjs.map +1 -1
  101. package/fesm2022/theseam-ui-common-validators.mjs +10 -9
  102. package/fesm2022/theseam-ui-common-validators.mjs.map +1 -1
  103. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +39 -17
  104. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  105. package/fesm2022/theseam-ui-common-viewers.mjs +80 -53
  106. package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
  107. package/fesm2022/theseam-ui-common-widget.mjs +288 -314
  108. package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
  109. package/form-field/index.d.ts +1 -1
  110. package/framework/base-layout/base-layout.component.scss +9 -4
  111. package/framework/base-layout/styles/_variables.scss +4 -9
  112. package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
  113. package/framework/index.d.ts +6 -6
  114. package/framework/nav/nav-item/nav-item.component.scss +7 -6
  115. package/framework/nav/styles/_themes/light/_variables.scss +21 -5
  116. package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
  117. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
  118. package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
  119. package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
  120. package/graphql/index.d.ts +49 -7
  121. package/modal/README.md +5 -5
  122. package/modal/index.d.ts +1 -1
  123. package/models/index.d.ts +1 -1
  124. package/package.json +59 -60
  125. package/popover/index.d.ts +0 -2
  126. package/progress/progress-circle/styles/_variables.scss +15 -3
  127. package/shared/index.d.ts +0 -13
  128. package/story-helpers/index.d.ts +11 -1
  129. package/styles/bootstrap/_bootstrap.scss +34 -34
  130. package/styles/bootstrap/_bs-styles.scss +4 -8
  131. package/styles/bootstrap/_bs-utilities.scss +4 -4
  132. package/styles/bootstrap/_bs-variables.scss +65 -70
  133. package/styles/common/_forms.scss +9 -10
  134. package/styles/common/_global.scss +0 -1
  135. package/styles/common/_hacks.scss +1 -1
  136. package/styles/common/_table.scss +0 -1
  137. package/styles/common/_text.scss +3 -1
  138. package/styles/theme.scss +1 -1
  139. package/styles/vendor/ng-select/_ng-select-bs4.scss +292 -294
  140. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +63 -32
  141. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +37 -10
  142. package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +3 -1
  143. package/styles/vendor/quill/_quill.scss +15 -9
  144. package/table/index.d.ts +4 -1
  145. package/table-cell-type/index.d.ts +27 -2
  146. package/tel-input/README.md +27 -27
  147. package/utils/index.d.ts +3 -3
  148. package/viewers/index.d.ts +9 -2
  149. package/widget/_widget-theme.scss +1 -1
  150. package/widget/styles/_variables.scss +2 -2
  151. package/widget/widget/widget.component.scss +0 -2
  152. package/widget/widget-content-components/widget-tile/widget-tile.component.scss +1 -3
  153. package/widget/widget-footer/widget-footer.component.scss +0 -1
@@ -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
- interface TheSeamBreadcrumbsResolver extends Resolve<string> {
15
- }
14
+ type TheSeamBreadcrumbsResolver = Resolve<string>;
16
15
 
17
16
  interface TheSeamBreadcrumb {
18
17
  /** Value to display on breadcrumb. */
@@ -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
- interface TheSeamBaseBadgeButtonComponentHarnessFilters extends TheSeamBaseButtonComponentHarnessFilters {
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
- interface TheSeamAnchorBadgeButtonComponentHarnessFilters extends TheSeamBaseBadgeButtonComponentHarnessFilters {
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
- interface TheSeamAnchorButtonComponentHarnessFilters extends TheSeamBaseButtonComponentHarnessFilters {
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
- interface TheSeamBadgeButtonComponentHarnessFilters extends TheSeamBaseBadgeButtonComponentHarnessFilters {
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
- interface TheSeamButtonComponentHarnessFilters extends TheSeamBaseButtonComponentHarnessFilters {
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;
@@ -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 i30 from '@marklb/ngx-datatable';
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 i34 from '@theseam/ui-common/shared';
12
+ import * as i30 from '@theseam/ui-common/shared';
13
13
  import { TheSeamElementResizedEvent } from '@theseam/ui-common/shared';
14
- import * as i32 from '@angular/cdk/overlay';
14
+ import * as i28 from '@angular/cdk/overlay';
15
15
  import { ConnectionPositionPair, Overlay } from '@angular/cdk/overlay';
16
- import * as i35 from '@angular/router';
16
+ import * as i31 from '@angular/router';
17
17
  import { Router } from '@angular/router';
18
- import * as i42 from '@theseam/ui-common/confirm-dialog';
18
+ import * as i38 from '@theseam/ui-common/confirm-dialog';
19
19
  import { SeamConfirmDialogService } from '@theseam/ui-common/confirm-dialog';
20
- import * as i36 from '@theseam/ui-common/menu';
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 i47 from '@theseam/ui-common/table-cell-type';
24
- import { TableCellTypeName, TableCellTypeConfig, TableCellTypeColumn, TableCellTypeExportProps } from '@theseam/ui-common/table-cell-type';
25
- import * as i46 from '@angular/forms';
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 i38 from '@theseam/ui-common/icon';
29
+ import * as i34 from '@theseam/ui-common/icon';
30
30
  import { SeamIcon } from '@theseam/ui-common/icon';
31
- import * as i39 from 'ngx-toastr';
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 i40 from '@theseam/ui-common/loading';
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 i29 from '@angular/common';
42
- import * as i31 from '@fortawesome/angular-fontawesome';
43
- import * as i33 from '@angular/cdk/a11y';
44
- import * as i37 from '@theseam/ui-common/buttons';
45
- import * as i41 from '@angular/cdk/portal';
46
- import * as i43 from '@theseam/ui-common/popover';
47
- import * as i44 from '@theseam/ui-common/checkbox';
48
- import * as i45 from '@theseam/ui-common/form-field';
49
- import * as i49 from '@ng-select/ng-select';
50
- import * as i50 from '@theseam/ui-common/toggle-group';
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, false, 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
- type TheSeamColumnsDataFilterNumericSearchFormState = {
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
- type TheSeamColumnsDataFilterTextSearchFormState = {
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, false, 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, false, 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, false, 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 DatatableColumnFilterMenuComponent, typeof DatatableColumnFilterSearchTextComponent, typeof DatatableColumnFilterSearchNumericComponent, typeof DatatableColumnFilterSearchDateComponent, typeof DatatableColumnFilterTplDirective, typeof TheSeamDatatableColumnFilterDirective], [typeof i29.CommonModule, typeof i30.NgxDatatableModule, typeof i31.FontAwesomeModule, typeof i32.OverlayModule, typeof i33.A11yModule, typeof i34.TheSeamSharedModule, typeof i35.RouterModule, typeof i36.TheSeamMenuModule, typeof i37.TheSeamButtonsModule, typeof i38.TheSeamIconModule, typeof i39.ToastrModule, typeof i40.TheSeamLoadingModule, typeof i41.PortalModule, typeof i42.TheSeamConfirmDialogModule, typeof i43.TheSeamPopoverModule, typeof i44.TheSeamCheckboxComponent, typeof i45.TheSeamFormFieldModule, typeof i46.ReactiveFormsModule, typeof i47.TheSeamTableCellTypeModule, typeof _theseam_ui_common_data_filters.TheSeamDataFiltersModule, typeof i49.NgSelectModule, typeof i50.TheSeamToggleGroupModule], [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]>;
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 };
@@ -177,11 +177,11 @@ type ApiRequestMethodHeader = string | {
177
177
  [name: string]: string | string[];
178
178
  };
179
179
  interface ApiRequestMethodHeaders {
180
- 'GET'?: ApiRequestMethodHeader;
181
- 'POST'?: ApiRequestMethodHeader;
182
- 'PUT'?: ApiRequestMethodHeader;
183
- 'PATCH'?: ApiRequestMethodHeader;
184
- 'DELETE'?: ApiRequestMethodHeader;
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.getAssetBlobFromUrl(url, detectMimeFromContent)
52
- .pipe(switchMap(v => {
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 ? data.filename : `Untitled${data.ext ? `.${data.ext}` : ''}`;
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.0", ngImport: i0, type: AssetReaderHelperService, deps: [{ token: EncryptedAssetReader, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
84
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: AssetReaderHelperService, providedIn: 'root' });
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.0", ngImport: i0, type: AssetReaderHelperService, decorators: [{
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() { return this.seamEncryptedAssetLink; }
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.0", ngImport: i0, type: EncryptedAssetLinkDirective, deps: [{ token: i0.ElementRef }, { token: AssetReaderHelperService }, { token: i2.TheSeamLoadingOverlayService }], target: i0.ɵɵFactoryTarget.Directive });
138
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", 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 });
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.0", ngImport: i0, type: EncryptedAssetLinkDirective, decorators: [{
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.0", ngImport: i0, type: TheSeamAssetReaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
173
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: TheSeamAssetReaderModule, declarations: [EncryptedAssetLinkDirective], exports: [EncryptedAssetLinkDirective] });
174
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TheSeamAssetReaderModule });
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.0", ngImport: i0, type: TheSeamAssetReaderModule, decorators: [{
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
- EncryptedAssetLinkDirective
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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"}