mesdan 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/teshir/kanca/use-mesdan.d.ts +8 -7
- package/teshir/kanca/use-mesdan.d.ts.map +1 -1
- package/teshir/kanca/use-mesdan.js +83 -53
- package/teshir/nuve/kaydir-alemi.d.ts +1 -1
- package/teshir/nuve/kaydir-alemi.d.ts.map +1 -1
- package/teshir/nuve/kaydir-alemi.js +41 -48
- package/teshir/nuve/tadil-et-metni.d.ts +5 -5
- package/teshir/nuve/tadil-et-metni.d.ts.map +1 -1
- package/teshir/nuve/tadil-et-metni.js +11 -11
package/package.json
CHANGED
|
@@ -3,16 +3,17 @@ type MesdanHususları = {
|
|
|
3
3
|
ibtidaiMetin: string;
|
|
4
4
|
tekSatırMı: boolean;
|
|
5
5
|
latiniMi?: boolean;
|
|
6
|
-
aramaTalepEdilince?: () => void;
|
|
6
|
+
aramaTalepEdilince?: (metin: string) => void;
|
|
7
7
|
metin?: string;
|
|
8
8
|
tayinMetin?: (yeniMetin: string) => void;
|
|
9
9
|
};
|
|
10
|
-
type MesdanCevabı<T> =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
tebdilMetin: (yeniMetin: string) => void
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
type MesdanCevabı<T> = {
|
|
11
|
+
metinSahasıİması: RefObject<T | null>;
|
|
12
|
+
metin: string;
|
|
13
|
+
tebdilMetin: (yeniMetin: string) => void;
|
|
14
|
+
latiniMi: boolean;
|
|
15
|
+
tebdilLatiniMi: (latiniMi: boolean) => void;
|
|
16
|
+
};
|
|
16
17
|
export declare const useMesdan: <T extends HTMLInputElement | HTMLTextAreaElement>({ ibtidaiMetin, tekSatırMı, latiniMi: ibtidaiLatiniMi, aramaTalepEdilince, metin: metinHarici, tayinMetin: tayinMetinHarici, }: MesdanHususları) => MesdanCevabı<T>;
|
|
17
18
|
export {};
|
|
18
19
|
//# sourceMappingURL=use-mesdan.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mesdan.d.ts","sourceRoot":"","sources":["../../memba/kanca/use-mesdan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"use-mesdan.d.ts","sourceRoot":"","sources":["../../memba/kanca/use-mesdan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA6E,MAAM,OAAO,CAAC;AAU7G,KAAK,eAAe,GAAG;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,KAAK,YAAY,CAAC,CAAC,IAAI;IACrB,gBAAgB,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,gBAAgB,GAAG,mBAAmB,kIAOvE,eAAe,KAAG,YAAY,CAAC,CAAC,CAiPlC,CAAC"}
|
|
@@ -6,18 +6,18 @@ import { Talimat_MetniTadilEt } from '../nuve/tadil-et-metni';
|
|
|
6
6
|
export const useMesdan = ({ ibtidaiMetin = '', tekSatırMı, latiniMi: ibtidaiLatiniMi = false, aramaTalepEdilince, metin: metinHarici, tayinMetin: tayinMetinHarici, }) => {
|
|
7
7
|
const [metinDahili, tayinMetinDahili] = useState(ibtidaiMetin);
|
|
8
8
|
const [latiniMi, tayinLatiniMi] = useState(ibtidaiLatiniMi);
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const metinSahasıİması = useRef(null);
|
|
10
|
+
const [alemMevkisi, tayinAlemMevkisi] = useState(hazırlaAlemMevkisini(ibtidaiMetin.length));
|
|
11
|
+
const idareHariçteMi = metinHarici !== undefined && tayinMetinHarici !== undefined;
|
|
12
|
+
const metin = idareHariçteMi ? metinHarici : metinDahili;
|
|
11
13
|
const tayinMetin = useCallback((yeniMetin) => {
|
|
12
|
-
if (
|
|
14
|
+
if (idareHariçteMi) {
|
|
13
15
|
tayinMetinHarici(yeniMetin);
|
|
14
16
|
}
|
|
15
17
|
else {
|
|
16
18
|
tayinMetinDahili(yeniMetin);
|
|
17
19
|
}
|
|
18
|
-
}, [
|
|
19
|
-
const metinSahasıİması = useRef(null);
|
|
20
|
-
const alemMevkisiİması = useRef(hazırlaAlemMevkisini(ibtidaiMetin.length));
|
|
20
|
+
}, [idareHariçteMi, tayinMetinHarici]);
|
|
21
21
|
const aramaTalepEdilinceRef = useRef(aramaTalepEdilince);
|
|
22
22
|
useEffect(() => {
|
|
23
23
|
aramaTalepEdilinceRef.current = aramaTalepEdilince;
|
|
@@ -29,7 +29,7 @@ export const useMesdan = ({ ibtidaiMetin = '', tekSatırMı, latiniMi: ibtidaiLa
|
|
|
29
29
|
return;
|
|
30
30
|
hadise.preventDefault();
|
|
31
31
|
hadise.stopPropagation();
|
|
32
|
-
const
|
|
32
|
+
const mevzuMetin = metinSahası.value;
|
|
33
33
|
const alemMevkisi = hazırlaAlemMevkisiniMenzilli(metinSahası.selectionStart || 0, metinSahası.selectionEnd || 0);
|
|
34
34
|
const mesHadisesi = {
|
|
35
35
|
latiniHarf: hadise.key,
|
|
@@ -40,7 +40,7 @@ export const useMesdan = ({ ibtidaiMetin = '', tekSatırMı, latiniMi: ibtidaiLa
|
|
|
40
40
|
let tadiliMetinEmri = TadiliMetinEmri.EKLE;
|
|
41
41
|
if (tekSatırMı && hadise.key === 'Enter') {
|
|
42
42
|
tadiliMetinEmri = TadiliMetinEmri.ARA;
|
|
43
|
-
aramaTalepEdilinceRef.current?.();
|
|
43
|
+
aramaTalepEdilinceRef.current?.(metin);
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
46
|
else if (!tekSatırMı && hadise.key === 'Enter') {
|
|
@@ -72,21 +72,21 @@ export const useMesdan = ({ ibtidaiMetin = '', tekSatırMı, latiniMi: ibtidaiLa
|
|
|
72
72
|
else if (['Shift', 'Alt', 'AltGraph', 'Meta', 'Tab', 'CapsLock', 'Dead'].includes(hadise.key)) {
|
|
73
73
|
tadiliMetinEmri = TadiliMetinEmri.BOŞ;
|
|
74
74
|
}
|
|
75
|
-
const netice = await Talimat_MetniTadilEt(
|
|
76
|
-
|
|
75
|
+
const netice = await Talimat_MetniTadilEt(mevzuMetin, alemMevkisi, tadiliMetinEmri, mesHadisesi, true);
|
|
76
|
+
tayinAlemMevkisi(netice.alemMevkisiTadilSonrası);
|
|
77
77
|
tayinMetin(netice.metinTadilSonrası);
|
|
78
|
-
}, [
|
|
78
|
+
}, [metin, tekSatırMı, tayinMetin]);
|
|
79
79
|
const handlePaste = useCallback(async (hadise) => {
|
|
80
80
|
const metinSahası = metinSahasıİması.current;
|
|
81
81
|
if (!metinSahası)
|
|
82
82
|
return;
|
|
83
83
|
hadise.preventDefault();
|
|
84
|
-
const
|
|
84
|
+
const mevzuMetin = metinSahası.value;
|
|
85
85
|
const alemMevkisi = hazırlaAlemMevkisiniMenzilli(metinSahası.selectionStart || 0, metinSahası.selectionEnd || 0);
|
|
86
|
-
const netice = await Talimat_MetniTadilEt(
|
|
87
|
-
|
|
86
|
+
const netice = await Talimat_MetniTadilEt(mevzuMetin, alemMevkisi, TadiliMetinEmri.YERLE, { latiniHarf: '', shiftBasılıMı: false, altBasılıMı: false, capsLockBasılıMı: false }, true);
|
|
87
|
+
tayinAlemMevkisi(netice.alemMevkisiTadilSonrası);
|
|
88
88
|
tayinMetin(netice.metinTadilSonrası);
|
|
89
|
-
}, []);
|
|
89
|
+
}, [tayinMetin]);
|
|
90
90
|
const handleBeforeInput = useCallback((hadise) => {
|
|
91
91
|
const metinSahası = metinSahasıİması.current;
|
|
92
92
|
if (!metinSahası)
|
|
@@ -118,66 +118,96 @@ export const useMesdan = ({ ibtidaiMetin = '', tekSatırMı, latiniMi: ibtidaiLa
|
|
|
118
118
|
else if (hadise.inputType === 'insertFromPaste') {
|
|
119
119
|
tadiliMetinEmri = TadiliMetinEmri.YERLE;
|
|
120
120
|
}
|
|
121
|
-
const
|
|
121
|
+
const mevzuMetin = metinSahası.value;
|
|
122
122
|
const alemMevkisi = hazırlaAlemMevkisiniMenzilli(alemMevkisiEvveli.current.baş, alemMevkisiEvveli.current.son);
|
|
123
|
-
const netice = await Talimat_MetniTadilEt(
|
|
124
|
-
|
|
123
|
+
const netice = await Talimat_MetniTadilEt(mevzuMetin, alemMevkisi, tadiliMetinEmri, mesHadisesi, false);
|
|
124
|
+
tayinAlemMevkisi(netice.alemMevkisiTadilSonrası);
|
|
125
125
|
tayinMetin(netice.metinTadilSonrası);
|
|
126
|
-
}, [
|
|
126
|
+
}, [tekSatırMı, tayinMetin]);
|
|
127
|
+
const handleSelect = useCallback(() => {
|
|
128
|
+
const metinSahası = metinSahasıİması.current;
|
|
129
|
+
if (!metinSahası)
|
|
130
|
+
return;
|
|
131
|
+
tayinAlemMevkisi(hazırlaAlemMevkisiniMenzilli(metinSahası.selectionStart || 0, metinSahası.selectionEnd || 0));
|
|
132
|
+
}, []);
|
|
127
133
|
useEffect(() => {
|
|
128
134
|
const metinSahası = metinSahasıİması.current;
|
|
129
|
-
if (!metinSahası
|
|
130
|
-
if (metinSahası) {
|
|
131
|
-
metinSahası.setAttribute('spellcheck', 'true');
|
|
132
|
-
}
|
|
135
|
+
if (!metinSahası) {
|
|
133
136
|
return;
|
|
134
137
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
if (tekSatırMı) {
|
|
140
|
-
metinSahası.setAttribute('enterkeyhint', 'done');
|
|
141
|
-
}
|
|
142
|
-
const keydownListener = (e) => {
|
|
143
|
-
handleKeydown(e);
|
|
144
|
-
};
|
|
145
|
-
const pasteListener = (e) => {
|
|
146
|
-
handlePaste(e);
|
|
138
|
+
// Listener for "Latin" (normal) mode
|
|
139
|
+
const handleNativeInput = (e) => {
|
|
140
|
+
const target = e.target;
|
|
141
|
+
tayinMetin(target.value);
|
|
147
142
|
};
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
143
|
+
const handleNativeKeydown = (e) => {
|
|
144
|
+
if (e instanceof KeyboardEvent && e.key === 'Enter' && tekSatırMı) {
|
|
145
|
+
e.preventDefault();
|
|
146
|
+
aramaTalepEdilinceRef.current?.(metin);
|
|
147
|
+
}
|
|
153
148
|
};
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
149
|
+
// Listeners for your custom mode
|
|
150
|
+
const keydownListener = (e) => handleKeydown(e);
|
|
151
|
+
const pasteListener = (e) => handlePaste(e);
|
|
152
|
+
const beforeInputListener = (e) => handleBeforeInput(e);
|
|
153
|
+
const inputListener = (e) => handleInput(e);
|
|
154
|
+
if (latiniMi) {
|
|
155
|
+
// --- LATIN MODE ---
|
|
156
|
+
metinSahası.setAttribute('spellcheck', 'true');
|
|
157
|
+
metinSahası.addEventListener('input', handleNativeInput);
|
|
158
|
+
metinSahası.addEventListener('keydown', handleNativeKeydown);
|
|
157
159
|
}
|
|
158
160
|
else {
|
|
159
|
-
|
|
160
|
-
metinSahası.
|
|
161
|
+
// --- CUSTOM MODE ---
|
|
162
|
+
metinSahası.setAttribute('spellcheck', 'false');
|
|
163
|
+
metinSahası.setAttribute('autocorrect', 'off');
|
|
164
|
+
metinSahası.setAttribute('autocapitalize', 'off');
|
|
165
|
+
metinSahası.setAttribute('autocomplete', 'off');
|
|
166
|
+
if (tekSatırMı) {
|
|
167
|
+
metinSahası.setAttribute('enterkeyhint', 'done');
|
|
168
|
+
}
|
|
169
|
+
if (window.matchMedia('(pointer: coarse)').matches) {
|
|
170
|
+
metinSahası.addEventListener('beforeinput', beforeInputListener);
|
|
171
|
+
metinSahası.addEventListener('input', inputListener);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
metinSahası.addEventListener('keydown', keydownListener);
|
|
175
|
+
metinSahası.addEventListener('paste', pasteListener);
|
|
176
|
+
}
|
|
177
|
+
metinSahası.addEventListener('select', handleSelect, { passive: true });
|
|
161
178
|
}
|
|
162
179
|
return () => {
|
|
180
|
+
// Remove Latin mode listeners
|
|
181
|
+
metinSahası.removeEventListener('input', handleNativeInput);
|
|
182
|
+
metinSahası.removeEventListener('keydown', handleNativeKeydown);
|
|
183
|
+
// Remove Custom mode listeners
|
|
163
184
|
metinSahası.removeEventListener('beforeinput', beforeInputListener);
|
|
164
185
|
metinSahası.removeEventListener('input', inputListener);
|
|
165
186
|
metinSahası.removeEventListener('keydown', keydownListener);
|
|
166
187
|
metinSahası.removeEventListener('paste', pasteListener);
|
|
188
|
+
metinSahası.removeEventListener('select', handleSelect);
|
|
167
189
|
};
|
|
168
|
-
}, [latiniMi,
|
|
190
|
+
}, [metin, latiniMi, tekSatırMı, handleKeydown, handlePaste, handleBeforeInput, handleInput, handleSelect, tayinMetin]);
|
|
169
191
|
useLayoutEffect(() => {
|
|
170
192
|
const metinSahası = metinSahasıİması.current;
|
|
171
193
|
if (metinSahası && !latiniMi) {
|
|
172
|
-
const { başMevki, sonMevki } =
|
|
173
|
-
if (başMevki
|
|
174
|
-
|
|
194
|
+
const { başMevki, sonMevki } = alemMevkisi;
|
|
195
|
+
if (metinSahası.selectionStart !== başMevki || metinSahası.selectionEnd !== sonMevki) {
|
|
196
|
+
if (başMevki <= metinSahası.value.length && sonMevki <= metinSahası.value.length) {
|
|
197
|
+
metinSahası.setSelectionRange(başMevki, sonMevki);
|
|
198
|
+
}
|
|
175
199
|
}
|
|
176
200
|
}
|
|
177
|
-
}, [metin, latiniMi]);
|
|
201
|
+
}, [metin, latiniMi, alemMevkisi]);
|
|
178
202
|
const tebdilMetin = useCallback((yeniMetin) => {
|
|
179
203
|
tayinMetin(yeniMetin);
|
|
180
|
-
|
|
181
|
-
}, []);
|
|
182
|
-
return
|
|
204
|
+
tayinAlemMevkisi(hazırlaAlemMevkisini(yeniMetin.length));
|
|
205
|
+
}, [tayinMetin]);
|
|
206
|
+
return {
|
|
207
|
+
metinSahasıİması,
|
|
208
|
+
metin,
|
|
209
|
+
tebdilMetin,
|
|
210
|
+
latiniMi,
|
|
211
|
+
tebdilLatiniMi: tayinLatiniMi,
|
|
212
|
+
};
|
|
183
213
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AlemMevkisi } from
|
|
1
|
+
import { AlemMevkisi } from '../nev/alem-mevkisi';
|
|
2
2
|
export declare const kaydirAlemiSağa: (mevcudMetin: string, alemMevkisi: AlemMevkisi) => AlemMevkisi;
|
|
3
3
|
export declare const kaydirAlemiSola: (mevcudMetin: string, alemMevkisi: AlemMevkisi) => AlemMevkisi;
|
|
4
4
|
export declare const kaydirAlemiYukarı: (mevcudMetin: string, alemMevkisi: AlemMevkisi) => AlemMevkisi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaydir-alemi.d.ts","sourceRoot":"","sources":["../../memba/nuve/kaydir-alemi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,qBAAqB,CAAC;AAkCxE,eAAO,MAAM,eAAe,gBAAiB,MAAM,eAAe,WAAW,KAAG,WAG/E,CAAC;AAEF,eAAO,MAAM,eAAe,gBAAiB,MAAM,eAAe,WAAW,KAAG,WAG/E,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBAAiB,MAAM,eAAe,WAAW,KAAG,
|
|
1
|
+
{"version":3,"file":"kaydir-alemi.d.ts","sourceRoot":"","sources":["../../memba/nuve/kaydir-alemi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,qBAAqB,CAAC;AAkCxE,eAAO,MAAM,eAAe,gBAAiB,MAAM,eAAe,WAAW,KAAG,WAG/E,CAAC;AAEF,eAAO,MAAM,eAAe,gBAAiB,MAAM,eAAe,WAAW,KAAG,WAG/E,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBAAiB,MAAM,eAAe,WAAW,KAAG,WAiCjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAAiB,MAAM,eAAe,WAAW,KAAG,WAkChF,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { hazırlaAlemMevkisini } from
|
|
2
|
-
const cüzleyici = new Intl.Segmenter(
|
|
1
|
+
import { hazırlaAlemMevkisini } from '../nev/alem-mevkisi';
|
|
2
|
+
const cüzleyici = new Intl.Segmenter('ar', { granularity: 'grapheme' });
|
|
3
3
|
function metinCüzleriniAl(metin) {
|
|
4
|
-
return Array.from(cüzleyici.segment(metin)
|
|
4
|
+
return Array.from(cüzleyici.segment(metin));
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function bulBaşrakiMetinpareninBaşını(text, index) {
|
|
7
7
|
let cüzler = Array.from(cüzleyici.segment(text));
|
|
8
8
|
let pos = 0;
|
|
9
9
|
for (let i = 0; i < cüzler.length; i++) {
|
|
@@ -28,7 +28,7 @@ function bulSonrakiMetinpareninBaşını(text, index) {
|
|
|
28
28
|
// ---------------------------------------------------------------------------
|
|
29
29
|
// ---------------------------------------------------------------------------
|
|
30
30
|
export const kaydirAlemiSağa = (mevcudMetin, alemMevkisi) => {
|
|
31
|
-
const yeniMevki =
|
|
31
|
+
const yeniMevki = bulBaşrakiMetinpareninBaşını(mevcudMetin, alemMevkisi.başMevki);
|
|
32
32
|
return hazırlaAlemMevkisini(yeniMevki);
|
|
33
33
|
};
|
|
34
34
|
export const kaydirAlemiSola = (mevcudMetin, alemMevkisi) => {
|
|
@@ -36,65 +36,58 @@ export const kaydirAlemiSola = (mevcudMetin, alemMevkisi) => {
|
|
|
36
36
|
return hazırlaAlemMevkisini(yeniMevki);
|
|
37
37
|
};
|
|
38
38
|
export const kaydirAlemiYukarı = (mevcudMetin, alemMevkisi) => {
|
|
39
|
-
const satırlar = mevcudMetin.replace(/\r\n/g,
|
|
39
|
+
const satırlar = mevcudMetin.replace(/\r\n/g, '\n').split('\n');
|
|
40
40
|
let metinBaşındanMesafe = 0;
|
|
41
41
|
for (let i = 0; i < satırlar.length; i++) {
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
if (alemMevkisi.başMevki >=
|
|
42
|
+
const mevzuSatır = satırlar[i];
|
|
43
|
+
const mevzuSatırGeni = mevzuSatır.length;
|
|
44
|
+
const mevzuSatırBaşı = metinBaşındanMesafe;
|
|
45
|
+
const mevzuSatırSonu = mevzuSatırBaşı + mevzuSatırGeni;
|
|
46
|
+
if (alemMevkisi.başMevki >= mevzuSatırBaşı && alemMevkisi.başMevki <= mevzuSatırSonu) {
|
|
47
47
|
if (i === 0)
|
|
48
48
|
return hazırlaAlemMevkisini(0);
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
const yeniMetinBaşındanMesafe = satırlar.slice(0, i - 1).reduce((yekun, satır) => yekun + satır.length + 1, 0); // \n sebebiyle +1
|
|
62
|
-
const yeniMetinpareMesafesi = evvelkiSatırınMetinpareleri.slice(0, evvelkiSatırdakiYeniMevki).join("").length;
|
|
63
|
-
return hazırlaAlemMevkisini(yeniMetinBaşındanMesafe + yeniMetinpareMesafesi);
|
|
49
|
+
const mevzuSatırdaAleminMevkii = alemMevkisi.başMevki - mevzuSatırBaşı;
|
|
50
|
+
const başrakiSatır = satırlar[i - 1];
|
|
51
|
+
const mevzuSatırCüzleri = metinCüzleriniAl(mevzuSatır);
|
|
52
|
+
const başrakiSatırCüzleri = metinCüzleriniAl(başrakiSatır);
|
|
53
|
+
let ibreCüz = mevzuSatırCüzleri.findIndex(cüz => cüz.index >= mevzuSatırdaAleminMevkii);
|
|
54
|
+
if (ibreCüz === -1)
|
|
55
|
+
ibreCüz = mevzuSatırCüzleri.length;
|
|
56
|
+
const ibreCüzYeni = Math.min(ibreCüz, başrakiSatırCüzleri.length);
|
|
57
|
+
const başrakiSatırBaşı = mevzuSatırBaşı - (başrakiSatır.length + 1);
|
|
58
|
+
const başrakiSatırdaAleminMevkii = başrakiSatırCüzleri.slice(0, ibreCüzYeni).reduce((yekun, cüz) => yekun + cüz.segment.length, 0);
|
|
59
|
+
const aleminYeniMevkii = hazırlaAlemMevkisini(başrakiSatırBaşı + başrakiSatırdaAleminMevkii);
|
|
60
|
+
return aleminYeniMevkii;
|
|
64
61
|
}
|
|
65
|
-
metinBaşındanMesafe +=
|
|
62
|
+
metinBaşındanMesafe += mevzuSatırGeni + 1;
|
|
66
63
|
}
|
|
67
64
|
return alemMevkisi;
|
|
68
65
|
};
|
|
69
66
|
export const kaydirAlemiAşağı = (mevcudMetin, alemMevkisi) => {
|
|
70
|
-
const satırlar = mevcudMetin.replace(/\r\n/g,
|
|
67
|
+
const satırlar = mevcudMetin.replace(/\r\n/g, '\n').split('\n');
|
|
71
68
|
let metinBaşındanMesafe = 0;
|
|
72
69
|
for (let i = 0; i < satırlar.length; i++) {
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
if (alemMevkisi.başMevki >=
|
|
70
|
+
const mevzuSatır = satırlar[i];
|
|
71
|
+
const mevzuSatırGeni = mevzuSatır.length;
|
|
72
|
+
const mevzuSatırBaşı = metinBaşındanMesafe;
|
|
73
|
+
const mevzuSatırSonu = metinBaşındanMesafe + mevzuSatırGeni;
|
|
74
|
+
if (alemMevkisi.başMevki >= mevzuSatırBaşı && alemMevkisi.başMevki <= mevzuSatırSonu) {
|
|
78
75
|
if (i === satırlar.length - 1) {
|
|
79
76
|
return hazırlaAlemMevkisini(mevcudMetin.length);
|
|
80
77
|
}
|
|
81
|
-
const
|
|
82
|
-
const aleminSatırİçiMevkii = alemMevkisi.başMevki - satırBaşı;
|
|
83
|
-
const aleminSatırdakiMevkii = (() => {
|
|
84
|
-
const ibre = cüzler.findIndex((cüzMutası) => cüzMutası.index >= aleminSatırİçiMevkii);
|
|
85
|
-
if (ibre === -1 && aleminSatırİçiMevkii === satır.length) {
|
|
86
|
-
return cüzler.length;
|
|
87
|
-
}
|
|
88
|
-
return ibre === -1 ? 0 : ibre;
|
|
89
|
-
})();
|
|
78
|
+
const mevzuSatırdaAleminMevkii = alemMevkisi.başMevki - mevzuSatırBaşı;
|
|
90
79
|
const sonrakiSatır = satırlar[i + 1];
|
|
91
|
-
const
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
80
|
+
const sonrakiSatırınCüzleri = metinCüzleriniAl(sonrakiSatır);
|
|
81
|
+
const mevzuSatırınCüzleri = metinCüzleriniAl(mevzuSatır);
|
|
82
|
+
let ibreCüz = mevzuSatırınCüzleri.findIndex(c => c.index >= mevzuSatırdaAleminMevkii);
|
|
83
|
+
if (ibreCüz === -1)
|
|
84
|
+
ibreCüz = mevzuSatırınCüzleri.length;
|
|
85
|
+
const ibreCüzYeni = Math.min(ibreCüz, sonrakiSatırınCüzleri.length);
|
|
86
|
+
const sonrakiSatırBaşı = mevzuSatırSonu + 1;
|
|
87
|
+
const sonrakiSatırdaAleminMevkii = sonrakiSatırınCüzleri.slice(0, ibreCüzYeni).reduce((yekun, cüz) => yekun + cüz.segment.length, 0);
|
|
88
|
+
return hazırlaAlemMevkisini(sonrakiSatırBaşı + sonrakiSatırdaAleminMevkii);
|
|
96
89
|
}
|
|
97
|
-
metinBaşındanMesafe +=
|
|
90
|
+
metinBaşındanMesafe += mevzuSatırGeni + 1;
|
|
98
91
|
}
|
|
99
92
|
return alemMevkisi;
|
|
100
93
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AlemMevkisi } from
|
|
2
|
-
import { Netice_MetniTadilEt } from
|
|
3
|
-
import { TadiliMetinEmri } from
|
|
4
|
-
import { MesHadisesi } from
|
|
5
|
-
export declare const Talimat_MetniTadilEt: (
|
|
1
|
+
import { AlemMevkisi } from '../nev/alem-mevkisi';
|
|
2
|
+
import { Netice_MetniTadilEt } from '../nev/netice-metni-tadil-et';
|
|
3
|
+
import { TadiliMetinEmri } from '../nev/tadili-metin-emri';
|
|
4
|
+
import { MesHadisesi } from '../nev/mes-hadisesi';
|
|
5
|
+
export declare const Talimat_MetniTadilEt: (metin: string, alemMevkisi: AlemMevkisi, tadiliMetinEmri: TadiliMetinEmri, mesHadisesi: MesHadisesi, fizikiMesdanlıMı: boolean) => Promise<Netice_MetniTadilEt>;
|
|
6
6
|
//# sourceMappingURL=tadil-et-metni.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tadil-et-metni.d.ts","sourceRoot":"","sources":["../../memba/nuve/tadil-et-metni.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsD,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"tadil-et-metni.d.ts","sourceRoot":"","sources":["../../memba/nuve/tadil-et-metni.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsD,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD,eAAO,MAAM,oBAAoB,UACxB,MAAM,eACA,WAAW,mBACP,eAAe,eACnB,WAAW,oBACN,OAAO,KACxB,OAAO,CAAC,mBAAmB,CAmG7B,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { hazırlaAlemMevkisini, hazırlaAlemMevkisiniMenzilli } from
|
|
2
|
-
import { TadiliMetinEmri } from
|
|
3
|
-
import { ekleOsmaniMetneHarf } from
|
|
4
|
-
import { kaydirAlemiAşağı, kaydirAlemiSağa, kaydirAlemiSola, kaydirAlemiYukarı } from
|
|
5
|
-
import { tensihZihne } from
|
|
6
|
-
import { tensihZihinden } from
|
|
7
|
-
import { silOsmaniMetindenHarfSonra } from
|
|
8
|
-
import { silOsmaniMetindenHarfBaşra } from
|
|
9
|
-
export const Talimat_MetniTadilEt = async (
|
|
1
|
+
import { hazırlaAlemMevkisini, hazırlaAlemMevkisiniMenzilli } from '../nev/alem-mevkisi';
|
|
2
|
+
import { TadiliMetinEmri } from '../nev/tadili-metin-emri';
|
|
3
|
+
import { ekleOsmaniMetneHarf } from './ekle-osmani-metne-harf';
|
|
4
|
+
import { kaydirAlemiAşağı, kaydirAlemiSağa, kaydirAlemiSola, kaydirAlemiYukarı } from './kaydir-alemi';
|
|
5
|
+
import { tensihZihne } from './tensih-zihne';
|
|
6
|
+
import { tensihZihinden } from './tensih-zihinden';
|
|
7
|
+
import { silOsmaniMetindenHarfSonra } from './sil-osmani-metinden-harf-sonra';
|
|
8
|
+
import { silOsmaniMetindenHarfBaşra } from './sil-osmani-metinden-harf-basra';
|
|
9
|
+
export const Talimat_MetniTadilEt = async (metin, alemMevkisi, tadiliMetinEmri, mesHadisesi, fizikiMesdanlıMı) => {
|
|
10
10
|
// console.log("tadiliMetinEmri: " + JSON.stringify(tadiliMetinEmri));
|
|
11
11
|
// console.log("mesHadisesi: " + JSON.stringify(mesHadisesi));
|
|
12
12
|
// if (hususlar && tadiliMetinEmri === TadiliMetinEmri.ARA) {
|
|
@@ -37,14 +37,14 @@ export const Talimat_MetniTadilEt = async (metinSahası, metin, alemMevkisi, tad
|
|
|
37
37
|
}
|
|
38
38
|
else if (tadiliMetinEmri === TadiliMetinEmri.KOPAR) {
|
|
39
39
|
const kesilecekMetin = metin.slice(alemMevkisi.başMevki, alemMevkisi.sonMevki);
|
|
40
|
-
tensihZihne(kesilecekMetin,
|
|
40
|
+
tensihZihne(kesilecekMetin, netice => { });
|
|
41
41
|
const kesilmedenSonraMetin = metin.slice(0, alemMevkisi.başMevki) + metin.slice(alemMevkisi.sonMevki);
|
|
42
42
|
alemMevkisiTadilSonrası = hazırlaAlemMevkisini(alemMevkisi.başMevki);
|
|
43
43
|
metinTadilSonrası = kesilmedenSonraMetin;
|
|
44
44
|
}
|
|
45
45
|
else if (tadiliMetinEmri === TadiliMetinEmri.BELLE) {
|
|
46
46
|
const TENSİHnacakMetin = metin.slice(alemMevkisi.başMevki, alemMevkisi.sonMevki);
|
|
47
|
-
tensihZihne(TENSİHnacakMetin,
|
|
47
|
+
tensihZihne(TENSİHnacakMetin, netice => { });
|
|
48
48
|
}
|
|
49
49
|
else if (tadiliMetinEmri === TadiliMetinEmri.YERLE) {
|
|
50
50
|
const hafızadakiMetin = await tensihZihinden();
|