@libs-ui/components-popover 0.2.29 → 0.2.30-6.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/defines/constants.define.d.ts +4 -0
- package/esm2022/defines/constants.define.mjs +15 -0
- package/esm2022/index.mjs +2 -1
- package/esm2022/interfaces/function-control.interface.mjs +1 -1
- package/esm2022/overlay/overlay.component.mjs +32 -18
- package/esm2022/popover.component.mjs +94 -91
- package/fesm2022/libs-ui-components-popover.mjs +131 -107
- package/fesm2022/libs-ui-components-popover.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/interfaces/function-control.interface.d.ts +1 -1
- package/overlay/overlay.component.d.ts +1 -2
- package/package.json +9 -3
- package/popover.component.d.ts +9 -8
- package/defines/get-popover-timer-destroy.define.d.ts +0 -2
- package/esm2022/defines/get-popover-timer-destroy.define.mjs +0 -7
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, viewChild, inject, ElementRef,
|
|
2
|
+
import { signal, viewChild, inject, ElementRef, ChangeDetectionStrategy, Component, input, output, effect, untracked } from '@angular/core';
|
|
3
3
|
import { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';
|
|
4
|
-
import { UtilsUrlSearchParams, cloneIBoundingClientRect, cloneDeep, getViewport, isNil } from '@libs-ui/utils';
|
|
5
|
-
import { Subject, interval, take, takeUntil, Subscription, fromEvent
|
|
4
|
+
import { UtilsUrlSearchParams, get, cloneIBoundingClientRect, cloneDeep, getViewport, getEventNameHandleClick, checkMouseOverInContainer, set, isNil } from '@libs-ui/utils';
|
|
5
|
+
import { Subject, interval, take, takeUntil, Subscription, fromEvent } from 'rxjs';
|
|
6
6
|
import { debounceTime, tap, takeUntil as takeUntil$1 } from 'rxjs/operators';
|
|
7
7
|
import { NgStyle, AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
8
8
|
import { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';
|
|
@@ -14,6 +14,14 @@ const timerDestroy = parseInt(new UtilsUrlSearchParams(location.href).get(KEY_QU
|
|
|
14
14
|
const getPopoverTimerDestroyInQueryUrl = () => {
|
|
15
15
|
return timerDestroy;
|
|
16
16
|
};
|
|
17
|
+
const getListdirections = (drirection) => {
|
|
18
|
+
return get({
|
|
19
|
+
bottom: ['bottom', 'top', 'right', 'left'],
|
|
20
|
+
right: ['right', 'left', 'bottom', 'top'],
|
|
21
|
+
left: ['left', 'right', 'bottom', 'top'],
|
|
22
|
+
top: ['top', 'bottom', 'right', 'left'],
|
|
23
|
+
}, drirection);
|
|
24
|
+
};
|
|
17
25
|
|
|
18
26
|
class LibsUiComponentsPopoverOverlayComponent {
|
|
19
27
|
/* PROPERTIES */
|
|
@@ -24,22 +32,15 @@ class LibsUiComponentsPopoverOverlayComponent {
|
|
|
24
32
|
arrowLeft = signal(0);
|
|
25
33
|
arrowTop = signal(0);
|
|
26
34
|
config = signal({});
|
|
27
|
-
directions = signal(new Map());
|
|
28
35
|
timeout = signal(0);
|
|
29
36
|
onDestroy = new Subject();
|
|
30
|
-
|
|
37
|
+
// #region OUTPUT
|
|
31
38
|
outEvent = new Subject();
|
|
32
39
|
/* VIEW CHILD */
|
|
33
40
|
container = viewChild.required('container');
|
|
34
|
-
|
|
41
|
+
// #region INJECT
|
|
35
42
|
elementRef = inject(ElementRef);
|
|
36
|
-
|
|
37
|
-
this.directions().set('bottom', ['bottom', 'top', 'right', 'left']);
|
|
38
|
-
this.directions().set('right', ['right', 'left', 'bottom', 'top']);
|
|
39
|
-
this.directions().set('left', ['left', 'right', 'bottom', 'top']);
|
|
40
|
-
this.directions().set('top', ['top', 'bottom', 'right', 'left']);
|
|
41
|
-
}
|
|
42
|
-
/* FUNCTIONS*/
|
|
43
|
+
// #region FUNCTIONS
|
|
43
44
|
get ElementRef() {
|
|
44
45
|
return this.elementRef;
|
|
45
46
|
}
|
|
@@ -91,7 +92,7 @@ class LibsUiComponentsPopoverOverlayComponent {
|
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
setDirections(rectOrigin, viewPort, rectFrame) {
|
|
94
|
-
const directions =
|
|
95
|
+
const directions = getListdirections(this.config().direction || 'bottom');
|
|
95
96
|
const positionLast = directions.length - 1;
|
|
96
97
|
this.timeout.set(setTimeout(async () => {
|
|
97
98
|
const rectContent = cloneIBoundingClientRect(this.container().nativeElement.getBoundingClientRect());
|
|
@@ -180,8 +181,8 @@ class LibsUiComponentsPopoverOverlayComponent {
|
|
|
180
181
|
if (this.config) {
|
|
181
182
|
this.config.update(config => ({ ...config, maxHeight: viewPort.height - rectOrigin.top - rectOrigin.height }));
|
|
182
183
|
}
|
|
183
|
-
left
|
|
184
|
-
|
|
184
|
+
this.left.set(this.getLeftPositionIsLast(isLast, left >= 0 ? left : 0, viewPort, rectOrigin, rectContent, halfSquare));
|
|
185
|
+
return true;
|
|
185
186
|
}
|
|
186
187
|
return false;
|
|
187
188
|
case 'right':
|
|
@@ -210,6 +211,13 @@ class LibsUiComponentsPopoverOverlayComponent {
|
|
|
210
211
|
if (top > 0 && left + rectContent.width < viewPort.width) {
|
|
211
212
|
return true;
|
|
212
213
|
}
|
|
214
|
+
if (isLast) {
|
|
215
|
+
if (this.config) {
|
|
216
|
+
this.config.update(config => ({ ...config, maxHeight: viewPort.height }));
|
|
217
|
+
}
|
|
218
|
+
this.left.set(this.getLeftPositionIsLast(isLast, left >= 0 ? left : 0, viewPort, rectOrigin, rectContent, halfSquare));
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
213
221
|
return false;
|
|
214
222
|
case 'left':
|
|
215
223
|
positionTop = rectOrigin.top + rectOrigin.height / 2 - halfSquare;
|
|
@@ -237,6 +245,13 @@ class LibsUiComponentsPopoverOverlayComponent {
|
|
|
237
245
|
if (left > 0 && top > 0) {
|
|
238
246
|
return true;
|
|
239
247
|
}
|
|
248
|
+
if (isLast) {
|
|
249
|
+
if (this.config) {
|
|
250
|
+
this.config.update(config => ({ ...config, maxHeight: viewPort.height }));
|
|
251
|
+
}
|
|
252
|
+
this.left.set(this.getLeftPositionIsLast(isLast, left >= 0 ? left : 0, viewPort, rectOrigin, rectContent, halfSquare));
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
240
255
|
return false;
|
|
241
256
|
case 'top':
|
|
242
257
|
positionTop = rectOrigin.top - (halfSquare * 2) - distanceArrow;
|
|
@@ -264,8 +279,8 @@ class LibsUiComponentsPopoverOverlayComponent {
|
|
|
264
279
|
if (isLast) {
|
|
265
280
|
this.config.update(config => ({ ...config, maxHeight: viewPort.height - (viewPort.height - rectOrigin.top) }));
|
|
266
281
|
top = 0;
|
|
267
|
-
left
|
|
268
|
-
|
|
282
|
+
this.left.set(this.getLeftPositionIsLast(isLast, left >= 0 ? left : 0, viewPort, rectOrigin, rectContent, halfSquare));
|
|
283
|
+
return true;
|
|
269
284
|
}
|
|
270
285
|
return false;
|
|
271
286
|
}
|
|
@@ -287,24 +302,29 @@ class LibsUiComponentsPopoverOverlayComponent {
|
|
|
287
302
|
this.ContainerElement.style.setProperty('--libs-ui-popover-overlay-time-animation-time', `${configValue.animationConfig?.time || .4}s`);
|
|
288
303
|
this.ContainerElement.style.setProperty('--libs-ui-popover-overlay-time-animation-distance', `${this.currentDirection() === 'top' ? '-' : ''}${configValue.animationConfig?.distance || 12}px`);
|
|
289
304
|
}
|
|
305
|
+
getLeftPositionIsLast(isLast, currentLeft, viewPort, rectOrigin, rectContent, halfSquare) {
|
|
306
|
+
if (viewPort.width - (rectOrigin.left + rectOrigin.width + rectContent.width + halfSquare) > 0) {
|
|
307
|
+
return rectOrigin.left + rectOrigin.width + halfSquare;
|
|
308
|
+
}
|
|
309
|
+
return currentLeft;
|
|
310
|
+
}
|
|
290
311
|
ngOnDestroy() {
|
|
291
312
|
clearTimeout(this.timeout());
|
|
292
313
|
this.onDestroy.next();
|
|
293
314
|
this.onDestroy.complete();
|
|
294
315
|
}
|
|
295
316
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsPopoverOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
296
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsPopoverOverlayComponent, isStandalone: true, selector: "libs_ui-components-popover-overlay", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #container\n class=\"libs-ui-popover-overlay {{ config().classInclude || '' }}\"\n [class.libs-ui-popover-overlay-white-theme]=\"config().whiteTheme\"\n [class.libs-ui-popover-overlay-animation-move]=\"config().animationConfig\"\n [ngStyle]=\"config().ngStyles || {}\"\n [style.width]=\"config().width ? config().width + 'px' : 'auto'\"\n [style.maxWidth.px]=\"config().maxWidth\"\n [style.maxHeight.px]=\"config().maxHeight\"\n [style.top.px]=\"top()\"\n [style.left.px]=\"left()\"\n [style.zIndex]=\"config().zIndex || 10\">\n @if (config()) {\n @if (!config().ignoreArrow) {\n <div class='relative'>\n <svg\n [class]=\"'libs-ui-popover-overlay-arrow '+ arrowClass() + ( config().whiteTheme ? ' libs-ui-popover-overlay-white-theme ' : '')\"\n [style.top.px]=\"arrowTop()\"\n [style.left.px]=\"arrowLeft()\"\n [attr.direction]='outEvent | async'>\n <polygon points=\"0,0 6,6 12,0\" />\n Sorry, your browser does not support inline SVG.\n </svg>\n </div>\n }\n @if (config().template; as templateConfig) {\n <div LibsUiComponentsScrollOverlayDirective\n class=\"libs-ui-popover-overlay-body {{ config().classIncludeOverlayBody || '' }}\"\n [attr.isTemplate]=\"true\"\n [style.max-height]=\"(config().maxHeight)+'px'\">\n <ng-container *ngTemplateOutlet=\"templateConfig;context:{itemContext:config().itemContext}\" />\n </div>\n } @else {\n <div class=\"libs-ui-popover-overlay-body libs-ui-font-h7r {{ config().classIncludeOverlayBody || '' }}\"\n LibsUiComponentsScrollOverlayDirective\n [options]=\"config().scrollOverlayOptions\"\n [style.maxHeight.px]=\"config().maxHeight\"\n [style.paddingTop.px]=\"config().paddingTop ?? 8\"\n [style.paddingRight.px]=\"config().paddingRight ?? 8\"\n [style.paddingLeft.px]=\"config().paddingLeft ?? 8\"\n [style.paddingBottom.px]=\"config().paddingBottom ?? 8\"\n [innerHtml]=\"(config().content || ' ') | translate\">\n </div>\n }\n }\n\n</div>\n", styles: ["@-webkit-keyframes animation-move{0%{transform:translateY(var(--libs-ui-popover-overlay-time-animation-distance))}to{transform:translateY(0)}}@keyframes animation-move{0%{transform:translateY(var(--libs-ui-popover-overlay-time-animation-distance))}to{transform:translateY(0)}}.libs-ui-popover-overlay{position:fixed;background-color:#071631;border-radius:8px;z-index:1000;top:-10000px;left:-10000px}.libs-ui-popover-overlay-animation-move{animation:animation-move ease var(--libs-ui-popover-overlay-time-animation-time)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow{position:absolute;width:12px;height:6px;fill:#071631}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=bottom]{transform:rotate(180deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=left]{transform:rotate(270deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=right]{transform:rotate(90deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-white-theme{fill:#fff}.libs-ui-popover-overlay .libs-ui-popover-overlay-body{color:#fff;word-break:break-word}.libs-ui-popover-overlay .libs-ui-popover-overlay-body[isTemplate=true]{font-size:inherit}.libs-ui-popover-overlay.libs-ui-popover-overlay-white-theme{background-color:#fff;box-shadow:0 1px 1px #00143305,0 4px 16px #0014331a}.libs-ui-popover-overlay.libs-ui-popover-overlay-white-theme .libs-ui-popover-overlay-body{color:#071631}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: LibsUiComponentsScrollOverlayDirective, selector: "[LibsUiComponentsScrollOverlayDirective]", inputs: ["classContainer", "options"], outputs: ["outScrollX", "outScrollY", "outScrollTop", "outScrollBottom"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
317
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsPopoverOverlayComponent, isStandalone: true, selector: "libs_ui-components-popover-overlay", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #container\n class=\"libs-ui-popover-overlay {{ config().classInclude || '' }}\"\n [class.libs-ui-popover-overlay-white-theme]=\"config().whiteTheme\"\n [class.libs-ui-popover-overlay-animation-move]=\"config().animationConfig\"\n [ngStyle]=\"config().ngStyles || {}\"\n [style.width]=\"config().width ? config().width + 'px' : 'auto'\"\n [style.maxWidth.px]=\"config().maxWidth\"\n [style.maxHeight.px]=\"config().maxHeight\"\n [style.top.px]=\"top()\"\n [style.left.px]=\"left()\"\n [style.zIndex]=\"config().zIndex || 10\">\n @if (config()) {\n @if (!config().ignoreArrow) {\n <div class='relative'>\n <svg\n [class]=\"'libs-ui-popover-overlay-arrow '+ arrowClass() + ( config().whiteTheme ? ' libs-ui-popover-overlay-white-theme ' : '')\"\n [style.top.px]=\"arrowTop()\"\n [style.left.px]=\"arrowLeft()\"\n [attr.direction]='outEvent | async'>\n <polygon points=\"0,0 6,6 12,0\" />\n Sorry, your browser does not support inline SVG.\n </svg>\n </div>\n }\n @if (config().template; as templateConfig) {\n <div LibsUiComponentsScrollOverlayDirective\n class=\"libs-ui-popover-overlay-body {{ config().classIncludeOverlayBody || '' }}\"\n [attr.isTemplate]=\"true\"\n [style.max-height]=\"(config().maxHeight)+'px'\">\n <ng-container *ngTemplateOutlet=\"templateConfig;context:{itemContext:config().itemContext}\" />\n </div>\n } @else {\n <div class=\"libs-ui-popover-overlay-body libs-ui-font-h7r {{ config().classIncludeOverlayBody || '' }}\"\n LibsUiComponentsScrollOverlayDirective\n [options]=\"config().scrollOverlayOptions\"\n [style.maxHeight.px]=\"config().maxHeight\"\n [style.paddingTop.px]=\"config().paddingTop ?? 8\"\n [style.paddingRight.px]=\"config().paddingRight ?? 8\"\n [style.paddingLeft.px]=\"config().paddingLeft ?? 8\"\n [style.paddingBottom.px]=\"config().paddingBottom ?? 8\"\n [innerHtml]=\"(config().content || ' ') | translate\">\n </div>\n }\n }\n\n</div>\n", styles: ["@-webkit-keyframes animation-move{0%{transform:translateY(var(--libs-ui-popover-overlay-time-animation-distance))}to{transform:translateY(0)}}@keyframes animation-move{0%{transform:translateY(var(--libs-ui-popover-overlay-time-animation-distance))}to{transform:translateY(0)}}.libs-ui-popover-overlay{position:fixed;background-color:#071631;border-radius:8px;z-index:1000;top:-10000px;left:-10000px}.libs-ui-popover-overlay-animation-move{animation:animation-move ease var(--libs-ui-popover-overlay-time-animation-time)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow{position:absolute;width:12px;height:6px;fill:#071631}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=bottom]{transform:rotate(180deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=left]{transform:rotate(270deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=right]{transform:rotate(90deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-white-theme{fill:#fff}.libs-ui-popover-overlay .libs-ui-popover-overlay-body{color:#fff;word-break:break-word}.libs-ui-popover-overlay .libs-ui-popover-overlay-body[isTemplate=true]{font-size:inherit}.libs-ui-popover-overlay.libs-ui-popover-overlay-white-theme{background-color:#fff;box-shadow:0 1px 1px #00143305,0 4px 16px #0014331a}.libs-ui-popover-overlay.libs-ui-popover-overlay-white-theme .libs-ui-popover-overlay-body{color:#071631}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: LibsUiComponentsScrollOverlayDirective, selector: "[LibsUiComponentsScrollOverlayDirective]", inputs: ["debugMode", "ignoreInit", "classContainer", "options", "elementCheckScrollX", "elementCheckScrollY", "elementScroll"], outputs: ["outScroll", "outScrollX", "outScrollY", "outScrollTop", "outScrollBottom"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
297
318
|
}
|
|
298
319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsPopoverOverlayComponent, decorators: [{
|
|
299
320
|
type: Component,
|
|
300
321
|
args: [{ selector: 'libs_ui-components-popover-overlay', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule, NgStyle, AsyncPipe, LibsUiComponentsScrollOverlayDirective, NgTemplateOutlet], template: "<div #container\n class=\"libs-ui-popover-overlay {{ config().classInclude || '' }}\"\n [class.libs-ui-popover-overlay-white-theme]=\"config().whiteTheme\"\n [class.libs-ui-popover-overlay-animation-move]=\"config().animationConfig\"\n [ngStyle]=\"config().ngStyles || {}\"\n [style.width]=\"config().width ? config().width + 'px' : 'auto'\"\n [style.maxWidth.px]=\"config().maxWidth\"\n [style.maxHeight.px]=\"config().maxHeight\"\n [style.top.px]=\"top()\"\n [style.left.px]=\"left()\"\n [style.zIndex]=\"config().zIndex || 10\">\n @if (config()) {\n @if (!config().ignoreArrow) {\n <div class='relative'>\n <svg\n [class]=\"'libs-ui-popover-overlay-arrow '+ arrowClass() + ( config().whiteTheme ? ' libs-ui-popover-overlay-white-theme ' : '')\"\n [style.top.px]=\"arrowTop()\"\n [style.left.px]=\"arrowLeft()\"\n [attr.direction]='outEvent | async'>\n <polygon points=\"0,0 6,6 12,0\" />\n Sorry, your browser does not support inline SVG.\n </svg>\n </div>\n }\n @if (config().template; as templateConfig) {\n <div LibsUiComponentsScrollOverlayDirective\n class=\"libs-ui-popover-overlay-body {{ config().classIncludeOverlayBody || '' }}\"\n [attr.isTemplate]=\"true\"\n [style.max-height]=\"(config().maxHeight)+'px'\">\n <ng-container *ngTemplateOutlet=\"templateConfig;context:{itemContext:config().itemContext}\" />\n </div>\n } @else {\n <div class=\"libs-ui-popover-overlay-body libs-ui-font-h7r {{ config().classIncludeOverlayBody || '' }}\"\n LibsUiComponentsScrollOverlayDirective\n [options]=\"config().scrollOverlayOptions\"\n [style.maxHeight.px]=\"config().maxHeight\"\n [style.paddingTop.px]=\"config().paddingTop ?? 8\"\n [style.paddingRight.px]=\"config().paddingRight ?? 8\"\n [style.paddingLeft.px]=\"config().paddingLeft ?? 8\"\n [style.paddingBottom.px]=\"config().paddingBottom ?? 8\"\n [innerHtml]=\"(config().content || ' ') | translate\">\n </div>\n }\n }\n\n</div>\n", styles: ["@-webkit-keyframes animation-move{0%{transform:translateY(var(--libs-ui-popover-overlay-time-animation-distance))}to{transform:translateY(0)}}@keyframes animation-move{0%{transform:translateY(var(--libs-ui-popover-overlay-time-animation-distance))}to{transform:translateY(0)}}.libs-ui-popover-overlay{position:fixed;background-color:#071631;border-radius:8px;z-index:1000;top:-10000px;left:-10000px}.libs-ui-popover-overlay-animation-move{animation:animation-move ease var(--libs-ui-popover-overlay-time-animation-time)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow{position:absolute;width:12px;height:6px;fill:#071631}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=bottom]{transform:rotate(180deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=left]{transform:rotate(270deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-arrow[direction=right]{transform:rotate(90deg)}.libs-ui-popover-overlay .libs-ui-popover-overlay-white-theme{fill:#fff}.libs-ui-popover-overlay .libs-ui-popover-overlay-body{color:#fff;word-break:break-word}.libs-ui-popover-overlay .libs-ui-popover-overlay-body[isTemplate=true]{font-size:inherit}.libs-ui-popover-overlay.libs-ui-popover-overlay-white-theme{background-color:#fff;box-shadow:0 1px 1px #00143305,0 4px 16px #0014331a}.libs-ui-popover-overlay.libs-ui-popover-overlay-white-theme .libs-ui-popover-overlay-body{color:#071631}\n"] }]
|
|
301
|
-
}]
|
|
322
|
+
}] });
|
|
302
323
|
|
|
303
324
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
304
325
|
class LibsUiComponentsPopoverComponent {
|
|
305
|
-
|
|
326
|
+
// #region PROPERTY
|
|
306
327
|
mouseEnter;
|
|
307
|
-
mouseLeave;
|
|
308
328
|
mouseWheel;
|
|
309
329
|
mouseClick;
|
|
310
330
|
windowResize;
|
|
@@ -312,57 +332,60 @@ class LibsUiComponentsPopoverComponent {
|
|
|
312
332
|
windowMouseDown;
|
|
313
333
|
windowClick;
|
|
314
334
|
windowMouseUp;
|
|
315
|
-
|
|
335
|
+
windowMousemove;
|
|
316
336
|
popoverOverlayComponent;
|
|
317
337
|
subsEventPopup = new Subscription();
|
|
318
|
-
firstClick;
|
|
319
|
-
contentInnerHtml;
|
|
320
|
-
timer;
|
|
321
|
-
directionPopover;
|
|
322
|
-
functionsControl;
|
|
323
|
-
frameId;
|
|
324
338
|
onDestroy = new Subject();
|
|
325
|
-
|
|
339
|
+
functionsControl;
|
|
340
|
+
firstClick = signal(false);
|
|
341
|
+
contentInnerHtml = signal('');
|
|
342
|
+
timer = signal(undefined);
|
|
343
|
+
directionPopover = signal(undefined);
|
|
344
|
+
frameId = signal('');
|
|
345
|
+
// #region INPUT
|
|
346
|
+
debugId = input();
|
|
326
347
|
flagMouse = input({ isMouseEnter: false, isMouseEnterContent: false, isContainerHasScroll: false }, {
|
|
327
|
-
transform: (value) => value ? value : { isMouseEnter: false, isMouseEnterContent: false, isContainerHasScroll: false }
|
|
348
|
+
transform: (value) => (value ? value : { isMouseEnter: false, isMouseEnterContent: false, isContainerHasScroll: false }),
|
|
328
349
|
});
|
|
329
350
|
type = input('other');
|
|
330
351
|
mode = input('hover');
|
|
331
|
-
config = input({}, {
|
|
332
|
-
transform: (value) => value ? value : {}
|
|
333
|
-
});
|
|
352
|
+
config = input({}, { transform: (value) => (value ? value : {}) });
|
|
334
353
|
ignoreShowPopover = input();
|
|
335
354
|
elementRefCustom = input();
|
|
355
|
+
initEventInElementRefCustom = input(false);
|
|
336
356
|
classInclude = input('', { transform: (value) => value ?? '' });
|
|
337
357
|
ignoreHiddenPopoverContentWhenMouseLeave = input();
|
|
338
358
|
ignoreStopPropagationEvent = input();
|
|
339
359
|
ignoreCursorPointerModeLikeClick = input();
|
|
340
360
|
isAddContentToParentDocument = input();
|
|
341
361
|
ignoreClickOutside = input();
|
|
342
|
-
|
|
362
|
+
// #region OUTPUT
|
|
343
363
|
outEvent = output();
|
|
344
364
|
outChangStageFlagMouse = output();
|
|
345
365
|
outEventPopoverContent = output();
|
|
346
366
|
outFunctionsControl = output();
|
|
347
|
-
|
|
367
|
+
// #region INJECT
|
|
348
368
|
elementRef = inject(ElementRef);
|
|
349
369
|
dynamicService = inject(LibsUiDynamicComponentService);
|
|
350
370
|
constructor() {
|
|
351
|
-
this.firstClick = false;
|
|
352
371
|
let classDefault = undefined;
|
|
353
372
|
effect(() => {
|
|
354
373
|
if (classDefault === undefined) {
|
|
355
374
|
classDefault = this.Element.className;
|
|
356
375
|
}
|
|
357
|
-
this.
|
|
376
|
+
if (this.elementRefCustom() !== this.Element) {
|
|
377
|
+
this.Element.className = classDefault || '';
|
|
378
|
+
}
|
|
358
379
|
if (this.type() === 'text') {
|
|
359
380
|
this.Element.classList.add('popover-text-ellipsis');
|
|
360
381
|
}
|
|
361
|
-
if (this.mode().includes('click') && !this.ignoreCursorPointerModeLikeClick) {
|
|
382
|
+
if (this.mode().includes('click') && !this.ignoreCursorPointerModeLikeClick()) {
|
|
362
383
|
this.Element.classList.add('cursor-pointer');
|
|
363
384
|
}
|
|
364
385
|
if (this.classInclude()) {
|
|
365
|
-
this.classInclude()
|
|
386
|
+
this.classInclude()
|
|
387
|
+
?.split(' ')
|
|
388
|
+
.forEach((className) => {
|
|
366
389
|
if (!className) {
|
|
367
390
|
return;
|
|
368
391
|
}
|
|
@@ -382,12 +405,12 @@ class LibsUiComponentsPopoverComponent {
|
|
|
382
405
|
});
|
|
383
406
|
}
|
|
384
407
|
ngOnInit() {
|
|
385
|
-
this.outEventPopoverContent.subscribe(direction => this.directionPopover
|
|
408
|
+
this.outEventPopoverContent.subscribe((direction) => this.directionPopover.set(direction));
|
|
386
409
|
this.functionsControl = {
|
|
387
410
|
removePopoverOverlay: this.removePopoverOverlay.bind(this),
|
|
388
411
|
updatePopoverOverlayPosition: this.updatePopoverOverlayPosition.bind(this),
|
|
389
412
|
getRectContainer: async () => (this.elementRefCustom() || this.Element).getBoundingClientRect(),
|
|
390
|
-
getRectContent: async () =>
|
|
413
|
+
getRectContent: async () => this.popoverOverlayComponent?.instance?.ContainerElement?.getBoundingClientRect(),
|
|
391
414
|
showPopover: this.addPopoverContent.bind(this),
|
|
392
415
|
updatePopoverOverlay: this.updatePopoverOverlay.bind(this),
|
|
393
416
|
};
|
|
@@ -396,15 +419,15 @@ class LibsUiComponentsPopoverComponent {
|
|
|
396
419
|
ngAfterContentInit() {
|
|
397
420
|
const nativeEl = this.Element;
|
|
398
421
|
this.mouseEnter = this.initObservable(nativeEl, 'mouseenter');
|
|
399
|
-
this.
|
|
400
|
-
this.mouseClick = this.initObservable(nativeEl,
|
|
422
|
+
this.initObservable(nativeEl, 'click').subscribe();
|
|
423
|
+
this.mouseClick = this.initObservable(nativeEl, getEventNameHandleClick);
|
|
401
424
|
this.mouseWheel = this.initObservable(window, 'wheel');
|
|
402
425
|
this.windowResize = this.initObservable(window, 'resize');
|
|
403
426
|
this.windowWheel = this.initObservable(window, 'wheel');
|
|
404
427
|
this.windowMouseDown = this.initObservable(window, 'mousedown');
|
|
405
|
-
this.windowClick = this.initObservable(window,
|
|
428
|
+
this.windowClick = this.initObservable(window, getEventNameHandleClick);
|
|
406
429
|
this.windowMouseUp = this.initObservable(window, 'mouseup');
|
|
407
|
-
this.
|
|
430
|
+
this.windowMousemove = this.initObservable(window, 'mousemove');
|
|
408
431
|
this.mouseEnter.subscribe(() => {
|
|
409
432
|
if (!this.mode().includes('hover')) {
|
|
410
433
|
return;
|
|
@@ -412,43 +435,37 @@ class LibsUiComponentsPopoverComponent {
|
|
|
412
435
|
if (this.type() === 'text' && nativeEl?.clientWidth >= nativeEl.scrollWidth && !this.popoverOverlayComponent) {
|
|
413
436
|
return;
|
|
414
437
|
}
|
|
415
|
-
this.addPopoverContent(
|
|
438
|
+
this.addPopoverContent();
|
|
416
439
|
});
|
|
417
440
|
this.mouseClick.subscribe(() => {
|
|
418
|
-
this.firstClick
|
|
441
|
+
this.firstClick.update((val) => (this.ignoreShowPopover() ? false : !val));
|
|
419
442
|
this.outEvent.emit('click');
|
|
420
443
|
if (!this.mode().startsWith('click')) {
|
|
421
444
|
return;
|
|
422
445
|
}
|
|
423
|
-
if (this.mode() === 'click-toggle' && !this.firstClick) {
|
|
446
|
+
if (this.mode() === 'click-toggle' && !this.firstClick()) {
|
|
424
447
|
this.removePopoverOverlay();
|
|
425
448
|
return;
|
|
426
449
|
}
|
|
427
|
-
this.addPopoverContent(
|
|
428
|
-
});
|
|
429
|
-
this.windowResize.pipe(debounceTime(500)).subscribe(() => {
|
|
430
|
-
if (!this.popoverOverlayComponent) {
|
|
431
|
-
return;
|
|
432
|
-
}
|
|
433
|
-
this.removePopoverOverlay();
|
|
434
|
-
this.addPopoverContent(nativeEl);
|
|
450
|
+
this.addPopoverContent();
|
|
435
451
|
});
|
|
452
|
+
this.windowResize.pipe(debounceTime(500)).subscribe(this.updatePopoverOverlayPosition.bind(this));
|
|
436
453
|
}
|
|
437
|
-
|
|
454
|
+
// #region FUNCTIONS
|
|
438
455
|
async updatePopoverOverlay() {
|
|
439
456
|
const timer = setTimeout(() => {
|
|
440
457
|
clearTimeout(timer);
|
|
441
|
-
if (!this.popoverOverlayComponent
|
|
458
|
+
if (!this.popoverOverlayComponent || !this.popoverOverlayComponent.instance || !this.config()) {
|
|
442
459
|
return;
|
|
443
460
|
}
|
|
444
461
|
const instance = this.popoverOverlayComponent.instance;
|
|
445
462
|
const nativeEl = this.elementRefCustom() || this.Element;
|
|
446
|
-
instance.setConfig(nativeEl.getBoundingClientRect(), this.config());
|
|
463
|
+
instance.setConfig(nativeEl.getBoundingClientRect(), { ...(this.config() || {}), ...this.getDefaultConfigs() }, this.isAddContentToParentDocument());
|
|
447
464
|
});
|
|
448
465
|
}
|
|
449
466
|
async updatePopoverOverlayPosition() {
|
|
450
|
-
clearTimeout(this.timer);
|
|
451
|
-
this.timer
|
|
467
|
+
clearTimeout(this.timer());
|
|
468
|
+
this.timer.set(setTimeout(async () => {
|
|
452
469
|
if (!this.popoverOverlayComponent || !this.popoverOverlayComponent.instance || !this.config() || !this.functionsControl) {
|
|
453
470
|
return;
|
|
454
471
|
}
|
|
@@ -459,48 +476,54 @@ class LibsUiComponentsPopoverComponent {
|
|
|
459
476
|
}
|
|
460
477
|
const rectContainer = await this.functionsControl.getRectContainer();
|
|
461
478
|
const distanceListViewAndContainer = this.config()?.ignoreArrow === false ? 14 : 4;
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
479
|
+
switch (this.directionPopover()) {
|
|
480
|
+
case 'right':
|
|
481
|
+
case 'left':
|
|
482
|
+
case 'bottom':
|
|
483
|
+
if (rectListView.top + rectListView.height > viewPort.height ||
|
|
484
|
+
rectListView.top < rectContainer.top + rectContainer.height ||
|
|
485
|
+
rectListView.top - (rectContainer.top + rectContainer.height) > distanceListViewAndContainer ||
|
|
486
|
+
rectListView.left + rectListView.width > viewPort.width) {
|
|
487
|
+
this.updatePopoverOverlay();
|
|
488
|
+
}
|
|
489
|
+
break;
|
|
490
|
+
case 'top':
|
|
491
|
+
if (rectContainer.top - (rectListView.top + rectListView.height) > distanceListViewAndContainer ||
|
|
492
|
+
rectListView.top + rectListView.height + distanceListViewAndContainer > rectContainer.top + 2 ||
|
|
493
|
+
rectListView.left + rectListView.width > viewPort.width) {
|
|
494
|
+
this.updatePopoverOverlay();
|
|
495
|
+
}
|
|
496
|
+
break;
|
|
476
497
|
}
|
|
477
|
-
}, 250);
|
|
498
|
+
}, 250));
|
|
478
499
|
}
|
|
479
500
|
get Element() {
|
|
501
|
+
if (this.initEventInElementRefCustom() && this.elementRefCustom()) {
|
|
502
|
+
return this.elementRefCustom();
|
|
503
|
+
}
|
|
480
504
|
return this.elementRef.nativeElement.firstElementChild || this.elementRef.nativeElement;
|
|
481
505
|
}
|
|
482
506
|
initObservable(el, eventName) {
|
|
483
|
-
return fromEvent(el, eventName).pipe(tap(e => !this.ignoreStopPropagationEvent && e.stopPropagation()), takeUntil$1(this.onDestroy));
|
|
507
|
+
return fromEvent(el, eventName).pipe(tap((e) => !this.ignoreStopPropagationEvent() && e.stopPropagation()), takeUntil$1(this.onDestroy));
|
|
484
508
|
}
|
|
485
509
|
async addPopoverContent(nativeEl) {
|
|
486
510
|
if (this.popoverOverlayComponent || this.ignoreShowPopover() || !this.config()) {
|
|
487
511
|
return;
|
|
488
512
|
}
|
|
489
513
|
this.popoverOverlayComponent = this.dynamicService.resolveComponentFactory(LibsUiComponentsPopoverOverlayComponent);
|
|
490
|
-
this.frameId
|
|
514
|
+
this.frameId.set(this.dynamicService.addToBody(this.popoverOverlayComponent, this.isAddContentToParentDocument() || this.config().isAddContentToParentDocument));
|
|
491
515
|
this.outEvent.emit('show');
|
|
492
516
|
const instance = this.popoverOverlayComponent.instance;
|
|
493
|
-
nativeEl = this.elementRefCustom() ||
|
|
517
|
+
nativeEl = nativeEl || this.elementRefCustom() || this.Element;
|
|
494
518
|
instance.setConfig(nativeEl.getBoundingClientRect(), { ...(this.config() || {}), ...this.getDefaultConfigs() }, this.isAddContentToParentDocument());
|
|
495
519
|
const flagsMouses = {
|
|
496
520
|
isMouseEnter: true,
|
|
497
521
|
isMouseEnterContent: false,
|
|
498
|
-
isContainerHasScroll: nativeEl.offsetHeight < nativeEl.scrollHeight
|
|
522
|
+
isContainerHasScroll: nativeEl.offsetHeight < nativeEl.scrollHeight,
|
|
499
523
|
};
|
|
500
524
|
const nativeElContainer = instance.ElementRef.nativeElement;
|
|
501
525
|
const mouseEnterContent = this.initObservable(nativeElContainer, 'mouseenter');
|
|
502
526
|
const mouseLeaveContent = this.initObservable(nativeElContainer, 'mouseleave');
|
|
503
|
-
this.subsEventPopup.add(this.initObservable(nativeElContainer, 'touchstart').subscribe());
|
|
504
527
|
this.subsEventPopup.add(instance.outEvent.subscribe((direction) => {
|
|
505
528
|
this.outEventPopoverContent.emit(direction);
|
|
506
529
|
}));
|
|
@@ -523,10 +546,8 @@ class LibsUiComponentsPopoverComponent {
|
|
|
523
546
|
}
|
|
524
547
|
this.removePopoverOverlay();
|
|
525
548
|
}));
|
|
526
|
-
this.
|
|
527
|
-
|
|
528
|
-
this.handlerMouseLeaveRemovePopoverOverlay(this.mouseLeave, flagsMouses, 'isMouseEnter', 'isMouseEnterContent', 'mouseleave-element');
|
|
529
|
-
}));
|
|
549
|
+
this.handlerMouseLeaveRemovePopoverOverlay(this.windowMousemove, flagsMouses, 'isMouseEnter', 'isMouseEnterContent', 'mouseleave-element');
|
|
550
|
+
this.handlerMouseLeaveRemovePopoverOverlay(mouseLeaveContent, flagsMouses, 'isMouseEnterContent', 'isMouseEnter', 'mouseleave-content');
|
|
530
551
|
if (this.mode() === 'click_open_and_click_panel_content_hidden') {
|
|
531
552
|
this.subsEventPopup.add(this.initObservable(nativeElContainer, 'click').subscribe(() => {
|
|
532
553
|
this.removePopoverOverlay();
|
|
@@ -536,30 +557,33 @@ class LibsUiComponentsPopoverComponent {
|
|
|
536
557
|
this.handlerWindowEventRemovePopoverOverlay(this.windowMouseDown, flagsMouses);
|
|
537
558
|
this.handlerWindowEventRemovePopoverOverlay(this.windowMouseUp, flagsMouses);
|
|
538
559
|
this.handlerWindowEventRemovePopoverOverlay(this.windowWheel, flagsMouses);
|
|
539
|
-
this.subsEventPopup.add(this.windowTouch.subscribe(() => {
|
|
540
|
-
this.removePopoverOverlay();
|
|
541
|
-
}));
|
|
542
560
|
}
|
|
543
561
|
handlerWindowEventRemovePopoverOverlay(obs, flagsMouses) {
|
|
544
562
|
this.subsEventPopup.add(obs.pipe(debounceTime(10)).subscribe(() => {
|
|
545
563
|
if (flagsMouses.isMouseEnter || flagsMouses.isMouseEnterContent || this.ignoreClickOutside()) {
|
|
546
564
|
return;
|
|
547
565
|
}
|
|
548
|
-
if (this.flagMouse && (this.flagMouse().isMouseEnter || this.flagMouse().isMouseEnterContent)) {
|
|
566
|
+
if (this.flagMouse() && (this.flagMouse().isMouseEnter || this.flagMouse().isMouseEnterContent)) {
|
|
549
567
|
return;
|
|
550
568
|
}
|
|
551
|
-
this.firstClick
|
|
569
|
+
this.firstClick.set(false);
|
|
552
570
|
this.removePopoverOverlay();
|
|
553
571
|
}));
|
|
554
572
|
}
|
|
555
573
|
handlerMouseLeaveRemovePopoverOverlay(obs, flagsMouses, flagKeyChangeValue, flagKeyCheck, outEvent) {
|
|
556
|
-
this.subsEventPopup.add(obs
|
|
557
|
-
|
|
574
|
+
this.subsEventPopup.add(obs
|
|
575
|
+
.pipe(tap(() => this.outEvent.emit(outEvent)), debounceTime(getPopoverTimerDestroyInQueryUrl() || this.config()?.timerDestroy || 0))
|
|
576
|
+
.subscribe((e) => {
|
|
577
|
+
if (outEvent === 'mouseleave-element' &&
|
|
578
|
+
(checkMouseOverInContainer(e, this.Element) || checkMouseOverInContainer({ clientX: e.clientX + 2, clientY: e.clientY + 2 }, this.Element) || checkMouseOverInContainer({ clientX: e.clientX - 2, clientY: e.clientY - 2 }, this.Element))) {
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
set(flagsMouses, flagKeyChangeValue, false);
|
|
558
582
|
this.outChangStageFlagMouse.emit(flagsMouses);
|
|
559
|
-
if (this.flagMouse && (this.flagMouse().isMouseEnter || this.flagMouse().isMouseEnterContent)) {
|
|
583
|
+
if (this.flagMouse() && (this.flagMouse().isMouseEnter || this.flagMouse().isMouseEnterContent)) {
|
|
560
584
|
return;
|
|
561
585
|
}
|
|
562
|
-
if (flagsMouses
|
|
586
|
+
if (get(flagsMouses, flagKeyCheck) || this.ignoreHiddenPopoverContentWhenMouseLeave()) {
|
|
563
587
|
return;
|
|
564
588
|
}
|
|
565
589
|
this.removePopoverOverlay();
|
|
@@ -567,10 +591,10 @@ class LibsUiComponentsPopoverComponent {
|
|
|
567
591
|
}
|
|
568
592
|
getDefaultConfigs() {
|
|
569
593
|
const configValue = this.config() || {};
|
|
570
|
-
if (
|
|
571
|
-
configValue.content = this.
|
|
594
|
+
if (isNil(configValue.content) || (configValue.content === this.contentInnerHtml() && this.contentInnerHtml() !== this.Element.innerHTML)) {
|
|
595
|
+
configValue.content = this.Element.innerHTML;
|
|
572
596
|
}
|
|
573
|
-
this.contentInnerHtml
|
|
597
|
+
this.contentInnerHtml.set(this.Element.innerHTML);
|
|
574
598
|
if (!configValue.maxWidth) {
|
|
575
599
|
configValue.maxWidth = 250;
|
|
576
600
|
}
|
|
@@ -583,7 +607,7 @@ class LibsUiComponentsPopoverComponent {
|
|
|
583
607
|
if (!configValue.position) {
|
|
584
608
|
configValue.position = {
|
|
585
609
|
mode: 'center',
|
|
586
|
-
distance: 0
|
|
610
|
+
distance: 0,
|
|
587
611
|
};
|
|
588
612
|
}
|
|
589
613
|
return configValue;
|
|
@@ -591,23 +615,23 @@ class LibsUiComponentsPopoverComponent {
|
|
|
591
615
|
async removePopoverOverlay() {
|
|
592
616
|
if (this.popoverOverlayComponent) {
|
|
593
617
|
this.outEvent.emit('remove');
|
|
618
|
+
this.subsEventPopup.unsubscribe();
|
|
619
|
+
this.subsEventPopup = new Subscription();
|
|
594
620
|
}
|
|
595
|
-
this.dynamicService.remove(this.popoverOverlayComponent, this.frameId);
|
|
596
|
-
this.frameId
|
|
621
|
+
this.dynamicService.remove(this.popoverOverlayComponent, this.frameId());
|
|
622
|
+
this.frameId.set('');
|
|
597
623
|
this.popoverOverlayComponent = undefined;
|
|
598
|
-
this.
|
|
599
|
-
this.subsEventPopup = new Subscription();
|
|
600
|
-
this.firstClick = false;
|
|
624
|
+
this.firstClick.set(false);
|
|
601
625
|
}
|
|
602
626
|
ngOnDestroy() {
|
|
603
|
-
clearTimeout(this.timer);
|
|
627
|
+
clearTimeout(this.timer());
|
|
604
628
|
this.removePopoverOverlay();
|
|
605
629
|
this.onDestroy.next();
|
|
606
630
|
this.onDestroy.complete();
|
|
607
631
|
this.subsEventPopup.unsubscribe();
|
|
608
632
|
}
|
|
609
633
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
610
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: LibsUiComponentsPopoverComponent, isStandalone: true, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: { flagMouse: { classPropertyName: "flagMouse", publicName: "flagMouse", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, ignoreShowPopover: { classPropertyName: "ignoreShowPopover", publicName: "ignoreShowPopover", isSignal: true, isRequired: false, transformFunction: null }, elementRefCustom: { classPropertyName: "elementRefCustom", publicName: "elementRefCustom", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, ignoreHiddenPopoverContentWhenMouseLeave: { classPropertyName: "ignoreHiddenPopoverContentWhenMouseLeave", publicName: "ignoreHiddenPopoverContentWhenMouseLeave", isSignal: true, isRequired: false, transformFunction: null }, ignoreStopPropagationEvent: { classPropertyName: "ignoreStopPropagationEvent", publicName: "ignoreStopPropagationEvent", isSignal: true, isRequired: false, transformFunction: null }, ignoreCursorPointerModeLikeClick: { classPropertyName: "ignoreCursorPointerModeLikeClick", publicName: "ignoreCursorPointerModeLikeClick", isSignal: true, isRequired: false, transformFunction: null }, isAddContentToParentDocument: { classPropertyName: "isAddContentToParentDocument", publicName: "isAddContentToParentDocument", isSignal: true, isRequired: false, transformFunction: null }, ignoreClickOutside: { classPropertyName: "ignoreClickOutside", publicName: "ignoreClickOutside", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outEvent: "outEvent", outChangStageFlagMouse: "outChangStageFlagMouse", outEventPopoverContent: "outEventPopoverContent", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "<ng-content />\n", styles: ["::ng-deep .popover-text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .cursor-pointer{cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
634
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: LibsUiComponentsPopoverComponent, isStandalone: true, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: { debugId: { classPropertyName: "debugId", publicName: "debugId", isSignal: true, isRequired: false, transformFunction: null }, flagMouse: { classPropertyName: "flagMouse", publicName: "flagMouse", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, ignoreShowPopover: { classPropertyName: "ignoreShowPopover", publicName: "ignoreShowPopover", isSignal: true, isRequired: false, transformFunction: null }, elementRefCustom: { classPropertyName: "elementRefCustom", publicName: "elementRefCustom", isSignal: true, isRequired: false, transformFunction: null }, initEventInElementRefCustom: { classPropertyName: "initEventInElementRefCustom", publicName: "initEventInElementRefCustom", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, ignoreHiddenPopoverContentWhenMouseLeave: { classPropertyName: "ignoreHiddenPopoverContentWhenMouseLeave", publicName: "ignoreHiddenPopoverContentWhenMouseLeave", isSignal: true, isRequired: false, transformFunction: null }, ignoreStopPropagationEvent: { classPropertyName: "ignoreStopPropagationEvent", publicName: "ignoreStopPropagationEvent", isSignal: true, isRequired: false, transformFunction: null }, ignoreCursorPointerModeLikeClick: { classPropertyName: "ignoreCursorPointerModeLikeClick", publicName: "ignoreCursorPointerModeLikeClick", isSignal: true, isRequired: false, transformFunction: null }, isAddContentToParentDocument: { classPropertyName: "isAddContentToParentDocument", publicName: "isAddContentToParentDocument", isSignal: true, isRequired: false, transformFunction: null }, ignoreClickOutside: { classPropertyName: "ignoreClickOutside", publicName: "ignoreClickOutside", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outEvent: "outEvent", outChangStageFlagMouse: "outChangStageFlagMouse", outEventPopoverContent: "outEventPopoverContent", outFunctionsControl: "outFunctionsControl" }, ngImport: i0, template: "<ng-content />\n", styles: ["::ng-deep .popover-text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .cursor-pointer{cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
611
635
|
}
|
|
612
636
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsPopoverComponent, decorators: [{
|
|
613
637
|
type: Component,
|
|
@@ -618,5 +642,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
618
642
|
* Generated bundle index. Do not edit.
|
|
619
643
|
*/
|
|
620
644
|
|
|
621
|
-
export { LibsUiComponentsPopoverComponent };
|
|
645
|
+
export { KEY_QUERY_POPOVER_TIMER_DESTROY, LibsUiComponentsPopoverComponent, getListdirections, getPopoverTimerDestroyInQueryUrl };
|
|
622
646
|
//# sourceMappingURL=libs-ui-components-popover.mjs.map
|