@firestitch/chip 8.1.9 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/app/components/chip/chip.component.d.ts +19 -9
  2. package/app/components/chips/chips.component.d.ts +12 -8
  3. package/app/fs-chip.module.d.ts +10 -1
  4. package/app/services/chips.service.d.ts +5 -2
  5. package/esm2020/app/components/chip/chip.component.mjs +221 -0
  6. package/esm2020/app/components/chips/chips.component.mjs +132 -0
  7. package/esm2020/app/fs-chip.module.mjs +44 -0
  8. package/esm2020/app/services/chips.service.mjs +47 -0
  9. package/esm2020/firestitch-chip.mjs +5 -0
  10. package/esm2020/public_api.mjs +7 -0
  11. package/fesm2015/firestitch-chip.mjs +442 -0
  12. package/fesm2015/firestitch-chip.mjs.map +1 -0
  13. package/fesm2020/firestitch-chip.mjs +440 -0
  14. package/fesm2020/firestitch-chip.mjs.map +1 -0
  15. package/firestitch-chip.d.ts +1 -3
  16. package/package.json +21 -12
  17. package/public_api.d.ts +2 -0
  18. package/styles.scss +0 -190
  19. package/bundles/firestitch-chip.umd.js +0 -837
  20. package/bundles/firestitch-chip.umd.js.map +0 -1
  21. package/bundles/firestitch-chip.umd.min.js +0 -2
  22. package/bundles/firestitch-chip.umd.min.js.map +0 -1
  23. package/esm2015/app/components/chip/chip.component.js +0 -336
  24. package/esm2015/app/components/chips/chips.component.js +0 -236
  25. package/esm2015/app/fs-chip.module.js +0 -39
  26. package/esm2015/app/services/chips.service.js +0 -93
  27. package/esm2015/firestitch-chip.js +0 -13
  28. package/esm2015/public_api.js +0 -10
  29. package/esm5/app/components/chip/chip.component.js +0 -392
  30. package/esm5/app/components/chips/chips.component.js +0 -287
  31. package/esm5/app/fs-chip.module.js +0 -46
  32. package/esm5/app/services/chips.service.js +0 -119
  33. package/esm5/firestitch-chip.js +0 -13
  34. package/esm5/public_api.js +0 -10
  35. package/fesm2015/firestitch-chip.js +0 -709
  36. package/fesm2015/firestitch-chip.js.map +0 -1
  37. package/fesm5/firestitch-chip.js +0 -845
  38. package/fesm5/firestitch-chip.js.map +0 -1
  39. package/firestitch-chip.metadata.json +0 -1
