@fundamental-ngx/cdk 0.56.4 → 0.57.0-rc.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.
- package/data-source/index.d.ts +236 -8
- package/fesm2022/fundamental-ngx-cdk-data-source.mjs +7 -7
- package/fesm2022/fundamental-ngx-cdk-data-source.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk-forms.mjs +10 -10
- package/fesm2022/fundamental-ngx-cdk-forms.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk-utils.mjs +302 -300
- package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk.mjs +4 -4
- package/fesm2022/fundamental-ngx-cdk.mjs.map +1 -1
- package/forms/index.d.ts +396 -12
- package/index.d.ts +12 -1
- package/package.json +8 -8
- package/utils/index.d.ts +3253 -24
- package/data-source/base/abstract-data-provider.class.d.ts +0 -54
- package/data-source/base/base-data-source.class.d.ts +0 -64
- package/data-source/data-source.directive.d.ts +0 -46
- package/data-source/data-source.module.d.ts +0 -7
- package/data-source/helpers/apply-datasource-directive.d.ts +0 -6
- package/data-source/helpers/common.d.ts +0 -7
- package/data-source/helpers/is-datasource.d.ts +0 -5
- package/data-source/models/data-source-provider.d.ts +0 -22
- package/data-source/models/data-source.d.ts +0 -16
- package/data-source/models/index.d.ts +0 -3
- package/data-source/models/matching-strategy.d.ts +0 -10
- package/data-source/tokens.d.ts +0 -6
- package/forms/cva/cva-control.class.d.ts +0 -25
- package/forms/cva/cva.directive.d.ts +0 -181
- package/forms/forms.module.d.ts +0 -7
- package/forms/helpers/state.d.ts +0 -3
- package/forms/models/control-type.model.d.ts +0 -6
- package/forms/models/cva.d.ts +0 -4
- package/forms/models/form-error.d.ts +0 -36
- package/forms/models/form-field.d.ts +0 -88
- package/forms/models/form-state.d.ts +0 -2
- package/forms/models/select-item.d.ts +0 -47
- package/forms/tokens/form-field-control.token.d.ts +0 -3
- package/forms/tokens/form-field.token.d.ts +0 -3
- package/fundamental-ngx.module.d.ts +0 -9
- package/utils/abstract-fd-ngx-class.d.ts +0 -28
- package/utils/async-strategy/function-strategy.class.d.ts +0 -8
- package/utils/async-strategy/index.d.ts +0 -6
- package/utils/async-strategy/observable-strategy.class.d.ts +0 -9
- package/utils/async-strategy/promise-strategy.class.d.ts +0 -8
- package/utils/async-strategy/select-strategy.class.d.ts +0 -8
- package/utils/async-strategy/subscription-strategy.interface.d.ts +0 -10
- package/utils/async-strategy/value-strategy.class.d.ts +0 -8
- package/utils/coercion/array.d.ts +0 -2
- package/utils/components/dynamic-portal/dynamic-portal.component.d.ts +0 -36
- package/utils/components/index.d.ts +0 -1
- package/utils/consts/error-messages.d.ts +0 -3
- package/utils/consts/index.d.ts +0 -4
- package/utils/consts/overflow-priority-score.d.ts +0 -2
- package/utils/consts/unicode-letters.regex.d.ts +0 -7
- package/utils/consts/unicode-numbers.regex.d.ts +0 -6
- package/utils/datatypes/color-accent.datatype.d.ts +0 -3
- package/utils/datatypes/hash.datatype.d.ts +0 -3
- package/utils/datatypes/index.d.ts +0 -4
- package/utils/datatypes/object-nesting.types.d.ts +0 -4
- package/utils/datatypes/size.datatype.d.ts +0 -1
- package/utils/decorators/apply-css-class.decorator.d.ts +0 -10
- package/utils/decorators/apply-css-style.decorator.d.ts +0 -10
- package/utils/decorators/coerce-boolean.d.ts +0 -4
- package/utils/decorators/coerce-css-pixel.d.ts +0 -1
- package/utils/decorators/index.d.ts +0 -5
- package/utils/decorators/setter-alternator.d.ts +0 -4
- package/utils/deprecated-selector.class.d.ts +0 -18
- package/utils/directives/auto-complete/auto-complete.directive.d.ts +0 -59
- package/utils/directives/auto-complete/auto-complete.module.d.ts +0 -7
- package/utils/directives/breakpoints/breakpoint.directive.d.ts +0 -78
- package/utils/directives/breakpoints/responsive-breakpoints.d.ts +0 -10
- package/utils/directives/clicked/clicked-behavior.module.d.ts +0 -16
- package/utils/directives/clicked/clicked-event.plugin.d.ts +0 -26
- package/utils/directives/clicked/clicked.directive.d.ts +0 -17
- package/utils/directives/clicked/element-click.observable.d.ts +0 -8
- package/utils/directives/clicked/fdk-clicked-provider.service.d.ts +0 -23
- package/utils/directives/clicked/index.d.ts +0 -5
- package/utils/directives/clicked/provide-fdk-clicked.d.ts +0 -11
- package/utils/directives/disabled/default-disabled-view-modifier.d.ts +0 -9
- package/utils/directives/disabled/disabled-behavior.directive.d.ts +0 -35
- package/utils/directives/disabled/disabled-behavior.interface.d.ts +0 -7
- package/utils/directives/disabled/disabled-behavior.module.d.ts +0 -7
- package/utils/directives/disabled/disabled-view-modifier.interface.d.ts +0 -3
- package/utils/directives/disabled/disabled.observer.d.ts +0 -18
- package/utils/directives/disabled/fdk-disabled-provider.service.d.ts +0 -35
- package/utils/directives/disabled/fdk-disabled.token.d.ts +0 -3
- package/utils/directives/disabled/index.d.ts +0 -8
- package/utils/directives/disabled/set-disabled-state.d.ts +0 -4
- package/utils/directives/focus-key-manager/focus-key-manager-helpers.module.d.ts +0 -8
- package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +0 -30
- package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +0 -37
- package/utils/directives/focus-key-manager/focus-key-manager.tokens.d.ts +0 -3
- package/utils/directives/focus-key-manager/index.d.ts +0 -4
- package/utils/directives/focusable-grid/focusable-grid.directive.d.ts +0 -41
- package/utils/directives/focusable-grid/focusable-grid.module.d.ts +0 -8
- package/utils/directives/focusable-grid/focusable-grid.tokens.d.ts +0 -2
- package/utils/directives/focusable-grid/index.d.ts +0 -3
- package/utils/directives/focusable-item/focusable-item.directive.d.ts +0 -75
- package/utils/directives/focusable-item/focusable-item.module.d.ts +0 -7
- package/utils/directives/focusable-item/focusable-item.tokens.d.ts +0 -2
- package/utils/directives/focusable-item/focusable-list.position.d.ts +0 -4
- package/utils/directives/focusable-item/focusable.item.d.ts +0 -10
- package/utils/directives/focusable-item/focusable.observer.d.ts +0 -18
- package/utils/directives/focusable-item/get-item-element.d.ts +0 -7
- package/utils/directives/focusable-item/index.d.ts +0 -8
- package/utils/directives/focusable-item/indirect-focusable-item.directive.d.ts +0 -26
- package/utils/directives/focusable-item/is-element-focusable-by-default.d.ts +0 -4
- package/utils/directives/focusable-item/is-item-focusable.d.ts +0 -6
- package/utils/directives/focusable-list/focusable-list.directive.d.ts +0 -117
- package/utils/directives/focusable-list/focusable-list.module.d.ts +0 -8
- package/utils/directives/focusable-list/focusable-list.tokens.d.ts +0 -2
- package/utils/directives/focusable-list/index.d.ts +0 -5
- package/utils/directives/focusable-list/indirect-focusable-list.directive.d.ts +0 -25
- package/utils/directives/focusable-list/scroll.d.ts +0 -4
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +0 -17
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.d.ts +0 -7
- package/utils/directives/ignore-click-on-selection/tokens.d.ts +0 -2
- package/utils/directives/index.d.ts +0 -34
- package/utils/directives/initial-focus/initial-focus.directive.d.ts +0 -43
- package/utils/directives/initial-focus/initial-focus.module.d.ts +0 -7
- package/utils/directives/intersection-spy/intersection-spy.directive.d.ts +0 -18
- package/utils/directives/line-clamp/line-clamp.directive.d.ts +0 -91
- package/utils/directives/line-clamp/line-clamp.module.d.ts +0 -7
- package/utils/directives/only-digits/only-digits.directive.d.ts +0 -39
- package/utils/directives/only-digits/only-digits.module.d.ts +0 -7
- package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +0 -9
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +0 -60
- package/utils/directives/overflow-list/overflow-list.module.d.ts +0 -8
- package/utils/directives/readonly/default-readonly-view-modifier.d.ts +0 -9
- package/utils/directives/readonly/fdk-readonly-provider.service.d.ts +0 -35
- package/utils/directives/readonly/fdk-readonly.token.d.ts +0 -2
- package/utils/directives/readonly/index.d.ts +0 -9
- package/utils/directives/readonly/readonly-behavior.directive.d.ts +0 -24
- package/utils/directives/readonly/readonly-behavior.interface.d.ts +0 -7
- package/utils/directives/readonly/readonly-behavior.module.d.ts +0 -7
- package/utils/directives/readonly/readonly-view-modifier.interface.d.ts +0 -3
- package/utils/directives/readonly/readonly.observer.d.ts +0 -18
- package/utils/directives/readonly/set-readonly-state.d.ts +0 -4
- package/utils/directives/repeat/repeat.directive.d.ts +0 -17
- package/utils/directives/repeat/repeat.module.d.ts +0 -7
- package/utils/directives/resize/resize-handle.directive.d.ts +0 -9
- package/utils/directives/resize/resize.directive.d.ts +0 -60
- package/utils/directives/resize/resize.module.d.ts +0 -8
- package/utils/directives/resize-observer/index.d.ts +0 -1
- package/utils/directives/resize-observer/resize-observer.directive.d.ts +0 -20
- package/utils/directives/selectable-list/index.d.ts +0 -7
- package/utils/directives/selectable-list/select-component-root.token.d.ts +0 -10
- package/utils/directives/selectable-list/selectable-item.directive.d.ts +0 -46
- package/utils/directives/selectable-list/selectable-item.token.d.ts +0 -11
- package/utils/directives/selectable-list/selectable-list.directive.d.ts +0 -34
- package/utils/directives/selectable-list/selectable-list.module.d.ts +0 -8
- package/utils/directives/selectable-list/selectable-list.tokens.d.ts +0 -2
- package/utils/directives/selectable-list/selection.service.d.ts +0 -64
- package/utils/directives/template/template.directive.d.ts +0 -13
- package/utils/directives/template/template.module.d.ts +0 -7
- package/utils/directives/truncate/truncate.directive.d.ts +0 -55
- package/utils/directives/truncate/truncate.module.d.ts +0 -7
- package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +0 -95
- package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +0 -32
- package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +0 -61
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +0 -113
- package/utils/drag-and-drop/dnd.interfaces.d.ts +0 -40
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +0 -11
- package/utils/drag-and-drop/index.d.ts +0 -7
- package/utils/drag-and-drop/tokens.d.ts +0 -3
- package/utils/dynamic-component/dynamic-component-config.d.ts +0 -8
- package/utils/dynamic-component/dynamic-component-container.d.ts +0 -24
- package/utils/dynamic-component/dynamic-component-injector.d.ts +0 -13
- package/utils/dynamic-component/dynamic-component.service.d.ts +0 -46
- package/utils/dynamic-component/index.d.ts +0 -4
- package/utils/functions/consumer-provider-factory.d.ts +0 -5
- package/utils/functions/element-size.d.ts +0 -12
- package/utils/functions/get-document-font-size.d.ts +0 -2
- package/utils/functions/index.d.ts +0 -13
- package/utils/functions/intersection-observable.d.ts +0 -8
- package/utils/functions/is-compact-density.d.ts +0 -7
- package/utils/functions/is-odd.d.ts +0 -6
- package/utils/functions/key-util.d.ts +0 -16
- package/utils/functions/module-deprecations-provider.d.ts +0 -5
- package/utils/functions/parser-file-size.d.ts +0 -2
- package/utils/functions/random-color-accent.d.ts +0 -3
- package/utils/functions/resize-observable.d.ts +0 -8
- package/utils/functions/scroll.d.ts +0 -7
- package/utils/functions/uuidv4-generator.d.ts +0 -2
- package/utils/helpers/destroy-observable.d.ts +0 -7
- package/utils/helpers/dfs.d.ts +0 -18
- package/utils/helpers/get-native-element.d.ts +0 -13
- package/utils/helpers/index.d.ts +0 -5
- package/utils/helpers/range-selector.d.ts +0 -84
- package/utils/helpers/warn-once.d.ts +0 -2
- package/utils/interfaces/content-density.d.ts +0 -1
- package/utils/interfaces/css-class-builder.interface.d.ts +0 -13
- package/utils/interfaces/css-style-builder.interface.d.ts +0 -5
- package/utils/interfaces/has-element-ref.interface.d.ts +0 -5
- package/utils/interfaces/index.d.ts +0 -7
- package/utils/interfaces/keyboard-support-item.interface.d.ts +0 -6
- package/utils/interfaces/module-deprecation.interface.d.ts +0 -8
- package/utils/interfaces/require.interface.d.ts +0 -6
- package/utils/list-item/list-item-utils.d.ts +0 -7
- package/utils/models/nullable.d.ts +0 -6
- package/utils/pipes/async-or-sync.pipe.d.ts +0 -21
- package/utils/pipes/displayFn.pipe.d.ts +0 -8
- package/utils/pipes/filter-strings.pipe.d.ts +0 -16
- package/utils/pipes/index.d.ts +0 -11
- package/utils/pipes/is-compact.pipe.d.ts +0 -9
- package/utils/pipes/make-async.pipe.d.ts +0 -12
- package/utils/pipes/pipe.module.d.ts +0 -16
- package/utils/pipes/safe.pipe.d.ts +0 -12
- package/utils/pipes/search-highlight.pipe.d.ts +0 -8
- package/utils/pipes/truncate.pipe.d.ts +0 -8
- package/utils/pipes/two-digits.pipe.d.ts +0 -8
- package/utils/pipes/value-by-path.pipe.d.ts +0 -8
- package/utils/services/content-density.service.d.ts +0 -19
- package/utils/services/destroyed.service.d.ts +0 -15
- package/utils/services/focus-trap.service.d.ts +0 -43
- package/utils/services/index.d.ts +0 -9
- package/utils/services/keyboard-support/keyboard-support.service.d.ts +0 -32
- package/utils/services/local-storage.service.d.ts +0 -13
- package/utils/services/observers/attribute.observer.d.ts +0 -26
- package/utils/services/resize-observer.service.d.ts +0 -34
- package/utils/services/rtl.service.d.ts +0 -14
- package/utils/services/tabbable-element.service.d.ts +0 -12
- package/utils/toast/base-toast-animations.d.ts +0 -7
- package/utils/toast/base-toast-positions.d.ts +0 -129
- package/utils/toast/base-toast.service.d.ts +0 -148
- package/utils/toast/classes/action-dismissible/base-toast-action-dismissible-ref.d.ts +0 -23
- package/utils/toast/classes/base-toast-animated-container.component.d.ts +0 -41
- package/utils/toast/classes/base-toast-config.d.ts +0 -53
- package/utils/toast/classes/base-toast-container.component.d.ts +0 -55
- package/utils/toast/classes/base-toast-overlay-container.d.ts +0 -16
- package/utils/toast/classes/base-toast-ref.d.ts +0 -35
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-config.d.ts +0 -15
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.d.ts +0 -20
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-ref.d.ts +0 -20
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible.service.d.ts +0 -11
- package/utils/toast/index.d.ts +0 -15
- package/utils/toast/interfaces/toast-container-component.interface.d.ts +0 -14
- package/utils/toast/interfaces/toast-duration-dismissible-container-component.interface.d.ts +0 -6
- package/utils/toast/interfaces/toast-text-component.interface.d.ts +0 -5
- package/utils/tokens/module-deprecations.token.d.ts +0 -3
- package/utils/tokens/viewport-size.observable.d.ts +0 -8
- package/utils/typecheck.d.ts +0 -47
- package/utils/utils.module.d.ts +0 -25
package/data-source/index.d.ts
CHANGED
|
@@ -1,8 +1,236 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnDestroy, EventEmitter, DestroyRef, Type, InjectionToken } from '@angular/core';
|
|
3
|
+
import { Observable, BehaviorSubject, Subject } from 'rxjs';
|
|
4
|
+
import * as _fundamental_ngx_cdk_data_source from '@fundamental-ngx/cdk/data-source';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Data source provider class controls the data stream.
|
|
8
|
+
*/
|
|
9
|
+
interface DataSourceProvider<T = any> {
|
|
10
|
+
/**
|
|
11
|
+
* Stream emits when new data has been requested.
|
|
12
|
+
*/
|
|
13
|
+
dataRequested: Observable<boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* Stream emits when new data has been loaded.
|
|
16
|
+
*/
|
|
17
|
+
dataReceived: Observable<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Stream emits when loading state has been changed.
|
|
20
|
+
*/
|
|
21
|
+
dataLoading: Observable<boolean>;
|
|
22
|
+
/** Stream emits when data changed. */
|
|
23
|
+
dataChanges: Observable<T[]>;
|
|
24
|
+
/** Closes the data stream. */
|
|
25
|
+
unsubscribe(): void;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Acceptable data source types.
|
|
30
|
+
*/
|
|
31
|
+
type DataSource<T = any, P extends DataSourceProvider<T> = DataSourceProvider<T>> = P | Observable<T[]> | T[];
|
|
32
|
+
/**
|
|
33
|
+
* Data source parser is a special class that parses incoming data into appropriate data source provider.
|
|
34
|
+
*/
|
|
35
|
+
interface DataSourceParser<T = any, P extends DataSourceProvider<T> = DataSourceProvider<T>> {
|
|
36
|
+
/**
|
|
37
|
+
* Defines which data provider class to initiate.
|
|
38
|
+
* @param source data source to be parsed.
|
|
39
|
+
*/
|
|
40
|
+
parse(source: DataSource<T>): P | undefined;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
declare enum MatchingStrategy {
|
|
44
|
+
STARTS_WITH_PER_TERM = "starts with per term",
|
|
45
|
+
STARTS_WITH = "starts with",
|
|
46
|
+
CONTAINS = "contains"
|
|
47
|
+
}
|
|
48
|
+
type MatchBy = (item: any) => any;
|
|
49
|
+
interface MatchingBy {
|
|
50
|
+
firstBy: MatchBy;
|
|
51
|
+
secondaryBy?: MatchBy;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
declare class DataSourceDirective<T = any, P extends DataSourceProvider<T> = DataSourceProvider<T>> implements OnDestroy {
|
|
55
|
+
/**
|
|
56
|
+
* Emits when the data source object has been changed.
|
|
57
|
+
*/
|
|
58
|
+
readonly dataSourceChanged: EventEmitter<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Event emitted when datasource content has been changed.
|
|
61
|
+
*/
|
|
62
|
+
readonly dataChanged: EventEmitter<T[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Event emitted when data provider loading state has been changed.
|
|
65
|
+
*/
|
|
66
|
+
readonly isLoading: EventEmitter<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Data source.
|
|
69
|
+
* @param source
|
|
70
|
+
*/
|
|
71
|
+
set dataSource(source: DataSource<T, P> | null);
|
|
72
|
+
get dataSource(): DataSource<T, P> | null;
|
|
73
|
+
/** @hidden */
|
|
74
|
+
dataSourceProvider: P | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Data stream. Emits when new data retrieved.
|
|
77
|
+
*/
|
|
78
|
+
readonly dataChanged$: BehaviorSubject<T[]>;
|
|
79
|
+
/** @hidden */
|
|
80
|
+
protected readonly _destroyRef: DestroyRef;
|
|
81
|
+
/** @hidden */
|
|
82
|
+
private _dataSource;
|
|
83
|
+
/** @hidden */
|
|
84
|
+
private _dsSubscription;
|
|
85
|
+
/** @hidden */
|
|
86
|
+
private readonly _dataSourceTransformer;
|
|
87
|
+
/** @hidden */
|
|
88
|
+
ngOnDestroy(): void;
|
|
89
|
+
/** @Hidden */
|
|
90
|
+
protected _toDataStream(source: DataSource<T> | null): P | undefined;
|
|
91
|
+
/** @hidden */
|
|
92
|
+
private _initializeDataSource;
|
|
93
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataSourceDirective<any, any>, never>;
|
|
94
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DataSourceDirective<any, any>, "[fdkDataSource]", never, { "dataSource": { "alias": "dataSource"; "required": false; }; }, { "dataSourceChanged": "dataSourceChanged"; "dataChanged": "dataChanged"; "isLoading": "isLoading"; }, never, never, true, never>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
declare class DataSourceModule {
|
|
98
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataSourceModule, never>;
|
|
99
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DataSourceModule, never, [typeof DataSourceDirective], [typeof DataSourceDirective]>;
|
|
100
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<DataSourceModule>;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
type ProviderParams = ReadonlyMap<string, any>;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Base data provider class.
|
|
107
|
+
*/
|
|
108
|
+
declare abstract class AbstractDataProvider<T> {
|
|
109
|
+
/** @hidden */
|
|
110
|
+
abstract fetch(params: ProviderParams, start?: number, end?: number): Observable<T[]>;
|
|
111
|
+
/** @hidden */
|
|
112
|
+
abstract getTotalItems(params?: Map<string, any>): Observable<number>;
|
|
113
|
+
/** @hidden */
|
|
114
|
+
protected _keyPath: string;
|
|
115
|
+
/** @hidden */
|
|
116
|
+
protected _matchingStrategy: MatchingStrategy;
|
|
117
|
+
/** @hidden */
|
|
118
|
+
protected _matchingBy: MatchingBy | null;
|
|
119
|
+
/** @hidden */
|
|
120
|
+
setLookupKey(key: string): void;
|
|
121
|
+
/** @hidden */
|
|
122
|
+
setMatchingBy(matchingBy: MatchingBy): void;
|
|
123
|
+
/** @hidden */
|
|
124
|
+
setMatchingStrategy(strategy: MatchingStrategy): void;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Default data provider class used for other components to extend from.
|
|
128
|
+
*/
|
|
129
|
+
declare class DataProvider<T> extends AbstractDataProvider<T> {
|
|
130
|
+
protected values: Observable<T[]> | T[];
|
|
131
|
+
/** Default limit for the pagination. */
|
|
132
|
+
defaultLimit: number;
|
|
133
|
+
/** @hidden */
|
|
134
|
+
constructor(values: Observable<T[]> | T[]);
|
|
135
|
+
/** @hidden */
|
|
136
|
+
fetch(params: Map<string, any>): Observable<T[]>;
|
|
137
|
+
/**
|
|
138
|
+
* Returns observable with the number of total items that satisfy the search query.
|
|
139
|
+
* Warning: this is a naive implementation of the number of the filtered items.
|
|
140
|
+
* For real-world scenarios, it is recommended to override this method with its own logic.
|
|
141
|
+
*/
|
|
142
|
+
getTotalItems(params: Map<string, any>): Observable<number>;
|
|
143
|
+
/**
|
|
144
|
+
* Warning: If you don't supply search Key and you want fulltext search, and you use this
|
|
145
|
+
* default implementation, be aware that it can perform poorly as it is a naive implementation
|
|
146
|
+
* that does not do deep compare.
|
|
147
|
+
*/
|
|
148
|
+
matches(item: T, pattern: string): boolean;
|
|
149
|
+
/** @hidden */
|
|
150
|
+
matchesBy(item: any, pattern: string, matchingBy: MatchBy): boolean;
|
|
151
|
+
/** @hidden */
|
|
152
|
+
protected hasObjectValue(obj: any, pattern: string): boolean;
|
|
153
|
+
/** @hidden */
|
|
154
|
+
private withLimit;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
declare abstract class BaseDataSource<T> implements DataSourceProvider<T> {
|
|
158
|
+
dataProvider: AbstractDataProvider<any>;
|
|
159
|
+
/**
|
|
160
|
+
* Max limit of items to be returned.
|
|
161
|
+
*/
|
|
162
|
+
static readonly MaxLimit = 5;
|
|
163
|
+
/**
|
|
164
|
+
* Whether to enable limit of max items.
|
|
165
|
+
*/
|
|
166
|
+
limitless: boolean;
|
|
167
|
+
/** @hidden */
|
|
168
|
+
protected readonly _dataChanges$: BehaviorSubject<T[]>;
|
|
169
|
+
/** @hidden */
|
|
170
|
+
protected readonly _dataRequested$: BehaviorSubject<boolean>;
|
|
171
|
+
/** @hidden */
|
|
172
|
+
protected readonly _dataReceived$: BehaviorSubject<boolean>;
|
|
173
|
+
/** @hidden */
|
|
174
|
+
protected readonly _destroy$: Subject<void>;
|
|
175
|
+
/** @hidden */
|
|
176
|
+
protected readonly _dataLoading$: BehaviorSubject<boolean>;
|
|
177
|
+
/**
|
|
178
|
+
* Emitted when new data has been requested.
|
|
179
|
+
* @returns Observable
|
|
180
|
+
*/
|
|
181
|
+
get dataRequested(): Observable<boolean>;
|
|
182
|
+
/**
|
|
183
|
+
* Emitted when new data has been received.
|
|
184
|
+
* @returns Observable
|
|
185
|
+
*/
|
|
186
|
+
get dataReceived(): Observable<boolean>;
|
|
187
|
+
/**
|
|
188
|
+
* Emitted when loading state has been changed.
|
|
189
|
+
* @returns Observable.
|
|
190
|
+
*/
|
|
191
|
+
get dataLoading(): Observable<boolean>;
|
|
192
|
+
/**
|
|
193
|
+
* Emits when the data from the provider has been changed.
|
|
194
|
+
* @returns Observable of data source objects.
|
|
195
|
+
*/
|
|
196
|
+
get dataChanges(): Observable<T[]>;
|
|
197
|
+
/** @hidden */
|
|
198
|
+
protected constructor(dataProvider: AbstractDataProvider<any>);
|
|
199
|
+
/**
|
|
200
|
+
* Searches through the data source with defined parameters.
|
|
201
|
+
* @param predicate Search query.
|
|
202
|
+
* @param start start index.
|
|
203
|
+
* @param end end index.
|
|
204
|
+
*/
|
|
205
|
+
match(predicate?: string | Map<string, string>, start?: number, end?: number): void;
|
|
206
|
+
/**
|
|
207
|
+
* Returns the Observable of a total items number filtered by the `predicate` param.
|
|
208
|
+
* @param predicate Search query.
|
|
209
|
+
*/
|
|
210
|
+
getTotalItems(predicate?: string | Map<string, string>): Observable<number>;
|
|
211
|
+
/**
|
|
212
|
+
* Closes the stream
|
|
213
|
+
*/
|
|
214
|
+
unsubscribe(): void;
|
|
215
|
+
/** @hidden */
|
|
216
|
+
private _getSearchParams;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
declare const applyDatasourceDirective: Type<unknown> | {
|
|
220
|
+
directive: Type<unknown>;
|
|
221
|
+
inputs?: string[];
|
|
222
|
+
outputs?: string[];
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Checks whether passed value is a valid data source.
|
|
227
|
+
*/
|
|
228
|
+
declare function isDataSource<T = any>(value: any): value is DataSourceProvider<T>;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Injection token used for passing custom datasource transformer into DataSourceProvider.
|
|
232
|
+
*/
|
|
233
|
+
declare const FD_DATA_SOURCE_TRANSFORMER: InjectionToken<DataSourceParser<any, _fundamental_ngx_cdk_data_source.DataSourceProvider<any>>>;
|
|
234
|
+
|
|
235
|
+
export { AbstractDataProvider, BaseDataSource, DataProvider, DataSourceDirective, DataSourceModule, FD_DATA_SOURCE_TRANSFORMER, MatchingStrategy, applyDatasourceDirective, isDataSource };
|
|
236
|
+
export type { DataSource, DataSourceParser, DataSourceProvider, MatchBy, MatchingBy };
|
|
@@ -87,10 +87,10 @@ class DataSourceDirective {
|
|
|
87
87
|
this.dataChanged$.next(data);
|
|
88
88
|
}));
|
|
89
89
|
}
|
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
91
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
91
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.2", type: DataSourceDirective, isStandalone: true, selector: "[fdkDataSource]", inputs: { dataSource: "dataSource" }, outputs: { dataSourceChanged: "dataSourceChanged", dataChanged: "dataChanged", isLoading: "isLoading" }, ngImport: i0 }); }
|
|
92
92
|
}
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DataSourceDirective, decorators: [{
|
|
94
94
|
type: Directive,
|
|
95
95
|
args: [{
|
|
96
96
|
selector: '[fdkDataSource]',
|
|
@@ -107,11 +107,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
|
|
|
107
107
|
}] } });
|
|
108
108
|
|
|
109
109
|
class DataSourceModule {
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
111
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
112
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
111
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: DataSourceModule, imports: [DataSourceDirective], exports: [DataSourceDirective] }); }
|
|
112
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DataSourceModule }); }
|
|
113
113
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: DataSourceModule, decorators: [{
|
|
115
115
|
type: NgModule,
|
|
116
116
|
args: [{
|
|
117
117
|
imports: [DataSourceDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-cdk-data-source.mjs","sources":["../../../../libs/cdk/data-source/helpers/is-datasource.ts","../../../../libs/cdk/data-source/tokens.ts","../../../../libs/cdk/data-source/data-source.directive.ts","../../../../libs/cdk/data-source/data-source.module.ts","../../../../libs/cdk/data-source/helpers/common.ts","../../../../libs/cdk/data-source/models/matching-strategy.ts","../../../../libs/cdk/data-source/base/abstract-data-provider.class.ts","../../../../libs/cdk/data-source/base/base-data-source.class.ts","../../../../libs/cdk/data-source/helpers/apply-datasource-directive.ts","../../../../libs/cdk/data-source/fundamental-ngx-cdk-data-source.ts"],"sourcesContent":["import { DataSourceProvider } from '../models/data-source-provider';\n\n/**\n * Checks whether passed value is a valid data source.\n */\nexport function isDataSource<T = any>(value: any): value is DataSourceProvider<T> {\n return value && typeof value.unsubscribe === 'function' && value.dataChanges;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DataSourceParser } from './models/data-source';\n\n/**\n * Injection token used for passing custom datasource transformer into DataSourceProvider.\n */\nexport const FD_DATA_SOURCE_TRANSFORMER = new InjectionToken<DataSourceParser>('FdDataSourceTransformer');\n","import { DestroyRef, Directive, EventEmitter, inject, Input, OnDestroy, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { isDataSource } from './helpers/is-datasource';\nimport { DataSource, DataSourceParser, DataSourceProvider } from './models';\nimport { FD_DATA_SOURCE_TRANSFORMER } from './tokens';\n\n@Directive({\n selector: '[fdkDataSource]',\n standalone: true\n})\nexport class DataSourceDirective<T = any, P extends DataSourceProvider<T> = DataSourceProvider<T>>\n implements OnDestroy\n{\n /**\n * Emits when the data source object has been changed.\n */\n @Output()\n readonly dataSourceChanged = new EventEmitter<void>();\n\n /**\n * Event emitted when datasource content has been changed.\n */\n @Output()\n readonly dataChanged = new EventEmitter<T[]>();\n\n /**\n * Event emitted when data provider loading state has been changed.\n */\n @Output()\n readonly isLoading = new EventEmitter<boolean>();\n\n /**\n * Data source.\n * @param source\n */\n @Input()\n set dataSource(source: DataSource<T, P> | null) {\n this._dataSource = source;\n this._initializeDataSource();\n this.dataSourceChanged.next();\n }\n\n get dataSource(): DataSource<T, P> | null {\n return this._dataSource;\n }\n\n /** @hidden */\n dataSourceProvider: P | undefined;\n\n /**\n * Data stream. Emits when new data retrieved.\n */\n readonly dataChanged$ = new BehaviorSubject<T[]>([]);\n\n /** @hidden */\n protected readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _dataSource: DataSource<T, P> | null;\n\n /** @hidden */\n private _dsSubscription = new Subscription();\n\n /** @hidden */\n private readonly _dataSourceTransformer = inject<DataSourceParser<T, P>>(FD_DATA_SOURCE_TRANSFORMER);\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dataSourceProvider?.unsubscribe();\n this._dsSubscription?.unsubscribe();\n }\n\n /** @Hidden */\n protected _toDataStream(source: DataSource<T> | null): P | undefined {\n return !source\n ? undefined\n : this._dataSourceTransformer\n ? this._dataSourceTransformer.parse(source)\n : undefined;\n }\n\n /** @hidden */\n private _initializeDataSource(): void {\n if (isDataSource(this.dataSource)) {\n this.dataSourceProvider?.unsubscribe();\n\n this._dsSubscription?.unsubscribe();\n }\n // Convert whatever comes in as DataSource, so we can work with it identically\n this.dataSourceProvider = this._toDataStream(this.dataSource);\n\n if (!this.dataSourceProvider) {\n return;\n }\n\n this._dsSubscription = new Subscription();\n\n this._dsSubscription.add(\n this.dataSourceProvider.dataLoading\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((isLoading) => this.isLoading.emit(isLoading))\n );\n\n this._dsSubscription.add(\n this.dataSourceProvider.dataChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((data) => {\n this.dataChanged.emit(data);\n this.dataChanged$.next(data);\n })\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DataSourceDirective } from './data-source.directive';\n\n@NgModule({\n imports: [DataSourceDirective],\n exports: [DataSourceDirective]\n})\nexport class DataSourceModule {}\n","import { isBlank, isStringMap, isType } from '@fundamental-ngx/cdk/utils';\n\nexport type ProviderParams = ReadonlyMap<string, any>;\n\n/** @Hidden */\nexport function getMatchingStrategyStartsWithPerTermReqexp(value: string): RegExp {\n return new RegExp(`(\\\\s|^)(${value})`, 'gi');\n}\n\n/** @hidden */\nexport function objectValues(obj: any): any[] {\n return Object.keys(obj).map((key) => obj[key]);\n}\n\n/** @hidden */\nexport function objectToName(target: any): string {\n if (isBlank(target) || (!isStringMap(target) && !isType(target))) {\n throw new Error(' Cannot convert. Uknown object');\n }\n\n return isType(target) ? target.prototype.constructor.name : target.constructor.name;\n}\n","export enum MatchingStrategy {\n STARTS_WITH_PER_TERM = 'starts with per term',\n STARTS_WITH = 'starts with',\n CONTAINS = 'contains'\n}\n\nexport type MatchBy = (item: any) => any;\n\nexport interface MatchingBy {\n firstBy: MatchBy;\n secondaryBy?: MatchBy;\n}\n","import { isFunction, isJsObject } from '@fundamental-ngx/cdk/utils';\nimport { Observable, isObservable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n ProviderParams,\n getMatchingStrategyStartsWithPerTermReqexp,\n objectToName,\n objectValues\n} from '../helpers/common';\nimport { MatchBy, MatchingBy, MatchingStrategy } from '../models/matching-strategy';\n\n/**\n * Base data provider class.\n */\nexport abstract class AbstractDataProvider<T> {\n /** @hidden */\n abstract fetch(params: ProviderParams, start?: number, end?: number): Observable<T[]>;\n\n /** @hidden */\n abstract getTotalItems(params?: Map<string, any>): Observable<number>;\n\n /** @hidden */\n protected _keyPath: string;\n\n /** @hidden */\n protected _matchingStrategy: MatchingStrategy = MatchingStrategy.STARTS_WITH;\n\n /** @hidden */\n protected _matchingBy: MatchingBy | null = null;\n\n /** @hidden */\n setLookupKey(key: string): void {\n this._keyPath = key;\n }\n\n /** @hidden */\n setMatchingBy(matchingBy: MatchingBy): void {\n this._matchingBy = matchingBy;\n }\n\n /** @hidden */\n setMatchingStrategy(strategy: MatchingStrategy): void {\n this._matchingStrategy = strategy;\n }\n}\n\n/**\n * Default data provider class used for other components to extend from.\n */\nexport class DataProvider<T> extends AbstractDataProvider<T> {\n /** Default limit for the pagination. */\n public defaultLimit = 50;\n /** @hidden */\n constructor(protected values: Observable<T[]> | T[]) {\n super();\n }\n\n /** @hidden */\n fetch(params: Map<string, any>): Observable<T[]> {\n const observable = isObservable(this.values) ? this.values : of(this.values);\n\n const queryString = params.get('query');\n const limit = params.get('limit') || this.defaultLimit;\n\n if (!queryString || queryString === '*') {\n return observable.pipe(map((items) => this.withLimit(items, limit)));\n }\n\n const toLowerPattern = queryString.toLowerCase();\n\n return observable.pipe(\n map((items) => {\n const result: any[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (this.matches(item, toLowerPattern)) {\n result.push(item);\n if (result.length >= limit) {\n break;\n }\n }\n }\n\n return result;\n })\n );\n }\n\n /**\n * Returns observable with the number of total items that satisfy the search query.\n * Warning: this is a naive implementation of the number of the filtered items.\n * For real-world scenarios, it is recommended to override this method with its own logic.\n */\n getTotalItems(params: Map<string, any>): Observable<number> {\n const observable = isObservable(this.values) ? this.values : of(this.values);\n const queryString = params.get('query');\n\n if (!queryString) {\n return observable.pipe(map((items) => items.length));\n }\n\n const toLowerPattern = queryString.toLowerCase();\n\n return observable.pipe(map((items) => items.filter((item) => this.matches(item, toLowerPattern)).length));\n }\n\n /**\n * Warning: If you don't supply search Key and you want fulltext search, and you use this\n * default implementation, be aware that it can perform poorly as it is a naive implementation\n * that does not do deep compare.\n */\n matches(item: T, pattern: string): boolean {\n if (!this._matchingBy) {\n return false;\n }\n const { firstBy, secondaryBy } = this._matchingBy;\n\n let matched = this.matchesBy(item, pattern, firstBy);\n if (!matched && secondaryBy) {\n matched = this.matchesBy(item, pattern, secondaryBy);\n }\n\n return matched;\n }\n\n /** @hidden */\n matchesBy(item: any, pattern: string, matchingBy: MatchBy): boolean {\n const value = isJsObject(item) && matchingBy ? matchingBy(item) : item;\n\n if (isFunction(value)) {\n return value.call(item);\n } else if (isJsObject(value)) {\n return this.hasObjectValue(item, pattern);\n } else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH_PER_TERM) {\n const reqexp = getMatchingStrategyStartsWithPerTermReqexp(pattern);\n return !!pattern && !!value && !!value.match(reqexp);\n } else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH) {\n return !!pattern && !!value && value.toString().toLowerCase().startsWith(pattern.toLowerCase());\n } else if (this._matchingStrategy === MatchingStrategy.CONTAINS) {\n return !!pattern && !!value && value.toString().toLowerCase().indexOf(pattern) > -1;\n } else {\n return !!pattern && !!value && value.toString().toLowerCase() === pattern;\n }\n }\n\n /** @hidden */\n protected hasObjectValue(obj: any, pattern: string): boolean {\n const values = objectValues(obj);\n const parentObj = objectToName(obj);\n const length2 = values.filter((value: any) => {\n if (!value || Array.isArray(value)) {\n return false;\n } else if (!isJsObject(value) && !isFunction(value)) {\n return value.toString().toLowerCase().indexOf(pattern) !== -1;\n } else if (isJsObject(value) && objectToName(value) !== parentObj) {\n return this.hasObjectValue(value, pattern);\n }\n\n return false;\n }).length;\n return length2 > 0;\n }\n\n /** @hidden */\n private withLimit(data: Array<T>, limit?: number): Array<T> {\n if (limit && data.length > limit) {\n return data.slice(0, limit);\n }\n return data;\n }\n}\n","import { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DataSourceProvider } from '../models';\nimport { AbstractDataProvider } from './abstract-data-provider.class';\n\nexport abstract class BaseDataSource<T> implements DataSourceProvider<T> {\n /**\n * Max limit of items to be returned.\n */\n static readonly MaxLimit = 5;\n\n /**\n * Whether to enable limit of max items.\n */\n limitless = false;\n\n /** @hidden */\n protected readonly _dataChanges$: BehaviorSubject<T[]> = new BehaviorSubject<T[]>([]);\n /** @hidden */\n protected readonly _dataRequested$ = new BehaviorSubject<boolean>(false);\n /** @hidden */\n protected readonly _dataReceived$ = new BehaviorSubject<boolean>(false);\n /** @hidden */\n protected readonly _destroy$ = new Subject<void>();\n\n /** @hidden */\n protected readonly _dataLoading$ = new BehaviorSubject<boolean>(false);\n\n /**\n * Emitted when new data has been requested.\n * @returns Observable\n */\n get dataRequested(): Observable<boolean> {\n return this._dataRequested$.asObservable();\n }\n\n /**\n * Emitted when new data has been received.\n * @returns Observable\n */\n get dataReceived(): Observable<boolean> {\n return this._dataReceived$.asObservable();\n }\n\n /**\n * Emitted when loading state has been changed.\n * @returns Observable.\n */\n get dataLoading(): Observable<boolean> {\n return this._dataLoading$.asObservable();\n }\n\n /**\n * Emits when the data from the provider has been changed.\n * @returns Observable of data source objects.\n */\n get dataChanges(): Observable<T[]> {\n return this._dataChanges$.asObservable().pipe(takeUntil(this._destroy$));\n }\n\n /** @hidden */\n protected constructor(public dataProvider: AbstractDataProvider<any>) {}\n\n /**\n * Searches through the data source with defined parameters.\n * @param predicate Search query.\n * @param start start index.\n * @param end end index.\n */\n match(predicate: string | Map<string, string> = new Map<string, string>(), start = 0, end = Infinity): void {\n this._dataRequested$.next(true);\n this._dataLoading$.next(true);\n const searchParam = this._getSearchParams(predicate);\n\n this.dataProvider\n .fetch(searchParam, start, end)\n .pipe(takeUntil(this._destroy$))\n .subscribe({\n next: (result: T[]) => {\n this._dataReceived$.next(true);\n this._dataLoading$.next(false);\n this._dataChanges$.next(result);\n },\n error: () => {\n this._dataReceived$.next(false);\n this._dataLoading$.next(false);\n }\n });\n }\n\n /**\n * Returns the Observable of a total items number filtered by the `predicate` param.\n * @param predicate Search query.\n */\n getTotalItems(predicate: string | Map<string, string> = new Map<string, string>()): Observable<number> {\n const searchParam = this._getSearchParams(predicate);\n\n return this.dataProvider.getTotalItems(searchParam);\n }\n\n /**\n * Closes the stream\n */\n unsubscribe(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n /** @hidden */\n private _getSearchParams(predicate: string | Map<string, string>): Map<string, any> {\n const searchParam = new Map<string, any>();\n\n if (typeof predicate === 'string') {\n searchParam.set('query', predicate);\n } else if (predicate instanceof Map) {\n predicate.forEach((v, k) => searchParam.set(k, v));\n } else {\n throw new Error('DataSource.match() predicate can only accepts string and Map');\n }\n\n if (!searchParam.has('limit') && !this.limitless) {\n searchParam.set('limit', BaseDataSource.MaxLimit);\n }\n\n return searchParam;\n }\n}\n","import { Type } from '@angular/core';\nimport { DataSourceDirective } from '../data-source.directive';\n\nexport const applyDatasourceDirective:\n | Type<unknown>\n | {\n directive: Type<unknown>;\n inputs?: string[];\n outputs?: string[];\n } = {\n directive: DataSourceDirective,\n inputs: ['dataSource'],\n outputs: ['dataChanged']\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-cdk-data-source.mjs","sources":["../tmp-esm2022/data-source/helpers/is-datasource.js","../tmp-esm2022/data-source/tokens.js","../tmp-esm2022/data-source/data-source.directive.js","../tmp-esm2022/data-source/data-source.module.js","../tmp-esm2022/data-source/helpers/common.js","../tmp-esm2022/data-source/models/matching-strategy.js","../tmp-esm2022/data-source/base/abstract-data-provider.class.js","../tmp-esm2022/data-source/base/base-data-source.class.js","../tmp-esm2022/data-source/helpers/apply-datasource-directive.js","../tmp-esm2022/data-source/fundamental-ngx-cdk-data-source.js"],"sourcesContent":["/**\n * Checks whether passed value is a valid data source.\n */\nexport function isDataSource(value) {\n return value && typeof value.unsubscribe === 'function' && value.dataChanges;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2RhdGEtc291cmNlL2hlbHBlcnMvaXMtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQVUsS0FBVTtJQUM1QyxPQUFPLEtBQUssSUFBSSxPQUFPLEtBQUssQ0FBQyxXQUFXLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2VQcm92aWRlciB9IGZyb20gJy4uL21vZGVscy9kYXRhLXNvdXJjZS1wcm92aWRlcic7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgcGFzc2VkIHZhbHVlIGlzIGEgdmFsaWQgZGF0YSBzb3VyY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGFTb3VyY2U8VCA9IGFueT4odmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGFTb3VyY2VQcm92aWRlcjxUPiB7XG4gICAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZS51bnN1YnNjcmliZSA9PT0gJ2Z1bmN0aW9uJyAmJiB2YWx1ZS5kYXRhQ2hhbmdlcztcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\n/**\n * Injection token used for passing custom datasource transformer into DataSourceProvider.\n */\nexport const FD_DATA_SOURCE_TRANSFORMER = new InjectionToken('FdDataSourceTransformer');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZGF0YS1zb3VyY2UvdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBbUIseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlUGFyc2VyIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1zb3VyY2UnO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB1c2VkIGZvciBwYXNzaW5nIGN1c3RvbSBkYXRhc291cmNlIHRyYW5zZm9ybWVyIGludG8gRGF0YVNvdXJjZVByb3ZpZGVyLlxuICovXG5leHBvcnQgY29uc3QgRkRfREFUQV9TT1VSQ0VfVFJBTlNGT1JNRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0YVNvdXJjZVBhcnNlcj4oJ0ZkRGF0YVNvdXJjZVRyYW5zZm9ybWVyJyk7XG4iXX0=","import { DestroyRef, Directive, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { isDataSource } from './helpers/is-datasource';\nimport { FD_DATA_SOURCE_TRANSFORMER } from './tokens';\nimport * as i0 from \"@angular/core\";\nexport class DataSourceDirective {\n constructor() {\n /**\n * Emits when the data source object has been changed.\n */\n this.dataSourceChanged = new EventEmitter();\n /**\n * Event emitted when datasource content has been changed.\n */\n this.dataChanged = new EventEmitter();\n /**\n * Event emitted when data provider loading state has been changed.\n */\n this.isLoading = new EventEmitter();\n /**\n * Data stream. Emits when new data retrieved.\n */\n this.dataChanged$ = new BehaviorSubject([]);\n /** @hidden */\n this._destroyRef = inject(DestroyRef);\n /** @hidden */\n this._dsSubscription = new Subscription();\n /** @hidden */\n this._dataSourceTransformer = inject(FD_DATA_SOURCE_TRANSFORMER);\n }\n /**\n * Data source.\n * @param source\n */\n set dataSource(source) {\n this._dataSource = source;\n this._initializeDataSource();\n this.dataSourceChanged.next();\n }\n get dataSource() {\n return this._dataSource;\n }\n /** @hidden */\n ngOnDestroy() {\n this.dataSourceProvider?.unsubscribe();\n this._dsSubscription?.unsubscribe();\n }\n /** @Hidden */\n _toDataStream(source) {\n return !source\n ? undefined\n : this._dataSourceTransformer\n ? this._dataSourceTransformer.parse(source)\n : undefined;\n }\n /** @hidden */\n _initializeDataSource() {\n if (isDataSource(this.dataSource)) {\n this.dataSourceProvider?.unsubscribe();\n this._dsSubscription?.unsubscribe();\n }\n // Convert whatever comes in as DataSource, so we can work with it identically\n this.dataSourceProvider = this._toDataStream(this.dataSource);\n if (!this.dataSourceProvider) {\n return;\n }\n this._dsSubscription = new Subscription();\n this._dsSubscription.add(this.dataSourceProvider.dataLoading\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((isLoading) => this.isLoading.emit(isLoading)));\n this._dsSubscription.add(this.dataSourceProvider.dataChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((data) => {\n this.dataChanged.emit(data);\n this.dataChanged$.next(data);\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: DataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.2\", type: DataSourceDirective, isStandalone: true, selector: \"[fdkDataSource]\", inputs: { dataSource: \"dataSource\" }, outputs: { dataSourceChanged: \"dataSourceChanged\", dataChanged: \"dataChanged\", isLoading: \"isLoading\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: DataSourceDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdkDataSource]',\n standalone: true\n }]\n }], propDecorators: { dataSourceChanged: [{\n type: Output\n }], dataChanged: [{\n type: Output\n }], isLoading: [{\n type: Output\n }], dataSource: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQU10RCxNQUFNLE9BQU8sbUJBQW1CO0lBSmhDO1FBT0k7O1dBRUc7UUFFTSxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXREOztXQUVHO1FBRU0sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRS9DOztXQUVHO1FBRU0sY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFvQmpEOztXQUVHO1FBQ00saUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUVyRCxjQUFjO1FBQ0ssZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFLcEQsY0FBYztRQUNOLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU3QyxjQUFjO1FBQ0csMkJBQXNCLEdBQUcsTUFBTSxDQUF5QiwwQkFBMEIsQ0FBQyxDQUFDO0tBOEN4RztJQS9FRzs7O09BR0c7SUFDSCxJQUNJLFVBQVUsQ0FBQyxNQUErQjtRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBc0JELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7SUFDSixhQUFhLENBQUMsTUFBNEI7UUFDaEQsT0FBTyxDQUFDLE1BQU07WUFDVixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCO2dCQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7SUFDTixxQkFBcUI7UUFDekIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1lBRXZDLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDeEMsQ0FBQztRQUNELDhFQUE4RTtRQUM5RSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVzthQUM5QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDaEUsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5RixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs4R0FuR1EsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQVFZLGlCQUFpQjtzQkFEekIsTUFBTTtnQkFPRSxXQUFXO3NCQURuQixNQUFNO2dCQU9FLFNBQVM7c0JBRGpCLE1BQU07Z0JBUUgsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNEYXRhU291cmNlIH0gZnJvbSAnLi9oZWxwZXJzL2lzLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSwgRGF0YVNvdXJjZVBhcnNlciwgRGF0YVNvdXJjZVByb3ZpZGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgRkRfREFUQV9TT1VSQ0VfVFJBTlNGT1JNRVIgfSBmcm9tICcuL3Rva2Vucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0RhdGFTb3VyY2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VEaXJlY3RpdmU8VCA9IGFueSwgUCBleHRlbmRzIERhdGFTb3VyY2VQcm92aWRlcjxUPiA9IERhdGFTb3VyY2VQcm92aWRlcjxUPj5cbiAgICBpbXBsZW1lbnRzIE9uRGVzdHJveVxue1xuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gdGhlIGRhdGEgc291cmNlIG9iamVjdCBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGRhdGFTb3VyY2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGRhdGFzb3VyY2UgY29udGVudCBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGRhdGFDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gZGF0YSBwcm92aWRlciBsb2FkaW5nIHN0YXRlIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaXNMb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqXG4gICAgICogRGF0YSBzb3VyY2UuXG4gICAgICogQHBhcmFtIHNvdXJjZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRhdGFTb3VyY2Uoc291cmNlOiBEYXRhU291cmNlPFQsIFA+IHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9kYXRhU291cmNlID0gc291cmNlO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplRGF0YVNvdXJjZSgpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2VDaGFuZ2VkLm5leHQoKTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YVNvdXJjZSgpOiBEYXRhU291cmNlPFQsIFA+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGF0YVNvdXJjZVByb3ZpZGVyOiBQIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogRGF0YSBzdHJlYW0uIEVtaXRzIHdoZW4gbmV3IGRhdGEgcmV0cmlldmVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRhdGFDaGFuZ2VkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogRGF0YVNvdXJjZTxULCBQPiB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhU291cmNlVHJhbnNmb3JtZXIgPSBpbmplY3Q8RGF0YVNvdXJjZVBhcnNlcjxULCBQPj4oRkRfREFUQV9TT1VSQ0VfVFJBTlNGT1JNRVIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlUHJvdmlkZXI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2RzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF90b0RhdGFTdHJlYW0oc291cmNlOiBEYXRhU291cmNlPFQ+IHwgbnVsbCk6IFAgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gIXNvdXJjZVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogdGhpcy5fZGF0YVNvdXJjZVRyYW5zZm9ybWVyXG4gICAgICAgICAgICAgID8gdGhpcy5fZGF0YVNvdXJjZVRyYW5zZm9ybWVyLnBhcnNlKHNvdXJjZSlcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplRGF0YVNvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGF0YVNvdXJjZSh0aGlzLmRhdGFTb3VyY2UpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VQcm92aWRlcj8udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ29udmVydCB3aGF0ZXZlciBjb21lcyBpbiBhcyBEYXRhU291cmNlLCBzbyB3ZSBjYW4gd29yayB3aXRoIGl0IGlkZW50aWNhbGx5XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVByb3ZpZGVyID0gdGhpcy5fdG9EYXRhU3RyZWFtKHRoaXMuZGF0YVNvdXJjZSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2VQcm92aWRlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlUHJvdmlkZXIuZGF0YUxvYWRpbmdcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoaXNMb2FkaW5nKSA9PiB0aGlzLmlzTG9hZGluZy5lbWl0KGlzTG9hZGluZykpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fZHNTdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlUHJvdmlkZXIuZGF0YUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZWQuZW1pdChkYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFDaGFuZ2VkJC5uZXh0KGRhdGEpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { DataSourceDirective } from './data-source.directive';\nimport * as i0 from \"@angular/core\";\nexport class DataSourceModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: DataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.2\", ngImport: i0, type: DataSourceModule, imports: [DataSourceDirective], exports: [DataSourceDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: DataSourceModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.2\", ngImport: i0, type: DataSourceModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [DataSourceDirective],\n exports: [DataSourceDirective]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTTlELE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLFlBSGYsbUJBQW1CLGFBQ25CLG1CQUFtQjsrR0FFcEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUo1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURpcmVjdGl2ZSB9IGZyb20gJy4vZGF0YS1zb3VyY2UuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRGF0YVNvdXJjZURpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0RhdGFTb3VyY2VEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VNb2R1bGUge31cbiJdfQ==","import { isBlank, isStringMap, isType } from '@fundamental-ngx/cdk/utils';\n/** @Hidden */\nexport function getMatchingStrategyStartsWithPerTermReqexp(value) {\n return new RegExp(`(\\\\s|^)(${value})`, 'gi');\n}\n/** @hidden */\nexport function objectValues(obj) {\n return Object.keys(obj).map((key) => obj[key]);\n}\n/** @hidden */\nexport function objectToName(target) {\n if (isBlank(target) || (!isStringMap(target) && !isType(target))) {\n throw new Error(' Cannot convert. Uknown object');\n }\n return isType(target) ? target.prototype.constructor.name : target.constructor.name;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZGF0YS1zb3VyY2UvaGVscGVycy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJMUUsY0FBYztBQUNkLE1BQU0sVUFBVSwwQ0FBMEMsQ0FBQyxLQUFhO0lBQ3BFLE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBUTtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBVztJQUNwQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0FBQ3hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0JsYW5rLCBpc1N0cmluZ01hcCwgaXNUeXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBQcm92aWRlclBhcmFtcyA9IFJlYWRvbmx5TWFwPHN0cmluZywgYW55PjtcblxuLyoqIEBIaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXRjaGluZ1N0cmF0ZWd5U3RhcnRzV2l0aFBlclRlcm1SZXFleHAodmFsdWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoYChcXFxcc3xeKSgke3ZhbHVlfSlgLCAnZ2knKTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RWYWx1ZXMob2JqOiBhbnkpOiBhbnlbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubWFwKChrZXkpID0+IG9ialtrZXldKTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvYmplY3RUb05hbWUodGFyZ2V0OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChpc0JsYW5rKHRhcmdldCkgfHwgKCFpc1N0cmluZ01hcCh0YXJnZXQpICYmICFpc1R5cGUodGFyZ2V0KSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCcgQ2Fubm90IGNvbnZlcnQuIFVrbm93biBvYmplY3QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNUeXBlKHRhcmdldCkgPyB0YXJnZXQucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWUgOiB0YXJnZXQuY29uc3RydWN0b3IubmFtZTtcbn1cbiJdfQ==","export var MatchingStrategy;\n(function (MatchingStrategy) {\n MatchingStrategy[\"STARTS_WITH_PER_TERM\"] = \"starts with per term\";\n MatchingStrategy[\"STARTS_WITH\"] = \"starts with\";\n MatchingStrategy[\"CONTAINS\"] = \"contains\";\n})(MatchingStrategy || (MatchingStrategy = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hpbmctc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9kYXRhLXNvdXJjZS9tb2RlbHMvbWF0Y2hpbmctc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUN4QixpRUFBNkMsQ0FBQTtJQUM3QywrQ0FBMkIsQ0FBQTtJQUMzQix5Q0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUkzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE1hdGNoaW5nU3RyYXRlZ3kge1xuICAgIFNUQVJUU19XSVRIX1BFUl9URVJNID0gJ3N0YXJ0cyB3aXRoIHBlciB0ZXJtJyxcbiAgICBTVEFSVFNfV0lUSCA9ICdzdGFydHMgd2l0aCcsXG4gICAgQ09OVEFJTlMgPSAnY29udGFpbnMnXG59XG5cbmV4cG9ydCB0eXBlIE1hdGNoQnkgPSAoaXRlbTogYW55KSA9PiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0Y2hpbmdCeSB7XG4gICAgZmlyc3RCeTogTWF0Y2hCeTtcbiAgICBzZWNvbmRhcnlCeT86IE1hdGNoQnk7XG59XG4iXX0=","import { isFunction, isJsObject } from '@fundamental-ngx/cdk/utils';\nimport { isObservable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { getMatchingStrategyStartsWithPerTermReqexp, objectToName, objectValues } from '../helpers/common';\nimport { MatchingStrategy } from '../models/matching-strategy';\n/**\n * Base data provider class.\n */\nexport class AbstractDataProvider {\n constructor() {\n /** @hidden */\n this._matchingStrategy = MatchingStrategy.STARTS_WITH;\n /** @hidden */\n this._matchingBy = null;\n }\n /** @hidden */\n setLookupKey(key) {\n this._keyPath = key;\n }\n /** @hidden */\n setMatchingBy(matchingBy) {\n this._matchingBy = matchingBy;\n }\n /** @hidden */\n setMatchingStrategy(strategy) {\n this._matchingStrategy = strategy;\n }\n}\n/**\n * Default data provider class used for other components to extend from.\n */\nexport class DataProvider extends AbstractDataProvider {\n /** @hidden */\n constructor(values) {\n super();\n this.values = values;\n /** Default limit for the pagination. */\n this.defaultLimit = 50;\n }\n /** @hidden */\n fetch(params) {\n const observable = isObservable(this.values) ? this.values : of(this.values);\n const queryString = params.get('query');\n const limit = params.get('limit') || this.defaultLimit;\n if (!queryString || queryString === '*') {\n return observable.pipe(map((items) => this.withLimit(items, limit)));\n }\n const toLowerPattern = queryString.toLowerCase();\n return observable.pipe(map((items) => {\n const result = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (this.matches(item, toLowerPattern)) {\n result.push(item);\n if (result.length >= limit) {\n break;\n }\n }\n }\n return result;\n }));\n }\n /**\n * Returns observable with the number of total items that satisfy the search query.\n * Warning: this is a naive implementation of the number of the filtered items.\n * For real-world scenarios, it is recommended to override this method with its own logic.\n */\n getTotalItems(params) {\n const observable = isObservable(this.values) ? this.values : of(this.values);\n const queryString = params.get('query');\n if (!queryString) {\n return observable.pipe(map((items) => items.length));\n }\n const toLowerPattern = queryString.toLowerCase();\n return observable.pipe(map((items) => items.filter((item) => this.matches(item, toLowerPattern)).length));\n }\n /**\n * Warning: If you don't supply search Key and you want fulltext search, and you use this\n * default implementation, be aware that it can perform poorly as it is a naive implementation\n * that does not do deep compare.\n */\n matches(item, pattern) {\n if (!this._matchingBy) {\n return false;\n }\n const { firstBy, secondaryBy } = this._matchingBy;\n let matched = this.matchesBy(item, pattern, firstBy);\n if (!matched && secondaryBy) {\n matched = this.matchesBy(item, pattern, secondaryBy);\n }\n return matched;\n }\n /** @hidden */\n matchesBy(item, pattern, matchingBy) {\n const value = isJsObject(item) && matchingBy ? matchingBy(item) : item;\n if (isFunction(value)) {\n return value.call(item);\n }\n else if (isJsObject(value)) {\n return this.hasObjectValue(item, pattern);\n }\n else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH_PER_TERM) {\n const reqexp = getMatchingStrategyStartsWithPerTermReqexp(pattern);\n return !!pattern && !!value && !!value.match(reqexp);\n }\n else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH) {\n return !!pattern && !!value && value.toString().toLowerCase().startsWith(pattern.toLowerCase());\n }\n else if (this._matchingStrategy === MatchingStrategy.CONTAINS) {\n return !!pattern && !!value && value.toString().toLowerCase().indexOf(pattern) > -1;\n }\n else {\n return !!pattern && !!value && value.toString().toLowerCase() === pattern;\n }\n }\n /** @hidden */\n hasObjectValue(obj, pattern) {\n const values = objectValues(obj);\n const parentObj = objectToName(obj);\n const length2 = values.filter((value) => {\n if (!value || Array.isArray(value)) {\n return false;\n }\n else if (!isJsObject(value) && !isFunction(value)) {\n return value.toString().toLowerCase().indexOf(pattern) !== -1;\n }\n else if (isJsObject(value) && objectToName(value) !== parentObj) {\n return this.hasObjectValue(value, pattern);\n }\n return false;\n }).length;\n return length2 > 0;\n }\n /** @hidden */\n withLimit(data, limit) {\n if (limit && data.length > limit) {\n return data.slice(0, limit);\n }\n return data;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGF0YS1wcm92aWRlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2RhdGEtc291cmNlL2Jhc2UvYWJzdHJhY3QtZGF0YS1wcm92aWRlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBYyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBRUgsMENBQTBDLEVBQzFDLFlBQVksRUFDWixZQUFZLEVBQ2YsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQXVCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFcEY7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLG9CQUFvQjtJQUExQztRQVVJLGNBQWM7UUFDSixzQkFBaUIsR0FBcUIsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBRTdFLGNBQWM7UUFDSixnQkFBVyxHQUFzQixJQUFJLENBQUM7SUFnQnBELENBQUM7SUFkRyxjQUFjO0lBQ2QsWUFBWSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7SUFDZCxhQUFhLENBQUMsVUFBc0I7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxtQkFBbUIsQ0FBQyxRQUEwQjtRQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO0lBQ3RDLENBQUM7Q0FDSjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQWdCLFNBQVEsb0JBQXVCO0lBR3hELGNBQWM7SUFDZCxZQUFzQixNQUE2QjtRQUMv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QUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsQ0FBQztpQkFBTSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2hFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNWLE9BQU8sT0FBTyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztJQUNOLFNBQVMsQ0FBQyxJQUFjLEVBQUUsS0FBYztRQUM1QyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRnVuY3Rpb24sIGlzSnNPYmplY3QgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBpc09ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICAgIFByb3ZpZGVyUGFyYW1zLFxuICAgIGdldE1hdGNoaW5nU3RyYXRlZ3lTdGFydHNXaXRoUGVyVGVybVJlcWV4cCxcbiAgICBvYmplY3RUb05hbWUsXG4gICAgb2JqZWN0VmFsdWVzXG59IGZyb20gJy4uL2hlbHBlcnMvY29tbW9uJztcbmltcG9ydCB7IE1hdGNoQnksIE1hdGNoaW5nQnksIE1hdGNoaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi9tb2RlbHMvbWF0Y2hpbmctc3RyYXRlZ3knO1xuXG4vKipcbiAqIEJhc2UgZGF0YSBwcm92aWRlciBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGF0YVByb3ZpZGVyPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFic3RyYWN0IGZldGNoKHBhcmFtczogUHJvdmlkZXJQYXJhbXMsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFic3RyYWN0IGdldFRvdGFsSXRlbXMocGFyYW1zPzogTWFwPHN0cmluZywgYW55Pik6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9rZXlQYXRoOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfbWF0Y2hpbmdTdHJhdGVneTogTWF0Y2hpbmdTdHJhdGVneSA9IE1hdGNoaW5nU3RyYXRlZ3kuU1RBUlRTX1dJVEg7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfbWF0Y2hpbmdCeTogTWF0Y2hpbmdCeSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRMb29rdXBLZXkoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5UGF0aCA9IGtleTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldE1hdGNoaW5nQnkobWF0Y2hpbmdCeTogTWF0Y2hpbmdCeSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tYXRjaGluZ0J5ID0gbWF0Y2hpbmdCeTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldE1hdGNoaW5nU3RyYXRlZ3koc3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWF0Y2hpbmdTdHJhdGVneSA9IHN0cmF0ZWd5O1xuICAgIH1cbn1cblxuLyoqXG4gKiBEZWZhdWx0IGRhdGEgcHJvdmlkZXIgY2xhc3MgdXNlZCBmb3Igb3RoZXIgY29tcG9uZW50cyB0byBleHRlbmQgZnJvbS5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFQcm92aWRlcjxUPiBleHRlbmRzIEFic3RyYWN0RGF0YVByb3ZpZGVyPFQ+IHtcbiAgICAvKiogRGVmYXVsdCBsaW1pdCBmb3IgdGhlIHBhZ2luYXRpb24uICovXG4gICAgcHVibGljIGRlZmF1bHRMaW1pdCA9IDUwO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHZhbHVlczogT2JzZXJ2YWJsZTxUW10+IHwgVFtdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmZXRjaChwYXJhbXM6IE1hcDxzdHJpbmcsIGFueT4pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gaXNPYnNlcnZhYmxlKHRoaXMudmFsdWVzKSA/IHRoaXMudmFsdWVzIDogb2YodGhpcy52YWx1ZXMpO1xuXG4gICAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcGFyYW1zLmdldCgncXVlcnknKTtcbiAgICAgICAgY29uc3QgbGltaXQgPSBwYXJhbXMuZ2V0KCdsaW1pdCcpIHx8IHRoaXMuZGVmYXVsdExpbWl0O1xuXG4gICAgICAgIGlmICghcXVlcnlTdHJpbmcgfHwgcXVlcnlTdHJpbmcgPT09ICcqJykge1xuICAgICAgICAgICAgcmV0dXJuIG9ic2VydmFibGUucGlwZShtYXAoKGl0ZW1zKSA9PiB0aGlzLndpdGhMaW1pdChpdGVtcywgbGltaXQpKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b0xvd2VyUGF0dGVybiA9IHF1ZXJ5U3RyaW5nLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGUucGlwZShcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWF0Y2hlcyhpdGVtLCB0b0xvd2VyUGF0dGVybikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPj0gbGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgb2JzZXJ2YWJsZSB3aXRoIHRoZSBudW1iZXIgb2YgdG90YWwgaXRlbXMgdGhhdCBzYXRpc2Z5IHRoZSBzZWFyY2ggcXVlcnkuXG4gICAgICogV2FybmluZzogdGhpcyBpcyBhIG5haXZlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBudW1iZXIgb2YgdGhlIGZpbHRlcmVkIGl0ZW1zLlxuICAgICAqIEZvciByZWFsLXdvcmxkIHNjZW5hcmlvcywgaXQgaXMgcmVjb21tZW5kZWQgdG8gb3ZlcnJpZGUgdGhpcyBtZXRob2Qgd2l0aCBpdHMgb3duIGxvZ2ljLlxuICAgICAqL1xuICAgIGdldFRvdGFsSXRlbXMocGFyYW1zOiBNYXA8c3RyaW5nLCBhbnk+KTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9IGlzT2JzZXJ2YWJsZSh0aGlzLnZhbHVlcykgPyB0aGlzLnZhbHVlcyA6IG9mKHRoaXMudmFsdWVzKTtcbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBwYXJhbXMuZ2V0KCdxdWVyeScpO1xuXG4gICAgICAgIGlmICghcXVlcnlTdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUobWFwKChpdGVtcykgPT4gaXRlbXMubGVuZ3RoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b0xvd2VyUGF0dGVybiA9IHF1ZXJ5U3RyaW5nLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGUucGlwZShtYXAoKGl0ZW1zKSA9PiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHRoaXMubWF0Y2hlcyhpdGVtLCB0b0xvd2VyUGF0dGVybikpLmxlbmd0aCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdhcm5pbmc6IElmIHlvdSBkb24ndCBzdXBwbHkgc2VhcmNoIEtleSBhbmQgeW91IHdhbnQgZnVsbHRleHQgc2VhcmNoLCBhbmQgeW91IHVzZSB0aGlzXG4gICAgICogZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYmUgYXdhcmUgdGhhdCBpdCBjYW4gcGVyZm9ybSBwb29ybHkgYXMgaXQgaXMgYSBuYWl2ZSBpbXBsZW1lbnRhdGlvblxuICAgICAqIHRoYXQgZG9lcyBub3QgZG8gZGVlcCBjb21wYXJlLlxuICAgICAqL1xuICAgIG1hdGNoZXMoaXRlbTogVCwgcGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5fbWF0Y2hpbmdCeSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZmlyc3RCeSwgc2Vjb25kYXJ5QnkgfSA9IHRoaXMuX21hdGNoaW5nQnk7XG5cbiAgICAgICAgbGV0IG1hdGNoZWQgPSB0aGlzLm1hdGNoZXNCeShpdGVtLCBwYXR0ZXJuLCBmaXJzdEJ5KTtcbiAgICAgICAgaWYgKCFtYXRjaGVkICYmIHNlY29uZGFyeUJ5KSB7XG4gICAgICAgICAgICBtYXRjaGVkID0gdGhpcy5tYXRjaGVzQnkoaXRlbSwgcGF0dGVybiwgc2Vjb25kYXJ5QnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtYXRjaGVzQnkoaXRlbTogYW55LCBwYXR0ZXJuOiBzdHJpbmcsIG1hdGNoaW5nQnk6IE1hdGNoQnkpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpc0pzT2JqZWN0KGl0ZW0pICYmIG1hdGNoaW5nQnkgPyBtYXRjaGluZ0J5KGl0ZW0pIDogaXRlbTtcblxuICAgICAgICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5jYWxsKGl0ZW0pO1xuICAgICAgICB9IGVsc2UgaWYgKGlzSnNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYXNPYmplY3RWYWx1ZShpdGVtLCBwYXR0ZXJuKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9tYXRjaGluZ1N0cmF0ZWd5ID09PSBNYXRjaGluZ1N0cmF0ZWd5LlNUQVJUU19XSVRIX1BFUl9URVJNKSB7XG4gICAgICAgICAgICBjb25zdCByZXFleHAgPSBnZXRNYXRjaGluZ1N0cmF0ZWd5U3RhcnRzV2l0aFBlclRlcm1SZXFleHAocGF0dGVybik7XG4gICAgICAgICAgICByZXR1cm4gISFwYXR0ZXJuICYmICEhdmFsdWUgJiYgISF2YWx1ZS5tYXRjaChyZXFleHApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX21hdGNoaW5nU3RyYXRlZ3kgPT09IE1hdGNoaW5nU3RyYXRlZ3kuU1RBUlRTX1dJVEgpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXBhdHRlcm4gJiYgISF2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChwYXR0ZXJuLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX21hdGNoaW5nU3RyYXRlZ3kgPT09IE1hdGNoaW5nU3RyYXRlZ3kuQ09OVEFJTlMpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXBhdHRlcm4gJiYgISF2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihwYXR0ZXJuKSA+IC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICEhcGF0dGVybiAmJiAhIXZhbHVlICYmIHZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gcGF0dGVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGhhc09iamVjdFZhbHVlKG9iajogYW55LCBwYXR0ZXJuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gb2JqZWN0VmFsdWVzKG9iaik7XG4gICAgICAgIGNvbnN0IHBhcmVudE9iaiA9IG9iamVjdFRvTmFtZShvYmopO1xuICAgICAgICBjb25zdCBsZW5ndGgyID0gdmFsdWVzLmZpbHRlcigodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzSnNPYmplY3QodmFsdWUpICYmICFpc0Z1bmN0aW9uKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihwYXR0ZXJuKSAhPT0gLTE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSnNPYmplY3QodmFsdWUpICYmIG9iamVjdFRvTmFtZSh2YWx1ZSkgIT09IHBhcmVudE9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhc09iamVjdFZhbHVlKHZhbHVlLCBwYXR0ZXJuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBsZW5ndGgyID4gMDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgd2l0aExpbWl0KGRhdGE6IEFycmF5PFQ+LCBsaW1pdD86IG51bWJlcik6IEFycmF5PFQ+IHtcbiAgICAgICAgaWYgKGxpbWl0ICYmIGRhdGEubGVuZ3RoID4gbGltaXQpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnNsaWNlKDAsIGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG4iXX0=","import { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nexport class BaseDataSource {\n /**\n * Max limit of items to be returned.\n */\n static { this.MaxLimit = 5; }\n /**\n * Emitted when new data has been requested.\n * @returns Observable\n */\n get dataRequested() {\n return this._dataRequested$.asObservable();\n }\n /**\n * Emitted when new data has been received.\n * @returns Observable\n */\n get dataReceived() {\n return this._dataReceived$.asObservable();\n }\n /**\n * Emitted when loading state has been changed.\n * @returns Observable.\n */\n get dataLoading() {\n return this._dataLoading$.asObservable();\n }\n /**\n * Emits when the data from the provider has been changed.\n * @returns Observable of data source objects.\n */\n get dataChanges() {\n return this._dataChanges$.asObservable().pipe(takeUntil(this._destroy$));\n }\n /** @hidden */\n constructor(dataProvider) {\n this.dataProvider = dataProvider;\n /**\n * Whether to enable limit of max items.\n */\n this.limitless = false;\n /** @hidden */\n this._dataChanges$ = new BehaviorSubject([]);\n /** @hidden */\n this._dataRequested$ = new BehaviorSubject(false);\n /** @hidden */\n this._dataReceived$ = new BehaviorSubject(false);\n /** @hidden */\n this._destroy$ = new Subject();\n /** @hidden */\n this._dataLoading$ = new BehaviorSubject(false);\n }\n /**\n * Searches through the data source with defined parameters.\n * @param predicate Search query.\n * @param start start index.\n * @param end end index.\n */\n match(predicate = new Map(), start = 0, end = Infinity) {\n this._dataRequested$.next(true);\n this._dataLoading$.next(true);\n const searchParam = this._getSearchParams(predicate);\n this.dataProvider\n .fetch(searchParam, start, end)\n .pipe(takeUntil(this._destroy$))\n .subscribe({\n next: (result) => {\n this._dataReceived$.next(true);\n this._dataLoading$.next(false);\n this._dataChanges$.next(result);\n },\n error: () => {\n this._dataReceived$.next(false);\n this._dataLoading$.next(false);\n }\n });\n }\n /**\n * Returns the Observable of a total items number filtered by the `predicate` param.\n * @param predicate Search query.\n */\n getTotalItems(predicate = new Map()) {\n const searchParam = this._getSearchParams(predicate);\n return this.dataProvider.getTotalItems(searchParam);\n }\n /**\n * Closes the stream\n */\n unsubscribe() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n /** @hidden */\n _getSearchParams(predicate) {\n const searchParam = new Map();\n if (typeof predicate === 'string') {\n searchParam.set('query', predicate);\n }\n else if (predicate instanceof Map) {\n predicate.forEach((v, k) => searchParam.set(k, v));\n }\n else {\n throw new Error('DataSource.match() predicate can only accepts string and Map');\n }\n if (!searchParam.has('limit') && !this.limitless) {\n searchParam.set('limit', BaseDataSource.MaxLimit);\n }\n return searchParam;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhLXNvdXJjZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2RhdGEtc291cmNlL2Jhc2UvYmFzZS1kYXRhLXNvdXJjZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsTUFBTSxPQUFnQixjQUFjO0lBQ2hDOztPQUVHO2FBQ2EsYUFBUSxHQUFHLENBQUMsQUFBSixDQUFLO0lBbUI3Qjs7O09BR0c7SUFDSCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsY0FBYztJQUNkLFlBQTZCLFlBQXVDO1FBQXZDLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQWxEcEU7O1dBRUc7UUFDSCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGNBQWM7UUFDSyxrQkFBYSxHQUF5QixJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUN0RixjQUFjO1FBQ0ssb0JBQWUsR0FBRyxJQUFJLGVBQWUs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Q3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGFTb3VyY2VQcm92aWRlciB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBBYnN0cmFjdERhdGFQcm92aWRlciB9IGZyb20gJy4vYWJzdHJhY3QtZGF0YS1wcm92aWRlci5jbGFzcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIERhdGFTb3VyY2VQcm92aWRlcjxUPiB7XG4gICAgLyoqXG4gICAgICogTWF4IGxpbWl0IG9mIGl0ZW1zIHRvIGJlIHJldHVybmVkLlxuICAgICAqL1xuICAgIHN0YXRpYyByZWFkb25seSBNYXhMaW1pdCA9IDU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBsaW1pdCBvZiBtYXggaXRlbXMuXG4gICAgICovXG4gICAgbGltaXRsZXNzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGF0YUNoYW5nZXMkOiBCZWhhdmlvclN1YmplY3Q8VFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFSZXF1ZXN0ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFSZWNlaXZlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFMb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIG5ldyBkYXRhIGhhcyBiZWVuIHJlcXVlc3RlZC5cbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlXG4gICAgICovXG4gICAgZ2V0IGRhdGFSZXF1ZXN0ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUmVxdWVzdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gbmV3IGRhdGEgaGFzIGJlZW4gcmVjZWl2ZWQuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZVxuICAgICAqL1xuICAgIGdldCBkYXRhUmVjZWl2ZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUmVjZWl2ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiBsb2FkaW5nIHN0YXRlIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZS5cbiAgICAgKi9cbiAgICBnZXQgZGF0YUxvYWRpbmcoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhTG9hZGluZyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB0aGUgZGF0YSBmcm9tIHRoZSBwcm92aWRlciBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgZGF0YSBzb3VyY2Ugb2JqZWN0cy5cbiAgICAgKi9cbiAgICBnZXQgZGF0YUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFDaGFuZ2VzJC5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IEFic3RyYWN0RGF0YVByb3ZpZGVyPGFueT4pIHt9XG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2hlcyB0aHJvdWdoIHRoZSBkYXRhIHNvdXJjZSB3aXRoIGRlZmluZWQgcGFyYW1ldGVycy5cbiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIFNlYXJjaCBxdWVyeS5cbiAgICAgKiBAcGFyYW0gc3RhcnQgc3RhcnQgaW5kZXguXG4gICAgICogQHBhcmFtIGVuZCBlbmQgaW5kZXguXG4gICAgICovXG4gICAgbWF0Y2gocHJlZGljYXRlOiBzdHJpbmcgfCBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKSwgc3RhcnQgPSAwLCBlbmQgPSBJbmZpbml0eSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kYXRhUmVxdWVzdGVkJC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoUGFyYW0gPSB0aGlzLl9nZXRTZWFyY2hQYXJhbXMocHJlZGljYXRlKTtcblxuICAgICAgICB0aGlzLmRhdGFQcm92aWRlclxuICAgICAgICAgICAgLmZldGNoKHNlYXJjaFBhcmFtLCBzdGFydCwgZW5kKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IFRbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhUmVjZWl2ZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUNoYW5nZXMkLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFSZWNlaXZlZCQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBPYnNlcnZhYmxlIG9mIGEgdG90YWwgaXRlbXMgbnVtYmVyIGZpbHRlcmVkIGJ5IHRoZSBgcHJlZGljYXRlYCBwYXJhbS5cbiAgICAgKiBAcGFyYW0gcHJlZGljYXRlIFNlYXJjaCBxdWVyeS5cbiAgICAgKi9cbiAgICBnZXRUb3RhbEl0ZW1zKHByZWRpY2F0ZTogc3RyaW5nIHwgTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICBjb25zdCBzZWFyY2hQYXJhbSA9IHRoaXMuX2dldFNlYXJjaFBhcmFtcyhwcmVkaWNhdGUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFQcm92aWRlci5nZXRUb3RhbEl0ZW1zKHNlYXJjaFBhcmFtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIHN0cmVhbVxuICAgICAqL1xuICAgIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRTZWFyY2hQYXJhbXMocHJlZGljYXRlOiBzdHJpbmcgfCBNYXA8c3RyaW5nLCBzdHJpbmc+KTogTWFwPHN0cmluZywgYW55PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaFBhcmFtID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcblxuICAgICAgICBpZiAodHlwZW9mIHByZWRpY2F0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtLnNldCgncXVlcnknLCBwcmVkaWNhdGUpO1xuICAgICAgICB9IGVsc2UgaWYgKHByZWRpY2F0ZSBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICAgICAgcHJlZGljYXRlLmZvckVhY2goKHYsIGspID0+IHNlYXJjaFBhcmFtLnNldChrLCB2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFTb3VyY2UubWF0Y2goKSBwcmVkaWNhdGUgY2FuIG9ubHkgYWNjZXB0cyBzdHJpbmcgYW5kIE1hcCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzZWFyY2hQYXJhbS5oYXMoJ2xpbWl0JykgJiYgIXRoaXMubGltaXRsZXNzKSB7XG4gICAgICAgICAgICBzZWFyY2hQYXJhbS5zZXQoJ2xpbWl0JywgQmFzZURhdGFTb3VyY2UuTWF4TGltaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlYXJjaFBhcmFtO1xuICAgIH1cbn1cbiJdfQ==","import { DataSourceDirective } from '../data-source.directive';\nexport const applyDatasourceDirective = {\n directive: DataSourceDirective,\n inputs: ['dataSource'],\n outputs: ['dataChanged']\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktZGF0YXNvdXJjZS1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9kYXRhLXNvdXJjZS9oZWxwZXJzL2FwcGx5LWRhdGFzb3VyY2UtZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQU0zQjtJQUNOLFNBQVMsRUFBRSxtQkFBbUI7SUFDOUIsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO0lBQ3RCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURpcmVjdGl2ZSB9IGZyb20gJy4uL2RhdGEtc291cmNlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBhcHBseURhdGFzb3VyY2VEaXJlY3RpdmU6XG4gICAgfCBUeXBlPHVua25vd24+XG4gICAgfCB7XG4gICAgICAgICAgZGlyZWN0aXZlOiBUeXBlPHVua25vd24+O1xuICAgICAgICAgIGlucHV0cz86IHN0cmluZ1tdO1xuICAgICAgICAgIG91dHB1dHM/OiBzdHJpbmdbXTtcbiAgICAgIH0gPSB7XG4gICAgZGlyZWN0aXZlOiBEYXRhU291cmNlRGlyZWN0aXZlLFxuICAgIGlucHV0czogWydkYXRhU291cmNlJ10sXG4gICAgb3V0cHV0czogWydkYXRhQ2hhbmdlZCddXG59O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWNkay1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2RhdGEtc291cmNlL2Z1bmRhbWVudGFsLW5neC1jZGstZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
@@ -299,10 +299,10 @@ class CvaDirective {
|
|
|
299
299
|
_markForCheck() {
|
|
300
300
|
this.markForCheck.emit();
|
|
301
301
|
}
|
|
302
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
303
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
302
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CvaDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
303
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.2", type: CvaDirective, isStandalone: true, selector: "[fdkCva]", inputs: { placeholder: "placeholder", state: "state", stateMessage: "stateMessage", disabled: "disabled", readonly: "readonly", ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel", editable: "editable", name: "name", id: "id" }, outputs: { detectChanges: "detectChanges", markForCheck: "markForCheck" }, viewQueries: [{ propertyName: "_elementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, static: true }], ngImport: i0 }); }
|
|
304
304
|
}
|
|
305
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
305
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CvaDirective, decorators: [{
|
|
306
306
|
type: Directive,
|
|
307
307
|
args: [{
|
|
308
308
|
selector: '[fdkCva]',
|
|
@@ -338,11 +338,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImpor
|
|
|
338
338
|
}] } });
|
|
339
339
|
|
|
340
340
|
class FormsModule {
|
|
341
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
342
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
343
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
341
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
342
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.2", ngImport: i0, type: FormsModule, imports: [CvaDirective], exports: [CvaDirective] }); }
|
|
343
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FormsModule }); }
|
|
344
344
|
}
|
|
345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FormsModule, decorators: [{
|
|
346
346
|
type: NgModule,
|
|
347
347
|
args: [{
|
|
348
348
|
imports: [CvaDirective],
|
|
@@ -381,10 +381,10 @@ class CvaControl {
|
|
|
381
381
|
this._changeDetector.detectChanges();
|
|
382
382
|
});
|
|
383
383
|
}
|
|
384
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
385
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
384
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CvaControl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
385
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CvaControl }); }
|
|
386
386
|
}
|
|
387
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CvaControl, decorators: [{
|
|
388
388
|
type: Injectable
|
|
389
389
|
}] });
|
|
390
390
|
|