@firestitch/popover 12.3.0 → 12.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/app/class/popover-ref.d.ts +34 -34
  2. package/app/components/popover/popover.component.d.ts +6 -6
  3. package/app/components/popover-wrapper/popover-wrapper.component.d.ts +40 -40
  4. package/app/directives/popover.directive.d.ts +55 -55
  5. package/app/enums/position.d.ts +6 -6
  6. package/app/fs-popover.module.d.ts +11 -11
  7. package/app/helpers/create-injector.d.ts +4 -4
  8. package/app/helpers/create-overlay-ref.d.ts +4 -4
  9. package/app/helpers/create-position-strategy.d.ts +4 -4
  10. package/app/helpers/create-template-portal.d.ts +4 -4
  11. package/app/helpers/point-in-rect.d.ts +1 -1
  12. package/app/interfaces/popover-config.interface.d.ts +16 -16
  13. package/app/services/popover.service.d.ts +21 -21
  14. package/bundles/firestitch-popover.umd.js +1001 -1001
  15. package/esm2015/app/class/popover-ref.js +85 -85
  16. package/esm2015/app/components/popover/popover.component.js +19 -19
  17. package/esm2015/app/components/popover-wrapper/popover-wrapper.component.js +122 -122
  18. package/esm2015/app/directives/popover.directive.js +221 -221
  19. package/esm2015/app/enums/position.js +7 -7
  20. package/esm2015/app/fs-popover.module.js +37 -37
  21. package/esm2015/app/helpers/create-injector.js +8 -8
  22. package/esm2015/app/helpers/create-overlay-ref.js +11 -11
  23. package/esm2015/app/helpers/create-position-strategy.js +55 -55
  24. package/esm2015/app/helpers/create-template-portal.js +4 -4
  25. package/esm2015/app/helpers/point-in-rect.js +3 -3
  26. package/esm2015/app/interfaces/popover-config.interface.js +1 -1
  27. package/esm2015/app/services/popover.service.js +63 -63
  28. package/esm2015/firestitch-popover.js +4 -4
  29. package/esm2015/public_api.js +8 -8
  30. package/fesm2015/firestitch-popover.js +578 -578
  31. package/firestitch-popover.d.ts +5 -5
  32. package/package.json +1 -1
  33. package/public_api.d.ts +6 -6
  34. package/styles.scss +2 -2
