mesdan 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/LICENSE.txt +21 -0
  2. package/README.md +42 -0
  3. package/package.json +46 -0
  4. package/teshir/aletler/harf-buyuk-mu.d.ts +2 -0
  5. package/teshir/aletler/harf-buyuk-mu.d.ts.map +1 -0
  6. package/teshir/aletler/harf-buyuk-mu.js +5 -0
  7. package/teshir/aletler/harf-kelime-basinda-mi.d.ts +2 -0
  8. package/teshir/aletler/harf-kelime-basinda-mi.d.ts.map +1 -0
  9. package/teshir/aletler/harf-kelime-basinda-mi.js +18 -0
  10. package/teshir/aletler/harf-kucuk-mu.d.ts +2 -0
  11. package/teshir/aletler/harf-kucuk-mu.d.ts.map +1 -0
  12. package/teshir/aletler/harf-kucuk-mu.js +5 -0
  13. package/teshir/aletler/harf-tedkiki.d.ts +6 -0
  14. package/teshir/aletler/harf-tedkiki.d.ts.map +1 -0
  15. package/teshir/aletler/harf-tedkiki.js +69 -0
  16. package/teshir/aletler/tebdil-alem-mevkisini.d.ts +3 -0
  17. package/teshir/aletler/tebdil-alem-mevkisini.d.ts.map +1 -0
  18. package/teshir/aletler/tebdil-alem-mevkisini.js +20 -0
  19. package/teshir/index.d.ts +2 -0
  20. package/teshir/index.d.ts.map +1 -0
  21. package/teshir/index.js +1 -0
  22. package/teshir/kanca/use-mesdan.d.ts +16 -0
  23. package/teshir/kanca/use-mesdan.d.ts.map +1 -0
  24. package/teshir/kanca/use-mesdan.js +218 -0
  25. package/teshir/nev/alem-mevkisi.d.ts +8 -0
  26. package/teshir/nev/alem-mevkisi.d.ts.map +1 -0
  27. package/teshir/nev/alem-mevkisi.js +9 -0
  28. package/teshir/nev/kelam-unsuru.d.ts +20 -0
  29. package/teshir/nev/kelam-unsuru.d.ts.map +1 -0
  30. package/teshir/nev/kelam-unsuru.js +15 -0
  31. package/teshir/nev/mes-hadisesi.d.ts +7 -0
  32. package/teshir/nev/mes-hadisesi.d.ts.map +1 -0
  33. package/teshir/nev/mes-hadisesi.js +1 -0
  34. package/teshir/nev/netice-metni-tadil-et.d.ts +7 -0
  35. package/teshir/nev/netice-metni-tadil-et.d.ts.map +1 -0
  36. package/teshir/nev/netice-metni-tadil-et.js +1 -0
  37. package/teshir/nev/netice-osmani-harf-tadili.d.ts +5 -0
  38. package/teshir/nev/netice-osmani-harf-tadili.d.ts.map +1 -0
  39. package/teshir/nev/netice-osmani-harf-tadili.js +1 -0
  40. package/teshir/nev/tadili-metin-emri.d.ts +15 -0
  41. package/teshir/nev/tadili-metin-emri.d.ts.map +1 -0
  42. package/teshir/nev/tadili-metin-emri.js +16 -0
  43. package/teshir/nuve/ekle-osmani-metne-harf.d.ts +5 -0
  44. package/teshir/nuve/ekle-osmani-metne-harf.d.ts.map +1 -0
  45. package/teshir/nuve/ekle-osmani-metne-harf.js +111 -0
  46. package/teshir/nuve/harf-latiniden-osmaniye.d.ts +2 -0
  47. package/teshir/nuve/harf-latiniden-osmaniye.d.ts.map +1 -0
  48. package/teshir/nuve/harf-latiniden-osmaniye.js +358 -0
  49. package/teshir/nuve/kaydir-alemi.d.ts +6 -0
  50. package/teshir/nuve/kaydir-alemi.d.ts.map +1 -0
  51. package/teshir/nuve/kaydir-alemi.js +173 -0
  52. package/teshir/nuve/sil-osmani-metinden-harf-basra.d.ts +4 -0
  53. package/teshir/nuve/sil-osmani-metinden-harf-basra.d.ts.map +1 -0
  54. package/teshir/nuve/sil-osmani-metinden-harf-basra.js +45 -0
  55. package/teshir/nuve/sil-osmani-metinden-harf-sonra.d.ts +4 -0
  56. package/teshir/nuve/sil-osmani-metinden-harf-sonra.d.ts.map +1 -0
  57. package/teshir/nuve/sil-osmani-metinden-harf-sonra.js +57 -0
  58. package/teshir/nuve/tadil-et-metni.d.ts +6 -0
  59. package/teshir/nuve/tadil-et-metni.d.ts.map +1 -0
  60. package/teshir/nuve/tadil-et-metni.js +103 -0
  61. package/teshir/nuve/tensih-zihinden.d.ts +2 -0
  62. package/teshir/nuve/tensih-zihinden.d.ts.map +1 -0
  63. package/teshir/nuve/tensih-zihinden.js +19 -0
  64. package/teshir/nuve/tensih-zihne.d.ts +2 -0
  65. package/teshir/nuve/tensih-zihne.d.ts.map +1 -0
  66. package/teshir/nuve/tensih-zihne.js +16 -0
  67. package/teshir/tedkik/harf-latiniden-osmaniye.tedkik.d.ts +2 -0
  68. package/teshir/tedkik/harf-latiniden-osmaniye.tedkik.d.ts.map +1 -0
  69. package/teshir/tedkik/harf-latiniden-osmaniye.tedkik.js +137 -0
