@treeviz/gedcom-parser 2.0.9 → 2.0.10
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/dist/classes/index.js +246 -2
- package/dist/cli/index.js +246 -2
- package/dist/constants/index.js +245 -1
- package/dist/factories/index.js +245 -1
- package/dist/index.js +247 -3
- package/dist/kinship-translator/index.d.ts +1 -0
- package/dist/kinship-translator/index.d.ts.map +1 -1
- package/dist/kinship-translator/index.js +246 -2
- package/dist/kinship-translator/kinship-translator.ru.d.ts +18 -0
- package/dist/kinship-translator/kinship-translator.ru.d.ts.map +1 -0
- package/dist/kinship-translator/patterns.ru.d.ts +2 -0
- package/dist/kinship-translator/patterns.ru.d.ts.map +1 -0
- package/dist/kinship-translator/translators.d.ts +1 -0
- package/dist/kinship-translator/translators.d.ts.map +1 -1
- package/dist/kinship-translator/types.d.ts +1 -1
- package/dist/kinship-translator/types.d.ts.map +1 -1
- package/dist/utils/index.js +246 -2
- package/package.json +1 -1
package/dist/classes/index.js
CHANGED
|
@@ -77,7 +77,8 @@ __export(translators_exports, {
|
|
|
77
77
|
en: () => KinshipTranslatorEn,
|
|
78
78
|
es: () => KinshipTranslatorEs,
|
|
79
79
|
fr: () => KinshipTranslatorFr,
|
|
80
|
-
hu: () => KinshipTranslatorHU
|
|
80
|
+
hu: () => KinshipTranslatorHU,
|
|
81
|
+
ru: () => KinshipTranslatorRu
|
|
81
82
|
});
|
|
82
83
|
|
|
83
84
|
// src/constants/constants.ts
|
|
@@ -2574,6 +2575,249 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
2574
2575
|
}
|
|
2575
2576
|
};
|
|
2576
2577
|
|
|
2578
|
+
// src/kinship-translator/patterns.ru.ts
|
|
2579
|
+
var InLawsRu = {
|
|
2580
|
+
"\u0441\u0443\u043F\u0440\u0443\u0433(?:\u0430)? (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C/\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
2581
|
+
"\u0436\u0435\u043D\u0430 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
2582
|
+
"\u043C\u0443\u0436 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C",
|
|
2583
|
+
"\u043C\u0430\u0442\u044C (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0442\u0451\u0449\u0430",
|
|
2584
|
+
"\u043E\u0442\u0435\u0446 (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0442\u0435\u0441\u0442\u044C",
|
|
2585
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
2586
|
+
"\u0436\u0435\u043D\u0430 (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
2587
|
+
"\u043C\u0443\u0436 (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u0437\u044F\u0442\u044C",
|
|
2588
|
+
"\u0441\u0443\u043F\u0440\u0443\u0433(?:\u0430)? (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u0437\u044F\u0442\u044C/\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
2589
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430 (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0437\u043E\u043B\u043E\u0432\u043A\u0430",
|
|
2590
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0448\u0443\u0440\u0438\u043D",
|
|
2591
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0438\u0431\u043B\u0438\u043D\u0433 (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0448\u0443\u0440\u0438\u043D/\u0437\u043E\u043B\u043E\u0432\u043A\u0430"
|
|
2592
|
+
};
|
|
2593
|
+
|
|
2594
|
+
// src/kinship-translator/kinship-translator.ru.ts
|
|
2595
|
+
var GENITIVE = {
|
|
2596
|
+
\u0441\u044B\u043D: "\u0441\u044B\u043D\u0430",
|
|
2597
|
+
\u0434\u043E\u0447\u044C: "\u0434\u043E\u0447\u0435\u0440\u0438",
|
|
2598
|
+
\u0440\u0435\u0431\u0451\u043D\u043E\u043A: "\u0440\u0435\u0431\u0451\u043D\u043A\u0430",
|
|
2599
|
+
\u0431\u0440\u0430\u0442: "\u0431\u0440\u0430\u0442\u0430",
|
|
2600
|
+
\u0441\u0435\u0441\u0442\u0440\u0430: "\u0441\u0435\u0441\u0442\u0440\u044B",
|
|
2601
|
+
\u0441\u0438\u0431\u043B\u0438\u043D\u0433: "\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430",
|
|
2602
|
+
\u043E\u0442\u0435\u0446: "\u043E\u0442\u0446\u0430",
|
|
2603
|
+
\u043C\u0430\u0442\u044C: "\u043C\u0430\u0442\u0435\u0440\u0438",
|
|
2604
|
+
\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C: "\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F",
|
|
2605
|
+
\u043C\u0443\u0436: "\u043C\u0443\u0436\u0430",
|
|
2606
|
+
\u0436\u0435\u043D\u0430: "\u0436\u0435\u043D\u044B",
|
|
2607
|
+
\u0441\u0443\u043F\u0440\u0443\u0433: "\u0441\u0443\u043F\u0440\u0443\u0433\u0430",
|
|
2608
|
+
\u0441\u0443\u043F\u0440\u0443\u0433\u0430: "\u0441\u0443\u043F\u0440\u0443\u0433\u0438"
|
|
2609
|
+
};
|
|
2610
|
+
var toGenitive = (word) => GENITIVE[word] ?? word;
|
|
2611
|
+
var cousinWord = (degree, sex) => {
|
|
2612
|
+
const stem = degree <= 1 ? "\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D" : degree === 2 ? "\u0442\u0440\u043E\u044E\u0440\u043E\u0434\u043D" : degree === 3 ? "\u0447\u0435\u0442\u0432\u0435\u0440\u043E\u044E\u0440\u043E\u0434\u043D" : `${degree + 1}-\u044E\u0440\u043E\u0434\u043D`;
|
|
2613
|
+
if (sex === "m") {
|
|
2614
|
+
return `${stem}\u044B\u0439 \u0431\u0440\u0430\u0442`;
|
|
2615
|
+
}
|
|
2616
|
+
if (sex === "f") {
|
|
2617
|
+
return `${stem}\u0430\u044F \u0441\u0435\u0441\u0442\u0440\u0430`;
|
|
2618
|
+
}
|
|
2619
|
+
return `${stem}\u044B\u0439 \u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430`;
|
|
2620
|
+
};
|
|
2621
|
+
var praRepeat = (count) => count > 0 ? "\u043F\u0440\u0430".repeat(count) : "";
|
|
2622
|
+
var sexOf = (person) => {
|
|
2623
|
+
if (person?.isMale?.()) {
|
|
2624
|
+
return "m";
|
|
2625
|
+
}
|
|
2626
|
+
if (person?.isFemale?.()) {
|
|
2627
|
+
return "f";
|
|
2628
|
+
}
|
|
2629
|
+
return "n";
|
|
2630
|
+
};
|
|
2631
|
+
var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
2632
|
+
indirect() {
|
|
2633
|
+
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
2634
|
+
if (degree > 0) {
|
|
2635
|
+
degree = degree - 1;
|
|
2636
|
+
}
|
|
2637
|
+
return cousinWord(degree, sexOf(this.personN));
|
|
2638
|
+
}
|
|
2639
|
+
removal() {
|
|
2640
|
+
const level = this.pathN?.level ?? 0;
|
|
2641
|
+
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
2642
|
+
if (degree > 0) {
|
|
2643
|
+
degree = degree - 1;
|
|
2644
|
+
}
|
|
2645
|
+
if (!degree) {
|
|
2646
|
+
return level < 0 ? this.nibling() : this.auncle();
|
|
2647
|
+
}
|
|
2648
|
+
const removed = Math.abs(level);
|
|
2649
|
+
return `${cousinWord(degree, sexOf(this.personN))} (${removed}\xD7 \u0447\u0435\u0440\u0435\u0437 \u043F\u043E\u043A\u043E\u043B\u0435\u043D\u0438\u0435)`;
|
|
2650
|
+
}
|
|
2651
|
+
auncle() {
|
|
2652
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
2653
|
+
const pra = praRepeat(Math.max(0, level - 2));
|
|
2654
|
+
const sex = sexOf(this.personN);
|
|
2655
|
+
if (sex === "m") {
|
|
2656
|
+
return `${pra}\u0434\u044F\u0434\u044F`;
|
|
2657
|
+
}
|
|
2658
|
+
if (sex === "f") {
|
|
2659
|
+
return `${pra}\u0442\u0451\u0442\u044F`;
|
|
2660
|
+
}
|
|
2661
|
+
return `${pra}\u0434\u044F\u0434\u044F/\u0442\u0451\u0442\u044F`;
|
|
2662
|
+
}
|
|
2663
|
+
nibling() {
|
|
2664
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
2665
|
+
const pra = praRepeat(Math.max(0, level - 2));
|
|
2666
|
+
const sex = sexOf(this.personN);
|
|
2667
|
+
if (sex === "m") {
|
|
2668
|
+
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
2669
|
+
}
|
|
2670
|
+
if (sex === "f") {
|
|
2671
|
+
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
2672
|
+
}
|
|
2673
|
+
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
2674
|
+
}
|
|
2675
|
+
parent() {
|
|
2676
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
2677
|
+
const sex = sexOf(this.personN);
|
|
2678
|
+
if (level <= 1) {
|
|
2679
|
+
if (sex === "m") {
|
|
2680
|
+
return "\u043E\u0442\u0435\u0446";
|
|
2681
|
+
}
|
|
2682
|
+
if (sex === "f") {
|
|
2683
|
+
return "\u043C\u0430\u0442\u044C";
|
|
2684
|
+
}
|
|
2685
|
+
return "\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C";
|
|
2686
|
+
}
|
|
2687
|
+
if (level === 2) {
|
|
2688
|
+
if (sex === "m") {
|
|
2689
|
+
return "\u0434\u0435\u0434";
|
|
2690
|
+
}
|
|
2691
|
+
if (sex === "f") {
|
|
2692
|
+
return "\u0431\u0430\u0431\u0443\u0448\u043A\u0430";
|
|
2693
|
+
}
|
|
2694
|
+
return "\u0434\u0435\u0434/\u0431\u0430\u0431\u0443\u0448\u043A\u0430";
|
|
2695
|
+
}
|
|
2696
|
+
const pra = praRepeat(level - 2);
|
|
2697
|
+
if (sex === "m") {
|
|
2698
|
+
return `${pra}\u0434\u0435\u0434`;
|
|
2699
|
+
}
|
|
2700
|
+
if (sex === "f") {
|
|
2701
|
+
return `${pra}\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
2702
|
+
}
|
|
2703
|
+
return `${pra}\u0434\u0435\u0434/\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
2704
|
+
}
|
|
2705
|
+
child() {
|
|
2706
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
2707
|
+
const sex = sexOf(this.personN);
|
|
2708
|
+
if (level <= 1) {
|
|
2709
|
+
if (sex === "m") {
|
|
2710
|
+
return "\u0441\u044B\u043D";
|
|
2711
|
+
}
|
|
2712
|
+
if (sex === "f") {
|
|
2713
|
+
return "\u0434\u043E\u0447\u044C";
|
|
2714
|
+
}
|
|
2715
|
+
return "\u0440\u0435\u0431\u0451\u043D\u043E\u043A";
|
|
2716
|
+
}
|
|
2717
|
+
if (level === 2) {
|
|
2718
|
+
if (sex === "m") {
|
|
2719
|
+
return "\u0432\u043D\u0443\u043A";
|
|
2720
|
+
}
|
|
2721
|
+
if (sex === "f") {
|
|
2722
|
+
return "\u0432\u043D\u0443\u0447\u043A\u0430";
|
|
2723
|
+
}
|
|
2724
|
+
return "\u0432\u043D\u0443\u043A/\u0432\u043D\u0443\u0447\u043A\u0430";
|
|
2725
|
+
}
|
|
2726
|
+
const pra = praRepeat(level - 2);
|
|
2727
|
+
if (sex === "m") {
|
|
2728
|
+
return `${pra}\u0432\u043D\u0443\u043A`;
|
|
2729
|
+
}
|
|
2730
|
+
if (sex === "f") {
|
|
2731
|
+
return `${pra}\u0432\u043D\u0443\u0447\u043A\u0430`;
|
|
2732
|
+
}
|
|
2733
|
+
return `${pra}\u0432\u043D\u0443\u043A/\u0432\u043D\u0443\u0447\u043A\u0430`;
|
|
2734
|
+
}
|
|
2735
|
+
sibling() {
|
|
2736
|
+
const sex = sexOf(this.personN);
|
|
2737
|
+
if (sex === "m") {
|
|
2738
|
+
return "\u0431\u0440\u0430\u0442";
|
|
2739
|
+
}
|
|
2740
|
+
if (sex === "f") {
|
|
2741
|
+
return "\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
2742
|
+
}
|
|
2743
|
+
return "\u0441\u0438\u0431\u043B\u0438\u043D\u0433";
|
|
2744
|
+
}
|
|
2745
|
+
halfBlood(relation) {
|
|
2746
|
+
if (!relation || !this.isHalfBlood) {
|
|
2747
|
+
return relation ?? "";
|
|
2748
|
+
}
|
|
2749
|
+
if (/сестра|дочь|мать|тётя|бабушка|жена|племянница|внучка/.test(
|
|
2750
|
+
relation
|
|
2751
|
+
)) {
|
|
2752
|
+
return `\u0441\u0432\u043E\u0434\u043D\u0430\u044F ${relation}`;
|
|
2753
|
+
}
|
|
2754
|
+
return `\u0441\u0432\u043E\u0434\u043D\u044B\u0439 ${relation}`;
|
|
2755
|
+
}
|
|
2756
|
+
spouse() {
|
|
2757
|
+
const sex = sexOf(this.personN);
|
|
2758
|
+
if (sex === "m") {
|
|
2759
|
+
return "\u043C\u0443\u0436";
|
|
2760
|
+
}
|
|
2761
|
+
if (sex === "f") {
|
|
2762
|
+
return "\u0436\u0435\u043D\u0430";
|
|
2763
|
+
}
|
|
2764
|
+
return "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
2765
|
+
}
|
|
2766
|
+
ofSpouse(relation) {
|
|
2767
|
+
if (!relation) {
|
|
2768
|
+
return "";
|
|
2769
|
+
}
|
|
2770
|
+
const spouse = this.path?.[1].indi;
|
|
2771
|
+
const sex = sexOf(spouse);
|
|
2772
|
+
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
2773
|
+
return `${relation} ${toGenitive(spouseType)}`;
|
|
2774
|
+
}
|
|
2775
|
+
spouseOf(relation) {
|
|
2776
|
+
if (!relation) {
|
|
2777
|
+
return "";
|
|
2778
|
+
}
|
|
2779
|
+
const spouse = this.path?.[this.path.length - 1].indi;
|
|
2780
|
+
const sex = sexOf(spouse);
|
|
2781
|
+
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
2782
|
+
return `${spouseType} ${toGenitive(relation)}`;
|
|
2783
|
+
}
|
|
2784
|
+
of(relation) {
|
|
2785
|
+
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
2786
|
+
nameOrder: "first-last"
|
|
2787
|
+
});
|
|
2788
|
+
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
2789
|
+
if (this.displayName === "none") {
|
|
2790
|
+
name = "";
|
|
2791
|
+
} else if (this.displayName === "givenname") {
|
|
2792
|
+
name = formattedName.givenname;
|
|
2793
|
+
} else if (this.displayName === "surname") {
|
|
2794
|
+
name = `${formattedName.surname}`;
|
|
2795
|
+
}
|
|
2796
|
+
if (!name || !relation) {
|
|
2797
|
+
return relation ?? "";
|
|
2798
|
+
}
|
|
2799
|
+
return `${name}: ${relation}`;
|
|
2800
|
+
}
|
|
2801
|
+
inLaw(relation) {
|
|
2802
|
+
let inLawRelation = relation;
|
|
2803
|
+
Object.keys(InLawsRu).find((pattern) => {
|
|
2804
|
+
const regex = new RegExp(`^${pattern}$`);
|
|
2805
|
+
if (relation?.match(regex)) {
|
|
2806
|
+
inLawRelation = InLawsRu[pattern];
|
|
2807
|
+
return true;
|
|
2808
|
+
}
|
|
2809
|
+
return false;
|
|
2810
|
+
});
|
|
2811
|
+
return inLawRelation ?? "";
|
|
2812
|
+
}
|
|
2813
|
+
relationType(relation) {
|
|
2814
|
+
if (!relation || !this.pathN?.relation) {
|
|
2815
|
+
return relation ?? "";
|
|
2816
|
+
}
|
|
2817
|
+
return `${this.pathN.relation} ${relation}`;
|
|
2818
|
+
}
|
|
2819
|
+
};
|
|
2820
|
+
|
|
2577
2821
|
// src/kinship-translator/kinship-translator.ts
|
|
2578
2822
|
var KinshipTranslator = class {
|
|
2579
2823
|
constructor(person1, person2, lang = "en", entirePath, displayName = "givenname") {
|
|
@@ -6518,7 +6762,7 @@ var createIndi = (gedcom, id, main, parent) => {
|
|
|
6518
6762
|
|
|
6519
6763
|
// package.json
|
|
6520
6764
|
var package_default = {
|
|
6521
|
-
version: "2.0.
|
|
6765
|
+
version: "2.0.10"};
|
|
6522
6766
|
|
|
6523
6767
|
// src/utils/get-product-details.ts
|
|
6524
6768
|
var getVersion = () => package_default.version;
|
package/dist/cli/index.js
CHANGED
|
@@ -1101,7 +1101,8 @@ __export(translators_exports, {
|
|
|
1101
1101
|
en: () => KinshipTranslatorEn,
|
|
1102
1102
|
es: () => KinshipTranslatorEs,
|
|
1103
1103
|
fr: () => KinshipTranslatorFr,
|
|
1104
|
-
hu: () => KinshipTranslatorHU
|
|
1104
|
+
hu: () => KinshipTranslatorHU,
|
|
1105
|
+
ru: () => KinshipTranslatorRu
|
|
1105
1106
|
});
|
|
1106
1107
|
|
|
1107
1108
|
// src/constants/filters.ts
|
|
@@ -5368,6 +5369,249 @@ var KinshipTranslatorEs = class extends KinshipTranslatorBasic {
|
|
|
5368
5369
|
}
|
|
5369
5370
|
};
|
|
5370
5371
|
|
|
5372
|
+
// src/kinship-translator/patterns.ru.ts
|
|
5373
|
+
var InLawsRu = {
|
|
5374
|
+
"\u0441\u0443\u043F\u0440\u0443\u0433(?:\u0430)? (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C/\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
5375
|
+
"\u0436\u0435\u043D\u0430 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
5376
|
+
"\u043C\u0443\u0436 (\u0440\u0435\u0431\u0451\u043D\u043A\u0430|\u0434\u043E\u0447\u0435\u0440\u0438|\u0441\u044B\u043D\u0430)": "\u0437\u044F\u0442\u044C",
|
|
5377
|
+
"\u043C\u0430\u0442\u044C (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0442\u0451\u0449\u0430",
|
|
5378
|
+
"\u043E\u0442\u0435\u0446 (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0442\u0435\u0441\u0442\u044C",
|
|
5379
|
+
"\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0442\u0435\u0441\u0442\u044C/\u0442\u0451\u0449\u0430",
|
|
5380
|
+
"\u0436\u0435\u043D\u0430 (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
5381
|
+
"\u043C\u0443\u0436 (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u0437\u044F\u0442\u044C",
|
|
5382
|
+
"\u0441\u0443\u043F\u0440\u0443\u0433(?:\u0430)? (\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?(\u0431\u0440\u0430\u0442\u0430|\u0441\u0435\u0441\u0442\u0440\u044B|\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430)": "\u0437\u044F\u0442\u044C/\u043D\u0435\u0432\u0435\u0441\u0442\u043A\u0430",
|
|
5383
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0435\u0441\u0442\u0440\u0430 (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0437\u043E\u043B\u043E\u0432\u043A\u0430",
|
|
5384
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0431\u0440\u0430\u0442 (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0448\u0443\u0440\u0438\u043D",
|
|
5385
|
+
"(\u0441\u0432\u043E\u0434\u043D(?:\u044B\u0439|\u0430\u044F) )?\u0441\u0438\u0431\u043B\u0438\u043D\u0433 (\u0441\u0443\u043F\u0440\u0443\u0433\u0430|\u0436\u0435\u043D\u044B|\u043C\u0443\u0436\u0430)": "\u0448\u0443\u0440\u0438\u043D/\u0437\u043E\u043B\u043E\u0432\u043A\u0430"
|
|
5386
|
+
};
|
|
5387
|
+
|
|
5388
|
+
// src/kinship-translator/kinship-translator.ru.ts
|
|
5389
|
+
var GENITIVE = {
|
|
5390
|
+
\u0441\u044B\u043D: "\u0441\u044B\u043D\u0430",
|
|
5391
|
+
\u0434\u043E\u0447\u044C: "\u0434\u043E\u0447\u0435\u0440\u0438",
|
|
5392
|
+
\u0440\u0435\u0431\u0451\u043D\u043E\u043A: "\u0440\u0435\u0431\u0451\u043D\u043A\u0430",
|
|
5393
|
+
\u0431\u0440\u0430\u0442: "\u0431\u0440\u0430\u0442\u0430",
|
|
5394
|
+
\u0441\u0435\u0441\u0442\u0440\u0430: "\u0441\u0435\u0441\u0442\u0440\u044B",
|
|
5395
|
+
\u0441\u0438\u0431\u043B\u0438\u043D\u0433: "\u0441\u0438\u0431\u043B\u0438\u043D\u0433\u0430",
|
|
5396
|
+
\u043E\u0442\u0435\u0446: "\u043E\u0442\u0446\u0430",
|
|
5397
|
+
\u043C\u0430\u0442\u044C: "\u043C\u0430\u0442\u0435\u0440\u0438",
|
|
5398
|
+
\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C: "\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F",
|
|
5399
|
+
\u043C\u0443\u0436: "\u043C\u0443\u0436\u0430",
|
|
5400
|
+
\u0436\u0435\u043D\u0430: "\u0436\u0435\u043D\u044B",
|
|
5401
|
+
\u0441\u0443\u043F\u0440\u0443\u0433: "\u0441\u0443\u043F\u0440\u0443\u0433\u0430",
|
|
5402
|
+
\u0441\u0443\u043F\u0440\u0443\u0433\u0430: "\u0441\u0443\u043F\u0440\u0443\u0433\u0438"
|
|
5403
|
+
};
|
|
5404
|
+
var toGenitive = (word) => GENITIVE[word] ?? word;
|
|
5405
|
+
var cousinWord = (degree, sex) => {
|
|
5406
|
+
const stem = degree <= 1 ? "\u0434\u0432\u043E\u044E\u0440\u043E\u0434\u043D" : degree === 2 ? "\u0442\u0440\u043E\u044E\u0440\u043E\u0434\u043D" : degree === 3 ? "\u0447\u0435\u0442\u0432\u0435\u0440\u043E\u044E\u0440\u043E\u0434\u043D" : `${degree + 1}-\u044E\u0440\u043E\u0434\u043D`;
|
|
5407
|
+
if (sex === "m") {
|
|
5408
|
+
return `${stem}\u044B\u0439 \u0431\u0440\u0430\u0442`;
|
|
5409
|
+
}
|
|
5410
|
+
if (sex === "f") {
|
|
5411
|
+
return `${stem}\u0430\u044F \u0441\u0435\u0441\u0442\u0440\u0430`;
|
|
5412
|
+
}
|
|
5413
|
+
return `${stem}\u044B\u0439 \u0431\u0440\u0430\u0442/\u0441\u0435\u0441\u0442\u0440\u0430`;
|
|
5414
|
+
};
|
|
5415
|
+
var praRepeat = (count) => count > 0 ? "\u043F\u0440\u0430".repeat(count) : "";
|
|
5416
|
+
var sexOf = (person) => {
|
|
5417
|
+
if (person?.isMale?.()) {
|
|
5418
|
+
return "m";
|
|
5419
|
+
}
|
|
5420
|
+
if (person?.isFemale?.()) {
|
|
5421
|
+
return "f";
|
|
5422
|
+
}
|
|
5423
|
+
return "n";
|
|
5424
|
+
};
|
|
5425
|
+
var KinshipTranslatorRu = class extends KinshipTranslatorBasic {
|
|
5426
|
+
indirect() {
|
|
5427
|
+
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
5428
|
+
if (degree > 0) {
|
|
5429
|
+
degree = degree - 1;
|
|
5430
|
+
}
|
|
5431
|
+
return cousinWord(degree, sexOf(this.personN));
|
|
5432
|
+
}
|
|
5433
|
+
removal() {
|
|
5434
|
+
const level = this.pathN?.level ?? 0;
|
|
5435
|
+
let degree = Math.abs(this.pathN?.degree ?? 0);
|
|
5436
|
+
if (degree > 0) {
|
|
5437
|
+
degree = degree - 1;
|
|
5438
|
+
}
|
|
5439
|
+
if (!degree) {
|
|
5440
|
+
return level < 0 ? this.nibling() : this.auncle();
|
|
5441
|
+
}
|
|
5442
|
+
const removed = Math.abs(level);
|
|
5443
|
+
return `${cousinWord(degree, sexOf(this.personN))} (${removed}\xD7 \u0447\u0435\u0440\u0435\u0437 \u043F\u043E\u043A\u043E\u043B\u0435\u043D\u0438\u0435)`;
|
|
5444
|
+
}
|
|
5445
|
+
auncle() {
|
|
5446
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
5447
|
+
const pra = praRepeat(Math.max(0, level - 2));
|
|
5448
|
+
const sex = sexOf(this.personN);
|
|
5449
|
+
if (sex === "m") {
|
|
5450
|
+
return `${pra}\u0434\u044F\u0434\u044F`;
|
|
5451
|
+
}
|
|
5452
|
+
if (sex === "f") {
|
|
5453
|
+
return `${pra}\u0442\u0451\u0442\u044F`;
|
|
5454
|
+
}
|
|
5455
|
+
return `${pra}\u0434\u044F\u0434\u044F/\u0442\u0451\u0442\u044F`;
|
|
5456
|
+
}
|
|
5457
|
+
nibling() {
|
|
5458
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
5459
|
+
const pra = praRepeat(Math.max(0, level - 2));
|
|
5460
|
+
const sex = sexOf(this.personN);
|
|
5461
|
+
if (sex === "m") {
|
|
5462
|
+
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A`;
|
|
5463
|
+
}
|
|
5464
|
+
if (sex === "f") {
|
|
5465
|
+
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
5466
|
+
}
|
|
5467
|
+
return `${pra}\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u043A/\u043F\u043B\u0435\u043C\u044F\u043D\u043D\u0438\u0446\u0430`;
|
|
5468
|
+
}
|
|
5469
|
+
parent() {
|
|
5470
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
5471
|
+
const sex = sexOf(this.personN);
|
|
5472
|
+
if (level <= 1) {
|
|
5473
|
+
if (sex === "m") {
|
|
5474
|
+
return "\u043E\u0442\u0435\u0446";
|
|
5475
|
+
}
|
|
5476
|
+
if (sex === "f") {
|
|
5477
|
+
return "\u043C\u0430\u0442\u044C";
|
|
5478
|
+
}
|
|
5479
|
+
return "\u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C";
|
|
5480
|
+
}
|
|
5481
|
+
if (level === 2) {
|
|
5482
|
+
if (sex === "m") {
|
|
5483
|
+
return "\u0434\u0435\u0434";
|
|
5484
|
+
}
|
|
5485
|
+
if (sex === "f") {
|
|
5486
|
+
return "\u0431\u0430\u0431\u0443\u0448\u043A\u0430";
|
|
5487
|
+
}
|
|
5488
|
+
return "\u0434\u0435\u0434/\u0431\u0430\u0431\u0443\u0448\u043A\u0430";
|
|
5489
|
+
}
|
|
5490
|
+
const pra = praRepeat(level - 2);
|
|
5491
|
+
if (sex === "m") {
|
|
5492
|
+
return `${pra}\u0434\u0435\u0434`;
|
|
5493
|
+
}
|
|
5494
|
+
if (sex === "f") {
|
|
5495
|
+
return `${pra}\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
5496
|
+
}
|
|
5497
|
+
return `${pra}\u0434\u0435\u0434/\u0431\u0430\u0431\u0443\u0448\u043A\u0430`;
|
|
5498
|
+
}
|
|
5499
|
+
child() {
|
|
5500
|
+
const level = Math.abs(this.pathN?.level ?? 0);
|
|
5501
|
+
const sex = sexOf(this.personN);
|
|
5502
|
+
if (level <= 1) {
|
|
5503
|
+
if (sex === "m") {
|
|
5504
|
+
return "\u0441\u044B\u043D";
|
|
5505
|
+
}
|
|
5506
|
+
if (sex === "f") {
|
|
5507
|
+
return "\u0434\u043E\u0447\u044C";
|
|
5508
|
+
}
|
|
5509
|
+
return "\u0440\u0435\u0431\u0451\u043D\u043E\u043A";
|
|
5510
|
+
}
|
|
5511
|
+
if (level === 2) {
|
|
5512
|
+
if (sex === "m") {
|
|
5513
|
+
return "\u0432\u043D\u0443\u043A";
|
|
5514
|
+
}
|
|
5515
|
+
if (sex === "f") {
|
|
5516
|
+
return "\u0432\u043D\u0443\u0447\u043A\u0430";
|
|
5517
|
+
}
|
|
5518
|
+
return "\u0432\u043D\u0443\u043A/\u0432\u043D\u0443\u0447\u043A\u0430";
|
|
5519
|
+
}
|
|
5520
|
+
const pra = praRepeat(level - 2);
|
|
5521
|
+
if (sex === "m") {
|
|
5522
|
+
return `${pra}\u0432\u043D\u0443\u043A`;
|
|
5523
|
+
}
|
|
5524
|
+
if (sex === "f") {
|
|
5525
|
+
return `${pra}\u0432\u043D\u0443\u0447\u043A\u0430`;
|
|
5526
|
+
}
|
|
5527
|
+
return `${pra}\u0432\u043D\u0443\u043A/\u0432\u043D\u0443\u0447\u043A\u0430`;
|
|
5528
|
+
}
|
|
5529
|
+
sibling() {
|
|
5530
|
+
const sex = sexOf(this.personN);
|
|
5531
|
+
if (sex === "m") {
|
|
5532
|
+
return "\u0431\u0440\u0430\u0442";
|
|
5533
|
+
}
|
|
5534
|
+
if (sex === "f") {
|
|
5535
|
+
return "\u0441\u0435\u0441\u0442\u0440\u0430";
|
|
5536
|
+
}
|
|
5537
|
+
return "\u0441\u0438\u0431\u043B\u0438\u043D\u0433";
|
|
5538
|
+
}
|
|
5539
|
+
halfBlood(relation) {
|
|
5540
|
+
if (!relation || !this.isHalfBlood) {
|
|
5541
|
+
return relation ?? "";
|
|
5542
|
+
}
|
|
5543
|
+
if (/сестра|дочь|мать|тётя|бабушка|жена|племянница|внучка/.test(
|
|
5544
|
+
relation
|
|
5545
|
+
)) {
|
|
5546
|
+
return `\u0441\u0432\u043E\u0434\u043D\u0430\u044F ${relation}`;
|
|
5547
|
+
}
|
|
5548
|
+
return `\u0441\u0432\u043E\u0434\u043D\u044B\u0439 ${relation}`;
|
|
5549
|
+
}
|
|
5550
|
+
spouse() {
|
|
5551
|
+
const sex = sexOf(this.personN);
|
|
5552
|
+
if (sex === "m") {
|
|
5553
|
+
return "\u043C\u0443\u0436";
|
|
5554
|
+
}
|
|
5555
|
+
if (sex === "f") {
|
|
5556
|
+
return "\u0436\u0435\u043D\u0430";
|
|
5557
|
+
}
|
|
5558
|
+
return "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
5559
|
+
}
|
|
5560
|
+
ofSpouse(relation) {
|
|
5561
|
+
if (!relation) {
|
|
5562
|
+
return "";
|
|
5563
|
+
}
|
|
5564
|
+
const spouse = this.path?.[1].indi;
|
|
5565
|
+
const sex = sexOf(spouse);
|
|
5566
|
+
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
5567
|
+
return `${relation} ${toGenitive(spouseType)}`;
|
|
5568
|
+
}
|
|
5569
|
+
spouseOf(relation) {
|
|
5570
|
+
if (!relation) {
|
|
5571
|
+
return "";
|
|
5572
|
+
}
|
|
5573
|
+
const spouse = this.path?.[this.path.length - 1].indi;
|
|
5574
|
+
const sex = sexOf(spouse);
|
|
5575
|
+
const spouseType = sex === "m" ? "\u043C\u0443\u0436" : sex === "f" ? "\u0436\u0435\u043D\u0430" : "\u0441\u0443\u043F\u0440\u0443\u0433";
|
|
5576
|
+
return `${spouseType} ${toGenitive(relation)}`;
|
|
5577
|
+
}
|
|
5578
|
+
of(relation) {
|
|
5579
|
+
const formattedName = nameFormatter(this.path?.[0]?.indi, {
|
|
5580
|
+
nameOrder: "first-last"
|
|
5581
|
+
});
|
|
5582
|
+
let name = formattedName.inOrder.filter(Boolean).join(" ");
|
|
5583
|
+
if (this.displayName === "none") {
|
|
5584
|
+
name = "";
|
|
5585
|
+
} else if (this.displayName === "givenname") {
|
|
5586
|
+
name = formattedName.givenname;
|
|
5587
|
+
} else if (this.displayName === "surname") {
|
|
5588
|
+
name = `${formattedName.surname}`;
|
|
5589
|
+
}
|
|
5590
|
+
if (!name || !relation) {
|
|
5591
|
+
return relation ?? "";
|
|
5592
|
+
}
|
|
5593
|
+
return `${name}: ${relation}`;
|
|
5594
|
+
}
|
|
5595
|
+
inLaw(relation) {
|
|
5596
|
+
let inLawRelation = relation;
|
|
5597
|
+
Object.keys(InLawsRu).find((pattern) => {
|
|
5598
|
+
const regex = new RegExp(`^${pattern}$`);
|
|
5599
|
+
if (relation?.match(regex)) {
|
|
5600
|
+
inLawRelation = InLawsRu[pattern];
|
|
5601
|
+
return true;
|
|
5602
|
+
}
|
|
5603
|
+
return false;
|
|
5604
|
+
});
|
|
5605
|
+
return inLawRelation ?? "";
|
|
5606
|
+
}
|
|
5607
|
+
relationType(relation) {
|
|
5608
|
+
if (!relation || !this.pathN?.relation) {
|
|
5609
|
+
return relation ?? "";
|
|
5610
|
+
}
|
|
5611
|
+
return `${this.pathN.relation} ${relation}`;
|
|
5612
|
+
}
|
|
5613
|
+
};
|
|
5614
|
+
|
|
5371
5615
|
// src/kinship-translator/kinship-translator.ts
|
|
5372
5616
|
var KinshipTranslator = class {
|
|
5373
5617
|
constructor(person1, person2, lang = "en", entirePath, displayName = "givenname") {
|
|
@@ -6512,7 +6756,7 @@ var Families = class _Families extends List {
|
|
|
6512
6756
|
|
|
6513
6757
|
// package.json
|
|
6514
6758
|
var package_default = {
|
|
6515
|
-
version: "2.0.
|
|
6759
|
+
version: "2.0.10"};
|
|
6516
6760
|
|
|
6517
6761
|
// src/utils/get-product-details.ts
|
|
6518
6762
|
var isDevelopment = () => {
|