mesdan
Version:
Latinî mesdan ile Osmanî metin yazmak için hazırlanmış bir alettir.
95 lines (94 loc) • 5.15 kB
JavaScript
import { hazırlaAlemMevkisini, hazırlaAlemMevkisiniMenzilli } from "../nev/alem-mevkisi";
import { TadiliMetinEmri } from "../nev/tadili-metin-emri";
import { ekleOsmaniMetneHarf } from "./ekle-osmani-metne-harf";
import { kaydirAlemiAşağı, kaydirAlemiSağa, kaydirAlemiSola, kaydirAlemiYukarı } from "./kaydir-alemi";
import { tensihZihne } from "./tensih-zihne";
import { tensihZihinden } from "./tensih-zihinden";
import { silOsmaniMetindenHarfSonra } from "./sil-osmani-metinden-harf-sonra";
import { silOsmaniMetindenHarfBaşra } from "./sil-osmani-metinden-harf-basra";
export const Talimat_MetniTadilEt = async (metinSahası, metin, alemMevkisi, tadiliMetinEmri, mesHadisesi, fizikiMesdanlıMı) => {
// console.log("tadiliMetinEmri: " + JSON.stringify(tadiliMetinEmri));
// console.log("mesHadisesi: " + JSON.stringify(mesHadisesi));
// if (hususlar && tadiliMetinEmri === TadiliMetinEmri.ARA) {
// if (hususlar.aramaTalepEdilince) {
// hususlar.aramaTalepEdilince();
// }
// }
// else if (tadiliMetinEmri === TadiliMetinEmri.TEMİZLE) {
// alemMevkisiTadilSonrası = hazırlaAlemMevkisini(0);
// tebdilMetin("");
// }
let metinTadilSonrası = metin;
let alemMevkisiTadilSonrası = alemMevkisi;
let sahneYenidenÇizilsinMi = false;
if (tadiliMetinEmri === TadiliMetinEmri.ALEM_SAĞA) {
alemMevkisiTadilSonrası = kaydirAlemiSağa(metin, alemMevkisi);
}
else if (tadiliMetinEmri === TadiliMetinEmri.ALEM_SOLA) {
alemMevkisiTadilSonrası = kaydirAlemiSola(metin, alemMevkisi);
}
else if (tadiliMetinEmri === TadiliMetinEmri.ALEM_YUKARI) {
// alemMevkisiTadilSonrası = hazırlaAlemMevkisini(0);
alemMevkisiTadilSonrası = kaydirAlemiYukarı(metin, alemMevkisi);
}
else if (tadiliMetinEmri === TadiliMetinEmri.ALEM_AŞAĞI) {
// alemMevkisiTadilSonrası = hazırlaAlemMevkisini(metin.length);
alemMevkisiTadilSonrası = kaydirAlemiAşağı(metin, alemMevkisi);
}
else if (tadiliMetinEmri === TadiliMetinEmri.KES) {
const kesilecekMetin = metin.slice(alemMevkisi.başMevki, alemMevkisi.sonMevki);
tensihZihne(kesilecekMetin, (netice) => { });
const kesilmedenSonraMetin = metin.slice(0, alemMevkisi.başMevki) + metin.slice(alemMevkisi.sonMevki);
alemMevkisiTadilSonrası = hazırlaAlemMevkisini(alemMevkisi.başMevki);
metinTadilSonrası = kesilmedenSonraMetin;
}
else if (tadiliMetinEmri === TadiliMetinEmri.TENSİH) {
const TENSİHnacakMetin = metin.slice(alemMevkisi.başMevki, alemMevkisi.sonMevki);
tensihZihne(TENSİHnacakMetin, (netice) => { });
}
else if (tadiliMetinEmri === TadiliMetinEmri.YAPIŞTIR) {
const hafızadakiMetin = await tensihZihinden();
if (hafızadakiMetin.length > 0) {
const ilavedenSonraMetin = metin.slice(0, alemMevkisi.başMevki) + hafızadakiMetin + metin.slice(alemMevkisi.sonMevki);
alemMevkisiTadilSonrası = hazırlaAlemMevkisini(alemMevkisi.başMevki + hafızadakiMetin.length);
metinTadilSonrası = ilavedenSonraMetin;
}
else {
// yapıştırma için hafızadan metni okuyamazsak mevcud Metni gösterelim
sahneYenidenÇizilsinMi = true;
}
}
else if (tadiliMetinEmri === TadiliMetinEmri.SİL_EVVELDEN) {
let alemMevkisiMenzili = hazırlaAlemMevkisiniMenzilli(alemMevkisi.sonMevki, alemMevkisi.sonMevki);
if (fizikiMesdanlıMı) {
alemMevkisiMenzili = hazırlaAlemMevkisiniMenzilli(alemMevkisi.başMevki, alemMevkisi.sonMevki);
}
const { metinOsmani, alemBaşMevkisi } = silOsmaniMetindenHarfBaşra(metin, alemMevkisiMenzili);
alemMevkisiTadilSonrası = hazırlaAlemMevkisini(alemBaşMevkisi);
metinTadilSonrası = metinOsmani;
}
else if (tadiliMetinEmri === TadiliMetinEmri.SİL_AHİRDEN) {
let alemMevkisiMenzili = hazırlaAlemMevkisiniMenzilli(alemMevkisi.sonMevki, alemMevkisi.sonMevki);
if (fizikiMesdanlıMı) {
alemMevkisiMenzili = hazırlaAlemMevkisiniMenzilli(alemMevkisi.başMevki, alemMevkisi.sonMevki);
}
const { metinOsmani, alemBaşMevkisi } = silOsmaniMetindenHarfSonra(metin, alemMevkisiMenzili);
alemMevkisiTadilSonrası = hazırlaAlemMevkisini(alemBaşMevkisi);
metinTadilSonrası = metinOsmani;
}
else if (tadiliMetinEmri === TadiliMetinEmri.EKLE) {
const { metinOsmani, alemBaşMevkisi } = ekleOsmaniMetneHarf(metin, hazırlaAlemMevkisiniMenzilli(alemMevkisi.başMevki, alemMevkisi.sonMevki), mesHadisesi);
alemMevkisiTadilSonrası = hazırlaAlemMevkisini(alemBaşMevkisi);
metinTadilSonrası = metinOsmani;
if (metin === metinOsmani) {
// metin değişmezse latin harfi görünüyor, sahneyi tekrar çizmeliyiz
sahneYenidenÇizilsinMi = true;
}
}
// console.log("alemMevkisi: " + JSON.stringify(alemMevkisi));
return {
metinTadilSonrası,
alemMevkisiTadilSonrası,
sahneYenidenÇizilsinMi,
};
};