@@ -1,86 +1,86 @@
1
- import { BehaviorSubject, combineLatest } from 'rxjs';
2
- import { map } from 'rxjs/operators';
3
- export class FsPopoverRef {
4
- constructor(config = {}) {
5
- this._autoShow$ = new BehaviorSubject(true);
6
- this._autoClose$ = new BehaviorSubject(true);
7
- this._componentLoading$ = new BehaviorSubject(true);
8
- this._init(config);
9
- }
10
- get loadingDiameter() {
11
- return this._loadingDiameter;
12
- }
13
- get size() {
14
- return this._size;
15
- }
16
- get theme() {
17
- return this._theme;
18
- }
19
- get loading() {
20
- return this._loading;
21
- }
22
- get autoShow$() {
23
- return this._autoShow$.asObservable();
24
- }
25
- get autoShow() {
26
- return this._autoShow$.getValue();
27
- }
28
- set autoShow(value) {
29
- this._autoShow$.next(value);
30
- }
31
- get autoClose$() {
32
- return this._autoClose$.asObservable();
33
- }
34
- get autoClose() {
35
- return this._autoClose$.getValue();
36
- }
37
- set autoClose(value) {
38
- this._autoClose$.next(value);
39
- }
40
- get componentVisible$() {
41
- return combineLatest([
42
- this.autoShow$,
43
- this.componentLoading$,
44
- ]).pipe(map(([autoShow, componentLoading]) => {
45
- return autoShow || !componentLoading;
46
- }));
47
- }
48
- get componentLoading$() {
49
- return this._componentLoading$.asObservable();
50
- }
51
- get componentLoading() {
52
- return this._componentLoading$.getValue();
53
- }
54
- get wrapperClass() {
55
- return this._wrapperClass;
56
- }
57
- get maxWidth() {
58
- return this._maxWidth;
59
- }
60
- show() {
61
- setTimeout(() => {
62
- this._componentLoading$.next(false);
63
- setTimeout(() => {
64
- this.updatePosition();
65
- });
66
- });
67
- }
68
- close() {
69
- this.overlayRef.detach();
70
- this._componentLoading$.next(true);
71
- }
72
- updatePosition() {
73
- this.overlayRef.updatePosition();
74
- }
75
- _init(config) {
76
- this._wrapperClass = config.wrapperClass;
77
- this._maxWidth = config.maxWidth;
78
- this._loading = config.loading;
79
- this._loadingDiameter = config.loadingDiameter;
80
- this._size = config.size;
81
- this._theme = config.theme;
82
- this._autoShow$.next(config.autoShow);
83
- this._autoClose$.next(config.autoClose);
84
- }
85
- }
1
+ import { BehaviorSubject, combineLatest } from 'rxjs';
2
+ import { map } from 'rxjs/operators';
3
+ export class FsPopoverRef {
4
+ constructor(config = {}) {
5
+ this._autoShow$ = new BehaviorSubject(true);
6
+ this._autoClose$ = new BehaviorSubject(true);
7
+ this._componentLoading$ = new BehaviorSubject(true);
8
+ this._init(config);
9
+ }
10
+ get loadingDiameter() {
11
+ return this._loadingDiameter;
12
+ }
13
+ get size() {
14
+ return this._size;
15
+ }
16
+ get theme() {
17
+ return this._theme;
18
+ }
19
+ get loading() {
20
+ return this._loading;
21
+ }
22
+ get autoShow$() {
23
+ return this._autoShow$.asObservable();
24
+ }
25
+ get autoShow() {
26
+ return this._autoShow$.getValue();
27
+ }
28
+ set autoShow(value) {
29
+ this._autoShow$.next(value);
30
+ }
31
+ get autoClose$() {
32
+ return this._autoClose$.asObservable();
33
+ }
34
+ get autoClose() {
35
+ return this._autoClose$.getValue();
36
+ }
37
+ set autoClose(value) {
38
+ this._autoClose$.next(value);
39
+ }
40
+ get componentVisible$() {
41
+ return combineLatest([
42
+ this.autoShow$,
43
+ this.componentLoading$,
44
+ ]).pipe(map(([autoShow, componentLoading]) => {
45
+ return autoShow || !componentLoading;
46
+ }));
47
+ }
48
+ get componentLoading$() {
49
+ return this._componentLoading$.asObservable();
50
+ }
51
+ get componentLoading() {
52
+ return this._componentLoading$.getValue();
53
+ }
54
+ get wrapperClass() {
55
+ return this._wrapperClass;
56
+ }
57
+ get maxWidth() {
58
+ return this._maxWidth;
59
+ }
60
+ show() {
61
+ setTimeout(() => {
62
+ this._componentLoading$.next(false);
63
+ setTimeout(() => {
64
+ this.updatePosition();
65
+ });
66
+ });
67
+ }
68
+ close() {
69
+ this.overlayRef.detach();
70
+ this._componentLoading$.next(true);
71
+ }
72
+ updatePosition() {
73
+ this.overlayRef.updatePosition();
74
+ }
75
+ _init(config) {
76
+ this._wrapperClass = config.wrapperClass;
77
+ this._maxWidth = config.maxWidth;
78
+ this._loading = config.loading;
79
+ this._loadingDiameter = config.loadingDiameter;
80
+ this._size = config.size;
81
+ this._theme = config.theme;
82
+ this._autoShow$.next(config.autoShow);
83
+ this._autoClose$.next(config.autoClose);
84
+ }
85
+ }
86
86
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NsYXNzL3BvcG92ZXItcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtyQyxNQUFNLE9BQU8sWUFBWTtJQWN2QixZQUFZLFNBQXlCLEVBQUU7UUFWdEIsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ2hELGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDakQsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFTdkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxhQUFhLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsaUJBQWlCO1NBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFO1lBQ25DLE9BQU8sUUFBUSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVNLElBQUk7UUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sS0FBSyxDQUFDLE1BQXNCO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSVBvcG92ZXJDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvcG92ZXItY29uZmlnLmludGVyZmFjZSc7XG5cblxuZXhwb3J0IGNsYXNzIEZzUG9wb3ZlclJlZiB7XG5cbiAgcHVibGljIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b1Nob3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXV0b0Nsb3NlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBvbmVudExvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSBfbWF4V2lkdGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfd3JhcHBlckNsYXNzOiBzdHJpbmc7XG4gIHByaXZhdGUgX2xvYWRpbmdEaWFtZXRlcjogbnVtYmVyO1xuICBwcml2YXRlIF9sb2FkaW5nOiBib29sZWFuO1xuICBwcml2YXRlIF90aGVtZTogc3RyaW5nO1xuICBwcml2YXRlIF9zaXplOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBJUG9wb3ZlckNvbmZpZyA9IHt9KSB7XG4gICAgdGhpcy5faW5pdChjb25maWcpO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nRGlhbWV0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmdEaWFtZXRlcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGhlbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RoZW1lO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICB9XG5cbiAgcHVibGljIGdldCBhdXRvU2hvdyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9TaG93JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0b1Nob3coKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9TaG93JC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBhdXRvU2hvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9TaG93JC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0b0Nsb3NlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b0Nsb3NlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0b0Nsb3NlKCkge1xuICAgIHJldHVybiB0aGlzLl9hdXRvQ2xvc2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGF1dG9DbG9zZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9DbG9zZSQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbXBvbmVudFZpc2libGUkKCkge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYXV0b1Nob3ckLFxuICAgICAgdGhpcy5jb21wb25lbnRMb2FkaW5nJCxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbYXV0b1Nob3csIGNvbXBvbmVudExvYWRpbmddKSA9PiB7XG4gICAgICAgIHJldHVybiBhdXRvU2hvdyB8fCAhY29tcG9uZW50TG9hZGluZztcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHVibGljIGdldCBjb21wb25lbnRMb2FkaW5nJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50TG9hZGluZyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbXBvbmVudExvYWRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudExvYWRpbmckLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHdyYXBwZXJDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5fd3JhcHBlckNsYXNzO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXhXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4V2lkdGg7XG4gIH1cblxuICBwdWJsaWMgc2hvdygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2NvbXBvbmVudExvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICB0aGlzLl9jb21wb25lbnRMb2FkaW5nJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdChjb25maWc6IElQb3BvdmVyQ29uZmlnKSB7XG4gICAgdGhpcy5fd3JhcHBlckNsYXNzID0gY29uZmlnLndyYXBwZXJDbGFzcztcbiAgICB0aGlzLl9tYXhXaWR0aCA9IGNvbmZpZy5tYXhXaWR0aDtcbiAgICB0aGlzLl9sb2FkaW5nID0gY29uZmlnLmxvYWRpbmc7XG4gICAgdGhpcy5fbG9hZGluZ0RpYW1ldGVyID0gY29uZmlnLmxvYWRpbmdEaWFtZXRlcjtcbiAgICB0aGlzLl9zaXplID0gY29uZmlnLnNpemU7XG4gICAgdGhpcy5fdGhlbWUgPSBjb25maWcudGhlbWU7XG4gICAgdGhpcy5fYXV0b1Nob3ckLm5leHQoY29uZmlnLmF1dG9TaG93KTtcbiAgICB0aGlzLl9hdXRvQ2xvc2UkLm5leHQoY29uZmlnLmF1dG9DbG9zZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,20 +1,20 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { FsPopoverDirective } from '../../directives/popover.directive';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class FsPopoverComponent extends FsPopoverDirective {
6
- }
7
- FsPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8
- FsPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsPopoverComponent, selector: "fs-popover", host: { classAttribute: "fs-popover-component" }, usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n", directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsPopoverComponent, decorators: [{
10
- type: Component,
11
- args: [{
12
- selector: 'fs-popover',
13
- templateUrl: 'popover.component.html',
14
- changeDetection: ChangeDetectionStrategy.OnPush,
15
- host: {
16
- 'class': 'fs-popover-component',
17
- }
18
- }]
19
- }] });
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FsPopoverDirective } from '../../directives/popover.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class FsPopoverComponent extends FsPopoverDirective {
6
+ }
7
+ FsPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8
+ FsPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsPopoverComponent, selector: "fs-popover", host: { classAttribute: "fs-popover-component" }, usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n", directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsPopoverComponent, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ selector: 'fs-popover',
13
+ templateUrl: 'popover.component.html',
14
+ changeDetection: ChangeDetectionStrategy.OnPush,
15
+ host: {
16
+ 'class': 'fs-popover-component',
17
+ }
18
+ }]
19
+ }] });
20
20
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBV3hFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7O2dIQUE3QyxrQkFBa0I7b0dBQWxCLGtCQUFrQiwySENaL0IsNkZBR0E7NEZEU2Esa0JBQWtCO2tCQVI5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSxzQkFBc0I7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRnNQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wb3BvdmVyLmRpcmVjdGl2ZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAncG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2ZzLXBvcG92ZXItY29tcG9uZW50JyxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBGc1BvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBGc1BvcG92ZXJEaXJlY3RpdmUge31cbiIsIjxzcGFuIFtuZ0NsYXNzXT1cInsncG9wb3Zlci1jb250YWluZXInOiBlbmFibGVkfVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3NwYW4+XG4iXX0=
@@ -1,123 +1,123 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, ViewChild, NgZone, Renderer2, } from '@angular/core';
2
- import { BasePortalOutlet, CdkPortalOutlet, } from '@angular/cdk/portal';
3
- import { fromEvent, Subject } from 'rxjs';
4
- import { debounceTime, filter, takeUntil } from 'rxjs/operators';
5
- import { FsPopoverRef } from '../../class/popover-ref';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../class/popover-ref";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@angular/cdk/portal";
10
- export class FsPopoverWrapperComponent extends BasePortalOutlet {
11
- constructor(popoverRef, _el, _zone, _renderer) {
12
- super();
13
- this.popoverRef = popoverRef;
14
- this._el = _el;
15
- this._zone = _zone;
16
- this._renderer = _renderer;
17
- this._updatePosition = new Subject();
18
- this._destroy$ = new Subject();
19
- this._updateClass();
20
- this.wrapperClass = this.popoverRef.wrapperClass;
21
- this.maxWidth = this.popoverRef.maxWidth;
22
- }
23
- set maxWidth(value) {
24
- this._el.nativeElement.style.maxWidth = value ? value + 'px' : void 0;
25
- }
26
- set wrapperClass(value) {
27
- this._wrapperClass = value;
28
- this._updateClass();
29
- }
30
- ngOnInit() {
31
- if (!this.popoverRef.autoShow && this.popoverRef.componentLoading) {
32
- this._watchMousePosition();
33
- }
34
- this._observeContentChanges();
35
- this._listenUpdatePositionRequests();
36
- }
37
- ngOnDestroy() {
38
- this._contentChangesObserver.disconnect();
39
- this._destroy$.next();
40
- this._destroy$.complete();
41
- }
42
- /**
43
- * Attach a TemplatePortal as content to this popover container.
44
- * @param portal Portal to be attached as the popover content.
45
- */
46
- attachTemplatePortal(portal) {
47
- if (this._portalOutlet.hasAttached()) {
48
- throw Error('Popover template already attached');
49
- }
50
- return this._portalOutlet.attachTemplatePortal(portal);
51
- }
52
- /**
53
- * Attach a ComponentPortal as content to this popover container.
54
- * @param portal Portal to be attached as the popover content.
55
- */
56
- attachComponentPortal(portal) {
57
- if (this._portalOutlet.hasAttached()) {
58
- throw Error('Popover component already attached');
59
- }
60
- return this._portalOutlet.attachComponentPortal(portal);
61
- }
62
- setTextualContent(content) {
63
- this.content = content;
64
- }
65
- updatePosition() {
66
- this._updatePosition.next();
67
- }
68
- _watchMousePosition() {
69
- const componentVisibilityChange$ = this.popoverRef.componentVisible$
70
- .pipe(filter((value) => value === true));
71
- this._zone.runOutsideAngular(() => {
72
- fromEvent(document, 'mousemove')
73
- .pipe(takeUntil(componentVisibilityChange$), takeUntil(this._destroy$))
74
- .subscribe((e) => {
75
- this.spinner.nativeElement.style.left = e.x + 'px';
76
- this.spinner.nativeElement.style.top = (e.y + 20) + 'px';
77
- });
78
- });
79
- }
80
- _updateClass() {
81
- if (this._wrapperClass) {
82
- this._renderer.addClass(this._el.nativeElement, this._wrapperClass);
83
- }
84
- }
85
- _observeContentChanges() {
86
- const config = {
87
- childList: true,
88
- subtree: true
89
- };
90
- this._contentChangesObserver = new MutationObserver(() => {
91
- this.updatePosition();
92
- });
93
- this._contentChangesObserver.observe(this._el.nativeElement, config);
94
- }
95
- _listenUpdatePositionRequests() {
96
- this._updatePosition
97
- .pipe(debounceTime(50), takeUntil(this._destroy$))
98
- .subscribe(() => {
99
- this.popoverRef.updatePosition();
100
- });
101
- }
102
- }
103
- FsPopoverWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsPopoverWrapperComponent, deps: [{ token: i1.FsPopoverRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
104
- FsPopoverWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsPopoverWrapperComponent, selector: "fs-popover-wrapper", host: { classAttribute: "fs-popover-wrapper" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "spinner", first: true, predicate: ["spinner"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n <ng-container *ngIf=\"content\">\n {{content}}\n </ng-container>\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n<div class=\"loading-spinner\"\n #spinner\n *ngIf=\"popoverRef.loading && !(popoverRef.componentVisible$ | async)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n</div>\n", styles: [".wrapper{padding:6px;animation:fadeIn ease .2s}.wrapper.hidden{display:none}.wrapper .popover-content{background:#fff;border-radius:4px;padding:8px;color:#1b1b1b;box-sizing:border-box;overflow:hidden}.wrapper.theme-dark .popover-content{background-color:#707070;color:#fff}.wrapper.size-small .popover-content{font-size:80%}.wrapper.size-tiny .popover-content{font-size:70%}.wrapper .fs-popover-arrow{width:0;height:0;font-size:0;line-height:0;position:absolute;z-index:200;z-index:1}.wrapper .fs-popover-arrow.dark{z-index:0}::ng-deep .fs-popover-top .fs-popover-arrow,::ng-deep .fs-popover-bottom .fs-popover-arrow{border-left:10px solid transparent;border-right:10px solid transparent}::ng-deep .fs-popover-left .fs-popover-arrow,::ng-deep .fs-popover-right .fs-popover-arrow{border-top:10px solid transparent;border-bottom:10px solid transparent}::ng-deep .fs-popover-top .fs-popover-arrow{bottom:-3px;left:calc(50% - 10px);border-top:10px solid #fff}::ng-deep .fs-popover-top .fs-popover-arrow.dark{border-top-color:#dfdfdf40;bottom:-4px}::ng-deep .fs-popover-bottom .fs-popover-arrow{top:-3px;left:calc(50% - 10px);border-bottom:10px solid #fff}::ng-deep .fs-popover-bottom .fs-popover-arrow.dark{border-bottom-color:#dfdfdf40;top:-4px}::ng-deep .fs-popover-left .fs-popover-arrow{left:-3px;top:calc(50% - 10px);border-right:10px solid #fff}::ng-deep .fs-popover-left .fs-popover-arrow.dark{border-right-color:#dfdfdf40;left:-4px}::ng-deep .fs-popover-right .fs-popover-arrow{right:-3px;top:calc(50% - 10px);border-left:10px solid #fff}::ng-deep .fs-popover-right .fs-popover-arrow.dark{border-left-color:#dfdfdf40;right:-4px}::ng-deep .fs-popover-bottom .wrapper.theme-dark .fs-popover-arrow{border-bottom-color:#707070}::ng-deep .fs-popover-left .wrapper.theme-dark .fs-popover-arrow{border-right-color:#707070}::ng-deep .fs-popover-right .wrapper.theme-dark .fs-popover-arrow{border-left-color:#707070}::ng-deep .fs-popover-top .wrapper.theme-dark .fs-popover-arrow{border-top-color:#707070}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsPopoverWrapperComponent, decorators: [{
106
- type: Component,
107
- args: [{
108
- selector: 'fs-popover-wrapper',
109
- templateUrl: 'popover-wrapper.component.html',
110
- styleUrls: ['popover-wrapper.component.scss'],
111
- changeDetection: ChangeDetectionStrategy.OnPush,
112
- host: {
113
- 'class': 'fs-popover-wrapper',
114
- },
115
- }]
116
- }], ctorParameters: function () { return [{ type: i1.FsPopoverRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { _portalOutlet: [{
117
- type: ViewChild,
118
- args: [CdkPortalOutlet, { static: true }]
119
- }], spinner: [{
120
- type: ViewChild,
121
- args: ['spinner']
122
- }] } });
1
+ import { ChangeDetectionStrategy, Component, ElementRef, ViewChild, NgZone, Renderer2, } from '@angular/core';
2
+ import { BasePortalOutlet, CdkPortalOutlet, } from '@angular/cdk/portal';
3
+ import { fromEvent, Subject } from 'rxjs';
4
+ import { debounceTime, filter, takeUntil } from 'rxjs/operators';
5
+ import { FsPopoverRef } from '../../class/popover-ref';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../class/popover-ref";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@angular/cdk/portal";
10
+ export class FsPopoverWrapperComponent extends BasePortalOutlet {
11
+ constructor(popoverRef, _el, _zone, _renderer) {
12
+ super();
13
+ this.popoverRef = popoverRef;
14
+ this._el = _el;
15
+ this._zone = _zone;
16
+ this._renderer = _renderer;
17
+ this._updatePosition = new Subject();
18
+ this._destroy$ = new Subject();
19
+ this._updateClass();
20
+ this.wrapperClass = this.popoverRef.wrapperClass;
21
+ this.maxWidth = this.popoverRef.maxWidth;
22
+ }
23
+ set maxWidth(value) {
24
+ this._el.nativeElement.style.maxWidth = value ? value + 'px' : void 0;
25
+ }
26
+ set wrapperClass(value) {
27
+ this._wrapperClass = value;
28
+ this._updateClass();
29
+ }
30
+ ngOnInit() {
31
+ if (!this.popoverRef.autoShow && this.popoverRef.componentLoading) {
32
+ this._watchMousePosition();
33
+ }
34
+ this._observeContentChanges();
35
+ this._listenUpdatePositionRequests();
36
+ }
37
+ ngOnDestroy() {
38
+ this._contentChangesObserver.disconnect();
39
+ this._destroy$.next();
40
+ this._destroy$.complete();
41
+ }
42
+ /**
43
+ * Attach a TemplatePortal as content to this popover container.
44
+ * @param portal Portal to be attached as the popover content.
45
+ */
46
+ attachTemplatePortal(portal) {
47
+ if (this._portalOutlet.hasAttached()) {
48
+ throw Error('Popover template already attached');
49
+ }
50
+ return this._portalOutlet.attachTemplatePortal(portal);
51
+ }
52
+ /**
53
+ * Attach a ComponentPortal as content to this popover container.
54
+ * @param portal Portal to be attached as the popover content.
55
+ */
56
+ attachComponentPortal(portal) {
57
+ if (this._portalOutlet.hasAttached()) {
58
+ throw Error('Popover component already attached');
59
+ }
60
+ return this._portalOutlet.attachComponentPortal(portal);
61
+ }
62
+ setTextualContent(content) {
63
+ this.content = content;
64
+ }
65
+ updatePosition() {
66
+ this._updatePosition.next();
67
+ }
68
+ _watchMousePosition() {
69
+ const componentVisibilityChange$ = this.popoverRef.componentVisible$
70
+ .pipe(filter((value) => value === true));
71
+ this._zone.runOutsideAngular(() => {
72
+ fromEvent(document, 'mousemove')
73
+ .pipe(takeUntil(componentVisibilityChange$), takeUntil(this._destroy$))
74
+ .subscribe((e) => {
75
+ this.spinner.nativeElement.style.left = e.x + 'px';
76
+ this.spinner.nativeElement.style.top = (e.y + 20) + 'px';
77
+ });
78
+ });
79
+ }
80
+ _updateClass() {
81
+ if (this._wrapperClass) {
82
+ this._renderer.addClass(this._el.nativeElement, this._wrapperClass);
83
+ }
84
+ }
85
+ _observeContentChanges() {
86
+ const config = {
87
+ childList: true,
88
+ subtree: true
89
+ };
90
+ this._contentChangesObserver = new MutationObserver(() => {
91
+ this.updatePosition();
92
+ });
93
+ this._contentChangesObserver.observe(this._el.nativeElement, config);
94
+ }
95
+ _listenUpdatePositionRequests() {
96
+ this._updatePosition
97
+ .pipe(debounceTime(50), takeUntil(this._destroy$))
98
+ .subscribe(() => {
99
+ this.popoverRef.updatePosition();
100
+ });
101
+ }
102
+ }
103
+ FsPopoverWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsPopoverWrapperComponent, deps: [{ token: i1.FsPopoverRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
104
+ FsPopoverWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsPopoverWrapperComponent, selector: "fs-popover-wrapper", host: { classAttribute: "fs-popover-wrapper" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "spinner", first: true, predicate: ["spinner"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n <ng-container *ngIf=\"content\">\n {{content}}\n </ng-container>\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n<div class=\"loading-spinner\"\n #spinner\n *ngIf=\"popoverRef.loading && !(popoverRef.componentVisible$ | async)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n</div>\n", styles: [".wrapper{padding:6px;animation:fadeIn ease .2s}.wrapper.hidden{display:none}.wrapper .popover-content{background:#fff;border-radius:4px;padding:8px;color:#1b1b1b;box-sizing:border-box;overflow:hidden}.wrapper.theme-dark .popover-content{background-color:#707070;color:#fff}.wrapper.size-small .popover-content{font-size:80%}.wrapper.size-tiny .popover-content{font-size:70%}.wrapper .fs-popover-arrow{width:0;height:0;font-size:0;line-height:0;position:absolute;z-index:200;z-index:1}.wrapper .fs-popover-arrow.dark{z-index:0}::ng-deep .fs-popover-top .fs-popover-arrow,::ng-deep .fs-popover-bottom .fs-popover-arrow{border-left:10px solid transparent;border-right:10px solid transparent}::ng-deep .fs-popover-left .fs-popover-arrow,::ng-deep .fs-popover-right .fs-popover-arrow{border-top:10px solid transparent;border-bottom:10px solid transparent}::ng-deep .fs-popover-top .fs-popover-arrow{bottom:-3px;left:calc(50% - 10px);border-top:10px solid #fff}::ng-deep .fs-popover-top .fs-popover-arrow.dark{border-top-color:#dfdfdf40;bottom:-4px}::ng-deep .fs-popover-bottom .fs-popover-arrow{top:-3px;left:calc(50% - 10px);border-bottom:10px solid #fff}::ng-deep .fs-popover-bottom .fs-popover-arrow.dark{border-bottom-color:#dfdfdf40;top:-4px}::ng-deep .fs-popover-left .fs-popover-arrow{left:-3px;top:calc(50% - 10px);border-right:10px solid #fff}::ng-deep .fs-popover-left .fs-popover-arrow.dark{border-right-color:#dfdfdf40;left:-4px}::ng-deep .fs-popover-right .fs-popover-arrow{right:-3px;top:calc(50% - 10px);border-left:10px solid #fff}::ng-deep .fs-popover-right .fs-popover-arrow.dark{border-left-color:#dfdfdf40;right:-4px}::ng-deep .fs-popover-bottom .wrapper.theme-dark .fs-popover-arrow{border-bottom-color:#707070}::ng-deep .fs-popover-left .wrapper.theme-dark .fs-popover-arrow{border-right-color:#707070}::ng-deep .fs-popover-right .wrapper.theme-dark .fs-popover-arrow{border-left-color:#707070}::ng-deep .fs-popover-top .wrapper.theme-dark .fs-popover-arrow{border-top-color:#707070}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], pipes: { "async": i2.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsPopoverWrapperComponent, decorators: [{
106
+ type: Component,
107
+ args: [{
108
+ selector: 'fs-popover-wrapper',
109
+ templateUrl: 'popover-wrapper.component.html',
110
+ styleUrls: ['popover-wrapper.component.scss'],
111
+ changeDetection: ChangeDetectionStrategy.OnPush,
112
+ host: {
113
+ 'class': 'fs-popover-wrapper',
114
+ },
115
+ }]
116
+ }], ctorParameters: function () { return [{ type: i1.FsPopoverRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { _portalOutlet: [{
117
+ type: ViewChild,
118
+ args: [CdkPortalOutlet, { static: true }]
119
+ }], spinner: [{
120
+ type: ViewChild,
121
+ args: ['spinner']
122
+ }] } });
123
123
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFFVixTQUFTLEVBRVQsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FHaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBWXZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUFnQjdELFlBQ1MsVUFBd0IsRUFDdkIsR0FBZSxFQUNmLEtBQWEsRUFDYixTQUFvQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUxELGVBQVUsR0FBVixVQUFVLENBQWM7UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBUnRCLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV0QyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVN0QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxD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QUFvQjtxQkFDOUI7aUJBQ0Y7eUtBSVEsYUFBYTtzQkFEbkIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlyQyxPQUFPO3NCQURiLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBWaWV3Q2hpbGQsXG4gIE9uRGVzdHJveSxcbiAgTmdab25lLFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEJhc2VQb3J0YWxPdXRsZXQsXG4gIENka1BvcnRhbE91dGxldCxcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBUZW1wbGF0ZVBvcnRhbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRnNQb3BvdmVyUmVmIH0gZnJvbSAnLi4vLi4vY2xhc3MvcG9wb3Zlci1yZWYnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLXBvcG92ZXItd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAncG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICdwb3BvdmVyLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2ZzLXBvcG92ZXItd3JhcHBlcicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEZzUG9wb3ZlcldyYXBwZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlUG9ydGFsT3V0bGV0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgX3BvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuXG4gIEBWaWV3Q2hpbGQoJ3NwaW5uZXInKVxuICBwdWJsaWMgc3Bpbm5lcjogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgY29udGVudDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3dyYXBwZXJDbGFzczogc3RyaW5nO1xuICBwcml2YXRlIF9jb250ZW50Q2hhbmdlc09ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuICBwcml2YXRlIF91cGRhdGVQb3NpdGlvbiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwb3BvdmVyUmVmOiBGc1BvcG92ZXJSZWYsXG4gICAgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fdXBkYXRlQ2xhc3MoKTtcblxuICAgIHRoaXMud3JhcHBlckNsYXNzID0gdGhpcy5wb3BvdmVyUmVmLndyYXBwZXJDbGFzcztcbiAgICB0aGlzLm1heFdpZHRoID0gdGhpcy5wb3BvdmVyUmVmLm1heFdpZHRoO1xuICB9XG5cbiAgcHVibGljIHNldCBtYXhXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5zdHlsZS5tYXhXaWR0aCA9IHZhbHVlID8gdmFsdWUgKyAncHgnIDogdm9pZCAwO1xuICB9XG5cbiAgcHVibGljIHNldCB3cmFwcGVyQ2xhc3ModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3dyYXBwZXJDbGFzcyA9IHZhbHVlO1xuICAgIHRoaXMuX3VwZGF0ZUNsYXNzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBvcG92ZXJSZWYuYXV0b1Nob3cgJiYgdGhpcy5wb3BvdmVyUmVmLmNvbXBvbmVudExvYWRpbmcpIHtcbiAgICAgIHRoaXMuX3dhdGNoTW91c2VQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHRoaXMuX29ic2VydmVDb250ZW50Q2hhbmdlcygpO1xuICAgIHRoaXMuX2xpc3RlblVwZGF0ZVBvc2l0aW9uUmVxdWVzdHMoKTtcbiAgfVxuXG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2NvbnRlbnRDaGFuZ2VzT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCBhIFRlbXBsYXRlUG9ydGFsIGFzIGNvbnRlbnQgdG8gdGhpcyBwb3BvdmVyIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQgYXMgdGhlIHBvcG92ZXIgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZVBvcnRhbDxDPihwb3J0YWw6IFRlbXBsYXRlUG9ydGFsPEM+KTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcblxuICAgIGlmICh0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1BvcG92ZXIgdGVtcGxhdGUgYWxyZWFkeSBhdHRhY2hlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwocG9ydGFsKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEF0dGFjaCBhIENvbXBvbmVudFBvcnRhbCBhcyBjb250ZW50IHRvIHRoaXMgcG9wb3ZlciBjb250YWluZXIuXG4gICAqIEBwYXJhbSBwb3J0YWwgUG9ydGFsIHRvIGJlIGF0dGFjaGVkIGFzIHRoZSBwb3BvdmVyIGNvbnRlbnQuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoQ29tcG9uZW50UG9ydGFsPFQ+KHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcblxuICAgIGlmICh0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1BvcG92ZXIgY29tcG9uZW50IGFscmVhZHkgYXR0YWNoZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaENvbXBvbmVudFBvcnRhbChwb3J0YWwpO1xuICB9XG5cbiAgcHVibGljIHNldFRleHR1YWxDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgdGhpcy5fdXBkYXRlUG9zaXRpb24ubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfd2F0Y2hNb3VzZVBvc2l0aW9uKCkge1xuICAgIGNvbnN0IGNvbXBvbmVudFZpc2liaWxpdHlDaGFuZ2UkID0gdGhpcy5wb3BvdmVyUmVmLmNvbXBvbmVudFZpc2libGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHRydWUpXG4gICAgICApO1xuXG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwoY29tcG9uZW50VmlzaWJpbGl0eUNoYW5nZSQpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBlLnggKyAncHgnO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IChlLnkgKyAyMCkgKyAncHgnO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNsYXNzKCkge1xuICAgIGlmICh0aGlzLl93cmFwcGVyQ2xhc3MpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3dyYXBwZXJDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZUNvbnRlbnRDaGFuZ2VzKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWVcbiAgICB9O1xuXG4gICAgdGhpcy5fY29udGVudENoYW5nZXNPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2NvbnRlbnRDaGFuZ2VzT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuVXBkYXRlUG9zaXRpb25SZXF1ZXN0cygpIHtcbiAgICB0aGlzLl91cGRhdGVQb3NpdGlvblxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wb3BvdmVyUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid3JhcHBlclwiIFtuZ0NsYXNzXT1cIntcbiAgJ3RoZW1lLWRhcmsnIDogcG9wb3ZlclJlZi50aGVtZSA9PT0gJ2RhcmsnLFxuICAnc2l6ZS10aW55JzogcG9wb3ZlclJlZi5zaXplID09PSAndGlueScsXG4gICdzaXplLXNtYWxsJzogcG9wb3ZlclJlZi5zaXplID09PSAnc21hbGwnLFxuICAnaGlkZGVuJzogIShwb3BvdmVyUmVmLmNvbXBvbmVudFZpc2libGUkIHwgYXN5bmMpXG4gIH1cIj5cbiAgPGRpdiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejQgcG9wb3Zlci1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRcIj5cbiAgICAgIHt7Y29udGVudH19XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0PjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmcy1wb3BvdmVyLWFycm93IGxpZ2h0XCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcy1wb3BvdmVyLWFycm93IGRhcmtcIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCJcbiAgICAjc3Bpbm5lclxuICAgICpuZ0lmPVwicG9wb3ZlclJlZi5sb2FkaW5nICYmICEocG9wb3ZlclJlZi5jb21wb25lbnRWaXNpYmxlJCB8IGFzeW5jKVwiPlxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBbYXR0ci53aWR0aF09XCJwb3BvdmVyUmVmLmxvYWRpbmdEaWFtZXRlclwiIFthdHRyLmhlaWdodF09XCJwb3BvdmVyUmVmLmxvYWRpbmdEaWFtZXRlclwiIHZpZXdCb3g9XCIwIDAgNDIgNDJcIiBzdHJva2U9XCJncmV5XCI+XG4gICAgPGcgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMSAxKVwiIHN0cm9rZS13aWR0aD1cIjNcIj5cbiAgICAgICAgPGNpcmNsZSBzdHJva2Utb3BhY2l0eT1cIi41XCIgY3g9XCIxOFwiIGN5PVwiMThcIiByPVwiMThcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMThcIj5cbiAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGZyb209XCIwIDE4IDE4XCIgdG89XCIzNjAgMTggMThcIiBkdXI9XCIxc1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz5cbiAgICAgICAgPC9wYXRoPlxuICAgICAgPC9nPlxuICAgIDwvZz5cbiAgPC9zdmc+XG48L2Rpdj5cbiJdfQ==