package/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 KadimElifba
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,42 @@
1
+ # Osmani membasının gayesi nedir?
2
+
3
+ Latin harflerinin bulunduğu mesdanla Osmanlı Türkçesi yazabilmek için hazırlanmıştır.
4
+ Mesdandan basılan harfin yerine Osmanî dengini yazar.
5
+
6
+ ## Nasıl Kullanılır?
7
+
8
+ Bu memba **React** ile hazırlanan sahifelerde kullanılmak için geliştirilmiştir.
9
+ Sırası ile aşağıdaki adımları takip edelim:
10
+
11
+ Membayı tarhımıza dahil edelim:
12
+
13
+ ```
14
+ npm install mesdan
15
+ ```
16
+
17
+ **useMesdan** kancasını unsura dahil edelim:
18
+
19
+ ```
20
+ const [kelime, metinSahasıİması] = useMesdan<HTMLInputElement>({
21
+ ibtidaiKelime: "",
22
+ tekSatırMı: true,
23
+ });
24
+ ```
25
+
26
+ Bu kanca **[kelime, metinSahasıİması]** dizisini cevaben iletir.
27
+ **metinSahasıİması**, **input** unsurunun **ref** hususiyetine tanıtılmalıdır.
28
+ Bu sayede **useMesdan** **input** sahası seçiliyken basılan harfleri dinleyecek ve işbu harfleri
29
+ Osmanî denkleri ile değiştirecektir. Osmani Elifba ile yazılmış **kelime** evvelki dizi ile
30
+ kancaldan alınmıştı. **input** sahasının **value** kısmına işbu **kelime** tanıtılmalıdır.
31
+ İlaveten, **onChange** dinleyicisi de aşağıdaki gibi hazır edilmelidir.
32
+
33
+ ```
34
+ <input
35
+ ref={metinSahasıİması}
36
+ dir="rtl"
37
+ type="text"
38
+ placeholder="كلمه"
39
+ value={kelime}
40
+ onChange={hadise => { }}
41
+ />
42
+ ```
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "mesdan",
3
+ "version": "1.0.0",
4
+ "description": "Latinî mesdan ile Osmanî metin yazmak için hazırlanmış bir alettir.",
5
+ "keywords": [
6
+ "osmanlıca",
7
+ "türkçe",
8
+ "türki",
9
+ "osmani",
10
+ "turkish",
11
+ "elifba",
12
+ "keyboard",
13
+ "tercüme",
14
+ "ottoman",
15
+ "latini"
16
+ ],
17
+ "type": "module",
18
+ "main": "teshir/index.js",
19
+ "types": "teshir/index.d.ts",
20
+ "scripts": {
21
+ "öninşa": "rm -rf teshir",
22
+ "inşa": "npm run öninşa && tsc -p .",
23
+ "tecrübe": "tsx watch memba/index.ts",
24
+ "tedkik": "jest"
25
+ },
26
+ "author": "KadimElifba",
27
+ "license": "MIT",
28
+ "devDependencies": {
29
+ "@types/jest": "^29.5.12",
30
+ "@types/react": "^19.0.8",
31
+ "@types/react-dom": "^19.0.3",
32
+ "jest": "^29.7.0",
33
+ "prettier": "^3.3.1",
34
+ "react": "^19.0.0",
35
+ "react-dom": "^19.0.0",
36
+ "ts-jest": "^29.1.2",
37
+ "tsx": "^4.7.1",
38
+ "typescript": "^5.3.3"
39
+ },
40
+ "peerDependencies": {
41
+ "@types/react": "^19.0.8",
42
+ "@types/react-dom": "^19.0.3",
43
+ "react": "^19.0.0",
44
+ "react-dom": "^19.0.0"
45
+ }
46
+ }
@@ -0,0 +1,2 @@
1
+ export declare function harfBüyükMü(harf: string): boolean;
2
+ //# sourceMappingURL=harf-buyuk-mu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harf-buyuk-mu.d.ts","sourceRoot":"","sources":["../../memba/aletler/harf-buyuk-mu.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,WAIvC"}
@@ -0,0 +1,5 @@
1
+ export function harfBüyükMü(harf) {
2
+ const netice = harf !== harf.toLowerCase() && harf === harf.toUpperCase();
3
+ // console.log("harfBuyukkMu > " + harf + " - " + netice);
4
+ return netice;
5
+ }
@@ -0,0 +1,2 @@
1
+ export declare function harfKelimeBaşındaMı(sonHarf: string): boolean;
2
+ //# sourceMappingURL=harf-kelime-basinda-mi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harf-kelime-basinda-mi.d.ts","sourceRoot":"","sources":["../../memba/aletler/harf-kelime-basinda-mi.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,WAmBlD"}
@@ -0,0 +1,18 @@
1
+ export function harfKelimeBaşındaMı(sonHarf) {
2
+ if (sonHarf === " " ||
3
+ sonHarf === "(" ||
4
+ sonHarf === "{" ||
5
+ sonHarf === "[" ||
6
+ sonHarf === "\n" ||
7
+ sonHarf === "\r" ||
8
+ sonHarf === "\r\n" ||
9
+ sonHarf === "." ||
10
+ sonHarf === "،" ||
11
+ sonHarf === "؛" ||
12
+ sonHarf === "؟" ||
13
+ sonHarf === '"' ||
14
+ sonHarf === "") {
15
+ return true;
16
+ }
17
+ return false;
18
+ }
@@ -0,0 +1,2 @@
1
+ export declare function harfKücükMü(harf: string): boolean;
2
+ //# sourceMappingURL=harf-kucuk-mu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harf-kucuk-mu.d.ts","sourceRoot":"","sources":["../../memba/aletler/harf-kucuk-mu.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,WAIvC"}
@@ -0,0 +1,5 @@
1
+ export function harfKücükMü(harf) {
2
+ const netice = harf === harf.toLowerCase() && harf !== harf.toUpperCase();
3
+ // console.log("harfKücükMü > " + harf + " - " + netice);
4
+ return netice;
5
+ }
@@ -0,0 +1,6 @@
1
+ export declare function harekeMi(harf: string): boolean;
2
+ export declare function tenvinMi(harf: string): boolean;
3
+ export declare function şeddeMi(harf: string): boolean;
4
+ export declare function kesmeMi(harf: string): boolean;
5
+ export declare function gayriİşaretlerdenMi(harf: string): boolean;
6
+ //# sourceMappingURL=harf-tedkiki.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harf-tedkiki.d.ts","sourceRoot":"","sources":["../../memba/aletler/harf-tedkiki.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,WAKpC;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,WAKpC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,WAKnC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,WAKnC;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,WAK/C"}
@@ -0,0 +1,69 @@
1
+ export function harekeMi(harf) {
2
+ if (harekeler.includes(harf)) {
3
+ return true;
4
+ }
5
+ return false;
6
+ }
7
+ export function tenvinMi(harf) {
8
+ if (tenvinler.includes(harf)) {
9
+ return true;
10
+ }
11
+ return false;
12
+ }
13
+ export function şeddeMi(harf) {
14
+ if (şeddeler.includes(harf)) {
15
+ return true;
16
+ }
17
+ return false;
18
+ }
19
+ export function kesmeMi(harf) {
20
+ if (harf.endsWith("\u200C")) {
21
+ return true;
22
+ }
23
+ return false;
24
+ }
25
+ export function gayriİşaretlerdenMi(harf) {
26
+ if (gayriİşaretler.includes(harf)) {
27
+ return true;
28
+ }
29
+ return false;
30
+ }
31
+ const şeddeler = [
32
+ "\u064E" + "\u0651", // Fetha + Şedde
33
+ "\u0650" + "\u0651", // Kesra + Şedde
34
+ "\u064F" + "\u0651", // Damme + Şedde
35
+ ];
36
+ const harekeler = [
37
+ "\u064E", // Fetha
38
+ "\u0650", // Kesra
39
+ "\u064F", // Damme
40
+ "\u0652", // Sukun
41
+ "\u0651", // Şedde Yalnız
42
+ ];
43
+ const tenvinler = [
44
+ "\u064B", // Fetha Tenvin
45
+ "\u064D", // Kesra Tenvin
46
+ "\u064C", // Damme Tenvin
47
+ ];
48
+ const gayriİşaretler = [
49
+ "\u0653", // Med
50
+ "\u0670", // Elif Üst
51
+ "\u0656", // Elif Alt
52
+ "\u0654", // Hemze Üst
53
+ "\u0655", // Hemze Alt
54
+ ];
55
+ const işaretler = [
56
+ "\u0653", // Med
57
+ "\u064E", // Fetha
58
+ "\u0650", // Kesra
59
+ "\u064F", // Damme
60
+ "\u0652", // Sukun
61
+ "\u0651", // Şedde
62
+ "\u064D", // Kesra Tenvin
63
+ "\u064B", // Fetha Tenvin
64
+ "\u064C", // Damme Tenvin
65
+ "\u0670", // Elif Üst
66
+ "\u0656", // Elif Alt
67
+ "\u0654", // Hemze Üst
68
+ "\u0655", // Hemze Alt
69
+ ];
@@ -0,0 +1,3 @@
1
+ export declare function tebdilAlemMevkisini(metinSahası: HTMLTextAreaElement | HTMLInputElement, mevki: number, celbiNazar?: boolean): void;
2
+ export declare function tebdilAlemMevkisiniMenzilIle(metinSahası: HTMLTextAreaElement | HTMLInputElement, başMevki: number, sonMevki: number, celbiNazar?: boolean): void;
3
+ //# sourceMappingURL=tebdil-alem-mevkisini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tebdil-alem-mevkisini.d.ts","sourceRoot":"","sources":["../../memba/aletler/tebdil-alem-mevkisini.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,mBAAmB,GAAG,gBAAgB,EACnD,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,OAAe,QAW5B;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,mBAAmB,GAAG,gBAAgB,EACnD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,OAAe,QAW5B"}
@@ -0,0 +1,20 @@
1
+ export function tebdilAlemMevkisini(metinSahası, mevki, celbiNazar = false) {
2
+ if (celbiNazar) {
3
+ metinSahası.focus();
4
+ }
5
+ // Suni mesdanlerde erkenden çalıştığı için tesiri olmuyordu, geçiktirmemiz lazım
6
+ // https://stackoverflow.com/questions/11723420/chrome-setselectionrange-not-work-in-oninput-handler
7
+ window.setTimeout(function () {
8
+ metinSahası.setSelectionRange(mevki, mevki);
9
+ }, 0);
10
+ }
11
+ export function tebdilAlemMevkisiniMenzilIle(metinSahası, başMevki, sonMevki, celbiNazar = false) {
12
+ if (celbiNazar) {
13
+ metinSahası.focus();
14
+ }
15
+ // Suni mesdanlerde erkenden çalıştığı için tesiri olmuyordu, geçiktirmemiz lazım
16
+ // https://stackoverflow.com/questions/11723420/chrome-setselectionrange-not-work-in-oninput-handler
17
+ window.setTimeout(function () {
18
+ metinSahası.setSelectionRange(başMevki, sonMevki);
19
+ }, 0);
20
+ }
@@ -0,0 +1,2 @@
1
+ export { useMesdan } from "./kanca/use-mesdan";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../memba/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ export { useMesdan } from "./kanca/use-mesdan";
@@ -0,0 +1,16 @@
1
+ import { RefObject } from "react";
2
+ type MesdanHususları = {
3
+ ibtidaiMetin: string;
4
+ tekSatırMı: boolean;
5
+ latiniMi: boolean;
6
+ aramaTalepEdilince?: () => void;
7
+ };
8
+ type MesdanCevabı<T> = [
9
+ metin: string,
10
+ metinSahasıİması: RefObject<T | null>,
11
+ tebdilMetin: (yeniMetin: string) => void,
12
+ tebdilLatiniAramaMı: (latiniMi: boolean) => void
13
+ ];
14
+ export declare const useMesdan: <T>({ ibtidaiMetin, tekSatırMı, latiniMi, aramaTalepEdilince, }: MesdanHususları) => MesdanCevabı<T>;
15
+ export {};
16
+ //# sourceMappingURL=use-mesdan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mesdan.d.ts","sourceRoot":"","sources":["../../memba/kanca/use-mesdan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAU/D,KAAK,eAAe,GAAG;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,CAAC,CAAC,IAAI;IACrB,KAAK,EAAE,MAAM;IACb,gBAAgB,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI;IACxC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI;CACjD,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,CAAC,+DAKxB,eAAe,KAAG,YAAY,CAAC,CAAC,CAwPlC,CAAC"}
@@ -0,0 +1,218 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { useEffect, useRef, useState } from "react";
11
+ import { harfBüyükMü } from "../aletler/harf-buyuk-mu";
12
+ import { tebdilAlemMevkisiniMenzilIle } from "../aletler/tebdil-alem-mevkisini";
13
+ import { hazırlaAlemMevkisini, hazırlaAlemMevkisiniMenzilli } from "../nev/alem-mevkisi";
14
+ import { TadiliMetinEmri } from "../nev/tadili-metin-emri";
15
+ import { Talimat_MetniTadilEt } from "../nuve/tadil-et-metni";
16
+ export const useMesdan = ({ ibtidaiMetin = "", tekSatırMı, latiniMi = false, aramaTalepEdilince, }) => {
17
+ const [yenilemeİbresi, tebdilYenilemeİbresi] = useState(0);
18
+ const [metin, tebdilMetin] = useState(ibtidaiMetin);
19
+ const metinSahasıİması = useRef(null);
20
+ const alemMevkisiİması = useRef(hazırlaAlemMevkisini(ibtidaiMetin.length));
21
+ // const harekeTuşlarıFaalMi = useRef<boolean>(false);
22
+ const tebdilLatiniAramaMı = (_latiniMi) => {
23
+ latiniMi = _latiniMi;
24
+ };
25
+ useEffect(() => {
26
+ if (latiniMi)
27
+ return;
28
+ let metinSahası = metinSahasıİması.current;
29
+ if (!metinSahası)
30
+ return;
31
+ metinSahası.setAttribute("spellcheck", "false");
32
+ metinSahası.setAttribute("autocorrect", "off");
33
+ metinSahası.setAttribute("autocapitalize", "off");
34
+ metinSahası.setAttribute("autocomplete", "off");
35
+ if (tekSatırMı) {
36
+ metinSahası.setAttribute("enterkeyhint", "done");
37
+ // metinSahası.setAttribute("type", "search");
38
+ }
39
+ // Sahne hazır olduktan sonra alemin mevkilenmesi için
40
+ tebdilAlemMevkisiniMenzilIle(metinSahası, alemMevkisiİması.current.başMevki, alemMevkisiİması.current.sonMevki, true);
41
+ let alemMevkisiBaşı = metinSahası.selectionStart || 0;
42
+ let alemMevkisiSonu = metinSahası.selectionEnd || 0;
43
+ const tuşaBasılıncaFizikiMesdan = (hadise) => __awaiter(void 0, void 0, void 0, function* () {
44
+ // console.log("tuşaBasılıncaFizikiMesdan > keydown");
45
+ hadise.preventDefault();
46
+ hadise.stopPropagation();
47
+ // console.log("Hadise> Key: -" + hadise.key + "-");
48
+ // console.log("Hadise> Code: -" + hadise.code + "-");
49
+ const metin = metinSahası.value;
50
+ alemMevkisiBaşı = metinSahası.selectionStart || 0;
51
+ alemMevkisiSonu = metinSahası.selectionEnd || 0;
52
+ const alemMevkisi = hazırlaAlemMevkisiniMenzilli(alemMevkisiBaşı, alemMevkisiSonu);
53
+ const mesHadisesi = {
54
+ latiniHarf: hadise.key,
55
+ shiftBasılıMı: hadise.shiftKey,
56
+ altBasılıMı: hadise.altKey,
57
+ capsLockBasılıMı: harfBüyükMü(hadise.key),
58
+ };
59
+ // arama 1.2.0 kademesinde hazır değildi, sonradan hazırladım
60
+ let tadiliMetinEmri = TadiliMetinEmri.EKLE;
61
+ if (tekSatırMı && hadise.key === "Enter") {
62
+ tadiliMetinEmri = TadiliMetinEmri.ARA;
63
+ if (aramaTalepEdilince) {
64
+ aramaTalepEdilince();
65
+ }
66
+ return;
67
+ }
68
+ else if (!tekSatırMı && hadise.key === "Enter") {
69
+ tadiliMetinEmri = TadiliMetinEmri.EKLE;
70
+ mesHadisesi.latiniHarf = "\n";
71
+ }
72
+ else if (hadise.key === "Delete") {
73
+ tadiliMetinEmri = TadiliMetinEmri.SİL_AHİRDEN;
74
+ }
75
+ else if (hadise.key === "Backspace") {
76
+ tadiliMetinEmri = TadiliMetinEmri.SİL_EVVELDEN;
77
+ }
78
+ else if (hadise.key === "ArrowRight") {
79
+ tadiliMetinEmri = TadiliMetinEmri.ALEM_SAĞA;
80
+ }
81
+ else if (hadise.key === "ArrowLeft") {
82
+ tadiliMetinEmri = TadiliMetinEmri.ALEM_SOLA;
83
+ }
84
+ else if (hadise.key === "ArrowUp") {
85
+ tadiliMetinEmri = TadiliMetinEmri.ALEM_YUKARI;
86
+ }
87
+ else if (hadise.key === "ArrowDown") {
88
+ tadiliMetinEmri = TadiliMetinEmri.ALEM_AŞAĞI;
89
+ }
90
+ else if (hadise.ctrlKey) {
91
+ if (hadise.key.toLowerCase() === "c") {
92
+ tadiliMetinEmri = TadiliMetinEmri.TENSİH;
93
+ }
94
+ else if (hadise.key.toLowerCase() === "x") {
95
+ tadiliMetinEmri = TadiliMetinEmri.KES;
96
+ }
97
+ else if (hadise.key.toLowerCase() === "v") {
98
+ tadiliMetinEmri = TadiliMetinEmri.YAPIŞTIR;
99
+ }
100
+ else {
101
+ tadiliMetinEmri = TadiliMetinEmri.BOŞ;
102
+ }
103
+ }
104
+ else if (hadise.key === "Shift") {
105
+ tadiliMetinEmri = TadiliMetinEmri.BOŞ;
106
+ }
107
+ else if (hadise.key === "Alt") {
108
+ tadiliMetinEmri = TadiliMetinEmri.BOŞ;
109
+ }
110
+ else if (hadise.key === "AltGraph") {
111
+ tadiliMetinEmri = TadiliMetinEmri.BOŞ;
112
+ }
113
+ else if (hadise.key === "Meta") {
114
+ tadiliMetinEmri = TadiliMetinEmri.BOŞ;
115
+ }
116
+ else if (hadise.key === "Tab") {
117
+ tadiliMetinEmri = TadiliMetinEmri.BOŞ;
118
+ }
119
+ else if (hadise.key === "CapsLock") {
120
+ tadiliMetinEmri = TadiliMetinEmri.BOŞ;
121
+ }
122
+ else if (hadise.key === "Dead") {
123
+ tadiliMetinEmri = TadiliMetinEmri.BOŞ;
124
+ }
125
+ const netice = yield Talimat_MetniTadilEt(metinSahası, metin, alemMevkisi, tadiliMetinEmri, mesHadisesi, true);
126
+ // console.log("netice: " + JSON.stringify(netice));
127
+ alemMevkisiİması.current = netice.alemMevkisiTadilSonrası;
128
+ tebdilMetin(netice.metinTadilSonrası);
129
+ // Alemin sağa, sola, aşağı ve yukarı hareketi için lazım
130
+ tebdilAlemMevkisiniMenzilIle(metinSahası, netice.alemMevkisiTadilSonrası.başMevki, netice.alemMevkisiTadilSonrası.sonMevki, true);
131
+ if (netice.sahneYenidenÇizilsinMi) {
132
+ tebdilYenilemeİbresi((ibre) => ibre + 1);
133
+ }
134
+ });
135
+ const tuşaBasılıncaSuniMesdan = (hadise) => __awaiter(void 0, void 0, void 0, function* () {
136
+ // console.log("tuşaBasılıncaSuniMesdan > input");
137
+ hadise.preventDefault(); // Here event.preventDefault doesn't stop user from typing
138
+ hadise.stopPropagation();
139
+ const metinHadisesi = hadise;
140
+ let harf = "";
141
+ if (metinHadisesi.data !== null) {
142
+ harf = metinHadisesi.data;
143
+ }
144
+ // console.log("Hadise> data: -" + harf + "- -" + harf.slice(-1) + "-");
145
+ // console.log("Hadise> inputType: -" + metinHadisesi.inputType + "-");
146
+ const mesHadisesi = {
147
+ // latiniHarf: harf,
148
+ latiniHarf: harf.replace(". ", " "),
149
+ // latiniHarf: harf.slice(-1),
150
+ shiftBasılıMı: false,
151
+ altBasılıMı: false,
152
+ capsLockBasılıMı: harfBüyükMü(harf),
153
+ };
154
+ let tadiliMetinEmri = TadiliMetinEmri.EKLE; // insertText
155
+ if (tekSatırMı && metinHadisesi.inputType === "Enter") {
156
+ tadiliMetinEmri = TadiliMetinEmri.ARA;
157
+ }
158
+ else if (!tekSatırMı && metinHadisesi.inputType === "insertLineBreak") {
159
+ mesHadisesi.latiniHarf = "\n";
160
+ tadiliMetinEmri = TadiliMetinEmri.EKLE;
161
+ }
162
+ else if (metinHadisesi.inputType === "deleteContentBackward") {
163
+ tadiliMetinEmri = TadiliMetinEmri.SİL_EVVELDEN;
164
+ }
165
+ else if (metinHadisesi.inputType === "deleteByCut") {
166
+ tadiliMetinEmri = TadiliMetinEmri.KES;
167
+ }
168
+ else if (metinHadisesi.inputType === "insertFromPaste") {
169
+ tadiliMetinEmri = TadiliMetinEmri.YAPIŞTIR;
170
+ }
171
+ const metin = metinSahası.value;
172
+ const alemMevkisi = hazırlaAlemMevkisiniMenzilli(alemMevkisiBaşı, alemMevkisiSonu);
173
+ const netice = yield Talimat_MetniTadilEt(metinSahası, metin, alemMevkisi, tadiliMetinEmri, mesHadisesi, false);
174
+ alemMevkisiİması.current = netice.alemMevkisiTadilSonrası;
175
+ tebdilMetin(netice.metinTadilSonrası);
176
+ if (netice.sahneYenidenÇizilsinMi) {
177
+ tebdilYenilemeİbresi((ibre) => ibre + 1);
178
+ }
179
+ });
180
+ const tuşaBasılıncaEvveliSuniMesdan = (hadise) => {
181
+ // console.log("tuşaBasılıncaEvveliSuniMesdan > beforeinput");
182
+ alemMevkisiBaşı = metinSahası.selectionStart || 0;
183
+ alemMevkisiSonu = metinSahası.selectionEnd || 0;
184
+ };
185
+ const metinYapıştırmaTalebinde = (hadise) => __awaiter(void 0, void 0, void 0, function* () {
186
+ hadise.preventDefault();
187
+ const mesHadisesi = {
188
+ latiniHarf: "",
189
+ shiftBasılıMı: false,
190
+ altBasılıMı: false,
191
+ capsLockBasılıMı: false,
192
+ };
193
+ alemMevkisiBaşı = metinSahası.selectionStart || 0;
194
+ alemMevkisiSonu = metinSahası.selectionEnd || 0;
195
+ const metin = metinSahası.value;
196
+ const alemMevkisi = hazırlaAlemMevkisiniMenzilli(alemMevkisiBaşı, alemMevkisiSonu);
197
+ const tadiliMetinEmri = TadiliMetinEmri.YAPIŞTIR;
198
+ const netice = yield Talimat_MetniTadilEt(metinSahası, metin, alemMevkisi, tadiliMetinEmri, mesHadisesi, true);
199
+ alemMevkisiİması.current = netice.alemMevkisiTadilSonrası;
200
+ tebdilMetin(netice.metinTadilSonrası);
201
+ });
202
+ if (window.matchMedia("(pointer: coarse)").matches) {
203
+ metinSahası.addEventListener("beforeinput", tuşaBasılıncaEvveliSuniMesdan, false);
204
+ metinSahası.addEventListener("input", tuşaBasılıncaSuniMesdan, false);
205
+ }
206
+ else {
207
+ metinSahası.addEventListener("keydown", tuşaBasılıncaFizikiMesdan, false);
208
+ metinSahası.addEventListener("paste", metinYapıştırmaTalebinde, false);
209
+ }
210
+ return () => {
211
+ metinSahası.removeEventListener("keydown", tuşaBasılıncaFizikiMesdan);
212
+ metinSahası.removeEventListener("beforeinput", tuşaBasılıncaEvveliSuniMesdan);
213
+ metinSahası.removeEventListener("input", tuşaBasılıncaSuniMesdan);
214
+ metinSahası.removeEventListener("paste", tuşaBasılıncaSuniMesdan);
215
+ };
216
+ }, [metin, yenilemeİbresi, metinSahasıİması.current, latiniMi]);
217
+ return [metin, metinSahasıİması, tebdilMetin, tebdilLatiniAramaMı];
218
+ };
@@ -0,0 +1,8 @@
1
+ export type AlemMevkisi = {
2
+ başMevki: number;
3
+ sonMevki: number;
4
+ };
5
+ export declare function alAleminİlkHalini(): AlemMevkisi;
6
+ export declare function hazırlaAlemMevkisini(mevki: number): AlemMevkisi;
7
+ export declare function hazırlaAlemMevkisiniMenzilli(baş: number, son: number): AlemMevkisi;
8
+ //# sourceMappingURL=alem-mevkisi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alem-mevkisi.d.ts","sourceRoot":"","sources":["../../memba/nev/alem-mevkisi.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAE/D;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAElF"}
@@ -0,0 +1,9 @@
1
+ export function alAleminİlkHalini() {
2
+ return { başMevki: 0, sonMevki: 0 };
3
+ }
4
+ export function hazırlaAlemMevkisini(mevki) {
5
+ return { başMevki: mevki, sonMevki: mevki };
6
+ }
7
+ export function hazırlaAlemMevkisiniMenzilli(baş, son) {
8
+ return { başMevki: baş, sonMevki: son };
9
+ }
@@ -0,0 +1,20 @@
1
+ export declare enum Hareke {
2
+ BOŞ = "HAREKE_BO\u015E",
3
+ FETHA = "HAREKE_FETHA",
4
+ KESRA = "HAREKE_KESRA",
5
+ DAMME = "HAREKE_DAMME",
6
+ SÜKUN = "HAREKE_S\u00DCKUN"
7
+ }
8
+ export declare enum Tenvin {
9
+ BOŞ = "TENV\u0130N_BO\u015E",
10
+ FETHA = "TENV\u0130N_FETHA",
11
+ KESRA = "TENV\u0130N_KESRA",
12
+ DAMME = "TENV\u0130N_DAMME"
13
+ }
14
+ export type KelamUnsuru = {
15
+ harf: string;
16
+ şedde: boolean;
17
+ hareke: Hareke;
18
+ tenvin: Tenvin;
19
+ };
20
+ //# sourceMappingURL=kelam-unsuru.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kelam-unsuru.d.ts","sourceRoot":"","sources":["../../memba/nev/kelam-unsuru.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,GAAG,oBAAe;IAClB,KAAK,iBAAiB;IACtB,KAAK,iBAAiB;IACtB,KAAK,iBAAiB;IACtB,KAAK,sBAAiB;CACvB;AAED,oBAAY,MAAM;IAChB,GAAG,yBAAe;IAClB,KAAK,sBAAiB;IACtB,KAAK,sBAAiB;IACtB,KAAK,sBAAiB;CACvB;AAgBD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export var Hareke;
2
+ (function (Hareke) {
3
+ Hareke["BO\u015E"] = "HAREKE_BO\u015E";
4
+ Hareke["FETHA"] = "HAREKE_FETHA";
5
+ Hareke["KESRA"] = "HAREKE_KESRA";
6
+ Hareke["DAMME"] = "HAREKE_DAMME";
7
+ Hareke["S\u00DCKUN"] = "HAREKE_S\u00DCKUN";
8
+ })(Hareke || (Hareke = {}));
9
+ export var Tenvin;
10
+ (function (Tenvin) {
11
+ Tenvin["BO\u015E"] = "TENV\u0130N_BO\u015E";
12
+ Tenvin["FETHA"] = "TENV\u0130N_FETHA";
13
+ Tenvin["KESRA"] = "TENV\u0130N_KESRA";
14
+ Tenvin["DAMME"] = "TENV\u0130N_DAMME";
15
+ })(Tenvin || (Tenvin = {}));
@@ -0,0 +1,7 @@
1
+ export type MesHadisesi = {
2
+ latiniHarf: string;
3
+ shiftBasılıMı: boolean;
4
+ altBasılıMı: boolean;
5
+ capsLockBasılıMı: boolean;
6
+ };
7
+ //# sourceMappingURL=mes-hadisesi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mes-hadisesi.d.ts","sourceRoot":"","sources":["../../memba/nev/mes-hadisesi.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import { AlemMevkisi } from "./alem-mevkisi";
2
+ export type Netice_MetniTadilEt = {
3
+ metinTadilSonrası: string;
4
+ alemMevkisiTadilSonrası: AlemMevkisi;
5
+ sahneYenidenÇizilsinMi: boolean;
6
+ };
7
+ //# sourceMappingURL=netice-metni-tadil-et.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"netice-metni-tadil-et.d.ts","sourceRoot":"","sources":["../../memba/nev/netice-metni-tadil-et.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,WAAW,CAAC;IACrC,sBAAsB,EAAE,OAAO,CAAC;CACjC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export type Netice_OsmaniHarfTadili = {
2
+ metinOsmani: string;
3
+ alemBaşMevkisi: number;
4
+ };
5
+ //# sourceMappingURL=netice-osmani-harf-tadili.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"netice-osmani-harf-tadili.d.ts","sourceRoot":"","sources":["../../memba/nev/netice-osmani-harf-tadili.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};