committed by
József Farkas
parent
95187afe6a
commit
01214e58b5
@@ -6,6 +6,6 @@
|
|||||||
[attr.transform]="'translate(' + key.x + ' ' + key.y + ')'"
|
[attr.transform]="'translate(' + key.x + ' ' + key.y + ')'"
|
||||||
[keyAction]="keyActions[i]"
|
[keyAction]="keyActions[i]"
|
||||||
(click)="onKeyClick(i)"
|
(click)="onKeyClick(i)"
|
||||||
(mouseover)="onKeyHover(i, $event, true)"
|
(mouseenter)="onKeyHover(i, $event, true)"
|
||||||
(mouseleave)="onKeyHover(i, $event, false)"
|
(mouseleave)="onKeyHover(i, $event, false)"
|
||||||
/>
|
/>
|
||||||
|
Before Width: | Height: | Size: 483 B After Width: | Height: | Size: 484 B |
@@ -1,6 +1,6 @@
|
|||||||
<template ngIf="layers">
|
<template ngIf="layers">
|
||||||
<layers [class.disabled]="popoverShown" (select)="selectLayer($event.oldIndex, $event.index)" [current]="currentLayer"></layers>
|
<layers [class.disabled]="popoverShown" (select)="selectLayer($event.oldIndex, $event.index)" [current]="currentLayer"></layers>
|
||||||
<div class="keyboard-slider" (mouseout)="hideTooltip($event)">
|
<div class="keyboard-slider">
|
||||||
<svg-keyboard *ngFor="let layer of layers; trackBy: trackKeyboard"
|
<svg-keyboard *ngFor="let layer of layers; trackBy: trackKeyboard"
|
||||||
[@layerState]="layer.animation"
|
[@layerState]="layer.animation"
|
||||||
[moduleConfig]="layer.modules"
|
[moduleConfig]="layer.modules"
|
||||||
@@ -10,8 +10,8 @@
|
|||||||
</svg-keyboard>
|
</svg-keyboard>
|
||||||
</div>
|
</div>
|
||||||
<popover *ngIf="popoverShown" [defaultKeyAction]="popoverInitKeyAction" [currentKeymap]="keymap" (cancel)="hidePopover()" (remap)="onRemap($event)"></popover>
|
<popover *ngIf="popoverShown" [defaultKeyAction]="popoverInitKeyAction" [currentKeymap]="keymap" (cancel)="hidePopover()" (remap)="onRemap($event)"></popover>
|
||||||
<div class="tooltip top fade" role="tooltip"
|
<div class="tooltip bottom"
|
||||||
[class.in]="tooltipData.shown"
|
[class.in]="tooltipData.show"
|
||||||
[style.top.px]="tooltipData.posTop"
|
[style.top.px]="tooltipData.posTop"
|
||||||
[style.left.px]="tooltipData.posLeft"
|
[style.left.px]="tooltipData.posLeft"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ svg-keyboard {
|
|||||||
}
|
}
|
||||||
.tooltip {
|
.tooltip {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
transform: translate(-50%, -85%);
|
transform: translate(-50%, -6px);
|
||||||
|
display: none;
|
||||||
|
|
||||||
&-inner {
|
&-inner {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
@@ -39,13 +40,15 @@ svg-keyboard {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.top {
|
&.bottom {
|
||||||
.tooltip-arrow {
|
.tooltip-arrow {
|
||||||
border-top-color: #fff;
|
border-bottom-color: #fff;
|
||||||
|
top: 1px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.in {
|
&.in {
|
||||||
|
display: block;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ export class SvgKeyboardWrapComponent implements OnChanges {
|
|||||||
private keyEditConfig: { moduleId: number, keyId: number };
|
private keyEditConfig: { moduleId: number, keyId: number };
|
||||||
private popoverInitKeyAction: KeyAction;
|
private popoverInitKeyAction: KeyAction;
|
||||||
private currentLayer: number = 0;
|
private currentLayer: number = 0;
|
||||||
private tooltipData: { posTop: number, posLeft: number, content: { name: string, value: string }[], shown: boolean };
|
private tooltipData: { posTop: number, posLeft: number, content: { name: string, value: string }[], show: boolean };
|
||||||
private layers: Layer[];
|
private layers: Layer[];
|
||||||
|
|
||||||
constructor(private store: Store<AppState>, private mapper: MapperService) {
|
constructor(private store: Store<AppState>, private mapper: MapperService) {
|
||||||
@@ -110,7 +110,7 @@ export class SvgKeyboardWrapComponent implements OnChanges {
|
|||||||
posTop: 0,
|
posTop: 0,
|
||||||
posLeft: 0,
|
posLeft: 0,
|
||||||
content: [],
|
content: [],
|
||||||
shown: false
|
show: false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,13 +142,13 @@ export class SvgKeyboardWrapComponent implements OnChanges {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onKeyHover(moduleId: number, event: MouseEvent, over: boolean, keyId: number): void {
|
onKeyHover(moduleId: number, event: MouseEvent, over: boolean, keyId: number): void {
|
||||||
let keyActionToEdit: KeyAction = this.layers[this.currentLayer].modules[moduleId].keyActions[keyId];
|
|
||||||
|
|
||||||
if (this.tooltipEnabled) {
|
if (this.tooltipEnabled) {
|
||||||
|
const keyActionToEdit: KeyAction = this.layers[this.currentLayer].modules[moduleId].keyActions[keyId];
|
||||||
|
|
||||||
if (over) {
|
if (over) {
|
||||||
this.showTooltip(keyActionToEdit, event);
|
this.showTooltip(keyActionToEdit, event);
|
||||||
} else {
|
} else {
|
||||||
this.hideTooltip(event);
|
this.hideTooltip();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -171,19 +171,18 @@ export class SvgKeyboardWrapComponent implements OnChanges {
|
|||||||
}
|
}
|
||||||
|
|
||||||
showTooltip(keyAction: KeyAction, event: MouseEvent): void {
|
showTooltip(keyAction: KeyAction, event: MouseEvent): void {
|
||||||
|
|
||||||
if (keyAction === undefined) {
|
if (keyAction === undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let el: Element = event.target as Element || event.srcElement;
|
const el: Element = event.target as Element || event.srcElement;
|
||||||
let position: ClientRect = el.getBoundingClientRect();
|
const position: ClientRect = el.getBoundingClientRect();
|
||||||
let posLeft: number = this.tooltipData.posLeft;
|
let posLeft: number = this.tooltipData.posLeft;
|
||||||
let posTop: number = this.tooltipData.posTop;
|
let posTop: number = this.tooltipData.posTop;
|
||||||
|
|
||||||
if (el.tagName === 'rect') {
|
if (el.tagName === 'g') {
|
||||||
posLeft = position.left + (position.width / 2);
|
posLeft = position.left + (position.width / 2);
|
||||||
posTop = position.top;
|
posTop = position.top + position.height;
|
||||||
}
|
}
|
||||||
|
|
||||||
let content: {
|
let content: {
|
||||||
@@ -294,22 +293,12 @@ export class SvgKeyboardWrapComponent implements OnChanges {
|
|||||||
posLeft: posLeft,
|
posLeft: posLeft,
|
||||||
posTop: posTop,
|
posTop: posTop,
|
||||||
content,
|
content,
|
||||||
shown: true
|
show: true
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
hideTooltip(event: MouseEvent) {
|
hideTooltip() {
|
||||||
let target: HTMLElement = event.relatedTarget as HTMLElement;
|
this.tooltipData.show = false;
|
||||||
if (!target) {
|
|
||||||
this.tooltipData.shown = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if we are hovering tooltip
|
|
||||||
let list: DOMTokenList = target.classList;
|
|
||||||
if (!list.contains('tooltip') && !list.contains('tooltip-inner')) {
|
|
||||||
this.tooltipData.shown = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hidePopover(): void {
|
hidePopover(): void {
|
||||||
|
|||||||
Reference in New Issue
Block a user