st-comp 0.0.247 → 0.0.249

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 (170) hide show
  1. package/components.d.ts +1 -0
  2. package/es/ChartLayout.js +4 -4
  3. package/es/CustomFunction.cjs +2 -2
  4. package/es/CustomFunction.js +72 -70
  5. package/es/FactorWarning.cjs +1 -1
  6. package/es/FactorWarning.js +36 -35
  7. package/es/Kline.cjs +1 -1
  8. package/es/Kline.js +20 -19
  9. package/es/KlineBasic.cjs +1 -1
  10. package/es/KlineBasic.js +30 -28
  11. package/es/KlineConfig.cjs +1 -1
  12. package/es/KlineConfig.js +50 -49
  13. package/es/KlineNew.cjs +1 -1
  14. package/es/KlineNew.js +19 -18
  15. package/es/KlinePlus.cjs +4 -4
  16. package/es/KlinePlus.js +590 -575
  17. package/es/MonacoEditor.cjs +1 -1
  18. package/es/MonacoEditor.js +28 -26
  19. package/es/Pagination.cjs +1 -1
  20. package/es/Pagination.js +77 -76
  21. package/es/PasswordPrompt.cjs +1 -1
  22. package/es/PasswordPrompt.js +3 -3
  23. package/es/Table.cjs +1 -1
  24. package/es/Table.js +38 -37
  25. package/es/User.cjs +1 -1
  26. package/es/User.js +143 -141
  27. package/es/VarSelectDialog.cjs +2 -2
  28. package/es/VarSelectDialog.js +29 -27
  29. package/es/VarietyAiHelper.cjs +4 -0
  30. package/es/VarietyAiHelper.js +270 -0
  31. package/es/VarietyAutoComplete.cjs +1 -1
  32. package/es/VarietyAutoComplete.js +13 -12
  33. package/es/VarietySearch.cjs +10 -10
  34. package/es/VarietySearch.js +70 -68
  35. package/es/{VarietySelect-2fd501da.cjs → VarietySelect-5c845562.cjs} +1 -1
  36. package/es/{VarietySelect-5a9dd50b.js → VarietySelect-9f267958.js} +4 -4
  37. package/es/VarietyTextCopy.cjs +1 -1
  38. package/es/VarietyTextCopy.js +24 -22
  39. package/es/VirtualTable.cjs +1 -1
  40. package/es/VirtualTable.js +70 -70
  41. package/es/{_initCloneObject-3823a101.cjs → _initCloneObject-2b82e9f7.cjs} +1 -1
  42. package/es/{_initCloneObject-c34c65bc.js → _initCloneObject-69c8ae23.js} +3 -3
  43. package/es/aiTools.js +36 -0
  44. package/es/{base-a5af3db3.js → base-29f73b05.js} +2 -2
  45. package/es/{castArray-7741a212.js → castArray-609a313e.js} +1 -1
  46. package/es/{config-provider-2182708a.cjs → config-provider-2ae47cc8.cjs} +1 -1
  47. package/es/{config-provider-06a63185.js → config-provider-7860903c.js} +4 -4
  48. package/es/{debounce-8d53f4dd.js → debounce-a09ce9a3.js} +1 -1
  49. package/es/{dropdown-302f71e7.js → dropdown-497442b7.js} +20 -19
  50. package/es/dropdown-eba9eaf5.cjs +1 -0
  51. package/es/{el-autocomplete-ed75a659.js → el-autocomplete-27c60cc8.js} +18 -17
  52. package/es/el-autocomplete-b59eb529.cjs +1 -0
  53. package/es/{el-button-68baab7b.cjs → el-button-974ff9e9.cjs} +1 -1
  54. package/es/{el-button-d09ff85f.js → el-button-e2c63c08.js} +4 -4
  55. package/es/el-checkbox-08185353.cjs +1 -0
  56. package/es/{el-checkbox-64648e02.js → el-checkbox-71ebd862.js} +4 -4
  57. package/es/el-dialog-1b185570.cjs +1 -0
  58. package/es/{el-dialog-6a80e3d8.js → el-dialog-eedcfd3e.js} +6 -6
  59. package/es/{el-divider-4e059794.js → el-divider-523e5874.js} +1 -1
  60. package/es/{el-empty-33cb66f1.js → el-empty-f5a1607a.js} +3 -3
  61. package/es/{el-form-item-4eca95be.js → el-form-item-bdcfd297.js} +8 -8
  62. package/es/{el-form-item-4076e55f.cjs → el-form-item-c997b4fa.cjs} +1 -1
  63. package/es/{el-input-cae60510.js → el-input-d47281da.js} +68 -68
  64. package/es/el-input-fa18ef84.cjs +1 -0
  65. package/es/el-input-number-3d94fa58.cjs +1 -0
  66. package/es/{el-input-number-c2499410.js → el-input-number-c8018cb1.js} +15 -15
  67. package/es/{el-loading-c738468d.js → el-loading-0cd81d05.js} +2 -2
  68. package/es/{el-loading-05826e64.cjs → el-loading-969a79ca.cjs} +1 -1
  69. package/es/el-menu-item-26071fd6.cjs +1 -0
  70. package/es/{el-menu-item-f904f685.js → el-menu-item-dac65bb3.js} +18 -17
  71. package/es/el-message-0ea8fbf8.cjs +1 -0
  72. package/es/el-message-4ed993c7.js +1 -0
  73. package/es/el-message-box-31e0aa98.cjs +1 -0
  74. package/es/{el-message-box-05d8cf39.js → el-message-box-fea4fca8.js} +11 -11
  75. package/es/{el-overlay-cc9bc792.js → el-overlay-1ee0338d.js} +19 -19
  76. package/es/el-overlay-ea65cb05.cjs +1 -0
  77. package/es/{el-popconfirm-a6f66a0e.js → el-popconfirm-089b8bec.js} +21 -20
  78. package/es/el-popconfirm-9e232436.cjs +1 -0
  79. package/es/el-popper-2d3914e4.cjs +1 -0
  80. package/es/el-popper-c9b3d3cf.js +1662 -0
  81. package/es/el-segmented-140ac042.cjs +1 -0
  82. package/es/{el-segmented-51b1c797.js → el-segmented-9d3a9e11.js} +4 -4
  83. package/es/el-select-a11f33e8.cjs +1 -0
  84. package/es/{el-select-1b149fab.js → el-select-e51e11c1.js} +44 -43
  85. package/es/{el-table-column-3e30ebae.js → el-table-column-05d292a8.js} +25 -24
  86. package/es/el-table-column-98570a4d.cjs +14 -0
  87. package/es/{el-tag-0a25efdf.js → el-tag-17cd04a1.js} +13 -13
  88. package/es/el-tag-6d8e653e.cjs +1 -0
  89. package/es/{el-text-73d899ff.js → el-text-2710fff3.js} +2 -2
  90. package/es/{el-text-1470de46.cjs → el-text-a18106cb.cjs} +1 -1
  91. package/es/{index-42e59bf5.js → index-0ee486ad.js} +3 -3
  92. package/es/index-0f79095c.js +440 -0
  93. package/es/{index-6806997d.js → index-1d9b50de.js} +3 -3
  94. package/es/index-28e03bad.cjs +1 -0
  95. package/es/{index-269b22da.cjs → index-299ee017.cjs} +1 -1
  96. package/es/{index-cebc7160.cjs → index-33f80550.cjs} +1 -1
  97. package/es/{index-4f48940d.cjs → index-37b8d3c6.cjs} +1 -1
  98. package/es/{index-2375023e.cjs → index-5befc414.cjs} +4 -4
  99. package/es/{index-696b6a94.cjs → index-6b99def3.cjs} +1 -1
  100. package/es/index-6ca95c8a.cjs +1 -0
  101. package/es/index-7dce9f59.cjs +1 -0
  102. package/es/{index-960806da.js → index-8391a3df.js} +3 -3
  103. package/es/{index-ac98a4d8.js → index-8f9d0d17.js} +16 -15
  104. package/es/{index-94e43e0d.js → index-95e5d454.js} +3 -3
  105. package/es/{index-4194c942.js → index-b0117ba2.js} +2 -2
  106. package/es/{index-6e967429.js → index-bcd895a0.js} +3 -3
  107. package/es/{index-87b4bf61.js → index-c2b9bbfd.js} +95 -65
  108. package/es/{index-54d289d1.js → index-c71e37dc.js} +11 -11
  109. package/es/{index-d77a7336.js → index-de24705f.js} +1 -1
  110. package/es/index-e8eeea22.cjs +1 -0
  111. package/es/{index-ee977f79.cjs → index-eb99b188.cjs} +1 -1
  112. package/es/{el-message-0df23ae7.js → index-f30561d3.js} +17 -17
  113. package/es/{python-c67c8901.cjs → python-27ece6fa.cjs} +2 -2
  114. package/es/{python-a914569a.js → python-656db04f.js} +30 -28
  115. package/es/{raf-80ef0c0a.js → raf-744cf95a.js} +1 -1
  116. package/es/{scroll-679bd6bf.js → scroll-6799bafc.js} +1 -1
  117. package/es/style.css +1 -1
  118. package/es/{use-form-common-props-47e50c10.js → use-form-common-props-cb0ca65c.js} +41 -41
  119. package/es/{use-form-common-props-344056f9.cjs → use-form-common-props-d3ed62c6.cjs} +1 -1
  120. package/es/{use-global-config-cf78ebac.cjs → use-global-config-c80f33a4.cjs} +1 -1
  121. package/es/{use-global-config-f52caea0.js → use-global-config-cdaeca54.js} +4 -4
  122. package/es/{validator-3cad04b2.cjs → validator-07160325.cjs} +1 -1
  123. package/es/{validator-94c04152.js → validator-4ab9774f.js} +1 -1
  124. package/es/{vnode-5ddb7ed1.js → vnode-a83e6de8.js} +1 -1
  125. package/es/{zh-cn-aabfaa94.cjs → zh-cn-6a0f844c.cjs} +1 -1
  126. package/es/{zh-cn-4921961d.js → zh-cn-8a6390a4.js} +2 -2
  127. package/lib/aiTools.js +36 -0
  128. package/lib/bundle.js +1 -1
  129. package/lib/bundle.umd.cjs +188 -185
  130. package/lib/{index-750ede1b.js → index-6ac0579e.js} +20224 -19939
  131. package/lib/{python-e34a2958.js → python-0432340a.js} +1 -1
  132. package/lib/style.css +1 -1
  133. package/package.json +1 -1
  134. package/packages/KlinePlus/index.vue +88 -62
  135. package/packages/VarietyAiHelper/index.ts +8 -0
  136. package/packages/VarietyAiHelper/index.vue +430 -0
  137. package/packages/index.ts +2 -0
  138. package/public/aiTools.js +36 -0
  139. package/src/App.vue +21 -0
  140. package/src/pages/KlineNew/components/KlineAction/mockApi/index.js +1 -1
  141. package/src/pages/KlineNew/components/KlineBasic/utils.js +1 -1
  142. package/src/pages/KlineNew/components/KlineSlide/utils.js +1 -1
  143. package/src/pages/KlinePlus/KlineDialog/MultiCycle.vue +312 -0
  144. package/src/pages/KlinePlus/KlineDialog/api.js +108 -0
  145. package/src/pages/KlinePlus/KlineDialog/index.vue +582 -0
  146. package/src/pages/KlinePlus/KlineDialog/indicator.js +109 -0
  147. package/src/pages/KlinePlus/KlineDialog/tools.js +86 -0
  148. package/src/pages/KlinePlus/index.vue +23 -209
  149. package/src/pages/VarietyAiHelper/index.vue +20 -0
  150. package/src/pages/VarietySearch/index.vue +75 -51
  151. package/src/router/routes.ts +5 -0
  152. package/es/dropdown-89b74bc9.cjs +0 -1
  153. package/es/el-autocomplete-b9a3054a.cjs +0 -1
  154. package/es/el-checkbox-b982e2ef.cjs +0 -1
  155. package/es/el-dialog-ad7309e9.cjs +0 -1
  156. package/es/el-input-172c49f8.cjs +0 -1
  157. package/es/el-input-number-c2e71528.cjs +0 -1
  158. package/es/el-menu-item-7f986598.cjs +0 -1
  159. package/es/el-message-a86c0efa.cjs +0 -1
  160. package/es/el-message-box-40ff2af5.cjs +0 -1
  161. package/es/el-overlay-d7a6e4a9.cjs +0 -1
  162. package/es/el-popconfirm-737a015b.cjs +0 -1
  163. package/es/el-popper-7ba87e05.cjs +0 -1
  164. package/es/el-popper-a38874f4.js +0 -2094
  165. package/es/el-segmented-3fd66a0e.cjs +0 -1
  166. package/es/el-select-12f6deb7.cjs +0 -1
  167. package/es/el-table-column-516a0ed9.cjs +0 -14
  168. package/es/el-tag-789f05d3.cjs +0 -1
  169. package/es/index-8de94a49.cjs +0 -1
  170. package/es/index-c04f444f.cjs +0 -1
