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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mesdan",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Latinî mesdan ile Osmanî metin yazmak için hazırlanmış bir alettir.",
5
5
  "keywords": [
6
6
  "osmanlıca",
@@ -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
- metin: string,
12
- metinSahasıİması: RefObject<T | null>,
13
- tebdilMetin: (yeniMetin: string) => void,
14
- tebdilLatiniMi: (latiniMi: boolean) => void
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,EAA6D,MAAM,OAAO,CAAC;AAU7F,KAAK,eAAe,GAAG;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEhC,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,KAAK,EAAE,MAAM;IACb,gBAAgB,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI;IACxC,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI;CAC5C,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,gBAAgB,GAAG,mBAAmB,kIAOvE,eAAe,KAAG,YAAY,CAAC,CAAC,CA4MlC,CAAC"}
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 kontrollüMü = metinHarici !== undefined && tayinMetinHarici !== undefined;
10
- const metin = kontrollüMü ? metinHarici : metinDahili;
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 (kontrollüMü) {
14
+ if (idareHariçteMi) {
13
15
  tayinMetinHarici(yeniMetin);
14
16
  }
15
17
  else {
16
18
  tayinMetinDahili(yeniMetin);
17
19
  }
18
- }, [kontrollüMü, tayinMetinHarici]);
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 currentMetin = metinSahası.value;
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(metinSahası, currentMetin, alemMevkisi, tadiliMetinEmri, mesHadisesi, true);
76
- alemMevkisiİması.current = netice.alemMevkisiTadilSonrası;
75
+ const netice = await Talimat_MetniTadilEt(mevzuMetin, alemMevkisi, tadiliMetinEmri, mesHadisesi, true);
76
+ tayinAlemMevkisi(netice.alemMevkisiTadilSonrası);
77
77
  tayinMetin(netice.metinTadilSonrası);
78
- }, [tekSatırMı]);
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 currentMetin = metinSahası.value;
84
+ const mevzuMetin = metinSahası.value;
85
85
  const alemMevkisi = hazırlaAlemMevkisiniMenzilli(metinSahası.selectionStart || 0, metinSahası.selectionEnd || 0);
86
- const netice = await Talimat_MetniTadilEt(metinSahası, currentMetin, alemMevkisi, TadiliMetinEmri.YERLE, { latiniHarf: '', shiftBasılıMı: false, altBasılıMı: false, capsLockBasılıMı: false }, true);
87
- alemMevkisiİması.current = netice.alemMevkisiTadilSonrası;
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 currentMetin = metinSahası.value;
121
+ const mevzuMetin = metinSahası.value;
122
122
  const alemMevkisi = hazırlaAlemMevkisiniMenzilli(alemMevkisiEvveli.current.baş, alemMevkisiEvveli.current.son);
123
- const netice = await Talimat_MetniTadilEt(metinSahası, currentMetin, alemMevkisi, tadiliMetinEmri, mesHadisesi, false);
124
- alemMevkisiİması.current = netice.alemMevkisiTadilSonrası;
123
+ const netice = await Talimat_MetniTadilEt(mevzuMetin, alemMevkisi, tadiliMetinEmri, mesHadisesi, false);
124
+ tayinAlemMevkisi(netice.alemMevkisiTadilSonrası);
125
125
  tayinMetin(netice.metinTadilSonrası);
126
- }, [tekSatırMı]);
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ı || latiniMi) {
130
- if (metinSahası) {
131
- metinSahası.setAttribute('spellcheck', 'true');
132
- }
135
+ if (!metinSahası) {
133
136
  return;
134
137
  }
135
- metinSahası.setAttribute('spellcheck', 'false');
136
- metinSahası.setAttribute('autocorrect', 'off');
137
- metinSahası.setAttribute('autocapitalize', 'off');
138
- metinSahası.setAttribute('autocomplete', 'off');
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 beforeInputListener = (e) => {
149
- handleBeforeInput(e);
150
- };
151
- const inputListener = (e) => {
152
- handleInput(e);
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
- if (window.matchMedia('(pointer: coarse)').matches) {
155
- metinSahası.addEventListener('beforeinput', beforeInputListener);
156
- metinSahası.addEventListener('input', inputListener);
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
- metinSahası.addEventListener('keydown', keydownListener);
160
- metinSahası.addEventListener('paste', pasteListener);
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, tekSatırMı]);
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 } = alemMevkisiİması.current;
173
- if (başMevki <= metinSahası.value.length && sonMevki <= metinSahası.value.length) {
174
- metinSahası.setSelectionRange(başMevki, sonMevki);
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
- alemMevkisiİması.current = hazırlaAlemMevkisini(yeniMetin.length);
181
- }, []);
182
- return [metin, metinSahasıİması, tebdilMetin, tayinLatiniMi];
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 "../nev/alem-mevkisi";
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,WAsCjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAAiB,MAAM,eAAe,WAAW,KAAG,WAwChF,CAAC"}
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 "../nev/alem-mevkisi";
2
- const cüzleyici = new Intl.Segmenter("ar", { granularity: "grapheme" });
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), (cüzMutası) => cüzMutası.segment);
4
+ return Array.from(cüzleyici.segment(metin));
5
5
  }
