@fundamental-ngx/cdk 0.58.1 → 0.59.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/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 +317 -317
- 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/package.json +13 -13
- package/{utils/index.d.ts → types/fundamental-ngx-cdk-utils.d.ts} +47 -48
- /package/{data-source/index.d.ts → types/fundamental-ngx-cdk-data-source.d.ts} +0 -0
- /package/{forms/index.d.ts → types/fundamental-ngx-cdk-forms.d.ts} +0 -0
- /package/{index.d.ts → types/fundamental-ngx-cdk.d.ts} +0 -0
|
@@ -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: "21.1.0", ngImport: i0, type: DataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
91
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", 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: "21.1.0", ngImport: i0, type: DataSourceDirective, decorators: [{
|
|
94
94
|
type: Directive,
|
|
95
95
|
args: [{
|
|
96
96
|
selector: '[fdkDataSource]',
|
|
@@ -111,11 +111,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
|
|
|
111
111
|
* Use direct imports of components and directives.
|
|
112
112
|
*/
|
|
113
113
|
class DataSourceModule {
|
|
114
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
115
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
116
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
114
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: DataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
115
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: DataSourceModule, imports: [DataSourceDirective], exports: [DataSourceDirective] }); }
|
|
116
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: DataSourceModule }); }
|
|
117
117
|
}
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: DataSourceModule, decorators: [{
|
|
119
119
|
type: NgModule,
|
|
120
120
|
args: [{
|
|
121
121
|
imports: [DataSourceDirective],
|
|
@@ -1 +1 @@
|
|
|
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.1.4\", ngImport: i0, type: DataSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", 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.1.4\", 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\";\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\nexport class DataSourceModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: DataSourceModule, imports: [DataSourceDirective], exports: [DataSourceDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DataSourceModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DataSourceModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [DataSourceDirective],\n exports: [DataSourceDirective]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTlEOzs7R0FHRztBQUtILE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLFlBSGYsbUJBQW1CLGFBQ25CLG1CQUFtQjsrR0FFcEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUo1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURpcmVjdGl2ZSB9IGZyb20gJy4vZGF0YS1zb3VyY2UuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlIGRpcmVjdCBpbXBvcnRzIG9mIGNvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0RhdGFTb3VyY2VEaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtEYXRhU291cmNlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlTW9kdWxlIHt9XG4iXX0=","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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"}
|
|
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/**\n * @deprecated\n * Use direct imports of components and directives.\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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"}
|
|
@@ -303,10 +303,10 @@ class CvaDirective {
|
|
|
303
303
|
_markForCheck() {
|
|
304
304
|
this.markForCheck.emit();
|
|
305
305
|
}
|
|
306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
307
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CvaDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
307
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: CvaDirective, isStandalone: true, selector: "[fdkCva]", inputs: { placeholder: "placeholder", type: "type", 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 }); }
|
|
308
308
|
}
|
|
309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CvaDirective, decorators: [{
|
|
310
310
|
type: Directive,
|
|
311
311
|
args: [{
|
|
312
312
|
selector: '[fdkCva]',
|
|
@@ -348,11 +348,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
|
|
|
348
348
|
* Use direct imports of components and directives.
|
|
349
349
|
*/
|
|
350
350
|
class FormsModule {
|
|
351
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
352
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
353
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
351
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
352
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: FormsModule, imports: [CvaDirective], exports: [CvaDirective] }); }
|
|
353
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormsModule }); }
|
|
354
354
|
}
|
|
355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: FormsModule, decorators: [{
|
|
356
356
|
type: NgModule,
|
|
357
357
|
args: [{
|
|
358
358
|
imports: [CvaDirective],
|
|
@@ -391,10 +391,10 @@ class CvaControl {
|
|
|
391
391
|
this._changeDetector.detectChanges();
|
|
392
392
|
});
|
|
393
393
|
}
|
|
394
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
395
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
394
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CvaControl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
395
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CvaControl }); }
|
|
396
396
|
}
|
|
397
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CvaControl, decorators: [{
|
|
398
398
|
type: Injectable
|
|
399
399
|
}] });
|
|
400
400
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-cdk-forms.mjs","sources":["../tmp-esm2022/forms/models/form-state.js","../tmp-esm2022/forms/helpers/state.js","../tmp-esm2022/forms/tokens/form-field-control.token.js","../tmp-esm2022/forms/tokens/form-field.token.js","../tmp-esm2022/forms/cva/cva.directive.js","../tmp-esm2022/forms/forms.module.js","../tmp-esm2022/forms/cva/cva-control.class.js","../tmp-esm2022/forms/models/form-field.js","../tmp-esm2022/forms/models/select-item.js","../tmp-esm2022/forms/fundamental-ngx-cdk-forms.js"],"sourcesContent":["export const formStates = ['success', 'error', 'warning', 'default', 'information'];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL21vZGVscy9mb3JtLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmb3JtU3RhdGVzID0gWydzdWNjZXNzJywgJ2Vycm9yJywgJ3dhcm5pbmcnLCAnZGVmYXVsdCcsICdpbmZvcm1hdGlvbiddIGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBGb3JtU3RhdGVzID0gKHR5cGVvZiBmb3JtU3RhdGVzKVtudW1iZXJdO1xuIl19","import { formStates } from '../models/form-state';\nconst stateSet = new Set(formStates);\n/** Checks if the given state is a valid control state. */\nexport function isValidControlState(value) {\n return stateSet.has(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9mb3Jtcy9oZWxwZXJzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBYSxVQUFVLENBQUMsQ0FBQztBQUVqRCwwREFBMEQ7QUFDMUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQVU7SUFDMUMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtU3RhdGVzLCBGb3JtU3RhdGVzIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tc3RhdGUnO1xuXG5jb25zdCBzdGF0ZVNldCA9IG5ldyBTZXQ8Rm9ybVN0YXRlcz4oZm9ybVN0YXRlcyk7XG5cbi8qKiBDaGVja3MgaWYgdGhlIGdpdmVuIHN0YXRlIGlzIGEgdmFsaWQgY29udHJvbCBzdGF0ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQ29udHJvbFN0YXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGb3JtU3RhdGVzIHtcbiAgICByZXR1cm4gc3RhdGVTZXQuaGFzKHZhbHVlKTtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const FD_FORM_FIELD_CONTROL = new InjectionToken('FdFormFieldControl');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1jb250cm9sLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZm9ybXMvdG9rZW5zL2Zvcm0tZmllbGQtY29udHJvbC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFtQixvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1maWVsZCc7XG5cbmV4cG9ydCBjb25zdCBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgPSBuZXcgSW5qZWN0aW9uVG9rZW48Rm9ybUZpZWxkQ29udHJvbD4oJ0ZkRm9ybUZpZWxkQ29udHJvbCcpO1xuIl19","import { InjectionToken } from '@angular/core';\nexport const FD_FORM_FIELD = new InjectionToken('FdFormField');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL3Rva2Vucy9mb3JtLWZpZWxkLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFZLGFBQWEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWZpZWxkJztcblxuZXhwb3J0IGNvbnN0IEZEX0ZPUk1fRklFTEQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Rm9ybUZpZWxkPignRmRGb3JtRmllbGQnKTtcbiJdfQ==","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, EventEmitter, Input, Output, ViewChild, computed, inject, isDevMode, signal } from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { isValidControlState } from '../helpers/state';\nimport { FD_FORM_FIELD_CONTROL } from '../tokens/form-field-control.token';\nimport { FD_FORM_FIELD } from '../tokens/form-field.token';\nimport * as i0 from \"@angular/core\";\nlet randomId = 0;\nexport class CvaDirective {\n /**\n * The state of the form control - applies css classes.\n * Can be 'success', 'error', 'warning', 'default', 'information'.\n *\n * @default 'default'\n */\n set state(state) {\n if (!state || isValidControlState(state)) {\n this._state$.set(state);\n }\n else if (isDevMode()) {\n console.warn(`Provided value \"${state}\" is not a valid option for FormStates type`);\n }\n }\n get state() {\n return this.normalizedState$();\n }\n /** Whether the input is disabled */\n set disabled(value) {\n this.setDisabledState(value);\n }\n get disabled() {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n /**\n * Tell the component if we are in editing mode.\n */\n set editable(value) {\n const newVal = coerceBooleanProperty(value);\n if (this._editable !== newVal) {\n this._editable = newVal;\n this._markForCheck();\n this.stateChanges.next('editable');\n }\n }\n get editable() {\n return this._editable;\n }\n /** Whether control has errors */\n get controlInvalid() {\n return this._controlInvalid$();\n }\n /**\n * Element reference.\n */\n get elementRef() {\n // Return a fallback ElementRef if _elementRefOrNull is null\n return this._elementRefOrNull || this._elementRef;\n }\n /** @hidden */\n constructor() {\n /**\n * Emits when change detection is needed.\n */\n this.detectChanges = new EventEmitter();\n /**\n * Emits when mark for changes detection is needed.\n */\n this.markForCheck = new EventEmitter();\n /**\n * See @FormFieldControl\n */\n this.focused = false;\n /**\n * See @FormFieldControl\n */\n this.stateChanges = new Subject();\n /** @hidden */\n this.formField = inject(FD_FORM_FIELD, {\n skipSelf: true,\n optional: true\n });\n /**\n * NgControl instance.\n */\n this.ngControl = inject(NgControl, {\n optional: true,\n host: true\n });\n /**\n * Form container instance. Usually ngForm or FormGroup directives.\n */\n this.controlContainer = inject(ControlContainer, {\n optional: true,\n skipSelf: true\n });\n /**\n * Separate NgForm instance. For cases when formGroup is used with the form itself.\n */\n this.ngForm = inject(NgForm, {\n optional: true,\n skipSelf: true\n });\n /** @hidden */\n this.normalizedState$ = computed(() => {\n const storedState = this._state$();\n if (storedState) {\n return storedState;\n }\n if (!this._controlInvalid$()) {\n return 'default';\n }\n return this.formField?.getPriorityState() || 'default';\n }, ...(ngDevMode ? [{ debugName: \"normalizedState$\" }] : []));\n /** @hidden */\n this._subscriptions = new Subscription();\n /**\n * A private property to hold the ElementRef which might be null\n */\n this._elementRefOrNull = inject(ElementRef, { optional: true });\n /** @hidden */\n this._defaultId = `fd-input-id-${randomId++}`;\n /** ID for the Element */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n this.id = this._defaultId;\n /** @hidden */\n this._editable = true;\n /**\n * @hidden\n */\n this._controlInvalid$ = signal(false, ...(ngDevMode ? [{ debugName: \"_controlInvalid$\" }] : []));\n /** @hidden */\n this._parentControl = inject(FD_FORM_FIELD_CONTROL, {\n skipSelf: true,\n optional: true\n });\n /**\n * @hidden\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or 'default'\n */\n this._state$ = signal(null, ...(ngDevMode ? [{ debugName: \"_state$\" }] : []));\n /** @hidden */\n this.onChange = () => { };\n /** @hidden */\n this.onTouched = () => { };\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n /** @hidden */\n ngOnInit() {\n // There may be cases when one form control is used as a base to build another form control.\n if (!this._parentControl) {\n this.formField?.registerFormFieldControl(this);\n }\n }\n /**\n * Re-validate and emit event to parent container on every CD cycle as they are some errors\n * that we can't subscribe to.\n */\n ngDoCheck() {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n /** @hidden */\n ngAfterViewInit() {\n if (this.ngControl) {\n this._subscriptions.add(this.ngControl.statusChanges?.subscribe(() => {\n this._markForCheck();\n }));\n }\n const labelAndHelpId = `fdp-form-label-content-${this.id}`;\n // if not specified, associate label and inline help ids with the input,\n // else add these ids to the specified ones\n if (!this.ariaLabelledBy) {\n this.ariaLabelledBy = labelAndHelpId;\n }\n else {\n this.ariaLabelledBy += ' ' + labelAndHelpId;\n }\n this._markForCheck();\n }\n /** @hidden */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /** @hidden */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /** @hidden */\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n this.stateChanges.complete();\n this.formField?.unregisterFormFieldControl(this);\n }\n /** @hidden */\n setDisabledState(isDisabled) {\n const newState = coerceBooleanProperty(isDisabled);\n this._markForCheck();\n if (newState !== this._disabled) {\n this._disabled = newState;\n this.stateChanges.next('setDisabledState');\n }\n }\n /**\n * Method for setting the value\n * @param value\n */\n writeValue(value) {\n this.value = value;\n this.stateChanges.next('writeValue');\n this._markForCheck();\n }\n /**\n *\n * Keeps track of element focus\n */\n _onFocusChanged(isFocused) {\n if (isFocused !== this.focused && (!this.disabled || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next('_onFocusChanged');\n }\n if (!isFocused) {\n this.onTouched();\n }\n }\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event) {\n this.focus(event);\n }\n /**\n * In most of the cases when working with input element directly you should be just find to assign\n * variable to this element\n *\n * ```\n * <input #inputElementRef fd-form-control ...>\n * ```\n *\n * and this default behavior used. For other cases implement focus.\n *\n */\n focus(event) {\n if (this._elementRef && !this.focused) {\n this._elementRef.nativeElement.focus(event);\n }\n }\n /**\n * Need re-validates errors on every CD iteration to make sure we are also\n * covering non-control errors, errors that happens outside of this control\n */\n updateErrorState() {\n const parent = this.ngForm;\n const parentControlContainer = this.controlContainer;\n const control = this.ngControl ? this.ngControl.control : null;\n const newStatusIsError = !!(control?.invalid &&\n (control.dirty || control.touched || parent?.submitted || parentControlContainer?.submitted));\n if (newStatusIsError !== this._controlInvalid$()) {\n this._controlInvalid$.set(newStatusIsError);\n this.stateChanges.next('updateErrorState');\n this._markForCheck();\n }\n }\n /**\n * Used to change the value of a control.\n * @param value the value to be applied\n * @param emitOnChange whether to emit \"onChange\" event.\n * Should be \"false\", if the change is made programmatically (internally) by the control, \"true\" otherwise\n */\n setValue(value, emitOnChange = true) {\n let coercedValue = value;\n if (this.type === 'number') {\n coercedValue = value === '' || value === null || value === undefined ? null : Number(value);\n }\n if (coercedValue !== this.value) {\n this.writeValue(coercedValue);\n if (emitOnChange) {\n this.onChange(coercedValue);\n }\n this._markForCheck();\n }\n }\n /** @hidden */\n _markForCheck() {\n this.markForCheck.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CvaDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: CvaDirective, isStandalone: true, selector: \"[fdkCva]\", inputs: { placeholder: \"placeholder\", type: \"type\", 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 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CvaDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdkCva]',\n standalone: true\n }]\n }], ctorParameters: () => [], propDecorators: { placeholder: [{\n type: Input\n }], type: [{\n type: Input\n }], state: [{\n type: Input\n }], stateMessage: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], editable: [{\n type: Input\n }], name: [{\n type: Input\n }], detectChanges: [{\n type: Output\n }], markForCheck: [{\n type: Output\n }], _elementRef: [{\n type: ViewChild,\n args: ['inputElementRef', { static: true, read: ElementRef }]\n }], id: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ZhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL2N2YS9jdmEuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBRUgsU0FBUyxFQUVULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBcUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSXZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFM0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBTWpCLE1BQU0sT0FBTyxZQUFZO0lBV3JCOzs7OztPQUtHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBMkI7UUFDakMsSUFBSSxDQUFDLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFBTSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsS0FBSyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFB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QUksWUFBWSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzlCLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLGFBQWE7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQWpZUSxZQUFZO2tHQUFaLFlBQVksa2VBZ0crQixVQUFVOzsyRkFoR3JELFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3REFNRyxXQUFXO3NCQURWLEtBQUs7Z0JBS04sSUFBSTtzQkFESCxLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSztnQkFjTixZQUFZO3NCQURYLEtBQUs7Z0JBS0YsUUFBUTtzQkFEWCxLQUFLO2dCQWVOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQU9GLFFBQVE7c0JBRFgsS0FBSztnQkFpQk4sSUFBSTtzQkFESCxLQUFLO2dCQU9OLGFBQWE7c0JBRFosTUFBTTtnQkFPUCxZQUFZO3NCQURYLE1BQU07Z0JBT0csV0FBVztzQkFEcEIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkEwRmhFLEVBQUU7c0JBREQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgY29tcHV0ZWQsXG4gICAgaW5qZWN0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiwgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzVmFsaWRDb250cm9sU3RhdGUgfSBmcm9tICcuLi9oZWxwZXJzL3N0YXRlJztcbmltcG9ydCB7IEJhc2VDVkEgfSBmcm9tICcuLi9tb2RlbHMvY3ZhJztcbmltcG9ydCB7IEZvcm1GaWVsZCwgRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1zdGF0ZSc7XG5pbXBvcnQgeyBGRF9GT1JNX0ZJRUxEX0NPTlRST0wgfSBmcm9tICcuLi90b2tlbnMvZm9ybS1maWVsZC1jb250cm9sLnRva2VuJztcbmltcG9ydCB7IEZEX0ZPUk1fRklFTEQgfSBmcm9tICcuLi90b2tlbnMvZm9ybS1maWVsZC50b2tlbic7XG5cbmxldCByYW5kb21JZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0N2YV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3ZhRGlyZWN0aXZlPFQgPSBhbnk+XG4gICAgaW1wbGVtZW50cyBIYXNFbGVtZW50UmVmLCBCYXNlQ1ZBLCBGb3JtRmllbGRDb250cm9sLCBPbkluaXQsIERvQ2hlY2ssIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICAvKiogSW5wdXQgcGxhY2Vob2xkZXIgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKiogSW5wdXQgdHlwZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHlwZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBjb250cm9sIC0gYXBwbGllcyBjc3MgY2xhc3Nlcy5cbiAgICAgKiAgQ2FuIGJlICdzdWNjZXNzJywgJ2Vycm9yJywgJ3dhcm5pbmcnLCAnZGVmYXVsdCcsICdpbmZvcm1hdGlvbicuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0ZShzdGF0ZTogTnVsbGFibGU8Rm9ybVN0YXRlcz4pIHtcbiAgICAgICAgaWYgKCFzdGF0ZSB8fCBpc1ZhbGlkQ29udHJvbFN0YXRlKHN0YXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUkLnNldChzdGF0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgUHJvdmlkZWQgdmFsdWUgXCIke3N0YXRlfVwiIGlzIG5vdCBhIHZhbGlkIG9wdGlvbiBmb3IgRm9ybVN0YXRlcyB0eXBlYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkU3RhdGUkKCk7XG4gICAgfVxuXG4gICAgLyoqIEhvbGRzIHRoZSBtZXNzYWdlIHdpdGggcmVzcGVjdCB0byBzdGF0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGRpc2FibGVkICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmVhZE9ubHkgVmFsdWUgdG8gTWFyayBjb21wb25lbnQgcmVhZCBvbmx5XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByZWFkb25seTogYm9vbGVhbjtcblxuICAgIC8qKiBCaW5kcyB0byBjb250cm9sIGFyaWEtbGFiZWxsZWRCeSBhdHRyaWJ1dGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgY29udHJvbCBhcmlhLWxhYmVsIGF0dHJpYnV0ZSB2YWx1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogVGVsbCB0aGUgY29tcG9uZW50IGlmIHdlIGFyZSBpbiBlZGl0aW5nIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZWRpdGFibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBjb25zdCBuZXdWYWwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5fZWRpdGFibGUgIT09IG5ld1ZhbCkge1xuICAgICAgICAgICAgdGhpcy5fZWRpdGFibGUgPSBuZXdWYWw7XG4gICAgICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ2VkaXRhYmxlJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGVkaXRhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdGFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgY29udHJvbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gY2hhbmdlIGRldGVjdGlvbiBpcyBuZWVkZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZGV0ZWN0Q2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gbWFyayBmb3IgY2hhbmdlcyBkZXRlY3Rpb24gaXMgbmVlZGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1hcmtGb3JDaGVjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSB0byBpbnRlcm5hbCBJbnB1dCBlbGVtZW50XG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50UmVmJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBwcm90ZWN0ZWQgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHZhbHVlOiBUO1xuXG4gICAgLyoqIHNldCB3aGVuIGlucHV0IGZpZWxkIGlzIG1hbmRhdG9yeSBmb3JtIGZpZWxkICovXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTZWUgQEZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjb250cm9sIGhhcyBlcnJvcnMgKi9cbiAgICBnZXQgY29udHJvbEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250cm9sSW52YWxpZCQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWUgQEZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgZm9ybUZpZWxkOiBGb3JtRmllbGQgfCBudWxsID0gaW5qZWN0KEZEX0ZPUk1fRklFTEQsIHtcbiAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBOZ0NvbnRyb2wgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgaG9zdDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSBjb250YWluZXIgaW5zdGFuY2UuIFVzdWFsbHkgbmdGb3JtIG9yIEZvcm1Hcm91cCBkaXJlY3RpdmVzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvbnRyb2xDb250YWluZXIgPSBpbmplY3QoQ29udHJvbENvbnRhaW5lciwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgc2tpcFNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFNlcGFyYXRlIE5nRm9ybSBpbnN0YW5jZS4gRm9yIGNhc2VzIHdoZW4gZm9ybUdyb3VwIGlzIHVzZWQgd2l0aCB0aGUgZm9ybSBpdHNlbGYuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmdGb3JtID0gaW5qZWN0KE5nRm9ybSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgc2tpcFNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgbm9ybWFsaXplZFN0YXRlJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmVkU3RhdGUgPSB0aGlzLl9zdGF0ZSQoKTtcbiAgICAgICAgaWYgKHN0b3JlZFN0YXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmVkU3RhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX2NvbnRyb2xJbnZhbGlkJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2RlZmF1bHQnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUZpZWxkPy5nZXRQcmlvcml0eVN0YXRlKCkgfHwgJ2RlZmF1bHQnO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKipcbiAgICAgKiBBIHByaXZhdGUgcHJvcGVydHkgdG8gaG9sZCB0aGUgRWxlbWVudFJlZiB3aGljaCBtaWdodCBiZSBudWxsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZk9yTnVsbDogRWxlbWVudFJlZiB8IG51bGwgPSBpbmplY3QoRWxlbWVudFJlZiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIEVsZW1lbnQgcmVmZXJlbmNlLlxuICAgICAqL1xuICAgIGdldCBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICAvLyBSZXR1cm4gYSBmYWxsYmFjayBFbGVtZW50UmVmIGlmIF9lbGVtZW50UmVmT3JOdWxsIGlzIG51bGxcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWZPck51bGwgfHwgKHRoaXMuX2VsZW1lbnRSZWYgYXMgRWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZWZhdWx0SWQgPSBgZmQtaW5wdXQtaWQtJHtyYW5kb21JZCsrfWA7XG5cbiAgICAvKiogSUQgZm9yIHRoZSBFbGVtZW50ICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmcgPSB0aGlzLl9kZWZhdWx0SWQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRyb2xJbnZhbGlkJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudENvbnRyb2wgPSBpbmplY3QoRkRfRk9STV9GSUVMRF9DT05UUk9MLCB7XG4gICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBjb250cm9sIC0gYXBwbGllcyBjc3MgY2xhc3Nlcy5cbiAgICAgKiBDYW4gYmUgYHN1Y2Nlc3NgLCBgZXJyb3JgLCBgd2FybmluZ2AsIGBpbmZvcm1hdGlvbmAgb3IgJ2RlZmF1bHQnXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUkID0gc2lnbmFsPE51bGxhYmxlPEZvcm1TdGF0ZXM+PihudWxsKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIFRoZXJlIG1heSBiZSBjYXNlcyB3aGVuIG9uZSBmb3JtIGNvbnRyb2wgaXMgdXNlZCBhcyBhIGJhc2UgdG8gYnVpbGQgYW5vdGhlciBmb3JtIGNvbnRyb2wuXG4gICAgICAgIGlmICghdGhpcy5fcGFyZW50Q29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtRmllbGQ/LnJlZ2lzdGVyRm9ybUZpZWxkQ29udHJvbCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlLXZhbGlkYXRlIGFuZCBlbWl0IGV2ZW50IHRvIHBhcmVudCBjb250YWluZXIgb24gZXZlcnkgQ0QgY3ljbGUgYXMgdGhleSBhcmUgc29tZSBlcnJvcnNcbiAgICAgKiB0aGF0IHdlIGNhbid0IHN1YnNjcmliZSB0by5cbiAgICAgKi9cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzPy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhYmVsQW5kSGVscElkID0gYGZkcC1mb3JtLWxhYmVsLWNvbnRlbnQtJHt0aGlzLmlkfWA7XG4gICAgICAgIC8vIGlmIG5vdCBzcGVjaWZpZWQsIGFzc29jaWF0ZSBsYWJlbCBhbmQgaW5saW5lIGhlbHAgaWRzIHdpdGggdGhlIGlucHV0LFxuICAgICAgICAvLyBlbHNlIGFkZCB0aGVzZSBpZHMgdG8gdGhlIHNwZWNpZmllZCBvbmVzXG4gICAgICAgIGlmICghdGhpcy5hcmlhTGFiZWxsZWRCeSkge1xuICAgICAgICAgICAgdGhpcy5hcmlhTGFiZWxsZWRCeSA9IGxhYmVsQW5kSGVscElkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hcmlhTGFiZWxsZWRCeSArPSAnICcgKyBsYWJlbEFuZEhlbHBJZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkPy51bnJlZ2lzdGVyRm9ybUZpZWxkQ29udHJvbCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogQm9vbGVhbklucHV0KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGlzRGlzYWJsZWQpO1xuICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgaWYgKG5ld1N0YXRlICE9PSB0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdTdGF0ZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3NldERpc2FibGVkU3RhdGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBmb3Igc2V0dGluZyB0aGUgdmFsdWVcbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnd3JpdGVWYWx1ZScpO1xuICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEtlZXBzIHRyYWNrIG9mIGVsZW1lbnQgZm9jdXNcbiAgICAgKi9cbiAgICBfb25Gb2N1c0NoYW5nZWQoaXNGb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc0ZvY3VzZWQgIT09IHRoaXMuZm9jdXNlZCAmJiAoIXRoaXMuZGlzYWJsZWQgfHwgIWlzRm9jdXNlZCkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IGlzRm9jdXNlZDtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ19vbkZvY3VzQ2hhbmdlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGV2ZW4gd2hlbiB3ZSBjbGljayBvbiBwYXJlbnQgY29udGFpbmVyIHdoaWNoIGlzIHRoZSBGb3JtRmllbGQgV3JhcHBpbmcgdGhpc1xuICAgICAqIGNvbnRyb2xcbiAgICAgKi9cbiAgICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXMoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluIG1vc3Qgb2YgdGhlIGNhc2VzIHdoZW4gd29ya2luZyB3aXRoIGlucHV0IGVsZW1lbnQgZGlyZWN0bHkgeW91IHNob3VsZCBiZSBqdXN0IGZpbmQgdG8gYXNzaWduXG4gICAgICogdmFyaWFibGUgdG8gdGhpcyBlbGVtZW50XG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiA8aW5wdXQgI2lucHV0RWxlbWVudFJlZiBmZC1mb3JtLWNvbnRyb2wgLi4uPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYW5kIHRoaXMgZGVmYXVsdCBiZWhhdmlvciB1c2VkLiBGb3Igb3RoZXIgY2FzZXMgaW1wbGVtZW50IGZvY3VzLlxuICAgICAqXG4gICAgICovXG4gICAgZm9jdXMoZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50UmVmICYmICF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgTmVlZCByZS12YWxpZGF0ZXMgZXJyb3JzIG9uIGV2ZXJ5IENEIGl0ZXJhdGlvbiB0byBtYWtlIHN1cmUgd2UgYXJlIGFsc29cbiAgICAgKiAgY292ZXJpbmcgbm9uLWNvbnRyb2wgZXJyb3JzLCBlcnJvcnMgdGhhdCBoYXBwZW5zIG91dHNpZGUgb2YgdGhpcyBjb250cm9sXG4gICAgICovXG4gICAgdXBkYXRlRXJyb3JTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5uZ0Zvcm07XG4gICAgICAgIGNvbnN0IHBhcmVudENvbnRyb2xDb250YWluZXIgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbCA/ICh0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG5ld1N0YXR1c0lzRXJyb3IgPSAhIShcbiAgICAgICAgICAgIGNvbnRyb2w/LmludmFsaWQgJiZcbiAgICAgICAgICAgIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCB8fCBwYXJlbnQ/LnN1Ym1pdHRlZCB8fCAocGFyZW50Q29udHJvbENvbnRhaW5lciBhcyBhbnkpPy5zdWJtaXR0ZWQpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKG5ld1N0YXR1c0lzRXJyb3IgIT09IHRoaXMuX2NvbnRyb2xJbnZhbGlkJCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9sSW52YWxpZCQuc2V0KG5ld1N0YXR1c0lzRXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgndXBkYXRlRXJyb3JTdGF0ZScpO1xuICAgICAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgYSBjb250cm9sLlxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYmUgYXBwbGllZFxuICAgICAqIEBwYXJhbSBlbWl0T25DaGFuZ2Ugd2hldGhlciB0byBlbWl0IFwib25DaGFuZ2VcIiBldmVudC5cbiAgICAgKiBTaG91bGQgYmUgXCJmYWxzZVwiLCBpZiB0aGUgY2hhbmdlIGlzIG1hZGUgcHJvZ3JhbW1hdGljYWxseSAoaW50ZXJuYWxseSkgYnkgdGhlIGNvbnRyb2wsIFwidHJ1ZVwiIG90aGVyd2lzZVxuICAgICAqL1xuICAgIHNldFZhbHVlKHZhbHVlOiBULCBlbWl0T25DaGFuZ2UgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGxldCBjb2VyY2VkVmFsdWU6IGFueSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBjb2VyY2VkVmFsdWUgPSB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBOdW1iZXIodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvZXJjZWRWYWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGNvZXJjZWRWYWx1ZSk7XG4gICAgICAgICAgICBpZiAoZW1pdE9uQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShjb2VyY2VkVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21hcmtGb3JDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2suZW1pdCgpO1xuICAgIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { CvaDirective } from './cva/cva.directive';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\nexport class FormsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: FormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: FormsModule, imports: [CvaDirective], exports: [CvaDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: FormsModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: FormsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CvaDirective],\n exports: [CvaDirective]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvZm9ybXMvZm9ybXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUVuRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sV0FBVzs4R0FBWCxXQUFXOytHQUFYLFdBQVcsWUFIVixZQUFZLGFBQ1osWUFBWTsrR0FFYixXQUFXOzsyRkFBWCxXQUFXO2tCQUp2QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdmFEaXJlY3RpdmUgfSBmcm9tICcuL2N2YS9jdmEuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVXNlIGRpcmVjdCBpbXBvcnRzIG9mIGNvbXBvbmVudHMgYW5kIGRpcmVjdGl2ZXMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0N2YURpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0N2YURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybXNNb2R1bGUge31cbiJdfQ==","import { ChangeDetectorRef, DestroyRef, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CvaDirective } from './cva.directive';\nimport * as i0 from \"@angular/core\";\n/**\n * Base ControlValueAccessor control class.\n * Used in conjunction with CvaDirective.\n *\n * This class performs generic change detection based on `CvaDirective` outputs.\n */\nexport class CvaControl {\n constructor() {\n /**\n * Control value accessor directive instance.\n */\n this.cvaDirective = inject(CvaDirective, {\n self: true,\n optional: true\n });\n /**\n * Change detector instance.\n */\n this._changeDetector = inject(ChangeDetectorRef);\n /** @Hidden */\n this._destroyRef = inject(DestroyRef);\n }\n /** @hidden */\n listenToChanges() {\n this.cvaDirective?.markForCheck.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetector.detectChanges();\n });\n this.cvaDirective?.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetector.detectChanges();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CvaControl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CvaControl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CvaControl, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ZhLWNvbnRyb2wuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9mb3Jtcy9jdmEvY3ZhLWNvbnRyb2wuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFL0M7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVJOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxNQUFNLENBQWtCLFlBQVksRUFBRTtZQUN4RCxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ08sb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV0RCxjQUFjO1FBQ0osZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FZOUM7SUFWRyxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RGLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2RixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0ExQlEsVUFBVTtrSEFBVixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ3ZhRGlyZWN0aXZlIH0gZnJvbSAnLi9jdmEuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBCYXNlIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGNvbnRyb2wgY2xhc3MuXG4gKiBVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggQ3ZhRGlyZWN0aXZlLlxuICpcbiAqIFRoaXMgY2xhc3MgcGVyZm9ybXMgZ2VuZXJpYyBjaGFuZ2UgZGV0ZWN0aW9uIGJhc2VkIG9uIGBDdmFEaXJlY3RpdmVgIG91dHB1dHMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdmFDb250cm9sPFQ+IHtcbiAgICAvKipcbiAgICAgKiBDb250cm9sIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGl2ZSBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3ZhRGlyZWN0aXZlID0gaW5qZWN0PEN2YURpcmVjdGl2ZTxUPj4oQ3ZhRGlyZWN0aXZlLCB7XG4gICAgICAgIHNlbGY6IHRydWUsXG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgZGV0ZWN0b3IgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9jaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGlzdGVuVG9DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN2YURpcmVjdGl2ZT8ubWFya0ZvckNoZWNrLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmN2YURpcmVjdGl2ZT8uZGV0ZWN0Q2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","/**\n * FormField base class.\n *\n * This class is used to create form field components.\n *\n */\nexport class FormField {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL21vZGVscy9mb3JtLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixTQUFTO0NBdUI5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gJy4vZm9ybS1zdGF0ZSc7XG5cbi8qKlxuICogRm9ybUZpZWxkIGJhc2UgY2xhc3MuXG4gKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIGNyZWF0ZSBmb3JtIGZpZWxkIGNvbXBvbmVudHMuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9ybUZpZWxkIHtcbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB1bmRlcmx5aW5nIGZvcm0gY29udHJvbFxuICAgICAqL1xuICAgIHJlZ2lzdGVyRm9ybUZpZWxkQ29udHJvbDogKGNvbnRyb2w6IEZvcm1GaWVsZENvbnRyb2wpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogVW5yZWdpc3RlciB1bmRlcmx5aW5nIGZvcm0gY29udHJvbFxuICAgICAqL1xuICAgIHVucmVnaXN0ZXJGb3JtRmllbGRDb250cm9sOiAoY29udHJvbDogRm9ybUZpZWxkQ29udHJvbCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFNldCBkZWZhdWx0IGNvbHVtbnMgbGF5b3V0XG4gICAgICovXG4gICAgc2V0RGVmYXVsdENvbHVtbkxheW91dDogKCkgPT4gdm9pZDtcblxuICAgIC8qKiBHZXRzIGZpZWxkIGVycm9yIHByaW9yaXR5IHN0YXRlLiAqL1xuICAgIGdldFByaW9yaXR5U3RhdGU6ICgpID0+IEZvcm1TdGF0ZXM7XG5cbiAgICAvKiogR3JvdXBzIGVycm9ycy4gKi9cbiAgICBncm91cEVycm9yczogKCkgPT4gdm9pZDtcblxuICAgIC8qKiBTZXRzIGVycm9yIGRpcmVjdGl2ZXMgZnJvbSBwYXJlbnQgY29udGFpbmVyICovXG4gICAgc2V0RXJyb3JEaXJlY3RpdmVzOiAoZGlyZWN0aXZlczogUXVlcnlMaXN0PEZvcm1FcnJvcj4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUZpZWxkQ29udHJvbDxUID0gYW55PiB7XG4gICAgLyoqXG4gICAgICogRWFjaCBpbnB1dCBjb250cm9sIGhhcyBhbHdheXMgYSB2YWx1ZS4gTmVlZCB0byBtYWtlIHN1cmUgd2Uga2VlcCBhIGNvbnZlbnRpb24gZm9yXG4gICAgICogaW5wdXQgZmllbGRzXG4gICAgICovXG4gICAgdmFsdWU6IFQgfCBudWxsO1xuXG4gICAgLyoqXG4gICAgICogTmVlZCB0byBoYXZlIGEgd2F5IHRvIHNldCBwbGFjZWhvbGRlciB0byB0aGUgaW5wdXRcbiAgICAgKi9cbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTmVlZCB0byBoYXZlIGEgd2F5IHRvIHNldCBNYW5kYXRvcnkgdG8gdGhlIGlucHV0IGZpZWxkXG4gICAgICovXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGlkIGZyb20gRkYgdG8gSW5wdXRcbiAgICAgKi9cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBzaG91bGQgYmUgY29taW5nIGZyb20gUGFyZW50LlxuICAgICAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGhlaWdodCBvZiB0aGUgZXh0cmEgY29udGVudCBhdCB0aGUgYm90dG9tIG9mIHRoZSBmb3JtIGNvbnRyb2wsXG4gICAgICogd2hpY2ggc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGFsaWdubWVudCBvZiBmb3JtIGNvbnRyb2wgYW5kIGl0J3MgbGFiZWxcbiAgICAgKi9cbiAgICBleHRyYUNvbnRlbnRIZWlnaHRQeD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogRm9ybSBGaWVsZCBsaXN0ZW4gZm9yIGFsbCB0aGUgY2hhbmdlcyBoYXBwZW5pbmcgaW5zaWRlIHRoZSBpbnB1dFxuICAgICAqL1xuICAgIHN0YXRlQ2hhbmdlczogT2JzZXJ2YWJsZTx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqICBFYWNoIGlucHV0IHNob3VsZCBpbmplY3QgaXRzIG93biBuZ0NvbnRyb2wgYW5kIHdlIHNob3VsZCByZXRyaWV2ZSBpdFxuICAgICAqL1xuICAgIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGRpc2FibGVkLiAqL1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogS2VlcHMgdHJhY2sgaWYgdGhlIGZvcm0gZWxlbWVudCBpcyBpbiBmb2N1c1xuICAgICAqL1xuICAgIGZvY3VzZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogV2hldGhlciBjb250cm9sIGhhcyBlcnJvcnMgKi9cbiAgICBjb250cm9sSW52YWxpZDogYm9vbGVhbjtcblxuICAgIC8qKiBDb3JyZXNwb25kaW5nIGVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogRm9ybSBmaWVsZCBpbnN0YW5jZS4gKi9cbiAgICBmb3JtRmllbGQ6IE51bGxhYmxlPEZvcm1GaWVsZD47XG5cbiAgICAvKiogTWV0aG9kIGZvciBmb2N1c2luZyBvbiB0aGUgZWxlbWVudCAqL1xuICAgIGZvY3VzKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGV2ZW4gd2hlbiB3ZSBjbGljayBvbiBwYXJlbnQgY29udGFpbmVyIHdoaWNoIGlzIHRoZSBGb3JtRmllbGQgV3JhcHBpbmcgdGhpc1xuICAgICAqIGNvbnRyb2xcbiAgICAgKi9cbiAgICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbn1cbiJdfQ==","/** @hidden */\nexport function isSelectableItem(item) {\n return (item &&\n item.label !== undefined &&\n item.value !== undefined &&\n Object.prototype.hasOwnProperty.call(item, 'selected'));\n}\n/** @hidden */\nexport function isSelectItem(item) {\n return item && item.label !== undefined && item.value !== undefined;\n}\nexport const isOptionItem = isSelectItem;\nexport const isSelectableOptionItem = isSelectableItem;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9mb3Jtcy9tb2RlbHMvc2VsZWN0LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0RBLGNBQWM7QUFDZCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBc0I7SUFDbkQsT0FBTyxDQUNILElBQUk7UUFDSixJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVM7UUFDeEIsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQ3hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQ3pELENBQUM7QUFDTixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBc0I7SUFDL0MsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDeEUsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7QUFDekMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBTZWxlY3RJdGVtIGlzIHVzZWQgdG8gZGVhbCB3aXRoIGNvbXBsZXggb2JqZWN0IGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZm9ybWF0XG4gKiBjdXN0b20gbGFiZWwgdGhhdCBpcyBzaG93biBpbiB0aGUgb3B0aW9ucy5cbiAqXG4gKiBVc2VkIGluIHZhcmlvdXMgY29udHJvbHM6IFNlbGVjdCwgUmFkaW9Hcm91cCwgQ2hlY2tib3hHcm91cCwgQ29tYm9ib3hcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJdGVtPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBJdGVtIHRleHQgc2hvd24gaW4gdGhlIHBvcHVwXG4gICAgICovXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZXMgdG8gdGhlIG9iamVjdCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHZhbHVlOiBUO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAgIGljb24/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVHJpZ2dlciB2YWx1ZXMgaXMgYSB0ZXh0IGZvciBzZWxlY3RlZCBpdGVtXG4gICAgICovXG4gICAgdHJpZ2dlclZhbHVlPzogc3RyaW5nO1xuXG4gICAgaXNHcm91cD86IGJvb2xlYW47XG4gICAgc2Vjb25kYXJ5VGV4dD86IHN0cmluZztcbiAgICBjaGlsZHJlbj86IFNlbGVjdEl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25JdGVtPFQgPSBhbnk+IHtcbiAgICAvKiogSXRlbSB0ZXh0ICovXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZXMgdG8gdGhlIG9iamVjdCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHZhbHVlOiBUO1xuICAgIGlkPzogc3RyaW5nO1xuICAgIGlzR3JvdXA/OiBib29sZWFuO1xuICAgIHNlY29uZGFyeVRleHQ/OiBzdHJpbmc7XG4gICAgY2hpbGRyZW4/OiBPcHRpb25JdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0YWJsZU9wdGlvbkl0ZW08VCA9IGFueT4gZXh0ZW5kcyBPcHRpb25JdGVtPFQ+IHtcbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XG4gICAgY2hpbGRyZW4/OiBTZWxlY3RhYmxlT3B0aW9uSXRlbVtdO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0YWJsZUl0ZW0oaXRlbTogU2VsZWN0SXRlbSB8IGFueSk6IGl0ZW0gaXMgU2VsZWN0SXRlbSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgaXRlbSAmJlxuICAgICAgICBpdGVtLmxhYmVsICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgaXRlbS52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdGVtLCAnc2VsZWN0ZWQnKVxuICAgICk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3RJdGVtKGl0ZW06IFNlbGVjdEl0ZW0gfCBhbnkpOiBpdGVtIGlzIFNlbGVjdEl0ZW0ge1xuICAgIHJldHVybiBpdGVtICYmIGl0ZW0ubGFiZWwgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBpc09wdGlvbkl0ZW0gPSBpc1NlbGVjdEl0ZW07XG5leHBvcnQgY29uc3QgaXNTZWxlY3RhYmxlT3B0aW9uSXRlbSA9IGlzU2VsZWN0YWJsZUl0ZW07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWNkay1mb3Jtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2Zvcm1zL2Z1bmRhbWVudGFsLW5neC1jZGstZm9ybXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-cdk-forms.mjs","sources":["../../../../libs/cdk/forms/models/form-state.ts","../../../../libs/cdk/forms/helpers/state.ts","../../../../libs/cdk/forms/tokens/form-field-control.token.ts","../../../../libs/cdk/forms/tokens/form-field.token.ts","../../../../libs/cdk/forms/cva/cva.directive.ts","../../../../libs/cdk/forms/forms.module.ts","../../../../libs/cdk/forms/cva/cva-control.class.ts","../../../../libs/cdk/forms/models/form-field.ts","../../../../libs/cdk/forms/models/select-item.ts","../../../../libs/cdk/forms/fundamental-ngx-cdk-forms.ts"],"sourcesContent":["export const formStates = ['success', 'error', 'warning', 'default', 'information'] as const;\n\nexport type FormStates = (typeof formStates)[number];\n","import { formStates, FormStates } from '../models/form-state';\n\nconst stateSet = new Set<FormStates>(formStates);\n\n/** Checks if the given state is a valid control state. */\nexport function isValidControlState(value: any): value is FormStates {\n return stateSet.has(value);\n}\n","import { InjectionToken } from '@angular/core';\nimport { FormFieldControl } from '../models/form-field';\n\nexport const FD_FORM_FIELD_CONTROL = new InjectionToken<FormFieldControl>('FdFormFieldControl');\n","import { InjectionToken } from '@angular/core';\nimport { FormField } from '../models/form-field';\n\nexport const FD_FORM_FIELD = new InjectionToken<FormField>('FdFormField');\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n computed,\n inject,\n isDevMode,\n signal\n} from '@angular/core';\nimport { ControlContainer, ControlValueAccessor, FormControl, NgControl, NgForm } from '@angular/forms';\nimport { HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Subject, Subscription } from 'rxjs';\nimport { isValidControlState } from '../helpers/state';\nimport { BaseCVA } from '../models/cva';\nimport { FormField, FormFieldControl } from '../models/form-field';\nimport { FormStates } from '../models/form-state';\nimport { FD_FORM_FIELD_CONTROL } from '../tokens/form-field-control.token';\nimport { FD_FORM_FIELD } from '../tokens/form-field.token';\n\nlet randomId = 0;\n\n@Directive({\n selector: '[fdkCva]',\n standalone: true\n})\nexport class CvaDirective<T = any>\n implements HasElementRef, BaseCVA, FormFieldControl, OnInit, DoCheck, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /** Input placeholder */\n @Input()\n placeholder: string;\n\n /** Input type */\n @Input()\n type: string;\n\n /**\n * The state of the form control - applies css classes.\n * Can be 'success', 'error', 'warning', 'default', 'information'.\n *\n * @default 'default'\n */\n @Input()\n set state(state: Nullable<FormStates>) {\n if (!state || isValidControlState(state)) {\n this._state$.set(state);\n } else if (isDevMode()) {\n console.warn(`Provided value \"${state}\" is not a valid option for FormStates type`);\n }\n }\n get state(): FormStates {\n return this.normalizedState$();\n }\n\n /** Holds the message with respect to state */\n @Input()\n stateMessage: Nullable<string>;\n\n /** Whether the input is disabled */\n @Input()\n set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n /**\n * readOnly Value to Mark component read only\n */\n @Input()\n readonly: boolean;\n\n /** Binds to control aria-labelledBy attribute */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Sets control aria-label attribute value */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Tell the component if we are in editing mode.\n */\n @Input()\n set editable(value: BooleanInput) {\n const newVal = coerceBooleanProperty(value);\n if (this._editable !== newVal) {\n this._editable = newVal;\n this._markForCheck();\n this.stateChanges.next('editable');\n }\n }\n get editable(): boolean {\n return this._editable;\n }\n\n /**\n * Name of the control.\n */\n @Input()\n name: string;\n\n /**\n * Emits when change detection is needed.\n */\n @Output()\n detectChanges = new EventEmitter<void>();\n\n /**\n * Emits when mark for changes detection is needed.\n */\n @Output()\n markForCheck = new EventEmitter<void>();\n\n /**\n * Reference to internal Input element\n */\n @ViewChild('inputElementRef', { static: true, read: ElementRef })\n protected _elementRef: ElementRef;\n\n /** @hidden */\n value: T;\n\n /** set when input field is mandatory form field */\n required: boolean;\n\n /**\n * See @FormFieldControl\n */\n focused = false;\n\n /** Whether control has errors */\n get controlInvalid(): boolean {\n return this._controlInvalid$();\n }\n\n /**\n * See @FormFieldControl\n */\n readonly stateChanges: Subject<any> = new Subject<any>();\n\n /** @hidden */\n readonly formField: FormField | null = inject(FD_FORM_FIELD, {\n skipSelf: true,\n optional: true\n });\n\n /**\n * NgControl instance.\n */\n readonly ngControl = inject(NgControl, {\n optional: true,\n host: true\n });\n\n /**\n * Form container instance. Usually ngForm or FormGroup directives.\n */\n readonly controlContainer = inject(ControlContainer, {\n optional: true,\n skipSelf: true\n });\n\n /**\n * Separate NgForm instance. For cases when formGroup is used with the form itself.\n */\n readonly ngForm = inject(NgForm, {\n optional: true,\n skipSelf: true\n });\n\n /** @hidden */\n readonly normalizedState$ = computed(() => {\n const storedState = this._state$();\n if (storedState) {\n return storedState;\n }\n\n if (!this._controlInvalid$()) {\n return 'default';\n }\n\n return this.formField?.getPriorityState() || 'default';\n });\n\n /** @hidden */\n protected _subscriptions = new Subscription();\n\n /**\n * A private property to hold the ElementRef which might be null\n */\n private _elementRefOrNull: ElementRef | null = inject(ElementRef, { optional: true });\n\n /**\n * Element reference.\n */\n get elementRef(): ElementRef {\n // Return a fallback ElementRef if _elementRefOrNull is null\n return this._elementRefOrNull || (this._elementRef as ElementRef);\n }\n\n /** @hidden */\n private _defaultId = `fd-input-id-${randomId++}`;\n\n /** ID for the Element */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n @Input()\n id: string = this._defaultId;\n\n /** @hidden */\n private _disabled: boolean;\n /** @hidden */\n private _editable = true;\n\n /**\n * @hidden\n */\n private readonly _controlInvalid$ = signal(false);\n\n /** @hidden */\n private readonly _parentControl = inject(FD_FORM_FIELD_CONTROL, {\n skipSelf: true,\n optional: true\n });\n\n /**\n * @hidden\n * The state of the form control - applies css classes.\n * Can be `success`, `error`, `warning`, `information` or 'default'\n */\n private readonly _state$ = signal<Nullable<FormStates>>(null);\n\n /** @hidden */\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n /** @hidden */\n onChange: (value: any) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n ngOnInit(): void {\n // There may be cases when one form control is used as a base to build another form control.\n if (!this._parentControl) {\n this.formField?.registerFormFieldControl(this);\n }\n }\n\n /**\n * Re-validate and emit event to parent container on every CD cycle as they are some errors\n * that we can't subscribe to.\n */\n ngDoCheck(): void {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.ngControl) {\n this._subscriptions.add(\n this.ngControl.statusChanges?.subscribe(() => {\n this._markForCheck();\n })\n );\n }\n\n const labelAndHelpId = `fdp-form-label-content-${this.id}`;\n // if not specified, associate label and inline help ids with the input,\n // else add these ids to the specified ones\n if (!this.ariaLabelledBy) {\n this.ariaLabelledBy = labelAndHelpId;\n } else {\n this.ariaLabelledBy += ' ' + labelAndHelpId;\n }\n this._markForCheck();\n }\n\n /** @hidden */\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this.stateChanges.complete();\n this.formField?.unregisterFormFieldControl(this);\n }\n\n /** @hidden */\n setDisabledState(isDisabled: BooleanInput): void {\n const newState = coerceBooleanProperty(isDisabled);\n this._markForCheck();\n if (newState !== this._disabled) {\n this._disabled = newState;\n this.stateChanges.next('setDisabledState');\n }\n }\n\n /**\n * Method for setting the value\n * @param value\n */\n writeValue(value: T): void {\n this.value = value;\n this.stateChanges.next('writeValue');\n this._markForCheck();\n }\n\n /**\n *\n * Keeps track of element focus\n */\n _onFocusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused && (!this.disabled || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next('_onFocusChanged');\n }\n\n if (!isFocused) {\n this.onTouched();\n }\n }\n\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event: MouseEvent): void {\n this.focus(event);\n }\n\n /**\n * In most of the cases when working with input element directly you should be just find to assign\n * variable to this element\n *\n * ```\n * <input #inputElementRef fd-form-control ...>\n * ```\n *\n * and this default behavior used. For other cases implement focus.\n *\n */\n focus(event?: MouseEvent): void {\n if (this._elementRef && !this.focused) {\n this._elementRef.nativeElement.focus(event);\n }\n }\n\n /**\n * Need re-validates errors on every CD iteration to make sure we are also\n * covering non-control errors, errors that happens outside of this control\n */\n updateErrorState(): void {\n const parent = this.ngForm;\n const parentControlContainer = this.controlContainer;\n const control = this.ngControl ? (this.ngControl.control as FormControl) : null;\n const newStatusIsError = !!(\n control?.invalid &&\n (control.dirty || control.touched || parent?.submitted || (parentControlContainer as any)?.submitted)\n );\n\n if (newStatusIsError !== this._controlInvalid$()) {\n this._controlInvalid$.set(newStatusIsError);\n this.stateChanges.next('updateErrorState');\n this._markForCheck();\n }\n }\n\n /**\n * Used to change the value of a control.\n * @param value the value to be applied\n * @param emitOnChange whether to emit \"onChange\" event.\n * Should be \"false\", if the change is made programmatically (internally) by the control, \"true\" otherwise\n */\n setValue(value: T, emitOnChange = true): void {\n let coercedValue: any = value;\n\n if (this.type === 'number') {\n coercedValue = value === '' || value === null || value === undefined ? null : Number(value);\n }\n\n if (coercedValue !== this.value) {\n this.writeValue(coercedValue);\n if (emitOnChange) {\n this.onChange(coercedValue);\n }\n this._markForCheck();\n }\n }\n\n /** @hidden */\n private _markForCheck(): void {\n this.markForCheck.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CvaDirective } from './cva/cva.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [CvaDirective],\n exports: [CvaDirective]\n})\nexport class FormsModule {}\n","import { ChangeDetectorRef, DestroyRef, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CvaDirective } from './cva.directive';\n\n/**\n * Base ControlValueAccessor control class.\n * Used in conjunction with CvaDirective.\n *\n * This class performs generic change detection based on `CvaDirective` outputs.\n */\n@Injectable()\nexport class CvaControl<T> {\n /**\n * Control value accessor directive instance.\n */\n public cvaDirective = inject<CvaDirective<T>>(CvaDirective, {\n self: true,\n optional: true\n });\n\n /**\n * Change detector instance.\n */\n protected _changeDetector = inject(ChangeDetectorRef);\n\n /** @Hidden */\n protected _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n listenToChanges(): void {\n this.cvaDirective?.markForCheck.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetector.detectChanges();\n });\n\n this.cvaDirective?.detectChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._changeDetector.detectChanges();\n });\n }\n}\n","import { ElementRef, QueryList } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { Observable } from 'rxjs';\nimport { FormError } from './form-error';\nimport { FormStates } from './form-state';\n\n/**\n * FormField base class.\n *\n * This class is used to create form field components.\n *\n */\nexport abstract class FormField {\n /**\n * Register underlying form control\n */\n registerFormFieldControl: (control: FormFieldControl) => void;\n /**\n * Unregister underlying form control\n */\n unregisterFormFieldControl: (control: FormFieldControl) => void;\n\n /**\n * Set default columns layout\n */\n setDefaultColumnLayout: () => void;\n\n /** Gets field error priority state. */\n getPriorityState: () => FormStates;\n\n /** Groups errors. */\n groupErrors: () => void;\n\n /** Sets error directives from parent container */\n setErrorDirectives: (directives: QueryList<FormError>) => void;\n}\n\nexport interface FormFieldControl<T = any> {\n /**\n * Each input control has always a value. Need to make sure we keep a convention for\n * input fields\n */\n value: T | null;\n\n /**\n * Need to have a way to set placeholder to the input\n */\n placeholder: string;\n\n /**\n * Need to have a way to set Mandatory to the input field\n */\n required: boolean;\n\n /**\n * Sets id from FF to Input\n */\n id: string;\n\n /**\n * This should be coming from Parent.\n */\n editable: boolean;\n\n /**\n * The height of the extra content at the bottom of the form control,\n * which should not affect the alignment of form control and it's label\n */\n extraContentHeightPx?: number;\n\n /**\n *\n * Form Field listen for all the changes happening inside the input\n */\n stateChanges: Observable<void>;\n\n /**\n * Each input should inject its own ngControl and we should retrieve it\n */\n ngControl: NgControl | null;\n\n /** Whether the control is disabled. */\n disabled: boolean;\n\n /**\n * Keeps track if the form element is in focus\n */\n focused: boolean;\n\n /** Whether control has errors */\n controlInvalid: boolean;\n\n /** Corresponding element reference. */\n elementRef: ElementRef;\n\n /** Form field instance. */\n formField: Nullable<FormField>;\n\n /** Method for focusing on the element */\n focus(event?: MouseEvent): void;\n\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event: MouseEvent): void;\n}\n","/**\n * Interface SelectItem is used to deal with complex object in order to be able to format\n * custom label that is shown in the options.\n *\n * Used in various controls: Select, RadioGroup, CheckboxGroup, Combobox\n */\nexport interface SelectItem<T = any> {\n /**\n * Item text shown in the popup\n */\n label: string;\n\n /**\n * References to the object instance\n */\n value: T;\n disabled?: boolean;\n\n icon?: string;\n /**\n * Trigger values is a text for selected item\n */\n triggerValue?: string;\n\n isGroup?: boolean;\n secondaryText?: string;\n children?: SelectItem[];\n}\n\nexport interface OptionItem<T = any> {\n /** Item text */\n label: string;\n\n /**\n * References to the object instance\n */\n value: T;\n id?: string;\n isGroup?: boolean;\n secondaryText?: string;\n children?: OptionItem[];\n}\n\nexport interface SelectableOptionItem<T = any> extends OptionItem<T> {\n selected?: boolean;\n children?: SelectableOptionItem[];\n}\n\n/** @hidden */\nexport function isSelectableItem(item: SelectItem | any): item is SelectItem {\n return (\n item &&\n item.label !== undefined &&\n item.value !== undefined &&\n Object.prototype.hasOwnProperty.call(item, 'selected')\n );\n}\n\n/** @hidden */\nexport function isSelectItem(item: SelectItem | any): item is SelectItem {\n return item && item.label !== undefined && item.value !== undefined;\n}\n\nexport const isOptionItem = isSelectItem;\nexport const isSelectableOptionItem = isSelectableItem;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|