@skyux/data-manager 8.7.0 → 9.0.0-alpha.0

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 (44) hide show
  1. package/{esm2020 → esm2022}/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-impl.service.mjs +4 -4
  2. package/esm2022/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.mjs +161 -0
  3. package/{esm2020 → esm2022}/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.service.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-left-item.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-primary-item.component.mjs +4 -4
  6. package/{esm2020 → esm2022}/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-right-item.component.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar-section.component.mjs +4 -4
  8. package/esm2022/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.mjs +198 -0
  9. package/esm2022/lib/modules/data-manager/data-manager.component.mjs +89 -0
  10. package/esm2022/lib/modules/data-manager/data-manager.module.mjs +123 -0
  11. package/esm2022/lib/modules/data-manager/data-manager.service.mjs +285 -0
  12. package/esm2022/lib/modules/data-manager/data-view.component.mjs +49 -0
  13. package/esm2022/lib/modules/shared/sky-data-manager-resources.module.mjs +60 -0
  14. package/fesm2022/skyux-data-manager.mjs +1138 -0
  15. package/{fesm2020 → fesm2022}/skyux-data-manager.mjs.map +1 -1
  16. package/lib/modules/data-manager/data-view.component.d.ts +1 -1
  17. package/package.json +16 -22
  18. package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.mjs +0 -162
  19. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.mjs +0 -201
  20. package/esm2020/lib/modules/data-manager/data-manager.component.mjs +0 -87
  21. package/esm2020/lib/modules/data-manager/data-manager.module.mjs +0 -123
  22. package/esm2020/lib/modules/data-manager/data-manager.service.mjs +0 -281
  23. package/esm2020/lib/modules/data-manager/data-view.component.mjs +0 -52
  24. package/esm2020/lib/modules/shared/sky-data-manager-resources.module.mjs +0 -60
  25. package/fesm2015/skyux-data-manager.mjs +0 -1142
  26. package/fesm2015/skyux-data-manager.mjs.map +0 -1
  27. package/fesm2020/skyux-data-manager.mjs +0 -1135
  28. /package/{esm2020 → esm2022}/index.mjs +0 -0
  29. /package/{esm2020 → esm2022}/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker-context.mjs +0 -0
  30. /package/{esm2020 → esm2022}/lib/modules/data-manager/data-manager-filter-context.mjs +0 -0
  31. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-column-picker-option.mjs +0 -0
  32. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-column-picker-sort-strategy.mjs +0 -0
  33. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-config.mjs +0 -0
  34. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-filter-data.mjs +0 -0
  35. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-init-args.mjs +0 -0
  36. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-sort-option.mjs +0 -0
  37. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-state-change.mjs +0 -0
  38. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-state-options.mjs +0 -0
  39. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-state-update-filter-args.mjs +0 -0
  40. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-manager-state.mjs +0 -0
  41. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-view-config.mjs +0 -0
  42. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-view-state-options.mjs +0 -0
  43. /package/{esm2020 → esm2022}/lib/modules/data-manager/models/data-view-state.mjs +0 -0
  44. /package/{esm2020 → esm2022}/skyux-data-manager.mjs +0 -0
