wacom 16.0.8 → 16.0.9

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.
@@ -1,189 +1,30 @@
1
- import { Directive, EventEmitter, Inject, Injectable, Input, Output, PLATFORM_ID, } from '@angular/core';
2
- import { isPlatformBrowser } from '@angular/common';
1
+ import { Directive, EventEmitter, Output, HostListener } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
- import * as i1 from "../services/core.service";
5
3
  class ClickOutsideDirective {
6
- platformId;
7
- _el;
8
- _ngZone;
9
- core;
10
- clickOutsideEnabled = true;
11
- attachOutsideOnClick = false;
12
- delayClickOutsideInit = false;
13
- emitOnBlur = false;
14
- exclude = '';
15
- excludeBeforeClick = false;
16
- clickOutsideEvents = '';
4
+ elementRef;
17
5
  clickOutside = new EventEmitter();
18
- _nodesExcluded = [];
19
- _events = ['click'];
20
- constructor(platformId, _el, _ngZone, core) {
21
- this.platformId = platformId;
22
- this._el = _el;
23
- this._ngZone = _ngZone;
24
- this.core = core;
25
- this._initOnClickBody = this._initOnClickBody.bind(this);
26
- this._onClickBody = this._onClickBody.bind(this);
27
- this._onWindowBlur = this._onWindowBlur.bind(this);
6
+ constructor(elementRef) {
7
+ this.elementRef = elementRef;
28
8
  }
29
- ngOnInit() {
30
- if (!isPlatformBrowser(this.platformId)) {
31
- return;
9
+ onClick(event) {
10
+ const clickedInside = this.elementRef.nativeElement.contains(event.target);
11
+ if (!clickedInside) {
12
+ this.clickOutside.emit(event);
32
13
  }
33
- this._init();
34
14
  }
35
- ngOnDestroy() {
36
- if (!isPlatformBrowser(this.platformId)) {
37
- return;
38
- }
39
- this._removeClickOutsideListener();
40
- this._removeAttachOutsideOnClickListener();
41
- this._removeWindowBlurListener();
42
- }
43
- ngOnChanges(changes) {
44
- if (!isPlatformBrowser(this.platformId)) {
45
- return;
46
- }
47
- if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {
48
- this._init();
49
- }
50
- }
51
- _init() {
52
- if (this.clickOutsideEvents !== '') {
53
- this._events = this.clickOutsideEvents.split(',').map(e => e.trim());
54
- }
55
- this._excludeCheck();
56
- if (this.attachOutsideOnClick) {
57
- this._initAttachOutsideOnClickListener();
58
- }
59
- else {
60
- this._initOnClickBody();
61
- }
62
- if (this.emitOnBlur) {
63
- this._initWindowBlurListener();
64
- }
65
- }
66
- _initOnClickBody() {
67
- if (this.delayClickOutsideInit) {
68
- setTimeout(this._initClickOutsideListener.bind(this));
69
- }
70
- else {
71
- this._initClickOutsideListener();
72
- }
73
- }
74
- _excludeCheck() {
75
- if (this.exclude) {
76
- try {
77
- const nodes = Array.from(this.core.document.querySelectorAll(this.exclude));
78
- if (nodes) {
79
- this._nodesExcluded = nodes;
80
- }
81
- }
82
- catch (err) {
83
- console.error('[ng-click-outside] Check your exclude selector syntax.', err);
84
- }
85
- }
86
- }
87
- _onClickBody(ev) {
88
- if (!this.clickOutsideEnabled) {
89
- return;
90
- }
91
- if (this.excludeBeforeClick) {
92
- this._excludeCheck();
93
- }
94
- if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {
95
- this._emit(ev);
96
- if (this.attachOutsideOnClick) {
97
- this._removeClickOutsideListener();
98
- }
99
- }
100
- }
101
- /**
102
- * Resolves problem with outside click on iframe
103
- * @see https://github.com/arkon/ng-click-outside/issues/32
104
- */
105
- _onWindowBlur(ev) {
106
- setTimeout(() => {
107
- if (!this.core.document.hidden) {
108
- this._emit(ev);
109
- }
110
- });
111
- }
112
- _emit(ev) {
113
- if (!this.clickOutsideEnabled) {
114
- return;
115
- }
116
- this._ngZone.run(() => this.clickOutside.emit(ev));
117
- }
118
- _shouldExclude(target) {
119
- for (let excludedNode of this._nodesExcluded) {
120
- if (excludedNode.contains(target)) {
121
- return true;
122
- }
123
- }
124
- return false;
125
- }
126
- _initClickOutsideListener() {
127
- this._ngZone.runOutsideAngular(() => {
128
- this._events.forEach(e => this.core.document.addEventListener(e, this._onClickBody));
129
- });
130
- }
131
- _removeClickOutsideListener() {
132
- this._ngZone.runOutsideAngular(() => {
133
- this._events.forEach(e => this.core.document.removeEventListener(e, this._onClickBody));
134
- });
135
- }
136
- _initAttachOutsideOnClickListener() {
137
- this._ngZone.runOutsideAngular(() => {
138
- this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));
139
- });
140
- }
141
- _removeAttachOutsideOnClickListener() {
142
- this._ngZone.runOutsideAngular(() => {
143
- this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));
144
- });
145
- }
146
- _initWindowBlurListener() {
147
- this._ngZone.runOutsideAngular(() => {
148
- this.core.window.addEventListener('blur', this._onWindowBlur);
149
- });
150
- }
151
- _removeWindowBlurListener() {
152
- this._ngZone.runOutsideAngular(() => {
153
- this.core.window.removeEventListener('blur', this._onWindowBlur);
154
- });
155
- }
156
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.CoreService }], target: i0.ɵɵFactoryTarget.Directive });
157
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: { clickOutsideEnabled: "clickOutsideEnabled", attachOutsideOnClick: "attachOutsideOnClick", delayClickOutsideInit: "delayClickOutsideInit", emitOnBlur: "emitOnBlur", exclude: "exclude", excludeBeforeClick: "excludeBeforeClick", clickOutsideEvents: "clickOutsideEvents" }, outputs: { clickOutside: "clickOutside" }, exportAs: ["clickOutside"], usesOnChanges: true, ngImport: i0 });
158
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ClickOutsideDirective });
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0 });
159
17
  }