6
- function bulEvvelkiMetinpareninBaşını(text, index) {
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 = bulEvvelkiMetinpareninBaşını(mevcudMetin, alemMevkisi.başMevki);
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, "\n").split("\n");
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 satır = satırlar[i];
43
- const satırGeni = satır.length;
44
- const satırBaşı = metinBaşındanMesafe;
45
- const satırSonu = metinBaşındanMesafe + satırGeni;
46
- if (alemMevkisi.başMevki >= satırBaşı && alemMevkisi.başMevki <= satırSonu) {
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 cüzler = Array.from(cüzleyici.segment(satır));
50
- const aleminSatırİçiMevkii = alemMevkisi.başMevki - satırBaşı;
51
- const aleminSatırdakiMevkii = (() => {
52
- const ibre = cüzler.findIndex((cüzMutası) => cüzMutası.index >= aleminSatırİçiMevkii);
53
- if (ibre === -1 && aleminSatırİçiMevkii === satır.length) {
54
- return cüzler.length;
55
- }
56
- return ibre === -1 ? 0 : ibre;
57
- })();
58
- const evvelkiSatır = satırlar[i - 1];
59
- const evvelkiSatırınMetinpareleri = metinCüzleriniAl(evvelkiSatır);
60
- const evvelkiSatırdakiYeniMevki = Math.min(aleminSatırdakiMevkii, evvelkiSatırınMetinpareleri.length);
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 += satırGeni + 1;
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, "\n").split("\n");
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 satır = satırlar[i];
74
- const satırGeni = satır.length;
75
- const satırBaşı = metinBaşındanMesafe;
76
- const satırSonu = metinBaşındanMesafe + satırGeni;
77
- if (alemMevkisi.başMevki >= satırBaşı && alemMevkisi.başMevki <= satırSonu) {
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 cüzler = Array.from(cüzleyici.segment(satır));
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 sonrakiSatırınMetinpareleri = metinCüzleriniAl(sonrakiSatır);
92
- const sonrakiSatırdakiYeniMevki = Math.min(aleminSatırdakiMevkii, sonrakiSatırınMetinpareleri.length);
93
- const yeniMetinBaşındanMesafe = satırlar.slice(0, i + 1).reduce((yekun, satır) => yekun + satır.length + 1, 0); // \n sebebiyle +1
94
- const yeniMetinpareMesafesi = sonrakiSatırınMetinpareleri.slice(0, sonrakiSatırdakiYeniMevki).join("").length;
95
- return hazırlaAlemMevkisini(yeniMetinBaşındanMesafe + yeniMetinpareMesafesi);
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 += satırGeni + 1;
90
+ metinBaşındanMesafe += mevzuSatırGeni + 1;
98
91
  }
99
92
  return alemMevkisi;
100
93
  };
@@ -1,6 +1,6 @@
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: (metinSahası: HTMLTextAreaElement | HTMLInputElement, metin: string, alemMevkisi: AlemMevkisi, tadiliMetinEmri: TadiliMetinEmri, mesHadisesi: MesHadisesi, fizikiMesdanlıMı: boolean) => Promise<Netice_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,gBAClB,mBAAmB,GAAG,gBAAgB,SAC5C,MAAM,eACA,WAAW,mBACP,eAAe,eACnB,WAAW,oBACN,OAAO,KACxB,OAAO,CAAC,mBAAmB,CAoG7B,CAAC"}
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 "../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 (metinSahası, metin, alemMevkisi, tadiliMetinEmri, mesHadisesi, fizikiMesdanlıMı) => {
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, (netice) => { });
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, (netice) => { });
47
+ tensihZihne(TENSİHnacakMetin, netice => { });
48
48
  }
49
49
  else if (tadiliMetinEmri === TadiliMetinEmri.YERLE) {
50
50
  const hafızadakiMetin = await tensihZihinden();