@@ -1,1135 +0,0 @@
1
- import * as i4 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { NgModule, Injectable, Component, ChangeDetectionStrategy, Input } from '@angular/core';
5
- import * as i5 from '@angular/forms';
6
- import { FormsModule } from '@angular/forms';
7
- import * as i1 from '@skyux/core';
8
- import { SkyViewkeeperModule } from '@skyux/core';
9
- import * as i6 from '@skyux/forms';
10
- import { SkyCheckboxModule, SkyRadioModule } from '@skyux/forms';
11
- import * as i8 from '@skyux/indicators';
12
- import { SkyIconModule, SkyStatusIndicatorModule } from '@skyux/indicators';
13
- import * as i10 from '@skyux/layout';
14
- import { SkyBackToTopMessageType, SkyBackToTopModule, SkyToolbarModule } from '@skyux/layout';
15
- import * as i5$1 from '@skyux/lists';
16
- import { SkyFilterModule, SkyRepeaterModule, SkySortModule } from '@skyux/lists';
17
- import * as i9 from '@skyux/lookup';
18
- import { SkySearchModule } from '@skyux/lookup';
19
- import * as i3 from '@skyux/modals';
20
- import { SkyModalModule } from '@skyux/modals';
21
- import * as i11 from '@skyux/i18n';
22
- import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
23
- import { __classPrivateFieldSet, __classPrivateFieldGet } from 'tslib';
24
- import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
25
- import { take, takeUntil, filter, map, distinctUntilChanged } from 'rxjs/operators';
26
-
27
- /**
28
- * NOTICE: DO NOT MODIFY THIS FILE!
29
- * The contents of this file were automatically generated by
30
- * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-data-manager' schematic.
31
- * To update this file, simply rerun the command.
32
- */
33
- const RESOURCES = {
34
- 'EN-US': {
35
- skyux_data_manager_column_picker_title: {
36
- message: 'Choose columns to show in the list',
37
- },
38
- skyux_data_manager_apply_changes_button_title: { message: 'Apply changes' },
39
- skyux_data_manager_cancel_button_title: { message: 'Cancel' },
40
- skyux_data_manager_select_all_button_title: { message: 'Select all' },
41
- skyux_data_manager_clear_all_button_title: { message: 'Clear all' },
42
- skyux_data_manager_show_selected_option_title: {
43
- message: 'Show only selected items',
44
- },
45
- skyux_data_manager_columns_button_title: { message: 'Columns' },
46
- skyux_data_manager_select_column_status_indicator_title: {
47
- message: 'Select at least one column.',
48
- },
49
- },
50
- };
51
- class SkyDataManagerResourcesProvider {
52
- getString(localeInfo, name) {
53
- return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
54
- }
55
- }
56
- /**
57
- * Import into any component library module that needs to use resource strings.
58
- */
59
- class SkyDataManagerResourcesModule {
60
- }
61
- SkyDataManagerResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
62
- SkyDataManagerResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerResourcesModule, exports: [SkyI18nModule] });
63
- SkyDataManagerResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerResourcesModule, providers: [
64
- {
65
- provide: SKY_LIB_RESOURCES_PROVIDERS,
66
- useClass: SkyDataManagerResourcesProvider,
67
- multi: true,
68
- },
69
- ], imports: [SkyI18nModule] });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerResourcesModule, decorators: [{
71
- type: NgModule,
72
- args: [{
73
- exports: [SkyI18nModule],
74
- providers: [
75
- {
76
- provide: SKY_LIB_RESOURCES_PROVIDERS,
77
- useClass: SkyDataManagerResourcesProvider,
78
- multi: true,
79
- },
80
- ],
81
- }]
82
- }] });
83
-
84
- /**
85
- * Provides options for defining how data is displayed, such as which columns appear.
86
- */
87
- class SkyDataViewState {
88
- constructor(data) {
89
- /**
90
- * 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.
91
- */
92
- this.columnIds = [];
93
- /**
94
- * The IDs of the columns displayed for column-based views.
95
- */
96
- this.displayedColumnIds = [];
97
- this.viewId = data.viewId;
98
- this.columnIds = data.columnIds || [];
99
- this.displayedColumnIds = data.displayedColumnIds || [];
100
- this.additionalData = data.additionalData;
101
- }
102
- /**
103
- * Returns the `SkyDataViewStateOptions` for the current view.
104
- * @returns The `SkyDataViewStateOptions`.
105
- */
106
- getViewStateOptions() {
107
- return {
108
- viewId: this.viewId,
109
- columnIds: this.columnIds,
110
- displayedColumnIds: this.displayedColumnIds,
111
- additionalData: this.additionalData,
112
- };
113
- }
114
- }
115
-
116
- /**
117
- * Provides options that control which data to display.
118
- */
119
- class SkyDataManagerState {
120
- constructor(data) {
121
- /**
122
- * The states of the individual views.
123
- */
124
- this.views = [];
125
- const views = data.views && data.views.map((view) => new SkyDataViewState(view));
126
- this.activeSortOption = data.activeSortOption;
127
- this.additionalData = data.additionalData;
128
- this.filterData = data.filterData;
129
- this.onlyShowSelected = data.onlyShowSelected;
130
- this.selectedIds = data.selectedIds;
131
- this.searchText = data.searchText;
132
- this.views = views || [];
133
- }
134
- /**
135
- * Returns the `SkyDataManagerStateOptions` for the data manager.
136
- * @returns The `SkyDataManagerStateOptions` for the data manager.
137
- */
138
- getStateOptions() {
139
- const viewStates = this.views.map((view) => {
140
- return view.getViewStateOptions();
141
- });
142
- return {
143
- activeSortOption: this.activeSortOption,
144
- additionalData: this.additionalData,
145
- filterData: this.filterData,
146
- onlyShowSelected: this.onlyShowSelected,
147
- searchText: this.searchText,
148
- selectedIds: this.selectedIds,
149
- views: viewStates,
150
- };
151
- }
152
- /**
153
- * Returns the `SkyDataViewState` for the specified view.
154
- * @param viewId The ID for the view.
155
- * @returns The `SkyDataViewState` for the specified view.
156
- */
157
- getViewStateById(viewId) {
158
- return this.views.find((view) => view.viewId === viewId);
159
- }
160
- /**
161
- * Adds a `SkyDataViewState` to a view or updates an existing view.
162
- * @param viewId The ID for the view.
163
- * @param view The `SkyDataViewState` option to add or update.
164
- * @returns The state of the data manager for the specified view.
165
- */
166
- addOrUpdateView(viewId, view) {
167
- const existingViewIndex = this.views.findIndex((v) => v.viewId === viewId);
168
- if (existingViewIndex !== -1) {
169
- this.views[existingViewIndex] = view;
170
- }
171
- else {
172
- this.views.push(view);
173
- }
174
- return new SkyDataManagerState({
175
- activeSortOption: this.activeSortOption,
176
- additionalData: this.additionalData,
177
- filterData: this.filterData,
178
- searchText: this.searchText,
179
- selectedIds: this.selectedIds,
180
- views: this.views,
181
- });
182
- }
183
- }
184
-
185
- /**
186
- * @internal
187
- */
188
- class SkyDataManagerStateChange {
189
- constructor(dataState, source) {
190
- this.dataState = new SkyDataManagerState(dataState.getStateOptions());
191
- this.source = source;
192
- }
193
- }
194
-
195
- var _SkyDataManagerService_instances, _SkyDataManagerService_activeViewId, _SkyDataManagerService_dataManagerConfig, _SkyDataManagerService_views, _SkyDataManagerService_dataStateChange, _SkyDataManagerService_isInitialized, _SkyDataManagerService_ngUnsubscribe, _SkyDataManagerService_initSource, _SkyDataManagerService_uiConfigService, _SkyDataManagerService_filterDataStateProperties, _SkyDataManagerService_getDefaultStateComparator;
196
- /**
197
- * The data manager service provides ways for data views, toolbar items, and more to stay up to date
198
- * with the active view ID, data manager config, registered views and their configs, and data state.
199
- * There are methods to get current values, update values, and get subscriptions to the changing values.<br/> <br/>
200
- * Provide this service at the component level for each instance of a data manager. Do not
201
- * provide it at the module level or in `app-extras`. This allows multiple data
202
- * managers to be used and self-contained.
203
- */
204
- class SkyDataManagerService {
205
- constructor(uiConfigService) {
206
- _SkyDataManagerService_instances.add(this);
207
- this.viewkeeperClasses = new BehaviorSubject({});
208
- _SkyDataManagerService_activeViewId.set(this, new ReplaySubject(1));
209
- _SkyDataManagerService_dataManagerConfig.set(this, new BehaviorSubject({}));
210
- _SkyDataManagerService_views.set(this, new BehaviorSubject([]));
211
- _SkyDataManagerService_dataStateChange.set(this, new ReplaySubject(1));
212
- _SkyDataManagerService_isInitialized.set(this, void 0);
213
- _SkyDataManagerService_ngUnsubscribe.set(this, new Subject());
214
- _SkyDataManagerService_initSource.set(this, 'dataManagerServiceInit');
215
- _SkyDataManagerService_uiConfigService.set(this, void 0);
216
- __classPrivateFieldSet(this, _SkyDataManagerService_uiConfigService, uiConfigService, "f");
217
- }
218
- ngOnDestroy() {
219
- __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").complete();
220
- __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").complete();
221
- __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").complete();
222
- __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").complete();
223
- __classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f").next();
224
- __classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f").complete();
225
- }
226
- /**
227
- * Initializes the data manager with the given settings and sets `isInitialized` to `true`.
228
- * This must be called for the data manager to render.
229
- * @param args The initial active view ID, data manager config, and state to use for the data manager.
230
- * 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
231
- * and saves any state changes to the service.
232
- */
233
- initDataManager(args) {
234
- if (__classPrivateFieldGet(this, _SkyDataManagerService_isInitialized, "f")) {
235
- console.warn('This data manager instance has already been initialized.');
236
- return;
237
- }
238
- __classPrivateFieldSet(this, _SkyDataManagerService_isInitialized, true, "f");
239
- const defaultDataState = args.defaultDataState;
240
- const settingsKey = args.settingsKey;
241
- this.updateActiveViewId(args.activeViewId);
242
- this.updateDataManagerConfig(args.dataManagerConfig);
243
- if (settingsKey) {
244
- __classPrivateFieldGet(this, _SkyDataManagerService_uiConfigService, "f")
245
- .getConfig(settingsKey, defaultDataState.getStateOptions())
246
- .pipe(take(1))
247
- .subscribe((config) => {
248
- this.updateDataState(new SkyDataManagerState(config), __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
249
- });
250
- }
251
- else {
252
- this.updateDataState(defaultDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
253
- }
254
- if (settingsKey) {
255
- this.getDataStateUpdates(__classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"))
256
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f")))
257
- .subscribe((state) => {
258
- __classPrivateFieldGet(this, _SkyDataManagerService_uiConfigService, "f")
259
- .setConfig(settingsKey, state.getStateOptions())
260
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f")))
261
- .subscribe(
262
- // eslint-disable-next-line @typescript-eslint/no-empty-function
263
- () => { }, (err) => {
264
- console.warn('Could not save data manager settings.');
265
- console.warn(err);
266
- });
267
- });
268
- }
269
- }
270
- /**
271
- * Initializes a view within the data manager. This must be called for each view for the views to appear within the data manager.
272
- * @param viewConfig The SkyDataViewConfig settings for the view being registered.
273
- */
274
- initDataView(viewConfig) {
275
- const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
276
- if (this.getViewById(viewConfig.id)) {
277
- console.warn(`A data manager view with the id ${viewConfig.id} has already been initialized.`);
278
- return;
279
- }
280
- currentViews.push(viewConfig);
281
- __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").next(currentViews);
282
- // When the initial activeViewId is set there are no views registered. We have to re-emit
283
- // the activeId so the newly registered view is notified that it is active.
284
- __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").pipe(take(1)).subscribe((id) => {
285
- __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").next(id);
286
- });
287
- __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f")
288
- .pipe(take(1))
289
- .subscribe((change) => {
290
- const dataState = change.dataState;
291
- const currentViewState = dataState.getViewStateById(viewConfig.id);
292
- if (!currentViewState) {
293
- const newViewState = new SkyDataViewState({ viewId: viewConfig.id });
294
- // Ensure that the view state's available columns match with the view config. Also,
295
- // add columns to the `displayedColumnIds` as long as they are not `initialHide`
296
- if (viewConfig.columnOptions) {
297
- const columnIds = viewConfig.columnOptions.map((columnOptions) => {
298
- return columnOptions.id;
299
- });
300
- const displayedColumnIds = viewConfig.columnOptions
301
- .filter((columnOption) => {
302
- return !columnOption.initialHide;
303
- })
304
- .map((columnOption) => {
305
- return columnOption.id;
306
- });
307
- newViewState.columnIds = columnIds;
308
- newViewState.displayedColumnIds = displayedColumnIds;
309
- }
310
- const newDataState = dataState.addOrUpdateView(viewConfig.id, newViewState);
311
- this.updateDataState(newDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
312
- }
313
- else {
314
- const currentAvailableColumnIds = viewConfig.columnOptions?.map((columnOptions) => {
315
- return columnOptions.id;
316
- }) || [];
317
- // Ensure that the view state's available columns match with the view config. Also,
318
- // add new columns to the `displayedColumnIds` as long as they are not `initialHide`.
319
- // We only add columns to `displayedColumnsIds` if we had previously tracked
320
- // `columnIds` to avoid breaking changes.
321
- if (currentViewState.columnIds.length > 0) {
322
- let newColumnIds = currentAvailableColumnIds?.filter((id) => currentViewState.columnIds.indexOf(id) < 0);
323
- newColumnIds = newColumnIds?.filter((columnId) => {
324
- return viewConfig.columnOptions?.find((columnOption) => columnOption.id === columnId && !columnOption.initialHide);
325
- });
326
- // Add the column IDs that now exist to the data manager state both as available
327
- // and as shown.
328
- currentViewState.displayedColumnIds =
329
- currentViewState.displayedColumnIds.concat(newColumnIds);
330
- }
331
- // Add the column IDs that now exist to the data manager state both as available
332
- // and as shown.
333
- currentViewState.columnIds = currentAvailableColumnIds;
334
- const newDataState = dataState.addOrUpdateView(viewConfig.id, currentViewState);
335
- this.updateDataState(newDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
336
- }
337
- })
338
- .unsubscribe();
339
- }
340
- /**
341
- * Returns an observable of data state changes that views and other data manager entities can subscribe to.
342
- * It excludes updates originating from the provided source. This allows subscribers to only respond to
343
- * changes they did not create and helps prevent infinite loops of updates and responses.
344
- * @param sourceId The ID of the entity subscribing to data state updates. This can be any value you choose
345
- * but should be unique within the data manager instance and should also be used when that entity updates the state.
346
- */
347
- getDataStateUpdates(sourceId, updateFilter) {
348
- // filter out events from the provided source and emit just the dataState
349
- if (updateFilter) {
350
- return __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState), updateFilter.comparator
351
- ? distinctUntilChanged(updateFilter.comparator)
352
- : distinctUntilChanged(__classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_getDefaultStateComparator).call(this, updateFilter.properties)));
353
- }
354
- else {
355
- return __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));
356
- }
357
- }
358
- /**
359
- * Updates the data state and emits a new value to entities subscribed to data state changes.
360
- * @param state The new `SkyDataManagerState` value.
361
- * @param sourceId The ID of the entity updating the state. This can be any value you choose,
362
- * but should be unique within the data manager instance and should also be used when that entity
363
- * subscribes to state changes from `getDataStateUpdates`.
364
- */
365
- updateDataState(state, sourceId) {
366
- const newState = new SkyDataManagerState(state.getStateOptions());
367
- const newStateChange = new SkyDataManagerStateChange(newState, sourceId);
368
- __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").next(newStateChange);
369
- }
370
- /**
371
- * Returns the current `SkyDataManagerConfig`.
372
- */
373
- getCurrentDataManagerConfig() {
374
- return __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").value;
375
- }
376
- /**
377
- * Returns an observable of data manager config changes that views and other data manager entities can subscribe to.
378
- */
379
- getDataManagerConfigUpdates() {
380
- return __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f");
381
- }
382
- /**
383
- * Updates the data manager config and emits a new value to entities subscribed to data config changes.
384
- * @param value The new `SkyDataManagerConfig` value.
385
- */
386
- updateDataManagerConfig(value) {
387
- __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").next(value);
388
- }
389
- /**
390
- * Returns an observable of data view config changes that views and other data manager entities can subscribe to.
391
- */
392
- getDataViewsUpdates() {
393
- return __classPrivateFieldGet(this, _SkyDataManagerService_views, "f");
394
- }
395
- /**
396
- * Returns an observable of the active view ID that views and other data manager entities can subscribe to.
397
- */
398
- getActiveViewIdUpdates() {
399
- return __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f");
400
- }
401
- /**
402
- * Updates the active view ID. The data manager changes the displayed view.
403
- * @param id The new active view ID.
404
- */
405
- updateActiveViewId(id) {
406
- __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").next(id);
407
- }
408
- /**
409
- * Returns the `SkyDataViewConfig` for the given view ID.
410
- * @param viewId The ID of the view config to get.
411
- */
412
- getViewById(viewId) {
413
- const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
414
- const viewConfig = currentViews.find((view) => view.id === viewId);
415
- return viewConfig;
416
- }
417
- /**
418
- * Updates the given view config. The registered view with the same ID is updated to the
419
- * provided config, so include all properties regardless of whether they changed. If the
420
- * view was not initialized already, no update happens.
421
- * @param view The new `SkyDataViewConfig` containing all properties.
422
- */
423
- updateViewConfig(view) {
424
- const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
425
- const existingViewIndex = currentViews.findIndex((currentView) => currentView.id === view.id);
426
- if (existingViewIndex === -1) {
427
- console.error('A view with the id {id} does not exist.', view.id);
428
- }
429
- else {
430
- currentViews[existingViewIndex] = view;
431
- __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").next(currentViews);
432
- }
433
- }
434
- /**
435
- * @internal
436
- */
437
- setViewkeeperClasses(viewId, classes) {
438
- const viewkeeperClasses = this.viewkeeperClasses.value;
439
- viewkeeperClasses[viewId] = classes;
440
- this.viewkeeperClasses.next(viewkeeperClasses);
441
- }
442
- }
443
- _SkyDataManagerService_activeViewId = new WeakMap(), _SkyDataManagerService_dataManagerConfig = new WeakMap(), _SkyDataManagerService_views = new WeakMap(), _SkyDataManagerService_dataStateChange = new WeakMap(), _SkyDataManagerService_isInitialized = new WeakMap(), _SkyDataManagerService_ngUnsubscribe = new WeakMap(), _SkyDataManagerService_initSource = new WeakMap(), _SkyDataManagerService_uiConfigService = new WeakMap(), _SkyDataManagerService_instances = new WeakSet(), _SkyDataManagerService_filterDataStateProperties = function _SkyDataManagerService_filterDataStateProperties(state, properties) {
444
- const stateProperties = state.getStateOptions();
445
- const filteredStateProperties = {};
446
- if (properties) {
447
- for (const property of properties) {
448
- if (property in stateProperties) {
449
- filteredStateProperties[property] = stateProperties[property];
450
- }
451
- }
452
- }
453
- return filteredStateProperties;
454
- }, _SkyDataManagerService_getDefaultStateComparator = function _SkyDataManagerService_getDefaultStateComparator(properties) {
455
- return (state1, state2) => {
456
- const filteredState1 = __classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_filterDataStateProperties).call(this, state1, properties);
457
- const filteredState2 = __classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_filterDataStateProperties).call(this, state2, properties);
458
- return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);
459
- };
460
- };
461
- SkyDataManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
462
- SkyDataManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerService });
463
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerService, decorators: [{
464
- type: Injectable
465
- }], ctorParameters: function () { return [{ type: i1.SkyUIConfigService }]; } });
466
-
467
- /**
468
- * These options specify the sorting strategy applied to columns when `columnPickerEnabled` is enabled.
469
- */
470
- var SkyDataManagerColumnPickerSortStrategy;
471
- (function (SkyDataManagerColumnPickerSortStrategy) {
472
- /**
473
- * No sorting is applied to the columns.
474
- */
475
- SkyDataManagerColumnPickerSortStrategy["None"] = "none";
476
- /**
477
- * If `sortEnabled` is set to `true`, then the selected columns are displayed before the unselected columns. Unselected columns are sorted alphabetically.
478
- * If `sortEnabled` is set to `false`, then the columns are displayed in the order specified by `columnOptions`.
479
- */
480
- SkyDataManagerColumnPickerSortStrategy["SelectedThenAlphabetical"] = "selectedThenAlphabetical";
481
- })(SkyDataManagerColumnPickerSortStrategy || (SkyDataManagerColumnPickerSortStrategy = {}));
482
-
483
- class SkyDataManagerColumnPickerContext {
484
- constructor(columnOptions, displayedColumnIds, columnPickerSortStrategy = SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical) {
485
- this.columnOptions = columnOptions;
486
- this.displayedColumnIds = displayedColumnIds;
487
- this.columnPickerSortStrategy = columnPickerSortStrategy;
488
- }
489
- }
490
-
491
- var _SkyDataManagerComponent_activeViewId, _SkyDataManagerComponent_allViewkeeperClasses, _SkyDataManagerComponent_ngUnsubscribe, _SkyDataManagerComponent_sourceId, _SkyDataManagerComponent_changeDetection, _SkyDataManagerComponent_dataManagerService, _SkyDataManagerComponent__isInitialized, _SkyDataManagerComponent__currentViewkeeperClasses;
492
- const VIEWKEEPER_CLASSES_DEFAULT = ['.sky-data-manager-toolbar'];
493
- /**
494
- * The top-level data manager component. Provide `SkyDataManagerService` at this level.
495
- */
496
- class SkyDataManagerComponent {
497
- get currentViewkeeperClasses() {
498
- return __classPrivateFieldGet(this, _SkyDataManagerComponent__currentViewkeeperClasses, "f");
499
- }
500
- set currentViewkeeperClasses(value) {
501
- __classPrivateFieldSet(this, _SkyDataManagerComponent__currentViewkeeperClasses, [
502
- ...VIEWKEEPER_CLASSES_DEFAULT,
503
- ...(value || []),
504
- ], "f");
505
- __classPrivateFieldGet(this, _SkyDataManagerComponent_changeDetection, "f").markForCheck();
506
- }
507
- get isInitialized() {
508
- return __classPrivateFieldGet(this, _SkyDataManagerComponent__isInitialized, "f");
509
- }
510
- set isInitialized(value) {
511
- __classPrivateFieldSet(this, _SkyDataManagerComponent__isInitialized, value, "f");
512
- __classPrivateFieldGet(this, _SkyDataManagerComponent_changeDetection, "f").markForCheck();
513
- }
514
- constructor(changeDetection, dataManagerService) {
515
- this.backToTopController = new Subject();
516
- this.backToTopOptions = {
517
- buttonHidden: true,
518
- };
519
- _SkyDataManagerComponent_activeViewId.set(this, void 0);
520
- _SkyDataManagerComponent_allViewkeeperClasses.set(this, {});
521
- _SkyDataManagerComponent_ngUnsubscribe.set(this, new Subject());
522
- _SkyDataManagerComponent_sourceId.set(this, 'dataManagerComponent');
523
- _SkyDataManagerComponent_changeDetection.set(this, void 0);
524
- _SkyDataManagerComponent_dataManagerService.set(this, void 0);
525
- _SkyDataManagerComponent__isInitialized.set(this, false);
526
- _SkyDataManagerComponent__currentViewkeeperClasses.set(this, VIEWKEEPER_CLASSES_DEFAULT);
527
- __classPrivateFieldSet(this, _SkyDataManagerComponent_changeDetection, changeDetection, "f");
528
- __classPrivateFieldSet(this, _SkyDataManagerComponent_dataManagerService, dataManagerService, "f");
529
- }
530
- ngOnInit() {
531
- __classPrivateFieldGet(this, _SkyDataManagerComponent_dataManagerService, "f")
532
- .getDataStateUpdates(__classPrivateFieldGet(this, _SkyDataManagerComponent_sourceId, "f"))
533
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerComponent_ngUnsubscribe, "f")))
534
- .subscribe(() => (this.isInitialized = true));
535
- __classPrivateFieldGet(this, _SkyDataManagerComponent_dataManagerService, "f").viewkeeperClasses
536
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerComponent_ngUnsubscribe, "f")))
537
- .subscribe((classes) => {
538
- __classPrivateFieldSet(this, _SkyDataManagerComponent_allViewkeeperClasses, classes, "f");
539
- this.currentViewkeeperClasses = __classPrivateFieldGet(this, _SkyDataManagerComponent_activeViewId, "f")
540
- ? classes[__classPrivateFieldGet(this, _SkyDataManagerComponent_activeViewId, "f")]
541
- : undefined;
542
- });
543
- __classPrivateFieldGet(this, _SkyDataManagerComponent_dataManagerService, "f")
544
- .getActiveViewIdUpdates()
545
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerComponent_ngUnsubscribe, "f")))
546
- .subscribe((activeViewId) => {
547
- __classPrivateFieldSet(this, _SkyDataManagerComponent_activeViewId, activeViewId, "f");
548
- this.backToTopController.next({
549
- type: SkyBackToTopMessageType.BackToTop,
550
- });
551
- this.currentViewkeeperClasses =
552
- __classPrivateFieldGet(this, _SkyDataManagerComponent_allViewkeeperClasses, "f")[__classPrivateFieldGet(this, _SkyDataManagerComponent_activeViewId, "f")];
553
- });
554
- }
555
- ngOnDestroy() {
556
- __classPrivateFieldGet(this, _SkyDataManagerComponent_ngUnsubscribe, "f").next();
557
- __classPrivateFieldGet(this, _SkyDataManagerComponent_ngUnsubscribe, "f").complete();
558
- }
559
- }
560
- _SkyDataManagerComponent_activeViewId = new WeakMap(), _SkyDataManagerComponent_allViewkeeperClasses = new WeakMap(), _SkyDataManagerComponent_ngUnsubscribe = new WeakMap(), _SkyDataManagerComponent_sourceId = new WeakMap(), _SkyDataManagerComponent_changeDetection = new WeakMap(), _SkyDataManagerComponent_dataManagerService = new WeakMap(), _SkyDataManagerComponent__isInitialized = new WeakMap(), _SkyDataManagerComponent__currentViewkeeperClasses = new WeakMap();
561
- SkyDataManagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
562
- SkyDataManagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyDataManagerComponent, selector: "sky-data-manager", ngImport: i0, template: "<div\n *ngIf=\"isInitialized\"\n class=\"sky-data-manager\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n #dataManager\n>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i10.λ7, selector: "[skyBackToTop]", inputs: ["skyBackToTop", "skyBackToTopMessageStream"] }, { kind: "directive", type: i1.λ3, selector: "[skyViewkeeper]", inputs: ["skyViewkeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
563
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerComponent, decorators: [{
564
- type: Component,
565
- args: [{ selector: 'sky-data-manager', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"isInitialized\"\n class=\"sky-data-manager\"\n [skyBackToTop]=\"backToTopOptions\"\n [skyBackToTopMessageStream]=\"backToTopController\"\n [skyViewkeeper]=\"currentViewkeeperClasses\"\n #dataManager\n>\n <ng-content></ng-content>\n</div>\n" }]
566
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyDataManagerService }]; } });
567
-
568
- // TODO: In a future breaking change convert this to an interface
569
- /**
570
- * Sets the state of the filters.
571
- */
572
- class SkyDataManagerFilterModalContext {
573
- }
574
-
575
- /**
576
- * Service that provides the column picker component type so it can be dynamically
577
- * created in the toolbar component. This avoids a circular reference between column
578
- * picker and toolbar.
579
- * https://angular.io/errors/NG3003
580
- */
581
- class SkyDataManagerColumnPickerService {
582
- }
583
- SkyDataManagerColumnPickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerColumnPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
584
- SkyDataManagerColumnPickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerColumnPickerService });
585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerColumnPickerService, decorators: [{
586
- type: Injectable
587
- }] });
588
-
589
- var _SkyDataManagerToolbarComponent_ngUnsubscribe, _SkyDataManagerToolbarComponent_changeDetector, _SkyDataManagerToolbarComponent_dataManagerService, _SkyDataManagerToolbarComponent_modalService, _SkyDataManagerToolbarComponent_columnPickerService, _SkyDataManagerToolbarComponent__source, _SkyDataManagerToolbarComponent__activeView, _SkyDataManagerToolbarComponent__dataManagerConfig, _SkyDataManagerToolbarComponent__dataState, _SkyDataManagerToolbarComponent__views;
590
- /**
591
- * Renders a `sky-toolbar` with the contents specified by the active view's `SkyDataViewConfig`
592
- * and the `SkyDataManagerToolbarLeftItemsComponent`, `SkyDataManagerToolbarRightItemsComponent`,
593
- * and `SkyDataManagerToolbarSectionComponent` wrappers.
594
- */
595
- class SkyDataManagerToolbarComponent {
596
- get activeView() {
597
- return __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__activeView, "f");
598
- }
599
- set activeView(value) {
600
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent__activeView, value, "f");
601
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_changeDetector, "f").markForCheck();
602
- }
603
- get dataManagerConfig() {
604
- return __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__dataManagerConfig, "f");
605
- }
606
- set dataManagerConfig(value) {
607
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent__dataManagerConfig, value, "f");
608
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_changeDetector, "f").markForCheck();
609
- }
610
- get dataState() {
611
- return __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__dataState, "f");
612
- }
613
- set dataState(value) {
614
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent__dataState, value, "f");
615
- if (value) {
616
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f").updateDataState(value, __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__source, "f"));
617
- }
618
- }
619
- get views() {
620
- return __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__views, "f");
621
- }
622
- set views(value) {
623
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent__views, value, "f");
624
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_changeDetector, "f").markForCheck();
625
- }
626
- constructor(changeDetector, dataManagerService, modalService, columnPickerService) {
627
- _SkyDataManagerToolbarComponent_ngUnsubscribe.set(this, new Subject());
628
- _SkyDataManagerToolbarComponent_changeDetector.set(this, void 0);
629
- _SkyDataManagerToolbarComponent_dataManagerService.set(this, void 0);
630
- _SkyDataManagerToolbarComponent_modalService.set(this, void 0);
631
- _SkyDataManagerToolbarComponent_columnPickerService.set(this, void 0);
632
- // the source to provide for data state changes
633
- _SkyDataManagerToolbarComponent__source.set(this, 'toolbar');
634
- _SkyDataManagerToolbarComponent__activeView.set(this, void 0);
635
- _SkyDataManagerToolbarComponent__dataManagerConfig.set(this, void 0);
636
- _SkyDataManagerToolbarComponent__dataState.set(this, void 0);
637
- _SkyDataManagerToolbarComponent__views.set(this, []);
638
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent_changeDetector, changeDetector, "f");
639
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent_dataManagerService, dataManagerService, "f");
640
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent_modalService, modalService, "f");
641
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent_columnPickerService, columnPickerService, "f");
642
- }
643
- ngOnInit() {
644
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f")
645
- .getActiveViewIdUpdates()
646
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_ngUnsubscribe, "f")))
647
- .subscribe((activeViewId) => {
648
- /* istanbul ignore else */
649
- if (activeViewId) {
650
- this.activeView = __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f").getViewById(activeViewId);
651
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_changeDetector, "f").markForCheck();
652
- }
653
- });
654
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f")
655
- .getDataViewsUpdates()
656
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_ngUnsubscribe, "f")))
657
- .subscribe((views) => {
658
- this.views = views;
659
- if (this.activeView) {
660
- this.activeView = __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f").getViewById(this.activeView.id);
661
- }
662
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_changeDetector, "f").markForCheck();
663
- });
664
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f")
665
- .getDataStateUpdates(__classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__source, "f"))
666
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_ngUnsubscribe, "f")))
667
- .subscribe((dataState) => {
668
- __classPrivateFieldSet(this, _SkyDataManagerToolbarComponent__dataState, dataState, "f");
669
- this.onlyShowSelected = dataState.onlyShowSelected;
670
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_changeDetector, "f").markForCheck();
671
- });
672
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f")
673
- .getDataManagerConfigUpdates()
674
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_ngUnsubscribe, "f")))
675
- .subscribe((config) => {
676
- this.dataManagerConfig = config;
677
- });
678
- }
679
- ngOnDestroy() {
680
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_ngUnsubscribe, "f").next();
681
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_ngUnsubscribe, "f").complete();
682
- }
683
- sortSelected(sortOption) {
684
- if (this.dataState) {
685
- this.dataState.activeSortOption = sortOption;
686
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f").updateDataState(this.dataState, __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__source, "f"));
687
- }
688
- }
689
- onViewChange(viewId) {
690
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f").updateActiveViewId(viewId);
691
- }
692
- searchApplied(text) {
693
- if (this.dataState) {
694
- this.dataState.searchText = text;
695
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f").updateDataState(this.dataState, __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__source, "f"));
696
- }
697
- }
698
- filterButtonClicked() {
699
- const context = new SkyDataManagerFilterModalContext();
700
- const filterModal = this.dataManagerConfig && this.dataManagerConfig.filterModalComponent;
701
- context.filterData = this.dataState?.filterData;
702
- const options = {
703
- providers: [
704
- { provide: SkyDataManagerFilterModalContext, useValue: context },
705
- ],
706
- size: 'large',
707
- };
708
- if (filterModal) {
709
- const modalInstance = __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_modalService, "f").open(filterModal, options);
710
- modalInstance.closed.subscribe((result) => {
711
- if (this.dataState && result.reason === 'save') {
712
- this.dataState.filterData = result.data;
713
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f").updateDataState(this.dataState, __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__source, "f"));
714
- }
715
- });
716
- }
717
- }
718
- openColumnPicker() {
719
- if (this.dataState && this.activeView && this.activeView.columnOptions) {
720
- const viewState = this.dataState.getViewStateById(this.activeView.id);
721
- if (viewState) {
722
- const context = new SkyDataManagerColumnPickerContext(this.activeView.columnOptions, viewState.displayedColumnIds);
723
- if (this.activeView.columnPickerSortStrategy) {
724
- context.columnPickerSortStrategy =
725
- this.activeView.columnPickerSortStrategy;
726
- }
727
- const options = {
728
- providers: [
729
- { provide: SkyDataManagerColumnPickerContext, useValue: context },
730
- ],
731
- };
732
- const modalInstance = __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_modalService, "f").open(__classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_columnPickerService, "f").getComponentType(), options);
733
- modalInstance.closed.subscribe((result) => {
734
- if (result.reason === 'save') {
735
- const displayedColumnIds = result.data.map((col) => col.id);
736
- viewState.displayedColumnIds = displayedColumnIds;
737
- if (this.dataState && this.activeView) {
738
- this.dataState = this.dataState.addOrUpdateView(this.activeView.id, viewState);
739
- }
740
- }
741
- });
742
- }
743
- }
744
- }
745
- selectAll() {
746
- /* istanbul ignore else */
747
- if (this.activeView?.onSelectAllClick) {
748
- this.activeView.onSelectAllClick();
749
- }
750
- }
751
- clearAll() {
752
- /* istanbul ignore else */
753
- if (this.activeView?.onClearAllClick) {
754
- this.activeView.onClearAllClick();
755
- }
756
- }
757
- onOnlyShowSelected(event) {
758
- if (this.dataState) {
759
- this.dataState.onlyShowSelected = !!event.checked;
760
- __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent_dataManagerService, "f").updateDataState(this.dataState, __classPrivateFieldGet(this, _SkyDataManagerToolbarComponent__source, "f"));
761
- }
762
- }
763
- }
764
- _SkyDataManagerToolbarComponent_ngUnsubscribe = new WeakMap(), _SkyDataManagerToolbarComponent_changeDetector = new WeakMap(), _SkyDataManagerToolbarComponent_dataManagerService = new WeakMap(), _SkyDataManagerToolbarComponent_modalService = new WeakMap(), _SkyDataManagerToolbarComponent_columnPickerService = new WeakMap(), _SkyDataManagerToolbarComponent__source = new WeakMap(), _SkyDataManagerToolbarComponent__activeView = new WeakMap(), _SkyDataManagerToolbarComponent__dataManagerConfig = new WeakMap(), _SkyDataManagerToolbarComponent__dataState = new WeakMap(), _SkyDataManagerToolbarComponent__views = new WeakMap();
765
- SkyDataManagerToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: SkyDataManagerService }, { token: i3.SkyModalService }, { token: SkyDataManagerColumnPickerService }], target: i0.ɵɵFactoryTarget.Component });
766
- SkyDataManagerToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyDataManagerToolbarComponent, selector: "sky-data-manager-toolbar", ngImport: i0, template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar>\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.filterButtonEnabled\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n >\n </sky-filter-button>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.sortEnabled\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n <sky-sort-item\n *ngFor=\"let item of dataManagerConfig?.sortOptions\"\n [active]=\"!!(dataState?.activeSortOption?.id === item.id)\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n </sky-sort>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.columnPickerEnabled\">\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon icon=\"columns\"></sky-icon>\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.searchEnabled\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\"></ng-content>\n <sky-radio-group\n *ngIf=\"activeView && views && views.length > 1\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n class=\"sky-switch-icon-group\"\n >\n <sky-radio\n *ngFor=\"let view of views\"\n [attr.aria-label]=\"view.name\"\n [icon]=\"view.icon\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n >\n </sky-radio>\n </sky-radio-group>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\"></ng-content>\n </sky-toolbar>\n\n <sky-toolbar\n *ngIf=\"activeView?.multiselectToolbarEnabled\"\n class=\"sky-data-manager-multiselect-toolbar\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title' | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.λ3, selector: "sky-checkbox", inputs: ["label", "labelledBy", "id", "disabled", "tabindex", "name", "icon", "checkboxType", "checked", "indeterminate", "required"], outputs: ["change", "checkedChange", "disabledChange", "indeterminateChange"] }, { kind: "component", type: i6.λ4, selector: "sky-checkbox-label" }, { kind: "component", type: i5$1.λ1, selector: "sky-filter-button", inputs: ["filterButtonId", "ariaControls", "ariaExpanded", "active", "disabled", "showButtonText"], outputs: ["filterButtonClick"] }, { kind: "component", type: i8.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i6.λ13, selector: "sky-radio", inputs: ["checked", "disabled", "id", "label", "labelledBy", "name", "tabindex", "value", "icon", "radioType"], outputs: ["change", "checkedChange", "disabledChange"] }, { kind: "component", type: i6.λ11, selector: "sky-radio-group", inputs: ["ariaLabelledBy", "ariaLabel", "disabled", "name", "required", "value", "tabIndex"] }, { kind: "component", type: i9.SkySearchComponent, selector: "sky-search", inputs: ["searchText", "expandMode", "debounceTime", "disabled", "placeholderText"], outputs: ["searchApply", "searchChange", "searchClear"] }, { kind: "component", type: i5$1.λ14, selector: "sky-sort", inputs: ["showButtonText"] }, { kind: "component", type: i5$1.λ13, selector: "sky-sort-item", inputs: ["active"], outputs: ["itemSelect"] }, { kind: "component", type: i10.λ37, selector: "sky-toolbar" }, { kind: "component", type: i10.λ39, selector: "sky-toolbar-item" }, { kind: "component", type: i10.λ38, selector: "sky-toolbar-section" }, { kind: "component", type: i10.λ40, selector: "sky-toolbar-view-actions" }, { kind: "pipe", type: i11.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
767
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarComponent, decorators: [{
768
- type: Component,
769
- args: [{ selector: 'sky-data-manager-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-data-manager-toolbar\">\n <sky-toolbar>\n <sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-primary-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.filterButtonEnabled\">\n <sky-filter-button\n [showButtonText]=\"activeView?.showFilterButtonText\"\n (filterButtonClick)=\"filterButtonClicked()\"\n >\n </sky-filter-button>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.sortEnabled\">\n <sky-sort [showButtonText]=\"activeView?.showSortButtonText\">\n <sky-sort-item\n *ngFor=\"let item of dataManagerConfig?.sortOptions\"\n [active]=\"!!(dataState?.activeSortOption?.id === item.id)\"\n (itemSelect)=\"sortSelected(item)\"\n >\n {{ item.label }}\n </sky-sort-item>\n </sky-sort>\n </sky-toolbar-item>\n\n <sky-toolbar-item *ngIf=\"activeView?.columnPickerEnabled\">\n <button\n class=\"sky-btn sky-btn-default sky-col-picker-btn\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n [attr.title]=\"\n 'skyux_data_manager_columns_button_title' | skyLibResources\n \"\n (click)=\"openColumnPicker()\"\n >\n <sky-icon icon=\"columns\"></sky-icon>\n <span class=\"sky-column-selector-action-btn-text\">\n {{ 'skyux_data_manager_columns_button_title' | skyLibResources }}\n </span>\n </button>\n </sky-toolbar-item>\n\n <ng-content select=\"sky-data-manager-toolbar-left-item\"></ng-content>\n\n <sky-toolbar-item *ngIf=\"activeView?.searchEnabled\">\n <sky-search\n [expandMode]=\"activeView?.searchExpandMode\"\n [placeholderText]=\"activeView?.searchPlaceholderText\"\n [searchText]=\"dataState?.searchText\"\n (searchApply)=\"searchApplied($event)\"\n >\n </sky-search>\n </sky-toolbar-item>\n\n <sky-toolbar-view-actions>\n <ng-content select=\"sky-data-manager-toolbar-right-item\"></ng-content>\n <sky-radio-group\n *ngIf=\"activeView && views && views.length > 1\"\n [ariaLabel]=\"'data view switcher'\"\n [(ngModel)]=\"activeView.id\"\n class=\"sky-switch-icon-group\"\n >\n <sky-radio\n *ngFor=\"let view of views\"\n [attr.aria-label]=\"view.name\"\n [icon]=\"view.icon\"\n [value]=\"view.id\"\n [label]=\"view.name\"\n (change)=\"onViewChange(view.id)\"\n >\n </sky-radio>\n </sky-radio-group>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n <ng-content select=\"sky-data-manager-toolbar-section\"></ng-content>\n </sky-toolbar>\n\n <sky-toolbar\n *ngIf=\"activeView?.multiselectToolbarEnabled\"\n class=\"sky-data-manager-multiselect-toolbar\"\n >\n <sky-toolbar-section>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-select-all-btn\"\n type=\"button\"\n (click)=\"selectAll()\"\n >\n {{ 'skyux_data_manager_select_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-item>\n <button\n class=\"sky-btn sky-btn-link sky-data-manager-clear-all-btn\"\n type=\"button\"\n (click)=\"clearAll()\"\n >\n {{ 'skyux_data_manager_clear_all_button_title' | skyLibResources }}\n </button>\n </sky-toolbar-item>\n <sky-toolbar-view-actions>\n <sky-checkbox\n [checked]=\"onlyShowSelected\"\n (change)=\"onOnlyShowSelected($event)\"\n >\n <sky-checkbox-label>\n {{\n 'skyux_data_manager_show_selected_option_title' | skyLibResources\n }}\n </sky-checkbox-label>\n </sky-checkbox>\n </sky-toolbar-view-actions>\n </sky-toolbar-section>\n </sky-toolbar>\n</div>\n", styles: [":host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}:host-context(.sky-responsive-container-xs) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:none}@media (min-width: 768px){:host .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}}:host-context(.sky-responsive-container-sm) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-md) .sky-col-picker-btn .sky-column-selector-action-btn-text,:host-context(.sky-responsive-container-lg) .sky-col-picker-btn .sky-column-selector-action-btn-text{display:inline}\n"] }]
770
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkyDataManagerService }, { type: i3.SkyModalService }, { type: SkyDataManagerColumnPickerService }]; } });
771
-
772
- var _SkyDataViewComponent__isActive, _SkyDataViewComponent_ngUnsubscribe, _SkyDataViewComponent_dataManagerService, _SkyDataViewComponent_changeDetector;
773
- /**
774
- * A data view is rendered within a data manager component.
775
- * It can subscribe to data state changes from `SkyDataManagerService` and apply the filters,
776
- * search text, and more to the data it displays.
777
- */
778
- class SkyDataViewComponent {
779
- get isActive() {
780
- return __classPrivateFieldGet(this, _SkyDataViewComponent__isActive, "f");
781
- }
782
- set isActive(value) {
783
- __classPrivateFieldSet(this, _SkyDataViewComponent__isActive, value, "f");
784
- __classPrivateFieldGet(this, _SkyDataViewComponent_changeDetector, "f").markForCheck();
785
- }
786
- constructor(dataManagerService, changeDetector) {
787
- _SkyDataViewComponent__isActive.set(this, false);
788
- _SkyDataViewComponent_ngUnsubscribe.set(this, new Subject());
789
- _SkyDataViewComponent_dataManagerService.set(this, void 0);
790
- _SkyDataViewComponent_changeDetector.set(this, void 0);
791
- __classPrivateFieldSet(this, _SkyDataViewComponent_dataManagerService, dataManagerService, "f");
792
- __classPrivateFieldSet(this, _SkyDataViewComponent_changeDetector, changeDetector, "f");
793
- }
794
- ngOnInit() {
795
- __classPrivateFieldGet(this, _SkyDataViewComponent_dataManagerService, "f")
796
- .getActiveViewIdUpdates()
797
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f")))
798
- .subscribe((activeViewId) => {
799
- this.isActive = this.viewId === activeViewId;
800
- });
801
- }
802
- ngOnDestroy() {
803
- __classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f").next();
804
- __classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f").complete();
805
- }
806
- }
807
- _SkyDataViewComponent__isActive = new WeakMap(), _SkyDataViewComponent_ngUnsubscribe = new WeakMap(), _SkyDataViewComponent_dataManagerService = new WeakMap(), _SkyDataViewComponent_changeDetector = new WeakMap();
808
- SkyDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataViewComponent, deps: [{ token: SkyDataManagerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
809
- SkyDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
810
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataViewComponent, decorators: [{
811
- type: Component,
812
- args: [{ selector: 'sky-data-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n" }]
813
- }], ctorParameters: function () { return [{ type: SkyDataManagerService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { viewId: [{
814
- type: Input
815
- }] } });
816
-
817
- var _SkyDataManagerColumnPickerComponent_instances, _SkyDataManagerColumnPickerComponent_ngUnsubscribe, _SkyDataManagerColumnPickerComponent__dataState, _SkyDataManagerColumnPickerComponent_formatColumnOptions;
818
- /**
819
- * @internal
820
- */
821
- class SkyDataManagerColumnPickerComponent {
822
- get dataState() {
823
- return __classPrivateFieldGet(this, _SkyDataManagerColumnPickerComponent__dataState, "f");
824
- }
825
- set dataState(value) {
826
- __classPrivateFieldSet(this, _SkyDataManagerColumnPickerComponent__dataState, value, "f");
827
- this.updateData();
828
- }
829
- constructor(context, dataManagerService, instance) {
830
- this.context = context;
831
- this.dataManagerService = dataManagerService;
832
- this.instance = instance;
833
- _SkyDataManagerColumnPickerComponent_instances.add(this);
834
- this.columnData = [];
835
- this.displayedColumnData = [];
836
- this.viewConfig = {
837
- id: 'columnPicker',
838
- name: 'Column Picker',
839
- searchEnabled: true,
840
- searchExpandMode: 'fit',
841
- multiselectToolbarEnabled: true,
842
- onSelectAllClick: this.selectAll.bind(this),
843
- onClearAllClick: this.clearAll.bind(this),
844
- };
845
- this.isAnyDisplayedColumnSelected = false;
846
- _SkyDataManagerColumnPickerComponent_ngUnsubscribe.set(this, new Subject());
847
- _SkyDataManagerColumnPickerComponent__dataState.set(this, new SkyDataManagerState({}));
848
- }
849
- ngOnInit() {
850
- this.dataManagerService.initDataManager({
851
- activeViewId: this.viewConfig.id,
852
- dataManagerConfig: {},
853
- defaultDataState: this.dataState,
854
- });
855
- this.dataManagerService.initDataView(this.viewConfig);
856
- this.columnData = __classPrivateFieldGet(this, _SkyDataManagerColumnPickerComponent_instances, "m", _SkyDataManagerColumnPickerComponent_formatColumnOptions).call(this);
857
- this.dataManagerService
858
- .getDataStateUpdates('columnPicker')
859
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerColumnPickerComponent_ngUnsubscribe, "f")))
860
- .subscribe((state) => {
861
- this.dataState = state;
862
- });
863
- }
864
- ngOnDestroy() {
865
- __classPrivateFieldGet(this, _SkyDataManagerColumnPickerComponent_ngUnsubscribe, "f").next();
866
- __classPrivateFieldGet(this, _SkyDataManagerColumnPickerComponent_ngUnsubscribe, "f").complete();
867
- }
868
- updateData() {
869
- this.displayedColumnData = this.searchColumns(this.columnData.filter((col) => !col.alwaysDisplayed));
870
- if (this.dataState.onlyShowSelected) {
871
- this.displayedColumnData = this.displayedColumnData.filter((col) => col.isSelected);
872
- }
873
- this.isAnyDisplayedColumnSelected = this.displayedColumnData.some((col) => col.isSelected);
874
- }
875
- searchColumns(columns) {
876
- let searchedColumns = columns;
877
- const searchText = this.dataState && this.dataState.searchText?.toUpperCase();
878
- if (searchText) {
879
- searchedColumns = columns.filter((item) => {
880
- for (const property in item) {
881
- if (Object.prototype.hasOwnProperty.call(item, property) &&
882
- (property === 'label' || property === 'description')) {
883
- const propertyText = item[property]?.toUpperCase();
884
- if (propertyText && propertyText.indexOf(searchText) > -1) {
885
- return true;
886
- }
887
- }
888
- }
889
- return false;
890
- });
891
- }
892
- return searchedColumns;
893
- }
894
- selectAll() {
895
- this.displayedColumnData.forEach((column) => (column.isSelected = true));
896
- this.updateData();
897
- }
898
- clearAll() {
899
- this.displayedColumnData.forEach((column) => (column.isSelected = false));
900
- this.updateData();
901
- }
902
- onIsSelectedChange() {
903
- this.updateData();
904
- }
905
- cancelChanges() {
906
- this.instance.cancel();
907
- }
908
- isSelected(id) {
909
- return (this.context.displayedColumnIds.findIndex((colId) => colId === id) !== -1);
910
- }
911
- applyChanges() {
912
- this.instance.save(this.columnData.filter((col) => col.isSelected || col.alwaysDisplayed));
913
- }
914
- }
915
- _SkyDataManagerColumnPickerComponent_ngUnsubscribe = new WeakMap(), _SkyDataManagerColumnPickerComponent__dataState = new WeakMap(), _SkyDataManagerColumnPickerComponent_instances = new WeakSet(), _SkyDataManagerColumnPickerComponent_formatColumnOptions = function _SkyDataManagerColumnPickerComponent_formatColumnOptions() {
916
- const allColumnOptions = this.context.columnOptions;
917
- const visibleColumnIds = this.context.displayedColumnIds;
918
- let formattedColumnOptions = [];
919
- const unselectedColumnOptions = [];
920
- for (const columnOption of allColumnOptions) {
921
- // format the column with the properties the column picker needs
922
- const colIndex = visibleColumnIds.indexOf(columnOption.id);
923
- const formattedColumn = {
924
- alwaysDisplayed: columnOption.alwaysDisplayed,
925
- id: columnOption.id,
926
- label: columnOption.label,
927
- description: columnOption.description,
928
- isSelected: colIndex !== -1,
929
- };
930
- // if column picker sorting is currently enabled sort columns by order displayed then alphabetical
931
- // else display column in order they were specified in the columnOptions
932
- if (this.context.columnPickerSortStrategy ===
933
- SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical) {
934
- if (formattedColumn.isSelected) {
935
- formattedColumnOptions[colIndex] = formattedColumn;
936
- }
937
- else {
938
- unselectedColumnOptions.push(formattedColumn);
939
- }
940
- }
941
- else {
942
- formattedColumnOptions.push(formattedColumn);
943
- }
944
- }
945
- // if column picker sorting is enabled, sort the columns that are not currently displayed
946
- // and add them after the currently displayed options
947
- if (this.context.columnPickerSortStrategy ===
948
- SkyDataManagerColumnPickerSortStrategy.SelectedThenAlphabetical) {
949
- unselectedColumnOptions.sort((col1, col2) => col1.label.localeCompare(col2.label));
950
- formattedColumnOptions = formattedColumnOptions.concat(unselectedColumnOptions);
951
- }
952
- return formattedColumnOptions;
953
- };
954
- SkyDataManagerColumnPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerColumnPickerComponent, deps: [{ token: SkyDataManagerColumnPickerContext }, { token: SkyDataManagerService }, { token: i3.SkyModalInstance }], target: i0.ɵɵFactoryTarget.Component });
955
- SkyDataManagerColumnPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyDataManagerColumnPickerComponent, selector: "sky-data-manager-column-picker", providers: [SkyDataManagerService], ngImport: i0, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_data_manager_column_picker_title' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar> </sky-data-manager-toolbar>\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let column of displayedColumnData\"\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n <div\n class=\"sky-data-manager-column-picker-footer-stacked-indicator\"\n *ngIf=\"!isAnyDisplayedColumnSelected\"\n >\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:5px}.sky-data-manager-column-picker-footer-stacked-indicator{margin:0 5px 10px 0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.λ5, selector: "sky-modal", inputs: ["formErrors", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy"] }, { kind: "component", type: i3.λ2, selector: "sky-modal-content" }, { kind: "component", type: i3.λ3, selector: "sky-modal-footer" }, { kind: "component", type: i3.λ4, selector: "sky-modal-header" }, { kind: "component", type: i5$1.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { kind: "component", type: i5$1.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { kind: "component", type: i5$1.λ8, selector: "sky-repeater-item-content" }, { kind: "component", type: i5$1.λ12, selector: "sky-repeater-item-title" }, { kind: "component", type: i8.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }, { kind: "component", type: SkyDataManagerComponent, selector: "sky-data-manager" }, { kind: "component", type: SkyDataManagerToolbarComponent, selector: "sky-data-manager-toolbar" }, { kind: "component", type: SkyDataViewComponent, selector: "sky-data-view", inputs: ["viewId"] }, { kind: "pipe", type: i11.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
956
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerColumnPickerComponent, decorators: [{
957
- type: Component,
958
- args: [{ selector: 'sky-data-manager-column-picker', providers: [SkyDataManagerService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<sky-modal>\n <sky-modal-header>\n {{ 'skyux_data_manager_column_picker_title' | skyLibResources }}\n </sky-modal-header>\n <sky-modal-content class=\"sky-data-manager-column-picker-content\">\n <sky-data-manager>\n <sky-data-manager-toolbar> </sky-data-manager-toolbar>\n\n <sky-data-view [viewId]=\"viewConfig.id\">\n <sky-repeater expandMode=\"none\">\n <sky-repeater-item\n *ngFor=\"let column of displayedColumnData\"\n [selectable]=\"true\"\n [(isSelected)]=\"column.isSelected\"\n (isSelectedChange)=\"onIsSelectedChange()\"\n >\n <sky-repeater-item-title>\n {{ column.label }}\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n {{ column.description }}\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n </sky-data-view>\n </sky-data-manager>\n </sky-modal-content>\n <sky-modal-footer>\n <div\n class=\"sky-data-manager-column-picker-footer-stacked-indicator\"\n *ngIf=\"!isAnyDisplayedColumnSelected\"\n >\n <sky-status-indicator descriptionType=\"error\" indicatorType=\"danger\">\n {{\n 'skyux_data_manager_select_column_status_indicator_title'\n | skyLibResources\n }}\n </sky-status-indicator>\n </div>\n <button\n sky-cmp-id=\"apply-changes\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!isAnyDisplayedColumnSelected\"\n (click)=\"applyChanges()\"\n >\n {{ 'skyux_data_manager_apply_changes_button_title' | skyLibResources }}\n </button>\n <button\n sky-cmp-id=\"cancel\"\n class=\"sky-btn sky-btn-link\"\n (click)=\"cancelChanges()\"\n >\n {{ 'skyux_data_manager_cancel_button_title' | skyLibResources }}\n </button>\n </sky-modal-footer>\n</sky-modal>\n", styles: [".sky-data-manager-column-picker-content sky-repeater-item-content{margin-top:5px}.sky-data-manager-column-picker-footer-stacked-indicator{margin:0 5px 10px 0}\n"] }]
959
- }], ctorParameters: function () { return [{ type: SkyDataManagerColumnPickerContext }, { type: SkyDataManagerService }, { type: i3.SkyModalInstance }]; } });
960
-
961
- class SkyDataManagerColumnPickerImplService {
962
- getComponentType() {
963
- return SkyDataManagerColumnPickerComponent;
964
- }
965
- }
966
- SkyDataManagerColumnPickerImplService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerColumnPickerImplService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
967
- SkyDataManagerColumnPickerImplService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerColumnPickerImplService });
968
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerColumnPickerImplService, decorators: [{
969
- type: Injectable
970
- }] });
971
-
972
- /**
973
- * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are
974
- * rendered after the standard toolbar actions and before the search box. Each item should be
975
- * wrapped in its own `sky-data-manager-toolbar-left-item`. The items render in the order they are in in the template.
976
- */
977
- class SkyDataManagerToolbarLeftItemComponent {
978
- }
979
- SkyDataManagerToolbarLeftItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
980
- SkyDataManagerToolbarLeftItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyDataManagerToolbarLeftItemComponent, selector: "sky-data-manager-toolbar-left-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n", dependencies: [{ kind: "component", type: i10.λ39, selector: "sky-toolbar-item" }] });
981
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarLeftItemComponent, decorators: [{
982
- type: Component,
983
- args: [{ selector: 'sky-data-manager-toolbar-left-item', template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n" }]
984
- }] });
985
-
986
- /**
987
- * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are
988
- * rendered as the first items in the toolbar and should be standard actions. Each item should be
989
- * wrapped in its own `sky-data-manager-toolbar-primary-item`. The items render in the order they are in in the template.
990
- */
991
- class SkyDataManagerToolbarPrimaryItemComponent {
992
- }
993
- SkyDataManagerToolbarPrimaryItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
994
- SkyDataManagerToolbarPrimaryItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyDataManagerToolbarPrimaryItemComponent, selector: "sky-data-manager-toolbar-primary-item", ngImport: i0, template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n", dependencies: [{ kind: "component", type: i10.λ39, selector: "sky-toolbar-item" }] });
995
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarPrimaryItemComponent, decorators: [{
996
- type: Component,
997
- args: [{ selector: 'sky-data-manager-toolbar-primary-item', template: "<sky-toolbar-item>\n <ng-content></ng-content>\n</sky-toolbar-item>\n" }]
998
- }] });
999
-
1000
- /**
1001
- * A wrapper for an item to be rendered in `SkyDataManagerToolbarComponent`. The contents are
1002
- * rendered in `sky-toolbar-view-actions` on the right side of the toolbar and before the view
1003
- * switcher icons (if present). Each item should be wrapped in its own
1004
- * `sky-data-manager-toolbar-right-item`. The items render in the order they are in in the template.
1005
- */
1006
- class SkyDataManagerToolbarRightItemComponent {
1007
- }
1008
- SkyDataManagerToolbarRightItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1009
- SkyDataManagerToolbarRightItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyDataManagerToolbarRightItemComponent, selector: "sky-data-manager-toolbar-right-item", ngImport: i0, template: "<ng-content></ng-content>\n" });
1010
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarRightItemComponent, decorators: [{
1011
- type: Component,
1012
- args: [{ selector: 'sky-data-manager-toolbar-right-item', template: "<ng-content></ng-content>\n" }]
1013
- }] });
1014
-
1015
- /**
1016
- * A wrapper for items to be rendered in `SkyDataManagerToolbarComponent`. The contents are
1017
- * rendered in an additional toolbar row beneath the primary toolbar and above the multiselect
1018
- * toolbar (if present).
1019
- */
1020
- class SkyDataManagerToolbarSectionComponent {
1021
- }
1022
- SkyDataManagerToolbarSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1023
- SkyDataManagerToolbarSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyDataManagerToolbarSectionComponent, selector: "sky-data-manager-toolbar-section", ngImport: i0, template: "<sky-toolbar-section>\n <ng-content></ng-content>\n</sky-toolbar-section>\n", dependencies: [{ kind: "component", type: i10.λ38, selector: "sky-toolbar-section" }] });
1024
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerToolbarSectionComponent, decorators: [{
1025
- type: Component,
1026
- args: [{ selector: 'sky-data-manager-toolbar-section', template: "<sky-toolbar-section>\n <ng-content></ng-content>\n</sky-toolbar-section>\n" }]
1027
- }] });
1028
-
1029
- class SkyDataManagerModule {
1030
- }
1031
- SkyDataManagerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1032
- SkyDataManagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerModule, declarations: [SkyDataManagerColumnPickerComponent,
1033
- SkyDataManagerComponent,
1034
- SkyDataManagerToolbarLeftItemComponent,
1035
- SkyDataManagerToolbarPrimaryItemComponent,
1036
- SkyDataManagerToolbarRightItemComponent,
1037
- SkyDataManagerToolbarSectionComponent,
1038
- SkyDataManagerToolbarComponent,
1039
- SkyDataViewComponent], imports: [CommonModule,
1040
- FormsModule,
1041
- SkyBackToTopModule,
1042
- SkyCheckboxModule,
1043
- SkyDataManagerResourcesModule,
1044
- SkyFilterModule,
1045
- SkyIconModule,
1046
- SkyModalModule,
1047
- SkyRadioModule,
1048
- SkyRepeaterModule,
1049
- SkySearchModule,
1050
- SkyStatusIndicatorModule,
1051
- SkySortModule,
1052
- SkyToolbarModule,
1053
- SkyViewkeeperModule], exports: [SkyDataManagerColumnPickerComponent,
1054
- SkyDataManagerComponent,
1055
- SkyDataManagerToolbarLeftItemComponent,
1056
- SkyDataManagerToolbarPrimaryItemComponent,
1057
- SkyDataManagerToolbarRightItemComponent,
1058
- SkyDataManagerToolbarSectionComponent,
1059
- SkyDataManagerToolbarComponent,
1060
- SkyDataViewComponent] });
1061
- SkyDataManagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerModule, providers: [
1062
- {
1063
- provide: SkyDataManagerColumnPickerService,
1064
- useClass: SkyDataManagerColumnPickerImplService,
1065
- },
1066
- ], imports: [CommonModule,
1067
- FormsModule,
1068
- SkyBackToTopModule,
1069
- SkyCheckboxModule,
1070
- SkyDataManagerResourcesModule,
1071
- SkyFilterModule,
1072
- SkyIconModule,
1073
- SkyModalModule,
1074
- SkyRadioModule,
1075
- SkyRepeaterModule,
1076
- SkySearchModule,
1077
- SkyStatusIndicatorModule,
1078
- SkySortModule,
1079
- SkyToolbarModule,
1080
- SkyViewkeeperModule] });
1081
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyDataManagerModule, decorators: [{
1082
- type: NgModule,
1083
- args: [{
1084
- declarations: [
1085
- SkyDataManagerColumnPickerComponent,
1086
- SkyDataManagerComponent,
1087
- SkyDataManagerToolbarLeftItemComponent,
1088
- SkyDataManagerToolbarPrimaryItemComponent,
1089
- SkyDataManagerToolbarRightItemComponent,
1090
- SkyDataManagerToolbarSectionComponent,
1091
- SkyDataManagerToolbarComponent,
1092
- SkyDataViewComponent,
1093
- ],
1094
- imports: [
1095
- CommonModule,
1096
- FormsModule,
1097
- SkyBackToTopModule,
1098
- SkyCheckboxModule,
1099
- SkyDataManagerResourcesModule,
1100
- SkyFilterModule,
1101
- SkyIconModule,
1102
- SkyModalModule,
1103
- SkyRadioModule,
1104
- SkyRepeaterModule,
1105
- SkySearchModule,
1106
- SkyStatusIndicatorModule,
1107
- SkySortModule,
1108
- SkyToolbarModule,
1109
- SkyViewkeeperModule,
1110
- ],
1111
- exports: [
1112
- SkyDataManagerColumnPickerComponent,
1113
- SkyDataManagerComponent,
1114
- SkyDataManagerToolbarLeftItemComponent,
1115
- SkyDataManagerToolbarPrimaryItemComponent,
1116
- SkyDataManagerToolbarRightItemComponent,
1117
- SkyDataManagerToolbarSectionComponent,
1118
- SkyDataManagerToolbarComponent,
1119
- SkyDataViewComponent,
1120
- ],
1121
- providers: [
1122
- {
1123
- provide: SkyDataManagerColumnPickerService,
1124
- useClass: SkyDataManagerColumnPickerImplService,
1125
- },
1126
- ],
1127
- }]
1128
- }] });
1129
-
1130
- /**
1131
- * Generated bundle index. Do not edit.
1132
- */
1133
-
1134
- export { SkyDataManagerColumnPickerSortStrategy, SkyDataManagerFilterModalContext, SkyDataManagerModule, SkyDataManagerService, SkyDataManagerState, SkyDataViewState, SkyDataManagerColumnPickerComponent as λ1, SkyDataManagerComponent as λ2, SkyDataManagerToolbarLeftItemComponent as λ3, SkyDataManagerToolbarPrimaryItemComponent as λ4, SkyDataManagerToolbarRightItemComponent as λ5, SkyDataManagerToolbarSectionComponent as λ6, SkyDataManagerToolbarComponent as λ7, SkyDataViewComponent as λ8 };
1135
- //# sourceMappingURL=skyux-data-manager.mjs.map