160
18
  export { ClickOutsideDirective };
161
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ClickOutsideDirective, decorators: [{
162
- type: Injectable
163
- }, {
164
20
  type: Directive,
165
21
  args: [{
166
- selector: '[clickOutside]',
167
- exportAs: 'clickOutside'
22
+ selector: '[clickOutside]'
168
23
  }]
169
- }], ctorParameters: function () { return [{ type: Object, decorators: [{
170
- type: Inject,
171
- args: [PLATFORM_ID]
172
- }] }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.CoreService }]; }, propDecorators: { clickOutsideEnabled: [{
173
- type: Input
174
- }], attachOutsideOnClick: [{
175
- type: Input
176
- }], delayClickOutsideInit: [{
177
- type: Input
178
- }], emitOnBlur: [{
179
- type: Input
180
- }], exclude: [{
181
- type: Input
182
- }], excludeBeforeClick: [{
183
- type: Input
184
- }], clickOutsideEvents: [{
185
- type: Input
186
- }], clickOutside: [{
24
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { clickOutside: [{
187
25
  type: Output
26
+ }], onClick: [{
27
+ type: HostListener,
28
+ args: ['document:click', ['$event']]
188
29
  }] } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93YWNvbS9zcmMvbGliL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxFQUNOLFdBQVcsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBR3BELE1BS2EscUJBQXFCO0lBY0g7SUFDckI7SUFDQTtJQUNEO0lBaEJDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUMzQixvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDN0IscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQzlCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQixrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFDdkIsWUFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO0lBRWhFLGNBQWMsR0FBdUIsRUFBRSxDQUFDO0lBQ3hDLE9BQU8sR0FBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUzQyxZQUM4QixVQUFrQixFQUN2QyxHQUFlLEVBQ2YsT0FBZSxFQUNoQixJQUFpQjtRQUhLLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUV4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMs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LENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHlCQUF5QjtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzt1R0FuS1cscUJBQXFCLGtCQWN4QixXQUFXOzJGQWRSLHFCQUFxQjsyR0FBckIscUJBQXFCOztTQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFMakMsVUFBVTs7a0JBQ1YsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsY0FBYztpQkFDeEI7OzBCQWVFLE1BQU07MkJBQUMsV0FBVztvSEFiWCxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0LFxuXHRJbmplY3RhYmxlLFxuXHRJbnB1dCxcblx0T25DaGFuZ2VzLFxuXHRPbkRlc3Ryb3ksXG5cdE9uSW5pdCxcblx0T3V0cHV0LFxuXHRQTEFURk9STV9JRCxcblx0U2ltcGxlQ2hhbmdlcyxcblx0Tmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29yZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2NsaWNrT3V0c2lkZV0nLFxuXHRleHBvcnRBczogJ2NsaWNrT3V0c2lkZSdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cdEBJbnB1dCgpIGNsaWNrT3V0c2lkZUVuYWJsZWQgPSB0cnVlO1xuXHRASW5wdXQoKSBhdHRhY2hPdXRzaWRlT25DbGljayA9IGZhbHNlO1xuXHRASW5wdXQoKSBkZWxheUNsaWNrT3V0c2lkZUluaXQgPSBmYWxzZTtcblx0QElucHV0KCkgZW1pdE9uQmx1ciA9IGZhbHNlO1xuXHRASW5wdXQoKSBleGNsdWRlID0gJyc7XG5cdEBJbnB1dCgpIGV4Y2x1ZGVCZWZvcmVDbGljayA9IGZhbHNlO1xuXHRASW5wdXQoKSBjbGlja091dHNpZGVFdmVudHMgPSAnJztcblx0QE91dHB1dCgpIGNsaWNrT3V0c2lkZTogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cblx0cHJpdmF0ZSBfbm9kZXNFeGNsdWRlZDogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gW107XG5cdHByaXZhdGUgX2V2ZW50czogQXJyYXk8c3RyaW5nPiA9IFsnY2xpY2snXTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcblx0XHRwcml2YXRlIF9lbDogRWxlbWVudFJlZixcblx0XHRwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcblx0XHRwdWJsaWMgY29yZTogQ29yZVNlcnZpY2Vcblx0KSB7XG5cdFx0dGhpcy5faW5pdE9uQ2xpY2tCb2R5ID0gdGhpcy5faW5pdE9uQ2xpY2tCb2R5LmJpbmQodGhpcyk7XG5cdFx0dGhpcy5fb25DbGlja0JvZHkgPSB0aGlzLl9vbkNsaWNrQm9keS5iaW5kKHRoaXMpO1xuXHRcdHRoaXMuX29uV2luZG93Qmx1ciA9IHRoaXMuX29uV2luZG93Qmx1ci5iaW5kKHRoaXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0aWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7IHJldHVybjsgfVxuXG5cdFx0dGhpcy5faW5pdCgpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7IHJldHVybjsgfVxuXG5cdFx0dGhpcy5fcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblx0XHR0aGlzLl9yZW1vdmVBdHRhY2hPdXRzaWRlT25DbGlja0xpc3RlbmVyKCk7XG5cdFx0dGhpcy5fcmVtb3ZlV2luZG93Qmx1ckxpc3RlbmVyKCk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0aWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7IHJldHVybjsgfVxuXG5cdFx0aWYgKGNoYW5nZXNbJ2F0dGFjaE91dHNpZGVPbkNsaWNrJ10gfHwgY2hhbmdlc1snZXhjbHVkZSddIHx8IGNoYW5nZXNbJ2VtaXRPbkJsdXInXSkge1xuXHRcdFx0dGhpcy5faW5pdCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2luaXQoKSB7XG5cdFx0aWYgKHRoaXMuY2xpY2tPdXRzaWRlRXZlbnRzICE9PSAnJykge1xuXHRcdFx0dGhpcy5fZXZlbnRzID0gdGhpcy5jbGlja091dHNpZGVFdmVudHMuc3BsaXQoJywnKS5tYXAoZSA9PiBlLnRyaW0oKSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fZXhjbHVkZUNoZWNrKCk7XG5cblx0XHRpZiAodGhpcy5hdHRhY2hPdXRzaWRlT25DbGljaykge1xuXHRcdFx0dGhpcy5faW5pdEF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5faW5pdE9uQ2xpY2tCb2R5KCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZW1pdE9uQmx1cikge1xuXHRcdFx0dGhpcy5faW5pdFdpbmRvd0JsdXJMaXN0ZW5lcigpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2luaXRPbkNsaWNrQm9keSgpIHtcblx0XHRpZiAodGhpcy5kZWxheUNsaWNrT3V0c2lkZUluaXQpIHtcblx0XHRcdHNldFRpbWVvdXQodGhpcy5faW5pdENsaWNrT3V0c2lkZUxpc3RlbmVyLmJpbmQodGhpcykpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9pbml0Q2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF9leGNsdWRlQ2hlY2soKSB7XG5cdFx0aWYgKHRoaXMuZXhjbHVkZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3Qgbm9kZXMgPSBBcnJheS5mcm9tKHRoaXMuY29yZS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuZXhjbHVkZSkpIGFzIEFycmF5PEhUTUxFbGVtZW50Pjtcblx0XHRcdFx0aWYgKG5vZGVzKSB7XG5cdFx0XHRcdFx0dGhpcy5fbm9kZXNFeGNsdWRlZCA9IG5vZGVzO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdFx0Y29uc29sZS5lcnJvcignW25nLWNsaWNrLW91dHNpZGVdIENoZWNrIHlvdXIgZXhjbHVkZSBzZWxlY3RvciBzeW50YXguJywgZXJyKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF9vbkNsaWNrQm9keShldjogRXZlbnQpIHtcblx0XHRpZiAoIXRoaXMuY2xpY2tPdXRzaWRlRW5hYmxlZCkgeyByZXR1cm47IH1cblxuXHRcdGlmICh0aGlzLmV4Y2x1ZGVCZWZvcmVDbGljaykge1xuXHRcdFx0dGhpcy5fZXhjbHVkZUNoZWNrKCk7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLl9lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2LnRhcmdldCkgJiYgIXRoaXMuX3Nob3VsZEV4Y2x1ZGUoZXYudGFyZ2V0KSkge1xuXHRcdFx0dGhpcy5fZW1pdChldik7XG5cblx0XHRcdGlmICh0aGlzLmF0dGFjaE91dHNpZGVPbkNsaWNrKSB7XG5cdFx0XHRcdHRoaXMuX3JlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlc29sdmVzIHByb2JsZW0gd2l0aCBvdXRzaWRlIGNsaWNrIG9uIGlmcmFtZVxuXHQgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hcmtvbi9uZy1jbGljay1vdXRzaWRlL2lzc3Vlcy8zMlxuXHQgKi9cblx0cHJpdmF0ZSBfb25XaW5kb3dCbHVyKGV2OiBFdmVudCkge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLmNvcmUuZG9jdW1lbnQuaGlkZGVuKSB7XG5cdFx0XHRcdHRoaXMuX2VtaXQoZXYpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfZW1pdChldjogRXZlbnQpIHtcblx0XHRpZiAoIXRoaXMuY2xpY2tPdXRzaWRlRW5hYmxlZCkgeyByZXR1cm47IH1cblxuXHRcdHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5jbGlja091dHNpZGUuZW1pdChldikpO1xuXHR9XG5cblx0cHJpdmF0ZSBfc2hvdWxkRXhjbHVkZSh0YXJnZXQ6IGFueSk6IGJvb2xlYW4ge1xuXHRcdGZvciAobGV0IGV4Y2x1ZGVkTm9kZSBvZiB0aGlzLl9ub2Rlc0V4Y2x1ZGVkKSB7XG5cdFx0XHRpZiAoZXhjbHVkZWROb2RlLmNvbnRhaW5zKHRhcmdldCkpIHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdENsaWNrT3V0c2lkZUxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLl9ldmVudHMuZm9yRWFjaChlID0+IHRoaXMuY29yZS5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGUsIHRoaXMuX29uQ2xpY2tCb2R5KSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVDbGlja091dHNpZGVMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5fZXZlbnRzLmZvckVhY2goZSA9PiB0aGlzLmNvcmUuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLCB0aGlzLl9vbkNsaWNrQm9keSkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdEF0dGFjaE91dHNpZGVPbkNsaWNrTGlzdGVuZXIoKSB7XG5cdFx0dGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdHRoaXMuX2V2ZW50cy5mb3JFYWNoKGUgPT4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGUsIHRoaXMuX2luaXRPbkNsaWNrQm9keSkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlQXR0YWNoT3V0c2lkZU9uQ2xpY2tMaXN0ZW5lcigpIHtcblx0XHR0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5fZXZlbnRzLmZvckVhY2goZSA9PiB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSwgdGhpcy5faW5pdE9uQ2xpY2tCb2R5KSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9pbml0V2luZG93Qmx1ckxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLmNvcmUud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLl9vbldpbmRvd0JsdXIpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlV2luZG93Qmx1ckxpc3RlbmVyKCkge1xuXHRcdHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLmNvcmUud2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCB0aGlzLl9vbldpbmRvd0JsdXIpO1xuXHRcdH0pO1xuXHR9XG5cbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93YWNvbS9zcmMvbGliL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUYsTUFHYSxxQkFBcUI7SUFHYjtJQUZWLFlBQVksR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUV4RSxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUksQ0FBQztJQUcvQyxPQUFPLENBQUMsS0FBWTtRQUNuQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7SUFDRixDQUFDO3VHQVhXLHFCQUFxQjsyRkFBckIscUJBQXFCOztTQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMxQjtpR0FFVSxZQUFZO3NCQUFyQixNQUFNO2dCQUtQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbY2xpY2tPdXRzaWRlXSdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIHtcblx0QE91dHB1dCgpIGNsaWNrT3V0c2lkZTogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7IH1cblxuXHRASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG5cdG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG5cdFx0aWYgKCFjbGlja2VkSW5zaWRlKSB7XG5cdFx0XHR0aGlzLmNsaWNrT3V0c2lkZS5lbWl0KGV2ZW50KTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, Component, ViewChild, EventEmitter, Directive, Input, Output, Pipe, NgModule } from '@angular/core';
2
+ import { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, Component, ViewChild, EventEmitter, Directive, Output, HostListener, Pipe, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/router';
4
4
  import * as i2 from '@angular/platform-browser';
5
5
  import * as i2$1 from '@angular/common';
6
- import { isPlatformServer, isPlatformBrowser, CommonModule } from '@angular/common';
6
+ import { isPlatformServer, CommonModule } from '@angular/common';
7
7
  import * as i2$2 from '@angular/common/http';
8
8
  import { HttpHeaders, HttpClientModule } from '@angular/common/http';
9
9
  import { Subject } from 'rxjs';
@@ -634,187 +634,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
634
634
  }] } });
