mingpan 0.1.1 → 0.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.
Files changed (135) hide show
  1. package/README.md +53 -7
  2. package/dist/core/bazi/types.d.ts +0 -1
  3. package/dist/core/bazi/types.d.ts.map +1 -1
  4. package/dist/index.js +398 -164
  5. package/dist/index.js.map +1 -1
  6. package/dist/output/daliurenTextRenderer.d.ts +23 -0
  7. package/dist/output/daliurenTextRenderer.d.ts.map +1 -0
  8. package/dist/output/daliurenTextRenderer.js +109 -0
  9. package/dist/output/daliurenTextRenderer.js.map +1 -0
  10. package/dist/output/liuyaoTextRenderer.d.ts +12 -0
  11. package/dist/output/liuyaoTextRenderer.d.ts.map +1 -0
  12. package/dist/output/liuyaoTextRenderer.js +148 -0
  13. package/dist/output/liuyaoTextRenderer.js.map +1 -0
  14. package/dist/output/meihuaTextRenderer.d.ts +12 -0
  15. package/dist/output/meihuaTextRenderer.d.ts.map +1 -0
  16. package/dist/output/meihuaTextRenderer.js +53 -0
  17. package/dist/output/meihuaTextRenderer.js.map +1 -0
  18. package/dist/services/bazi/types.d.ts +0 -2
  19. package/dist/services/bazi/types.d.ts.map +1 -1
  20. package/dist/services/bazi/types.js.map +1 -1
  21. package/dist/services/daliuren/DaliurenService.d.ts +24 -0
  22. package/dist/services/daliuren/DaliurenService.d.ts.map +1 -0
  23. package/dist/services/daliuren/DaliurenService.js +67 -0
  24. package/dist/services/daliuren/DaliurenService.js.map +1 -0
  25. package/dist/services/daliuren/calculators/SanChuanCalculator.d.ts +87 -0
  26. package/dist/services/daliuren/calculators/SanChuanCalculator.d.ts.map +1 -0
  27. package/dist/services/daliuren/calculators/SanChuanCalculator.js +443 -0
  28. package/dist/services/daliuren/calculators/SanChuanCalculator.js.map +1 -0
  29. package/dist/services/daliuren/calculators/ShenShaCalculator.d.ts +33 -0
  30. package/dist/services/daliuren/calculators/ShenShaCalculator.d.ts.map +1 -0
  31. package/dist/services/daliuren/calculators/ShenShaCalculator.js +92 -0
  32. package/dist/services/daliuren/calculators/ShenShaCalculator.js.map +1 -0
  33. package/dist/services/daliuren/calculators/SiKeCalculator.d.ts +35 -0
  34. package/dist/services/daliuren/calculators/SiKeCalculator.d.ts.map +1 -0
  35. package/dist/services/daliuren/calculators/SiKeCalculator.js +121 -0
  36. package/dist/services/daliuren/calculators/SiKeCalculator.js.map +1 -0
  37. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts +41 -0
  38. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts.map +1 -0
  39. package/dist/services/daliuren/calculators/TianDiPanCalculator.js +138 -0
  40. package/dist/services/daliuren/calculators/TianDiPanCalculator.js.map +1 -0
  41. package/dist/services/daliuren/data/constants.d.ts +62 -0
  42. package/dist/services/daliuren/data/constants.d.ts.map +1 -0
  43. package/dist/services/daliuren/data/constants.js +240 -0
  44. package/dist/services/daliuren/data/constants.js.map +1 -0
  45. package/dist/services/daliuren/index.d.ts +11 -0
  46. package/dist/services/daliuren/index.d.ts.map +1 -0
  47. package/dist/services/daliuren/index.js +33 -0
  48. package/dist/services/daliuren/index.js.map +1 -0
  49. package/dist/services/daliuren/types.d.ts +152 -0
  50. package/dist/services/daliuren/types.d.ts.map +1 -0
  51. package/dist/services/daliuren/types.js +17 -0
  52. package/dist/services/daliuren/types.js.map +1 -0
  53. package/dist/services/liuyao/LiuyaoService.d.ts +37 -0
  54. package/dist/services/liuyao/LiuyaoService.d.ts.map +1 -0
  55. package/dist/services/liuyao/LiuyaoService.js +214 -0
  56. package/dist/services/liuyao/LiuyaoService.js.map +1 -0
  57. package/dist/services/liuyao/calculators/FushenCalculator.d.ts +40 -0
  58. package/dist/services/liuyao/calculators/FushenCalculator.d.ts.map +1 -0
  59. package/dist/services/liuyao/calculators/FushenCalculator.js +124 -0
  60. package/dist/services/liuyao/calculators/FushenCalculator.js.map +1 -0
  61. package/dist/services/liuyao/calculators/JintuishenCalculator.d.ts +37 -0
  62. package/dist/services/liuyao/calculators/JintuishenCalculator.d.ts.map +1 -0
  63. package/dist/services/liuyao/calculators/JintuishenCalculator.js +86 -0
  64. package/dist/services/liuyao/calculators/JintuishenCalculator.js.map +1 -0
  65. package/dist/services/liuyao/calculators/LiuqinCalculator.d.ts +24 -0
  66. package/dist/services/liuyao/calculators/LiuqinCalculator.d.ts.map +1 -0
  67. package/dist/services/liuyao/calculators/LiuqinCalculator.js +75 -0
  68. package/dist/services/liuyao/calculators/LiuqinCalculator.js.map +1 -0
  69. package/dist/services/liuyao/calculators/LiushenCalculator.d.ts +29 -0
  70. package/dist/services/liuyao/calculators/LiushenCalculator.d.ts.map +1 -0
  71. package/dist/services/liuyao/calculators/LiushenCalculator.js +58 -0
  72. package/dist/services/liuyao/calculators/LiushenCalculator.js.map +1 -0
  73. package/dist/services/liuyao/calculators/NajiaCalculator.d.ts +55 -0
  74. package/dist/services/liuyao/calculators/NajiaCalculator.d.ts.map +1 -0
  75. package/dist/services/liuyao/calculators/NajiaCalculator.js +87 -0
  76. package/dist/services/liuyao/calculators/NajiaCalculator.js.map +1 -0
  77. package/dist/services/liuyao/calculators/WangshuaiCalculator.d.ts +43 -0
  78. package/dist/services/liuyao/calculators/WangshuaiCalculator.d.ts.map +1 -0
  79. package/dist/services/liuyao/calculators/WangshuaiCalculator.js +100 -0
  80. package/dist/services/liuyao/calculators/WangshuaiCalculator.js.map +1 -0
  81. package/dist/services/liuyao/calculators/XunkongCalculator.d.ts +30 -0
  82. package/dist/services/liuyao/calculators/XunkongCalculator.d.ts.map +1 -0
  83. package/dist/services/liuyao/calculators/XunkongCalculator.js +58 -0
  84. package/dist/services/liuyao/calculators/XunkongCalculator.js.map +1 -0
  85. package/dist/services/liuyao/data/guagong.d.ts +94 -0
  86. package/dist/services/liuyao/data/guagong.d.ts.map +1 -0
  87. package/dist/services/liuyao/data/guagong.js +317 -0
  88. package/dist/services/liuyao/data/guagong.js.map +1 -0
  89. package/dist/services/liuyao/index.d.ts +13 -0
  90. package/dist/services/liuyao/index.d.ts.map +1 -0
  91. package/dist/services/liuyao/index.js +29 -0
  92. package/dist/services/liuyao/index.js.map +1 -0
  93. package/dist/services/liuyao/types.d.ts +154 -0
  94. package/dist/services/liuyao/types.d.ts.map +1 -0
  95. package/dist/services/liuyao/types.js +11 -0
  96. package/dist/services/liuyao/types.js.map +1 -0
  97. package/dist/services/meihua/MeihuaService.d.ts +32 -0
  98. package/dist/services/meihua/MeihuaService.d.ts.map +1 -0
  99. package/dist/services/meihua/MeihuaService.js +176 -0
  100. package/dist/services/meihua/MeihuaService.js.map +1 -0
  101. package/dist/services/meihua/calculators/BianguaCalculator.d.ts +21 -0
  102. package/dist/services/meihua/calculators/BianguaCalculator.d.ts.map +1 -0
  103. package/dist/services/meihua/calculators/BianguaCalculator.js +46 -0
  104. package/dist/services/meihua/calculators/BianguaCalculator.js.map +1 -0
  105. package/dist/services/meihua/calculators/HuguaCalculator.d.ts +22 -0
  106. package/dist/services/meihua/calculators/HuguaCalculator.d.ts.map +1 -0
  107. package/dist/services/meihua/calculators/HuguaCalculator.js +46 -0
  108. package/dist/services/meihua/calculators/HuguaCalculator.js.map +1 -0
  109. package/dist/services/meihua/calculators/QiguaCalculator.d.ts +40 -0
  110. package/dist/services/meihua/calculators/QiguaCalculator.d.ts.map +1 -0
  111. package/dist/services/meihua/calculators/QiguaCalculator.js +105 -0
  112. package/dist/services/meihua/calculators/QiguaCalculator.js.map +1 -0
  113. package/dist/services/meihua/calculators/TiyongCalculator.d.ts +34 -0
  114. package/dist/services/meihua/calculators/TiyongCalculator.d.ts.map +1 -0
  115. package/dist/services/meihua/calculators/TiyongCalculator.js +105 -0
  116. package/dist/services/meihua/calculators/TiyongCalculator.js.map +1 -0
  117. package/dist/services/meihua/data/bagua.d.ts +19 -0
  118. package/dist/services/meihua/data/bagua.d.ts.map +1 -0
  119. package/dist/services/meihua/data/bagua.js +81 -0
  120. package/dist/services/meihua/data/bagua.js.map +1 -0
  121. package/dist/services/meihua/index.d.ts +11 -0
  122. package/dist/services/meihua/index.d.ts.map +1 -0
  123. package/dist/services/meihua/index.js +27 -0
  124. package/dist/services/meihua/index.js.map +1 -0
  125. package/dist/services/meihua/types.d.ts +95 -0
  126. package/dist/services/meihua/types.d.ts.map +1 -0
  127. package/dist/services/meihua/types.js +6 -0
  128. package/dist/services/meihua/types.js.map +1 -0
  129. package/dist/shared/types.d.ts +0 -1
  130. package/dist/shared/types.d.ts.map +1 -1
  131. package/dist/utils/timeNormalization.d.ts +48 -0
  132. package/dist/utils/timeNormalization.d.ts.map +1 -0
  133. package/dist/utils/timeNormalization.js +69 -0
  134. package/dist/utils/timeNormalization.js.map +1 -0
  135. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FushenCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/FushenCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 進神/退神計算器
