diff --git a/README.md b/README.md
index 5403a8b7..1e4b5761 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+# This is a fork of @kolkov/angular-editor created by @kolkov.
+
diff --git a/package.json b/package.json
index e316dcf9..27e604f8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,8 @@
{
- "name": "@kolkov/angular-editor",
- "version": "3.0.0-beta.0",
+ "name": "@linhle/angular-editor-fork",
+ "version": "1.0.0",
+ "description": "A fork of original-library with modifications",
+ "author": "Original author @kolkov",
"scripts": {
"ng": "ng",
"start": "ng serve",
diff --git a/projects/angular-editor/src/lib/ae-select/ae-select.component.ts b/projects/angular-editor/src/lib/ae-select/ae-select.component.ts
index 7502b9fa..f14df43c 100644
--- a/projects/angular-editor/src/lib/ae-select/ae-select.component.ts
+++ b/projects/angular-editor/src/lib/ae-select/ae-select.component.ts
@@ -6,6 +6,7 @@ import {
forwardRef, HostBinding,
HostListener,
Input,
+ NgZone,
OnInit,
Output,
Renderer2,
@@ -41,6 +42,7 @@ export class AeSelectComponent implements OnInit, ControlValueAccessor {
selectedOption: SelectOption;
disabled = false;
optionId = 0;
+ private outsideClickListener: () => void;
get label(): string {
return this.selectedOption && this.selectedOption.hasOwnProperty('label') ? this.selectedOption.label : 'Select';
@@ -61,7 +63,13 @@ export class AeSelectComponent implements OnInit, ControlValueAccessor {
constructor(private elRef: ElementRef,
private r: Renderer2,
- ) {}
+ private ngZone: NgZone
+ ) {
+ this.ngZone.runOutsideAngular(() => {
+ this.outsideClickListener = this.handleOutsideClick.bind(this);
+ document.addEventListener('click', this.outsideClickListener);
+ });
+ }
ngOnInit() {
this.selectedOption = this.options[0];
@@ -70,6 +78,11 @@ export class AeSelectComponent implements OnInit, ControlValueAccessor {
}
}
+ ngOnDestroy() {
+ // Clean up the event listener
+ document.removeEventListener('click', this.outsideClickListener);
+ }
+
hide() {
this.hidden = 'none';
}
@@ -91,10 +104,14 @@ export class AeSelectComponent implements OnInit, ControlValueAccessor {
this.opened = !this.opened;
}
- @HostListener('document:click', ['$event'])
- onClick($event: MouseEvent) {
- if (!this.elRef.nativeElement.contains($event.target)) {
- this.close();
+ handleOutsideClick(event: MouseEvent) {
+ if (!this.opened)
+ return;
+
+ if (!this.elRef.nativeElement.contains(event.target)) {
+ this.ngZone.run(() => {
+ this.close();
+ });
}
}