@libs-ui/components-click-outside 0.2.10-6.2
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/README.md +3 -0
- package/click-outside.directive.d.ts +12 -0
- package/esm2022/click-outside.directive.mjs +35 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/libs-ui-components-click-outside.mjs +5 -0
- package/fesm2022/libs-ui-components-click-outside.mjs +42 -0
- package/fesm2022/libs-ui-components-click-outside.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +25 -0
package/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AfterViewInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class LibsUiComponentsClickOutsideDirective implements AfterViewInit, OnDestroy {
|
|
4
|
+
private onDestroy;
|
|
5
|
+
readonly outOutside: import("@angular/core").OutputEmitterRef<Event>;
|
|
6
|
+
readonly outInSide: import("@angular/core").OutputEmitterRef<Event>;
|
|
7
|
+
private elementRef;
|
|
8
|
+
ngAfterViewInit(): void;
|
|
9
|
+
ngOnDestroy(): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsClickOutsideDirective, never>;
|
|
11
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<LibsUiComponentsClickOutsideDirective, "[LibsUiComponentsClickOutsideDirective]", never, {}, { "outOutside": "outOutside"; "outInSide": "outInSide"; }, never, never, true, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Directive, ElementRef, inject, output } from '@angular/core';
|
|
2
|
+
import { fromEvent, Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil, tap } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class LibsUiComponentsClickOutsideDirective {
|
|
6
|
+
onDestroy = new Subject();
|
|
7
|
+
outOutside = output();
|
|
8
|
+
outInSide = output();
|
|
9
|
+
elementRef = inject(ElementRef);
|
|
10
|
+
ngAfterViewInit() {
|
|
11
|
+
fromEvent(window, 'mousedown').pipe(tap((e) => e.stopPropagation()), takeUntil(this.onDestroy)).subscribe((e) => {
|
|
12
|
+
const clickedInside = this.elementRef.nativeElement.contains(e.target);
|
|
13
|
+
if (clickedInside) {
|
|
14
|
+
this.outInSide.emit(e);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
this.outOutside.emit(e);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.onDestroy.next();
|
|
22
|
+
this.onDestroy.complete();
|
|
23
|
+
}
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
25
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LibsUiComponentsClickOutsideDirective, isStandalone: true, selector: "[LibsUiComponentsClickOutsideDirective]", outputs: { outOutside: "outOutside", outInSide: "outInSide" }, ngImport: i0 });
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsClickOutsideDirective, decorators: [{
|
|
28
|
+
type: Directive,
|
|
29
|
+
args: [{
|
|
30
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
31
|
+
selector: '[LibsUiComponentsClickOutsideDirective]',
|
|
32
|
+
standalone: true,
|
|
33
|
+
}]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2xpY2stb3V0c2lkZS9zcmMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPaEQsTUFBTSxPQUFPLHFDQUFxQztJQUN4QyxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUUvQixVQUFVLEdBQUcsTUFBTSxFQUFTLENBQUM7SUFDN0IsU0FBUyxHQUFHLE1BQU0sRUFBUyxDQUFDO0lBRTdCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFeEMsZUFBZTtRQUNiLFNBQVMsQ0FBUSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ25JLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFdkUsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXZCLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3dHQXhCVSxxQ0FBcUM7NEZBQXJDLHFDQUFxQzs7NEZBQXJDLHFDQUFxQztrQkFMakQsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx5Q0FBeUM7b0JBQ25ELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkRlc3Ryb3ksIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW0xpYnNVaUNvbXBvbmVudHNDbGlja091dHNpZGVEaXJlY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0NsaWNrT3V0c2lkZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICByZWFkb25seSBvdXRPdXRzaWRlID0gb3V0cHV0PEV2ZW50PigpO1xuICByZWFkb25seSBvdXRJblNpZGUgPSBvdXRwdXQ8RXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBmcm9tRXZlbnQ8RXZlbnQ+KHdpbmRvdywgJ21vdXNlZG93bicpLnBpcGUodGFwKChlOiBFdmVudCkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSksIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoZTogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCk7XG5cbiAgICAgIGlmIChjbGlja2VkSW5zaWRlKSB7XG4gICAgICAgIHRoaXMub3V0SW5TaWRlLmVtaXQoZSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5vdXRPdXRzaWRlLmVtaXQoZSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './click-outside.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2xpY2stb3V0c2lkZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1jb21wb25lbnRzLWNsaWNrLW91dHNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvY2xpY2stb3V0c2lkZS9zcmMvbGlicy11aS1jb21wb25lbnRzLWNsaWNrLW91dHNpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { output, inject, ElementRef, Directive } from '@angular/core';
|
|
3
|
+
import { Subject, fromEvent } from 'rxjs';
|
|
4
|
+
import { tap, takeUntil } from 'rxjs/operators';
|
|
5
|
+
|
|
6
|
+
class LibsUiComponentsClickOutsideDirective {
|
|
7
|
+
onDestroy = new Subject();
|
|
8
|
+
outOutside = output();
|
|
9
|
+
outInSide = output();
|
|
10
|
+
elementRef = inject(ElementRef);
|
|
11
|
+
ngAfterViewInit() {
|
|
12
|
+
fromEvent(window, 'mousedown').pipe(tap((e) => e.stopPropagation()), takeUntil(this.onDestroy)).subscribe((e) => {
|
|
13
|
+
const clickedInside = this.elementRef.nativeElement.contains(e.target);
|
|
14
|
+
if (clickedInside) {
|
|
15
|
+
this.outInSide.emit(e);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this.outOutside.emit(e);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
ngOnDestroy() {
|
|
22
|
+
this.onDestroy.next();
|
|
23
|
+
this.onDestroy.complete();
|
|
24
|
+
}
|
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LibsUiComponentsClickOutsideDirective, isStandalone: true, selector: "[LibsUiComponentsClickOutsideDirective]", outputs: { outOutside: "outOutside", outInSide: "outInSide" }, ngImport: i0 });
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsClickOutsideDirective, decorators: [{
|
|
29
|
+
type: Directive,
|
|
30
|
+
args: [{
|
|
31
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
32
|
+
selector: '[LibsUiComponentsClickOutsideDirective]',
|
|
33
|
+
standalone: true,
|
|
34
|
+
}]
|
|
35
|
+
}] });
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Generated bundle index. Do not edit.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
export { LibsUiComponentsClickOutsideDirective };
|
|
42
|
+
//# sourceMappingURL=libs-ui-components-click-outside.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libs-ui-components-click-outside.mjs","sources":["../../../../../libs-ui/components/click-outside/src/click-outside.directive.ts","../../../../../libs-ui/components/click-outside/src/libs-ui-components-click-outside.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, inject, OnDestroy, output } from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil, tap } from 'rxjs/operators';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[LibsUiComponentsClickOutsideDirective]',\n standalone: true,\n})\nexport class LibsUiComponentsClickOutsideDirective implements AfterViewInit, OnDestroy {\n private onDestroy = new Subject<void>();\n\n readonly outOutside = output<Event>();\n readonly outInSide = output<Event>();\n\n private elementRef = inject(ElementRef);\n\n ngAfterViewInit() {\n fromEvent<Event>(window, 'mousedown').pipe(tap((e: Event) => e.stopPropagation()), takeUntil(this.onDestroy)).subscribe((e: Event) => {\n const clickedInside = this.elementRef.nativeElement.contains(e.target);\n\n if (clickedInside) {\n this.outInSide.emit(e);\n\n return;\n }\n this.outOutside.emit(e);\n });\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MASa,qCAAqC,CAAA;AACxC,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;IAE/B,UAAU,GAAG,MAAM,EAAS,CAAC;IAC7B,SAAS,GAAG,MAAM,EAAS,CAAC;AAE7B,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAExC,eAAe,GAAA;AACb,QAAA,SAAS,CAAQ,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAQ,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAQ,KAAI;AACnI,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAEvE,IAAI,aAAa,EAAE;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEvB,OAAO;aACR;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;wGAxBU,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './click-outside.directive';
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@libs-ui/components-click-outside",
|
|
3
|
+
"version": "0.2.106.2",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^18.2.0",
|
|
6
|
+
"@angular/core": "^18.2.0"
|
|
7
|
+
},
|
|
8
|
+
"sideEffects": false,
|
|
9
|
+
"module": "fesm2022/libs-ui-components-click-outside.mjs",
|
|
10
|
+
"typings": "index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
"./package.json": {
|
|
13
|
+
"default": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./index.d.ts",
|
|
17
|
+
"esm2022": "./esm2022/libs-ui-components-click-outside.mjs",
|
|
18
|
+
"esm": "./esm2022/libs-ui-components-click-outside.mjs",
|
|
19
|
+
"default": "./fesm2022/libs-ui-components-click-outside.mjs"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"tslib": "^2.3.0"
|
|
24
|
+
}
|
|
25
|
+
}
|