635
635
 
636
636
  class ClickOutsideDirective {
637
- platformId;
638
- _el;
639
- _ngZone;
640
- core;
641
- clickOutsideEnabled = true;
642
- attachOutsideOnClick = false;
643
- delayClickOutsideInit = false;
644
- emitOnBlur = false;
645
- exclude = '';
646
- excludeBeforeClick = false;
647
- clickOutsideEvents = '';
637
+ elementRef;
648
638
  clickOutside = new EventEmitter();
649
- _nodesExcluded = [];
650
- _events = ['click'];
651
- constructor(platformId, _el, _ngZone, core) {
652
- this.platformId = platformId;
653
- this._el = _el;
654
- this._ngZone = _ngZone;
655
- this.core = core;
656
- this._initOnClickBody = this._initOnClickBody.bind(this);
657
- this._onClickBody = this._onClickBody.bind(this);
658
- this._onWindowBlur = this._onWindowBlur.bind(this);
659
- }
660
- ngOnInit() {
661
- if (!isPlatformBrowser(this.platformId)) {
662
- return;
663
- }
664
- this._init();
665
- }
666
- ngOnDestroy() {
667
- if (!isPlatformBrowser(this.platformId)) {
668
- return;
669
- }
670
- this._removeClickOutsideListener();
671
- this._removeAttachOutsideOnClickListener();
672
- this._removeWindowBlurListener();
673
- }
674
- ngOnChanges(changes) {
675
- if (!isPlatformBrowser(this.platformId)) {
676
- return;
677
- }
678
- if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {
679
- this._init();
680
- }
681
- }
682
- _init() {
683
- if (this.clickOutsideEvents !== '') {
684
- this._events = this.clickOutsideEvents.split(',').map(e => e.trim());
685
- }
686
- this._excludeCheck();
687
- if (this.attachOutsideOnClick) {
688
- this._initAttachOutsideOnClickListener();
689
- }
690
- else {
691
- this._initOnClickBody();
692
- }
693
- if (this.emitOnBlur) {
694
- this._initWindowBlurListener();
695
- }
696
- }
697
- _initOnClickBody() {
698
- if (this.delayClickOutsideInit) {
699
- setTimeout(this._initClickOutsideListener.bind(this));
700
- }
701
- else {
702
- this._initClickOutsideListener();
703
- }
704
- }
705
- _excludeCheck() {
706
- if (this.exclude) {
707
- try {
708
- const nodes = Array.from(this.core.document.querySelectorAll(this.exclude));
709
- if (nodes) {
710
- this._nodesExcluded = nodes;
711
- }
712
- }
713
- catch (err) {
714
- console.error('[ng-click-outside] Check your exclude selector syntax.', err);
715
- }
716
- }
717
- }
718
- _onClickBody(ev) {
719
- if (!this.clickOutsideEnabled) {
720
- return;
721
- }
722
- if (this.excludeBeforeClick) {
723
- this._excludeCheck();
724
- }
725
- if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {
726
- this._emit(ev);
727
- if (this.attachOutsideOnClick) {
728
- this._removeClickOutsideListener();
729
- }
730
- }
731
- }
732
- /**
733
- * Resolves problem with outside click on iframe
734
- * @see https://github.com/arkon/ng-click-outside/issues/32
735
- */
736
- _onWindowBlur(ev) {
737
- setTimeout(() => {
738
- if (!this.core.document.hidden) {
739
- this._emit(ev);
740
- }
741
- });
742
- }
743
- _emit(ev) {
744
- if (!this.clickOutsideEnabled) {
745
- return;
746
- }
747
- this._ngZone.run(() => this.clickOutside.emit(ev));
639
+ constructor(elementRef) {
640
+ this.elementRef = elementRef;
748
641
  }
749
- _shouldExclude(target) {
750
- for (let excludedNode of this._nodesExcluded) {
751
- if (excludedNode.contains(target)) {
752
- return true;
753
- }
642
+ onClick(event) {
643
+ const clickedInside = this.elementRef.nativeElement.contains(event.target);
644
+ if (!clickedInside) {
645
+ this.clickOutside.emit(event);
754
646
  }
755
- return false;
756
647
  }
757
- _initClickOutsideListener() {
758
- this._ngZone.runOutsideAngular(() => {
759
- this._events.forEach(e => this.core.document.addEventListener(e, this._onClickBody));
760
- });
761
- }
762
- _removeClickOutsideListener() {
763
- this._ngZone.runOutsideAngular(() => {
764
- this._events.forEach(e => this.core.document.removeEventListener(e, this._onClickBody));
765
- });
766
- }
767
- _initAttachOutsideOnClickListener() {
768
- this._ngZone.runOutsideAngular(() => {
769
- this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));
770
- });
771
- }
772
- _removeAttachOutsideOnClickListener() {
773
- this._ngZone.runOutsideAngular(() => {
774
- this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));
775
- });
776
- }
777
- _initWindowBlurListener() {
778
- this._ngZone.runOutsideAngular(() => {
779
- this.core.window.addEventListener('blur', this._onWindowBlur);
780
- });
781
- }
782
- _removeWindowBlurListener() {
783
- this._ngZone.runOutsideAngular(() => {
784
- this.core.window.removeEventListener('blur', this._onWindowBlur);
785
- });
786
- }
787
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Directive });
788
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ClickOutsideDirective, selector: "[clickOutside]", inputs: { clickOutsideEnabled: "clickOutsideEnabled", attachOutsideOnClick: "attachOutsideOnClick", delayClickOutsideInit: "delayClickOutsideInit", emitOnBlur: "emitOnBlur", exclude: "exclude", excludeBeforeClick: "excludeBeforeClick", clickOutsideEvents: "clickOutsideEvents" }, outputs: { clickOutside: "clickOutside" }, exportAs: ["clickOutside"], usesOnChanges: true, ngImport: i0 });
789
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ClickOutsideDirective });
648
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
649
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0 });
790
650
  }
791
651
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ClickOutsideDirective, decorators: [{
792
- type: Injectable
793
- }, {
794
652
  type: Directive,
795
653
  args: [{
796
- selector: '[clickOutside]',
797
- exportAs: 'clickOutside'
654
+ selector: '[clickOutside]'
798
655
  }]
799
- }], ctorParameters: function () { return [{ type: Object, decorators: [{
800
- type: Inject,
801
- args: [PLATFORM_ID]
802
- }] }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: CoreService }]; }, propDecorators: { clickOutsideEnabled: [{
803
- type: Input
804
- }], attachOutsideOnClick: [{
805
- type: Input
806
- }], delayClickOutsideInit: [{
807
- type: Input
808
- }], emitOnBlur: [{
809
- type: Input
810
- }], exclude: [{
811
- type: Input
812
- }], excludeBeforeClick: [{
813
- type: Input
814
- }], clickOutsideEvents: [{
815
- type: Input
816
- }], clickOutside: [{
656
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { clickOutside: [{
817
657
  type: Output
658
+ }], onClick: [{
659
+ type: HostListener,
660
+ args: ['document:click', ['$event']]
818
661
  }] } });
819
662
 
820
663
  class ArrPipe {