@@ -0,0 +1,86 @@
1
+ import dayjs from "dayjs";
2
+
3
+ // 数据源: 成交点类型
4
+ export const sellBuyOptions = [
5
+ { label: "买卖", value: 0 },
6
+ { label: "开平", value: 1 },
7
+ ];
8
+ // 数据源: 复权类型
9
+ export const rightTypeOptions = [
10
+ { label: "不复权", value: 0 },
11
+ { label: "前复权", value: 1 },
12
+ ];
13
+ // 数据源: 合约类型
14
+ export const klineTypeOptions = [
15
+ { value: 0, label: "主连" },
16
+ { value: 1, label: "加权" },
17
+ { value: 2, label: "收益率指数" },
18
+ ];
19
+
20
+ // 字典文案映射
21
+ export const formatLabel = (value, options) => {
22
+ return options.find((item) => item.value === value)?.label ?? "-";
23
+ };
24
+
25
+ // 前端估算K线根数的周期分布
26
+ const dayBarsNumByCycle = {
27
+ 1: 240, // 每天240根(4小时×60分钟)
28
+ 2: 48, // 每天48根(4小时×12根)
29
+ 3: 16, // 每天16根(4小时×4根)
30
+ 4: 8, // 每天8根(4小时×2根)
31
+ 5: 4, // 每天4根(4小时×1根)
32
+ 6: 1, // 每天1根
33
+ 7: 0.2, // 每周1根(按5个交易日算)
34
+ 8: 0.033, // 每月1根(按21个交易日算)
35
+ };
36
+ // 前端估算大致根数的K线时间
37
+ export const estimateKlineTime = (time, direction, num, cycle) => {
38
+ const dayBarsNum = dayBarsNumByCycle[cycle] || 1;
39
+ // 计算需要的大概天数
40
+ const daysNeeded = num / dayBarsNum;
41
+
42
+ let resultTime;
43
+ if (direction === "before") {
44
+ resultTime = dayjs(time).subtract(daysNeeded, "day");
45
+ } else {
46
+ resultTime = dayjs(time).add(daysNeeded, "day");
47
+ }
48
+
49
+ return resultTime.format("YYYY-MM-DD HH:mm:ss");
50
+ };
51
+ /**
52
+ * @description: 根据开始时间, 结束时间, 返回拓展K线根数+校验间隔后的时间范围
53
+ * @params
54
+ * {
55
+ * startTime 开始时间;
56
+ * endTime: 结束时间;
57
+ * cycle: 周期Id;
58
+ *
59
+ * type: 类型, 默认reset;
60
+ * num: 推算根数, 默认200;
61
+ * maxSpan: 一屏上限根数, 默认3000; 这里是因为前端估算忽略了交易日等因素, 所以在计算差值时, 根数的上限可以比常规的一屏上限数量大一些
62
+ * }
63
+ * @return [startTime, endTime]
64
+ */
65
+ export const getTimeRange = (rest) => {
66
+ const params = Object.assign({}, { type: "reset", num: 200, maxSpan: 3000 }, rest);
67
+ switch (params.type) {
68
+ case "week": {
69
+ return [dayjs().startOf("week").add(1, "day").format("YYYY-MM-DD HH:mm:ss"), dayjs().endOf("week").add(1, "day").format("YYYY-MM-DD HH:mm:ss")];
70
+ }
71
+ case "month": {
72
+ return [dayjs().startOf("month").format("YYYY-MM-DD HH:mm:ss"), dayjs().endOf("month").format("YYYY-MM-DD HH:mm:ss")];
73
+ }
74
+ case "reset": {
75
+ // 1. 推算根数后的时间范围
76
+ const startTime = estimateKlineTime(params.startTime, "before", params.num, params.cycle);
77
+ const endTime = estimateKlineTime(params.endTime, "after", params.num, params.cycle);
78
+ // 2. 进行N天间隔校验
79
+ const N = Math.ceil(params.maxSpan / dayBarsNumByCycle[params.cycle]);
80
+ const d1 = dayjs(startTime);
81
+ const d2 = dayjs(endTime);
82
+ const diff = d2.diff(d1, "day");
83
+ return [diff <= N ? startTime : dayjs(endTime).subtract(N, "day").format("YYYY-MM-DD HH:mm:ss"), endTime];
84
+ }
85
+ }
86
+ };
@@ -1,216 +1,30 @@
1
- <template>
2
- <div>
3
- <div style="display: flex; align-items: center; gap: 10px">
4
- <el-button @click="stKlineConfigRef?.open">打开K线自定义配置</el-button>
5
- <el-select
6
- v-model="sellBuy"
7
- style="width: 100px"
8
- >
9
- <el-option
10
- v-for="item in [
11
- { label: '买卖', value: 0 },
12
- { label: '开平', value: 1 },
13
- ]"
14
- :key="item.value"
15
- :value="item.value"
16
- :label="item.label"
17
- />
18
- </el-select>
19
- <el-select
20
- v-model="cycle"
21
- style="width: 100px"
22
- >
23
- <el-option
24
- v-for="item in cycleOptions"
25
- :key="item.value"
26
- :value="item.value"
27
- :label="item.label"
28
- />
29
- </el-select>
30
- </div>
31
- <div class="main">
32
- <template v-if="!loading">
33
- <st-klinePlus
34
- :varietyCode="varietyCode"
35
- :varietyStock="varietyStock"
36
- :indicatorStore="indicatorStore"
37
- :userKlineConfig="userKlineConfig"
38
- :cycle="cycle"
39
- :sellBuy="sellBuy"
40
- :rightType="rightType"
41
- :klineType="klineType"
42
- :initTimeRange="initTimeRange"
43
- :mainIndicator="mainIndicator"
44
- :tradeLog="tradeLog"
45
- :netPositionData="netPositionData"
46
- :positionTime="positionTime"
47
- />
48
- </template>
49
- </div>
50
- <st-klineConfig
51
- ref="stKlineConfigRef"
52
- :indicatorStore="indicatorStore"
53
- @callBack="(formJson) => handleUserKlineConfig('update', formJson)"
54
- />
55
- </div>
56
- </template>
57
-
58
1
  <script setup>
