@theseam/ui-common 0.4.4 → 0.4.6

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 (59) hide show
  1. package/datatable/models/preferences-accessor.d.ts +3 -15
  2. package/datatable/models/preferences.d.ts +2 -1
  3. package/datatable/services/datatable-preferences.service.d.ts +11 -14
  4. package/datatable/tokens/datatable-preferences-accessor.d.ts +2 -2
  5. package/esm2020/datatable/datatable/datatable.component.mjs +3 -3
  6. package/esm2020/datatable/models/preferences-accessor.mjs +1 -1
  7. package/esm2020/datatable/models/preferences.mjs +1 -1
  8. package/esm2020/datatable/services/datatable-preferences.service.mjs +34 -106
  9. package/esm2020/datatable/tokens/datatable-preferences-accessor.mjs +1 -1
  10. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +9 -3
  11. package/esm2020/services/preferences/preferences-accessor.mjs +2 -0
  12. package/esm2020/services/preferences/preferences-manager.service.mjs +69 -0
  13. package/esm2020/services/preferences/preferences-record.mjs +74 -0
  14. package/esm2020/services/preferences/preferences.models.mjs +2 -0
  15. package/esm2020/services/public-api.mjs +5 -1
  16. package/esm2020/story-helpers/public-api.mjs +2 -1
  17. package/esm2020/story-helpers/story-preferences-accessor.service.mjs +34 -0
  18. package/esm2020/widget/preferences/widget-preferences.models.mjs +5 -0
  19. package/esm2020/widget/preferences/widget-preferences.service.mjs +78 -0
  20. package/esm2020/widget/preferences/widget-preferences.token.mjs +3 -0
  21. package/esm2020/widget/public-api.mjs +2 -1
  22. package/esm2020/widget/widget/widget.component.mjs +81 -30
  23. package/esm2020/widget/widget-token.mjs +3 -1
  24. package/esm2020/widget/widget.models.mjs +2 -0
  25. package/fesm2015/theseam-ui-common-datatable.mjs +45 -116
  26. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  27. package/fesm2015/theseam-ui-common-framework.mjs +9 -3
  28. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  29. package/fesm2015/theseam-ui-common-services.mjs +144 -8
  30. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  31. package/fesm2015/theseam-ui-common-story-helpers.mjs +32 -1
  32. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  33. package/fesm2015/theseam-ui-common-widget.mjs +166 -35
  34. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  35. package/fesm2020/theseam-ui-common-datatable.mjs +45 -116
  36. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  37. package/fesm2020/theseam-ui-common-framework.mjs +8 -3
  38. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  39. package/fesm2020/theseam-ui-common-services.mjs +144 -8
  40. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  41. package/fesm2020/theseam-ui-common-story-helpers.mjs +32 -1
  42. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  43. package/fesm2020/theseam-ui-common-widget.mjs +162 -35
  44. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  45. package/package.json +1 -1
  46. package/services/preferences/preferences-accessor.d.ts +15 -0
  47. package/services/preferences/preferences-manager.service.d.ts +15 -0
  48. package/services/preferences/preferences-record.d.ts +28 -0
  49. package/services/preferences/preferences.models.d.ts +3 -0
  50. package/services/public-api.d.ts +4 -0
  51. package/story-helpers/public-api.d.ts +1 -0
  52. package/story-helpers/story-preferences-accessor.service.d.ts +19 -0
  53. package/widget/preferences/widget-preferences.models.d.ts +8 -0
  54. package/widget/preferences/widget-preferences.service.d.ts +21 -0
  55. package/widget/preferences/widget-preferences.token.d.ts +3 -0
  56. package/widget/public-api.d.ts +1 -0
  57. package/widget/widget/widget.component.d.ts +12 -2
  58. package/widget/widget-token.d.ts +3 -0
  59. package/widget/widget.models.d.ts +7 -0
