ngx-bootstrap 21.2.0 → 21.2.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.
@@ -1,20 +1,12 @@
1
- import * as i1 from '@angular/animations';
2
- import { style, animate } from '@angular/animations';
3
1
  import * as i0 from '@angular/core';
4
2
  import { output, input, effect, HostBinding, Directive, NgModule } from '@angular/core';
3
+ import { onTransitionFinished } from 'ngx-bootstrap/utils';
5
4
 
6
- const COLLAPSE_ANIMATION_TIMING = '400ms cubic-bezier(0.4,0.0,0.2,1)';
7
- const expandAnimation = [
8
- style({ height: 0, visibility: 'hidden' }),
9
- animate(COLLAPSE_ANIMATION_TIMING, style({ height: '*', visibility: 'visible' }))
10
- ];
11
- const collapseAnimation = [
12
- style({ height: '*', visibility: 'visible' }),
13
- animate(COLLAPSE_ANIMATION_TIMING, style({ height: 0, visibility: 'hidden' }))
14
- ];
5
+ const COLLAPSE_ANIMATION_DURATION_MS = 400;
6
+ const COLLAPSE_ANIMATION_TIMING = `${COLLAPSE_ANIMATION_DURATION_MS}ms cubic-bezier(0.4,0.0,0.2,1)`;
15
7
 
