chrv-components 1.12.142 → 1.12.144
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.
|
Binary file
|
|
@@ -4023,13 +4023,10 @@ class ChrPopoverDirective {
|
|
|
4023
4023
|
this.isHostHovered$ = new BehaviorSubject(false);
|
|
4024
4024
|
this.isTargetHovered$ = new BehaviorSubject(false);
|
|
4025
4025
|
this.lastKnownMousePosition$ = new BehaviorSubject({
|
|
4026
|
-
x:
|
|
4027
|
-
y:
|
|
4026
|
+
x: -1,
|
|
4027
|
+
y: -1,
|
|
4028
4028
|
});
|
|
4029
|
-
// private readonly isInsidePopover$ = new BehaviorSubject<boolean>(false);
|
|
4030
4029
|
this.destroyRef = inject(DestroyRef);
|
|
4031
|
-
// private readonly isInsideHost = signal(false);
|
|
4032
|
-
// private readonly isInsideTarget = signal(false);
|
|
4033
4030
|
this._targetElementView = signal(null, /* @ts-ignore */
|
|
4034
4031
|
...(ngDevMode ? [{ debugName: "_targetElementView" }] : /* istanbul ignore next */ []));
|
|
4035
4032
|
this.targetElement = computed(() => {
|
|
@@ -4058,27 +4055,6 @@ class ChrPopoverDirective {
|
|
|
4058
4055
|
y: event.clientY,
|
|
4059
4056
|
});
|
|
4060
4057
|
};
|
|
4061
|
-
// private isInsideHostBoundingBox = (event: MouseEvent) => {
|
|
4062
|
-
// const hostRect = this.hostElement().getBoundingClientRect();
|
|
4063
|
-
// return this.isInsideRect(event, hostRect);
|
|
4064
|
-
// };
|
|
4065
|
-
// private isInsideTargetBoundingBox = (event: MouseEvent) => {
|
|
4066
|
-
// const trgRect = this.targetElement().getBoundingClientRect();
|
|
4067
|
-
// return this.isInsideRect(event, trgRect);
|
|
4068
|
-
// };
|
|
4069
|
-
// private isInsideRect = (event: MouseEvent, rect: DOMRect) => {
|
|
4070
|
-
// var x = event.clientX;
|
|
4071
|
-
// if (x < rect.left || x >= rect.right) return false;
|
|
4072
|
-
// var y = event.clientY;
|
|
4073
|
-
// if (y < rect.top || y >= rect.bottom) return false;
|
|
4074
|
-
// return true;
|
|
4075
|
-
// };
|
|
4076
|
-
// updateMousePosition = (event: MouseEvent) => {
|
|
4077
|
-
// this.lastKnowMousePosition.next({
|
|
4078
|
-
// x: event.clientX,
|
|
4079
|
-
// y: event.clientY,
|
|
4080
|
-
// });
|
|
4081
|
-
// };
|
|
4082
4058
|
this.setupSubject = () => {
|
|
4083
4059
|
combineLatest([
|
|
4084
4060
|
this.isHostHovered$,
|
|
@@ -4100,118 +4076,52 @@ class ChrPopoverDirective {
|
|
|
4100
4076
|
};
|
|
4101
4077
|
this.setupHostListeners = () => {
|
|
4102
4078
|
this.renderer.listen(this.hostElement(), 'mouseenter', (event) => {
|
|
4103
|
-
// this.isInsidePopover$.next(true);
|
|
4104
|
-
// this.isHostHovered$.next({
|
|
4105
|
-
// hover: true,
|
|
4106
|
-
// position: { x: event.clientX, y: event.clientY },
|
|
4107
|
-
// });
|
|
4108
|
-
// this.lastKnownMousePosition$.next({
|
|
4109
|
-
// x: event.clientX,
|
|
4110
|
-
// y: event.clientY,
|
|
4111
|
-
// });
|
|
4112
4079
|
this.isHostHovered$.next(true);
|
|
4113
|
-
// if (!this.isOpen()) {
|
|
4114
|
-
// this.showPopover();
|
|
4115
|
-
// }
|
|
4116
4080
|
});
|
|
4117
4081
|
this.renderer.listen(this.hostElement(), 'mouseleave', (event) => {
|
|
4118
|
-
// this.isInsideHost.set(false);
|
|
4119
|
-
// setTimeout(() => {
|
|
4120
|
-
// if (!this.isInsideTarget() && !this.isInsideHostBoundingBox(event)) {
|
|
4121
|
-
// this.hidePopover();
|
|
4122
|
-
// }
|
|
4123
|
-
// }, 100);
|
|
4124
|
-
// this.isInsidePopover$.next(false);
|
|
4125
|
-
// if (this.isPointerInsideElements(event)) {
|
|
4126
|
-
// return;
|
|
4127
|
-
// }
|
|
4128
|
-
// this.isHostHovered$.next({
|
|
4129
|
-
// hover: false,
|
|
4130
|
-
// position: { x: event.clientX, y: event.clientY },
|
|
4131
|
-
// });
|
|
4132
|
-
// this.lastKnownMousePosition$.next({
|
|
4133
|
-
// x: event.clientX,
|
|
4134
|
-
// y: event.clientY,
|
|
4135
|
-
// });
|
|
4136
4082
|
this.isHostHovered$.next(false);
|
|
4137
4083
|
});
|
|
4138
4084
|
};
|
|
4139
4085
|
this.setupTargetListeners = () => {
|
|
4140
4086
|
this.renderer.listen(this.targetElement(), 'mouseenter', (event) => {
|
|
4141
|
-
// this.isInsideTarget.set(true);
|
|
4142
|
-
// this.shopPopover();
|
|
4143
|
-
// this.isTargetHovered$.next({
|
|
4144
|
-
// hover: true,
|
|
4145
|
-
// position: { x: event.clientX, y: event.clientY },
|
|
4146
|
-
// });
|
|
4147
|
-
// this.lastKnownMousePosition$.next({
|
|
4148
|
-
// x: event.clientX,
|
|
4149
|
-
// y: event.clientY,
|
|
4150
|
-
// });
|
|
4151
4087
|
this.isTargetHovered$.next(true);
|
|
4152
|
-
// this.isInsidePopover$.next(true);
|
|
4153
4088
|
});
|
|
4154
4089
|
this.renderer.listen(this.targetElement(), 'mouseleave', (event) => {
|
|
4155
|
-
// this.isInsideTarget.set(false);
|
|
4156
|
-
// this.isInsidePopover$.next(false);
|
|
4157
|
-
// if (this.isPointerInsideElements(event)) {
|
|
4158
|
-
// return;
|
|
4159
|
-
// }
|
|
4160
|
-
// this.isTargetHovered$.next({
|
|
4161
|
-
// hover: false,
|
|
4162
|
-
// position: { x: event.clientX, y: event.clientY },
|
|
4163
|
-
// });
|
|
4164
|
-
// this.lastKnownMousePosition$.next({
|
|
4165
|
-
// x: event.clientX,
|
|
4166
|
-
// y: event.clientY,
|
|
4167
|
-
// });
|
|
4168
4090
|
this.isTargetHovered$.next(false);
|
|
4169
|
-
// setTimeout(() => {
|
|
4170
|
-
// if (!this.isInsideHost() && !this.isInsideTargetBoundingBox(event))
|
|
4171
|
-
// this.hidePopover();
|
|
4172
|
-
// }, 100);
|
|
4173
4091
|
});
|
|
4174
4092
|
};
|
|
4175
4093
|
this.showPopover = () => {
|
|
4176
4094
|
this.isOpen.set(true);
|
|
4177
|
-
// this.isInsidePopover$.next(true);
|
|
4178
4095
|
this.targetElement().showPopover({ source: this.hostElement() });
|
|
4179
4096
|
};
|
|
4180
4097
|
this.hidePopover = () => {
|
|
4181
4098
|
this.isOpen.set(false);
|
|
4182
|
-
// this.isInsidePopover$.next(false);
|
|
4183
4099
|
this.targetElement().hidePopover();
|
|
4184
4100
|
};
|
|
4185
|
-
this.isEventInsideRect = (event, rect) => {
|
|
4186
|
-
const x = event.clientX;
|
|
4187
|
-
const y = event.clientY;
|
|
4188
|
-
return this.isInsideRect(x, y, rect);
|
|
4189
|
-
};
|
|
4190
4101
|
this.isInsideRect = (x, y, rect) => {
|
|
4191
4102
|
return (x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom);
|
|
4192
4103
|
};
|
|
4193
4104
|
this.isInsideHost = (x, y) => {
|
|
4105
|
+
if (x < 0 || y < 0)
|
|
4106
|
+
return false;
|
|
4194
4107
|
const rect = this.hostElement().getBoundingClientRect();
|
|
4195
4108
|
return this.isInsideRect(x, y, rect);
|
|
4196
4109
|
};
|
|
4197
4110
|
this.isInsideTarget = (x, y) => {
|
|
4111
|
+
if (x < 0 || y < 0)
|
|
4112
|
+
return false;
|
|
4198
4113
|
const rect = this.targetElement().getBoundingClientRect();
|
|
4199
4114
|
return this.isInsideRect(x, y, rect);
|
|
4200
4115
|
};
|
|
4201
|
-
this.isPointerInsideElements = (x, y) => {
|
|
4202
|
-
// private isPointerInsideElements = (event: MouseEvent): boolean => {
|
|
4203
|
-
const hostRect = this.hostElement().getBoundingClientRect();
|
|
4204
|
-
const targetRect = this.targetElement().getBoundingClientRect();
|
|
4205
|
-
return (this.isInsideRect(x, y, hostRect) || this.isInsideRect(x, y, targetRect));
|
|
4206
|
-
};
|
|
4207
4116
|
}
|
|
4208
4117
|
ngOnInit() {
|
|
4209
4118
|
const maybeTemplate = this.chrPopover();
|
|
4210
4119
|
const templateData = this.chrPopoverData();
|
|
4211
4120
|
if (maybeTemplate instanceof TemplateRef) {
|
|
4212
|
-
const
|
|
4213
|
-
$implicit: templateData,
|
|
4214
|
-
|
|
4121
|
+
const data = typeof templateData === 'object'
|
|
4122
|
+
? { $implicit: templateData, ...templateData }
|
|
4123
|
+
: { $implicit: templateData };
|
|
4124
|
+
const ref = this.viewContainerRef.createEmbeddedView(maybeTemplate, data);
|
|
4215
4125
|
this._targetElementView.set(ref.rootNodes[0]);
|
|
4216
4126
|
}
|
|
4217
4127
|
}
|