@firestitch/list 18.0.39 → 18.0.41

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 (55) hide show
  1. package/app/classes/actions-controller.d.ts +1 -1
  2. package/app/classes/data-controller.d.ts +1 -1
  3. package/app/components/body/row/cell/cell.component.d.ts +6 -5
  4. package/app/components/body/row/row.component.d.ts +9 -10
  5. package/app/components/head/head.component.d.ts +2 -1
  6. package/app/models/row/_base-row.d.ts +30 -0
  7. package/app/models/row/child-row.d.ts +18 -7
  8. package/app/models/row/group-footer-row.d.ts +14 -7
  9. package/app/models/row/group-row.d.ts +21 -11
  10. package/app/models/row/simple-row.d.ts +8 -3
  11. package/app/models/row.d.ts +13 -33
  12. package/esm2022/app/classes/actions-controller.mjs +3 -3
  13. package/esm2022/app/classes/data-controller.mjs +25 -31
  14. package/esm2022/app/classes/index.mjs +1 -1
  15. package/esm2022/app/classes/list-controller.mjs +1 -4
  16. package/esm2022/app/classes/selection-controller.mjs +8 -7
  17. package/esm2022/app/components/body/row/actions/actions.component.mjs +1 -2
  18. package/esm2022/app/components/body/row/cell/cell.component.mjs +45 -39
  19. package/esm2022/app/components/body/row/inline-action/inline-action.component.mjs +1 -2
  20. package/esm2022/app/components/body/row/menu-action/menu-action.component.mjs +1 -2
  21. package/esm2022/app/components/body/row/row.component.mjs +54 -59
  22. package/esm2022/app/components/footer/footer-row/footer-cell/footer-cell.component.mjs +3 -3
  23. package/esm2022/app/components/footer/footer-row/footer-row.component.mjs +3 -3
  24. package/esm2022/app/components/head/head-cell/head-cell.component.mjs +1 -1
  25. package/esm2022/app/components/head/head.component.mjs +4 -3
  26. package/esm2022/app/components/list/list.component.mjs +3 -3
  27. package/esm2022/app/components/loader/loader.component.mjs +3 -3
  28. package/esm2022/app/directives/draggable-list/draggable-list.directive.mjs +5 -4
  29. package/esm2022/app/directives/draggable-row/draggable-row.directive.mjs +4 -4
  30. package/esm2022/app/directives/empty-state/empty-state.directive.mjs +1 -1
  31. package/esm2022/app/directives/footer/footer.directive.mjs +1 -1
  32. package/esm2022/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs +1 -1
  33. package/esm2022/app/directives/header/header.directive.mjs +1 -1
  34. package/esm2022/app/directives/heading/heading.directive.mjs +1 -1
  35. package/esm2022/app/directives/heading-container/heading-container.directive.mjs +1 -1
  36. package/esm2022/app/directives/index.mjs +1 -1
  37. package/esm2022/app/directives/subheading/subheading.directive.mjs +1 -1
  38. package/esm2022/app/enums/page-change-type.enum.mjs +1 -1
  39. package/esm2022/app/enums/pagination-strategy.enum.mjs +1 -1
  40. package/esm2022/app/enums/state.enum.mjs +1 -1
  41. package/esm2022/app/interfaces/cellconfig.interface.mjs +1 -1
  42. package/esm2022/app/interfaces/draggable-list.interface.mjs +1 -1
  43. package/esm2022/app/interfaces/external-params.interface.mjs +1 -1
  44. package/esm2022/app/interfaces/sorting-change-event.interface.mjs +1 -1
  45. package/esm2022/app/models/row/_base-row.mjs +43 -0
  46. package/esm2022/app/models/row/child-row.mjs +14 -10
  47. package/esm2022/app/models/row/group-footer-row.mjs +11 -7
  48. package/esm2022/app/models/row/group-row.mjs +16 -20
  49. package/esm2022/app/models/row/simple-row.mjs +5 -5
  50. package/esm2022/app/models/row.mjs +26 -82
  51. package/fesm2022/firestitch-list.mjs +529 -559
  52. package/fesm2022/firestitch-list.mjs.map +1 -1
  53. package/package.json +1 -1
  54. package/app/models/row/base-row.d.ts +0 -13
  55. package/esm2022/app/models/row/base-row.mjs +0 -25
