@fundamental-ngx/cdk 0.41.0 → 0.41.1-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data-source/base/abstract-data-provider.class.d.ts +11 -1
- package/data-source/base/base-data-source.class.d.ts +12 -5
- package/data-source/models/data-source-provider.d.ts +2 -2
- package/data-source/models/data-source.d.ts +1 -1
- package/esm2020/data-source/base/abstract-data-provider.class.mjs +19 -3
- package/esm2020/data-source/base/base-data-source.class.mjs +33 -20
- package/esm2020/data-source/models/data-source-provider.mjs +1 -1
- package/esm2020/data-source/models/data-source.mjs +1 -1
- package/esm2020/utils/directives/clicked/clicked.directive.mjs +3 -4
- package/esm2020/utils/directives/selectable-list/selectable-item.directive.mjs +8 -3
- package/esm2020/utils/directives/selectable-list/selection.service.mjs +10 -5
- package/fesm2015/fundamental-ngx-cdk-data-source.mjs +50 -21
- package/fesm2015/fundamental-ngx-cdk-data-source.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-cdk-utils.mjs +17 -7
- package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-cdk-data-source.mjs +50 -21
- package/fesm2020/fundamental-ngx-cdk-data-source.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-cdk-utils.mjs +17 -7
- package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fundamental-ngx-cdk-v0.41.1-rc.1.tgz +0 -0
- package/package.json +2 -2
- package/utils/directives/clicked/clicked.directive.d.ts +4 -4
- package/utils/directives/selectable-list/selectable-item.directive.d.ts +4 -2
- package/utils/directives/selectable-list/selection.service.d.ts +2 -1
- package/fundamental-ngx-cdk-v0.41.0.tgz +0 -0
|
@@ -152,7 +152,7 @@ class BaseDataSource {
|
|
|
152
152
|
return this._dataLoading$.asObservable();
|
|
153
153
|
}
|
|
154
154
|
/**
|
|
155
|
-
* Emits when data from the
|
|
155
|
+
* Emits when the data from the provider has been changed.
|
|
156
156
|
* @returns Observable of data source objects.
|
|
157
157
|
*/
|
|
158
158
|
get dataChanges() {
|
|
@@ -168,9 +168,9 @@ class BaseDataSource {
|
|
|
168
168
|
/** @hidden */
|
|
169
169
|
this._dataChanges$ = new BehaviorSubject([]);
|
|
170
170
|
/** @hidden */
|
|
171
|
-
this._dataRequested$ = new
|
|
171
|
+
this._dataRequested$ = new BehaviorSubject(false);
|
|
172
172
|
/** @hidden */
|
|
173
|
-
this._dataReceived$ = new
|
|
173
|
+
this._dataReceived$ = new BehaviorSubject(false);
|
|
174
174
|
/** @hidden */
|
|
175
175
|
this._destroy$ = new Subject();
|
|
176
176
|
/** @hidden */
|
|
@@ -183,36 +183,32 @@ class BaseDataSource {
|
|
|
183
183
|
* @param end end index.
|
|
184
184
|
*/
|
|
185
185
|
match(predicate = new Map(), start = 0, end = Infinity) {
|
|
186
|
-
this._dataRequested$.next();
|
|
186
|
+
this._dataRequested$.next(true);
|
|
187
187
|
this._dataLoading$.next(true);
|
|
188
|
-
const searchParam =
|
|
189
|
-
if (typeof predicate === 'string') {
|
|
190
|
-
searchParam.set('query', predicate);
|
|
191
|
-
}
|
|
192
|
-
else if (predicate instanceof Map) {
|
|
193
|
-
predicate.forEach((v, k) => searchParam.set(k, v));
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
throw new Error('DataSource.match() predicate can only accepts string and Map');
|
|
197
|
-
}
|
|
198
|
-
if (!searchParam.has('limit') && !this.limitless) {
|
|
199
|
-
searchParam.set('limit', BaseDataSource.MaxLimit);
|
|
200
|
-
}
|
|
188
|
+
const searchParam = this._getSearchParams(predicate);
|
|
201
189
|
this.dataProvider
|
|
202
190
|
.fetch(searchParam, start, end)
|
|
203
191
|
.pipe(takeUntil(this._destroy$))
|
|
204
192
|
.subscribe({
|
|
205
193
|
next: (result) => {
|
|
206
|
-
this._dataReceived$.next();
|
|
194
|
+
this._dataReceived$.next(true);
|
|
207
195
|
this._dataLoading$.next(false);
|
|
208
196
|
this._dataChanges$.next(result);
|
|
209
197
|
},
|
|
210
198
|
error: () => {
|
|
211
|
-
this._dataReceived$.next();
|
|
199
|
+
this._dataReceived$.next(false);
|
|
212
200
|
this._dataLoading$.next(false);
|
|
213
201
|
}
|
|
214
202
|
});
|
|
215
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Returns the Observable of a total items number filtered by the `predicate` param.
|
|
206
|
+
* @param predicate Search query.
|
|
207
|
+
*/
|
|
208
|
+
getTotalItems(predicate = new Map()) {
|
|
209
|
+
const searchParam = this._getSearchParams(predicate);
|
|
210
|
+
return this.dataProvider.getTotalItems(searchParam);
|
|
211
|
+
}
|
|
216
212
|
/**
|
|
217
213
|
* Closes the stream
|
|
218
214
|
*/
|
|
@@ -220,6 +216,23 @@ class BaseDataSource {
|
|
|
220
216
|
this._destroy$.next();
|
|
221
217
|
this._destroy$.complete();
|
|
222
218
|
}
|
|
219
|
+
/** @hidden */
|
|
220
|
+
_getSearchParams(predicate) {
|
|
221
|
+
const searchParam = new Map();
|
|
222
|
+
if (typeof predicate === 'string') {
|
|
223
|
+
searchParam.set('query', predicate);
|
|
224
|
+
}
|
|
225
|
+
else if (predicate instanceof Map) {
|
|
226
|
+
predicate.forEach((v, k) => searchParam.set(k, v));
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
throw new Error('DataSource.match() predicate can only accepts string and Map');
|
|
230
|
+
}
|
|
231
|
+
if (!searchParam.has('limit') && !this.limitless) {
|
|
232
|
+
searchParam.set('limit', BaseDataSource.MaxLimit);
|
|
233
|
+
}
|
|
234
|
+
return searchParam;
|
|
235
|
+
}
|
|
223
236
|
}
|
|
224
237
|
/**
|
|
225
238
|
* Max limit of items to be returned.
|
|
@@ -273,12 +286,14 @@ class DataProvider extends AbstractDataProvider {
|
|
|
273
286
|
constructor(values) {
|
|
274
287
|
super();
|
|
275
288
|
this.values = values;
|
|
289
|
+
/** Default limit for the pagination. */
|
|
290
|
+
this.defaultLimit = 50;
|
|
276
291
|
}
|
|
277
292
|
/** @hidden */
|
|
278
293
|
fetch(params) {
|
|
279
294
|
const observable = isObservable(this.values) ? this.values : of(this.values);
|
|
280
295
|
const queryString = params.get('query');
|
|
281
|
-
const limit = params.get('limit') ||
|
|
296
|
+
const limit = params.get('limit') || this.defaultLimit;
|
|
282
297
|
if (!queryString || queryString === '*') {
|
|
283
298
|
return observable.pipe(map((items) => this.withLimit(items, limit)));
|
|
284
299
|
}
|
|
@@ -297,9 +312,23 @@ class DataProvider extends AbstractDataProvider {
|
|
|
297
312
|
return result;
|
|
298
313
|
}));
|
|
299
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Returns observable with the number of total items that satisfy the search query.
|
|
317
|
+
* Warning: this is a naive implementation of the number of the filtered items.
|
|
318
|
+
* For real-world scenarios, it is recommended to override this method with its own logic.
|
|
319
|
+
*/
|
|
320
|
+
getTotalItems(params) {
|
|
321
|
+
const observable = isObservable(this.values) ? this.values : of(this.values);
|
|
322
|
+
const queryString = params.get('query');
|
|
323
|
+
if (!queryString) {
|
|
324
|
+
return observable.pipe(map((items) => items.length));
|
|
325
|
+
}
|
|
326
|
+
const toLowerPattern = queryString.toLowerCase();
|
|
327
|
+
return observable.pipe(map((items) => items.filter((item) => this.matches(item, toLowerPattern)).length));
|
|
328
|
+
}
|
|
300
329
|
/**
|
|
301
330
|
* Warning: If you don't supply search Key and you want fulltext search, and you use this
|
|
302
|
-
* default implementation be aware that it can
|
|
331
|
+
* default implementation, be aware that it can perform poorly as it is a naive implementation
|
|
303
332
|
* that does not do deep compare.
|
|
304
333
|
*/
|
|
305
334
|
matches(item, pattern) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-cdk-data-source.mjs","sources":["../../../../libs/cdk/src/lib/data-source/helpers/is-datasource.ts","../../../../libs/cdk/src/lib/data-source/tokens.ts","../../../../libs/cdk/src/lib/data-source/data-source.directive.ts","../../../../libs/cdk/src/lib/data-source/data-source.module.ts","../../../../libs/cdk/src/lib/data-source/models/matching-strategy.ts","../../../../libs/cdk/src/lib/data-source/base/base-data-source.class.ts","../../../../libs/cdk/src/lib/data-source/helpers/common.ts","../../../../libs/cdk/src/lib/data-source/base/abstract-data-provider.class.ts","../../../../libs/cdk/src/lib/data-source/helpers/apply-datasource-directive.ts","../../../../libs/cdk/src/lib/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 { Directive, EventEmitter, Inject, Input, OnDestroy, Output } from '@angular/core';\nimport { DestroyedService } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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 providers: [DestroyedService]\n})\nexport class DataSourceDirective<T = any, P extends DataSourceProvider<T> = DataSourceProvider<T>>\n implements OnDestroy\n{\n /**\n * Data source.\n * @param source\n */\n @Input()\n set dataSource(source: DataSource<T>) {\n this._dataSource = source;\n this.dataSourceChanged.next();\n\n this._initializeDataSource();\n }\n\n get dataSource(): DataSource<T> {\n return this._dataSource;\n }\n\n /** @hidden */\n private _dataSource: DataSource<T>;\n\n /** @hidden */\n dataSourceProvider: P | undefined;\n\n /** @hidden */\n private _dsSubscription = new Subscription();\n\n /**\n * Data stream. Emits when new data retrieved.\n */\n readonly dataChanged$ = new BehaviorSubject<T[]>([]);\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 /** @hidden */\n constructor(\n private readonly _destroyed$: DestroyedService,\n @Inject(FD_DATA_SOURCE_TRANSFORMER) private readonly _dataSourceTransformer: DataSourceParser<T, P>\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(takeUntil(this._destroyed$))\n .subscribe((isLoading) => this.isLoading.emit(isLoading))\n );\n\n this._dsSubscription.add(\n this.dataSourceProvider.dataChanges.pipe(takeUntil(this._destroyed$)).subscribe((data) => {\n this.dataChanged.emit(data);\n this.dataChanged$.next(data);\n })\n );\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dataSourceProvider?.unsubscribe();\n this._dsSubscription?.unsubscribe();\n }\n\n /** @Hidden */\n private _toDataStream(source: DataSource<T>): P | undefined {\n return this._dataSourceTransformer ? this._dataSourceTransformer.parse(source) : undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DataSourceDirective } from './data-source.directive';\n\n@NgModule({\n imports: [DataSourceDirective],\n exports: [DataSourceDirective]\n})\nexport class DataSourceModule {}\n","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 { 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 Subject<void>();\n /** @hidden */\n protected readonly _dataReceived$ = new Subject<void>();\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<void> {\n return this._dataRequested$.asObservable();\n }\n\n /**\n * Emitted when new data has been received.\n * @returns Observable\n */\n get dataReceived(): Observable<void> {\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 data from the provides 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();\n this._dataLoading$.next(true);\n const searchParam = new Map();\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 this.dataProvider\n .fetch(searchParam, start, end)\n .pipe(takeUntil(this._destroy$))\n .subscribe({\n next: (result: T[]) => {\n this._dataReceived$.next();\n this._dataLoading$.next(false);\n this._dataChanges$.next(result);\n },\n error: () => {\n this._dataReceived$.next();\n this._dataLoading$.next(false);\n }\n });\n }\n\n /**\n * Closes the stream\n */\n unsubscribe(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\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","import { isFunction, isJsObject } from '@fundamental-ngx/cdk/utils';\nimport { isObservable, Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n getMatchingStrategyStartsWithPerTermReqexp,\n objectToName,\n objectValues,\n ProviderParams\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 protected _keyPath: string;\n\n /** @hidden */\n protected _matchingStrategy: MatchingStrategy = MatchingStrategy.STARTS_WITH;\n\n /** @hidden */\n protected _matchingBy: MatchingBy | null = null;\n\n abstract fetch(params: ProviderParams, start?: number, end?: number): Observable<T[]>;\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 /** @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') || 50;\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 * 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 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 { Type } from '@angular/core';\nimport { DataSourceDirective } from '../data-source.directive';\n\nexport const applyDatasourceDirective:\n | Type<unknown>\n | {\n directive: Type<unknown>;\n inputs?: string[];\n outputs?: string[];\n } = {\n directive: DataSourceDirective,\n inputs: ['dataSource'],\n outputs: ['dataChanged']\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-cdk-data-source.mjs","sources":["../../../../libs/cdk/src/lib/data-source/helpers/is-datasource.ts","../../../../libs/cdk/src/lib/data-source/tokens.ts","../../../../libs/cdk/src/lib/data-source/data-source.directive.ts","../../../../libs/cdk/src/lib/data-source/data-source.module.ts","../../../../libs/cdk/src/lib/data-source/models/matching-strategy.ts","../../../../libs/cdk/src/lib/data-source/base/base-data-source.class.ts","../../../../libs/cdk/src/lib/data-source/helpers/common.ts","../../../../libs/cdk/src/lib/data-source/base/abstract-data-provider.class.ts","../../../../libs/cdk/src/lib/data-source/helpers/apply-datasource-directive.ts","../../../../libs/cdk/src/lib/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 { Directive, EventEmitter, Inject, Input, OnDestroy, Output } from '@angular/core';\nimport { DestroyedService } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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 providers: [DestroyedService]\n})\nexport class DataSourceDirective<T = any, P extends DataSourceProvider<T> = DataSourceProvider<T>>\n implements OnDestroy\n{\n /**\n * Data source.\n * @param source\n */\n @Input()\n set dataSource(source: DataSource<T>) {\n this._dataSource = source;\n this.dataSourceChanged.next();\n\n this._initializeDataSource();\n }\n\n get dataSource(): DataSource<T> {\n return this._dataSource;\n }\n\n /** @hidden */\n private _dataSource: DataSource<T>;\n\n /** @hidden */\n dataSourceProvider: P | undefined;\n\n /** @hidden */\n private _dsSubscription = new Subscription();\n\n /**\n * Data stream. Emits when new data retrieved.\n */\n readonly dataChanged$ = new BehaviorSubject<T[]>([]);\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 /** @hidden */\n constructor(\n private readonly _destroyed$: DestroyedService,\n @Inject(FD_DATA_SOURCE_TRANSFORMER) private readonly _dataSourceTransformer: DataSourceParser<T, P>\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(takeUntil(this._destroyed$))\n .subscribe((isLoading) => this.isLoading.emit(isLoading))\n );\n\n this._dsSubscription.add(\n this.dataSourceProvider.dataChanges.pipe(takeUntil(this._destroyed$)).subscribe((data) => {\n this.dataChanged.emit(data);\n this.dataChanged$.next(data);\n })\n );\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.dataSourceProvider?.unsubscribe();\n this._dsSubscription?.unsubscribe();\n }\n\n /** @Hidden */\n private _toDataStream(source: DataSource<T>): P | undefined {\n return this._dataSourceTransformer ? this._dataSourceTransformer.parse(source) : undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DataSourceDirective } from './data-source.directive';\n\n@NgModule({\n imports: [DataSourceDirective],\n exports: [DataSourceDirective]\n})\nexport class DataSourceModule {}\n","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 { 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 { 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","import { isFunction, isJsObject } from '@fundamental-ngx/cdk/utils';\nimport { isObservable, Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport {\n getMatchingStrategyStartsWithPerTermReqexp,\n objectToName,\n objectValues,\n ProviderParams\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 protected _keyPath: string;\n\n /** @hidden */\n protected _matchingStrategy: MatchingStrategy = MatchingStrategy.STARTS_WITH;\n\n /** @hidden */\n protected _matchingBy: MatchingBy | null = null;\n\n abstract fetch(params: ProviderParams, start?: number, end?: number): Observable<T[]>;\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 /** @hidden */\n abstract getTotalItems(params?: Map<string, any>): Observable<number>;\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 { Type } from '@angular/core';\nimport { DataSourceDirective } from '../data-source.directive';\n\nexport const applyDatasourceDirective:\n | Type<unknown>\n | {\n directive: Type<unknown>;\n inputs?: string[];\n outputs?: string[];\n } = {\n directive: DataSourceDirective,\n inputs: ['dataSource'],\n outputs: ['dataChanged']\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, Optional, Inject, isDevMode, inject, Directive, EventEmitter, Input, Output, HostListener, NgModule, ContentChildren, forwardRef, HostBinding, ElementRef, INJECTOR, ContentChild, Self, SkipSelf, PLATFORM_ID, ViewContainerRef, Component, Injector, NgModuleFactory, Pipe, TemplateRef, ViewChild, NgZone } from '@angular/core';
|
|
2
|
+
import { InjectionToken, Injectable, Optional, Inject, isDevMode, inject, Directive, EventEmitter, Input, Output, HostListener, NgModule, ContentChildren, forwardRef, HostBinding, ElementRef, INJECTOR, ContentChild, Self, SkipSelf, PLATFORM_ID, QueryList, ViewContainerRef, Component, Injector, NgModuleFactory, Pipe, TemplateRef, ViewChild, NgZone } from '@angular/core';
|
|
3
3
|
import { DOCUMENT, CommonModule, AsyncPipe } from '@angular/common';
|
|
4
|
-
import { BehaviorSubject, Subject, fromEvent, Observable, NEVER, Subscription, merge, ReplaySubject, takeUntil as takeUntil$1, startWith as startWith$1, switchMap, combineLatest, firstValueFrom, filter as filter$1, map as map$1,
|
|
4
|
+
import { BehaviorSubject, Subject, fromEvent, Observable, NEVER, Subscription, merge, ReplaySubject, takeUntil as takeUntil$1, startWith as startWith$1, switchMap, combineLatest, firstValueFrom, filter as filter$1, isObservable, of, map as map$1, take as take$1 } from 'rxjs';
|
|
5
5
|
import { takeUntil, filter, take, distinctUntilChanged, debounceTime, map, mapTo, pairwise, tap, startWith, finalize, shareReplay, switchMap as switchMap$1, delay } from 'rxjs/operators';
|
|
6
6
|
import * as i1 from '@angular/router';
|
|
7
7
|
import * as i2 from '@angular/platform-browser';
|
|
@@ -4111,8 +4111,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
4111
4111
|
class ClickedDirective {
|
|
4112
4112
|
constructor() {
|
|
4113
4113
|
/**
|
|
4114
|
-
* FdkClicked output.
|
|
4115
|
-
* This is only viable solution, since NO_ERRORS_SCHEMA silences everything and valuable exception might slip
|
|
4114
|
+
* FdkClicked output. The sole purpose of the existence of this directive is to just silence Angular Language Service.
|
|
4115
|
+
* This is the only viable solution, since NO_ERRORS_SCHEMA silences everything and valuable exception might slip
|
|
4116
4116
|
* through your eyes.
|
|
4117
4117
|
*/
|
|
4118
4118
|
this.fdkClicked = new EventEmitter();
|
|
@@ -4543,8 +4543,13 @@ class SelectionService {
|
|
|
4543
4543
|
/**
|
|
4544
4544
|
* Initialize watcher for selection changes and user interactions
|
|
4545
4545
|
* */
|
|
4546
|
-
initialize(
|
|
4547
|
-
|
|
4546
|
+
initialize(list) {
|
|
4547
|
+
if (list instanceof QueryList) {
|
|
4548
|
+
this._items$ = list.changes.pipe(startWith(list), map((items) => items.toArray()), shareReplay(1));
|
|
4549
|
+
}
|
|
4550
|
+
else {
|
|
4551
|
+
this._items$ = isObservable(list) ? list : of(list);
|
|
4552
|
+
}
|
|
4548
4553
|
this.listenToItemInteractions();
|
|
4549
4554
|
}
|
|
4550
4555
|
/**
|
|
@@ -4794,6 +4799,8 @@ class SelectableItemDirective {
|
|
|
4794
4799
|
this.selectionService = selectionService;
|
|
4795
4800
|
this._elementRef = _elementRef;
|
|
4796
4801
|
this._cd = _cd;
|
|
4802
|
+
/** Event emitted when selection state being changed for selectable item. */
|
|
4803
|
+
this.selected = new EventEmitter();
|
|
4797
4804
|
/** @hidden */
|
|
4798
4805
|
this._selected = false;
|
|
4799
4806
|
/** @hidden */
|
|
@@ -4827,6 +4834,7 @@ class SelectableItemDirective {
|
|
|
4827
4834
|
}
|
|
4828
4835
|
htmlElement.setAttribute('aria-selected', `${isSelected}`);
|
|
4829
4836
|
}
|
|
4837
|
+
this.selected.emit(isSelected);
|
|
4830
4838
|
}
|
|
4831
4839
|
/** @hidden */
|
|
4832
4840
|
elementRef() {
|
|
@@ -4857,7 +4865,7 @@ class SelectableItemDirective {
|
|
|
4857
4865
|
}
|
|
4858
4866
|
}
|
|
4859
4867
|
SelectableItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SelectableItemDirective, deps: [{ token: FDK_SELECTABLE_ITEM_PROVIDER, optional: true }, { token: FdkDisabledProvider }, { token: FdkReadonlyProvider }, { token: SelectionService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FdkClickedProvider }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4860
|
-
SelectableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: SelectableItemDirective, isStandalone: true, selector: "[fdkSelectableItem]", inputs: { value: "value", fdkSelectableItem: "fdkSelectableItem" }, outputs: { clicked: "clicked" }, providers: [
|
|
4868
|
+
SelectableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: SelectableItemDirective, isStandalone: true, selector: "[fdkSelectableItem]", inputs: { value: "value", fdkSelectableItem: "fdkSelectableItem" }, outputs: { clicked: "clicked", selected: "selected" }, providers: [
|
|
4861
4869
|
{
|
|
4862
4870
|
provide: SelectableItemToken,
|
|
4863
4871
|
useExisting: SelectableItemDirective
|
|
@@ -4895,6 +4903,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
4895
4903
|
type: Input
|
|
4896
4904
|
}], clicked: [{
|
|
4897
4905
|
type: Output
|
|
4906
|
+
}], selected: [{
|
|
4907
|
+
type: Output
|
|
4898
4908
|
}] } });
|
|
4899
4909
|
|
|
4900
4910
|
class SelectableListModule {
|