@@ -1,6 +1,7 @@
1
1
  import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { FsChipsService } from '../../services/chips.service';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class FsChipComponent implements OnInit, OnDestroy {
5
6
  private _cdRef;
6
7
  private _chips;
@@ -16,17 +17,24 @@ export declare class FsChipComponent implements OnInit, OnDestroy {
16
17
  classSmall: boolean;
17
18
  classTiny: boolean;
18
19
  classMicro: boolean;
19
- setSize: any;
20
+ set setSize(value: any);
20
21
  click(): void;
21
22
  value: any;
22
- backgroundColor: any;
23
- borderColor: any;
24
- color: any;
25
- outlined: any;
26
- removable: any;
27
- selectable: any;
28
- selected: any;
29
- image: any;
23
+ icon: any;
24
+ set backgroundColor(value: any);
25
+ set borderColor(value: any);
26
+ set color(value: string);
27
+ get color(): string;
28
+ set outlined(value: boolean);
29
+ get outlined(): boolean;
30
+ set removable(value: boolean);
31
+ get removable(): boolean;
32
+ set selectable(value: boolean);
33
+ get selectable(): boolean;
34
+ set selected(value: boolean);
35
+ get selected(): boolean;
36
+ set image(value: boolean);
37
+ get image(): boolean;
30
38
  selectedToggled: EventEmitter<any>;
31
39
  removed: EventEmitter<any>;
32
40
  $destroy: Subject<unknown>;
@@ -39,4 +47,6 @@ export declare class FsChipComponent implements OnInit, OnDestroy {
39
47
  remove(event: any): void;
40
48
  private isContrastYIQBlack;
41
49
  private updateStyles;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsChipComponent, [null, { optional: true; }]>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<FsChipComponent, "fs-chip", never, { "setSize": "size"; "value": "value"; "icon": "icon"; "backgroundColor": "backgroundColor"; "borderColor": "borderColor"; "color": "color"; "outlined": "outlined"; "removable": "removable"; "selectable": "selectable"; "selected": "selected"; "image": "image"; }, { "selectedToggled": "selectedToggled"; "removed": "removed"; }, never, ["*"]>;
42
52
  }
@@ -1,6 +1,7 @@
1
1
  import { ChangeDetectorRef, OnDestroy } from '@angular/core';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
3
  import { FsChipsService } from '../../services/chips.service';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class FsChipsComponent implements OnDestroy, ControlValueAccessor {
5
6
  private _cdRef;
6
7
  private _chipsService;
@@ -8,13 +9,14 @@ export declare class FsChipsComponent implements OnDestroy, ControlValueAccessor
8
9
  classHasChips: boolean;
9
10
  compare: any;
10
11
  multiple: boolean;
11
- onChange: any;
12
- onTouch: any;
12
+ onChange: (value: any) => void;
13
+ onTouch: (value: any) => void;
13
14
  private _value;
14
15
  private _destroy$;
15
16
  constructor(_cdRef: ChangeDetectorRef, _chipsService: FsChipsService);
16
- readonly chips: any[];
17
- value: any;
17
+ get chips(): any[];
18
+ set value(value: any[]);
19
+ get value(): any[];
18
20
  ngOnDestroy(): void;
19
21
  writeValue(value: any): void;
20
22
  registerOnChange(fn: any): void;
@@ -22,11 +24,13 @@ export declare class FsChipsComponent implements OnDestroy, ControlValueAccessor
22
24
  /**
23
25
  * Update ngModel value when selection changed
24
26
  */
25
- private subscribeToSelectionChange;
27
+ private _subscribeToSelectionChange;
26
28
  /**
27
29
  * Update selection if item was added or removed
28
30
  */
29
- private subscribeToItemsChange;
30
- private compareFn;
31
- private updateChips;
31
+ private _subscribeToItemsChange;
32
+ private _compareFn;
33
+ private _updateChips;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsChipsComponent, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<FsChipsComponent, "fs-chips", never, { "compare": "compare"; "multiple": "multiple"; }, {}, never, ["*"]>;
32
36
  }
@@ -1,4 +1,13 @@
1
1
  import { ModuleWithProviders } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./components/chips/chips.component";
4
+ import * as i2 from "./components/chip/chip.component";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@angular/material/icon";
7
+ import * as i5 from "@firestitch/label";
2
8
  export declare class FsChipModule {
3
- static forRoot(): ModuleWithProviders;
9
+ static forRoot(): ModuleWithProviders<FsChipModule>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsChipModule, never>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FsChipModule, [typeof i1.FsChipsComponent, typeof i2.FsChipComponent], [typeof i3.CommonModule, typeof i4.MatIconModule, typeof i5.FsLabelModule], [typeof i1.FsChipsComponent, typeof i2.FsChipComponent]>;
12
+ static ɵinj: i0.ɵɵInjectorDeclaration<FsChipModule>;
4
13
  }
@@ -1,14 +1,17 @@
1
1
  import { OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
2
3
  export declare class FsChipsService implements OnDestroy {
3
4
  chips: any[];
4
5
  private _chipItemsChanged$;
5
6
  private _selectionChanged$;
6
7
  private _destroy$;
7
8
  constructor();
8
- readonly selectionChanged$: import("rxjs").Observable<unknown>;
9
- readonly chipItemsChanged$: import("rxjs").Observable<unknown>;
9
+ get selectionChanged$(): import("rxjs").Observable<unknown>;
10
+ get chipItemsChanged$(): import("rxjs").Observable<unknown>;
10
11
  ngOnDestroy(): void;
11
12
  selectionChanged(selected: boolean, value: any): void;
12
13
  register(chip: any): void;
13
14
  destroy(chip: any): void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsChipsService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<FsChipsService>;
14
17
  }
@@ -0,0 +1,221 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Optional, Output, } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { FsChipsService } from '../../services/chips.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/chips.service";
6
+ import * as i2 from "@angular/material/icon";
7
+ import * as i3 from "@angular/common";
8
+ export class FsChipComponent {
9
+ constructor(_cdRef, _chips) {
10
+ this._cdRef = _cdRef;
11
+ this._chips = _chips;
12
+ this.fsChip = true;
13
+ this._outlined = false;
14
+ this._selectable = false;
15
+ this._image = false;
16
+ this._selected = false;
17
+ this._removable = false;
18
+ this.styleBackgroundColor = '';
19
+ this.styleColor = '';
20
+ this.styleBorderColor = '';
21
+ this.classSmall = false;
22
+ this.classTiny = false;
23
+ this.classMicro = false;
24
+ this.selectedToggled = new EventEmitter();
25
+ this.removed = new EventEmitter();
26
+ this.$destroy = new Subject();
27
+ this._backgroundColor = '';
28
+ this._color = '';
29
+ }
30
+ set setSize(value) {
31
+ this._size = value;
32
+ this.classSmall = value === 'small';
33
+ this.classTiny = value === 'tiny';
34
+ this.classMicro = value === 'micro';
35
+ }
36
+ ;
37
+ click() {
38
+ if (this.selectable) {
39
+ this.selected = !this.selected;
40
+ this.selectedToggled.emit({ value: this.value, selected: this.selected });
41
+ if (this._chips) {
42
+ this._chips.selectionChanged(this.selected, this.value);
43
+ }
44
+ }
45
+ }
46
+ set backgroundColor(value) {
47
+ this._backgroundColor = value;
48
+ this.updateStyles();
49
+ }
50
+ ;
51
+ set borderColor(value) {
52
+ this.styleBorderColor = value;
53
+ this.updateStyles();
54
+ }
55
+ set color(value) {
56
+ this._color = value;
57
+ this.updateStyles();
58
+ }
59
+ get color() {
60
+ return this._color;
61
+ }
62
+ set outlined(value) {
63
+ this._outlined = value;
64
+ this.updateStyles();
65
+ }
66
+ ;
67
+ get outlined() {
68
+ return this._outlined;
69
+ }
70
+ set removable(value) {
71
+ this._removable = value;
72
+ this._cdRef.markForCheck();
73
+ }
74
+ ;
75
+ get removable() {
76
+ return this._removable;
77
+ }
78
+ set selectable(value) {
79
+ this._selectable = value;
80
+ }
81
+ ;
82
+ get selectable() {
83
+ return this._selectable;
84
+ }
85
+ set selected(value) {
86
+ this._selected = value;
87
+ this._cdRef.markForCheck();
88
+ }
89
+ ;
90
+ get selected() {
91
+ return this._selected;
92
+ }
93
+ set image(value) {
94
+ this._image = value;
95
+ this._cdRef.markForCheck();
96
+ }
97
+ ;
98
+ get image() {
99
+ return this._image;
100
+ }
101
+ ngOnInit() {
102
+ if (this._chips) {
103
+ this._chips.register(this);
104
+ }
105
+ }
106
+ ngOnDestroy() {
107
+ if (this._chips) {
108
+ this._chips.destroy(this);
109
+ }
110
+ this.$destroy.next();
111
+ this.$destroy.complete();
112
+ }
113
+ remove(event) {
114
+ this.removed.next(event);
115
+ }
116
+ isContrastYIQBlack(hexcolor) {
117
+ if (!hexcolor) {
118
+ return true;
119
+ }
120
+ hexcolor = hexcolor.replace('#', '');
121
+ const r = parseInt(hexcolor.substr(0, 2), 16);
122
+ const g = parseInt(hexcolor.substr(2, 2), 16);
123
+ const b = parseInt(hexcolor.substr(4, 2), 16);
124
+ const yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
125
+ return yiq >= 200;
126
+ }
127
+ updateStyles() {
128
+ this.styleBackgroundColor = this._backgroundColor;
129
+ if (this._color) {
130
+ this.styleColor = this._color;
131
+ }
132
+ else if (!this._outlined) {
133
+ this.styleColor = this.isContrastYIQBlack(this.styleBackgroundColor) ? '#474747' : '#fff';
134
+ }
135
+ if (this._outlined) {
136
+ this.styleBackgroundColor = '';
137
+ if (this._color) {
138
+ this.styleBorderColor = this._color;
139
+ }
140
+ }
141
+ this._cdRef.markForCheck();
142
+ }
143
+ }
144
+ FsChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FsChipsService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
145
+ FsChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsChipComponent, selector: "fs-chip", inputs: { setSize: ["size", "setSize"], value: "value", icon: "icon", backgroundColor: "backgroundColor", borderColor: "borderColor", color: "color", outlined: "outlined", removable: "removable", selectable: "selectable", selected: "selected", image: "image" }, outputs: { selectedToggled: "selectedToggled", removed: "removed" }, host: { listeners: { "click": "click()" }, properties: { "class.fs-chip": "this.fsChip", "class.outlined": "this._outlined", "class.selectable": "this._selectable", "class.imaged": "this._image", "class.selected": "this._selected", "class.removable": "this._removable", "style.backgroundColor": "this.styleBackgroundColor", "style.color": "this.styleColor", "style.borderColor": "this.styleBorderColor", "class.small": "this.classSmall", "class.tiny": "this.classTiny", "class.micro": "this.classMicro", "class.iconed": "this.icon" } }, ngImport: i0, template: "<img *ngIf=\"image\" [src]=\"image\" class=\"image\" alt=\"\">\n<ng-container *ngIf=\"icon\">\n <mat-icon class=\"icon\">{{icon}}</mat-icon>\n</ng-container>\n<div class=\"fs-chip-content\">\n <ng-content></ng-content>\n</div>\n<div class=\"selected-check\" *ngIf=\"selected\">\n <mat-icon [style.color]=\"styleColor\">check</mat-icon>\n</div>\n<a *ngIf=\"removable\" class=\"remove\" (click)=\"remove($event)\">\n <mat-icon [style.color]=\"styleColor\">cancel</mat-icon>\n</a>\n", styles: [":host{-webkit-user-select:none;user-select:none;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);display:inline-flex;padding:0 12px;border-radius:16px;align-items:center;cursor:default;height:30px;background-color:#e0e0e0;overflow:hidden}:host.imaged{overflow:visible;padding-left:0}:host.imaged.outlined .image{margin-left:-2px}:host.iconed:not(.imaged){padding-left:5px}:host.removable,:host.selected{padding-right:3px}:host.selectable{cursor:pointer}:host.outlined{background-color:transparent;border:1px solid #e0e0e0;box-sizing:border-box}:host .icon{margin-right:5px}:host .image{height:30px;width:30px;border-radius:50%;object-fit:cover;margin-left:-1px;margin-right:8px}:host .fs-chip-content{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .selected-check{margin:0 5px;display:flex}:host .remove{display:flex;margin-left:5px;cursor:pointer}:host.small{padding:0 8px;font-size:85%;height:25px;line-height:normal}:host.small .image{height:25px;width:25px;margin-right:5px}:host.small.iconed:not(.imaged){padding-left:4px}:host.small.imaged{padding-left:0}:host.small .remove{margin-left:3px}:host.small .selected-check{margin:0 2px 0 0}:host.small .selected-check mat-icon{transform:scale(.7)}:host.small.removable,:host.small.selected{padding-right:0}:host.small mat-icon{height:23px;width:23px;font-size:23px}:host.tiny{padding:0 6px;height:18px;line-height:normal}:host.tiny .fs-chip-content{font-size:75%}:host.tiny .image{height:18px;width:18px;margin-right:3px}:host.tiny.iconed:not(.imaged){padding-left:3px}:host.tiny .remove{margin-left:2px}:host.tiny .selected-check{margin:0 1px 0 0}:host.tiny.imaged{padding-left:0}:host.tiny.removable,:host.tiny.selected{padding-right:0}:host.tiny mat-icon{height:15px;width:15px;font-size:15px}:host.micro{padding:0 5px;height:16px;line-height:normal}:host.micro .fs-chip-content{font-size:65%}:host.micro .image{height:100%;width:16px;margin-right:2px}:host.micro .remove{margin-left:1px}:host.micro .selected-check{margin:0 1px 0 0}:host.micro.imaged{padding-left:0}:host.micro.removable,:host.micro.selected{padding-right:0}:host.micro mat-icon{width:12px;height:12px;font-size:11px}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipComponent, decorators: [{
147
+ type: Component,
148
+ args: [{ selector: 'fs-chip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<img *ngIf=\"image\" [src]=\"image\" class=\"image\" alt=\"\">\n<ng-container *ngIf=\"icon\">\n <mat-icon class=\"icon\">{{icon}}</mat-icon>\n</ng-container>\n<div class=\"fs-chip-content\">\n <ng-content></ng-content>\n</div>\n<div class=\"selected-check\" *ngIf=\"selected\">\n <mat-icon [style.color]=\"styleColor\">check</mat-icon>\n</div>\n<a *ngIf=\"removable\" class=\"remove\" (click)=\"remove($event)\">\n <mat-icon [style.color]=\"styleColor\">cancel</mat-icon>\n</a>\n", styles: [":host{-webkit-user-select:none;user-select:none;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);display:inline-flex;padding:0 12px;border-radius:16px;align-items:center;cursor:default;height:30px;background-color:#e0e0e0;overflow:hidden}:host.imaged{overflow:visible;padding-left:0}:host.imaged.outlined .image{margin-left:-2px}:host.iconed:not(.imaged){padding-left:5px}:host.removable,:host.selected{padding-right:3px}:host.selectable{cursor:pointer}:host.outlined{background-color:transparent;border:1px solid #e0e0e0;box-sizing:border-box}:host .icon{margin-right:5px}:host .image{height:30px;width:30px;border-radius:50%;object-fit:cover;margin-left:-1px;margin-right:8px}:host .fs-chip-content{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .selected-check{margin:0 5px;display:flex}:host .remove{display:flex;margin-left:5px;cursor:pointer}:host.small{padding:0 8px;font-size:85%;height:25px;line-height:normal}:host.small .image{height:25px;width:25px;margin-right:5px}:host.small.iconed:not(.imaged){padding-left:4px}:host.small.imaged{padding-left:0}:host.small .remove{margin-left:3px}:host.small .selected-check{margin:0 2px 0 0}:host.small .selected-check mat-icon{transform:scale(.7)}:host.small.removable,:host.small.selected{padding-right:0}:host.small mat-icon{height:23px;width:23px;font-size:23px}:host.tiny{padding:0 6px;height:18px;line-height:normal}:host.tiny .fs-chip-content{font-size:75%}:host.tiny .image{height:18px;width:18px;margin-right:3px}:host.tiny.iconed:not(.imaged){padding-left:3px}:host.tiny .remove{margin-left:2px}:host.tiny .selected-check{margin:0 1px 0 0}:host.tiny.imaged{padding-left:0}:host.tiny.removable,:host.tiny.selected{padding-right:0}:host.tiny mat-icon{height:15px;width:15px;font-size:15px}:host.micro{padding:0 5px;height:16px;line-height:normal}:host.micro .fs-chip-content{font-size:65%}:host.micro .image{height:100%;width:16px;margin-right:2px}:host.micro .remove{margin-left:1px}:host.micro .selected-check{margin:0 1px 0 0}:host.micro.imaged{padding-left:0}:host.micro.removable,:host.micro.selected{padding-right:0}:host.micro mat-icon{width:12px;height:12px;font-size:11px}\n"] }]
149
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FsChipsService, decorators: [{
150
+ type: Optional
151
+ }] }]; }, propDecorators: { fsChip: [{
152
+ type: HostBinding,
153
+ args: ['class.fs-chip']
154
+ }], _outlined: [{
155
+ type: HostBinding,
156
+ args: ['class.outlined']
157
+ }], _selectable: [{
158
+ type: HostBinding,
159
+ args: ['class.selectable']
160
+ }], _image: [{
161
+ type: HostBinding,
162
+ args: ['class.imaged']
163
+ }], _selected: [{
164
+ type: HostBinding,
165
+ args: ['class.selected']
166
+ }], _removable: [{
167
+ type: HostBinding,
168
+ args: ['class.removable']
169
+ }], styleBackgroundColor: [{
170
+ type: HostBinding,
171
+ args: ['style.backgroundColor']
172
+ }], styleColor: [{
173
+ type: HostBinding,
174
+ args: ['style.color']
175
+ }], styleBorderColor: [{
176
+ type: HostBinding,
177
+ args: ['style.borderColor']
178
+ }], classSmall: [{
179
+ type: HostBinding,
180
+ args: ['class.small']
181
+ }], classTiny: [{
182
+ type: HostBinding,
183
+ args: ['class.tiny']
184
+ }], classMicro: [{
185
+ type: HostBinding,
186
+ args: ['class.micro']
187
+ }], setSize: [{
188
+ type: Input,
189
+ args: ['size']
190
+ }], click: [{
191
+ type: HostListener,
192
+ args: ['click']
193
+ }], value: [{
194
+ type: Input
195
+ }], icon: [{
196
+ type: Input
197
+ }, {
198
+ type: HostBinding,
199
+ args: ['class.iconed']
200
+ }], backgroundColor: [{
201
+ type: Input
202
+ }], borderColor: [{
203
+ type: Input
204
+ }], color: [{
205
+ type: Input
206
+ }], outlined: [{
207
+ type: Input
208
+ }], removable: [{
209
+ type: Input
210
+ }], selectable: [{
211
+ type: Input
212
+ }], selected: [{
213
+ type: Input
214
+ }], image: [{
215
+ type: Input
216
+ }], selectedToggled: [{
217
+ type: Output
218
+ }], removed: [{
219
+ type: Output
220
+ }] } });
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9jaGlwL2NoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBUzlELE1BQU0sT0FBTyxlQUFlO0lBb0gxQixZQUNVLE1BQXlCLEVBQ2IsTUFBc0I7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQXBIZCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNoQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ2IseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDVixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUE2RjlCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV4QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztJQU1qQixDQUFDO0lBdkdKLElBQW1CLE9BQU8sQ0FBQyxLQUFLO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxLQUFLLE9BQU8sQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssS0FBSyxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLEtBQUssT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFBQSxDQUFDO0lBR0ssS0FBSztRQUVWLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUUxRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6RDtTQUNGO0lBQ0gsQ0FBQztJQVFELElBQWEsZUFBZSxDQUFDLEtBQUs7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFhLFdBQVcsQ0FBQyxLQUFLO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFhLEtBQUssQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxLQUFLO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsS0FBSztRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUV4QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxLQUFLO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxLQUFLO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXZCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQUs7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBZ0JNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsUUFBUTtRQUNqQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXZELE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNwQixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBRWxELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMvQjthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUMzRjtRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1lBRS9CLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNyQztTQUNGO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs0R0E1S1UsZUFBZTtnR0FBZixlQUFlLG01QkN2QjVCLHFlQWFBOzJGRFVhLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsU0FBUyxtQkFHRix1QkFBdUIsQ0FBQyxNQUFNOzswQkF3SDVDLFFBQVE7NENBcEhtQixNQUFNO3NCQUFuQyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ0csU0FBUztzQkFBdkMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ0ksV0FBVztzQkFBM0MsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ0YsTUFBTTtzQkFBbEMsV0FBVzt1QkFBQyxjQUFjO2dCQUNJLFNBQVM7c0JBQXZDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNHLFVBQVU7c0JBQXpDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUNRLG9CQUFvQjtzQkFBekQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBQ1IsVUFBVTtzQkFBckMsV0FBVzt1QkFBQyxhQUFhO2dCQUNRLGdCQUFnQjtzQkFBakQsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBRUosVUFBVTtzQkFBckMsV0FBVzt1QkFBQyxhQUFhO2dCQUNDLFNBQVM7c0JBQW5DLFdBQVc7dUJBQUMsWUFBWTtnQkFDRyxVQUFVO3NCQUFyQyxXQUFXO3VCQUFDLGFBQWE7Z0JBRVAsT0FBTztzQkFBekIsS0FBSzt1QkFBQyxNQUFNO2dCQVFOLEtBQUs7c0JBRFgsWUFBWTt1QkFBQyxPQUFPO2dCQWFMLEtBQUs7c0JBQXBCLEtBQUs7Z0JBSUMsSUFBSTtzQkFGVixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGNBQWM7Z0JBR2QsZUFBZTtzQkFBM0IsS0FBSztnQkFLTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU08sUUFBUTtzQkFBcEIsS0FBSztnQkFTTyxTQUFTO3NCQUFyQixLQUFLO2dCQVVPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBUU8sUUFBUTtzQkFBcEIsS0FBSztnQkFVTyxLQUFLO3NCQUFqQixLQUFLO2dCQVVXLGVBQWU7c0JBQS9CLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZzQ2hpcHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hpcHMuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtY2hpcCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjaGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0NoaXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1jaGlwJykgZnNDaGlwID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vdXRsaW5lZCcpIF9vdXRsaW5lZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGFibGUnKSBfc2VsZWN0YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmltYWdlZCcpIF9pbWFnZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgX3NlbGVjdGVkID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MucmVtb3ZhYmxlJykgX3JlbW92YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmRDb2xvcicpIHN0eWxlQmFja2dyb3VuZENvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuY29sb3InKSBzdHlsZUNvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuYm9yZGVyQ29sb3InKSBzdHlsZUJvcmRlckNvbG9yID0gJyc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGNsYXNzU21hbGwgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aW55JykgY2xhc3NUaW55ID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MubWljcm8nKSBjbGFzc01pY3JvID0gZmFsc2U7XG5cbiAgQElucHV0KCdzaXplJykgc2V0IHNldFNpemUodmFsdWUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5jbGFzc1NtYWxsID0gdmFsdWUgPT09ICdzbWFsbCc7XG4gICAgdGhpcy5jbGFzc1RpbnkgPSB2YWx1ZSA9PT0gJ3RpbnknO1xuICAgIHRoaXMuY2xhc3NNaWNybyA9IHZhbHVlID09PSAnbWljcm8nO1xuICB9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIGNsaWNrKCkge1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkO1xuICAgICAgdGhpcy5zZWxlY3RlZFRvZ2dsZWQuZW1pdCh7IHZhbHVlOiB0aGlzLnZhbHVlLCBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcblxuICAgICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICAgIHRoaXMuX2NoaXBzLnNlbGVjdGlvbkNoYW5nZWQodGhpcy5zZWxlY3RlZCwgdGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgcHVibGljIHZhbHVlO1xuICBcbiAgQElucHV0KCkgXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaWNvbmVkJykgXG4gIHB1YmxpYyBpY29uO1xuXG4gIEBJbnB1dCgpIHNldCBiYWNrZ3JvdW5kQ29sb3IodmFsdWUpIHtcbiAgICB0aGlzLl9iYWNrZ3JvdW5kQ29sb3IgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9O1xuXG4gIEBJbnB1dCgpIHNldCBib3JkZXJDb2xvcih2YWx1ZSkge1xuICAgIHRoaXMuc3R5bGVCb3JkZXJDb2xvciA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH1cbiAgQElucHV0KCkgc2V0IGNvbG9yKHZhbHVlKSB7XG4gICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9XG5cbiAgZ2V0IGNvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBvdXRsaW5lZCh2YWx1ZSkge1xuICAgIHRoaXMuX291dGxpbmVkID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfTtcblxuICBnZXQgb3V0bGluZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX291dGxpbmVkO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHJlbW92YWJsZSh2YWx1ZSkge1xuICAgIHRoaXMuX3JlbW92YWJsZSA9IHZhbHVlO1xuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgZ2V0IHJlbW92YWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3ZhYmxlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGFibGUodmFsdWUpIHtcbiAgICB0aGlzLl9zZWxlY3RhYmxlID0gdmFsdWU7XG4gIH07XG5cbiAgZ2V0IHNlbGVjdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWQodmFsdWUpIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBpbWFnZSh2YWx1ZSkge1xuICAgIHRoaXMuX2ltYWdlID0gdmFsdWU7XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBnZXQgaW1hZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ltYWdlO1xuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZFRvZ2dsZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgJGRlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX2JhY2tncm91bmRDb2xvciA9ICcnO1xuICBwcml2YXRlIF9jb2xvciA9ICcnO1xuICBwcml2YXRlIF9zaXplO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jaGlwczogRnNDaGlwc1NlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5fY2hpcHMpIHtcbiAgICAgIHRoaXMuX2NoaXBzLnJlZ2lzdGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5fY2hpcHMpIHtcbiAgICAgIHRoaXMuX2NoaXBzLmRlc3Ryb3kodGhpcyk7XG4gICAgfVxuXG4gICAgdGhpcy4kZGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy4kZGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShldmVudCkge1xuICAgIHRoaXMucmVtb3ZlZC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb250cmFzdFlJUUJsYWNrKGhleGNvbG9yKSB7XG4gICAgaWYgKCFoZXhjb2xvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaGV4Y29sb3IgPSBoZXhjb2xvci5yZXBsYWNlKCcjJywgJycpO1xuICAgIGNvbnN0IHIgPSBwYXJzZUludChoZXhjb2xvci5zdWJzdHIoMCwgMiksIDE2KTtcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4Y29sb3Iuc3Vic3RyKDIsIDIpLCAxNik7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleGNvbG9yLnN1YnN0cig0LCAyKSwgMTYpO1xuICAgIGNvbnN0IHlpcSA9ICgociAqIDI5OSkgKyAoZyAqIDU4NykgKyAoYiAqIDExNCkpIC8gMTAwMDtcblxuICAgIHJldHVybiB5aXEgPj0gMjAwO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdHlsZXMoKSB7XG4gICAgdGhpcy5zdHlsZUJhY2tncm91bmRDb2xvciA9IHRoaXMuX2JhY2tncm91bmRDb2xvcjtcblxuICAgIGlmICh0aGlzLl9jb2xvcikge1xuICAgICAgdGhpcy5zdHlsZUNvbG9yID0gdGhpcy5fY29sb3I7XG4gICAgfSBlbHNlIGlmICghdGhpcy5fb3V0bGluZWQpIHtcbiAgICAgIHRoaXMuc3R5bGVDb2xvciA9IHRoaXMuaXNDb250cmFzdFlJUUJsYWNrKHRoaXMuc3R5bGVCYWNrZ3JvdW5kQ29sb3IpID8gJyM0NzQ3NDcnIDogJyNmZmYnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9vdXRsaW5lZCkge1xuICAgICAgdGhpcy5zdHlsZUJhY2tncm91bmRDb2xvciA9ICcnO1xuXG4gICAgICBpZiAodGhpcy5fY29sb3IpIHtcbiAgICAgICAgdGhpcy5zdHlsZUJvcmRlckNvbG9yID0gdGhpcy5fY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxpbWcgKm5nSWY9XCJpbWFnZVwiIFtzcmNdPVwiaW1hZ2VcIiBjbGFzcz1cImltYWdlXCIgYWx0PVwiXCI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaWNvblwiPlxuICA8bWF0LWljb24gY2xhc3M9XCJpY29uXCI+e3tpY29ufX08L21hdC1pY29uPlxuPC9uZy1jb250YWluZXI+XG48ZGl2IGNsYXNzPVwiZnMtY2hpcC1jb250ZW50XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInNlbGVjdGVkLWNoZWNrXCIgKm5nSWY9XCJzZWxlY3RlZFwiPlxuICA8bWF0LWljb24gW3N0eWxlLmNvbG9yXT1cInN0eWxlQ29sb3JcIj5jaGVjazwvbWF0LWljb24+XG48L2Rpdj5cbjxhICpuZ0lmPVwicmVtb3ZhYmxlXCIgY2xhc3M9XCJyZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIj5cbiAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJzdHlsZUNvbG9yXCI+Y2FuY2VsPC9tYXQtaWNvbj5cbjwvYT5cbiJdfQ==
@@ -0,0 +1,132 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, HostBinding, Input, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { Subject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { find } from 'lodash-es';
6
+ import { FsChipsService } from '../../services/chips.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../services/chips.service";
9
+ export class FsChipsComponent {
10
+ constructor(_cdRef, _chipsService) {
11
+ this._cdRef = _cdRef;
12
+ this._chipsService = _chipsService;
13
+ this.classFsChips = true;
14
+ this.classHasChips = false;
15
+ this.multiple = true;
16
+ this._value = [];
17
+ this._destroy$ = new Subject();
18
+ this._subscribeToItemsChange();
19
+ this._subscribeToSelectionChange();
20
+ }
21
+ get chips() {
22
+ return this._chipsService.chips;
23
+ }
24
+ set value(value) {
25
+ if (this._value !== value) {
26
+ this._value = value;
27
+ this.onChange(this._value);
28
+ this.onTouch(this._value);
29
+ }
30
+ }
31
+ get value() {
32
+ return this._value;
33
+ }
34
+ ngOnDestroy() {
35
+ this._destroy$.next();
36
+ this._destroy$.complete();
37
+ }
38
+ writeValue(value) {
39
+ if (value !== this.value) {
40
+ this._value = value;
41
+ }
42
+ this._updateChips();
43
+ }
44
+ registerOnChange(fn) {
45
+ this.onChange = fn;
46
+ }
47
+ registerOnTouched(fn) {
48
+ this.onTouch = fn;
49
+ }
50
+ /**
51
+ * Update ngModel value when selection changed
52
+ */
53
+ _subscribeToSelectionChange() {
54
+ this._chipsService.selectionChanged$
55
+ .pipe(takeUntil(this._destroy$))
56
+ .subscribe(({ selected, value }) => {
57
+ if (!selected) {
58
+ const valueIndex = this.value.findIndex((item) => {
59
+ return this._compareFn(item, value);
60
+ });
61
+ if (valueIndex > -1) {
62
+ this.value.splice(valueIndex, 1);
63
+ this.onChange(this._value);
64
+ this.onTouch(this._value);
65
+ }
66
+ }
67
+ else {
68
+ this.value.push(value);
69
+ this.onChange(this._value);
70
+ this.onTouch(this._value);
71
+ }
72
+ });
73
+ }
74
+ /**
75
+ * Update selection if item was added or removed
76
+ */
77
+ _subscribeToItemsChange() {
78
+ this._chipsService.chipItemsChanged$
79
+ .pipe(takeUntil(this._destroy$))
80
+ .subscribe(() => {
81
+ this.classHasChips = !!this._chipsService.chips.length;
82
+ this._updateChips();
83
+ });
84
+ }
85
+ _compareFn(o1, o2) {
86
+ if (this.compare) {
87
+ return this.compare(o1, o2);
88
+ }
89
+ return o1 === o2;
90
+ }
91
+ _updateChips() {
92
+ if (this.multiple && Array.isArray(this.value) && this.chips) {
93
+ this.chips.forEach((chip) => {
94
+ chip.selected = find(this.value, (o) => {
95
+ return this._compareFn(o, chip.value);
96
+ }) !== undefined;
97
+ });
98
+ }
99
+ this._cdRef.markForCheck();
100
+ }
101
+ }
102
+ FsChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FsChipsService }], target: i0.ɵɵFactoryTarget.Component });
103
+ FsChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsChipsComponent, selector: "fs-chips", inputs: { compare: "compare", multiple: "multiple" }, host: { properties: { "class.fs-chips": "this.classFsChips", "class.has-chips": "this.classHasChips" } }, providers: [
104
+ {
105
+ provide: NG_VALUE_ACCESSOR,
106
+ useExisting: forwardRef(() => FsChipsComponent),
107
+ multi: true,
108
+ },
109
+ FsChipsService,
110
+ ], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-wrap:wrap}:host.has-chips{margin-top:-5px}:host ::ng-deep .fs-chip{margin-right:5px;margin-top:5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipsComponent, decorators: [{
112
+ type: Component,
113
+ args: [{ selector: 'fs-chips', providers: [
114
+ {
115
+ provide: NG_VALUE_ACCESSOR,
116
+ useExisting: forwardRef(() => FsChipsComponent),
117
+ multi: true,
118
+ },
119
+ FsChipsService,
120
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n", styles: [":host{display:flex;flex-wrap:wrap}:host.has-chips{margin-top:-5px}:host ::ng-deep .fs-chip{margin-right:5px;margin-top:5px}\n"] }]
121
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.FsChipsService }]; }, propDecorators: { classFsChips: [{
122
+ type: HostBinding,
123
+ args: ['class.fs-chips']
124
+ }], classHasChips: [{
125
+ type: HostBinding,
126
+ args: ['class.has-chips']
127
+ }], compare: [{
128
+ type: Input
129
+ }], multiple: [{
130
+ type: Input
131
+ }] } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2NoaXBzL2NoaXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9jaGlwcy9jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQzFDLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQWlCOUQsTUFBTSxPQUFPLGdCQUFnQjtJQWUzQixZQUNVLE1BQXlCLEVBQ3pCLGFBQTZCO1FBRDdCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQWZELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSTdDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFLeEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBTWhDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLEtBQUssQ0FBQyxLQUFLO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFFcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVU7UUFDMUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBRTtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ00saUJBQWlCLENBQUMsRUFBRTtRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUI7YUFDakMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNiLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQy9DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBRWpDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDM0I7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUI7YUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN2RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzdCO1FBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBRTFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDckMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs2R0F4SFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsbU1BVmhCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFDL0MsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNELGNBQWM7S0FDZiwwQkM3QkgsNkJBQ0E7MkZEK0JhLGdCQUFnQjtrQkFkNUIsU0FBUzsrQkFDRSxVQUFVLGFBR1Q7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUM7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELGNBQWM7cUJBQ2YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07cUlBSVQsWUFBWTtzQkFBakQsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ1UsYUFBYTtzQkFBbkQsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBRWQsT0FBTztzQkFBdEIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBmaW5kIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRnNDaGlwc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGlwcy5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1jaGlwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoaXBzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRnNDaGlwc0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIEZzQ2hpcHNTZXJ2aWNlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnNDaGlwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtY2hpcHMnKSBwdWJsaWMgY2xhc3NGc0NoaXBzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtY2hpcHMnKSBwdWJsaWMgY2xhc3NIYXNDaGlwcyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb21wYXJlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZSA9IHRydWU7XG5cbiAgcHVibGljIG9uQ2hhbmdlOiAodmFsdWUpID0+IHZvaWQ7XG4gIHB1YmxpYyBvblRvdWNoOiAodmFsdWUpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdmFsdWUgPSBbXTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9jaGlwc1NlcnZpY2U6IEZzQ2hpcHNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLl9zdWJzY3JpYmVUb0l0ZW1zQ2hhbmdlKCk7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9TZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaXBzU2VydmljZS5jaGlwcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICBpZiAodGhpcy5fdmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgIHRoaXMub25Ub3VjaCh0aGlzLl92YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZUNoaXBzKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbikge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm4pIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbmdNb2RlbCB2YWx1ZSB3aGVuIHNlbGVjdGlvbiBjaGFuZ2VkXG4gICAqL1xuICBwcml2YXRlIF9zdWJzY3JpYmVUb1NlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICB0aGlzLl9jaGlwc1NlcnZpY2Uuc2VsZWN0aW9uQ2hhbmdlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoeyBzZWxlY3RlZCwgdmFsdWUgfSkgPT4ge1xuICAgICAgICBpZiAoIXNlbGVjdGVkKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVJbmRleCA9IHRoaXMudmFsdWUuZmluZEluZGV4KChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tcGFyZUZuKGl0ZW0sIHZhbHVlKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh2YWx1ZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUuc3BsaWNlKHZhbHVlSW5kZXgsIDEpO1xuXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaCh0aGlzLl92YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmFsdWUucHVzaCh2YWx1ZSk7XG5cbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2godGhpcy5fdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgc2VsZWN0aW9uIGlmIGl0ZW0gd2FzIGFkZGVkIG9yIHJlbW92ZWRcbiAgICovXG4gIHByaXZhdGUgX3N1YnNjcmliZVRvSXRlbXNDaGFuZ2UoKSB7XG4gICAgdGhpcy5fY2hpcHNTZXJ2aWNlLmNoaXBJdGVtc0NoYW5nZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xhc3NIYXNDaGlwcyA9ICEhdGhpcy5fY2hpcHNTZXJ2aWNlLmNoaXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ2hpcHMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGFyZUZuKG8xLCBvMikge1xuICAgIGlmICh0aGlzLmNvbXBhcmUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUobzEsIG8yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbzEgPT09IG8yO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ2hpcHMoKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJiB0aGlzLmNoaXBzKSB7XG4gICAgICB0aGlzLmNoaXBzLmZvckVhY2goKGNoaXApID0+IHtcblxuICAgICAgICBjaGlwLnNlbGVjdGVkID0gZmluZCh0aGlzLnZhbHVlLCAobykgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9jb21wYXJlRm4obywgY2hpcC52YWx1ZSk7XG4gICAgICAgIH0pICE9PSB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -0,0 +1,44 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { FsLabelModule } from '@firestitch/label';
5
+ import { FsChipsComponent } from './components/chips/chips.component';
6
+ import { FsChipComponent } from './components/chip/chip.component';
7
+ import * as i0 from "@angular/core";
8
+ export class FsChipModule {
9
+ static forRoot() {
10
+ return {
11
+ ngModule: FsChipModule
12
+ };
13
+ }
14
+ }
15
+ FsChipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ FsChipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipModule, declarations: [FsChipsComponent,
17
+ FsChipComponent], imports: [CommonModule,
18
+ MatIconModule,
19
+ FsLabelModule], exports: [FsChipsComponent,
20
+ FsChipComponent] });
21
+ FsChipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipModule, imports: [[
22
+ CommonModule,
23
+ MatIconModule,
24
+ FsLabelModule
25
+ ]] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipModule, decorators: [{
27
+ type: NgModule,
28
+ args: [{
29
+ imports: [
30
+ CommonModule,
31
+ MatIconModule,
32
+ FsLabelModule
33
+ ],
34
+ exports: [
35
+ FsChipsComponent,
36
+ FsChipComponent,
37
+ ],
38
+ declarations: [
39
+ FsChipsComponent,
40
+ FsChipComponent,
41
+ ]
42
+ }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtY2hpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2ZzLWNoaXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFpQm5FLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1NBQ3ZCLENBQUM7SUFDSixDQUFDOzt5R0FMVSxZQUFZOzBHQUFaLFlBQVksaUJBSnJCLGdCQUFnQjtRQUNoQixlQUFlLGFBVmYsWUFBWTtRQUNaLGFBQWE7UUFDYixhQUFhLGFBR2IsZ0JBQWdCO1FBQ2hCLGVBQWU7MEdBT04sWUFBWSxZQWRkO1lBQ1AsWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1NBQ2Q7MkZBVVUsWUFBWTtrQkFmeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuaW1wb3J0IHsgRnNMYWJlbE1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2xhYmVsJztcblxuaW1wb3J0IHsgRnNDaGlwc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGlwcy9jaGlwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnNDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoaXAvY2hpcC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgRnNMYWJlbE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRnNDaGlwc0NvbXBvbmVudCxcbiAgICBGc0NoaXBDb21wb25lbnQsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZzQ2hpcHNDb21wb25lbnQsXG4gICAgRnNDaGlwQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZzQ2hpcE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RnNDaGlwTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBGc0NoaXBNb2R1bGVcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,47 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { debounceTime, takeUntil } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class FsChipsService {
6
+ constructor() {
7
+ this.chips = [];
8
+ this._chipItemsChanged$ = new Subject();
9
+ this._selectionChanged$ = new Subject();
10
+ this._destroy$ = new Subject();
11
+ }
12
+ get selectionChanged$() {
13
+ return this._selectionChanged$.
14
+ pipe(takeUntil(this._destroy$));
15
+ }
16
+ get chipItemsChanged$() {
17
+ return this._chipItemsChanged$
18
+ .pipe(takeUntil(this._destroy$), debounceTime(50));
19
+ }
20
+ ngOnDestroy() {
21
+ this._destroy$.next();
22
+ this._destroy$.complete();
23
+ }
24
+ selectionChanged(selected, value) {
25
+ this._selectionChanged$.next({
26
+ selected: selected,
27
+ value: value,
28
+ });
29
+ }
30
+ register(chip) {
31
+ this.chips.push(chip);
32
+ this._chipItemsChanged$.next();
33
+ }
34
+ destroy(chip) {
35
+ const index = this.chips.indexOf(chip);
36
+ if (index > -1) {
37
+ this.chips.splice(index, 1);
38
+ this._chipItemsChanged$.next();
39
+ }
40
+ }
41
+ }
42
+ FsChipsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
+ FsChipsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipsService });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsChipsService, decorators: [{
45
+ type: Injectable
46
+ }], ctorParameters: function () { return []; } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvY2hpcHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJekQsTUFBTSxPQUFPLGNBQWM7SUFRekI7UUFOTyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVYsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNuQyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXpCLENBQUM7SUFFaEIsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCO1lBQzVCLElBQUksQ0FDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQjthQUMzQixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDekIsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUNqQixDQUFBO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxRQUFpQixFQUFFLEtBQVU7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUMzQixRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBSTtRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFJO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNoQztJQUNILENBQUM7OzJHQWpEVSxjQUFjOytHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzQ2hpcHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwdWJsaWMgY2hpcHMgPSBbXTtcblxuICBwcml2YXRlIF9jaGlwSXRlbXNDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX3NlbGVjdGlvbkNoYW5nZWQkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXQgc2VsZWN0aW9uQ2hhbmdlZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQkLlxuICAgICAgcGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNoaXBJdGVtc0NoYW5nZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGlwSXRlbXNDaGFuZ2VkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICApXG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlZChzZWxlY3RlZDogYm9vbGVhbiwgdmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQkLm5leHQoe1xuICAgICAgc2VsZWN0ZWQ6IHNlbGVjdGVkLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXIoY2hpcCkge1xuICAgIHRoaXMuY2hpcHMucHVzaChjaGlwKTtcbiAgICB0aGlzLl9jaGlwSXRlbXNDaGFuZ2VkJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveShjaGlwKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBzLmluZGV4T2YoY2hpcCk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5jaGlwcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5fY2hpcEl0ZW1zQ2hhbmdlZCQubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0aXRjaC1jaGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpcmVzdGl0Y2gtY2hpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19