59
- import dayjs from "dayjs";
60
- import tradeLogMock from "./tradeLogMock";
61
- import { onMounted, ref, reactive, provide, inject, nextTick } from "vue";
62
-
63
- const { request } = inject("stConfig"); // 组件库全局配置
64
-
65
- const stKlineConfigRef = ref(null);
66
- const loading = ref(true);
67
- const userKlineConfig = reactive({});
68
- provide("userKlineConfig", userKlineConfig);
69
-
70
- const cycleOptions = [
71
- { label: "1m", value: "1" },
72
- { label: "60m", value: "5" },
73
- { label: "1d", value: "6" },
74
- { label: "1mon", value: "8" },
75
- ];
76
-
77
- const varietyName = ref("国债指数");
78
- const varietyCode = ref("Z000012");
79
- const varietyStock = ref(1); // 0: 期货, 1: 股票, 2: 期权
80
- const tradeLog = ref(tradeLogMock);
81
- const netPositionData = ref([]);
82
- const pageType = ref(1);
83
- const cycle = ref("5");
84
- const sellBuy = ref(1);
85
- const rightType = ref(1);
86
- const klineType = ref(0);
87
- const mainIndicator = ref("MA");
88
- const initTimeRange = ref([]);
89
- const positionTime = ref(null);
90
-
91
- const indicatorStore = {
92
- mainIndicatorList: [
93
- { label: "DKX_EMA", value: "DKX_EMA" },
94
- { label: "MA", value: "MA" },
95
- ],
96
- getIndicatorParams: () => {
97
- return ["MA5", "MA10", "MA20", "MA60", "MA120", "MA240", "MA360", "MA720"];
98
- },
99
- };
100
-
101
- // 前端估算K线根数的周期分布
102
- const dayBarsNumByCycle = {
103
- 1: 240, // 每天240根(4小时×60分钟)
104
- 2: 48, // 每天48根(4小时×12根)
105
- 3: 16, // 每天16根(4小时×4根)
106
- 4: 8, // 每天8根(4小时×2根)
107
- 5: 4, // 每天4根(4小时×1根)
108
- 6: 1, // 每天1根
109
- 7: 0.2, // 每周1根(按5个交易日算)
110
- 8: 0.033, // 每月1根(按21个交易日算)
111
- };
112
- // 前端估算大致根数的K线时间
113
- const estimateKlineTime = (time, direction, num, cycle) => {
114
- const dayBarsNum = dayBarsNumByCycle[cycle] || 1;
115
- // 计算需要的大概天数
116
- const daysNeeded = num / dayBarsNum;
2
+ import { ref } from "vue";
3
+ import KlineDialog from "./KlineDialog/index.vue"
117
4
 
118
- let resultTime;
119
- if (direction === "before") {
120
- resultTime = dayjs(time).subtract(daysNeeded, "day");
121
- } else {
122
- resultTime = dayjs(time).add(daysNeeded, "day");
123
- }
124
-
125
- return resultTime.format("YYYY-MM-DD HH:mm:ss");
126
- };
127
- /**
128
- * @description: 根据开始时间, 结束时间, 返回拓展K线根数+校验间隔后的时间范围
129
- * @params
130
- * {
131
- * startTime 开始时间;
132
- * endTime: 结束时间;
133
- * cycle: 周期Id;
134
- *
135
- * type: 类型, 默认reset;
136
- * num: 推算根数, 默认200;
137
- * maxSpan: 一屏上限根数, 默认3000; 这里是因为前端估算忽略了交易日等因素, 所以在计算差值时, 根数的上限可以比常规的一屏上限数量大一些
138
- * }
139
- * @return [startTime, endTime]
140
- */
141
- const getTimeRange = (rest) => {
142
- const params = Object.assign({}, rest, { type: "reset", num: 200, maxSpan: 3000 });
143
- switch (params.type) {
144
- case "week": {
145
- return [dayjs().startOf("week").add(1, "day").format("YYYY-MM-DD HH:mm:ss"), dayjs().endOf("week").add(1, "day").format("YYYY-MM-DD HH:mm:ss")];
146
- }
147
- case "month": {
148
- return [dayjs().startOf("month").format("YYYY-MM-DD HH:mm:ss"), dayjs().endOf("month").format("YYYY-MM-DD HH:mm:ss")];
149
- }
150
- case "reset": {
151
- // 1. 推算根数后的时间范围
152
- const startTime = estimateKlineTime(params.startTime, "before", params.num, params.cycle);
153
- const endTime = estimateKlineTime(params.endTime, "after", params.num, params.cycle);
154
- // 2. 进行N天间隔校验
155
- const N = Math.ceil(params.maxSpan / dayBarsNumByCycle[params.cycle]);
156
- const d1 = dayjs(startTime);
157
- const d2 = dayjs(endTime);
158
- const diff = d2.diff(d1, "day");
159
- return [diff <= N ? startTime : dayjs(endTime).subtract(N, "day").format("YYYY-MM-DD HH:mm:ss"), endTime];
160
- }
161
- }
162
- };
163
- // 用户自定义K线配置(获取, 更新)
164
- const handleUserKlineConfig = async (action, formJson) => {
165
- switch (action) {
166
- case "get": {
167
- const { body } = await request.post("/common/qt/getUserConfig", { appId: 1 });
168
- Object.assign(userKlineConfig, stKlineConfigRef.value?.getDefaultUserKlineConfig(), body ? JSON.parse(body) : {});
169
- break;
170
- }
171
- case "update": {
172
- loading.value = true;
173
- // 更新配置数据
174
- Object.assign(userKlineConfig, JSON.parse(formJson));
175
- // 默认值 [自定义配置]
176
- pageType.value = userKlineConfig.pageType;
177
- cycle.value = userKlineConfig.singelCycle;
178
- sellBuy.value = userKlineConfig.sellBuy;
179
- mainIndicator.value = userKlineConfig.mainIndicator;
180
- nextTick(() => (loading.value = false));
181
- }
182
- }
183
- };
184
-
185
- onMounted(async () => {
186
- loading.value = true;
187
-
188
- await handleUserKlineConfig("get");
5
+ const KlineDialogRef = ref(null);
189
6
 
7
+ // 查看K线弹窗组件
8
+ const openKlineDialog = () => {
190
9
  const params = {
191
- type: "rest",
192
- cycle: cycle.value,
193
- startTime: tradeLog.value[0]?.openTime,
194
- endTime: positionTime.value ? positionTime.value : tradeLog.value.at(-1)?.closeTime,
10
+ analyseId: "6186",
11
+ varietyInfo: {
12
+ index: 0,
13
+ varietyName: "荃银高科",
14
+ varietyCode: "300087",
15
+ ifBasket: 0,
16
+ tradeLog: [],
17
+ },
18
+ varietyList: [],
195
19
  };
196
- initTimeRange.value = getTimeRange(params);
197
-
198
- // 默认值 [自定义配置]
199
- pageType.value = userKlineConfig.pageType;
200
- cycle.value = userKlineConfig.singelCycle;
201
- sellBuy.value = userKlineConfig.sellBuy;
202
- mainIndicator.value = userKlineConfig.mainIndicator;
203
-
204
- setTimeout(() => {
205
- loading.value = false;
206
- }, 200);
207
- });
20
+ KlineDialogRef.value.open(params);
21
+ };
208
22
  </script>
209
23
 
210
- <style lang="scss" scoped>
211
- .main {
212
- width: 1400px;
213
- height: 800px;
214
- background-color: black;
215
- }
216
- </style>
24
+ <template>
25
+ <div>
26
+ <el-button @click="openKlineDialog">打开K线窗口</el-button>
27
+ <!-- K线弹窗 -->
28
+ <KlineDialog ref="KlineDialogRef" />
29
+ </div>
30
+ </template>
@@ -0,0 +1,20 @@
1
+ <script setup>
2
+ import { ref } from "vue";
3
+
4
+ const VarietyAiHelperRef = ref(null);
5
+
6
+ const handleClick = () => {
7
+ VarietyAiHelperRef.value.open();
8
+ };
9
+ </script>
10
+
11
+ <template>
12
+ <div>
13
+ <el-button
14
+ type="primary"
15
+ @click="handleClick"
16
+ >AI查询助手</el-button
17
+ >
18
+ <st-varietyAiHelper ref="VarietyAiHelperRef" />
19
+ </div>
20
+ </template>
@@ -7,6 +7,7 @@ const { request } = inject("stConfig"); // 组件库全局配置
7
7
 
8
8
  const searchData = ref({});
9
9
 
10
+ const VarietyAiHelperRef = ref(null);
10
11
  const varietySearchRef = ref(null);