@@ -0,0 +1,28 @@
1
+ import { Observable } from 'rxjs';
2
+ import { TheSeamPreferencesAccessor } from './preferences-accessor';
3
+ import { TheSeamPreferencesBase } from './preferences.models';
4
+ export type TheSeamPreferencesRecordStatus = 'pending' | 'loaded';
5
+ export interface TheSeamPreferencesRecordStatusChange {
6
+ previous: TheSeamPreferencesRecordStatus;
7
+ current: TheSeamPreferencesRecordStatus;
8
+ }
9
+ export declare class TheSeamPreferencesMapRecord {
10
+ private readonly _key;
11
+ private readonly _accessor;
12
+ private readonly _emptyPrefs;
13
+ private readonly _refreshSubject;
14
+ private readonly _statusChangeSubject;
15
+ private _status;
16
+ readonly observable: Observable<TheSeamPreferencesBase>;
17
+ readonly statusChange: Observable<TheSeamPreferencesRecordStatusChange>;
18
+ constructor(_key: string, _accessor: TheSeamPreferencesAccessor, _emptyPrefs: TheSeamPreferencesBase);
19
+ private _createObservable;
20
+ update(value: TheSeamPreferencesBase): void;
21
+ delete(): void;
22
+ refresh(): void;
23
+ isSameAccessor(accessor: TheSeamPreferencesAccessor): boolean;
24
+ isSameEmptyPrefs(emptyPrefs: TheSeamPreferencesBase): boolean;
25
+ get status(): TheSeamPreferencesRecordStatus;
26
+ private _setStatus;
27
+ private _descerializePreferences;
28
+ }
@@ -0,0 +1,3 @@
1
+ export interface TheSeamPreferencesBase {
2
+ version: number;
3
+ }
@@ -1,3 +1,7 @@
1
+ export * from './preferences/preferences-accessor';
2
+ export * from './preferences/preferences-manager.service';
3
+ export * from './preferences/preferences-record';
4
+ export * from './preferences/preferences.models';
1
5
  export * from './asset-loader.service';
2
6
  export * from './router-helpers.service';
3
7
  export * from './font-loader.service';
@@ -11,3 +11,4 @@ export * from './story-modal-container.component';
11
11
  export * from './story-toastr.service';
12
12
  export * from './on-story-bootstrapped-exec';
13
13
  export * from './on-story-bootstrapped-trigger';
14
+ export * from './story-preferences-accessor.service';
@@ -0,0 +1,19 @@
1
+ import { TheSeamPreferencesAccessor } from '@theseam/ui-common/services';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export declare class StoryPreferencesAccessorService implements TheSeamPreferencesAccessor {
5
+ /**
6
+ * Gets a preference.
7
+ */
8
+ get(name: string): Observable<string>;
9
+ /**
10
+ * Update a preference.
11
+ */
12
+ update(name: string, value: string): Observable<string>;
13
+ /**
14
+ * Delete a preference.
15
+ */
16
+ delete(name: string): Observable<boolean>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<StoryPreferencesAccessorService, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<StoryPreferencesAccessorService>;
19
+ }
@@ -0,0 +1,8 @@
1
+ import { TheSeamPreferencesBase } from '@theseam/ui-common/services';
2
+ export interface TheSeamWidgetPreferences_v1 extends TheSeamPreferencesBase {
3
+ version: 1;
4
+ collapsed?: boolean;
5
+ }
6
+ export type TheSeamWidgetPreferences = TheSeamWidgetPreferences_v1;
7
+ export declare const CURRENT_WIDGET_PREFERENCES_VERSION = 1;
8
+ export declare const EMPTY_WIDGET_PREFERENCES: TheSeamWidgetPreferences;
@@ -0,0 +1,21 @@
1
+ import { Observable } from 'rxjs';
2
+ import { TheSeamPreferencesAccessor, TheSeamPreferencesManagerService } from '@theseam/ui-common/services';
3
+ import { TheSeamWidgetPreferences } from './widget-preferences.models';
4
+ import * as i0 from "@angular/core";
5
+ type TheSeamWidgetPreferencesPatch = Omit<TheSeamWidgetPreferences, 'version'>;
6
+ export declare class WidgetPreferencesService {
7
+ private readonly _preferencesManager;
8
+ private _prefsAccessor?;
9
+ private _pendingPatches;
10
+ constructor(_preferencesManager: TheSeamPreferencesManagerService, _prefsAccessor?: TheSeamPreferencesAccessor | undefined);
11
+ isPatchPending(preferenceKey: string): boolean;
12
+ isPending(preferenceKey: string): boolean;
13
+ isLoaded(preferenceKey: string): boolean;
14
+ preferences(preferenceKey: string): Observable<TheSeamWidgetPreferences>;
15
+ refresh(preferenceKey: string): void;
16
+ patchPreferences(preferenceKey: string, preferences: TheSeamWidgetPreferencesPatch): void;
17
+ private _isValidPreferences;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<WidgetPreferencesService, [null, { optional: true; }]>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<WidgetPreferencesService>;
20
+ }
21
+ export {};
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { TheSeamPreferencesAccessor } from '@theseam/ui-common/services';
3
+ export declare const THESEAM_WIDGET_PREFERENCES_ACCESSOR: InjectionToken<TheSeamPreferencesAccessor>;
@@ -35,3 +35,4 @@ export * from './widget-registry.models';
35
35
  export * from './widget-registry.service';