3
+ *
4
+ * 理論來源:《增刪卜易》第36章「進神退神章」
5
+ *
6
+ * 核心規則:
7
+ * - 進神:動爻變化後地支順進(如亥化子、寅化卯)
8
+ * - 退神:動爻變化後地支逆退(如子化亥、卯化寅)
9
+ *
10
+ * 進神規則(地支順進):
11
+ * - 亥化子、寅化卯、巳化午、申化酉(四正進)
12
+ * - 丑化辰、辰化未、未化戌、戌化丑(四墓進)
13
+ *
14
+ * 退神規則(地支逆退):
15
+ * - 子化亥、卯化寅、午化巳、酉化申(四正退)
16
+ * - 辰化丑、未化辰、戌化未、丑化戌(四墓退)
17
+ */
18
+ import { DiZhi, JinTuiShenType } from '../types';
19
+ export declare class JintuishenCalculator {
20
+ /**
21
+ * 判斷動爻變化是否為進神或退神
22
+ *
23
+ * @param originalDiZhi 原地支(本卦納甲)
24
+ * @param changedDiZhi 變化後地支(變卦納甲)
25
+ * @returns 進神/退神/null
26
+ */
27
+ static calculate(originalDiZhi: DiZhi, changedDiZhi: DiZhi): JinTuiShenType;
28
+ /**
29
+ * 獲取進神說明
30
+ */
31
+ static getJinShenDescription(): string;
32
+ /**
33
+ * 獲取退神說明
34
+ */
35
+ static getTuiShenDescription(): string;
36
+ }
37
+ //# sourceMappingURL=JintuishenCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JintuishenCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/JintuishenCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAoCjD,qBAAa,oBAAoB;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,GAAG,cAAc;IAc3E;;OAEG;IACH,MAAM,CAAC,qBAAqB,IAAI,MAAM;IAItC;;OAEG;IACH,MAAM,CAAC,qBAAqB,IAAI,MAAM;CAGvC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * 進神/退神計算器
4
+ *
5
+ * 理論來源:《增刪卜易》第36章「進神退神章」
6
+ *
7
+ * 核心規則:
8
+ * - 進神:動爻變化後地支順進(如亥化子、寅化卯)
9
+ * - 退神:動爻變化後地支逆退(如子化亥、卯化寅)
10
+ *
11
+ * 進神規則(地支順進):
12
+ * - 亥化子、寅化卯、巳化午、申化酉(四正進)
13
+ * - 丑化辰、辰化未、未化戌、戌化丑(四墓進)
14
+ *
15
+ * 退神規則(地支逆退):
16
+ * - 子化亥、卯化寅、午化巳、酉化申(四正退)
17
+ * - 辰化丑、未化辰、戌化未、丑化戌(四墓退)
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.JintuishenCalculator = void 0;
21
+ /** 進神對照表:原地支 -> 變化後地支 */
22
+ const JIN_SHEN_MAP = {
23
+ '亥': '子',
24
+ '寅': '卯',
25
+ '巳': '午',
26
+ '申': '酉',
27
+ '丑': '辰',
28
+ '辰': '未',
29
+ '未': '戌',
30
+ '戌': '丑',
31
+ // 以下不構成進神
32
+ '子': '子', // placeholder
33
+ '卯': '卯',
34
+ '午': '午',
35
+ '酉': '酉',
36
+ };
37
+ /** 退神對照表:原地支 -> 變化後地支 */
38
+ const TUI_SHEN_MAP = {
39
+ '子': '亥',
40
+ '卯': '寅',
41
+ '午': '巳',
42
+ '酉': '申',
43
+ '辰': '丑',
44
+ '未': '辰',
45
+ '戌': '未',
46
+ '丑': '戌',
47
+ // 以下不構成退神
48
+ '亥': '亥', // placeholder
49
+ '寅': '寅',
50
+ '巳': '巳',
51
+ '申': '申',
52
+ };
53
+ class JintuishenCalculator {
54
+ /**
55
+ * 判斷動爻變化是否為進神或退神
56
+ *
57
+ * @param originalDiZhi 原地支(本卦納甲)
58
+ * @param changedDiZhi 變化後地支(變卦納甲)
59
+ * @returns 進神/退神/null
60
+ */
61
+ static calculate(originalDiZhi, changedDiZhi) {
62
+ // 檢查是否為進神
63
+ if (JIN_SHEN_MAP[originalDiZhi] === changedDiZhi) {
64
+ return '進神';
65
+ }
66
+ // 檢查是否為退神
67
+ if (TUI_SHEN_MAP[originalDiZhi] === changedDiZhi) {
68
+ return '退神';
69
+ }
70
+ return null;
71
+ }
72
+ /**
73
+ * 獲取進神說明
74
+ */
75
+ static getJinShenDescription() {
76
+ return '進神:亥→子、寅→卯、巳→午、申→酉、丑→辰、辰→未、未→戌、戌→丑';
77
+ }
78
+ /**
79
+ * 獲取退神說明
80
+ */
81
+ static getTuiShenDescription() {
82
+ return '退神:子→亥、卯→寅、午→巳、酉→申、辰→丑、未→辰、戌→未、丑→戌';
83
+ }
84
+ }
85
+ exports.JintuishenCalculator = JintuishenCalculator;
86
+ //# sourceMappingURL=JintuishenCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JintuishenCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/JintuishenCalculator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAIH,yBAAyB;AACzB,MAAM,YAAY,GAAyB;IACzC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,UAAU;IACV,GAAG,EAAE,GAAG,EAAE,cAAc;IACxB,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,yBAAyB;AACzB,MAAM,YAAY,GAAyB;IACzC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,UAAU;IACV,GAAG,EAAE,GAAG,EAAE,cAAc;IACxB,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,MAAa,oBAAoB;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,aAAoB,EAAE,YAAmB;QACxD,UAAU;QACV,IAAI,YAAY,CAAC,aAAa,CAAC,KAAK,YAAY,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,UAAU;QACV,IAAI,YAAY,CAAC,aAAa,CAAC,KAAK,YAAY,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,qBAAqB;QAC1B,OAAO,oCAAoC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,qBAAqB;QAC1B,OAAO,oCAAoC,CAAC;IAC9C,CAAC;CACF;AAnCD,oDAmCC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 六親計算器
3
+ *
4
+ * 六親推導規則(以卦宮五行為「我」):
5
+ * - 生我者為父母
6
+ * - 我生者為子孫
7
+ * - 克我者為官鬼
8
+ * - 我克者為妻財
9
+ * - 同我者為兄弟
10
+ */
11
+ import { WuXing, LiuQin } from '../types';
12
+ export declare class LiuqinCalculator {
13
+ /**
14
+ * 計算六親
15
+ * @param gongWuXing 卦宮五行(作為「我」)
16
+ * @param yaoWuXing 爻的五行
17
+ */
18
+ static calculate(gongWuXing: WuXing, yaoWuXing: WuXing): LiuQin;
19
+ /**
20
+ * 獲取六親簡稱
21
+ */
22
+ static getShortName(liuQin: LiuQin): string;
23
+ }
24
+ //# sourceMappingURL=LiuqinCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiuqinCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/LiuqinCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAoB1C,qBAAa,gBAAgB;IAC3B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IA8B/D;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAU5C"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * 六親計算器
4
+ *
5
+ * 六親推導規則(以卦宮五行為「我」):
6
+ * - 生我者為父母
7
+ * - 我生者為子孫
8
+ * - 克我者為官鬼
9
+ * - 我克者為妻財
10
+ * - 同我者為兄弟
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.LiuqinCalculator = void 0;
14
+ /** 五行相生關係:key 生 value */
15
+ const WUXING_SHENG = {
16
+ '木': '火',
17
+ '火': '土',
18
+ '土': '金',
19
+ '金': '水',
20
+ '水': '木',
21
+ };
22
+ /** 五行相剋關係:key 剋 value */
23
+ const WUXING_KE = {
24
+ '木': '土',
25
+ '土': '水',
26
+ '水': '火',
27
+ '火': '金',
28
+ '金': '木',
29
+ };
30
+ class LiuqinCalculator {
31
+ /**
32
+ * 計算六親
33
+ * @param gongWuXing 卦宮五行(作為「我」)
34
+ * @param yaoWuXing 爻的五行
35
+ */
36
+ static calculate(gongWuXing, yaoWuXing) {
37
+ // 同我者為兄弟
38
+ if (gongWuXing === yaoWuXing) {
39
+ return '兄弟';
40
+ }
41
+ // 生我者為父母
42
+ if (WUXING_SHENG[yaoWuXing] === gongWuXing) {
43
+ return '父母';
44
+ }
45
+ // 我生者為子孫
46
+ if (WUXING_SHENG[gongWuXing] === yaoWuXing) {
47
+ return '子孫';
48
+ }
49
+ // 克我者為官鬼
50
+ if (WUXING_KE[yaoWuXing] === gongWuXing) {
51
+ return '官鬼';
52
+ }
53
+ // 我克者為妻財
54
+ if (WUXING_KE[gongWuXing] === yaoWuXing) {
55
+ return '妻財';
56
+ }
57
+ // 理論上不會到這裡
58
+ return '兄弟';
59
+ }
60
+ /**
61
+ * 獲取六親簡稱
62
+ */
63
+ static getShortName(liuQin) {
64
+ const SHORT_NAMES = {
65
+ '父母': '父',
66
+ '兄弟': '兄',
67
+ '子孫': '子',
68
+ '妻財': '財',
69
+ '官鬼': '官',
70
+ };
71
+ return SHORT_NAMES[liuQin];
72
+ }
73
+ }
74
+ exports.LiuqinCalculator = LiuqinCalculator;
75
+ //# sourceMappingURL=LiuqinCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiuqinCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/LiuqinCalculator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAIH,yBAAyB;AACzB,MAAM,YAAY,GAA2B;IAC3C,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,yBAAyB;AACzB,MAAM,SAAS,GAA2B;IACxC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,MAAa,gBAAgB;IAC3B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,UAAkB,EAAE,SAAiB;QACpD,SAAS;QACT,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS;QACT,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS;QACT,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS;QACT,IAAI,SAAS,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS;QACT,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAc;QAChC,MAAM,WAAW,GAA2B;YAC1C,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,GAAG;SACV,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF;AAjDD,4CAiDC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 六神計算器
3
+ *
4
+ * 六神(六獸)按日干起:
5
+ * - 甲乙日:青龍起初爻
6
+ * - 丙丁日:朱雀起初爻
7
+ * - 戊日:勾陳起初爻
8
+ * - 己日:螣蛇起初爻
9
+ * - 庚辛日:白虎起初爻
10
+ * - 壬癸日:玄武起初爻
11
+ *
12
+ * 順序:青龍 → 朱雀 → 勾陳 → 螣蛇 → 白虎 → 玄武
13
+ */
14
+ import { TianGan, LiuShen } from '../types';
15
+ export declare class LiushenCalculator {
16
+ /**
17
+ * 計算某爻的六神
18
+ * @param dayStem 日干
19
+ * @param position 爻位(1-6,自下而上)
20
+ */
21
+ static calculate(dayStem: TianGan, position: number): LiuShen;
22
+ /**
23
+ * 計算全卦六爻的六神
24
+ * @param dayStem 日干
25
+ * @returns 六爻六神(自下而上)
26
+ */
27
+ static calculateAll(dayStem: TianGan): LiuShen[];
28
+ }
29
+ //# sourceMappingURL=LiushenCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiushenCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/LiushenCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAmB5C,qBAAa,iBAAiB;IAC5B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAO7D;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE;CAOjD"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * 六神計算器
4
+ *
5
+ * 六神(六獸)按日干起:
6
+ * - 甲乙日:青龍起初爻
7
+ * - 丙丁日:朱雀起初爻
8
+ * - 戊日:勾陳起初爻
9
+ * - 己日:螣蛇起初爻
10
+ * - 庚辛日:白虎起初爻
11
+ * - 壬癸日:玄武起初爻
12
+ *
13
+ * 順序:青龍 → 朱雀 → 勾陳 → 螣蛇 → 白虎 → 玄武
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.LiushenCalculator = void 0;
17
+ /** 六神順序 */
18
+ const LIUSHEN_ORDER = ['青龍', '朱雀', '勾陳', '螣蛇', '白虎', '玄武'];
19
+ /** 日干對應的起始六神索引 */
20
+ const STEM_TO_START_INDEX = {
21
+ '甲': 0, // 青龍
22
+ '乙': 0, // 青龍
23
+ '丙': 1, // 朱雀
24
+ '丁': 1, // 朱雀
25
+ '戊': 2, // 勾陳
26
+ '己': 3, // 螣蛇
27
+ '庚': 4, // 白虎
28
+ '辛': 4, // 白虎
29
+ '壬': 5, // 玄武
30
+ '癸': 5, // 玄武
31
+ };
32
+ class LiushenCalculator {
33
+ /**
34
+ * 計算某爻的六神
35
+ * @param dayStem 日干
36
+ * @param position 爻位(1-6,自下而上)
37
+ */
38
+ static calculate(dayStem, position) {
39
+ const startIndex = STEM_TO_START_INDEX[dayStem];
40
+ // 初爻為起始六神,依次向上
41
+ const index = (startIndex + position - 1) % 6;
42
+ return LIUSHEN_ORDER[index];
43
+ }
44
+ /**
45
+ * 計算全卦六爻的六神
46
+ * @param dayStem 日干
47
+ * @returns 六爻六神(自下而上)
48
+ */
49
+ static calculateAll(dayStem) {
50
+ const results = [];
51
+ for (let i = 1; i <= 6; i++) {
52
+ results.push(this.calculate(dayStem, i));
53
+ }
54
+ return results;
55
+ }
56
+ }
57
+ exports.LiushenCalculator = LiushenCalculator;
58
+ //# sourceMappingURL=LiushenCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiushenCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/LiushenCalculator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAIH,WAAW;AACX,MAAM,aAAa,GAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEtE,kBAAkB;AAClB,MAAM,mBAAmB,GAA4B;IACnD,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;IACb,GAAG,EAAE,CAAC,EAAE,KAAK;CACd,CAAC;AAEF,MAAa,iBAAiB;IAC5B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,OAAgB,EAAE,QAAgB;QACjD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAChD,eAAe;QACf,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAgB;QAClC,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAzBD,8CAyBC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 納甲計算器
3
+ *
4
+ * 京房納甲體系:
5
+ * - 根據卦象確定每爻的地支
6
+ * - 地支決定五行屬性
7
+ */
8
+ import { BaGua, DiZhi, WuXing, YaoValue, YinYang } from '../types';
9
+ export interface NaJiaResult {
10
+ /** 地支 */
11
+ diZhi: DiZhi;
12
+ /** 五行 */
13
+ wuXing: WuXing;
14
+ }
15
+ export declare class NajiaCalculator {
16
+ /**
17
+ * 計算單爻的納甲
18
+ * @param position 爻位(1-6,自下而上)
19
+ * @param upperGua 上卦
20
+ * @param lowerGua 下卦
21
+ */
22
+ static calculate(position: number, upperGua: BaGua, lowerGua: BaGua): NaJiaResult;
23
+ /**
24
+ * 計算全卦六爻的納甲
25
+ * @param upperGua 上卦
26
+ * @param lowerGua 下卦
27
+ * @returns 六爻納甲結果(自下而上)
28
+ */
29
+ static calculateAll(upperGua: BaGua, lowerGua: BaGua): NaJiaResult[];
30
+ /**
31
+ * 根據爻值數組獲取上下卦
32
+ * @param yaoValues 六爻值(自下而上)
33
+ *
34
+ * 注意:BINARY_TO_BAGUA 的定義是"下爻是最高位"
35
+ * 例如:震 = 0b100 = 4,表示下爻阳(1)、中爻阴(0)、上爻阴(0)
36
+ * 計算方式:下爻*4 + 中爻*2 + 上爻*1
37
+ */
38
+ static getGuaFromYaoValues(yaoValues: YaoValue[]): {
39
+ upper: BaGua;
40
+ lower: BaGua;
41
+ };
42
+ /**
43
+ * 獲取爻的陰陽
44
+ */
45
+ static getYinYang(yaoValue: YaoValue): YinYang;
46
+ /**
47
+ * 判斷是否為動爻
48
+ */
49
+ static isMoving(yaoValue: YaoValue): boolean;
50
+ /**
51
+ * 獲取動爻變化後的陰陽
52
+ */
53
+ static getChangedYinYang(yaoValue: YaoValue): YinYang | undefined;
54
+ }
55
+ //# sourceMappingURL=NajiaCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NajiaCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/NajiaCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnE,MAAM,WAAW,WAAW;IAC1B,SAAS;IACT,KAAK,EAAE,KAAK,CAAC;IACb,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,WAAW;IAejF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,WAAW,EAAE;IAQpE;;;;;;;OAOG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE;IAejF;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAI9C;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAI5C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;CAKlE"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /**
3
+ * 納甲計算器
4
+ *
5
+ * 京房納甲體系:
6
+ * - 根據卦象確定每爻的地支
7
+ * - 地支決定五行屬性
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NajiaCalculator = void 0;
11
+ const guagong_1 = require("../data/guagong");
12
+ class NajiaCalculator {
13
+ /**
14
+ * 計算單爻的納甲
15
+ * @param position 爻位(1-6,自下而上)
16
+ * @param upperGua 上卦
17
+ * @param lowerGua 下卦
18
+ */
19
+ static calculate(position, upperGua, lowerGua) {
20
+ const isOuter = position > 3;
21
+ const gua = isOuter ? upperGua : lowerGua;
22
+ const positionInGua = isOuter ? position - 3 : position;
23
+ const naJiaData = guagong_1.NAJIA_TABLE[gua];
24
+ const arr = isOuter ? naJiaData.outer : naJiaData.inner;
25
+ const diZhi = arr[positionInGua - 1];
26
+ return {
27
+ diZhi,
28
+ wuXing: guagong_1.DIZHI_WUXING[diZhi],
29
+ };
30
+ }
31
+ /**
32
+ * 計算全卦六爻的納甲
33
+ * @param upperGua 上卦
34
+ * @param lowerGua 下卦
35
+ * @returns 六爻納甲結果(自下而上)
36
+ */
37
+ static calculateAll(upperGua, lowerGua) {
38
+ const results = [];
39
+ for (let i = 1; i <= 6; i++) {
40
+ results.push(this.calculate(i, upperGua, lowerGua));
41
+ }
42
+ return results;
43
+ }
44
+ /**
45
+ * 根據爻值數組獲取上下卦
46
+ * @param yaoValues 六爻值(自下而上)
47
+ *
48
+ * 注意:BINARY_TO_BAGUA 的定義是"下爻是最高位"
49
+ * 例如:震 = 0b100 = 4,表示下爻阳(1)、中爻阴(0)、上爻阴(0)
50
+ * 計算方式:下爻*4 + 中爻*2 + 上爻*1
51
+ */
52
+ static getGuaFromYaoValues(yaoValues) {
53
+ // 將爻值轉換為陰陽(6,8=陰,7,9=陽)
54
+ const yinYang = yaoValues.map(v => v === 7 || v === 9);
55
+ // 計算下卦(初爻到三爻)- 初爻(下爻)是最高位 (bit 2)
56
+ const lowerBinary = (yinYang[0] ? 4 : 0) + (yinYang[1] ? 2 : 0) + (yinYang[2] ? 1 : 0);
57
+ // 計算上卦(四爻到上爻)- 四爻(下爻)是最高位 (bit 2)
58
+ const upperBinary = (yinYang[3] ? 4 : 0) + (yinYang[4] ? 2 : 0) + (yinYang[5] ? 1 : 0);
59
+ return {
60
+ upper: guagong_1.BINARY_TO_BAGUA[upperBinary],
61
+ lower: guagong_1.BINARY_TO_BAGUA[lowerBinary],
62
+ };
63
+ }
64
+ /**
65
+ * 獲取爻的陰陽
66
+ */
67
+ static getYinYang(yaoValue) {
68
+ return (yaoValue === 7 || yaoValue === 9) ? '陽' : '陰';
69
+ }
70
+ /**
71
+ * 判斷是否為動爻
72
+ */
73
+ static isMoving(yaoValue) {
74
+ return yaoValue === 6 || yaoValue === 9;
75
+ }
76
+ /**
77
+ * 獲取動爻變化後的陰陽
78
+ */
79
+ static getChangedYinYang(yaoValue) {
80
+ if (!this.isMoving(yaoValue))
81
+ return undefined;
82
+ // 動爻陰陽反轉
83
+ return yaoValue === 9 ? '陰' : '陽';
84
+ }
85
+ }
86
+ exports.NajiaCalculator = NajiaCalculator;
87
+ //# sourceMappingURL=NajiaCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NajiaCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/NajiaCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * 旺衰計算器
3
+ *
4
+ * 理論來源:五行旺相休囚死(《淮南子》以來的傳統理論)
5
+ *
6
+ * 核心規則(以月令/日辰地支所屬五行為基準):
7
+ * - 旺:與月令/日辰同五行
8
+ * - 相:月令/日辰所生之五行
9
+ * - 休:生月令/日辰之五行
10
+ * - 囚:克月令/日辰之五行
11
+ * - 死:被月令/日辰所克之五行
12
+ *
13
+ * 簡化口訣:
14
+ * - 臨我者旺(同我)
15
+ * - 我生者相
16
+ * - 生我者休
17
+ * - 克我者囚
18
+ * - 我克者死
19
+ */
20
+ import { DiZhi, WuXing, WangShuaiState } from '../types';
21
+ export declare class WangshuaiCalculator {
22
+ /**
23
+ * 計算爻的旺衰狀態
24
+ *
25
+ * @param yaoWuXing 爻的五行
26
+ * @param lingDiZhi 月令或日辰的地支
27
+ * @returns 旺衰狀態
28
+ */
29
+ static calculate(yaoWuXing: WuXing, lingDiZhi: DiZhi): WangShuaiState;
30
+ /**
31
+ * 獲取旺衰說明
32
+ */
33
+ static getDescription(state: WangShuaiState): string;
34
+ /**
35
+ * 判斷是否為旺相(有力)
36
+ */
37
+ static isStrong(state: WangShuaiState): boolean;
38
+ /**
39
+ * 判斷是否為休囚死(無力)
40
+ */
41
+ static isWeak(state: WangShuaiState): boolean;
42
+ }
43
+ //# sourceMappingURL=WangshuaiCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WangshuaiCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/WangshuaiCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAqBzD,qBAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,cAAc;IAgCrE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM;IAWpD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;IAI/C;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;CAG9C"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * 旺衰計算器
4
+ *
5
+ * 理論來源:五行旺相休囚死(《淮南子》以來的傳統理論)
6
+ *
7
+ * 核心規則(以月令/日辰地支所屬五行為基準):
8
+ * - 旺:與月令/日辰同五行
9
+ * - 相:月令/日辰所生之五行
10
+ * - 休:生月令/日辰之五行
11
+ * - 囚:克月令/日辰之五行
12
+ * - 死:被月令/日辰所克之五行
13
+ *
14
+ * 簡化口訣:
15
+ * - 臨我者旺(同我)
16
+ * - 我生者相
17
+ * - 生我者休
18
+ * - 克我者囚
19
+ * - 我克者死
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.WangshuaiCalculator = void 0;
23
+ const guagong_1 = require("../data/guagong");
24
+ /** 五行相生:A 生 B */
25
+ const SHENG = {
26
+ '金': '水',
27
+ '水': '木',
28
+ '木': '火',
29
+ '火': '土',
30
+ '土': '金',
31
+ };
32
+ /** 五行相剋:A 克 B */
33
+ const KE = {
34
+ '金': '木',
35
+ '木': '土',
36
+ '土': '水',
37
+ '水': '火',
38
+ '火': '金',
39
+ };
40
+ class WangshuaiCalculator {
41
+ /**
42
+ * 計算爻的旺衰狀態
43
+ *
44
+ * @param yaoWuXing 爻的五行
45
+ * @param lingDiZhi 月令或日辰的地支
46
+ * @returns 旺衰狀態
47
+ */
48
+ static calculate(yaoWuXing, lingDiZhi) {
49
+ const lingWuXing = guagong_1.DIZHI_WUXING[lingDiZhi];
50
+ // 同五行 = 旺
51
+ if (yaoWuXing === lingWuXing) {
52
+ return '旺';
53
+ }
54
+ // 令生爻 = 相(爻得生)
55
+ if (SHENG[lingWuXing] === yaoWuXing) {
56
+ return '相';
57
+ }
58
+ // 爻生令 = 休(爻洩氣)
59
+ if (SHENG[yaoWuXing] === lingWuXing) {
60
+ return '休';
61
+ }
62
+ // 爻克令 = 囚(爻耗力)
63
+ if (KE[yaoWuXing] === lingWuXing) {
64
+ return '囚';
65
+ }
66
+ // 令克爻 = 死(爻受制)
67
+ if (KE[lingWuXing] === yaoWuXing) {
68
+ return '死';
69
+ }
70
+ // 不應該到這裡
71
+ return '休';
72
+ }
73
+ /**
74
+ * 獲取旺衰說明
75
+ */
76
+ static getDescription(state) {
77
+ const descriptions = {
78
+ '旺': '當令,力量最強',
79
+ '相': '得生,力量次強',
80
+ '休': '洩氣,力量平平',
81
+ '囚': '耗力,力量較弱',
82
+ '死': '受制,力量最弱',
83
+ };
84
+ return descriptions[state];
85
+ }
86
+ /**
87
+ * 判斷是否為旺相(有力)
88
+ */
89
+ static isStrong(state) {
90
+ return state === '旺' || state === '相';
91
+ }
92
+ /**
93
+ * 判斷是否為休囚死(無力)
94
+ */
95
+ static isWeak(state) {
96
+ return state === '休' || state === '囚' || state === '死';
97
+ }
98
+ }
99
+ exports.WangshuaiCalculator = WangshuaiCalculator;
100
+ //# sourceMappingURL=WangshuaiCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WangshuaiCalculator.js","sourceRoot":"","sources":["../../../../src/services/liuyao/calculators/WangshuaiCalculator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAGH,6CAA+C;AAE/C,iBAAiB;AACjB,MAAM,KAAK,GAA2B;IACpC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,iBAAiB;AACjB,MAAM,EAAE,GAA2B;IACjC,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,MAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,SAAiB,EAAE,SAAgB;QAClD,MAAM,UAAU,GAAG,sBAAY,CAAC,SAAS,CAAC,CAAC;QAE3C,UAAU;QACV,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,GAAG,CAAC;QACb,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,eAAe;QACf,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,eAAe;QACf,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,SAAS;QACT,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAqB;QACzC,MAAM,YAAY,GAAmC;YACnD,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;SACf,CAAC;QACF,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAqB;QACnC,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAqB;QACjC,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC;IACzD,CAAC;CACF;AAnED,kDAmEC"}