@skyux/data-manager 5.7.2 → 6.0.0-beta.2
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/documentation.json +2 -2
- package/esm2020/index.mjs +26 -0
- package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.mjs +9 -0
- package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.mjs +14 -0
- package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.mjs +157 -0
- package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.mjs +16 -0
- package/esm2020/lib/modules/data-manager/data-manager-filter-context.mjs +3 -0
- package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.mjs +17 -0
- package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.mjs +17 -0
- package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.mjs +17 -0
- package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.mjs +17 -0
- package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.mjs +180 -0
- package/esm2020/lib/modules/data-manager/data-manager.component.mjs +80 -0
- package/esm2020/lib/modules/data-manager/data-manager.module.mjs +122 -0
- package/esm2020/lib/modules/data-manager/data-manager.service.mjs +277 -0
- package/esm2020/lib/modules/data-manager/data-view.component.mjs +48 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-column-picker-option.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.mjs +6 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-config.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-filter-data.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-init-args.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-sort-option.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-state-change.mjs +11 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-state-options.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-state-update-filter-args.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-manager-state.mjs +49 -0
- package/esm2020/lib/modules/data-manager/models/data-view-config.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-view-state-options.mjs +2 -0
- package/esm2020/lib/modules/data-manager/models/data-view-state.mjs +19 -0
- package/esm2020/lib/modules/shared/sky-data-manager-resources.module.mjs +57 -0
- package/esm2020/skyux-data-manager.mjs +5 -0
- package/fesm2015/{skyux-data-manager.js → skyux-data-manager.mjs} +53 -85
- package/fesm2015/skyux-data-manager.mjs.map +1 -0
- package/fesm2020/skyux-data-manager.mjs +1038 -0
- package/fesm2020/skyux-data-manager.mjs.map +1 -0
- package/package.json +34 -18
- package/bundles/skyux-data-manager.umd.js +0 -1524
- package/esm2015/index.js +0 -26
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.js +0 -9
- package/esm2015/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.js +0 -14
- package/esm2015/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.js +0 -164
- package/esm2015/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.js +0 -16
- package/esm2015/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-filter-context.js +0 -3
- package/esm2015/lib/modules/data-manager/data-manager-filter-context.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.js +0 -20
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.js +0 -20
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.js +0 -20
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.js +0 -20
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.js +0 -185
- package/esm2015/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager.component.js +0 -84
- package/esm2015/lib/modules/data-manager/data-manager.component.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager.module.js +0 -123
- package/esm2015/lib/modules/data-manager/data-manager.module.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-manager.service.js +0 -278
- package/esm2015/lib/modules/data-manager/data-manager.service.js.map +0 -1
- package/esm2015/lib/modules/data-manager/data-view.component.js +0 -52
- package/esm2015/lib/modules/data-manager/data-view.component.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-column-picker-option.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-manager-column-picker-option.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.js +0 -6
- package/esm2015/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-config.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-manager-config.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-filter-data.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-manager-filter-data.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-init-args.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-manager-init-args.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-sort-option.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-manager-sort-option.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-state-change.js +0 -11
- package/esm2015/lib/modules/data-manager/models/data-manager-state-change.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-state-options.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-manager-state-options.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-state-update-filter-args.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-manager-state-update-filter-args.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-manager-state.js +0 -49
- package/esm2015/lib/modules/data-manager/models/data-manager-state.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-view-config.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-view-config.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-view-state-options.js +0 -2
- package/esm2015/lib/modules/data-manager/models/data-view-state-options.js.map +0 -1
- package/esm2015/lib/modules/data-manager/models/data-view-state.js +0 -19
- package/esm2015/lib/modules/data-manager/models/data-view-state.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-data-manager-resources.module.js +0 -57
- package/esm2015/lib/modules/shared/sky-data-manager-resources.module.js.map +0 -1
- package/esm2015/skyux-data-manager.js +0 -5
- package/esm2015/skyux-data-manager.js.map +0 -1
- package/fesm2015/skyux-data-manager.js.map +0 -1
@@ -1,278 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { SkyUIConfigService } from '@skyux/core';
|
3
|
-
import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
|
4
|
-
import { distinctUntilChanged, filter, map, take, takeUntil, } from 'rxjs/operators';
|
5
|
-
import { SkyDataManagerState } from './models/data-manager-state';
|
6
|
-
import { SkyDataManagerStateChange } from './models/data-manager-state-change';
|
7
|
-
import { SkyDataViewState } from './models/data-view-state';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "@skyux/core";
|
10
|
-
/**
|
11
|
-
* The data manager service provides ways for data views, toolbar items, and more to stay up to date
|
12
|
-
* with the active view ID, data manager config, registered views and their configs, and data state.
|
13
|
-
* There are methods to get current values, update values, and get subscriptions to the changing values.<br/> <br/>
|
14
|
-
* Provide this service at the component level for each instance of a data manager. Do not
|
15
|
-
* provide it at the module level or in `app-extras`. This allows multiple data
|
16
|
-
* managers to be used and self-contained.
|
17
|
-
*/
|
18
|
-
export class SkyDataManagerService {
|
19
|
-
constructor(uiConfigService) {
|
20
|
-
this.uiConfigService = uiConfigService;
|
21
|
-
this.viewkeeperClasses = new BehaviorSubject({});
|
22
|
-
this.activeViewId = new ReplaySubject(1);
|
23
|
-
this.dataManagerConfig = new BehaviorSubject(undefined);
|
24
|
-
this.views = new BehaviorSubject([]);
|
25
|
-
this.dataStateChange = new ReplaySubject(1);
|
26
|
-
this._ngUnsubscribe = new Subject();
|
27
|
-
this.initSource = 'dataManagerServiceInit';
|
28
|
-
this.isInitialized = false;
|
29
|
-
}
|
30
|
-
ngOnDestroy() {
|
31
|
-
this.activeViewId.complete();
|
32
|
-
this.dataManagerConfig.complete();
|
33
|
-
this.views.complete();
|
34
|
-
this.dataStateChange.complete();
|
35
|
-
this._ngUnsubscribe.next();
|
36
|
-
this._ngUnsubscribe.complete();
|
37
|
-
}
|
38
|
-
/**
|
39
|
-
* Initializes the data manager with the given settings and sets `isInitialized` to `true`.
|
40
|
-
* This must be called for the data manager to render.
|
41
|
-
* @param args The initial active view ID, data manager config, and state to use for the data manager.
|
42
|
-
* If a settings key is provided, it checks for a saved data state in the SKY UI config service before using the default data state
|
43
|
-
* and saves any state changes to the service.
|
44
|
-
*/
|
45
|
-
initDataManager(args) {
|
46
|
-
if (this.isInitialized) {
|
47
|
-
console.warn('This data manager instance has already been initialized.');
|
48
|
-
return;
|
49
|
-
}
|
50
|
-
const defaultDataState = args.defaultDataState;
|
51
|
-
const settingsKey = args.settingsKey;
|
52
|
-
this.updateActiveViewId(args.activeViewId);
|
53
|
-
this.updateDataManagerConfig(args.dataManagerConfig);
|
54
|
-
if (settingsKey) {
|
55
|
-
this.uiConfigService
|
56
|
-
.getConfig(settingsKey, defaultDataState.getStateOptions())
|
57
|
-
.pipe(take(1))
|
58
|
-
.subscribe((config) => {
|
59
|
-
this.updateDataState(new SkyDataManagerState(config), this.initSource);
|
60
|
-
});
|
61
|
-
}
|
62
|
-
else {
|
63
|
-
this.updateDataState(defaultDataState, this.initSource);
|
64
|
-
}
|
65
|
-
if (settingsKey) {
|
66
|
-
this.getDataStateUpdates(this.initSource)
|
67
|
-
.pipe(takeUntil(this._ngUnsubscribe))
|
68
|
-
.subscribe((state) => {
|
69
|
-
this.uiConfigService
|
70
|
-
.setConfig(settingsKey, state.getStateOptions())
|
71
|
-
.pipe(takeUntil(this._ngUnsubscribe))
|
72
|
-
.subscribe(
|
73
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
74
|
-
() => { }, (err) => {
|
75
|
-
console.warn('Could not save data manager settings.');
|
76
|
-
console.warn(err);
|
77
|
-
});
|
78
|
-
});
|
79
|
-
}
|
80
|
-
}
|
81
|
-
/**
|
82
|
-
* Initializes a view within the data manager. This must be called for each view for the views to appear within the data manager.
|
83
|
-
* @param viewConfig The SkyDataViewConfig settings for the view being registered.
|
84
|
-
*/
|
85
|
-
initDataView(viewConfig) {
|
86
|
-
const currentViews = this.views.value;
|
87
|
-
if (this.getViewById(viewConfig.id)) {
|
88
|
-
console.warn(`A data manager view with the id ${viewConfig.id} has already been initialized.`);
|
89
|
-
return;
|
90
|
-
}
|
91
|
-
currentViews.push(viewConfig);
|
92
|
-
this.views.next(currentViews);
|
93
|
-
// When the initial activeViewId is set there are no views registered. We have to re-emit
|
94
|
-
// the activeId so the newly registered view is notified that it is active.
|
95
|
-
this.activeViewId.pipe(take(1)).subscribe((id) => {
|
96
|
-
this.activeViewId.next(id);
|
97
|
-
});
|
98
|
-
this.dataStateChange
|
99
|
-
.pipe(take(1))
|
100
|
-
.subscribe((change) => {
|
101
|
-
var _a;
|
102
|
-
const dataState = change.dataState;
|
103
|
-
const currentViewState = dataState.getViewStateById(viewConfig.id);
|
104
|
-
if (!currentViewState) {
|
105
|
-
const newViewState = new SkyDataViewState({ viewId: viewConfig.id });
|
106
|
-
// Ensure that the view state's available columns match with the view config. Also,
|
107
|
-
// add columns to the `displayedColumnIds` as long as they are not `initialHide`
|
108
|
-
if (viewConfig.columnOptions) {
|
109
|
-
const columnIds = viewConfig.columnOptions.map((columnOptions) => {
|
110
|
-
return columnOptions.id;
|
111
|
-
});
|
112
|
-
const displayedColumnIds = viewConfig.columnOptions
|
113
|
-
.filter((columnOption) => {
|
114
|
-
return !columnOption.initialHide;
|
115
|
-
})
|
116
|
-
.map((columnOption) => {
|
117
|
-
return columnOption.id;
|
118
|
-
});
|
119
|
-
newViewState.columnIds = columnIds;
|
120
|
-
newViewState.displayedColumnIds = displayedColumnIds;
|
121
|
-
}
|
122
|
-
const newDataState = dataState.addOrUpdateView(viewConfig.id, newViewState);
|
123
|
-
this.updateDataState(newDataState, this.initSource);
|
124
|
-
}
|
125
|
-
else {
|
126
|
-
const currentAvailableColumnIds = (_a = viewConfig.columnOptions) === null || _a === void 0 ? void 0 : _a.map((columnOptions) => {
|
127
|
-
return columnOptions.id;
|
128
|
-
});
|
129
|
-
// Ensure that the view state's available columns match with the view config. Also,
|
130
|
-
// add new columns to the `displayedColumnIds` as long as they are not `initialHide`.
|
131
|
-
// We only add columns to `displayedColumnsIds` if we had previously tracked
|
132
|
-
// `columnIds` to avoid breaking changes.
|
133
|
-
if (currentViewState.columnIds.length > 0) {
|
134
|
-
let newColumnIds = currentAvailableColumnIds.filter((id) => currentViewState.columnIds.indexOf(id) < 0);
|
135
|
-
newColumnIds = newColumnIds.filter((columnId) => {
|
136
|
-
return viewConfig.columnOptions.find((columnOption) => columnOption.id === columnId && !columnOption.initialHide);
|
137
|
-
});
|
138
|
-
// Add the column IDs that now exist to the data manager state both as available
|
139
|
-
// and as shown.
|
140
|
-
currentViewState.displayedColumnIds =
|
141
|
-
currentViewState.displayedColumnIds.concat(newColumnIds);
|
142
|
-
}
|
143
|
-
// Add the column IDs that now exist to the data manager state both as available
|
144
|
-
// and as shown.
|
145
|
-
currentViewState.columnIds = currentAvailableColumnIds;
|
146
|
-
const newDataState = dataState.addOrUpdateView(viewConfig.id, currentViewState);
|
147
|
-
this.updateDataState(newDataState, this.initSource);
|
148
|
-
}
|
149
|
-
})
|
150
|
-
.unsubscribe();
|
151
|
-
}
|
152
|
-
/**
|
153
|
-
* Returns an observable of data state changes that views and other data manager entities can subscribe to.
|
154
|
-
* It excludes updates originating from the provided source. This allows subscribers to only respond to
|
155
|
-
* changes they did not create and helps prevent infinite loops of updates and responses.
|
156
|
-
* @param sourceId The ID of the entity subscribing to data state updates. This can be any value you choose
|
157
|
-
* but should be unique within the data manager instance and should also be used when that entity updates the state.
|
158
|
-
*/
|
159
|
-
getDataStateUpdates(sourceId, updateFilter) {
|
160
|
-
// filter out events from the provided source and emit just the dataState
|
161
|
-
if (updateFilter) {
|
162
|
-
return this.dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState), updateFilter.comparator
|
163
|
-
? distinctUntilChanged(updateFilter.comparator)
|
164
|
-
: distinctUntilChanged(this.getDefaultStateComparator(updateFilter.properties)));
|
165
|
-
}
|
166
|
-
else {
|
167
|
-
return this.dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));
|
168
|
-
}
|
169
|
-
}
|
170
|
-
/**
|
171
|
-
* Updates the data state and emits a new value to entities subscribed to data state changes.
|
172
|
-
* @param state The new `SkyDataManagerState` value.
|
173
|
-
* @param sourceId The ID of the entity updating the state. This can be any value you choose,
|
174
|
-
* but should be unique within the data manager instance and should also be used when that entity
|
175
|
-
* subscribes to state changes from `getDataStateUpdates`.
|
176
|
-
*/
|
177
|
-
updateDataState(state, sourceId) {
|
178
|
-
const newState = new SkyDataManagerState(state.getStateOptions());
|
179
|
-
const newStateChange = new SkyDataManagerStateChange(newState, sourceId);
|
180
|
-
this.dataStateChange.next(newStateChange);
|
181
|
-
}
|
182
|
-
/**
|
183
|
-
* Returns the current `SkyDataManagerConfig`.
|
184
|
-
*/
|
185
|
-
getCurrentDataManagerConfig() {
|
186
|
-
return this.dataManagerConfig.value;
|
187
|
-
}
|
188
|
-
/**
|
189
|
-
* Returns an observable of data manager config changes that views and other data manager entities can subscribe to.
|
190
|
-
*/
|
191
|
-
getDataManagerConfigUpdates() {
|
192
|
-
return this.dataManagerConfig;
|
193
|
-
}
|
194
|
-
/**
|
195
|
-
* Updates the data manager config and emits a new value to entities subscribed to data config changes.
|
196
|
-
* @param value The new `SkyDataManagerConfig` value.
|
197
|
-
*/
|
198
|
-
updateDataManagerConfig(value) {
|
199
|
-
this.dataManagerConfig.next(value);
|
200
|
-
}
|
201
|
-
/**
|
202
|
-
* Returns an observable of data view config changes that views and other data manager entities can subscribe to.
|
203
|
-
*/
|
204
|
-
getDataViewsUpdates() {
|
205
|
-
return this.views;
|
206
|
-
}
|
207
|
-
/**
|
208
|
-
* Returns an observable of the active view ID that views and other data manager entities can subscribe to.
|
209
|
-
*/
|
210
|
-
getActiveViewIdUpdates() {
|
211
|
-
return this.activeViewId;
|
212
|
-
}
|
213
|
-
/**
|
214
|
-
* Updates the active view ID. The data manager changes the displayed view.
|
215
|
-
* @param id The new active view ID.
|
216
|
-
*/
|
217
|
-
updateActiveViewId(id) {
|
218
|
-
this.activeViewId.next(id);
|
219
|
-
}
|
220
|
-
/**
|
221
|
-
* Returns the `SkyDataViewConfig` for the given view ID.
|
222
|
-
* @param viewId The ID of the view config to get.
|
223
|
-
*/
|
224
|
-
getViewById(viewId) {
|
225
|
-
const currentViews = this.views.value;
|
226
|
-
const viewConfig = currentViews.find((view) => view.id === viewId);
|
227
|
-
return viewConfig;
|
228
|
-
}
|
229
|
-
/**
|
230
|
-
* Updates the given view config. The registered view with the same ID is updated to the
|
231
|
-
* provided config, so include all properties regardless of whether they changed. If the
|
232
|
-
* view was not initialized already, no update happens.
|
233
|
-
* @param view The new `SkyDataViewConfig` containing all properties.
|
234
|
-
*/
|
235
|
-
updateViewConfig(view) {
|
236
|
-
const currentViews = this.views.value;
|
237
|
-
const existingViewIndex = currentViews.findIndex((currentView) => currentView.id === view.id);
|
238
|
-
if (existingViewIndex === -1) {
|
239
|
-
console.error('A view with the id {id} does not exist.', view.id);
|
240
|
-
}
|
241
|
-
else {
|
242
|
-
currentViews[existingViewIndex] = view;
|
243
|
-
this.views.next(currentViews);
|
244
|
-
}
|
245
|
-
}
|
246
|
-
/**
|
247
|
-
* @internal
|
248
|
-
*/
|
249
|
-
setViewkeeperClasses(viewId, classes) {
|
250
|
-
const viewkeeperClasses = this.viewkeeperClasses.value;
|
251
|
-
viewkeeperClasses[viewId] = classes;
|
252
|
-
this.viewkeeperClasses.next(viewkeeperClasses);
|
253
|
-
}
|
254
|
-
filterDataStateProperties(state, properties) {
|
255
|
-
const stateProperties = state.getStateOptions();
|
256
|
-
const filteredStateProperties = {};
|
257
|
-
for (const property of properties) {
|
258
|
-
/* istanbul ignore else */
|
259
|
-
if (Object.prototype.hasOwnProperty.call(stateProperties, property)) {
|
260
|
-
filteredStateProperties[property] = stateProperties[property];
|
261
|
-
}
|
262
|
-
}
|
263
|
-
return filteredStateProperties;
|
264
|
-
}
|
265
|
-
getDefaultStateComparator(properties) {
|
266
|
-
return (state1, state2) => {
|
267
|
-
const filteredState1 = this.filterDataStateProperties(state1, properties);
|
268
|
-
const filteredState2 = this.filterDataStateProperties(state2, properties);
|
269
|
-
return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);
|
270
|
-
};
|
271
|
-
}
|
272
|
-
}
|
273
|
-
SkyDataManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
274
|
-
SkyDataManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDataManagerService });
|
275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDataManagerService, decorators: [{
|
276
|
-
type: Injectable
|
277
|
-
}], ctorParameters: function () { return [{ type: i1.SkyUIConfigService }]; } });
|
278
|
-
//# sourceMappingURL=data-manager.service.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-manager.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\nimport { SkyDataManagerConfig } from './models/data-manager-config';\nimport { SkyDataManagerInitArgs } from './models/data-manager-init-args';\nimport { SkyDataManagerState } from './models/data-manager-state';\nimport { SkyDataManagerStateChange } from './models/data-manager-state-change';\nimport { SkyDataManagerStateOptions } from './models/data-manager-state-options';\nimport { SkyDataManagerStateUpdateFilterArgs } from './models/data-manager-state-update-filter-args';\nimport { SkyDataViewConfig } from './models/data-view-config';\nimport { SkyDataViewState } from './models/data-view-state';\n\n/**\n * The data manager service provides ways for data views, toolbar items, and more to stay up to date\n * with the active view ID, data manager config, registered views and their configs, and data state.\n * There are methods to get current values, update values, and get subscriptions to the changing values.<br/> <br/>\n * Provide this service at the component level for each instance of a data manager. Do not\n * provide it at the module level or in `app-extras`. This allows multiple data\n * managers to be used and self-contained.\n */\n@Injectable()\nexport class SkyDataManagerService implements OnDestroy {\n public viewkeeperClasses = new BehaviorSubject<{\n [viewId: string]: string[];\n }>({});\n\n private readonly activeViewId = new ReplaySubject<string>(1);\n\n private readonly dataManagerConfig =\n new BehaviorSubject<SkyDataManagerConfig>(undefined);\n\n private readonly views = new BehaviorSubject<SkyDataViewConfig[]>([]);\n\n private readonly dataStateChange =\n new ReplaySubject<SkyDataManagerStateChange>(1);\n\n private _ngUnsubscribe = new Subject();\n private initSource = 'dataManagerServiceInit';\n private isInitialized = false;\n\n constructor(private uiConfigService: SkyUIConfigService) {}\n\n public ngOnDestroy(): void {\n this.activeViewId.complete();\n this.dataManagerConfig.complete();\n this.views.complete();\n this.dataStateChange.complete();\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n /**\n * Initializes the data manager with the given settings and sets `isInitialized` to `true`.\n * This must be called for the data manager to render.\n * @param args The initial active view ID, data manager config, and state to use for the data manager.\n * If a settings key is provided, it checks for a saved data state in the SKY UI config service before using the default data state\n * and saves any state changes to the service.\n */\n public initDataManager(args: SkyDataManagerInitArgs): void {\n if (this.isInitialized) {\n console.warn('This data manager instance has already been initialized.');\n return;\n }\n\n const defaultDataState = args.defaultDataState;\n const settingsKey = args.settingsKey;\n\n this.updateActiveViewId(args.activeViewId);\n this.updateDataManagerConfig(args.dataManagerConfig);\n\n if (settingsKey) {\n this.uiConfigService\n .getConfig(settingsKey, defaultDataState.getStateOptions())\n .pipe(take(1))\n .subscribe((config: SkyDataManagerStateOptions) => {\n this.updateDataState(\n new SkyDataManagerState(config),\n this.initSource\n );\n });\n } else {\n this.updateDataState(defaultDataState, this.initSource);\n }\n\n if (settingsKey) {\n this.getDataStateUpdates(this.initSource)\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((state: SkyDataManagerState) => {\n this.uiConfigService\n .setConfig(settingsKey, state.getStateOptions())\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n (err) => {\n console.warn('Could not save data manager settings.');\n console.warn(err);\n }\n );\n });\n }\n }\n\n /**\n * Initializes a view within the data manager. This must be called for each view for the views to appear within the data manager.\n * @param viewConfig The SkyDataViewConfig settings for the view being registered.\n */\n public initDataView(viewConfig: SkyDataViewConfig): void {\n const currentViews: SkyDataViewConfig[] = this.views.value;\n\n if (this.getViewById(viewConfig.id)) {\n console.warn(\n `A data manager view with the id ${viewConfig.id} has already been initialized.`\n );\n return;\n }\n\n currentViews.push(viewConfig);\n this.views.next(currentViews);\n\n // When the initial activeViewId is set there are no views registered. We have to re-emit\n // the activeId so the newly registered view is notified that it is active.\n this.activeViewId.pipe(take(1)).subscribe((id) => {\n this.activeViewId.next(id);\n });\n\n this.dataStateChange\n .pipe(take(1))\n .subscribe((change) => {\n const dataState = change.dataState;\n const currentViewState = dataState.getViewStateById(viewConfig.id);\n\n if (!currentViewState) {\n const newViewState = new SkyDataViewState({ viewId: viewConfig.id });\n\n // Ensure that the view state's available columns match with the view config. Also,\n // add columns to the `displayedColumnIds` as long as they are not `initialHide`\n if (viewConfig.columnOptions) {\n const columnIds = viewConfig.columnOptions.map((columnOptions) => {\n return columnOptions.id;\n });\n const displayedColumnIds = viewConfig.columnOptions\n .filter((columnOption) => {\n return !columnOption.initialHide;\n })\n .map((columnOption) => {\n return columnOption.id;\n });\n\n newViewState.columnIds = columnIds;\n newViewState.displayedColumnIds = displayedColumnIds;\n }\n const newDataState = dataState.addOrUpdateView(\n viewConfig.id,\n newViewState\n );\n\n this.updateDataState(newDataState, this.initSource);\n } else {\n const currentAvailableColumnIds = viewConfig.columnOptions?.map(\n (columnOptions) => {\n return columnOptions.id;\n }\n );\n\n // Ensure that the view state's available columns match with the view config. Also,\n // add new columns to the `displayedColumnIds` as long as they are not `initialHide`.\n // We only add columns to `displayedColumnsIds` if we had previously tracked\n // `columnIds` to avoid breaking changes.\n if (currentViewState.columnIds.length > 0) {\n let newColumnIds = currentAvailableColumnIds.filter(\n (id) => currentViewState.columnIds.indexOf(id) < 0\n );\n newColumnIds = newColumnIds.filter((columnId) => {\n return viewConfig.columnOptions.find(\n (columnOption) =>\n columnOption.id === columnId && !columnOption.initialHide\n );\n });\n\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n currentViewState.displayedColumnIds =\n currentViewState.displayedColumnIds.concat(newColumnIds);\n }\n // Add the column IDs that now exist to the data manager state both as available\n // and as shown.\n currentViewState.columnIds = currentAvailableColumnIds;\n\n const newDataState = dataState.addOrUpdateView(\n viewConfig.id,\n currentViewState\n );\n\n this.updateDataState(newDataState, this.initSource);\n }\n })\n .unsubscribe();\n }\n\n /**\n * Returns an observable of data state changes that views and other data manager entities can subscribe to.\n * It excludes updates originating from the provided source. This allows subscribers to only respond to\n * changes they did not create and helps prevent infinite loops of updates and responses.\n * @param sourceId The ID of the entity subscribing to data state updates. This can be any value you choose\n * but should be unique within the data manager instance and should also be used when that entity updates the state.\n */\n public getDataStateUpdates(\n sourceId: string,\n updateFilter?: SkyDataManagerStateUpdateFilterArgs\n ): Observable<SkyDataManagerState> {\n // filter out events from the provided source and emit just the dataState\n if (updateFilter) {\n return this.dataStateChange.pipe(\n filter((stateChange) => sourceId !== stateChange.source),\n map((stateChange) => stateChange.dataState),\n updateFilter.comparator\n ? distinctUntilChanged(updateFilter.comparator)\n : distinctUntilChanged(\n this.getDefaultStateComparator(updateFilter.properties)\n )\n );\n } else {\n return this.dataStateChange.pipe(\n filter((stateChange) => sourceId !== stateChange.source),\n map((stateChange) => stateChange.dataState)\n );\n }\n }\n\n /**\n * Updates the data state and emits a new value to entities subscribed to data state changes.\n * @param state The new `SkyDataManagerState` value.\n * @param sourceId The ID of the entity updating the state. This can be any value you choose,\n * but should be unique within the data manager instance and should also be used when that entity\n * subscribes to state changes from `getDataStateUpdates`.\n */\n public updateDataState(state: SkyDataManagerState, sourceId: string): void {\n const newState = new SkyDataManagerState(state.getStateOptions());\n const newStateChange = new SkyDataManagerStateChange(newState, sourceId);\n\n this.dataStateChange.next(newStateChange);\n }\n\n /**\n * Returns the current `SkyDataManagerConfig`.\n */\n public getCurrentDataManagerConfig(): SkyDataManagerConfig {\n return this.dataManagerConfig.value;\n }\n\n /**\n * Returns an observable of data manager config changes that views and other data manager entities can subscribe to.\n */\n public getDataManagerConfigUpdates(): Observable<SkyDataManagerConfig> {\n return this.dataManagerConfig;\n }\n\n /**\n * Updates the data manager config and emits a new value to entities subscribed to data config changes.\n * @param value The new `SkyDataManagerConfig` value.\n */\n public updateDataManagerConfig(value: SkyDataManagerConfig): void {\n this.dataManagerConfig.next(value);\n }\n\n /**\n * Returns an observable of data view config changes that views and other data manager entities can subscribe to.\n */\n public getDataViewsUpdates(): Observable<SkyDataViewConfig[]> {\n return this.views;\n }\n\n /**\n * Returns an observable of the active view ID that views and other data manager entities can subscribe to.\n */\n public getActiveViewIdUpdates(): Observable<string> {\n return this.activeViewId;\n }\n\n /**\n * Updates the active view ID. The data manager changes the displayed view.\n * @param id The new active view ID.\n */\n public updateActiveViewId(id: string): void {\n this.activeViewId.next(id);\n }\n\n /**\n * Returns the `SkyDataViewConfig` for the given view ID.\n * @param viewId The ID of the view config to get.\n */\n public getViewById(viewId: string): SkyDataViewConfig {\n const currentViews: SkyDataViewConfig[] = this.views.value;\n const viewConfig: SkyDataViewConfig = currentViews.find(\n (view) => view.id === viewId\n );\n\n return viewConfig;\n }\n\n /**\n * Updates the given view config. The registered view with the same ID is updated to the\n * provided config, so include all properties regardless of whether they changed. If the\n * view was not initialized already, no update happens.\n * @param view The new `SkyDataViewConfig` containing all properties.\n */\n public updateViewConfig(view: SkyDataViewConfig): void {\n const currentViews: SkyDataViewConfig[] = this.views.value;\n const existingViewIndex = currentViews.findIndex(\n (currentView) => currentView.id === view.id\n );\n\n if (existingViewIndex === -1) {\n console.error('A view with the id {id} does not exist.', view.id);\n } else {\n currentViews[existingViewIndex] = view;\n this.views.next(currentViews);\n }\n }\n\n /**\n * @internal\n */\n public setViewkeeperClasses(viewId: string, classes: string[]): void {\n const viewkeeperClasses = this.viewkeeperClasses.value;\n viewkeeperClasses[viewId] = classes;\n\n this.viewkeeperClasses.next(viewkeeperClasses);\n }\n\n private filterDataStateProperties(\n state: SkyDataManagerState,\n properties: string[]\n ): SkyDataManagerStateOptions {\n const stateProperties = state.getStateOptions() as { [key: string]: any };\n const filteredStateProperties: any = {};\n for (const property of properties) {\n /* istanbul ignore else */\n if (Object.prototype.hasOwnProperty.call(stateProperties, property)) {\n filteredStateProperties[property] = stateProperties[property];\n }\n }\n\n return filteredStateProperties;\n }\n\n private getDefaultStateComparator(\n properties: string[]\n ): (state1: SkyDataManagerState, state2: SkyDataManagerState) => boolean {\n return (\n state1: SkyDataManagerState,\n state2: SkyDataManagerState\n ): boolean => {\n const filteredState1 = this.filterDataStateProperties(state1, properties);\n const filteredState2 = this.filterDataStateProperties(state2, properties);\n return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);\n };\n }\n}\n"]}
|
@@ -1,52 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
4
|
-
import { SkyDataManagerService } from './data-manager.service';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "./data-manager.service";
|
7
|
-
import * as i2 from "@angular/common";
|
8
|
-
/**
|
9
|
-
* A data view is rendered within a data manager component.
|
10
|
-
* It can subscribe to data state changes from `SkyDataManagerService` and apply the filters,
|
11
|
-
* search text, and more to the data it displays.
|
12
|
-
*/
|
13
|
-
export class SkyDataViewComponent {
|
14
|
-
constructor(changeDetector, dataManagerService) {
|
15
|
-
this.changeDetector = changeDetector;
|
16
|
-
this.dataManagerService = dataManagerService;
|
17
|
-
this._isActive = false;
|
18
|
-
this._ngUnsubscribe = new Subject();
|
19
|
-
}
|
20
|
-
get isActive() {
|
21
|
-
return this._isActive;
|
22
|
-
}
|
23
|
-
set isActive(value) {
|
24
|
-
this._isActive = value;
|
25
|
-
this.changeDetector.markForCheck();
|
26
|
-
}
|
27
|
-
ngOnInit() {
|
28
|
-
this.dataManagerService
|
29
|
-
.getActiveViewIdUpdates()
|
30
|
-
.pipe(takeUntil(this._ngUnsubscribe))
|
31
|
-
.subscribe((activeViewId) => {
|
32
|
-
this.isActive = this.viewId === activeViewId;
|
33
|
-
});
|
34
|
-
}
|
35
|
-
ngOnDestroy() {
|
36
|
-
this._ngUnsubscribe.next();
|
37
|
-
this._ngUnsubscribe.complete();
|
38
|
-
}
|
39
|
-
}
|
40
|
-
SkyDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDataViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
41
|
-
SkyDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyDataViewComponent, selector: "sky-data-view", inputs: { viewId: "viewId" }, ngImport: i0, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDataViewComponent, decorators: [{
|
43
|
-
type: Component,
|
44
|
-
args: [{
|
45
|
-
selector: 'sky-data-view',
|
46
|
-
templateUrl: './data-view.component.html',
|
47
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
48
|
-
}]
|
49
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }]; }, propDecorators: { viewId: [{
|
50
|
-
type: Input
|
51
|
-
}] } });
|
52
|
-
//# sourceMappingURL=data-view.component.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-view.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-view.component.ts","../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/data-view.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,SAAS,EACT,KAAK,GAGN,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;;;;AAE/D;;;;GAIG;AAMH,MAAM,OAAO,oBAAoB;IAqB/B,YACU,cAAiC,EACjC,kBAAyC;QADzC,mBAAc,GAAd,cAAc,CAAmB;QACjC,uBAAkB,GAAlB,kBAAkB,CAAuB;QAL5C,cAAS,GAAG,KAAK,CAAC;QACjB,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAC;IAKpC,CAAC;IAfJ,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,QAAQ,CAAC,KAAc;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAUM,QAAQ;QACb,IAAI,CAAC,kBAAkB;aACpB,sBAAsB,EAAE;aACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACpC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;;kHAtCU,oBAAoB;sGAApB,oBAAoB,mFCxBjC,mFAGA;4FDqBa,oBAAoB;kBALhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,WAAW,EAAE,4BAA4B;oBACzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAChD;4IAQQ,MAAM;sBADZ,KAAK","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDataManagerService } from './data-manager.service';\n\n/**\n * A data view is rendered within a data manager component.\n * It can subscribe to data state changes from `SkyDataManagerService` and apply the filters,\n * search text, and more to the data it displays.\n */\n@Component({\n selector: 'sky-data-view',\n templateUrl: './data-view.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDataViewComponent implements OnDestroy, OnInit {\n /**\n * The configuration for the view. See the `SkyDataViewConfig` interface.\n * @required\n */\n\n @Input()\n public viewId: string;\n\n public get isActive(): boolean {\n return this._isActive;\n }\n\n public set isActive(value: boolean) {\n this._isActive = value;\n this.changeDetector.markForCheck();\n }\n\n public _isActive = false;\n private _ngUnsubscribe = new Subject();\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private dataManagerService: SkyDataManagerService\n ) {}\n\n public ngOnInit(): void {\n this.dataManagerService\n .getActiveViewIdUpdates()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((activeViewId) => {\n this.isActive = this.viewId === activeViewId;\n });\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n}\n","<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-column-picker-option.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-column-picker-option.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * The options to display in a view's column picker.\n */\nexport interface SkyDataManagerColumnPickerOption {\n /**\n * Indicates that a column is always visible and should not be listed as an option in the column\n * picker. For example, a context menu column may always be visible.\n */\n alwaysDisplayed?: boolean;\n /**\n * The description text rendered beneath the column label in the column picker.\n */\n description?: string;\n /**\n * Initially hide the column when it is added to the grid unless given in the view state's\n * `displayedColumnIds`. When enabled, this column will not be automatically added to a view's\n * state when this column is recognized as being missing from an initial data state or a data\n * state returned via the SKY UI config service.\n */\n initialHide?: boolean;\n /**\n * The ID of the corresponding column.\n * @required\n */\n id: string;\n /**\n * The label to display in the column picker.\n * @required\n */\n label: string;\n}\n"]}
|
@@ -1,6 +0,0 @@
|
|
1
|
-
export var SkyDataManagerColumnPickerSortStrategy;
|
2
|
-
(function (SkyDataManagerColumnPickerSortStrategy) {
|
3
|
-
SkyDataManagerColumnPickerSortStrategy["None"] = "none";
|
4
|
-
SkyDataManagerColumnPickerSortStrategy["SelectedThenAlphabetical"] = "selectedThenAlphabetical";
|
5
|
-
})(SkyDataManagerColumnPickerSortStrategy || (SkyDataManagerColumnPickerSortStrategy = {}));
|
6
|
-
//# sourceMappingURL=data-manager-column-picker-sort-strategy.js.map
|
package/esm2015/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-column-picker-sort-strategy.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,sCAGX;AAHD,WAAY,sCAAsC;IAChD,uDAAa,CAAA;IACb,+FAAqD,CAAA;AACvD,CAAC,EAHW,sCAAsC,KAAtC,sCAAsC,QAGjD","sourcesContent":["export enum SkyDataManagerColumnPickerSortStrategy {\n None = 'none',\n SelectedThenAlphabetical = 'selectedThenAlphabetical',\n}\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-config.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-config.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyDataManagerSortOption } from './data-manager-sort-option';\n\n/**\n * The data manager config contains settings that apply to the data manager across all views,\n * such as the sort and filter settings.\n */\nexport interface SkyDataManagerConfig {\n /**\n * An untyped property that can track any config information relevant to a\n * data manager that existing options do not include.\n */\n additionalOptions?: any;\n /**\n * The modal component to launch when the filter button is selected. The same filter options are\n * used for all views, but views can use `SkyDataViewConfig` to indicate whether to display\n * the filter button. The modal receives the `filterData` in the data state as context.\n */\n filterModalComponent?: any;\n /**\n * The sort options displayed in the sort dropdown. The same sort options are used for all views,\n * but views can use `SkyDataViewConfig` to indicate whether to display the sort button.\n */\n sortOptions?: SkyDataManagerSortOption[];\n}\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-filter-data.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-filter-data.ts"],"names":[],"mappings":"","sourcesContent":["export interface SkyDataManagerFilterData {\n /**\n * Indicates whether any filters are applied.\n */\n filtersApplied?: boolean;\n /**\n * The filter data used in the data manager. You may use any filter model that works for\n * your data set and models. See the demo for an example.\n */\n filters?: any;\n}\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-init-args.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-init-args.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyDataManagerConfig } from './data-manager-config';\nimport { SkyDataManagerState } from './data-manager-state';\n\nexport interface SkyDataManagerInitArgs {\n /**\n * The initial active view's ID.\n * @required\n */\n activeViewId: string;\n /**\n * The initial configuration for the data manager. See the SkyDataManagerConfig interface.\n * @required\n */\n dataManagerConfig: SkyDataManagerConfig;\n /**\n * The data state used if no settings key is provided or if no data state is saved in the SKY UI\n * config service for the user. See the SkyDataManagerState interface.\n * @required\n */\n defaultDataState: SkyDataManagerState;\n /**\n * Specifies a unique key for the UI Config Service to retrieve stored settings from a database.\n * The UI Config Service saves configuration settings for users to preserve the current data state. For more information about the UI Config Service, see [the sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/sticky-settings).\n */\n settingsKey?: string;\n}\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-sort-option.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-sort-option.ts"],"names":[],"mappings":"","sourcesContent":["export interface SkyDataManagerSortOption {\n /**\n * Indicates whether to apply the sort in descending order.\n * @required\n */\n descending: boolean;\n /**\n * An ID for the sort option.\n * @required\n */\n id: string;\n /**\n * The label to display in the sort dropdown.\n * @required\n */\n label: string;\n /**\n * The data property to sort by.\n * @required\n */\n propertyName: string;\n}\n"]}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { SkyDataManagerState } from './data-manager-state';
|
2
|
-
/**
|
3
|
-
* @internal
|
4
|
-
*/
|
5
|
-
export class SkyDataManagerStateChange {
|
6
|
-
constructor(dataState, source) {
|
7
|
-
this.dataState = new SkyDataManagerState(dataState.getStateOptions());
|
8
|
-
this.source = source;
|
9
|
-
}
|
10
|
-
}
|
11
|
-
//# sourceMappingURL=data-manager-state-change.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-state-change.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state-change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAIpC,YAAY,SAA8B,EAAE,MAAc;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF","sourcesContent":["import { SkyDataManagerState } from './data-manager-state';\n\n/**\n * @internal\n */\nexport class SkyDataManagerStateChange {\n public dataState: SkyDataManagerState;\n public source: string;\n\n constructor(dataState: SkyDataManagerState, source: string) {\n this.dataState = new SkyDataManagerState(dataState.getStateOptions());\n this.source = source;\n }\n}\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-state-options.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state-options.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyDataManagerFilterData } from './data-manager-filter-data';\nimport { SkyDataManagerSortOption } from './data-manager-sort-option';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\n\nexport interface SkyDataManagerStateOptions {\n /**\n * The selected SkyDataManagerSortOption to apply.\n */\n activeSortOption?: SkyDataManagerSortOption;\n /**\n * An untyped property that can track any state information relevant to a data\n * manager that the existing properties do not cover.\n */\n additionalData?: any;\n /**\n * The state of filters.\n */\n filterData?: SkyDataManagerFilterData;\n /**\n * Indicates whether to display only the selected rows or objects. The multiselect toolbar\n * uses this property.\n */\n onlyShowSelected?: boolean;\n /**\n * The search text to apply.\n */\n searchText?: string;\n /**\n * The currently selected rows or objects.\n */\n selectedIds?: string[];\n /**\n * The states of the individual views.\n */\n views?: SkyDataViewStateOptions[];\n}\n"]}
|
package/esm2015/lib/modules/data-manager/models/data-manager-state-update-filter-args.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-state-update-filter-args.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state-update-filter-args.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyDataManagerState } from './data-manager-state';\n\n/**\n * Optional arguments to pass to `getDataStateUpdates`.\n * Provide either a list of properties to filter on OR a custom comparator.\n */\nexport interface SkyDataManagerStateUpdateFilterArgs {\n /**\n * A list of `SkyDataManagerState` properties to compare to test if the new `SkyDataManagerState` is distinct from the previous.\n * This allows you to subscribe to changes for only the provided properties.\n */\n properties?: string[];\n /**\n * A comparator function called to test if the new `SkyDataManagerState` is distinct from the previous.\n */\n comparator?: (\n state1: SkyDataManagerState,\n state2: SkyDataManagerState\n ) => boolean;\n}\n"]}
|
@@ -1,49 +0,0 @@
|
|
1
|
-
import { SkyDataViewState } from './data-view-state';
|
2
|
-
export class SkyDataManagerState {
|
3
|
-
constructor(data) {
|
4
|
-
this.views = [];
|
5
|
-
const views = data.views && data.views.map((view) => new SkyDataViewState(view));
|
6
|
-
this.activeSortOption = data.activeSortOption;
|
7
|
-
this.additionalData = data.additionalData;
|
8
|
-
this.filterData = data.filterData;
|
9
|
-
this.onlyShowSelected = data.onlyShowSelected;
|
10
|
-
this.selectedIds = data.selectedIds;
|
11
|
-
this.searchText = data.searchText;
|
12
|
-
this.views = views || [];
|
13
|
-
}
|
14
|
-
getStateOptions() {
|
15
|
-
const viewStates = this.views.map((view) => {
|
16
|
-
return view.getViewStateOptions();
|
17
|
-
});
|
18
|
-
return {
|
19
|
-
activeSortOption: this.activeSortOption,
|
20
|
-
additionalData: this.additionalData,
|
21
|
-
filterData: this.filterData,
|
22
|
-
onlyShowSelected: this.onlyShowSelected,
|
23
|
-
searchText: this.searchText,
|
24
|
-
selectedIds: this.selectedIds,
|
25
|
-
views: viewStates,
|
26
|
-
};
|
27
|
-
}
|
28
|
-
getViewStateById(viewId) {
|
29
|
-
return this.views.find((view) => view.viewId === viewId);
|
30
|
-
}
|
31
|
-
addOrUpdateView(viewId, view) {
|
32
|
-
const existingViewIndex = this.views.findIndex((v) => v.viewId === viewId);
|
33
|
-
if (existingViewIndex !== -1) {
|
34
|
-
this.views[existingViewIndex] = view;
|
35
|
-
}
|
36
|
-
else {
|
37
|
-
this.views.push(view);
|
38
|
-
}
|
39
|
-
return new SkyDataManagerState({
|
40
|
-
activeSortOption: this.activeSortOption,
|
41
|
-
additionalData: this.additionalData,
|
42
|
-
filterData: this.filterData,
|
43
|
-
searchText: this.searchText,
|
44
|
-
selectedIds: this.selectedIds,
|
45
|
-
views: this.views,
|
46
|
-
});
|
47
|
-
}
|
48
|
-
}
|
49
|
-
//# sourceMappingURL=data-manager-state.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-manager-state.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-manager-state.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,OAAO,mBAAmB;IAS9B,YAAY,IAAgC;QAFrC,UAAK,GAAuB,EAAE,CAAC;QAGpC,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEM,eAAe;QACpB,MAAM,UAAU,GAA8B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACpE,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC;IAEM,gBAAgB,CAAC,MAAc;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC3D,CAAC;IAEM,eAAe,CACpB,MAAc,EACd,IAAsB;QAEtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAE3E,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;SACtC;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;QAED,OAAO,IAAI,mBAAmB,CAAC;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { SkyDataManagerFilterData } from './data-manager-filter-data';\nimport { SkyDataManagerSortOption } from './data-manager-sort-option';\nimport { SkyDataManagerStateOptions } from './data-manager-state-options';\nimport { SkyDataViewState } from './data-view-state';\nimport { SkyDataViewStateOptions } from './data-view-state-options';\n\nexport class SkyDataManagerState {\n public activeSortOption: SkyDataManagerSortOption;\n public additionalData: any;\n public filterData: SkyDataManagerFilterData;\n public onlyShowSelected: boolean;\n public searchText: string;\n public selectedIds: string[];\n public views: SkyDataViewState[] = [];\n\n constructor(data: SkyDataManagerStateOptions) {\n const views =\n data.views && data.views.map((view) => new SkyDataViewState(view));\n\n this.activeSortOption = data.activeSortOption;\n this.additionalData = data.additionalData;\n this.filterData = data.filterData;\n this.onlyShowSelected = data.onlyShowSelected;\n this.selectedIds = data.selectedIds;\n this.searchText = data.searchText;\n this.views = views || [];\n }\n\n public getStateOptions(): SkyDataManagerStateOptions {\n const viewStates: SkyDataViewStateOptions[] = this.views.map((view) => {\n return view.getViewStateOptions();\n });\n\n return {\n activeSortOption: this.activeSortOption,\n additionalData: this.additionalData,\n filterData: this.filterData,\n onlyShowSelected: this.onlyShowSelected,\n searchText: this.searchText,\n selectedIds: this.selectedIds,\n views: viewStates,\n };\n }\n\n public getViewStateById(viewId: string): SkyDataViewState {\n return this.views.find((view) => view.viewId === viewId);\n }\n\n public addOrUpdateView(\n viewId: string,\n view: SkyDataViewState\n ): SkyDataManagerState {\n const existingViewIndex = this.views.findIndex((v) => v.viewId === viewId);\n\n if (existingViewIndex !== -1) {\n this.views[existingViewIndex] = view;\n } else {\n this.views.push(view);\n }\n\n return new SkyDataManagerState({\n activeSortOption: this.activeSortOption,\n additionalData: this.additionalData,\n filterData: this.filterData,\n searchText: this.searchText,\n selectedIds: this.selectedIds,\n views: this.views,\n });\n }\n}\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-view-config.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-view-config.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyDataManagerColumnPickerOption } from './data-manager-column-picker-option';\nimport { SkyDataManagerColumnPickerSortStrategy } from './data-manager-column-picker-sort-strategy';\n\n/**\n * The data view config contains settings that apply to the specific view, such as\n * column picker options and the buttons to display in the toolbar.\n */\nexport interface SkyDataViewConfig {\n /**\n * An untyped property that can track any view config information relevant to a\n * data view that the existing options do not include.\n */\n additionalOptions?: Object;\n /**\n * The column data to pass to the column picker. Columns that are always displayed should be\n * passed in addition to the optional columns. See SkyDataManagerColumnPickerOption.\n */\n columnOptions?: SkyDataManagerColumnPickerOption[];\n /**\n * Indicates whether to display the column picker button for this view.\n */\n columnPickerEnabled?: boolean;\n /**\n * The strategy used to sort the options in the column picker. If no strategy is provided the columns will be sorted\n * by selected then alphabetical.\n */\n columnPickerSortStrategy?: SkyDataManagerColumnPickerSortStrategy;\n /**\n * Inidicates whether to display the filter button for this view.\n */\n filterButtonEnabled?: boolean;\n /**\n * The Font Awesome icon name to use for this view in the view switcher.\n * Required if you have more than one view. Do not include the `fa-` prefix.\n */\n icon?: string;\n /**\n * The unique ID for this view.\n */\n id: string;\n /**\n * Indicates whether to display the multiselect toolbar for this view.\n */\n multiselectToolbarEnabled?: boolean;\n /**\n * The name of the view. This is used in the ARIA label for the view switcher.\n */\n name: string;\n /**\n * The function called when a user selects the \"Clear all\" button on the multi-select toolbar.\n * Update your displayed data to indicate it is not selected in this function.\n */\n onClearAllClick?: Function;\n /**\n * The function called when a user selects the \"Select all\" button on the multi-select toolbar.\n * Update your displayed data to indicate it is selected in this function.\n */\n onSelectAllClick?: Function;\n /**\n * Indicates whether to display the search box for this view.\n */\n searchEnabled?: boolean;\n /**\n * Specifies placeholder text to display in the search input until users enter search criteria.\n * See the <a href=\"https://developer.blackbaud.com/skyux/components/search\">search component</a> for the default value.\n */\n searchPlaceholderText?: string;\n /**\n * Sets the `expandMode` property on the search box for this view.\n * See the <a href=\"https://developer.blackbaud.com/skyux/components/search\">search component</a> for valid options and the default value.\n */\n searchExpandMode?: string;\n /**\n * Indicates whether to include the \"Filter\" text on the displayed filter button for this view.\n * If it is not set, no text appears.\n */\n showFilterButtonText?: boolean;\n /**\n * Indicates whether to include the \"Sort\" text on the displayed sort button for this view.\n * If it is not set, no text appears.\n */\n showSortButtonText?: boolean;\n /**\n * Indicates whether to display the sort button in this view.\n */\n sortEnabled?: boolean;\n}\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-view-state-options.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-view-state-options.ts"],"names":[],"mappings":"","sourcesContent":["export interface SkyDataViewStateOptions {\n /**\n * The ID of this view.\n */\n viewId: string;\n /**\n * The IDs of the columns able to be displayed for column-based views. This property is required when utilizing a grid-based view, a column picker, or both.\n */\n columnIds?: string[];\n /**\n * The IDs of the columns displayed for column-based views.\n */\n displayedColumnIds?: string[];\n /**\n * An untyped property that can track any view-specific state information\n * relevant to a data manager that existing properties do not cover.\n */\n additionalData?: any;\n}\n"]}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
export class SkyDataViewState {
|
2
|
-
constructor(data) {
|
3
|
-
this.columnIds = [];
|
4
|
-
this.displayedColumnIds = [];
|
5
|
-
this.viewId = data.viewId;
|
6
|
-
this.columnIds = data.columnIds || [];
|
7
|
-
this.displayedColumnIds = data.displayedColumnIds || [];
|
8
|
-
this.additionalData = data.additionalData;
|
9
|
-
}
|
10
|
-
getViewStateOptions() {
|
11
|
-
return {
|
12
|
-
viewId: this.viewId,
|
13
|
-
columnIds: this.columnIds,
|
14
|
-
displayedColumnIds: this.displayedColumnIds,
|
15
|
-
additionalData: this.additionalData,
|
16
|
-
};
|
17
|
-
}
|
18
|
-
}
|
19
|
-
//# sourceMappingURL=data-view-state.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"data-view-state.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/data-manager/src/lib/modules/data-manager/models/data-view-state.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IAM3B,YAAY,IAA6B;QALlC,cAAS,GAAa,EAAE,CAAC;QACzB,uBAAkB,GAAa,EAAE,CAAC;QAKvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAEM,mBAAmB;QACxB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { SkyDataViewStateOptions } from './data-view-state-options';\n\nexport class SkyDataViewState {\n public columnIds: string[] = [];\n public displayedColumnIds: string[] = [];\n public viewId: string;\n public additionalData: any;\n\n constructor(data: SkyDataViewStateOptions) {\n this.viewId = data.viewId;\n this.columnIds = data.columnIds || [];\n this.displayedColumnIds = data.displayedColumnIds || [];\n this.additionalData = data.additionalData;\n }\n\n public getViewStateOptions(): SkyDataViewStateOptions {\n return {\n viewId: this.viewId,\n columnIds: this.columnIds,\n displayedColumnIds: this.displayedColumnIds,\n additionalData: this.additionalData,\n };\n }\n}\n"]}
|