ngx-touch-keyboard 4.4.0 → 4.4.1

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.
@@ -119,8 +119,10 @@ export class NgxTouchKeyboardDirective {
119
119
  */
120
120
  closePanel() {
121
121
  if (this._isMobile) {
122
- this._elementRef.nativeElement.readOnly = false;
123
- this._elementRef.nativeElement.blur();
122
+ // Get the input element and remove readonly mode
123
+ const inputElement = this._getInputElement();
124
+ inputElement.readOnly = false;
125
+ inputElement.blur();
124
126
  }
125
127
  this._overlayRef?.detach();
126
128
  this.open.set(false);
@@ -264,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
264
266
  type: HostListener,
265
267
  args: ['ionFocus']
266
268
  }] } });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRvdWNoLWtleWJvYXJkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10b3VjaC1rZXlib2FyZC9zcmMvbGliL25neC10b3VjaC1rZXlib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBbUQsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFHM0U7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQUtFLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDakM7OEdBRlksc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkM7O0FBS0Q7OztHQUdHO0FBUUgsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVFVLGFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsZ0JBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUE0QixDQUFBLENBQUMsQ0FBQztRQUNuRCxjQUFTLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxRSxTQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQixLQUFLLEVBQUUsc0JBQXNCO1NBQzlCLENBQUMsQ0FBQztRQUVI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Qyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDeEQsOENBQThDO1lBQzlDLE9BQU8sT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1FBQ3BELENBQUM7UUFFRCxlQUFlO1FBQ2YsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0E5UFUseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBUHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7NENBR2dDO29CQUMxQyxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs4QkFzQ0MsT0FBTztzQkFGTixZQUFZO3VCQUFDLE9BQU87O3NCQUNwQixZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgbW9kZWwsXHJcbiAgT25EZXN0cm95LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgT3ZlcmxheVNpemVDb25maWcsIFBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQgfSBmcm9tICcuL25neC10b3VjaC1rZXlib2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2NhbGUgfSBmcm9tICcuL0xvY2FsZS90eXBlJztcclxuXHJcbi8qKlxyXG4gKiBEaXJlY3RpdmUgYXBwbGllZCB0byBhbiBlbGVtZW50IHRvIG1ha2UgaXQgdXNhYmxlIGFzIGFuIG9yaWdpbiBmb3IgYW4ga2V5Ym9hcmQgdXNpbmcgYVxyXG4gKiBDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbmd4VG91Y2hLZXlib2FyZE9yaWdpbl0nLFxyXG4gIGV4cG9ydEFzOiAnbmd4VG91Y2hLZXlib2FyZE9yaWdpbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUb3VjaEtleWJvYXJkT3JpZ2luIHtcclxuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG59XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgbWV0aG9kcyB0byBvcGVuLCBjbG9zZSwgYW5kIHRvZ2dsZSB0aGUgdG91Y2gga2V5Ym9hcmQgcGFuZWwuXHJcbiAqIEl0IGFsc28gaGFuZGxlcyB0aGUgY3JlYXRpb24gYW5kIGNvbmZpZ3VyYXRpb24gb2YgdGhlIG92ZXJsYXkgdXNlZCB0byBkaXNwbGF5IHRoZSBrZXlib2FyZC5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBgaW5wdXRbbmd4VG91Y2hLZXlib2FyZF0sXHJcbiAgICAgICAgICAgICB0ZXh0YXJlYVtuZ3hUb3VjaEtleWJvYXJkXSxcclxuICAgICAgICAgICAgIGlvbi1pbnB1dFtuZ3hUb3VjaEtleWJvYXJkXSxcclxuICAgICAgICAgICAgIGlvbi10ZXh0YXJlYVtuZ3hUb3VjaEtleWJvYXJkXWAsXHJcbiAgZXhwb3J0QXM6ICduZ3hUb3VjaEtleWJvYXJkJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFRvdWNoS2V5Ym9hcmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XHJcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KTtcclxuICBwcml2YXRlIF9pc01vYmlsZSA9IC9BbmRyb2lkfGlQaG9uZXxpUGFkfGlQb2QvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG5cclxuICBvcGVuID0gbW9kZWwoZmFsc2UsIHtcclxuICAgIGFsaWFzOiAnbmd4VG91Y2hLZXlib2FyZE9wZW4nLFxyXG4gIH0pO1xyXG5cclxuICBvcGVuT25Gb2N1cyA9IGlucHV0KGZhbHNlLCB7XHJcbiAgICBhbGlhczogJ25neFRvdWNoS2V5Ym9hcmRPcGVuT25Gb2N1cycsXHJcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXHJcbiAgfSk7XHJcblxyXG4gIGxvY2FsZSA9IGlucHV0PExvY2FsZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XHJcbiAgICBhbGlhczogJ25neFRvdWNoS2V5Ym9hcmRMb2NhbGUnLFxyXG4gIH0pO1xyXG5cclxuICBkZWJ1Z01vZGUgPSBpbnB1dChmYWxzZSwge1xyXG4gICAgYWxpYXM6ICduZ3hUb3VjaEtleWJvYXJkRGVidWcnLFxyXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxyXG4gIH0pO1xyXG5cclxuICBmdWxsU2NyZWVuTW9kZSA9IGlucHV0KGZhbHNlLCB7XHJcbiAgICBhbGlhczogJ25neFRvdWNoS2V5Ym9hcmRGdWxsU2NyZWVuJyxcclxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcclxuICB9KTtcclxuXHJcbiAgb3JpZ2luID0gaW5wdXQ8Tmd4VG91Y2hLZXlib2FyZE9yaWdpbiB8IG51bGw+KG51bGwsIHtcclxuICAgIGFsaWFzOiAnbmd4Q29ubmVjdGVkVG91Y2hLZXlib2FyZE9yaWdpbicsXHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xyXG4gIHByaXZhdGUgX3BhbmVsUmVmITogQ29tcG9uZW50UmVmPE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQ+O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXHJcbiAgQEhvc3RMaXN0ZW5lcignaW9uRm9jdXMnKVxyXG4gIG9uRm9jdXMoKSB7XHJcbiAgICBpZiAodGhpcy5vcGVuT25Gb2N1cygpICYmICF0aGlzLm9wZW4oKSkge1xyXG4gICAgICB0aGlzLm9wZW5QYW5lbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBAIExpZmVjeWNsZSBob29rc1xyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGNoYW5nZXNcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMub3BlbigpID8gdGhpcy5vcGVuUGFuZWwoKSA6IHRoaXMuY2xvc2VQYW5lbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gZGVzdHJveVxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy8gRGlzcG9zZSB0aGUgb3ZlcmxheVxyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgUHVibGljIG1ldGhvZHNcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGtleWJvYXJkIHBhbmVsXHJcbiAgICovXHJcbiAgb3BlblBhbmVsKCk6IHZvaWQge1xyXG4gICAgLy8gcmV0dXJuIGlmIHBhbmVsIGlzIGF0dGFjaGVkXHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ3JlYXRlIHRoZSBvdmVybGF5IGlmIGl0IGRvZXNuJ3QgZXhpc3RcclxuICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2V0IG92ZXJsYXkgY2xhc3NcclxuICAgIGlmICh0aGlzLmZ1bGxTY3JlZW5Nb2RlKCkpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5hZGRQYW5lbENsYXNzKCduZ3gtdG91Y2gta2V5Ym9hcmQtZnVsbFNjcmVlbicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5yZW1vdmVQYW5lbENsYXNzKCduZ3gtdG91Y2gta2V5Ym9hcmQtZnVsbFNjcmVlbicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFVwZGF0ZSBwb3NpdGlvbiB0aGUgb3ZlcmxheVxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuX2dldFBvc2l0aW9uU3RyYXRlZ3kodGhpcy5mdWxsU2NyZWVuTW9kZSgpKSk7XHJcblxyXG4gICAgLy8gVXBkYXRlIHNpemUgdGhlIG92ZXJsYXlcclxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh0aGlzLl9nZXRPdmVybGF5U2l6ZSh0aGlzLmZ1bGxTY3JlZW5Nb2RlKCkpKTtcclxuXHJcbiAgICAvLyBHZXQgdGhlIGlucHV0IGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXJlY3RpdmVcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuX2dldElucHV0RWxlbWVudCgpO1xyXG5cclxuICAgIC8vIFNldCBpbnB1dCB0byByZWFkb25seSBvbiBtb2JpbGUgZGV2aWNlcyB0byBwcmV2ZW50IHRoZSBuYXRpdmUga2V5Ym9hcmQgZnJvbSBhcHBlYXJpbmdcclxuICAgIGlmICh0aGlzLl9pc01vYmlsZSkgaW5wdXRFbGVtZW50LnJlYWRPbmx5ID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBBdHRhY2ggdGhlIHBvcnRhbCB0byB0aGUgb3ZlcmxheVxyXG4gICAgdGhpcy5fcGFuZWxSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgQ29tcG9uZW50UG9ydGFsKE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQpKTtcclxuICAgIHRoaXMuX3BhbmVsUmVmLmluc3RhbmNlLmRlYnVnID0gdGhpcy5kZWJ1Z01vZGUoKTtcclxuICAgIHRoaXMuX3BhbmVsUmVmLmluc3RhbmNlLnNldExvY2FsZSh0aGlzLmxvY2FsZSgpKTtcclxuICAgIHRoaXMuX3BhbmVsUmVmLmluc3RhbmNlLnNldEFjdGl2ZUlucHV0KGlucHV0RWxlbWVudCk7XHJcbiAgICB0aGlzLl9wYW5lbFJlZi5pbnN0YW5jZS5jbG9zZVBhbmVsLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlUGFuZWwoKSk7XHJcbiAgICB0aGlzLm9wZW4uc2V0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2Uga2V5Ym9hcmQgcGFuZWxcclxuICAgKi9cclxuICBjbG9zZVBhbmVsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzTW9iaWxlKSB7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZWFkT25seSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZSBrZXlib2FyZCBwYW5lbFxyXG4gICAqL1xyXG4gIHRvZ2dsZVBhbmVsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcGVuKCkgPyB0aGlzLmNsb3NlUGFuZWwoKSA6IHRoaXMub3BlblBhbmVsKCk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgUHJpdmF0ZSBtZXRob2RzXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSBvdmVybGF5XHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xyXG4gICAgICBkaXJlY3Rpb246ICdsdHInLFxyXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICduZ3gtdG91Y2gta2V5Ym9hcmQtb3ZlcmxheS1wYW5lJyxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ub29wKCksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBwb3NpdGlvbiBzdHJhdGVneVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZ1bGxzY3JlZW5cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldFBvc2l0aW9uU3RyYXRlZ3koZnVsbHNjcmVlbjogYm9vbGVhbik6IFBvc2l0aW9uU3RyYXRlZ3kge1xyXG4gICAgaWYgKGZ1bGxzY3JlZW4pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5ib3R0b20oJzAnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVxyXG4gICAgICAucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9nZXRPcmlnaW5FbGVtZW50KCkpXHJcbiAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24oKVxyXG4gICAgICAud2l0aFB1c2goKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXHJcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IG92ZXJsYXkgc2l6ZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZ1bGxzY3JlZW5cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldE92ZXJsYXlTaXplKGZ1bGxzY3JlZW46IGJvb2xlYW4pOiBPdmVybGF5U2l6ZUNvbmZpZyB7XHJcbiAgICBpZiAoZnVsbHNjcmVlbikge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcclxuICAgICAgICBtaW5XaWR0aDogJzEwMCUnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLl9nZXRPcmlnaW5FbGVtZW50KCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXHJcbiAgICAgIG1heFdpZHRoOiB0aGlzLl9nZXRPcmlnaW5FbGVtZW50KCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXHJcbiAgICAgIG1pbldpZHRoOiAnMjYwcHgnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGlucHV0IGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXJlY3RpdmUuXHJcbiAgICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZCB0byBhbiBJb25pYyBjb21wb25lbnQgKGlvbi1pbnB1dCBvciBpb24tdGV4dGFyZWEpLFxyXG4gICAqIHRoZSBhY3R1YWwgaW5wdXQgZWxlbWVudCBpcyBuZXN0ZWQgaW5zaWRlIHRoZSBjb21wb25lbnQncyB0ZW1wbGF0ZS5cclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2V0SW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50IHtcclxuICAgIGlmIChbJ0lPTi1JTlBVVCcsICdJT04tVEVYVEFSRUEnXS5pbmNsdWRlcyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCwgdGV4dGFyZWEnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgb3JpZ2luIGVsZW1lbnQgZm9yIHRoZSBrZXlib2FyZCBwYW5lbC5cclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2V0T3JpZ2luRWxlbWVudCgpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMub3JpZ2luKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3JpZ2luKCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIC8vIE1hdGVyaWFsIGZvcm0gZmllbGQgPD0gdjE0XHJcbiAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ21hdC1pbnB1dC1lbGVtZW50JykpIHtcclxuICAgICAgLy8gUmV0dXJuIFttYXQtZm9ybS1maWVsZC1mbGV4XSBlbGVtZW50XHJcbiAgICAgIHJldHVybiBlbGVtZW50LnBhcmVudE5vZGU/LnBhcmVudE5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWF0ZXJpYWwgZm9ybSBmaWVsZCA+IHYxNFxyXG4gICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYXQtbWRjLWlucHV0LWVsZW1lbnQnKSkge1xyXG4gICAgICAvLyBSZXR1cm4gW21hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyXSBlbGVtZW50XHJcbiAgICAgIHJldHVybiBlbGVtZW50LnBhcmVudE5vZGU/LnBhcmVudE5vZGU/LnBhcmVudE5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJuIGlucHV0XHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxuICB9XHJcbn1cclxuIl19
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRvdWNoLWtleWJvYXJkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10b3VjaC1rZXlib2FyZC9zcmMvbGliL25neC10b3VjaC1rZXlib2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBbUQsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFHM0U7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQUtFLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDakM7OEdBRlksc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkM7O0FBS0Q7OztHQUdHO0FBUUgsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVFVLGFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsZ0JBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUE0QixDQUFBLENBQUMsQ0FBQztRQUNuRCxjQUFTLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxRSxTQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQixLQUFLLEVBQUUsc0JBQXNCO1NBQzlCLENBQUMsQ0FBQztRQUVI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QUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDeEQsOENBQThDO1lBQzlDLE9BQU8sT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1FBQ3BELENBQUM7UUFFRCxlQUFlO1FBQ2YsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0FoUVUseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBUHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7NENBR2dDO29CQUMxQyxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs4QkFzQ0MsT0FBTztzQkFGTixZQUFZO3VCQUFDLE9BQU87O3NCQUNwQixZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXHJcbiAgQ29tcG9uZW50UmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgbW9kZWwsXHJcbiAgT25EZXN0cm95LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgT3ZlcmxheVNpemVDb25maWcsIFBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQgfSBmcm9tICcuL25neC10b3VjaC1rZXlib2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2NhbGUgfSBmcm9tICcuL0xvY2FsZS90eXBlJztcclxuXHJcbi8qKlxyXG4gKiBEaXJlY3RpdmUgYXBwbGllZCB0byBhbiBlbGVtZW50IHRvIG1ha2UgaXQgdXNhYmxlIGFzIGFuIG9yaWdpbiBmb3IgYW4ga2V5Ym9hcmQgdXNpbmcgYVxyXG4gKiBDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbmd4VG91Y2hLZXlib2FyZE9yaWdpbl0nLFxyXG4gIGV4cG9ydEFzOiAnbmd4VG91Y2hLZXlib2FyZE9yaWdpbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hUb3VjaEtleWJvYXJkT3JpZ2luIHtcclxuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG59XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgbWV0aG9kcyB0byBvcGVuLCBjbG9zZSwgYW5kIHRvZ2dsZSB0aGUgdG91Y2gga2V5Ym9hcmQgcGFuZWwuXHJcbiAqIEl0IGFsc28gaGFuZGxlcyB0aGUgY3JlYXRpb24gYW5kIGNvbmZpZ3VyYXRpb24gb2YgdGhlIG92ZXJsYXkgdXNlZCB0byBkaXNwbGF5IHRoZSBrZXlib2FyZC5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBgaW5wdXRbbmd4VG91Y2hLZXlib2FyZF0sXHJcbiAgICAgICAgICAgICB0ZXh0YXJlYVtuZ3hUb3VjaEtleWJvYXJkXSxcclxuICAgICAgICAgICAgIGlvbi1pbnB1dFtuZ3hUb3VjaEtleWJvYXJkXSxcclxuICAgICAgICAgICAgIGlvbi10ZXh0YXJlYVtuZ3hUb3VjaEtleWJvYXJkXWAsXHJcbiAgZXhwb3J0QXM6ICduZ3hUb3VjaEtleWJvYXJkJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFRvdWNoS2V5Ym9hcmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XHJcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KTtcclxuICBwcml2YXRlIF9pc01vYmlsZSA9IC9BbmRyb2lkfGlQaG9uZXxpUGFkfGlQb2QvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG5cclxuICBvcGVuID0gbW9kZWwoZmFsc2UsIHtcclxuICAgIGFsaWFzOiAnbmd4VG91Y2hLZXlib2FyZE9wZW4nLFxyXG4gIH0pO1xyXG5cclxuICBvcGVuT25Gb2N1cyA9IGlucHV0KGZhbHNlLCB7XHJcbiAgICBhbGlhczogJ25neFRvdWNoS2V5Ym9hcmRPcGVuT25Gb2N1cycsXHJcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXHJcbiAgfSk7XHJcblxyXG4gIGxvY2FsZSA9IGlucHV0PExvY2FsZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XHJcbiAgICBhbGlhczogJ25neFRvdWNoS2V5Ym9hcmRMb2NhbGUnLFxyXG4gIH0pO1xyXG5cclxuICBkZWJ1Z01vZGUgPSBpbnB1dChmYWxzZSwge1xyXG4gICAgYWxpYXM6ICduZ3hUb3VjaEtleWJvYXJkRGVidWcnLFxyXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxyXG4gIH0pO1xyXG5cclxuICBmdWxsU2NyZWVuTW9kZSA9IGlucHV0KGZhbHNlLCB7XHJcbiAgICBhbGlhczogJ25neFRvdWNoS2V5Ym9hcmRGdWxsU2NyZWVuJyxcclxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcclxuICB9KTtcclxuXHJcbiAgb3JpZ2luID0gaW5wdXQ8Tmd4VG91Y2hLZXlib2FyZE9yaWdpbiB8IG51bGw+KG51bGwsIHtcclxuICAgIGFsaWFzOiAnbmd4Q29ubmVjdGVkVG91Y2hLZXlib2FyZE9yaWdpbicsXHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgX292ZXJsYXlSZWYhOiBPdmVybGF5UmVmO1xyXG4gIHByaXZhdGUgX3BhbmVsUmVmITogQ29tcG9uZW50UmVmPE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQ+O1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXHJcbiAgQEhvc3RMaXN0ZW5lcignaW9uRm9jdXMnKVxyXG4gIG9uRm9jdXMoKSB7XHJcbiAgICBpZiAodGhpcy5vcGVuT25Gb2N1cygpICYmICF0aGlzLm9wZW4oKSkge1xyXG4gICAgICB0aGlzLm9wZW5QYW5lbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLyBAIExpZmVjeWNsZSBob29rc1xyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGNoYW5nZXNcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMub3BlbigpID8gdGhpcy5vcGVuUGFuZWwoKSA6IHRoaXMuY2xvc2VQYW5lbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT24gZGVzdHJveVxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy8gRGlzcG9zZSB0aGUgb3ZlcmxheVxyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgUHVibGljIG1ldGhvZHNcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIGtleWJvYXJkIHBhbmVsXHJcbiAgICovXHJcbiAgb3BlblBhbmVsKCk6IHZvaWQge1xyXG4gICAgLy8gcmV0dXJuIGlmIHBhbmVsIGlzIGF0dGFjaGVkXHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ3JlYXRlIHRoZSBvdmVybGF5IGlmIGl0IGRvZXNuJ3QgZXhpc3RcclxuICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2V0IG92ZXJsYXkgY2xhc3NcclxuICAgIGlmICh0aGlzLmZ1bGxTY3JlZW5Nb2RlKCkpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5hZGRQYW5lbENsYXNzKCduZ3gtdG91Y2gta2V5Ym9hcmQtZnVsbFNjcmVlbicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5yZW1vdmVQYW5lbENsYXNzKCduZ3gtdG91Y2gta2V5Ym9hcmQtZnVsbFNjcmVlbicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFVwZGF0ZSBwb3NpdGlvbiB0aGUgb3ZlcmxheVxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuX2dldFBvc2l0aW9uU3RyYXRlZ3kodGhpcy5mdWxsU2NyZWVuTW9kZSgpKSk7XHJcblxyXG4gICAgLy8gVXBkYXRlIHNpemUgdGhlIG92ZXJsYXlcclxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZSh0aGlzLl9nZXRPdmVybGF5U2l6ZSh0aGlzLmZ1bGxTY3JlZW5Nb2RlKCkpKTtcclxuXHJcbiAgICAvLyBHZXQgdGhlIGlucHV0IGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXJlY3RpdmVcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMuX2dldElucHV0RWxlbWVudCgpO1xyXG5cclxuICAgIC8vIFNldCBpbnB1dCB0byByZWFkb25seSBvbiBtb2JpbGUgZGV2aWNlcyB0byBwcmV2ZW50IHRoZSBuYXRpdmUga2V5Ym9hcmQgZnJvbSBhcHBlYXJpbmdcclxuICAgIGlmICh0aGlzLl9pc01vYmlsZSkgaW5wdXRFbGVtZW50LnJlYWRPbmx5ID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBBdHRhY2ggdGhlIHBvcnRhbCB0byB0aGUgb3ZlcmxheVxyXG4gICAgdGhpcy5fcGFuZWxSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgQ29tcG9uZW50UG9ydGFsKE5neFRvdWNoS2V5Ym9hcmRDb21wb25lbnQpKTtcclxuICAgIHRoaXMuX3BhbmVsUmVmLmluc3RhbmNlLmRlYnVnID0gdGhpcy5kZWJ1Z01vZGUoKTtcclxuICAgIHRoaXMuX3BhbmVsUmVmLmluc3RhbmNlLnNldExvY2FsZSh0aGlzLmxvY2FsZSgpKTtcclxuICAgIHRoaXMuX3BhbmVsUmVmLmluc3RhbmNlLnNldEFjdGl2ZUlucHV0KGlucHV0RWxlbWVudCk7XHJcbiAgICB0aGlzLl9wYW5lbFJlZi5pbnN0YW5jZS5jbG9zZVBhbmVsLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlUGFuZWwoKSk7XHJcbiAgICB0aGlzLm9wZW4uc2V0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2Uga2V5Ym9hcmQgcGFuZWxcclxuICAgKi9cclxuICBjbG9zZVBhbmVsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzTW9iaWxlKSB7XHJcbiAgICAgIC8vIEdldCB0aGUgaW5wdXQgZWxlbWVudCBhbmQgcmVtb3ZlIHJlYWRvbmx5IG1vZGVcclxuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5fZ2V0SW5wdXRFbGVtZW50KCk7XHJcbiAgICAgIGlucHV0RWxlbWVudC5yZWFkT25seSA9IGZhbHNlO1xyXG4gICAgICBpbnB1dEVsZW1lbnQuYmx1cigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZSBrZXlib2FyZCBwYW5lbFxyXG4gICAqL1xyXG4gIHRvZ2dsZVBhbmVsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcGVuKCkgPyB0aGlzLmNsb3NlUGFuZWwoKSA6IHRoaXMub3BlblBhbmVsKCk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vIEAgUHJpdmF0ZSBtZXRob2RzXHJcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSBvdmVybGF5XHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUoe1xyXG4gICAgICBkaXJlY3Rpb246ICdsdHInLFxyXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICduZ3gtdG91Y2gta2V5Ym9hcmQtb3ZlcmxheS1wYW5lJyxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ub29wKCksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBwb3NpdGlvbiBzdHJhdGVneVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZ1bGxzY3JlZW5cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldFBvc2l0aW9uU3RyYXRlZ3koZnVsbHNjcmVlbjogYm9vbGVhbik6IFBvc2l0aW9uU3RyYXRlZ3kge1xyXG4gICAgaWYgKGZ1bGxzY3JlZW4pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5ib3R0b20oJzAnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVxyXG4gICAgICAucG9zaXRpb24oKVxyXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9nZXRPcmlnaW5FbGVtZW50KCkpXHJcbiAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24oKVxyXG4gICAgICAud2l0aFB1c2goKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxyXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcclxuICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxyXG4gICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXHJcbiAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXHJcbiAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxyXG4gICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxyXG4gICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IG92ZXJsYXkgc2l6ZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZ1bGxzY3JlZW5cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dldE92ZXJsYXlTaXplKGZ1bGxzY3JlZW46IGJvb2xlYW4pOiBPdmVybGF5U2l6ZUNvbmZpZyB7XHJcbiAgICBpZiAoZnVsbHNjcmVlbikge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcclxuICAgICAgICBtaW5XaWR0aDogJzEwMCUnLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZHRoOiB0aGlzLl9nZXRPcmlnaW5FbGVtZW50KCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXHJcbiAgICAgIG1heFdpZHRoOiB0aGlzLl9nZXRPcmlnaW5FbGVtZW50KCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsXHJcbiAgICAgIG1pbldpZHRoOiAnMjYwcHgnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGlucHV0IGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXJlY3RpdmUuXHJcbiAgICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZCB0byBhbiBJb25pYyBjb21wb25lbnQgKGlvbi1pbnB1dCBvciBpb24tdGV4dGFyZWEpLFxyXG4gICAqIHRoZSBhY3R1YWwgaW5wdXQgZWxlbWVudCBpcyBuZXN0ZWQgaW5zaWRlIHRoZSBjb21wb25lbnQncyB0ZW1wbGF0ZS5cclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2V0SW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50IHtcclxuICAgIGlmIChbJ0lPTi1JTlBVVCcsICdJT04tVEVYVEFSRUEnXS5pbmNsdWRlcyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCwgdGV4dGFyZWEnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgb3JpZ2luIGVsZW1lbnQgZm9yIHRoZSBrZXlib2FyZCBwYW5lbC5cclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZ2V0T3JpZ2luRWxlbWVudCgpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMub3JpZ2luKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3JpZ2luKCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIC8vIE1hdGVyaWFsIGZvcm0gZmllbGQgPD0gdjE0XHJcbiAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ21hdC1pbnB1dC1lbGVtZW50JykpIHtcclxuICAgICAgLy8gUmV0dXJuIFttYXQtZm9ybS1maWVsZC1mbGV4XSBlbGVtZW50XHJcbiAgICAgIHJldHVybiBlbGVtZW50LnBhcmVudE5vZGU/LnBhcmVudE5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTWF0ZXJpYWwgZm9ybSBmaWVsZCA+IHYxNFxyXG4gICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYXQtbWRjLWlucHV0LWVsZW1lbnQnKSkge1xyXG4gICAgICAvLyBSZXR1cm4gW21hdC1tZGMtdGV4dC1maWVsZC13cmFwcGVyXSBlbGVtZW50XHJcbiAgICAgIHJldHVybiBlbGVtZW50LnBhcmVudE5vZGU/LnBhcmVudE5vZGU/LnBhcmVudE5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJuIGlucHV0XHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxuICB9XHJcbn1cclxuIl19
@@ -1788,8 +1788,10 @@ class NgxTouchKeyboardDirective {
1788
1788
  */
1789
1789
  closePanel() {
1790
1790
  if (this._isMobile) {
1791
- this._elementRef.nativeElement.readOnly = false;
1792
- this._elementRef.nativeElement.blur();
1791
+ // Get the input element and remove readonly mode
1792
+ const inputElement = this._getInputElement();
1793
+ inputElement.readOnly = false;
1794
+ inputElement.blur();
1793
1795
  }
1794
1796
  this._overlayRef?.detach();
1795
1797
  this.open.set(false);
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-touch-keyboard.mjs","sources":["../../../projects/ngx-touch-keyboard/src/lib/Locale/constants.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/en-GB/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/en-US/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/es-Es/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/fa-IR/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/he-IL/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/ka-GE/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/ru-RU/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/sv-SE/index.ts","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.constants.ts","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.component.ts","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.component.html","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.directive.ts","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.module.ts","../../../projects/ngx-touch-keyboard/src/public-api.ts","../../../projects/ngx-touch-keyboard/src/ngx-touch-keyboard.ts"],"sourcesContent":["/**\r\n * A collection of constants representing special function buttons for a touch keyboard.\r\n * Each constant is a string that corresponds to a specific keyboard action.\r\n */\r\nexport const fnButton = {\r\n DONE: `{done}`,\r\n ENTER: `{enter}`,\r\n SEARCH: `{search}`,\r\n SHIFT: `{shift}`,\r\n BACKSPACE: `{backspace}`,\r\n LANGUAGE: `{language}`,\r\n SPACE: `{space}`,\r\n TAB: `{tab}`,\r\n};\r\n\r\n/**\r\n * An object containing SVG icons for various keyboard functions.\r\n */\r\nexport const fnDisplay = {\r\n DONE: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"m12 15-5-5h10Z\"/></svg>`,\r\n ENTER: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"m9 18-6-6 6-6 1.4 1.4L6.8 11H19V7h2v6H6.8l3.6 3.6Z\"/></svg>`,\r\n SEARCH: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"M9 3.5a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11ZM2 9a7 7 0 1 1 12.452 4.391l3.328 3.329a.75.75 0 1 1-1.06 1.06l-3.329-3.328A7 7 0 0 1 2 9Z\" clip-rule=\"evenodd\" /></svg>`,\r\n SHIFT: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"M10.8796773,2.4676627 C10.7983669,2.53542133 10.7233714,2.61041687 10.6556128,2.69172724 L2.79065437,12.1296773 C2.17191723,12.8721619 2.27223434,13.9756501 3.01471891,14.5943872 L3.15432027,14.6993778 C3.44275103,14.8945506 3.78413686,15 4.13504161,15 L6.999,15 L7,20.25 C7,21.2164983 7.78350169,22 8.75,22 L15.25,22 L15.3935272,21.9941988 C16.2928897,21.9211923 17,21.1681734 17,20.25 L16.999,15 L19.8649584,15 C20.8314567,15 21.6149584,14.2164983 21.6149584,13.25 C21.6149584,12.8406111 21.47143,12.4441786 21.2093456,12.1296773 L13.3443872,2.69172724 C12.7600244,1.99049181 11.7432755,1.8620539 11.0066223,2.37118457 L10.8796773,2.4676627 Z M12.1920553,3.65200384 L20.0570137,13.0899539 C20.0944543,13.1348827 20.1149584,13.1915159 20.1149584,13.25 C20.1149584,13.3880712 20.0030296,13.5 19.8649584,13.5 L16.25,13.5 C15.8357864,13.5 15.5,13.8357864 15.5,14.25 L15.5,20.25 C15.5,20.3880712 15.3880712,20.5 15.25,20.5 L8.75,20.5 C8.61192881,20.5 8.5,20.3880712 8.5,20.25 L8.5,14.25 C8.5,13.8357864 8.16421356,13.5 7.75,13.5 L4.13504161,13.5 C4.07655749,13.5 4.01992426,13.4794959 3.97499551,13.4420553 C3.86892629,13.3536643 3.85459527,13.1960231 3.94298629,13.0899539 L11.8079447,3.65200384 C11.8176245,3.64038807 11.8283381,3.62967442 11.8399539,3.61999462 C11.9460231,3.5316036 12.1036643,3.54593461 12.1920553,3.65200384 Z\"></path></svg>`,\r\n BACKSPACE: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"M18.75,4 C20.4830315,4 21.8992459,5.35645477 21.9948552,7.06557609 L22,7.25 L22,16.75 C22,18.4830315 20.6435452,19.8992459 18.9344239,19.9948552 L18.75,20 L10.2488122,20 C9.48467584,20 8.74731983,19.7308489 8.16441163,19.243553 L8.00936186,19.1052839 L3.01367221,14.3552839 C1.71288481,13.1184697 1.66102433,11.0613371 2.89783857,9.76054971 L3.01367221,9.64471607 L8.00936186,4.89471607 C8.56313355,4.36817906 9.28295917,4.05514987 10.0411712,4.00663485 L10.2488122,4 L18.75,4 Z M18.75,5.5 L10.2488122,5.5 C9.85605678,5.5 9.47644043,5.63205173 9.16975262,5.87226779 L9.04295431,5.98177019 L4.04726465,10.7317702 L3.98489269,10.7941421 C3.3580909,11.4533647 3.34595643,12.473346 3.93064574,13.1462921 L4.04726465,13.2682298 L9.04295431,18.0182298 C9.32758521,18.2888625 9.69368599,18.4547433 10.0814672,18.4919848 L10.2488122,18.5 L18.75,18.5 C19.6681734,18.5 20.4211923,17.7928897 20.4941988,16.8935272 L20.5,16.75 L20.5,7.25 C20.5,6.3318266 19.7928897,5.57880766 18.8935272,5.5058012 L18.75,5.5 Z M11.4462117,8.39705176 L11.5303301,8.46966991 L14.000116,10.939 L16.4696699,8.46966991 C16.7625631,8.1767767 17.2374369,8.1767767 17.5303301,8.46966991 C17.7965966,8.73593648 17.8208027,9.15260016 17.6029482,9.44621165 L17.5303301,9.53033009 L15.061116,12 L17.5303301,14.4696699 C17.8232233,14.7625631 17.8232233,15.2374369 17.5303301,15.5303301 C17.2640635,15.7965966 16.8473998,15.8208027 16.5537883,15.6029482 L16.4696699,15.5303301 L14.000116,13.061 L11.5303301,15.5303301 C11.2374369,15.8232233 10.7625631,15.8232233 10.4696699,15.5303301 C10.2034034,15.2640635 10.1791973,14.8473998 10.3970518,14.5537883 L10.4696699,14.4696699 L12.939116,12 L10.4696699,9.53033009 C10.1767767,9.23743687 10.1767767,8.76256313 10.4696699,8.46966991 C10.7359365,8.20340335 11.1526002,8.1791973 11.4462117,8.39705176 Z\"></path></svg>`,\r\n LANGUAGE: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"M12 22q-2.05 0-3.875-.788-1.825-.787-3.187-2.15-1.363-1.362-2.15-3.187Q2 14.05 2 12q0-2.075.788-3.887.787-1.813 2.15-3.175Q6.3 3.575 8.125 2.787 9.95 2 12 2q2.075 0 3.887.787 1.813.788 3.175 2.151 1.363 1.362 2.15 3.175Q22 9.925 22 12q0 2.05-.788 3.875-.787 1.825-2.15 3.187-1.362 1.363-3.175 2.15Q14.075 22 12 22Zm0-2.05q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075.475.975 1.125 1.875Zm-2.6-.4q-.45-.825-.787-1.713Q8.275 16.95 8.05 16H5.1q.725 1.25 1.812 2.175Q8 19.1 9.4 19.55Zm5.2 0q1.4-.45 2.487-1.375Q18.175 17.25 18.9 16h-2.95q-.225.95-.562 1.837-.338.888-.788 1.713ZM4.25 14h3.4q-.075-.5-.113-.988Q7.5 12.525 7.5 12t.037-1.012q.038-.488.113-.988h-3.4q-.125.5-.188.988Q4 11.475 4 12t.062 1.012q.063.488.188.988Zm5.4 0h4.7q.075-.5.113-.988.037-.487.037-1.012t-.037-1.012q-.038-.488-.113-.988h-4.7q-.075.5-.112.988Q9.5 11.475 9.5 12t.038 1.012q.037.488.112.988Zm6.7 0h3.4q.125-.5.188-.988Q20 12.525 20 12t-.062-1.012q-.063-.488-.188-.988h-3.4q.075.5.112.988.038.487.038 1.012t-.038 1.012q-.037.488-.112.988Zm-.4-6h2.95q-.725-1.25-1.813-2.175Q16 4.9 14.6 4.45q.45.825.788 1.712.337.888.562 1.838ZM10.1 8h3.8q-.3-1.1-.775-2.075Q12.65 4.95 12 4.05q-.65.9-1.125 1.875T10.1 8Zm-5 0h2.95q.225-.95.563-1.838.337-.887.787-1.712Q8 4.9 6.912 5.825 5.825 6.75 5.1 8Z\"/></svg>`,\r\n SPACE: ` `,\r\n TAB: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"m12 18-1.425-1.4 3.6-3.6H2v-2h12.175L10.6 7.4 12 6l6 6Zm8 0V6h2v12Z\"/></svg>`,\r\n};\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ABC',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'en-GB',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ABC',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'en-US',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ñ'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ñ'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ñ'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ñ'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ABC',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'es-ES',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['ض', 'ص', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'چ'],\r\n ['ش', 'س', 'ی', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ک', 'گ'],\r\n ['ظ', 'ط', 'ژ', 'ز', 'ر', 'ذ', 'د', 'پ', 'و', 'ث', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['-', '/', ':', '؛', ')', '(', '$', '@', '»', '«'],\r\n ['{symbolic}', '.', '،', '؟', '!', '٫', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n [']', '[', '}', '{', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '>', '<', '&', '•', '‘', '“'],\r\n ['{numeric}', '.', '،', '؟', '!', '٬', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['ض', 'ص', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'چ'],\r\n ['ش', 'س', 'ی', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ک', 'گ'],\r\n ['ظ', 'ط', 'ژ', 'ز', 'ر', 'ذ', 'د', 'پ', 'و', 'ث', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['-', '/', ':', '؛', ')', '(', '$', '@', '»', '«'],\r\n ['{symbolic}', '.', '،', '؟', '!', '٫', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n [']', '[', '}', '{', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '>', '<', '&', '•', '‘', '“'],\r\n ['{numeric}', '.', '،', '؟', '!', '٬', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['ض', 'ص', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'چ'],\r\n ['ش', 'س', 'ی', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ک', 'گ'],\r\n ['ظ', 'ط', 'ژ', 'ز', 'ر', 'ذ', 'د', 'پ', 'و', 'ث', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['$', '!', '~', '&', '=', '#', ']', '['],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', ']', '['],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['ض', 'ص', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'چ'],\r\n ['ش', 'س', 'ی', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ک', 'گ'],\r\n ['ظ', 'ط', 'ژ', 'ز', 'ر', 'ذ', 'د', 'پ', 'و', 'ث', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['@', '&', '%', '?', ',', '=', ']', '['],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['*', '$', '#', '!', \"'\", '^', ']', '['],\r\n ['{numeric}', '~', ';', ')', '(', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['۱', '۲', '۳', '٫'],\r\n ['۴', '۵', '۶', '-'],\r\n ['۷', '۸', '۹', '{backspace}'],\r\n ['۰', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['۱', '۲', '۳', '٫'],\r\n ['۴', '۵', '۶', '-'],\r\n ['۷', '۸', '۹', '{backspace}'],\r\n ['۰', '{done}'],\r\n ],\r\n tel_default: [\r\n ['۱', '۲', '۳', '+'],\r\n ['۴', '۵', '۶', '-'],\r\n ['۷', '۸', '۹', '{backspace}'],\r\n ['*', '۰', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ا‌ب‌پ',\r\n '{numeric}': '۱۲۳',\r\n '{symbolic}': '=+#',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'fa-IR',\r\n dir: 'rtl',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['ק', 'ר', 'א', 'ט', 'ו', 'ן', 'ם', 'פ'],\r\n ['ש', 'ד', 'ג', 'כ', 'ע', 'י', 'ח', 'ל', 'ך', 'ף'],\r\n ['ז', 'ס', 'ב', 'ה', 'נ', 'מ', 'צ', 'ת', 'ץ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '₪', '@', '\"', \"'\"],\r\n ['{symbolic}', '.', ',', '?', '!', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '$', '&', '•'],\r\n ['{numeric}', '.', ',', '?', '!', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['ק', 'ר', 'א', 'ט', 'ו', 'ן', 'ם', 'פ'],\r\n ['ש', 'ד', 'ג', 'כ', 'ע', 'י', 'ח', 'ל', 'ך', 'ף'],\r\n ['ז', 'ס', 'ב', 'ה', 'נ', 'מ', 'צ', 'ת', 'ץ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '₪', '@', '\"', \"'\"],\r\n ['{symbolic}', '.', ',', '?', '!', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '$', '&', '•'],\r\n ['{numeric}', '.', ',', '?', '!', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['ק', 'ר', 'א', 'ט', 'ו', 'ן', 'ם', 'פ'],\r\n ['ש', 'ד', 'ג', 'כ', 'ע', 'י', 'ח', 'ל', 'ך', 'ף'],\r\n ['ז', 'ס', 'ב', 'ה', 'נ', 'מ', 'צ', 'ת', 'ץ', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['₪', '!', '~', '&', '=', '#', ']', '['],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['₪', '!', '~', '&', '=', '#', ']', '['],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['ק', 'ר', 'א', 'ט', 'ו', 'ן', 'ם', 'פ'],\r\n ['ש', 'ד', 'ג', 'כ', 'ע', 'י', 'ח', 'ל', 'ך', 'ף'],\r\n ['ז', 'ס', 'ב', 'ה', 'נ', 'מ', 'צ', 'ת', 'ץ', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', ']', '['],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '₪', '#', '!', \"'\", '^', ']', '['],\r\n ['{numeric}', '~', ';', ')', '(', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'אבג',\r\n '{numeric}': '123',\r\n '{symbolic}': '=+#',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'he-IL',\r\n dir: 'rtl',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['ქ', 'წ', 'ე', 'რ', 'ტ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'ს', 'დ', 'ფ', 'გ', 'ჰ', 'ჯ', 'კ', 'ლ'],\r\n ['{shift}', 'ზ', 'ხ', 'ც', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['ქ', 'ჭ', 'ე', 'ღ', 'თ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'შ', 'დ', 'ფ', 'გ', 'ჰ', 'ჟ', 'კ', '₾'],\r\n ['{shift}', 'ძ', 'ხ', 'ჩ', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['ქ', 'წ', 'ე', 'რ', 'ტ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'ს', 'დ', 'ფ', 'გ', 'ჰ', 'ჯ', 'კ', 'ლ'],\r\n ['{shift}', 'ზ', 'ხ', 'ც', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['ქ', 'ჭ', 'ე', 'ღ', 'თ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'შ', 'დ', 'ფ', 'გ', 'ჰ', 'ჟ', 'კ', '₾'],\r\n ['{shift}', 'ძ', 'ხ', 'ჩ', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['ქ', 'წ', 'ე', 'რ', 'ტ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'ს', 'დ', 'ფ', 'გ', 'ჰ', 'ჯ', 'კ', 'ლ'],\r\n ['{shift}', 'ზ', 'ხ', 'ც', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['ქ', 'ჭ', 'ე', 'ღ', 'თ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'შ', 'დ', 'ფ', 'გ', 'ჰ', 'ჟ', 'კ', '₾'],\r\n ['{shift}', 'ძ', 'ხ', 'ჩ', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['ქ', 'წ', 'ე', 'რ', 'ტ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'ს', 'დ', 'ფ', 'გ', 'ჰ', 'ჯ', 'კ', 'ლ'],\r\n ['{shift}', 'ზ', 'ხ', 'ც', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['ქ', 'ჭ', 'ე', 'ღ', 'თ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'შ', 'დ', 'ფ', 'გ', 'ჰ', 'ჟ', 'კ', '₾'],\r\n ['{shift}', 'ძ', 'ხ', 'ჩ', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'აბგ',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'ka-GE',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ'],\r\n ['ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э'],\r\n ['{shift}', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ'],\r\n ['Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'З'],\r\n ['{shift}', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ'],\r\n ['ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э'],\r\n ['{shift}', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ'],\r\n ['Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'З'],\r\n ['{shift}', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ'],\r\n ['ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э'],\r\n ['{shift}', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ'],\r\n ['Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'З'],\r\n ['{shift}', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ'],\r\n ['ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э'],\r\n ['{shift}', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '{backspace}'],\r\n ['{numeric}', '/', '.ru', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ'],\r\n ['Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'З'],\r\n ['{shift}', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '{backspace}'],\r\n ['{numeric}', '/', '.ru', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.ru', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.ru', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'АБВ',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'ru-RU',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'å'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Å'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ö', 'Ä'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'å'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Å'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ö', 'Ä'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'å'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Å'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ö', 'Ä'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'å'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Å'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ö', 'Ä'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ABC',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'sv-SE',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Locale } from './Locale/type';\r\nimport { enUS } from './Locale/index';\r\n\r\n/** Injection token that can be used to specify the locale data for the keyboard. */\r\nexport const NGX_TOUCH_KEYBOARD_LOCALE = new InjectionToken<Locale>('NGX_TOUCH_KEYBOARD_LOCALE', {\r\n providedIn: 'root',\r\n factory: NGX_TOUCH_KEYBOARD_LOCALE_FACTORY,\r\n});\r\n\r\n/** @docs-private */\r\nexport function NGX_TOUCH_KEYBOARD_LOCALE_FACTORY(): Locale {\r\n return enUS;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { NGX_TOUCH_KEYBOARD_LOCALE } from './ngx-touch-keyboard.constants';\r\nimport { fnButton } from './Locale/constants';\r\nimport { Locale } from './Locale/type';\r\n\r\n@Component({\r\n selector: 'ngx-touch-keyboard',\r\n templateUrl: './ngx-touch-keyboard.component.html',\r\n styleUrls: ['./ngx-touch-keyboard.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NgxTouchKeyboardComponent {\r\n private _sanitizer = inject(DomSanitizer);\r\n private _elementRef = inject(ElementRef<HTMLInputElement>);\r\n private _defaultLocale = inject(NGX_TOUCH_KEYBOARD_LOCALE);\r\n\r\n locale: Locale = this._defaultLocale;\r\n layoutMode = 'text';\r\n layoutName = 'alphabetic';\r\n debug = false;\r\n\r\n closePanel = output<void>();\r\n\r\n private _activeButtonClass = 'active';\r\n private _holdInteractionTimeout!: number;\r\n private _holdTimeout!: number;\r\n private _isMouseHold!: boolean;\r\n private _caretPosition: number | null = null;\r\n private _caretPositionEnd: number | null = null;\r\n private _activeInputElement!: HTMLInputElement | HTMLTextAreaElement | null;\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Accessors\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Getter for maxLength\r\n */\r\n get maxLength(): number {\r\n return this._activeInputElement?.maxLength ?? -1;\r\n }\r\n\r\n /**\r\n * Getter for type of input\r\n */\r\n get isTextarea(): boolean {\r\n return this._activeInputElement?.type === 'textarea';\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Decorated methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * On keyup\r\n */\r\n @HostListener('window:keyup', ['$event'])\r\n handleKeyUp(event: KeyboardEvent): void {\r\n if (event.isTrusted) {\r\n this._caretEventHandler(event);\r\n this._handleHighlightKeyUp(event);\r\n }\r\n }\r\n\r\n /**\r\n * On keydown\r\n */\r\n @HostListener('window:keydown', ['$event'])\r\n handleKeyDown(event: KeyboardEvent): void {\r\n if (event.isTrusted) {\r\n this._handleHighlightKeyDown(event);\r\n }\r\n }\r\n\r\n /**\r\n * On pointerup (mouseup or touchend)\r\n */\r\n @HostListener('window:pointerup', ['$event'])\r\n handleMouseUp(event: PointerEvent): void {\r\n this._caretEventHandler(event);\r\n }\r\n\r\n /**\r\n * On select\r\n */\r\n @HostListener('window:select', ['$event'])\r\n handleSelect(event: Event): void {\r\n this._caretEventHandler(event);\r\n }\r\n\r\n /**\r\n * On selectionchange\r\n */\r\n @HostListener('window:selectionchange', ['$event'])\r\n handleSelectionChange(event: Event): void {\r\n this._caretEventHandler(event);\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Public methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Set locale\r\n *\r\n * @param value Locale\r\n */\r\n setLocale(value: Locale = this._defaultLocale): void {\r\n if (!(value && value.layouts)) {\r\n throw new Error('Locale is not defined');\r\n }\r\n\r\n this.locale = value;\r\n }\r\n\r\n /**\r\n * Set active input\r\n *\r\n * @param input Input native element\r\n */\r\n setActiveInput(input: HTMLInputElement | HTMLTextAreaElement): void {\r\n this._activeInputElement = input;\r\n\r\n /**\r\n * Tracking keyboard layout\r\n */\r\n const inputMode = this._activeInputElement?.inputMode;\r\n if (inputMode && ['text', 'search', 'email', 'url', 'numeric', 'decimal', 'tel'].some((i) => i === inputMode)) {\r\n this.layoutMode = inputMode;\r\n } else {\r\n this.layoutMode = 'text';\r\n }\r\n\r\n if (inputMode && ['numeric', 'decimal', 'tel'].some((i) => i === inputMode)) {\r\n this.layoutName = 'default';\r\n } else {\r\n this.layoutName = 'alphabetic';\r\n }\r\n\r\n if (this.debug) {\r\n console.log('Locale:', `${this.locale.code}`);\r\n console.log('Layout:', `${this.layoutMode}_${this.layoutName}`);\r\n }\r\n\r\n /**\r\n * we must ensure caretPosition doesn't persist once reactivated.\r\n */\r\n this._setCaretPosition(this._activeInputElement.selectionStart, this._activeInputElement.selectionEnd);\r\n\r\n if (this.debug) {\r\n console.log('Caret start at:', this._caretPosition, this._caretPositionEnd);\r\n }\r\n\r\n // And set focus to input\r\n this._focusActiveInput();\r\n }\r\n\r\n /**\r\n * Check whether the button is a standard button\r\n */\r\n isStandardButton = (button: string) => button && !(button[0] === '{' && button[button.length - 1] === '}');\r\n\r\n /**\r\n * Retrieve button type\r\n *\r\n * @param button The button's layout name\r\n * @return The button type\r\n */\r\n getButtonType(button: string): 'standard-key' | 'function-key' {\r\n return this.isStandardButton(button) ? 'standard-key' : 'function-key';\r\n }\r\n\r\n /**\r\n * Adds default classes to a given button\r\n *\r\n * @param button The button's layout name\r\n * @return The classes to be added to the button\r\n */\r\n getButtonClass(button: string): string {\r\n const buttonTypeClass = this.getButtonType(button);\r\n const buttonWithoutBraces = button.replace('{', '').replace('}', '');\r\n let buttonNormalized = '';\r\n\r\n if (buttonTypeClass !== 'standard-key') buttonNormalized = `${buttonWithoutBraces}-key`;\r\n\r\n return `${buttonTypeClass} ${buttonNormalized}`;\r\n }\r\n\r\n /**\r\n * Returns the display (label) name for a given button\r\n *\r\n * @param button The button's layout name\r\n * @return The display name to be show to the button\r\n */\r\n getButtonDisplayName(button: string): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(this.locale.display[button] || button);\r\n }\r\n\r\n /**\r\n * Handles clicks made to keyboard buttons\r\n *\r\n * @param button The button layout name.\r\n * @param event The button event.\r\n */\r\n handleButtonPress(button: string, e?: Event): void {\r\n if (this.debug) {\r\n console.log('Key press:', button);\r\n }\r\n\r\n if (button === fnButton.SHIFT) {\r\n this.layoutName = this.layoutName === 'alphabetic' ? 'shift' : 'alphabetic';\r\n return;\r\n } else if (button === fnButton.DONE) {\r\n this.closePanel.emit();\r\n return;\r\n }\r\n\r\n const commonParams: [number, number, boolean] = [this._caretPosition || 0, this._caretPositionEnd || 0, true];\r\n let output = this._activeInputElement?.value || '';\r\n\r\n // Handel functional button\r\n if (!this.isStandardButton(button)) {\r\n // Handel BACKSPACE\r\n if (button === fnButton.BACKSPACE) {\r\n output = this._removeAt(output, ...commonParams);\r\n }\r\n // Handel SPACE\r\n else if (button === fnButton.SPACE) {\r\n output = this._addStringAt(output, ' ', ...commonParams);\r\n }\r\n // Handel TAB\r\n else if (button === fnButton.TAB) {\r\n output = this._addStringAt(output, '\\t', ...commonParams);\r\n }\r\n // Handel ENTER\r\n else if (button === fnButton.ENTER) {\r\n if (this.isTextarea) {\r\n output = this._addStringAt(output, '\\n', ...commonParams);\r\n }\r\n }\r\n // Handel LAYOUT\r\n else {\r\n this.layoutName = button.substring(1, button.length - 1);\r\n return;\r\n }\r\n }\r\n // Handel standard button\r\n else {\r\n output = this._addStringAt(output, button, ...commonParams);\r\n }\r\n\r\n if (this._activeInputElement) {\r\n this._activeInputElement.value = output;\r\n\r\n if (this.debug) {\r\n console.log('Caret at:', this._caretPosition, this._caretPositionEnd, 'Button', e);\r\n }\r\n }\r\n\r\n this._dispatchEvents(button);\r\n }\r\n\r\n /**\r\n * Handles button down\r\n *\r\n * @param button The button layout name.\r\n * @param event The button event.\r\n */\r\n handleButtonDown(button: string, e?: Event): void {\r\n if (this.debug) {\r\n console.log('Key down:', button);\r\n }\r\n\r\n if (e) {\r\n /**\r\n * Handle event options\r\n */\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n /**\r\n * Add active class\r\n */\r\n this._setActiveButton(button);\r\n\r\n if (this._holdInteractionTimeout) clearTimeout(this._holdInteractionTimeout);\r\n if (this._holdTimeout) clearTimeout(this._holdTimeout);\r\n this._isMouseHold = true;\r\n\r\n /**\r\n * Time to wait until a key hold is detected\r\n */\r\n this._holdTimeout = window.setTimeout(() => {\r\n if (\r\n this._isMouseHold &&\r\n ((!button.includes('{') && !button.includes('}')) || button === fnButton.BACKSPACE || button === fnButton.SPACE)\r\n ) {\r\n if (this.debug) {\r\n console.log('Button hold:', button);\r\n }\r\n this.handleButtonHold(button);\r\n }\r\n clearTimeout(this._holdTimeout);\r\n }, 500);\r\n\r\n /**\r\n * Handel button Click after button down\r\n */\r\n this.handleButtonPress(button, e);\r\n }\r\n\r\n /**\r\n * Handles button up\r\n *\r\n * @param button The button layout name.\r\n * @param event The button event.\r\n */\r\n handleButtonUp(button: string, e?: Event): void {\r\n if (this.debug) {\r\n console.log('Key up:', button);\r\n }\r\n\r\n if (e) {\r\n /**\r\n * Handle event options\r\n */\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n /**\r\n * Remove active class\r\n */\r\n this._removeActiveButton();\r\n\r\n this._isMouseHold = false;\r\n if (this._holdInteractionTimeout) clearTimeout(this._holdInteractionTimeout);\r\n }\r\n\r\n /**\r\n * Handles button hold\r\n */\r\n handleButtonHold(button: string): void {\r\n if (this._holdInteractionTimeout) clearTimeout(this._holdInteractionTimeout);\r\n\r\n /**\r\n * Timeout dictating the speed of key hold iterations\r\n */\r\n this._holdInteractionTimeout = window.setTimeout(() => {\r\n if (this._isMouseHold) {\r\n this.handleButtonPress(button);\r\n this.handleButtonHold(button);\r\n } else {\r\n clearTimeout(this._holdInteractionTimeout);\r\n }\r\n }, 100);\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Private methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Changes the internal caret position\r\n *\r\n * @private\r\n * @param position The caret's start position\r\n * @param positionEnd The caret's end position\r\n */\r\n private _setCaretPosition(position: number | null, endPosition = position): void {\r\n this._caretPosition = position;\r\n this._caretPositionEnd = endPosition;\r\n }\r\n\r\n /**\r\n * Moves the cursor position by a given amount\r\n *\r\n * @private\r\n * @param length Represents by how many characters the input should be moved\r\n * @param minus Whether the cursor should be moved to the left or not.\r\n */\r\n private _updateCaretPos(length: number, minus = false) {\r\n const newCaretPos = this._updateCaretPosAction(length, minus);\r\n this._setCaretPosition(newCaretPos);\r\n // Scroll to bottom\r\n setTimeout(() => {\r\n this._activeInputElement?.scrollTo({\r\n top: this._activeInputElement.scrollHeight,\r\n } as ScrollToOptions);\r\n });\r\n }\r\n\r\n /**\r\n * Action method of updateCaretPos\r\n *\r\n * @private\r\n * @param length Represents by how many characters the input should be moved\r\n * @param minus Whether the cursor should be moved to the left or not.\r\n */\r\n private _updateCaretPosAction(length: number, minus = false) {\r\n let caretPosition = this._caretPosition;\r\n\r\n if (caretPosition != null) {\r\n if (minus) {\r\n if (caretPosition > 0) caretPosition = caretPosition - length;\r\n } else {\r\n caretPosition = caretPosition + length;\r\n }\r\n }\r\n\r\n return caretPosition;\r\n }\r\n\r\n /**\r\n * Removes an amount of characters before a given position\r\n *\r\n * @private\r\n * @param source The source input\r\n * @param position The (cursor) position from where the characters should be removed\r\n * @param moveCaret Whether to update input cursor\r\n */\r\n private _removeAt(source: string, position = source.length, positionEnd = source.length, moveCaret = false) {\r\n if (position === 0 && positionEnd === 0) {\r\n return source;\r\n }\r\n\r\n let output;\r\n\r\n if (position === positionEnd) {\r\n let prevTwoChars;\r\n let emojiMatched;\r\n const emojiMatchedReg = /([\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\r\n\r\n /**\r\n * Emojis are made out of two characters, so we must take a custom approach to trim them.\r\n * For more info: https://mathiasbynens.be/notes/javascript-unicode\r\n */\r\n if (position && position >= 0) {\r\n prevTwoChars = source.substring(position - 2, position);\r\n emojiMatched = prevTwoChars.match(emojiMatchedReg);\r\n\r\n if (emojiMatched) {\r\n output = source.substring(0, position - 2) + source.substring(position);\r\n if (moveCaret) this._updateCaretPos(2, true);\r\n } else {\r\n output = source.substring(0, position - 1) + source.substring(position);\r\n if (moveCaret) this._updateCaretPos(1, true);\r\n }\r\n } else {\r\n prevTwoChars = source.slice(-2);\r\n emojiMatched = prevTwoChars.match(emojiMatchedReg);\r\n\r\n if (emojiMatched) {\r\n output = source.slice(0, -2);\r\n if (moveCaret) this._updateCaretPos(2, true);\r\n } else {\r\n output = source.slice(0, -1);\r\n if (moveCaret) this._updateCaretPos(1, true);\r\n }\r\n }\r\n } else {\r\n output = source.slice(0, position) + source.slice(positionEnd);\r\n if (moveCaret) {\r\n this._setCaretPosition(position);\r\n }\r\n }\r\n\r\n return output;\r\n }\r\n\r\n /**\r\n * Adds a string to the input at a given position\r\n *\r\n * @private\r\n * @param source The source input\r\n * @param str The string to add\r\n * @param position The (cursor) position where the string should be added\r\n * @param moveCaret Whether to update virtual-keyboard cursor\r\n */\r\n private _addStringAt(\r\n source: string,\r\n str: string,\r\n position = source.length,\r\n positionEnd = source.length,\r\n moveCaret = false,\r\n ) {\r\n if (this.maxLength !== -1 && source.length >= this.maxLength) {\r\n return source;\r\n }\r\n\r\n let output;\r\n\r\n if (!position && position !== 0) {\r\n output = source + str;\r\n } else {\r\n output = [source.slice(0, position), str, source.slice(positionEnd)].join('');\r\n if (moveCaret) this._updateCaretPos(str.length, false);\r\n }\r\n\r\n return output;\r\n }\r\n\r\n /**\r\n * Method to dispatch necessary keyboard events to current input element.\r\n * @see https://w3c.github.io/uievents/tools/key-event-viewer.html\r\n *\r\n * @param button\r\n */\r\n private _dispatchEvents(button: string) {\r\n let key, code;\r\n if (button.includes('{') && button.includes('}')) {\r\n // Capitalize name\r\n key = button.slice(1, button.length - 1).toLowerCase();\r\n key = key.charAt(0).toUpperCase() + key.slice(1);\r\n code = key;\r\n } else {\r\n key = button;\r\n code = Number.isInteger(Number(button)) ? `Digit${button}` : `Key${button.toUpperCase()}`;\r\n }\r\n\r\n const eventInit: KeyboardEventInit = {\r\n bubbles: true,\r\n cancelable: true,\r\n shiftKey: this.layoutName == 'shift',\r\n key: key,\r\n code: code,\r\n location: 0,\r\n };\r\n\r\n // Simulate all needed events on base element\r\n this._activeInputElement?.dispatchEvent(new KeyboardEvent('keydown', eventInit));\r\n this._activeInputElement?.dispatchEvent(new KeyboardEvent('keypress', eventInit));\r\n this._activeInputElement?.dispatchEvent(new Event('input', { bubbles: true }));\r\n this._activeInputElement?.dispatchEvent(new KeyboardEvent('keyup', eventInit));\r\n\r\n // And set focus to input\r\n this._focusActiveInput();\r\n }\r\n\r\n /**\r\n * Called when an event that warrants a cursor position update is triggered\r\n *\r\n * @private\r\n * @param event\r\n */\r\n private _caretEventHandler(event: any) {\r\n let targetTagName = '';\r\n if (event.target.tagName) {\r\n targetTagName = event.target.tagName.toLowerCase();\r\n }\r\n\r\n const isTextInput =\r\n targetTagName === 'textarea' ||\r\n (targetTagName === 'input' && ['text', 'search', 'email', 'password', 'url', 'tel'].includes(event.target.type));\r\n\r\n const isKeyboard =\r\n event.target === this._elementRef.nativeElement ||\r\n (event.target && this._elementRef.nativeElement.contains(event.target));\r\n\r\n if (isTextInput && this._activeInputElement == event.target) {\r\n /**\r\n * Tracks current cursor position\r\n * As keys are pressed, text will be added/removed at that position within the input.\r\n */\r\n this._setCaretPosition(event.target.selectionStart, event.target.selectionEnd);\r\n\r\n if (this.debug) {\r\n console.log(\r\n 'Caret at:',\r\n this._caretPosition,\r\n this._caretPositionEnd,\r\n event && event.target.tagName.toLowerCase(),\r\n event,\r\n );\r\n }\r\n } else if (event.type === 'pointerup' && this._activeInputElement === document.activeElement && this._isMouseHold) {\r\n // This is needed to ensure that if the user releases the button outside of the window, the keyboard doesn't get stuck.\r\n this.handleButtonUp('');\r\n return;\r\n } else if (!isKeyboard && event?.type !== 'selectionchange') {\r\n /**\r\n * we must ensure caretPosition doesn't persist once reactivated.\r\n */\r\n this._setCaretPosition(null);\r\n\r\n if (this.debug) {\r\n console.log(`Caret position reset due to \"${event?.type}\" event`, event);\r\n }\r\n\r\n /**\r\n * Close panel\r\n */\r\n this.closePanel.emit();\r\n }\r\n }\r\n\r\n /**\r\n * Focus to input\r\n *\r\n * @private\r\n */\r\n private _focusActiveInput(): void {\r\n this._activeInputElement?.focus();\r\n this._activeInputElement?.setSelectionRange(this._caretPosition, this._caretPositionEnd);\r\n }\r\n\r\n /**\r\n * Handel highlight on key down\r\n *\r\n * @private\r\n * @param event The KeyboardEvent\r\n */\r\n private _handleHighlightKeyDown(event: KeyboardEvent): void {\r\n const buttonPressed = this._getKeyboardLayoutKey(event);\r\n /**\r\n * Add active class\r\n */\r\n this._setActiveButton(buttonPressed);\r\n }\r\n\r\n /**\r\n * Handel highlight on key up\r\n *\r\n * @private\r\n * @param event The KeyboardEvent\r\n */\r\n private _handleHighlightKeyUp(event: KeyboardEvent): void {\r\n const buttonPressed = this._getKeyboardLayoutKey(event);\r\n /**\r\n * Remove active class\r\n */\r\n this._removeActiveButton(buttonPressed);\r\n }\r\n\r\n /**\r\n * Transforms a KeyboardEvent's \"key.code\" string into a virtual-keyboard layout format\r\n *\r\n * @private\r\n * @param event The KeyboardEvent\r\n */\r\n private _getKeyboardLayoutKey(event: KeyboardEvent) {\r\n let output = '';\r\n const keyId = event.code || event.key;\r\n\r\n if (\r\n keyId?.includes('Space') ||\r\n keyId?.includes('Numpad') ||\r\n keyId?.includes('Backspace') ||\r\n keyId?.includes('CapsLock') ||\r\n keyId?.includes('Meta')\r\n ) {\r\n output = `{${event.code}}` || '';\r\n } else if (keyId?.includes('Control') || keyId?.includes('Shift') || keyId?.includes('Alt')) {\r\n output = `{${event.key}}` || '';\r\n } else {\r\n output = event.key || '';\r\n }\r\n\r\n return output.length > 1 ? output?.toLowerCase() : output;\r\n }\r\n\r\n /**\r\n * Set active class in button\r\n *\r\n * @param buttonName\r\n */\r\n private _setActiveButton(buttonName: string): void {\r\n const node = this._elementRef.nativeElement.getElementsByTagName('button').namedItem(buttonName);\r\n if (node && node.classList) {\r\n node.classList.add(this._activeButtonClass);\r\n }\r\n }\r\n\r\n /**\r\n * Remove active button\r\n *\r\n * @param buttonName\r\n */\r\n private _removeActiveButton(buttonName?: string): void {\r\n const nodes = this._elementRef.nativeElement.getElementsByTagName('button');\r\n if (buttonName) {\r\n const node = nodes.namedItem(buttonName);\r\n if (node && node.classList) {\r\n node.classList.remove(this._activeButtonClass);\r\n }\r\n } else {\r\n for (let i = 0; i < nodes.length; i++) {\r\n nodes[i].classList.remove(this._activeButtonClass);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"touch-keyboard\" [class]=\"'layout-' + layoutMode + '-' + layoutName\">\r\n @for (row of locale.layouts[layoutMode + \"_\" + layoutName]; track row[0]) {\r\n <div class=\"touch-keyboard-row\">\r\n @for (key of row; track key) {\r\n <button\r\n [name]=\"key\"\r\n type=\"button\"\r\n [dir]=\"locale.dir\"\r\n class=\"touch-keyboard-key\"\r\n [class]=\"getButtonClass(key)\"\r\n [attr.data-layout]=\"layoutMode\"\r\n (pointerup)=\"handleButtonUp(key, $event)\"\r\n (pointerdown)=\"handleButtonDown(key, $event)\"\r\n (pointercancel)=\"handleButtonUp(key, $event)\"\r\n [innerHtml]=\"getButtonDisplayName(key)\"\r\n ></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import {\r\n booleanAttribute,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n input,\r\n model,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Overlay, OverlayRef, OverlaySizeConfig, PositionStrategy } from '@angular/cdk/overlay';\r\nimport { NgxTouchKeyboardComponent } from './ngx-touch-keyboard.component';\r\nimport { Locale } from './Locale/type';\r\n\r\n/**\r\n * Directive applied to an element to make it usable as an origin for an keyboard using a\r\n * ConnectedPositionStrategy.\r\n */\r\n@Directive({\r\n selector: '[ngxTouchKeyboardOrigin]',\r\n exportAs: 'ngxTouchKeyboardOrigin',\r\n})\r\nexport class NgxTouchKeyboardOrigin {\r\n elementRef = inject(ElementRef);\r\n}\r\n\r\n/**\r\n * This directive provides methods to open, close, and toggle the touch keyboard panel.\r\n * It also handles the creation and configuration of the overlay used to display the keyboard.\r\n */\r\n@Directive({\r\n selector: `input[ngxTouchKeyboard],\r\n textarea[ngxTouchKeyboard],\r\n ion-input[ngxTouchKeyboard],\r\n ion-textarea[ngxTouchKeyboard]`,\r\n exportAs: 'ngxTouchKeyboard',\r\n})\r\nexport class NgxTouchKeyboardDirective implements OnDestroy {\r\n private _overlay = inject(Overlay);\r\n private _elementRef = inject(ElementRef<HTMLInputElement>);\r\n private _isMobile = /Android|iPhone|iPad|iPod/i.test(navigator.userAgent);\r\n\r\n open = model(false, {\r\n alias: 'ngxTouchKeyboardOpen',\r\n });\r\n\r\n openOnFocus = input(false, {\r\n alias: 'ngxTouchKeyboardOpenOnFocus',\r\n transform: booleanAttribute,\r\n });\r\n\r\n locale = input<Locale | undefined>(undefined, {\r\n alias: 'ngxTouchKeyboardLocale',\r\n });\r\n\r\n debugMode = input(false, {\r\n alias: 'ngxTouchKeyboardDebug',\r\n transform: booleanAttribute,\r\n });\r\n\r\n fullScreenMode = input(false, {\r\n alias: 'ngxTouchKeyboardFullScreen',\r\n transform: booleanAttribute,\r\n });\r\n\r\n origin = input<NgxTouchKeyboardOrigin | null>(null, {\r\n alias: 'ngxConnectedTouchKeyboardOrigin',\r\n });\r\n\r\n private _overlayRef!: OverlayRef;\r\n private _panelRef!: ComponentRef<NgxTouchKeyboardComponent>;\r\n\r\n @HostListener('focus')\r\n @HostListener('ionFocus')\r\n onFocus() {\r\n if (this.openOnFocus() && !this.open()) {\r\n this.openPanel();\r\n }\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Lifecycle hooks\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * On changes\r\n */\r\n ngOnChanges() {\r\n this.open() ? this.openPanel() : this.closePanel();\r\n }\r\n\r\n /**\r\n * On destroy\r\n */\r\n ngOnDestroy(): void {\r\n // Dispose the overlay\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n }\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Public methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Open keyboard panel\r\n */\r\n openPanel(): void {\r\n // return if panel is attached\r\n if (this._overlayRef?.hasAttached()) {\r\n return;\r\n }\r\n\r\n // Create the overlay if it doesn't exist\r\n if (!this._overlayRef) {\r\n this._createOverlay();\r\n }\r\n\r\n // Set overlay class\r\n if (this.fullScreenMode()) {\r\n this._overlayRef.addPanelClass('ngx-touch-keyboard-fullScreen');\r\n } else {\r\n this._overlayRef.removePanelClass('ngx-touch-keyboard-fullScreen');\r\n }\r\n\r\n // Update position the overlay\r\n this._overlayRef.updatePositionStrategy(this._getPositionStrategy(this.fullScreenMode()));\r\n\r\n // Update size the overlay\r\n this._overlayRef.updateSize(this._getOverlaySize(this.fullScreenMode()));\r\n\r\n // Get the input element associated with the directive\r\n const inputElement = this._getInputElement();\r\n\r\n // Set input to readonly on mobile devices to prevent the native keyboard from appearing\r\n if (this._isMobile) inputElement.readOnly = true;\r\n\r\n // Attach the portal to the overlay\r\n this._panelRef = this._overlayRef.attach(new ComponentPortal(NgxTouchKeyboardComponent));\r\n this._panelRef.instance.debug = this.debugMode();\r\n this._panelRef.instance.setLocale(this.locale());\r\n this._panelRef.instance.setActiveInput(inputElement);\r\n this._panelRef.instance.closePanel.subscribe(() => this.closePanel());\r\n this.open.set(true);\r\n }\r\n\r\n /**\r\n * Close keyboard panel\r\n */\r\n closePanel(): void {\r\n if (this._isMobile) {\r\n this._elementRef.nativeElement.readOnly = false;\r\n this._elementRef.nativeElement.blur();\r\n }\r\n this._overlayRef?.detach();\r\n this.open.set(false);\r\n }\r\n\r\n /**\r\n * Toggle keyboard panel\r\n */\r\n togglePanel(): void {\r\n this.open() ? this.closePanel() : this.openPanel();\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Private methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Create the overlay\r\n *\r\n * @private\r\n */\r\n private _createOverlay(): void {\r\n this._overlayRef = this._overlay.create({\r\n direction: 'ltr',\r\n hasBackdrop: false,\r\n panelClass: 'ngx-touch-keyboard-overlay-pane',\r\n scrollStrategy: this._overlay.scrollStrategies.noop(),\r\n });\r\n }\r\n\r\n /**\r\n * Get position strategy\r\n *\r\n * @param fullscreen\r\n * @private\r\n */\r\n private _getPositionStrategy(fullscreen: boolean): PositionStrategy {\r\n if (fullscreen) {\r\n return this._overlay.position().global().centerHorizontally().bottom('0');\r\n }\r\n\r\n return this._overlay\r\n .position()\r\n .flexibleConnectedTo(this._getOriginElement())\r\n .withLockedPosition()\r\n .withPush()\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n },\r\n ]);\r\n }\r\n\r\n /**\r\n * Get overlay size\r\n *\r\n * @param fullscreen\r\n * @private\r\n */\r\n private _getOverlaySize(fullscreen: boolean): OverlaySizeConfig {\r\n if (fullscreen) {\r\n return {\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: '100%',\r\n };\r\n }\r\n\r\n return {\r\n width: this._getOriginElement().getBoundingClientRect().width,\r\n maxWidth: this._getOriginElement().getBoundingClientRect().width,\r\n minWidth: '260px',\r\n };\r\n }\r\n\r\n /**\r\n * Gets the input element associated with the directive.\r\n * This is necessary because when the directive is applied to an Ionic component (ion-input or ion-textarea),\r\n * the actual input element is nested inside the component's template.\r\n *\r\n * @private\r\n */\r\n private _getInputElement(): HTMLInputElement | HTMLTextAreaElement {\r\n if (['ION-INPUT', 'ION-TEXTAREA'].includes(this._elementRef.nativeElement.tagName)) {\r\n return this._elementRef.nativeElement.querySelector('input, textarea');\r\n }\r\n\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n /**\r\n * Gets the origin element for the keyboard panel.\r\n *\r\n * @private\r\n */\r\n private _getOriginElement(): any {\r\n if (this.origin()) {\r\n return this.origin()?.elementRef.nativeElement;\r\n }\r\n\r\n const element = this._elementRef.nativeElement;\r\n\r\n // Material form field <= v14\r\n if (element.classList.contains('mat-input-element')) {\r\n // Return [mat-form-field-flex] element\r\n return element.parentNode?.parentNode;\r\n }\r\n\r\n // Material form field > v14\r\n if (element.classList.contains('mat-mdc-input-element')) {\r\n // Return [mat-mdc-text-field-wrapper] element\r\n return element.parentNode?.parentNode?.parentNode;\r\n }\r\n\r\n // Return input\r\n return element;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nimport { NgxTouchKeyboardOrigin, NgxTouchKeyboardDirective } from './ngx-touch-keyboard.directive';\r\nimport { NgxTouchKeyboardComponent } from './ngx-touch-keyboard.component';\r\n\r\n@NgModule({\r\n imports: [PortalModule, OverlayModule],\r\n declarations: [NgxTouchKeyboardOrigin, NgxTouchKeyboardDirective, NgxTouchKeyboardComponent],\r\n exports: [NgxTouchKeyboardOrigin, NgxTouchKeyboardDirective, NgxTouchKeyboardComponent],\r\n})\r\nexport class NgxTouchKeyboardModule {}\r\n","/*\r\n * Public API Surface of ngx-touch-keyboard\r\n */\r\nexport * from './lib/ngx-touch-keyboard.constants';\r\nexport * from './lib/ngx-touch-keyboard.component';\r\nexport * from './lib/ngx-touch-keyboard.directive';\r\nexport * from './lib/ngx-touch-keyboard.module';\r\nexport * from './lib/Locale/constants';\r\nexport * from './lib/Locale/type';\r\nexport * from './lib/Locale';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["layouts","display","locale","enUS"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-touch-keyboard.mjs","sources":["../../../projects/ngx-touch-keyboard/src/lib/Locale/constants.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/en-GB/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/en-US/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/es-Es/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/fa-IR/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/he-IL/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/ka-GE/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/ru-RU/index.ts","../../../projects/ngx-touch-keyboard/src/lib/Locale/sv-SE/index.ts","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.constants.ts","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.component.ts","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.component.html","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.directive.ts","../../../projects/ngx-touch-keyboard/src/lib/ngx-touch-keyboard.module.ts","../../../projects/ngx-touch-keyboard/src/public-api.ts","../../../projects/ngx-touch-keyboard/src/ngx-touch-keyboard.ts"],"sourcesContent":["/**\r\n * A collection of constants representing special function buttons for a touch keyboard.\r\n * Each constant is a string that corresponds to a specific keyboard action.\r\n */\r\nexport const fnButton = {\r\n DONE: `{done}`,\r\n ENTER: `{enter}`,\r\n SEARCH: `{search}`,\r\n SHIFT: `{shift}`,\r\n BACKSPACE: `{backspace}`,\r\n LANGUAGE: `{language}`,\r\n SPACE: `{space}`,\r\n TAB: `{tab}`,\r\n};\r\n\r\n/**\r\n * An object containing SVG icons for various keyboard functions.\r\n */\r\nexport const fnDisplay = {\r\n DONE: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"m12 15-5-5h10Z\"/></svg>`,\r\n ENTER: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"m9 18-6-6 6-6 1.4 1.4L6.8 11H19V7h2v6H6.8l3.6 3.6Z\"/></svg>`,\r\n SEARCH: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"M9 3.5a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11ZM2 9a7 7 0 1 1 12.452 4.391l3.328 3.329a.75.75 0 1 1-1.06 1.06l-3.329-3.328A7 7 0 0 1 2 9Z\" clip-rule=\"evenodd\" /></svg>`,\r\n SHIFT: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"M10.8796773,2.4676627 C10.7983669,2.53542133 10.7233714,2.61041687 10.6556128,2.69172724 L2.79065437,12.1296773 C2.17191723,12.8721619 2.27223434,13.9756501 3.01471891,14.5943872 L3.15432027,14.6993778 C3.44275103,14.8945506 3.78413686,15 4.13504161,15 L6.999,15 L7,20.25 C7,21.2164983 7.78350169,22 8.75,22 L15.25,22 L15.3935272,21.9941988 C16.2928897,21.9211923 17,21.1681734 17,20.25 L16.999,15 L19.8649584,15 C20.8314567,15 21.6149584,14.2164983 21.6149584,13.25 C21.6149584,12.8406111 21.47143,12.4441786 21.2093456,12.1296773 L13.3443872,2.69172724 C12.7600244,1.99049181 11.7432755,1.8620539 11.0066223,2.37118457 L10.8796773,2.4676627 Z M12.1920553,3.65200384 L20.0570137,13.0899539 C20.0944543,13.1348827 20.1149584,13.1915159 20.1149584,13.25 C20.1149584,13.3880712 20.0030296,13.5 19.8649584,13.5 L16.25,13.5 C15.8357864,13.5 15.5,13.8357864 15.5,14.25 L15.5,20.25 C15.5,20.3880712 15.3880712,20.5 15.25,20.5 L8.75,20.5 C8.61192881,20.5 8.5,20.3880712 8.5,20.25 L8.5,14.25 C8.5,13.8357864 8.16421356,13.5 7.75,13.5 L4.13504161,13.5 C4.07655749,13.5 4.01992426,13.4794959 3.97499551,13.4420553 C3.86892629,13.3536643 3.85459527,13.1960231 3.94298629,13.0899539 L11.8079447,3.65200384 C11.8176245,3.64038807 11.8283381,3.62967442 11.8399539,3.61999462 C11.9460231,3.5316036 12.1036643,3.54593461 12.1920553,3.65200384 Z\"></path></svg>`,\r\n BACKSPACE: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"M18.75,4 C20.4830315,4 21.8992459,5.35645477 21.9948552,7.06557609 L22,7.25 L22,16.75 C22,18.4830315 20.6435452,19.8992459 18.9344239,19.9948552 L18.75,20 L10.2488122,20 C9.48467584,20 8.74731983,19.7308489 8.16441163,19.243553 L8.00936186,19.1052839 L3.01367221,14.3552839 C1.71288481,13.1184697 1.66102433,11.0613371 2.89783857,9.76054971 L3.01367221,9.64471607 L8.00936186,4.89471607 C8.56313355,4.36817906 9.28295917,4.05514987 10.0411712,4.00663485 L10.2488122,4 L18.75,4 Z M18.75,5.5 L10.2488122,5.5 C9.85605678,5.5 9.47644043,5.63205173 9.16975262,5.87226779 L9.04295431,5.98177019 L4.04726465,10.7317702 L3.98489269,10.7941421 C3.3580909,11.4533647 3.34595643,12.473346 3.93064574,13.1462921 L4.04726465,13.2682298 L9.04295431,18.0182298 C9.32758521,18.2888625 9.69368599,18.4547433 10.0814672,18.4919848 L10.2488122,18.5 L18.75,18.5 C19.6681734,18.5 20.4211923,17.7928897 20.4941988,16.8935272 L20.5,16.75 L20.5,7.25 C20.5,6.3318266 19.7928897,5.57880766 18.8935272,5.5058012 L18.75,5.5 Z M11.4462117,8.39705176 L11.5303301,8.46966991 L14.000116,10.939 L16.4696699,8.46966991 C16.7625631,8.1767767 17.2374369,8.1767767 17.5303301,8.46966991 C17.7965966,8.73593648 17.8208027,9.15260016 17.6029482,9.44621165 L17.5303301,9.53033009 L15.061116,12 L17.5303301,14.4696699 C17.8232233,14.7625631 17.8232233,15.2374369 17.5303301,15.5303301 C17.2640635,15.7965966 16.8473998,15.8208027 16.5537883,15.6029482 L16.4696699,15.5303301 L14.000116,13.061 L11.5303301,15.5303301 C11.2374369,15.8232233 10.7625631,15.8232233 10.4696699,15.5303301 C10.2034034,15.2640635 10.1791973,14.8473998 10.3970518,14.5537883 L10.4696699,14.4696699 L12.939116,12 L10.4696699,9.53033009 C10.1767767,9.23743687 10.1767767,8.76256313 10.4696699,8.46966991 C10.7359365,8.20340335 11.1526002,8.1791973 11.4462117,8.39705176 Z\"></path></svg>`,\r\n LANGUAGE: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"M12 22q-2.05 0-3.875-.788-1.825-.787-3.187-2.15-1.363-1.362-2.15-3.187Q2 14.05 2 12q0-2.075.788-3.887.787-1.813 2.15-3.175Q6.3 3.575 8.125 2.787 9.95 2 12 2q2.075 0 3.887.787 1.813.788 3.175 2.151 1.363 1.362 2.15 3.175Q22 9.925 22 12q0 2.05-.788 3.875-.787 1.825-2.15 3.187-1.362 1.363-3.175 2.15Q14.075 22 12 22Zm0-2.05q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075.475.975 1.125 1.875Zm-2.6-.4q-.45-.825-.787-1.713Q8.275 16.95 8.05 16H5.1q.725 1.25 1.812 2.175Q8 19.1 9.4 19.55Zm5.2 0q1.4-.45 2.487-1.375Q18.175 17.25 18.9 16h-2.95q-.225.95-.562 1.837-.338.888-.788 1.713ZM4.25 14h3.4q-.075-.5-.113-.988Q7.5 12.525 7.5 12t.037-1.012q.038-.488.113-.988h-3.4q-.125.5-.188.988Q4 11.475 4 12t.062 1.012q.063.488.188.988Zm5.4 0h4.7q.075-.5.113-.988.037-.487.037-1.012t-.037-1.012q-.038-.488-.113-.988h-4.7q-.075.5-.112.988Q9.5 11.475 9.5 12t.038 1.012q.037.488.112.988Zm6.7 0h3.4q.125-.5.188-.988Q20 12.525 20 12t-.062-1.012q-.063-.488-.188-.988h-3.4q.075.5.112.988.038.487.038 1.012t-.038 1.012q-.037.488-.112.988Zm-.4-6h2.95q-.725-1.25-1.813-2.175Q16 4.9 14.6 4.45q.45.825.788 1.712.337.888.562 1.838ZM10.1 8h3.8q-.3-1.1-.775-2.075Q12.65 4.95 12 4.05q-.65.9-1.125 1.875T10.1 8Zm-5 0h2.95q.225-.95.563-1.838.337-.887.787-1.712Q8 4.9 6.912 5.825 5.825 6.75 5.1 8Z\"/></svg>`,\r\n SPACE: ` `,\r\n TAB: `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" width=\"20\" viewBox=\"0 0 24 24\"><path d=\"m12 18-1.425-1.4 3.6-3.6H2v-2h12.175L10.6 7.4 12 6l6 6Zm8 0V6h2v12Z\"/></svg>`,\r\n};\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ABC',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'en-GB',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ABC',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'en-US',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ñ'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ñ'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ñ'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ñ'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ABC',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'es-ES',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['ض', 'ص', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'چ'],\r\n ['ش', 'س', 'ی', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ک', 'گ'],\r\n ['ظ', 'ط', 'ژ', 'ز', 'ر', 'ذ', 'د', 'پ', 'و', 'ث', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['-', '/', ':', '؛', ')', '(', '$', '@', '»', '«'],\r\n ['{symbolic}', '.', '،', '؟', '!', '٫', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n [']', '[', '}', '{', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '>', '<', '&', '•', '‘', '“'],\r\n ['{numeric}', '.', '،', '؟', '!', '٬', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['ض', 'ص', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'چ'],\r\n ['ش', 'س', 'ی', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ک', 'گ'],\r\n ['ظ', 'ط', 'ژ', 'ز', 'ر', 'ذ', 'د', 'پ', 'و', 'ث', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['-', '/', ':', '؛', ')', '(', '$', '@', '»', '«'],\r\n ['{symbolic}', '.', '،', '؟', '!', '٫', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n [']', '[', '}', '{', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '>', '<', '&', '•', '‘', '“'],\r\n ['{numeric}', '.', '،', '؟', '!', '٬', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['ض', 'ص', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'چ'],\r\n ['ش', 'س', 'ی', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ک', 'گ'],\r\n ['ظ', 'ط', 'ژ', 'ز', 'ر', 'ذ', 'د', 'پ', 'و', 'ث', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['$', '!', '~', '&', '=', '#', ']', '['],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', ']', '['],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['ض', 'ص', 'ق', 'ف', 'غ', 'ع', 'ه', 'خ', 'ح', 'ج', 'چ'],\r\n ['ش', 'س', 'ی', 'ب', 'ل', 'ا', 'ت', 'ن', 'م', 'ک', 'گ'],\r\n ['ظ', 'ط', 'ژ', 'ز', 'ر', 'ذ', 'د', 'پ', 'و', 'ث', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['@', '&', '%', '?', ',', '=', ']', '['],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'],\r\n ['*', '$', '#', '!', \"'\", '^', ']', '['],\r\n ['{numeric}', '~', ';', ')', '(', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['۱', '۲', '۳', '٫'],\r\n ['۴', '۵', '۶', '-'],\r\n ['۷', '۸', '۹', '{backspace}'],\r\n ['۰', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['۱', '۲', '۳', '٫'],\r\n ['۴', '۵', '۶', '-'],\r\n ['۷', '۸', '۹', '{backspace}'],\r\n ['۰', '{done}'],\r\n ],\r\n tel_default: [\r\n ['۱', '۲', '۳', '+'],\r\n ['۴', '۵', '۶', '-'],\r\n ['۷', '۸', '۹', '{backspace}'],\r\n ['*', '۰', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ا‌ب‌پ',\r\n '{numeric}': '۱۲۳',\r\n '{symbolic}': '=+#',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'fa-IR',\r\n dir: 'rtl',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['ק', 'ר', 'א', 'ט', 'ו', 'ן', 'ם', 'פ'],\r\n ['ש', 'ד', 'ג', 'כ', 'ע', 'י', 'ח', 'ל', 'ך', 'ף'],\r\n ['ז', 'ס', 'ב', 'ה', 'נ', 'מ', 'צ', 'ת', 'ץ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '₪', '@', '\"', \"'\"],\r\n ['{symbolic}', '.', ',', '?', '!', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '$', '&', '•'],\r\n ['{numeric}', '.', ',', '?', '!', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['ק', 'ר', 'א', 'ט', 'ו', 'ן', 'ם', 'פ'],\r\n ['ש', 'ד', 'ג', 'כ', 'ע', 'י', 'ח', 'ל', 'ך', 'ף'],\r\n ['ז', 'ס', 'ב', 'ה', 'נ', 'מ', 'צ', 'ת', 'ץ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '₪', '@', '\"', \"'\"],\r\n ['{symbolic}', '.', ',', '?', '!', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '$', '&', '•'],\r\n ['{numeric}', '.', ',', '?', '!', '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['ק', 'ר', 'א', 'ט', 'ו', 'ן', 'ם', 'פ'],\r\n ['ש', 'ד', 'ג', 'כ', 'ע', 'י', 'ח', 'ל', 'ך', 'ף'],\r\n ['ז', 'ס', 'ב', 'ה', 'נ', 'מ', 'צ', 'ת', 'ץ', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['₪', '!', '~', '&', '=', '#', ']', '['],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['₪', '!', '~', '&', '=', '#', ']', '['],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['ק', 'ר', 'א', 'ט', 'ו', 'ן', 'ם', 'פ'],\r\n ['ש', 'ד', 'ג', 'כ', 'ע', 'י', 'ח', 'ל', 'ך', 'ף'],\r\n ['ז', 'ס', 'ב', 'ה', 'נ', 'מ', 'צ', 'ת', 'ץ', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', ']', '['],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '₪', '#', '!', \"'\", '^', ']', '['],\r\n ['{numeric}', '~', ';', ')', '(', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'אבג',\r\n '{numeric}': '123',\r\n '{symbolic}': '=+#',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'he-IL',\r\n dir: 'rtl',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['ქ', 'წ', 'ე', 'რ', 'ტ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'ს', 'დ', 'ფ', 'გ', 'ჰ', 'ჯ', 'კ', 'ლ'],\r\n ['{shift}', 'ზ', 'ხ', 'ც', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['ქ', 'ჭ', 'ე', 'ღ', 'თ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'შ', 'დ', 'ფ', 'გ', 'ჰ', 'ჟ', 'კ', '₾'],\r\n ['{shift}', 'ძ', 'ხ', 'ჩ', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['ქ', 'წ', 'ე', 'რ', 'ტ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'ს', 'დ', 'ფ', 'გ', 'ჰ', 'ჯ', 'კ', 'ლ'],\r\n ['{shift}', 'ზ', 'ხ', 'ც', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['ქ', 'ჭ', 'ე', 'ღ', 'თ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'შ', 'დ', 'ფ', 'გ', 'ჰ', 'ჟ', 'კ', '₾'],\r\n ['{shift}', 'ძ', 'ხ', 'ჩ', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['ქ', 'წ', 'ე', 'რ', 'ტ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'ს', 'დ', 'ფ', 'გ', 'ჰ', 'ჯ', 'კ', 'ლ'],\r\n ['{shift}', 'ზ', 'ხ', 'ც', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['ქ', 'ჭ', 'ე', 'ღ', 'თ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'შ', 'დ', 'ფ', 'გ', 'ჰ', 'ჟ', 'კ', '₾'],\r\n ['{shift}', 'ძ', 'ხ', 'ჩ', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['ქ', 'წ', 'ე', 'რ', 'ტ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'ს', 'დ', 'ფ', 'გ', 'ჰ', 'ჯ', 'კ', 'ლ'],\r\n ['{shift}', 'ზ', 'ხ', 'ც', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['ქ', 'ჭ', 'ე', 'ღ', 'თ', 'ყ', 'უ', 'ი', 'ო', 'პ'],\r\n ['ა', 'შ', 'დ', 'ფ', 'გ', 'ჰ', 'ჟ', 'კ', '₾'],\r\n ['{shift}', 'ძ', 'ხ', 'ჩ', 'ვ', 'ბ', 'ნ', 'მ', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'აბგ',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'ka-GE',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ'],\r\n ['ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э'],\r\n ['{shift}', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ'],\r\n ['Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'З'],\r\n ['{shift}', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ'],\r\n ['ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э'],\r\n ['{shift}', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ'],\r\n ['Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'З'],\r\n ['{shift}', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ'],\r\n ['ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э'],\r\n ['{shift}', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ'],\r\n ['Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'З'],\r\n ['{shift}', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ'],\r\n ['ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э'],\r\n ['{shift}', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '{backspace}'],\r\n ['{numeric}', '/', '.ru', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ'],\r\n ['Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'З'],\r\n ['{shift}', 'Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '{backspace}'],\r\n ['{numeric}', '/', '.ru', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.ru', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.ru', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'АБВ',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'ru-RU',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { Layout, Display, Locale } from '../type';\r\nimport { fnDisplay } from '../constants';\r\n\r\nconst layouts: Layout = {\r\n text_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'å'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Å'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ö', 'Ä'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n text_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n text_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'å'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Å'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ö', 'Ä'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '{space}', '{done}'],\r\n ],\r\n search_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['-', '/', ':', ';', '(', ')', '$', '&', '@', '\"'],\r\n ['{symbolic}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n search_symbolic: [\r\n ['[', ']', '{', '}', '#', '%', '^', '*', '+', '='],\r\n ['_', '\\\\', '|', '~', '<', '>', '€', '£', '¥', '•'],\r\n ['{numeric}', '.', ',', '?', '!', \"'\", '{backspace}'],\r\n ['{alphabetic}', '{space}', '{done}'],\r\n ],\r\n email_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'å'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Å'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ö', 'Ä'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{symbolic}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n email_symbolic: [\r\n ['`', '|', '{', '}', '?', '%', '^', '*', '/', \"'\"],\r\n ['$', '!', '~', '&', '=', '#', '[', ']'],\r\n ['{numeric}', '.', '_', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '@', '{space}', '.', '{done}'],\r\n ],\r\n url_alphabetic: [\r\n ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'å'],\r\n ['a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ö', 'ä'],\r\n ['{shift}', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_shift: [\r\n ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Å'],\r\n ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ö', 'Ä'],\r\n ['{shift}', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '{backspace}'],\r\n ['{numeric}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_numeric: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['@', '&', '%', '?', ',', '=', '[', ']'],\r\n ['{symbolic}', '_', ':', '-', '+', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n url_symbolic: [\r\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\r\n ['*', '$', '#', '!', \"'\", '^', '[', ']'],\r\n ['{numeric}', '~', ';', '(', ')', '{backspace}'],\r\n ['{alphabetic}', '/', '.com', '.', '{done}'],\r\n ],\r\n numeric_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n decimal_default: [\r\n ['1', '2', '3', '.'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['0', '{done}'],\r\n ],\r\n tel_default: [\r\n ['1', '2', '3', '+'],\r\n ['4', '5', '6', '-'],\r\n ['7', '8', '9', '{backspace}'],\r\n ['*', '0', '#', '{done}'],\r\n ],\r\n};\r\n\r\nconst display: Display = {\r\n '{done}': fnDisplay.DONE,\r\n '{shift}': fnDisplay.SHIFT,\r\n '{backspace}': fnDisplay.BACKSPACE,\r\n '{space}': fnDisplay.SPACE,\r\n '{alphabetic}': 'ABC',\r\n '{numeric}': '123',\r\n '{symbolic}': '#+=',\r\n};\r\n\r\nconst locale: Locale = {\r\n code: 'sv-SE',\r\n dir: 'ltr',\r\n layouts: layouts,\r\n display: display,\r\n};\r\n\r\nexport default locale;\r\n","import { InjectionToken } from '@angular/core';\r\nimport { Locale } from './Locale/type';\r\nimport { enUS } from './Locale/index';\r\n\r\n/** Injection token that can be used to specify the locale data for the keyboard. */\r\nexport const NGX_TOUCH_KEYBOARD_LOCALE = new InjectionToken<Locale>('NGX_TOUCH_KEYBOARD_LOCALE', {\r\n providedIn: 'root',\r\n factory: NGX_TOUCH_KEYBOARD_LOCALE_FACTORY,\r\n});\r\n\r\n/** @docs-private */\r\nexport function NGX_TOUCH_KEYBOARD_LOCALE_FACTORY(): Locale {\r\n return enUS;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { NGX_TOUCH_KEYBOARD_LOCALE } from './ngx-touch-keyboard.constants';\r\nimport { fnButton } from './Locale/constants';\r\nimport { Locale } from './Locale/type';\r\n\r\n@Component({\r\n selector: 'ngx-touch-keyboard',\r\n templateUrl: './ngx-touch-keyboard.component.html',\r\n styleUrls: ['./ngx-touch-keyboard.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NgxTouchKeyboardComponent {\r\n private _sanitizer = inject(DomSanitizer);\r\n private _elementRef = inject(ElementRef<HTMLInputElement>);\r\n private _defaultLocale = inject(NGX_TOUCH_KEYBOARD_LOCALE);\r\n\r\n locale: Locale = this._defaultLocale;\r\n layoutMode = 'text';\r\n layoutName = 'alphabetic';\r\n debug = false;\r\n\r\n closePanel = output<void>();\r\n\r\n private _activeButtonClass = 'active';\r\n private _holdInteractionTimeout!: number;\r\n private _holdTimeout!: number;\r\n private _isMouseHold!: boolean;\r\n private _caretPosition: number | null = null;\r\n private _caretPositionEnd: number | null = null;\r\n private _activeInputElement!: HTMLInputElement | HTMLTextAreaElement | null;\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Accessors\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Getter for maxLength\r\n */\r\n get maxLength(): number {\r\n return this._activeInputElement?.maxLength ?? -1;\r\n }\r\n\r\n /**\r\n * Getter for type of input\r\n */\r\n get isTextarea(): boolean {\r\n return this._activeInputElement?.type === 'textarea';\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Decorated methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * On keyup\r\n */\r\n @HostListener('window:keyup', ['$event'])\r\n handleKeyUp(event: KeyboardEvent): void {\r\n if (event.isTrusted) {\r\n this._caretEventHandler(event);\r\n this._handleHighlightKeyUp(event);\r\n }\r\n }\r\n\r\n /**\r\n * On keydown\r\n */\r\n @HostListener('window:keydown', ['$event'])\r\n handleKeyDown(event: KeyboardEvent): void {\r\n if (event.isTrusted) {\r\n this._handleHighlightKeyDown(event);\r\n }\r\n }\r\n\r\n /**\r\n * On pointerup (mouseup or touchend)\r\n */\r\n @HostListener('window:pointerup', ['$event'])\r\n handleMouseUp(event: PointerEvent): void {\r\n this._caretEventHandler(event);\r\n }\r\n\r\n /**\r\n * On select\r\n */\r\n @HostListener('window:select', ['$event'])\r\n handleSelect(event: Event): void {\r\n this._caretEventHandler(event);\r\n }\r\n\r\n /**\r\n * On selectionchange\r\n */\r\n @HostListener('window:selectionchange', ['$event'])\r\n handleSelectionChange(event: Event): void {\r\n this._caretEventHandler(event);\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Public methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Set locale\r\n *\r\n * @param value Locale\r\n */\r\n setLocale(value: Locale = this._defaultLocale): void {\r\n if (!(value && value.layouts)) {\r\n throw new Error('Locale is not defined');\r\n }\r\n\r\n this.locale = value;\r\n }\r\n\r\n /**\r\n * Set active input\r\n *\r\n * @param input Input native element\r\n */\r\n setActiveInput(input: HTMLInputElement | HTMLTextAreaElement): void {\r\n this._activeInputElement = input;\r\n\r\n /**\r\n * Tracking keyboard layout\r\n */\r\n const inputMode = this._activeInputElement?.inputMode;\r\n if (inputMode && ['text', 'search', 'email', 'url', 'numeric', 'decimal', 'tel'].some((i) => i === inputMode)) {\r\n this.layoutMode = inputMode;\r\n } else {\r\n this.layoutMode = 'text';\r\n }\r\n\r\n if (inputMode && ['numeric', 'decimal', 'tel'].some((i) => i === inputMode)) {\r\n this.layoutName = 'default';\r\n } else {\r\n this.layoutName = 'alphabetic';\r\n }\r\n\r\n if (this.debug) {\r\n console.log('Locale:', `${this.locale.code}`);\r\n console.log('Layout:', `${this.layoutMode}_${this.layoutName}`);\r\n }\r\n\r\n /**\r\n * we must ensure caretPosition doesn't persist once reactivated.\r\n */\r\n this._setCaretPosition(this._activeInputElement.selectionStart, this._activeInputElement.selectionEnd);\r\n\r\n if (this.debug) {\r\n console.log('Caret start at:', this._caretPosition, this._caretPositionEnd);\r\n }\r\n\r\n // And set focus to input\r\n this._focusActiveInput();\r\n }\r\n\r\n /**\r\n * Check whether the button is a standard button\r\n */\r\n isStandardButton = (button: string) => button && !(button[0] === '{' && button[button.length - 1] === '}');\r\n\r\n /**\r\n * Retrieve button type\r\n *\r\n * @param button The button's layout name\r\n * @return The button type\r\n */\r\n getButtonType(button: string): 'standard-key' | 'function-key' {\r\n return this.isStandardButton(button) ? 'standard-key' : 'function-key';\r\n }\r\n\r\n /**\r\n * Adds default classes to a given button\r\n *\r\n * @param button The button's layout name\r\n * @return The classes to be added to the button\r\n */\r\n getButtonClass(button: string): string {\r\n const buttonTypeClass = this.getButtonType(button);\r\n const buttonWithoutBraces = button.replace('{', '').replace('}', '');\r\n let buttonNormalized = '';\r\n\r\n if (buttonTypeClass !== 'standard-key') buttonNormalized = `${buttonWithoutBraces}-key`;\r\n\r\n return `${buttonTypeClass} ${buttonNormalized}`;\r\n }\r\n\r\n /**\r\n * Returns the display (label) name for a given button\r\n *\r\n * @param button The button's layout name\r\n * @return The display name to be show to the button\r\n */\r\n getButtonDisplayName(button: string): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(this.locale.display[button] || button);\r\n }\r\n\r\n /**\r\n * Handles clicks made to keyboard buttons\r\n *\r\n * @param button The button layout name.\r\n * @param event The button event.\r\n */\r\n handleButtonPress(button: string, e?: Event): void {\r\n if (this.debug) {\r\n console.log('Key press:', button);\r\n }\r\n\r\n if (button === fnButton.SHIFT) {\r\n this.layoutName = this.layoutName === 'alphabetic' ? 'shift' : 'alphabetic';\r\n return;\r\n } else if (button === fnButton.DONE) {\r\n this.closePanel.emit();\r\n return;\r\n }\r\n\r\n const commonParams: [number, number, boolean] = [this._caretPosition || 0, this._caretPositionEnd || 0, true];\r\n let output = this._activeInputElement?.value || '';\r\n\r\n // Handel functional button\r\n if (!this.isStandardButton(button)) {\r\n // Handel BACKSPACE\r\n if (button === fnButton.BACKSPACE) {\r\n output = this._removeAt(output, ...commonParams);\r\n }\r\n // Handel SPACE\r\n else if (button === fnButton.SPACE) {\r\n output = this._addStringAt(output, ' ', ...commonParams);\r\n }\r\n // Handel TAB\r\n else if (button === fnButton.TAB) {\r\n output = this._addStringAt(output, '\\t', ...commonParams);\r\n }\r\n // Handel ENTER\r\n else if (button === fnButton.ENTER) {\r\n if (this.isTextarea) {\r\n output = this._addStringAt(output, '\\n', ...commonParams);\r\n }\r\n }\r\n // Handel LAYOUT\r\n else {\r\n this.layoutName = button.substring(1, button.length - 1);\r\n return;\r\n }\r\n }\r\n // Handel standard button\r\n else {\r\n output = this._addStringAt(output, button, ...commonParams);\r\n }\r\n\r\n if (this._activeInputElement) {\r\n this._activeInputElement.value = output;\r\n\r\n if (this.debug) {\r\n console.log('Caret at:', this._caretPosition, this._caretPositionEnd, 'Button', e);\r\n }\r\n }\r\n\r\n this._dispatchEvents(button);\r\n }\r\n\r\n /**\r\n * Handles button down\r\n *\r\n * @param button The button layout name.\r\n * @param event The button event.\r\n */\r\n handleButtonDown(button: string, e?: Event): void {\r\n if (this.debug) {\r\n console.log('Key down:', button);\r\n }\r\n\r\n if (e) {\r\n /**\r\n * Handle event options\r\n */\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n /**\r\n * Add active class\r\n */\r\n this._setActiveButton(button);\r\n\r\n if (this._holdInteractionTimeout) clearTimeout(this._holdInteractionTimeout);\r\n if (this._holdTimeout) clearTimeout(this._holdTimeout);\r\n this._isMouseHold = true;\r\n\r\n /**\r\n * Time to wait until a key hold is detected\r\n */\r\n this._holdTimeout = window.setTimeout(() => {\r\n if (\r\n this._isMouseHold &&\r\n ((!button.includes('{') && !button.includes('}')) || button === fnButton.BACKSPACE || button === fnButton.SPACE)\r\n ) {\r\n if (this.debug) {\r\n console.log('Button hold:', button);\r\n }\r\n this.handleButtonHold(button);\r\n }\r\n clearTimeout(this._holdTimeout);\r\n }, 500);\r\n\r\n /**\r\n * Handel button Click after button down\r\n */\r\n this.handleButtonPress(button, e);\r\n }\r\n\r\n /**\r\n * Handles button up\r\n *\r\n * @param button The button layout name.\r\n * @param event The button event.\r\n */\r\n handleButtonUp(button: string, e?: Event): void {\r\n if (this.debug) {\r\n console.log('Key up:', button);\r\n }\r\n\r\n if (e) {\r\n /**\r\n * Handle event options\r\n */\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n /**\r\n * Remove active class\r\n */\r\n this._removeActiveButton();\r\n\r\n this._isMouseHold = false;\r\n if (this._holdInteractionTimeout) clearTimeout(this._holdInteractionTimeout);\r\n }\r\n\r\n /**\r\n * Handles button hold\r\n */\r\n handleButtonHold(button: string): void {\r\n if (this._holdInteractionTimeout) clearTimeout(this._holdInteractionTimeout);\r\n\r\n /**\r\n * Timeout dictating the speed of key hold iterations\r\n */\r\n this._holdInteractionTimeout = window.setTimeout(() => {\r\n if (this._isMouseHold) {\r\n this.handleButtonPress(button);\r\n this.handleButtonHold(button);\r\n } else {\r\n clearTimeout(this._holdInteractionTimeout);\r\n }\r\n }, 100);\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Private methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Changes the internal caret position\r\n *\r\n * @private\r\n * @param position The caret's start position\r\n * @param positionEnd The caret's end position\r\n */\r\n private _setCaretPosition(position: number | null, endPosition = position): void {\r\n this._caretPosition = position;\r\n this._caretPositionEnd = endPosition;\r\n }\r\n\r\n /**\r\n * Moves the cursor position by a given amount\r\n *\r\n * @private\r\n * @param length Represents by how many characters the input should be moved\r\n * @param minus Whether the cursor should be moved to the left or not.\r\n */\r\n private _updateCaretPos(length: number, minus = false) {\r\n const newCaretPos = this._updateCaretPosAction(length, minus);\r\n this._setCaretPosition(newCaretPos);\r\n // Scroll to bottom\r\n setTimeout(() => {\r\n this._activeInputElement?.scrollTo({\r\n top: this._activeInputElement.scrollHeight,\r\n } as ScrollToOptions);\r\n });\r\n }\r\n\r\n /**\r\n * Action method of updateCaretPos\r\n *\r\n * @private\r\n * @param length Represents by how many characters the input should be moved\r\n * @param minus Whether the cursor should be moved to the left or not.\r\n */\r\n private _updateCaretPosAction(length: number, minus = false) {\r\n let caretPosition = this._caretPosition;\r\n\r\n if (caretPosition != null) {\r\n if (minus) {\r\n if (caretPosition > 0) caretPosition = caretPosition - length;\r\n } else {\r\n caretPosition = caretPosition + length;\r\n }\r\n }\r\n\r\n return caretPosition;\r\n }\r\n\r\n /**\r\n * Removes an amount of characters before a given position\r\n *\r\n * @private\r\n * @param source The source input\r\n * @param position The (cursor) position from where the characters should be removed\r\n * @param moveCaret Whether to update input cursor\r\n */\r\n private _removeAt(source: string, position = source.length, positionEnd = source.length, moveCaret = false) {\r\n if (position === 0 && positionEnd === 0) {\r\n return source;\r\n }\r\n\r\n let output;\r\n\r\n if (position === positionEnd) {\r\n let prevTwoChars;\r\n let emojiMatched;\r\n const emojiMatchedReg = /([\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\r\n\r\n /**\r\n * Emojis are made out of two characters, so we must take a custom approach to trim them.\r\n * For more info: https://mathiasbynens.be/notes/javascript-unicode\r\n */\r\n if (position && position >= 0) {\r\n prevTwoChars = source.substring(position - 2, position);\r\n emojiMatched = prevTwoChars.match(emojiMatchedReg);\r\n\r\n if (emojiMatched) {\r\n output = source.substring(0, position - 2) + source.substring(position);\r\n if (moveCaret) this._updateCaretPos(2, true);\r\n } else {\r\n output = source.substring(0, position - 1) + source.substring(position);\r\n if (moveCaret) this._updateCaretPos(1, true);\r\n }\r\n } else {\r\n prevTwoChars = source.slice(-2);\r\n emojiMatched = prevTwoChars.match(emojiMatchedReg);\r\n\r\n if (emojiMatched) {\r\n output = source.slice(0, -2);\r\n if (moveCaret) this._updateCaretPos(2, true);\r\n } else {\r\n output = source.slice(0, -1);\r\n if (moveCaret) this._updateCaretPos(1, true);\r\n }\r\n }\r\n } else {\r\n output = source.slice(0, position) + source.slice(positionEnd);\r\n if (moveCaret) {\r\n this._setCaretPosition(position);\r\n }\r\n }\r\n\r\n return output;\r\n }\r\n\r\n /**\r\n * Adds a string to the input at a given position\r\n *\r\n * @private\r\n * @param source The source input\r\n * @param str The string to add\r\n * @param position The (cursor) position where the string should be added\r\n * @param moveCaret Whether to update virtual-keyboard cursor\r\n */\r\n private _addStringAt(\r\n source: string,\r\n str: string,\r\n position = source.length,\r\n positionEnd = source.length,\r\n moveCaret = false,\r\n ) {\r\n if (this.maxLength !== -1 && source.length >= this.maxLength) {\r\n return source;\r\n }\r\n\r\n let output;\r\n\r\n if (!position && position !== 0) {\r\n output = source + str;\r\n } else {\r\n output = [source.slice(0, position), str, source.slice(positionEnd)].join('');\r\n if (moveCaret) this._updateCaretPos(str.length, false);\r\n }\r\n\r\n return output;\r\n }\r\n\r\n /**\r\n * Method to dispatch necessary keyboard events to current input element.\r\n * @see https://w3c.github.io/uievents/tools/key-event-viewer.html\r\n *\r\n * @param button\r\n */\r\n private _dispatchEvents(button: string) {\r\n let key, code;\r\n if (button.includes('{') && button.includes('}')) {\r\n // Capitalize name\r\n key = button.slice(1, button.length - 1).toLowerCase();\r\n key = key.charAt(0).toUpperCase() + key.slice(1);\r\n code = key;\r\n } else {\r\n key = button;\r\n code = Number.isInteger(Number(button)) ? `Digit${button}` : `Key${button.toUpperCase()}`;\r\n }\r\n\r\n const eventInit: KeyboardEventInit = {\r\n bubbles: true,\r\n cancelable: true,\r\n shiftKey: this.layoutName == 'shift',\r\n key: key,\r\n code: code,\r\n location: 0,\r\n };\r\n\r\n // Simulate all needed events on base element\r\n this._activeInputElement?.dispatchEvent(new KeyboardEvent('keydown', eventInit));\r\n this._activeInputElement?.dispatchEvent(new KeyboardEvent('keypress', eventInit));\r\n this._activeInputElement?.dispatchEvent(new Event('input', { bubbles: true }));\r\n this._activeInputElement?.dispatchEvent(new KeyboardEvent('keyup', eventInit));\r\n\r\n // And set focus to input\r\n this._focusActiveInput();\r\n }\r\n\r\n /**\r\n * Called when an event that warrants a cursor position update is triggered\r\n *\r\n * @private\r\n * @param event\r\n */\r\n private _caretEventHandler(event: any) {\r\n let targetTagName = '';\r\n if (event.target.tagName) {\r\n targetTagName = event.target.tagName.toLowerCase();\r\n }\r\n\r\n const isTextInput =\r\n targetTagName === 'textarea' ||\r\n (targetTagName === 'input' && ['text', 'search', 'email', 'password', 'url', 'tel'].includes(event.target.type));\r\n\r\n const isKeyboard =\r\n event.target === this._elementRef.nativeElement ||\r\n (event.target && this._elementRef.nativeElement.contains(event.target));\r\n\r\n if (isTextInput && this._activeInputElement == event.target) {\r\n /**\r\n * Tracks current cursor position\r\n * As keys are pressed, text will be added/removed at that position within the input.\r\n */\r\n this._setCaretPosition(event.target.selectionStart, event.target.selectionEnd);\r\n\r\n if (this.debug) {\r\n console.log(\r\n 'Caret at:',\r\n this._caretPosition,\r\n this._caretPositionEnd,\r\n event && event.target.tagName.toLowerCase(),\r\n event,\r\n );\r\n }\r\n } else if (event.type === 'pointerup' && this._activeInputElement === document.activeElement && this._isMouseHold) {\r\n // This is needed to ensure that if the user releases the button outside of the window, the keyboard doesn't get stuck.\r\n this.handleButtonUp('');\r\n return;\r\n } else if (!isKeyboard && event?.type !== 'selectionchange') {\r\n /**\r\n * we must ensure caretPosition doesn't persist once reactivated.\r\n */\r\n this._setCaretPosition(null);\r\n\r\n if (this.debug) {\r\n console.log(`Caret position reset due to \"${event?.type}\" event`, event);\r\n }\r\n\r\n /**\r\n * Close panel\r\n */\r\n this.closePanel.emit();\r\n }\r\n }\r\n\r\n /**\r\n * Focus to input\r\n *\r\n * @private\r\n */\r\n private _focusActiveInput(): void {\r\n this._activeInputElement?.focus();\r\n this._activeInputElement?.setSelectionRange(this._caretPosition, this._caretPositionEnd);\r\n }\r\n\r\n /**\r\n * Handel highlight on key down\r\n *\r\n * @private\r\n * @param event The KeyboardEvent\r\n */\r\n private _handleHighlightKeyDown(event: KeyboardEvent): void {\r\n const buttonPressed = this._getKeyboardLayoutKey(event);\r\n /**\r\n * Add active class\r\n */\r\n this._setActiveButton(buttonPressed);\r\n }\r\n\r\n /**\r\n * Handel highlight on key up\r\n *\r\n * @private\r\n * @param event The KeyboardEvent\r\n */\r\n private _handleHighlightKeyUp(event: KeyboardEvent): void {\r\n const buttonPressed = this._getKeyboardLayoutKey(event);\r\n /**\r\n * Remove active class\r\n */\r\n this._removeActiveButton(buttonPressed);\r\n }\r\n\r\n /**\r\n * Transforms a KeyboardEvent's \"key.code\" string into a virtual-keyboard layout format\r\n *\r\n * @private\r\n * @param event The KeyboardEvent\r\n */\r\n private _getKeyboardLayoutKey(event: KeyboardEvent) {\r\n let output = '';\r\n const keyId = event.code || event.key;\r\n\r\n if (\r\n keyId?.includes('Space') ||\r\n keyId?.includes('Numpad') ||\r\n keyId?.includes('Backspace') ||\r\n keyId?.includes('CapsLock') ||\r\n keyId?.includes('Meta')\r\n ) {\r\n output = `{${event.code}}` || '';\r\n } else if (keyId?.includes('Control') || keyId?.includes('Shift') || keyId?.includes('Alt')) {\r\n output = `{${event.key}}` || '';\r\n } else {\r\n output = event.key || '';\r\n }\r\n\r\n return output.length > 1 ? output?.toLowerCase() : output;\r\n }\r\n\r\n /**\r\n * Set active class in button\r\n *\r\n * @param buttonName\r\n */\r\n private _setActiveButton(buttonName: string): void {\r\n const node = this._elementRef.nativeElement.getElementsByTagName('button').namedItem(buttonName);\r\n if (node && node.classList) {\r\n node.classList.add(this._activeButtonClass);\r\n }\r\n }\r\n\r\n /**\r\n * Remove active button\r\n *\r\n * @param buttonName\r\n */\r\n private _removeActiveButton(buttonName?: string): void {\r\n const nodes = this._elementRef.nativeElement.getElementsByTagName('button');\r\n if (buttonName) {\r\n const node = nodes.namedItem(buttonName);\r\n if (node && node.classList) {\r\n node.classList.remove(this._activeButtonClass);\r\n }\r\n } else {\r\n for (let i = 0; i < nodes.length; i++) {\r\n nodes[i].classList.remove(this._activeButtonClass);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"touch-keyboard\" [class]=\"'layout-' + layoutMode + '-' + layoutName\">\r\n @for (row of locale.layouts[layoutMode + \"_\" + layoutName]; track row[0]) {\r\n <div class=\"touch-keyboard-row\">\r\n @for (key of row; track key) {\r\n <button\r\n [name]=\"key\"\r\n type=\"button\"\r\n [dir]=\"locale.dir\"\r\n class=\"touch-keyboard-key\"\r\n [class]=\"getButtonClass(key)\"\r\n [attr.data-layout]=\"layoutMode\"\r\n (pointerup)=\"handleButtonUp(key, $event)\"\r\n (pointerdown)=\"handleButtonDown(key, $event)\"\r\n (pointercancel)=\"handleButtonUp(key, $event)\"\r\n [innerHtml]=\"getButtonDisplayName(key)\"\r\n ></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import {\r\n booleanAttribute,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n inject,\r\n input,\r\n model,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Overlay, OverlayRef, OverlaySizeConfig, PositionStrategy } from '@angular/cdk/overlay';\r\nimport { NgxTouchKeyboardComponent } from './ngx-touch-keyboard.component';\r\nimport { Locale } from './Locale/type';\r\n\r\n/**\r\n * Directive applied to an element to make it usable as an origin for an keyboard using a\r\n * ConnectedPositionStrategy.\r\n */\r\n@Directive({\r\n selector: '[ngxTouchKeyboardOrigin]',\r\n exportAs: 'ngxTouchKeyboardOrigin',\r\n})\r\nexport class NgxTouchKeyboardOrigin {\r\n elementRef = inject(ElementRef);\r\n}\r\n\r\n/**\r\n * This directive provides methods to open, close, and toggle the touch keyboard panel.\r\n * It also handles the creation and configuration of the overlay used to display the keyboard.\r\n */\r\n@Directive({\r\n selector: `input[ngxTouchKeyboard],\r\n textarea[ngxTouchKeyboard],\r\n ion-input[ngxTouchKeyboard],\r\n ion-textarea[ngxTouchKeyboard]`,\r\n exportAs: 'ngxTouchKeyboard',\r\n})\r\nexport class NgxTouchKeyboardDirective implements OnDestroy {\r\n private _overlay = inject(Overlay);\r\n private _elementRef = inject(ElementRef<HTMLInputElement>);\r\n private _isMobile = /Android|iPhone|iPad|iPod/i.test(navigator.userAgent);\r\n\r\n open = model(false, {\r\n alias: 'ngxTouchKeyboardOpen',\r\n });\r\n\r\n openOnFocus = input(false, {\r\n alias: 'ngxTouchKeyboardOpenOnFocus',\r\n transform: booleanAttribute,\r\n });\r\n\r\n locale = input<Locale | undefined>(undefined, {\r\n alias: 'ngxTouchKeyboardLocale',\r\n });\r\n\r\n debugMode = input(false, {\r\n alias: 'ngxTouchKeyboardDebug',\r\n transform: booleanAttribute,\r\n });\r\n\r\n fullScreenMode = input(false, {\r\n alias: 'ngxTouchKeyboardFullScreen',\r\n transform: booleanAttribute,\r\n });\r\n\r\n origin = input<NgxTouchKeyboardOrigin | null>(null, {\r\n alias: 'ngxConnectedTouchKeyboardOrigin',\r\n });\r\n\r\n private _overlayRef!: OverlayRef;\r\n private _panelRef!: ComponentRef<NgxTouchKeyboardComponent>;\r\n\r\n @HostListener('focus')\r\n @HostListener('ionFocus')\r\n onFocus() {\r\n if (this.openOnFocus() && !this.open()) {\r\n this.openPanel();\r\n }\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Lifecycle hooks\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * On changes\r\n */\r\n ngOnChanges() {\r\n this.open() ? this.openPanel() : this.closePanel();\r\n }\r\n\r\n /**\r\n * On destroy\r\n */\r\n ngOnDestroy(): void {\r\n // Dispose the overlay\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n }\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Public methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Open keyboard panel\r\n */\r\n openPanel(): void {\r\n // return if panel is attached\r\n if (this._overlayRef?.hasAttached()) {\r\n return;\r\n }\r\n\r\n // Create the overlay if it doesn't exist\r\n if (!this._overlayRef) {\r\n this._createOverlay();\r\n }\r\n\r\n // Set overlay class\r\n if (this.fullScreenMode()) {\r\n this._overlayRef.addPanelClass('ngx-touch-keyboard-fullScreen');\r\n } else {\r\n this._overlayRef.removePanelClass('ngx-touch-keyboard-fullScreen');\r\n }\r\n\r\n // Update position the overlay\r\n this._overlayRef.updatePositionStrategy(this._getPositionStrategy(this.fullScreenMode()));\r\n\r\n // Update size the overlay\r\n this._overlayRef.updateSize(this._getOverlaySize(this.fullScreenMode()));\r\n\r\n // Get the input element associated with the directive\r\n const inputElement = this._getInputElement();\r\n\r\n // Set input to readonly on mobile devices to prevent the native keyboard from appearing\r\n if (this._isMobile) inputElement.readOnly = true;\r\n\r\n // Attach the portal to the overlay\r\n this._panelRef = this._overlayRef.attach(new ComponentPortal(NgxTouchKeyboardComponent));\r\n this._panelRef.instance.debug = this.debugMode();\r\n this._panelRef.instance.setLocale(this.locale());\r\n this._panelRef.instance.setActiveInput(inputElement);\r\n this._panelRef.instance.closePanel.subscribe(() => this.closePanel());\r\n this.open.set(true);\r\n }\r\n\r\n /**\r\n * Close keyboard panel\r\n */\r\n closePanel(): void {\r\n if (this._isMobile) {\r\n // Get the input element and remove readonly mode\r\n const inputElement = this._getInputElement();\r\n inputElement.readOnly = false;\r\n inputElement.blur();\r\n }\r\n this._overlayRef?.detach();\r\n this.open.set(false);\r\n }\r\n\r\n /**\r\n * Toggle keyboard panel\r\n */\r\n togglePanel(): void {\r\n this.open() ? this.closePanel() : this.openPanel();\r\n }\r\n\r\n // -----------------------------------------------------------------------------------------------------\r\n // @ Private methods\r\n // -----------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Create the overlay\r\n *\r\n * @private\r\n */\r\n private _createOverlay(): void {\r\n this._overlayRef = this._overlay.create({\r\n direction: 'ltr',\r\n hasBackdrop: false,\r\n panelClass: 'ngx-touch-keyboard-overlay-pane',\r\n scrollStrategy: this._overlay.scrollStrategies.noop(),\r\n });\r\n }\r\n\r\n /**\r\n * Get position strategy\r\n *\r\n * @param fullscreen\r\n * @private\r\n */\r\n private _getPositionStrategy(fullscreen: boolean): PositionStrategy {\r\n if (fullscreen) {\r\n return this._overlay.position().global().centerHorizontally().bottom('0');\r\n }\r\n\r\n return this._overlay\r\n .position()\r\n .flexibleConnectedTo(this._getOriginElement())\r\n .withLockedPosition()\r\n .withPush()\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n },\r\n ]);\r\n }\r\n\r\n /**\r\n * Get overlay size\r\n *\r\n * @param fullscreen\r\n * @private\r\n */\r\n private _getOverlaySize(fullscreen: boolean): OverlaySizeConfig {\r\n if (fullscreen) {\r\n return {\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: '100%',\r\n };\r\n }\r\n\r\n return {\r\n width: this._getOriginElement().getBoundingClientRect().width,\r\n maxWidth: this._getOriginElement().getBoundingClientRect().width,\r\n minWidth: '260px',\r\n };\r\n }\r\n\r\n /**\r\n * Gets the input element associated with the directive.\r\n * This is necessary because when the directive is applied to an Ionic component (ion-input or ion-textarea),\r\n * the actual input element is nested inside the component's template.\r\n *\r\n * @private\r\n */\r\n private _getInputElement(): HTMLInputElement | HTMLTextAreaElement {\r\n if (['ION-INPUT', 'ION-TEXTAREA'].includes(this._elementRef.nativeElement.tagName)) {\r\n return this._elementRef.nativeElement.querySelector('input, textarea');\r\n }\r\n\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n /**\r\n * Gets the origin element for the keyboard panel.\r\n *\r\n * @private\r\n */\r\n private _getOriginElement(): any {\r\n if (this.origin()) {\r\n return this.origin()?.elementRef.nativeElement;\r\n }\r\n\r\n const element = this._elementRef.nativeElement;\r\n\r\n // Material form field <= v14\r\n if (element.classList.contains('mat-input-element')) {\r\n // Return [mat-form-field-flex] element\r\n return element.parentNode?.parentNode;\r\n }\r\n\r\n // Material form field > v14\r\n if (element.classList.contains('mat-mdc-input-element')) {\r\n // Return [mat-mdc-text-field-wrapper] element\r\n return element.parentNode?.parentNode?.parentNode;\r\n }\r\n\r\n // Return input\r\n return element;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nimport { NgxTouchKeyboardOrigin, NgxTouchKeyboardDirective } from './ngx-touch-keyboard.directive';\r\nimport { NgxTouchKeyboardComponent } from './ngx-touch-keyboard.component';\r\n\r\n@NgModule({\r\n imports: [PortalModule, OverlayModule],\r\n declarations: [NgxTouchKeyboardOrigin, NgxTouchKeyboardDirective, NgxTouchKeyboardComponent],\r\n exports: [NgxTouchKeyboardOrigin, NgxTouchKeyboardDirective, NgxTouchKeyboardComponent],\r\n})\r\nexport class NgxTouchKeyboardModule {}\r\n","/*\r\n * Public API Surface of ngx-touch-keyboard\r\n */\r\nexport * from './lib/ngx-touch-keyboard.constants';\r\nexport * from './lib/ngx-touch-keyboard.component';\r\nexport * from './lib/ngx-touch-keyboard.directive';\r\nexport * from './lib/ngx-touch-keyboard.module';\r\nexport * from './lib/Locale/constants';\r\nexport * from './lib/Locale/type';\r\nexport * from './lib/Locale';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["layouts","display","locale","enUS"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ngx-touch-keyboard",
3
3
  "description": "Virtual Keyboard for Angular applications",
4
- "version": "4.4.0",
4
+ "version": "4.4.1",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "author": {