@firestitch/chip 12.0.0 → 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.
- package/app/components/chip/chip.component.d.ts +52 -51
- package/app/components/chips/chips.component.d.ts +36 -36
- package/app/fs-chip.module.d.ts +13 -13
- package/app/services/chips.service.d.ts +17 -17
- package/esm2020/app/components/chip/chip.component.mjs +221 -0
- package/esm2020/app/components/chips/chips.component.mjs +132 -0
- package/{esm2015/app/fs-chip.module.js → esm2020/app/fs-chip.module.mjs} +44 -44
- package/{esm2015/app/services/chips.service.js → esm2020/app/services/chips.service.mjs} +47 -47
- package/{esm2015/firestitch-chip.js → esm2020/firestitch-chip.mjs} +4 -4
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +6 -6
- package/fesm2015/firestitch-chip.mjs +442 -0
- package/fesm2015/firestitch-chip.mjs.map +1 -0
- package/{fesm2015/firestitch-chip.js → fesm2020/firestitch-chip.mjs} +415 -420
- package/fesm2020/firestitch-chip.mjs.map +1 -0
- package/firestitch-chip.d.ts +5 -5
- package/package.json +23 -10
- package/public_api.d.ts +3 -3
- package/styles.scss +0 -190
- package/bundles/firestitch-chip.umd.js +0 -531
- package/bundles/firestitch-chip.umd.js.map +0 -1
- package/esm2015/app/components/chip/chip.component.js +0 -222
- package/esm2015/app/components/chips/chips.component.js +0 -136
- package/fesm2015/firestitch-chip.js.map +0 -1
|
@@ -1,51 +1,52 @@
|
|
|
1
|
-
import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { FsChipsService } from '../../services/chips.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class FsChipComponent implements OnInit, OnDestroy {
|
|
6
|
-
private _cdRef;
|
|
7
|
-
private _chips;
|
|
8
|
-
fsChip: boolean;
|
|
9
|
-
_outlined: boolean;
|
|
10
|
-
_selectable: boolean;
|
|
11
|
-
_image: boolean;
|
|
12
|
-
_selected: boolean;
|
|
13
|
-
_removable: boolean;
|
|
14
|
-
styleBackgroundColor: string;
|
|
15
|
-
styleColor: string;
|
|
16
|
-
styleBorderColor: string;
|
|
17
|
-
classSmall: boolean;
|
|
18
|
-
classTiny: boolean;
|
|
19
|
-
classMicro: boolean;
|
|
20
|
-
set setSize(value: any);
|
|
21
|
-
click(): void;
|
|
22
|
-
value: any;
|
|
23
|
-
|
|
24
|
-
set
|
|
25
|
-
set
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
private
|
|
42
|
-
private
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
private
|
|
49
|
-
|
|
50
|
-
static
|
|
51
|
-
}
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { FsChipsService } from '../../services/chips.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class FsChipComponent implements OnInit, OnDestroy {
|
|
6
|
+
private _cdRef;
|
|
7
|
+
private _chips;
|
|
8
|
+
fsChip: boolean;
|
|
9
|
+
_outlined: boolean;
|
|
10
|
+
_selectable: boolean;
|
|
11
|
+
_image: boolean;
|
|
12
|
+
_selected: boolean;
|
|
13
|
+
_removable: boolean;
|
|
14
|
+
styleBackgroundColor: string;
|
|
15
|
+
styleColor: string;
|
|
16
|
+
styleBorderColor: string;
|
|
17
|
+
classSmall: boolean;
|
|
18
|
+
classTiny: boolean;
|
|
19
|
+
classMicro: boolean;
|
|
20
|
+
set setSize(value: any);
|
|
21
|
+
click(): void;
|
|
22
|
+
value: 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;
|
|
38
|
+
selectedToggled: EventEmitter<any>;
|
|
39
|
+
removed: EventEmitter<any>;
|
|
40
|
+
$destroy: Subject<unknown>;
|
|
41
|
+
private _backgroundColor;
|
|
42
|
+
private _color;
|
|
43
|
+
private _size;
|
|
44
|
+
constructor(_cdRef: ChangeDetectorRef, _chips: FsChipsService);
|
|
45
|
+
ngOnInit(): void;
|
|
46
|
+
ngOnDestroy(): void;
|
|
47
|
+
remove(event: any): void;
|
|
48
|
+
private isContrastYIQBlack;
|
|
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, ["*"]>;
|
|
52
|
+
}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
2
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
-
import { FsChipsService } from '../../services/chips.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class FsChipsComponent implements OnDestroy, ControlValueAccessor {
|
|
6
|
-
private _cdRef;
|
|
7
|
-
private _chipsService;
|
|
8
|
-
classFsChips: boolean;
|
|
9
|
-
classHasChips: boolean;
|
|
10
|
-
compare: any;
|
|
11
|
-
multiple: boolean;
|
|
12
|
-
onChange: any;
|
|
13
|
-
onTouch: any;
|
|
14
|
-
private _value;
|
|
15
|
-
private _destroy$;
|
|
16
|
-
constructor(_cdRef: ChangeDetectorRef, _chipsService: FsChipsService);
|
|
17
|
-
get chips(): any[];
|
|
18
|
-
set value(value: any[]);
|
|
19
|
-
get value(): any[];
|
|
20
|
-
ngOnDestroy(): void;
|
|
21
|
-
writeValue(value: any): void;
|
|
22
|
-
registerOnChange(fn: any): void;
|
|
23
|
-
registerOnTouched(fn: any): void;
|
|
24
|
-
/**
|
|
25
|
-
* Update ngModel value when selection changed
|
|
26
|
-
*/
|
|
27
|
-
private
|
|
28
|
-
/**
|
|
29
|
-
* Update selection if item was added or removed
|
|
30
|
-
*/
|
|
31
|
-
private
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FsChipsComponent, never>;
|
|
35
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FsChipsComponent, "fs-chips", never, { "compare": "compare"; "multiple": "multiple"; }, {}, never, ["*"]>;
|
|
36
|
-
}
|
|
1
|
+
import { ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { FsChipsService } from '../../services/chips.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class FsChipsComponent implements OnDestroy, ControlValueAccessor {
|
|
6
|
+
private _cdRef;
|
|
7
|
+
private _chipsService;
|
|
8
|
+
classFsChips: boolean;
|
|
9
|
+
classHasChips: boolean;
|
|
10
|
+
compare: any;
|
|
11
|
+
multiple: boolean;
|
|
12
|
+
onChange: (value: any) => void;
|
|
13
|
+
onTouch: (value: any) => void;
|
|
14
|
+
private _value;
|
|
15
|
+
private _destroy$;
|
|
16
|
+
constructor(_cdRef: ChangeDetectorRef, _chipsService: FsChipsService);
|
|
17
|
+
get chips(): any[];
|
|
18
|
+
set value(value: any[]);
|
|
19
|
+
get value(): any[];
|
|
20
|
+
ngOnDestroy(): void;
|
|
21
|
+
writeValue(value: any): void;
|
|
22
|
+
registerOnChange(fn: any): void;
|
|
23
|
+
registerOnTouched(fn: any): void;
|
|
24
|
+
/**
|
|
25
|
+
* Update ngModel value when selection changed
|
|
26
|
+
*/
|
|
27
|
+
private _subscribeToSelectionChange;
|
|
28
|
+
/**
|
|
29
|
+
* Update selection if item was added or removed
|
|
30
|
+
*/
|
|
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, ["*"]>;
|
|
36
|
+
}
|
package/app/fs-chip.module.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
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";
|
|
8
|
-
export declare class FsChipModule {
|
|
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>;
|
|
13
|
-
}
|
|
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";
|
|
8
|
+
export declare class FsChipModule {
|
|
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>;
|
|
13
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class FsChipsService implements OnDestroy {
|
|
4
|
-
chips: any[];
|
|
5
|
-
private _chipItemsChanged$;
|
|
6
|
-
private _selectionChanged$;
|
|
7
|
-
private _destroy$;
|
|
8
|
-
constructor();
|
|
9
|
-
get selectionChanged$(): import("rxjs").Observable<unknown>;
|
|
10
|
-
get chipItemsChanged$(): import("rxjs").Observable<unknown>;
|
|
11
|
-
ngOnDestroy(): void;
|
|
12
|
-
selectionChanged(selected: boolean, value: any): void;
|
|
13
|
-
register(chip: any): void;
|
|
14
|
-
destroy(chip: any): void;
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FsChipsService, never>;
|
|
16
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<FsChipsService>;
|
|
17
|
-
}
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class FsChipsService implements OnDestroy {
|
|
4
|
+
chips: any[];
|
|
5
|
+
private _chipItemsChanged$;
|
|
6
|
+
private _selectionChanged$;
|
|
7
|
+
private _destroy$;
|
|
8
|
+
constructor();
|
|
9
|
+
get selectionChanged$(): import("rxjs").Observable<unknown>;
|
|
10
|
+
get chipItemsChanged$(): import("rxjs").Observable<unknown>;
|
|
11
|
+
ngOnDestroy(): void;
|
|
12
|
+
selectionChanged(selected: boolean, value: any): void;
|
|
13
|
+
register(chip: any): void;
|
|
14
|
+
destroy(chip: any): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FsChipsService, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FsChipsService>;
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9jaGlwL2NoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBUzlELE1BQU0sT0FBTyxlQUFlO0lBb0gxQixZQUNVLE1BQXlCLEVBQ2IsTUFBc0I7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQXBIZCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNoQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2IsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ2IseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDVixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUE2RjlCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxZQUFPLEdBQUcsSUFBSSxZ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Vzt1QkFBQyxjQUFjO2dCQUNJLFNBQVM7c0JBQXZDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNHLFVBQVU7c0JBQXpDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUNRLG9CQUFvQjtzQkFBekQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBQ1IsVUFBVTtzQkFBckMsV0FBVzt1QkFBQyxhQUFhO2dCQUNRLGdCQUFnQjtzQkFBakQsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBRUosVUFBVTtzQkFBckMsV0FBVzt1QkFBQyxhQUFhO2dCQUNDLFNBQVM7c0JBQW5DLFdBQVc7dUJBQUMsWUFBWTtnQkFDRyxVQUFVO3NCQUFyQyxXQUFXO3VCQUFDLGFBQWE7Z0JBRVAsT0FBTztzQkFBekIsS0FBSzt1QkFBQyxNQUFNO2dCQVFOLEtBQUs7c0JBRFgsWUFBWTt1QkFBQyxPQUFPO2dCQWFMLEtBQUs7c0JBQXBCLEtBQUs7Z0JBSUMsSUFBSTtzQkFGVixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGNBQWM7Z0JBR2QsZUFBZTtzQkFBM0IsS0FBSztnQkFLTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU08sUUFBUTtzQkFBcEIsS0FBSztnQkFTTyxTQUFTO3NCQUFyQixLQUFLO2dCQVVPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBUU8sUUFBUTtzQkFBcEIsS0FBSztnQkFVTyxLQUFLO3NCQUFqQixLQUFLO2dCQVVXLGVBQWU7c0JBQS9CLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZzQ2hpcHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hpcHMuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtY2hpcCcsXG4gIHRlbXBsYXRlVXJsOiAnY2hpcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjaGlwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0NoaXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1jaGlwJykgZnNDaGlwID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vdXRsaW5lZCcpIF9vdXRsaW5lZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGFibGUnKSBfc2VsZWN0YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmltYWdlZCcpIF9pbWFnZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlbGVjdGVkJykgX3NlbGVjdGVkID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MucmVtb3ZhYmxlJykgX3JlbW92YWJsZSA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmRDb2xvcicpIHN0eWxlQmFja2dyb3VuZENvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuY29sb3InKSBzdHlsZUNvbG9yID0gJyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuYm9yZGVyQ29sb3InKSBzdHlsZUJvcmRlckNvbG9yID0gJyc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbWFsbCcpIGNsYXNzU21hbGwgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aW55JykgY2xhc3NUaW55ID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MubWljcm8nKSBjbGFzc01pY3JvID0gZmFsc2U7XG5cbiAgQElucHV0KCdzaXplJykgc2V0IHNldFNpemUodmFsdWUpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5jbGFzc1NtYWxsID0gdmFsdWUgPT09ICdzbWFsbCc7XG4gICAgdGhpcy5jbGFzc1RpbnkgPSB2YWx1ZSA9PT0gJ3RpbnknO1xuICAgIHRoaXMuY2xhc3NNaWNybyA9IHZhbHVlID09PSAnbWljcm8nO1xuICB9O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIGNsaWNrKCkge1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9ICF0aGlzLnNlbGVjdGVkO1xuICAgICAgdGhpcy5zZWxlY3RlZFRvZ2dsZWQuZW1pdCh7IHZhbHVlOiB0aGlzLnZhbHVlLCBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCB9KTtcblxuICAgICAgaWYgKHRoaXMuX2NoaXBzKSB7XG4gICAgICAgIHRoaXMuX2NoaXBzLnNlbGVjdGlvbkNoYW5nZWQodGhpcy5zZWxlY3RlZCwgdGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgcHVibGljIHZhbHVlO1xuICBcbiAgQElucHV0KCkgXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaWNvbmVkJykgXG4gIHB1YmxpYyBpY29uO1xuXG4gIEBJbnB1dCgpIHNldCBiYWNrZ3JvdW5kQ29sb3IodmFsdWUpIHtcbiAgICB0aGlzLl9iYWNrZ3JvdW5kQ29sb3IgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9O1xuXG4gIEBJbnB1dCgpIHNldCBib3JkZXJDb2xvcih2YWx1ZSkge1xuICAgIHRoaXMuc3R5bGVCb3JkZXJDb2xvciA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlU3R5bGVzKCk7XG4gIH1cbiAgQElucHV0KCkgc2V0IGNvbG9yKHZhbHVlKSB7XG4gICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVN0eWxlcygpO1xuICB9XG5cbiAgZ2V0IGNvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBvdXRsaW5lZCh2YWx1ZSkge1xuICAgIHRoaXMuX291dGxpbmVkID0gdmFsdWU7XG4gICAgdGhpcy51cGRhdGVTdHlsZXMoKTtcbiAgfTtcblxuICBnZXQgb3V0bGluZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX291dGxpbmVkO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHJlbW92YWJsZSh2YWx1ZSkge1xuICAgIHRoaXMuX3JlbW92YWJsZSA9IHZhbHVlO1xuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgZ2V0IHJlbW92YWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3ZhYmxlO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGFibGUodmFsdWUpIHtcbiAgICB0aGlzLl9zZWxlY3RhYmxlID0gdmFsdWU7XG4gIH07XG5cbiAgZ2V0IHNlbGVjdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWQodmFsdWUpIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH07XG5cbiAgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBpbWFnZSh2YWx1ZSkge1xuICAgIHRoaXMuX2ltYWdlID0gdmFsdWU7XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBnZXQgaW1hZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ltYWdlO1xuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZFRvZ2dsZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgJGRlc3Ryb3kgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX2JhY2tncm91bmRDb2xvciA9ICcnO1xuICBwcml2YXRlIF9jb2xvciA9ICcnO1xuICBwcml2YXRlIF9zaXplO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jaGlwczogRnNDaGlwc1NlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5fY2hpcHMpIHtcbiAgICAgIHRoaXMuX2NoaXBzLnJlZ2lzdGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5fY2hpcHMpIHtcbiAgICAgIHRoaXMuX2NoaXBzLmRlc3Ryb3kodGhpcyk7XG4gICAgfVxuXG4gICAgdGhpcy4kZGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy4kZGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShldmVudCkge1xuICAgIHRoaXMucmVtb3ZlZC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb250cmFzdFlJUUJsYWNrKGhleGNvbG9yKSB7XG4gICAgaWYgKCFoZXhjb2xvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaGV4Y29sb3IgPSBoZXhjb2xvci5yZXBsYWNlKCcjJywgJycpO1xuICAgIGNvbnN0IHIgPSBwYXJzZUludChoZXhjb2xvci5zdWJzdHIoMCwgMiksIDE2KTtcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4Y29sb3Iuc3Vic3RyKDIsIDIpLCAxNik7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleGNvbG9yLnN1YnN0cig0LCAyKSwgMTYpO1xuICAgIGNvbnN0IHlpcSA9ICgociAqIDI5OSkgKyAoZyAqIDU4NykgKyAoYiAqIDExNCkpIC8gMTAwMDtcblxuICAgIHJldHVybiB5aXEgPj0gMjAwO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdHlsZXMoKSB7XG4gICAgdGhpcy5zdHlsZUJhY2tncm91bmRDb2xvciA9IHRoaXMuX2JhY2tncm91bmRDb2xvcjtcblxuICAgIGlmICh0aGlzLl9jb2xvcikge1xuICAgICAgdGhpcy5zdHlsZUNvbG9yID0gdGhpcy5fY29sb3I7XG4gICAgfSBlbHNlIGlmICghdGhpcy5fb3V0bGluZWQpIHtcbiAgICAgIHRoaXMuc3R5bGVDb2xvciA9IHRoaXMuaXNDb250cmFzdFlJUUJsYWNrKHRoaXMuc3R5bGVCYWNrZ3JvdW5kQ29sb3IpID8gJyM0NzQ3NDcnIDogJyNmZmYnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9vdXRsaW5lZCkge1xuICAgICAgdGhpcy5zdHlsZUJhY2tncm91bmRDb2xvciA9ICcnO1xuXG4gICAgICBpZiAodGhpcy5fY29sb3IpIHtcbiAgICAgICAgdGhpcy5zdHlsZUJvcmRlckNvbG9yID0gdGhpcy5fY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxpbWcgKm5nSWY9XCJpbWFnZVwiIFtzcmNdPVwiaW1hZ2VcIiBjbGFzcz1cImltYWdlXCIgYWx0PVwiXCI+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2NoaXBzL2NoaXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9jaGlwcy9jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQzFDLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQWlCOUQsTUFBTSxPQUFPLGdCQUFnQjtJQWUzQixZQUNVLE1BQXlCLEVBQ3pCLGFBQTZCO1FBRDdCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQWZELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSTdDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFLeEIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBTWhDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FB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QyxpQkFBaUI7Z0JBRWQsT0FBTztzQkFBdEIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBmaW5kIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRnNDaGlwc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGlwcy5zZXJ2aWNlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1jaGlwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoaXBzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRnNDaGlwc0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIEZzQ2hpcHNTZXJ2aWNlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnNDaGlwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZnMtY2hpcHMnKSBwdWJsaWMgY2xhc3NGc0NoaXBzID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtY2hpcHMnKSBwdWJsaWMgY2xhc3NIYXNDaGlwcyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjb21wYXJlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZSA9IHRydWU7XG5cbiAgcHVibGljIG9uQ2hhbmdlOiAodmFsdWUpID0+IHZvaWQ7XG4gIHB1YmxpYyBvblRvdWNoOiAodmFsdWUpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdmFsdWUgPSBbXTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9jaGlwc1NlcnZpY2U6IEZzQ2hpcHNTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLl9zdWJzY3JpYmVUb0l0ZW1zQ2hhbmdlKCk7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9TZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaXBzU2VydmljZS5jaGlwcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWUpIHtcbiAgICBpZiAodGhpcy5fdmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgIHRoaXMub25Ub3VjaCh0aGlzLl92YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZUNoaXBzKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbikge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm4pIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbmdNb2RlbCB2YWx1ZSB3aGVuIHNlbGVjdGlvbiBjaGFuZ2VkXG4gICAqL1xuICBwcml2YXRlIF9zdWJzY3JpYmVUb1NlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICB0aGlzLl9jaGlwc1NlcnZpY2Uuc2VsZWN0aW9uQ2hhbmdlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoeyBzZWxlY3RlZCwgdmFsdWUgfSkgPT4ge1xuICAgICAgICBpZiAoIXNlbGVjdGVkKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVJbmRleCA9IHRoaXMudmFsdWUuZmluZEluZGV4KChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tcGFyZUZuKGl0ZW0sIHZhbHVlKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh2YWx1ZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUuc3BsaWNlKHZhbHVlSW5kZXgsIDEpO1xuXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaCh0aGlzLl92YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmFsdWUucHVzaCh2YWx1ZSk7XG5cbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2godGhpcy5fdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgc2VsZWN0aW9uIGlmIGl0ZW0gd2FzIGFkZGVkIG9yIHJlbW92ZWRcbiAgICovXG4gIHByaXZhdGUgX3N1YnNjcmliZVRvSXRlbXNDaGFuZ2UoKSB7XG4gICAgdGhpcy5fY2hpcHNTZXJ2aWNlLmNoaXBJdGVtc0NoYW5nZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xhc3NIYXNDaGlwcyA9ICEhdGhpcy5fY2hpcHNTZXJ2aWNlLmNoaXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ2hpcHMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcGFyZUZuKG8xLCBvMikge1xuICAgIGlmICh0aGlzLmNvbXBhcmUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUobzEsIG8yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbzEgPT09IG8yO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ2hpcHMoKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJiB0aGlzLmNoaXBzKSB7XG4gICAgICB0aGlzLmNoaXBzLmZvckVhY2goKGNoaXApID0+IHtcblxuICAgICAgICBjaGlwLnNlbGVjdGVkID0gZmluZCh0aGlzLnZhbHVlLCAobykgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9jb21wYXJlRm4obywgY2hpcC52YWx1ZSk7XG4gICAgICAgIH0pICE9PSB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|