36
36
  export * from './widget-token';
37
37
  export * from './widget.module';
38
+ export * from './widget.models';
@@ -1,8 +1,11 @@
1
1
  import { BooleanInput } from '@angular/cdk/coercion';
2
+ import { OnDestroy } from '@angular/core';
2
3
  import { IconProp } from '@fortawesome/fontawesome-svg-core';
3
4
  import { SeamIcon } from '@theseam/ui-common/icon';
4
5
  import { WidgetIconTplDirective } from '../directives/widget-icon-tpl.directive';
5
6
  import { WidgetTitleTplDirective } from '../directives/widget-title-tpl.directive';
7
+ import { WidgetPreferencesService } from '../preferences/widget-preferences.service';
8
+ import { TheSeamWidgetData, TheSeamWidgetDefaults } from '../widget.models';
6
9
  import * as i0 from "@angular/core";
7
10
  /**
8
11
  * Widget
@@ -15,13 +18,18 @@ import * as i0 from "@angular/core";
15
18
  * style for our widgets. If a case requiring non widget content components is
16
19
  * used then the situation should be considered for becoming a widget component.
17
20
  */
18
- export declare class WidgetComponent {
21
+ export declare class WidgetComponent implements OnDestroy {
22
+ private readonly _widgetPreferences;
23
+ private readonly _defaults?;
24
+ private readonly _data?;
19
25
  static ngAcceptInputType_hasHeader: BooleanInput;
20
26
  static ngAcceptInputType_loading: BooleanInput;
21
27
  static ngAcceptInputType_hasConfig: BooleanInput;
22
28
  static ngAcceptInputType_canCollapse: BooleanInput;
23
29
  readonly configIcon: import("@fortawesome/fontawesome-common-types").IconDefinition;
24
30
  readonly collapseIcon: import("@fortawesome/fontawesome-common-types").IconDefinition;
31
+ private readonly _ngUnsubscribe;
32
+ private _preferencesKey?;
25
33
  /**
26
34
  * Toggles the collapsed state of a widget.
27
35
  */
@@ -65,11 +73,13 @@ export declare class WidgetComponent {
65
73
  canCollapse: boolean;
66
74
  iconTpl?: WidgetIconTplDirective;
67
75
  titleTpl?: WidgetTitleTplDirective;
76
+ constructor(_widgetPreferences: WidgetPreferencesService, _defaults?: TheSeamWidgetDefaults | undefined, _data?: TheSeamWidgetData | undefined);
77
+ ngOnDestroy(): void;
68
78
  /**
69
79
  * Toggles a widget's collapsed state.
70
80
  */
71
81
  collapse(): void;
72
82
  get collapseState(): string;
73
- static ɵfac: i0.ɵɵFactoryDeclaration<WidgetComponent, never>;
83
+ static ɵfac: i0.ɵɵFactoryDeclaration<WidgetComponent, [null, { optional: true; }, { optional: true; }]>;
74
84
  static ɵcmp: i0.ɵɵComponentDeclaration<WidgetComponent, "seam-widget", never, { "collapsed": "collapsed"; "hasHeader": "hasHeader"; "titleText": "titleText"; "icon": "icon"; "iconClass": "iconClass"; "loading": "loading"; "hasConfig": "hasConfig"; "canCollapse": "canCollapse"; }, {}, ["iconTpl", "titleTpl"], ["*", "seam-widget-footer"], false, never>;
75
85
  }
@@ -1,3 +1,6 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import { IWidgetRegistryRecord } from './widget-registry.models';
3
+ import { TheSeamWidgetData, TheSeamWidgetDefaults } from './widget.models';
3
4
  export declare const THESEAM_WIDGETS: InjectionToken<IWidgetRegistryRecord<any, any>>;
5
+ export declare const THESEAM_WIDGET_DATA: InjectionToken<TheSeamWidgetData>;
6
+ export declare const THESEAM_WIDGET_DEFAULTS: InjectionToken<TheSeamWidgetDefaults>;
@@ -0,0 +1,7 @@
1
+ export interface TheSeamWidgetData {
2
+ widgetId?: string;
3
+ }
4
+ export interface TheSeamWidgetDefaults {
5
+ canCollapse?: boolean;
6
+ collapsed?: boolean;
7
+ }