mingpan 0.1.1 → 0.1.3

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 (239) hide show
  1. package/README.md +116 -42
  2. package/dist/core/bazi/types.d.ts +0 -1
  3. package/dist/core/bazi/types.d.ts.map +1 -1
  4. package/dist/core/qimen/FlyingRule.d.ts +60 -0
  5. package/dist/core/qimen/FlyingRule.d.ts.map +1 -0
  6. package/dist/core/qimen/FlyingRule.js +94 -0
  7. package/dist/core/qimen/FlyingRule.js.map +1 -0
  8. package/dist/core/qimen/GongMapping.d.ts +29 -0
  9. package/dist/core/qimen/GongMapping.d.ts.map +1 -0
  10. package/dist/core/qimen/GongMapping.js +83 -0
  11. package/dist/core/qimen/GongMapping.js.map +1 -0
  12. package/dist/core/qimen/RotatingRule.d.ts +76 -0
  13. package/dist/core/qimen/RotatingRule.d.ts.map +1 -0
  14. package/dist/core/qimen/RotatingRule.js +126 -0
  15. package/dist/core/qimen/RotatingRule.js.map +1 -0
  16. package/dist/core/qimen/YinYangDunCalculator.d.ts +28 -0
  17. package/dist/core/qimen/YinYangDunCalculator.d.ts.map +1 -0
  18. package/dist/core/qimen/YinYangDunCalculator.js +79 -0
  19. package/dist/core/qimen/YinYangDunCalculator.js.map +1 -0
  20. package/dist/core/qimen/index.d.ts +10 -0
  21. package/dist/core/qimen/index.d.ts.map +1 -0
  22. package/dist/core/qimen/index.js +58 -0
  23. package/dist/core/qimen/index.js.map +1 -0
  24. package/dist/core/qimen/types.d.ts +19 -0
  25. package/dist/core/qimen/types.d.ts.map +1 -0
  26. package/dist/core/qimen/types.js +7 -0
  27. package/dist/core/qimen/types.js.map +1 -0
  28. package/dist/index.js +665 -164
  29. package/dist/index.js.map +1 -1
  30. package/dist/output/daliurenTextRenderer.d.ts +23 -0
  31. package/dist/output/daliurenTextRenderer.d.ts.map +1 -0
  32. package/dist/output/daliurenTextRenderer.js +109 -0
  33. package/dist/output/daliurenTextRenderer.js.map +1 -0
  34. package/dist/output/liuyaoTextRenderer.d.ts +12 -0
  35. package/dist/output/liuyaoTextRenderer.d.ts.map +1 -0
  36. package/dist/output/liuyaoTextRenderer.js +148 -0
  37. package/dist/output/liuyaoTextRenderer.js.map +1 -0
  38. package/dist/output/meihuaTextRenderer.d.ts +12 -0
  39. package/dist/output/meihuaTextRenderer.d.ts.map +1 -0
  40. package/dist/output/meihuaTextRenderer.js +53 -0
  41. package/dist/output/meihuaTextRenderer.js.map +1 -0
  42. package/dist/output/qimenTextRenderer.d.ts +40 -0
  43. package/dist/output/qimenTextRenderer.d.ts.map +1 -0
  44. package/dist/output/qimenTextRenderer.js +363 -0
  45. package/dist/output/qimenTextRenderer.js.map +1 -0
  46. package/dist/services/bazi/types.d.ts +0 -2
  47. package/dist/services/bazi/types.d.ts.map +1 -1
  48. package/dist/services/bazi/types.js.map +1 -1
  49. package/dist/services/daliuren/DaliurenService.d.ts +24 -0
  50. package/dist/services/daliuren/DaliurenService.d.ts.map +1 -0
  51. package/dist/services/daliuren/DaliurenService.js +67 -0
  52. package/dist/services/daliuren/DaliurenService.js.map +1 -0
  53. package/dist/services/daliuren/calculators/SanChuanCalculator.d.ts +87 -0
  54. package/dist/services/daliuren/calculators/SanChuanCalculator.d.ts.map +1 -0
  55. package/dist/services/daliuren/calculators/SanChuanCalculator.js +443 -0
  56. package/dist/services/daliuren/calculators/SanChuanCalculator.js.map +1 -0
  57. package/dist/services/daliuren/calculators/ShenShaCalculator.d.ts +33 -0
  58. package/dist/services/daliuren/calculators/ShenShaCalculator.d.ts.map +1 -0
  59. package/dist/services/daliuren/calculators/ShenShaCalculator.js +92 -0
  60. package/dist/services/daliuren/calculators/ShenShaCalculator.js.map +1 -0
  61. package/dist/services/daliuren/calculators/SiKeCalculator.d.ts +35 -0
  62. package/dist/services/daliuren/calculators/SiKeCalculator.d.ts.map +1 -0
  63. package/dist/services/daliuren/calculators/SiKeCalculator.js +121 -0
  64. package/dist/services/daliuren/calculators/SiKeCalculator.js.map +1 -0
  65. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts +41 -0
  66. package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts.map +1 -0
  67. package/dist/services/daliuren/calculators/TianDiPanCalculator.js +138 -0
  68. package/dist/services/daliuren/calculators/TianDiPanCalculator.js.map +1 -0
  69. package/dist/services/daliuren/data/constants.d.ts +62 -0
  70. package/dist/services/daliuren/data/constants.d.ts.map +1 -0
  71. package/dist/services/daliuren/data/constants.js +240 -0
  72. package/dist/services/daliuren/data/constants.js.map +1 -0
  73. package/dist/services/daliuren/index.d.ts +11 -0
  74. package/dist/services/daliuren/index.d.ts.map +1 -0
  75. package/dist/services/daliuren/index.js +33 -0
  76. package/dist/services/daliuren/index.js.map +1 -0
  77. package/dist/services/daliuren/types.d.ts +152 -0
  78. package/dist/services/daliuren/types.d.ts.map +1 -0
  79. package/dist/services/daliuren/types.js +17 -0
  80. package/dist/services/daliuren/types.js.map +1 -0
  81. package/dist/services/liuyao/LiuyaoService.d.ts +37 -0
  82. package/dist/services/liuyao/LiuyaoService.d.ts.map +1 -0
  83. package/dist/services/liuyao/LiuyaoService.js +214 -0
  84. package/dist/services/liuyao/LiuyaoService.js.map +1 -0
  85. package/dist/services/liuyao/calculators/FushenCalculator.d.ts +40 -0
  86. package/dist/services/liuyao/calculators/FushenCalculator.d.ts.map +1 -0
  87. package/dist/services/liuyao/calculators/FushenCalculator.js +124 -0
  88. package/dist/services/liuyao/calculators/FushenCalculator.js.map +1 -0
  89. package/dist/services/liuyao/calculators/JintuishenCalculator.d.ts +37 -0
  90. package/dist/services/liuyao/calculators/JintuishenCalculator.d.ts.map +1 -0
  91. package/dist/services/liuyao/calculators/JintuishenCalculator.js +86 -0
  92. package/dist/services/liuyao/calculators/JintuishenCalculator.js.map +1 -0
  93. package/dist/services/liuyao/calculators/LiuqinCalculator.d.ts +24 -0
  94. package/dist/services/liuyao/calculators/LiuqinCalculator.d.ts.map +1 -0
  95. package/dist/services/liuyao/calculators/LiuqinCalculator.js +75 -0
  96. package/dist/services/liuyao/calculators/LiuqinCalculator.js.map +1 -0
  97. package/dist/services/liuyao/calculators/LiushenCalculator.d.ts +29 -0
  98. package/dist/services/liuyao/calculators/LiushenCalculator.d.ts.map +1 -0
  99. package/dist/services/liuyao/calculators/LiushenCalculator.js +58 -0
  100. package/dist/services/liuyao/calculators/LiushenCalculator.js.map +1 -0
  101. package/dist/services/liuyao/calculators/NajiaCalculator.d.ts +55 -0
  102. package/dist/services/liuyao/calculators/NajiaCalculator.d.ts.map +1 -0
  103. package/dist/services/liuyao/calculators/NajiaCalculator.js +87 -0
  104. package/dist/services/liuyao/calculators/NajiaCalculator.js.map +1 -0
  105. package/dist/services/liuyao/calculators/WangshuaiCalculator.d.ts +43 -0
  106. package/dist/services/liuyao/calculators/WangshuaiCalculator.d.ts.map +1 -0
  107. package/dist/services/liuyao/calculators/WangshuaiCalculator.js +100 -0
  108. package/dist/services/liuyao/calculators/WangshuaiCalculator.js.map +1 -0
  109. package/dist/services/liuyao/calculators/XunkongCalculator.d.ts +30 -0
  110. package/dist/services/liuyao/calculators/XunkongCalculator.d.ts.map +1 -0
  111. package/dist/services/liuyao/calculators/XunkongCalculator.js +58 -0
  112. package/dist/services/liuyao/calculators/XunkongCalculator.js.map +1 -0
  113. package/dist/services/liuyao/data/guagong.d.ts +94 -0
  114. package/dist/services/liuyao/data/guagong.d.ts.map +1 -0
  115. package/dist/services/liuyao/data/guagong.js +317 -0
  116. package/dist/services/liuyao/data/guagong.js.map +1 -0
  117. package/dist/services/liuyao/index.d.ts +13 -0
  118. package/dist/services/liuyao/index.d.ts.map +1 -0
  119. package/dist/services/liuyao/index.js +29 -0
  120. package/dist/services/liuyao/index.js.map +1 -0
  121. package/dist/services/liuyao/types.d.ts +154 -0
  122. package/dist/services/liuyao/types.d.ts.map +1 -0
  123. package/dist/services/liuyao/types.js +11 -0
  124. package/dist/services/liuyao/types.js.map +1 -0
  125. package/dist/services/meihua/MeihuaService.d.ts +32 -0
  126. package/dist/services/meihua/MeihuaService.d.ts.map +1 -0
  127. package/dist/services/meihua/MeihuaService.js +176 -0
  128. package/dist/services/meihua/MeihuaService.js.map +1 -0
  129. package/dist/services/meihua/calculators/BianguaCalculator.d.ts +21 -0
  130. package/dist/services/meihua/calculators/BianguaCalculator.d.ts.map +1 -0
  131. package/dist/services/meihua/calculators/BianguaCalculator.js +46 -0
  132. package/dist/services/meihua/calculators/BianguaCalculator.js.map +1 -0
  133. package/dist/services/meihua/calculators/HuguaCalculator.d.ts +22 -0
  134. package/dist/services/meihua/calculators/HuguaCalculator.d.ts.map +1 -0
  135. package/dist/services/meihua/calculators/HuguaCalculator.js +46 -0
  136. package/dist/services/meihua/calculators/HuguaCalculator.js.map +1 -0
  137. package/dist/services/meihua/calculators/QiguaCalculator.d.ts +40 -0
  138. package/dist/services/meihua/calculators/QiguaCalculator.d.ts.map +1 -0
  139. package/dist/services/meihua/calculators/QiguaCalculator.js +105 -0
  140. package/dist/services/meihua/calculators/QiguaCalculator.js.map +1 -0
  141. package/dist/services/meihua/calculators/TiyongCalculator.d.ts +34 -0
  142. package/dist/services/meihua/calculators/TiyongCalculator.d.ts.map +1 -0
  143. package/dist/services/meihua/calculators/TiyongCalculator.js +105 -0
  144. package/dist/services/meihua/calculators/TiyongCalculator.js.map +1 -0
  145. package/dist/services/meihua/data/bagua.d.ts +19 -0
  146. package/dist/services/meihua/data/bagua.d.ts.map +1 -0
  147. package/dist/services/meihua/data/bagua.js +81 -0
  148. package/dist/services/meihua/data/bagua.js.map +1 -0
  149. package/dist/services/meihua/index.d.ts +11 -0
  150. package/dist/services/meihua/index.d.ts.map +1 -0
  151. package/dist/services/meihua/index.js +27 -0
  152. package/dist/services/meihua/index.js.map +1 -0
  153. package/dist/services/meihua/types.d.ts +95 -0
  154. package/dist/services/meihua/types.d.ts.map +1 -0
  155. package/dist/services/meihua/types.js +6 -0
  156. package/dist/services/meihua/types.js.map +1 -0
  157. package/dist/services/qimen/QimenService.d.ts +93 -0
  158. package/dist/services/qimen/QimenService.d.ts.map +1 -0
  159. package/dist/services/qimen/QimenService.js +427 -0
  160. package/dist/services/qimen/QimenService.js.map +1 -0
  161. package/dist/services/qimen/calculators/BaMenCalculator.d.ts +53 -0
  162. package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -0
  163. package/dist/services/qimen/calculators/BaMenCalculator.js +105 -0
  164. package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -0
  165. package/dist/services/qimen/calculators/BaShenCalculator.d.ts +34 -0
  166. package/dist/services/qimen/calculators/BaShenCalculator.d.ts.map +1 -0
  167. package/dist/services/qimen/calculators/BaShenCalculator.js +57 -0
  168. package/dist/services/qimen/calculators/BaShenCalculator.js.map +1 -0
  169. package/dist/services/qimen/calculators/GeJuCalculator.d.ts +141 -0
  170. package/dist/services/qimen/calculators/GeJuCalculator.d.ts.map +1 -0
  171. package/dist/services/qimen/calculators/GeJuCalculator.js +711 -0
  172. package/dist/services/qimen/calculators/GeJuCalculator.js.map +1 -0
  173. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +56 -0
  174. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -0
  175. package/dist/services/qimen/calculators/JiuGongCalculator.js +98 -0
  176. package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -0
  177. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +54 -0
  178. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -0
  179. package/dist/services/qimen/calculators/JiuXingCalculator.js +117 -0
  180. package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -0
  181. package/dist/services/qimen/calculators/JuShuCalculator.d.ts +57 -0
  182. package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -0
  183. package/dist/services/qimen/calculators/JuShuCalculator.js +115 -0
  184. package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -0
  185. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +117 -0
  186. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -0
  187. package/dist/services/qimen/calculators/PanTypeCalculator.js +237 -0
  188. package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -0
  189. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +50 -0
  190. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -0
  191. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +86 -0
  192. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -0
  193. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts +80 -0
  194. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts.map +1 -0
  195. package/dist/services/qimen/calculators/ShenShaCalculator.js +300 -0
  196. package/dist/services/qimen/calculators/ShenShaCalculator.js.map +1 -0
  197. package/dist/services/qimen/calculators/YongShenCalculator.d.ts +78 -0
  198. package/dist/services/qimen/calculators/YongShenCalculator.d.ts.map +1 -0
  199. package/dist/services/qimen/calculators/YongShenCalculator.js +497 -0
  200. package/dist/services/qimen/calculators/YongShenCalculator.js.map +1 -0
  201. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts +78 -0
  202. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts.map +1 -0
  203. package/dist/services/qimen/calculators/ZeRiCalculator.js +431 -0
  204. package/dist/services/qimen/calculators/ZeRiCalculator.js.map +1 -0
  205. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +118 -0
  206. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -0
  207. package/dist/services/qimen/calculators/ZhuanPanCalculator.js +260 -0
  208. package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -0
  209. package/dist/services/qimen/data/constants.d.ts +105 -0
  210. package/dist/services/qimen/data/constants.d.ts.map +1 -0
  211. package/dist/services/qimen/data/constants.js +295 -0
  212. package/dist/services/qimen/data/constants.js.map +1 -0
  213. package/dist/services/qimen/data/shensha-rules.d.ts +177 -0
  214. package/dist/services/qimen/data/shensha-rules.d.ts.map +1 -0
  215. package/dist/services/qimen/data/shensha-rules.js +397 -0
  216. package/dist/services/qimen/data/shensha-rules.js.map +1 -0
  217. package/dist/services/qimen/data/yongshen-rules.d.ts +115 -0
  218. package/dist/services/qimen/data/yongshen-rules.d.ts.map +1 -0
  219. package/dist/services/qimen/data/yongshen-rules.js +365 -0
  220. package/dist/services/qimen/data/yongshen-rules.js.map +1 -0
  221. package/dist/services/qimen/index.d.ts +20 -0
  222. package/dist/services/qimen/index.d.ts.map +1 -0
  223. package/dist/services/qimen/index.js +43 -0
  224. package/dist/services/qimen/index.js.map +1 -0
  225. package/dist/services/qimen/types.d.ts +390 -0
  226. package/dist/services/qimen/types.d.ts.map +1 -0
  227. package/dist/services/qimen/types.js +20 -0
  228. package/dist/services/qimen/types.js.map +1 -0
  229. package/dist/services/qimen/utils/gongUtils.d.ts +80 -0
  230. package/dist/services/qimen/utils/gongUtils.d.ts.map +1 -0
  231. package/dist/services/qimen/utils/gongUtils.js +164 -0
  232. package/dist/services/qimen/utils/gongUtils.js.map +1 -0
  233. package/dist/shared/types.d.ts +0 -1
  234. package/dist/shared/types.d.ts.map +1 -1
  235. package/dist/utils/timeNormalization.d.ts +48 -0
  236. package/dist/utils/timeNormalization.d.ts.map +1 -0
  237. package/dist/utils/timeNormalization.js +69 -0
  238. package/dist/utils/timeNormalization.js.map +1 -0
  239. package/package.json +1 -1
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /**
3
+ * 神煞計算器
4
+ *
5
+ * 計算大六壬中的各種神煞
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ShenShaCalculator = void 0;
9
+ const constants_1 = require("../data/constants");
10
+ class ShenShaCalculator {
11
+ /**
12
+ * 計算神煞
13
+ */
14
+ static calculate(dayGanZhi) {
15
+ const dayZhi = dayGanZhi[1];
16
+ return {
17
+ riMa: this.getRiMa(dayZhi),
18
+ yueMa: this.getYueMa(dayZhi),
19
+ dingMa: this.getDingMa(dayGanZhi),
20
+ huaGai: this.getHuaGai(dayZhi),
21
+ shanDian: this.getShanDian(dayZhi),
22
+ };
23
+ }
24
+ /**
25
+ * 日馬
26
+ */
27
+ static getRiMa(dayZhi) {
28
+ return constants_1.RI_MA[dayZhi];
29
+ }
30
+ /**
31
+ * 月馬
32
+ */
33
+ static getYueMa(dayZhi) {
34
+ // 根據日支所屬三合局確定月馬
35
+ const sanHeMap = {
36
+ '寅申': ['寅', '申'],
37
+ '卯酉': ['卯', '酉'],
38
+ '辰戌': ['辰', '戌'],
39
+ '巳亥': ['巳', '亥'],
40
+ '午子': ['午', '子'],
41
+ '丑未': ['丑', '未'],
42
+ };
43
+ for (const [key, zhis] of Object.entries(sanHeMap)) {
44
+ if (zhis.includes(dayZhi)) {
45
+ return constants_1.YUE_MA_MAP[key];
46
+ }
47
+ }
48
+ return '寅'; // 默認
49
+ }
50
+ /**
51
+ * 丁馬(根據旬首)
52
+ */
53
+ static getDingMa(dayGanZhi) {
54
+ // 找到日干支所在的旬
55
+ const dayIndex = constants_1.JIA_ZI_60.indexOf(dayGanZhi);
56
+ const xunStart = Math.floor(dayIndex / 10) * 10;
57
+ // 丁馬對應表
58
+ const dingMaMap = {
59
+ 0: '卯', // 甲子旬
60
+ 10: '丑', // 甲戌旬
61
+ 20: '亥', // 甲申旬
62
+ 30: '酉', // 甲午旬
63
+ 40: '未', // 甲辰旬
64
+ 50: '巳', // 甲寅旬
65
+ };
66
+ return dingMaMap[xunStart] || '卯';
67
+ }
68
+ /**
69
+ * 華蓋
70
+ */
71
+ static getHuaGai(dayZhi) {
72
+ const huaGaiMap = {
73
+ '子': '戌', '丑': '丑', '寅': '戌', '卯': '未',
74
+ '辰': '戌', '巳': '丑', '午': '戌', '未': '未',
75
+ '申': '戌', '酉': '丑', '戌': '戌', '亥': '未',
76
+ };
77
+ return huaGaiMap[dayZhi];
78
+ }
79
+ /**
80
+ * 閃電
81
+ */
82
+ static getShanDian(dayZhi) {
83
+ const shanDianMap = {
84
+ '子': '辰', '丑': '辰', '寅': '未', '卯': '未',
85
+ '辰': '戌', '巳': '戌', '午': '丑', '未': '丑',
86
+ '申': '寅', '酉': '寅', '戌': '卯', '亥': '卯',
87
+ };
88
+ return shanDianMap[dayZhi];
89
+ }
90
+ }
91
+ exports.ShenShaCalculator = ShenShaCalculator;
92
+ //# sourceMappingURL=ShenShaCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShenShaCalculator.js","sourceRoot":"","sources":["../../../../src/services/daliuren/calculators/ShenShaCalculator.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,iDAAmF;AAEnF,MAAa,iBAAiB;IAC5B;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAiB;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAU,CAAC;QAErC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;SACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,OAAO,CAAC,MAAa;QAClC,OAAO,iBAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,QAAQ,CAAC,MAAa;QACnC,gBAAgB;QAChB,MAAM,QAAQ,GAA4B;YACxC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YAChB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YAChB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YAChB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YAChB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YAChB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;SACjB,CAAC;QAEF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,sBAAU,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,CAAE,KAAK;IACpB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,SAAS,CAAC,SAAiB;QACxC,YAAY;QACZ,MAAM,QAAQ,GAAG,qBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAEhD,QAAQ;QACR,MAAM,SAAS,GAA0B;YACvC,CAAC,EAAE,GAAG,EAAI,MAAM;YAChB,EAAE,EAAE,GAAG,EAAG,MAAM;YAChB,EAAE,EAAE,GAAG,EAAG,MAAM;YAChB,EAAE,EAAE,GAAG,EAAG,MAAM;YAChB,EAAE,EAAE,GAAG,EAAG,MAAM;YAChB,EAAE,EAAE,GAAG,EAAG,MAAM;SACjB,CAAC;QAEF,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,SAAS,CAAC,MAAa;QACpC,MAAM,SAAS,GAAyB;YACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;SACvC,CAAC;QACF,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW,CAAC,MAAa;QACtC,MAAM,WAAW,GAAyB;YACxC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;SACvC,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF;AA1FD,8CA0FC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 四課計算器
3
+ *
4
+ * 四課由日干支推演:
5
+ * - 一課:日干上神(日干寄宮的天盤地支)加日干
6
+ * - 二課:一課上神的天盤地支加一課上神
7
+ * - 三課:日支上神(日支的天盤地支)加日支
8
+ * - 四課:三課上神的天盤地支加三課上神
9
+ */
10
+ import type { DiZhi, TianGan, SiKeInfo, TianDiPan } from '../types';
11
+ export declare class SiKeCalculator {
12
+ /**
13
+ * 計算四課
14
+ */
15
+ static calculate(dayGan: TianGan, dayZhi: DiZhi, tianDiPan: TianDiPan): SiKeInfo;
16
+ /**
17
+ * 構建單個課
18
+ */
19
+ private static buildSiKe;
20
+ /**
21
+ * 計算上下神關係
22
+ */
23
+ private static calculateRelation;
24
+ /**
25
+ * 分析四課關係統計
26
+ */
27
+ static analyzeRelations(siKe: SiKeInfo): {
28
+ shangKeXia: number;
29
+ xiaZeiShang: number;
30
+ biHe: number;
31
+ shangShengXia: number;
32
+ xiaShengShang: number;
33
+ };
34
+ }
35
+ //# sourceMappingURL=SiKeCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiKeCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/daliuren/calculators/SiKeCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAwB,QAAQ,EAAE,SAAS,EAAU,MAAM,UAAU,CAAC;AAQlG,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,SAAS,GACnB,QAAQ;IA8BX;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAkBxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAmChC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG;QACvC,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB;CA+BF"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ /**
3
+ * 四課計算器
4
+ *
5
+ * 四課由日干支推演:
6
+ * - 一課:日干上神(日干寄宮的天盤地支)加日干
7
+ * - 二課:一課上神的天盤地支加一課上神
8
+ * - 三課:日支上神(日支的天盤地支)加日支
9
+ * - 四課:三課上神的天盤地支加三課上神
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SiKeCalculator = void 0;
13
+ const constants_1 = require("../data/constants");
14
+ class SiKeCalculator {
15
+ /**
16
+ * 計算四課
17
+ */
18
+ static calculate(dayGan, dayZhi, tianDiPan) {
19
+ const { diToTian, diToJiang } = tianDiPan;
20
+ // 日干寄宮
21
+ const dayGanJiGong = constants_1.GAN_JI_GONG[dayGan];
22
+ // 一課:日干上神加日干
23
+ const yiKeShang = diToTian[dayGanJiGong];
24
+ const yiKe = this.buildSiKe(1, yiKeShang, dayGan, diToJiang[dayGanJiGong]);
25
+ // 二課:一課上神的天盤地支加一課上神
26
+ const erKeShang = diToTian[yiKeShang];
27
+ const erKe = this.buildSiKe(2, erKeShang, yiKeShang, diToJiang[yiKeShang]);
28
+ // 三課:日支上神加日支
29
+ const sanKeShang = diToTian[dayZhi];
30
+ const sanKe = this.buildSiKe(3, sanKeShang, dayZhi, diToJiang[dayZhi]);
31
+ // 四課:三課上神的天盤地支加三課上神
32
+ const siKeShang = diToTian[sanKeShang];
33
+ const siKe = this.buildSiKe(4, siKeShang, sanKeShang, diToJiang[sanKeShang]);
34
+ return {
35
+ list: [yiKe, erKe, sanKe, siKe],
36
+ dayGan,
37
+ dayZhi,
38
+ dayGanJiGong,
39
+ };
40
+ }
41
+ /**
42
+ * 構建單個課
43
+ */
44
+ static buildSiKe(position, shangShen, xiaShen, tianJiang) {
45
+ // 計算上下關係
46
+ const relation = this.calculateRelation(shangShen, xiaShen);
47
+ return {
48
+ position,
49
+ shangShen,
50
+ xiaShen,
51
+ tianJiang,
52
+ relation,
53
+ };
54
+ }
55
+ /**
56
+ * 計算上下神關係
57
+ */
58
+ static calculateRelation(shangShen, xiaShen) {
59
+ // 獲取五行
60
+ const shangWuXing = constants_1.ZHI_WUXING[shangShen];
61
+ let xiaWuXing;
62
+ // 下神可能是天干(日干)或地支
63
+ if (xiaShen in constants_1.GAN_WUXING) {
64
+ xiaWuXing = constants_1.GAN_WUXING[xiaShen];
65
+ }
66
+ else {
67
+ xiaWuXing = constants_1.ZHI_WUXING[xiaShen];
68
+ }
69
+ // 查找關係
70
+ const relationKey = shangWuXing + xiaWuXing;
71
+ const relation = constants_1.WUXING_RELATION[relationKey];
72
+ switch (relation) {
73
+ case '尅':
74
+ return '上尅下';
75
+ case '被尅':
76
+ return '下賊上';
77
+ case '比和':
78
+ return '比和';
79
+ case '生':
80
+ return '上生下';
81
+ case '被生':
82
+ return '下生上';
83
+ default:
84
+ return '比和';
85
+ }
86
+ }
87
+ /**
88
+ * 分析四課關係統計
89
+ */
90
+ static analyzeRelations(siKe) {
91
+ const stats = {
92
+ shangKeXia: 0,
93
+ xiaZeiShang: 0,
94
+ biHe: 0,
95
+ shangShengXia: 0,
96
+ xiaShengShang: 0,
97
+ };
98
+ for (const ke of siKe.list) {
99
+ switch (ke.relation) {
100
+ case '上尅下':
101
+ stats.shangKeXia++;
102
+ break;
103
+ case '下賊上':
104
+ stats.xiaZeiShang++;
105
+ break;
106
+ case '比和':
107
+ stats.biHe++;
108
+ break;
109
+ case '上生下':
110
+ stats.shangShengXia++;
111
+ break;
112
+ case '下生上':
113
+ stats.xiaShengShang++;
114
+ break;
115
+ }
116
+ }
117
+ return stats;
118
+ }
119
+ }
120
+ exports.SiKeCalculator = SiKeCalculator;
121
+ //# sourceMappingURL=SiKeCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiKeCalculator.js","sourceRoot":"","sources":["../../../../src/services/daliuren/calculators/SiKeCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * 天地盤計算器
3
+ *
4
+ * 天地盤是大六壬的基礎,由月將加時辰起盤
5
+ *
6
+ * 算法:
7
+ * 1. 根據節氣確定月將
8
+ * 2. 月將加臨時辰,順布十二地支為天盤
9
+ * 3. 地盤固定為子丑寅卯辰巳午未申酉戌亥
10
+ * 4. 根據日干和晝夜確定貴人起點,順/逆布十二天將
11
+ */
12
+ import type { DiZhi, TianGan, TianDiPan } from '../types';
13
+ export declare class TianDiPanCalculator {
14
+ /**
15
+ * 計算天地盤
16
+ */
17
+ static calculate(jieqi: string, hourZhi: DiZhi, dayGan: TianGan): TianDiPan;
18
+ /**
19
+ * 根據節氣獲取月將
20
+ */
21
+ private static getYueJiang;
22
+ /**
23
+ * 計算天盤
24
+ * 月將加臨時辰,順布十二地支
25
+ */
26
+ private static calculateTianPan;
27
+ /**
28
+ * 計算天將排布
29
+ * 根據日干和晝夜確定貴人起點,然後順/逆布
30
+ */
31
+ private static calculateTianJiang;
32
+ /**
33
+ * 建立地支到天盤的映射
34
+ */
35
+ private static buildDiToTian;
36
+ /**
37
+ * 建立地支到天將的映射
38
+ */
39
+ private static buildDiToJiang;
40
+ }
41
+ //# sourceMappingURL=TianDiPanCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TianDiPanCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/daliuren/calculators/TianDiPanCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAkB,OAAO,EAAE,SAAS,EAAY,MAAM,UAAU,CAAC;AAUpF,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,OAAO,GACd,SAAS;IAgCZ;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAyB/B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuCjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAO9B"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ /**
3
+ * 天地盤計算器
4
+ *
5
+ * 天地盤是大六壬的基礎,由月將加時辰起盤
6
+ *
7
+ * 算法:
8
+ * 1. 根據節氣確定月將
9
+ * 2. 月將加臨時辰,順布十二地支為天盤
10
+ * 3. 地盤固定為子丑寅卯辰巳午未申酉戌亥
11
+ * 4. 根據日干和晝夜確定貴人起點,順/逆布十二天將
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.TianDiPanCalculator = void 0;
15
+ const constants_1 = require("../data/constants");
16
+ class TianDiPanCalculator {
17
+ /**
18
+ * 計算天地盤
19
+ */
20
+ static calculate(jieqi, hourZhi, dayGan) {
21
+ // 1. 確定月將
22
+ const yueJiang = this.getYueJiang(jieqi);
23
+ const yueJiangName = constants_1.YUE_JIANG_MAP[yueJiang];
24
+ // 2. 計算天盤(月將加臨時辰)
25
+ const tianPan = this.calculateTianPan(yueJiang, hourZhi);
26
+ // 3. 地盤固定
27
+ const diPan = [...constants_1.DI_ZHI];
28
+ // 4. 確定晝夜
29
+ const dayNight = constants_1.DAY_NIGHT_MAP[hourZhi];
30
+ // 5. 計算天將排布
31
+ const tianJiang = this.calculateTianJiang(dayGan, dayNight, tianPan);
32
+ // 6. 建立地支對應關係
33
+ const diToTian = this.buildDiToTian(diPan, tianPan);
34
+ const diToJiang = this.buildDiToJiang(diPan, tianJiang);
35
+ return {
36
+ tianPan,
37
+ diPan,
38
+ tianJiang,
39
+ yueJiang,
40
+ yueJiangName,
41
+ diToTian,
42
+ diToJiang,
43
+ };
44
+ }
45
+ /**
46
+ * 根據節氣獲取月將
47
+ */
48
+ static getYueJiang(jieqi) {
49
+ const yueJiang = constants_1.JIEQI_YUE_JIANG[jieqi];
50
+ if (!yueJiang) {
51
+ // 默認返回子(神後)
52
+ console.warn(`未知節氣: ${jieqi},使用默認月將`);
53
+ return '子';
54
+ }
55
+ return yueJiang;
56
+ }
57
+ /**
58
+ * 計算天盤
59
+ * 月將加臨時辰,順布十二地支
60
+ */
61
+ static calculateTianPan(yueJiang, hourZhi) {
62
+ // 找到時辰在地支中的位置
63
+ const hourIndex = constants_1.DI_ZHI.indexOf(hourZhi);
64
+ // 找到月將在地支中的位置
65
+ const yueJiangIndex = constants_1.DI_ZHI.indexOf(yueJiang);
66
+ // 天盤:從時辰位置開始,月將加臨
67
+ const tianPan = [];
68
+ for (let i = 0; i < 12; i++) {
69
+ // 從月將開始順布
70
+ const index = (yueJiangIndex + i) % 12;
71
+ tianPan.push(constants_1.DI_ZHI[index]);
72
+ }
73
+ // 重新排列:使天盤對應地盤從時辰開始
74
+ const result = [];
75
+ for (let i = 0; i < 12; i++) {
76
+ const diPanIndex = (hourIndex + i) % 12;
77
+ result[diPanIndex] = tianPan[i];
78
+ }
79
+ // 返回按地盤順序排列的天盤
80
+ return constants_1.DI_ZHI.map((_, i) => result[i]);
81
+ }
82
+ /**
83
+ * 計算天將排布
84
+ * 根據日干和晝夜確定貴人起點,然後順/逆布
85
+ */
86
+ static calculateTianJiang(dayGan, dayNight, tianPan) {
87
+ // 1. 確定貴人起點
88
+ const guirenConfig = constants_1.GUIREN_START[dayGan];
89
+ const guirenStart = dayNight === '晝' ? guirenConfig.day : guirenConfig.night;
90
+ // 2. 找到貴人在天盤中的位置(貴人臨地盤某支)
91
+ const guirenTianPanZhi = tianPan[constants_1.DI_ZHI.indexOf(guirenStart)];
92
+ // 3. 確定順逆
93
+ // 貴人在巳午未申酉戌(陽位)則逆布,在亥子丑寅卯辰(陰位)則順布
94
+ const yangPositions = ['巳', '午', '未', '申', '酉', '戌'];
95
+ const isReverse = yangPositions.includes(guirenTianPanZhi);
96
+ // 4. 排布天將
97
+ const tianJiang = new Array(12);
98
+ const guirenIndex = constants_1.DI_ZHI.indexOf(guirenStart);
99
+ if (isReverse) {
100
+ // 逆布
101
+ const reversedJiang = ['貴', '后', '陰', '玄', '常', '虎', '空', '龍', '勾', '合', '雀', '蛇'];
102
+ for (let i = 0; i < 12; i++) {
103
+ const targetIndex = (guirenIndex + i) % 12;
104
+ tianJiang[targetIndex] = reversedJiang[i];
105
+ }
106
+ }
107
+ else {
108
+ // 順布
109
+ for (let i = 0; i < 12; i++) {
110
+ const targetIndex = (guirenIndex + i) % 12;
111
+ tianJiang[targetIndex] = constants_1.TIAN_JIANG[i];
112
+ }
113
+ }
114
+ return tianJiang;
115
+ }
116
+ /**
117
+ * 建立地支到天盤的映射
118
+ */
119
+ static buildDiToTian(diPan, tianPan) {
120
+ const result = {};
121
+ for (let i = 0; i < 12; i++) {
122
+ result[diPan[i]] = tianPan[i];
123
+ }
124
+ return result;
125
+ }
126
+ /**
127
+ * 建立地支到天將的映射
128
+ */
129
+ static buildDiToJiang(diPan, tianJiang) {
130
+ const result = {};
131
+ for (let i = 0; i < 12; i++) {
132
+ result[diPan[i]] = tianJiang[i];
133
+ }
134
+ return result;
135
+ }
136
+ }
137
+ exports.TianDiPanCalculator = TianDiPanCalculator;
138
+ //# sourceMappingURL=TianDiPanCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TianDiPanCalculator.js","sourceRoot":"","sources":["../../../../src/services/daliuren/calculators/TianDiPanCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * 大六壬常量數據
3
+ *
4
+ * 參考來源:
5
+ * - kentang2017/kinliuren (MIT License)
6
+ * - 《大六壬大全》
7
+ * - 《六壬粹言》
8
+ */
9
+ import type { TianGan, DiZhi, TianJiangShort, YueJiang, WuXing } from '../types';
10
+ /** 十天干 */
11
+ export declare const TIAN_GAN: TianGan[];
12
+ /** 十二地支 */
13
+ export declare const DI_ZHI: DiZhi[];
14
+ /** 十二天將(順序) */
15
+ export declare const TIAN_JIANG: TianJiangShort[];
16
+ /** 十二天將全稱 */
17
+ export declare const TIAN_JIANG_FULL: Record<TianJiangShort, string>;
18
+ /** 月將名稱對應地支 */
19
+ export declare const YUE_JIANG_MAP: Record<DiZhi, YueJiang>;
20
+ /** 天干五行 */
21
+ export declare const GAN_WUXING: Record<TianGan, WuXing>;
22
+ /** 地支五行 */
23
+ export declare const ZHI_WUXING: Record<DiZhi, WuXing>;
24
+ /** 五行生剋關係 */
25
+ export declare const WUXING_RELATION: Record<string, string>;
26
+ /** 六親對應 */
27
+ export declare const LIUQIN_MAP: Record<string, string>;
28
+ /** 日干寄宮(天干寄於地支) */
29
+ export declare const GAN_JI_GONG: Record<TianGan, DiZhi>;
30
+ /** 節氣對應月將 */
31
+ export declare const JIEQI_YUE_JIANG: Record<string, DiZhi>;
32
+ /**
33
+ * 貴人起點(晝夜)
34
+ * 甲戊庚牛羊,乙己鼠猴鄉,丙丁豬雞位,壬癸蛇兔藏,六辛逢馬虎
35
+ */
36
+ export declare const GUIREN_START: Record<string, {
37
+ day: DiZhi;
38
+ night: DiZhi;
39
+ }>;
40
+ /** 晝夜判斷(時辰) */
41
+ export declare const DAY_NIGHT_MAP: Record<DiZhi, '晝' | '夜'>;
42
+ /** 六甲旬空 */
43
+ export declare const XUN_KONG: Record<string, [DiZhi, DiZhi]>;
44
+ /** 六十甲子 */
45
+ export declare const JIA_ZI_60: string[];
46
+ /** 地支相沖 */
47
+ export declare const ZHI_CHONG: Record<DiZhi, DiZhi>;
48
+ /** 地支相刑 */
49
+ export declare const ZHI_XING: Record<DiZhi, DiZhi>;
50
+ /** 地支六合 */
51
+ export declare const ZHI_HE: Record<DiZhi, DiZhi>;
52
+ /** 地支相害 */
53
+ export declare const ZHI_HAI: Record<DiZhi, DiZhi>;
54
+ /** 日馬(根據日支) */
55
+ export declare const RI_MA: Record<DiZhi, DiZhi>;
56
+ /** 月馬(根據日支) */
57
+ export declare const YUE_MA_MAP: Record<string, DiZhi>;
58
+ /** 八專日干支 */
59
+ export declare const BA_ZHUAN_DAYS: string[];
60
+ /** 日干支同位 */
61
+ export declare const GAN_ZHI_SAME_POSITION: string[];
62
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/services/daliuren/data/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMjF,UAAU;AACV,eAAO,MAAM,QAAQ,EAAE,OAAO,EAAuD,CAAC;AAEtF,WAAW;AACX,eAAO,MAAM,MAAM,EAAE,KAAK,EAAiE,CAAC;AAE5F,eAAe;AACf,eAAO,MAAM,UAAU,EAAE,cAAc,EAAiE,CAAC;AAEzG,aAAa;AACb,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAa1D,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAajD,CAAC;AAMF,WAAW;AACX,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAM9C,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAO5C,CAAC;AAEF,aAAa;AACb,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWlD,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM7C,CAAC;AAMF,mBAAmB;AACnB,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAW9C,CAAC;AAMF,aAAa;AACb,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAyBjD,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAWrE,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAGlD,CAAC;AAMF,WAAW;AACX,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAOnD,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,SAAS,EAAE,MAAM,EAM1B,CAAC;AAML,WAAW;AACX,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAO1C,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAKzC,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAOvC,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAOxC,CAAC;AAMF,eAAe;AACf,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAItC,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAG5C,CAAC;AAMF,YAAY;AACZ,eAAO,MAAM,aAAa,UAAmD,CAAC;AAE9E,YAAY;AACZ,eAAO,MAAM,qBAAqB,UAAiC,CAAC"}