Fix key bind animation side effect
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
<svg-keyboard *ngFor="let layer of layers; let index = index; trackBy: trackKeyboard"
|
<svg-keyboard *ngFor="let layer of layers; let index = index; trackBy: trackKeyboard"
|
||||||
[@layerState]="layerAnimationState[index]"
|
[@layerState]="layerAnimationState[index]"
|
||||||
[moduleConfig]="layer.modules"
|
[moduleConfig]="layer.modules"
|
||||||
|
[keybindAnimationEnabled]="keybindAnimationEnabled"
|
||||||
(keyClick)="keyClick.emit($event)"
|
(keyClick)="keyClick.emit($event)"
|
||||||
(keyHover)="keyHover.emit($event)">
|
(keyHover)="keyHover.emit($event)">
|
||||||
</svg-keyboard>
|
</svg-keyboard>
|
||||||
|
Before Width: | Height: | Size: 334 B After Width: | Height: | Size: 408 B |
@@ -78,6 +78,7 @@ type AnimationKeyboard =
|
|||||||
export class KeyboardSliderComponent implements OnChanges {
|
export class KeyboardSliderComponent implements OnChanges {
|
||||||
@Input() layers: Layer[];
|
@Input() layers: Layer[];
|
||||||
@Input() currentLayer: number;
|
@Input() currentLayer: number;
|
||||||
|
@Input() keybindAnimationEnabled: boolean;
|
||||||
@Output() keyClick = new EventEmitter();
|
@Output() keyClick = new EventEmitter();
|
||||||
@Output() keyHover = new EventEmitter();
|
@Output() keyHover = new EventEmitter();
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
<svg:g svg-module *ngFor="let module of modules; let i = index"
|
<svg:g svg-module *ngFor="let module of modules; let i = index"
|
||||||
[coverages]="module.coverages"
|
[coverages]="module.coverages"
|
||||||
[keyboardKeys]="module.keyboardKeys"
|
[keyboardKeys]="module.keyboardKeys"
|
||||||
|
[keybindAnimationEnabled]="keybindAnimationEnabled"
|
||||||
[attr.transform]="module.attributes.transform"
|
[attr.transform]="module.attributes.transform"
|
||||||
[keyActions]="moduleConfig[i].keyActions"
|
[keyActions]="moduleConfig[i].keyActions"
|
||||||
(keyClick)="onKeyClick(i, $event.index, $event.keyTarget)"
|
(keyClick)="onKeyClick(i, $event.index, $event.keyTarget)"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 677 B After Width: | Height: | Size: 745 B |
@@ -10,6 +10,7 @@ import { SvgModule } from '../module';
|
|||||||
})
|
})
|
||||||
export class SvgKeyboardComponent implements OnInit {
|
export class SvgKeyboardComponent implements OnInit {
|
||||||
@Input() moduleConfig: Module[];
|
@Input() moduleConfig: Module[];
|
||||||
|
@Input() keybindAnimationEnabled: boolean;
|
||||||
@Output() keyClick = new EventEmitter();
|
@Output() keyClick = new EventEmitter();
|
||||||
@Output() keyHover = new EventEmitter();
|
@Output() keyHover = new EventEmitter();
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ export class SvgKeyboardKeyComponent implements OnInit, OnChanges, OnDestroy {
|
|||||||
@Input() height: number;
|
@Input() height: number;
|
||||||
@Input() width: number;
|
@Input() width: number;
|
||||||
@Input() keyAction: KeyAction;
|
@Input() keyAction: KeyAction;
|
||||||
|
@Input() keybindAnimationEnabled: boolean;
|
||||||
@Output() keyClick = new EventEmitter();
|
@Output() keyClick = new EventEmitter();
|
||||||
|
|
||||||
enumLabelTypes = LabelTypes;
|
enumLabelTypes = LabelTypes;
|
||||||
@@ -86,7 +87,9 @@ export class SvgKeyboardKeyComponent implements OnInit, OnChanges, OnDestroy {
|
|||||||
/* tslint:disable:no-string-literal */
|
/* tslint:disable:no-string-literal */
|
||||||
if (changes['keyAction']) {
|
if (changes['keyAction']) {
|
||||||
this.setLabels();
|
this.setLabels();
|
||||||
this.animation = 'active';
|
if (this.keybindAnimationEnabled) {
|
||||||
|
this.animation = 'active';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* tslint:enable:no-string-literal */
|
/* tslint:enable:no-string-literal */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
[width]="key.width" [height]="key.height"
|
[width]="key.width" [height]="key.height"
|
||||||
[attr.transform]="'translate(' + key.x + ' ' + key.y + ')'"
|
[attr.transform]="'translate(' + key.x + ' ' + key.y + ')'"
|
||||||
[keyAction]="keyActions[i]"
|
[keyAction]="keyActions[i]"
|
||||||
|
[keybindAnimationEnabled]="keybindAnimationEnabled"
|
||||||
(keyClick)="onKeyClick(i, $event)"
|
(keyClick)="onKeyClick(i, $event)"
|
||||||
(mouseenter)="onKeyHover(i, $event, true)"
|
(mouseenter)="onKeyHover(i, $event, true)"
|
||||||
(mouseleave)="onKeyHover(i, $event, false)"
|
(mouseleave)="onKeyHover(i, $event, false)"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 496 B After Width: | Height: | Size: 556 B |
@@ -13,6 +13,7 @@ export class SvgModuleComponent {
|
|||||||
@Input() coverages: any[];
|
@Input() coverages: any[];
|
||||||
@Input() keyboardKeys: SvgKeyboardKey[];
|
@Input() keyboardKeys: SvgKeyboardKey[];
|
||||||
@Input() keyActions: KeyAction[];
|
@Input() keyActions: KeyAction[];
|
||||||
|
@Input() keybindAnimationEnabled: boolean;
|
||||||
@Output() keyClick = new EventEmitter();
|
@Output() keyClick = new EventEmitter();
|
||||||
@Output() keyHover = new EventEmitter();
|
@Output() keyHover = new EventEmitter();
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<layers [class.disabled]="popoverShown" (select)="selectLayer($event.index)" [current]="currentLayer"></layers>
|
<layers [class.disabled]="popoverShown" (select)="selectLayer($event.index)" [current]="currentLayer"></layers>
|
||||||
<keyboard-slider [layers]="layers"
|
<keyboard-slider [layers]="layers"
|
||||||
[currentLayer]="currentLayer"
|
[currentLayer]="currentLayer"
|
||||||
|
[keybindAnimationEnabled]="keybindAnimationEnabled"
|
||||||
(keyClick)="onKeyClick($event.moduleId, $event.keyId, $event.keyTarget)"
|
(keyClick)="onKeyClick($event.moduleId, $event.keyId, $event.keyTarget)"
|
||||||
(keyHover)="onKeyHover($event.moduleId, $event.event, $event.over, $event.keyId)"></keyboard-slider>
|
(keyHover)="onKeyHover($event.moduleId, $event.event, $event.over, $event.keyId)"></keyboard-slider>
|
||||||
<popover [visible]="popoverShown" [keyPosition]="keyPosition" [wrapPosition]="wrapPosition" [defaultKeyAction]="popoverInitKeyAction" [currentKeymap]="keymap" (cancel)="hidePopover()" (remap)="onRemap($event)"></popover>
|
<popover [visible]="popoverShown" [keyPosition]="keyPosition" [wrapPosition]="wrapPosition" [defaultKeyAction]="popoverInitKeyAction" [currentKeymap]="keymap" (cancel)="hidePopover()" (remap)="onRemap($event)"></popover>
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges {
|
|||||||
private popoverShown: boolean;
|
private popoverShown: boolean;
|
||||||
private keyEditConfig: { moduleId: number, keyId: number };
|
private keyEditConfig: { moduleId: number, keyId: number };
|
||||||
private popoverInitKeyAction: KeyAction;
|
private popoverInitKeyAction: KeyAction;
|
||||||
|
private keybindAnimationEnabled: boolean;
|
||||||
private currentLayer: number = 0;
|
private currentLayer: number = 0;
|
||||||
private tooltipData: { posTop: number, posLeft: number, content: { name: string, value: string }[], show: boolean };
|
private tooltipData: { posTop: number, posLeft: number, content: { name: string, value: string }[], show: boolean };
|
||||||
private layers: Layer[];
|
private layers: Layer[];
|
||||||
@@ -89,13 +90,18 @@ export class SvgKeyboardWrapComponent implements OnInit, OnChanges {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
if (changes['keymap'].previousValue.abbreviation !== changes['keymap'].currentValue.abbreviation) {
|
const keymapChanges = changes['keymap'];
|
||||||
this.layers = this.keymap.layers;
|
if (keymapChanges) {
|
||||||
this.currentLayer = 0;
|
|
||||||
this.popoverShown = false;
|
|
||||||
} else if (changes['keymap']) {
|
|
||||||
this.popoverShown = false;
|
this.popoverShown = false;
|
||||||
|
if (keymapChanges.previousValue.abbreviation !== keymapChanges.currentValue.abbreviation) {
|
||||||
|
this.layers = this.keymap.layers;
|
||||||
|
this.currentLayer = 0;
|
||||||
|
this.keybindAnimationEnabled = keymapChanges.isFirstChange();
|
||||||
|
} else {
|
||||||
|
this.keybindAnimationEnabled = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onKeyClick(moduleId: number, keyId: number, keyTarget: HTMLElement): void {
|
onKeyClick(moduleId: number, keyId: number, keyTarget: HTMLElement): void {
|
||||||
|
|||||||
Reference in New Issue
Block a user