@bravobit/bb-foundation 0.45.1 → 0.45.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/collections/lib/collection.d.ts +0 -2
  2. package/collections/lib/interfaces/collection.interface.d.ts +4 -0
  3. package/collections/lib/providers/api-collection.provider.d.ts +3 -2
  4. package/collections/lib/providers/collection.provider.d.ts +5 -2
  5. package/dialog/lib/dialog-container/dialog-container.component.d.ts +6 -3
  6. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +7 -3
  7. package/esm2022/collections/lib/collection.mjs +3 -13
  8. package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +3 -3
  9. package/esm2022/collections/lib/interfaces/collection.interface.mjs +1 -1
  10. package/esm2022/collections/lib/providers/api-collection.provider.mjs +16 -7
  11. package/esm2022/collections/lib/providers/collection.provider.mjs +27 -1
  12. package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +19 -13
  13. package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +2 -2
  14. package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +20 -11
  15. package/esm2022/elements/lib/spinner/spinner.component.mjs +4 -4
  16. package/esm2022/select/lib/select/select.component.mjs +48 -5
  17. package/fesm2022/bravobit-bb-foundation-collections.mjs +45 -20
  18. package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
  19. package/fesm2022/bravobit-bb-foundation-dialog.mjs +34 -22
  20. package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
  21. package/fesm2022/bravobit-bb-foundation-elements.mjs +3 -3
  22. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
  23. package/fesm2022/bravobit-bb-foundation-select.mjs +47 -4
  24. package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
  25. package/package.json +12 -12
  26. package/select/lib/select/select.component.d.ts +7 -1
  27. package/styles/theme.scss +5 -0
