ng-thaana 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -0
- package/esm2020/lib/ng-thaana.directive.mjs +37 -0
- package/{esm2015/lib/ng-thaana.module.js → esm2020/lib/ng-thaana.module.mjs} +5 -5
- package/{esm2015/ng-thaana.js → esm2020/ng-thaana.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/ng-thaana.mjs +65 -0
- package/fesm2015/ng-thaana.mjs.map +1 -0
- package/fesm2020/ng-thaana.mjs +65 -0
- package/fesm2020/ng-thaana.mjs.map +1 -0
- package/{ng-thaana.d.ts → index.d.ts} +0 -0
- package/lib/ng-thaana.directive.d.ts +7 -3
- package/package.json +24 -11
- package/bundles/ng-thaana.umd.js +0 -155
- package/bundles/ng-thaana.umd.js.map +0 -1
- package/esm2015/lib/ng-thaana.directive.js +0 -32
- package/esm2015/lib/thaana.js +0 -64
- package/fesm2015/ng-thaana.js +0 -122
- package/fesm2015/ng-thaana.js.map +0 -1
- package/lib/thaana.d.ts +0 -2
package/README.md
CHANGED
|
@@ -18,7 +18,11 @@ ngThaana requires nothing in particular as a dependancy.
|
|
|
18
18
|
Install the dependencies and devDependencies and start the server.
|
|
19
19
|
|
|
20
20
|
```sh
|
|
21
|
+
$ yarn add ng-thaana
|
|
22
|
+
|
|
23
|
+
# or if you prefer npm
|
|
21
24
|
$ npm i ng-thaana
|
|
25
|
+
|
|
22
26
|
```
|
|
23
27
|
|
|
24
28
|
### Usage
|
|
@@ -43,18 +47,46 @@ import { NgThaanaModule } from 'ng-thaana';
|
|
|
43
47
|
})
|
|
44
48
|
export class AppModule { }
|
|
45
49
|
```
|
|
50
|
+
|
|
51
|
+
`ng-thaana` supports pasting latin characters which on the fly will transliterate the provide string into the preferred `flavor`. Here flavors are `phonetic` (default), `typewriter` and `faseyha`
|
|
52
|
+
|
|
53
|
+
For example when `divehi` is pasted it will be `ދިވެހި` in `phonetic` flavor however the same will be `ިިހެވިދ` in `faseyha` flavor. In each flavor the keyboard layout is slightly different.
|
|
54
|
+
|
|
55
|
+
|
|
46
56
|
### In the template
|
|
47
57
|
```html
|
|
48
58
|
<div>
|
|
49
59
|
|
|
50
60
|
<input [(ngModel)]='name' ng-thaana placeholder="Your name please..." />
|
|
51
61
|
|
|
62
|
+
<!-- With explicit flavor -->
|
|
63
|
+
<input [(ngModel)]='name' flavor='faseyha' ng-thaana placeholder="Your name please..." />
|
|
64
|
+
|
|
65
|
+
|
|
52
66
|
<!-- With post callback -->
|
|
53
67
|
<input [(ngModel)]='name' (ng-thaana)='postCallback($event)' placeholder="Your name please..." />
|
|
54
68
|
|
|
55
69
|
</div>
|
|
56
70
|
```
|
|
57
71
|
|
|
72
|
+
### Toggling
|
|
73
|
+
ng-thaana now supports toggling its effective state. Meaning you can turn off ng-thaana and vise-versa. This can be done by pressing shift key twice under a second.
|
|
74
|
+
|
|
75
|
+
This has several interesting use cases such as when a charactor from English/Any language is required maybe in the middle of a word or sentence. For instance ID card number requires an `A` prefixed. There are plenty of such if you think about it.
|
|
76
|
+
|
|
77
|
+
You will want to indicate the toggling of `ng-thaana` which can be handled like so.
|
|
78
|
+
|
|
79
|
+
In the template/view
|
|
80
|
+
```html
|
|
81
|
+
<input [(ngModel)]='name' (thaana-toggled)="toggled($event)" ng-thaana placeholder="Search..." />
|
|
82
|
+
```
|
|
83
|
+
And on the js side
|
|
84
|
+
```javascript
|
|
85
|
+
toggled(e: boolean) {
|
|
86
|
+
// Maybe show something like a toast or indicate it on the input itself
|
|
87
|
+
console.log('You toggled ng-thaana: ', e);
|
|
88
|
+
}
|
|
89
|
+
```
|
|
58
90
|
|
|
59
91
|
### Todos
|
|
60
92
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { Directive, Input, Output } from '@angular/core';
|
|
3
|
+
import Thaana from 'dhivehi';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NgThaanaDirective {
|
|
6
|
+
constructor(el) {
|
|
7
|
+
this.el = el;
|
|
8
|
+
this.flavor = 'phonetic';
|
|
9
|
+
this.ngThaana = new EventEmitter();
|
|
10
|
+
this.thaanaToggled = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngAfterViewInit() {
|
|
13
|
+
this.el.nativeElement.style.direction = 'rtl';
|
|
14
|
+
this.el.nativeElement.addEventListener('thaana-toggled', (e) => {
|
|
15
|
+
this.thaanaToggled.emit(e.detail);
|
|
16
|
+
});
|
|
17
|
+
Thaana(this.el.nativeElement, { flavor: this.flavor });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
NgThaanaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21
|
+
NgThaanaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: NgThaanaDirective, selector: "[ng-thaana]", inputs: { flavor: "flavor" }, outputs: { ngThaana: "ng-thaana", thaanaToggled: "thaana-toggled" }, ngImport: i0 });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaDirective, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: '[ng-thaana]',
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { flavor: [{
|
|
28
|
+
type: Input,
|
|
29
|
+
args: ['flavor']
|
|
30
|
+
}], ngThaana: [{
|
|
31
|
+
type: Output,
|
|
32
|
+
args: ['ng-thaana']
|
|
33
|
+
}], thaanaToggled: [{
|
|
34
|
+
type: Output,
|
|
35
|
+
args: ['thaana-toggled']
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdGhhYW5hLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRoYWFuYS9zcmMvbGliL25nLXRoYWFuYS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFHLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQVEsTUFBTSxNQUFNLFNBQVMsQ0FBQTs7QUFRN0IsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUpqQixXQUFNLEdBQVcsVUFBVSxDQUFDO1FBQ3hCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVoQyxDQUFDO0lBRXRDLGVBQWU7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtRQUM3QyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQWMsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQyxDQUFDLENBQUMsQ0FBQTtRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUN4RCxDQUFDOzsrR0FkVSxpQkFBaUI7bUdBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtpR0FHa0IsTUFBTTtzQkFBdEIsS0FBSzt1QkFBQyxRQUFRO2dCQUNNLFFBQVE7c0JBQTVCLE1BQU07dUJBQUMsV0FBVztnQkFDTyxhQUFhO3NCQUF0QyxNQUFNO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCAgVGhhYW5hIGZyb20gJ2RoaXZlaGknXG5cblxuZXhwb3J0IHR5cGUgRmxhdm9yID0gJ3Bob25ldGljJyB8ICd0eXBld3JpdGVyJyB8ICdmYXNleWhhJ1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmctdGhhYW5hXScsXG59KVxuZXhwb3J0IGNsYXNzIE5nVGhhYW5hRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCdmbGF2b3InKSBmbGF2b3I6IEZsYXZvciA9ICdwaG9uZXRpYyc7XG4gIEBPdXRwdXQoJ25nLXRoYWFuYScpIG5nVGhhYW5hID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoJ3RoYWFuYS10b2dnbGVkJykgdGhhYW5hVG9nZ2xlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5kaXJlY3Rpb24gPSAncnRsJ1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0aGFhbmEtdG9nZ2xlZCcsIChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgdGhpcy50aGFhbmFUb2dnbGVkLmVtaXQoZS5kZXRhaWwpXG4gICAgfSlcbiAgICBUaGFhbmEodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB7IGZsYXZvcjogdGhpcy5mbGF2b3IgfSlcbiAgfVxuXG59XG4iXX0=
|
|
@@ -3,10 +3,10 @@ import { NgThaanaDirective } from './ng-thaana.directive';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class NgThaanaModule {
|
|
5
5
|
}
|
|
6
|
-
NgThaanaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7
|
-
NgThaanaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
8
|
-
NgThaanaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6
|
+
NgThaanaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
NgThaanaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, declarations: [NgThaanaDirective], exports: [NgThaanaDirective] });
|
|
8
|
+
NgThaanaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
12
|
declarations: [
|
|
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImpor
|
|
|
18
18
|
]
|
|
19
19
|
}]
|
|
20
20
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdGhhYW5hLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRoYWFuYS9zcmMvbGliL25nLXRoYWFuYS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFjMUQsTUFBTSxPQUFPLGNBQWM7OzRHQUFkLGNBQWM7NkdBQWQsY0FBYyxpQkFSdkIsaUJBQWlCLGFBS2pCLGlCQUFpQjs2R0FHUixjQUFjOzRGQUFkLGNBQWM7a0JBVjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFLEVBQ1I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdUaGFhbmFEaXJlY3RpdmUgfSBmcm9tICcuL25nLXRoYWFuYS5kaXJlY3RpdmUnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTmdUaGFhbmFEaXJlY3RpdmVcbiAgXSxcbiAgaW1wb3J0czogW1xuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTmdUaGFhbmFEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ1RoYWFuYU1vZHVsZSB7IH1cbiJdfQ==
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import Thaana from 'dhivehi';
|
|
4
|
+
|
|
5
|
+
class NgThaanaDirective {
|
|
6
|
+
constructor(el) {
|
|
7
|
+
this.el = el;
|
|
8
|
+
this.flavor = 'phonetic';
|
|
9
|
+
this.ngThaana = new EventEmitter();
|
|
10
|
+
this.thaanaToggled = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngAfterViewInit() {
|
|
13
|
+
this.el.nativeElement.style.direction = 'rtl';
|
|
14
|
+
this.el.nativeElement.addEventListener('thaana-toggled', (e) => {
|
|
15
|
+
this.thaanaToggled.emit(e.detail);
|
|
16
|
+
});
|
|
17
|
+
Thaana(this.el.nativeElement, { flavor: this.flavor });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
NgThaanaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21
|
+
NgThaanaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: NgThaanaDirective, selector: "[ng-thaana]", inputs: { flavor: "flavor" }, outputs: { ngThaana: "ng-thaana", thaanaToggled: "thaana-toggled" }, ngImport: i0 });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaDirective, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: '[ng-thaana]',
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { flavor: [{
|
|
28
|
+
type: Input,
|
|
29
|
+
args: ['flavor']
|
|
30
|
+
}], ngThaana: [{
|
|
31
|
+
type: Output,
|
|
32
|
+
args: ['ng-thaana']
|
|
33
|
+
}], thaanaToggled: [{
|
|
34
|
+
type: Output,
|
|
35
|
+
args: ['thaana-toggled']
|
|
36
|
+
}] } });
|
|
37
|
+
|
|
38
|
+
class NgThaanaModule {
|
|
39
|
+
}
|
|
40
|
+
NgThaanaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
41
|
+
NgThaanaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, declarations: [NgThaanaDirective], exports: [NgThaanaDirective] });
|
|
42
|
+
NgThaanaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, decorators: [{
|
|
44
|
+
type: NgModule,
|
|
45
|
+
args: [{
|
|
46
|
+
declarations: [
|
|
47
|
+
NgThaanaDirective
|
|
48
|
+
],
|
|
49
|
+
imports: [],
|
|
50
|
+
exports: [
|
|
51
|
+
NgThaanaDirective
|
|
52
|
+
]
|
|
53
|
+
}]
|
|
54
|
+
}] });
|
|
55
|
+
|
|
56
|
+
/*
|
|
57
|
+
* Public API Surface of ng-thaana
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Generated bundle index. Do not edit.
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
export { NgThaanaDirective, NgThaanaModule };
|
|
65
|
+
//# sourceMappingURL=ng-thaana.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-thaana.mjs","sources":["../../../projects/ng-thaana/src/lib/ng-thaana.directive.ts","../../../projects/ng-thaana/src/lib/ng-thaana.module.ts","../../../projects/ng-thaana/src/public-api.ts","../../../projects/ng-thaana/src/ng-thaana.ts"],"sourcesContent":["import { AfterViewInit, EventEmitter } from '@angular/core';\nimport { Directive, ElementRef, Input, Output} from '@angular/core';\n\nimport Thaana from 'dhivehi'\n\n\nexport type Flavor = 'phonetic' | 'typewriter' | 'faseyha'\n\n@Directive({\n selector: '[ng-thaana]',\n})\nexport class NgThaanaDirective implements AfterViewInit {\n\n @Input('flavor') flavor: Flavor = 'phonetic';\n @Output('ng-thaana') ngThaana = new EventEmitter<string>();\n @Output('thaana-toggled') thaanaToggled = new EventEmitter<string>();\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n this.el.nativeElement.style.direction = 'rtl'\n this.el.nativeElement.addEventListener('thaana-toggled', (e: CustomEvent) => {\n this.thaanaToggled.emit(e.detail)\n })\n Thaana(this.el.nativeElement, { flavor: this.flavor })\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { NgThaanaDirective } from './ng-thaana.directive';\n\n\n\n@NgModule({\n declarations: [\n NgThaanaDirective\n ],\n imports: [\n ],\n exports: [\n NgThaanaDirective\n ]\n})\nexport class NgThaanaModule { }\n","/*\n * Public API Surface of ng-thaana\n */\n\nexport * from './lib/ng-thaana.directive';\nexport * from './lib/ng-thaana.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAWa,iBAAiB,CAAA;AAM5B,IAAA,WAAA,CAAoB,EAAc,EAAA;AAAd,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAJjB,QAAA,IAAM,CAAA,MAAA,GAAW,UAAU,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;AACjC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAU,CAAC;KAE/B;IAEtC,eAAe,GAAA;QACb,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAA;AAC7C,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAc,KAAI;YAC1E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AACnC,SAAC,CAAC,CAAA;AACF,QAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;KACvD;;+GAdU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;iBACxB,CAAA;iGAGkB,MAAM,EAAA,CAAA;sBAAtB,KAAK;uBAAC,QAAQ,CAAA;gBACM,QAAQ,EAAA,CAAA;sBAA5B,MAAM;uBAAC,WAAW,CAAA;gBACO,aAAa,EAAA,CAAA;sBAAtC,MAAM;uBAAC,gBAAgB,CAAA;;;MCAb,cAAc,CAAA;;4GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,CARvB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAKjB,iBAAiB,CAAA,EAAA,CAAA,CAAA;6GAGR,cAAc,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;iBACF,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Directive, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import Thaana from 'dhivehi';
|
|
4
|
+
|
|
5
|
+
class NgThaanaDirective {
|
|
6
|
+
constructor(el) {
|
|
7
|
+
this.el = el;
|
|
8
|
+
this.flavor = 'phonetic';
|
|
9
|
+
this.ngThaana = new EventEmitter();
|
|
10
|
+
this.thaanaToggled = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngAfterViewInit() {
|
|
13
|
+
this.el.nativeElement.style.direction = 'rtl';
|
|
14
|
+
this.el.nativeElement.addEventListener('thaana-toggled', (e) => {
|
|
15
|
+
this.thaanaToggled.emit(e.detail);
|
|
16
|
+
});
|
|
17
|
+
Thaana(this.el.nativeElement, { flavor: this.flavor });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
NgThaanaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21
|
+
NgThaanaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: NgThaanaDirective, selector: "[ng-thaana]", inputs: { flavor: "flavor" }, outputs: { ngThaana: "ng-thaana", thaanaToggled: "thaana-toggled" }, ngImport: i0 });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaDirective, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: '[ng-thaana]',
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { flavor: [{
|
|
28
|
+
type: Input,
|
|
29
|
+
args: ['flavor']
|
|
30
|
+
}], ngThaana: [{
|
|
31
|
+
type: Output,
|
|
32
|
+
args: ['ng-thaana']
|
|
33
|
+
}], thaanaToggled: [{
|
|
34
|
+
type: Output,
|
|
35
|
+
args: ['thaana-toggled']
|
|
36
|
+
}] } });
|
|
37
|
+
|
|
38
|
+
class NgThaanaModule {
|
|
39
|
+
}
|
|
40
|
+
NgThaanaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
41
|
+
NgThaanaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, declarations: [NgThaanaDirective], exports: [NgThaanaDirective] });
|
|
42
|
+
NgThaanaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgThaanaModule, decorators: [{
|
|
44
|
+
type: NgModule,
|
|
45
|
+
args: [{
|
|
46
|
+
declarations: [
|
|
47
|
+
NgThaanaDirective
|
|
48
|
+
],
|
|
49
|
+
imports: [],
|
|
50
|
+
exports: [
|
|
51
|
+
NgThaanaDirective
|
|
52
|
+
]
|
|
53
|
+
}]
|
|
54
|
+
}] });
|
|
55
|
+
|
|
56
|
+
/*
|
|
57
|
+
* Public API Surface of ng-thaana
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Generated bundle index. Do not edit.
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
export { NgThaanaDirective, NgThaanaModule };
|
|
65
|
+
//# sourceMappingURL=ng-thaana.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-thaana.mjs","sources":["../../../projects/ng-thaana/src/lib/ng-thaana.directive.ts","../../../projects/ng-thaana/src/lib/ng-thaana.module.ts","../../../projects/ng-thaana/src/public-api.ts","../../../projects/ng-thaana/src/ng-thaana.ts"],"sourcesContent":["import { AfterViewInit, EventEmitter } from '@angular/core';\nimport { Directive, ElementRef, Input, Output} from '@angular/core';\n\nimport Thaana from 'dhivehi'\n\n\nexport type Flavor = 'phonetic' | 'typewriter' | 'faseyha'\n\n@Directive({\n selector: '[ng-thaana]',\n})\nexport class NgThaanaDirective implements AfterViewInit {\n\n @Input('flavor') flavor: Flavor = 'phonetic';\n @Output('ng-thaana') ngThaana = new EventEmitter<string>();\n @Output('thaana-toggled') thaanaToggled = new EventEmitter<string>();\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n this.el.nativeElement.style.direction = 'rtl'\n this.el.nativeElement.addEventListener('thaana-toggled', (e: CustomEvent) => {\n this.thaanaToggled.emit(e.detail)\n })\n Thaana(this.el.nativeElement, { flavor: this.flavor })\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { NgThaanaDirective } from './ng-thaana.directive';\n\n\n\n@NgModule({\n declarations: [\n NgThaanaDirective\n ],\n imports: [\n ],\n exports: [\n NgThaanaDirective\n ]\n})\nexport class NgThaanaModule { }\n","/*\n * Public API Surface of ng-thaana\n */\n\nexport * from './lib/ng-thaana.directive';\nexport * from './lib/ng-thaana.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAWa,iBAAiB,CAAA;AAM5B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAJjB,IAAM,CAAA,MAAA,GAAW,UAAU,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;AACjC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAU,CAAC;KAE/B;IAEtC,eAAe,GAAA;QACb,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAA;AAC7C,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAc,KAAI;YAC1E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AACnC,SAAC,CAAC,CAAA;AACF,QAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;KACvD;;+GAdU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACxB,iBAAA,CAAA;iGAGkB,MAAM,EAAA,CAAA;sBAAtB,KAAK;uBAAC,QAAQ,CAAA;gBACM,QAAQ,EAAA,CAAA;sBAA5B,MAAM;uBAAC,WAAW,CAAA;gBACO,aAAa,EAAA,CAAA;sBAAtC,MAAM;uBAAC,gBAAgB,CAAA;;;MCAb,cAAc,CAAA;;4GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,CARvB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAKjB,iBAAiB,CAAA,EAAA,CAAA,CAAA;6GAGR,cAAc,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
File without changes
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, EventEmitter } from '@angular/core';
|
|
2
2
|
import { ElementRef } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare
|
|
4
|
+
export declare type Flavor = 'phonetic' | 'typewriter' | 'faseyha';
|
|
5
|
+
export declare class NgThaanaDirective implements AfterViewInit {
|
|
6
|
+
private el;
|
|
7
|
+
flavor: Flavor;
|
|
5
8
|
ngThaana: EventEmitter<string>;
|
|
6
9
|
thaanaToggled: EventEmitter<string>;
|
|
7
10
|
constructor(el: ElementRef);
|
|
11
|
+
ngAfterViewInit(): void;
|
|
8
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgThaanaDirective, never>;
|
|
9
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgThaanaDirective, "[ng-thaana]", never, {}, { "ngThaana": "ng-thaana"; "thaanaToggled": "thaana-toggled"; }, never>;
|
|
13
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgThaanaDirective, "[ng-thaana]", never, { "flavor": "flavor"; }, { "ngThaana": "ng-thaana"; "thaanaToggled": "thaana-toggled"; }, never, never, false>;
|
|
10
14
|
}
|
package/package.json
CHANGED
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-thaana",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
5
|
+
"@angular/common": "^14.0.0",
|
|
6
|
+
"@angular/core": "^14.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"tslib": "^2.
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"module": "fesm2015/ng-thaana.mjs",
|
|
12
|
+
"es2020": "fesm2020/ng-thaana.mjs",
|
|
13
|
+
"esm2020": "esm2020/ng-thaana.mjs",
|
|
14
|
+
"fesm2020": "fesm2020/ng-thaana.mjs",
|
|
15
|
+
"fesm2015": "fesm2015/ng-thaana.mjs",
|
|
16
|
+
"typings": "index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
"./package.json": {
|
|
19
|
+
"default": "./package.json"
|
|
20
|
+
},
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./index.d.ts",
|
|
23
|
+
"esm2020": "./esm2020/ng-thaana.mjs",
|
|
24
|
+
"es2020": "./fesm2020/ng-thaana.mjs",
|
|
25
|
+
"es2015": "./fesm2015/ng-thaana.mjs",
|
|
26
|
+
"node": "./fesm2015/ng-thaana.mjs",
|
|
27
|
+
"default": "./fesm2020/ng-thaana.mjs"
|
|
28
|
+
}
|
|
10
29
|
},
|
|
11
|
-
"main": "bundles/ng-thaana.umd.js",
|
|
12
|
-
"module": "fesm2015/ng-thaana.js",
|
|
13
|
-
"es2015": "fesm2015/ng-thaana.js",
|
|
14
|
-
"esm2015": "esm2015/ng-thaana.js",
|
|
15
|
-
"fesm2015": "fesm2015/ng-thaana.js",
|
|
16
|
-
"typings": "ng-thaana.d.ts",
|
|
17
30
|
"sideEffects": false
|
|
18
|
-
}
|
|
31
|
+
}
|
package/bundles/ng-thaana.umd.js
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('ng-thaana', ['exports', '@angular/core'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["ng-thaana"] = {}, global.ng.core));
|
|
5
|
-
})(this, (function (exports, i0) { 'use strict';
|
|
6
|
-
|
|
7
|
-
function _interopNamespace(e) {
|
|
8
|
-
if (e && e.__esModule) return e;
|
|
9
|
-
var n = Object.create(null);
|
|
10
|
-
if (e) {
|
|
11
|
-
Object.keys(e).forEach(function (k) {
|
|
12
|
-
if (k !== 'default') {
|
|
13
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () { return e[k]; }
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
n["default"] = e;
|
|
22
|
-
return Object.freeze(n);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
|
|
26
|
-
|
|
27
|
-
var thaana = function (el, updateCallback) {
|
|
28
|
-
var keyboards = {
|
|
29
|
-
'phonetic': { 33: '!', 34: '"', 35: '#', 36: '$', 37: '%', 38: '&', 39: '\'', 40: ')', 41: '(', 42: '*', 43: '+', 44: '،', 45: '-', 46: '.', 47: '/', 58: ':', 59: '؛', 60: '>', 61: '=', 62: '<', 63: '؟', 64: '@', 65: 'ާ', 66: 'ޞ', 67: 'ޝ', 68: 'ޑ', 69: 'ޭ', 70: 'ﷲ', 71: 'ޣ', 72: 'ޙ', 73: 'ީ', 74: 'ޛ', 75: 'ޚ', 76: 'ޅ', 77: 'ޟ', 78: 'ޏ', 79: 'ޯ', 80: '÷', 81: 'ޤ', 82: 'ޜ', 83: 'ށ', 84: 'ޓ', 85: 'ޫ', 86: 'ޥ', 87: 'ޢ', 88: 'ޘ', 89: 'ޠ', 90: 'ޡ', 91: ']', 92: '\\', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ަ', 98: 'ބ', 99: 'ޗ', 100: 'ދ', 101: 'ެ', 102: 'ފ', 103: 'ގ', 104: 'ހ', 105: 'ި', 106: 'ޖ', 107: 'ކ', 108: 'ލ', 109: 'މ', 110: 'ނ', 111: 'ޮ', 112: 'ޕ', 113: 'ް', 114: 'ރ', 115: 'ސ', 116: 'ތ', 117: 'ު', 118: 'ވ', 119: 'އ', 120: '×', 121: 'ޔ', 122: 'ޒ', 123: '}', 124: '|', 125: '{', 126: '~' },
|
|
30
|
-
'typewriter': { 33: '!', 34: '؛', 35: '#', 36: '$', 37: '%', 38: '&', 39: 'ﷲ', 40: ')', 41: '(', 42: '*', 43: '+', 44: 'ށ', 45: '-', 46: 'ޓ', 47: 'ޯ', 58: 'ޡ', 59: 'ފ', 60: '\\', 61: '=', 62: 'ޞ', 63: '؟', 64: '@', 65: '<', 66: 'ޟ', 67: 'ޏ', 68: '.', 69: '“', 70: '،', 71: '"', 72: 'ޥ', 73: 'ޣ', 74: 'ޢ', 75: 'ޘ', 76: 'ޚ', 77: 'ޝ', 78: 'ޛ', 79: 'ޠ', 80: 'ޙ', 81: '×', 82: '/', 83: '>', 84: ':', 85: 'ޜ', 86: 'ޗ', 87: '’', 88: 'ޕ', 89: 'ޤ', 90: 'ޖ', 91: 'ލ', 92: ']', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ި', 98: 'ޅ', 99: 'ސ', 100: 'ް', 101: 'ާ', 102: 'ަ', 103: 'ެ', 104: 'ވ', 105: 'މ', 106: 'އ', 107: 'ނ', 108: 'ކ', 109: 'ބ', 110: 'ދ', 111: 'ތ', 112: 'ހ', 113: 'ޫ', 114: 'ީ', 115: 'ު', 116: 'ޭ', 117: 'ރ', 118: 'ޔ', 119: 'ޮ', 120: 'ޑ', 121: 'ގ', 122: 'ޒ', 123: '÷', 124: '}', 125: '{', 126: '~' }
|
|
31
|
-
};
|
|
32
|
-
var settings = {
|
|
33
|
-
keyboard: 'phonetic',
|
|
34
|
-
enabled: false,
|
|
35
|
-
};
|
|
36
|
-
var handleKeyboardInput = function (e) {
|
|
37
|
-
var current = '';
|
|
38
|
-
if (!settings.enabled)
|
|
39
|
-
return;
|
|
40
|
-
var str = e.target.value, key, selectionMode = false, selectionStart = 0;
|
|
41
|
-
if (!str)
|
|
42
|
-
return;
|
|
43
|
-
if (e.target.selectionEnd < str.length && e.target.selectionEnd > 0) {
|
|
44
|
-
selectionMode = true;
|
|
45
|
-
selectionStart = e.target.selectionEnd;
|
|
46
|
-
key = str.substring(e.target.selectionEnd - 1, e.target.selectionEnd);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
key = str.substring(str.length - 1);
|
|
50
|
-
}
|
|
51
|
-
var k = key.charCodeAt(0), lastLength = 0, diff = str.length - lastLength;
|
|
52
|
-
// && (diff == 1 || str.length < lastLength)
|
|
53
|
-
if ((typeof (keyboards[settings.keyboard][k]) != "undefined")) {
|
|
54
|
-
if (selectionMode == true) {
|
|
55
|
-
current = e.target.value.substr(0, e.target.selectionStart - 1) + keyboards[settings.keyboard][k] + e.target.value.substr(e.target.selectionStart);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
current = e.target.value.substr(0, str.length - 1);
|
|
59
|
-
current += keyboards[settings.keyboard][k];
|
|
60
|
-
}
|
|
61
|
-
e.target.value = current;
|
|
62
|
-
if (selectionMode) {
|
|
63
|
-
e.target.selectionStart = selectionStart;
|
|
64
|
-
e.target.selectionEnd = selectionStart;
|
|
65
|
-
}
|
|
66
|
-
updateCallback(current);
|
|
67
|
-
}
|
|
68
|
-
return false;
|
|
69
|
-
};
|
|
70
|
-
var count = 0, interval = null;
|
|
71
|
-
function handleToggle(e) {
|
|
72
|
-
if (e.key === 'Shift') {
|
|
73
|
-
count++;
|
|
74
|
-
if (interval)
|
|
75
|
-
clearInterval(interval);
|
|
76
|
-
interval = setInterval(function () {
|
|
77
|
-
count = 0;
|
|
78
|
-
}, 1000);
|
|
79
|
-
if (count >= 2) {
|
|
80
|
-
settings.enabled = !settings.enabled;
|
|
81
|
-
count = 0;
|
|
82
|
-
el.dispatchEvent(new CustomEvent('thaana-toggled', { detail: settings.enabled }));
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
el.addEventListener('input', handleKeyboardInput);
|
|
87
|
-
el.addEventListener('keyup', handleToggle);
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
var NgThaanaDirective = /** @class */ (function () {
|
|
91
|
-
function NgThaanaDirective(el) {
|
|
92
|
-
var _this = this;
|
|
93
|
-
this.ngThaana = new i0.EventEmitter();
|
|
94
|
-
this.thaanaToggled = new i0.EventEmitter();
|
|
95
|
-
el.nativeElement.style.direction = 'rtl';
|
|
96
|
-
el.nativeElement.addEventListener('thaana-toggled', function (e) {
|
|
97
|
-
_this.thaanaToggled.emit(e.detail);
|
|
98
|
-
});
|
|
99
|
-
thaana(el.nativeElement, function (e) {
|
|
100
|
-
_this.ngThaana.emit(e);
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
return NgThaanaDirective;
|
|
104
|
-
}());
|
|
105
|
-
NgThaanaDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NgThaanaDirective, deps: [{ token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
|
|
106
|
-
NgThaanaDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.5", type: NgThaanaDirective, selector: "[ng-thaana]", outputs: { ngThaana: "ng-thaana", thaanaToggled: "thaana-toggled" }, ngImport: i0__namespace });
|
|
107
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NgThaanaDirective, decorators: [{
|
|
108
|
-
type: i0.Directive,
|
|
109
|
-
args: [{
|
|
110
|
-
selector: '[ng-thaana]',
|
|
111
|
-
}]
|
|
112
|
-
}], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }]; }, propDecorators: { ngThaana: [{
|
|
113
|
-
type: i0.Output,
|
|
114
|
-
args: ['ng-thaana']
|
|
115
|
-
}], thaanaToggled: [{
|
|
116
|
-
type: i0.Output,
|
|
117
|
-
args: ['thaana-toggled']
|
|
118
|
-
}] } });
|
|
119
|
-
|
|
120
|
-
var NgThaanaModule = /** @class */ (function () {
|
|
121
|
-
function NgThaanaModule() {
|
|
122
|
-
}
|
|
123
|
-
return NgThaanaModule;
|
|
124
|
-
}());
|
|
125
|
-
NgThaanaModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NgThaanaModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
126
|
-
NgThaanaModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NgThaanaModule, declarations: [NgThaanaDirective], exports: [NgThaanaDirective] });
|
|
127
|
-
NgThaanaModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NgThaanaModule, imports: [[]] });
|
|
128
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0__namespace, type: NgThaanaModule, decorators: [{
|
|
129
|
-
type: i0.NgModule,
|
|
130
|
-
args: [{
|
|
131
|
-
declarations: [
|
|
132
|
-
NgThaanaDirective
|
|
133
|
-
],
|
|
134
|
-
imports: [],
|
|
135
|
-
exports: [
|
|
136
|
-
NgThaanaDirective
|
|
137
|
-
]
|
|
138
|
-
}]
|
|
139
|
-
}] });
|
|
140
|
-
|
|
141
|
-
/*
|
|
142
|
-
* Public API Surface of ng-thaana
|
|
143
|
-
*/
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Generated bundle index. Do not edit.
|
|
147
|
-
*/
|
|
148
|
-
|
|
149
|
-
exports.NgThaanaDirective = NgThaanaDirective;
|
|
150
|
-
exports.NgThaanaModule = NgThaanaModule;
|
|
151
|
-
|
|
152
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
153
|
-
|
|
154
|
-
}));
|
|
155
|
-
//# sourceMappingURL=ng-thaana.umd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ng-thaana.umd.js","sources":["../../../projects/ng-thaana/src/lib/thaana.ts","../../../projects/ng-thaana/src/lib/ng-thaana.directive.ts","../../../projects/ng-thaana/src/lib/ng-thaana.module.ts","../../../projects/ng-thaana/src/public-api.ts","../../../projects/ng-thaana/src/ng-thaana.ts"],"sourcesContent":["const thaana = function (el: any, updateCallback: any) {\n var keyboards: any = {\n 'phonetic': { 33: '!', 34: '\"', 35: '#', 36: '$', 37: '%', 38: '&', 39: '\\'', 40: ')', 41: '(', 42: '*', 43: '+', 44: '،', 45: '-', 46: '.', 47: '/', 58: ':', 59: '؛', 60: '>', 61: '=', 62: '<', 63: '؟', 64: '@', 65: 'ާ', 66: 'ޞ', 67: 'ޝ', 68: 'ޑ', 69: 'ޭ', 70: 'ﷲ', 71: 'ޣ', 72: 'ޙ', 73: 'ީ', 74: 'ޛ', 75: 'ޚ', 76: 'ޅ', 77: 'ޟ', 78: 'ޏ', 79: 'ޯ', 80: '÷', 81: 'ޤ', 82: 'ޜ', 83: 'ށ', 84: 'ޓ', 85: 'ޫ', 86: 'ޥ', 87: 'ޢ', 88: 'ޘ', 89: 'ޠ', 90: 'ޡ', 91: ']', 92: '\\\\', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ަ', 98: 'ބ', 99: 'ޗ', 100: 'ދ', 101: 'ެ', 102: 'ފ', 103: 'ގ', 104: 'ހ', 105: 'ި', 106: 'ޖ', 107: 'ކ', 108: 'ލ', 109: 'މ', 110: 'ނ', 111: 'ޮ', 112: 'ޕ', 113: 'ް', 114: 'ރ', 115: 'ސ', 116: 'ތ', 117: 'ު', 118: 'ވ', 119: 'އ', 120: '×', 121: 'ޔ', 122: 'ޒ', 123: '}', 124: '|', 125: '{', 126: '~' },\n 'typewriter': { 33: '!', 34: '؛', 35: '#', 36: '$', 37: '%', 38: '&', 39: 'ﷲ', 40: ')', 41: '(', 42: '*', 43: '+', 44: 'ށ', 45: '-', 46: 'ޓ', 47: 'ޯ', 58: 'ޡ', 59: 'ފ', 60: '\\\\', 61: '=', 62: 'ޞ', 63: '؟', 64: '@', 65: '<', 66: 'ޟ', 67: 'ޏ', 68: '.', 69: '“', 70: '،', 71: '\"', 72: 'ޥ', 73: 'ޣ', 74: 'ޢ', 75: 'ޘ', 76: 'ޚ', 77: 'ޝ', 78: 'ޛ', 79: 'ޠ', 80: 'ޙ', 81: '×', 82: '/', 83: '>', 84: ':', 85: 'ޜ', 86: 'ޗ', 87: '’', 88: 'ޕ', 89: 'ޤ', 90: 'ޖ', 91: 'ލ', 92: ']', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ި', 98: 'ޅ', 99: 'ސ', 100: 'ް', 101: 'ާ', 102: 'ަ', 103: 'ެ', 104: 'ވ', 105: 'މ', 106: 'އ', 107: 'ނ', 108: 'ކ', 109: 'ބ', 110: 'ދ', 111: 'ތ', 112: 'ހ', 113: 'ޫ', 114: 'ީ', 115: 'ު', 116: 'ޭ', 117: 'ރ', 118: 'ޔ', 119: 'ޮ', 120: 'ޑ', 121: 'ގ', 122: 'ޒ', 123: '÷', 124: '}', 125: '{', 126: '~' }\n };\n var settings: any = {\n keyboard: 'phonetic',\n enabled: false,\n }\n var handleKeyboardInput = function (e: any) {\n let current = '';\n\n if (!settings.enabled) return\n\n var str = e.target.value, key, selectionMode = false, selectionStart = 0;\n if (!str) return;\n\n if (e.target.selectionEnd < str.length && e.target.selectionEnd > 0) {\n selectionMode = true;\n selectionStart = e.target.selectionEnd;\n key = str.substring(e.target.selectionEnd - 1, e.target.selectionEnd);\n }\n else {\n key = str.substring(str.length - 1);\n }\n var k = key.charCodeAt(0),\n lastLength = 0,\n diff = str.length - lastLength;\n\n\n\n // && (diff == 1 || str.length < lastLength)\n if ((typeof (keyboards[settings.keyboard][k]) != \"undefined\")) {\n if (selectionMode == true) {\n current = e.target.value.substr(0, e.target.selectionStart - 1) + keyboards[settings.keyboard][k] + e.target.value.substr(e.target.selectionStart);\n }\n else {\n current = e.target.value.substr(0, str.length - 1);\n current += keyboards[settings.keyboard][k];\n }\n e.target.value = current;\n if (selectionMode) {\n e.target.selectionStart = selectionStart;\n e.target.selectionEnd = selectionStart;\n }\n updateCallback(current);\n }\n return false;\n\n };\n\n let count = 0, interval: any = null\n function handleToggle(e: KeyboardEvent) {\n if (e.key === 'Shift') {\n \n count++\n\n if(interval) clearInterval(interval);\n\n interval = setInterval(() => {\n count = 0\n }, 1000)\n \n if(count >= 2) {\n settings.enabled = !settings.enabled\n count = 0\n el.dispatchEvent(new CustomEvent('thaana-toggled', { detail: settings.enabled }))\n }\n\n }\n }\n\n el.addEventListener('input', handleKeyboardInput)\n el.addEventListener('keyup', handleToggle)\n}\n\nexport default thaana","import { EventEmitter } from '@angular/core';\nimport { Directive, ElementRef, Input, Output} from '@angular/core';\nimport Thaana from './thaana'\n\n@Directive({\n selector: '[ng-thaana]',\n})\nexport class NgThaanaDirective {\n\n @Output('ng-thaana') ngThaana = new EventEmitter<string>();\n @Output('thaana-toggled') thaanaToggled = new EventEmitter<string>();\n\n constructor(el: ElementRef) {\n el.nativeElement.style.direction = 'rtl'\n\n el.nativeElement.addEventListener('thaana-toggled', (e: CustomEvent) => {\n this.thaanaToggled.emit(e.detail)\n })\n\n Thaana(el.nativeElement, (e: any) => {\n this.ngThaana.emit(e)\n })\n\n \n \n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { NgThaanaDirective } from './ng-thaana.directive';\n\n\n\n@NgModule({\n declarations: [\n NgThaanaDirective\n ],\n imports: [\n ],\n exports: [\n NgThaanaDirective\n ]\n})\nexport class NgThaanaModule { }\n","/*\n * Public API Surface of ng-thaana\n */\n\nexport * from './lib/ng-thaana.directive';\nexport * from './lib/ng-thaana.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EventEmitter","Thaana","i0","Directive","Output","NgModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,IAAM,MAAM,GAAG,UAAU,EAAO,EAAE,cAAmB,EAAA;IACjD,IAAA,IAAI,SAAS,GAAQ;IACjB,QAAA,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IAC/xB,QAAA,YAAY,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { Directive, Output } from '@angular/core';
|
|
3
|
-
import Thaana from './thaana';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class NgThaanaDirective {
|
|
6
|
-
constructor(el) {
|
|
7
|
-
this.ngThaana = new EventEmitter();
|
|
8
|
-
this.thaanaToggled = new EventEmitter();
|
|
9
|
-
el.nativeElement.style.direction = 'rtl';
|
|
10
|
-
el.nativeElement.addEventListener('thaana-toggled', (e) => {
|
|
11
|
-
this.thaanaToggled.emit(e.detail);
|
|
12
|
-
});
|
|
13
|
-
Thaana(el.nativeElement, (e) => {
|
|
14
|
-
this.ngThaana.emit(e);
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
NgThaanaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: NgThaanaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
-
NgThaanaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.5", type: NgThaanaDirective, selector: "[ng-thaana]", outputs: { ngThaana: "ng-thaana", thaanaToggled: "thaana-toggled" }, ngImport: i0 });
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: NgThaanaDirective, decorators: [{
|
|
21
|
-
type: Directive,
|
|
22
|
-
args: [{
|
|
23
|
-
selector: '[ng-thaana]',
|
|
24
|
-
}]
|
|
25
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { ngThaana: [{
|
|
26
|
-
type: Output,
|
|
27
|
-
args: ['ng-thaana']
|
|
28
|
-
}], thaanaToggled: [{
|
|
29
|
-
type: Output,
|
|
30
|
-
args: ['thaana-toggled']
|
|
31
|
-
}] } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdGhhYW5hLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRoYWFuYS9zcmMvbGliL25nLXRoYWFuYS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUcsU0FBUyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBUSxNQUFNLE1BQU0sVUFBVSxDQUFBOztBQUs5QixNQUFNLE9BQU8saUJBQWlCO0lBSzVCLFlBQVksRUFBYztRQUhMLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUduRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFBO1FBRXhDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFjLEVBQUUsRUFBRTtZQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkMsQ0FBQyxDQUFDLENBQUE7UUFFRixNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBSUwsQ0FBQzs7OEdBbEJXLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCO2lHQUdzQixRQUFRO3NCQUE1QixNQUFNO3VCQUFDLFdBQVc7Z0JBQ08sYUFBYTtzQkFBdEMsTUFBTTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ICBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICBUaGFhbmEgZnJvbSAnLi90aGFhbmEnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZy10aGFhbmFdJyxcbn0pXG5leHBvcnQgY2xhc3MgTmdUaGFhbmFEaXJlY3RpdmUge1xuXG4gIEBPdXRwdXQoJ25nLXRoYWFuYScpIG5nVGhhYW5hID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoJ3RoYWFuYS10b2dnbGVkJykgdGhhYW5hVG9nZ2xlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgZWwubmF0aXZlRWxlbWVudC5zdHlsZS5kaXJlY3Rpb24gPSAncnRsJ1xuXG4gICAgZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0aGFhbmEtdG9nZ2xlZCcsIChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgdGhpcy50aGFhbmFUb2dnbGVkLmVtaXQoZS5kZXRhaWwpXG4gICAgfSlcblxuICAgIFRoYWFuYShlbC5uYXRpdmVFbGVtZW50LCAoZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubmdUaGFhbmEuZW1pdChlKVxuICAgIH0pXG5cbiAgICBcbiAgICBcbiB9XG5cbn1cbiJdfQ==
|
package/esm2015/lib/thaana.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
const thaana = function (el, updateCallback) {
|
|
2
|
-
var keyboards = {
|
|
3
|
-
'phonetic': { 33: '!', 34: '"', 35: '#', 36: '$', 37: '%', 38: '&', 39: '\'', 40: ')', 41: '(', 42: '*', 43: '+', 44: '،', 45: '-', 46: '.', 47: '/', 58: ':', 59: '؛', 60: '>', 61: '=', 62: '<', 63: '؟', 64: '@', 65: 'ާ', 66: 'ޞ', 67: 'ޝ', 68: 'ޑ', 69: 'ޭ', 70: 'ﷲ', 71: 'ޣ', 72: 'ޙ', 73: 'ީ', 74: 'ޛ', 75: 'ޚ', 76: 'ޅ', 77: 'ޟ', 78: 'ޏ', 79: 'ޯ', 80: '÷', 81: 'ޤ', 82: 'ޜ', 83: 'ށ', 84: 'ޓ', 85: 'ޫ', 86: 'ޥ', 87: 'ޢ', 88: 'ޘ', 89: 'ޠ', 90: 'ޡ', 91: ']', 92: '\\', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ަ', 98: 'ބ', 99: 'ޗ', 100: 'ދ', 101: 'ެ', 102: 'ފ', 103: 'ގ', 104: 'ހ', 105: 'ި', 106: 'ޖ', 107: 'ކ', 108: 'ލ', 109: 'މ', 110: 'ނ', 111: 'ޮ', 112: 'ޕ', 113: 'ް', 114: 'ރ', 115: 'ސ', 116: 'ތ', 117: 'ު', 118: 'ވ', 119: 'އ', 120: '×', 121: 'ޔ', 122: 'ޒ', 123: '}', 124: '|', 125: '{', 126: '~' },
|
|
4
|
-
'typewriter': { 33: '!', 34: '؛', 35: '#', 36: '$', 37: '%', 38: '&', 39: 'ﷲ', 40: ')', 41: '(', 42: '*', 43: '+', 44: 'ށ', 45: '-', 46: 'ޓ', 47: 'ޯ', 58: 'ޡ', 59: 'ފ', 60: '\\', 61: '=', 62: 'ޞ', 63: '؟', 64: '@', 65: '<', 66: 'ޟ', 67: 'ޏ', 68: '.', 69: '“', 70: '،', 71: '"', 72: 'ޥ', 73: 'ޣ', 74: 'ޢ', 75: 'ޘ', 76: 'ޚ', 77: 'ޝ', 78: 'ޛ', 79: 'ޠ', 80: 'ޙ', 81: '×', 82: '/', 83: '>', 84: ':', 85: 'ޜ', 86: 'ޗ', 87: '’', 88: 'ޕ', 89: 'ޤ', 90: 'ޖ', 91: 'ލ', 92: ']', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ި', 98: 'ޅ', 99: 'ސ', 100: 'ް', 101: 'ާ', 102: 'ަ', 103: 'ެ', 104: 'ވ', 105: 'މ', 106: 'އ', 107: 'ނ', 108: 'ކ', 109: 'ބ', 110: 'ދ', 111: 'ތ', 112: 'ހ', 113: 'ޫ', 114: 'ީ', 115: 'ު', 116: 'ޭ', 117: 'ރ', 118: 'ޔ', 119: 'ޮ', 120: 'ޑ', 121: 'ގ', 122: 'ޒ', 123: '÷', 124: '}', 125: '{', 126: '~' }
|
|
5
|
-
};
|
|
6
|
-
var settings = {
|
|
7
|
-
keyboard: 'phonetic',
|
|
8
|
-
enabled: false,
|
|
9
|
-
};
|
|
10
|
-
var handleKeyboardInput = function (e) {
|
|
11
|
-
let current = '';
|
|
12
|
-
if (!settings.enabled)
|
|
13
|
-
return;
|
|
14
|
-
var str = e.target.value, key, selectionMode = false, selectionStart = 0;
|
|
15
|
-
if (!str)
|
|
16
|
-
return;
|
|
17
|
-
if (e.target.selectionEnd < str.length && e.target.selectionEnd > 0) {
|
|
18
|
-
selectionMode = true;
|
|
19
|
-
selectionStart = e.target.selectionEnd;
|
|
20
|
-
key = str.substring(e.target.selectionEnd - 1, e.target.selectionEnd);
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
key = str.substring(str.length - 1);
|
|
24
|
-
}
|
|
25
|
-
var k = key.charCodeAt(0), lastLength = 0, diff = str.length - lastLength;
|
|
26
|
-
// && (diff == 1 || str.length < lastLength)
|
|
27
|
-
if ((typeof (keyboards[settings.keyboard][k]) != "undefined")) {
|
|
28
|
-
if (selectionMode == true) {
|
|
29
|
-
current = e.target.value.substr(0, e.target.selectionStart - 1) + keyboards[settings.keyboard][k] + e.target.value.substr(e.target.selectionStart);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
current = e.target.value.substr(0, str.length - 1);
|
|
33
|
-
current += keyboards[settings.keyboard][k];
|
|
34
|
-
}
|
|
35
|
-
e.target.value = current;
|
|
36
|
-
if (selectionMode) {
|
|
37
|
-
e.target.selectionStart = selectionStart;
|
|
38
|
-
e.target.selectionEnd = selectionStart;
|
|
39
|
-
}
|
|
40
|
-
updateCallback(current);
|
|
41
|
-
}
|
|
42
|
-
return false;
|
|
43
|
-
};
|
|
44
|
-
let count = 0, interval = null;
|
|
45
|
-
function handleToggle(e) {
|
|
46
|
-
if (e.key === 'Shift') {
|
|
47
|
-
count++;
|
|
48
|
-
if (interval)
|
|
49
|
-
clearInterval(interval);
|
|
50
|
-
interval = setInterval(() => {
|
|
51
|
-
count = 0;
|
|
52
|
-
}, 1000);
|
|
53
|
-
if (count >= 2) {
|
|
54
|
-
settings.enabled = !settings.enabled;
|
|
55
|
-
count = 0;
|
|
56
|
-
el.dispatchEvent(new CustomEvent('thaana-toggled', { detail: settings.enabled }));
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
el.addEventListener('input', handleKeyboardInput);
|
|
61
|
-
el.addEventListener('keyup', handleToggle);
|
|
62
|
-
};
|
|
63
|
-
export default thaana;
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhhYW5hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGhhYW5hL3NyYy9saWIvdGhhYW5hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sTUFBTSxHQUFHLFVBQVUsRUFBTyxFQUFFLGNBQW1CO0lBQ2pELElBQUksU0FBUyxHQUFRO1FBQ2pCLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO1FBQy94QixZQUFZLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtL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QVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUN4QixLQUFLLEdBQUcsQ0FBQyxDQUFBO1lBQ2IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBRVIsSUFBRyxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUNYLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFBO2dCQUNwQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO2dCQUNULEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQTthQUNwRjtTQUVKO0lBQ0wsQ0FBQztJQUVELEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtJQUNqRCxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFBO0FBQzlDLENBQUMsQ0FBQTtBQUVELGVBQWUsTUFBTSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdGhhYW5hID0gZnVuY3Rpb24gKGVsOiBhbnksIHVwZGF0ZUNhbGxiYWNrOiBhbnkpIHtcbiAgICB2YXIga2V5Ym9hcmRzOiBhbnkgPSB7XG4gICAgICAgICdwaG9uZXRpYyc6IHsgMzM6ICchJywgMzQ6ICdcIicsIDM1OiAnIycsIDM2OiAnJCcsIDM3OiAnJScsIDM4OiAnJicsIDM5OiAnXFwnJywgNDA6ICcpJywgNDE6ICcoJywgNDI6ICcqJywgNDM6ICcrJywgNDQ6ICfYjCcsIDQ1OiAnLScsIDQ2OiAnLicsIDQ3OiAnLycsIDU4OiAnOicsIDU5OiAn2JsnLCA2MDogJz4nLCA2MTogJz0nLCA2MjogJzwnLCA2MzogJ9ifJywgNjQ6ICdAJywgNjU6ICfepycsIDY2OiAn3p4nLCA2NzogJ96dJywgNjg6ICfekScsIDY5OiAn3q0nLCA3MDogJ++3sicsIDcxOiAn3qMnLCA3MjogJ96ZJywgNzM6ICfeqScsIDc0OiAn3psnLCA3NTogJ96aJywgNzY6ICfehScsIDc3OiAn3p8nLCA3ODogJ96PJywgNzk6ICferycsIDgwOiAnw7cnLCA4MTogJ96kJywgODI6ICfenCcsIDgzOiAn3oEnLCA4NDogJ96TJywgODU6ICfeqycsIDg2OiAn3qUnLCA4NzogJ96iJywgODg6ICfemCcsIDg5OiAn3qAnLCA5MDogJ96hJywgOTE6ICddJywgOTI6ICdcXFxcJywgOTM6ICdbJywgOTQ6ICdeJywgOTU6ICdfJywgOTY6ICdgJywgOTc6ICfepicsIDk4OiAn3oQnLCA5OTogJ96XJywgMTAwOiAn3osnLCAxMDE6ICferCcsIDEwMjogJ96KJywgMTAzOiAn3o4nLCAxMDQ6ICfegCcsIDEwNTogJ96oJywgMTA2OiAn3pYnLCAxMDc6ICfehicsIDEwODogJ96NJywgMTA5OiAn3oknLCAxMTA6ICfegicsIDExMTogJ96uJywgMTEyOiAn3pUnLCAxMTM6ICfesCcsIDExNDogJ96DJywgMTE1OiAn3pAnLCAxMTY6ICfejCcsIDExNzogJ96qJywgMTE4OiAn3ognLCAxMTk6ICfehycsIDEyMDogJ8OXJywgMTIxOiAn3pQnLCAxMjI6ICfekicsIDEyMzogJ30nLCAxMjQ6ICd8JywgMTI1OiAneycsIDEyNjogJ34nIH0sXG4gICAgICAgICd0eXBld3JpdGVyJzogeyAzMzogJyEnLCAzNDogJ9ibJywgMzU6ICcjJywgMzY6ICckJywgMzc6ICclJywgMzg6ICcmJywgMzk6ICfvt7InLCA0MDogJyknLCA0MTogJygnLCA0MjogJyonLCA0MzogJysnLCA0NDogJ96BJywgNDU6ICctJywgNDY6ICfekycsIDQ3OiAn3q8nLCA1ODogJ96hJywgNTk6ICfeiicsIDYwOiAnXFxcXCcsIDYxOiAnPScsIDYyOiAn3p4nLCA2MzogJ9ifJywgNjQ6ICdAJywgNjU6ICc8JywgNjY6ICfenycsIDY3OiAn3o8nLCA2ODogJy4nLCA2OTogJ+KAnCcsIDcwOiAn2IwnLCA3MTogJ1wiJywgNzI6ICfepScsIDczOiAn3qMnLCA3NDogJ96iJywgNzU6ICfemCcsIDc2OiAn3ponLCA3NzogJ96dJywgNzg6ICfemycsIDc5OiAn3qAnLCA4MDogJ96ZJywgODE6ICfDlycsIDgyOiAnLycsIDgzOiAnPicsIDg0OiAnOicsIDg1OiAn3pwnLCA4NjogJ96XJywgODc6ICfigJknLCA4ODogJ96VJywgODk6ICfepCcsIDkwOiAn3pYnLCA5MTogJ96NJywgOTI6ICddJywgOTM6ICdbJywgOTQ6ICdeJywgOTU6ICdfJywgOTY6ICdgJywgOTc6ICfeqCcsIDk4OiAn3oUnLCA5OTogJ96QJywgMTAwOiAn3rAnLCAxMDE6ICfepycsIDEwMjogJ96mJywgMTAzOiAn3qwnLCAxMDQ6ICfeiCcsIDEwNTogJ96JJywgMTA2OiAn3ocnLCAxMDc6ICfegicsIDEwODogJ96GJywgMTA5OiAn3oQnLCAxMTA6ICfeiycsIDExMTogJ96MJywgMTEyOiAn3oAnLCAxMTM6ICfeqycsIDExNDogJ96pJywgMTE1OiAn3qonLCAxMTY6ICferScsIDExNzogJ96DJywgMTE4OiAn3pQnLCAxMTk6ICfericsIDEyMDogJ96RJywgMTIxOiAn3o4nLCAxMjI6ICfekicsIDEyMzogJ8O3JywgMTI0OiAnfScsIDEyNTogJ3snLCAxMjY6ICd+JyB9XG4gICAgfTtcbiAgICB2YXIgc2V0dGluZ3M6IGFueSA9IHtcbiAgICAgICAga2V5Ym9hcmQ6ICdwaG9uZXRpYycsXG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH1cbiAgICB2YXIgaGFuZGxlS2V5Ym9hcmRJbnB1dCA9IGZ1bmN0aW9uIChlOiBhbnkpIHtcbiAgICAgICAgbGV0IGN1cnJlbnQgPSAnJztcblxuICAgICAgICBpZiAoIXNldHRpbmdzLmVuYWJsZWQpIHJldHVyblxuXG4gICAgICAgIHZhciBzdHIgPSBlLnRhcmdldC52YWx1ZSwga2V5LCBzZWxlY3Rpb25Nb2RlID0gZmFsc2UsIHNlbGVjdGlvblN0YXJ0ID0gMDtcbiAgICAgICAgaWYgKCFzdHIpIHJldHVybjtcblxuICAgICAgICBpZiAoZS50YXJnZXQuc2VsZWN0aW9uRW5kIDwgc3RyLmxlbmd0aCAmJiBlLnRhcmdldC5zZWxlY3Rpb25FbmQgPiAwKSB7XG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlID0gdHJ1ZTtcbiAgICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gZS50YXJnZXQuc2VsZWN0aW9uRW5kO1xuICAgICAgICAgICAga2V5ID0gc3RyLnN1YnN0cmluZyhlLnRhcmdldC5zZWxlY3Rpb25FbmQgLSAxLCBlLnRhcmdldC5zZWxlY3Rpb25FbmQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAga2V5ID0gc3RyLnN1YnN0cmluZyhzdHIubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGsgPSBrZXkuY2hhckNvZGVBdCgwKSxcbiAgICAgICAgICAgIGxhc3RMZW5ndGggPSAwLFxuICAgICAgICAgICAgZGlmZiA9IHN0ci5sZW5ndGggLSBsYXN0TGVuZ3RoO1xuXG5cblxuICAgICAgICAvLyAmJiAoZGlmZiA9PSAxIHx8ICBzdHIubGVuZ3RoIDwgbGFzdExlbmd0aClcbiAgICAgICAgaWYgKCh0eXBlb2YgKGtleWJvYXJkc1tzZXR0aW5ncy5rZXlib2FyZF1ba10pICE9IFwidW5kZWZpbmVkXCIpKSB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0aW9uTW9kZSA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IGUudGFyZ2V0LnZhbHVlLnN1YnN0cigwLCBlLnRhcmdldC5zZWxlY3Rpb25TdGFydCAtIDEpICsga2V5Ym9hcmRzW3NldHRpbmdzLmtleWJvYXJkXVtrXSArIGUudGFyZ2V0LnZhbHVlLnN1YnN0cihlLnRhcmdldC5zZWxlY3Rpb25TdGFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gZS50YXJnZXQudmFsdWUuc3Vic3RyKDAsIHN0ci5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50ICs9IGtleWJvYXJkc1tzZXR0aW5ncy5rZXlib2FyZF1ba107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlLnRhcmdldC52YWx1ZSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoc2VsZWN0aW9uTW9kZSkge1xuICAgICAgICAgICAgICAgIGUudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICAgICAgZS50YXJnZXQuc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGVDYWxsYmFjayhjdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICB9O1xuXG4gICAgbGV0IGNvdW50ID0gMCwgaW50ZXJ2YWw6IGFueSA9IG51bGxcbiAgICBmdW5jdGlvbiBoYW5kbGVUb2dnbGUoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdTaGlmdCcpIHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY291bnQrK1xuXG4gICAgICAgICAgICBpZihpbnRlcnZhbCkgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG5cbiAgICAgICAgICAgIGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvdW50ID0gMFxuICAgICAgICAgICAgfSwgMTAwMClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYoY291bnQgPj0gMikge1xuICAgICAgICAgICAgICAgIHNldHRpbmdzLmVuYWJsZWQgPSAhc2V0dGluZ3MuZW5hYmxlZFxuICAgICAgICAgICAgICAgIGNvdW50ID0gMFxuICAgICAgICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCd0aGFhbmEtdG9nZ2xlZCcsIHsgZGV0YWlsOiBzZXR0aW5ncy5lbmFibGVkIH0pKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGhhbmRsZUtleWJvYXJkSW5wdXQpXG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBoYW5kbGVUb2dnbGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IHRoYWFuYSJdfQ==
|
package/fesm2015/ng-thaana.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Directive, Output, NgModule } from '@angular/core';
|
|
3
|
-
|
|
4
|
-
const thaana = function (el, updateCallback) {
|
|
5
|
-
var keyboards = {
|
|
6
|
-
'phonetic': { 33: '!', 34: '"', 35: '#', 36: '$', 37: '%', 38: '&', 39: '\'', 40: ')', 41: '(', 42: '*', 43: '+', 44: '،', 45: '-', 46: '.', 47: '/', 58: ':', 59: '؛', 60: '>', 61: '=', 62: '<', 63: '؟', 64: '@', 65: 'ާ', 66: 'ޞ', 67: 'ޝ', 68: 'ޑ', 69: 'ޭ', 70: 'ﷲ', 71: 'ޣ', 72: 'ޙ', 73: 'ީ', 74: 'ޛ', 75: 'ޚ', 76: 'ޅ', 77: 'ޟ', 78: 'ޏ', 79: 'ޯ', 80: '÷', 81: 'ޤ', 82: 'ޜ', 83: 'ށ', 84: 'ޓ', 85: 'ޫ', 86: 'ޥ', 87: 'ޢ', 88: 'ޘ', 89: 'ޠ', 90: 'ޡ', 91: ']', 92: '\\', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ަ', 98: 'ބ', 99: 'ޗ', 100: 'ދ', 101: 'ެ', 102: 'ފ', 103: 'ގ', 104: 'ހ', 105: 'ި', 106: 'ޖ', 107: 'ކ', 108: 'ލ', 109: 'މ', 110: 'ނ', 111: 'ޮ', 112: 'ޕ', 113: 'ް', 114: 'ރ', 115: 'ސ', 116: 'ތ', 117: 'ު', 118: 'ވ', 119: 'އ', 120: '×', 121: 'ޔ', 122: 'ޒ', 123: '}', 124: '|', 125: '{', 126: '~' },
|
|
7
|
-
'typewriter': { 33: '!', 34: '؛', 35: '#', 36: '$', 37: '%', 38: '&', 39: 'ﷲ', 40: ')', 41: '(', 42: '*', 43: '+', 44: 'ށ', 45: '-', 46: 'ޓ', 47: 'ޯ', 58: 'ޡ', 59: 'ފ', 60: '\\', 61: '=', 62: 'ޞ', 63: '؟', 64: '@', 65: '<', 66: 'ޟ', 67: 'ޏ', 68: '.', 69: '“', 70: '،', 71: '"', 72: 'ޥ', 73: 'ޣ', 74: 'ޢ', 75: 'ޘ', 76: 'ޚ', 77: 'ޝ', 78: 'ޛ', 79: 'ޠ', 80: 'ޙ', 81: '×', 82: '/', 83: '>', 84: ':', 85: 'ޜ', 86: 'ޗ', 87: '’', 88: 'ޕ', 89: 'ޤ', 90: 'ޖ', 91: 'ލ', 92: ']', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ި', 98: 'ޅ', 99: 'ސ', 100: 'ް', 101: 'ާ', 102: 'ަ', 103: 'ެ', 104: 'ވ', 105: 'މ', 106: 'އ', 107: 'ނ', 108: 'ކ', 109: 'ބ', 110: 'ދ', 111: 'ތ', 112: 'ހ', 113: 'ޫ', 114: 'ީ', 115: 'ު', 116: 'ޭ', 117: 'ރ', 118: 'ޔ', 119: 'ޮ', 120: 'ޑ', 121: 'ގ', 122: 'ޒ', 123: '÷', 124: '}', 125: '{', 126: '~' }
|
|
8
|
-
};
|
|
9
|
-
var settings = {
|
|
10
|
-
keyboard: 'phonetic',
|
|
11
|
-
enabled: false,
|
|
12
|
-
};
|
|
13
|
-
var handleKeyboardInput = function (e) {
|
|
14
|
-
let current = '';
|
|
15
|
-
if (!settings.enabled)
|
|
16
|
-
return;
|
|
17
|
-
var str = e.target.value, key, selectionMode = false, selectionStart = 0;
|
|
18
|
-
if (!str)
|
|
19
|
-
return;
|
|
20
|
-
if (e.target.selectionEnd < str.length && e.target.selectionEnd > 0) {
|
|
21
|
-
selectionMode = true;
|
|
22
|
-
selectionStart = e.target.selectionEnd;
|
|
23
|
-
key = str.substring(e.target.selectionEnd - 1, e.target.selectionEnd);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
key = str.substring(str.length - 1);
|
|
27
|
-
}
|
|
28
|
-
var k = key.charCodeAt(0), lastLength = 0, diff = str.length - lastLength;
|
|
29
|
-
// && (diff == 1 || str.length < lastLength)
|
|
30
|
-
if ((typeof (keyboards[settings.keyboard][k]) != "undefined")) {
|
|
31
|
-
if (selectionMode == true) {
|
|
32
|
-
current = e.target.value.substr(0, e.target.selectionStart - 1) + keyboards[settings.keyboard][k] + e.target.value.substr(e.target.selectionStart);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
current = e.target.value.substr(0, str.length - 1);
|
|
36
|
-
current += keyboards[settings.keyboard][k];
|
|
37
|
-
}
|
|
38
|
-
e.target.value = current;
|
|
39
|
-
if (selectionMode) {
|
|
40
|
-
e.target.selectionStart = selectionStart;
|
|
41
|
-
e.target.selectionEnd = selectionStart;
|
|
42
|
-
}
|
|
43
|
-
updateCallback(current);
|
|
44
|
-
}
|
|
45
|
-
return false;
|
|
46
|
-
};
|
|
47
|
-
let count = 0, interval = null;
|
|
48
|
-
function handleToggle(e) {
|
|
49
|
-
if (e.key === 'Shift') {
|
|
50
|
-
count++;
|
|
51
|
-
if (interval)
|
|
52
|
-
clearInterval(interval);
|
|
53
|
-
interval = setInterval(() => {
|
|
54
|
-
count = 0;
|
|
55
|
-
}, 1000);
|
|
56
|
-
if (count >= 2) {
|
|
57
|
-
settings.enabled = !settings.enabled;
|
|
58
|
-
count = 0;
|
|
59
|
-
el.dispatchEvent(new CustomEvent('thaana-toggled', { detail: settings.enabled }));
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
el.addEventListener('input', handleKeyboardInput);
|
|
64
|
-
el.addEventListener('keyup', handleToggle);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
class NgThaanaDirective {
|
|
68
|
-
constructor(el) {
|
|
69
|
-
this.ngThaana = new EventEmitter();
|
|
70
|
-
this.thaanaToggled = new EventEmitter();
|
|
71
|
-
el.nativeElement.style.direction = 'rtl';
|
|
72
|
-
el.nativeElement.addEventListener('thaana-toggled', (e) => {
|
|
73
|
-
this.thaanaToggled.emit(e.detail);
|
|
74
|
-
});
|
|
75
|
-
thaana(el.nativeElement, (e) => {
|
|
76
|
-
this.ngThaana.emit(e);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
NgThaanaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: NgThaanaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
81
|
-
NgThaanaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.5", type: NgThaanaDirective, selector: "[ng-thaana]", outputs: { ngThaana: "ng-thaana", thaanaToggled: "thaana-toggled" }, ngImport: i0 });
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: NgThaanaDirective, decorators: [{
|
|
83
|
-
type: Directive,
|
|
84
|
-
args: [{
|
|
85
|
-
selector: '[ng-thaana]',
|
|
86
|
-
}]
|
|
87
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { ngThaana: [{
|
|
88
|
-
type: Output,
|
|
89
|
-
args: ['ng-thaana']
|
|
90
|
-
}], thaanaToggled: [{
|
|
91
|
-
type: Output,
|
|
92
|
-
args: ['thaana-toggled']
|
|
93
|
-
}] } });
|
|
94
|
-
|
|
95
|
-
class NgThaanaModule {
|
|
96
|
-
}
|
|
97
|
-
NgThaanaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: NgThaanaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
98
|
-
NgThaanaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: NgThaanaModule, declarations: [NgThaanaDirective], exports: [NgThaanaDirective] });
|
|
99
|
-
NgThaanaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: NgThaanaModule, imports: [[]] });
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.5", ngImport: i0, type: NgThaanaModule, decorators: [{
|
|
101
|
-
type: NgModule,
|
|
102
|
-
args: [{
|
|
103
|
-
declarations: [
|
|
104
|
-
NgThaanaDirective
|
|
105
|
-
],
|
|
106
|
-
imports: [],
|
|
107
|
-
exports: [
|
|
108
|
-
NgThaanaDirective
|
|
109
|
-
]
|
|
110
|
-
}]
|
|
111
|
-
}] });
|
|
112
|
-
|
|
113
|
-
/*
|
|
114
|
-
* Public API Surface of ng-thaana
|
|
115
|
-
*/
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Generated bundle index. Do not edit.
|
|
119
|
-
*/
|
|
120
|
-
|
|
121
|
-
export { NgThaanaDirective, NgThaanaModule };
|
|
122
|
-
//# sourceMappingURL=ng-thaana.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ng-thaana.js","sources":["../../../projects/ng-thaana/src/lib/thaana.ts","../../../projects/ng-thaana/src/lib/ng-thaana.directive.ts","../../../projects/ng-thaana/src/lib/ng-thaana.module.ts","../../../projects/ng-thaana/src/public-api.ts","../../../projects/ng-thaana/src/ng-thaana.ts"],"sourcesContent":["const thaana = function (el: any, updateCallback: any) {\n var keyboards: any = {\n 'phonetic': { 33: '!', 34: '\"', 35: '#', 36: '$', 37: '%', 38: '&', 39: '\\'', 40: ')', 41: '(', 42: '*', 43: '+', 44: '،', 45: '-', 46: '.', 47: '/', 58: ':', 59: '؛', 60: '>', 61: '=', 62: '<', 63: '؟', 64: '@', 65: 'ާ', 66: 'ޞ', 67: 'ޝ', 68: 'ޑ', 69: 'ޭ', 70: 'ﷲ', 71: 'ޣ', 72: 'ޙ', 73: 'ީ', 74: 'ޛ', 75: 'ޚ', 76: 'ޅ', 77: 'ޟ', 78: 'ޏ', 79: 'ޯ', 80: '÷', 81: 'ޤ', 82: 'ޜ', 83: 'ށ', 84: 'ޓ', 85: 'ޫ', 86: 'ޥ', 87: 'ޢ', 88: 'ޘ', 89: 'ޠ', 90: 'ޡ', 91: ']', 92: '\\\\', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ަ', 98: 'ބ', 99: 'ޗ', 100: 'ދ', 101: 'ެ', 102: 'ފ', 103: 'ގ', 104: 'ހ', 105: 'ި', 106: 'ޖ', 107: 'ކ', 108: 'ލ', 109: 'މ', 110: 'ނ', 111: 'ޮ', 112: 'ޕ', 113: 'ް', 114: 'ރ', 115: 'ސ', 116: 'ތ', 117: 'ު', 118: 'ވ', 119: 'އ', 120: '×', 121: 'ޔ', 122: 'ޒ', 123: '}', 124: '|', 125: '{', 126: '~' },\n 'typewriter': { 33: '!', 34: '؛', 35: '#', 36: '$', 37: '%', 38: '&', 39: 'ﷲ', 40: ')', 41: '(', 42: '*', 43: '+', 44: 'ށ', 45: '-', 46: 'ޓ', 47: 'ޯ', 58: 'ޡ', 59: 'ފ', 60: '\\\\', 61: '=', 62: 'ޞ', 63: '؟', 64: '@', 65: '<', 66: 'ޟ', 67: 'ޏ', 68: '.', 69: '“', 70: '،', 71: '\"', 72: 'ޥ', 73: 'ޣ', 74: 'ޢ', 75: 'ޘ', 76: 'ޚ', 77: 'ޝ', 78: 'ޛ', 79: 'ޠ', 80: 'ޙ', 81: '×', 82: '/', 83: '>', 84: ':', 85: 'ޜ', 86: 'ޗ', 87: '’', 88: 'ޕ', 89: 'ޤ', 90: 'ޖ', 91: 'ލ', 92: ']', 93: '[', 94: '^', 95: '_', 96: '`', 97: 'ި', 98: 'ޅ', 99: 'ސ', 100: 'ް', 101: 'ާ', 102: 'ަ', 103: 'ެ', 104: 'ވ', 105: 'މ', 106: 'އ', 107: 'ނ', 108: 'ކ', 109: 'ބ', 110: 'ދ', 111: 'ތ', 112: 'ހ', 113: 'ޫ', 114: 'ީ', 115: 'ު', 116: 'ޭ', 117: 'ރ', 118: 'ޔ', 119: 'ޮ', 120: 'ޑ', 121: 'ގ', 122: 'ޒ', 123: '÷', 124: '}', 125: '{', 126: '~' }\n };\n var settings: any = {\n keyboard: 'phonetic',\n enabled: false,\n }\n var handleKeyboardInput = function (e: any) {\n let current = '';\n\n if (!settings.enabled) return\n\n var str = e.target.value, key, selectionMode = false, selectionStart = 0;\n if (!str) return;\n\n if (e.target.selectionEnd < str.length && e.target.selectionEnd > 0) {\n selectionMode = true;\n selectionStart = e.target.selectionEnd;\n key = str.substring(e.target.selectionEnd - 1, e.target.selectionEnd);\n }\n else {\n key = str.substring(str.length - 1);\n }\n var k = key.charCodeAt(0),\n lastLength = 0,\n diff = str.length - lastLength;\n\n\n\n // && (diff == 1 || str.length < lastLength)\n if ((typeof (keyboards[settings.keyboard][k]) != \"undefined\")) {\n if (selectionMode == true) {\n current = e.target.value.substr(0, e.target.selectionStart - 1) + keyboards[settings.keyboard][k] + e.target.value.substr(e.target.selectionStart);\n }\n else {\n current = e.target.value.substr(0, str.length - 1);\n current += keyboards[settings.keyboard][k];\n }\n e.target.value = current;\n if (selectionMode) {\n e.target.selectionStart = selectionStart;\n e.target.selectionEnd = selectionStart;\n }\n updateCallback(current);\n }\n return false;\n\n };\n\n let count = 0, interval: any = null\n function handleToggle(e: KeyboardEvent) {\n if (e.key === 'Shift') {\n \n count++\n\n if(interval) clearInterval(interval);\n\n interval = setInterval(() => {\n count = 0\n }, 1000)\n \n if(count >= 2) {\n settings.enabled = !settings.enabled\n count = 0\n el.dispatchEvent(new CustomEvent('thaana-toggled', { detail: settings.enabled }))\n }\n\n }\n }\n\n el.addEventListener('input', handleKeyboardInput)\n el.addEventListener('keyup', handleToggle)\n}\n\nexport default thaana","import { EventEmitter } from '@angular/core';\nimport { Directive, ElementRef, Input, Output} from '@angular/core';\nimport Thaana from './thaana'\n\n@Directive({\n selector: '[ng-thaana]',\n})\nexport class NgThaanaDirective {\n\n @Output('ng-thaana') ngThaana = new EventEmitter<string>();\n @Output('thaana-toggled') thaanaToggled = new EventEmitter<string>();\n\n constructor(el: ElementRef) {\n el.nativeElement.style.direction = 'rtl'\n\n el.nativeElement.addEventListener('thaana-toggled', (e: CustomEvent) => {\n this.thaanaToggled.emit(e.detail)\n })\n\n Thaana(el.nativeElement, (e: any) => {\n this.ngThaana.emit(e)\n })\n\n \n \n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { NgThaanaDirective } from './ng-thaana.directive';\n\n\n\n@NgModule({\n declarations: [\n NgThaanaDirective\n ],\n imports: [\n ],\n exports: [\n NgThaanaDirective\n ]\n})\nexport class NgThaanaModule { }\n","/*\n * Public API Surface of ng-thaana\n */\n\nexport * from './lib/ng-thaana.directive';\nexport * from './lib/ng-thaana.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Thaana"],"mappings":";;;AAAA,MAAM,MAAM,GAAG,UAAU,EAAO,EAAE,cAAmB,EAAA;AACjD,IAAA,IAAI,SAAS,GAAQ;AACjB,QAAA,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC/xB,QAAA,YAAY,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GA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"}
|
package/lib/thaana.d.ts
DELETED