16
8
  class CollapseDirective {
17
- constructor(_el, _renderer, _builder) {
9
+ constructor(_el, _renderer) {
18
10
  this._el = _el;
19
11
  this._renderer = _renderer;
20
12
  /** This event fires as soon as content collapses */
@@ -41,10 +33,9 @@ class CollapseDirective {
41
33
  this.collapse = input(false, ...(ngDevMode ? [{ debugName: "collapse" }] : []));
42
34
  this._display = 'block';
43
35
  this._stylesLoaded = false;
36
+ this._isTransitionRunning = false;
44
37
  this._COLLAPSE_ACTION_NAME = 'collapse';
45
38
  this._EXPAND_ACTION_NAME = 'expand';
46
- this._factoryCollapseAnimation = _builder.build(collapseAnimation);
47
- this._factoryExpandAnimation = _builder.build(expandAnimation);
48
39
  // Watch for display changes
49
40
  effect(() => {
50
41
  const displayValue = this.display();
@@ -59,7 +50,7 @@ class CollapseDirective {
59
50
  effect(() => {
60
51
  const collapseValue = this.collapse();
61
52
  this.collapseNewValue = collapseValue;
62
- if (!this._player || this._isAnimationDone) {
53
+ if (!this._isTransitionRunning || this._isAnimationDone) {
63
54
  this.isExpanded = collapseValue;
64
55
  this.toggle();
65
56
  }
@@ -67,11 +58,6 @@ class CollapseDirective {
67
58
  }
68
59
  ngAfterViewChecked() {
69
60
  this._stylesLoaded = true;
70
- if (!this._player || !this._isAnimationDone) {
71
- return;
72
- }
73
- this._player.reset();
74
- this._renderer.setStyle(this._el.nativeElement, 'height', '*');
75
61
  }
76
62
  /** allows to manually toggle content visibility */
77
63
  toggle() {
@@ -116,26 +102,96 @@ class CollapseDirective {
116
102
  return;
117
103
  }
118
104
  this.expanded.emit(this);
119
- this._renderer.removeStyle(this._el.nativeElement, 'overflow');
120
105
  });
121
106
  }
122
107
  animationRun(isAnimated, action) {
123
108
  if (!isAnimated || !this._stylesLoaded) {
124
109
  return (callback) => callback();
125
110
  }
126
- this._renderer.setStyle(this._el.nativeElement, 'overflow', 'hidden');
127
- this._renderer.addClass(this._el.nativeElement, 'collapse');
128
- const factoryAnimation = (action === this._EXPAND_ACTION_NAME)
129
- ? this._factoryExpandAnimation
130
- : this._factoryCollapseAnimation;
131
- if (this._player) {
132
- this._player.reset();
111
+ const el = this._el.nativeElement;
112
+ const isExpand = action === this._EXPAND_ACTION_NAME;
113
+ // True when a CSS transition is already mid-flight; we can reverse it by
114
+ // snapshotting the current rendered height and flipping the target.
115
+ const wasRunning = !!this._pendingFinish;
116
+ this._cancelPending();
117
+ // Ensure the element is visible before measuring scrollHeight — Bootstrap's
118
+ // .collapse:not(.show) { display:none } can win over a missing inline style.
119
+ this._renderer.setStyle(el, 'display', this._display);
120
+ this._renderer.setStyle(el, 'overflow', 'hidden');
121
+ this._renderer.setStyle(el, 'transition', `height ${COLLAPSE_ANIMATION_TIMING}`);
122
+ this._isTransitionRunning = true;
123
+ return (callback) => {
124
+ const finish = () => {
125
+ this._cancelPending();
126
+ this._isTransitionRunning = false;
127
+ if (isExpand) {
128
+ // Remove the inline display so Bootstrap classes resume display control.
129
+ this._renderer.removeStyle(el, 'display');
130
+ }
131
+ else {
132
+ // Set display:none before removing the height style so the element
133
+ // doesn't flash at its natural height for one frame.
134
+ this._renderer.setStyle(el, 'display', 'none');
135
+ }
136
+ this._renderer.removeStyle(el, 'height');
137
+ this._renderer.removeStyle(el, 'transition');
138
+ this._renderer.removeStyle(el, 'overflow');
139
+ callback();
140
+ };
141
+ // Guards against bubbled child events; falls back to a timeout if
142
+ // transitionend never fires (e.g. start == end value).
143
+ this._pendingFinish = onTransitionFinished(el, 'height', COLLAPSE_ANIMATION_DURATION_MS, finish);
144
+ if (wasRunning) {
145
+ // Mid-animation reversal: snapshot the current rendered height, force
146
+ // a reflow so the browser registers it as the start state, then flip.
147
+ const currentHeight = el.getBoundingClientRect().height;
148
+ this._renderer.setStyle(el, 'height', `${currentHeight}px`);
149
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
150
+ el.offsetHeight;
151
+ this._renderer.setStyle(el, 'height', isExpand ? `${el.scrollHeight}px` : '0');
152
+ }
153
+ else if (isExpand) {
154
+ // Pin at 0px and force a synchronous layout so the browser registers it
155
+ // as the CSS "before-change" style, then defer the target height to the
156
+ // next animation frame so Chrome paints the 0px start state first.
157
+ this._renderer.setStyle(el, 'height', '0');
158
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
159
+ el.offsetHeight;
160
+ this._rafId = requestAnimationFrame(() => {
161
+ this._rafId = undefined;
162
+ this._renderer.setStyle(el, 'height', `${el.scrollHeight}px`);
163
+ });
164
+ }
165
+ else {
166
+ // Two-rAF pattern mirrors the expand direction: the first frame pins
167
+ // the element at its natural height so the browser records a concrete
168
+ // painted "before" value, then the second frame sets height:0 and the
169
+ // browser transitions from the painted state. A single rAF with an
170
+ // offsetHeight reflow is not reliable across browsers because the forced
171
+ // reflow inside a rAF callback is not always treated as a transition
172
+ // "before-change" checkpoint.
173
+ this._rafId = requestAnimationFrame(() => {
174
+ this._renderer.setStyle(el, 'height', `${el.scrollHeight}px`);
175
+ this._rafId = requestAnimationFrame(() => {
176
+ this._rafId = undefined;
177
+ this._renderer.setStyle(el, 'height', '0');
178
+ });
179
+ });
180
+ }
181
+ };
182
+ }
183
+ ngOnDestroy() {
184
+ this._cancelPending();
185
+ }
186
+ _cancelPending() {
187
+ this._pendingFinish?.cancel();
188
+ this._pendingFinish = undefined;
189
+ if (this._rafId !== undefined) {
190
+ cancelAnimationFrame(this._rafId);
191
+ this._rafId = undefined;
133
192
  }
134
- this._player = factoryAnimation.create(this._el.nativeElement);
135
- this._player.play();
136
- return (callback) => this._player?.onDone(callback);
137
193
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Directive }); }
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollapseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
139
195
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.0", type: CollapseDirective, isStandalone: true, selector: "[collapse]", inputs: { display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: false, transformFunction: null }, collapse: { classPropertyName: "collapse", publicName: "collapse", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsed", collapses: "collapses", expanded: "expanded", expands: "expands" }, host: { properties: { "class.collapse": "this.isCollapse", "class.in": "this.isExpanded", "class.show": "this.isExpanded", "attr.aria-hidden": "this.isCollapsed", "class.collapsing": "this.isCollapsing" } }, exportAs: ["bs-collapse"], ngImport: i0 }); }
140
196
  }
141
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CollapseDirective, decorators: [{
@@ -148,7 +204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
148
204
  },
149
205
  standalone: true
150
206
  }]
151
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.AnimationBuilder }], propDecorators: { collapsed: [{ type: i0.Output, args: ["collapsed"] }], collapses: [{ type: i0.Output, args: ["collapses"] }], expanded: [{ type: i0.Output, args: ["expanded"] }], expands: [{ type: i0.Output, args: ["expands"] }], isExpanded: [{
207
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { collapsed: [{ type: i0.Output, args: ["collapsed"] }], collapses: [{ type: i0.Output, args: ["collapses"] }], expanded: [{ type: i0.Output, args: ["expanded"] }], expands: [{ type: i0.Output, args: ["expands"] }], isExpanded: [{
152
208
  type: HostBinding,
153
209
  args: ['class.in']
154
210
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-collapse.mjs","sources":["../../../../src/collapse/collapse-animations.ts","../../../../src/collapse/collapse.directive.ts","../../../../src/collapse/collapse.module.ts","../../../../src/collapse/ngx-bootstrap-collapse.ts"],"sourcesContent":["import {\n animate,\n style,\n AnimationMetadata\n} from '@angular/animations';\n\nexport const COLLAPSE_ANIMATION_TIMING = '400ms cubic-bezier(0.4,0.0,0.2,1)';\n\nexport const expandAnimation: AnimationMetadata[] = [\n style({ height: 0, visibility: 'hidden' }),\n animate(\n COLLAPSE_ANIMATION_TIMING,\n style({ height: '*', visibility: 'visible' })\n )\n];\n\nexport const collapseAnimation: AnimationMetadata[] = [\n style({ height: '*', visibility: 'visible' }),\n animate(\n COLLAPSE_ANIMATION_TIMING,\n style({ height: 0, visibility: 'hidden' })\n )\n];\n","import {\n AnimationBuilder,\n AnimationFactory,\n AnimationPlayer\n} from '@angular/animations';\n\nimport {\n AfterViewChecked,\n Directive,\n ElementRef,\n HostBinding,\n Renderer2,\n effect,\n input,\n output\n} from '@angular/core';\n\nimport {\n collapseAnimation,\n expandAnimation\n} from './collapse-animations';\n\n@Directive({\n selector: '[collapse]',\n exportAs: 'bs-collapse',\n host: {\n '[class.collapse]': 'true'\n },\n standalone: true\n})\nexport class CollapseDirective implements AfterViewChecked {\n /** This event fires as soon as content collapses */\n collapsed = output<CollapseDirective>();\n /** This event fires when collapsing is started */\n collapses = output<CollapseDirective>();\n /** This event fires as soon as content becomes visible */\n expanded = output<CollapseDirective>();\n /** This event fires when expansion is started */\n expands = output<CollapseDirective>();\n // shown\n @HostBinding('class.in')\n @HostBinding('class.show')\n\n isExpanded = true;\n collapseNewValue = true;\n // hidden\n @HostBinding('attr.aria-hidden') isCollapsed = false;\n // stale state\n @HostBinding('class.collapse') isCollapse = true;\n // animation state\n @HostBinding('class.collapsing') isCollapsing = false;\n\n display = input<string>('block');\n\n /** turn on/off animation */\n isAnimated = input<boolean>(false);\n /** A flag indicating visibility of content (shown or hidden) */\n collapse = input<boolean>(false);\n\n private _display = 'block';\n private _isAnimationDone?: boolean;\n private _player?: AnimationPlayer;\n private _stylesLoaded = false;\n\n private _COLLAPSE_ACTION_NAME = 'collapse';\n private _EXPAND_ACTION_NAME = 'expand';\n\n private readonly _factoryCollapseAnimation: AnimationFactory;\n private readonly _factoryExpandAnimation: AnimationFactory;\n\n constructor(\n private _el: ElementRef,\n private _renderer: Renderer2,\n _builder: AnimationBuilder\n ) {\n this._factoryCollapseAnimation = _builder.build(collapseAnimation);\n this._factoryExpandAnimation = _builder.build(expandAnimation);\n \n // Watch for display changes\n effect(() => {\n const displayValue = this.display();\n this._display = displayValue;\n if (displayValue === 'none') {\n this.hide();\n return;\n }\n this.isAnimated() ? this.toggle() : this.show();\n });\n \n // Watch for collapse changes\n effect(() => {\n const collapseValue = this.collapse();\n this.collapseNewValue = collapseValue;\n if (!this._player || this._isAnimationDone) {\n this.isExpanded = collapseValue;\n this.toggle();\n }\n });\n }\n\n ngAfterViewChecked(): void {\n this._stylesLoaded = true;\n\n if (!this._player || !this._isAnimationDone) {\n return;\n }\n\n this._player.reset();\n this._renderer.setStyle(this._el.nativeElement, 'height', '*');\n }\n\n /** allows to manually toggle content visibility */\n toggle(): void {\n if (this.isExpanded) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /** allows to manually hide content */\n hide(): void {\n this.isCollapsing = true;\n this.isExpanded = false;\n this.isCollapsed = true;\n this.isCollapsing = false;\n\n this.collapses.emit(this);\n\n this._isAnimationDone = false;\n\n this.animationRun(this.isAnimated(), this._COLLAPSE_ACTION_NAME)(() => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated()) {\n this.show();\n\n return;\n }\n this.collapsed.emit(this);\n this._renderer.setStyle(this._el.nativeElement, 'display', 'none');\n });\n }\n /** allows to manually show collapsed content */\n show(): void {\n this._renderer.setStyle(this._el.nativeElement, 'display', this._display);\n\n this.isCollapsing = true;\n this.isExpanded = true;\n this.isCollapsed = false;\n this.isCollapsing = false;\n\n this.expands.emit(this);\n\n this._isAnimationDone = false;\n this.animationRun(this.isAnimated(), this._EXPAND_ACTION_NAME)(() => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated()) {\n this.hide();\n\n return;\n }\n this.expanded.emit(this);\n this._renderer.removeStyle(this._el.nativeElement, 'overflow');\n });\n }\n\n animationRun(isAnimated: boolean, action: string) {\n if (!isAnimated || !this._stylesLoaded) {\n return (callback: () => void) => callback();\n }\n\n this._renderer.setStyle(this._el.nativeElement, 'overflow', 'hidden');\n this._renderer.addClass(this._el.nativeElement, 'collapse');\n\n const factoryAnimation = (action === this._EXPAND_ACTION_NAME)\n ? this._factoryExpandAnimation\n : this._factoryCollapseAnimation;\n\n if (this._player) {\n this._player.reset();\n }\n\n this._player = factoryAnimation.create(this._el.nativeElement);\n this._player.play();\n\n return (callback: () => void) => this._player?.onDone(callback);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { CollapseDirective } from './collapse.directive';\n\n@NgModule({\n imports: [CollapseDirective],\n exports: [CollapseDirective]\n})\nexport class CollapseModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-bootstrap-collapse.mjs","sources":["../../../../src/collapse/collapse-animations.ts","../../../../src/collapse/collapse.directive.ts","../../../../src/collapse/collapse.module.ts","../../../../src/collapse/ngx-bootstrap-collapse.ts"],"sourcesContent":["export const COLLAPSE_ANIMATION_DURATION_MS = 400;\nexport const COLLAPSE_ANIMATION_TIMING = `${COLLAPSE_ANIMATION_DURATION_MS}ms cubic-bezier(0.4,0.0,0.2,1)`;\n","import {\n AfterViewChecked,\n Directive,\n ElementRef,\n HostBinding,\n OnDestroy,\n Renderer2,\n effect,\n input,\n output\n} from '@angular/core';\n\nimport { onTransitionFinished, TransitionFinishedRef } from 'ngx-bootstrap/utils';\n\nimport { COLLAPSE_ANIMATION_DURATION_MS, COLLAPSE_ANIMATION_TIMING } from './collapse-animations';\n\n@Directive({\n selector: '[collapse]',\n exportAs: 'bs-collapse',\n host: {\n '[class.collapse]': 'true'\n },\n standalone: true\n})\nexport class CollapseDirective implements AfterViewChecked, OnDestroy {\n /** This event fires as soon as content collapses */\n collapsed = output<CollapseDirective>();\n /** This event fires when collapsing is started */\n collapses = output<CollapseDirective>();\n /** This event fires as soon as content becomes visible */\n expanded = output<CollapseDirective>();\n /** This event fires when expansion is started */\n expands = output<CollapseDirective>();\n // shown\n @HostBinding('class.in')\n @HostBinding('class.show')\n\n isExpanded = true;\n collapseNewValue = true;\n // hidden\n @HostBinding('attr.aria-hidden') isCollapsed = false;\n // stale state\n @HostBinding('class.collapse') isCollapse = true;\n // animation state\n @HostBinding('class.collapsing') isCollapsing = false;\n\n display = input<string>('block');\n\n /** turn on/off animation */\n isAnimated = input<boolean>(false);\n /** A flag indicating visibility of content (shown or hidden) */\n collapse = input<boolean>(false);\n\n private _display = 'block';\n private _isAnimationDone?: boolean;\n private _stylesLoaded = false;\n private _isTransitionRunning = false;\n private _pendingFinish?: TransitionFinishedRef;\n private _rafId?: number;\n\n private _COLLAPSE_ACTION_NAME = 'collapse';\n private _EXPAND_ACTION_NAME = 'expand';\n\n constructor(private _el: ElementRef, private _renderer: Renderer2) {\n // Watch for display changes\n effect(() => {\n const displayValue = this.display();\n this._display = displayValue;\n if (displayValue === 'none') {\n this.hide();\n return;\n }\n this.isAnimated() ? this.toggle() : this.show();\n });\n\n // Watch for collapse changes\n effect(() => {\n const collapseValue = this.collapse();\n this.collapseNewValue = collapseValue;\n if (!this._isTransitionRunning || this._isAnimationDone) {\n this.isExpanded = collapseValue;\n this.toggle();\n }\n });\n }\n\n ngAfterViewChecked(): void {\n this._stylesLoaded = true;\n }\n\n /** allows to manually toggle content visibility */\n toggle(): void {\n if (this.isExpanded) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /** allows to manually hide content */\n hide(): void {\n this.isCollapsing = true;\n this.isExpanded = false;\n this.isCollapsed = true;\n this.isCollapsing = false;\n\n this.collapses.emit(this);\n\n this._isAnimationDone = false;\n\n this.animationRun(this.isAnimated(), this._COLLAPSE_ACTION_NAME)(() => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated()) {\n this.show();\n return;\n }\n this.collapsed.emit(this);\n this._renderer.setStyle(this._el.nativeElement, 'display', 'none');\n });\n }\n\n /** allows to manually show collapsed content */\n show(): void {\n this._renderer.setStyle(this._el.nativeElement, 'display', this._display);\n\n this.isCollapsing = true;\n this.isExpanded = true;\n this.isCollapsed = false;\n this.isCollapsing = false;\n\n this.expands.emit(this);\n\n this._isAnimationDone = false;\n this.animationRun(this.isAnimated(), this._EXPAND_ACTION_NAME)(() => {\n this._isAnimationDone = true;\n if (this.collapseNewValue !== this.isCollapsed && this.isAnimated()) {\n this.hide();\n return;\n }\n this.expanded.emit(this);\n });\n }\n\n animationRun(isAnimated: boolean, action: string): (callback: () => void) => void {\n if (!isAnimated || !this._stylesLoaded) {\n return (callback: () => void) => callback();\n }\n\n const el = this._el.nativeElement as HTMLElement;\n const isExpand = action === this._EXPAND_ACTION_NAME;\n // True when a CSS transition is already mid-flight; we can reverse it by\n // snapshotting the current rendered height and flipping the target.\n const wasRunning = !!this._pendingFinish;\n\n this._cancelPending();\n\n // Ensure the element is visible before measuring scrollHeight — Bootstrap's\n // .collapse:not(.show) { display:none } can win over a missing inline style.\n this._renderer.setStyle(el, 'display', this._display);\n this._renderer.setStyle(el, 'overflow', 'hidden');\n this._renderer.setStyle(el, 'transition', `height ${COLLAPSE_ANIMATION_TIMING}`);\n\n this._isTransitionRunning = true;\n\n return (callback: () => void) => {\n const finish = () => {\n this._cancelPending();\n this._isTransitionRunning = false;\n if (isExpand) {\n // Remove the inline display so Bootstrap classes resume display control.\n this._renderer.removeStyle(el, 'display');\n } else {\n // Set display:none before removing the height style so the element\n // doesn't flash at its natural height for one frame.\n this._renderer.setStyle(el, 'display', 'none');\n }\n this._renderer.removeStyle(el, 'height');\n this._renderer.removeStyle(el, 'transition');\n this._renderer.removeStyle(el, 'overflow');\n callback();\n };\n\n // Guards against bubbled child events; falls back to a timeout if\n // transitionend never fires (e.g. start == end value).\n this._pendingFinish = onTransitionFinished(el, 'height', COLLAPSE_ANIMATION_DURATION_MS, finish);\n\n if (wasRunning) {\n // Mid-animation reversal: snapshot the current rendered height, force\n // a reflow so the browser registers it as the start state, then flip.\n const currentHeight = el.getBoundingClientRect().height;\n this._renderer.setStyle(el, 'height', `${currentHeight}px`);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n el.offsetHeight;\n this._renderer.setStyle(el, 'height', isExpand ? `${el.scrollHeight}px` : '0');\n } else if (isExpand) {\n // Pin at 0px and force a synchronous layout so the browser registers it\n // as the CSS \"before-change\" style, then defer the target height to the\n // next animation frame so Chrome paints the 0px start state first.\n this._renderer.setStyle(el, 'height', '0');\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n el.offsetHeight;\n this._rafId = requestAnimationFrame(() => {\n this._rafId = undefined;\n this._renderer.setStyle(el, 'height', `${el.scrollHeight}px`);\n });\n } else {\n // Two-rAF pattern mirrors the expand direction: the first frame pins\n // the element at its natural height so the browser records a concrete\n // painted \"before\" value, then the second frame sets height:0 and the\n // browser transitions from the painted state. A single rAF with an\n // offsetHeight reflow is not reliable across browsers because the forced\n // reflow inside a rAF callback is not always treated as a transition\n // \"before-change\" checkpoint.\n this._rafId = requestAnimationFrame(() => {\n this._renderer.setStyle(el, 'height', `${el.scrollHeight}px`);\n this._rafId = requestAnimationFrame(() => {\n this._rafId = undefined;\n this._renderer.setStyle(el, 'height', '0');\n });\n });\n }\n };\n }\n\n ngOnDestroy(): void {\n this._cancelPending();\n }\n\n private _cancelPending(): void {\n this._pendingFinish?.cancel();\n this._pendingFinish = undefined;\n if (this._rafId !== undefined) {\n cancelAnimationFrame(this._rafId);\n this._rafId = undefined;\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { CollapseDirective } from './collapse.directive';\n\n@NgModule({\n imports: [CollapseDirective],\n exports: [CollapseDirective]\n})\nexport class CollapseModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { AfterViewChecked, ElementRef, Renderer2 } from '@angular/core';
3
- import { AnimationBuilder } from '@angular/animations';
2
+ import { AfterViewChecked, OnDestroy, ElementRef, Renderer2 } from '@angular/core';
4
3
 
5
- declare class CollapseDirective implements AfterViewChecked {
4
+ declare class CollapseDirective implements AfterViewChecked, OnDestroy {
6
5
  private _el;
7
6
  private _renderer;
8
7
  /** This event fires as soon as content collapses */
@@ -25,13 +24,13 @@ declare class CollapseDirective implements AfterViewChecked {
25
24
  collapse: _angular_core.InputSignal<boolean>;
26
25
  private _display;
27
26
  private _isAnimationDone?;
28
- private _player?;
29
27
  private _stylesLoaded;
28
+ private _isTransitionRunning;
29
+ private _pendingFinish?;
30
+ private _rafId?;
30
31
  private _COLLAPSE_ACTION_NAME;
31
32
  private _EXPAND_ACTION_NAME;
32
- private readonly _factoryCollapseAnimation;
33
- private readonly _factoryExpandAnimation;
34
- constructor(_el: ElementRef, _renderer: Renderer2, _builder: AnimationBuilder);
33
+ constructor(_el: ElementRef, _renderer: Renderer2);
35
34
  ngAfterViewChecked(): void;
36
35
  /** allows to manually toggle content visibility */
37
36
  toggle(): void;
@@ -40,6 +39,8 @@ declare class CollapseDirective implements AfterViewChecked {
40
39
  /** allows to manually show collapsed content */
41
40
  show(): void;
42
41
  animationRun(isAnimated: boolean, action: string): (callback: () => void) => void;
42
+ ngOnDestroy(): void;
43
+ private _cancelPending;
43
44
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CollapseDirective, never>;
44
45
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CollapseDirective, "[collapse]", ["bs-collapse"], { "display": { "alias": "display"; "required": false; "isSignal": true; }; "isAnimated": { "alias": "isAnimated"; "required": false; "isSignal": true; }; "collapse": { "alias": "collapse"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsed"; "collapses": "collapses"; "expanded": "expanded"; "expands": "expands"; }, never, never, true, never>;
45
46
  }
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Injector, ElementRef, TemplateRef, Inject, Injectable } from '@angular/core';
2
+ import { EventEmitter, Injector, createComponent, ElementRef, TemplateRef, Inject, Injectable } from '@angular/core';
3
3
  import { listenToTriggersV2, registerOutsideClick, registerEscClick } from 'ngx-bootstrap/utils';
4
4
  import * as i1 from 'ngx-bootstrap/positioning';
5
5
  import { DOCUMENT } from '@angular/common';
@@ -32,12 +32,12 @@ class ComponentLoader {
32
32
  * `ComponentLoadFactory.attach`
33
33
  * @internal
34
34
  */
35
- constructor(_viewContainerRef, _renderer, _elementRef, _injector, _componentFactoryResolver, _applicationRef, _posService, _document) {
35
+ constructor(_viewContainerRef, _renderer, _elementRef, _injector, _environmentInjector, _applicationRef, _posService, _document) {
36
36
  this._viewContainerRef = _viewContainerRef;
37
37
  this._renderer = _renderer;
38
38
  this._elementRef = _elementRef;
39
39
  this._injector = _injector;
40
- this._componentFactoryResolver = _componentFactoryResolver;
40
+ this._environmentInjector = _environmentInjector;
41
41
  this._applicationRef = _applicationRef;
42
42
  this._posService = _posService;
43
43
  this._document = _document;
@@ -61,8 +61,7 @@ class ComponentLoader {
61
61
  return !!this._componentRef;
62
62
  }
63
63
  attach(compType) {
64
- this._componentFactory = this._componentFactoryResolver
65
- .resolveComponentFactory(compType);
64
+ this._compType = compType;
66
65
  return this;
67
66
  }
68
67
  // todo: add behaviour: to target element, `body`, custom element
@@ -89,14 +88,18 @@ class ComponentLoader {
89
88
  if (!this._componentRef) {
90
89
  this.onBeforeShow.emit();
91
90
  this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);
92
- const injector = Injector.create({
91
+ const elementInjector = Injector.create({
93
92
  providers: this._providers,
94
93
  parent: this._injector
95
94
  });
96
- if (!this._componentFactory) {
95
+ if (!this._compType) {
97
96
  return;
98
97
  }
99
- this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);
98
+ this._componentRef = createComponent(this._compType, {
99
+ environmentInjector: this._environmentInjector,
100
+ elementInjector,
101
+ projectableNodes: this._contentRef.nodes
102
+ });
100
103
  this._applicationRef.attachView(this._componentRef.hostView);
101
104
  // this._componentRef = this._viewContainerRef
102
105
  // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);
@@ -118,6 +121,10 @@ class ComponentLoader {
118
121
  this._elementRef.nativeElement.parentElement) {
119
122
  this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement);
120
123
  }
124
+ // Hide element initially when positioning is active to prevent flash in zoneless mode
125
+ if (this.attachment) {
126
+ this._componentRef.location.nativeElement.style.visibility = 'hidden';
127
+ }
121
128
  // we need to manually invoke change detection since events registered
122
129
  // via
123
130
  // Renderer::listen() are not picked up by change detection with the
@@ -259,11 +266,21 @@ class ComponentLoader {
259
266
  });
260
267
  // Use requestAnimationFrame for zoneless-compatible position updates
261
268
  // This replaces the previous NgZone.onStable subscription
269
+ let isFirstPositioning = true;
262
270
  const schedulePositioning = () => {
263
271
  if (!this._componentRef) {
264
272
  return;
265
273
  }
266
274
  this._posService.calcPosition();
275
+ // Show popover after first positioning is complete to prevent flash
276
+ if (isFirstPositioning) {
277
+ isFirstPositioning = false;
278
+ requestAnimationFrame(() => {
279
+ if (this._componentRef?.location) {
280
+ this._componentRef.location.nativeElement.style.visibility = 'visible';
281
+ }
282
+ });
283
+ }
267
284
  this._positioningRafId = requestAnimationFrame(schedulePositioning);
268
285
  };
269
286
  // Initial calculation after a short delay to ensure DOM is ready
@@ -292,17 +309,19 @@ class ComponentLoader {
292
309
  _viewRef.markForCheck();
293
310
  return new ContentRef([_viewRef.rootNodes], _viewRef);
294
311
  }
295
- const viewRef = content.createEmbeddedView({});
312
+ const viewRef = content.createEmbeddedView(context || {});
296
313
  this._applicationRef.attachView(viewRef);
297
314
  return new ContentRef([viewRef.rootNodes], viewRef);
298
315
  }
299
316
  if (typeof content === 'function') {
300
- const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(content);
301
317
  const modalContentInjector = Injector.create({
302
318
  providers: this._providers,
303
319
  parent: this._injector
304
320
  });
305
- const componentRef = contentCmptFactory.create(modalContentInjector);
321
+ const componentRef = createComponent(content, {
322
+ environmentInjector: this._environmentInjector,
323
+ elementInjector: modalContentInjector,
324
+ });
306
325
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
307
326
  // @ts-ignore
308
327
  Object.assign(componentRef.instance, initialState);
@@ -317,8 +336,8 @@ class ComponentLoader {
317
336
  }
318
337
 
319
338
  class ComponentLoaderFactory {
320
- constructor(_componentFactoryResolver, _injector, _posService, _applicationRef, _document) {
321
- this._componentFactoryResolver = _componentFactoryResolver;
339
+ constructor(_environmentInjector, _injector, _posService, _applicationRef, _document) {
340
+ this._environmentInjector = _environmentInjector;
322
341
  this._injector = _injector;
323
342
  this._posService = _posService;
324
343
  this._applicationRef = _applicationRef;
@@ -331,15 +350,15 @@ class ComponentLoaderFactory {
331
350
  * @param _renderer
332
351
  */
333
352
  createLoader(_elementRef, _viewContainerRef, _renderer) {
334
- return new ComponentLoader(_viewContainerRef, _renderer, _elementRef, this._injector, this._componentFactoryResolver, this._applicationRef, this._posService, this._document);
353
+ return new ComponentLoader(_viewContainerRef, _renderer, _elementRef, this._injector, this._environmentInjector, this._applicationRef, this._posService, this._document);
335
354
  }
336
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComponentLoaderFactory, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i1.PositioningService }, { token: i0.ApplicationRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComponentLoaderFactory, deps: [{ token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: i1.PositioningService }, { token: i0.ApplicationRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
337
356
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComponentLoaderFactory, providedIn: 'root' }); }
338
357
  }
339
358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ComponentLoaderFactory, decorators: [{
340
359
  type: Injectable,
341
360
  args: [{ providedIn: 'root' }]
342
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i1.PositioningService }, { type: i0.ApplicationRef }, { type: Document, decorators: [{
361
+ }], ctorParameters: () => [{ type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: i1.PositioningService }, { type: i0.ApplicationRef }, { type: Document, decorators: [{
343
362
  type: Inject,
344
363
  args: [DOCUMENT]
345
364
  }] }] });
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-bootstrap-component-loader.mjs","sources":["../../../../src/component-loader/bs-component-ref.class.ts","../../../../src/component-loader/content-ref.class.ts","../../../../src/component-loader/component-loader.class.ts","../../../../src/component-loader/component-loader.factory.ts","../../../../src/component-loader/ngx-bootstrap-component-loader.ts"],"sourcesContent":["import { TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class BsComponentRef<T> {\n templateRef?: TemplateRef<T>;\n viewContainer?: ViewContainerRef;\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\nimport { ComponentRef, ViewRef } from '@angular/core';\n\nexport class ContentRef {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodes: any[];\n viewRef?: ViewRef;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n componentRef?: ComponentRef<any>;\n\n constructor(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodes: any[],\n viewRef?: ViewRef,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n componentRef?: ComponentRef<any>\n ) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n","// todo: add delay support\n// todo: merge events onShow, onShown, etc...\n// todo: add global positioning configuration?\nimport {\n ApplicationRef,\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Injector,\n Renderer2,\n StaticProvider,\n TemplateRef,\n Type,\n ViewContainerRef,\n ChangeDetectorRef,\n inject\n} from '@angular/core';\n\nimport { PositioningOptions, PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { listenToTriggersV2, registerEscClick, registerOutsideClick } from 'ngx-bootstrap/utils';\n\nimport { ContentRef } from './content-ref.class';\nimport { ListenOptions } from './listen-options.model';\n\nexport class ComponentLoader<T extends object> {\n onBeforeShow = new EventEmitter();\n onShown = new EventEmitter();\n onBeforeHide = new EventEmitter();\n onHidden = new EventEmitter();\n\n instance?: T;\n _componentRef?: ComponentRef<T>;\n _inlineViewRef?: EmbeddedViewRef<T>;\n\n private _providers: StaticProvider[] = [];\n private _componentFactory?: ComponentFactory<T>;\n private _positioningRafId?: number;\n private _contentRef?: ContentRef;\n private _innerComponent?: ComponentRef<T>;\n\n private _unregisterListenersFn?: () => void;\n private _isHiding = false;\n /**\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n private attachment?: string;\n /**\n * A selector specifying the element the popover should be appended to.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private container: string | ElementRef | any;\n /**\n * A selector used if container element was not found\n */\n private containerDefaultSelector = 'body';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n private triggers?: string;\n private _listenOpts: ListenOptions = {};\n private _globalListener = Function.prototype;\n\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n public constructor(\n private _viewContainerRef: ViewContainerRef | undefined,\n private _renderer: Renderer2 | undefined,\n private _elementRef: ElementRef | undefined,\n private _injector: Injector,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _applicationRef: ApplicationRef,\n private _posService: PositioningService,\n private _document: Document,\n ) {\n }\n\n get isShown(): boolean {\n if (this._isHiding) {\n return false;\n }\n\n return !!this._componentRef;\n }\n\n attach(compType: Type<T>): ComponentLoader<T> {\n this._componentFactory = this._componentFactoryResolver\n .resolveComponentFactory<T>(compType);\n\n return this;\n }\n\n // todo: add behaviour: to target element, `body`, custom element\n to(container?: string | ElementRef): ComponentLoader<T> {\n this.container = container || this.container;\n\n return this;\n }\n\n position(opts?: PositioningOptions): ComponentLoader<T> {\n if (!opts) {\n return this;\n }\n\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = (opts.target as ElementRef) || this._elementRef;\n\n return this;\n }\n\n provide(provider: StaticProvider): ComponentLoader<T> {\n this._providers.push(provider);\n\n return this;\n }\n\n // todo: appendChild to element or document.querySelector(this.container)\n\n show(opts: {\n content?: string | TemplateRef<unknown>;\n context?: unknown;\n initialState?: unknown;\n [key: string]: unknown;\n id?: number | string;\n } = {}\n ): ComponentRef<T> | undefined {\n\n this._subscribePositioning();\n this._innerComponent = void 0;\n\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n\n const injector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n if (!this._componentFactory) {\n return;\n }\n\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n\n Object.assign(this._componentRef.instance, opts);\n\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n if (typeof this.container === 'string' && typeof this._document !== 'undefined') {\n const selectedElement = this._document.querySelector(this.container) ||\n this._document.querySelector(this.containerDefaultSelector);\n\n if (!selectedElement) {\n return;\n }\n\n selectedElement.appendChild(this._componentRef.location.nativeElement);\n }\n\n if (\n !this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n\n\n this.onShown.emit(opts.id ? { id: opts.id } : this._componentRef.instance);\n }\n\n this._registerOutsideClick();\n\n return this._componentRef;\n }\n\n hide(id?: number | string): ComponentLoader<T> {\n if (!this._componentRef) {\n return this;\n }\n\n this._posService.deletePositionElement(this._componentRef.location);\n\n this.onBeforeHide.emit(this._componentRef.instance);\n\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode?.removeChild(componentEl);\n\n this._contentRef?.componentRef?.destroy();\n\n if (this._viewContainerRef && this._contentRef?.viewRef) {\n this._viewContainerRef.remove(\n this._viewContainerRef.indexOf(this._contentRef.viewRef)\n );\n }\n this._contentRef?.viewRef?.destroy();\n this._componentRef?.destroy();\n\n this._contentRef = void 0;\n this._componentRef = void 0;\n this._removeGlobalListener();\n this._unsubscribePositioning();\n\n this.onHidden.emit(id ? { id } : null);\n\n return this;\n }\n\n toggle(): void {\n if (this.isShown) {\n this.hide();\n\n return;\n }\n\n this.show();\n }\n\n dispose(): void {\n if (this.isShown) {\n this.hide();\n }\n\n this._unsubscribePositioning();\n\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n\n listen(listenOpts: ListenOptions): ComponentLoader<T> {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n this._listenOpts.outsideEsc = listenOpts.outsideEsc;\n listenOpts.target = listenOpts.target || this._elementRef?.nativeElement;\n\n const hide = (this._listenOpts.hide = () =>\n listenOpts.hide ? listenOpts.hide() : void this.hide());\n const show = (this._listenOpts.show = (registerHide) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const toggle = (registerHide: any) => {\n this.isShown ? hide() : show(registerHide);\n };\n\n if (this._renderer) {\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n }\n\n return this;\n }\n\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = Function.prototype;\n }\n }\n\n attachInline(\n vRef: ViewContainerRef | undefined,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n template: TemplateRef<any> | undefined\n ): ComponentLoader<T> {\n if (vRef && template) {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n }\n\n return this;\n }\n\n _registerOutsideClick(): void {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n\n let unsubscribeOutsideClick = Function.prototype;\n let unsubscribeEscClick = Function.prototype;\n\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n if (this._renderer && this._elementRef) {\n unsubscribeOutsideClick = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide && this._listenOpts.hide()\n });\n }\n });\n }\n if (this._listenOpts.outsideEsc && this._renderer && this._elementRef) {\n const target = this._componentRef.location.nativeElement;\n unsubscribeEscClick = registerEscClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideEsc: this._listenOpts.outsideEsc,\n hide: () => this._listenOpts.hide && this._listenOpts.hide()\n });\n }\n\n this._globalListener = () => {\n unsubscribeOutsideClick();\n unsubscribeEscClick();\n };\n }\n\n getInnerComponent(): ComponentRef<T> | undefined {\n return this._innerComponent;\n }\n\n private _subscribePositioning(): void {\n if (this._positioningRafId || !this.attachment) {\n return;\n }\n\n this.onShown.subscribe(() => {\n this._posService.position({\n element: this._componentRef?.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n\n // Use requestAnimationFrame for zoneless-compatible position updates\n // This replaces the previous NgZone.onStable subscription\n const schedulePositioning = () => {\n if (!this._componentRef) {\n return;\n }\n\n this._posService.calcPosition();\n this._positioningRafId = requestAnimationFrame(schedulePositioning);\n };\n\n // Initial calculation after a short delay to ensure DOM is ready\n this._positioningRafId = requestAnimationFrame(schedulePositioning);\n }\n\n private _unsubscribePositioning(): void {\n if (this._positioningRafId) {\n cancelAnimationFrame(this._positioningRafId);\n this._positioningRafId = undefined;\n }\n }\n\n private _getContentRef(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n content: string | TemplateRef<any> | any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n initialState?: any\n ): ContentRef {\n if (!content) {\n return new ContentRef([]);\n }\n\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef\n .createEmbeddedView<TemplateRef<T>>(content, context);\n _viewRef.markForCheck();\n\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n if (typeof content === 'function') {\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(\n content\n );\n\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n const componentRef = contentCmptFactory.create(modalContentInjector);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n\n return new ContentRef(\n [[componentRef.location.nativeElement]],\n componentRef.hostView,\n componentRef\n );\n }\n\n const nodes = this._renderer\n ? [this._renderer.createText(`${content}`)]\n : [];\n return new ContentRef([nodes]);\n }\n}\n","import {\n ApplicationRef, ComponentFactoryResolver, ElementRef, Inject, Injectable, Injector,\n Renderer2, ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class ComponentLoaderFactory {\n constructor(private _componentFactoryResolver: ComponentFactoryResolver,\n private _injector: Injector,\n private _posService: PositioningService,\n private _applicationRef: ApplicationRef,\n @Inject(DOCUMENT) private _document: Document\n ) {}\n\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n */\n createLoader<T extends object>(_elementRef?: ElementRef,\n _viewContainerRef?: ViewContainerRef,\n _renderer?: Renderer2,\n ): ComponentLoader<T> {\n return new ComponentLoader<T>(\n _viewContainerRef,\n _renderer,\n _elementRef,\n this._injector,\n this._componentFactoryResolver,\n this._applicationRef,\n this._posService,\n this._document\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":"ngx-bootstrap-component-loader.mjs","sources":["../../../../src/component-loader/bs-component-ref.class.ts","../../../../src/component-loader/content-ref.class.ts","../../../../src/component-loader/component-loader.class.ts","../../../../src/component-loader/component-loader.factory.ts","../../../../src/component-loader/ngx-bootstrap-component-loader.ts"],"sourcesContent":["import { TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class BsComponentRef<T> {\n templateRef?: TemplateRef<T>;\n viewContainer?: ViewContainerRef;\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\nimport { ComponentRef, ViewRef } from '@angular/core';\n\nexport class ContentRef {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodes: any[];\n viewRef?: ViewRef;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n componentRef?: ComponentRef<any>;\n\n constructor(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodes: any[],\n viewRef?: ViewRef,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n componentRef?: ComponentRef<any>\n ) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n","// todo: add delay support\n// todo: merge events onShow, onShown, etc...\n// todo: add global positioning configuration?\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n ElementRef,\n EmbeddedViewRef,\n EnvironmentInjector,\n EventEmitter,\n Injector,\n Renderer2,\n StaticProvider,\n TemplateRef,\n Type,\n ViewContainerRef,\n ChangeDetectorRef,\n inject\n} from '@angular/core';\n\nimport { PositioningOptions, PositioningService } from 'ngx-bootstrap/positioning';\n\nimport { listenToTriggersV2, registerEscClick, registerOutsideClick } from 'ngx-bootstrap/utils';\n\nimport { ContentRef } from './content-ref.class';\nimport { ListenOptions } from './listen-options.model';\n\nexport class ComponentLoader<T extends object> {\n onBeforeShow = new EventEmitter();\n onShown = new EventEmitter();\n onBeforeHide = new EventEmitter();\n onHidden = new EventEmitter();\n\n instance?: T;\n _componentRef?: ComponentRef<T>;\n _inlineViewRef?: EmbeddedViewRef<T>;\n\n private _providers: StaticProvider[] = [];\n private _compType?: Type<T>;\n private _positioningRafId?: number;\n private _contentRef?: ContentRef;\n private _innerComponent?: ComponentRef<T>;\n\n private _unregisterListenersFn?: () => void;\n private _isHiding = false;\n /**\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n private attachment?: string;\n /**\n * A selector specifying the element the popover should be appended to.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private container: string | ElementRef | any;\n /**\n * A selector used if container element was not found\n */\n private containerDefaultSelector = 'body';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n private triggers?: string;\n private _listenOpts: ListenOptions = {};\n private _globalListener = Function.prototype;\n\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n public constructor(\n private _viewContainerRef: ViewContainerRef | undefined,\n private _renderer: Renderer2 | undefined,\n private _elementRef: ElementRef | undefined,\n private _injector: Injector,\n private _environmentInjector: EnvironmentInjector,\n private _applicationRef: ApplicationRef,\n private _posService: PositioningService,\n private _document: Document,\n ) {\n }\n\n get isShown(): boolean {\n if (this._isHiding) {\n return false;\n }\n\n return !!this._componentRef;\n }\n\n attach(compType: Type<T>): ComponentLoader<T> {\n this._compType = compType;\n\n return this;\n }\n\n // todo: add behaviour: to target element, `body`, custom element\n to(container?: string | ElementRef): ComponentLoader<T> {\n this.container = container || this.container;\n\n return this;\n }\n\n position(opts?: PositioningOptions): ComponentLoader<T> {\n if (!opts) {\n return this;\n }\n\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = (opts.target as ElementRef) || this._elementRef;\n\n return this;\n }\n\n provide(provider: StaticProvider): ComponentLoader<T> {\n this._providers.push(provider);\n\n return this;\n }\n\n // todo: appendChild to element or document.querySelector(this.container)\n\n show(opts: {\n content?: string | TemplateRef<unknown>;\n context?: unknown;\n initialState?: unknown;\n [key: string]: unknown;\n id?: number | string;\n } = {}\n ): ComponentRef<T> | undefined {\n\n this._subscribePositioning();\n this._innerComponent = void 0;\n\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n\n const elementInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n if (!this._compType) {\n return;\n }\n\n this._componentRef = createComponent(this._compType, {\n environmentInjector: this._environmentInjector,\n elementInjector,\n projectableNodes: this._contentRef.nodes\n });\n\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n\n Object.assign(this._componentRef.instance, opts);\n\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n if (typeof this.container === 'string' && typeof this._document !== 'undefined') {\n const selectedElement = this._document.querySelector(this.container) ||\n this._document.querySelector(this.containerDefaultSelector);\n\n if (!selectedElement) {\n return;\n }\n\n selectedElement.appendChild(this._componentRef.location.nativeElement);\n }\n\n if (\n !this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n // Hide element initially when positioning is active to prevent flash in zoneless mode\n if (this.attachment) {\n this._componentRef.location.nativeElement.style.visibility = 'hidden';\n }\n\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n\n\n this.onShown.emit(opts.id ? { id: opts.id } : this._componentRef.instance);\n }\n\n this._registerOutsideClick();\n\n return this._componentRef;\n }\n\n hide(id?: number | string): ComponentLoader<T> {\n if (!this._componentRef) {\n return this;\n }\n\n this._posService.deletePositionElement(this._componentRef.location);\n\n this.onBeforeHide.emit(this._componentRef.instance);\n\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode?.removeChild(componentEl);\n\n this._contentRef?.componentRef?.destroy();\n\n if (this._viewContainerRef && this._contentRef?.viewRef) {\n this._viewContainerRef.remove(\n this._viewContainerRef.indexOf(this._contentRef.viewRef)\n );\n }\n this._contentRef?.viewRef?.destroy();\n this._componentRef?.destroy();\n\n this._contentRef = void 0;\n this._componentRef = void 0;\n this._removeGlobalListener();\n this._unsubscribePositioning();\n\n this.onHidden.emit(id ? { id } : null);\n\n return this;\n }\n\n toggle(): void {\n if (this.isShown) {\n this.hide();\n\n return;\n }\n\n this.show();\n }\n\n dispose(): void {\n if (this.isShown) {\n this.hide();\n }\n\n this._unsubscribePositioning();\n\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n\n listen(listenOpts: ListenOptions): ComponentLoader<T> {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n this._listenOpts.outsideEsc = listenOpts.outsideEsc;\n listenOpts.target = listenOpts.target || this._elementRef?.nativeElement;\n\n const hide = (this._listenOpts.hide = () =>\n listenOpts.hide ? listenOpts.hide() : void this.hide());\n const show = (this._listenOpts.show = (registerHide) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const toggle = (registerHide: any) => {\n this.isShown ? hide() : show(registerHide);\n };\n\n if (this._renderer) {\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n }\n\n return this;\n }\n\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = Function.prototype;\n }\n }\n\n attachInline(\n vRef: ViewContainerRef | undefined,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n template: TemplateRef<any> | undefined\n ): ComponentLoader<T> {\n if (vRef && template) {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n }\n\n return this;\n }\n\n _registerOutsideClick(): void {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n\n let unsubscribeOutsideClick = Function.prototype;\n let unsubscribeEscClick = Function.prototype;\n\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n if (this._renderer && this._elementRef) {\n unsubscribeOutsideClick = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide && this._listenOpts.hide()\n });\n }\n });\n }\n if (this._listenOpts.outsideEsc && this._renderer && this._elementRef) {\n const target = this._componentRef.location.nativeElement;\n unsubscribeEscClick = registerEscClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideEsc: this._listenOpts.outsideEsc,\n hide: () => this._listenOpts.hide && this._listenOpts.hide()\n });\n }\n\n this._globalListener = () => {\n unsubscribeOutsideClick();\n unsubscribeEscClick();\n };\n }\n\n getInnerComponent(): ComponentRef<T> | undefined {\n return this._innerComponent;\n }\n\n private _subscribePositioning(): void {\n if (this._positioningRafId || !this.attachment) {\n return;\n }\n\n this.onShown.subscribe(() => {\n this._posService.position({\n element: this._componentRef?.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n\n // Use requestAnimationFrame for zoneless-compatible position updates\n // This replaces the previous NgZone.onStable subscription\n let isFirstPositioning = true;\n const schedulePositioning = () => {\n if (!this._componentRef) {\n return;\n }\n\n this._posService.calcPosition();\n \n // Show popover after first positioning is complete to prevent flash\n if (isFirstPositioning) {\n isFirstPositioning = false;\n requestAnimationFrame(() => {\n if (this._componentRef?.location) {\n this._componentRef.location.nativeElement.style.visibility = 'visible';\n }\n });\n }\n \n this._positioningRafId = requestAnimationFrame(schedulePositioning);\n };\n\n // Initial calculation after a short delay to ensure DOM is ready\n this._positioningRafId = requestAnimationFrame(schedulePositioning);\n }\n\n private _unsubscribePositioning(): void {\n if (this._positioningRafId) {\n cancelAnimationFrame(this._positioningRafId);\n this._positioningRafId = undefined;\n }\n }\n\n private _getContentRef(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n content: string | TemplateRef<any> | any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context?: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n initialState?: any\n ): ContentRef {\n if (!content) {\n return new ContentRef([]);\n }\n\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef\n .createEmbeddedView<TemplateRef<T>>(content, context);\n _viewRef.markForCheck();\n\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView(context || {});\n this._applicationRef.attachView(viewRef);\n\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n if (typeof content === 'function') {\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n\n const componentRef = createComponent(content, {\n environmentInjector: this._environmentInjector,\n elementInjector: modalContentInjector,\n });\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n\n return new ContentRef(\n [[componentRef.location.nativeElement]],\n componentRef.hostView,\n componentRef\n );\n }\n\n const nodes = this._renderer\n ? [this._renderer.createText(`${content}`)]\n : [];\n return new ContentRef([nodes]);\n }\n}\n","import {\n ApplicationRef, ElementRef, EnvironmentInjector, Inject, Injectable, Injector,\n Renderer2, ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({providedIn: 'root'})\nexport class ComponentLoaderFactory {\n constructor(private _environmentInjector: EnvironmentInjector,\n private _injector: Injector,\n private _posService: PositioningService,\n private _applicationRef: ApplicationRef,\n @Inject(DOCUMENT) private _document: Document\n ) {}\n\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n */\n createLoader<T extends object>(_elementRef?: ElementRef,\n _viewContainerRef?: ViewContainerRef,\n _renderer?: Renderer2,\n ): ComponentLoader<T> {\n return new ComponentLoader<T>(\n _viewContainerRef,\n _renderer,\n _elementRef,\n this._injector,\n this._environmentInjector,\n this._applicationRef,\n this._posService,\n this._document\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef, ViewContainerRef, EventEmitter, ComponentRef, EmbeddedViewRef, Renderer2, ElementRef, Injector, ComponentFactoryResolver, ApplicationRef, Type, StaticProvider, ViewRef } from '@angular/core';
2
+ import { TemplateRef, ViewContainerRef, EventEmitter, ComponentRef, EmbeddedViewRef, Renderer2, ElementRef, Injector, EnvironmentInjector, ApplicationRef, Type, StaticProvider, ViewRef } from '@angular/core';
3
3
  import { PositioningService, PositioningOptions } from 'ngx-bootstrap/positioning';
4
4
 
5
5
  declare class BsComponentRef<T> {
@@ -24,7 +24,7 @@ declare class ComponentLoader<T extends object> {
24
24
  private _renderer;
25
25
  private _elementRef;
26
26
  private _injector;
27
- private _componentFactoryResolver;
27
+ private _environmentInjector;
28
28
  private _applicationRef;
29
29
  private _posService;
30
30
  private _document;
@@ -36,7 +36,7 @@ declare class ComponentLoader<T extends object> {
36
36
  _componentRef?: ComponentRef<T>;
37
37
  _inlineViewRef?: EmbeddedViewRef<T>;
38
38
  private _providers;
39
- private _componentFactory?;
39
+ private _compType?;
40
40
  private _positioningRafId?;
41
41
  private _contentRef?;
42
42
  private _innerComponent?;
@@ -66,7 +66,7 @@ declare class ComponentLoader<T extends object> {
66
66
  * `ComponentLoadFactory.attach`
67
67
  * @internal
68
68
  */
69
- constructor(_viewContainerRef: ViewContainerRef | undefined, _renderer: Renderer2 | undefined, _elementRef: ElementRef | undefined, _injector: Injector, _componentFactoryResolver: ComponentFactoryResolver, _applicationRef: ApplicationRef, _posService: PositioningService, _document: Document);
69
+ constructor(_viewContainerRef: ViewContainerRef | undefined, _renderer: Renderer2 | undefined, _elementRef: ElementRef | undefined, _injector: Injector, _environmentInjector: EnvironmentInjector, _applicationRef: ApplicationRef, _posService: PositioningService, _document: Document);
70
70
  get isShown(): boolean;
71
71
  attach(compType: Type<T>): ComponentLoader<T>;
72
72
  to(container?: string | ElementRef): ComponentLoader<T>;
@@ -93,12 +93,12 @@ declare class ComponentLoader<T extends object> {
93
93
  }
94
94
 
95
95
  declare class ComponentLoaderFactory {
96
- private _componentFactoryResolver;
96
+ private _environmentInjector;
97
97
  private _injector;
98
98
  private _posService;
99
99
  private _applicationRef;
100
100
  private _document;
101
- constructor(_componentFactoryResolver: ComponentFactoryResolver, _injector: Injector, _posService: PositioningService, _applicationRef: ApplicationRef, _document: Document);
101
+ constructor(_environmentInjector: EnvironmentInjector, _injector: Injector, _posService: PositioningService, _applicationRef: ApplicationRef, _document: Document);
102
102
  /**
103
103
  *
104
104
  * @param _elementRef