11
12
  const varietySearchData = ref({
12
13
  varietyMarket: null,
@@ -105,9 +106,17 @@ const sortChange = ({ column, prop, order }) => {
105
106
  getTableData();
106
107
  };
107
108
 
109
+ // 埋点
108
110
  const actionState = (...args) => {
109
111
  console.log(...args);
110
112
  };
113
+ // 品种池参数解析助手的回调
114
+ const varietyAiHelperCallBack = (data) => {
115
+ // 重置
116
+ varietySearchRef.value.reset()
117
+ // 参数合并
118
+ varietySearchData.value = { ...varietySearchData.value, ...data };
119
+ };
111
120
 
112
121
  onMounted(async () => {
113
122
  const dicAlar = await getAlarDict();
@@ -190,68 +199,83 @@ watch(
190
199
  </script>
191
200
 
192
201
  <template>
193
- <div style="width: 100%; height: 100%">
194
- <st-varietySearch
195
- ref="varietySearchRef"
196
- v-model:searchData="varietySearchData"
197
- :config="varietySearchConfig"
198
- @actionState="actionState"
199
- />
200
- <div>品种池组件接口参数: {{ apiParams }}</div>
202
+ <el-scrollbar class="demo">
201
203
  <el-button
202
204
  size="small"
203
205
  type="primary"
204
206
  @click="getTableData"
205
207
  style="margin: 10px 0"
206
208
  >
207
- 查询测试
209
+ 查询
208
210
  </el-button>
209
- <el-table
210
- class="alarm"
211
- ref="multipleTableRef"
211
+ <el-button
212
212
  size="small"
213
- :stripe="true"
214
- :border="true"
215
- :data="data"
216
- @sort-change="sortChange"
213
+ type="primary"
214
+ @click="VarietyAiHelperRef?.open()"
217
215
  >
218
- <el-table-column
219
- type="selection"
220
- width="40"
221
- fixed
222
- />
223
- <el-table-column
224
- label="编号"
225
- prop="id"
226
- width="80"
227
- fixed
228
- />
229
- <el-table-column
230
- label="代码"
231
- prop="code"
232
- width="90"
233
- sortable="custom"
234
- fixed
235
- show-overflow-tooltip
236
- />
237
- <el-table-column
238
- label="名称"
239
- prop="featureName"
240
- sortable="custom"
241
- fixed
242
- show-overflow-tooltip
243
- />
244
- <el-table-column
245
- label="市场"
246
- prop="exchangeName"
247
- width="70"
248
- />
249
- </el-table>
250
- </div>
216
+ AI查询助手
217
+ </el-button>
218
+ <st-varietyAiHelper
219
+ ref="VarietyAiHelperRef"
220
+ @callBack="varietyAiHelperCallBack"
221
+ />
222
+ <st-varietySearch
223
+ ref="varietySearchRef"
224
+ v-model:searchData="varietySearchData"
225
+ :config="varietySearchConfig"
226
+ @actionState="actionState"
227
+ />
228
+ <div>
229
+ <div style="font-size: 14px; display: flex;">
230
+ <pre style="flex: 1;">前端组件参数: {{ varietySearchData }}</pre>
231
+ <pre style="flex: 0.5;">后端接口参数: {{ apiParams }}</pre>
232
+ </div>
233
+ <el-table
234
+ ref="multipleTableRef"
235
+ size="small"
236
+ :stripe="true"
237
+ :border="true"
238
+ :data="data"
239
+ @sort-change="sortChange"
240
+ >
241
+ <el-table-column
242
+ type="selection"
243
+ width="40"
244
+ fixed
245
+ />
246
+ <el-table-column
247
+ label="编号"
248
+ prop="id"
249
+ width="80"
250
+ fixed
251
+ />
252
+ <el-table-column
253
+ label="代码"
254
+ prop="code"
255
+ width="90"
256
+ sortable="custom"
257
+ fixed
258
+ show-overflow-tooltip
259
+ />
260
+ <el-table-column
261
+ label="名称"
262
+ prop="featureName"
263
+ sortable="custom"
264
+ fixed
265
+ show-overflow-tooltip
266
+ />
267
+ <el-table-column
268
+ label="市场"
269
+ prop="exchangeName"
270
+ width="70"
271
+ />
272
+ </el-table>
273
+ </div>
274
+ </el-scrollbar>
251
275
  </template>
252
276
 
253
277
  <style lang="scss" scoped>
254
- .alarm {
255
- height: calc(100vh - 400px);
278
+ .el-table {
279
+ height: calc(100vh - 420px);
256
280
  }
257
281
  </style>
@@ -99,6 +99,11 @@ export default [
99
99
  name: 'User',
100
100
  component: () => import('../pages/User/index.vue'),
101
101
  },
102
+ {
103
+ path: '/varietyAiHelper',
104
+ name: 'VarietyAiHelper',
105
+ component: () => import('../pages/VarietyAiHelper/index.vue'),
106
+ },
102
107
  {
103
108
  path: '/varietyAutoComplete',
104
109
  name: 'VarietyAutoComplete',
@@ -1 +0,0 @@
1
- "use strict";const e=require("./el-popper-7ba87e05.cjs"),o=require("./base-ef747d02.cjs"),O=require("./use-form-common-props-344056f9.cjs"),t=require("vue"),N=t.defineComponent({inheritAttrs:!1});function y(r,l,c,i,d,E){return t.renderSlot(r.$slots,"default")}var g=o._export_sfc(N,[["render",y],["__file","collection.vue"]]);const S=t.defineComponent({name:"ElCollectionItem",inheritAttrs:!1});function P(r,l,c,i,d,E){return t.renderSlot(r.$slots,"default")}var L=o._export_sfc(S,[["render",P],["__file","collection-item.vue"]]);const f="data-el-collection-item",T=r=>{const l=`El${r}Collection`,c=`${l}Item`,i=Symbol(l),d=Symbol(c),E={...g,name:l,setup(){const a=t.ref(),u=new Map,p=()=>{const s=t.unref(a);if(!s)return[];const n=Array.from(s.querySelectorAll(`[${f}]`));return[...u.values()].sort((m,I)=>n.indexOf(m.ref)-n.indexOf(I.ref))};t.provide(i,{itemMap:u,getItems:p,collectionRef:a})}},C={...L,name:c,setup(a,{attrs:u}){const p=t.ref(),s=t.inject(i,void 0);t.provide(d,{collectionItemRef:p}),t.onMounted(()=>{const n=t.unref(p);n&&s.itemMap.set(n,{ref:n,...u})}),t.onBeforeUnmount(()=>{const n=t.unref(p);s.itemMap.delete(n)})}};return{COLLECTION_INJECTION_KEY:i,COLLECTION_ITEM_INJECTION_KEY:d,ElCollection:E,ElCollectionItem:C}},b=o.buildProps({trigger:e.useTooltipTriggerProps.trigger,triggerKeys:{type:o.definePropType(Array),default:()=>[e.EVENT_CODE.enter,e.EVENT_CODE.numpadEnter,e.EVENT_CODE.space,e.EVENT_CODE.down]},virtualTriggering:e.useTooltipTriggerProps.virtualTriggering,virtualRef:e.useTooltipTriggerProps.virtualRef,effect:{...e.useTooltipContentProps.effect,default:"light"},type:{type:o.definePropType(String)},placement:{type:o.definePropType(String),default:"bottom"},popperOptions:{type:o.definePropType(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showArrow:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:o.definePropType([Number,String]),default:0},maxHeight:{type:o.definePropType([Number,String]),default:""},popperClass:{type:String,default:""},disabled:Boolean,role:{type:String,values:e.roleTypes,default:"menu"},buttonProps:{type:o.definePropType(Object)},teleported:e.useTooltipContentProps.teleported,persistent:{type:Boolean,default:!0}}),v=o.buildProps({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:O.iconPropType}}),w=o.buildProps({onKeydown:{type:o.definePropType(Function)}}),M=[e.EVENT_CODE.down,e.EVENT_CODE.pageDown,e.EVENT_CODE.home],_=[e.EVENT_CODE.up,e.EVENT_CODE.pageUp,e.EVENT_CODE.end],$=[...M,..._],{ElCollection:h,ElCollectionItem:K,COLLECTION_INJECTION_KEY:A,COLLECTION_ITEM_INJECTION_KEY:D}=T("Dropdown");exports.COLLECTION_INJECTION_KEY=A;exports.COLLECTION_ITEM_INJECTION_KEY=D;exports.COLLECTION_ITEM_SIGN=f;exports.ElCollection=h;exports.ElCollectionItem=K;exports.FIRST_LAST_KEYS=$;exports.LAST_KEYS=_;exports.createCollectionWithScope=T;exports.dropdownItemProps=v;exports.dropdownMenuProps=w;exports.dropdownProps=b;
@@ -1 +0,0 @@
1
- "use strict";const e=require("vue"),K=require("./use-form-common-props-344056f9.cjs"),M=require("./index-cebc7160.cjs"),S=require("./el-input-172c49f8.cjs"),se=require("./index-8de94a49.cjs"),u=require("./el-popper-7ba87e05.cjs"),n=require("./base-ef747d02.cjs"),re=require("./index-9780a537.cjs"),ae=require("./debounce-62f5b6e8.cjs"),ue=n.buildProps({...S.inputProps,valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:n.definePropType(String),values:["top","top-start","top-end","bottom","bottom-start","bottom-end"],default:"bottom-start"},fetchSuggestions:{type:n.definePropType([Function,Array]),default:n.NOOP},popperClass:{type:String,default:""},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:Boolean,hideLoading:Boolean,teleported:u.useTooltipContentProps.teleported,appendTo:u.useTooltipContentProps.appendTo,highlightFirstItem:Boolean,fitInputWidth:Boolean}),ie={[u.UPDATE_MODEL_EVENT]:s=>n.isString(s)||n.isNumber(s),[u.INPUT_EVENT]:s=>n.isString(s)||n.isNumber(s),[u.CHANGE_EVENT]:s=>n.isString(s)||n.isNumber(s),focus:s=>s instanceof FocusEvent,blur:s=>s instanceof FocusEvent,clear:()=>!0,select:s=>n.isObject(s)},U="ElAutocomplete",ce=e.defineComponent({name:U,inheritAttrs:!1}),de=e.defineComponent({...ce,props:ue,emits:ie,setup(s,{expose:z,emit:d}){const a=s,L=e.computed(()=>u.pick(a,Object.keys(S.inputProps))),R=e.useAttrs(),T=K.useFormDisabled(),i=n.useNamespace("autocomplete"),f=e.ref(),$=e.ref(),b=e.ref(),A=e.ref();let P=!1,C=!1;const p=e.ref([]),r=e.ref(-1),V=e.ref(""),v=e.ref(!1),E=e.ref(!1),m=e.ref(!1),h=re.useId(),W=e.computed(()=>R.style),g=e.computed(()=>(p.value.length>0||m.value)&&v.value),I=e.computed(()=>!a.hideLoading&&m.value),H=e.computed(()=>f.value?Array.from(f.value.$el.querySelectorAll("input")):[]),x=()=>{g.value&&(V.value=`${f.value.$el.offsetWidth}px`)},G=()=>{r.value=-1},_=async t=>{if(E.value)return;const o=l=>{m.value=!1,!E.value&&(n.isArray(l)?(p.value=l,r.value=a.highlightFirstItem?0:-1):u.throwError(U,"autocomplete suggestions must be an array"))};if(m.value=!0,n.isArray(a.fetchSuggestions))o(a.fetchSuggestions);else{const l=await a.fetchSuggestions(t,o);n.isArray(l)&&o(l)}},B=ae.debounce(_,a.debounce),j=t=>{const o=!!t;if(d(u.INPUT_EVENT,t),d(u.UPDATE_MODEL_EVENT,t),E.value=!1,v.value||(v.value=o),!a.triggerOnFocus&&!t){E.value=!0,p.value=[];return}B(t)},J=t=>{var o;T.value||(((o=t.target)==null?void 0:o.tagName)!=="INPUT"||H.value.includes(document.activeElement))&&(v.value=!0)},Q=t=>{d(u.CHANGE_EVENT,t)},X=t=>{var o;if(C)C=!1;else{v.value=!0,d("focus",t);const l=(o=a.modelValue)!=null?o:"";a.triggerOnFocus&&!P&&B(String(l))}},Y=t=>{setTimeout(()=>{var o;if((o=b.value)!=null&&o.isFocusInsideContent()){C=!0;return}v.value&&y(),d("blur",t)})},Z=()=>{v.value=!1,d(u.UPDATE_MODEL_EVENT,""),d("clear")},D=async()=>{var t;(t=f.value)!=null&&t.isComposing||(g.value&&r.value>=0&&r.value<p.value.length?w(p.value[r.value]):a.selectWhenUnmatched&&(d("select",{value:a.modelValue}),p.value=[],r.value=-1))},ee=t=>{g.value&&(t.preventDefault(),t.stopPropagation(),y())},y=()=>{v.value=!1},te=()=>{var t;(t=f.value)==null||t.focus()},oe=()=>{var t;(t=f.value)==null||t.blur()},w=async t=>{d(u.INPUT_EVENT,t[a.valueKey]),d(u.UPDATE_MODEL_EVENT,t[a.valueKey]),d("select",t),p.value=[],r.value=-1},k=t=>{var o,l;if(!g.value||m.value)return;if(t<0){r.value=-1;return}t>=p.value.length&&(t=p.value.length-1);const c=$.value.querySelector(`.${i.be("suggestion","wrap")}`),ne=c.querySelectorAll(`.${i.be("suggestion","list")} li`)[t],O=c.scrollTop,{offsetTop:q,scrollHeight:N}=ne;q+N>O+c.clientHeight&&(c.scrollTop+=N),q<O&&(c.scrollTop-=N),r.value=t,(l=(o=f.value)==null?void 0:o.ref)==null||l.setAttribute("aria-activedescendant",`${h.value}-item-${r.value}`)},F=K.onClickOutside(A,()=>{var t;(t=b.value)!=null&&t.isFocusInsideContent()||g.value&&y()});return e.onBeforeUnmount(()=>{F==null||F()}),e.onMounted(()=>{var t;const o=(t=f.value)==null?void 0:t.ref;o&&([{key:"role",value:"textbox"},{key:"aria-autocomplete",value:"list"},{key:"aria-controls",value:"id"},{key:"aria-activedescendant",value:`${h.value}-item-${r.value}`}].forEach(({key:l,value:c})=>o.setAttribute(l,c)),P=o.hasAttribute("readonly"))}),z({highlightedIndex:r,activated:v,loading:m,inputRef:f,popperRef:b,suggestions:p,handleSelect:w,handleKeyEnter:D,focus:te,blur:oe,close:y,highlight:k,getData:_}),(t,o)=>(e.openBlock(),e.createBlock(e.unref(u.ElTooltip),{ref_key:"popperRef",ref:b,visible:e.unref(g),placement:t.placement,"fallback-placements":["bottom-start","top-start"],"popper-class":[e.unref(i).e("popper"),t.popperClass],teleported:t.teleported,"append-to":t.appendTo,"gpu-acceleration":!1,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:`${e.unref(i).namespace.value}-zoom-in-top`,persistent:"",role:"listbox",onBeforeShow:x,onHide:G},{content:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"regionRef",ref:$,class:e.normalizeClass([e.unref(i).b("suggestion"),e.unref(i).is("loading",e.unref(I))]),style:e.normalizeStyle({[t.fitInputWidth?"width":"minWidth"]:V.value,outline:"none"}),role:"region"},[t.$slots.header?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(i).be("suggestion","header")),onClick:e.withModifiers(()=>{},["stop"])},[e.renderSlot(t.$slots,"header")],10,["onClick"])):e.createCommentVNode("v-if",!0),e.createVNode(e.unref(se.ElScrollbar),{id:e.unref(h),tag:"ul","wrap-class":e.unref(i).be("suggestion","wrap"),"view-class":e.unref(i).be("suggestion","list"),role:"listbox"},{default:e.withCtx(()=>[e.unref(I)?(e.openBlock(),e.createElementBlock("li",{key:0},[e.renderSlot(t.$slots,"loading",{},()=>[e.createVNode(e.unref(M.ElIcon),{class:e.normalizeClass(e.unref(i).is("loading"))},{default:e.withCtx(()=>[e.createVNode(e.unref(M.loading_default))]),_:1},8,["class"])])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(p.value,(l,c)=>(e.openBlock(),e.createElementBlock("li",{id:`${e.unref(h)}-item-${c}`,key:c,class:e.normalizeClass({highlighted:r.value===c}),role:"option","aria-selected":r.value===c,onClick:le=>w(l)},[e.renderSlot(t.$slots,"default",{item:l},()=>[e.createTextVNode(e.toDisplayString(l[t.valueKey]),1)])],10,["id","aria-selected","onClick"]))),128))]),_:3},8,["id","wrap-class","view-class"]),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(i).be("suggestion","footer")),onClick:e.withModifiers(()=>{},["stop"])},[e.renderSlot(t.$slots,"footer")],10,["onClick"])):e.createCommentVNode("v-if",!0)],6)]),default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"listboxRef",ref:A,class:e.normalizeClass([e.unref(i).b(),t.$attrs.class]),style:e.normalizeStyle(e.unref(W)),role:"combobox","aria-haspopup":"listbox","aria-expanded":e.unref(g),"aria-owns":e.unref(h)},[e.createVNode(e.unref(S.ElInput),e.mergeProps({ref_key:"inputRef",ref:f},e.mergeProps(e.unref(L),t.$attrs),{"model-value":t.modelValue,disabled:e.unref(T),onInput:j,onChange:Q,onFocus:X,onBlur:Y,onClear:Z,onKeydown:[e.withKeys(e.withModifiers(l=>k(r.value-1),["prevent"]),["up"]),e.withKeys(e.withModifiers(l=>k(r.value+1),["prevent"]),["down"]),e.withKeys(D,["enter"]),e.withKeys(y,["tab"]),e.withKeys(ee,["esc"])],onMousedown:J}),e.createSlots({_:2},[t.$slots.prepend?{name:"prepend",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"prepend")])}:void 0,t.$slots.append?{name:"append",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"append")])}:void 0,t.$slots.prefix?{name:"prefix",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"prefix")])}:void 0,t.$slots.suffix?{name:"suffix",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"suffix")])}:void 0]),1040,["model-value","disabled","onKeydown"])],14,["aria-expanded","aria-owns"])]),_:3},8,["visible","placement","popper-class","teleported","append-to","transition"]))}});var pe=n._export_sfc(de,[["__file","autocomplete.vue"]]);const fe=n.withInstall(pe);exports.ElAutocomplete=fe;
@@ -1 +0,0 @@
1
- "use strict";const e=require("vue"),E=require("./use-form-common-props-344056f9.cjs"),g=require("./el-popper-7ba87e05.cjs"),o=require("./base-ef747d02.cjs"),L=require("./index-4f48940d.cjs"),B=require("./index-f1c702f6.cjs"),N={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:E.useSizeProp,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},...g.useAriaProps(["ariaControls"])},I={[g.UPDATE_MODEL_EVENT]:l=>o.isString(l)||o.isNumber(l)||o.isBoolean(l),change:l=>o.isString(l)||o.isNumber(l)||o.isBoolean(l)},y=Symbol("checkboxGroupContextKey"),A=({model:l,isChecked:t})=>{const i=e.inject(y,void 0),n=e.computed(()=>{var c,b;const u=(c=i==null?void 0:i.max)==null?void 0:c.value,v=(b=i==null?void 0:i.min)==null?void 0:b.value;return!o.isUndefined(u)&&l.value.length>=u&&!t.value||!o.isUndefined(v)&&l.value.length<=v&&t.value});return{isDisabled:E.useFormDisabled(e.computed(()=>(i==null?void 0:i.disabled.value)||n.value)),isLimitDisabled:n}},w=(l,{model:t,isLimitExceeded:i,hasOwnLabel:n,isDisabled:m,isLabeledByFormItem:c})=>{const b=e.inject(y,void 0),{formItem:u}=E.useFormItem(),{emit:v}=e.getCurrentInstance();function f(h){var a,C,k,d;return[!0,l.trueValue,l.trueLabel].includes(h)?(C=(a=l.trueValue)!=null?a:l.trueLabel)!=null?C:!0:(d=(k=l.falseValue)!=null?k:l.falseLabel)!=null?d:!1}function r(h,a){v(g.CHANGE_EVENT,f(h),a)}function s(h){if(i.value)return;const a=h.target;v(g.CHANGE_EVENT,f(a.checked),h)}async function p(h){i.value||!n.value&&!m.value&&c.value&&(h.composedPath().some(k=>k.tagName==="LABEL")||(t.value=f([!1,l.falseValue,l.falseLabel].includes(t.value)),await e.nextTick(),r(t.value,h)))}const x=e.computed(()=>(b==null?void 0:b.validateEvent)||l.validateEvent);return e.watch(()=>l.modelValue,()=>{x.value&&(u==null||u.validate("change").catch(h=>g.debugWarn()))}),{handleChange:s,onClickRoot:p}},G=l=>{const t=e.ref(!1),{emit:i}=e.getCurrentInstance(),n=e.inject(y,void 0),m=e.computed(()=>o.isUndefined(n)===!1),c=e.ref(!1),b=e.computed({get(){var u,v;return m.value?(u=n==null?void 0:n.modelValue)==null?void 0:u.value:(v=l.modelValue)!=null?v:t.value},set(u){var v,f;m.value&&o.isArray(u)?(c.value=((v=n==null?void 0:n.max)==null?void 0:v.value)!==void 0&&u.length>(n==null?void 0:n.max.value)&&u.length>b.value.length,c.value===!1&&((f=n==null?void 0:n.changeEvent)==null||f.call(n,u))):(i(g.UPDATE_MODEL_EVENT,u),t.value=u)}});return{model:b,isGroup:m,isLimitExceeded:c}},$=(l,t,{model:i})=>{const n=e.inject(y,void 0),m=e.ref(!1),c=e.computed(()=>o.isPropAbsent(l.value)?l.label:l.value),b=e.computed(()=>{const r=i.value;return o.isBoolean(r)?r:o.isArray(r)?o.isObject(c.value)?r.map(e.toRaw).some(s=>L.isEqual(s,c.value)):r.map(e.toRaw).includes(c.value):r!=null?r===l.trueValue||r===l.trueLabel:!!r}),u=E.useFormSize(e.computed(()=>{var r;return(r=n==null?void 0:n.size)==null?void 0:r.value}),{prop:!0}),v=E.useFormSize(e.computed(()=>{var r;return(r=n==null?void 0:n.size)==null?void 0:r.value})),f=e.computed(()=>!!t.default||!o.isPropAbsent(c.value));return{checkboxButtonSize:u,isChecked:b,isFocused:m,checkboxSize:v,hasOwnLabel:f,actualValue:c}},D=(l,t)=>{const{formItem:i}=E.useFormItem(),{model:n,isGroup:m,isLimitExceeded:c}=G(l),{isFocused:b,isChecked:u,checkboxButtonSize:v,checkboxSize:f,hasOwnLabel:r,actualValue:s}=$(l,t,{model:n}),{isDisabled:p}=A({model:n,isChecked:u}),{inputId:x,isLabeledByFormItem:h}=E.useFormItemInputId(l,{formItemContext:i,disableIdGeneration:r,disableIdManagement:m}),{handleChange:a,onClickRoot:C}=w(l,{model:n,isLimitExceeded:c,hasOwnLabel:r,isDisabled:p,isLabeledByFormItem:h});return(()=>{function d(){var _,V;o.isArray(n.value)&&!n.value.includes(s.value)?n.value.push(s.value):n.value=(V=(_=l.trueValue)!=null?_:l.trueLabel)!=null?V:!0}l.checked&&d()})(),B.useDeprecated({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},e.computed(()=>m.value&&o.isPropAbsent(l.value))),B.useDeprecated({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},e.computed(()=>!!l.trueLabel)),B.useDeprecated({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},e.computed(()=>!!l.falseLabel)),{inputId:x,isLabeledByFormItem:h,isChecked:u,isDisabled:p,isFocused:b,checkboxButtonSize:v,checkboxSize:f,hasOwnLabel:r,model:n,actualValue:s,handleChange:a,onClickRoot:C}},U=e.defineComponent({name:"ElCheckbox"}),O=e.defineComponent({...U,props:N,emits:I,setup(l){const t=l,i=e.useSlots(),{inputId:n,isLabeledByFormItem:m,isChecked:c,isDisabled:b,isFocused:u,checkboxSize:v,hasOwnLabel:f,model:r,actualValue:s,handleChange:p,onClickRoot:x}=D(t,i),h=e.computed(()=>{var d,_,V,S;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":(_=(d=t.trueValue)!=null?d:t.trueLabel)!=null?_:!0,"false-value":(S=(V=t.falseValue)!=null?V:t.falseLabel)!=null?S:!1}:{value:s.value}}),a=o.useNamespace("checkbox"),C=e.computed(()=>[a.b(),a.m(v.value),a.is("disabled",b.value),a.is("bordered",t.border),a.is("checked",c.value)]),k=e.computed(()=>[a.e("input"),a.is("disabled",b.value),a.is("checked",c.value),a.is("indeterminate",t.indeterminate),a.is("focus",u.value)]);return(d,_)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(!e.unref(f)&&e.unref(m)?"span":"label"),{class:e.normalizeClass(e.unref(C)),"aria-controls":d.indeterminate?d.ariaControls:null,onClick:e.unref(x)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(k))},[e.withDirectives(e.createElementVNode("input",e.mergeProps({id:e.unref(n),"onUpdate:modelValue":V=>e.isRef(r)?r.value=V:null,class:e.unref(a).e("original"),type:"checkbox",indeterminate:d.indeterminate,name:d.name,tabindex:d.tabindex,disabled:e.unref(b)},e.unref(h),{onChange:e.unref(p),onFocus:V=>u.value=!0,onBlur:V=>u.value=!1,onClick:e.withModifiers(()=>{},["stop"])}),null,16,["id","onUpdate:modelValue","indeterminate","name","tabindex","disabled","onChange","onFocus","onBlur","onClick"]),[[e.vModelCheckbox,e.unref(r)]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("inner"))},null,2)],2),e.unref(f)?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(a).e("label"))},[e.renderSlot(d.$slots,"default"),d.$slots.default?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(d.label),1)],64))],2)):e.createCommentVNode("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var P=o._export_sfc(O,[["__file","checkbox.vue"]]);const M=e.defineComponent({name:"ElCheckboxButton"}),j=e.defineComponent({...M,props:N,emits:I,setup(l){const t=l,i=e.useSlots(),{isFocused:n,isChecked:m,isDisabled:c,checkboxButtonSize:b,model:u,actualValue:v,handleChange:f}=D(t,i),r=e.computed(()=>{var a,C,k,d;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":(C=(a=t.trueValue)!=null?a:t.trueLabel)!=null?C:!0,"false-value":(d=(k=t.falseValue)!=null?k:t.falseLabel)!=null?d:!1}:{value:v.value}}),s=e.inject(y,void 0),p=o.useNamespace("checkbox"),x=e.computed(()=>{var a,C,k,d;const _=(C=(a=s==null?void 0:s.fill)==null?void 0:a.value)!=null?C:"";return{backgroundColor:_,borderColor:_,color:(d=(k=s==null?void 0:s.textColor)==null?void 0:k.value)!=null?d:"",boxShadow:_?`-1px 0 0 0 ${_}`:void 0}}),h=e.computed(()=>[p.b("button"),p.bm("button",b.value),p.is("disabled",c.value),p.is("checked",m.value),p.is("focus",n.value)]);return(a,C)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(e.unref(h))},[e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":k=>e.isRef(u)?u.value=k:null,class:e.unref(p).be("button","original"),type:"checkbox",name:a.name,tabindex:a.tabindex,disabled:e.unref(c)},e.unref(r),{onChange:e.unref(f),onFocus:k=>n.value=!0,onBlur:k=>n.value=!1,onClick:e.withModifiers(()=>{},["stop"])}),null,16,["onUpdate:modelValue","name","tabindex","disabled","onChange","onFocus","onBlur","onClick"]),[[e.vModelCheckbox,e.unref(u)]]),a.$slots.default||a.label?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(p).be("button","inner")),style:e.normalizeStyle(e.unref(m)?e.unref(x):void 0)},[e.renderSlot(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.label),1)])],6)):e.createCommentVNode("v-if",!0)],2))}});var z=o._export_sfc(j,[["__file","checkbox-button.vue"]]);const q=o.buildProps({modelValue:{type:o.definePropType(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:E.useSizeProp,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},options:{type:o.definePropType(Array)},props:{type:o.definePropType(Object),default:()=>F},...g.useAriaProps(["ariaLabel"])}),R={[g.UPDATE_MODEL_EVENT]:l=>o.isArray(l),change:l=>o.isArray(l)},F={label:"label",value:"value",disabled:"disabled"},K=e.defineComponent({name:"ElCheckboxGroup"}),H=e.defineComponent({...K,props:q,emits:R,setup(l,{emit:t}){const i=l,n=o.useNamespace("checkbox"),{formItem:m}=E.useFormItem(),{inputId:c,isLabeledByFormItem:b}=E.useFormItemInputId(i,{formItemContext:m}),u=async s=>{t(g.UPDATE_MODEL_EVENT,s),await e.nextTick(),t(g.CHANGE_EVENT,s)},v=e.computed({get(){return i.modelValue},set(s){u(s)}}),f=e.computed(()=>({...F,...i.props})),r=s=>{const p={label:s[f.value.label],value:s[f.value.value],disabled:s[f.value.disabled]};return{...s,...p}};return e.provide(y,{...g.pick(e.toRefs(i),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:v,changeEvent:u}),e.watch(()=>i.modelValue,(s,p)=>{i.validateEvent&&!L.isEqual(s,p)&&(m==null||m.validate("change").catch(x=>g.debugWarn()))}),(s,p)=>{var x;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.tag),{id:e.unref(c),class:e.normalizeClass(e.unref(n).b("group")),role:"group","aria-label":e.unref(b)?void 0:s.ariaLabel||"checkbox-group","aria-labelledby":e.unref(b)?(x=e.unref(m))==null?void 0:x.labelId:void 0},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.options,(h,a)=>(e.openBlock(),e.createBlock(P,e.mergeProps({key:a},r(h)),null,16))),128))])]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var T=o._export_sfc(H,[["__file","checkbox-group.vue"]]);const W=o.withInstall(P,{CheckboxButton:z,CheckboxGroup:T});o.withNoopInstall(z);const J=o.withNoopInstall(T);exports.ElCheckbox=W;exports.ElCheckboxGroup=J;
@@ -1 +0,0 @@
1
- "use strict";const e=require("vue"),p=require("./el-overlay-d7a6e4a9.cjs"),T=require("./el-popper-7ba87e05.cjs"),I=require("./index-cebc7160.cjs"),E=require("./base-ef747d02.cjs"),R=require("./use-form-common-props-344056f9.cjs"),q=require("./index-bb833443.cjs"),V=require("./index-f1c702f6.cjs"),N=(r,d,s,k)=>{const l={offsetX:0,offsetY:0},c=e.ref(!1),h=(a,i)=>{if(r.value){const{offsetX:g,offsetY:C}=l,u=r.value.getBoundingClientRect(),f=u.left,t=u.top,m=u.width,w=u.height,D=document.documentElement.clientWidth,S=document.documentElement.clientHeight,z=-f+g,B=-t+C,P=D-f-m+g,M=S-t-(w<S?w:0)+C;k!=null&&k.value||(a=Math.min(Math.max(a,z),P),i=Math.min(Math.max(i,B),M)),l.offsetX=a,l.offsetY=i,r.value.style.transform=`translate(${E.addUnit(a)}, ${E.addUnit(i)})`}},v=a=>{const i=a.clientX,g=a.clientY,{offsetX:C,offsetY:u}=l,f=m=>{c.value||(c.value=!0);const w=C+m.clientX-i,D=u+m.clientY-g;h(w,D)},t=()=>{c.value=!1,document.removeEventListener("mousemove",f),document.removeEventListener("mouseup",t)};document.addEventListener("mousemove",f),document.addEventListener("mouseup",t)},n=()=>{d.value&&r.value&&(d.value.addEventListener("mousedown",v),window.addEventListener("resize",y))},b=()=>{d.value&&r.value&&(d.value.removeEventListener("mousedown",v),window.removeEventListener("resize",y))},$=()=>{l.offsetX=0,l.offsetY=0,r.value&&(r.value.style.transform="")},y=()=>{const{offsetX:a,offsetY:i}=l;h(a,i)};return e.onMounted(()=>{e.watchEffect(()=>{s.value?n():b()})}),e.onBeforeUnmount(()=>{b()}),{isDragging:c,resetPosition:$,updatePosition:y}},F=(...r)=>d=>{r.forEach(s=>{E.isFunction(s)?s(d):s.value=d})},A=e.defineComponent({name:"ElDialogContent"}),Y=e.defineComponent({...A,props:p.dialogContentProps,emits:p.dialogContentEmits,setup(r,{expose:d}){const s=r,{t:k}=q.useLocale(),{Close:l}=R.CloseComponents,{dialogRef:c,headerRef:h,bodyId:v,ns:n,style:b}=e.inject(p.dialogInjectionKey),{focusTrapRef:$}=e.inject(T.FOCUS_TRAP_INJECTION_KEY),y=F($,c),a=e.computed(()=>!!s.draggable),i=e.computed(()=>!!s.overflow),{resetPosition:g,updatePosition:C,isDragging:u}=N(c,h,a,i),f=e.computed(()=>[n.b(),n.is("fullscreen",s.fullscreen),n.is("draggable",a.value),n.is("dragging",u.value),n.is("align-center",!!s.alignCenter),{[n.m("center")]:s.center}]);return d({resetPosition:g,updatePosition:C}),(t,m)=>(e.openBlock(),e.createElementBlock("div",{ref:e.unref(y),class:e.normalizeClass(e.unref(f)),style:e.normalizeStyle(e.unref(b)),tabindex:"-1"},[e.createElementVNode("header",{ref_key:"headerRef",ref:h,class:e.normalizeClass([e.unref(n).e("header"),t.headerClass,{"show-close":t.showClose}])},[e.renderSlot(t.$slots,"header",{},()=>[e.createElementVNode("span",{role:"heading","aria-level":t.ariaLevel,class:e.normalizeClass(e.unref(n).e("title"))},e.toDisplayString(t.title),11,["aria-level"])]),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":e.unref(k)("el.dialog.close"),class:e.normalizeClass(e.unref(n).e("headerbtn")),type:"button",onClick:w=>t.$emit("close")},[e.createVNode(e.unref(I.ElIcon),{class:e.normalizeClass(e.unref(n).e("close"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.closeIcon||e.unref(l))))]),_:1},8,["class"])],10,["aria-label","onClick"])):e.createCommentVNode("v-if",!0)],2),e.createElementVNode("div",{id:e.unref(v),class:e.normalizeClass([e.unref(n).e("body"),t.bodyClass])},[e.renderSlot(t.$slots,"default")],10,["id"]),t.$slots.footer?(e.openBlock(),e.createElementBlock("footer",{key:0,class:e.normalizeClass([e.unref(n).e("footer"),t.footerClass])},[e.renderSlot(t.$slots,"footer")],2)):e.createCommentVNode("v-if",!0)],6))}});var X=E._export_sfc(Y,[["__file","dialog-content.vue"]]);const j=e.defineComponent({name:"ElDialog",inheritAttrs:!1}),O=e.defineComponent({...j,props:p.dialogProps,emits:p.dialogEmits,setup(r,{expose:d}){const s=r,k=e.useSlots();V.useDeprecated({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},e.computed(()=>!!k.title));const l=E.useNamespace("dialog"),c=e.ref(),h=e.ref(),v=e.ref(),{visible:n,titleId:b,bodyId:$,style:y,overlayDialogStyle:a,rendered:i,transitionConfig:g,zIndex:C,_draggable:u,_alignCenter:f,_overflow:t,handleClose:m,onModalClick:w,onOpenAutoFocus:D,onCloseAutoFocus:S,onCloseRequested:z,onFocusoutPrevented:B}=p.useDialog(s,c);e.provide(p.dialogInjectionKey,{dialogRef:c,headerRef:h,bodyId:$,ns:l,rendered:i,style:y});const P=p.useSameTarget(w),M=e.computed(()=>s.modalPenetrable&&!s.modal&&!s.fullscreen);return d({visible:n,dialogContentRef:v,resetPosition:()=>{var o;(o=v.value)==null||o.resetPosition()},handleClose:m}),(o,H)=>(e.openBlock(),e.createBlock(e.unref(T.ElTeleport),{to:o.appendTo,disabled:o.appendTo!=="body"?!1:!o.appendToBody},{default:e.withCtx(()=>[e.createVNode(e.Transition,e.mergeProps(e.unref(g),{persisted:""}),{default:e.withCtx(()=>{var L;return[e.withDirectives(e.createVNode(e.unref(p.ElOverlay),{"custom-mask-event":"",mask:o.modal,"overlay-class":[(L=o.modalClass)!=null?L:"",`${e.unref(l).namespace.value}-modal-dialog`,e.unref(l).is("penetrable",e.unref(M))],"z-index":e.unref(C)},{default:e.withCtx(()=>[e.createElementVNode("div",{role:"dialog","aria-modal":"true","aria-label":o.title||void 0,"aria-labelledby":o.title?void 0:e.unref(b),"aria-describedby":e.unref($),class:e.normalizeClass(`${e.unref(l).namespace.value}-overlay-dialog`),style:e.normalizeStyle(e.unref(a)),onClick:e.unref(P).onClick,onMousedown:e.unref(P).onMousedown,onMouseup:e.unref(P).onMouseup},[e.createVNode(e.unref(T.ElFocusTrap),{loop:"",trapped:e.unref(n),"focus-start-el":"container",onFocusAfterTrapped:e.unref(D),onFocusAfterReleased:e.unref(S),onFocusoutPrevented:e.unref(B),onReleaseRequested:e.unref(z)},{default:e.withCtx(()=>[e.unref(i)?(e.openBlock(),e.createBlock(X,e.mergeProps({key:0,ref_key:"dialogContentRef",ref:v},o.$attrs,{center:o.center,"align-center":e.unref(f),"close-icon":o.closeIcon,draggable:e.unref(u),overflow:e.unref(t),fullscreen:o.fullscreen,"header-class":o.headerClass,"body-class":o.bodyClass,"footer-class":o.footerClass,"show-close":o.showClose,title:o.title,"aria-level":o.headerAriaLevel,onClose:e.unref(m)}),e.createSlots({header:e.withCtx(()=>[o.$slots.title?e.renderSlot(o.$slots,"title",{key:1}):e.renderSlot(o.$slots,"header",{key:0,close:e.unref(m),titleId:e.unref(b),titleClass:e.unref(l).e("title")})]),default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:2},[o.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"footer")])}:void 0]),1040,["center","align-center","close-icon","draggable","overflow","fullscreen","header-class","body-class","footer-class","show-close","title","aria-level","onClose"])):e.createCommentVNode("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,["aria-label","aria-labelledby","aria-describedby","onClick","onMousedown","onMouseup"])]),_:3},8,["mask","overlay-class","z-index"]),[[e.vShow,e.unref(n)]])]}),_:3},16)]),_:3},8,["to","disabled"]))}});var U=E._export_sfc(O,[["__file","dialog.vue"]]);const K=E.withInstall(U);exports.ElDialog=K;exports.composeRefs=F;exports.useDraggable=N;
@@ -1 +0,0 @@
1
- "use strict";const e=require("vue"),C=require("./use-form-common-props-344056f9.cjs"),x=require("./index-cebc7160.cjs"),s=require("./base-ef747d02.cjs"),be=require("./typescript-b63f8e83.cjs"),b=require("./el-popper-7ba87e05.cjs"),oe=require("./index-c04f444f.cjs"),Ce=()=>s.isClient&&/firefox/i.test(window.navigator.userAgent);let v;const Ee={height:"0",visibility:"hidden",overflow:Ce()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},xe=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"];function we(n){const d=window.getComputedStyle(n),i=d.getPropertyValue("box-sizing"),o=Number.parseFloat(d.getPropertyValue("padding-bottom"))+Number.parseFloat(d.getPropertyValue("padding-top")),u=Number.parseFloat(d.getPropertyValue("border-bottom-width"))+Number.parseFloat(d.getPropertyValue("border-top-width"));return{contextStyle:xe.map(l=>[l,d.getPropertyValue(l)]),paddingSize:o,borderSize:u,boxSizing:i}}function ne(n,d=1,i){var o,u;v||(v=document.createElement("textarea"),((o=n.parentNode)!=null?o:document.body).appendChild(v));const{paddingSize:c,borderSize:l,boxSizing:h,contextStyle:y}=we(n);y.forEach(([m,g])=>v==null?void 0:v.style.setProperty(m,g)),Object.entries(Ee).forEach(([m,g])=>v==null?void 0:v.style.setProperty(m,g,"important")),v.value=n.value||n.placeholder||"";let f=v.scrollHeight;const p={};h==="border-box"?f=f+l:h==="content-box"&&(f=f-c),v.value="";const I=v.scrollHeight-c;if(s.isNumber(d)){let m=I*d;h==="border-box"&&(m=m+c+l),f=Math.max(m,f),p.minHeight=`${m}px`}if(s.isNumber(i)){let m=I*i;h==="border-box"&&(m=m+c+l),f=Math.min(m,f)}return p.height=`${f}px`,(u=v.parentNode)==null||u.removeChild(v),v=void 0,p}const re=s.buildProps({id:{type:String,default:void 0},size:C.useSizeProp,disabled:Boolean,modelValue:{type:s.definePropType([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:s.definePropType([Boolean,Object]),default:!1},autocomplete:{type:s.definePropType(String),default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:C.iconPropType,default:x.circle_close_default},showPassword:Boolean,showWordLimit:Boolean,suffixIcon:{type:C.iconPropType},prefixIcon:{type:C.iconPropType},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:s.definePropType([Object,Array,String]),default:()=>be.mutable({})},autofocus:Boolean,rows:{type:Number,default:2},...b.useAriaProps(["ariaLabel"]),inputmode:{type:s.definePropType(String),default:void 0},name:String}),ke={[b.UPDATE_MODEL_EVENT]:n=>s.isString(n),input:n=>s.isString(n),change:n=>s.isString(n),focus:n=>n instanceof FocusEvent,blur:n=>n instanceof FocusEvent,clear:()=>!0,mouseleave:n=>n instanceof MouseEvent,mouseenter:n=>n instanceof MouseEvent,keydown:n=>n instanceof Event,compositionstart:n=>n instanceof CompositionEvent,compositionupdate:n=>n instanceof CompositionEvent,compositionend:n=>n instanceof CompositionEvent},Se=["class","style"],Ne=/^on[A-Z]/,Ie=(n={})=>{const{excludeListeners:d=!1,excludeKeys:i}=n,o=e.computed(()=>((i==null?void 0:i.value)||[]).concat(Se)),u=e.getCurrentInstance();return u?e.computed(()=>{var c;return s.fromPairs(Object.entries((c=u.proxy)==null?void 0:c.$attrs).filter(([l])=>!o.value.includes(l)&&!(d&&Ne.test(l))))}):e.computed(()=>({}))};function Be(n){let d;function i(){if(n.value==null)return;const{selectionStart:u,selectionEnd:c,value:l}=n.value;if(u==null||c==null)return;const h=l.slice(0,Math.max(0,u)),y=l.slice(Math.max(0,c));d={selectionStart:u,selectionEnd:c,value:l,beforeTxt:h,afterTxt:y}}function o(){if(n.value==null||d==null)return;const{value:u}=n.value,{beforeTxt:c,afterTxt:l,selectionStart:h}=d;if(c==null||l==null||h==null)return;let y=u.length;if(u.endsWith(l))y=u.length-l.length;else if(u.startsWith(c))y=c.length;else{const f=c[h-1],p=u.indexOf(f,h-1);p!==-1&&(y=p+1)}n.value.setSelectionRange(y,y)}return[i,o]}const Ve="ElInput",ze=e.defineComponent({name:Ve,inheritAttrs:!1}),Pe=e.defineComponent({...ze,props:re,emits:ke,setup(n,{expose:d,emit:i}){const o=n,u=e.useAttrs(),c=Ie(),l=e.useSlots(),h=e.computed(()=>[o.type==="textarea"?H.b():r.b(),r.m(m.value),r.is("disabled",g.value),r.is("exceed",ce.value),{[r.b("group")]:l.prepend||l.append,[r.m("prefix")]:l.prefix||o.prefixIcon,[r.m("suffix")]:l.suffix||o.suffixIcon||o.clearable||o.showPassword,[r.bm("suffix","password-clear")]:D.value&&R.value,[r.b("hidden")]:o.type==="hidden"},u.class]),y=e.computed(()=>[r.e("wrapper"),r.is("focus",O.value)]),{form:f,formItem:p}=C.useFormItem(),{inputId:I}=C.useFormItemInputId(o,{formItemContext:p}),m=C.useFormSize(),g=C.useFormDisabled(),r=s.useNamespace("input"),H=s.useNamespace("textarea"),P=e.shallowRef(),E=e.shallowRef(),M=e.ref(!1),T=e.ref(!1),$=e.ref(),F=e.shallowRef(o.inputStyle),k=e.computed(()=>P.value||E.value),{wrapperRef:ae,isFocused:O,handleFocus:le,handleBlur:se}=oe.useFocusController(k,{disabled:g,afterBlur(){var t;o.validateEvent&&((t=p==null?void 0:p.validate)==null||t.call(p,"blur").catch(a=>b.debugWarn()))}}),K=e.computed(()=>{var t;return(t=f==null?void 0:f.statusIcon)!=null?t:!1}),B=e.computed(()=>(p==null?void 0:p.validateState)||""),U=e.computed(()=>B.value&&C.ValidateComponentsMap[B.value]),ie=e.computed(()=>T.value?x.view_default:x.hide_default),ue=e.computed(()=>[u.style]),j=e.computed(()=>[o.inputStyle,F.value,{resize:o.resize}]),w=e.computed(()=>s.isNil(o.modelValue)?"":String(o.modelValue)),D=e.computed(()=>o.clearable&&!g.value&&!o.readonly&&!!w.value&&(O.value||M.value)),R=e.computed(()=>o.showPassword&&!g.value&&!!w.value),S=e.computed(()=>o.showWordLimit&&!!o.maxlength&&(o.type==="text"||o.type==="textarea")&&!g.value&&!o.readonly&&!o.showPassword),L=e.computed(()=>w.value.length),ce=e.computed(()=>!!S.value&&L.value>Number(o.maxlength)),de=e.computed(()=>!!l.suffix||!!o.suffixIcon||D.value||o.showPassword||S.value||!!B.value&&K.value),[q,W]=Be(P);C.useResizeObserver(E,t=>{if(pe(),!S.value||o.resize!=="both")return;const a=t[0],{width:N}=a.contentRect;$.value={right:`calc(100% - ${N+15+6}px)`}});const V=()=>{const{type:t,autosize:a}=o;if(!(!s.isClient||t!=="textarea"||!E.value))if(a){const N=s.isObject(a)?a.minRows:void 0,ee=s.isObject(a)?a.maxRows:void 0,te=ne(E.value,N,ee);F.value={overflowY:"hidden",...te},e.nextTick(()=>{E.value.offsetHeight,F.value=te})}else F.value={minHeight:ne(E.value).minHeight}},pe=(t=>{let a=!1;return()=>{var N;if(a||!o.autosize)return;((N=E.value)==null?void 0:N.offsetParent)===null||(setTimeout(t),a=!0)}})(V),z=()=>{const t=k.value,a=o.formatter?o.formatter(w.value):w.value;!t||t.value===a||(t.value=a)},A=async t=>{q();let{value:a}=t.target;if(o.formatter&&o.parser&&(a=o.parser(a)),!Y.value){if(a===w.value){z();return}i(b.UPDATE_MODEL_EVENT,a),i(b.INPUT_EVENT,a),await e.nextTick(),z(),W()}},_=t=>{let{value:a}=t.target;o.formatter&&o.parser&&(a=o.parser(a)),i(b.CHANGE_EVENT,a)},{isComposing:Y,handleCompositionStart:X,handleCompositionUpdate:G,handleCompositionEnd:Z}=oe.useComposition({emit:i,afterComposition:A}),fe=()=>{q(),T.value=!T.value,setTimeout(W)},me=()=>{var t;return(t=k.value)==null?void 0:t.focus()},ve=()=>{var t;return(t=k.value)==null?void 0:t.blur()},he=t=>{M.value=!1,i("mouseleave",t)},ye=t=>{M.value=!0,i("mouseenter",t)},J=t=>{i("keydown",t)},ge=()=>{var t;(t=k.value)==null||t.select()},Q=()=>{i(b.UPDATE_MODEL_EVENT,""),i(b.CHANGE_EVENT,""),i("clear"),i(b.INPUT_EVENT,"")};return e.watch(()=>o.modelValue,()=>{var t;e.nextTick(()=>V()),o.validateEvent&&((t=p==null?void 0:p.validate)==null||t.call(p,"change").catch(a=>b.debugWarn()))}),e.watch(w,()=>z()),e.watch(()=>o.type,async()=>{await e.nextTick(),z(),V()}),e.onMounted(()=>{!o.formatter&&o.parser,z(),e.nextTick(V)}),d({input:P,textarea:E,ref:k,textareaStyle:j,autosize:e.toRef(o,"autosize"),isComposing:Y,focus:me,blur:ve,select:ge,clear:Q,resizeTextarea:V}),(t,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(h),{[e.unref(r).bm("group","append")]:t.$slots.append,[e.unref(r).bm("group","prepend")]:t.$slots.prepend}]),style:e.normalizeStyle(e.unref(ue)),onMouseenter:ye,onMouseleave:he},[e.createCommentVNode(" input "),t.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createCommentVNode(" prepend slot "),t.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("group","prepend"))},[e.renderSlot(t.$slots,"prepend")],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref_key:"wrapperRef",ref:ae,class:e.normalizeClass(e.unref(y))},[e.createCommentVNode(" prefix slot "),t.$slots.prefix||t.prefixIcon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(r).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("prefix-inner"))},[e.renderSlot(t.$slots,"prefix"),t.prefixIcon?(e.openBlock(),e.createBlock(e.unref(x.ElIcon),{key:0,class:e.normalizeClass(e.unref(r).e("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.prefixIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(I),ref_key:"input",ref:P,class:e.unref(r).e("inner")},e.unref(c),{name:t.name,minlength:t.minlength,maxlength:t.maxlength,type:t.showPassword?T.value?"text":"password":t.type,disabled:e.unref(g),readonly:t.readonly,autocomplete:t.autocomplete,tabindex:t.tabindex,"aria-label":t.ariaLabel,placeholder:t.placeholder,style:t.inputStyle,form:t.form,autofocus:t.autofocus,role:t.containerRole,inputmode:t.inputmode,onCompositionstart:e.unref(X),onCompositionupdate:e.unref(G),onCompositionend:e.unref(Z),onInput:A,onChange:_,onKeydown:J}),null,16,["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode","onCompositionstart","onCompositionupdate","onCompositionend"]),e.createCommentVNode(" suffix slot "),e.unref(de)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(r).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("suffix-inner"))},[!e.unref(D)||!e.unref(R)||!e.unref(S)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(t.$slots,"suffix"),t.suffixIcon?(e.openBlock(),e.createBlock(e.unref(x.ElIcon),{key:0,class:e.normalizeClass(e.unref(r).e("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.suffixIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],64)):e.createCommentVNode("v-if",!0),e.unref(D)?(e.openBlock(),e.createBlock(e.unref(x.ElIcon),{key:1,class:e.normalizeClass([e.unref(r).e("icon"),e.unref(r).e("clear")]),onMousedown:e.withModifiers(e.unref(s.NOOP),["prevent"]),onClick:Q},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.clearIcon)))]),_:1},8,["class","onMousedown"])):e.createCommentVNode("v-if",!0),e.unref(R)?(e.openBlock(),e.createBlock(e.unref(x.ElIcon),{key:2,class:e.normalizeClass([e.unref(r).e("icon"),e.unref(r).e("password")]),onClick:fe},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(ie))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.unref(S)?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(r).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("count-inner"))},e.toDisplayString(e.unref(L))+" / "+e.toDisplayString(t.maxlength),3)],2)):e.createCommentVNode("v-if",!0),e.unref(B)&&e.unref(U)&&e.unref(K)?(e.openBlock(),e.createBlock(e.unref(x.ElIcon),{key:4,class:e.normalizeClass([e.unref(r).e("icon"),e.unref(r).e("validateIcon"),e.unref(r).is("loading",e.unref(B)==="validating")])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(U))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2)],2)):e.createCommentVNode("v-if",!0)],2),e.createCommentVNode(" append slot "),t.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).be("group","append"))},[e.renderSlot(t.$slots,"append")],2)):e.createCommentVNode("v-if",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" textarea "),e.createElementVNode("textarea",e.mergeProps({id:e.unref(I),ref_key:"textarea",ref:E,class:[e.unref(H).e("inner"),e.unref(r).is("focus",e.unref(O))]},e.unref(c),{minlength:t.minlength,maxlength:t.maxlength,tabindex:t.tabindex,disabled:e.unref(g),readonly:t.readonly,autocomplete:t.autocomplete,style:e.unref(j),"aria-label":t.ariaLabel,placeholder:t.placeholder,form:t.form,autofocus:t.autofocus,rows:t.rows,role:t.containerRole,onCompositionstart:e.unref(X),onCompositionupdate:e.unref(G),onCompositionend:e.unref(Z),onInput:A,onFocus:e.unref(le),onBlur:e.unref(se),onChange:_,onKeydown:J}),null,16,["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role","onCompositionstart","onCompositionupdate","onCompositionend","onFocus","onBlur"]),e.unref(S)?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle($.value),class:e.normalizeClass(e.unref(r).e("count"))},e.toDisplayString(e.unref(L))+" / "+e.toDisplayString(t.maxlength),7)):e.createCommentVNode("v-if",!0)],64))],38))}});var Te=s._export_sfc(Pe,[["__file","input.vue"]]);const Fe=s.withInstall(Te);exports.ElInput=Fe;exports.inputProps=re;