@mintplayer/ng-click-outside 21.3.0 → 22.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.
@@ -4,13 +4,20 @@ import { input, output, inject, ElementRef, PLATFORM_ID, effect, Directive } fro
4
4
 
5
5
  class ClickOutsideDirective {
6
6
  constructor() {
7
- this.clickOutsideEnabled = input(true, ...(ngDevMode ? [{ debugName: "clickOutsideEnabled" }] : /* istanbul ignore next */ []));
8
- this.attachOutsideOnClick = input(false, ...(ngDevMode ? [{ debugName: "attachOutsideOnClick" }] : /* istanbul ignore next */ []));
9
- this.delayClickOutsideInit = input(false, ...(ngDevMode ? [{ debugName: "delayClickOutsideInit" }] : /* istanbul ignore next */ []));
10
- this.emitOnBlur = input(false, ...(ngDevMode ? [{ debugName: "emitOnBlur" }] : /* istanbul ignore next */ []));
11
- this.exclude = input([], ...(ngDevMode ? [{ debugName: "exclude" }] : /* istanbul ignore next */ []));
12
- this.excludeBeforeClick = input(false, ...(ngDevMode ? [{ debugName: "excludeBeforeClick" }] : /* istanbul ignore next */ []));
13
- this.clickOutsideEvents = input('', ...(ngDevMode ? [{ debugName: "clickOutsideEvents" }] : /* istanbul ignore next */ []));
7
+ this.clickOutsideEnabled = input(true, /* @ts-ignore */
8
+ ...(ngDevMode ? [{ debugName: "clickOutsideEnabled" }] : /* istanbul ignore next */ []));
9
+ this.attachOutsideOnClick = input(false, /* @ts-ignore */
10
+ ...(ngDevMode ? [{ debugName: "attachOutsideOnClick" }] : /* istanbul ignore next */ []));
11
+ this.delayClickOutsideInit = input(false, /* @ts-ignore */
12
+ ...(ngDevMode ? [{ debugName: "delayClickOutsideInit" }] : /* istanbul ignore next */ []));
13
+ this.emitOnBlur = input(false, /* @ts-ignore */
14
+ ...(ngDevMode ? [{ debugName: "emitOnBlur" }] : /* istanbul ignore next */ []));
15
+ this.exclude = input([], /* @ts-ignore */
16
+ ...(ngDevMode ? [{ debugName: "exclude" }] : /* istanbul ignore next */ []));
17
+ this.excludeBeforeClick = input(false, /* @ts-ignore */
18
+ ...(ngDevMode ? [{ debugName: "excludeBeforeClick" }] : /* istanbul ignore next */ []));
19
+ this.clickOutsideEvents = input('', /* @ts-ignore */
20
+ ...(ngDevMode ? [{ debugName: "clickOutsideEvents" }] : /* istanbul ignore next */ []));
14
21
  this.clickOutside = output();
15
22
  this.element = inject(ElementRef);
16
23
  this.platformId = inject(PLATFORM_ID);
@@ -139,10 +146,10 @@ class ClickOutsideDirective {
139
146
  _removeWindowBlurListener() {
140
147
  window.removeEventListener('blur', this._onWindowBlur);
141
148
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
143
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: ClickOutsideDirective, isStandalone: true, selector: "[clickOutside]", inputs: { clickOutsideEnabled: { classPropertyName: "clickOutsideEnabled", publicName: "clickOutsideEnabled", isSignal: true, isRequired: false, transformFunction: null }, attachOutsideOnClick: { classPropertyName: "attachOutsideOnClick", publicName: "attachOutsideOnClick", isSignal: true, isRequired: false, transformFunction: null }, delayClickOutsideInit: { classPropertyName: "delayClickOutsideInit", publicName: "delayClickOutsideInit", isSignal: true, isRequired: false, transformFunction: null }, emitOnBlur: { classPropertyName: "emitOnBlur", publicName: "emitOnBlur", isSignal: true, isRequired: false, transformFunction: null }, exclude: { classPropertyName: "exclude", publicName: "exclude", isSignal: true, isRequired: false, transformFunction: null }, excludeBeforeClick: { classPropertyName: "excludeBeforeClick", publicName: "excludeBeforeClick", isSignal: true, isRequired: false, transformFunction: null }, clickOutsideEvents: { classPropertyName: "clickOutsideEvents", publicName: "clickOutsideEvents", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickOutside: "clickOutside" }, ngImport: i0 }); }
149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
150
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.0", type: ClickOutsideDirective, isStandalone: true, selector: "[clickOutside]", inputs: { clickOutsideEnabled: { classPropertyName: "clickOutsideEnabled", publicName: "clickOutsideEnabled", isSignal: true, isRequired: false, transformFunction: null }, attachOutsideOnClick: { classPropertyName: "attachOutsideOnClick", publicName: "attachOutsideOnClick", isSignal: true, isRequired: false, transformFunction: null }, delayClickOutsideInit: { classPropertyName: "delayClickOutsideInit", publicName: "delayClickOutsideInit", isSignal: true, isRequired: false, transformFunction: null }, emitOnBlur: { classPropertyName: "emitOnBlur", publicName: "emitOnBlur", isSignal: true, isRequired: false, transformFunction: null }, exclude: { classPropertyName: "exclude", publicName: "exclude", isSignal: true, isRequired: false, transformFunction: null }, excludeBeforeClick: { classPropertyName: "excludeBeforeClick", publicName: "excludeBeforeClick", isSignal: true, isRequired: false, transformFunction: null }, clickOutsideEvents: { classPropertyName: "clickOutsideEvents", publicName: "clickOutsideEvents", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickOutside: "clickOutside" }, ngImport: i0 }); }
144
151
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: ClickOutsideDirective, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.0", ngImport: i0, type: ClickOutsideDirective, decorators: [{
146
153
  type: Directive,
147
154
  args: [{
148
155
  selector: '[clickOutside]',
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-click-outside.mjs","sources":["../../../../libs/mintplayer-ng-click-outside/src/lib/directives/click-outside/click-outside.directive.ts","../../../../libs/mintplayer-ng-click-outside/src/mintplayer-ng-click-outside.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, effect, inject, input, OnDestroy, OnInit, output, PLATFORM_ID } from '@angular/core';\n\n@Directive({\n selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective implements OnInit, OnDestroy {\n\n readonly clickOutsideEnabled = input(true);\n\n readonly attachOutsideOnClick = input(false);\n readonly delayClickOutsideInit = input(false);\n readonly emitOnBlur = input(false);\n\n readonly exclude = input<HTMLElement[]>([]);\n readonly excludeBeforeClick = input(false);\n\n readonly clickOutsideEvents = input('');\n\n readonly clickOutside = output<Event>();\n\n private element = inject(ElementRef);\n private platformId = inject(PLATFORM_ID);\n\n private _nodesExcluded: Array<HTMLElement> = [];\n private _events: Array<string> = ['click'];\n private _initialized = false;\n\n constructor() {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n this._onWindowBlur = this._onWindowBlur.bind(this);\n\n // Replace ngOnChanges: react to changes in attachOutsideOnClick, exclude, emitOnBlur\n effect(() => {\n // Read the signals to track them\n this.attachOutsideOnClick();\n this.exclude();\n this.emitOnBlur();\n\n if (this._initialized && isPlatformBrowser(this.platformId)) {\n this._init();\n }\n });\n }\n\n ngOnInit() {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n this._init();\n this._initialized = true;\n }\n\n ngOnDestroy() {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n this._removeClickOutsideListener();\n this._removeAttachOutsideOnClickListener();\n this._removeWindowBlurListener();\n }\n\n private _init() {\n if (this.clickOutsideEvents() !== '') {\n this._events = this.clickOutsideEvents().split(',').map(e => e.trim());\n }\n\n this._excludeCheck();\n\n if (this.attachOutsideOnClick()) {\n this._initAttachOutsideOnClickListener();\n } else {\n this._initOnClickBody();\n }\n\n if (this.emitOnBlur()) {\n this._initWindowBlurListener();\n }\n }\n\n private _initOnClickBody() {\n if (this.delayClickOutsideInit()) {\n setTimeout(this._initClickOutsideListener.bind(this));\n } else {\n this._initClickOutsideListener();\n }\n }\n\n private _excludeCheck() {\n if (this.exclude()) {\n try {\n const nodes = this.exclude();\n if (nodes) {\n this._nodesExcluded = nodes;\n }\n } catch (err) {\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n\n private _onClickBody(ev: Event) {\n if (!this.clickOutsideEnabled()) { return; }\n\n if (this.excludeBeforeClick()) {\n this._excludeCheck();\n }\n\n if (!this.element.nativeElement.contains(ev.target) && !!ev.target && !this._shouldExclude(ev.target)) {\n this._emit(ev);\n\n if (this.attachOutsideOnClick()) {\n this._removeClickOutsideListener();\n }\n }\n }\n\n /**\n * Resolves problem with outside click on iframe\n * @see https://github.com/arkon/ng-click-outside/issues/32\n */\n private _onWindowBlur(ev: Event) {\n setTimeout(() => {\n if (!document.hidden) {\n this._emit(ev);\n }\n });\n }\n\n private _emit(ev: Event) {\n if (!this.clickOutsideEnabled()) { return; }\n\n this.clickOutside.emit(ev);\n }\n\n private _shouldExclude(target: EventTarget): boolean {\n for (const excludedNode of this._nodesExcluded) {\n if (excludedNode.contains(<Node>target)) {\n return true;\n }\n }\n\n return false;\n }\n\n private _initClickOutsideListener() {\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\n }\n\n private _removeClickOutsideListener() {\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\n }\n\n private _initAttachOutsideOnClickListener() {\n this._events.forEach(e => this.element.nativeElement.addEventListener(e, this._initOnClickBody));\n }\n\n private _removeAttachOutsideOnClickListener() {\n this._events.forEach(e => this.element.nativeElement.removeEventListener(e, this._initOnClickBody));\n }\n\n private _initWindowBlurListener() {\n window.addEventListener('blur', this._onWindowBlur);\n }\n\n private _removeWindowBlurListener() {\n window.removeEventListener('blur', this._onWindowBlur);\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-click-outside.mjs","sources":["../../../../libs/mintplayer-ng-click-outside/src/lib/directives/click-outside/click-outside.directive.ts","../../../../libs/mintplayer-ng-click-outside/src/mintplayer-ng-click-outside.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, effect, inject, input, OnDestroy, OnInit, output, PLATFORM_ID } from '@angular/core';\n\n@Directive({\n selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective implements OnInit, OnDestroy {\n\n readonly clickOutsideEnabled = input(true);\n\n readonly attachOutsideOnClick = input(false);\n readonly delayClickOutsideInit = input(false);\n readonly emitOnBlur = input(false);\n\n readonly exclude = input<HTMLElement[]>([]);\n readonly excludeBeforeClick = input(false);\n\n readonly clickOutsideEvents = input('');\n\n readonly clickOutside = output<Event>();\n\n private element = inject(ElementRef);\n private platformId = inject(PLATFORM_ID);\n\n private _nodesExcluded: Array<HTMLElement> = [];\n private _events: Array<string> = ['click'];\n private _initialized = false;\n\n constructor() {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n this._onWindowBlur = this._onWindowBlur.bind(this);\n\n // Replace ngOnChanges: react to changes in attachOutsideOnClick, exclude, emitOnBlur\n effect(() => {\n // Read the signals to track them\n this.attachOutsideOnClick();\n this.exclude();\n this.emitOnBlur();\n\n if (this._initialized && isPlatformBrowser(this.platformId)) {\n this._init();\n }\n });\n }\n\n ngOnInit() {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n this._init();\n this._initialized = true;\n }\n\n ngOnDestroy() {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n this._removeClickOutsideListener();\n this._removeAttachOutsideOnClickListener();\n this._removeWindowBlurListener();\n }\n\n private _init() {\n if (this.clickOutsideEvents() !== '') {\n this._events = this.clickOutsideEvents().split(',').map(e => e.trim());\n }\n\n this._excludeCheck();\n\n if (this.attachOutsideOnClick()) {\n this._initAttachOutsideOnClickListener();\n } else {\n this._initOnClickBody();\n }\n\n if (this.emitOnBlur()) {\n this._initWindowBlurListener();\n }\n }\n\n private _initOnClickBody() {\n if (this.delayClickOutsideInit()) {\n setTimeout(this._initClickOutsideListener.bind(this));\n } else {\n this._initClickOutsideListener();\n }\n }\n\n private _excludeCheck() {\n if (this.exclude()) {\n try {\n const nodes = this.exclude();\n if (nodes) {\n this._nodesExcluded = nodes;\n }\n } catch (err) {\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n\n private _onClickBody(ev: Event) {\n if (!this.clickOutsideEnabled()) { return; }\n\n if (this.excludeBeforeClick()) {\n this._excludeCheck();\n }\n\n if (!this.element.nativeElement.contains(ev.target) && !!ev.target && !this._shouldExclude(ev.target)) {\n this._emit(ev);\n\n if (this.attachOutsideOnClick()) {\n this._removeClickOutsideListener();\n }\n }\n }\n\n /**\n * Resolves problem with outside click on iframe\n * @see https://github.com/arkon/ng-click-outside/issues/32\n */\n private _onWindowBlur(ev: Event) {\n setTimeout(() => {\n if (!document.hidden) {\n this._emit(ev);\n }\n });\n }\n\n private _emit(ev: Event) {\n if (!this.clickOutsideEnabled()) { return; }\n\n this.clickOutside.emit(ev);\n }\n\n private _shouldExclude(target: EventTarget): boolean {\n for (const excludedNode of this._nodesExcluded) {\n if (excludedNode.contains(<Node>target)) {\n return true;\n }\n }\n\n return false;\n }\n\n private _initClickOutsideListener() {\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\n }\n\n private _removeClickOutsideListener() {\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\n }\n\n private _initAttachOutsideOnClickListener() {\n this._events.forEach(e => this.element.nativeElement.addEventListener(e, this._initOnClickBody));\n }\n\n private _removeAttachOutsideOnClickListener() {\n this._events.forEach(e => this.element.nativeElement.removeEventListener(e, this._initOnClickBody));\n }\n\n private _initWindowBlurListener() {\n window.addEventListener('blur', this._onWindowBlur);\n }\n\n private _removeWindowBlurListener() {\n window.removeEventListener('blur', this._onWindowBlur);\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "@mintplayer/ng-click-outside",
3
3
  "private": false,
4
- "version": "21.3.0",
4
+ "version": "22.0.0",
5
+ "license": "Apache-2.0",
5
6
  "repository": {
6
7
  "type": "git",
7
8
  "url": "https://github.com/MintPlayer/mintplayer-ng-bootstrap",
8
9
  "directory": "libs/mintplayer-ng-click-outside"
9
10
  },
10
11
  "peerDependencies": {
11
- "@angular/common": "^21.0.0",
12
- "@angular/core": "^21.0.0"
12
+ "@angular/common": "^22.0.0",
13
+ "@angular/core": "^22.0.0"
13
14
  },
14
15
  "dependencies": {
15
16
  "tslib": "^2.3.0"