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.
- package/collapse/fesm2022/ngx-bootstrap-collapse.mjs +89 -33
- package/collapse/fesm2022/ngx-bootstrap-collapse.mjs.map +1 -1
- package/collapse/types/ngx-bootstrap-collapse.d.ts +8 -7
- package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs +35 -16
- package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs.map +1 -1
- package/component-loader/types/ngx-bootstrap-component-loader.d.ts +6 -6
- package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs +59 -31
- package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs.map +1 -1
- package/datepicker/types/ngx-bootstrap-datepicker.d.ts +6 -2
- package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs +34 -21
- package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs.map +1 -1
- package/dropdown/types/ngx-bootstrap-dropdown.d.ts +4 -5
- package/package.json +1 -2
- package/schematics/ng-add/index.js +5 -13
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/utils/current_dependency_versions.json +1 -1
- package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs +52 -43
- package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs.map +1 -1
- package/typeahead/types/ngx-bootstrap-typeahead.d.ts +3 -1
- package/utils/fesm2022/ngx-bootstrap-utils.mjs +89 -1
- package/utils/fesm2022/ngx-bootstrap-utils.mjs.map +1 -1
- package/utils/types/ngx-bootstrap-utils.d.ts +42 -2
|
@@ -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
|
|
7
|
-
const
|
|
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
|
|
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.
|
|
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.
|
|
127
|
-
this.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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 }
|
|
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 }
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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.
|
|
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
|
|
91
|
+
const elementInjector = Injector.create({
|
|
93
92
|
providers: this._providers,
|
|
94
93
|
parent: this._injector
|
|
95
94
|
});
|
|
96
|
-
if (!this.
|
|
95
|
+
if (!this._compType) {
|
|
97
96
|
return;
|
|
98
97
|
}
|
|
99
|
-
this._componentRef = this.
|
|
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 =
|
|
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(
|
|
321
|
-
this.
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
96
|
+
private _environmentInjector;
|
|
97
97
|
private _injector;
|
|
98
98
|
private _posService;
|
|
99
99
|
private _applicationRef;
|
|
100
100
|
private _document;
|
|
101
|
-
constructor(
|
|
101
|
+
constructor(_environmentInjector: EnvironmentInjector, _injector: Injector, _posService: PositioningService, _applicationRef: ApplicationRef, _document: Document);
|
|
102
102
|
/**
|
|
103
103
|
*
|
|
104
104
|
* @param _elementRef
|