@hmcts/media-viewer 4.1.8-exui-2600-1 → 4.1.8-exui-2489
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/assets/sass/box-highlight.scss +0 -38
- package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +19 -74
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +4 -4
- package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +3 -37
- package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +3 -39
- package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +3 -3
- package/esm2022/lib/annotations/annotations.module.mjs +3 -9
- package/esm2022/lib/store/actions/annotation.actions.mjs +2 -3
- package/esm2022/lib/store/effects/annotation.effects.mjs +3 -13
- package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +28 -3
- package/fesm2022/hmcts-media-viewer.mjs +60 -545
- package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +2 -16
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +1 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +2 -8
- package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +1 -10
- package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -2
- package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts.map +1 -1
- package/lib/annotations/annotations.module.d.ts +11 -13
- package/lib/annotations/annotations.module.d.ts.map +1 -1
- package/lib/store/actions/annotation.actions.d.ts +1 -2
- package/lib/store/actions/annotation.actions.d.ts.map +1 -1
- package/lib/store/effects/annotation.effects.d.ts +0 -1
- package/lib/store/effects/annotation.effects.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +1 -0
- package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/keyboard-box-draw.directive.mjs +0 -258
- package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/keyboard-box-move.directive.mjs +0 -122
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/keyboard-box-draw.directive.d.ts +0 -59
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/keyboard-box-draw.directive.d.ts.map +0 -1
- package/lib/annotations/annotation-set/annotation-view/rectangle/keyboard-box-move.directive.d.ts +0 -27
- package/lib/annotations/annotation-set/annotation-view/rectangle/keyboard-box-move.directive.d.ts.map +0 -1
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class KeyboardBoxDrawDirective {
|
|
4
|
-
set enabled(value) {
|
|
5
|
-
const wasEnabled = this._enabled;
|
|
6
|
-
this._enabled = value;
|
|
7
|
-
if (value && !wasEnabled && KeyboardBoxDrawDirective.lastInteractionWasKeyboard && !this.showCursor) {
|
|
8
|
-
this.initializeCursorForKeyboard();
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
get enabled() {
|
|
12
|
-
return this._enabled;
|
|
13
|
-
}
|
|
14
|
-
static { this.lastInteractionWasKeyboard = false; }
|
|
15
|
-
constructor(elementRef) {
|
|
16
|
-
this.elementRef = elementRef;
|
|
17
|
-
this._enabled = false;
|
|
18
|
-
this.minBoxSize = 10;
|
|
19
|
-
this.incrementSmall = 1;
|
|
20
|
-
this.incrementMedium = 5;
|
|
21
|
-
this.incrementLarge = 10;
|
|
22
|
-
this.drawingStarted = new EventEmitter();
|
|
23
|
-
this.drawingUpdated = new EventEmitter();
|
|
24
|
-
this.drawingConfirmed = new EventEmitter();
|
|
25
|
-
this.drawingCancelled = new EventEmitter();
|
|
26
|
-
this.cursorPositionChanged = new EventEmitter();
|
|
27
|
-
this.isDrawing = false;
|
|
28
|
-
this.showCursor = false;
|
|
29
|
-
if (typeof window !== 'undefined') {
|
|
30
|
-
window.addEventListener('keydown', KeyboardBoxDrawDirective.onGlobalKeyDown, { capture: true });
|
|
31
|
-
window.addEventListener('mousedown', KeyboardBoxDrawDirective.onGlobalMouseDown, { capture: true });
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
static onGlobalKeyDown() {
|
|
35
|
-
KeyboardBoxDrawDirective.lastInteractionWasKeyboard = true;
|
|
36
|
-
}
|
|
37
|
-
static onGlobalMouseDown() {
|
|
38
|
-
KeyboardBoxDrawDirective.lastInteractionWasKeyboard = false;
|
|
39
|
-
}
|
|
40
|
-
ngOnDestroy() {
|
|
41
|
-
this.cleanup();
|
|
42
|
-
}
|
|
43
|
-
initializeCursorForKeyboard() {
|
|
44
|
-
if (this.enabled && !this.showCursor && !this.isDrawing) {
|
|
45
|
-
const rect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
46
|
-
if (rect.width > 0 && rect.height > 0) {
|
|
47
|
-
this.cursorX = rect.width / 2;
|
|
48
|
-
this.cursorY = rect.height / 2;
|
|
49
|
-
this.showCursor = true;
|
|
50
|
-
this.emitCursorPosition();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
onKeyDown(event) {
|
|
55
|
-
if (!this.enabled) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (event.key === 'Enter') {
|
|
59
|
-
event.preventDefault();
|
|
60
|
-
event.stopPropagation();
|
|
61
|
-
if (!this.isDrawing) {
|
|
62
|
-
this.startDrawing();
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
this.confirmDrawing();
|
|
66
|
-
}
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (event.key === 'Escape') {
|
|
70
|
-
event.preventDefault();
|
|
71
|
-
event.stopPropagation();
|
|
72
|
-
if (this.isDrawing) {
|
|
73
|
-
this.cancelDrawing();
|
|
74
|
-
}
|
|
75
|
-
else if (this.showCursor) {
|
|
76
|
-
this.hideCursor();
|
|
77
|
-
}
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {
|
|
81
|
-
event.preventDefault();
|
|
82
|
-
event.stopPropagation();
|
|
83
|
-
if (this.isDrawing) {
|
|
84
|
-
this.resizeBox(event);
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
this.moveCursor(event);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
onBlur() {
|
|
92
|
-
if (this.showCursor && !this.isDrawing) {
|
|
93
|
-
this.hideCursor();
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
moveCursor(event) {
|
|
97
|
-
const increment = event.shiftKey ? this.incrementLarge : this.incrementMedium;
|
|
98
|
-
if (!this.showCursor) {
|
|
99
|
-
const rect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
100
|
-
this.cursorX = rect.width / 2;
|
|
101
|
-
this.cursorY = rect.height / 2;
|
|
102
|
-
this.showCursor = true;
|
|
103
|
-
this.emitCursorPosition();
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
const rect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
107
|
-
switch (event.key) {
|
|
108
|
-
case 'ArrowUp':
|
|
109
|
-
this.cursorY = Math.max(0, this.cursorY - increment);
|
|
110
|
-
break;
|
|
111
|
-
case 'ArrowDown':
|
|
112
|
-
this.cursorY = Math.min(rect.height, this.cursorY + increment);
|
|
113
|
-
break;
|
|
114
|
-
case 'ArrowLeft':
|
|
115
|
-
this.cursorX = Math.max(0, this.cursorX - increment);
|
|
116
|
-
break;
|
|
117
|
-
case 'ArrowRight':
|
|
118
|
-
this.cursorX = Math.min(rect.width, this.cursorX + increment);
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
this.emitCursorPosition();
|
|
122
|
-
}
|
|
123
|
-
startDrawing() {
|
|
124
|
-
let startX;
|
|
125
|
-
let startY;
|
|
126
|
-
if (this.showCursor) {
|
|
127
|
-
startX = this.cursorX;
|
|
128
|
-
startY = this.cursorY;
|
|
129
|
-
this.showCursor = false;
|
|
130
|
-
this.emitCursorPosition();
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
// default to center
|
|
134
|
-
const rect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
135
|
-
startX = rect.width / 2;
|
|
136
|
-
startY = rect.height / 2;
|
|
137
|
-
}
|
|
138
|
-
this.isDrawing = true;
|
|
139
|
-
this.drawStartX = startX;
|
|
140
|
-
this.drawStartY = startY;
|
|
141
|
-
this.currentWidth = this.minBoxSize;
|
|
142
|
-
this.currentHeight = this.minBoxSize;
|
|
143
|
-
this.emitDrawingStarted();
|
|
144
|
-
}
|
|
145
|
-
resizeBox(event) {
|
|
146
|
-
const increment = event.shiftKey ? this.incrementLarge : this.incrementSmall;
|
|
147
|
-
const rect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
148
|
-
switch (event.key) {
|
|
149
|
-
case 'ArrowRight':
|
|
150
|
-
const maxWidth = rect.width - this.drawStartX;
|
|
151
|
-
this.currentWidth = Math.min(maxWidth, this.currentWidth + increment);
|
|
152
|
-
break;
|
|
153
|
-
case 'ArrowLeft':
|
|
154
|
-
this.currentWidth = Math.max(this.minBoxSize, this.currentWidth - increment);
|
|
155
|
-
break;
|
|
156
|
-
case 'ArrowDown':
|
|
157
|
-
const maxHeight = rect.height - this.drawStartY;
|
|
158
|
-
this.currentHeight = Math.min(maxHeight, this.currentHeight + increment);
|
|
159
|
-
break;
|
|
160
|
-
case 'ArrowUp':
|
|
161
|
-
this.currentHeight = Math.max(this.minBoxSize, this.currentHeight - increment);
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
this.emitDrawingUpdated();
|
|
165
|
-
}
|
|
166
|
-
confirmDrawing() {
|
|
167
|
-
this.emitDrawingConfirmed();
|
|
168
|
-
this.cleanup();
|
|
169
|
-
}
|
|
170
|
-
cancelDrawing() {
|
|
171
|
-
this.drawingCancelled.emit();
|
|
172
|
-
this.cleanup();
|
|
173
|
-
}
|
|
174
|
-
hideCursor() {
|
|
175
|
-
this.showCursor = false;
|
|
176
|
-
this.emitCursorPosition();
|
|
177
|
-
}
|
|
178
|
-
cleanup() {
|
|
179
|
-
this.isDrawing = false;
|
|
180
|
-
this.showCursor = false;
|
|
181
|
-
this.cursorX = undefined;
|
|
182
|
-
this.cursorY = undefined;
|
|
183
|
-
this.drawStartX = undefined;
|
|
184
|
-
this.drawStartY = undefined;
|
|
185
|
-
this.currentWidth = undefined;
|
|
186
|
-
this.currentHeight = undefined;
|
|
187
|
-
}
|
|
188
|
-
emitCursorPosition() {
|
|
189
|
-
this.cursorPositionChanged.emit({
|
|
190
|
-
x: this.cursorX,
|
|
191
|
-
y: this.cursorY,
|
|
192
|
-
visible: this.showCursor
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
emitDrawingStarted() {
|
|
196
|
-
this.drawingStarted.emit({
|
|
197
|
-
startX: this.drawStartX,
|
|
198
|
-
startY: this.drawStartY,
|
|
199
|
-
width: this.currentWidth,
|
|
200
|
-
height: this.currentHeight
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
emitDrawingUpdated() {
|
|
204
|
-
this.drawingUpdated.emit({
|
|
205
|
-
startX: this.drawStartX,
|
|
206
|
-
startY: this.drawStartY,
|
|
207
|
-
width: this.currentWidth,
|
|
208
|
-
height: this.currentHeight
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
emitDrawingConfirmed() {
|
|
212
|
-
this.drawingConfirmed.emit({
|
|
213
|
-
startX: this.drawStartX,
|
|
214
|
-
startY: this.drawStartY,
|
|
215
|
-
width: this.currentWidth,
|
|
216
|
-
height: this.currentHeight
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
reset() {
|
|
220
|
-
this.cleanup();
|
|
221
|
-
this.emitCursorPosition();
|
|
222
|
-
}
|
|
223
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeyboardBoxDrawDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
224
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KeyboardBoxDrawDirective, selector: "[mvKeyboardBoxDraw]", inputs: { enabled: "enabled", minBoxSize: "minBoxSize", incrementSmall: "incrementSmall", incrementMedium: "incrementMedium", incrementLarge: "incrementLarge" }, outputs: { drawingStarted: "drawingStarted", drawingUpdated: "drawingUpdated", drawingConfirmed: "drawingConfirmed", drawingCancelled: "drawingCancelled", cursorPositionChanged: "cursorPositionChanged" }, host: { listeners: { "keydown": "onKeyDown($event)", "blur": "onBlur()" } }, ngImport: i0 }); }
|
|
225
|
-
}
|
|
226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeyboardBoxDrawDirective, decorators: [{
|
|
227
|
-
type: Directive,
|
|
228
|
-
args: [{
|
|
229
|
-
selector: '[mvKeyboardBoxDraw]'
|
|
230
|
-
}]
|
|
231
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { enabled: [{
|
|
232
|
-
type: Input
|
|
233
|
-
}], minBoxSize: [{
|
|
234
|
-
type: Input
|
|
235
|
-
}], incrementSmall: [{
|
|
236
|
-
type: Input
|
|
237
|
-
}], incrementMedium: [{
|
|
238
|
-
type: Input
|
|
239
|
-
}], incrementLarge: [{
|
|
240
|
-
type: Input
|
|
241
|
-
}], drawingStarted: [{
|
|
242
|
-
type: Output
|
|
243
|
-
}], drawingUpdated: [{
|
|
244
|
-
type: Output
|
|
245
|
-
}], drawingConfirmed: [{
|
|
246
|
-
type: Output
|
|
247
|
-
}], drawingCancelled: [{
|
|
248
|
-
type: Output
|
|
249
|
-
}], cursorPositionChanged: [{
|
|
250
|
-
type: Output
|
|
251
|
-
}], onKeyDown: [{
|
|
252
|
-
type: HostListener,
|
|
253
|
-
args: ['keydown', ['$event']]
|
|
254
|
-
}], onBlur: [{
|
|
255
|
-
type: HostListener,
|
|
256
|
-
args: ['blur']
|
|
257
|
-
}] } });
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtYm94LWRyYXcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvYm94LWhpZ2hsaWdodC1jcmVhdGUva2V5Ym9hcmQtYm94LWRyYXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWtCNUcsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxJQUFhLE9BQU8sQ0FBQyxLQUFjO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksd0JBQXdCLENBQUMsMEJBQTBCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEcsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzthQXNCYywrQkFBMEIsR0FBRyxLQUFLLEFBQVIsQ0FBUztJQUVsRCxZQUFvQixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQXZCL0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVoQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRW5CLG1CQUFjLEdBQUcsSUFBSSxZ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LHdCQUF3QjtzSEFBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7aUJBQ2hDOytFQUdjLE9BQU87c0JBQW5CLEtBQUs7Z0JBYUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBNENQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkNuQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleWJvYXJkQm94RHJhd0V2ZW50IHtcbiAgc3RhcnRYOiBudW1iZXI7XG4gIHN0YXJ0WTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXJzb3JQb3NpdGlvbiB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXZLZXlib2FyZEJveERyYXddJ1xufSlcbmV4cG9ydCBjbGFzcyBLZXlib2FyZEJveERyYXdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHNldCBlbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3Qgd2FzRW5hYmxlZCA9IHRoaXMuX2VuYWJsZWQ7XG4gICAgdGhpcy5fZW5hYmxlZCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlICYmICF3YXNFbmFibGVkICYmIEtleWJvYXJkQm94RHJhd0RpcmVjdGl2ZS5sYXN0SW50ZXJhY3Rpb25XYXNLZXlib2FyZCAmJiAhdGhpcy5zaG93Q3Vyc29yKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVDdXJzb3JGb3JLZXlib2FyZCgpO1xuICAgIH1cbiAgfVxuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgfVxuICBwcml2YXRlIF9lbmFibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbWluQm94U2l6ZSA9IDEwO1xuICBASW5wdXQoKSBpbmNyZW1lbnRTbWFsbCA9IDE7XG4gIEBJbnB1dCgpIGluY3JlbWVudE1lZGl1bSA9IDU7XG4gIEBJbnB1dCgpIGluY3JlbWVudExhcmdlID0gMTA7IFxuXG4gIEBPdXRwdXQoKSBkcmF3aW5nU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRCb3hEcmF3RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkcmF3aW5nVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRCb3hEcmF3RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkcmF3aW5nQ29uZmlybWVkID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEJveERyYXdFdmVudD4oKTtcbiAgQE91dHB1dCgpIGRyYXdpbmdDYW5jZWxsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBjdXJzb3JQb3NpdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1cnNvclBvc2l0aW9uPigpO1xuXG4gIHByaXZhdGUgaXNEcmF3aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgY3Vyc29yWDogbnVtYmVyO1xuICBwcml2YXRlIGN1cnNvclk6IG51bWJlcjtcbiAgcHJpdmF0ZSBzaG93Q3Vyc29yID0gZmFsc2U7XG4gIHByaXZhdGUgZHJhd1N0YXJ0WDogbnVtYmVyO1xuICBwcml2YXRlIGRyYXdTdGFydFk6IG51bWJlcjtcbiAgcHJpdmF0ZSBjdXJyZW50V2lkdGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBjdXJyZW50SGVpZ2h0OiBudW1iZXI7XG4gIHByaXZhdGUgc3RhdGljIGxhc3RJbnRlcmFjdGlvbldhc0tleWJvYXJkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBLZXlib2FyZEJveERyYXdEaXJlY3RpdmUub25HbG9iYWxLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgS2V5Ym9hcmRCb3hEcmF3RGlyZWN0aXZlLm9uR2xvYmFsTW91c2VEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgb25HbG9iYWxLZXlEb3duKCk6IHZvaWQge1xuICAgIEtleWJvYXJkQm94RHJhd0RpcmVjdGl2ZS5sYXN0SW50ZXJhY3Rpb25XYXNLZXlib2FyZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBvbkdsb2JhbE1vdXNlRG93bigpOiB2b2lkIHtcbiAgICBLZXlib2FyZEJveERyYXdEaXJlY3RpdmUubGFzdEludGVyYWN0aW9uV2FzS2V5Ym9hcmQgPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ3Vyc29yRm9yS2V5Ym9hcmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCAmJiAhdGhpcy5zaG93Q3Vyc29yICYmICF0aGlzLmlzRHJhd2luZykge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHJlY3Qud2lkdGggPiAwICYmIHJlY3QuaGVpZ2h0ID4gMCkge1xuICAgICAgICB0aGlzLmN1cnNvclggPSByZWN0LndpZHRoIC8gMjtcbiAgICAgICAgdGhpcy5jdXJzb3JZID0gcmVjdC5oZWlnaHQgLyAyO1xuICAgICAgICB0aGlzLnNob3dDdXJzb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtaXRDdXJzb3JQb3NpdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgaWYgKCF0aGlzLmlzRHJhd2luZykge1xuICAgICAgICB0aGlzLnN0YXJ0RHJhd2luZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25maXJtRHJhd2luZygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIGlmICh0aGlzLmlzRHJhd2luZykge1xuICAgICAgICB0aGlzLmNhbmNlbERyYXdpbmcoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zaG93Q3Vyc29yKSB7XG4gICAgICAgIHRoaXMuaGlkZUN1cnNvcigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChbJ0Fycm93VXAnLCAnQXJyb3dEb3duJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J10uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICBpZiAodGhpcy5pc0RyYXdpbmcpIHtcbiAgICAgICAgdGhpcy5yZXNpemVCb3goZXZlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tb3ZlQ3Vyc29yKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgb25CbHVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dDdXJzb3IgJiYgIXRoaXMuaXNEcmF3aW5nKSB7XG4gICAgICB0aGlzLmhpZGVDdXJzb3IoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1vdmVDdXJzb3IoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmNyZW1lbnQgPSBldmVudC5zaGlmdEtleSA/IHRoaXMuaW5jcmVtZW50TGFyZ2UgOiB0aGlzLmluY3JlbWVudE1lZGl1bTtcblxuICAgIGlmICghdGhpcy5zaG93Q3Vyc29yKSB7XG4gICAgICBjb25zdCByZWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmN1cnNvclggPSByZWN0LndpZHRoIC8gMjtcbiAgICAgIHRoaXMuY3Vyc29yWSA9IHJlY3QuaGVpZ2h0IC8gMjtcbiAgICAgIHRoaXMuc2hvd0N1cnNvciA9IHRydWU7XG5cbiAgICAgIHRoaXMuZW1pdEN1cnNvclBvc2l0aW9uKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLmN1cnNvclkgPSBNYXRoLm1heCgwLCB0aGlzLmN1cnNvclkgLSBpbmNyZW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHRoaXMuY3Vyc29yWSA9IE1hdGgubWluKHJlY3QuaGVpZ2h0LCB0aGlzLmN1cnNvclkgKyBpbmNyZW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIHRoaXMuY3Vyc29yWCA9IE1hdGgubWF4KDAsIHRoaXMuY3Vyc29yWCAtIGluY3JlbWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgIHRoaXMuY3Vyc29yWCA9IE1hdGgubWluKHJlY3Qud2lkdGgsIHRoaXMuY3Vyc29yWCArIGluY3JlbWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdEN1cnNvclBvc2l0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0RHJhd2luZygpOiB2b2lkIHtcbiAgICBsZXQgc3RhcnRYOiBudW1iZXI7XG4gICAgbGV0IHN0YXJ0WTogbnVtYmVyO1xuXG4gICAgaWYgKHRoaXMuc2hvd0N1cnNvcikge1xuICAgICAgc3RhcnRYID0gdGhpcy5jdXJzb3JYO1xuICAgICAgc3RhcnRZID0gdGhpcy5jdXJzb3JZO1xuICAgICAgdGhpcy5zaG93Q3Vyc29yID0gZmFsc2U7XG4gICAgICB0aGlzLmVtaXRDdXJzb3JQb3NpdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBkZWZhdWx0IHRvIGNlbnRlclxuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgc3RhcnRYID0gcmVjdC53aWR0aCAvIDI7XG4gICAgICBzdGFydFkgPSByZWN0LmhlaWdodCAvIDI7XG4gICAgfVxuXG4gICAgdGhpcy5pc0RyYXdpbmcgPSB0cnVlO1xuICAgIHRoaXMuZHJhd1N0YXJ0WCA9IHN0YXJ0WDtcbiAgICB0aGlzLmRyYXdTdGFydFkgPSBzdGFydFk7XG4gICAgdGhpcy5jdXJyZW50V2lkdGggPSB0aGlzLm1pbkJveFNpemU7XG4gICAgdGhpcy5jdXJyZW50SGVpZ2h0ID0gdGhpcy5taW5Cb3hTaXplO1xuXG4gICAgdGhpcy5lbWl0RHJhd2luZ1N0YXJ0ZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplQm94KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5jcmVtZW50ID0gZXZlbnQuc2hpZnRLZXkgPyB0aGlzLmluY3JlbWVudExhcmdlIDogdGhpcy5pbmNyZW1lbnRTbWFsbDtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gcmVjdC53aWR0aCAtIHRoaXMuZHJhd1N0YXJ0WDtcbiAgICAgICAgdGhpcy5jdXJyZW50V2lkdGggPSBNYXRoLm1pbihtYXhXaWR0aCwgdGhpcy5jdXJyZW50V2lkdGggKyBpbmNyZW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIHRoaXMuY3VycmVudFdpZHRoID0gTWF0aC5tYXgodGhpcy5taW5Cb3hTaXplLCB0aGlzLmN1cnJlbnRXaWR0aCAtIGluY3JlbWVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gcmVjdC5oZWlnaHQgLSB0aGlzLmRyYXdTdGFydFk7XG4gICAgICAgIHRoaXMuY3VycmVudEhlaWdodCA9IE1hdGgubWluKG1heEhlaWdodCwgdGhpcy5jdXJyZW50SGVpZ2h0ICsgaW5jcmVtZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5jdXJyZW50SGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5taW5Cb3hTaXplLCB0aGlzLmN1cnJlbnRIZWlnaHQgLSBpbmNyZW1lbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmVtaXREcmF3aW5nVXBkYXRlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maXJtRHJhd2luZygpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXREcmF3aW5nQ29uZmlybWVkKCk7XG4gICAgdGhpcy5jbGVhbnVwKCk7XG4gIH1cblxuICBwcml2YXRlIGNhbmNlbERyYXdpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5kcmF3aW5nQ2FuY2VsbGVkLmVtaXQoKTtcbiAgICB0aGlzLmNsZWFudXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZUN1cnNvcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDdXJzb3IgPSBmYWxzZTtcbiAgICB0aGlzLmVtaXRDdXJzb3JQb3NpdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwKCk6IHZvaWQge1xuICAgIHRoaXMuaXNEcmF3aW5nID0gZmFsc2U7XG4gICAgdGhpcy5zaG93Q3Vyc29yID0gZmFsc2U7XG4gICAgdGhpcy5jdXJzb3JYID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3Vyc29yWSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmRyYXdTdGFydFggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5kcmF3U3RhcnRZID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFdpZHRoID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudEhlaWdodCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEN1cnNvclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY3Vyc29yUG9zaXRpb25DaGFuZ2VkLmVtaXQoe1xuICAgICAgeDogdGhpcy5jdXJzb3JYLFxuICAgICAgeTogdGhpcy5jdXJzb3JZLFxuICAgICAgdmlzaWJsZTogdGhpcy5zaG93Q3Vyc29yXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXREcmF3aW5nU3RhcnRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdpbmdTdGFydGVkLmVtaXQoe1xuICAgICAgc3RhcnRYOiB0aGlzLmRyYXdTdGFydFgsXG4gICAgICBzdGFydFk6IHRoaXMuZHJhd1N0YXJ0WSxcbiAgICAgIHdpZHRoOiB0aGlzLmN1cnJlbnRXaWR0aCxcbiAgICAgIGhlaWdodDogdGhpcy5jdXJyZW50SGVpZ2h0XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXREcmF3aW5nVXBkYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdpbmdVcGRhdGVkLmVtaXQoe1xuICAgICAgc3RhcnRYOiB0aGlzLmRyYXdTdGFydFgsXG4gICAgICBzdGFydFk6IHRoaXMuZHJhd1N0YXJ0WSxcbiAgICAgIHdpZHRoOiB0aGlzLmN1cnJlbnRXaWR0aCxcbiAgICAgIGhlaWdodDogdGhpcy5jdXJyZW50SGVpZ2h0XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXREcmF3aW5nQ29uZmlybWVkKCk6IHZvaWQge1xuICAgIHRoaXMuZHJhd2luZ0NvbmZpcm1lZC5lbWl0KHtcbiAgICAgIHN0YXJ0WDogdGhpcy5kcmF3U3RhcnRYLFxuICAgICAgc3RhcnRZOiB0aGlzLmRyYXdTdGFydFksXG4gICAgICB3aWR0aDogdGhpcy5jdXJyZW50V2lkdGgsXG4gICAgICBoZWlnaHQ6IHRoaXMuY3VycmVudEhlaWdodFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cCgpO1xuICAgIHRoaXMuZW1pdEN1cnNvclBvc2l0aW9uKCk7XG4gIH1cbn0iXX0=
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { debounceTime } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class KeyboardBoxMoveDirective {
|
|
6
|
-
constructor(elementRef) {
|
|
7
|
-
this.elementRef = elementRef;
|
|
8
|
-
this.enabled = true;
|
|
9
|
-
this.incrementSmall = 1;
|
|
10
|
-
this.incrementLarge = 10;
|
|
11
|
-
this.keyboardMovingChange = new EventEmitter();
|
|
12
|
-
this.boxDelete = new EventEmitter();
|
|
13
|
-
this.moveSubject = new Subject();
|
|
14
|
-
this.isMoving = false;
|
|
15
|
-
this.moveSubscription = this.moveSubject
|
|
16
|
-
.pipe(debounceTime(500))
|
|
17
|
-
.subscribe(() => {
|
|
18
|
-
this.setMoving(false);
|
|
19
|
-
this.emitStoppedEvent();
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
if (this.moveSubscription) {
|
|
24
|
-
this.moveSubscription.unsubscribe();
|
|
25
|
-
}
|
|
26
|
-
this.moveSubject.complete();
|
|
27
|
-
}
|
|
28
|
-
onKeyDown(event) {
|
|
29
|
-
if (event.key === 'Delete' || event.key === 'Backspace') {
|
|
30
|
-
event.preventDefault();
|
|
31
|
-
event.stopPropagation();
|
|
32
|
-
this.boxDelete.emit();
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (!this.enabled) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {
|
|
39
|
-
event.preventDefault();
|
|
40
|
-
event.stopPropagation();
|
|
41
|
-
this.moveBox(event);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
moveBox(event) {
|
|
45
|
-
const element = this.elementRef.nativeElement;
|
|
46
|
-
const increment = event.shiftKey ? this.incrementLarge : this.incrementSmall;
|
|
47
|
-
if (!this.isMoving) {
|
|
48
|
-
this.setMoving(true);
|
|
49
|
-
}
|
|
50
|
-
const currentTop = parseFloat(element.style.top) || 0;
|
|
51
|
-
const currentLeft = parseFloat(element.style.left) || 0;
|
|
52
|
-
const currentWidth = element.offsetWidth;
|
|
53
|
-
const currentHeight = element.offsetHeight;
|
|
54
|
-
let newTop = currentTop;
|
|
55
|
-
let newLeft = currentLeft;
|
|
56
|
-
switch (event.key) {
|
|
57
|
-
case 'ArrowUp':
|
|
58
|
-
newTop = currentTop - increment;
|
|
59
|
-
break;
|
|
60
|
-
case 'ArrowDown':
|
|
61
|
-
newTop = currentTop + increment;
|
|
62
|
-
break;
|
|
63
|
-
case 'ArrowLeft':
|
|
64
|
-
newLeft = currentLeft - increment;
|
|
65
|
-
break;
|
|
66
|
-
case 'ArrowRight':
|
|
67
|
-
newLeft = currentLeft + increment;
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
if (this.movementBounds) {
|
|
71
|
-
newTop = Math.max(0, Math.min(newTop, this.movementBounds.containerHeight - currentHeight));
|
|
72
|
-
newLeft = Math.max(0, Math.min(newLeft, this.movementBounds.containerWidth - currentWidth));
|
|
73
|
-
}
|
|
74
|
-
element.style.top = `${newTop}px`;
|
|
75
|
-
element.style.left = `${newLeft}px`;
|
|
76
|
-
this.moveSubject.next();
|
|
77
|
-
}
|
|
78
|
-
setMoving(moving) {
|
|
79
|
-
if (this.isMoving !== moving) {
|
|
80
|
-
this.isMoving = moving;
|
|
81
|
-
this.keyboardMovingChange.emit(moving);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
emitStoppedEvent() {
|
|
85
|
-
const element = this.elementRef.nativeElement;
|
|
86
|
-
const wasFocused = document.activeElement === element;
|
|
87
|
-
const stoppedEvent = new CustomEvent('stopped', {
|
|
88
|
-
detail: element,
|
|
89
|
-
bubbles: true
|
|
90
|
-
});
|
|
91
|
-
element.dispatchEvent(stoppedEvent);
|
|
92
|
-
if (wasFocused) {
|
|
93
|
-
setTimeout(() => {
|
|
94
|
-
element.focus();
|
|
95
|
-
}, 50);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeyboardBoxMoveDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
99
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KeyboardBoxMoveDirective, selector: "[mvKeyboardBoxMove]", inputs: { enabled: "enabled", incrementSmall: "incrementSmall", incrementLarge: "incrementLarge", movementBounds: "movementBounds" }, outputs: { keyboardMovingChange: "keyboardMovingChange", boxDelete: "boxDelete" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
|
|
100
|
-
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeyboardBoxMoveDirective, decorators: [{
|
|
102
|
-
type: Directive,
|
|
103
|
-
args: [{
|
|
104
|
-
selector: '[mvKeyboardBoxMove]'
|
|
105
|
-
}]
|
|
106
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { enabled: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], incrementSmall: [{
|
|
109
|
-
type: Input
|
|
110
|
-
}], incrementLarge: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], movementBounds: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], keyboardMovingChange: [{
|
|
115
|
-
type: Output
|
|
116
|
-
}], boxDelete: [{
|
|
117
|
-
type: Output
|
|
118
|
-
}], onKeyDown: [{
|
|
119
|
-
type: HostListener,
|
|
120
|
-
args: ['keydown', ['$event']]
|
|
121
|
-
}] } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtYm94LW1vdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi12aWV3L3JlY3RhbmdsZS9rZXlib2FyZC1ib3gtbW92ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVU5QyxNQUFNLE9BQU8sd0JBQXdCO0lBY25DLFlBQW9CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBWjlDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUduQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ25ELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXZDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVsQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVzthQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lB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QkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQXVCUCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBCb3hNb3ZlbWVudEJvdW5kcyB7XG4gIGNvbnRhaW5lcldpZHRoOiBudW1iZXI7XG4gIGNvbnRhaW5lckhlaWdodDogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXZLZXlib2FyZEJveE1vdmVdJ1xufSlcbmV4cG9ydCBjbGFzcyBLZXlib2FyZEJveE1vdmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGVuYWJsZWQgPSB0cnVlO1xuICBASW5wdXQoKSBpbmNyZW1lbnRTbWFsbCA9IDE7XG4gIEBJbnB1dCgpIGluY3JlbWVudExhcmdlID0gMTA7XG4gIEBJbnB1dCgpIG1vdmVtZW50Qm91bmRzOiBCb3hNb3ZlbWVudEJvdW5kcztcblxuICBAT3V0cHV0KCkga2V5Ym9hcmRNb3ZpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBib3hEZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBtb3ZlU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgbW92ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGlzTW92aW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHRoaXMubW92ZVN1YnNjcmlwdGlvbiA9IHRoaXMubW92ZVN1YmplY3RcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0TW92aW5nKGZhbHNlKTtcbiAgICAgICAgdGhpcy5lbWl0U3RvcHBlZEV2ZW50KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vdmVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLm1vdmVTdWJqZWN0LmNvbXBsZXRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgfHwgZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5ib3hEZWxldGUuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFsnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLm1vdmVCb3goZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbW92ZUJveChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBpbmNyZW1lbnQgPSBldmVudC5zaGlmdEtleSA/IHRoaXMuaW5jcmVtZW50TGFyZ2UgOiB0aGlzLmluY3JlbWVudFNtYWxsO1xuXG4gICAgaWYgKCF0aGlzLmlzTW92aW5nKSB7XG4gICAgICB0aGlzLnNldE1vdmluZyh0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50VG9wID0gcGFyc2VGbG9hdChlbGVtZW50LnN0eWxlLnRvcCkgfHwgMDtcbiAgICBjb25zdCBjdXJyZW50TGVmdCA9IHBhcnNlRmxvYXQoZWxlbWVudC5zdHlsZS5sZWZ0KSB8fCAwO1xuICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgY3VycmVudEhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuXG4gICAgbGV0IG5ld1RvcCA9IGN1cnJlbnRUb3A7XG4gICAgbGV0IG5ld0xlZnQgPSBjdXJyZW50TGVmdDtcblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgbmV3VG9wID0gY3VycmVudFRvcCAtIGluY3JlbWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBuZXdUb3AgPSBjdXJyZW50VG9wICsgaW5jcmVtZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIG5ld0xlZnQgPSBjdXJyZW50TGVmdCAtIGluY3JlbWVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgbmV3TGVmdCA9IGN1cnJlbnRMZWZ0ICsgaW5jcmVtZW50O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb3ZlbWVudEJvdW5kcykge1xuICAgICAgbmV3VG9wID0gTWF0aC5tYXgoMCwgTWF0aC5taW4obmV3VG9wLCB0aGlzLm1vdmVtZW50Qm91bmRzLmNvbnRhaW5lckhlaWdodCAtIGN1cnJlbnRIZWlnaHQpKTtcbiAgICAgIG5ld0xlZnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihuZXdMZWZ0LCB0aGlzLm1vdmVtZW50Qm91bmRzLmNvbnRhaW5lcldpZHRoIC0gY3VycmVudFdpZHRoKSk7XG4gICAgfVxuXG4gICAgZWxlbWVudC5zdHlsZS50b3AgPSBgJHtuZXdUb3B9cHhgO1xuICAgIGVsZW1lbnQuc3R5bGUubGVmdCA9IGAke25ld0xlZnR9cHhgO1xuXG4gICAgdGhpcy5tb3ZlU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldE1vdmluZyhtb3Zpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc01vdmluZyAhPT0gbW92aW5nKSB7XG4gICAgICB0aGlzLmlzTW92aW5nID0gbW92aW5nO1xuICAgICAgdGhpcy5rZXlib2FyZE1vdmluZ0NoYW5nZS5lbWl0KG1vdmluZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U3RvcHBlZEV2ZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHdhc0ZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50O1xuXG4gICAgY29uc3Qgc3RvcHBlZEV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdzdG9wcGVkJywge1xuICAgICAgZGV0YWlsOiBlbGVtZW50LFxuICAgICAgYnViYmxlczogdHJ1ZVxuICAgIH0pO1xuICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChzdG9wcGVkRXZlbnQpO1xuXG4gICAgaWYgKHdhc0ZvY3VzZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LCA1MCk7XG4gICAgfVxuICB9XG59Il19
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export interface KeyboardBoxDrawEvent {
|
|
4
|
-
startX: number;
|
|
5
|
-
startY: number;
|
|
6
|
-
width: number;
|
|
7
|
-
height: number;
|
|
8
|
-
}
|
|
9
|
-
export interface CursorPosition {
|
|
10
|
-
x: number;
|
|
11
|
-
y: number;
|
|
12
|
-
visible: boolean;
|
|
13
|
-
}
|
|
14
|
-
export declare class KeyboardBoxDrawDirective implements OnDestroy {
|
|
15
|
-
private elementRef;
|
|
16
|
-
set enabled(value: boolean);
|
|
17
|
-
get enabled(): boolean;
|
|
18
|
-
private _enabled;
|
|
19
|
-
minBoxSize: number;
|
|
20
|
-
incrementSmall: number;
|
|
21
|
-
incrementMedium: number;
|
|
22
|
-
incrementLarge: number;
|
|
23
|
-
drawingStarted: EventEmitter<KeyboardBoxDrawEvent>;
|
|
24
|
-
drawingUpdated: EventEmitter<KeyboardBoxDrawEvent>;
|
|
25
|
-
drawingConfirmed: EventEmitter<KeyboardBoxDrawEvent>;
|
|
26
|
-
drawingCancelled: EventEmitter<void>;
|
|
27
|
-
cursorPositionChanged: EventEmitter<CursorPosition>;
|
|
28
|
-
private isDrawing;
|
|
29
|
-
private cursorX;
|
|
30
|
-
private cursorY;
|
|
31
|
-
private showCursor;
|
|
32
|
-
private drawStartX;
|
|
33
|
-
private drawStartY;
|
|
34
|
-
private currentWidth;
|
|
35
|
-
private currentHeight;
|
|
36
|
-
private static lastInteractionWasKeyboard;
|
|
37
|
-
constructor(elementRef: ElementRef<HTMLElement>);
|
|
38
|
-
private static onGlobalKeyDown;
|
|
39
|
-
private static onGlobalMouseDown;
|
|
40
|
-
ngOnDestroy(): void;
|
|
41
|
-
private initializeCursorForKeyboard;
|
|
42
|
-
onKeyDown(event: KeyboardEvent): void;
|
|
43
|
-
onBlur(): void;
|
|
44
|
-
private moveCursor;
|
|
45
|
-
private startDrawing;
|
|
46
|
-
private resizeBox;
|
|
47
|
-
private confirmDrawing;
|
|
48
|
-
private cancelDrawing;
|
|
49
|
-
private hideCursor;
|
|
50
|
-
private cleanup;
|
|
51
|
-
private emitCursorPosition;
|
|
52
|
-
private emitDrawingStarted;
|
|
53
|
-
private emitDrawingUpdated;
|
|
54
|
-
private emitDrawingConfirmed;
|
|
55
|
-
reset(): void;
|
|
56
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardBoxDrawDirective, never>;
|
|
57
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KeyboardBoxDrawDirective, "[mvKeyboardBoxDraw]", never, { "enabled": { "alias": "enabled"; "required": false; }; "minBoxSize": { "alias": "minBoxSize"; "required": false; }; "incrementSmall": { "alias": "incrementSmall"; "required": false; }; "incrementMedium": { "alias": "incrementMedium"; "required": false; }; "incrementLarge": { "alias": "incrementLarge"; "required": false; }; }, { "drawingStarted": "drawingStarted"; "drawingUpdated": "drawingUpdated"; "drawingConfirmed": "drawingConfirmed"; "drawingCancelled": "drawingCancelled"; "cursorPositionChanged": "cursorPositionChanged"; }, never, never, false, never>;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=keyboard-box-draw.directive.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard-box-draw.directive.d.ts","sourceRoot":"","sources":["../../../../../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-create/box-highlight-create/keyboard-box-draw.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,YAAY,EAAuB,SAAS,EAAU,MAAM,eAAe,CAAC;;AAE5G,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAGa,wBAAyB,YAAW,SAAS;IAoC5C,OAAO,CAAC,UAAU;IAlC9B,IAAa,OAAO,CAAC,KAAK,EAAE,OAAO,EAOlC;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,OAAO,CAAC,QAAQ,CAAS;IAEhB,UAAU,SAAM;IAChB,cAAc,SAAK;IACnB,eAAe,SAAK;IACpB,cAAc,SAAM;IAEnB,cAAc,qCAA4C;IAC1D,cAAc,qCAA4C;IAC1D,gBAAgB,qCAA4C;IAC5D,gBAAgB,qBAA4B;IAC5C,qBAAqB,+BAAsC;IAErE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAS;gBAE9B,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC;IAOvD,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,WAAW,IAAI,IAAI;IAInB,OAAO,CAAC,2BAA2B;IAanC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IA0CrC,MAAM,IAAI,IAAI;IAMd,OAAO,CAAC,UAAU;IAiClB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,oBAAoB;IASrB,KAAK,IAAI,IAAI;yCAnQT,wBAAwB;2CAAxB,wBAAwB;CAuQpC"}
|
package/lib/annotations/annotation-set/annotation-view/rectangle/keyboard-box-move.directive.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export interface BoxMovementBounds {
|
|
4
|
-
containerWidth: number;
|
|
5
|
-
containerHeight: number;
|
|
6
|
-
}
|
|
7
|
-
export declare class KeyboardBoxMoveDirective implements OnDestroy {
|
|
8
|
-
private elementRef;
|
|
9
|
-
enabled: boolean;
|
|
10
|
-
incrementSmall: number;
|
|
11
|
-
incrementLarge: number;
|
|
12
|
-
movementBounds: BoxMovementBounds;
|
|
13
|
-
keyboardMovingChange: EventEmitter<boolean>;
|
|
14
|
-
boxDelete: EventEmitter<void>;
|
|
15
|
-
private moveSubject;
|
|
16
|
-
private moveSubscription;
|
|
17
|
-
private isMoving;
|
|
18
|
-
constructor(elementRef: ElementRef<HTMLElement>);
|
|
19
|
-
ngOnDestroy(): void;
|
|
20
|
-
onKeyDown(event: KeyboardEvent): void;
|
|
21
|
-
private moveBox;
|
|
22
|
-
private setMoving;
|
|
23
|
-
private emitStoppedEvent;
|
|
24
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardBoxMoveDirective, never>;
|
|
25
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KeyboardBoxMoveDirective, "[mvKeyboardBoxMove]", never, { "enabled": { "alias": "enabled"; "required": false; }; "incrementSmall": { "alias": "incrementSmall"; "required": false; }; "incrementLarge": { "alias": "incrementLarge"; "required": false; }; "movementBounds": { "alias": "movementBounds"; "required": false; }; }, { "keyboardMovingChange": "keyboardMovingChange"; "boxDelete": "boxDelete"; }, never, never, false, never>;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=keyboard-box-move.directive.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard-box-move.directive.d.ts","sourceRoot":"","sources":["../../../../../../../projects/media-viewer/src/lib/annotations/annotation-set/annotation-view/rectangle/keyboard-box-move.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,YAAY,EAAuB,SAAS,EAAU,MAAM,eAAe,CAAC;;AAI5G,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAGa,wBAAyB,YAAW,SAAS;IAc5C,OAAO,CAAC,UAAU;IAZrB,OAAO,UAAQ;IACf,cAAc,SAAK;IACnB,cAAc,SAAM;IACpB,cAAc,EAAE,iBAAiB,CAAC;IAEjC,oBAAoB,wBAA+B;IACnD,SAAS,qBAA4B;IAE/C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAS;gBAEL,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC;IASvD,WAAW,IAAI,IAAI;IAQnB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAmBrC,OAAO,CAAC,OAAO;IA0Cf,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,gBAAgB;yCAnGb,wBAAwB;2CAAxB,wBAAwB;CAoHpC"}
|