systelab-virtual-keyboard 18.0.1 → 20.0.0

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.
@@ -1,214 +0,0 @@
1
- /*
2
- * Copyright (c) 2020 - 2024 - Instrumentation Laboratory Company and Systelab Technologies, SA. All rights reserved.
3
- * NOTICE: All information contained herein is and remains the property of Instrumentation Laboratory Company and its
4
- * affiliates, if any. The intellectual and technical concepts contained herein are proprietary to Instrumentation
5
- * Laboratory Company and its affiliates and may be covered by U.S. and foreign patents and patent applications, and/or
6
- * are protected by trade secret or copyright law. Dissemination of this information or reproduction of this material is
7
- * strictly forbidden unless prior written permission is Instrumentation Laboratory Company.
8
- */
9
- import { Directive, HostListener, Inject, Input, Optional, } from '@angular/core';
10
- import { DOCUMENT } from '@angular/common';
11
- import { SystelabVirtualKeyboardInputModes, SystelabVirtualKeyboardLayouts } from './constants';
12
- import { VIRTUAL_KEYBOARD_CONFIG } from './systelab-virtual-keyboard.config';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "./systelab-virtual-keyboard-overlay.service";
15
- export class SystelabVirtualKeyboardDirective {
16
- onDocumentScroll() {
17
- if (!this.vkEnabled) {
18
- return;
19
- }
20
- this.overlayService.updatePosition();
21
- }
22
- onClick() {
23
- if (!this.vkEnabled || !this.config.showOnMouseClick) {
24
- return;
25
- }
26
- this.closePanel();
27
- this.overlayService.setClickAlreadyHandled();
28
- this.openPanel();
29
- }
30
- onTouchEnd() {
31
- if (!this.vkEnabled) {
32
- return;
33
- }
34
- this.closePanel();
35
- this.overlayService.setTouchEndAlreadyHandled();
36
- this.openPanel();
37
- }
38
- set vkEnabled(enabled) {
39
- if (typeof enabled === 'string') {
40
- this.enabled = true;
41
- }
42
- else {
43
- this.enabled = enabled;
44
- }
45
- }
46
- ;
47
- get vkEnabled() {
48
- return this.enabled;
49
- }
50
- get vkFixedBottom() {
51
- return this.fixedBottom;
52
- }
53
- set vkFixedBottom(fixedBottom) {
54
- if (typeof fixedBottom === 'string') {
55
- this.fixedBottom = true;
56
- }
57
- else {
58
- this.fixedBottom = fixedBottom;
59
- }
60
- }
61
- get vkDebug() {
62
- return this.debug;
63
- }
64
- set vkDebug(debug) {
65
- this.debug = debug;
66
- }
67
- get vkConfig() {
68
- return this.config;
69
- }
70
- set vkConfig(config) {
71
- this.config = config;
72
- }
73
- constructor(elementRef, overlayService, renderer, document, virtualKeyboardConfig) {
74
- this.elementRef = elementRef;
75
- this.overlayService = overlayService;
76
- this.renderer = renderer;
77
- this.document = document;
78
- this.virtualKeyboardConfig = virtualKeyboardConfig;
79
- this.enabled = false;
80
- this.fixedBottom = false;
81
- this.debug = false;
82
- this.config = this.virtualKeyboardConfig;
83
- }
84
- ngOnInit() {
85
- if (this.config?.showIcon) {
86
- this.attachKeyboardIcon();
87
- }
88
- }
89
- ngAfterViewInit() {
90
- if (this.vkEnabled && this.config?.showIcon) {
91
- const keyboardIcon = this.elementRef.nativeElement.parentElement.querySelector('i');
92
- keyboardIcon.addEventListener('click', this.togglePanel.bind(this));
93
- }
94
- }
95
- ngOnDestroy() {
96
- if (this.vkEnabled && this.config?.showIcon) {
97
- const keyboardIcon = this.elementRef.nativeElement.parentElement.querySelector('i');
98
- keyboardIcon.removeEventListener('click', this.togglePanel.bind(this));
99
- }
100
- this.overlayService.destroy();
101
- }
102
- togglePanel() {
103
- if (!this.vkEnabled) {
104
- return;
105
- }
106
- if (this.overlayService.isOpen()) {
107
- this.closePanel();
108
- }
109
- else {
110
- this.openPanel();
111
- }
112
- }
113
- openPanel() {
114
- if (!this.vkEnabled) {
115
- return;
116
- }
117
- if (this.overlayService.isCreated()) {
118
- this.overlayService.destroy();
119
- }
120
- if (this.overlayService.hasAttached()) {
121
- return;
122
- }
123
- const currentLayout = this.getLayout(this.elementRef.nativeElement);
124
- this.panelRef = this.overlayService.create(this.inputOrigin(), this.showKeyboardButtonElement, this.vkFixedBottom, currentLayout);
125
- this.panelRef.instance.debug = this.vkDebug;
126
- this.panelRef.instance.setActiveInput(this.elementRef.nativeElement);
127
- this.panelRef.instance.setLayout(currentLayout);
128
- this.panelRef.instance.closePanel.subscribe(() => this.closePanel());
129
- }
130
- getLayout(activeInputElement) {
131
- if (this.config?.hasOwnProperty('layout')) {
132
- return this.config.layout;
133
- }
134
- if (this.isInputAlphabetic(activeInputElement)) {
135
- return SystelabVirtualKeyboardLayouts.default;
136
- }
137
- else if (this.isInputNumeric(activeInputElement)) {
138
- return SystelabVirtualKeyboardLayouts.numeric;
139
- }
140
- else {
141
- return SystelabVirtualKeyboardLayouts.default;
142
- }
143
- }
144
- isInputAlphabetic(activeInputElement) {
145
- const inputMode = this.getInputMode(activeInputElement);
146
- return inputMode && [SystelabVirtualKeyboardInputModes.text, SystelabVirtualKeyboardInputModes.password].some((i) => i === inputMode);
147
- }
148
- isInputNumeric(activeInputElement) {
149
- const inputMode = this.getInputMode(activeInputElement);
150
- return inputMode && [SystelabVirtualKeyboardInputModes.numeric].some((i) => i === inputMode);
151
- }
152
- getInputMode(activeInputElement) {
153
- return activeInputElement?.inputMode ?? activeInputElement?.type;
154
- }
155
- closePanel() {
156
- this.overlayService.destroy();
157
- }
158
- inputOrigin() {
159
- return this.elementRef.nativeElement;
160
- }
161
- attachKeyboardIcon() {
162
- if (this.vkEnabled) {
163
- const child = this.document.createElement('i');
164
- child.classList.add('fa');
165
- child.classList.add('fa-keyboard');
166
- child.classList.add('systelab-virtual-keyboard__show-button');
167
- this.renderer.appendChild(this.elementRef.nativeElement.parentElement, child);
168
- this.showKeyboardButtonElement = child;
169
- }
170
- }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SystelabVirtualKeyboardDirective, deps: [{ token: i0.ElementRef }, { token: i1.SystelabVirtualKeyboardOverlayService }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: VIRTUAL_KEYBOARD_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
172
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: SystelabVirtualKeyboardDirective, selector: "input[vkEnabled], textarea[vkEnabled]", inputs: { vkEnabled: "vkEnabled", vkFixedBottom: "vkFixedBottom", vkDebug: "vkDebug", vkConfig: "vkConfig" }, host: { listeners: { "window:touchmove": "onDocumentScroll($event)", "window:touchend": "onDocumentScroll($event)", "window:wheel": "onDocumentScroll($event)", "document:scroll": "onDocumentScroll($event)", "click": "onClick($event)", "touchend": "onTouchEnd($event)" } }, ngImport: i0 }); }
173
- }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SystelabVirtualKeyboardDirective, decorators: [{
175
- type: Directive,
176
- args: [{
177
- selector: 'input[vkEnabled], textarea[vkEnabled]',
178
- }]
179
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.SystelabVirtualKeyboardOverlayService }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
180
- type: Inject,
181
- args: [DOCUMENT]
182
- }] }, { type: undefined, decorators: [{
183
- type: Optional
184
- }, {
185
- type: Inject,
186
- args: [VIRTUAL_KEYBOARD_CONFIG]
187
- }] }], propDecorators: { onDocumentScroll: [{
188
- type: HostListener,
189
- args: ['window:touchmove', ['$event']]
190
- }, {
191
- type: HostListener,
192
- args: ['window:touchend', ['$event']]
193
- }, {
194
- type: HostListener,
195
- args: ['window:wheel', ['$event']]
196
- }, {
197
- type: HostListener,
198
- args: ['document:scroll', ['$event']]
199
- }], onClick: [{
200
- type: HostListener,
201
- args: ['click', ['$event']]
202
- }], onTouchEnd: [{
203
- type: HostListener,
204
- args: ['touchend', ['$event']]
205
- }], vkEnabled: [{
206
- type: Input
207
- }], vkFixedBottom: [{
208
- type: Input
209
- }], vkDebug: [{
210
- type: Input
211
- }], vkConfig: [{
212
- type: Input
213
- }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVsYWItdmlydHVhbC1rZXlib2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zeXN0ZWxhYi12aXJ0dWFsLWtleWJvYXJkL3NyYy9saWIvc3lzdGVsYWItdmlydHVhbC1rZXlib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUVILE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHaEcsT0FBTyxFQUFpQyx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFLNUcsTUFBTSxPQUFPLGdDQUFnQztJQUt6QyxnQkFBZ0I7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBR0QsT0FBTztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25ELE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUdELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFB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LHVCQUF1Qjt5Q0F6Ri9DLGdCQUFnQjtzQkFKZixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDM0MsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzFDLFlBQVk7dUJBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDdkMsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTM0MsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZakMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFjaEMsU0FBUztzQkFEWixLQUFLO2dCQWdCRixhQUFhO3NCQURoQixLQUFLO2dCQWdCRixPQUFPO3NCQURWLEtBQUs7Z0JBWUYsUUFBUTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMCAtIDIwMjQgLSBJbnN0cnVtZW50YXRpb24gTGFib3JhdG9yeSBDb21wYW55IGFuZCBTeXN0ZWxhYiBUZWNobm9sb2dpZXMsIFNBLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTk9USUNFOiAgQWxsIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMgYW5kIHJlbWFpbnMgdGhlIHByb3BlcnR5IG9mIEluc3RydW1lbnRhdGlvbiBMYWJvcmF0b3J5IENvbXBhbnkgYW5kIGl0c1xuICogYWZmaWxpYXRlcywgaWYgYW55LiAgVGhlIGludGVsbGVjdHVhbCBhbmQgdGVjaG5pY2FsIGNvbmNlcHRzIGNvbnRhaW5lZCBoZXJlaW4gYXJlIHByb3ByaWV0YXJ5IHRvIEluc3RydW1lbnRhdGlvblxuICogTGFib3JhdG9yeSBDb21wYW55IGFuZCBpdHMgYWZmaWxpYXRlcyBhbmQgbWF5IGJlIGNvdmVyZWQgYnkgVS5TLiBhbmQgZm9yZWlnbiBwYXRlbnRzIGFuZCBwYXRlbnQgYXBwbGljYXRpb25zLCBhbmQvb3JcbiAqIGFyZSBwcm90ZWN0ZWQgYnkgdHJhZGUgc2VjcmV0IG9yIGNvcHlyaWdodCBsYXcuIERpc3NlbWluYXRpb24gb2YgdGhpcyBpbmZvcm1hdGlvbiBvciByZXByb2R1Y3Rpb24gb2YgdGhpcyBtYXRlcmlhbCBpc1xuICogc3RyaWN0bHkgZm9yYmlkZGVuIHVubGVzcyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24gaXMgSW5zdHJ1bWVudGF0aW9uIExhYm9yYXRvcnkgQ29tcGFueS5cbiAqL1xuXG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IFN5c3RlbGFiVmlydHVhbEtleWJvYXJkSW5wdXRNb2RlcywgU3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRMYXlvdXRzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRDb21wb25lbnQgfSBmcm9tICcuL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFN5c3RlbGFiVmlydHVhbEtleWJvYXJkT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQtb3ZlcmxheS5zZXJ2aWNlJztcbmltcG9ydCB7IFN5c3RlbGFiVmlydHVhbEtleWJvYXJkQ29uZmlnLCBWSVJUVUFMX0tFWUJPQVJEX0NPTkZJRyB9IGZyb20gJy4vc3lzdGVsYWItdmlydHVhbC1rZXlib2FyZC5jb25maWcnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W3ZrRW5hYmxlZF0sIHRleHRhcmVhW3ZrRW5hYmxlZF0nLFxufSlcbmV4cG9ydCBjbGFzcyBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6dG91Y2htb3ZlJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6dG91Y2hlbmQnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzp3aGVlbCcsIFsnJGV2ZW50J10pXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6c2Nyb2xsJywgWyckZXZlbnQnXSlcbiAgICBvbkRvY3VtZW50U2Nyb2xsKCkge1xuICAgICAgICBpZiAoIXRoaXMudmtFbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS51cGRhdGVQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudmtFbmFibGVkIHx8ICF0aGlzLmNvbmZpZy5zaG93T25Nb3VzZUNsaWNrKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5zZXRDbGlja0FscmVhZHlIYW5kbGVkKCk7XG4gICAgICAgIHRoaXMub3BlblBhbmVsKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxuICAgIG9uVG91Y2hFbmQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52a0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xvc2VQYW5lbCgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLnNldFRvdWNoRW5kQWxyZWFkeUhhbmRsZWQoKTtcbiAgICAgICAgdGhpcy5vcGVuUGFuZWwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVuYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZrRW5hYmxlZChlbmFibGVkOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZW5hYmxlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGdldCB2a0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVuYWJsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaXhlZEJvdHRvbSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgdmtGaXhlZEJvdHRvbSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZml4ZWRCb3R0b207XG4gICAgfVxuXG4gICAgc2V0IHZrRml4ZWRCb3R0b20oZml4ZWRCb3R0b206IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmaXhlZEJvdHRvbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuZml4ZWRCb3R0b20gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maXhlZEJvdHRvbSA9IGZpeGVkQm90dG9tO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWJ1ZyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgdmtEZWJ1ZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVidWc7XG4gICAgfVxuXG4gICAgc2V0IHZrRGVidWcoZGVidWc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kZWJ1ZyA9IGRlYnVnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29uZmlnOiBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZENvbmZpZztcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHZrQ29uZmlnKCk6IFN5c3RlbGFiVmlydHVhbEtleWJvYXJkQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnO1xuICAgIH1cblxuICAgIHNldCB2a0NvbmZpZyhjb25maWc6IFN5c3RlbGFiVmlydHVhbEtleWJvYXJkQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFuZWxSZWYhOiBDb21wb25lbnRSZWY8U3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRDb21wb25lbnQ+O1xuICAgIHByaXZhdGUgc2hvd0tleWJvYXJkQnV0dG9uRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXlTZXJ2aWNlOiBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZE92ZXJsYXlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChWSVJUVUFMX0tFWUJPQVJEX0NPTkZJRykgcHJpdmF0ZSB2aXJ0dWFsS2V5Ym9hcmRDb25maWc6IFN5c3RlbGFiVmlydHVhbEtleWJvYXJkQ29uZmlnLFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IHRoaXMudmlydHVhbEtleWJvYXJkQ29uZmlnO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5jb25maWc/LnNob3dJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmF0dGFjaEtleWJvYXJkSWNvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy52a0VuYWJsZWQgJiYgdGhpcy5jb25maWc/LnNob3dJY29uKSB7XG4gICAgICAgICAgICBjb25zdCBrZXlib2FyZEljb24gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2knKTtcbiAgICAgICAgICAgIGtleWJvYXJkSWNvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMudG9nZ2xlUGFuZWwuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmtFbmFibGVkICYmIHRoaXMuY29uZmlnPy5zaG93SWNvbikge1xuICAgICAgICAgICAgY29uc3Qga2V5Ym9hcmRJY29uID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpJyk7XG4gICAgICAgICAgICBrZXlib2FyZEljb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRvZ2dsZVBhbmVsLmJpbmQodGhpcykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlUGFuZWwoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52a0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vdmVybGF5U2VydmljZS5pc09wZW4oKSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5QYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuUGFuZWwoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52a0VuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vdmVybGF5U2VydmljZS5pc0NyZWF0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVNlcnZpY2UuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudExheW91dCA9IHRoaXMuZ2V0TGF5b3V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICB0aGlzLnBhbmVsUmVmID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGUodGhpcy5pbnB1dE9yaWdpbigpLCB0aGlzLnNob3dLZXlib2FyZEJ1dHRvbkVsZW1lbnQsIHRoaXMudmtGaXhlZEJvdHRvbSwgY3VycmVudExheW91dCk7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuaW5zdGFuY2UuZGVidWcgPSB0aGlzLnZrRGVidWc7XG4gICAgICAgIHRoaXMucGFuZWxSZWYuaW5zdGFuY2Uuc2V0QWN0aXZlSW5wdXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLnBhbmVsUmVmLmluc3RhbmNlLnNldExheW91dChjdXJyZW50TGF5b3V0KTtcbiAgICAgICAgdGhpcy5wYW5lbFJlZi5pbnN0YW5jZS5jbG9zZVBhbmVsLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlUGFuZWwoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMYXlvdXQoYWN0aXZlSW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCk6IFN5c3RlbGFiVmlydHVhbEtleWJvYXJkTGF5b3V0cyB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZz8uaGFzT3duUHJvcGVydHkoJ2xheW91dCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWcubGF5b3V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzSW5wdXRBbHBoYWJldGljKGFjdGl2ZUlucHV0RWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZExheW91dHMuZGVmYXVsdDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSW5wdXROdW1lcmljKGFjdGl2ZUlucHV0RWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZExheW91dHMubnVtZXJpYztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZExheW91dHMuZGVmYXVsdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNJbnB1dEFscGhhYmV0aWMoYWN0aXZlSW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpbnB1dE1vZGUgPSB0aGlzLmdldElucHV0TW9kZShhY3RpdmVJbnB1dEVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gaW5wdXRNb2RlICYmICBbU3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRJbnB1dE1vZGVzLnRleHQsIFN5c3RlbGFiVmlydHVhbEtleWJvYXJkSW5wdXRNb2Rlcy5wYXNzd29yZF0uc29tZSgoaSkgPT4gaSA9PT0gaW5wdXRNb2RlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzSW5wdXROdW1lcmljKGFjdGl2ZUlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaW5wdXRNb2RlID0gdGhpcy5nZXRJbnB1dE1vZGUoYWN0aXZlSW5wdXRFbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGlucHV0TW9kZSAmJiBbU3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRJbnB1dE1vZGVzLm51bWVyaWNdLnNvbWUoKGkpID0+IGkgPT09IGlucHV0TW9kZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRJbnB1dE1vZGUoYWN0aXZlSW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBhY3RpdmVJbnB1dEVsZW1lbnQ/LmlucHV0TW9kZSA/PyBhY3RpdmVJbnB1dEVsZW1lbnQ/LnR5cGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVBhbmVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlucHV0T3JpZ2luKCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhdHRhY2hLZXlib2FyZEljb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnZrRW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKTtcbiAgICAgICAgICAgIGNoaWxkLmNsYXNzTGlzdC5hZGQoJ2ZhJyk7XG4gICAgICAgICAgICBjaGlsZC5jbGFzc0xpc3QuYWRkKCdmYS1rZXlib2FyZCcpO1xuICAgICAgICAgICAgY2hpbGQuY2xhc3NMaXN0LmFkZCgnc3lzdGVsYWItdmlydHVhbC1rZXlib2FyZF9fc2hvdy1idXR0b24nKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgY2hpbGQpO1xuICAgICAgICAgICAgdGhpcy5zaG93S2V5Ym9hcmRCdXR0b25FbGVtZW50ID0gY2hpbGQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,45 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { SystelabVirtualKeyboardDirective } from './systelab-virtual-keyboard.directive';
4
- import { OverlayModule } from '@angular/cdk/overlay';
5
- import { VIRTUAL_KEYBOARD_CONFIG } from './systelab-virtual-keyboard.config';
6
- import { SystelabVirtualKeyboardOverlayService } from './systelab-virtual-keyboard-overlay.service';
7
- import * as i0 from "@angular/core";
8
- export const factory = () => {
9
- const systelabVirtualKeyboardModuleCreated = factory._systelabVirtualKeyboardModuleCreated || false;
10
- if (systelabVirtualKeyboardModuleCreated) {
11
- throw new Error('SystelabVirtualKeyboardModuleCreated.forRoot imported to many times');
12
- }
13
- factory._systelabVirtualKeyboardModuleCreated = true;
14
- };
15
- export class SystelabVirtualKeyboardModule {
16
- static forRoot(conf) {
17
- return {
18
- ngModule: SystelabVirtualKeyboardModule,
19
- providers: [
20
- SystelabVirtualKeyboardOverlayService,
21
- {
22
- provide: VIRTUAL_KEYBOARD_CONFIG, useValue: conf
23
- }
24
- ]
25
- };
26
- }
27
- static forChild() {
28
- return {
29
- ngModule: SystelabVirtualKeyboardModule,
30
- providers: [],
31
- };
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SystelabVirtualKeyboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
34
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: SystelabVirtualKeyboardModule, declarations: [SystelabVirtualKeyboardDirective], imports: [CommonModule, OverlayModule], exports: [SystelabVirtualKeyboardDirective] }); }
35
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SystelabVirtualKeyboardModule, imports: [CommonModule, OverlayModule] }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SystelabVirtualKeyboardModule, decorators: [{
38
- type: NgModule,
39
- args: [{
40
- imports: [CommonModule, OverlayModule],
41
- declarations: [SystelabVirtualKeyboardDirective],
42
- exports: [SystelabVirtualKeyboardDirective],
43
- }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVsYWItdmlydHVhbC1rZXlib2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zeXN0ZWxhYi12aXJ0dWFsLWtleWJvYXJkL3NyYy9saWIvc3lzdGVsYWItdmlydHVhbC1rZXlib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQWlDLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUcsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBRXBHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7SUFDeEIsTUFBTSxvQ0FBb0MsR0FBSSxPQUFlLENBQUMscUNBQXFDLElBQUksS0FBSyxDQUFDO0lBQzdHLElBQUksb0NBQW9DLEVBQUUsQ0FBQztRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNBLE9BQWUsQ0FBQyxxQ0FBcUMsR0FBRyxJQUFJLENBQUM7QUFDbEUsQ0FBQyxDQUFDO0FBT0YsTUFBTSxPQUFPLDZCQUE2QjtJQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQW9DO1FBQ3RELE9BQU87WUFDSCxRQUFRLEVBQUUsNkJBQTZCO1lBQ3ZDLFNBQVMsRUFBRTtnQkFDUCxxQ0FBcUM7Z0JBQ3JDO29CQUNJLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsSUFBSTtpQkFDbkQ7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVE7UUFDbEIsT0FBTztZQUNILFFBQVEsRUFBRSw2QkFBNkI7WUFDdkMsU0FBUyxFQUFFLEVBQUU7U0FDaEIsQ0FBQztJQUNOLENBQUM7OEdBbEJRLDZCQUE2QjsrR0FBN0IsNkJBQTZCLGlCQUh2QixnQ0FBZ0MsYUFEckMsWUFBWSxFQUFFLGFBQWEsYUFFM0IsZ0NBQWdDOytHQUVqQyw2QkFBNkIsWUFKNUIsWUFBWSxFQUFFLGFBQWE7OzJGQUk1Qiw2QkFBNkI7a0JBTHpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztvQkFDdEMsWUFBWSxFQUFFLENBQUMsZ0NBQWdDLENBQUM7b0JBQ2hELE9BQU8sRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmREaXJlY3RpdmUgfSBmcm9tICcuL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZENvbmZpZywgVklSVFVBTF9LRVlCT0FSRF9DT05GSUcgfSBmcm9tICcuL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQuY29uZmlnJztcbmltcG9ydCB7IFN5c3RlbGFiVmlydHVhbEtleWJvYXJkT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQtb3ZlcmxheS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGZhY3RvcnkgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRNb2R1bGVDcmVhdGVkID0gKGZhY3RvcnkgYXMgYW55KS5fc3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRNb2R1bGVDcmVhdGVkIHx8IGZhbHNlO1xuICAgIGlmIChzeXN0ZWxhYlZpcnR1YWxLZXlib2FyZE1vZHVsZUNyZWF0ZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZE1vZHVsZUNyZWF0ZWQuZm9yUm9vdCBpbXBvcnRlZCB0byBtYW55IHRpbWVzJyk7XG4gICAgfVxuICAgIChmYWN0b3J5IGFzIGFueSkuX3N5c3RlbGFiVmlydHVhbEtleWJvYXJkTW9kdWxlQ3JlYXRlZCA9IHRydWU7XG59O1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1N5c3RlbGFiVmlydHVhbEtleWJvYXJkRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbU3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmREaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZE1vZHVsZSB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmY/OiBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIFN5c3RlbGFiVmlydHVhbEtleWJvYXJkT3ZlcmxheVNlcnZpY2UsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBWSVJUVUFMX0tFWUJPQVJEX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmb3JDaGlsZCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFN5c3RlbGFiVmlydHVhbEtleWJvYXJkTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogU3lzdGVsYWJWaXJ0dWFsS2V5Ym9hcmRNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtdLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- /*
2
- * Public API Surface of systelab-virtual-keyboard
3
- */
4
- export * from './lib/constants';
5
- export * from './lib/systelab-virtual-keyboard.directive';
6
- export * from './lib/systelab-virtual-keyboard.module';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc3lzdGVsYWItdmlydHVhbC1rZXlib2FyZFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnN0YW50cyc7XG5leHBvcnQgeyBTeXN0ZWxhYlZpcnR1YWxLZXlib2FyZENvbmZpZyB9IGZyb20gJy4vbGliL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQubW9kdWxlJztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVsYWItdmlydHVhbC1rZXlib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQvc3JjL3N5c3RlbGFiLXZpcnR1YWwta2V5Ym9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,25 +0,0 @@
1
- export declare enum SystelabVirtualKeyboardButton {
2
- Done = "{done}",
3
- Enter = "{enter}",
4
- Shift = "{shift}",
5
- Lock = "{lock}",
6
- Backspace = "{bksp}",
7
- Language = "{language}",
8
- Space = "{space}",
9
- Tab = "{tab}"
10
- }
11
- export declare enum SystelabVirtualKeyboardLayouts {
12
- default = "default",
13
- shift = "shift",
14
- numeric = "numeric"
15
- }
16
- export declare enum SystelabVirtualKeyboardInputMethods {
17
- onlyMouseEvents = "onlyMouseEvents",
18
- onlyTouchEvents = "onlyTouchEvents"
19
- }
20
- export declare enum SystelabVirtualKeyboardInputModes {
21
- text = "text",
22
- numeric = "numeric",
23
- password = "password"
24
- }
25
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../projects/systelab-virtual-keyboard/src/lib/constants.ts"],"names":[],"mappings":"AASA,oBAAY,6BAA6B;IACrC,IAAI,WAAW;IACf,KAAK,YAAY;IACjB,KAAK,YAAY;IACjB,IAAI,WAAW;IACf,SAAS,WAAW;IACpB,QAAQ,eAAe;IACvB,KAAK,YAAY;IACjB,GAAG,UAAU;CAChB;AAED,oBAAY,8BAA8B;IACtC,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;CACtB;AAED,oBAAY,mCAAmC;IAC3C,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;CACtC;AAED,oBAAY,iCAAiC;IACzC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,QAAQ,aAAa;CACxB"}
@@ -1,38 +0,0 @@
1
- import { Overlay } from '@angular/cdk/overlay';
2
- import { ComponentRef } from '@angular/core';
3
- import { SystelabVirtualKeyboardLayouts } from './constants';
4
- import { SystelabVirtualKeyboardComponent } from './systelab-virtual-keyboard.component';
5
- import * as i0 from "@angular/core";
6
- export declare class SystelabVirtualKeyboardOverlayService {
7
- private readonly overlay;
8
- private overlayRef;
9
- private inputOrigin;
10
- private fixedBottom;
11
- private showKeyboardButtonElement;
12
- private open;
13
- private layout;
14
- private clickAlreadyHandled;
15
- private touchEndAlreadyHandled;
16
- constructor(overlay: Overlay);
17
- isCreated(): boolean;
18
- isOpen(): boolean;
19
- create(inputOrigin: HTMLInputElement, showKeyboardButtonElement: HTMLElement, fixedBottom: boolean, layout?: SystelabVirtualKeyboardLayouts): ComponentRef<SystelabVirtualKeyboardComponent>;
20
- updatePosition(): void;
21
- setClickAlreadyHandled(): void;
22
- setTouchEndAlreadyHandled(): void;
23
- destroy(): void;
24
- private initListener;
25
- private handleClick;
26
- private handleTouchEnd;
27
- private handleEventTarget;
28
- hasAttached(): boolean;
29
- private updatePositionStrategy;
30
- private updateSize;
31
- private getPositionStrategy;
32
- private getOverlaySize;
33
- private computePositionStrategyOrigin;
34
- private computeOverlayOffsetX;
35
- static ɵfac: i0.ɵɵFactoryDeclaration<SystelabVirtualKeyboardOverlayService, never>;
36
- static ɵprov: i0.ɵɵInjectableDeclaration<SystelabVirtualKeyboardOverlayService>;
37
- }
38
- //# sourceMappingURL=systelab-virtual-keyboard-overlay.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"systelab-virtual-keyboard-overlay.service.d.ts","sourceRoot":"","sources":["../../../projects/systelab-virtual-keyboard/src/lib/systelab-virtual-keyboard-overlay.service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAmD,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,YAAY,EAAc,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;;AASzF,qBAGa,qCAAqC;IAUlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,yBAAyB,CAAc;IAC/C,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,sBAAsB,CAAkB;gBAEnB,OAAO,EAAE,OAAO;IAItC,SAAS,IAAI,OAAO;IAIpB,MAAM,IAAI,OAAO;IAIjB,MAAM,CACT,WAAW,EAAE,gBAAgB,EAC7B,yBAAyB,EAAE,WAAW,EACtC,WAAW,EAAE,OAAO,EACpB,MAAM,GAAE,8BAAuE,GAChF,YAAY,CAAC,gCAAgC,CAAC;IAuB1C,cAAc,IAAI,IAAI;IAItB,sBAAsB,IAAI,IAAI;IAI9B,yBAAyB,IAAI,IAAI;IAIjC,OAAO,IAAI,IAAI;IAQtB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,iBAAiB;IAgBlB,WAAW,IAAI,OAAO;IAI7B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,6BAA6B;IAarC,OAAO,CAAC,qBAAqB;yCA/LpB,qCAAqC;6CAArC,qCAAqC;CAwMjD"}
@@ -1,43 +0,0 @@
1
- import { AfterViewInit, ElementRef, EventEmitter } from '@angular/core';
2
- import { SystelabVirtualKeyboardLayouts } from './constants';
3
- import { SystelabVirtualKeyboardConfig } from './systelab-virtual-keyboard.config';
4
- import * as i0 from "@angular/core";
5
- export declare class SystelabVirtualKeyboardComponent implements AfterViewInit {
6
- private elementRef;
7
- private virtualKeyboardConfig;
8
- handleKeyUp(event: KeyboardEvent): void;
9
- handleMouseUp(event: PointerEvent): void;
10
- get maxLength(): number;
11
- get isTextarea(): boolean;
12
- debug: boolean;
13
- private selectedLayout;
14
- private keyboard;
15
- private caretPosition;
16
- private caretPositionEnd;
17
- private activeInputElement;
18
- private shiftPressed;
19
- closePanel: EventEmitter<void>;
20
- constructor(elementRef: ElementRef<HTMLInputElement>, virtualKeyboardConfig: SystelabVirtualKeyboardConfig);
21
- ngAfterViewInit(): void;
22
- setActiveInput(input: HTMLInputElement | HTMLTextAreaElement): void;
23
- setLayout(layout: SystelabVirtualKeyboardLayouts): void;
24
- private prepareKeyboardConfig;
25
- private handleKeyPress;
26
- private handleButtonOutput;
27
- private getCommonParams;
28
- private isAcceptedNonStandardButton;
29
- private dispatchEvents;
30
- private convertFromButtonToCode;
31
- private toggleShiftLayout;
32
- private isStandardButton;
33
- private removeAt;
34
- private addStringAt;
35
- private caretEventHandler;
36
- private focusActiveInput;
37
- private updateCaretPosition;
38
- private computeNewCaretPosition;
39
- private setCaretPosition;
40
- static ɵfac: i0.ɵɵFactoryDeclaration<SystelabVirtualKeyboardComponent, [null, { optional: true; }]>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<SystelabVirtualKeyboardComponent, "systelab-virtual-keyboard.component", never, {}, { "closePanel": "closePanel"; }, never, never, true, never>;
42
- }
43
- //# sourceMappingURL=systelab-virtual-keyboard.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"systelab-virtual-keyboard.component.d.ts","sourceRoot":"","sources":["../../../projects/systelab-virtual-keyboard/src/lib/systelab-virtual-keyboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAEb,UAAU,EACV,YAAY,EAKf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAGH,8BAA8B,EACjC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,6BAA6B,EAA2B,MAAM,oCAAoC,CAAC;;AAG5G,qBAOa,gCAAiC,YAAW,aAAa;IAgCtD,OAAO,CAAC,UAAU;IAA6E,OAAO,CAAC,qBAAqB;IA9BxI,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAQvC,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIxC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAEM,KAAK,UAAS;IACrB,OAAO,CAAC,cAAc,CAA0E;IAChG,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,kBAAkB,CAAiD;IAC3E,OAAO,CAAC,YAAY,CAAkB;IAE5B,UAAU,qBAA4B;gBAE5B,UAAU,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAuD,qBAAqB,EAAE,6BAA6B;IAGvK,eAAe;IA2BR,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,IAAI;IAiBnE,SAAS,CAAC,MAAM,EAAE,8BAA8B,GAAG,IAAI;IAS9D,OAAO,CAAC,qBAAqB;IAoD7B,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,QAAQ;IA6BhB,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,gBAAgB;yCAzYf,gCAAgC;2CAAhC,gCAAgC;CA6Y5C"}
@@ -1,10 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { SystelabVirtualKeyboardInputMethods, SystelabVirtualKeyboardLayouts } from './constants';
3
- export declare const VIRTUAL_KEYBOARD_CONFIG: InjectionToken<SystelabVirtualKeyboardConfig>;
4
- export interface SystelabVirtualKeyboardConfig {
5
- layout?: SystelabVirtualKeyboardLayouts;
6
- inputMethod?: SystelabVirtualKeyboardInputMethods;
7
- showIcon?: boolean;
8
- showOnMouseClick?: boolean;
9
- }
10
- //# sourceMappingURL=systelab-virtual-keyboard.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"systelab-virtual-keyboard.config.d.ts","sourceRoot":"","sources":["../../../projects/systelab-virtual-keyboard/src/lib/systelab-virtual-keyboard.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,mCAAmC,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAElG,eAAO,MAAM,uBAAuB,+CAA+E,CAAC;AAEpH,MAAM,WAAW,6BAA6B;IAC1C,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACxC,WAAW,CAAC,EAAE,mCAAmC,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
@@ -1,44 +0,0 @@
1
- import { AfterViewInit, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';
2
- import { SystelabVirtualKeyboardOverlayService } from './systelab-virtual-keyboard-overlay.service';
3
- import { SystelabVirtualKeyboardConfig } from './systelab-virtual-keyboard.config';
4
- import * as i0 from "@angular/core";
5
- export declare class SystelabVirtualKeyboardDirective implements OnInit, AfterViewInit, OnDestroy {
6
- private readonly elementRef;
7
- private readonly overlayService;
8
- private readonly renderer;
9
- private readonly document;
10
- private virtualKeyboardConfig;
11
- onDocumentScroll(): void;
12
- onClick(): void;
13
- onTouchEnd(): void;
14
- private enabled;
15
- set vkEnabled(enabled: boolean | string);
16
- get vkEnabled(): boolean;
17
- private fixedBottom;
18
- get vkFixedBottom(): boolean;
19
- set vkFixedBottom(fixedBottom: boolean | string);
20
- private debug;
21
- get vkDebug(): boolean;
22
- set vkDebug(debug: boolean);
23
- private config;
24
- get vkConfig(): SystelabVirtualKeyboardConfig;
25
- set vkConfig(config: SystelabVirtualKeyboardConfig);
26
- private panelRef;
27
- private showKeyboardButtonElement;
28
- constructor(elementRef: ElementRef<HTMLInputElement>, overlayService: SystelabVirtualKeyboardOverlayService, renderer: Renderer2, document: any, virtualKeyboardConfig: SystelabVirtualKeyboardConfig);
29
- ngOnInit(): void;
30
- ngAfterViewInit(): void;
31
- ngOnDestroy(): void;
32
- private togglePanel;
33
- private openPanel;
34
- private getLayout;
35
- private isInputAlphabetic;
36
- private isInputNumeric;
37
- private getInputMode;
38
- private closePanel;
39
- private inputOrigin;
40
- private attachKeyboardIcon;
41
- static ɵfac: i0.ɵɵFactoryDeclaration<SystelabVirtualKeyboardDirective, [null, null, null, null, { optional: true; }]>;
42
- static ɵdir: i0.ɵɵDirectiveDeclaration<SystelabVirtualKeyboardDirective, "input[vkEnabled], textarea[vkEnabled]", never, { "vkEnabled": { "alias": "vkEnabled"; "required": false; }; "vkFixedBottom": { "alias": "vkFixedBottom"; "required": false; }; "vkDebug": { "alias": "vkDebug"; "required": false; }; "vkConfig": { "alias": "vkConfig"; "required": false; }; }, {}, never, never, false, never>;
43
- }
44
- //# sourceMappingURL=systelab-virtual-keyboard.directive.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"systelab-virtual-keyboard.directive.d.ts","sourceRoot":"","sources":["../../../projects/systelab-virtual-keyboard/src/lib/systelab-virtual-keyboard.directive.ts"],"names":[],"mappings":"AASA,OAAO,EACH,aAAa,EAGb,UAAU,EAIV,SAAS,EACT,MAAM,EAEN,SAAS,EACZ,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,6BAA6B,EAA2B,MAAM,oCAAoC,CAAC;;AAE5G,qBAGa,gCAAiC,YAAW,MAAM,EAAE,aAAa,EAAE,SAAS;IA0FjF,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACE,OAAO,CAAC,qBAAqB;IAzF9E,gBAAgB;IAQhB,OAAO,IAAI,IAAI;IAWf,UAAU,IAAI,IAAI;IAUlB,OAAO,CAAC,OAAO,CAAS;IAExB,IACI,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAMtC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,OAAO,CAAC,WAAW,CAAS;IAE5B,IACI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,EAM9C;IAED,OAAO,CAAC,KAAK,CAAS;IAEtB,IACI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,OAAO,CAAC,MAAM,CAAgC;IAE9C,IACI,QAAQ,IAAI,6BAA6B,CAE5C;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE,6BAA6B,EAEjD;IAED,OAAO,CAAC,QAAQ,CAAkD;IAClE,OAAO,CAAC,yBAAyB,CAAc;gBAG1B,UAAU,EAAE,UAAU,CAAC,gBAAgB,CAAC,EACxC,cAAc,EAAE,qCAAqC,EACrD,QAAQ,EAAE,SAAS,EACD,QAAQ,EAAE,GAAG,EACK,qBAAqB,EAAE,6BAA6B;IAK7G,QAAQ;IAMR,eAAe;IAOf,WAAW,IAAI,IAAI;IAQnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;yCA1LjB,gCAAgC;2CAAhC,gCAAgC;CAoM5C"}
@@ -1,15 +0,0 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import { SystelabVirtualKeyboardConfig } from './systelab-virtual-keyboard.config';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./systelab-virtual-keyboard.directive";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/cdk/overlay";
7
- export declare const factory: () => void;
8
- export declare class SystelabVirtualKeyboardModule {
9
- static forRoot(conf?: SystelabVirtualKeyboardConfig): ModuleWithProviders<SystelabVirtualKeyboardModule>;
10
- static forChild(): ModuleWithProviders<SystelabVirtualKeyboardModule>;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<SystelabVirtualKeyboardModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<SystelabVirtualKeyboardModule, [typeof i1.SystelabVirtualKeyboardDirective], [typeof i2.CommonModule, typeof i3.OverlayModule], [typeof i1.SystelabVirtualKeyboardDirective]>;
13
- static ɵinj: i0.ɵɵInjectorDeclaration<SystelabVirtualKeyboardModule>;
14
- }
15
- //# sourceMappingURL=systelab-virtual-keyboard.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"systelab-virtual-keyboard.module.d.ts","sourceRoot":"","sources":["../../../projects/systelab-virtual-keyboard/src/lib/systelab-virtual-keyboard.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAY,MAAM,eAAe,CAAC;AAI9D,OAAO,EAAE,6BAA6B,EAA2B,MAAM,oCAAoC,CAAC;;;;;AAG5G,eAAO,MAAM,OAAO,YAMnB,CAAC;AAEF,qBAKa,6BAA6B;WACxB,OAAO,CAAC,IAAI,CAAC,EAAE,6BAA6B,GAAG,mBAAmB,CAAC,6BAA6B,CAAC;WAYjG,QAAQ,IAAI,mBAAmB,CAAC,6BAA6B,CAAC;yCAbnE,6BAA6B;0CAA7B,6BAA6B;0CAA7B,6BAA6B;CAmBzC"}
package/public-api.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export * from './lib/constants';
2
- export { SystelabVirtualKeyboardConfig } from './lib/systelab-virtual-keyboard.config';
3
- export * from './lib/systelab-virtual-keyboard.directive';
4
- export * from './lib/systelab-virtual-keyboard.module';
5
- //# sourceMappingURL=public-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../projects/systelab-virtual-keyboard/src/public-api.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"systelab-virtual-keyboard.d.ts","sourceRoot":"","sources":["../../projects/systelab-virtual-keyboard/src/systelab-virtual-keyboard.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}