ngx-touch-keyboard 2.3.0 → 2.3.2
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/README.md +2 -2
- package/esm2020/lib/ngx-touch-keyboard.component.mjs +4 -4
- package/esm2020/lib/ngx-touch-keyboard.directive.mjs +8 -4
- package/esm2020/lib/ngx-touch-keyboard.module.mjs +4 -4
- package/fesm2015/ngx-touch-keyboard.mjs +15 -11
- package/fesm2015/ngx-touch-keyboard.mjs.map +1 -1
- package/fesm2020/ngx-touch-keyboard.mjs +15 -11
- package/fesm2020/ngx-touch-keyboard.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ Virtual Keyboard for Angular applications.
|
|
|
17
17
|
### Step 1: Install [ngx-touch-keyboard](https://www.npmjs.com/package/ngx-touch-keyboard)
|
|
18
18
|
|
|
19
19
|
```sh
|
|
20
|
-
npm install ngx-touch-keyboard
|
|
20
|
+
npm install @angular/cdk ngx-touch-keyboard
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### Step 2: Import the module
|
|
@@ -121,7 +121,7 @@ Here's the list of all available methods:
|
|
|
121
121
|
* `default`: white theme
|
|
122
122
|
* `dark`: dark theme
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
You must put the class `dark` in the body to use the `dark` theme.
|
|
125
125
|
|
|
126
126
|
### Create custom theme
|
|
127
127
|
|
|
@@ -593,11 +593,11 @@ export class NgxTouchKeyboardComponent {
|
|
|
593
593
|
}
|
|
594
594
|
}
|
|
595
595
|
}
|
|
596
|
-
NgxTouchKeyboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
597
|
-
NgxTouchKeyboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
596
|
+
NgxTouchKeyboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.ElementRef }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
597
|
+
NgxTouchKeyboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgxTouchKeyboardComponent, selector: "ngx-touch-keyboard", outputs: { closePanel: "closePanel" }, host: { listeners: { "window:keyup": "handleKeyUp($event)", "window:keydown": "handleKeyDown($event)", "window:pointerup": "handleMouseUp($event)", "window:select": "handleSelect($event)", "window:selectionchange": "handleSelectionChange($event)" } }, ngImport: i0, template: "<div dir=\"ltr\" class=\"touch-keyboard\" [ngClass]=\"'layout-' + layoutName\">\r\n <ng-container\r\n *ngFor=\"\r\n let row of locale.layouts[layoutMode + '_' + layoutName];\r\n let rowIndex = index\r\n \"\r\n >\r\n <div class=\"touch-keyboard-row\">\r\n <ng-container *ngFor=\"let key of row; let keyIndex = index\">\r\n <button\r\n [name]=\"key\"\r\n [dir]=\"locale.dir\"\r\n class=\"touch-keyboard-key\"\r\n [ngClass]=\"[getButtonClass(key)]\"\r\n [attr.data-layout]=\"layoutName\"\r\n (pointerdown)=\"\r\n handleButtonClicked(key, $event); handleButtonMouseDown(key, $event)\r\n \"\r\n (pointerup)=\"handleButtonMouseUp(key, $event)\"\r\n (pointercancel)=\"handleButtonMouseUp(key, $event)\"\r\n [innerHtml]=\"getButtonDisplayName(key)\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}:root{--tk-color-text: #27272a;--tk-background: rgba(238, 238, 238, .87);--tk-background-button: rgba(255, 255, 255, .96);--tk-background-button-fn: rgba(255, 255, 255, .5);--tk-background-button-active: rgba(0, 0, 0, .04)}.dark{--tk-color-text: #ffffff;--tk-background: rgba(33, 33, 33, .87);--tk-background-button: rgba(66, 66, 66, .96);--tk-background-button-fn: rgba(66, 66, 66, .5);--tk-background-button-active: rgba(255, 255, 255, .2)}ngx-touch-keyboard{width:100%;padding:.25rem .25rem .375rem;border-radius:.375rem;touch-action:manipulation;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--tk-background);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.ngx-touch-keyboard-fullScreen>ngx-touch-keyboard{border-radius:0}.touch-keyboard{flex:1 1 auto;max-width:840px}.touch-keyboard .touch-keyboard-row{display:flex;flex-direction:row}.touch-keyboard .touch-keyboard-row:not(:last-child){margin-bottom:.25rem}.touch-keyboard .touch-keyboard-key{width:20px;box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;text-align:center;margin:0;line-height:32px;padding:.25rem;border-radius:.375rem;font-size:14px;font-weight:500;display:flex;flex-grow:1;align-items:center;justify-content:center;color:var(--tk-color-text);background-color:var(--tk-background-button);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.touch-keyboard .touch-keyboard-key>svg{fill:var(--tk-color-text)}.touch-keyboard .touch-keyboard-key.function-key:not(.space-key){background-color:var(--tk-background-button-fn)}.touch-keyboard .touch-keyboard-key.active{background-color:var(--tk-background-button-active)!important}.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.language-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:4rem}.touch-keyboard .touch-keyboard-key.space-key{min-width:40%}.touch-keyboard .touch-keyboard-key[data-layout=numeric],.touch-keyboard .touch-keyboard-key[data-layout=decimal],.touch-keyboard .touch-keyboard-key[data-layout=tel]{width:33%;max-width:none}.touch-keyboard .touch-keyboard-key:not(:last-child){margin-right:.25rem}@media (min-width: 600px){.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:6rem}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
598
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardComponent, decorators: [{
|
|
599
599
|
type: Component,
|
|
600
|
-
args: [{ selector: 'ngx-touch-keyboard', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div dir=\"ltr\" class=\"touch-keyboard\" [ngClass]=\"'layout-' + layoutName\">\r\n <ng-container\r\n *ngFor=\"\r\n let row of locale.layouts[layoutMode + '_' + layoutName];\r\n let rowIndex = index\r\n \"\r\n >\r\n <div class=\"touch-keyboard-row\">\r\n <ng-container *ngFor=\"let key of row; let keyIndex = index\">\r\n <button\r\n [name]=\"key\"\r\n [dir]=\"locale.dir\"\r\n class=\"touch-keyboard-key\"\r\n [ngClass]=\"[getButtonClass(key)]\"\r\n [attr.data-layout]=\"layoutName\"\r\n (pointerdown)=\"\r\n handleButtonClicked(key, $event); handleButtonMouseDown(key, $event)\r\n \"\r\n (pointerup)=\"handleButtonMouseUp(key, $event)\"\r\n (pointercancel)=\"handleButtonMouseUp(key, $event)\"\r\n [innerHtml]=\"getButtonDisplayName(key)\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [":root{--tk-color-text: #27272a;--tk-background: rgba(238, 238, 238, .87);--tk-background-button: rgba(255, 255, 255, .96);--tk-background-button-fn: rgba(255, 255, 255, .5);--tk-background-button-active: rgba(0, 0, 0, .04)}.dark{--tk-color-text: #ffffff;--tk-background: rgba(33, 33, 33, .87);--tk-background-button: rgba(66, 66, 66, .96);--tk-background-button-fn: rgba(66, 66, 66, .5);--tk-background-button-active: rgba(255, 255, 255, .2)}ngx-touch-keyboard{width:100%;padding:.25rem .25rem .375rem;border-radius:.375rem;touch-action:manipulation;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--tk-background);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.touch-keyboard{flex:1 1 auto;max-width:840px}.touch-keyboard .touch-keyboard-row{display:flex;flex-direction:row}.touch-keyboard .touch-keyboard-row:not(:last-child){margin-bottom:.25rem}.touch-keyboard .touch-keyboard-key{width:20px;box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;text-align:center;margin:0;line-height:32px;padding:.25rem;border-radius:.375rem;font-size:14px;font-weight:500;display:flex;flex-grow:1;align-items:center;justify-content:center;color:var(--tk-color-text);background-color:var(--tk-background-button);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.touch-keyboard .touch-keyboard-key>svg{fill:var(--tk-color-text)}.touch-keyboard .touch-keyboard-key.function-key:not(.space-key){background-color:var(--tk-background-button-fn)}.touch-keyboard .touch-keyboard-key.active{background-color:var(--tk-background-button-active)!important}.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.language-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:4rem}.touch-keyboard .touch-keyboard-key.space-key{min-width:40%}.touch-keyboard .touch-keyboard-key[data-layout=numeric],.touch-keyboard .touch-keyboard-key[data-layout=decimal],.touch-keyboard .touch-keyboard-key[data-layout=tel]{width:33%;max-width:none}.touch-keyboard .touch-keyboard-key:not(:last-child){margin-right:.25rem}@media (min-width: 600px){.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:6rem}}\n"] }]
|
|
600
|
+
args: [{ selector: 'ngx-touch-keyboard', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div dir=\"ltr\" class=\"touch-keyboard\" [ngClass]=\"'layout-' + layoutName\">\r\n <ng-container\r\n *ngFor=\"\r\n let row of locale.layouts[layoutMode + '_' + layoutName];\r\n let rowIndex = index\r\n \"\r\n >\r\n <div class=\"touch-keyboard-row\">\r\n <ng-container *ngFor=\"let key of row; let keyIndex = index\">\r\n <button\r\n [name]=\"key\"\r\n [dir]=\"locale.dir\"\r\n class=\"touch-keyboard-key\"\r\n [ngClass]=\"[getButtonClass(key)]\"\r\n [attr.data-layout]=\"layoutName\"\r\n (pointerdown)=\"\r\n handleButtonClicked(key, $event); handleButtonMouseDown(key, $event)\r\n \"\r\n (pointerup)=\"handleButtonMouseUp(key, $event)\"\r\n (pointercancel)=\"handleButtonMouseUp(key, $event)\"\r\n [innerHtml]=\"getButtonDisplayName(key)\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}:root{--tk-color-text: #27272a;--tk-background: rgba(238, 238, 238, .87);--tk-background-button: rgba(255, 255, 255, .96);--tk-background-button-fn: rgba(255, 255, 255, .5);--tk-background-button-active: rgba(0, 0, 0, .04)}.dark{--tk-color-text: #ffffff;--tk-background: rgba(33, 33, 33, .87);--tk-background-button: rgba(66, 66, 66, .96);--tk-background-button-fn: rgba(66, 66, 66, .5);--tk-background-button-active: rgba(255, 255, 255, .2)}ngx-touch-keyboard{width:100%;padding:.25rem .25rem .375rem;border-radius:.375rem;touch-action:manipulation;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--tk-background);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.ngx-touch-keyboard-fullScreen>ngx-touch-keyboard{border-radius:0}.touch-keyboard{flex:1 1 auto;max-width:840px}.touch-keyboard .touch-keyboard-row{display:flex;flex-direction:row}.touch-keyboard .touch-keyboard-row:not(:last-child){margin-bottom:.25rem}.touch-keyboard .touch-keyboard-key{width:20px;box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;text-align:center;margin:0;line-height:32px;padding:.25rem;border-radius:.375rem;font-size:14px;font-weight:500;display:flex;flex-grow:1;align-items:center;justify-content:center;color:var(--tk-color-text);background-color:var(--tk-background-button);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.touch-keyboard .touch-keyboard-key>svg{fill:var(--tk-color-text)}.touch-keyboard .touch-keyboard-key.function-key:not(.space-key){background-color:var(--tk-background-button-fn)}.touch-keyboard .touch-keyboard-key.active{background-color:var(--tk-background-button-active)!important}.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.language-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:4rem}.touch-keyboard .touch-keyboard-key.space-key{min-width:40%}.touch-keyboard .touch-keyboard-key[data-layout=numeric],.touch-keyboard .touch-keyboard-key[data-layout=decimal],.touch-keyboard .touch-keyboard-key[data-layout=tel]{width:33%;max-width:none}.touch-keyboard .touch-keyboard-key:not(:last-child){margin-right:.25rem}@media (min-width: 600px){.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:6rem}}\n"] }]
|
|
601
601
|
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
602
602
|
type: Inject,
|
|
603
603
|
args: [LOCALE_ID]
|
|
@@ -63,6 +63,10 @@ export class NgxTouchKeyboardDirective {
|
|
|
63
63
|
if (!this._overlayRef) {
|
|
64
64
|
this._createOverlay();
|
|
65
65
|
}
|
|
66
|
+
// Set overlay class
|
|
67
|
+
this._overlayRef.addPanelClass('ngx-touch-keyboard-overlay-pane');
|
|
68
|
+
if (this.ngxTouchKeyboardFullScreen)
|
|
69
|
+
this._overlayRef.addPanelClass('ngx-touch-keyboard-fullScreen');
|
|
66
70
|
// Update direction the overlay
|
|
67
71
|
this._overlayRef.setDirection(this._document.body.getAttribute('dir') || this._document.dir || 'ltr');
|
|
68
72
|
// Update position the overlay
|
|
@@ -193,9 +197,9 @@ export class NgxTouchKeyboardDirective {
|
|
|
193
197
|
return element;
|
|
194
198
|
}
|
|
195
199
|
}
|
|
196
|
-
NgxTouchKeyboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
197
|
-
NgxTouchKeyboardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
200
|
+
NgxTouchKeyboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardDirective, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
|
|
201
|
+
NgxTouchKeyboardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgxTouchKeyboardDirective, selector: "input[ngxTouchKeyboard], textarea[ngxTouchKeyboard]", inputs: { ngxTouchKeyboard: "ngxTouchKeyboard", ngxTouchKeyboardDebug: "ngxTouchKeyboardDebug", ngxTouchKeyboardFullScreen: "ngxTouchKeyboardFullScreen" }, exportAs: ["ngxTouchKeyboard"], ngImport: i0 });
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardDirective, decorators: [{
|
|
199
203
|
type: Directive,
|
|
200
204
|
args: [{
|
|
201
205
|
selector: 'input[ngxTouchKeyboard], textarea[ngxTouchKeyboard]',
|
|
@@ -211,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
211
215
|
}], ngxTouchKeyboardFullScreen: [{
|
|
212
216
|
type: Input
|
|
213
217
|
}] } });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRvdWNoLWtleWJvYXJkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10b3VjaC1rZXlib2FyZC9zcmMvbGliL25neC10b3VjaC1rZXlib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFPOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQU0zRSxNQUFNLE9BQU8seUJBQXlCO0lBb0NwQzs7T0FFRztJQUNILFlBQ1UsUUFBaUIsRUFDakIsV0FBeUMsRUFDdkIsU0FBYztRQUZoQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBekMxQyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBMENaLENBQUM7SUF2Q0osYUFBYTtJQUNiLElBQ0ksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxpQkFBaUI7SUFDakIsSUFDSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLHFCQUFxQixDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxL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RGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHtcclxuICBPdmVybGF5LFxyXG4gIE92ZXJsYXlSZWYsXHJcbiAgT3ZlcmxheVNpemVDb25maWcsXHJcbiAgUG9zaXRpb25TdHJhdGVneSxcclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQgfSBmcm9tICcuL25neC10b3VjaC1rZXlib2FyZC5jb21wb25lbnQnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdpbnB1dFtuZ3hUb3VjaEtleWJvYXJkXSwgdGV4dGFyZWFbbmd4VG91Y2hLZXlib2FyZF0nLFxyXG4gIGV4cG9ydEFzOiAnbmd4VG91Y2hLZXlib2FyZCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUb3VjaEtleWJvYXJkRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBpc09wZW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfbG9jYWxlITogc3RyaW5nO1xyXG4gIC8qKiBsb2NhbGUgKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCBuZ3hUb3VjaEtleWJvYXJkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcclxuICB9XHJcbiAgc2V0IG5neFRvdWNoS2V5Ym9hcmQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fbG9jYWxlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZWJ1Z01vZGUhOiBib29sZWFuO1xyXG4gIC8qKiBkZWJ1ZyBtb2RlICovXHJcbiAgQElucHV0KClcclxuICBnZXQgbmd4VG91Y2hLZXlib2FyZERlYnVnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlYnVnTW9kZTtcclxuICB9XHJcbiAgc2V0IG5neFRvdWNoS2V5Ym9hcmREZWJ1Zyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9kZWJ1Z01vZGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZnVsbFNjcmVlbk1vZGUhOiBib29sZWFuO1xyXG4gIC8qKiBmdWxsc2NyZWVuIG1vZGUgKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCBuZ3hUb3VjaEtleWJvYXJkRnVsbFNjcmVlbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9mdWxsU2NyZWVuTW9kZTtcclxuICB9XHJcbiAgc2V0IG5neFRvdWNoS2V5Ym9hcmRGdWxsU2NyZWVuKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX2Z1bGxTY3JlZW5Nb2RlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xyXG4gIHByaXZhdGUgX3BhbmVsUmVmITogQ29tcG9uZW50UmVmPE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQ+O1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55XHJcbiAgKSB7fVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgTGlmZWN5Y2xlIGhvb2tzXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gZGVzdHJveVxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy8gRGlzcG9zZSB0aGUgb3ZlcmxheVxyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgUHVibGljIG1ldGhvZHNcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGtleWJvYXJkIHBhbmVsXHJcbiAgICovXHJcbiAgb3BlblBhbmVsKCk6IHZvaWQge1xyXG4gICAgLy8gcmV0dXJuIGlmIHBhbmVsIGlzIGF0dGFjaGVkXHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ3JlYXRlIHRoZSBvdmVybGF5IGlmIGl0IGRvZXNuJ3QgZXhpc3RcclxuICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIGRpcmVjdGlvbiB0aGUgb3ZlcmxheVxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5zZXREaXJlY3Rpb24oXHJcbiAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdkaXInKSB8fCB0aGlzLl9kb2N1bWVudC5kaXIgfHwgJ2x0cidcclxuICAgICk7XHJcbiAgICAvLyBVcGRhdGUgcG9zaXRpb24gdGhlIG92ZXJsYXlcclxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShcclxuICAgICAgdGhpcy5fZ2V0UG9zaXRpb25TdHJhdGVneSh0aGlzLm5neFRvdWNoS2V5Ym9hcmRGdWxsU2NyZWVuKVxyXG4gICAgKTtcclxuICAgIC8vIFVwZGF0ZSBzaXplIHRoZSBvdmVybGF5XHJcbiAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoXHJcbiAgICAgIHRoaXMuX2dldE92ZXJsYXlTaXplKHRoaXMubmd4VG91Y2hLZXlib2FyZEZ1bGxTY3JlZW4pXHJcbiAgICApO1xyXG5cclxuICAgIC8vIEF0dGFjaCB0aGUgcG9ydGFsIHRvIHRoZSBvdmVybGF5XHJcbiAgICB0aGlzLl9wYW5lbFJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKFxyXG4gICAgICBuZXcgQ29tcG9uZW50UG9ydGFsKE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5fcGFuZWxSZWYuaW5zdGFuY2UuZGVidWcgPSB0aGlzLm5neFRvdWNoS2V5Ym9hcmREZWJ1ZztcclxuICAgIHRoaXMuX3BhbmVsUmVmLmluc3RhbmNlLnNldExvY2FsZSh0aGlzLl9sb2NhbGUpO1xyXG4gICAgdGhpcy5fcGFuZWxSZWYuaW5zdGFuY2Uuc2V0QWN0aXZlSW5wdXQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBSZWZlcmVuY2UgdGhlIGlucHV0IGVsZW1lbnRcclxuICAgIHRoaXMuX3BhbmVsUmVmLmluc3RhbmNlLmNsb3NlUGFuZWwuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VQYW5lbCgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlIGtleWJvYXJkIHBhbmVsXHJcbiAgICovXHJcbiAgY2xvc2VQYW5lbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIGtleWJvYXJkIHBhbmVsXHJcbiAgICovXHJcbiAgdG9nZ2xlUGFuZWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcclxuICAgICAgdGhpcy5jbG9zZVBhbmVsKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW5QYW5lbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBAIFByaXZhdGUgbWV0aG9kc1xyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgb3ZlcmxheVxyXG4gICAqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIF9jcmVhdGVPdmVybGF5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHBvc2l0aW9uIHN0cmF0ZWd5XHJcbiAgICpcclxuICAgKiBAcGFyYW0gZnVsbHNjcmVlblxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2V0UG9zaXRpb25TdHJhdGVneShmdWxsc2NyZWVuOiBib29sZWFuKTogUG9zaXRpb25TdHJhdGVneSB7XHJcbiAgICBpZiAoZnVsbHNjcmVlbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmJvdHRvbSgnMCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9vdmVybGF5XHJcbiAgICAgIC5wb3NpdGlvbigpXHJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2lucHV0T3JpZ2luKCkpXHJcbiAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24odHJ1ZSlcclxuICAgICAgLndpdGhQdXNoKHRydWUpXHJcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXHJcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXHJcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcclxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcclxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgb3ZlcmxheSBzaXplXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZnVsbHNjcmVlblxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2V0T3ZlcmxheVNpemUoZnVsbHNjcmVlbjogYm9vbGVhbik6IE92ZXJsYXlTaXplQ29uZmlnIHtcclxuICAgIGlmIChmdWxsc2NyZWVuKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxyXG4gICAgICAgIG1pbldpZHRoOiAnMTAwJScsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgd2lkdGg6IHRoaXMuX2lucHV0T3JpZ2luKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXHJcbiAgICAgIG1heFdpZHRoOiB0aGlzLl9pbnB1dE9yaWdpbigpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLFxyXG4gICAgICBtaW5XaWR0aDogJzI2MHB4JyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgaW5wdXQgb3JpZ2luXHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2lucHV0T3JpZ2luKCk6IGFueSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIC8vIE1hdGVyaWFsIGZvcm0gZmllbGQgLSBDaGVjayBpbnB1dCBpbiBtYXQtZm9ybS1maWVsZFxyXG4gICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYXQtaW5wdXQtZWxlbWVudCcpKSB7XHJcbiAgICAgIC8vIFJldHVybiBbbWF0LWZvcm0tZmllbGQtZmxleF0gZWxlbWVudFxyXG4gICAgICByZXR1cm4gZWxlbWVudC5wYXJlbnROb2RlPy5wYXJlbnROb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE1hdGVyaWFsIGZvcm0gZmllbGQgLSBDaGVjayBpbnB1dCBpbiBtYXQtZm9ybS1maWVsZFxyXG4gICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYXQtbWRjLWlucHV0LWVsZW1lbnQnKSkge1xyXG4gICAgICAvLyBSZXR1cm4gW21hdC1mb3JtLWZpZWxkXSBlbGVtZW50XHJcbiAgICAgIHJldHVybiBlbGVtZW50LnBhcmVudE5vZGU/LnBhcmVudE5vZGU/LnBhcmVudE5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJuIGlucHV0XHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxuICB9XHJcbn1cclxuIl19
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRvdWNoLWtleWJvYXJkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10b3VjaC1rZXlib2FyZC9zcmMvbGliL25neC10b3VjaC1rZXlib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFPOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQU0zRSxNQUFNLE9BQU8seUJBQXlCO0lBb0NwQzs7T0FFRztJQUNILFlBQ1UsUUFBaUIsRUFDakIsV0FBeUMsRUFDdkIsU0FBYztRQUZoQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBekMxQyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBMENaLENBQUM7SUF2Q0osYUFBYTtJQUNiLElBQ0ksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxpQkFBaUI7SUFDakIsSUFDSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLHFCQUFxQixDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxL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SSxNQUFNOzJCQUFDLFFBQVE7NENBcENkLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFXRixxQkFBcUI7c0JBRHhCLEtBQUs7Z0JBV0YsMEJBQTBCO3NCQUQ3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnRSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHtcclxuICBPdmVybGF5LFxyXG4gIE92ZXJsYXlSZWYsXHJcbiAgT3ZlcmxheVNpemVDb25maWcsXHJcbiAgUG9zaXRpb25TdHJhdGVneSxcclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQgfSBmcm9tICcuL25neC10b3VjaC1rZXlib2FyZC5jb21wb25lbnQnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdpbnB1dFtuZ3hUb3VjaEtleWJvYXJkXSwgdGV4dGFyZWFbbmd4VG91Y2hLZXlib2FyZF0nLFxyXG4gIGV4cG9ydEFzOiAnbmd4VG91Y2hLZXlib2FyZCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUb3VjaEtleWJvYXJkRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBpc09wZW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfbG9jYWxlITogc3RyaW5nO1xyXG4gIC8qKiBsb2NhbGUgKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCBuZ3hUb3VjaEtleWJvYXJkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcclxuICB9XHJcbiAgc2V0IG5neFRvdWNoS2V5Ym9hcmQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fbG9jYWxlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZWJ1Z01vZGUhOiBib29sZWFuO1xyXG4gIC8qKiBkZWJ1ZyBtb2RlICovXHJcbiAgQElucHV0KClcclxuICBnZXQgbmd4VG91Y2hLZXlib2FyZERlYnVnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlYnVnTW9kZTtcclxuICB9XHJcbiAgc2V0IG5neFRvdWNoS2V5Ym9hcmREZWJ1Zyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9kZWJ1Z01vZGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZnVsbFNjcmVlbk1vZGUhOiBib29sZWFuO1xyXG4gIC8qKiBmdWxsc2NyZWVuIG1vZGUgKi9cclxuICBASW5wdXQoKVxyXG4gIGdldCBuZ3hUb3VjaEtleWJvYXJkRnVsbFNjcmVlbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9mdWxsU2NyZWVuTW9kZTtcclxuICB9XHJcbiAgc2V0IG5neFRvdWNoS2V5Ym9hcmRGdWxsU2NyZWVuKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX2Z1bGxTY3JlZW5Nb2RlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xyXG4gIHByaXZhdGUgX3BhbmVsUmVmITogQ29tcG9uZW50UmVmPE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQ+O1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55XHJcbiAgKSB7fVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgTGlmZWN5Y2xlIGhvb2tzXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gZGVzdHJveVxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy8gRGlzcG9zZSB0aGUgb3ZlcmxheVxyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgUHVibGljIG1ldGhvZHNcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGtleWJvYXJkIHBhbmVsXHJcbiAgICovXHJcbiAgb3BlblBhbmVsKCk6IHZvaWQge1xyXG4gICAgLy8gcmV0dXJuIGlmIHBhbmVsIGlzIGF0dGFjaGVkXHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ3JlYXRlIHRoZSBvdmVybGF5IGlmIGl0IGRvZXNuJ3QgZXhpc3RcclxuICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2V0IG92ZXJsYXkgY2xhc3NcclxuICAgIHRoaXMuX292ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcygnbmd4LXRvdWNoLWtleWJvYXJkLW92ZXJsYXktcGFuZScpO1xyXG4gICAgaWYgKHRoaXMubmd4VG91Y2hLZXlib2FyZEZ1bGxTY3JlZW4pXHJcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcygnbmd4LXRvdWNoLWtleWJvYXJkLWZ1bGxTY3JlZW4nKTtcclxuXHJcbiAgICAvLyBVcGRhdGUgZGlyZWN0aW9uIHRoZSBvdmVybGF5XHJcbiAgICB0aGlzLl9vdmVybGF5UmVmLnNldERpcmVjdGlvbihcclxuICAgICAgdGhpcy5fZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGUoJ2RpcicpIHx8IHRoaXMuX2RvY3VtZW50LmRpciB8fCAnbHRyJ1xyXG4gICAgKTtcclxuICAgIC8vIFVwZGF0ZSBwb3NpdGlvbiB0aGUgb3ZlcmxheVxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KFxyXG4gICAgICB0aGlzLl9nZXRQb3NpdGlvblN0cmF0ZWd5KHRoaXMubmd4VG91Y2hLZXlib2FyZEZ1bGxTY3JlZW4pXHJcbiAgICApO1xyXG4gICAgLy8gVXBkYXRlIHNpemUgdGhlIG92ZXJsYXlcclxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZShcclxuICAgICAgdGhpcy5fZ2V0T3ZlcmxheVNpemUodGhpcy5uZ3hUb3VjaEtleWJvYXJkRnVsbFNjcmVlbilcclxuICAgICk7XHJcblxyXG4gICAgLy8gQXR0YWNoIHRoZSBwb3J0YWwgdG8gdGhlIG92ZXJsYXlcclxuICAgIHRoaXMuX3BhbmVsUmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2goXHJcbiAgICAgIG5ldyBDb21wb25lbnRQb3J0YWwoTmd4VG91Y2hLZXlib2FyZENvbXBvbmVudClcclxuICAgICk7XHJcbiAgICB0aGlzLl9wYW5lbFJlZi5pbnN0YW5jZS5kZWJ1ZyA9IHRoaXMubmd4VG91Y2hLZXlib2FyZERlYnVnO1xyXG4gICAgdGhpcy5fcGFuZWxSZWYuaW5zdGFuY2Uuc2V0TG9jYWxlKHRoaXMuX2xvY2FsZSk7XHJcbiAgICB0aGlzLl9wYW5lbFJlZi5pbnN0YW5jZS5zZXRBY3RpdmVJbnB1dCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG5cclxuICAgIC8vIFJlZmVyZW5jZSB0aGUgaW5wdXQgZWxlbWVudFxyXG4gICAgdGhpcy5fcGFuZWxSZWYuaW5zdGFuY2UuY2xvc2VQYW5lbC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZVBhbmVsKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2Uga2V5Ym9hcmQgcGFuZWxcclxuICAgKi9cclxuICBjbG9zZVBhbmVsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGUga2V5Ym9hcmQgcGFuZWxcclxuICAgKi9cclxuICB0b2dnbGVQYW5lbCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzT3Blbikge1xyXG4gICAgICB0aGlzLmNsb3NlUGFuZWwoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlblBhbmVsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgUHJpdmF0ZSBtZXRob2RzXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSBvdmVybGF5XHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xyXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMubm9vcCgpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgcG9zaXRpb24gc3RyYXRlZ3lcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmdWxsc2NyZWVuXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIF9nZXRQb3NpdGlvblN0cmF0ZWd5KGZ1bGxzY3JlZW46IGJvb2xlYW4pOiBQb3NpdGlvblN0cmF0ZWd5IHtcclxuICAgIGlmIChmdWxsc2NyZWVuKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuYm90dG9tKCcwJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlcclxuICAgICAgLnBvc2l0aW9uKClcclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5faW5wdXRPcmlnaW4oKSlcclxuICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbih0cnVlKVxyXG4gICAgICAud2l0aFB1c2godHJ1ZSlcclxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcclxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXHJcbiAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcclxuICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcclxuICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcclxuICAgICAgICB9LFxyXG4gICAgICBdKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBvdmVybGF5IHNpemVcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmdWxsc2NyZWVuXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIF9nZXRPdmVybGF5U2l6ZShmdWxsc2NyZWVuOiBib29sZWFuKTogT3ZlcmxheVNpemVDb25maWcge1xyXG4gICAgaWYgKGZ1bGxzY3JlZW4pIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIG1heFdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgbWluV2lkdGg6ICcxMDAlJyxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB3aWR0aDogdGhpcy5faW5wdXRPcmlnaW4oKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxcclxuICAgICAgbWF4V2lkdGg6IHRoaXMuX2lucHV0T3JpZ2luKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXHJcbiAgICAgIG1pbldpZHRoOiAnMjYwcHgnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBpbnB1dCBvcmlnaW5cclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaW5wdXRPcmlnaW4oKTogYW55IHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgLy8gTWF0ZXJpYWwgZm9ybSBmaWVsZCAtIENoZWNrIGlucHV0IGluIG1hdC1mb3JtLWZpZWxkXHJcbiAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ21hdC1pbnB1dC1lbGVtZW50JykpIHtcclxuICAgICAgLy8gUmV0dXJuIFttYXQtZm9ybS1maWVsZC1mbGV4XSBlbGVtZW50XHJcbiAgICAgIHJldHVybiBlbGVtZW50LnBhcmVudE5vZGU/LnBhcmVudE5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWF0ZXJpYWwgZm9ybSBmaWVsZCAtIENoZWNrIGlucHV0IGluIG1hdC1mb3JtLWZpZWxkXHJcbiAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ21hdC1tZGMtaW5wdXQtZWxlbWVudCcpKSB7XHJcbiAgICAgIC8vIFJldHVybiBbbWF0LWZvcm0tZmllbGRdIGVsZW1lbnRcclxuICAgICAgcmV0dXJuIGVsZW1lbnQucGFyZW50Tm9kZT8ucGFyZW50Tm9kZT8ucGFyZW50Tm9kZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXR1cm4gaW5wdXRcclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -7,10 +7,10 @@ import { NgxTouchKeyboardComponent } from './ngx-touch-keyboard.component';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class NgxTouchKeyboardModule {
|
|
9
9
|
}
|
|
10
|
-
NgxTouchKeyboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
11
|
-
NgxTouchKeyboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
12
|
-
NgxTouchKeyboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
10
|
+
NgxTouchKeyboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
NgxTouchKeyboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardModule, declarations: [NgxTouchKeyboardDirective, NgxTouchKeyboardComponent], imports: [CommonModule, OverlayModule, PortalModule], exports: [NgxTouchKeyboardDirective, NgxTouchKeyboardComponent] });
|
|
12
|
+
NgxTouchKeyboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardModule, imports: [CommonModule, OverlayModule, PortalModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
declarations: [NgxTouchKeyboardDirective, NgxTouchKeyboardComponent],
|
|
@@ -998,11 +998,11 @@ class NgxTouchKeyboardComponent {
|
|
|
998
998
|
}
|
|
999
999
|
}
|
|
1000
1000
|
}
|
|
1001
|
-
NgxTouchKeyboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
1002
|
-
NgxTouchKeyboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
1003
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
1001
|
+
NgxTouchKeyboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.ElementRef }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
1002
|
+
NgxTouchKeyboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgxTouchKeyboardComponent, selector: "ngx-touch-keyboard", outputs: { closePanel: "closePanel" }, host: { listeners: { "window:keyup": "handleKeyUp($event)", "window:keydown": "handleKeyDown($event)", "window:pointerup": "handleMouseUp($event)", "window:select": "handleSelect($event)", "window:selectionchange": "handleSelectionChange($event)" } }, ngImport: i0, template: "<div dir=\"ltr\" class=\"touch-keyboard\" [ngClass]=\"'layout-' + layoutName\">\r\n <ng-container\r\n *ngFor=\"\r\n let row of locale.layouts[layoutMode + '_' + layoutName];\r\n let rowIndex = index\r\n \"\r\n >\r\n <div class=\"touch-keyboard-row\">\r\n <ng-container *ngFor=\"let key of row; let keyIndex = index\">\r\n <button\r\n [name]=\"key\"\r\n [dir]=\"locale.dir\"\r\n class=\"touch-keyboard-key\"\r\n [ngClass]=\"[getButtonClass(key)]\"\r\n [attr.data-layout]=\"layoutName\"\r\n (pointerdown)=\"\r\n handleButtonClicked(key, $event); handleButtonMouseDown(key, $event)\r\n \"\r\n (pointerup)=\"handleButtonMouseUp(key, $event)\"\r\n (pointercancel)=\"handleButtonMouseUp(key, $event)\"\r\n [innerHtml]=\"getButtonDisplayName(key)\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}:root{--tk-color-text: #27272a;--tk-background: rgba(238, 238, 238, .87);--tk-background-button: rgba(255, 255, 255, .96);--tk-background-button-fn: rgba(255, 255, 255, .5);--tk-background-button-active: rgba(0, 0, 0, .04)}.dark{--tk-color-text: #ffffff;--tk-background: rgba(33, 33, 33, .87);--tk-background-button: rgba(66, 66, 66, .96);--tk-background-button-fn: rgba(66, 66, 66, .5);--tk-background-button-active: rgba(255, 255, 255, .2)}ngx-touch-keyboard{width:100%;padding:.25rem .25rem .375rem;border-radius:.375rem;touch-action:manipulation;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--tk-background);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.ngx-touch-keyboard-fullScreen>ngx-touch-keyboard{border-radius:0}.touch-keyboard{flex:1 1 auto;max-width:840px}.touch-keyboard .touch-keyboard-row{display:flex;flex-direction:row}.touch-keyboard .touch-keyboard-row:not(:last-child){margin-bottom:.25rem}.touch-keyboard .touch-keyboard-key{width:20px;box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;text-align:center;margin:0;line-height:32px;padding:.25rem;border-radius:.375rem;font-size:14px;font-weight:500;display:flex;flex-grow:1;align-items:center;justify-content:center;color:var(--tk-color-text);background-color:var(--tk-background-button);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.touch-keyboard .touch-keyboard-key>svg{fill:var(--tk-color-text)}.touch-keyboard .touch-keyboard-key.function-key:not(.space-key){background-color:var(--tk-background-button-fn)}.touch-keyboard .touch-keyboard-key.active{background-color:var(--tk-background-button-active)!important}.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.language-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:4rem}.touch-keyboard .touch-keyboard-key.space-key{min-width:40%}.touch-keyboard .touch-keyboard-key[data-layout=numeric],.touch-keyboard .touch-keyboard-key[data-layout=decimal],.touch-keyboard .touch-keyboard-key[data-layout=tel]{width:33%;max-width:none}.touch-keyboard .touch-keyboard-key:not(:last-child){margin-right:.25rem}@media (min-width: 600px){.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:6rem}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1003
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardComponent, decorators: [{
|
|
1004
1004
|
type: Component,
|
|
1005
|
-
args: [{ selector: 'ngx-touch-keyboard', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div dir=\"ltr\" class=\"touch-keyboard\" [ngClass]=\"'layout-' + layoutName\">\r\n <ng-container\r\n *ngFor=\"\r\n let row of locale.layouts[layoutMode + '_' + layoutName];\r\n let rowIndex = index\r\n \"\r\n >\r\n <div class=\"touch-keyboard-row\">\r\n <ng-container *ngFor=\"let key of row; let keyIndex = index\">\r\n <button\r\n [name]=\"key\"\r\n [dir]=\"locale.dir\"\r\n class=\"touch-keyboard-key\"\r\n [ngClass]=\"[getButtonClass(key)]\"\r\n [attr.data-layout]=\"layoutName\"\r\n (pointerdown)=\"\r\n handleButtonClicked(key, $event); handleButtonMouseDown(key, $event)\r\n \"\r\n (pointerup)=\"handleButtonMouseUp(key, $event)\"\r\n (pointercancel)=\"handleButtonMouseUp(key, $event)\"\r\n [innerHtml]=\"getButtonDisplayName(key)\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [":root{--tk-color-text: #27272a;--tk-background: rgba(238, 238, 238, .87);--tk-background-button: rgba(255, 255, 255, .96);--tk-background-button-fn: rgba(255, 255, 255, .5);--tk-background-button-active: rgba(0, 0, 0, .04)}.dark{--tk-color-text: #ffffff;--tk-background: rgba(33, 33, 33, .87);--tk-background-button: rgba(66, 66, 66, .96);--tk-background-button-fn: rgba(66, 66, 66, .5);--tk-background-button-active: rgba(255, 255, 255, .2)}ngx-touch-keyboard{width:100%;padding:.25rem .25rem .375rem;border-radius:.375rem;touch-action:manipulation;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--tk-background);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.touch-keyboard{flex:1 1 auto;max-width:840px}.touch-keyboard .touch-keyboard-row{display:flex;flex-direction:row}.touch-keyboard .touch-keyboard-row:not(:last-child){margin-bottom:.25rem}.touch-keyboard .touch-keyboard-key{width:20px;box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;text-align:center;margin:0;line-height:32px;padding:.25rem;border-radius:.375rem;font-size:14px;font-weight:500;display:flex;flex-grow:1;align-items:center;justify-content:center;color:var(--tk-color-text);background-color:var(--tk-background-button);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.touch-keyboard .touch-keyboard-key>svg{fill:var(--tk-color-text)}.touch-keyboard .touch-keyboard-key.function-key:not(.space-key){background-color:var(--tk-background-button-fn)}.touch-keyboard .touch-keyboard-key.active{background-color:var(--tk-background-button-active)!important}.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.language-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:4rem}.touch-keyboard .touch-keyboard-key.space-key{min-width:40%}.touch-keyboard .touch-keyboard-key[data-layout=numeric],.touch-keyboard .touch-keyboard-key[data-layout=decimal],.touch-keyboard .touch-keyboard-key[data-layout=tel]{width:33%;max-width:none}.touch-keyboard .touch-keyboard-key:not(:last-child){margin-right:.25rem}@media (min-width: 600px){.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:6rem}}\n"] }]
|
|
1005
|
+
args: [{ selector: 'ngx-touch-keyboard', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div dir=\"ltr\" class=\"touch-keyboard\" [ngClass]=\"'layout-' + layoutName\">\r\n <ng-container\r\n *ngFor=\"\r\n let row of locale.layouts[layoutMode + '_' + layoutName];\r\n let rowIndex = index\r\n \"\r\n >\r\n <div class=\"touch-keyboard-row\">\r\n <ng-container *ngFor=\"let key of row; let keyIndex = index\">\r\n <button\r\n [name]=\"key\"\r\n [dir]=\"locale.dir\"\r\n class=\"touch-keyboard-key\"\r\n [ngClass]=\"[getButtonClass(key)]\"\r\n [attr.data-layout]=\"layoutName\"\r\n (pointerdown)=\"\r\n handleButtonClicked(key, $event); handleButtonMouseDown(key, $event)\r\n \"\r\n (pointerup)=\"handleButtonMouseUp(key, $event)\"\r\n (pointercancel)=\"handleButtonMouseUp(key, $event)\"\r\n [innerHtml]=\"getButtonDisplayName(key)\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}:root{--tk-color-text: #27272a;--tk-background: rgba(238, 238, 238, .87);--tk-background-button: rgba(255, 255, 255, .96);--tk-background-button-fn: rgba(255, 255, 255, .5);--tk-background-button-active: rgba(0, 0, 0, .04)}.dark{--tk-color-text: #ffffff;--tk-background: rgba(33, 33, 33, .87);--tk-background-button: rgba(66, 66, 66, .96);--tk-background-button-fn: rgba(66, 66, 66, .5);--tk-background-button-active: rgba(255, 255, 255, .2)}ngx-touch-keyboard{width:100%;padding:.25rem .25rem .375rem;border-radius:.375rem;touch-action:manipulation;-webkit-user-select:none;user-select:none;display:flex;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--tk-background);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.ngx-touch-keyboard-fullScreen>ngx-touch-keyboard{border-radius:0}.touch-keyboard{flex:1 1 auto;max-width:840px}.touch-keyboard .touch-keyboard-row{display:flex;flex-direction:row}.touch-keyboard .touch-keyboard-row:not(:last-child){margin-bottom:.25rem}.touch-keyboard .touch-keyboard-key{width:20px;box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;text-align:center;margin:0;line-height:32px;padding:.25rem;border-radius:.375rem;font-size:14px;font-weight:500;display:flex;flex-grow:1;align-items:center;justify-content:center;color:var(--tk-color-text);background-color:var(--tk-background-button);box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.touch-keyboard .touch-keyboard-key>svg{fill:var(--tk-color-text)}.touch-keyboard .touch-keyboard-key.function-key:not(.space-key){background-color:var(--tk-background-button-fn)}.touch-keyboard .touch-keyboard-key.active{background-color:var(--tk-background-button-active)!important}.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.language-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:4rem}.touch-keyboard .touch-keyboard-key.space-key{min-width:40%}.touch-keyboard .touch-keyboard-key[data-layout=numeric],.touch-keyboard .touch-keyboard-key[data-layout=decimal],.touch-keyboard .touch-keyboard-key[data-layout=tel]{width:33%;max-width:none}.touch-keyboard .touch-keyboard-key:not(:last-child){margin-right:.25rem}@media (min-width: 600px){.touch-keyboard .touch-keyboard-key.alphabetic-key,.touch-keyboard .touch-keyboard-key.numeric-key,.touch-keyboard .touch-keyboard-key.symbolic-key,.touch-keyboard .touch-keyboard-key.done-key{max-width:6rem}}\n"] }]
|
|
1006
1006
|
}], ctorParameters: function () {
|
|
1007
1007
|
return [{ type: i1.DomSanitizer }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
1008
1008
|
type: Inject,
|
|
@@ -1086,6 +1086,10 @@ class NgxTouchKeyboardDirective {
|
|
|
1086
1086
|
if (!this._overlayRef) {
|
|
1087
1087
|
this._createOverlay();
|
|
1088
1088
|
}
|
|
1089
|
+
// Set overlay class
|
|
1090
|
+
this._overlayRef.addPanelClass('ngx-touch-keyboard-overlay-pane');
|
|
1091
|
+
if (this.ngxTouchKeyboardFullScreen)
|
|
1092
|
+
this._overlayRef.addPanelClass('ngx-touch-keyboard-fullScreen');
|
|
1089
1093
|
// Update direction the overlay
|
|
1090
1094
|
this._overlayRef.setDirection(this._document.body.getAttribute('dir') || this._document.dir || 'ltr');
|
|
1091
1095
|
// Update position the overlay
|
|
@@ -1217,9 +1221,9 @@ class NgxTouchKeyboardDirective {
|
|
|
1217
1221
|
return element;
|
|
1218
1222
|
}
|
|
1219
1223
|
}
|
|
1220
|
-
NgxTouchKeyboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
1221
|
-
NgxTouchKeyboardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
1222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
1224
|
+
NgxTouchKeyboardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardDirective, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1225
|
+
NgxTouchKeyboardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgxTouchKeyboardDirective, selector: "input[ngxTouchKeyboard], textarea[ngxTouchKeyboard]", inputs: { ngxTouchKeyboard: "ngxTouchKeyboard", ngxTouchKeyboardDebug: "ngxTouchKeyboardDebug", ngxTouchKeyboardFullScreen: "ngxTouchKeyboardFullScreen" }, exportAs: ["ngxTouchKeyboard"], ngImport: i0 });
|
|
1226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardDirective, decorators: [{
|
|
1223
1227
|
type: Directive,
|
|
1224
1228
|
args: [{
|
|
1225
1229
|
selector: 'input[ngxTouchKeyboard], textarea[ngxTouchKeyboard]',
|
|
@@ -1240,10 +1244,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
1240
1244
|
|
|
1241
1245
|
class NgxTouchKeyboardModule {
|
|
1242
1246
|
}
|
|
1243
|
-
NgxTouchKeyboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
1244
|
-
NgxTouchKeyboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
1245
|
-
NgxTouchKeyboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.
|
|
1246
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
1247
|
+
NgxTouchKeyboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1248
|
+
NgxTouchKeyboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardModule, declarations: [NgxTouchKeyboardDirective, NgxTouchKeyboardComponent], imports: [CommonModule, OverlayModule, PortalModule], exports: [NgxTouchKeyboardDirective, NgxTouchKeyboardComponent] });
|
|
1249
|
+
NgxTouchKeyboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardModule, imports: [CommonModule, OverlayModule, PortalModule] });
|
|
1250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgxTouchKeyboardModule, decorators: [{
|
|
1247
1251
|
type: NgModule,
|
|
1248
1252
|
args: [{
|
|
1249
1253
|
declarations: [NgxTouchKeyboardDirective, NgxTouchKeyboardComponent],
|