@@ -1,5 +1,5 @@
1
- import { Observable } from 'rxjs';
2
1
  import { FilterComponent } from '@firestitch/filter';
2
+ import { Observable } from 'rxjs';
3
3
  import { FsListAction } from '../interfaces/listconfig.interface';
4
4
  export declare class ActionsController {
5
5
  private _filterRef;
@@ -54,7 +54,7 @@ export declare class DataController {
54
54
  * @param targetRow
55
55
  * @param trackBy
56
56
  */
57
- replaceData(targetRow: FsListAbstractRow, trackBy?: FsListTrackByTargetRowFn): boolean;
57
+ replaceData(targetRow: FsListAbstractRow, trackBy: FsListTrackByTargetRowFn): boolean;
58
58
  /**
59
59
  * Update data for specified row
60
60
  * @param rows
@@ -1,22 +1,23 @@
1
- import { DoCheck, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
1
+ import { OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
2
2
  import { Column } from '../../../../models/column.model';
3
+ import { Row } from '../../../../models';
3
4
  import * as i0 from "@angular/core";
4
- export declare class FsCellComponent implements OnInit, OnChanges, DoCheck, OnDestroy {
5
+ export declare class FsCellComponent implements OnInit, OnChanges, OnDestroy {
5
6
  isColl: boolean;
6
7
  role: string;
7
8
  column: Column;
8
- row: any;
9
9
  rowIndex: number;
10
+ row: import("@angular/core").InputSignal<Row>;
10
11
  cellContext: any;
11
12
  cellTemplate: TemplateRef<any>;
12
13
  private _destroy$;
14
+ constructor();
13
15
  ngOnInit(): void;
14
- ngDoCheck(): void;
15
16
  ngOnChanges(changes: SimpleChanges): void;
16
17
  ngOnDestroy(): void;
17
18
  private _initCellContext;
18
19
  private _initCellTemplate;
19
20
  private _listenGroupOpen;
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<FsCellComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<FsCellComponent, "[fs-cell]", never, { "column": { "alias": "column"; "required": false; }; "row": { "alias": "row"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; }, {}, never, never, true, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<FsCellComponent, "[fs-cell]", never, { "column": { "alias": "column"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "row": { "alias": "row"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
22
23
  }
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, KeyValueDiffers, OnDestroy, OnInit, Renderer2 } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, KeyValueDiffers, OnDestroy, OnInit, Renderer2 } from '@angular/core';
2
2
  import { MatCheckboxChange } from '@angular/material/checkbox';
3
3
  import { ReorderPosition, ReorderStrategy } from '../../../classes/reorder-controller';
4
4
  import { SelectionController } from '../../../classes/selection-controller';
@@ -7,14 +7,14 @@ import { Column } from '../../../models/column.model';
7
7
  import { Row } from '../../../models/row';
8
8
  import { RowAction } from '../../../models/row-action.model';
9
9
  import * as i0 from "@angular/core";
10
- export declare class FsRowComponent implements OnInit, DoCheck, OnDestroy {
10
+ export declare class FsRowComponent implements OnInit, DoCheck, AfterViewInit, OnDestroy {
11
11
  el: ElementRef;
12
12
  private _cdRef;
13
13
  private _differs;
14
14
  private _renderer;
15
15
  private _draggableList;
16
16
  role: string;
17
- row: Row;
17
+ row: import("@angular/core").InputSignal<Row>;
18
18
  rowActionsRaw: any[];
19
19
  groupActionsRaw: any[];
20
20
  hasRowActions: boolean;
@@ -30,7 +30,6 @@ export declare class FsRowComponent implements OnInit, DoCheck, OnDestroy {
30
30
  reorderPosition: ReorderPosition | null;
31
31
  reorderStrategy: ReorderStrategy | null;
32
32
  reorderMultiple: boolean;
33
- cellRefs: any;
34
33
  readonly ReorderPosition: typeof ReorderPosition;
35
34
  readonly ReorderStrategy: typeof ReorderStrategy;
36
35
  rowActions: RowAction[];
@@ -43,17 +42,17 @@ export declare class FsRowComponent implements OnInit, DoCheck, OnDestroy {
43
42
  private _eventListeners;
44
43
  private _destroy$;
45
44
  constructor(el: ElementRef, _cdRef: ChangeDetectorRef, _differs: KeyValueDiffers, _renderer: Renderer2, _draggableList: FsListDraggableListDirective);
46
- get isGroupRow(): boolean;
47
- get isGroupChildRow(): boolean;
48
- get isGroupFooterRow(): boolean;
49
45
  get isDragDisabled(): boolean;
50
46
  get isMultipleSelection(): boolean;
51
- get rowCssClass(): string;
52
- get dragCellVisible(): boolean;
47
+ rowCustomClass: import("@angular/core").Signal<string>;
53
48
  get leftDragDropEnabled(): boolean;
54
49
  get rightDragDropEnabled(): boolean;
55
50
  ngOnInit(): void;
56
51
  ngDoCheck(): void;
52
+ ngAfterViewInit(): void;
53
+ isGroupRow: import("@angular/core").Signal<boolean>;
54
+ isGroupFooterRow: import("@angular/core").Signal<boolean>;
55
+ dragCellVisible: import("@angular/core").Signal<boolean>;
57
56
  updateRowActions(): void;
58
57
  ngOnDestroy(): void;
59
58
  /**
@@ -81,5 +80,5 @@ export declare class FsRowComponent implements OnInit, DoCheck, OnDestroy {
81
80
  private _initSelection;
82
81
  private _filterActionsByCategories;
83
82
  static ɵfac: i0.ɵɵFactoryDeclaration<FsRowComponent, never>;
84
- static ɵcmp: i0.ɵɵComponentDeclaration<FsRowComponent, "[fs-list-row]", never, { "row": { "alias": "row"; "required": false; }; "rowActionsRaw": { "alias": "rowActionsRaw"; "required": false; }; "groupActionsRaw": { "alias": "groupActionsRaw"; "required": false; }; "hasRowActions": { "alias": "hasRowActions"; "required": false; }; "rowEvents": { "alias": "rowEvents"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "restoreMode": { "alias": "restoreMode"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "rowRemoved": { "alias": "rowRemoved"; "required": false; }; "activeFiltersCount": { "alias": "activeFiltersCount"; "required": false; }; "reorderEnabled": { "alias": "reorderEnabled"; "required": false; }; "reorderPosition": { "alias": "reorderPosition"; "required": false; }; "reorderStrategy": { "alias": "reorderStrategy"; "required": false; }; "reorderMultiple": { "alias": "reorderMultiple"; "required": false; }; }, {}, never, never, true, never>;
83
+ static ɵcmp: i0.ɵɵComponentDeclaration<FsRowComponent, "[fs-list-row]", never, { "row": { "alias": "row"; "required": false; "isSignal": true; }; "rowActionsRaw": { "alias": "rowActionsRaw"; "required": false; }; "groupActionsRaw": { "alias": "groupActionsRaw"; "required": false; }; "hasRowActions": { "alias": "hasRowActions"; "required": false; }; "rowEvents": { "alias": "rowEvents"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "restoreMode": { "alias": "restoreMode"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "selection": { "alias": "selection"; "required": false; }; "rowRemoved": { "alias": "rowRemoved"; "required": false; }; "activeFiltersCount": { "alias": "activeFiltersCount"; "required": false; }; "reorderEnabled": { "alias": "reorderEnabled"; "required": false; }; "reorderPosition": { "alias": "reorderPosition"; "required": false; }; "reorderStrategy": { "alias": "reorderStrategy"; "required": false; }; "reorderMultiple": { "alias": "reorderMultiple"; "required": false; }; }, {}, never, never, true, never>;
85
84
  }
@@ -34,8 +34,9 @@ export declare class FsHeadComponent implements OnInit, OnDestroy {
34
34
  * Track By for improve change detection
35
35
  *
36
36
  * @param index
37
+ * @param column
37
38
  */
38
- trackByFn(index: any): any;
39
+ trackByFn(index: number, column: Column): string | number;
39
40
  /**
40
41
  * Subscribe to sorting change
41
42
  */
@@ -0,0 +1,30 @@
1
+ import { Observable } from 'rxjs';
2
+ import { RowType } from '../../enums/row-type.enum';
3
+ import { FsListReorderData } from '../../interfaces';
4
+ export interface IBaseRow {
5
+ data: object;
6
+ index: number;
7
+ readyToSwap: boolean;
8
+ actionsUpdated$: Observable<void>;
9
+ updateActions(): void;
10
+ reorderData(): FsListReorderData;
11
+ destroy(): void;
12
+ }
13
+ export declare abstract class BaseRow<T = RowType> implements IBaseRow {
14
+ protected readonly _rowType: T;
15
+ private _index;
16
+ private _readyToSwap;
17
+ private _actionsUpdated$;
18
+ private _data;
19
+ constructor(data?: object);
20
+ get data(): object;
21
+ get type(): T;
22
+ get index(): number;
23
+ set index(value: number);
24
+ get readyToSwap(): boolean;
25
+ set readyToSwap(value: boolean);
26
+ get actionsUpdated$(): Observable<void>;
27
+ updateActions(): void;
28
+ reorderData(): FsListReorderData;
29
+ abstract destroy(): any;
30
+ }
@@ -1,12 +1,23 @@
1
- import { BaseRow } from './base-row';
2
- import { GroupRow } from './group-row';
1
+ import { BaseRow, IBaseRow } from './_base-row';
2
+ import { RowType } from '../../enums/row-type.enum';
3
+ import { IGroupRow } from './group-row';
3
4
  import { FsListReorderData } from '../../interfaces';
4
- export declare class ChildRow extends BaseRow {
5
+ export interface IBaseChildRow extends IBaseRow {
6
+ type: RowType.GroupChild | RowType.GroupFooter;
7
+ parent: IGroupRow;
5
8
  visible: boolean;
9
+ }
10
+ export interface IChildRow extends IBaseChildRow {
11
+ type: RowType.GroupChild;
12
+ }
13
+ export declare class ChildRow extends BaseRow<RowType.GroupChild> implements IChildRow {
14
+ protected readonly _rowType: RowType.GroupChild;
15
+ private _visible;
6
16
  private readonly _parent;
7
- constructor(data?: any, parent?: GroupRow);
8
- get parent(): GroupRow;
9
- get isChild(): boolean;
10
- getReorderData(): FsListReorderData;
17
+ constructor(data?: object, parent?: IGroupRow);
18
+ get visible(): boolean;
19
+ set visible(value: boolean);
20
+ get parent(): IGroupRow;
21
+ reorderData(): FsListReorderData;
11
22
  destroy(): void;
12
23
  }
@@ -1,10 +1,17 @@
1
- import { BaseRow } from './base-row';
2
- import { GroupRow } from './group-row';
3
- export declare class GroupFooterRow extends BaseRow {
4
- visible: boolean;
1
+ import { BaseRow } from './_base-row';
2
+ import { RowType } from '../../enums/row-type.enum';
3
+ import { IGroupRow } from './group-row';
4
+ import { IBaseChildRow } from './child-row';
5
+ export interface IGroupFooterRow extends IBaseChildRow {
6
+ type: RowType.GroupFooter;
7
+ }
8
+ export declare class GroupFooterRow extends BaseRow<RowType.GroupFooter> implements IGroupFooterRow {
9
+ protected readonly _rowType: RowType.GroupFooter;
10
+ private _visible;
5
11
  private readonly _parent;
6
- constructor(data?: any, parent?: GroupRow);
7
- get parent(): GroupRow;
8
- get isGroupFooter(): boolean;
12
+ constructor(data?: object, parent?: IGroupRow);
13
+ get visible(): boolean;
14
+ set visible(value: boolean);
15
+ get parent(): IGroupRow;
9
16
  destroy(): void;
10
17
  }
@@ -1,16 +1,26 @@
1
- import { BaseRow } from './base-row';
2
- import { ChildRow } from './child-row';
3
- import { GroupFooterRow } from './group-footer-row';
4
- export declare class GroupRow extends BaseRow {
5
- children: (ChildRow | GroupFooterRow)[];
1
+ import { Observable } from 'rxjs';
2
+ import { BaseRow, IBaseRow } from './_base-row';
3
+ import { RowType } from '../../enums/row-type.enum';
4
+ import { IGroupFooterRow } from './group-footer-row';
5
+ import { IChildRow } from './child-row';
6
+ export interface IGroupRow extends IBaseRow {
7
+ type: RowType.Group;
8
+ childrenData: unknown[];
9
+ expanded: boolean;
10
+ expanded$: Observable<boolean>;
11
+ toggleRowExpandStatus(): void;
12
+ children: (IChildRow | IGroupFooterRow)[];
13
+ }
14
+ export declare class GroupRow extends BaseRow<RowType.Group> implements IGroupRow {
15
+ protected readonly _rowType: RowType.Group;
16
+ private _children;
6
17
  private readonly _expanded;
7
- constructor(data?: any, initialExpand?: boolean);
8
- get childrenData(): any[];
9
- get isGroup(): boolean;
18
+ constructor(data?: object, initialExpand?: boolean);
19
+ get children(): (IChildRow | IGroupFooterRow)[];
20
+ get childrenData(): object[];
10
21
  get expanded(): boolean;
11
- get expanded$(): import("rxjs").Observable<boolean>;
12
- updateChildrenIndexes(): void;
13
- updateChildrenVisibility(): void;
22
+ get expanded$(): Observable<boolean>;
14
23
  toggleRowExpandStatus(): void;
15
24
  destroy(): void;
25
+ private _updateChildrenVisibility;
16
26
  }
@@ -1,5 +1,10 @@
1
- import { BaseRow } from './base-row';
2
- export declare class SimpleRow extends BaseRow {
3
- constructor(data?: any);
1
+ import { RowType } from '../../enums/row-type.enum';
2
+ import { BaseRow, IBaseRow } from './_base-row';
3
+ export interface ISimpleRow extends IBaseRow {
4
+ type: RowType.Simple;
5
+ }
6
+ export declare class SimpleRow extends BaseRow<RowType.Simple> implements ISimpleRow {
7
+ protected _rowType: RowType.Simple;
8
+ constructor(data?: object);
4
9
  destroy(): void;
5
10
  }
@@ -1,34 +1,14 @@
1
- import { Observable } from 'rxjs';
2
1
  import { RowType } from '../enums/row-type.enum';
3
- import { FsListReorderData } from '../interfaces';
4
- import { ChildRow } from './row/child-row';
5
- import { GroupFooterRow } from './row/group-footer-row';
6
- import { GroupRow } from './row/group-row';
7
- export declare class Row {
8
- private _row;
9
- private _actionsUpdate$;
10
- constructor(data?: any, rowType?: RowType, { parent, initialExpand }?: {
11
- parent?: GroupRow;
12
- initialExpand?: boolean;
13
- });
14
- get index(): number;
15
- get actionsUpdate$(): Observable<any>;
16
- actionsUpdate(): void;
17
- set index(value: number);
18
- get readyToSwap(): boolean;
19
- get visible(): boolean;
20
- set readyToSwap(value: boolean);
21
- get data(): any;
22
- get type(): RowType;
23
- get isGroup(): boolean;
24
- get isGroupChild(): boolean;
25
- get isGroupFooter(): boolean;
26
- get parent(): GroupRow;
27
- get children(): (ChildRow | GroupFooterRow)[];
28
- get expanded(): boolean;
29
- get expanded$(): Observable<boolean>;
30
- updateChildrenIndexes(): void;
31
- toggleRowExpandStatus(): void;
32
- getReorderData(): FsListReorderData;
33
- destroy(): void;
34
- }
2
+ import { IChildRow } from './row/child-row';
3
+ import { IGroupFooterRow } from './row/group-footer-row';
4
+ import { IGroupRow } from './row/group-row';
5
+ import { ISimpleRow } from './row/simple-row';
6
+ export type Row = ISimpleRow | IGroupRow | IGroupFooterRow | IChildRow;
7
+ export declare function isGroupRow(row: Row): row is IGroupRow;
8
+ export declare function isChildRow(row: Row): row is IChildRow;
9
+ export declare function isGroupFooterRow(row: Row): row is IGroupFooterRow;
10
+ export declare function isChildTypeRow(row: Row): row is IChildRow | IGroupFooterRow;
11
+ export declare function makeRowFactory(data: object, rowType: RowType, opts?: {
12
+ parent?: Row;
13
+ initialExpand?: boolean;
14
+ }): Row;
@@ -31,7 +31,7 @@ export class ActionsController {
31
31
  action.click = () => {
32
32
  this._filterRef.updateActions([this._doneAction]);
33
33
  this._filterRef.hideKeywordField();
34
- this._filterRef.hideFiltersBtn();
34
+ this._filterRef.hideFilters();
35
35
  actionClickFn(null);
36
36
  };
37
37
  this._reorderAction = action;
@@ -42,7 +42,7 @@ export class ActionsController {
42
42
  this._doneAction.click = () => {
43
43
  this._filterRef.updateActions(this._actions);
44
44
  this._filterRef.showKeywordField();
45
- this._filterRef.showFiltersBtn();
45
+ this._filterRef.showFilters();
46
46
  actionClickFn(null);
47
47
  };
48
48
  }
@@ -54,4 +54,4 @@ export class ActionsController {
54
54
  this._filterRef.updateDisabledState();
55
55
  }
56
56
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2FjdGlvbnMtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFFcEIsVUFBVSxDQUFrQjtJQUU1QixRQUFRLEdBQW1CLEVBQUUsQ0FBQztJQUM5QixjQUFjLENBQWU7SUFDN0IsV0FBVyxDQUFlO0lBRTFCLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXhDLGdCQUFlLENBQUM7SUFFaEIsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxZQUFZLENBQUMsR0FBb0I7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUF1QjtRQUN2QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBb0I7UUFDMUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUE7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsTUFBb0I7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDMUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUE7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZpbHRlckNvbXBvbmVudCB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBGc0xpc3RBY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2xpc3Rjb25maWcuaW50ZXJmYWNlJztcblxuXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NvbnRyb2xsZXIge1xuXG4gIHByaXZhdGUgX2ZpbHRlclJlZjogRmlsdGVyQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX2FjdGlvbnM6IEZzTGlzdEFjdGlvbltdID0gW107XG4gIHByaXZhdGUgX3Jlb3JkZXJBY3Rpb246IEZzTGlzdEFjdGlvbjtcbiAgcHJpdmF0ZSBfZG9uZUFjdGlvbjogRnNMaXN0QWN0aW9uO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIGdldCBkZXN0cm95JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVzdHJveSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGlvbnMoKTogRnNMaXN0QWN0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgc2V0RmlsdGVyUmVmKHJlZjogRmlsdGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fZmlsdGVyUmVmID0gcmVmO1xuICB9XG5cbiAgcHVibGljIHNldEFjdGlvbnMoYWN0aW9uczogRnNMaXN0QWN0aW9uW10pIHtcbiAgICB0aGlzLmNsZWFyQWN0aW9ucygpO1xuICAgIHRoaXMuX2FjdGlvbnMgPSBhY3Rpb25zO1xuXG4gICAgaWYgKHRoaXMuX3Jlb3JkZXJBY3Rpb24pIHtcbiAgICAgIHRoaXMuX2FjdGlvbnMudW5zaGlmdCh0aGlzLl9yZW9yZGVyQWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkUmVvcmRlckFjdGlvbihhY3Rpb246IEZzTGlzdEFjdGlvbikge1xuICAgIGNvbnN0IGFjdGlvbkNsaWNrRm4gPSBhY3Rpb24uY2xpY2s7XG4gICAgdGhpcy5fYWN0aW9ucy51bnNoaWZ0KGFjdGlvbik7XG5cbiAgICBhY3Rpb24uY2xpY2sgPSAoKSA9PiB7XG4gICAgICB0aGlzLl9maWx0ZXJSZWYudXBkYXRlQWN0aW9ucyhbdGhpcy5fZG9uZUFjdGlvbl0pO1xuICAgICAgdGhpcy5fZmlsdGVyUmVmLmhpZGVLZXl3b3JkRmllbGQoKTtcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi5oaWRlRmlsdGVyc0J0bigpO1xuICAgICAgYWN0aW9uQ2xpY2tGbihudWxsKTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZW9yZGVyQWN0aW9uID0gYWN0aW9uO1xuICB9XG5cbiAgcHVibGljIGFkZFJlb3JkZXJEb25lQWN0aW9uKGFjdGlvbjogRnNMaXN0QWN0aW9uKSB7XG4gICAgdGhpcy5fZG9uZUFjdGlvbiA9IGFjdGlvbjtcbiAgICBjb25zdCBhY3Rpb25DbGlja0ZuID0gYWN0aW9uLmNsaWNrO1xuXG4gICAgdGhpcy5fZG9uZUFjdGlvbi5jbGljayA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVBY3Rpb25zKHRoaXMuX2FjdGlvbnMpO1xuICAgICAgdGhpcy5fZmlsdGVyUmVmLnNob3dLZXl3b3JkRmllbGQoKTtcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi5zaG93RmlsdGVyc0J0bigpO1xuICAgICAgYWN0aW9uQ2xpY2tGbihudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXJBY3Rpb25zKCkge1xuICAgIHRoaXMuX2FjdGlvbnMgPSBbXTtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsdGVyUmVmLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcbiAgfVxufVxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2FjdGlvbnMtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFFcEIsVUFBVSxDQUFrQjtJQUU1QixRQUFRLEdBQW1CLEVBQUUsQ0FBQztJQUM5QixjQUFjLENBQWU7SUFDN0IsV0FBVyxDQUFlO0lBRTFCLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXhDLGdCQUFlLENBQUM7SUFFaEIsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxZQUFZLENBQUMsR0FBb0I7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDeEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUF1QjtRQUN2QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBb0I7UUFDMUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsTUFBb0I7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDMUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZzTGlzdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25zQ29udHJvbGxlciB7XG5cbiAgcHJpdmF0ZSBfZmlsdGVyUmVmOiBGaWx0ZXJDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBfYWN0aW9uczogRnNMaXN0QWN0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfcmVvcmRlckFjdGlvbjogRnNMaXN0QWN0aW9uO1xuICBwcml2YXRlIF9kb25lQWN0aW9uOiBGc0xpc3RBY3Rpb247XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgZ2V0IGRlc3Ryb3kkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9kZXN0cm95JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aW9ucygpOiBGc0xpc3RBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0FjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWx0ZXJSZWYocmVmOiBGaWx0ZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLl9maWx0ZXJSZWYgPSByZWY7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aW9ucyhhY3Rpb25zOiBGc0xpc3RBY3Rpb25bXSkge1xuICAgIHRoaXMuY2xlYXJBY3Rpb25zKCk7XG4gICAgdGhpcy5fYWN0aW9ucyA9IGFjdGlvbnM7XG5cbiAgICBpZiAodGhpcy5fcmVvcmRlckFjdGlvbikge1xuICAgICAgdGhpcy5fYWN0aW9ucy51bnNoaWZ0KHRoaXMuX3Jlb3JkZXJBY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRSZW9yZGVyQWN0aW9uKGFjdGlvbjogRnNMaXN0QWN0aW9uKSB7XG4gICAgY29uc3QgYWN0aW9uQ2xpY2tGbiA9IGFjdGlvbi5jbGljaztcbiAgICB0aGlzLl9hY3Rpb25zLnVuc2hpZnQoYWN0aW9uKTtcblxuICAgIGFjdGlvbi5jbGljayA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVBY3Rpb25zKFt0aGlzLl9kb25lQWN0aW9uXSk7XG4gICAgICB0aGlzLl9maWx0ZXJSZWYuaGlkZUtleXdvcmRGaWVsZCgpO1xuICAgICAgdGhpcy5fZmlsdGVyUmVmLmhpZGVGaWx0ZXJzKCk7XG4gICAgICBhY3Rpb25DbGlja0ZuKG51bGwpO1xuICAgIH07XG5cbiAgICB0aGlzLl9yZW9yZGVyQWN0aW9uID0gYWN0aW9uO1xuICB9XG5cbiAgcHVibGljIGFkZFJlb3JkZXJEb25lQWN0aW9uKGFjdGlvbjogRnNMaXN0QWN0aW9uKSB7XG4gICAgdGhpcy5fZG9uZUFjdGlvbiA9IGFjdGlvbjtcbiAgICBjb25zdCBhY3Rpb25DbGlja0ZuID0gYWN0aW9uLmNsaWNrO1xuXG4gICAgdGhpcy5fZG9uZUFjdGlvbi5jbGljayA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVBY3Rpb25zKHRoaXMuX2FjdGlvbnMpO1xuICAgICAgdGhpcy5fZmlsdGVyUmVmLnNob3dLZXl3b3JkRmllbGQoKTtcbiAgICAgIHRoaXMuX2ZpbHRlclJlZi5zaG93RmlsdGVycygpO1xuICAgICAgYWN0aW9uQ2xpY2tGbihudWxsKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWN0aW9ucygpIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gW107XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dChudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEaXNhYmxlZFN0YXRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlclJlZi51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XG4gIH1cbn1cbiJdfQ==