@@ -28,13 +28,11 @@ export declare class Collection<T> {
28
28
  readonly loading$: BehaviorSubject<boolean>;
29
29
  private _formatter;
30
30
  private _refresh$;
31
- private _requestCache;
32
31
  constructor(_provider: CollectionProvider<T>, _initialValues?: Partial<CollectionRequest>);
33
32
  refresh(): void;
34
33
  setFormatter(callback: (items: T[]) => T[] | Observable<T[]>): this;
35
34
  private getData;
36
35
  private formatResponse;
37
- private validateRequest;
38
36
  private getState;
39
37
  private cacheCollectionData;
40
38
  private get request();
@@ -1,3 +1,4 @@
1
+ import { Collection } from '../collection';
1
2
  export interface CollectionRequest {
2
3
  pageNumber: number;
3
4
  pageSize: number;
@@ -26,3 +27,6 @@ export interface CollectionApiResponse<T> {
26
27
  [key: string]: unknown;
27
28
  }
28
29
  export type CollectionApiParams = string | number | boolean | ReadonlyArray<string | number | boolean>;
30
+ export interface CollectionContext<T> {
31
+ collection: Collection<T>;
32
+ }
@@ -1,4 +1,4 @@
1
- import { CollectionApiResponse, CollectionData, CollectionApiParams, CollectionRequest } from '../interfaces/collection.interface';
1
+ import { CollectionApiResponse, CollectionData, CollectionApiParams, CollectionRequest, CollectionContext } from '../interfaces/collection.interface';
2
2
  import { Observable } from 'rxjs';
3
3
  import { CollectionProvider } from './collection.provider';
4
4
  import { HttpClient } from '@angular/common/http';
@@ -10,7 +10,8 @@ export declare class ApiCollectionProvider<T> extends CollectionProvider<T> {
10
10
  constructor(endpoint: string | Observable<string>, httpClient: HttpClient);
11
11
  append(name: string, value: CollectionApiParams | Observable<CollectionApiParams>): this;
12
12
  appendObject(value: Record<string, CollectionApiParams> | Observable<Record<string, CollectionApiParams>>): void;
13
- transform(request: CollectionRequest): Observable<CollectionData<T>>;
13
+ transform(request: CollectionRequest, context: CollectionContext<T>): Observable<CollectionData<T>>;
14
+ protected validateParams(request: Record<string, CollectionApiParams>, context: CollectionContext<T>): Record<string, CollectionApiParams>;
14
15
  protected getExtraParams(params: Record<string, Observable<CollectionApiParams>>): Observable<{}>;
15
16
  protected getExtraObjectParams(params$: Observable<Record<string, CollectionApiParams>>[]): Observable<{}>;
16
17
  protected formatToCollectionData(response: CollectionApiResponse<T> | T[]): CollectionData<T>;
@@ -1,6 +1,9 @@
1
- import { CollectionData, CollectionRequest } from '../interfaces/collection.interface';
1
+ import { CollectionApiParams, CollectionContext, CollectionData, CollectionRequest } from '../interfaces/collection.interface';
2
2
  import { Observable } from 'rxjs';
3
3
  export declare abstract class CollectionProvider<T> {
4
- abstract transform(request: CollectionRequest): Observable<CollectionData<T>>;
4
+ protected cachedRequestParams: Record<string, CollectionApiParams> | null;
5
+ abstract transform(request: CollectionRequest, context: CollectionContext<T>): Observable<CollectionData<T>>;
6
+ protected validateParams(request: Record<string, CollectionApiParams>, _context: CollectionContext<T>): Record<string, CollectionApiParams>;
5
7
  protected formatArrayToCollectionData(items: T[]): CollectionData<T>;
8
+ protected deepCompare(value1: unknown, value2: unknown): boolean;
6
9
  }
@@ -1,19 +1,22 @@
1
- import { ComponentRef, OnInit, Type } from '@angular/core';
1
+ import { ComponentRef, OnDestroy, OnInit, Type } from '@angular/core';
2
2
  import { BbDialogInsertion } from '../dialog.insertion';
3
3
  import * as i0 from "@angular/core";
4
- export declare class BbDialogContainer implements OnInit {
4
+ export declare class BbDialogContainer implements OnInit, OnDestroy {
5
5
  private readonly _config?;
6
6
  private readonly _renderer;
7
7
  private readonly _elementRef;
8
+ private readonly _document;
8
9
  insertion: BbDialogInsertion;
9
10
  componentRef: ComponentRef<any> | null;
10
11
  childComponentType: Type<any> | null;
11
12
  private _overlayClicked$;
12
13
  onOverlayClicked: import("rxjs").Observable<void>;
14
+ private _subscription;
13
15
  ngOnInit(): void;
14
- onClick(event: MouseEvent): void;
16
+ ngOnDestroy(): void;
15
17
  close(): Promise<0>;
16
18
  private loadChildComponent;
19
+ private handleOverlayClicks;
17
20
  static ɵfac: i0.ɵɵFactoryDeclaration<BbDialogContainer, never>;
18
21
  static ɵcmp: i0.ɵɵComponentDeclaration<BbDialogContainer, "bb-dialog-container", never, {}, {}, never, never, true, never>;
19
22
  }
@@ -1,13 +1,17 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class BbDialogOverlay {
3
+ export declare class BbDialogOverlay implements OnInit, OnDestroy {
4
4
  private readonly _config?;
5
5
  private readonly _renderer;
6
6
  private readonly _elementRef;
7
+ private readonly _document;
7
8
  closeRequested: EventEmitter<void>;
8
- onClick(event: MouseEvent): void;
9
+ private _subscription;
10
+ ngOnInit(): void;
11
+ ngOnDestroy(): void;
9
12
  onKeyEvent(event: KeyboardEvent): void;
10
13
  close(): Promise<0>;
14
+ private handleOverlayClicks;
11
15
  static ɵfac: i0.ɵɵFactoryDeclaration<BbDialogOverlay, never>;
12
16
  static ɵcmp: i0.ɵɵComponentDeclaration<BbDialogOverlay, "bb-dialog-overlay", never, {}, { "closeRequested": "closeRequested"; }, never, ["[bb-dialog-modal]"], true, never>;
13
17
  }
@@ -18,7 +18,6 @@ export class Collection {
18
18
  // State.
19
19
  _formatter = null;
20
20
  _refresh$ = new BehaviorSubject(0);
21
- _requestCache = null;
22
21
  constructor(_provider, _initialValues = {}) {
23
22
  this._provider = _provider;
24
23
  this._initialValues = _initialValues;
@@ -37,8 +36,8 @@ export class Collection {
37
36
  return this;
38
37
  }
39
38
  getData() {
40
- const data$ = this.request.pipe(tap(() => this.loading$.next(true)), map(request => this.validateRequest(request)), switchMap(request => {
41
- return this._provider.transform(request).pipe(tap(response => this.cacheCollectionData(response)), map(response => ({ response, request, initial: false })), catchError(error => of({
39
+ const data$ = this.request.pipe(tap(() => this.loading$.next(true)), switchMap(request => {
40
+ return this._provider.transform(request, { collection: this }).pipe(tap(response => this.cacheCollectionData(response)), map(response => ({ response, request, initial: false })), catchError(error => of({
42
41
  error,
43
42
  request,
44
43
  response: null,
@@ -62,15 +61,6 @@ export class Collection {
62
61
  const data$ = isObservable(data) ? data : of(data);
63
62
  return data$.pipe(map(data => ({ ...response, data })));
64
63
  }
65
- validateRequest(request) {
66
- // We should reset the page number whenever we change the query or the page size.
67
- if (this._requestCache && request && (this._requestCache?.query !== request?.query || this._requestCache?.pageSize !== request?.pageSize)) {
68
- this.pageNumberControl?.setValue(1, { emitEvent: false });
69
- request.pageNumber = this.pageNumberControl?.value;
70
- }
71
- this._requestCache = { ...request };
72
- return request;
73
- }
74
64
  getState(data) {
75
65
  if (!!data?.error) {
76
66
  return "error" /* CollectionState.Error */;
@@ -105,4 +95,4 @@ export class Collection {
105
95
  return merge(this.queryControl.valueChanges, defer(() => of(this.queryControl?.value))).pipe(debounceTime(400), distinctUntilChanged());
106
96
  }
107
97
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzSCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQVMzQyxNQUFNLE9BQU8sVUFBVTtJQTJCVTtJQUNSO0lBMUJyQixZQUFZO0lBQ0gsWUFBWSxDQUE2QjtJQUN6QyxrQkFBa0IsQ0FBd0I7SUFDMUMsaUJBQWlCLENBQXNCO0lBQ3ZDLGVBQWUsQ0FBc0I7SUFDckMsV0FBVyxDQUErRDtJQUVuRixXQUFXO0lBQ0YsS0FBSyxDQU9YO0lBRU0sSUFBSSxHQUFHLElBQUksZUFBZSxDQUEyQixJQUFJLENBQUMsQ0FBQztJQUMzRCxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7SUFFdkQsU0FBUztJQUNELFVBQVUsR0FBeUMsSUFBSSxDQUFDO0lBQ3hELFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUMzQyxhQUFhLEdBQTZCLElBQUksQ0FBQztJQUV2RCxZQUE2QixTQUFnQyxFQUN4QyxpQkFBNkMsRUFBRTtRQUR2QyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FB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Q0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDM0csR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsVUFBVTtZQUNWLFFBQVE7WUFDUixLQUFLO1lBQ0wsV0FBVztZQUNYLElBQUk7U0FDUCxDQUFDLENBQUMsQ0FDTixDQUFDO0lBQ04sQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDeEYsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxDQUN6QixDQUFDO0lBQ04sQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbGxlY3Rpb25EYXRhLCBDb2xsZWN0aW9uUmVxdWVzdCwgQ29sbGVjdGlvblJlcXVlc3RTb3J0fSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBpc09ic2VydmFibGUsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbGxlY3Rpb25Qcm92aWRlcn0gZnJvbSAnLi9wcm92aWRlcnMvY29sbGVjdGlvbi5wcm92aWRlcic7XG5pbXBvcnQge2dldENvbnRyb2xWYWx1ZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vcnhqcyc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIENvbGxlY3Rpb25TdGF0ZSB7XG4gICAgSW5pdGlhbCA9ICdpbml0aWFsJyxcbiAgICBFcnJvciA9ICdlcnJvcicsXG4gICAgRW1wdHkgPSAnZW1wdHknLFxuICAgIERhdGEgPSAnZGF0YSdcbn1cblxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb248VD4ge1xuXG4gICAgLy8gQ29udHJvbHMuXG4gICAgcmVhZG9ubHkgcXVlcnlDb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICByZWFkb25seSBxdWVyeUZpZWxkc0NvbnRyb2w6IEZvcm1Db250cm9sPHN0cmluZ1tdPjtcbiAgICByZWFkb25seSBwYWdlTnVtYmVyQ29udHJvbDogRm9ybUNvbnRyb2w8bnVtYmVyPjtcbiAgICByZWFkb25seSBwYWdlU2l6ZUNvbnRyb2w6IEZvcm1Db250cm9sPG51bWJlcj47XG4gICAgcmVhZG9ubHkgc29ydENvbnRyb2w6IEZvcm1Db250cm9sPENvbGxlY3Rpb25SZXF1ZXN0U29ydCB8IENvbGxlY3Rpb25SZXF1ZXN0U29ydFtdPjtcblxuICAgIC8vIFJlcXVlc3QuXG4gICAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8e1xuICAgICAgICByZXNwb25zZT86IENvbGxlY3Rpb25EYXRhPFQ+LFxuICAgICAgICByZXF1ZXN0PzogQ29sbGVjdGlvblJlcXVlc3QsXG4gICAgICAgIGVycm9yPzogRXJyb3JcbiAgICAgICAgc3RhdGU6IENvbGxlY3Rpb25TdGF0ZSxcbiAgICAgICAgbG9hZGluZzogYm9vbGVhbixcbiAgICAgICAgaW5pdGlhbDogYm9vbGVhblxuICAgIH0+O1xuXG4gICAgcmVhZG9ubHkgcmF3JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sbGVjdGlvbkRhdGE8VD4gfCBudWxsPihudWxsKTtcbiAgICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBwcml2YXRlIF9mb3JtYXR0ZXI6IChpdGVtOiBUW10pID0+IFRbXSB8IE9ic2VydmFibGU8VFtdPiA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcHJpdmF0ZSBfcmVxdWVzdENhY2hlOiBDb2xsZWN0aW9uUmVxdWVzdCB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfcHJvdmlkZXI6IENvbGxlY3Rpb25Qcm92aWRlcjxUPixcbiAgICAgICAgICAgICAgICByZWFkb25seSBfaW5pdGlhbFZhbHVlczogUGFydGlhbDxDb2xsZWN0aW9uUmVxdWVzdD4gPSB7fSkge1xuICAgICAgICB0aGlzLnF1ZXJ5Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihfaW5pdGlhbFZhbHVlcz8ucXVlcnkgPz8gbnVsbCk7XG4gICAgICAgIHRoaXMucXVlcnlGaWVsZHNDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZ1tdPihfaW5pdGlhbFZhbHVlcz8ucXVlcnlGaWVsZHMgPz8gW10pO1xuICAgICAgICB0aGlzLnBhZ2VOdW1iZXJDb250cm9sID0gbmV3IEZvcm1Db250cm9sPG51bWJlcj4oX2luaXRpYWxWYWx1ZXM/LnBhZ2VOdW1iZXIgPz8gMSk7XG4gICAgICAgIHRoaXMucGFnZVNpemVDb250cm9sID0gbmV3IEZvcm1Db250cm9sPG51bWJlcj4oX2luaXRpYWxWYWx1ZXM/LnBhZ2VTaXplID8/IDI1KTtcbiAgICAgICAgdGhpcy5zb3J0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxDb2xsZWN0aW9uUmVxdWVzdFNvcnQgfCBDb2xsZWN0aW9uUmVxdWVzdFNvcnRbXSB8IG51bGw+KF9pbml0aWFsVmFsdWVzPy5zb3J0ID8/IG51bGwpO1xuXG4gICAgICAgIHRoaXMuZGF0YSQgPSB0aGlzLmdldERhdGEoKTtcbiAgICB9XG5cbiAgICByZWZyZXNoKCkge1xuICAgICAgICB0aGlzLl9yZWZyZXNoJC5uZXh0KDApO1xuICAgIH1cblxuICAgIHNldEZvcm1hdHRlcihjYWxsYmFjazogKGl0ZW1zOiBUW10pID0+IFRbXSB8IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICB0aGlzLl9mb3JtYXR0ZXIgPSBjYWxsYmFjaztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRhKCkge1xuICAgICAgICBjb25zdCBkYXRhJCA9IHRoaXMucmVxdWVzdC5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyQubmV4dCh0cnVlKSksXG4gICAgICAgICAgICBtYXAocmVxdWVzdCA9PiB0aGlzLnZhbGlkYXRlUmVxdWVzdChyZXF1ZXN0KSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAocmVxdWVzdCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyLnRyYW5zZm9ybShyZXF1ZXN0KS5waXBlKFxuICAgICAgICAgICAgICAgICAgICB0YXAocmVzcG9uc2UgPT4gdGhpcy5jYWNoZUNvbGxlY3Rpb25EYXRhKHJlc3BvbnNlKSksXG4gICAgICAgICAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiAoe3Jlc3BvbnNlLCByZXF1ZXN0LCBpbml0aWFsOiBmYWxzZX0pKSxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZjx7IGVycm9yOiBFcnJvciwgcmVzcG9uc2U6IENvbGxlY3Rpb25EYXRhPFQ+IHwgbnVsbCwgcmVxdWVzdDogQ29sbGVjdGlvblJlcXVlc3QsIGluaXRpYWw6IGJvb2xlYW4gfT4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aDx7IGluaXRpYWw6IGJvb2xlYW4sIHJlc3BvbnNlOiBDb2xsZWN0aW9uRGF0YTxUPiB8IG51bGwgfT4oe2luaXRpYWw6IHRydWUsIHJlc3BvbnNlOiBudWxsfSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSh7cmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDF9KVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtkYXRhJCwgdGhpcy5sb2FkaW5nJC5hc09ic2VydmFibGUoKV0pLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKFtkYXRhLCBsb2FkaW5nXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbWJpbmVkID0gey4uLmRhdGEsIGxvYWRpbmd9O1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFJlc3BvbnNlKGRhdGE/LnJlc3BvbnNlKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHsuLi5jb21iaW5lZCwgcmVzcG9uc2V9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsuLi5kYXRhLCBzdGF0ZTogdGhpcy5nZXRTdGF0ZShkYXRhKX07XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXRSZXNwb25zZShyZXNwb25zZTogQ29sbGVjdGlvbkRhdGE8VD4pIHtcbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhdGhpcy5fZm9ybWF0dGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YocmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXRlbXMgPSByZXNwb25zZT8uZGF0YSA/PyBbXTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX2Zvcm1hdHRlcj8uKGl0ZW1zKSA/PyBpdGVtcztcbiAgICAgICAgY29uc3QgZGF0YSQgPSBpc09ic2VydmFibGUoZGF0YSkgPyBkYXRhIDogb2YoZGF0YSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGEkLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiAoey4uLnJlc3BvbnNlLCBkYXRhfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZVJlcXVlc3QocmVxdWVzdDogQ29sbGVjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgLy8gV2Ugc2hvdWxkIHJlc2V0IHRoZSBwYWdlIG51bWJlciB3aGVuZXZlciB3ZSBjaGFuZ2UgdGhlIHF1ZXJ5IG9yIHRoZSBwYWdlIHNpemUuXG4gICAgICAgIGlmICh0aGlzLl9yZXF1ZXN0Q2FjaGUgJiYgcmVxdWVzdCAmJiAodGhpcy5fcmVxdWVzdENhY2hlPy5xdWVyeSAhPT0gcmVxdWVzdD8ucXVlcnkgfHwgdGhpcy5fcmVxdWVzdENhY2hlPy5wYWdlU2l6ZSAhPT0gcmVxdWVzdD8ucGFnZVNpemUpKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXJDb250cm9sPy5zZXRWYWx1ZSgxLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgICAgcmVxdWVzdC5wYWdlTnVtYmVyID0gdGhpcy5wYWdlTnVtYmVyQ29udHJvbD8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZXF1ZXN0Q2FjaGUgPSB7Li4ucmVxdWVzdH07XG5cbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdGF0ZShkYXRhOiB7IHJlc3BvbnNlPzogQ29sbGVjdGlvbkRhdGE8VD4sIHJlcXVlc3Q/OiBDb2xsZWN0aW9uUmVxdWVzdCwgZXJyb3I/OiBFcnJvciwgbG9hZGluZzogYm9vbGVhbiwgaW5pdGlhbDogYm9vbGVhbiB9KSB7XG4gICAgICAgIGlmICghIWRhdGE/LmVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvblN0YXRlLkVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhZGF0YT8uaW5pdGlhbCkge1xuICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5Jbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY291bnQgPSBkYXRhPy5yZXNwb25zZT8uZGF0YT8ubGVuZ3RoID8/IDA7XG4gICAgICAgIGlmIChjb3VudCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvblN0YXRlLkVtcHR5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5EYXRhO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FjaGVDb2xsZWN0aW9uRGF0YShkYXRhOiBDb2xsZWN0aW9uRGF0YTxUPikge1xuICAgICAgICB0aGlzLnJhdyQubmV4dChkYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCByZXF1ZXN0KCkge1xuICAgICAgICBjb25zdCBwYWdlTnVtYmVyJCA9IGdldENvbnRyb2xWYWx1ZTxudW1iZXI+KHRoaXMucGFnZU51bWJlckNvbnRyb2wpO1xuICAgICAgICBjb25zdCBwYWdlU2l6ZSQgPSBnZXRDb250cm9sVmFsdWU8bnVtYmVyPih0aGlzLnBhZ2VTaXplQ29udHJvbCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5JCA9IHRoaXMuZ2V0UXVlcnlPYnNlcnZhYmxlKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5RmllbGRzJCA9IGdldENvbnRyb2xWYWx1ZTxzdHJpbmdbXT4odGhpcy5xdWVyeUZpZWxkc0NvbnRyb2wpO1xuICAgICAgICBjb25zdCBzb3J0JCA9IGdldENvbnRyb2xWYWx1ZTxDb2xsZWN0aW9uUmVxdWVzdFNvcnQgfCBDb2xsZWN0aW9uUmVxdWVzdFNvcnRbXT4odGhpcy5zb3J0Q29udHJvbCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3BhZ2VOdW1iZXIkLCBwYWdlU2l6ZSQsIHF1ZXJ5JCwgcXVlcnlGaWVsZHMkLCBzb3J0JCwgdGhpcy5fcmVmcmVzaCQuYXNPYnNlcnZhYmxlKCldKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbcGFnZU51bWJlciwgcGFnZVNpemUsIHF1ZXJ5LCBxdWVyeUZpZWxkcywgc29ydF0pID0+ICh7XG4gICAgICAgICAgICAgICAgcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICBxdWVyeUZpZWxkcyxcbiAgICAgICAgICAgICAgICBzb3J0XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFF1ZXJ5T2JzZXJ2YWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIG1lcmdlKHRoaXMucXVlcnlDb250cm9sLnZhbHVlQ2hhbmdlcywgZGVmZXIoKCkgPT4gb2YodGhpcy5xdWVyeUNvbnRyb2w/LnZhbHVlKSkpLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNDAwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKTtcbiAgICB9XG5cbn1cblxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzSCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQVMzQyxNQUFNLE9BQU8sVUFBVTtJQTBCVTtJQUNSO0lBekJyQixZQUFZO0lBQ0gsWUFBWSxDQUE2QjtJQUN6QyxrQkFBa0IsQ0FBd0I7SUFDMUMsaUJBQWlCLENBQXNCO0lBQ3ZDLGVBQWUsQ0FBc0I7SUFDckMsV0FBVyxDQUErRDtJQUVuRixXQUFXO0lBQ0YsS0FBSyxDQU9YO0lBRU0sSUFBSSxHQUFHLElBQUksZUFBZSxDQUEyQixJQUFJLENBQUMsQ0FBQztJQUMzRCxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7SUFFdkQsU0FBUztJQUNELFVBQVUsR0FBeUMsSUFBSSxDQUFDO0lBQ3hELFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUVuRCxZQUE2QixTQUFnQyxFQUN4QyxpQkFBNkMsRUFBRTtRQUR2QyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDaEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBZ0IsY0FBYyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxXQUFXLENBQVcsY0FBYyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxXQUFXLENBQVMsY0FBYyxFQUFFLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksV0FBVyxDQUFTLGNBQWMsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBeUQsY0FBYyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUV6SCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBK0M7UUFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLE9BQU87UUFDWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDM0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ25DLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQ25ELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLEVBQ3RELFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBcUc7Z0JBQ3ZILEtBQUs7Z0JBQ0wsT0FBTztnQkFDUCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxPQUFPLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUMsRUFDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdkMsQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBMkQsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxFQUNwRyxXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUMvQyxDQUFDO1FBRUYsT0FBTyxhQUFhLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RCxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFHLEVBQUMsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDWCxNQUFNLElBQUksR0FBRyxFQUFDLEdBQUcsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDO2dCQUNyQyxPQUFPLEVBQUMsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBMkI7UUFDOUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDYixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUNyQyxDQUFDO0lBQ04sQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFzSDtRQUNuSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEIsMkNBQTZCO1FBQ2pDLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDbEIsK0NBQStCO1FBQ25DLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2IsMkNBQTZCO1FBQ2pDLENBQUM7UUFFRCx5Q0FBNEI7SUFDaEMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLElBQXVCO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFZLE9BQU87UUFDZixNQUFNLFdBQVcsR0FBRyxlQUFlLENBQVMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFTLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQVcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEUsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFrRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakcsT0FBTyxhQUFhLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDM0csR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkQsVUFBVTtZQUNWLFFBQVE7WUFDUixLQUFLO1lBQ0wsV0FBVztZQUNYLElBQUk7U0FDUCxDQUFDLENBQUMsQ0FDTixDQUFDO0lBQ04sQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDeEYsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxDQUN6QixDQUFDO0lBQ04sQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbGxlY3Rpb25EYXRhLCBDb2xsZWN0aW9uUmVxdWVzdCwgQ29sbGVjdGlvblJlcXVlc3RTb3J0fSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBpc09ic2VydmFibGUsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbGxlY3Rpb25Qcm92aWRlcn0gZnJvbSAnLi9wcm92aWRlcnMvY29sbGVjdGlvbi5wcm92aWRlcic7XG5pbXBvcnQge2dldENvbnRyb2xWYWx1ZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vcnhqcyc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIENvbGxlY3Rpb25TdGF0ZSB7XG4gICAgSW5pdGlhbCA9ICdpbml0aWFsJyxcbiAgICBFcnJvciA9ICdlcnJvcicsXG4gICAgRW1wdHkgPSAnZW1wdHknLFxuICAgIERhdGEgPSAnZGF0YSdcbn1cblxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb248VD4ge1xuXG4gICAgLy8gQ29udHJvbHMuXG4gICAgcmVhZG9ubHkgcXVlcnlDb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcbiAgICByZWFkb25seSBxdWVyeUZpZWxkc0NvbnRyb2w6IEZvcm1Db250cm9sPHN0cmluZ1tdPjtcbiAgICByZWFkb25seSBwYWdlTnVtYmVyQ29udHJvbDogRm9ybUNvbnRyb2w8bnVtYmVyPjtcbiAgICByZWFkb25seSBwYWdlU2l6ZUNvbnRyb2w6IEZvcm1Db250cm9sPG51bWJlcj47XG4gICAgcmVhZG9ubHkgc29ydENvbnRyb2w6IEZvcm1Db250cm9sPENvbGxlY3Rpb25SZXF1ZXN0U29ydCB8IENvbGxlY3Rpb25SZXF1ZXN0U29ydFtdPjtcblxuICAgIC8vIFJlcXVlc3QuXG4gICAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8e1xuICAgICAgICByZXNwb25zZT86IENvbGxlY3Rpb25EYXRhPFQ+LFxuICAgICAgICByZXF1ZXN0PzogQ29sbGVjdGlvblJlcXVlc3QsXG4gICAgICAgIGVycm9yPzogRXJyb3JcbiAgICAgICAgc3RhdGU6IENvbGxlY3Rpb25TdGF0ZSxcbiAgICAgICAgbG9hZGluZzogYm9vbGVhbixcbiAgICAgICAgaW5pdGlhbDogYm9vbGVhblxuICAgIH0+O1xuXG4gICAgcmVhZG9ubHkgcmF3JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sbGVjdGlvbkRhdGE8VD4gfCBudWxsPihudWxsKTtcbiAgICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBwcml2YXRlIF9mb3JtYXR0ZXI6IChpdGVtOiBUW10pID0+IFRbXSB8IE9ic2VydmFibGU8VFtdPiA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVmcmVzaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9wcm92aWRlcjogQ29sbGVjdGlvblByb3ZpZGVyPFQ+LFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IF9pbml0aWFsVmFsdWVzOiBQYXJ0aWFsPENvbGxlY3Rpb25SZXF1ZXN0PiA9IHt9KSB7XG4gICAgICAgIHRoaXMucXVlcnlDb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KF9pbml0aWFsVmFsdWVzPy5xdWVyeSA/PyBudWxsKTtcbiAgICAgICAgdGhpcy5xdWVyeUZpZWxkc0NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nW10+KF9pbml0aWFsVmFsdWVzPy5xdWVyeUZpZWxkcyA/PyBbXSk7XG4gICAgICAgIHRoaXMucGFnZU51bWJlckNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPihfaW5pdGlhbFZhbHVlcz8ucGFnZU51bWJlciA/PyAxKTtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPihfaW5pdGlhbFZhbHVlcz8ucGFnZVNpemUgPz8gMjUpO1xuICAgICAgICB0aGlzLnNvcnRDb250cm9sID0gbmV3IEZvcm1Db250cm9sPENvbGxlY3Rpb25SZXF1ZXN0U29ydCB8IENvbGxlY3Rpb25SZXF1ZXN0U29ydFtdIHwgbnVsbD4oX2luaXRpYWxWYWx1ZXM/LnNvcnQgPz8gbnVsbCk7XG5cbiAgICAgICAgdGhpcy5kYXRhJCA9IHRoaXMuZ2V0RGF0YSgpO1xuICAgIH1cblxuICAgIHJlZnJlc2goKSB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2gkLm5leHQoMCk7XG4gICAgfVxuXG4gICAgc2V0Rm9ybWF0dGVyKGNhbGxiYWNrOiAoaXRlbXM6IFRbXSkgPT4gVFtdIHwgT2JzZXJ2YWJsZTxUW10+KSB7XG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlciA9IGNhbGxiYWNrO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGEoKSB7XG4gICAgICAgIGNvbnN0IGRhdGEkID0gdGhpcy5yZXF1ZXN0LnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcChyZXF1ZXN0ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvdmlkZXIudHJhbnNmb3JtKHJlcXVlc3QsIHtjb2xsZWN0aW9uOiB0aGlzfSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFwKHJlc3BvbnNlID0+IHRoaXMuY2FjaGVDb2xsZWN0aW9uRGF0YShyZXNwb25zZSkpLFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gKHtyZXNwb25zZSwgcmVxdWVzdCwgaW5pdGlhbDogZmFsc2V9KSksXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4gb2Y8eyBlcnJvcjogRXJyb3IsIHJlc3BvbnNlOiBDb2xsZWN0aW9uRGF0YTxUPiB8IG51bGwsIHJlcXVlc3Q6IENvbGxlY3Rpb25SZXF1ZXN0LCBpbml0aWFsOiBib29sZWFuIH0+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdGFydFdpdGg8eyBpbml0aWFsOiBib29sZWFuLCByZXNwb25zZTogQ29sbGVjdGlvbkRhdGE8VD4gfCBudWxsIH0+KHtpbml0aWFsOiB0cnVlLCByZXNwb25zZTogbnVsbH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoe3JlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbZGF0YSQsIHRoaXMubG9hZGluZyQuYXNPYnNlcnZhYmxlKCldKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChbZGF0YSwgbG9hZGluZ10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21iaW5lZCA9IHsuLi5kYXRhLCBsb2FkaW5nfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRSZXNwb25zZShkYXRhPy5yZXNwb25zZSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7Li4uY29tYmluZWQsIHJlc3BvbnNlfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7Li4uZGF0YSwgc3RhdGU6IHRoaXMuZ2V0U3RhdGUoZGF0YSl9O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0UmVzcG9uc2UocmVzcG9uc2U6IENvbGxlY3Rpb25EYXRhPFQ+KSB7XG4gICAgICAgIGlmICghcmVzcG9uc2UgfHwgIXRoaXMuX2Zvcm1hdHRlcikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gcmVzcG9uc2U/LmRhdGEgPz8gW107XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9mb3JtYXR0ZXI/LihpdGVtcykgPz8gaXRlbXM7XG4gICAgICAgIGNvbnN0IGRhdGEkID0gaXNPYnNlcnZhYmxlKGRhdGEpID8gZGF0YSA6IG9mKGRhdGEpO1xuXG4gICAgICAgIHJldHVybiBkYXRhJC5waXBlKFxuICAgICAgICAgICAgbWFwKGRhdGEgPT4gKHsuLi5yZXNwb25zZSwgZGF0YX0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RhdGUoZGF0YTogeyByZXNwb25zZT86IENvbGxlY3Rpb25EYXRhPFQ+LCByZXF1ZXN0PzogQ29sbGVjdGlvblJlcXVlc3QsIGVycm9yPzogRXJyb3IsIGxvYWRpbmc6IGJvb2xlYW4sIGluaXRpYWw6IGJvb2xlYW4gfSkge1xuICAgICAgICBpZiAoISFkYXRhPy5lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5FcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIWRhdGE/LmluaXRpYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9uU3RhdGUuSW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvdW50ID0gZGF0YT8ucmVzcG9uc2U/LmRhdGE/Lmxlbmd0aCA/PyAwO1xuICAgICAgICBpZiAoY291bnQgPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25TdGF0ZS5FbXB0eTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBDb2xsZWN0aW9uU3RhdGUuRGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhY2hlQ29sbGVjdGlvbkRhdGEoZGF0YTogQ29sbGVjdGlvbkRhdGE8VD4pIHtcbiAgICAgICAgdGhpcy5yYXckLm5leHQoZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgcmVxdWVzdCgpIHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlciQgPSBnZXRDb250cm9sVmFsdWU8bnVtYmVyPih0aGlzLnBhZ2VOdW1iZXJDb250cm9sKTtcbiAgICAgICAgY29uc3QgcGFnZVNpemUkID0gZ2V0Q29udHJvbFZhbHVlPG51bWJlcj4odGhpcy5wYWdlU2l6ZUNvbnRyb2wpO1xuICAgICAgICBjb25zdCBxdWVyeSQgPSB0aGlzLmdldFF1ZXJ5T2JzZXJ2YWJsZSgpO1xuICAgICAgICBjb25zdCBxdWVyeUZpZWxkcyQgPSBnZXRDb250cm9sVmFsdWU8c3RyaW5nW10+KHRoaXMucXVlcnlGaWVsZHNDb250cm9sKTtcbiAgICAgICAgY29uc3Qgc29ydCQgPSBnZXRDb250cm9sVmFsdWU8Q29sbGVjdGlvblJlcXVlc3RTb3J0IHwgQ29sbGVjdGlvblJlcXVlc3RTb3J0W10+KHRoaXMuc29ydENvbnRyb2wpO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtwYWdlTnVtYmVyJCwgcGFnZVNpemUkLCBxdWVyeSQsIHF1ZXJ5RmllbGRzJCwgc29ydCQsIHRoaXMuX3JlZnJlc2gkLmFzT2JzZXJ2YWJsZSgpXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3BhZ2VOdW1iZXIsIHBhZ2VTaXplLCBxdWVyeSwgcXVlcnlGaWVsZHMsIHNvcnRdKSA9PiAoe1xuICAgICAgICAgICAgICAgIHBhZ2VOdW1iZXIsXG4gICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgcXVlcnlGaWVsZHMsXG4gICAgICAgICAgICAgICAgc29ydFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWVyeU9ic2VydmFibGUoKSB7XG4gICAgICAgIHJldHVybiBtZXJnZSh0aGlzLnF1ZXJ5Q29udHJvbC52YWx1ZUNoYW5nZXMsIGRlZmVyKCgpID0+IG9mKHRoaXMucXVlcnlDb250cm9sPy52YWx1ZSkpKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDQwMCksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG59XG5cbiJdfQ==
@@ -34,7 +34,7 @@ export class BbCollectionsTable {
34
34
  return this.collection$.getValue();
35
35
  }
36
36
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsTable, isStandalone: true, selector: "bb-collections-table", inputs: { queryPlaceholder: "queryPlaceholder", emptyContent: "emptyContent", noResultsContent: "noResultsContent", errorContent: "errorContent", trackByProperty: "trackByProperty", includeVerticalLines: ["includeVerticalLines", "includeVerticalLines", booleanAttribute], hideActions: ["hideActions", "hideActions", booleanAttribute], hidePager: ["hidePager", "hidePager", booleanAttribute], collection: "collection" }, host: { properties: { "class.include-vertical-lines": "includeVerticalLines" }, classAttribute: "bb-collections-table" }, queries: [{ propertyName: "dataRowTemplate", first: true, predicate: BbCollectionsDataRow, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\">\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [class.loading]=\"collection?.loading$ | async\"\n class=\"bb-collections-table-wrapper\">\n <div [collection]=\"collection\"\n class=\"bb-collections-table-container\"\n bb-collections-viewer>\n @if (collection?.loading$ | async) {\n <div class=\"bb-collections-table-loading\"></div>\n }\n <table *bbCollectionsData=\"let items = items; let loading = loading\">\n <ng-content select=\"thead\"></ng-content>\n <tbody>\n @for (item of items; track (trackByProperty === null ? $index : item[trackByProperty])) {\n <ng-container\n *ngTemplateOutlet=\"dataRowTemplate; context: {$implicit: item, item: item}\"></ng-container>\n }\n </tbody>\n <ng-content select=\"tfoot\"></ng-content>\n </table>\n <div *bbCollectionsEmpty=\"let query = query\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image empty\"></div>\n @if (query?.length > 0) {\n <ng-template [bbTemplate]=\"noResultsContent\">\n <p [bb-localize-string]=\"$any(noResultsContent) ?? ('collection.no_results_label' | bbLocalize)\"\n class=\"bb-collections-table-info-text\">\n <strong *bbLocalizeTemplate=\"'query'\">{{ query ?? '...' }}</strong>\n </p>\n </ng-template>\n } @else {\n <ng-template [bbTemplate]=\"emptyContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(emptyContent) ?? ('collection.empty_label' | bbLocalize) }}\n </p>\n </ng-template>\n }\n </div>\n <div *bbCollectionsError=\"let error = error\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image error\"></div>\n <ng-template [bbTemplate]=\"errorContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(errorContent) ?? ('collection.error_label' | bbLocalize) }}\n </p>\n </ng-template>\n </div>\n <div *bbCollectionsInitial\n class=\"bb-collections-table-info\">\n <bb-spinner class=\"block\"></bb-spinner>\n </div>\n </div>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-table-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: ["@charset \"UTF-8\";.bb-collections-table{color:#111;display:block;position:relative;font-size:.875rem;border-radius:.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-table>*:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bb-collections-table>*:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.bb-collections-table.include-vertical-lines td:not(:last-child),.bb-collections-table.include-vertical-lines th:not(:last-child){border-right:1px solid hsl(213,8%,90%)}.bb-collections-table-footer{padding:.75rem 1rem;background-color:#fbf9f9;border-top:1px solid hsl(213,8%,90%)}.bb-collections-table-wrapper{overflow:hidden;position:relative}.bb-collections-table-wrapper.loading:after{top:0;left:0;right:0;z-index:1;opacity:0;content:\"\";display:block;height:.25rem;position:absolute;will-change:left,right;background-color:#1565c1;animation:collectionsFadeIn .12s cubic-bezier(.65,.815,.735,.395) .4s forwards,collectionsIndeterminate 2.1s cubic-bezier(.65,.815,.735,.395) .4s infinite}.bb-collections-table-container{overflow-x:auto;position:relative}.bb-collections-table-container.loading>table>tbody,.bb-collections-table-container.loading>.bb-collections-table-info{animation:collectionsBlink 1s linear infinite}.bb-collections-table-container>table{width:100%}.bb-collections-table-container>table th,.bb-collections-table-container>table td{padding:1rem;text-align:left;font-weight:400;font-size:.875rem}.bb-collections-table-container>table th.fit,.bb-collections-table-container>table td.fit{width:1%;white-space:nowrap}.bb-collections-table-container>table th.left,.bb-collections-table-container>table td.left{text-align:left}.bb-collections-table-container>table th.right,.bb-collections-table-container>table td.right{text-align:right}.bb-collections-table-container>table>thead{background-color:#fbf9f9;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-container>table>thead>tr>th{padding:1rem;color:#525252}.bb-collections-table-container>table>tbody>tr>td{color:#111}.bb-collections-table-container>table>tbody>tr:not(:last-child){border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-info{padding:3rem 1.5rem}.bb-collections-table-info-text{color:#525252;margin:0 auto;display:block;line-height:2;max-width:30rem;text-align:center;font-size:.875rem}.bb-collections-table-info-text>strong{font-weight:500}.bb-collections-table-info-text>strong:before{content:\"\\201c\"}.bb-collections-table-info-text>strong:after{content:\"\\201d\"}.bb-collections-table-image{width:100%;height:auto;display:flex;max-width:7.5rem;margin:0 auto 1.5rem;background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-collections-table-image.empty{aspect-ratio:154/132;mask-image:linear-gradient(to bottom,black 25%,transparent 100%);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 154 132\"%3E%3Cg fill=\"none\" fill-rule=\"evenodd\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3Cg transform=\"translate(0 46)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3Cg transform=\"translate(0 92)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.bb-collections-table-image.error{max-width:4rem;aspect-ratio:1;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 132 132\"%3E%3Cpath fill=\"%23C23934\" d=\"M65.958253 98.6024096c.8892771 0 1.6486747-.3008433 2.2781928-.9025301.6295181-.6016867.9442771-1.3471687.9442771-2.2364458 0-.8892771-.3008434-1.6486747-.9025301-2.2781927-.6016868-.6295181-1.3471687-.9442771-2.2364458-.9442771-.8892771 0-1.6486747.3008433-2.2781928.9025301-.6295181.6016867-.9442771 1.3471687-.9442771 2.2364458 0 .8892771.3008434 1.6486747.9025301 2.2781927.6016868.6295181 1.3471687.9442771 2.2364458.9442771Zm-1.9462048-21.4698795h3.9759036V29.4216867h-3.9759036v47.7108434ZM66.0894578 132c-9.0716867 0-17.6205421-1.715602-25.6465662-5.146807-8.0260241-3.431205-15.0547591-8.159217-21.0862049-14.184036-6.032771-6.02482-10.76674694-13.0416269-14.20192766-21.0504221C1.71825301 83.6086145 0 75.0504819 0 65.9443373 0 56.8368675 1.71560241 48.303253 5.14680723 40.343494c3.43120482-7.9597591 8.15921687-14.9553615 14.18403617-20.9868073 6.0248193-6.032771 13.0416265-10.76674694 21.0504217-14.20192766C48.3913855 1.71825301 56.9495181 0 66.0556627 0 75.1631325 0 83.696747 1.71560241 91.656506 5.14680723c7.9597591 3.43120482 14.955361 8.15921687 20.986807 14.18403617 6.032771 6.0248193 10.766747 13.0263855 14.201928 21.0046988C130.281747 48.3138554 132 56.8388554 132 65.9105422c0 9.0716867-1.715602 17.6205421-5.146807 25.6465662-3.431205 8.0260241-8.159217 15.0547586-14.184036 21.0862046-6.02482 6.032771-13.0263859 10.766747-21.0046992 14.201928C83.6861446 130.281747 75.1611446 132 66.0894578 132ZM66 128.024096c17.2289157 0 31.873494-6.03012 43.933735-18.090361C121.993976 97.873494 128.024096 83.2289157 128.024096 66c0-17.2289157-6.03012-31.873494-18.090361-43.9337349C97.873494 10.0060241 83.2289157 3.97590361 66 3.97590361c-17.2289157 0-31.873494 6.03012049-43.9337349 18.09036149C10.0060241 34.126506 3.97590361 48.7710843 3.97590361 66c0 17.2289157 6.03012049 31.873494 18.09036149 43.933735C34.126506 121.993976 48.7710843 128.024096 66 128.024096Z\"/%3E%3C/svg%3E')}@keyframes collectionsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes collectionsIndeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes collectionsBlink{25%{opacity:.6}50%{opacity:.4}75%{opacity:.6}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BbCollectionsViewer, selector: "[bb-collections-viewer]", inputs: ["collection"] }, { kind: "directive", type: BbCollectionsData, selector: "[bbCollectionsData]" }, { kind: "directive", type: BbCollectionsEmpty, selector: "[bbCollectionsEmpty]" }, { kind: "directive", type: BbCollectionsError, selector: "[bbCollectionsError]" }, { kind: "directive", type: BbCollectionsInitial, selector: "[bbCollectionsInitial]" }, { kind: "component", type: BbCollectionsActions, selector: "bb-collections-actions", inputs: ["collection", "queryPlaceholder", "standalone"] }, { kind: "component", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: ["maxAmountOfButtons", "collection"] }, { kind: "component", type: BbLocalizeString, selector: "[bb-localize-string]", inputs: ["substitutions", "bb-localize-string"] }, { kind: "directive", type: BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "directive", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: ["bbLocalizeTemplate"] }, { kind: "component", type: BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BbCollectionsTable, isStandalone: true, selector: "bb-collections-table", inputs: { queryPlaceholder: "queryPlaceholder", emptyContent: "emptyContent", noResultsContent: "noResultsContent", errorContent: "errorContent", trackByProperty: "trackByProperty", includeVerticalLines: ["includeVerticalLines", "includeVerticalLines", booleanAttribute], hideActions: ["hideActions", "hideActions", booleanAttribute], hidePager: ["hidePager", "hidePager", booleanAttribute], collection: "collection" }, host: { properties: { "class.include-vertical-lines": "includeVerticalLines" }, classAttribute: "bb-collections-table" }, queries: [{ propertyName: "dataRowTemplate", first: true, predicate: BbCollectionsDataRow, descendants: true, read: TemplateRef }], ngImport: i0, template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\">\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [class.loading]=\"collection?.loading$ | async\"\n class=\"bb-collections-table-wrapper\">\n <div [collection]=\"collection\"\n class=\"bb-collections-table-container\"\n bb-collections-viewer>\n @if (collection?.loading$ | async) {\n <div class=\"bb-collections-table-loading\"></div>\n }\n <table *bbCollectionsData=\"let items = items; let loading = loading\">\n <ng-content select=\"thead\"></ng-content>\n <tbody>\n @for (item of items; track (trackByProperty === null ? $index : item[trackByProperty])) {\n <ng-container\n *ngTemplateOutlet=\"dataRowTemplate; context: {$implicit: item, item: item}\"></ng-container>\n }\n </tbody>\n <ng-content select=\"tfoot\"></ng-content>\n </table>\n <div *bbCollectionsEmpty=\"let query = query\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image empty\"></div>\n @if (query?.length > 0) {\n <ng-template [bbTemplate]=\"noResultsContent\">\n <p [bb-localize-string]=\"$any(noResultsContent) ?? ('collection.no_results_label' | bbLocalize)\"\n class=\"bb-collections-table-info-text\">\n <strong *bbLocalizeTemplate=\"'query'\">{{ query ?? '...' }}</strong>\n </p>\n </ng-template>\n } @else {\n <ng-template [bbTemplate]=\"emptyContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(emptyContent) ?? ('collection.empty_label' | bbLocalize) }}\n </p>\n </ng-template>\n }\n </div>\n <div *bbCollectionsError=\"let error = error\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image error\"></div>\n <ng-template [bbTemplate]=\"errorContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(errorContent) ?? ('collection.error_label' | bbLocalize) }}\n </p>\n </ng-template>\n </div>\n <div *bbCollectionsInitial\n class=\"bb-collections-table-info\">\n <bb-spinner class=\"block\"></bb-spinner>\n </div>\n </div>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-table-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: ["@charset \"UTF-8\";.bb-collections-table{color:#111;display:block;position:relative;font-size:.875rem;border-radius:.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-table>*:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bb-collections-table>*:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.bb-collections-table.include-vertical-lines td:not(:last-child),.bb-collections-table.include-vertical-lines th:not(:last-child){border-right:1px solid hsl(213,8%,90%)}.bb-collections-table-footer{padding:.75rem 1rem;background-color:#fbf9f9;border-top:1px solid hsl(213,8%,90%)}.bb-collections-table-wrapper{overflow:hidden;position:relative}.bb-collections-table-wrapper.loading:after{top:0;left:0;right:0;z-index:1;opacity:0;content:\"\";display:block;height:.25rem;position:absolute;will-change:left,right;background-color:var(--bb-collections-table-loader-color);animation:collectionsFadeIn .12s cubic-bezier(.65,.815,.735,.395) .4s forwards,collectionsIndeterminate 2.1s cubic-bezier(.65,.815,.735,.395) .4s infinite}.bb-collections-table-container{overflow-x:auto;position:relative}.bb-collections-table-container.loading>table>tbody,.bb-collections-table-container.loading>.bb-collections-table-info{animation:collectionsBlink 1s linear infinite}.bb-collections-table-container>table{width:100%}.bb-collections-table-container>table th,.bb-collections-table-container>table td{padding:1rem;text-align:left;font-weight:400;font-size:.875rem}.bb-collections-table-container>table th.fit,.bb-collections-table-container>table td.fit{width:1%;white-space:nowrap}.bb-collections-table-container>table th.left,.bb-collections-table-container>table td.left{text-align:left}.bb-collections-table-container>table th.right,.bb-collections-table-container>table td.right{text-align:right}.bb-collections-table-container>table>thead{background-color:#fbf9f9;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-container>table>thead>tr>th{padding:1rem;color:#525252}.bb-collections-table-container>table>tbody>tr>td{color:#111}.bb-collections-table-container>table>tbody>tr:not(:last-child){border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-info{padding:3rem 1.5rem}.bb-collections-table-info-text{color:#525252;margin:0 auto;display:block;line-height:2;max-width:30rem;text-align:center;font-size:.875rem}.bb-collections-table-info-text>strong{font-weight:500}.bb-collections-table-info-text>strong:before{content:\"\\201c\"}.bb-collections-table-info-text>strong:after{content:\"\\201d\"}.bb-collections-table-image{width:100%;height:auto;display:flex;max-width:7.5rem;margin:0 auto 1.5rem;background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-collections-table-image.empty{aspect-ratio:154/132;mask-image:linear-gradient(to bottom,black 25%,transparent 100%);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 154 132\"%3E%3Cg fill=\"none\" fill-rule=\"evenodd\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3Cg transform=\"translate(0 46)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3Cg transform=\"translate(0 92)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.bb-collections-table-image.error{max-width:4rem;aspect-ratio:1;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 132 132\"%3E%3Cpath fill=\"%23C23934\" d=\"M65.958253 98.6024096c.8892771 0 1.6486747-.3008433 2.2781928-.9025301.6295181-.6016867.9442771-1.3471687.9442771-2.2364458 0-.8892771-.3008434-1.6486747-.9025301-2.2781927-.6016868-.6295181-1.3471687-.9442771-2.2364458-.9442771-.8892771 0-1.6486747.3008433-2.2781928.9025301-.6295181.6016867-.9442771 1.3471687-.9442771 2.2364458 0 .8892771.3008434 1.6486747.9025301 2.2781927.6016868.6295181 1.3471687.9442771 2.2364458.9442771Zm-1.9462048-21.4698795h3.9759036V29.4216867h-3.9759036v47.7108434ZM66.0894578 132c-9.0716867 0-17.6205421-1.715602-25.6465662-5.146807-8.0260241-3.431205-15.0547591-8.159217-21.0862049-14.184036-6.032771-6.02482-10.76674694-13.0416269-14.20192766-21.0504221C1.71825301 83.6086145 0 75.0504819 0 65.9443373 0 56.8368675 1.71560241 48.303253 5.14680723 40.343494c3.43120482-7.9597591 8.15921687-14.9553615 14.18403617-20.9868073 6.0248193-6.032771 13.0416265-10.76674694 21.0504217-14.20192766C48.3913855 1.71825301 56.9495181 0 66.0556627 0 75.1631325 0 83.696747 1.71560241 91.656506 5.14680723c7.9597591 3.43120482 14.955361 8.15921687 20.986807 14.18403617 6.032771 6.0248193 10.766747 13.0263855 14.201928 21.0046988C130.281747 48.3138554 132 56.8388554 132 65.9105422c0 9.0716867-1.715602 17.6205421-5.146807 25.6465662-3.431205 8.0260241-8.159217 15.0547586-14.184036 21.0862046-6.02482 6.032771-13.0263859 10.766747-21.0046992 14.201928C83.6861446 130.281747 75.1611446 132 66.0894578 132ZM66 128.024096c17.2289157 0 31.873494-6.03012 43.933735-18.090361C121.993976 97.873494 128.024096 83.2289157 128.024096 66c0-17.2289157-6.03012-31.873494-18.090361-43.9337349C97.873494 10.0060241 83.2289157 3.97590361 66 3.97590361c-17.2289157 0-31.873494 6.03012049-43.9337349 18.09036149C10.0060241 34.126506 3.97590361 48.7710843 3.97590361 66c0 17.2289157 6.03012049 31.873494 18.09036149 43.933735C34.126506 121.993976 48.7710843 128.024096 66 128.024096Z\"/%3E%3C/svg%3E')}@keyframes collectionsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes collectionsIndeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes collectionsBlink{25%{opacity:.6}50%{opacity:.4}75%{opacity:.6}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BbCollectionsViewer, selector: "[bb-collections-viewer]", inputs: ["collection"] }, { kind: "directive", type: BbCollectionsData, selector: "[bbCollectionsData]" }, { kind: "directive", type: BbCollectionsEmpty, selector: "[bbCollectionsEmpty]" }, { kind: "directive", type: BbCollectionsError, selector: "[bbCollectionsError]" }, { kind: "directive", type: BbCollectionsInitial, selector: "[bbCollectionsInitial]" }, { kind: "component", type: BbCollectionsActions, selector: "bb-collections-actions", inputs: ["collection", "queryPlaceholder", "standalone"] }, { kind: "component", type: BbCollectionsPager, selector: "bb-collections-pager", inputs: ["maxAmountOfButtons", "collection"] }, { kind: "component", type: BbLocalizeString, selector: "[bb-localize-string]", inputs: ["substitutions", "bb-localize-string"] }, { kind: "directive", type: BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "directive", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: ["bbLocalizeTemplate"] }, { kind: "component", type: BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BbCollectionsTable, decorators: [{
40
40
  type: Component,
@@ -56,7 +56,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
56
56
  BbLocalizeTemplate,
57
57
  BbSpinner,
58
58
  AsyncPipe
59
- ], template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\">\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [class.loading]=\"collection?.loading$ | async\"\n class=\"bb-collections-table-wrapper\">\n <div [collection]=\"collection\"\n class=\"bb-collections-table-container\"\n bb-collections-viewer>\n @if (collection?.loading$ | async) {\n <div class=\"bb-collections-table-loading\"></div>\n }\n <table *bbCollectionsData=\"let items = items; let loading = loading\">\n <ng-content select=\"thead\"></ng-content>\n <tbody>\n @for (item of items; track (trackByProperty === null ? $index : item[trackByProperty])) {\n <ng-container\n *ngTemplateOutlet=\"dataRowTemplate; context: {$implicit: item, item: item}\"></ng-container>\n }\n </tbody>\n <ng-content select=\"tfoot\"></ng-content>\n </table>\n <div *bbCollectionsEmpty=\"let query = query\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image empty\"></div>\n @if (query?.length > 0) {\n <ng-template [bbTemplate]=\"noResultsContent\">\n <p [bb-localize-string]=\"$any(noResultsContent) ?? ('collection.no_results_label' | bbLocalize)\"\n class=\"bb-collections-table-info-text\">\n <strong *bbLocalizeTemplate=\"'query'\">{{ query ?? '...' }}</strong>\n </p>\n </ng-template>\n } @else {\n <ng-template [bbTemplate]=\"emptyContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(emptyContent) ?? ('collection.empty_label' | bbLocalize) }}\n </p>\n </ng-template>\n }\n </div>\n <div *bbCollectionsError=\"let error = error\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image error\"></div>\n <ng-template [bbTemplate]=\"errorContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(errorContent) ?? ('collection.error_label' | bbLocalize) }}\n </p>\n </ng-template>\n </div>\n <div *bbCollectionsInitial\n class=\"bb-collections-table-info\">\n <bb-spinner class=\"block\"></bb-spinner>\n </div>\n </div>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-table-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: ["@charset \"UTF-8\";.bb-collections-table{color:#111;display:block;position:relative;font-size:.875rem;border-radius:.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-table>*:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bb-collections-table>*:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.bb-collections-table.include-vertical-lines td:not(:last-child),.bb-collections-table.include-vertical-lines th:not(:last-child){border-right:1px solid hsl(213,8%,90%)}.bb-collections-table-footer{padding:.75rem 1rem;background-color:#fbf9f9;border-top:1px solid hsl(213,8%,90%)}.bb-collections-table-wrapper{overflow:hidden;position:relative}.bb-collections-table-wrapper.loading:after{top:0;left:0;right:0;z-index:1;opacity:0;content:\"\";display:block;height:.25rem;position:absolute;will-change:left,right;background-color:#1565c1;animation:collectionsFadeIn .12s cubic-bezier(.65,.815,.735,.395) .4s forwards,collectionsIndeterminate 2.1s cubic-bezier(.65,.815,.735,.395) .4s infinite}.bb-collections-table-container{overflow-x:auto;position:relative}.bb-collections-table-container.loading>table>tbody,.bb-collections-table-container.loading>.bb-collections-table-info{animation:collectionsBlink 1s linear infinite}.bb-collections-table-container>table{width:100%}.bb-collections-table-container>table th,.bb-collections-table-container>table td{padding:1rem;text-align:left;font-weight:400;font-size:.875rem}.bb-collections-table-container>table th.fit,.bb-collections-table-container>table td.fit{width:1%;white-space:nowrap}.bb-collections-table-container>table th.left,.bb-collections-table-container>table td.left{text-align:left}.bb-collections-table-container>table th.right,.bb-collections-table-container>table td.right{text-align:right}.bb-collections-table-container>table>thead{background-color:#fbf9f9;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-container>table>thead>tr>th{padding:1rem;color:#525252}.bb-collections-table-container>table>tbody>tr>td{color:#111}.bb-collections-table-container>table>tbody>tr:not(:last-child){border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-info{padding:3rem 1.5rem}.bb-collections-table-info-text{color:#525252;margin:0 auto;display:block;line-height:2;max-width:30rem;text-align:center;font-size:.875rem}.bb-collections-table-info-text>strong{font-weight:500}.bb-collections-table-info-text>strong:before{content:\"\\201c\"}.bb-collections-table-info-text>strong:after{content:\"\\201d\"}.bb-collections-table-image{width:100%;height:auto;display:flex;max-width:7.5rem;margin:0 auto 1.5rem;background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-collections-table-image.empty{aspect-ratio:154/132;mask-image:linear-gradient(to bottom,black 25%,transparent 100%);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 154 132\"%3E%3Cg fill=\"none\" fill-rule=\"evenodd\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3Cg transform=\"translate(0 46)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3Cg transform=\"translate(0 92)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.bb-collections-table-image.error{max-width:4rem;aspect-ratio:1;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 132 132\"%3E%3Cpath fill=\"%23C23934\" d=\"M65.958253 98.6024096c.8892771 0 1.6486747-.3008433 2.2781928-.9025301.6295181-.6016867.9442771-1.3471687.9442771-2.2364458 0-.8892771-.3008434-1.6486747-.9025301-2.2781927-.6016868-.6295181-1.3471687-.9442771-2.2364458-.9442771-.8892771 0-1.6486747.3008433-2.2781928.9025301-.6295181.6016867-.9442771 1.3471687-.9442771 2.2364458 0 .8892771.3008434 1.6486747.9025301 2.2781927.6016868.6295181 1.3471687.9442771 2.2364458.9442771Zm-1.9462048-21.4698795h3.9759036V29.4216867h-3.9759036v47.7108434ZM66.0894578 132c-9.0716867 0-17.6205421-1.715602-25.6465662-5.146807-8.0260241-3.431205-15.0547591-8.159217-21.0862049-14.184036-6.032771-6.02482-10.76674694-13.0416269-14.20192766-21.0504221C1.71825301 83.6086145 0 75.0504819 0 65.9443373 0 56.8368675 1.71560241 48.303253 5.14680723 40.343494c3.43120482-7.9597591 8.15921687-14.9553615 14.18403617-20.9868073 6.0248193-6.032771 13.0416265-10.76674694 21.0504217-14.20192766C48.3913855 1.71825301 56.9495181 0 66.0556627 0 75.1631325 0 83.696747 1.71560241 91.656506 5.14680723c7.9597591 3.43120482 14.955361 8.15921687 20.986807 14.18403617 6.032771 6.0248193 10.766747 13.0263855 14.201928 21.0046988C130.281747 48.3138554 132 56.8388554 132 65.9105422c0 9.0716867-1.715602 17.6205421-5.146807 25.6465662-3.431205 8.0260241-8.159217 15.0547586-14.184036 21.0862046-6.02482 6.032771-13.0263859 10.766747-21.0046992 14.201928C83.6861446 130.281747 75.1611446 132 66.0894578 132ZM66 128.024096c17.2289157 0 31.873494-6.03012 43.933735-18.090361C121.993976 97.873494 128.024096 83.2289157 128.024096 66c0-17.2289157-6.03012-31.873494-18.090361-43.9337349C97.873494 10.0060241 83.2289157 3.97590361 66 3.97590361c-17.2289157 0-31.873494 6.03012049-43.9337349 18.09036149C10.0060241 34.126506 3.97590361 48.7710843 3.97590361 66c0 17.2289157 6.03012049 31.873494 18.09036149 43.933735C34.126506 121.993976 48.7710843 128.024096 66 128.024096Z\"/%3E%3C/svg%3E')}@keyframes collectionsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes collectionsIndeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes collectionsBlink{25%{opacity:.6}50%{opacity:.4}75%{opacity:.6}}\n"] }]
59
+ ], template: "@if (!hideActions) {\n <bb-collections-actions [collection]=\"collection\"\n [queryPlaceholder]=\"queryPlaceholder\">\n <ng-content ngProjectAs=\"[data-collections-action]\"\n select=\"[data-collections-action]\"></ng-content>\n <ng-content ngProjectAs=\"[data-collections-row]\"\n select=\"[data-collections-row]\"></ng-content>\n </bb-collections-actions>\n}\n\n<div [class.loading]=\"collection?.loading$ | async\"\n class=\"bb-collections-table-wrapper\">\n <div [collection]=\"collection\"\n class=\"bb-collections-table-container\"\n bb-collections-viewer>\n @if (collection?.loading$ | async) {\n <div class=\"bb-collections-table-loading\"></div>\n }\n <table *bbCollectionsData=\"let items = items; let loading = loading\">\n <ng-content select=\"thead\"></ng-content>\n <tbody>\n @for (item of items; track (trackByProperty === null ? $index : item[trackByProperty])) {\n <ng-container\n *ngTemplateOutlet=\"dataRowTemplate; context: {$implicit: item, item: item}\"></ng-container>\n }\n </tbody>\n <ng-content select=\"tfoot\"></ng-content>\n </table>\n <div *bbCollectionsEmpty=\"let query = query\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image empty\"></div>\n @if (query?.length > 0) {\n <ng-template [bbTemplate]=\"noResultsContent\">\n <p [bb-localize-string]=\"$any(noResultsContent) ?? ('collection.no_results_label' | bbLocalize)\"\n class=\"bb-collections-table-info-text\">\n <strong *bbLocalizeTemplate=\"'query'\">{{ query ?? '...' }}</strong>\n </p>\n </ng-template>\n } @else {\n <ng-template [bbTemplate]=\"emptyContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(emptyContent) ?? ('collection.empty_label' | bbLocalize) }}\n </p>\n </ng-template>\n }\n </div>\n <div *bbCollectionsError=\"let error = error\"\n class=\"bb-collections-table-info\">\n <div class=\"bb-collections-table-image error\"></div>\n <ng-template [bbTemplate]=\"errorContent\">\n <p class=\"bb-collections-table-info-text\">\n {{ $any(errorContent) ?? ('collection.error_label' | bbLocalize) }}\n </p>\n </ng-template>\n </div>\n <div *bbCollectionsInitial\n class=\"bb-collections-table-info\">\n <bb-spinner class=\"block\"></bb-spinner>\n </div>\n </div>\n</div>\n\n@if (!hidePager) {\n <footer class=\"bb-collections-table-footer\">\n <bb-collections-pager [collection]=\"collection\"></bb-collections-pager>\n </footer>\n}\n", styles: ["@charset \"UTF-8\";.bb-collections-table{color:#111;display:block;position:relative;font-size:.875rem;border-radius:.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-table>*:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bb-collections-table>*:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.bb-collections-table.include-vertical-lines td:not(:last-child),.bb-collections-table.include-vertical-lines th:not(:last-child){border-right:1px solid hsl(213,8%,90%)}.bb-collections-table-footer{padding:.75rem 1rem;background-color:#fbf9f9;border-top:1px solid hsl(213,8%,90%)}.bb-collections-table-wrapper{overflow:hidden;position:relative}.bb-collections-table-wrapper.loading:after{top:0;left:0;right:0;z-index:1;opacity:0;content:\"\";display:block;height:.25rem;position:absolute;will-change:left,right;background-color:var(--bb-collections-table-loader-color);animation:collectionsFadeIn .12s cubic-bezier(.65,.815,.735,.395) .4s forwards,collectionsIndeterminate 2.1s cubic-bezier(.65,.815,.735,.395) .4s infinite}.bb-collections-table-container{overflow-x:auto;position:relative}.bb-collections-table-container.loading>table>tbody,.bb-collections-table-container.loading>.bb-collections-table-info{animation:collectionsBlink 1s linear infinite}.bb-collections-table-container>table{width:100%}.bb-collections-table-container>table th,.bb-collections-table-container>table td{padding:1rem;text-align:left;font-weight:400;font-size:.875rem}.bb-collections-table-container>table th.fit,.bb-collections-table-container>table td.fit{width:1%;white-space:nowrap}.bb-collections-table-container>table th.left,.bb-collections-table-container>table td.left{text-align:left}.bb-collections-table-container>table th.right,.bb-collections-table-container>table td.right{text-align:right}.bb-collections-table-container>table>thead{background-color:#fbf9f9;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-container>table>thead>tr>th{padding:1rem;color:#525252}.bb-collections-table-container>table>tbody>tr>td{color:#111}.bb-collections-table-container>table>tbody>tr:not(:last-child){border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-table-info{padding:3rem 1.5rem}.bb-collections-table-info-text{color:#525252;margin:0 auto;display:block;line-height:2;max-width:30rem;text-align:center;font-size:.875rem}.bb-collections-table-info-text>strong{font-weight:500}.bb-collections-table-info-text>strong:before{content:\"\\201c\"}.bb-collections-table-info-text>strong:after{content:\"\\201d\"}.bb-collections-table-image{width:100%;height:auto;display:flex;max-width:7.5rem;margin:0 auto 1.5rem;background-size:contain;background-repeat:no-repeat;background-position:center center}.bb-collections-table-image.empty{aspect-ratio:154/132;mask-image:linear-gradient(to bottom,black 25%,transparent 100%);background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 154 132\"%3E%3Cg fill=\"none\" fill-rule=\"evenodd\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3Cg transform=\"translate(0 46)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3Cg transform=\"translate(0 92)\"%3E%3Crect width=\"154\" height=\"40\" fill=\"%23FFF\" fill-rule=\"nonzero\" rx=\"8\"/%3E%3Crect width=\"24\" height=\"24\" x=\"8\" y=\"8\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"4\"/%3E%3Crect width=\"60\" height=\"6\" x=\"40\" y=\"11\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"106\" height=\"6\" x=\"40\" y=\"23\" fill=\"%23E5E7EB\" fill-rule=\"nonzero\" rx=\"3\"/%3E%3Crect width=\"153\" height=\"39\" x=\".5\" y=\".5\" stroke=\"%23E5E7EB\" rx=\"7.5\"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')}.bb-collections-table-image.error{max-width:4rem;aspect-ratio:1;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 132 132\"%3E%3Cpath fill=\"%23C23934\" d=\"M65.958253 98.6024096c.8892771 0 1.6486747-.3008433 2.2781928-.9025301.6295181-.6016867.9442771-1.3471687.9442771-2.2364458 0-.8892771-.3008434-1.6486747-.9025301-2.2781927-.6016868-.6295181-1.3471687-.9442771-2.2364458-.9442771-.8892771 0-1.6486747.3008433-2.2781928.9025301-.6295181.6016867-.9442771 1.3471687-.9442771 2.2364458 0 .8892771.3008434 1.6486747.9025301 2.2781927.6016868.6295181 1.3471687.9442771 2.2364458.9442771Zm-1.9462048-21.4698795h3.9759036V29.4216867h-3.9759036v47.7108434ZM66.0894578 132c-9.0716867 0-17.6205421-1.715602-25.6465662-5.146807-8.0260241-3.431205-15.0547591-8.159217-21.0862049-14.184036-6.032771-6.02482-10.76674694-13.0416269-14.20192766-21.0504221C1.71825301 83.6086145 0 75.0504819 0 65.9443373 0 56.8368675 1.71560241 48.303253 5.14680723 40.343494c3.43120482-7.9597591 8.15921687-14.9553615 14.18403617-20.9868073 6.0248193-6.032771 13.0416265-10.76674694 21.0504217-14.20192766C48.3913855 1.71825301 56.9495181 0 66.0556627 0 75.1631325 0 83.696747 1.71560241 91.656506 5.14680723c7.9597591 3.43120482 14.955361 8.15921687 20.986807 14.18403617 6.032771 6.0248193 10.766747 13.0263855 14.201928 21.0046988C130.281747 48.3138554 132 56.8388554 132 65.9105422c0 9.0716867-1.715602 17.6205421-5.146807 25.6465662-3.431205 8.0260241-8.159217 15.0547586-14.184036 21.0862046-6.02482 6.032771-13.0263859 10.766747-21.0046992 14.201928C83.6861446 130.281747 75.1611446 132 66.0894578 132ZM66 128.024096c17.2289157 0 31.873494-6.03012 43.933735-18.090361C121.993976 97.873494 128.024096 83.2289157 128.024096 66c0-17.2289157-6.03012-31.873494-18.090361-43.9337349C97.873494 10.0060241 83.2289157 3.97590361 66 3.97590361c-17.2289157 0-31.873494 6.03012049-43.9337349 18.09036149C10.0060241 34.126506 3.97590361 48.7710843 3.97590361 66c0 17.2289157 6.03012049 31.873494 18.09036149 43.933735C34.126506 121.993976 48.7710843 128.024096 66 128.024096Z\"/%3E%3C/svg%3E')}@keyframes collectionsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes collectionsIndeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes collectionsBlink{25%{opacity:.6}50%{opacity:.4}75%{opacity:.6}}\n"] }]
60
60
  }], propDecorators: { dataRowTemplate: [{
61
61
  type: ContentChild,
62
62
  args: [BbCollectionsDataRow, { read: TemplateRef, static: false }]
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
83
83
  type: Input,
84
84
  args: [{ required: true }]
85
85
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUvY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUvY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUMsb0JBQW9CLEVBQThCLE1BQU0saURBQWlELENBQUM7QUFDbEgsT0FBTyxFQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRXpELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBK0JyQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLGlCQUFpQjtJQUNSLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsSUFBSSxDQUFDLENBQUM7SUFFdkUsU0FBUztJQUMrRCxlQUFlLENBQStDO0lBRXRJLFVBQVU7SUFDRCxnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBQ3ZDLFlBQVksR0FBcUMsSUFBSSxDQUFDO0lBQ3RELGdCQUFnQixHQUFxQyxJQUFJLENBQUM7SUFDMUQsWUFBWSxHQUFxQyxJQUFJLENBQUM7SUFDdEQsZUFBZSxHQUFrQixJQUFJLENBQUM7SUFDVCxvQkFBb0IsR0FBWSxLQUFLLENBQUM7SUFDdEMsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixTQUFTLEdBQVksS0FBSyxDQUFDO0lBRWpFLElBQ0ksVUFBVSxDQUFDLFVBQXlCO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQzt3R0F6QlEsa0JBQWtCOzRGQUFsQixrQkFBa0IscVRBY1IsZ0JBQWdCLCtDQUNoQixnQkFBZ0IseUNBQ2hCLGdCQUFnQiw4TkFWckIsb0JBQW9CLDJCQUFTLFdBQVcsNkJDbkQxRCx5Z0dBbUVBLHUyTkR0Q1EsZ0JBQWdCLG9KQUNoQixtQkFBbUIsNEZBQ25CLGlCQUFpQixnRUFDakIsa0JBQWtCLGlFQUNsQixrQkFBa0IsaUVBQ2xCLG9CQUFvQixtRUFDcEIsb0JBQW9CLDZIQUNwQixrQkFBa0IsK0dBQ2xCLGdCQUFnQixrSEFDaEIsVUFBVSw0RUFDVixVQUFVLG1EQUNWLGtCQUFrQixpR0FDbEIsU0FBUyx3RkFDVCxTQUFTOzs0RkFHSixrQkFBa0I7a0JBN0I5QixTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNGLE9BQU8sRUFBRSxzQkFBc0I7d0JBQy9CLGdDQUFnQyxFQUFFLHNCQUFzQjtxQkFDM0QsdUJBQ29CLEtBQUssY0FDZCxJQUFJLFdBQ1A7d0JBQ0wsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxTQUFTO3FCQUNaOzhCQVF1RSxlQUFlO3NCQUF0RixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUc3RCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNnQyxvQkFBb0I7c0JBQXpELEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBQ0UsV0FBVztzQkFBaEQsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFDRSxTQUFTO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFDO2dCQUdoQyxVQUFVO3NCQURiLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zRGF0YVJvdywgQmJDb2xsZWN0aW9uc0RhdGFSb3dDb250ZXh0fSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbGxlY3Rpb25zLWRhdGEtcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiTG9jYWxpemUsIEJiTG9jYWxpemVTdHJpbmcsIEJiTG9jYWxpemVUZW1wbGF0ZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zQWN0aW9uc30gZnJvbSAnLi4vY29sbGVjdGlvbnMtYWN0aW9ucy9jb2xsZWN0aW9ucy1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNWaWV3ZXJ9IGZyb20gJy4uL2NvbGxlY3Rpb25zLXZpZXdlci9jb2xsZWN0aW9ucy12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0luaXRpYWx9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtaW5pdGlhbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zUGFnZXJ9IGZyb20gJy4uL2NvbGxlY3Rpb25zLXBhZ2VyL2NvbGxlY3Rpb25zLXBhZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNFbXB0eX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb2xsZWN0aW9ucy1lbXB0eS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zRXJyb3J9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0RhdGF9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZGF0YS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiU3Bpbm5lcn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vZWxlbWVudHMnO1xuaW1wb3J0IHtCYlRlbXBsYXRlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi91dGlscyc7XG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gJy4uLy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWNvbGxlY3Rpb25zLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb25zLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1jb2xsZWN0aW9ucy10YWJsZScsXG4gICAgICAgICdbY2xhc3MuaW5jbHVkZS12ZXJ0aWNhbC1saW5lc10nOiAnaW5jbHVkZVZlcnRpY2FsTGluZXMnXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQmJDb2xsZWN0aW9uc1ZpZXdlcixcbiAgICAgICAgQmJDb2xsZWN0aW9uc0RhdGEsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNFbXB0eSxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0Vycm9yLFxuICAgICAgICBCYkNvbGxlY3Rpb25zSW5pdGlhbCxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0FjdGlvbnMsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNQYWdlcixcbiAgICAgICAgQmJMb2NhbGl6ZVN0cmluZyxcbiAgICAgICAgQmJUZW1wbGF0ZSxcbiAgICAgICAgQmJMb2NhbGl6ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlLFxuICAgICAgICBCYlNwaW5uZXIsXG4gICAgICAgIEFzeW5jUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQmJDb2xsZWN0aW9uc1RhYmxlPFQgPSBhbnk+IHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgY29sbGVjdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbGxlY3Rpb248VD4gfCBudWxsPihudWxsKTtcblxuICAgIC8vIFZpZXdzLlxuICAgIEBDb250ZW50Q2hpbGQoQmJDb2xsZWN0aW9uc0RhdGFSb3csIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pIGRhdGFSb3dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEJiQ29sbGVjdGlvbnNEYXRhUm93Q29udGV4dDxUPj47XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgcXVlcnlQbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZW1wdHlDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgbm9SZXN1bHRzQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGVycm9yQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRyYWNrQnlQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9ICdpZCc7XG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBpbmNsdWRlVmVydGljYWxMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgaGlkZUFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGhpZGVQYWdlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPikge1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb24kLm5leHQoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24kLmdldFZhbHVlKCk7XG4gICAgfVxuXG59XG4iLCJAaWYgKCFoaWRlQWN0aW9ucykge1xuICAgIDxiYi1jb2xsZWN0aW9ucy1hY3Rpb25zIFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBsYWNlaG9sZGVyXT1cInF1ZXJ5UGxhY2Vob2xkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJbZGF0YS1jb2xsZWN0aW9ucy1hY3Rpb25dXCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0PVwiW2RhdGEtY29sbGVjdGlvbnMtYWN0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJbZGF0YS1jb2xsZWN0aW9ucy1yb3ddXCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0PVwiW2RhdGEtY29sbGVjdGlvbnMtcm93XVwiPjwvbmctY29udGVudD5cbiAgICA8L2JiLWNvbGxlY3Rpb25zLWFjdGlvbnM+XG59XG5cbjxkaXYgW2NsYXNzLmxvYWRpbmddPVwiY29sbGVjdGlvbj8ubG9hZGluZyQgfCBhc3luY1wiXG4gICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtd3JhcHBlclwiPlxuICAgIDxkaXYgW2NvbGxlY3Rpb25dPVwiY29sbGVjdGlvblwiXG4gICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWNvbnRhaW5lclwiXG4gICAgICAgICBiYi1jb2xsZWN0aW9ucy12aWV3ZXI+XG4gICAgICAgIEBpZiAoY29sbGVjdGlvbj8ubG9hZGluZyQgfCBhc3luYykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8dGFibGUgKmJiQ29sbGVjdGlvbnNEYXRhPVwibGV0IGl0ZW1zID0gaXRlbXM7IGxldCBsb2FkaW5nID0gbG9hZGluZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidGhlYWRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgKHRyYWNrQnlQcm9wZXJ0eSA9PT0gbnVsbCA/ICRpbmRleCA6IGl0ZW1bdHJhY2tCeVByb3BlcnR5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRhUm93VGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGl0ZW0sIGl0ZW06IGl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInRmb290XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8ZGl2ICpiYkNvbGxlY3Rpb25zRW1wdHk9XCJsZXQgcXVlcnkgPSBxdWVyeVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1pbmZvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtaW1hZ2UgZW1wdHlcIj48L2Rpdj5cbiAgICAgICAgICAgIEBpZiAocXVlcnk/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2JiVGVtcGxhdGVdPVwibm9SZXN1bHRzQ29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBbYmItbG9jYWxpemUtc3RyaW5nXT1cIiRhbnkobm9SZXN1bHRzQ29udGVudCkgPz8gKCdjb2xsZWN0aW9uLm5vX3Jlc3VsdHNfbGFiZWwnIHwgYmJMb2NhbGl6ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm8tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyAqYmJMb2NhbGl6ZVRlbXBsYXRlPVwiJ3F1ZXJ5J1wiPnt7IHF1ZXJ5ID8/ICcuLi4nIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImVtcHR5Q29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm8tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJGFueShlbXB0eUNvbnRlbnQpID8/ICgnY29sbGVjdGlvbi5lbXB0eV9sYWJlbCcgfCBiYkxvY2FsaXplKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKmJiQ29sbGVjdGlvbnNFcnJvcj1cImxldCBlcnJvciA9IGVycm9yXCJcbiAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1pbWFnZSBlcnJvclwiPjwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImVycm9yQ29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtaW5mby10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICRhbnkoZXJyb3JDb250ZW50KSA/PyAoJ2NvbGxlY3Rpb24uZXJyb3JfbGFiZWwnIHwgYmJMb2NhbGl6ZSkgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqYmJDb2xsZWN0aW9uc0luaXRpYWxcbiAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm9cIj5cbiAgICAgICAgICAgIDxiYi1zcGlubmVyIGNsYXNzPVwiYmxvY2tcIj48L2JiLXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbkBpZiAoIWhpZGVQYWdlcikge1xuICAgIDxmb290ZXIgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1mb290ZXJcIj5cbiAgICAgICAgPGJiLWNvbGxlY3Rpb25zLXBhZ2VyIFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIj48L2JiLWNvbGxlY3Rpb25zLXBhZ2VyPlxuICAgIDwvZm9vdGVyPlxufVxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUvY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9jb2xsZWN0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvY29sbGVjdGlvbnMtdGFibGUvY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUMsb0JBQW9CLEVBQThCLE1BQU0saURBQWlELENBQUM7QUFDbEgsT0FBTyxFQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9B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ZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zRGF0YVJvdywgQmJDb2xsZWN0aW9uc0RhdGFSb3dDb250ZXh0fSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbGxlY3Rpb25zLWRhdGEtcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiTG9jYWxpemUsIEJiTG9jYWxpemVTdHJpbmcsIEJiTG9jYWxpemVUZW1wbGF0ZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zQWN0aW9uc30gZnJvbSAnLi4vY29sbGVjdGlvbnMtYWN0aW9ucy9jb2xsZWN0aW9ucy1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNWaWV3ZXJ9IGZyb20gJy4uL2NvbGxlY3Rpb25zLXZpZXdlci9jb2xsZWN0aW9ucy12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0luaXRpYWx9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtaW5pdGlhbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zUGFnZXJ9IGZyb20gJy4uL2NvbGxlY3Rpb25zLXBhZ2VyL2NvbGxlY3Rpb25zLXBhZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiQ29sbGVjdGlvbnNFbXB0eX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb2xsZWN0aW9ucy1lbXB0eS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkNvbGxlY3Rpb25zRXJyb3J9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJDb2xsZWN0aW9uc0RhdGF9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29sbGVjdGlvbnMtZGF0YS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiU3Bpbm5lcn0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vZWxlbWVudHMnO1xuaW1wb3J0IHtCYlRlbXBsYXRlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi91dGlscyc7XG5pbXBvcnQge0NvbGxlY3Rpb259IGZyb20gJy4uLy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JiLWNvbGxlY3Rpb25zLXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29sbGVjdGlvbnMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb25zLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1jb2xsZWN0aW9ucy10YWJsZScsXG4gICAgICAgICdbY2xhc3MuaW5jbHVkZS12ZXJ0aWNhbC1saW5lc10nOiAnaW5jbHVkZVZlcnRpY2FsTGluZXMnXG4gICAgfSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgQmJDb2xsZWN0aW9uc1ZpZXdlcixcbiAgICAgICAgQmJDb2xsZWN0aW9uc0RhdGEsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNFbXB0eSxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0Vycm9yLFxuICAgICAgICBCYkNvbGxlY3Rpb25zSW5pdGlhbCxcbiAgICAgICAgQmJDb2xsZWN0aW9uc0FjdGlvbnMsXG4gICAgICAgIEJiQ29sbGVjdGlvbnNQYWdlcixcbiAgICAgICAgQmJMb2NhbGl6ZVN0cmluZyxcbiAgICAgICAgQmJUZW1wbGF0ZSxcbiAgICAgICAgQmJMb2NhbGl6ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlLFxuICAgICAgICBCYlNwaW5uZXIsXG4gICAgICAgIEFzeW5jUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQmJDb2xsZWN0aW9uc1RhYmxlPFQgPSBhbnk+IHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcmVhZG9ubHkgY29sbGVjdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbGxlY3Rpb248VD4gfCBudWxsPihudWxsKTtcblxuICAgIC8vIFZpZXdzLlxuICAgIEBDb250ZW50Q2hpbGQoQmJDb2xsZWN0aW9uc0RhdGFSb3csIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pIGRhdGFSb3dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEJiQ29sbGVjdGlvbnNEYXRhUm93Q29udGV4dDxUPj47XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgcXVlcnlQbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZW1wdHlDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgbm9SZXN1bHRzQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIGVycm9yQ29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuICAgIEBJbnB1dCgpIHRyYWNrQnlQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9ICdpZCc7XG4gICAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBpbmNsdWRlVmVydGljYWxMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgaGlkZUFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pIGhpZGVQYWdlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPikge1xuICAgICAgICB0aGlzLmNvbGxlY3Rpb24kLm5leHQoY29sbGVjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0IGNvbGxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24kLmdldFZhbHVlKCk7XG4gICAgfVxuXG59XG4iLCJAaWYgKCFoaWRlQWN0aW9ucykge1xuICAgIDxiYi1jb2xsZWN0aW9ucy1hY3Rpb25zIFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBsYWNlaG9sZGVyXT1cInF1ZXJ5UGxhY2Vob2xkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJbZGF0YS1jb2xsZWN0aW9ucy1hY3Rpb25dXCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0PVwiW2RhdGEtY29sbGVjdGlvbnMtYWN0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJbZGF0YS1jb2xsZWN0aW9ucy1yb3ddXCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0PVwiW2RhdGEtY29sbGVjdGlvbnMtcm93XVwiPjwvbmctY29udGVudD5cbiAgICA8L2JiLWNvbGxlY3Rpb25zLWFjdGlvbnM+XG59XG5cbjxkaXYgW2NsYXNzLmxvYWRpbmddPVwiY29sbGVjdGlvbj8ubG9hZGluZyQgfCBhc3luY1wiXG4gICAgIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtd3JhcHBlclwiPlxuICAgIDxkaXYgW2NvbGxlY3Rpb25dPVwiY29sbGVjdGlvblwiXG4gICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWNvbnRhaW5lclwiXG4gICAgICAgICBiYi1jb2xsZWN0aW9ucy12aWV3ZXI+XG4gICAgICAgIEBpZiAoY29sbGVjdGlvbj8ubG9hZGluZyQgfCBhc3luYykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8dGFibGUgKmJiQ29sbGVjdGlvbnNEYXRhPVwibGV0IGl0ZW1zID0gaXRlbXM7IGxldCBsb2FkaW5nID0gbG9hZGluZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidGhlYWRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBpdGVtczsgdHJhY2sgKHRyYWNrQnlQcm9wZXJ0eSA9PT0gbnVsbCA/ICRpbmRleCA6IGl0ZW1bdHJhY2tCeVByb3BlcnR5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRhUm93VGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGl0ZW0sIGl0ZW06IGl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInRmb290XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8ZGl2ICpiYkNvbGxlY3Rpb25zRW1wdHk9XCJsZXQgcXVlcnkgPSBxdWVyeVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1pbmZvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtaW1hZ2UgZW1wdHlcIj48L2Rpdj5cbiAgICAgICAgICAgIEBpZiAocXVlcnk/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2JiVGVtcGxhdGVdPVwibm9SZXN1bHRzQ29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBbYmItbG9jYWxpemUtc3RyaW5nXT1cIiRhbnkobm9SZXN1bHRzQ29udGVudCkgPz8gKCdjb2xsZWN0aW9uLm5vX3Jlc3VsdHNfbGFiZWwnIHwgYmJMb2NhbGl6ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm8tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyAqYmJMb2NhbGl6ZVRlbXBsYXRlPVwiJ3F1ZXJ5J1wiPnt7IHF1ZXJ5ID8/ICcuLi4nIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImVtcHR5Q29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm8tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJGFueShlbXB0eUNvbnRlbnQpID8/ICgnY29sbGVjdGlvbi5lbXB0eV9sYWJlbCcgfCBiYkxvY2FsaXplKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKmJiQ29sbGVjdGlvbnNFcnJvcj1cImxldCBlcnJvciA9IGVycm9yXCJcbiAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1pbWFnZSBlcnJvclwiPjwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtiYlRlbXBsYXRlXT1cImVycm9yQ29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYmItY29sbGVjdGlvbnMtdGFibGUtaW5mby10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICRhbnkoZXJyb3JDb250ZW50KSA/PyAoJ2NvbGxlY3Rpb24uZXJyb3JfbGFiZWwnIHwgYmJMb2NhbGl6ZSkgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqYmJDb2xsZWN0aW9uc0luaXRpYWxcbiAgICAgICAgICAgICBjbGFzcz1cImJiLWNvbGxlY3Rpb25zLXRhYmxlLWluZm9cIj5cbiAgICAgICAgICAgIDxiYi1zcGlubmVyIGNsYXNzPVwiYmxvY2tcIj48L2JiLXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbkBpZiAoIWhpZGVQYWdlcikge1xuICAgIDxmb290ZXIgY2xhc3M9XCJiYi1jb2xsZWN0aW9ucy10YWJsZS1mb290ZXJcIj5cbiAgICAgICAgPGJiLWNvbGxlY3Rpb25zLXBhZ2VyIFtjb2xsZWN0aW9uXT1cImNvbGxlY3Rpb25cIj48L2JiLWNvbGxlY3Rpb25zLXBhZ2VyPlxuICAgIDwvZm9vdGVyPlxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbGxlY3Rpb25zL3NyYy9saWIvaW50ZXJmYWNlcy9jb2xsZWN0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uUmVxdWVzdCB7XG4gICAgcGFnZU51bWJlcjogbnVtYmVyO1xuICAgIHBhZ2VTaXplOiBudW1iZXI7XG4gICAgcXVlcnk6IHN0cmluZyB8IG51bGw7XG4gICAgcXVlcnlGaWVsZHM6IHN0cmluZ1tdO1xuICAgIHNvcnQ6IENvbGxlY3Rpb25SZXF1ZXN0U29ydCB8IENvbGxlY3Rpb25SZXF1ZXN0U29ydFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25SZXF1ZXN0U29ydDxUID0gc3RyaW5nPiB7XG4gICAgbmFtZTogVDtcbiAgICBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25EYXRhPFQ+IHtcbiAgICBwYWdlTnVtYmVyOiBudW1iZXI7XG4gICAgcGFnZVNpemU6IG51bWJlcjtcbiAgICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gICAgdG90YWxFbnRyaWVzOiBudW1iZXI7XG4gICAgZGF0YTogVFtdO1xuICAgIHJhdz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uQXBpUmVzcG9uc2U8VD4ge1xuICAgIHBhZ2VfbnVtYmVyOiBudW1iZXI7XG4gICAgcGFnZV9zaXplOiBudW1iZXI7XG4gICAgdG90YWxfcGFnZXM6IG51bWJlcjtcbiAgICB0b3RhbF9lbnRyaWVzOiBudW1iZXI7XG4gICAgZGF0YTogVFtdO1xuXG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvbkFwaVBhcmFtcyA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbGxlY3Rpb25zL3NyYy9saWIvaW50ZXJmYWNlcy9jb2xsZWN0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb2xsZWN0aW9ufSBmcm9tICcuLi9jb2xsZWN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uUmVxdWVzdCB7XG4gICAgcGFnZU51bWJlcjogbnVtYmVyO1xuICAgIHBhZ2VTaXplOiBudW1iZXI7XG4gICAgcXVlcnk6IHN0cmluZyB8IG51bGw7XG4gICAgcXVlcnlGaWVsZHM6IHN0cmluZ1tdO1xuICAgIHNvcnQ6IENvbGxlY3Rpb25SZXF1ZXN0U29ydCB8IENvbGxlY3Rpb25SZXF1ZXN0U29ydFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25SZXF1ZXN0U29ydDxUID0gc3RyaW5nPiB7XG4gICAgbmFtZTogVDtcbiAgICBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25EYXRhPFQ+IHtcbiAgICBwYWdlTnVtYmVyOiBudW1iZXI7XG4gICAgcGFnZVNpemU6IG51bWJlcjtcbiAgICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gICAgdG90YWxFbnRyaWVzOiBudW1iZXI7XG4gICAgZGF0YTogVFtdO1xuICAgIHJhdz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uQXBpUmVzcG9uc2U8VD4ge1xuICAgIHBhZ2VfbnVtYmVyOiBudW1iZXI7XG4gICAgcGFnZV9zaXplOiBudW1iZXI7XG4gICAgdG90YWxfcGFnZXM6IG51bWJlcjtcbiAgICB0b3RhbF9lbnRyaWVzOiBudW1iZXI7XG4gICAgZGF0YTogVFtdO1xuXG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvbkFwaVBhcmFtcyA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25Db250ZXh0PFQ+IHtcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+O1xufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { combineLatest, isObservable, of } from 'rxjs';
2
2
  import { CollectionProvider } from './collection.provider';
3
- import { map, switchMap } from 'rxjs/operators';
3
+ import { map, switchMap, tap } from 'rxjs/operators';
4
4
  export class ApiCollectionProvider extends CollectionProvider {
5
5
  endpoint;
6
6
  httpClient;
@@ -20,17 +20,26 @@ export class ApiCollectionProvider extends CollectionProvider {
20
20
  const params = isObservable(value) ? value : of(value);
21
21
  this.extraObjectParams.push(params);
22
22
  }
23
- transform(request) {
23
+ transform(request, context) {
24
24
  const endpoint$ = isObservable(this.endpoint) ? this.endpoint : of(this.endpoint);
25
25
  const params = this.getBackendFormat(request);
26
26
  const extraParams$ = this.getExtraParams(this.extraParams);
27
27
  const extraObjectParams$ = this.getExtraObjectParams(this.extraObjectParams);
28
- return combineLatest([endpoint$, extraParams$, extraObjectParams$]).pipe(switchMap(([endpoint, extraParams, extraObjectParams]) => {
29
- return this.httpClient.get(endpoint, {
30
- params: { ...params, ...extraParams, ...extraObjectParams }
31
- });
28
+ return combineLatest([endpoint$, extraParams$, extraObjectParams$]).pipe(tap(() => context.collection.loading$.next(true)), switchMap(([endpoint, extraParams, extraObjectParams]) => {
29
+ const validatedParams = this.validateParams({ ...params, ...extraParams, ...extraObjectParams }, context);
30
+ return this.httpClient.get(endpoint, { params: validatedParams });
32
31
  }), map(response => this.formatToCollectionData(response)));
33
32
  }
33
+ validateParams(request, context) {
34
+ if (!this.deepCompare(request, this.cachedRequestParams)) {
35
+ if (request?.['page'] && request?.['page'] === this.cachedRequestParams?.['page']) {
36
+ context.collection.pageNumberControl?.setValue(1);
37
+ request['page'] = context.collection.pageNumberControl?.value;
38
+ }
39
+ }
40
+ this.cachedRequestParams = { ...request };
41
+ return request;
42
+ }
34
43
  getExtraParams(params) {
35
44
  const keys = Object.keys(params ?? {});
36
45
  if (keys?.length <= 0) {
@@ -91,4 +100,4 @@ export class ApiCollectionProvider extends CollectionProvider {
91
100
  return params;
92
101
  }
93
102
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbGxlY3Rpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbGxlY3Rpb25zL3NyYy9saWIvcHJvdmlkZXJzL2FwaS1jb2xsZWN0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxxQkFBeUIsU0FBUSxrQkFBcUI7SUFNaEM7SUFDQTtJQUwvQixTQUFTO0lBQ0MsV0FBVyxHQUFvRCxFQUFFLENBQUM7SUFDbEUsaUJBQWlCLEdBQXNELEVBQUUsQ0FBQztJQUVwRixZQUErQixRQUFxQyxFQUNyQyxVQUFzQjtRQUNqRCxLQUFLLEVBQUUsQ0FBQztRQUZtQixhQUFRLEdBQVIsUUFBUSxDQUE2QjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBRXJELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWSxFQUFFLEtBQTREO1FBQzdFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQTRGO1FBQ3JHLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFB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TSxDQUFDO0lBQ2xCLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sbGVjdGlvbkFwaVJlc3BvbnNlLCBDb2xsZWN0aW9uRGF0YSwgQ29sbGVjdGlvbkFwaVBhcmFtcywgQ29sbGVjdGlvblJlcXVlc3R9IGZyb20gJy4uL2ludGVyZmFjZXMvY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29sbGVjdGlvblByb3ZpZGVyfSBmcm9tICcuL2NvbGxlY3Rpb24ucHJvdmlkZXInO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBBcGlDb2xsZWN0aW9uUHJvdmlkZXI8VD4gZXh0ZW5kcyBDb2xsZWN0aW9uUHJvdmlkZXI8VD4ge1xuXG4gICAgLy8gU3RhdGUuXG4gICAgcHJvdGVjdGVkIGV4dHJhUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPENvbGxlY3Rpb25BcGlQYXJhbXM+PiA9IHt9O1xuICAgIHByb3RlY3RlZCBleHRyYU9iamVjdFBhcmFtczogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQXBpUGFyYW1zPj5bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGVuZHBvaW50OiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBhcHBlbmQobmFtZTogc3RyaW5nLCB2YWx1ZTogQ29sbGVjdGlvbkFwaVBhcmFtcyB8IE9ic2VydmFibGU8Q29sbGVjdGlvbkFwaVBhcmFtcz4pIHtcbiAgICAgICAgdGhpcy5leHRyYVBhcmFtc1tuYW1lXSA9IGlzT2JzZXJ2YWJsZSh2YWx1ZSkgPyB2YWx1ZSA6IG9mKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYXBwZW5kT2JqZWN0KHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQXBpUGFyYW1zPiB8IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgQ29sbGVjdGlvbkFwaVBhcmFtcz4+KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGlzT2JzZXJ2YWJsZSh2YWx1ZSkgPyB2YWx1ZSA6IG9mKHZhbHVlKTtcbiAgICAgICAgdGhpcy5leHRyYU9iamVjdFBhcmFtcy5wdXNoKHBhcmFtcyk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtKHJlcXVlc3Q6IENvbGxlY3Rpb25SZXF1ZXN0KSB7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50JCA9IGlzT2JzZXJ2YWJsZSh0aGlzLmVuZHBvaW50KSA/IHRoaXMuZW5kcG9pbnQgOiBvZih0aGlzLmVuZHBvaW50KTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRCYWNrZW5kRm9ybWF0KHJlcXVlc3QpO1xuICAgICAgICBjb25zdCBleHRyYVBhcmFtcyQgPSB0aGlzLmdldEV4dHJhUGFyYW1zKHRoaXMuZXh0cmFQYXJhbXMpO1xuICAgICAgICBjb25zdCBleHRyYU9iamVjdFBhcmFtcyQgPSB0aGlzLmdldEV4dHJhT2JqZWN0UGFyYW1zKHRoaXMuZXh0cmFPYmplY3RQYXJhbXMpO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtlbmRwb2ludCQsIGV4dHJhUGFyYW1zJCwgZXh0cmFPYmplY3RQYXJhbXMkXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW2VuZHBvaW50LCBleHRyYVBhcmFtcywgZXh0cmFPYmplY3RQYXJhbXNdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8Q29sbGVjdGlvbkFwaVJlc3BvbnNlPFQ+IHwgVFtdPihlbmRwb2ludCwge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsuLi5wYXJhbXMsIC4uLmV4dHJhUGFyYW1zLCAuLi5leHRyYU9iamVjdFBhcmFtc31cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHRoaXMuZm9ybWF0VG9Db2xsZWN0aW9uRGF0YShyZXNwb25zZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEV4dHJhUGFyYW1zKHBhcmFtczogUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTxDb2xsZWN0aW9uQXBpUGFyYW1zPj4pIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHBhcmFtcyA/PyB7fSk7XG4gICAgICAgIGlmIChrZXlzPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9ic2VydmFibGVzJCA9IGtleXMubWFwKGtleSA9PiBwYXJhbXM/LltrZXldKTtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qob2JzZXJ2YWJsZXMkKS5waXBlKFxuICAgICAgICAgICAgbWFwKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXM/LltpbmRleF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7Li4ucHJldmlvdXMsIFtrZXldOiBjdXJyZW50fTtcbiAgICAgICAgICAgICAgICB9LCB7fSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRFeHRyYU9iamVjdFBhcmFtcyhwYXJhbXMkOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25BcGlQYXJhbXM+PltdKSB7XG4gICAgICAgIGlmIChwYXJhbXMkPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChwYXJhbXMkKS5waXBlKFxuICAgICAgICAgICAgbWFwKGRhdGEgPT4gKGRhdGEgPz8gW10pLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+ICh7Li4ucHJldmlvdXMsIC4uLihjdXJyZW50ID8/IHt9KX0pLCB7fSkpLFxuICAgICAgICAgICAgbWFwKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhID8/IHt9KS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uW2N1cnJlbnRdID8/IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gey4uLnByZXZpb3VzLCBbY3VycmVudF06IHZhbHVlfTtcbiAgICAgICAgICAgICAgICB9LCB7fSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb3JtYXRUb0NvbGxlY3Rpb25EYXRhKHJlc3BvbnNlOiBDb2xsZWN0aW9uQXBpUmVzcG9uc2U8VD4gfCBUW10pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRBcnJheVRvQ29sbGVjdGlvbkRhdGEocmVzcG9uc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDxDb2xsZWN0aW9uRGF0YTxUPj57XG4gICAgICAgICAgICBwYWdlU2l6ZTogcmVzcG9uc2U/LnBhZ2Vfc2l6ZSxcbiAgICAgICAgICAgIHBhZ2VOdW1iZXI6IHJlc3BvbnNlPy5wYWdlX251bWJlcixcbiAgICAgICAgICAgIHRvdGFsUGFnZXM6IHJlc3BvbnNlPy50b3RhbF9wYWdlcyxcbiAgICAgICAgICAgIHRvdGFsRW50cmllczogcmVzcG9uc2U/LnRvdGFsX2VudHJpZXMsXG4gICAgICAgICAgICBkYXRhOiByZXNwb25zZT8uZGF0YSxcbiAgICAgICAgICAgIHJhdzogcmVzcG9uc2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0QmFja2VuZEZvcm1hdChyZXF1ZXN0OiBDb2xsZWN0aW9uUmVxdWVzdCkge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7fTtcblxuICAgICAgICBwYXJhbXNbJ3BhZ2UnXSA9IHJlcXVlc3Q/LnBhZ2VOdW1iZXIgPz8gMTtcbiAgICAgICAgcGFyYW1zWydwYWdlX3NpemUnXSA9IHJlcXVlc3Q/LnBhZ2VTaXplID8/IDI1O1xuXG4gICAgICAgIGlmIChyZXF1ZXN0Py5zb3J0KSB7XG4gICAgICAgICAgICBjb25zdCBzb3J0ID0gQXJyYXkuaXNBcnJheShyZXF1ZXN0Py5zb3J0KSA/IHJlcXVlc3Q/LnNvcnQgOiBbcmVxdWVzdD8uc29ydF07XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFNvcnQgPSBzb3J0Py5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0/Lm5hbWUgJiYgISFpdGVtPy5kaXJlY3Rpb24pO1xuXG4gICAgICAgICAgICBwYXJhbXNbJ3NvcnQnXSA9IGZpbHRlcmVkU29ydD8ubWFwKGl0ZW0gPT4gaXRlbT8ubmFtZSk/LmpvaW4oJywnKTtcbiAgICAgICAgICAgIHBhcmFtc1snc29ydF9kaXJlY3Rpb24nXSA9IGZpbHRlcmVkU29ydD8ubWFwKGl0ZW0gPT4gaXRlbT8uZGlyZWN0aW9uKT8uam9pbignLCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlcXVlc3Q/LnF1ZXJ5ICYmIHJlcXVlc3Q/LnF1ZXJ5Py5sZW5ndGggPiAwICYmIHJlcXVlc3Q/LnF1ZXJ5RmllbGRzICYmIHJlcXVlc3Q/LnF1ZXJ5RmllbGRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYXJhbXNbJ3F1ZXJ5J10gPSByZXF1ZXN0Py5xdWVyeTtcbiAgICAgICAgICAgIHBhcmFtc1sncXVlcnlfZmllbGRzJ10gPSByZXF1ZXN0Py5xdWVyeUZpZWxkcz8uam9pbignLCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbn1cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbGxlY3Rpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2NvbGxlY3Rpb25zL3NyYy9saWIvcHJvdmlkZXJzL2FwaS1jb2xsZWN0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8scUJBQXlCLFNBQVEsa0JBQXFCO0lBTWhDO0lBQ0E7SUFML0IsU0FBUztJQUNDLFdBQVcsR0FBb0QsRUFBRSxDQUFDO0lBQ2xFLGlCQUFpQixHQUFzRCxFQUFFLENBQUM7SUFFcEYsWUFBK0IsUUFBcUMsRUFDckMsVUFBc0I7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFGbUIsYUFBUSxHQUFSLFFBQVEsQ0FBNkI7UUFDckMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUVyRCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxLQUE0RDtRQUM3RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUE0RjtRQUNyRyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFD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SSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFN0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFlBQVksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxLQUFLLElBQUksT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sRUFBRSxXQUFXLElBQUksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0csTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7WUFDakMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbGxlY3Rpb25BcGlSZXNwb25zZSwgQ29sbGVjdGlvbkRhdGEsIENvbGxlY3Rpb25BcGlQYXJhbXMsIENvbGxlY3Rpb25SZXF1ZXN0LCBDb2xsZWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb2xsZWN0aW9uUHJvdmlkZXJ9IGZyb20gJy4vY29sbGVjdGlvbi5wcm92aWRlcic7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgQXBpQ29sbGVjdGlvblByb3ZpZGVyPFQ+IGV4dGVuZHMgQ29sbGVjdGlvblByb3ZpZGVyPFQ+IHtcblxuICAgIC8vIFN0YXRlLlxuICAgIHByb3RlY3RlZCBleHRyYVBhcmFtczogUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTxDb2xsZWN0aW9uQXBpUGFyYW1zPj4gPSB7fTtcbiAgICBwcm90ZWN0ZWQgZXh0cmFPYmplY3RQYXJhbXM6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgQ29sbGVjdGlvbkFwaVBhcmFtcz4+W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBlbmRwb2ludDogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgYXBwZW5kKG5hbWU6IHN0cmluZywgdmFsdWU6IENvbGxlY3Rpb25BcGlQYXJhbXMgfCBPYnNlcnZhYmxlPENvbGxlY3Rpb25BcGlQYXJhbXM+KSB7XG4gICAgICAgIHRoaXMuZXh0cmFQYXJhbXNbbmFtZV0gPSBpc09ic2VydmFibGUodmFsdWUpID8gdmFsdWUgOiBvZih2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGFwcGVuZE9iamVjdCh2YWx1ZTogUmVjb3JkPHN0cmluZywgQ29sbGVjdGlvbkFwaVBhcmFtcz4gfCBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25BcGlQYXJhbXM+Pikge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBpc09ic2VydmFibGUodmFsdWUpID8gdmFsdWUgOiBvZih2YWx1ZSk7XG4gICAgICAgIHRoaXMuZXh0cmFPYmplY3RQYXJhbXMucHVzaChwYXJhbXMpO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybShyZXF1ZXN0OiBDb2xsZWN0aW9uUmVxdWVzdCwgY29udGV4dDogQ29sbGVjdGlvbkNvbnRleHQ8VD4pIHtcbiAgICAgICAgY29uc3QgZW5kcG9pbnQkID0gaXNPYnNlcnZhYmxlKHRoaXMuZW5kcG9pbnQpID8gdGhpcy5lbmRwb2ludCA6IG9mKHRoaXMuZW5kcG9pbnQpO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldEJhY2tlbmRGb3JtYXQocmVxdWVzdCk7XG4gICAgICAgIGNvbnN0IGV4dHJhUGFyYW1zJCA9IHRoaXMuZ2V0RXh0cmFQYXJhbXModGhpcy5leHRyYVBhcmFtcyk7XG4gICAgICAgIGNvbnN0IGV4dHJhT2JqZWN0UGFyYW1zJCA9IHRoaXMuZ2V0RXh0cmFPYmplY3RQYXJhbXModGhpcy5leHRyYU9iamVjdFBhcmFtcyk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW2VuZHBvaW50JCwgZXh0cmFQYXJhbXMkLCBleHRyYU9iamVjdFBhcmFtcyRdKS5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IGNvbnRleHQuY29sbGVjdGlvbi5sb2FkaW5nJC5uZXh0KHRydWUpKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW2VuZHBvaW50LCBleHRyYVBhcmFtcywgZXh0cmFPYmplY3RQYXJhbXNdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVkUGFyYW1zID0gdGhpcy52YWxpZGF0ZVBhcmFtcyh7Li4ucGFyYW1zLCAuLi5leHRyYVBhcmFtcywgLi4uZXh0cmFPYmplY3RQYXJhbXN9LCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxDb2xsZWN0aW9uQXBpUmVzcG9uc2U8VD4gfCBUW10+KGVuZHBvaW50LCB7cGFyYW1zOiB2YWxpZGF0ZWRQYXJhbXN9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHRoaXMuZm9ybWF0VG9Db2xsZWN0aW9uRGF0YShyZXNwb25zZSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlUGFyYW1zKHJlcXVlc3Q6IFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25BcGlQYXJhbXM+LCBjb250ZXh0OiBDb2xsZWN0aW9uQ29udGV4dDxUPikge1xuICAgICAgICBpZiAoIXRoaXMuZGVlcENvbXBhcmUocmVxdWVzdCwgdGhpcy5jYWNoZWRSZXF1ZXN0UGFyYW1zKSkge1xuICAgICAgICAgICAgaWYgKHJlcXVlc3Q/LlsncGFnZSddICYmIHJlcXVlc3Q/LlsncGFnZSddID09PSB0aGlzLmNhY2hlZFJlcXVlc3RQYXJhbXM/LlsncGFnZSddKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5jb2xsZWN0aW9uLnBhZ2VOdW1iZXJDb250cm9sPy5zZXRWYWx1ZSgxKTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0WydwYWdlJ10gPSBjb250ZXh0LmNvbGxlY3Rpb24ucGFnZU51bWJlckNvbnRyb2w/LnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWNoZWRSZXF1ZXN0UGFyYW1zID0gey4uLnJlcXVlc3R9O1xuICAgICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RXh0cmFQYXJhbXMocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPENvbGxlY3Rpb25BcGlQYXJhbXM+Pikge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocGFyYW1zID8/IHt9KTtcbiAgICAgICAgaWYgKGtleXM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXMkID0ga2V5cy5tYXAoa2V5ID0+IHBhcmFtcz8uW2tleV0pO1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChvYnNlcnZhYmxlcyQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEucmVkdWNlKChwcmV2aW91cywgY3VycmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0ga2V5cz8uW2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsuLi5wcmV2aW91cywgW2tleV06IGN1cnJlbnR9O1xuICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEV4dHJhT2JqZWN0UGFyYW1zKHBhcmFtcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgQ29sbGVjdGlvbkFwaVBhcmFtcz4+W10pIHtcbiAgICAgICAgaWYgKHBhcmFtcyQ/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHBhcmFtcyQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiAoZGF0YSA/PyBbXSkucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gKHsuLi5wcmV2aW91cywgLi4uKGN1cnJlbnQgPz8ge30pfSksIHt9KSksXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEgPz8ge30pLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5bY3VycmVudF0gPz8gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7Li4ucHJldmlvdXMsIFtjdXJyZW50XTogdmFsdWV9O1xuICAgICAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZvcm1hdFRvQ29sbGVjdGlvbkRhdGEocmVzcG9uc2U6IENvbGxlY3Rpb25BcGlSZXNwb25zZTxUPiB8IFRbXSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEFycmF5VG9Db2xsZWN0aW9uRGF0YShyZXNwb25zZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gPENvbGxlY3Rpb25EYXRhPFQ+PntcbiAgICAgICAgICAgIHBhZ2VTaXplOiByZXNwb25zZT8ucGFnZV9zaXplLFxuICAgICAgICAgICAgcGFnZU51bWJlcjogcmVzcG9uc2U/LnBhZ2VfbnVtYmVyLFxuICAgICAgICAgICAgdG90YWxQYWdlczogcmVzcG9uc2U/LnRvdGFsX3BhZ2VzLFxuICAgICAgICAgICAgdG90YWxFbnRyaWVzOiByZXNwb25zZT8udG90YWxfZW50cmllcyxcbiAgICAgICAgICAgIGRhdGE6IHJlc3BvbnNlPy5kYXRhLFxuICAgICAgICAgICAgcmF3OiByZXNwb25zZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRCYWNrZW5kRm9ybWF0KHJlcXVlc3Q6IENvbGxlY3Rpb25SZXF1ZXN0KSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuXG4gICAgICAgIHBhcmFtc1sncGFnZSddID0gcmVxdWVzdD8ucGFnZU51bWJlciA/PyAxO1xuICAgICAgICBwYXJhbXNbJ3BhZ2Vfc2l6ZSddID0gcmVxdWVzdD8ucGFnZVNpemUgPz8gMjU7XG5cbiAgICAgICAgaWYgKHJlcXVlc3Q/LnNvcnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBBcnJheS5pc0FycmF5KHJlcXVlc3Q/LnNvcnQpID8gcmVxdWVzdD8uc29ydCA6IFtyZXF1ZXN0Py5zb3J0XTtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkU29ydCA9IHNvcnQ/LmZpbHRlcihpdGVtID0+ICEhaXRlbT8ubmFtZSAmJiAhIWl0ZW0/LmRpcmVjdGlvbik7XG5cbiAgICAgICAgICAgIHBhcmFtc1snc29ydCddID0gZmlsdGVyZWRTb3J0Py5tYXAoaXRlbSA9PiBpdGVtPy5uYW1lKT8uam9pbignLCcpO1xuICAgICAgICAgICAgcGFyYW1zWydzb3J0X2RpcmVjdGlvbiddID0gZmlsdGVyZWRTb3J0Py5tYXAoaXRlbSA9PiBpdGVtPy5kaXJlY3Rpb24pPy5qb2luKCcsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxdWVzdD8ucXVlcnkgJiYgcmVxdWVzdD8ucXVlcnk/Lmxlbmd0aCA+IDAgJiYgcmVxdWVzdD8ucXVlcnlGaWVsZHMgJiYgcmVxdWVzdD8ucXVlcnlGaWVsZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHBhcmFtc1sncXVlcnknXSA9IHJlcXVlc3Q/LnF1ZXJ5O1xuICAgICAgICAgICAgcGFyYW1zWydxdWVyeV9maWVsZHMnXSA9IHJlcXVlc3Q/LnF1ZXJ5RmllbGRzPy5qb2luKCcsJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxufVxuIl19
@@ -1,4 +1,8 @@
1
1
  export class CollectionProvider {
2
+ cachedRequestParams = null;
3
+ validateParams(request, _context) {
4
+ return request;
5
+ }
2
6
  formatArrayToCollectionData(items) {
3
7
  const count = items?.length ?? 1;
4
8
  return {
@@ -9,5 +13,27 @@ export class CollectionProvider {
9
13
  data: items
10
14
  };
11
15
  }
16
+ deepCompare(value1, value2) {
17
+ if (value1 === value2) {
18
+ return true;
19
+ }
20
+ if (typeof value1 !== 'object' || typeof value2 !== 'object' || value1 === null || value2 === null) {
21
+ return false;
22
+ }
23
+ const keys1 = Object.keys(value1);
24
+ const keys2 = Object.keys(value2);
25
+ if (keys1.length !== keys2.length) {
26
+ return false;
27
+ }
28
+ for (const key of keys1) {
29
+ if (!keys2.includes(key)) {
30
+ return false;
31
+ }
32
+ if (!this.deepCompare(value1[key], value2[key])) {
33
+ return false;
34
+ }
35
+ }
36
+ return true;
37
+ }
12
38
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9wcm92aWRlcnMvY29sbGVjdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQWdCLGtCQUFrQjtJQUkxQiwyQkFBMkIsQ0FBQyxLQUFVO1FBQzVDLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE9BQTBCO1lBQ3RCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLENBQUM7WUFDYixVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksRUFBRSxLQUFLO1NBQ2QsQ0FBQztJQUNOLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sbGVjdGlvbkRhdGEsIENvbGxlY3Rpb25SZXF1ZXN0fSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb2xsZWN0aW9uUHJvdmlkZXI8VD4ge1xuXG4gICAgYWJzdHJhY3QgdHJhbnNmb3JtKHJlcXVlc3Q6IENvbGxlY3Rpb25SZXF1ZXN0KTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uRGF0YTxUPj47XG5cbiAgICBwcm90ZWN0ZWQgZm9ybWF0QXJyYXlUb0NvbGxlY3Rpb25EYXRhKGl0ZW1zOiBUW10pIHtcbiAgICAgICAgY29uc3QgY291bnQgPSBpdGVtcz8ubGVuZ3RoID8/IDE7XG4gICAgICAgIHJldHVybiA8Q29sbGVjdGlvbkRhdGE8VD4+e1xuICAgICAgICAgICAgcGFnZVNpemU6IGNvdW50LFxuICAgICAgICAgICAgdG90YWxFbnRyaWVzOiBjb3VudCxcbiAgICAgICAgICAgIHBhZ2VOdW1iZXI6IDEsXG4gICAgICAgICAgICB0b3RhbFBhZ2VzOiAxLFxuICAgICAgICAgICAgZGF0YTogaXRlbXNcbiAgICAgICAgfTtcbiAgICB9XG5cbn1cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vY29sbGVjdGlvbnMvc3JjL2xpYi9wcm92aWRlcnMvY29sbGVjdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQWdCLGtCQUFrQjtJQUUxQixtQkFBbUIsR0FBK0MsSUFBSSxDQUFDO0lBSXZFLGNBQWMsQ0FBQyxPQUE0QyxFQUFFLFFBQThCO1FBQ2pHLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFUywyQkFBMkIsQ0FBQyxLQUFVO1FBQzVDLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE9BQTBCO1lBQ3RCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLENBQUM7WUFDYixVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksRUFBRSxLQUFLO1NBQ2QsQ0FBQztJQUNOLENBQUM7SUFFUyxXQUFXLENBQUMsTUFBZSxFQUFFLE1BQWU7UUFDbEQsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNqRyxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxPQUFPLEtBQUssQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sbGVjdGlvbkFwaVBhcmFtcywgQ29sbGVjdGlvbkNvbnRleHQsIENvbGxlY3Rpb25EYXRhLCBDb2xsZWN0aW9uUmVxdWVzdH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29sbGVjdGlvblByb3ZpZGVyPFQ+IHtcblxuICAgIHByb3RlY3RlZCBjYWNoZWRSZXF1ZXN0UGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQXBpUGFyYW1zPiB8IG51bGwgPSBudWxsO1xuXG4gICAgYWJzdHJhY3QgdHJhbnNmb3JtKHJlcXVlc3Q6IENvbGxlY3Rpb25SZXF1ZXN0LCBjb250ZXh0OiBDb2xsZWN0aW9uQ29udGV4dDxUPik6IE9ic2VydmFibGU8Q29sbGVjdGlvbkRhdGE8VD4+O1xuXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlUGFyYW1zKHJlcXVlc3Q6IFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25BcGlQYXJhbXM+LCBfY29udGV4dDogQ29sbGVjdGlvbkNvbnRleHQ8VD4pIHtcbiAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZvcm1hdEFycmF5VG9Db2xsZWN0aW9uRGF0YShpdGVtczogVFtdKSB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gaXRlbXM/Lmxlbmd0aCA/PyAxO1xuICAgICAgICByZXR1cm4gPENvbGxlY3Rpb25EYXRhPFQ+PntcbiAgICAgICAgICAgIHBhZ2VTaXplOiBjb3VudCxcbiAgICAgICAgICAgIHRvdGFsRW50cmllczogY291bnQsXG4gICAgICAgICAgICBwYWdlTnVtYmVyOiAxLFxuICAgICAgICAgICAgdG90YWxQYWdlczogMSxcbiAgICAgICAgICAgIGRhdGE6IGl0ZW1zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlZXBDb21wYXJlKHZhbHVlMTogdW5rbm93biwgdmFsdWUyOiB1bmtub3duKSB7XG4gICAgICAgIGlmICh2YWx1ZTEgPT09IHZhbHVlMikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlMSAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIHZhbHVlMiAhPT0gJ29iamVjdCcgfHwgdmFsdWUxID09PSBudWxsIHx8IHZhbHVlMiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5czEgPSBPYmplY3Qua2V5cyh2YWx1ZTEpO1xuICAgICAgICBjb25zdCBrZXlzMiA9IE9iamVjdC5rZXlzKHZhbHVlMik7XG4gICAgICAgIGlmIChrZXlzMS5sZW5ndGggIT09IGtleXMyLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5czEpIHtcbiAgICAgICAgICAgIGlmICgha2V5czIuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5kZWVwQ29tcGFyZSh2YWx1ZTFba2V5XSwgdmFsdWUyW2tleV0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG59XG4iXX0=