@qxs-bns/components 0.0.27 → 0.0.29

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 (629) hide show
  1. package/es/_virtual/{_plugin-vue_export-helper.js → _plugin-vue_export-helper.mjs} +1 -1
  2. package/es/_virtual/_plugin-vue_export-helper.mjs.map +1 -0
  3. package/es/index.mjs +2 -0
  4. package/es/index.mjs.map +1 -0
  5. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/{style-inject.es.js → style-inject.es.mjs} +1 -1
  6. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs.map +1 -0
  7. package/es/package.json.mjs +2 -0
  8. package/es/package.json.mjs.map +1 -0
  9. package/es/src/components.mjs +2 -0
  10. package/es/src/components.mjs.map +1 -0
  11. package/es/src/data-chart/index.mjs +2 -0
  12. package/es/src/data-chart/index.mjs.map +1 -0
  13. package/es/src/data-chart/src/components/area.vue.mjs +2 -0
  14. package/es/src/data-chart/src/components/area.vue.mjs.map +1 -0
  15. package/es/src/data-chart/src/components/area.vue2.mjs +2 -0
  16. package/es/src/data-chart/src/components/area.vue2.mjs.map +1 -0
  17. package/es/src/data-chart/src/components/area.vue3.mjs +2 -0
  18. package/es/src/data-chart/src/components/area.vue3.mjs.map +1 -0
  19. package/es/src/data-chart/src/components/bar.vue.mjs +2 -0
  20. package/es/src/data-chart/src/components/bar.vue.mjs.map +1 -0
  21. package/es/src/data-chart/src/components/bar.vue2.mjs +2 -0
  22. package/es/src/data-chart/src/components/bar.vue2.mjs.map +1 -0
  23. package/es/src/data-chart/src/components/card.vue.mjs +2 -0
  24. package/es/src/data-chart/src/components/card.vue.mjs.map +1 -0
  25. package/es/src/data-chart/src/components/card.vue2.mjs +2 -0
  26. package/es/src/data-chart/src/components/card.vue2.mjs.map +1 -0
  27. package/es/src/data-chart/src/components/card.vue3.mjs +2 -0
  28. package/es/src/data-chart/src/components/card.vue3.mjs.map +1 -0
  29. package/es/src/data-chart/src/components/{empty.svg.js → empty.svg.mjs} +1 -1
  30. package/es/src/data-chart/src/components/empty.svg.mjs.map +1 -0
  31. package/es/src/data-chart/src/components/empty.vue.mjs +2 -0
  32. package/es/src/data-chart/src/components/empty.vue.mjs.map +1 -0
  33. package/es/src/data-chart/src/components/empty.vue2.mjs +2 -0
  34. package/es/src/data-chart/src/components/empty.vue2.mjs.map +1 -0
  35. package/es/src/data-chart/src/components/funnel.vue.mjs +2 -0
  36. package/es/src/data-chart/src/components/funnel.vue.mjs.map +1 -0
  37. package/es/src/data-chart/src/components/funnel.vue2.mjs +2 -0
  38. package/es/src/data-chart/src/components/funnel.vue2.mjs.map +1 -0
  39. package/es/src/data-chart/src/components/line.vue.mjs +2 -0
  40. package/es/src/data-chart/src/components/line.vue.mjs.map +1 -0
  41. package/es/src/data-chart/src/components/line.vue2.mjs +2 -0
  42. package/es/src/data-chart/src/components/line.vue2.mjs.map +1 -0
  43. package/es/src/data-chart/src/components/line.vue3.mjs +2 -0
  44. package/es/src/data-chart/src/components/line.vue3.mjs.map +1 -0
  45. package/es/src/data-chart/src/components/pie.vue.mjs +2 -0
  46. package/es/src/data-chart/src/components/pie.vue.mjs.map +1 -0
  47. package/es/src/data-chart/src/components/pie.vue2.mjs +2 -0
  48. package/es/src/data-chart/src/components/pie.vue2.mjs.map +1 -0
  49. package/es/src/data-chart/src/components/radar.vue.mjs +2 -0
  50. package/es/src/data-chart/src/components/radar.vue.mjs.map +1 -0
  51. package/es/src/data-chart/src/components/radar.vue2.mjs +2 -0
  52. package/es/src/data-chart/src/components/radar.vue2.mjs.map +1 -0
  53. package/es/src/data-chart/src/components/scatter-simple.vue.mjs +2 -0
  54. package/es/src/data-chart/src/components/scatter-simple.vue.mjs.map +1 -0
  55. package/es/src/data-chart/src/components/scatter-simple.vue2.mjs +2 -0
  56. package/es/src/data-chart/src/components/scatter-simple.vue2.mjs.map +1 -0
  57. package/es/src/data-chart/src/components/scatter.vue.mjs +2 -0
  58. package/es/src/data-chart/src/components/scatter.vue.mjs.map +1 -0
  59. package/es/src/data-chart/src/components/scatter.vue2.mjs +2 -0
  60. package/es/src/data-chart/src/components/scatter.vue2.mjs.map +1 -0
  61. package/es/src/data-chart/src/components/table.vue.mjs +2 -0
  62. package/es/src/data-chart/src/components/table.vue.mjs.map +1 -0
  63. package/es/src/data-chart/src/components/table.vue2.mjs +2 -0
  64. package/es/src/data-chart/src/components/table.vue2.mjs.map +1 -0
  65. package/es/src/data-chart/src/data-chart.vue.mjs +2 -0
  66. package/es/src/data-chart/src/data-chart.vue.mjs.map +1 -0
  67. package/es/src/data-chart/src/data-chart.vue2.mjs +2 -0
  68. package/es/src/data-chart/src/data-chart.vue2.mjs.map +1 -0
  69. package/es/src/data-chart/src/utils/{config.js → config.mjs} +1 -1
  70. package/es/src/data-chart/src/utils/config.mjs.map +1 -0
  71. package/es/src/data-chart/src/utils/{injectionKeys.js → injectionKeys.mjs} +1 -1
  72. package/es/src/data-chart/src/utils/injectionKeys.mjs.map +1 -0
  73. package/es/src/data-chart/src/utils/useCharts.mjs +2 -0
  74. package/es/src/data-chart/src/utils/useCharts.mjs.map +1 -0
  75. package/es/src/defaults.mjs +2 -0
  76. package/es/src/defaults.mjs.map +1 -0
  77. package/es/src/file-upload/index.mjs +2 -0
  78. package/es/src/file-upload/index.mjs.map +1 -0
  79. package/es/src/file-upload/src/file-upload.vue.mjs +2 -0
  80. package/es/src/file-upload/src/file-upload.vue.mjs.map +1 -0
  81. package/es/src/file-upload/src/file-upload.vue2.mjs +2 -0
  82. package/es/src/file-upload/src/file-upload.vue2.mjs.map +1 -0
  83. package/es/src/fixed-action-bar/index.mjs +2 -0
  84. package/es/src/fixed-action-bar/index.mjs.map +1 -0
  85. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs +2 -0
  86. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs.map +1 -0
  87. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs +2 -0
  88. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs.map +1 -0
  89. package/es/src/image-upload/index.mjs +2 -0
  90. package/es/src/image-upload/index.mjs.map +1 -0
  91. package/es/src/image-upload/src/image-upload.vue.mjs +2 -0
  92. package/es/src/image-upload/src/image-upload.vue.mjs.map +1 -0
  93. package/es/src/image-upload/src/image-upload.vue2.mjs +2 -0
  94. package/es/src/image-upload/src/image-upload.vue2.mjs.map +1 -0
  95. package/es/src/make-installer.mjs +2 -0
  96. package/es/src/make-installer.mjs.map +1 -0
  97. package/es/src/photo-crop-tool/index.mjs +2 -0
  98. package/es/src/photo-crop-tool/index.mjs.map +1 -0
  99. package/es/src/photo-crop-tool/src/composables.mjs +2 -0
  100. package/es/src/photo-crop-tool/src/composables.mjs.map +1 -0
  101. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs +2 -0
  102. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs.map +1 -0
  103. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs +2 -0
  104. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs.map +1 -0
  105. package/es/src/subject-action/index.mjs +2 -0
  106. package/es/src/subject-action/index.mjs.map +1 -0
  107. package/es/src/subject-action/src/subject-action.vue.mjs +2 -0
  108. package/es/src/subject-action/src/subject-action.vue.mjs.map +1 -0
  109. package/es/src/subject-action/src/subject-action.vue2.mjs +2 -0
  110. package/es/src/subject-action/src/subject-action.vue2.mjs.map +1 -0
  111. package/es/src/subject-layout/index.mjs +2 -0
  112. package/es/src/subject-layout/index.mjs.map +1 -0
  113. package/es/src/subject-layout/src/{subject-layout.vue.js → subject-layout.vue.mjs} +1 -1
  114. package/es/src/subject-layout/src/subject-layout.vue.mjs.map +1 -0
  115. package/es/src/subject-layout/src/subject-layout.vue2.mjs +2 -0
  116. package/es/src/subject-layout/src/subject-layout.vue2.mjs.map +1 -0
  117. package/es/src/subject-list/index.mjs +2 -0
  118. package/es/src/subject-list/index.mjs.map +1 -0
  119. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +2 -0
  120. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +1 -0
  121. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs +2 -0
  122. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs.map +1 -0
  123. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs +2 -0
  124. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs.map +1 -0
  125. package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs +2 -0
  126. package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs.map +1 -0
  127. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +2 -0
  128. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +1 -0
  129. package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs +2 -0
  130. package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs.map +1 -0
  131. package/es/src/subject-list/src/components/subject-scale.vue.mjs +2 -0
  132. package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +1 -0
  133. package/es/src/subject-list/src/components/subject-scale.vue2.mjs +2 -0
  134. package/es/src/subject-list/src/components/subject-scale.vue2.mjs.map +1 -0
  135. package/es/src/subject-list/src/components/subject-single.vue.mjs +2 -0
  136. package/es/src/subject-list/src/components/subject-single.vue.mjs.map +1 -0
  137. package/es/src/subject-list/src/components/subject-single.vue2.mjs +2 -0
  138. package/es/src/subject-list/src/components/subject-single.vue2.mjs.map +1 -0
  139. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +2 -0
  140. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +1 -0
  141. package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs +2 -0
  142. package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs.map +1 -0
  143. package/es/src/subject-list/src/subject-list.vue.mjs +2 -0
  144. package/es/src/subject-list/src/subject-list.vue.mjs.map +1 -0
  145. package/es/src/subject-list/src/subject-list.vue2.mjs +2 -0
  146. package/es/src/subject-list/src/subject-list.vue2.mjs.map +1 -0
  147. package/es/src/subject-type/index.mjs +2 -0
  148. package/es/src/subject-type/index.mjs.map +1 -0
  149. package/es/src/subject-type/src/subject-type.vue.mjs +2 -0
  150. package/es/src/subject-type/src/subject-type.vue.mjs.map +1 -0
  151. package/es/src/subject-type/src/subject-type.vue2.mjs +2 -0
  152. package/es/src/subject-type/src/subject-type.vue2.mjs.map +1 -0
  153. package/es/src/tiny-mce-editor/index.mjs +2 -0
  154. package/es/src/tiny-mce-editor/index.mjs.map +1 -0
  155. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs +2 -0
  156. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs.map +1 -0
  157. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.mjs +2 -0
  158. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.mjs.map +1 -0
  159. package/es/src/{withInstall.js → withInstall.mjs} +1 -1
  160. package/es/src/withInstall.mjs.map +1 -0
  161. package/lib/_virtual/{_plugin-vue_export-helper.js → _plugin-vue_export-helper.cjs} +1 -1
  162. package/lib/_virtual/_plugin-vue_export-helper.cjs.map +1 -0
  163. package/lib/index.cjs +2 -0
  164. package/lib/index.cjs.map +1 -0
  165. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/{style-inject.es.js → style-inject.es.cjs} +1 -1
  166. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs.map +1 -0
  167. package/lib/package.json.cjs +2 -0
  168. package/lib/package.json.cjs.map +1 -0
  169. package/lib/src/components.cjs +2 -0
  170. package/lib/src/components.cjs.map +1 -0
  171. package/lib/src/data-chart/index.cjs +2 -0
  172. package/lib/src/data-chart/index.cjs.map +1 -0
  173. package/lib/src/data-chart/src/components/area.vue.cjs +2 -0
  174. package/lib/src/data-chart/src/components/area.vue.cjs.map +1 -0
  175. package/lib/src/data-chart/src/components/area.vue2.cjs +2 -0
  176. package/lib/src/data-chart/src/components/area.vue2.cjs.map +1 -0
  177. package/lib/src/data-chart/src/components/{area.vue3.js → area.vue3.cjs} +2 -2
  178. package/lib/src/data-chart/src/components/area.vue3.cjs.map +1 -0
  179. package/lib/src/data-chart/src/components/bar.vue.cjs +2 -0
  180. package/lib/src/data-chart/src/components/bar.vue.cjs.map +1 -0
  181. package/lib/src/data-chart/src/components/bar.vue2.cjs +2 -0
  182. package/lib/src/data-chart/src/components/bar.vue2.cjs.map +1 -0
  183. package/lib/src/data-chart/src/components/card.vue.cjs +2 -0
  184. package/lib/src/data-chart/src/components/card.vue.cjs.map +1 -0
  185. package/lib/src/data-chart/src/components/card.vue2.cjs +2 -0
  186. package/lib/src/data-chart/src/components/card.vue2.cjs.map +1 -0
  187. package/lib/src/data-chart/src/components/{card.vue3.js → card.vue3.cjs} +2 -2
  188. package/lib/src/data-chart/src/components/card.vue3.cjs.map +1 -0
  189. package/lib/src/data-chart/src/components/{empty.svg.js → empty.svg.cjs} +1 -1
  190. package/lib/src/data-chart/src/components/empty.svg.cjs.map +1 -0
  191. package/lib/src/data-chart/src/components/empty.vue.cjs +2 -0
  192. package/lib/src/data-chart/src/components/empty.vue.cjs.map +1 -0
  193. package/lib/src/data-chart/src/components/empty.vue2.cjs +2 -0
  194. package/lib/src/data-chart/src/components/empty.vue2.cjs.map +1 -0
  195. package/lib/src/data-chart/src/components/funnel.vue.cjs +2 -0
  196. package/lib/src/data-chart/src/components/funnel.vue.cjs.map +1 -0
  197. package/lib/src/data-chart/src/components/funnel.vue2.cjs +2 -0
  198. package/lib/src/data-chart/src/components/funnel.vue2.cjs.map +1 -0
  199. package/lib/src/data-chart/src/components/line.vue.cjs +2 -0
  200. package/lib/src/data-chart/src/components/line.vue.cjs.map +1 -0
  201. package/lib/src/data-chart/src/components/line.vue2.cjs +2 -0
  202. package/lib/src/data-chart/src/components/line.vue2.cjs.map +1 -0
  203. package/lib/src/data-chart/src/components/{line.vue3.js → line.vue3.cjs} +2 -2
  204. package/lib/src/data-chart/src/components/line.vue3.cjs.map +1 -0
  205. package/lib/src/data-chart/src/components/pie.vue.cjs +2 -0
  206. package/lib/src/data-chart/src/components/pie.vue.cjs.map +1 -0
  207. package/lib/src/data-chart/src/components/pie.vue2.cjs +2 -0
  208. package/lib/src/data-chart/src/components/pie.vue2.cjs.map +1 -0
  209. package/lib/src/data-chart/src/components/radar.vue.cjs +2 -0
  210. package/lib/src/data-chart/src/components/radar.vue.cjs.map +1 -0
  211. package/lib/src/data-chart/src/components/radar.vue2.cjs +2 -0
  212. package/lib/src/data-chart/src/components/radar.vue2.cjs.map +1 -0
  213. package/lib/src/data-chart/src/components/scatter-simple.vue.cjs +2 -0
  214. package/lib/src/data-chart/src/components/scatter-simple.vue.cjs.map +1 -0
  215. package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs +2 -0
  216. package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs.map +1 -0
  217. package/lib/src/data-chart/src/components/scatter.vue.cjs +2 -0
  218. package/lib/src/data-chart/src/components/scatter.vue.cjs.map +1 -0
  219. package/lib/src/data-chart/src/components/scatter.vue2.cjs +2 -0
  220. package/lib/src/data-chart/src/components/scatter.vue2.cjs.map +1 -0
  221. package/lib/src/data-chart/src/components/table.vue.cjs +2 -0
  222. package/lib/src/data-chart/src/components/table.vue.cjs.map +1 -0
  223. package/lib/src/data-chart/src/components/table.vue2.cjs +2 -0
  224. package/lib/src/data-chart/src/components/table.vue2.cjs.map +1 -0
  225. package/lib/src/data-chart/src/data-chart.vue.cjs +2 -0
  226. package/lib/src/data-chart/src/data-chart.vue.cjs.map +1 -0
  227. package/lib/src/data-chart/src/data-chart.vue2.cjs +2 -0
  228. package/lib/src/data-chart/src/data-chart.vue2.cjs.map +1 -0
  229. package/lib/src/data-chart/src/utils/{config.js → config.cjs} +1 -1
  230. package/lib/src/data-chart/src/utils/config.cjs.map +1 -0
  231. package/lib/src/data-chart/src/utils/{injectionKeys.js → injectionKeys.cjs} +1 -1
  232. package/lib/src/data-chart/src/utils/injectionKeys.cjs.map +1 -0
  233. package/lib/src/data-chart/src/utils/useCharts.cjs +2 -0
  234. package/lib/src/data-chart/src/utils/useCharts.cjs.map +1 -0
  235. package/lib/src/defaults.cjs +2 -0
  236. package/lib/src/defaults.cjs.map +1 -0
  237. package/lib/src/file-upload/index.cjs +2 -0
  238. package/lib/src/file-upload/index.cjs.map +1 -0
  239. package/lib/src/file-upload/src/file-upload.vue.cjs +2 -0
  240. package/lib/src/file-upload/src/file-upload.vue.cjs.map +1 -0
  241. package/lib/src/file-upload/src/file-upload.vue2.cjs +2 -0
  242. package/lib/src/file-upload/src/file-upload.vue2.cjs.map +1 -0
  243. package/lib/src/fixed-action-bar/index.cjs +2 -0
  244. package/lib/src/fixed-action-bar/index.cjs.map +1 -0
  245. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs +2 -0
  246. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs.map +1 -0
  247. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs +2 -0
  248. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs.map +1 -0
  249. package/lib/src/image-upload/index.cjs +2 -0
  250. package/lib/src/image-upload/index.cjs.map +1 -0
  251. package/lib/src/image-upload/src/image-upload.vue.cjs +2 -0
  252. package/lib/src/image-upload/src/image-upload.vue.cjs.map +1 -0
  253. package/lib/src/image-upload/src/image-upload.vue2.cjs +2 -0
  254. package/lib/src/image-upload/src/image-upload.vue2.cjs.map +1 -0
  255. package/lib/src/make-installer.cjs +2 -0
  256. package/lib/src/make-installer.cjs.map +1 -0
  257. package/lib/src/photo-crop-tool/index.cjs +2 -0
  258. package/lib/src/photo-crop-tool/index.cjs.map +1 -0
  259. package/lib/src/photo-crop-tool/src/composables.cjs +2 -0
  260. package/lib/src/photo-crop-tool/src/composables.cjs.map +1 -0
  261. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs +2 -0
  262. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs.map +1 -0
  263. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs +2 -0
  264. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs.map +1 -0
  265. package/lib/src/subject-action/index.cjs +2 -0
  266. package/lib/src/subject-action/index.cjs.map +1 -0
  267. package/lib/src/subject-action/src/subject-action.vue.cjs +2 -0
  268. package/lib/src/subject-action/src/subject-action.vue.cjs.map +1 -0
  269. package/lib/src/subject-action/src/subject-action.vue2.cjs +2 -0
  270. package/lib/src/subject-action/src/subject-action.vue2.cjs.map +1 -0
  271. package/lib/src/subject-layout/index.cjs +2 -0
  272. package/lib/src/subject-layout/index.cjs.map +1 -0
  273. package/lib/src/subject-layout/src/{subject-layout.vue.js → subject-layout.vue.cjs} +1 -1
  274. package/lib/src/subject-layout/src/subject-layout.vue.cjs.map +1 -0
  275. package/lib/src/subject-layout/src/subject-layout.vue2.cjs +2 -0
  276. package/lib/src/subject-layout/src/subject-layout.vue2.cjs.map +1 -0
  277. package/lib/src/subject-list/index.cjs +2 -0
  278. package/lib/src/subject-list/index.cjs.map +1 -0
  279. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +2 -0
  280. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +1 -0
  281. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs +2 -0
  282. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs.map +1 -0
  283. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs +2 -0
  284. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs.map +1 -0
  285. package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs +2 -0
  286. package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs.map +1 -0
  287. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +2 -0
  288. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +1 -0
  289. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs +2 -0
  290. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs.map +1 -0
  291. package/lib/src/subject-list/src/components/subject-scale.vue.cjs +2 -0
  292. package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +1 -0
  293. package/lib/src/subject-list/src/components/subject-scale.vue2.cjs +2 -0
  294. package/lib/src/subject-list/src/components/subject-scale.vue2.cjs.map +1 -0
  295. package/lib/src/subject-list/src/components/subject-single.vue.cjs +2 -0
  296. package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +1 -0
  297. package/lib/src/subject-list/src/components/subject-single.vue2.cjs +2 -0
  298. package/lib/src/subject-list/src/components/subject-single.vue2.cjs.map +1 -0
  299. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +2 -0
  300. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +1 -0
  301. package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs +2 -0
  302. package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs.map +1 -0
  303. package/lib/src/subject-list/src/subject-list.vue.cjs +2 -0
  304. package/lib/src/subject-list/src/subject-list.vue.cjs.map +1 -0
  305. package/lib/src/subject-list/src/subject-list.vue2.cjs +2 -0
  306. package/lib/src/subject-list/src/subject-list.vue2.cjs.map +1 -0
  307. package/lib/src/subject-type/index.cjs +2 -0
  308. package/lib/src/subject-type/index.cjs.map +1 -0
  309. package/lib/src/subject-type/src/subject-type.vue.cjs +2 -0
  310. package/lib/src/subject-type/src/subject-type.vue.cjs.map +1 -0
  311. package/lib/src/subject-type/src/subject-type.vue2.cjs +2 -0
  312. package/lib/src/subject-type/src/subject-type.vue2.cjs.map +1 -0
  313. package/lib/src/tiny-mce-editor/index.cjs +2 -0
  314. package/lib/src/tiny-mce-editor/index.cjs.map +1 -0
  315. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs +2 -0
  316. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs.map +1 -0
  317. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue2.cjs +2 -0
  318. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue2.cjs.map +1 -0
  319. package/lib/src/{withInstall.js → withInstall.cjs} +1 -1
  320. package/lib/src/withInstall.cjs.map +1 -0
  321. package/package.json +19 -17
  322. package/types/src/data-chart/src/utils/useCharts.d.ts.map +1 -1
  323. package/types/src/make-installer.d.ts +1 -1
  324. package/types/src/make-installer.d.ts.map +1 -1
  325. package/types/src/photo-crop-tool/src/composables.d.ts.map +1 -1
  326. package/types/tsconfig.tsbuildinfo +1 -1
  327. package/es/_virtual/_plugin-vue_export-helper.js.map +0 -1
  328. package/es/index.js +0 -2
  329. package/es/index.js.map +0 -1
  330. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
  331. package/es/package.json.js +0 -2
  332. package/es/package.json.js.map +0 -1
  333. package/es/src/components.js +0 -2
  334. package/es/src/components.js.map +0 -1
  335. package/es/src/data-chart/index.js +0 -2
  336. package/es/src/data-chart/index.js.map +0 -1
  337. package/es/src/data-chart/src/components/area.vue.js +0 -2
  338. package/es/src/data-chart/src/components/area.vue.js.map +0 -1
  339. package/es/src/data-chart/src/components/area.vue2.js +0 -2
  340. package/es/src/data-chart/src/components/area.vue2.js.map +0 -1
  341. package/es/src/data-chart/src/components/area.vue3.js +0 -2
  342. package/es/src/data-chart/src/components/area.vue3.js.map +0 -1
  343. package/es/src/data-chart/src/components/bar.vue.js +0 -2
  344. package/es/src/data-chart/src/components/bar.vue.js.map +0 -1
  345. package/es/src/data-chart/src/components/bar.vue2.js +0 -2
  346. package/es/src/data-chart/src/components/bar.vue2.js.map +0 -1
  347. package/es/src/data-chart/src/components/card.vue.js +0 -2
  348. package/es/src/data-chart/src/components/card.vue.js.map +0 -1
  349. package/es/src/data-chart/src/components/card.vue2.js +0 -2
  350. package/es/src/data-chart/src/components/card.vue2.js.map +0 -1
  351. package/es/src/data-chart/src/components/card.vue3.js +0 -2
  352. package/es/src/data-chart/src/components/card.vue3.js.map +0 -1
  353. package/es/src/data-chart/src/components/empty.svg.js.map +0 -1
  354. package/es/src/data-chart/src/components/empty.vue.js +0 -2
  355. package/es/src/data-chart/src/components/empty.vue.js.map +0 -1
  356. package/es/src/data-chart/src/components/empty.vue2.js +0 -2
  357. package/es/src/data-chart/src/components/empty.vue2.js.map +0 -1
  358. package/es/src/data-chart/src/components/funnel.vue.js +0 -2
  359. package/es/src/data-chart/src/components/funnel.vue.js.map +0 -1
  360. package/es/src/data-chart/src/components/funnel.vue2.js +0 -2
  361. package/es/src/data-chart/src/components/funnel.vue2.js.map +0 -1
  362. package/es/src/data-chart/src/components/line.vue.js +0 -2
  363. package/es/src/data-chart/src/components/line.vue.js.map +0 -1
  364. package/es/src/data-chart/src/components/line.vue2.js +0 -2
  365. package/es/src/data-chart/src/components/line.vue2.js.map +0 -1
  366. package/es/src/data-chart/src/components/line.vue3.js +0 -2
  367. package/es/src/data-chart/src/components/line.vue3.js.map +0 -1
  368. package/es/src/data-chart/src/components/pie.vue.js +0 -2
  369. package/es/src/data-chart/src/components/pie.vue.js.map +0 -1
  370. package/es/src/data-chart/src/components/pie.vue2.js +0 -2
  371. package/es/src/data-chart/src/components/pie.vue2.js.map +0 -1
  372. package/es/src/data-chart/src/components/radar.vue.js +0 -2
  373. package/es/src/data-chart/src/components/radar.vue.js.map +0 -1
  374. package/es/src/data-chart/src/components/radar.vue2.js +0 -2
  375. package/es/src/data-chart/src/components/radar.vue2.js.map +0 -1
  376. package/es/src/data-chart/src/components/scatter-simple.vue.js +0 -2
  377. package/es/src/data-chart/src/components/scatter-simple.vue.js.map +0 -1
  378. package/es/src/data-chart/src/components/scatter-simple.vue2.js +0 -2
  379. package/es/src/data-chart/src/components/scatter-simple.vue2.js.map +0 -1
  380. package/es/src/data-chart/src/components/scatter.vue.js +0 -2
  381. package/es/src/data-chart/src/components/scatter.vue.js.map +0 -1
  382. package/es/src/data-chart/src/components/scatter.vue2.js +0 -2
  383. package/es/src/data-chart/src/components/scatter.vue2.js.map +0 -1
  384. package/es/src/data-chart/src/components/table.vue.js +0 -2
  385. package/es/src/data-chart/src/components/table.vue.js.map +0 -1
  386. package/es/src/data-chart/src/components/table.vue2.js +0 -2
  387. package/es/src/data-chart/src/components/table.vue2.js.map +0 -1
  388. package/es/src/data-chart/src/data-chart.vue.js +0 -2
  389. package/es/src/data-chart/src/data-chart.vue.js.map +0 -1
  390. package/es/src/data-chart/src/data-chart.vue2.js +0 -2
  391. package/es/src/data-chart/src/data-chart.vue2.js.map +0 -1
  392. package/es/src/data-chart/src/utils/config.js.map +0 -1
  393. package/es/src/data-chart/src/utils/injectionKeys.js.map +0 -1
  394. package/es/src/data-chart/src/utils/useCharts.js +0 -2
  395. package/es/src/data-chart/src/utils/useCharts.js.map +0 -1
  396. package/es/src/defaults.js +0 -2
  397. package/es/src/defaults.js.map +0 -1
  398. package/es/src/file-upload/index.js +0 -2
  399. package/es/src/file-upload/index.js.map +0 -1
  400. package/es/src/file-upload/src/file-upload.vue.js +0 -2
  401. package/es/src/file-upload/src/file-upload.vue.js.map +0 -1
  402. package/es/src/file-upload/src/file-upload.vue2.js +0 -2
  403. package/es/src/file-upload/src/file-upload.vue2.js.map +0 -1
  404. package/es/src/fixed-action-bar/index.js +0 -2
  405. package/es/src/fixed-action-bar/index.js.map +0 -1
  406. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.js +0 -2
  407. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.js.map +0 -1
  408. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.js +0 -2
  409. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.js.map +0 -1
  410. package/es/src/image-upload/index.js +0 -2
  411. package/es/src/image-upload/index.js.map +0 -1
  412. package/es/src/image-upload/src/image-upload.vue.js +0 -2
  413. package/es/src/image-upload/src/image-upload.vue.js.map +0 -1
  414. package/es/src/image-upload/src/image-upload.vue2.js +0 -2
  415. package/es/src/image-upload/src/image-upload.vue2.js.map +0 -1
  416. package/es/src/make-installer.js +0 -2
  417. package/es/src/make-installer.js.map +0 -1
  418. package/es/src/photo-crop-tool/index.js +0 -2
  419. package/es/src/photo-crop-tool/index.js.map +0 -1
  420. package/es/src/photo-crop-tool/src/composables.js +0 -2
  421. package/es/src/photo-crop-tool/src/composables.js.map +0 -1
  422. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.js +0 -2
  423. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.js.map +0 -1
  424. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.js +0 -2
  425. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.js.map +0 -1
  426. package/es/src/subject-action/index.js +0 -2
  427. package/es/src/subject-action/index.js.map +0 -1
  428. package/es/src/subject-action/src/subject-action.vue.js +0 -2
  429. package/es/src/subject-action/src/subject-action.vue.js.map +0 -1
  430. package/es/src/subject-action/src/subject-action.vue2.js +0 -2
  431. package/es/src/subject-action/src/subject-action.vue2.js.map +0 -1
  432. package/es/src/subject-layout/index.js +0 -2
  433. package/es/src/subject-layout/index.js.map +0 -1
  434. package/es/src/subject-layout/src/subject-layout.vue.js.map +0 -1
  435. package/es/src/subject-layout/src/subject-layout.vue2.js +0 -2
  436. package/es/src/subject-layout/src/subject-layout.vue2.js.map +0 -1
  437. package/es/src/subject-list/index.js +0 -2
  438. package/es/src/subject-list/index.js.map +0 -1
  439. package/es/src/subject-list/src/components/SubjectPageEnd.vue.js +0 -2
  440. package/es/src/subject-list/src/components/SubjectPageEnd.vue.js.map +0 -1
  441. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.js +0 -2
  442. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.js.map +0 -1
  443. package/es/src/subject-list/src/components/SubjectRichText.vue.js +0 -2
  444. package/es/src/subject-list/src/components/SubjectRichText.vue.js.map +0 -1
  445. package/es/src/subject-list/src/components/SubjectRichText.vue2.js +0 -2
  446. package/es/src/subject-list/src/components/SubjectRichText.vue2.js.map +0 -1
  447. package/es/src/subject-list/src/components/subject-blank-fill.vue.js +0 -2
  448. package/es/src/subject-list/src/components/subject-blank-fill.vue.js.map +0 -1
  449. package/es/src/subject-list/src/components/subject-blank-fill.vue2.js +0 -2
  450. package/es/src/subject-list/src/components/subject-blank-fill.vue2.js.map +0 -1
  451. package/es/src/subject-list/src/components/subject-scale.vue.js +0 -2
  452. package/es/src/subject-list/src/components/subject-scale.vue.js.map +0 -1
  453. package/es/src/subject-list/src/components/subject-scale.vue2.js +0 -2
  454. package/es/src/subject-list/src/components/subject-scale.vue2.js.map +0 -1
  455. package/es/src/subject-list/src/components/subject-single.vue.js +0 -2
  456. package/es/src/subject-list/src/components/subject-single.vue.js.map +0 -1
  457. package/es/src/subject-list/src/components/subject-single.vue2.js +0 -2
  458. package/es/src/subject-list/src/components/subject-single.vue2.js.map +0 -1
  459. package/es/src/subject-list/src/components/subject-text-fill.vue.js +0 -2
  460. package/es/src/subject-list/src/components/subject-text-fill.vue.js.map +0 -1
  461. package/es/src/subject-list/src/components/subject-text-fill.vue2.js +0 -2
  462. package/es/src/subject-list/src/components/subject-text-fill.vue2.js.map +0 -1
  463. package/es/src/subject-list/src/subject-list.vue.js +0 -2
  464. package/es/src/subject-list/src/subject-list.vue.js.map +0 -1
  465. package/es/src/subject-list/src/subject-list.vue2.js +0 -2
  466. package/es/src/subject-list/src/subject-list.vue2.js.map +0 -1
  467. package/es/src/subject-type/index.js +0 -2
  468. package/es/src/subject-type/index.js.map +0 -1
  469. package/es/src/subject-type/src/subject-type.vue.js +0 -2
  470. package/es/src/subject-type/src/subject-type.vue.js.map +0 -1
  471. package/es/src/subject-type/src/subject-type.vue2.js +0 -2
  472. package/es/src/subject-type/src/subject-type.vue2.js.map +0 -1
  473. package/es/src/tiny-mce-editor/index.js +0 -2
  474. package/es/src/tiny-mce-editor/index.js.map +0 -1
  475. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.js +0 -2
  476. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.js.map +0 -1
  477. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.js +0 -2
  478. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.js.map +0 -1
  479. package/es/src/withInstall.js.map +0 -1
  480. package/lib/_virtual/_plugin-vue_export-helper.js.map +0 -1
  481. package/lib/index.js +0 -2
  482. package/lib/index.js.map +0 -1
  483. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
  484. package/lib/package.json.js +0 -2
  485. package/lib/package.json.js.map +0 -1
  486. package/lib/src/components.js +0 -2
  487. package/lib/src/components.js.map +0 -1
  488. package/lib/src/data-chart/index.js +0 -2
  489. package/lib/src/data-chart/index.js.map +0 -1
  490. package/lib/src/data-chart/src/components/area.vue.js +0 -2
  491. package/lib/src/data-chart/src/components/area.vue.js.map +0 -1
  492. package/lib/src/data-chart/src/components/area.vue2.js +0 -2
  493. package/lib/src/data-chart/src/components/area.vue2.js.map +0 -1
  494. package/lib/src/data-chart/src/components/area.vue3.js.map +0 -1
  495. package/lib/src/data-chart/src/components/bar.vue.js +0 -2
  496. package/lib/src/data-chart/src/components/bar.vue.js.map +0 -1
  497. package/lib/src/data-chart/src/components/bar.vue2.js +0 -2
  498. package/lib/src/data-chart/src/components/bar.vue2.js.map +0 -1
  499. package/lib/src/data-chart/src/components/card.vue.js +0 -2
  500. package/lib/src/data-chart/src/components/card.vue.js.map +0 -1
  501. package/lib/src/data-chart/src/components/card.vue2.js +0 -2
  502. package/lib/src/data-chart/src/components/card.vue2.js.map +0 -1
  503. package/lib/src/data-chart/src/components/card.vue3.js.map +0 -1
  504. package/lib/src/data-chart/src/components/empty.svg.js.map +0 -1
  505. package/lib/src/data-chart/src/components/empty.vue.js +0 -2
  506. package/lib/src/data-chart/src/components/empty.vue.js.map +0 -1
  507. package/lib/src/data-chart/src/components/empty.vue2.js +0 -2
  508. package/lib/src/data-chart/src/components/empty.vue2.js.map +0 -1
  509. package/lib/src/data-chart/src/components/funnel.vue.js +0 -2
  510. package/lib/src/data-chart/src/components/funnel.vue.js.map +0 -1
  511. package/lib/src/data-chart/src/components/funnel.vue2.js +0 -2
  512. package/lib/src/data-chart/src/components/funnel.vue2.js.map +0 -1
  513. package/lib/src/data-chart/src/components/line.vue.js +0 -2
  514. package/lib/src/data-chart/src/components/line.vue.js.map +0 -1
  515. package/lib/src/data-chart/src/components/line.vue2.js +0 -2
  516. package/lib/src/data-chart/src/components/line.vue2.js.map +0 -1
  517. package/lib/src/data-chart/src/components/line.vue3.js.map +0 -1
  518. package/lib/src/data-chart/src/components/pie.vue.js +0 -2
  519. package/lib/src/data-chart/src/components/pie.vue.js.map +0 -1
  520. package/lib/src/data-chart/src/components/pie.vue2.js +0 -2
  521. package/lib/src/data-chart/src/components/pie.vue2.js.map +0 -1
  522. package/lib/src/data-chart/src/components/radar.vue.js +0 -2
  523. package/lib/src/data-chart/src/components/radar.vue.js.map +0 -1
  524. package/lib/src/data-chart/src/components/radar.vue2.js +0 -2
  525. package/lib/src/data-chart/src/components/radar.vue2.js.map +0 -1
  526. package/lib/src/data-chart/src/components/scatter-simple.vue.js +0 -2
  527. package/lib/src/data-chart/src/components/scatter-simple.vue.js.map +0 -1
  528. package/lib/src/data-chart/src/components/scatter-simple.vue2.js +0 -2
  529. package/lib/src/data-chart/src/components/scatter-simple.vue2.js.map +0 -1
  530. package/lib/src/data-chart/src/components/scatter.vue.js +0 -2
  531. package/lib/src/data-chart/src/components/scatter.vue.js.map +0 -1
  532. package/lib/src/data-chart/src/components/scatter.vue2.js +0 -2
  533. package/lib/src/data-chart/src/components/scatter.vue2.js.map +0 -1
  534. package/lib/src/data-chart/src/components/table.vue.js +0 -2
  535. package/lib/src/data-chart/src/components/table.vue.js.map +0 -1
  536. package/lib/src/data-chart/src/components/table.vue2.js +0 -2
  537. package/lib/src/data-chart/src/components/table.vue2.js.map +0 -1
  538. package/lib/src/data-chart/src/data-chart.vue.js +0 -2
  539. package/lib/src/data-chart/src/data-chart.vue.js.map +0 -1
  540. package/lib/src/data-chart/src/data-chart.vue2.js +0 -2
  541. package/lib/src/data-chart/src/data-chart.vue2.js.map +0 -1
  542. package/lib/src/data-chart/src/utils/config.js.map +0 -1
  543. package/lib/src/data-chart/src/utils/injectionKeys.js.map +0 -1
  544. package/lib/src/data-chart/src/utils/useCharts.js +0 -2
  545. package/lib/src/data-chart/src/utils/useCharts.js.map +0 -1
  546. package/lib/src/defaults.js +0 -2
  547. package/lib/src/defaults.js.map +0 -1
  548. package/lib/src/file-upload/index.js +0 -2
  549. package/lib/src/file-upload/index.js.map +0 -1
  550. package/lib/src/file-upload/src/file-upload.vue.js +0 -2
  551. package/lib/src/file-upload/src/file-upload.vue.js.map +0 -1
  552. package/lib/src/file-upload/src/file-upload.vue2.js +0 -2
  553. package/lib/src/file-upload/src/file-upload.vue2.js.map +0 -1
  554. package/lib/src/fixed-action-bar/index.js +0 -2
  555. package/lib/src/fixed-action-bar/index.js.map +0 -1
  556. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.js +0 -2
  557. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.js.map +0 -1
  558. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.js +0 -2
  559. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.js.map +0 -1
  560. package/lib/src/image-upload/index.js +0 -2
  561. package/lib/src/image-upload/index.js.map +0 -1
  562. package/lib/src/image-upload/src/image-upload.vue.js +0 -2
  563. package/lib/src/image-upload/src/image-upload.vue.js.map +0 -1
  564. package/lib/src/image-upload/src/image-upload.vue2.js +0 -2
  565. package/lib/src/image-upload/src/image-upload.vue2.js.map +0 -1
  566. package/lib/src/make-installer.js +0 -2
  567. package/lib/src/make-installer.js.map +0 -1
  568. package/lib/src/photo-crop-tool/index.js +0 -2
  569. package/lib/src/photo-crop-tool/index.js.map +0 -1
  570. package/lib/src/photo-crop-tool/src/composables.js +0 -2
  571. package/lib/src/photo-crop-tool/src/composables.js.map +0 -1
  572. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.js +0 -2
  573. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.js.map +0 -1
  574. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.js +0 -2
  575. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.js.map +0 -1
  576. package/lib/src/subject-action/index.js +0 -2
  577. package/lib/src/subject-action/index.js.map +0 -1
  578. package/lib/src/subject-action/src/subject-action.vue.js +0 -2
  579. package/lib/src/subject-action/src/subject-action.vue.js.map +0 -1
  580. package/lib/src/subject-action/src/subject-action.vue2.js +0 -2
  581. package/lib/src/subject-action/src/subject-action.vue2.js.map +0 -1
  582. package/lib/src/subject-layout/index.js +0 -2
  583. package/lib/src/subject-layout/index.js.map +0 -1
  584. package/lib/src/subject-layout/src/subject-layout.vue.js.map +0 -1
  585. package/lib/src/subject-layout/src/subject-layout.vue2.js +0 -2
  586. package/lib/src/subject-layout/src/subject-layout.vue2.js.map +0 -1
  587. package/lib/src/subject-list/index.js +0 -2
  588. package/lib/src/subject-list/index.js.map +0 -1
  589. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.js +0 -2
  590. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.js.map +0 -1
  591. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.js +0 -2
  592. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.js.map +0 -1
  593. package/lib/src/subject-list/src/components/SubjectRichText.vue.js +0 -2
  594. package/lib/src/subject-list/src/components/SubjectRichText.vue.js.map +0 -1
  595. package/lib/src/subject-list/src/components/SubjectRichText.vue2.js +0 -2
  596. package/lib/src/subject-list/src/components/SubjectRichText.vue2.js.map +0 -1
  597. package/lib/src/subject-list/src/components/subject-blank-fill.vue.js +0 -2
  598. package/lib/src/subject-list/src/components/subject-blank-fill.vue.js.map +0 -1
  599. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.js +0 -2
  600. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.js.map +0 -1
  601. package/lib/src/subject-list/src/components/subject-scale.vue.js +0 -2
  602. package/lib/src/subject-list/src/components/subject-scale.vue.js.map +0 -1
  603. package/lib/src/subject-list/src/components/subject-scale.vue2.js +0 -2
  604. package/lib/src/subject-list/src/components/subject-scale.vue2.js.map +0 -1
  605. package/lib/src/subject-list/src/components/subject-single.vue.js +0 -2
  606. package/lib/src/subject-list/src/components/subject-single.vue.js.map +0 -1
  607. package/lib/src/subject-list/src/components/subject-single.vue2.js +0 -2
  608. package/lib/src/subject-list/src/components/subject-single.vue2.js.map +0 -1
  609. package/lib/src/subject-list/src/components/subject-text-fill.vue.js +0 -2
  610. package/lib/src/subject-list/src/components/subject-text-fill.vue.js.map +0 -1
  611. package/lib/src/subject-list/src/components/subject-text-fill.vue2.js +0 -2
  612. package/lib/src/subject-list/src/components/subject-text-fill.vue2.js.map +0 -1
  613. package/lib/src/subject-list/src/subject-list.vue.js +0 -2
  614. package/lib/src/subject-list/src/subject-list.vue.js.map +0 -1
  615. package/lib/src/subject-list/src/subject-list.vue2.js +0 -2
  616. package/lib/src/subject-list/src/subject-list.vue2.js.map +0 -1
  617. package/lib/src/subject-type/index.js +0 -2
  618. package/lib/src/subject-type/index.js.map +0 -1
  619. package/lib/src/subject-type/src/subject-type.vue.js +0 -2
  620. package/lib/src/subject-type/src/subject-type.vue.js.map +0 -1
  621. package/lib/src/subject-type/src/subject-type.vue2.js +0 -2
  622. package/lib/src/subject-type/src/subject-type.vue2.js.map +0 -1
  623. package/lib/src/tiny-mce-editor/index.js +0 -2
  624. package/lib/src/tiny-mce-editor/index.js.map +0 -1
  625. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.js +0 -2
  626. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.js.map +0 -1
  627. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue2.js +0 -2
  628. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue2.js.map +0 -1
  629. package/lib/src/withInstall.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es"),t=require("vue"),r=require("@element-plus/icons-vue"),l=require("@qxs-bns/hooks"),i=require("vue-demi");const a={key:1,class:"image"},o={class:"mask"},s={class:"actions"},n={key:0,class:"el-upload__tip-text"},c={style:{display:"inline-block"}};var p=t.defineComponent({name:"QxsImageUpload",__name:"image-upload",props:{action:{type:String,required:!0},headers:{type:null,required:!1},data:{type:null,required:!1},name:{type:String,required:!1,default:"file"},url:{type:String,required:!1,default:""},size:{type:Number,required:!1,default:20},width:{type:Number,required:!1,default:160},accept:{type:String,required:!1,default:"image/jpeg,image/jpg,image/png,image/gif"},height:{type:Number,required:!1,default:90},placeholder:{type:String,required:!1,default:"点击上传图片"},notip:{type:Boolean,required:!1,default:!1},tipText:{type:String,required:!1},beforeUpload:{type:null,required:!1}},emits:["update:url","onSuccess"],setup(p,{emit:d}){const u=p,h=d,m=l.useNamespace("image-upload"),g=i.ref({imageViewerVisible:!1,progress:{preview:"",percent:0}}),f=i.computed((()=>u.accept.split(",").map((e=>e.split("/").pop()))));function y(){g.value.imageViewerVisible=!0}function w(){g.value.imageViewerVisible=!1}function v(){h("update:url","")}const V=t=>{const r=t.name.split(".").at(-1)??"",l=f.value.includes(r),i=t.size/1024/1024<u.size;return l?i?g.value.progress.preview=URL.createObjectURL(t):e.ElMessage.error(`上传图片大小不能超过 ${u.size}MB!`):e.ElMessage.error(`上传图片只支持${f.value.join(" / ")}格式!`),l&&i&&(!u.beforeUpload||u.beforeUpload(t))},N=e=>{g.value.progress.percent=~~e.percent},x=(...e)=>{g.value.progress.preview="",g.value.progress.percent=0,h("onSuccess",...e)};return(l,i)=>{const p=e.ElIcon,d=e.ElImage,u=e.ElProgress,h=e.ElUpload,k=e.ElImageViewer;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(m).e("upload-container"))},[t.createVNode(h,{"show-file-list":!1,headers:l.headers,action:l.action,data:l.data,name:l.name,"before-upload":V,"on-progress":N,"on-success":x,drag:"",accept:l.accept,class:t.normalizeClass(t.unref(m).e("image-upload"))},{default:t.withCtx((()=>[""===l.url?(t.openBlock(),t.createBlock(d,{key:0,src:""===l.url?l.placeholder:l.url,style:t.normalizeStyle(`width:${l.width}px;height:${l.height}px;`),fit:"fill"},{error:t.withCtx((()=>[t.createElementVNode("div",{class:"image-slot",style:t.normalizeStyle(`width:${l.width}px;height:${l.height}px;`)},[t.createVNode(p,null,{default:t.withCtx((()=>[t.createVNode(t.unref(r.Plus))])),_:1}),t.createElementVNode("p",null,t.toDisplayString(l.placeholder),1)],4)])),_:1},8,["src","style"])):(t.openBlock(),t.createElementBlock("div",a,[t.createVNode(d,{src:l.url,style:t.normalizeStyle(`width:${l.width}px;height:${l.height}px;`),fit:"fill"},null,8,["src","style"]),t.createElementVNode("div",o,[t.createElementVNode("div",s,[t.createElementVNode("span",{title:"预览",onClick:t.withModifiers(y,["stop"])},[t.createVNode(p,null,{default:t.withCtx((()=>[t.createVNode(t.unref(r.ZoomIn))])),_:1})]),t.createElementVNode("span",{title:"移除",onClick:t.withModifiers(v,["stop"])},[t.createVNode(p,null,{default:t.withCtx((()=>[t.createVNode(t.unref(r.Delete))])),_:1})])])])])),t.withDirectives(t.createElementVNode("div",{class:"progress",style:t.normalizeStyle(`width:${l.width}px;height:${l.height}px;`)},[t.createVNode(d,{src:t.unref(g).progress.preview,style:t.normalizeStyle(`width:${l.width}px;height:${l.height}px;`),fit:"fill"},null,8,["src","style"]),t.createVNode(u,{type:"circle",width:.8*Math.min(l.width,l.height),percentage:t.unref(g).progress.percent},null,8,["width","percentage"])],4),[[t.vShow,""===l.url&&t.unref(g).progress.percent]])])),_:1},8,["headers","action","data","name","accept","class"]),l.notip?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createElementBlock("div",n,[t.createElementVNode("div",c,t.toDisplayString(l.tipText||`上传图片支持 ${t.unref(f).join(" / ")} 格式,且图片大小不超过 ${l.size}MB,建议图片尺寸为 ${l.width}*${l.height}`),1)])),t.unref(g).imageViewerVisible?(t.openBlock(),t.createBlock(k,{key:1,"url-list":[l.url],teleported:"",onClose:w},null,8,["url-list"])):t.createCommentVNode("v-if",!0)],2)}}});exports.default=p;
2
+ //# sourceMappingURL=image-upload.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-upload.vue.cjs","sources":["../../../../../../packages/components/src/image-upload/src/image-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { UploadFile, UploadFiles, UploadProps } from 'element-plus'\nimport { Delete, Plus, ZoomIn } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsImageUpload',\n})\nconst props = withDefaults(\n defineProps<{\n action: UploadProps['action']\n headers?: UploadProps['headers']\n data?: UploadProps['data']\n name?: UploadProps['name']\n url?: string\n size?: number\n width?: number\n accept?: string\n height?: number\n placeholder?: string\n notip?: boolean\n tipText?: string\n beforeUpload?: UploadProps['beforeUpload']\n }>(),\n {\n name: 'file',\n url: '',\n size: 20,\n width: 160,\n height: 90,\n placeholder: '点击上传图片',\n notip: false,\n accept: 'image/jpeg,image/jpg,image/png,image/gif',\n },\n)\nconst emits = defineEmits<{\n 'update:url': [\n url: string,\n ]\n 'onSuccess': [\n res: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles,\n ]\n}>()\n\nconst ns = useNamespace('image-upload')\n\nconst uploadData = ref({\n imageViewerVisible: false,\n progress: {\n preview: '',\n percent: 0,\n },\n})\n\nconst exts = computed(() => {\n return props.accept.split(',').map(ext => ext.split('/').pop())\n})\n\n// 预览\nfunction preview() {\n uploadData.value.imageViewerVisible = true\n}\n// 关闭预览\nfunction previewClose() {\n uploadData.value.imageViewerVisible = false\n}\n// 移除\nfunction remove() {\n emits('update:url', '')\n}\nconst handleBeforeUpload: UploadProps['beforeUpload'] = (file) => {\n const fileName = file.name.split('.')\n const fileExt = fileName.at(-1) ?? ''\n const isTypeOk = exts.value.includes(fileExt)\n const isSizeOk = file.size / 1024 / 1024 < props.size\n\n if (!isTypeOk) {\n ElMessage.error(`上传图片只支持${exts.value.join(' / ')}格式!`)\n }\n\n else if (!isSizeOk) {\n ElMessage.error(`上传图片大小不能超过 ${props.size}MB!`)\n }\n else {\n uploadData.value.progress.preview = URL.createObjectURL(file)\n }\n\n return isTypeOk && isSizeOk && (!props.beforeUpload || props.beforeUpload(file))\n}\nconst onProgress: UploadProps['onProgress'] = (file) => {\n uploadData.value.progress.percent = ~~file.percent\n}\nconst onSuccess: UploadProps['onSuccess'] = (...res) => {\n uploadData.value.progress.preview = ''\n uploadData.value.progress.percent = 0\n emits('onSuccess', ...res)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('upload-container')\">\n <el-upload\n :show-file-list=\"false\"\n :headers=\"headers\"\n :action=\"action\"\n :data=\"data\"\n :name=\"name\"\n :before-upload=\"handleBeforeUpload\"\n :on-progress=\"onProgress\"\n :on-success=\"onSuccess\"\n drag\n :accept=\"accept\"\n :class=\"ns.e('image-upload')\"\n >\n <el-image\n v-if=\"url === ''\"\n :src=\"url === '' ? placeholder : url\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n >\n <template #error>\n <div class=\"image-slot\" :style=\"`width:${width}px;height:${height}px;`\">\n <el-icon>\n <Plus />\n </el-icon>\n <p>\n {{ placeholder }}\n </p>\n </div>\n </template>\n </el-image>\n <div v-else class=\"image\">\n <el-image\n :src=\"url\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n />\n <div class=\"mask\">\n <div class=\"actions\">\n <span title=\"预览\" @click.stop=\"preview\">\n <el-icon><ZoomIn /></el-icon>\n </span>\n <span title=\"移除\" @click.stop=\"remove\">\n <el-icon>\n <Delete />\n </el-icon>\n </span>\n </div>\n </div>\n </div>\n <div\n v-show=\"url === '' && uploadData.progress.percent\"\n class=\"progress\"\n :style=\"`width:${width}px;height:${height}px;`\"\n >\n <el-image\n :src=\"uploadData.progress.preview\"\n :style=\"`width:${width}px;height:${height}px;`\"\n fit=\"fill\"\n />\n <el-progress\n type=\"circle\"\n :width=\"Math.min(width, height) * 0.8\"\n :percentage=\"uploadData.progress.percent\"\n />\n </div>\n </el-upload>\n <div v-if=\"!notip\" class=\"el-upload__tip-text\">\n <div style=\"display: inline-block;\">\n {{ tipText || `上传图片支持 ${exts.join(' / ')} 格式,且图片大小不超过 ${size}MB,建议图片尺寸为 ${width}*${height}` }}\n </div>\n </div>\n <el-image-viewer\n v-if=\"uploadData.imageViewerVisible\"\n :url-list=\"[url]\"\n teleported\n @close=\"previewClose\"\n />\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","ns","useNamespace","uploadData","ref","imageViewerVisible","progress","preview","percent","exts","computed","accept","split","map","ext","pop","value","previewClose","remove","handleBeforeUpload","file","fileExt","name","at","isTypeOk","includes","isSizeOk","size","URL","createObjectURL","ElMessage","error","join","beforeUpload","onProgress","onSuccess","res"],"mappings":"8gCAQA,MAAMA,EAAQC,EA2BRC,EAAQC,EAWRC,EAAKC,eAAa,gBAElBC,EAAaC,EAAAA,IAAI,CACrBC,oBAAoB,EACpBC,SAAU,CACRC,QAAS,GACTC,QAAS,KAIPC,EAAOC,EAAAA,UAAS,IACbb,EAAMc,OAAOC,MAAM,KAAKC,KAAWC,GAAAA,EAAIF,MAAM,KAAKG,UAI3D,SAASR,IACPJ,EAAWa,MAAMX,oBAAqB,CAAA,CAGxC,SAASY,IACPd,EAAWa,MAAMX,oBAAqB,CAAA,CAGxC,SAASa,IACPnB,EAAM,aAAc,GAAE,CAElB,MAAAoB,EAAmDC,IACvD,MACMC,EADWD,EAAKE,KAAKV,MAAM,KACRW,IAAG,IAAO,GAC7BC,EAAWf,EAAKO,MAAMS,SAASJ,GAC/BK,EAAWN,EAAKO,KAAO,KAAO,KAAO9B,EAAM8B,KAajD,OAXKH,EAIKE,EAIRvB,EAAWa,MAAMV,SAASC,QAAUqB,IAAIC,gBAAgBT,GAHxDU,EAAAA,UAAUC,MAAM,cAAclC,EAAM8B,WAJpCG,YAAUC,MAAM,UAAUtB,EAAKO,MAAMgB,KAAK,aAUrCR,GAAYE,KAAc7B,EAAMoC,cAAgBpC,EAAMoC,aAAab,GAAI,EAE1Ec,EAAyCd,IAC7CjB,EAAWa,MAAMV,SAASE,UAAYY,EAAKZ,OAAA,EAEvC2B,EAAsC,IAAIC,KACnCjC,EAAAa,MAAMV,SAASC,QAAU,GACzBJ,EAAAa,MAAMV,SAASE,QAAU,EAC9BT,EAAA,eAAgBqC,EAAG"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./image-upload.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=image-upload.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-upload.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("../package.json.cjs");exports.makeInstaller=function(r){return{version:e.version,install:e=>{for(const s in r)e.use(r[s])}}};
2
+ //# sourceMappingURL=make-installer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-installer.cjs","sources":["../../../../packages/components/src/make-installer.ts"],"sourcesContent":["import type { Plugin } from 'vue-demi'\nimport { version } from '../package.json'\n\nfunction makeInstaller(components: {\n [key: number]: Plugin\n}) {\n const install = (app: any) => {\n for (const n in components) {\n app.use(components[n])\n }\n }\n\n return {\n version,\n install,\n }\n}\n\nexport { makeInstaller }\n"],"names":["components","version","install","app","n","use"],"mappings":"wEAGA,SAAuBA,GASd,MAAA,SACLC,EAAAA,QACAC,QAReC,IACf,IAAA,MAAWC,KAAKJ,EACVG,EAAAE,IAAIL,EAAWI,GACrB,EAOJ"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../withInstall.cjs"),t=require("./src/photo-crop-tool.vue.cjs");const o=e.withInstall(t.default);exports.QxsPhotoCropTool=o,exports.default=o;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/photo-crop-tool/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/photo-crop-tool.vue'\n\nconst QxsPhotoCropTool = withInstall(component)\n\nexport {\n QxsPhotoCropTool,\n}\n\nexport default QxsPhotoCropTool\n"],"names":["QxsPhotoCropTool","withInstall","component","default"],"mappings":"mJAGA,MAAMA,EAAmBC,cAAYC,EAASC"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("vue-demi");exports.useCanvas=function(a){const l=e.ref(null);return a&&(l.value=a.getContext("2d")),{clearCanvas:()=>{l.value&&l.value.clearRect(0,0,a.width,a.height)},drawColor:(e,a,t,n,r)=>{l.value&&(l.value.fillStyle=r,l.value.fillRect(e,a,t,n))},drawImage:(e,a,t,n,r)=>{l.value.drawImage(e,a,t,n,r)},cropCanvas:(e,t,n,r)=>new Promise((u=>{if(l.value){const l=document.createElement("canvas");l.width=n,l.height=r;const i=l.getContext("2d");i?(i.drawImage(a,e,t,n,r,0,0,n,r),l.toBlob((e=>{if(e){const a=new File([e],"cropped_image.png",{type:"image/png"});u(a)}else u(null)}),"image/png")):u(null)}else u(null)}))}};
2
+ //# sourceMappingURL=composables.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composables.cjs","sources":["../../../../../../packages/components/src/photo-crop-tool/src/composables.ts"],"sourcesContent":["// useCanvas.ts\nimport type { Ref } from 'vue-demi'\nimport { ref } from 'vue-demi'\n\nexport function useCanvas(canvasElement: HTMLCanvasElement) {\n const context: Ref<CanvasRenderingContext2D | null> = ref(null)\n\n if (canvasElement) {\n context.value = canvasElement.getContext('2d')\n }\n\n const clearCanvas = () => {\n if (context.value) {\n context.value.clearRect(0, 0, canvasElement.width, canvasElement.height)\n }\n }\n\n const drawColor = (x: number, y: number, width: number, height: number, color: string) => {\n if (context.value) {\n context.value.fillStyle = color\n context.value.fillRect(x, y, width, height)\n }\n }\n\n const drawImage = (image: HTMLImageElement, x: number, y: number, width: number, height: number) => {\n context.value!.drawImage(image, x, y, width, height)\n }\n\n const cropCanvas = (x: number, y: number, width: number, height: number): Promise<File | null> => {\n return new Promise((resolve) => {\n if (context.value) {\n const croppedCanvas = document.createElement('canvas')\n croppedCanvas.width = width\n croppedCanvas.height = height\n const croppedContext = croppedCanvas.getContext('2d')\n if (croppedContext) {\n croppedContext.drawImage(canvasElement, x, y, width, height, 0, 0, width, height)\n croppedCanvas.toBlob((blob) => {\n if (blob) {\n const file = new File([blob], 'cropped_image.png', { type: 'image/png' })\n resolve(file)\n }\n else {\n resolve(null)\n }\n }, 'image/png')\n }\n else {\n resolve(null)\n }\n }\n else {\n resolve(null)\n }\n })\n }\n\n return {\n clearCanvas,\n drawColor,\n drawImage,\n cropCanvas,\n }\n}\n"],"names":["canvasElement","context","ref","value","getContext","clearCanvas","clearRect","width","height","drawColor","x","y","color","fillStyle","fillRect","drawImage","image","cropCanvas","Promise","resolve","croppedCanvas","document","createElement","croppedContext","toBlob","blob","file","File","type"],"mappings":"yDAIO,SAAmBA,GAClB,MAAAC,EAAgDC,MAAI,MAoDnD,OAlDHF,IACMC,EAAAE,MAAQH,EAAcI,WAAW,OAiDpC,CACLC,YA/CkBA,KACdJ,EAAQE,OACVF,EAAQE,MAAMG,UAAU,EAAG,EAAGN,EAAcO,MAAOP,EAAcQ,OACnE,EA6CAC,UA1CgBA,CAACC,EAAWC,EAAWJ,EAAeC,EAAgBI,KAClEX,EAAQE,QACVF,EAAQE,MAAMU,UAAYD,EAC1BX,EAAQE,MAAMW,SAASJ,EAAGC,EAAGJ,EAAOC,GACtC,EAuCAO,UApCgBA,CAACC,EAAyBN,EAAWC,EAAWJ,EAAeC,KAC/EP,EAAQE,MAAOY,UAAUC,EAAON,EAAGC,EAAGJ,EAAOC,EAAM,EAoCnDS,WAjCiBA,CAACP,EAAWC,EAAWJ,EAAeC,IAChD,IAAIU,SAASC,IAClB,GAAIlB,EAAQE,MAAO,CACX,MAAAiB,EAAgBC,SAASC,cAAc,UAC7CF,EAAcb,MAAQA,EACtBa,EAAcZ,OAASA,EACjB,MAAAe,EAAiBH,EAAchB,WAAW,MAC5CmB,GACaA,EAAAR,UAAUf,EAAeU,EAAGC,EAAGJ,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,GAC5DY,EAAAI,QAAQC,IACpB,GAAIA,EAAM,CACF,MAAAC,EAAO,IAAIC,KAAK,CAACF,GAAO,oBAAqB,CAAEG,KAAM,cAC3DT,EAAQO,EACV,MAEEP,EAAQ,KACV,GACC,cAGHA,EAAQ,KAEZ,MAEEA,EAAQ,KACV,IAUN"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@qxs-bns/hooks"),l=require("@vueuse/core"),a=require("./composables.cjs"),o=require("vue-demi");const u=["src"];var i=e.defineComponent({name:"QxsPhotoCropTool",__name:"photo-crop-tool",props:{imgFile:{type:Object,default:()=>null},aspectRatio:{type:String,default:()=>"16 / 9"},defaultWidth:{type:Number,default:()=>320},defaultHeight:{type:Number,default:()=>180},zoomType:{type:String,default:()=>"fixed"}},setup(i,{expose:n}){const r=i;let s=0,v=0,h=0,c=0;const f=t.useNamespace("photo-crop-tool"),p=o.ref(null),d=o.ref(null),m=o.ref(null),g=o.ref(""),y=o.ref(""),w=o.ref({x:0,y:0}),x=o.ref({width:r.defaultWidth,height:r.defaultHeight,x:0,y:0}),{width:b,height:z}=l.useElementSize(p),{width:E}=l.useElementSize(m),{x:N,y:R,style:k}=l.useDraggable(p,{containerElement:d,draggingElement:p,disabled:o.computed((()=>!!y.value)),exact:!0,initialValue:w}),H=o.computed((()=>r.imgFile?URL.createObjectURL(r.imgFile):""));o.watch((()=>r.imgFile),(e=>{e&&!e.type.startsWith("image/")?g.value="文件类型错误":g.value=""}));const C=o.computed((()=>(m.value?.naturalWidth||0)/E.value)),T=o.computed((()=>{const e={left:0,top:0};return"bottom-right"===y.value?(e.left=x.value.x,e.top=x.value.y):"top-left"===y.value?(e.left=x.value.x-b.value,e.top=x.value.y-z.value):"top-right"===y.value?(e.top=x.value.y-z.value,e.left=x.value.x):"bottom-left"===y.value&&(e.left=x.value.x-b.value,e.top=x.value.y),e})),F=o.computed((()=>{const{aspectRatio:e}=r,t={width:`${x.value.width||r.defaultWidth}`,height:`${x.value.height||r.defaultHeight}`,"aspect-ratio":e,top:`${T.value.top}px`,left:`${T.value.left}px`};return"free"===r.zoomType?delete t["aspect-ratio"]:"fixed"===r.zoomType&&delete t.height,f.cssVarBlock(t)}));function M(e){return e*C.value}function W(e,t){const l=d.value?.clientWidth||1/0,a=d.value?.clientHeight||1/0;return{width:Math.min(Math.max(e,0),l),height:Math.min(Math.max(t,0),a)}}function B(e){const t=e.clientX-s,l=e.clientY-v;if("bottom-right"===y.value){if("free"===r.zoomType){const{width:e,height:a}=W(h+t,c+l);x.value.width=e,x.value.height=a}else if("fixed"===r.zoomType){const e=Number.parseFloat(r.aspectRatio.split(" / ")[0])/Number.parseFloat(r.aspectRatio.split(" / ")[1]);let l=h+t,a=l/e;const{width:o,height:u}=W(l,a);u>(d.value?.clientHeight||1/0)&&(a=d.value?.clientHeight||1/0,l=a*e),x.value.width=o,x.value.height=u}}else if("top-left"===y.value){if("free"===r.zoomType){const{width:e,height:a}=W(h-t,c-l);x.value.width=e,x.value.height=a}else if("fixed"===r.zoomType){const e=Number.parseFloat(r.aspectRatio.split(" / ")[0])/Number.parseFloat(r.aspectRatio.split(" / ")[1]);let l=h-t,a=l/e;const{width:o,height:u}=W(l,a);u>(d.value?.clientHeight||1/0)&&(a=d.value?.clientHeight||1/0,l=a*e),x.value.width=o,x.value.height=u}N.value=T.value.left,R.value=T.value.top}else if("top-right"===y.value){if("free"===r.zoomType){const{width:e,height:a}=W(h+t,c-l);x.value.width=e,x.value.height=a}else if("fixed"===r.zoomType){const e=Number.parseFloat(r.aspectRatio.split(" / ")[0])/Number.parseFloat(r.aspectRatio.split(" / ")[1]);let l=h+t,a=l/e;const{width:o,height:u}=W(l,a);u>(d.value?.clientHeight||1/0)&&(a=d.value?.clientHeight||1/0,l=a*e),x.value.width=o,x.value.height=u}N.value=T.value.left,R.value=T.value.top}else if("bottom-left"===y.value){if("free"===r.zoomType){const{width:e,height:a}=W(h-t,c+l);x.value.width=e,x.value.height=a}else if("fixed"===r.zoomType){const e=Number.parseFloat(r.aspectRatio.split(" / ")[0])/Number.parseFloat(r.aspectRatio.split(" / ")[1]);let l=h-t,a=l/e;const{width:o,height:u}=W(l,a);u>(d.value?.clientHeight||1/0)&&(a=d.value?.clientHeight||1/0,l=a*e),x.value.width=o,x.value.height=u}N.value=T.value.left,R.value=T.value.top}e.preventDefault(),e.stopPropagation()}function L(e,t){y.value=t,s=e.clientX,v=e.clientY,h=x.value.width,c=x.value.height,"bottom-right"===t?(x.value.x=N.value,x.value.y=R.value):"top-left"===t?(x.value.x=N.value+b.value,x.value.y=R.value+z.value):"top-right"===t?(x.value.x=N.value,x.value.y=R.value+z.value):"bottom-left"===t&&(x.value.x=N.value+b.value,x.value.y=R.value)}function V(){y.value=""}return document.addEventListener("mouseup",V),document.addEventListener("mousemove",B),o.onMounted((()=>{o.nextTick((()=>{w.value.x=(d.value?.offsetWidth||0)/2-x.value.width/2,w.value.y=(d.value?.offsetHeight||0)/2-x.value.height/2}))})),o.onUnmounted((()=>{H.value&&URL.revokeObjectURL(H.value),document.removeEventListener("mouseup",V),document.removeEventListener("mousemove",B)})),n({crop:async function(e=m.value){let t="transparent";d.value&&(t=window.getComputedStyle(d.value).backgroundColor);const l=document.createElement("canvas");l.width=M(d.value?.clientWidth||0),l.height=M(d.value?.clientHeight||0);const{drawImage:o,cropCanvas:u,drawColor:i}=a.useCanvas(l);return i(0,0,l.width,l.height,t),o(e,M(e.offsetLeft),M(e.offsetTop),e.naturalWidth,e.naturalHeight),await u(M(N.value),M(R.value),M(b.value),M(z.value))},resize:function(){x.value.width=r.defaultWidth,x.value.height=r.defaultHeight,N.value=0,R.value=0}}),(t,l)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerBoxRef",ref:d,class:e.normalizeClass([e.unref(f).e("img-box")])},[e.unref(g)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(f).e("error-message")])},e.toDisplayString(e.unref(g)),3)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("img",{ref_key:"imgRef",ref:m,class:e.normalizeClass([e.unref(f).e("image")]),src:e.unref(H)},null,10,u),e.createElementVNode("div",{ref_key:"cropBoxRef",ref:p,class:e.normalizeClass([e.unref(f).e("crop-tool-box")]),style:e.normalizeStyle([e.unref(F),e.unref(y)?`left: ${e.unref(T).left}px;top: ${e.unref(T).top}px`:e.unref(k)])},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(f).e("top-left")]),onMousedown:l[0]||(l[0]=e=>L(e,"top-left"))},null,34),e.createElementVNode("div",{class:e.normalizeClass([e.unref(f).e("top-right")]),onMousedown:l[1]||(l[1]=e=>L(e,"top-right"))},null,34),e.createElementVNode("div",{class:e.normalizeClass([e.unref(f).e("bottom-right")]),onMousedown:l[2]||(l[2]=e=>L(e,"bottom-right"))},null,34),e.createElementVNode("div",{class:e.normalizeClass([e.unref(f).e("bottom-left")]),onMousedown:l[3]||(l[3]=e=>L(e,"bottom-left"))},null,34)],6)],64))],2))}});exports.default=i;
2
+ //# sourceMappingURL=photo-crop-tool.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photo-crop-tool.vue.cjs","sources":["../../../../../../packages/components/src/photo-crop-tool/src/photo-crop-tool.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PropType } from 'vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { useDraggable, useElementSize } from '@vueuse/core'\nimport { useCanvas } from './composables'\n\ndefineOptions({\n name: 'QxsPhotoCropTool',\n})\n\nconst props = defineProps({\n imgFile: {\n type: Object as PropType<File>,\n default: () => null,\n },\n aspectRatio: {\n type: String,\n default: () => '16 / 9',\n },\n defaultWidth: {\n type: Number,\n default: () => 320,\n },\n defaultHeight: {\n type: Number,\n default: () => 180,\n },\n /**\n * free 自由缩放\n * fixed 固定比例缩放\n */\n zoomType: {\n type: String,\n default: () => 'fixed',\n },\n})\nlet startX = 0\nlet startY = 0\nlet startWidth = 0\nlet startHeight = 0\n\nconst ns = useNamespace('photo-crop-tool')\n\nconst cropBoxRef = ref<HTMLElement | null>(null)\nconst containerBoxRef = ref<HTMLElement | null>(null)\nconst imgRef = ref<HTMLImageElement | null>(null)\nconst errorMessage = ref('')\nconst dargPoint = ref('')\nconst initialValue = ref({\n x: 0,\n y: 0,\n})\nconst cropInfo = ref({\n width: props.defaultWidth,\n height: props.defaultHeight,\n x: 0,\n y: 0,\n})\n\nconst { width, height } = useElementSize(cropBoxRef)\nconst { width: imgWidth } = useElementSize(imgRef)\n\nconst { x, y, style } = useDraggable(cropBoxRef, {\n containerElement: containerBoxRef,\n draggingElement: cropBoxRef,\n disabled: computed(() => !!dargPoint.value),\n exact: true,\n initialValue,\n})\n\nconst imageUrl = computed(() => {\n if (!props.imgFile) {\n return ''\n }\n return URL.createObjectURL(props.imgFile)\n})\n\nwatch(\n () => props.imgFile,\n (newFile: File | null) => {\n if (newFile && !newFile.type.startsWith('image/')) {\n errorMessage.value = '文件类型错误'\n }\n else {\n errorMessage.value = ''\n }\n },\n)\n\nconst ratio = computed(() => {\n return (imgRef.value?.naturalWidth || 0) / imgWidth.value\n})\n\nconst customStyle = computed(() => {\n const position = {\n left: 0,\n top: 0,\n }\n if (dargPoint.value === 'bottom-right') {\n position.left = cropInfo.value.x\n position.top = cropInfo.value.y\n }\n else if (dargPoint.value === 'top-left') {\n position.left = cropInfo.value.x - width.value\n position.top = cropInfo.value.y - height.value\n }\n else if (dargPoint.value === 'top-right') {\n position.top = cropInfo.value.y - height.value\n position.left = cropInfo.value.x\n }\n else if (dargPoint.value === 'bottom-left') {\n position.left = cropInfo.value.x - width.value\n position.top = cropInfo.value.y\n }\n return position\n})\n\nconst sizeStyle = computed(() => {\n const { aspectRatio } = props\n\n const style: {\n 'height'?: string\n 'width': string\n 'aspect-ratio'?: string\n 'top': string\n 'left': string\n } = {\n 'width': `${cropInfo.value.width || props.defaultWidth}`,\n 'height': `${cropInfo.value.height || props.defaultHeight}`,\n 'aspect-ratio': aspectRatio,\n 'top': `${customStyle.value.top}px`,\n 'left': `${customStyle.value.left}px`,\n }\n if (props.zoomType === 'free') {\n delete style['aspect-ratio']\n }\n else if (props.zoomType === 'fixed') {\n delete style.height\n }\n return ns.cssVarBlock(style)\n})\n\nfunction zoom(pixel: number) {\n return pixel * ratio.value\n}\nasync function crop(img: HTMLImageElement = imgRef.value!) {\n let backgroundColor = 'transparent'\n if (containerBoxRef.value) {\n backgroundColor = window.getComputedStyle(\n containerBoxRef.value,\n ).backgroundColor\n }\n const canvas = document.createElement('canvas')\n canvas.width = zoom(containerBoxRef.value?.clientWidth || 0)\n canvas.height = zoom(containerBoxRef.value?.clientHeight || 0)\n const { drawImage, cropCanvas, drawColor } = useCanvas(canvas)\n drawColor(0, 0, canvas.width, canvas.height, backgroundColor)\n drawImage(\n img,\n zoom(img.offsetLeft),\n zoom(img.offsetTop),\n img.naturalWidth,\n img.naturalHeight,\n )\n return await cropCanvas(\n zoom(x.value),\n zoom(y.value),\n zoom(width.value),\n zoom(height.value),\n )\n}\n\nfunction checkBoundaries(\n newWidth: number,\n newHeight: number,\n): { width: number, height: number } {\n const maxWidth = containerBoxRef.value?.clientWidth || Infinity\n const maxHeight = containerBoxRef.value?.clientHeight || Infinity\n\n return {\n width: Math.min(Math.max(newWidth, 0), maxWidth),\n height: Math.min(Math.max(newHeight, 0), maxHeight),\n }\n}\n\nfunction mousemove(e: MouseEvent) {\n const deltaX = e.clientX - startX\n const deltaY = e.clientY - startY\n\n if (dargPoint.value === 'bottom-right') {\n if (props.zoomType === 'free') {\n const { width, height } = checkBoundaries(\n startWidth + deltaX,\n startHeight + deltaY,\n )\n cropInfo.value.width = width\n cropInfo.value.height = height\n }\n else if (props.zoomType === 'fixed') {\n const aspectRatio\n = Number.parseFloat(props.aspectRatio.split(' / ')[0])\n / Number.parseFloat(props.aspectRatio.split(' / ')[1])\n let newWidth = startWidth + deltaX\n let newHeight = newWidth / aspectRatio\n const { width, height } = checkBoundaries(newWidth, newHeight)\n if (height > (containerBoxRef.value?.clientHeight || Infinity)) {\n newHeight = containerBoxRef.value?.clientHeight || Infinity\n newWidth = newHeight * aspectRatio\n }\n cropInfo.value.width = width\n cropInfo.value.height = height\n }\n }\n else if (dargPoint.value === 'top-left') {\n if (props.zoomType === 'free') {\n const { width, height } = checkBoundaries(\n startWidth - deltaX,\n startHeight - deltaY,\n )\n cropInfo.value.width = width\n cropInfo.value.height = height\n }\n else if (props.zoomType === 'fixed') {\n const aspectRatio\n = Number.parseFloat(props.aspectRatio.split(' / ')[0])\n / Number.parseFloat(props.aspectRatio.split(' / ')[1])\n let newWidth = startWidth - deltaX\n let newHeight = newWidth / aspectRatio\n const { width, height } = checkBoundaries(newWidth, newHeight)\n if (height > (containerBoxRef.value?.clientHeight || Infinity)) {\n newHeight = containerBoxRef.value?.clientHeight || Infinity\n newWidth = newHeight * aspectRatio\n }\n cropInfo.value.width = width\n cropInfo.value.height = height\n }\n x.value = customStyle.value.left\n y.value = customStyle.value.top\n }\n else if (dargPoint.value === 'top-right') {\n if (props.zoomType === 'free') {\n const { width, height } = checkBoundaries(\n startWidth + deltaX,\n startHeight - deltaY,\n )\n cropInfo.value.width = width\n cropInfo.value.height = height\n }\n else if (props.zoomType === 'fixed') {\n const aspectRatio\n = Number.parseFloat(props.aspectRatio.split(' / ')[0])\n / Number.parseFloat(props.aspectRatio.split(' / ')[1])\n let newWidth = startWidth + deltaX\n let newHeight = newWidth / aspectRatio\n const { width, height } = checkBoundaries(newWidth, newHeight)\n if (height > (containerBoxRef.value?.clientHeight || Infinity)) {\n newHeight = containerBoxRef.value?.clientHeight || Infinity\n newWidth = newHeight * aspectRatio\n }\n cropInfo.value.width = width\n cropInfo.value.height = height\n }\n x.value = customStyle.value.left\n y.value = customStyle.value.top\n }\n else if (dargPoint.value === 'bottom-left') {\n if (props.zoomType === 'free') {\n const { width, height } = checkBoundaries(\n startWidth - deltaX,\n startHeight + deltaY,\n )\n cropInfo.value.width = width\n cropInfo.value.height = height\n }\n else if (props.zoomType === 'fixed') {\n const aspectRatio\n = Number.parseFloat(props.aspectRatio.split(' / ')[0])\n / Number.parseFloat(props.aspectRatio.split(' / ')[1])\n let newWidth = startWidth - deltaX\n let newHeight = newWidth / aspectRatio\n const { width, height } = checkBoundaries(newWidth, newHeight)\n if (height > (containerBoxRef.value?.clientHeight || Infinity)) {\n newHeight = containerBoxRef.value?.clientHeight || Infinity\n newWidth = newHeight * aspectRatio\n }\n cropInfo.value.width = width\n cropInfo.value.height = height\n }\n x.value = customStyle.value.left\n y.value = customStyle.value.top\n }\n e.preventDefault()\n e.stopPropagation()\n}\n\nfunction mousedown(e: MouseEvent, point: string) {\n dargPoint.value = point\n startX = e.clientX\n startY = e.clientY\n startWidth = cropInfo.value.width\n startHeight = cropInfo.value.height\n\n if (point === 'bottom-right') {\n cropInfo.value.x = x.value\n cropInfo.value.y = y.value\n }\n else if (point === 'top-left') {\n cropInfo.value.x = x.value + width.value\n cropInfo.value.y = y.value + height.value\n }\n else if (point === 'top-right') {\n cropInfo.value.x = x.value\n cropInfo.value.y = y.value + height.value\n }\n else if (point === 'bottom-left') {\n cropInfo.value.x = x.value + width.value\n cropInfo.value.y = y.value\n }\n}\n\nfunction mouseup() {\n dargPoint.value = ''\n}\n\nfunction resize() {\n cropInfo.value.width = props.defaultWidth\n cropInfo.value.height = props.defaultHeight\n x.value = 0\n y.value = 0\n}\n\ndocument.addEventListener('mouseup', mouseup)\ndocument.addEventListener('mousemove', mousemove)\n\nonMounted(() => {\n nextTick(() => {\n // 初始化位置\n initialValue.value.x\n = (containerBoxRef.value?.offsetWidth || 0) / 2 - cropInfo.value.width / 2\n initialValue.value.y\n = (containerBoxRef.value?.offsetHeight || 0) / 2\n - cropInfo.value.height / 2\n })\n})\n\nonUnmounted(() => {\n if (imageUrl.value) {\n URL.revokeObjectURL(imageUrl.value)\n }\n document.removeEventListener('mouseup', mouseup)\n document.removeEventListener('mousemove', mousemove)\n})\n\ndefineExpose({\n crop,\n resize,\n})\n</script>\n\n<template>\n <div ref=\"containerBoxRef\" :class=\"[ns.e('img-box')]\">\n <div v-if=\"errorMessage\" :class=\"[ns.e('error-message')]\">\n {{ errorMessage }}\n </div>\n <template v-else>\n <img\n ref=\"imgRef\"\n :class=\"[ns.e('image')]\"\n :src=\"imageUrl\"\n >\n <div\n ref=\"cropBoxRef\"\n :class=\"[ns.e('crop-tool-box')]\"\n :style=\"[\n sizeStyle,\n dargPoint\n ? `left: ${customStyle.left}px;top: ${customStyle.top}px`\n : style,\n ]\"\n >\n <div\n :class=\"[ns.e('top-left')]\"\n @mousedown=\"mousedown($event, 'top-left')\"\n />\n <div\n :class=\"[ns.e('top-right')]\"\n @mousedown=\"mousedown($event, 'top-right')\"\n />\n <div\n :class=\"[ns.e('bottom-right')]\"\n @mousedown=\"mousedown($event, 'bottom-right')\"\n />\n <div\n :class=\"[ns.e('bottom-left')]\"\n @mousedown=\"mousedown($event, 'bottom-left')\"\n />\n </div>\n </template>\n </div>\n</template>\n"],"names":["props","__props","startX","startY","startWidth","startHeight","ns","useNamespace","cropBoxRef","ref","containerBoxRef","imgRef","errorMessage","dargPoint","initialValue","x","y","cropInfo","width","defaultWidth","height","defaultHeight","useElementSize","imgWidth","style","useDraggable","containerElement","draggingElement","disabled","computed","value","exact","imageUrl","imgFile","URL","createObjectURL","watch","newFile","type","startsWith","ratio","naturalWidth","customStyle","position","left","top","sizeStyle","aspectRatio","zoomType","cssVarBlock","zoom","pixel","checkBoundaries","newWidth","newHeight","maxWidth","clientWidth","Infinity","maxHeight","clientHeight","Math","min","max","mousemove","e","deltaX","clientX","deltaY","clientY","Number","parseFloat","split","preventDefault","stopPropagation","mousedown","point","mouseup","document","addEventListener","onMounted","nextTick","offsetWidth","offsetHeight","onUnmounted","revokeObjectURL","removeEventListener","__expose","crop","async","img","backgroundColor","window","getComputedStyle","canvas","createElement","drawImage","cropCanvas","drawColor","useCanvas","offsetLeft","offsetTop","naturalHeight","resize"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./photo-crop-tool.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=photo-crop-tool.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photo-crop-tool.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../withInstall.cjs"),t=require("./src/subject-action.vue.cjs");const s=e.withInstall(t.default);exports.QxsSubjectAction=s,exports.default=s;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/subject-action/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/subject-action.vue'\n\nconst QxsSubjectAction = withInstall(component)\n \nexport {\n QxsSubjectAction\n}\n \nexport default QxsSubjectAction"],"names":["QxsSubjectAction","withInstall","component","default"],"mappings":"kJAGA,MAAMA,EAAmBC,cAAYC,EAASC"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es"),t=require("vue"),l=require("@element-plus/icons-vue"),a=require("@qxs-bns/hooks"),o=require("../../subject-type/src/subject-type.vue.cjs"),n=require("vue-demi");const c={key:0,class:"flex-justify-between"},r={key:0,class:"has-set"},i={key:1,class:"flex flex-justify-end",style:{width:"100%"}};var d=t.defineComponent({name:"QxsSubjectAction",__name:"subject-action",props:{isEdit:{type:Boolean},isSet:{type:Boolean,default:!1},isKey:{type:Boolean,default:!1},answerCheckType:{type:Number,default:1},showOtherOption:{type:Boolean,default:!0},examAnswerRelationType:{type:Number,default:null},pageEnd:{type:Boolean,default:!1}},emits:["moveUp","moveDown","delete","save","edit","add","onShowRichText","setKey","setAnswerSetting"],setup(d,{emit:u}){const s=d,m=n.ref(s.isKey),p=n.ref(!1),f=u,V=n.ref(s.answerCheckType),x=a.useNamespace("subject-action"),k=[{value:2,label:"必须全部都是支持选项,方可下一步"},{value:1,label:"无需判断是否是支持选项"},{value:3,label:"包含全部支持选项,即可下一步"}],C=n.computed((()=>k.find((e=>e.value===V.value))?.label));function N(){p.value=!1,f("setAnswerSetting",V.value)}function h(e,t){f("add",e,t?s.examAnswerRelationType:null)}return(a,n)=>{const u=e.ElLink,s=e.ElPopover,v=e.ElCheckbox,y=e.ElIcon,w=e.ElButton,b=e.ElRadio,B=e.ElRadioGroup,E=e.ElDialog;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(x).e("action-exam"))},[t.createElementVNode("div",{class:t.normalizeClass(["action flex",[{active:d.isEdit}]])},[d.isEdit?(t.openBlock(),t.createElementBlock("div",c,[t.createVNode(s,{trigger:"click"},{reference:t.withCtx((()=>[t.createVNode(u,{type:"primary",class:"btn-margin"},{default:t.withCtx((()=>n[14]||(n[14]=[t.createTextVNode(" +在此题后加入新题 ")]))),_:1})])),default:t.withCtx((()=>[t.createVNode(o.default,{onSelect:h})])),_:1}),d.showOtherOption?(t.openBlock(),t.createBlock(u,{key:0,type:"primary",onClick:n[0]||(n[0]=e=>f("onShowRichText")),class:"btn-margin"},{default:t.withCtx((()=>n[15]||(n[15]=[t.createTextVNode(" +添加题目描述(图文) ")]))),_:1})):t.createCommentVNode("v-if",!0),d.showOtherOption?(t.openBlock(),t.createBlock(u,{key:1,type:"primary",onClick:n[1]||(n[1]=e=>p.value=!0),class:"btn-margin"},{default:t.withCtx((()=>n[16]||(n[16]=[t.createTextVNode(" 答题设置 ")]))),_:1})):t.createCommentVNode("v-if",!0),d.showOtherOption?(t.openBlock(),t.createBlock(v,{key:2,modelValue:t.unref(m),"onUpdate:modelValue":n[2]||(n[2]=e=>t.isRef(m)?m.value=e:null),label:"核心题",onChange:n[3]||(n[3]=e=>f("setKey",t.unref(m)))},null,8,["modelValue"])):t.createCommentVNode("v-if",!0)])):t.createCommentVNode("v-if",!0),t.createElementVNode("div",null,[d.isSet?(t.openBlock(),t.createElementBlock("div",r," *此题设置了跳题逻辑 ")):(t.openBlock(),t.createElementBlock("div",i,[d.isEdit?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createVNode(w,{class:"btn-margin",onClick:n[9]||(n[9]=e=>f("delete"))},{default:t.withCtx((()=>n[21]||(n[21]=[t.createTextVNode(" 删除 ")]))),_:1}),t.createVNode(w,{type:"primary",onClick:n[10]||(n[10]=e=>f("save"))},{default:t.withCtx((()=>n[22]||(n[22]=[t.createTextVNode(" 完成编辑 ")]))),_:1})],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createVNode(v,{modelValue:t.unref(m),"onUpdate:modelValue":n[4]||(n[4]=e=>t.isRef(m)?m.value=e:null),label:"核心题",disabled:""},null,8,["modelValue"]),t.createVNode(v,{"v-model":!0,label:t.unref(C),disabled:""},null,8,["label"]),d.pageEnd?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createBlock(w,{key:0,class:"btn-margin",onClick:n[5]||(n[5]=e=>f("edit"))},{icon:t.withCtx((()=>[t.createVNode(y,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Edit))])),_:1})])),default:t.withCtx((()=>[n[17]||(n[17]=t.createTextVNode(" 编辑 "))])),_:1})),t.createVNode(w,{class:"btn-margin",onClick:n[6]||(n[6]=e=>f("delete"))},{icon:t.withCtx((()=>[t.createVNode(y,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Delete))])),_:1})])),default:t.withCtx((()=>[n[18]||(n[18]=t.createTextVNode(" 删除 "))])),_:1}),t.createVNode(w,{class:"btn-margin",onClick:n[7]||(n[7]=e=>f("moveUp"))},{icon:t.withCtx((()=>[t.createVNode(y,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Top))])),_:1})])),default:t.withCtx((()=>[n[19]||(n[19]=t.createTextVNode(" 上移 "))])),_:1}),t.createVNode(w,{class:"btn-margin",onClick:n[8]||(n[8]=e=>f("moveDown"))},{icon:t.withCtx((()=>[t.createVNode(y,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Bottom))])),_:1})])),default:t.withCtx((()=>[n[20]||(n[20]=t.createTextVNode(" 下移 "))])),_:1})],64))]))]),t.createVNode(E,{modelValue:t.unref(p),"onUpdate:modelValue":n[13]||(n[13]=e=>t.isRef(p)?p.value=e:null),title:"答题设置",class:"customize-dialog"},{footer:t.withCtx((()=>[t.createVNode(w,{class:"customize-button",type:"primary",plain:"",onClick:n[12]||(n[12]=e=>p.value=!1)},{default:t.withCtx((()=>n[23]||(n[23]=[t.createTextVNode(" 取消 ")]))),_:1}),t.createVNode(w,{class:"customize-button",type:"primary",plain:"",onClick:N},{default:t.withCtx((()=>n[24]||(n[24]=[t.createTextVNode(" 保存 ")]))),_:1})])),default:t.withCtx((()=>[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(k,(e=>t.createVNode(B,{modelValue:t.unref(V),"onUpdate:modelValue":n[11]||(n[11]=e=>t.isRef(V)?V.value=e:null),class:"vertical-radio-group"},{default:t.withCtx((()=>[t.createVNode(b,{value:e.value},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.label),1)])),_:2},1032,["value"])])),_:2},1032,["modelValue"]))),64))])),_:1},8,["modelValue"])],2)],2)}}});exports.default=d;
2
+ //# sourceMappingURL=subject-action.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-action.vue.cjs","sources":["../../../../../../packages/components/src/subject-action/src/subject-action.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Bottom, Delete, Edit, Top } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectType from '../../subject-type/src/subject-type.vue'\n\ndefineOptions({\n name: 'QxsSubjectAction',\n})\nconst props = defineProps({\n isEdit: {\n type: Boolean,\n },\n isSet: {\n type: Boolean,\n default: false,\n },\n isKey: {\n type: Boolean,\n default: false,\n },\n answerCheckType: {\n type: Number,\n default: 1\n },\n showOtherOption: {\n type: Boolean,\n default: true,\n },\n examAnswerRelationType: {\n type: Number,\n default: null\n },\n pageEnd: {\n type: Boolean,\n default: false\n }\n})\nconst isKey = ref(props.isKey)\nconst showAnswerSetting = ref(false)\nconst emits = defineEmits(['moveUp', 'moveDown', 'delete', 'save', 'edit', 'add', 'onShowRichText', 'setKey', 'setAnswerSetting'])\nconst answerType = ref(props.answerCheckType)\nconst ns = useNamespace('subject-action')\nconst answerTextList = [\n {\n value: 2,\n label: '必须全部都是支持选项,方可下一步'\n },\n {\n value: 1,\n label: '无需判断是否是支持选项'\n },\n {\n value: 3,\n label: '包含全部支持选项,即可下一步'\n }\n]\nconst answerText = computed(() => {\n return answerTextList.find(item => item.value === answerType.value)?.label\n})\nfunction onSaveSetting() {\n showAnswerSetting.value = false\n emits('setAnswerSetting', answerType.value)\n}\n\nfunction selectExam(type:string, canSet: boolean) {\n emits('add', type, canSet? props.examAnswerRelationType: null)\n}\n</script>\n\n<template>\n <div :class=\"ns.e('action-exam')\">\n <div class=\"action flex\" :class=\"[{ active: isEdit }]\">\n <div v-if=\"isEdit\" class=\"flex-justify-between\">\n <el-popover trigger=\"click\">\n <template #reference>\n <el-link type=\"primary\" class=\"btn-margin\">\n +在此题后加入新题\n </el-link>\n </template>\n <SubjectType @select=\"selectExam\" />\n </el-popover>\n <el-link type=\"primary\" @click=\"emits('onShowRichText')\" v-if=\"showOtherOption\" class=\"btn-margin\">\n +添加题目描述(图文)\n </el-link>\n <el-link type=\"primary\" @click=\"showAnswerSetting = true\" v-if=\"showOtherOption\" class=\"btn-margin\">\n 答题设置\n </el-link>\n <el-checkbox v-model=\"isKey\" label=\"核心题\" @change=\"emits('setKey', isKey)\" v-if=\"showOtherOption\" />\n </div>\n <div>\n <div v-if=\"isSet\" class=\"has-set\">\n *此题设置了跳题逻辑\n </div>\n <div v-else class=\"flex flex-justify-end\" style=\"width: 100%;\">\n <template v-if=\"!isEdit\">\n <el-checkbox v-model=\"isKey\" label=\"核心题\" disabled />\n <el-checkbox :v-model=\"true\" :label=\"answerText\" disabled />\n <el-button class=\"btn-margin\" @click=\"emits('edit')\" v-if=\"!pageEnd\">\n <template #icon>\n <el-icon>\n <Edit />\n </el-icon>\n </template>\n 编辑\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n <template #icon>\n <el-icon>\n <Delete />\n </el-icon>\n </template>\n 删除\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveUp')\">\n <template #icon>\n <el-icon>\n <Top />\n </el-icon>\n </template>\n 上移\n </el-button>\n <el-button class=\"btn-margin\" @click=\"emits('moveDown')\">\n <template #icon>\n <el-icon>\n <Bottom />\n </el-icon>\n </template>\n 下移\n </el-button>\n </template>\n <template v-else>\n <el-button class=\"btn-margin\" @click=\"emits('delete')\">\n 删除\n </el-button>\n <el-button type=\"primary\" @click=\"emits('save')\">\n 完成编辑\n </el-button>\n </template>\n </div>\n </div>\n <el-dialog\n v-model=\"showAnswerSetting\"\n title=\"答题设置\"\n class=\"customize-dialog\"\n >\n <el-radio-group v-model=\"answerType\" class=\"vertical-radio-group\" v-for=\"item in answerTextList\">\n <el-radio :value=\"item.value\">{{ item.label }}</el-radio>\n </el-radio-group>\n <template #footer>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"showAnswerSetting = false\"\n >\n 取消\n </el-button>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveSetting\"\n >\n 保存\n </el-button>\n </template>\n </el-dialog>\n </div>\n </div>\n</template>\n"],"names":["props","__props","isKey","ref","showAnswerSetting","emits","__emit","answerType","answerCheckType","ns","useNamespace","answerTextList","value","label","answerText","computed","find","item","onSaveSetting","selectExam","type","canSet","examAnswerRelationType"],"mappings":"+0BAQA,MAAMA,EAAQC,EA6BRC,EAAQC,EAAAA,IAAIH,EAAME,OAClBE,EAAoBD,OAAI,GACxBE,EAAQC,EACRC,EAAaJ,EAAAA,IAAIH,EAAMQ,iBACvBC,EAAKC,eAAa,kBAClBC,EAAiB,CACrB,CACEC,MAAO,EACPC,MAAO,oBAET,CACED,MAAO,EACPC,MAAO,eAET,CACED,MAAO,EACPC,MAAO,mBAGLC,EAAaC,EAAAA,UAAS,IACnBJ,EAAeK,MAAKC,GAAQA,EAAKL,QAAUL,EAAWK,SAAQC,QAEvE,SAASK,IACPd,EAAkBQ,OAAQ,EACpBP,EAAA,mBAAoBE,EAAWK,MAAK,CAGnC,SAAAO,EAAWC,EAAaC,GAChChB,EAAM,MAAOe,EAAMC,EAAQrB,EAAMsB,uBAAwB,KAAI"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./subject-action.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=subject-action.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-action.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../withInstall.cjs"),t=require("./src/subject-layout.vue.cjs");const s=e.withInstall(t.default);exports.QxsSubjectLayout=s,exports.default=s;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/subject-layout/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/subject-layout.vue'\n\nconst QxsSubjectLayout = withInstall(component)\n \nexport {\n QxsSubjectLayout\n}\n \nexport default QxsSubjectLayout"],"names":["QxsSubjectLayout","withInstall","component","default"],"mappings":"kJAGA,MAAMA,EAAmBC,cAAYC,EAASC"}
@@ -1,2 +1,2 @@
1
1
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@qxs-bns/hooks");const o={key:0,class:"edit"};var s=e.defineComponent({name:"QxsSubjectLayout",__name:"subject-layout",props:{showEdit:{type:Boolean,required:!0}},setup(s){const r=t.useNamespace("subject-layout");return(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(r).e("layout-exam"))},[e.createCommentVNode(' <div class="subject-layout"> '),e.renderSlot(t.$slots,"preview"),t.showEdit?(e.openBlock(),e.createElementBlock("div",o,[s[0]||(s[0]=e.createElementVNode("div",{class:"triangle-up"},null,-1)),e.renderSlot(t.$slots,"edit")])):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"default"),e.createCommentVNode(" </div> ")],2))}});exports.default=s;
2
- //# sourceMappingURL=subject-layout.vue.js.map
2
+ //# sourceMappingURL=subject-layout.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-layout.vue.cjs","sources":["../../../../../../packages/components/src/subject-layout/src/subject-layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\n\ndefineOptions({\n name: 'QxsSubjectLayout',\n})\ndefineProps<{\n showEdit: boolean\n}>()\n\nconst ns = useNamespace('subject-layout')\n</script>\n\n<template>\n <div :class=\"ns.e('layout-exam')\">\n <!-- <div class=\"subject-layout\"> -->\n <slot name=\"preview\" />\n <div v-if=\"showEdit\" class=\"edit\">\n <div class=\"triangle-up\" />\n <slot name=\"edit\" />\n </div>\n <slot />\n <!-- </div> -->\n</div>\n</template>\n"],"names":["ns","useNamespace"],"mappings":"gRAUM,MAAAA,EAAKC,eAAa"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./subject-layout.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=subject-layout.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-layout.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../withInstall.cjs"),t=require("./src/subject-list.vue.cjs");const s=e.withInstall(t.default);exports.QxsSubjectList=s,exports.default=s;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/subject-list/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/subject-list.vue'\n\nconst QxsSubjectList = withInstall(component)\n\nexport {\n QxsSubjectList\n}\n\nexport default QxsSubjectList"],"names":["QxsSubjectList","withInstall","component","default"],"mappings":"gJAGA,MAAMA,EAAiBC,cAAYC,EAASC"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es"),t=require("vue"),n=require("@qxs-bns/hooks"),o=require("../../../subject-action/src/subject-action.vue.cjs"),r=require("vue-demi"),a=t.defineComponent({name:"QxsSubjectScale",__name:"SubjectPageEnd",props:{currentPageIndex:{type:Number,required:!0},totalPage:{type:Number,required:!0},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(a,{emit:s}){const i=a,l=s;r.onMounted((function(){}));const u=n.useNamespace("subject-end");return(n,r)=>{const a=e.ElRow;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(u).e("end-exam"))},[t.createVNode(a,{type:"flex",align:"middle"},{default:t.withCtx((()=>[r[5]||(r[5]=t.createElementVNode("span",{class:"auto-line"},null,-1)),t.createElementVNode("span",null,"第"+t.toDisplayString(i.currentPageIndex)+" / "+t.toDisplayString(n.totalPage)+"页",1),r[6]||(r[6]=t.createElementVNode("span",{class:"auto-line"},null,-1))])),_:1}),t.createVNode(o.default,{"is-edit":!1,"is-set":n.isSet,pageEnd:!0,examAnswerRelationType:i.examAnswerRelationType,showOtherOption:!1,onMoveUp:r[0]||(r[0]=e=>l("move","up")),onMoveDown:r[1]||(r[1]=e=>l("move","down")),onDelete:r[2]||(r[2]=e=>l("delete")),onEdit:r[3]||(r[3]=e=>l("edit")),onAdd:r[4]||(r[4]=e=>l("add",e))},null,8,["is-set","examAnswerRelationType"])],2)}}});exports.default=a;
2
+ //# sourceMappingURL=SubjectPageEnd.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubjectPageEnd.vue.cjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectPageEnd.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n currentPageIndex: number\n totalPage: number\n isSave: boolean\n showAction?: boolean\n isEdit: boolean\n isSet: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nfunction init() {\n\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-end')\n</script>\n\n<template>\n <div :class=\"ns.e('end-exam')\">\n <el-row type=\"flex\" align=\"middle\">\n <span class=\"auto-line\" />\n <span>第{{ props.currentPageIndex }} / {{ totalPage }}页</span>\n <span class=\"auto-line\" />\n </el-row>\n <SubjectAction\n :is-edit=\"false\"\n :is-set=\"isSet\"\n :pageEnd=\"true\"\n :examAnswerRelationType=\"props.examAnswerRelationType\"\n :showOtherOption=\"false\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n />\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","onMounted","ns","useNamespace"],"mappings":"6nBAOA,MAAMA,EAAQC,EASRC,EAAQC,EAMdC,EAAAA,WAJA,WAAgB,IAKV,MAAAC,EAAKC,eAAa"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./SubjectPageEnd.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=SubjectPageEnd.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubjectPageEnd.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@qxs-bns/hooks"),r=require("element-plus"),o=require("../../../subject-action/src/subject-action.vue.cjs"),i=require("../../../subject-layout/src/subject-layout.vue.cjs"),n=require("../../../tiny-mce-editor/src/tiny-mce-editor.vue.cjs"),s=require("vue-demi");const u={class:"preview"},a=["innerHTML"];var d=e.defineComponent({name:"QxsSubjectScale",__name:"SubjectRichText",props:{orderIndex:{type:Number,required:!0},richTextContent:{type:String,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(d,{emit:l}){const c=d,p=l,m=s.useAttrs(),v=s.ref("");function x(){v.value?p("save",{richTextContent:v.value||""}):r.ElMessage.error("富文本内容不能为空!")}s.onMounted((function(){c.richTextContent&&(v.value=c.richTextContent)}));const y=t.useNamespace("subject-scale");return(t,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(y).e("scale-exam"))},[e.createVNode(i.default,{"show-edit":t.isEdit},{preview:e.withCtx((()=>[e.createElementVNode("div",u,[e.createTextVNode(e.toDisplayString(t.orderIndex+1)+".",1),e.createElementVNode("div",{innerHTML:e.unref(v)},null,8,a)])])),edit:e.withCtx((()=>[e.createVNode(n.default,e.mergeProps({"model-value":e.unref(v),"onUpdate:modelValue":r[0]||(r[0]=t=>e.isRef(v)?v.value=t:null)},e.unref(m),{style:{width:"100%"}}),null,16,["model-value"])])),default:e.withCtx((()=>[t.showAction?(e.openBlock(),e.createBlock(o.default,{key:0,"is-edit":t.isEdit,"is-set":t.isSet,examAnswerRelationType:c.examAnswerRelationType,showOtherOption:!1,onMoveUp:r[1]||(r[1]=e=>p("move","up")),onMoveDown:r[2]||(r[2]=e=>p("move","down")),onDelete:r[3]||(r[3]=e=>p("delete")),onSave:x,onEdit:r[4]||(r[4]=e=>p("edit")),onAdd:r[5]||(r[5]=e=>p("add",e))},null,8,["is-edit","is-set","examAnswerRelationType"])):e.createCommentVNode("v-if",!0)])),_:1},8,["show-edit"])],2))}});exports.default=d;
2
+ //# sourceMappingURL=SubjectRichText.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubjectRichText.vue.cjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/SubjectRichText.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n orderIndex: number\n richTextContent: string\n title?: string\n isSave: boolean\n showAction?: boolean\n isEdit: boolean\n isSet: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst richContent = ref('')\n\nfunction save() {\n if (!richContent.value) {\n ElMessage.error('富文本内容不能为空!')\n return\n }\n\n\n emits('save', {\n richTextContent: richContent.value ||'',\n })\n}\n\nfunction init() {\n if (props.richTextContent) {\n richContent.value = props.richTextContent\n }\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-scale')\n</script>\n\n<template>\n <div :class=\"ns.e('scale-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n {{ orderIndex + 1 }}.<div v-html=\"richContent\" />\n </div>\n </template>\n <template #edit>\n <TinyMceEditor v-model:model-value=\"richContent\" v-bind=\"attrs\" style=\"width: 100%;\" />\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :examAnswerRelationType=\"props.examAnswerRelationType\"\n :showOtherOption=\"false\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","richContent","ref","save","value","richTextContent","ElMessage","error","onMounted","ns","useNamespace"],"mappings":"20BAUA,MAAMA,EAAQC,EAURC,EAAQC,EAERC,EAAQC,EAAAA,WAERC,EAAcC,MAAI,IAExB,SAASC,IACFF,EAAYG,MAMjBP,EAAM,OAAQ,CACZQ,gBAAiBJ,EAAYG,OAAQ,KANrCE,EAAAA,UAAUC,MAAM,aAOjB,CASHC,EAAAA,WANA,WACMb,EAAMU,kBACRJ,EAAYG,MAAQT,EAAMU,gBAC5B,IAII,MAAAI,EAAKC,eAAa"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./SubjectRichText.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=SubjectRichText.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubjectRichText.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es"),t=require("vue"),l=require("@element-plus/icons-vue"),n=require("@qxs-bns/hooks"),a=require("element-plus"),o=require("../../../subject-action/src/subject-action.vue.cjs"),r=require("../../../subject-layout/src/subject-layout.vue.cjs"),i=require("../../../tiny-mce-editor/src/tiny-mce-editor.vue.cjs"),s=require("vue-demi");const c={class:"preview"},d={class:"content"},u={class:"title"},m={key:0},p=["innerHTML"],f={key:1,class:"flex flex-wrap",style:{"margin-top":"10px",color:"#a8abb2"}},v={class:"flex"},x={style:{flex:"1"}},y={class:"flex flex-justify-end"},V={class:"margin-bottom flex flex-items-center"},g={class:"margin-bottom answer-list"},k={class:"label flex flex-justify-end"},w={class:"answer-tags"},E={key:0,class:"margin-bottom flex"},h={style:{flex:"1"}},N={key:1,class:"margin-bottom flex"},B={style:{flex:"1"}},C={class:"flex flex-justify-end"};var _=t.defineComponent({__name:"subject-blank-fill",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},examAnswerSettingVO:{type:Object,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(_,{emit:b}){const S=_,q=b,j=s.useAttrs(),I=s.ref([]),A=s.ref(""),T=s.ref(""),O=s.ref(!1),R=s.ref(""),L=[{label:"答案不分顺序",value:"isInOrder"},{label:"忽略大小写",value:"isIgnoreCase"}],D=s.ref(["isIgnoreCase"]);function M(){A.value+=" ______",I.value.push({title:"",tag:"",showInput:!1})}function U(){O.value=!1,R.value=""}function F(){A.value?I.value.length<1?a.ElMessage.error("至少添加一个填空符!"):q("save",{title:A.value.replaceAll(/ ______/g,"<filter></filter>"),answers:I.value.map((e=>({title:e.title,isCorrect:!0}))),analysis:T.value,isSetCorrectAnswer:!0,examAnswerSettingBO:{isIgnoreCase:D.value?.includes("isIgnoreCase"),isInOrder:D.value?.includes("isInOrder")},examRichTextContent:O.value?R.value:""}):a.ElMessage.error("题目标题不能为空!")}s.watch((()=>A.value),(()=>{const[...e]=A.value.matchAll(/ ______/g);if(e.length!==I.value.length){const t=I.value.length-e.length;I.value.splice(I.value.length-t,t)}})),s.onMounted((function(){S.title&&(A.value=S.title.replaceAll(/<filter><\/filter>/g," ______")),S.answerList&&S.answerList.length&&(I.value=S.answerList),S.examAnswerSettingVO&&(D.value=D.value.filter((e=>"isIgnoreCase"===e&&S.examAnswerSettingVO?.isIgnoreCase||"isInOrder"===e&&S.examAnswerSettingVO?.isInOrder))),S.analysis&&(T.value=S.analysis),S.examRichTextContent&&(R.value=S.examRichTextContent,O.value=!0)}));const P=n.useNamespace("subject-blank-fill");return(n,a)=>{const s=e.ElInput,_=e.ElLink,b=e.ElCheckbox,z=e.ElCheckboxGroup,H=e.ElTag,G=e.ElIcon,J=e.ElButton;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(P).e("blank-fill-exam"))},[t.createVNode(r.default,{"show-edit":n.isEdit},{preview:t.withCtx((()=>[t.createElementVNode("div",c,[t.createElementVNode("div",d,[t.createElementVNode("span",u,t.toDisplayString(n.orderIndex+1)+"."+t.toDisplayString(t.unref(A))+"(填空题)",1),t.unref(O)?(t.openBlock(),t.createElementBlock("div",m,[t.createElementVNode("div",{innerHTML:t.unref(R)},null,8,p)])):t.createCommentVNode("v-if",!0),t.unref(I).some((e=>e.title))?(t.openBlock(),t.createElementBlock("div",f,[a[10]||(a[10]=t.createElementVNode("span",{class:"title"},"正确答案:",-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(I),((e,l)=>(t.openBlock(),t.createElementBlock("div",{key:l,class:"flex flex-wrap flex-items-center",style:{"margin-right":"10px"}},[t.createElementVNode("span",null,"填空"+t.toDisplayString(l+1)+":",1),t.createElementVNode("span",null,t.toDisplayString(e.title),1)])))),128))])):t.createCommentVNode("v-if",!0)])])])),edit:t.withCtx((()=>[t.createElementVNode("div",v,[a[11]||(a[11]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"题目:")],-1)),t.createElementVNode("div",x,[t.createVNode(s,{modelValue:t.unref(A),"onUpdate:modelValue":a[0]||(a[0]=e=>t.isRef(A)?A.value=e:null),type:"textarea",rows:7,"show-word-limit":"",maxlength:"400",placeholder:"【填空题】请输入问题",disabled:n.isSave},null,8,["modelValue","disabled"])])]),t.createElementVNode("div",y,[t.createCommentVNode(' <el-link\n v-if="!showRichText"\n type="primary"\n @click="showRichText = true"\n >\n 添加富文本\n </el-link> '),t.createVNode(_,{class:"margin-left-10",type:"primary",disabled:n.isSave,onClick:M},{default:t.withCtx((()=>a[12]||(a[12]=[t.createTextVNode(" 插入填空符 ")]))),_:1},8,["disabled"])]),t.createElementVNode("div",V,[a[13]||(a[13]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"答题设置:")],-1)),(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(L,(e=>t.createVNode(z,{key:e.value,modelValue:t.unref(D),"onUpdate:modelValue":a[1]||(a[1]=e=>t.isRef(D)?D.value=e:null)},{default:t.withCtx((()=>[t.createVNode(b,{value:e.value,class:"margin-left-10"},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(e.label),1)])),_:2},1032,["value"])])),_:2},1032,["modelValue"]))),64))]),t.createElementVNode("div",g,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(I),((e,a)=>(t.openBlock(),t.createElementBlock("div",{key:a,class:"answer-item flex flex-items-center"},[t.createElementVNode("div",k,[t.createElementVNode("span",null,"第"+t.toDisplayString(a+1)+"空答案:",1)]),t.createElementVNode("div",w,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.title.split(","),(l=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:l},[l?(t.openBlock(),t.createBlock(H,{key:0,closable:"",onClose:t=>function(e,t){if(e){const l=t.title.split(","),n=l.findIndex((t=>t===e));n>-1&&(l.splice(n,1),t.title=l.join(","))}}(l,e)},{default:t.withCtx((()=>[t.createTextVNode(t.toDisplayString(l),1)])),_:2},1032,["onClose"])):t.createCommentVNode("v-if",!0)],64)))),128)),n.isSave?t.createCommentVNode("v-if",!0):(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[e.showInput?(t.openBlock(),t.createBlock(s,{key:0,modelValue:e.tag,"onUpdate:modelValue":t=>e.tag=t,style:{width:"80px"},onBlur:()=>function(e){e.showInput=!1,e.tag&&(e.title=e.title?[e.title,e.tag].join(","):e.tag,e.tag="")}(e)},null,8,["modelValue","onUpdate:modelValue","onBlur"])):(t.openBlock(),t.createBlock(J,{key:1,size:"small",onClick:t=>e.showInput=!0},{default:t.withCtx((()=>[t.createVNode(G,null,{default:t.withCtx((()=>[t.createVNode(t.unref(l.Plus))])),_:1}),t.createElementVNode("span",null,t.toDisplayString(e.title?"添加同义词":"添加答案"),1)])),_:2},1032,["onClick"]))],64))])])))),128))]),n.showAnalysis?(t.openBlock(),t.createElementBlock("div",E,[a[14]||(a[14]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"解析:")],-1)),t.createElementVNode("div",h,[t.createVNode(s,{modelValue:t.unref(T),"onUpdate:modelValue":a[2]||(a[2]=e=>t.isRef(T)?T.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):t.createCommentVNode("v-if",!0),t.unref(O)?(t.openBlock(),t.createElementBlock("div",N,[a[16]||(a[16]=t.createElementVNode("div",{class:"label flex flex-justify-center"},[t.createElementVNode("span",null,"富文本:")],-1)),t.createElementVNode("div",B,[t.createVNode(i.default,t.mergeProps({"model-value":t.unref(R),"onUpdate:modelValue":a[3]||(a[3]=e=>t.isRef(R)?R.value=e:null)},t.unref(j),{style:{width:"100%"}}),null,16,["model-value"]),t.createElementVNode("div",C,[t.createVNode(_,{type:"danger",onClick:U},{default:t.withCtx((()=>a[15]||(a[15]=[t.createTextVNode(" 删除富文本 ")]))),_:1})])])])):t.createCommentVNode("v-if",!0)])),default:t.withCtx((()=>[n.showAction?(t.openBlock(),t.createBlock(o.default,{key:0,"is-edit":n.isEdit,"is-set":n.isSet,showOtherOption:!1,examAnswerRelationType:S.examAnswerRelationType,onMoveUp:a[4]||(a[4]=e=>q("move","up")),onMoveDown:a[5]||(a[5]=e=>q("move","down")),onDelete:a[6]||(a[6]=e=>q("delete")),onSave:F,onEdit:a[7]||(a[7]=e=>q("edit")),onAdd:a[8]||(a[8]=e=>q("add",e)),onOnShowRichText:a[9]||(a[9]=e=>O.value=!0)},null,8,["is-edit","is-set","examAnswerRelationType"])):t.createCommentVNode("v-if",!0)])),_:1},8,["show-edit"])],2)}}});exports.default=_;
2
+ //# sourceMappingURL=subject-blank-fill.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-blank-fill.vue.cjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-blank-fill.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Plus } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n isEdit: boolean\n isSet: boolean\n examAnswerSettingVO?: {\n isInOrder: boolean\n isIgnoreCase: boolean\n }\n examRichTextContent?: string\n showAnalysis?: boolean\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n tag: string\n showInput: boolean\n}[]>([])\n\nconst title = ref('')\nconst analysis = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\n\nconst checkList = [\n {\n label: '答案不分顺序',\n value: 'isInOrder',\n },\n {\n label: '忽略大小写',\n value: 'isIgnoreCase',\n },\n]\n\nconst isCheckList = ref(['isIgnoreCase'])\n\nfunction handleAddTag(item: any) {\n item.showInput = false\n if (item.tag) {\n item.title = item.title ? [item.title, item.tag].join(',') : item.tag\n item.tag = ''\n }\n}\n\nfunction closeTag(tag: string, item: any) {\n if (tag) {\n const tags = item.title.split(',')\n const index = tags.findIndex((i: string) => i === tag)\n if (index > -1) {\n tags.splice(index, 1)\n item.title = tags.join(',')\n }\n }\n}\n\nfunction addBlank() {\n title.value += ' ______'\n answers.value.push({\n title: '',\n tag: '',\n showInput: false,\n })\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n\n if (answers.value.length < 1) {\n ElMessage.error('至少添加一个填空符!')\n return\n }\n\n emits('save', {\n title: title.value.replaceAll(/ ______/g, '<filter></filter>'),\n answers: answers.value.map((item: any) => {\n return { title: item.title, isCorrect: true }\n }),\n analysis: analysis.value,\n isSetCorrectAnswer: true,\n examAnswerSettingBO: {\n isIgnoreCase: isCheckList.value?.includes('isIgnoreCase'),\n isInOrder: isCheckList.value?.includes('isInOrder'),\n },\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title.replaceAll(/<filter><\\/filter>/g, ' ______')\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.examAnswerSettingVO) {\n // 仅保留与设置匹配的选项\n isCheckList.value = isCheckList.value.filter((item: any) =>\n (item === 'isIgnoreCase' && props.examAnswerSettingVO?.isIgnoreCase)\n || (item === 'isInOrder' && props.examAnswerSettingVO?.isInOrder),\n )\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nwatch(() => title.value, () => {\n const [...matchs] = title.value.matchAll(/ ______/g)\n if (matchs.length !== answers.value.length) {\n const differ = answers.value.length - matchs.length\n answers.value.splice(answers.value.length - differ, differ)\n }\n})\n\nonMounted(init)\nconst ns = useNamespace('subject-blank-fill')\n</script>\n\n<template>\n <div :class=\"ns.e('blank-fill-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div class=\"content\">\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(填空题)</span>\n <div v-if=\"showRichText\">\n <div v-html=\"richText\" />\n </div>\n <div\n v-if=\"answers.some((item) => item.title)\"\n class=\"flex flex-wrap\"\n style=\"margin-top: 10px;color: #a8abb2;\"\n >\n <span class=\"title\">正确答案:</span>\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"flex flex-wrap flex-items-center\"\n style=\"margin-right: 10px;\"\n >\n <span>填空{{ index + 1 }}:</span>\n <span>{{ item.title }}</span>\n </div>\n </div>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\">\n <div class=\"label flex flex-justify-end\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"7\"\n show-word-limit\n maxlength=\"400\"\n placeholder=\"【填空题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"flex flex-justify-end\">\n <!-- <el-link\n v-if=\"!showRichText\"\n type=\"primary\"\n @click=\"showRichText = true\"\n >\n 添加富文本\n </el-link> -->\n <el-link\n class=\"margin-left-10\"\n type=\"primary\"\n :disabled=\"isSave\"\n @click=\"addBlank\"\n >\n 插入填空符\n </el-link>\n </div>\n <div class=\"margin-bottom flex flex-items-center\">\n <div class=\"label flex flex-justify-end\">\n <span>答题设置:</span>\n </div>\n\n <el-checkbox-group\n v-for=\"item in checkList\"\n :key=\"item.value\"\n v-model=\"isCheckList\"\n >\n <el-checkbox :value=\"item.value\" class=\"margin-left-10\">\n {{ item.label }}\n </el-checkbox>\n </el-checkbox-group>\n </div>\n <div class=\"margin-bottom answer-list\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <div class=\"label flex flex-justify-end\">\n <span>第{{ index + 1 }}空答案:</span>\n </div>\n\n <div class=\"answer-tags\">\n <template\n v-for=\"i in item.title.split(',')\"\n :key=\"i\"\n >\n <el-tag\n v-if=\"i\"\n closable\n @close=\"closeTag(i, item)\"\n >\n {{ i }}\n </el-tag>\n </template>\n <template v-if=\"!isSave\">\n <el-input\n v-if=\"item.showInput\"\n v-model=\"item.tag\"\n style=\"width: 80px;\"\n @blur=\"() => handleAddTag(item)\"\n />\n <el-button\n v-else\n size=\"small\"\n @click=\"item.showInput = true\"\n >\n <el-icon><Plus /></el-icon>\n <span>{{ item.title ? '添加同义词' : '添加答案' }}</span>\n </el-button>\n </template>\n </div>\n </div>\n </div>\n <div v-if=\"showAnalysis\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-end\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div v-if=\"showRichText\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor v-model:model-value=\"richText\" v-bind=\"attrs\" style=\"width: 100%;\" />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :showOtherOption=\"false\"\n :examAnswerRelationType=\"props.examAnswerRelationType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"type => emits('add', type)\"\n @onShowRichText=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answers","ref","title","analysis","showRichText","richText","checkList","label","value","isCheckList","addBlank","push","tag","showInput","deleteRichText","save","length","ElMessage","error","replaceAll","map","item","isCorrect","isSetCorrectAnswer","examAnswerSettingBO","isIgnoreCase","includes","isInOrder","examRichTextContent","watch","matchs","matchAll","differ","splice","onMounted","answerList","examAnswerSettingVO","filter","ns","useNamespace","tags","split","index","findIndex","i","join"],"mappings":"2gDAQA,MAAMA,EAAQC,EAiBRC,EAAQC,EAERC,EAAQC,EAAAA,WAERC,EAAUC,EAIXA,IAAA,IAECC,EAAQD,MAAI,IACZE,EAAWF,MAAI,IACfG,EAAeH,OAAI,GACnBI,EAAWJ,MAAI,IAEfK,EAAY,CAChB,CACEC,MAAO,SACPC,MAAO,aAET,CACED,MAAO,QACPC,MAAO,iBAILC,EAAcR,EAAAA,IAAI,CAAC,iBAqBzB,SAASS,IACPR,EAAMM,OAAS,UACfR,EAAQQ,MAAMG,KAAK,CACjBT,MAAO,GACPU,IAAK,GACLC,WAAW,GACZ,CAGH,SAASC,IACPV,EAAaI,OAAQ,EACrBH,EAASG,MAAQ,EAAA,CAGnB,SAASO,IACFb,EAAMM,MAKPR,EAAQQ,MAAMQ,OAAS,EACzBC,EAAAA,UAAUC,MAAM,cAIlBtB,EAAM,OAAQ,CACZM,MAAOA,EAAMM,MAAMW,WAAW,WAAY,qBAC1CnB,QAASA,EAAQQ,MAAMY,KAAKC,IACnB,CAAEnB,MAAOmB,EAAKnB,MAAOoB,WAAW,MAEzCnB,SAAUA,EAASK,MACnBe,oBAAoB,EACpBC,oBAAqB,CACnBC,aAAchB,EAAYD,OAAOkB,SAAS,gBAC1CC,UAAWlB,EAAYD,OAAOkB,SAAS,cAEzCE,oBAAqBxB,EAAaI,MAAQH,EAASG,MAAQ,KApB3DS,EAAAA,UAAUC,MAAM,YAqBjB,CA8BGW,SAAA,IAAM3B,EAAMM,QAAO,KACvB,SAAUsB,GAAU5B,EAAMM,MAAMuB,SAAS,YACzC,GAAID,EAAOd,SAAWhB,EAAQQ,MAAMQ,OAAQ,CAC1C,MAAMgB,EAAShC,EAAQQ,MAAMQ,OAASc,EAAOd,OAC7ChB,EAAQQ,MAAMyB,OAAOjC,EAAQQ,MAAMQ,OAASgB,EAAQA,EAAM,KAI9DE,EAAAA,WAnCA,WACMxC,EAAMQ,QACRA,EAAMM,MAAQd,EAAMQ,MAAMiB,WAAW,sBAAuB,YAG1DzB,EAAMyC,YAAczC,EAAMyC,WAAWnB,SACvChB,EAAQQ,MAAQd,EAAMyC,YAGpBzC,EAAM0C,sBAEI3B,EAAAD,MAAQC,EAAYD,MAAM6B,QAAQhB,GAClC,iBAATA,GAA2B3B,EAAM0C,qBAAqBX,cAC1C,cAATJ,GAAwB3B,EAAM0C,qBAAqBT,aAIvDjC,EAAMS,WACRA,EAASK,MAAQd,EAAMS,UAGrBT,EAAMkC,sBACRvB,EAASG,MAAQd,EAAMkC,oBACvBxB,EAAaI,OAAQ,EACvB,IAYI,MAAA8B,EAAKC,eAAa,gkGAvFf,SAAS3B,EAAaS,GAC7B,GAAIT,EAAK,CACP,MAAM4B,EAAOnB,EAAKnB,MAAMuC,MAAM,KACxBC,EAAQF,EAAKG,WAAWC,GAAcA,IAAMhC,IAC9C8B,GAAQ,IACLF,EAAAP,OAAOS,EAAO,GACdrB,EAAAnB,MAAQsC,EAAKK,KAAK,KACzB,CACF,yXAhBF,SAAsBxB,GACpBA,EAAKR,WAAY,EACbQ,EAAKT,MACPS,EAAKnB,MAAQmB,EAAKnB,MAAQ,CAACmB,EAAKnB,MAAOmB,EAAKT,KAAKiC,KAAK,KAAOxB,EAAKT,IAClES,EAAKT,IAAM,GACb"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./subject-blank-fill.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=subject-blank-fill.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-blank-fill.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es"),l=require("vue"),t=require("@element-plus/icons-vue"),a=require("@qxs-bns/hooks"),n=require("element-plus"),r=require("../../../subject-action/src/subject-action.vue.cjs"),s=require("../../../subject-layout/src/subject-layout.vue.cjs"),o=require("../../../tiny-mce-editor/src/tiny-mce-editor.vue.cjs"),i=require("vue-demi");const d={class:"preview"},c={class:"title"},u={key:0},m=["innerHTML"],f={class:"answer-radio flex flex-col"},p={style:{flex:"1"}},v={class:"answer flex"},x={class:"flex"},V={class:"answer-list flex-col"},y={class:"order"},h={class:"flex",style:{"margin-bottom":"20px"}},N={style:{flex:"1"}},w={key:0,class:"margin-bottom flex"},E={style:{flex:"1"}},k={class:"flex flex-justify-end"};var C=l.defineComponent({name:"QxsSubjectScale",__name:"subject-scale",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},answerList:{type:null,required:!1},analysis:{type:String,required:!1},rowTitle:{type:String,required:!1},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},scaleQuestionList:{type:null,required:!1},examRichTextContent:{type:String,required:!1},examAnswerRelationType:{type:Number,required:!1}},emits:["move","save","delete","edit","add"],setup(C,{emit:g}){const B=C,b=g,q=i.useAttrs(),S=i.ref([{title:""},{title:""},{title:""},{title:""},{title:""}]),j=i.ref(""),R=i.ref(""),L=i.ref(""),T=i.ref(!1),_=i.ref(""),M=i.ref([]),A=i.computed((()=>Math.ceil(24/(S.value.length+1))));function D(){5!==S.value.length&&S.value.push({title:""})}function U(){T.value=!1,_.value=""}function O(){if(!j.value)return void n.ElMessage.error("题目标题不能为空!");let e="";S.value.forEach(((l,t)=>{l.title||(e+=`选项${String.fromCharCode(65+t)}未填写。`)})),e?n.ElMessage.error(e):L.value?(M.value=L.value.split("\n").filter((e=>e)),b("save",{title:j.value,answers:S.value,analysis:R.value,scaleQuestionList:M.value,examRichTextContent:T.value?_.value:""})):n.ElMessage.error("行标题不能为空!")}i.onMounted((function(){B.title&&(j.value=B.title),B.answerList&&B.answerList.length&&(S.value=B.answerList),B.analysis&&(R.value=B.analysis),B.scaleQuestionList&&(M.value=B.scaleQuestionList,L.value=M.value.join("\n")),B.examRichTextContent&&(_.value=B.examRichTextContent,T.value=!0)}));const Q=a.useNamespace("subject-scale");return(a,n)=>{const i=e.ElCol,C=e.ElRow,g=e.ElRadio,z=e.ElInput,F=e.ElIcon,I=e.ElLink;return l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(l.unref(Q).e("scale-exam"))},[l.createVNode(s.default,{"show-edit":a.isEdit},{preview:l.withCtx((()=>[l.createElementVNode("div",d,[l.createElementVNode("div",null,[l.createElementVNode("span",c,l.toDisplayString(a.orderIndex+1)+"."+l.toDisplayString(l.unref(j))+"(量表题)",1),l.unref(T)?(l.openBlock(),l.createElementBlock("div",u,[l.createElementVNode("div",{innerHTML:l.unref(_)},null,8,m)])):l.createCommentVNode("v-if",!0)]),l.createElementVNode("div",f,[l.createVNode(C,{style:{padding:"10px 0"}},{default:l.withCtx((()=>[l.createVNode(i,{span:l.unref(A)},null,8,["span"]),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(S),(e=>(l.openBlock(),l.createBlock(i,{key:e.title,class:"flex flex-center",span:l.unref(A)},{default:l.withCtx((()=>[l.createElementVNode("span",null,l.toDisplayString(e.title),1)])),_:2},1032,["span"])))),128))])),_:1}),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(M),(e=>(l.openBlock(),l.createBlock(C,{key:e,style:{padding:"10px 0"}},{default:l.withCtx((()=>[l.createVNode(i,{span:l.unref(A),class:"flex flex-center"},{default:l.withCtx((()=>[l.createElementVNode("span",null,l.toDisplayString(e),1)])),_:2},1032,["span"]),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(S).length,(e=>(l.openBlock(),l.createBlock(i,{key:e,class:"radio-item flex flex-center",span:l.unref(A)},{default:l.withCtx((()=>[l.createVNode(g,{disabled:!0})])),_:2},1032,["span"])))),128))])),_:2},1024)))),128))])])])),edit:l.withCtx((()=>[l.createElementVNode("div",{class:l.normalizeClass(["flex",[{"margin-bottom":l.unref(T)}]])},[n[10]||(n[10]=l.createElementVNode("div",{class:"label flex flex-justify-center"},[l.createElementVNode("span",null,"题目:")],-1)),l.createElementVNode("div",p,[l.createVNode(z,{modelValue:l.unref(j),"onUpdate:modelValue":n[0]||(n[0]=e=>l.isRef(j)?j.value=e:null),type:"textarea",rows:2,placeholder:"【量表题】请输入问题",disabled:a.isSave},null,8,["modelValue","disabled"])])],2),l.createElementVNode("div",v,[n[11]||(n[11]=l.createElementVNode("div",{class:"label flex flex-justify-center"},[l.createElementVNode("span",null,"行标题:")],-1)),l.createElementVNode("div",x,[l.createVNode(z,{modelValue:l.unref(L),"onUpdate:modelValue":n[1]||(n[1]=e=>l.isRef(L)?L.value=e:null),modelModifiers:{trim:!0},type:"textarea",placeholder:"请输入行标题",style:{width:"160px"},rows:10},null,8,["modelValue"]),l.createElementVNode("div",V,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(S),((e,n)=>(l.openBlock(),l.createElementBlock("div",{key:n,class:"answer-item flex flex-items-center"},[l.createElementVNode("span",y,l.toDisplayString(String.fromCharCode(65+n))+".",1),l.createVNode(z,{modelValue:e.title,"onUpdate:modelValue":l=>e.title=l,class:"input","show-word-limit":"",maxlength:10,placeholder:`选项${String.fromCharCode(65+n)}`,disabled:a.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),l.createCommentVNode(' <PlusCircleOutlined\n class="icon"\n :class="[{ disabled: answers.length === 5 }]"\n @click="addAnswer"\n />\n <MinusCircleOutlined\n class="icon"\n :class="[{ disabled: answers.length < 3 }]"\n @click="deleteAnswer(index)"\n /> '),l.createVNode(F,{class:"icon"},{default:l.withCtx((()=>[l.createVNode(l.unref(t.CirclePlus),{class:l.normalizeClass([{disabled:5===l.unref(S).length}]),onClick:D},null,8,["class"])])),_:1}),l.createVNode(F,{class:"icon"},{default:l.withCtx((()=>[l.createVNode(l.unref(t.Remove),{class:l.normalizeClass([{disabled:l.unref(S).length<3}]),onClick:e=>function(e){S.value.length<3||S.value.splice(e,1)}(n)},null,8,["class","onClick"])])),_:2},1024)])))),128))])])]),l.createElementVNode("div",h,[n[12]||(n[12]=l.createElementVNode("div",{class:"label flex flex-justify-center"},[l.createElementVNode("span",null,"解析:")],-1)),l.createElementVNode("div",N,[l.createVNode(z,{modelValue:l.unref(R),"onUpdate:modelValue":n[2]||(n[2]=e=>l.isRef(R)?R.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])]),l.unref(T)?(l.openBlock(),l.createElementBlock("div",w,[n[14]||(n[14]=l.createElementVNode("div",{class:"label flex flex-justify-center"},[l.createElementVNode("span",null,"富文本:")],-1)),l.createElementVNode("div",E,[l.createVNode(o.default,l.mergeProps({"model-value":l.unref(_),"onUpdate:modelValue":n[3]||(n[3]=e=>l.isRef(_)?_.value=e:null)},l.unref(q),{style:{width:"100%"}}),null,16,["model-value"]),l.createElementVNode("div",k,[l.createVNode(I,{type:"danger",onClick:U},{default:l.withCtx((()=>n[13]||(n[13]=[l.createTextVNode(" 删除富文本 ")]))),_:1})])])])):l.createCommentVNode("v-if",!0)])),default:l.withCtx((()=>[a.showAction?(l.openBlock(),l.createBlock(r.default,{key:0,"is-edit":a.isEdit,"is-set":a.isSet,showOtherOption:!1,examAnswerRelationType:B.examAnswerRelationType,onMoveUp:n[4]||(n[4]=e=>b("move","up")),onMoveDown:n[5]||(n[5]=e=>b("move","down")),onDelete:n[6]||(n[6]=e=>b("delete")),onSave:O,onEdit:n[7]||(n[7]=e=>b("edit")),onAdd:n[8]||(n[8]=e=>b("add",e)),onOnShowRichText:n[9]||(n[9]=e=>T.value=!0)},null,8,["is-edit","is-set","examAnswerRelationType"])):l.createCommentVNode("v-if",!0)])),_:1},8,["show-edit"])],2)}}});exports.default=C;
2
+ //# sourceMappingURL=subject-scale.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-scale.vue.cjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-scale.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CirclePlus, Remove } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElMessage } from 'element-plus'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\n\ndefineOptions({\n name: 'QxsSubjectScale',\n})\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n answerList?: any\n analysis?: string\n rowTitle?: string\n isEdit: boolean\n isSet: boolean\n scaleQuestionList?: any\n examRichTextContent?: string\n examAnswerRelationType?: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add'])\n\nconst attrs = useAttrs()\n\nconst answers = ref<{\n title: string\n}[]>([{\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}, {\n title: '',\n}])\n\nconst title = ref('')\nconst analysis = ref('')\nconst rowTitle = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\nconst scaleQuestionList = ref<string[]>([])\nconst span = computed(() => Math.ceil(24 / (answers.value.length + 1)))\nfunction addAnswer() {\n if (answers.value.length === 5) {\n return\n }\n answers.value.push({\n title: '',\n })\n}\n\nfunction deleteAnswer(index: number) {\n if (answers.value.length < 3) {\n return\n }\n answers.value.splice(index, 1)\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n let msg = ''\n answers.value.forEach((v, i) => {\n if (!v.title) {\n msg += `选项${String.fromCharCode(65 + i)}未填写。`\n }\n })\n\n if (msg) {\n ElMessage.error(msg)\n return\n }\n\n if (!rowTitle.value) {\n ElMessage.error('行标题不能为空!')\n return\n }\n\n scaleQuestionList.value = rowTitle.value.split('\\n').filter(i => i)\n\n emits('save', {\n title: title.value,\n answers: answers.value,\n analysis: analysis.value,\n scaleQuestionList: scaleQuestionList.value,\n examRichTextContent: showRichText.value ? richText.value : '',\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.scaleQuestionList) {\n scaleQuestionList.value = props.scaleQuestionList\n rowTitle.value = scaleQuestionList.value.join('\\n')\n }\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\n\nonMounted(init)\nconst ns = useNamespace('subject-scale')\n</script>\n\n<template>\n <div :class=\"ns.e('scale-exam')\">\n <SubjectLayout :show-edit=\"isEdit\">\n <template #preview>\n <div class=\"preview\">\n <div>\n <span class=\"title\">{{ orderIndex + 1 }}.{{ title }}(量表题)</span>\n <div v-if=\"showRichText\">\n <div v-html=\"richText\" />\n </div>\n </div>\n <div class=\"answer-radio flex flex-col\">\n <el-row style=\"padding: 10px 0;\">\n <el-col :span=\"span\" />\n <el-col\n v-for=\"item in answers\"\n :key=\"item.title\"\n class=\"flex flex-center\"\n :span=\"span\"\n >\n <span>{{ item.title }}</span>\n </el-col>\n </el-row>\n <el-row\n v-for=\"item in scaleQuestionList\"\n :key=\"item\"\n style=\"padding: 10px 0;\"\n >\n <el-col :span=\"span\" class=\"flex flex-center\">\n <span>{{ item }}</span>\n </el-col>\n <el-col\n v-for=\"i in answers.length\"\n :key=\"i\"\n class=\"radio-item flex flex-center\"\n :span=\"span\"\n >\n <el-radio :disabled=\"true\" />\n </el-col>\n </el-row>\n </div>\n </div>\n </template>\n <template #edit>\n <div class=\"flex\" :class=\"[{ 'margin-bottom': showRichText }]\">\n <div class=\"label flex flex-justify-center\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"【量表题】请输入问题\"\n :disabled=\"isSave\"\n />\n </div>\n </div>\n <div class=\"answer flex\">\n <div class=\"label flex flex-justify-center\">\n <span>行标题:</span>\n </div>\n <div class=\"flex\">\n <el-input\n v-model.trim=\"rowTitle\"\n type=\"textarea\"\n placeholder=\"请输入行标题\"\n style=\"width: 160px;\"\n :rows=\"10\"\n />\n <div class=\"answer-list flex-col\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <span class=\"order\">{{ String.fromCharCode(65 + index) }}.</span>\n <el-input\n v-model=\"item.title\"\n class=\"input\"\n show-word-limit\n :maxlength=\"10\"\n :placeholder=\"`选项${String.fromCharCode(65 + index)}`\"\n :disabled=\"isSave\"\n />\n <!-- <PlusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n <MinusCircleOutlined\n class=\"icon\"\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n /> -->\n <el-icon class=\"icon\">\n <CirclePlus\n :class=\"[{ disabled: answers.length === 5 }]\"\n @click=\"addAnswer\"\n />\n </el-icon>\n <el-icon class=\"icon\">\n <Remove\n :class=\"[{ disabled: answers.length < 3 }]\"\n @click=\"deleteAnswer(index)\"\n />\n </el-icon>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex\" style=\"margin-bottom: 20px;\">\n <div class=\"label flex flex-justify-center\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div v-if=\"showRichText\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor v-model:model-value=\"richText\" v-bind=\"attrs\" style=\"width: 100%;\" />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :showOtherOption=\"false\"\n :examAnswerRelationType=\"props.examAnswerRelationType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"(type: any) => emits('add', type)\"\n @onShowRichText=\"showRichText = true\"\n />\n </SubjectLayout>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answers","ref","title","analysis","rowTitle","showRichText","richText","scaleQuestionList","span","computed","Math","ceil","value","length","addAnswer","push","deleteRichText","save","ElMessage","error","msg","forEach","v","i","String","fromCharCode","split","filter","examRichTextContent","onMounted","answerList","join","ns","useNamespace","index","splice"],"mappings":"u3CAWA,MAAMA,EAAQC,EAcRC,EAAQC,EAERC,EAAQC,EAAAA,WAERC,EAAUC,EAAAA,IAEX,CAAC,CACJC,MAAO,IACN,CACDA,MAAO,IACN,CACDA,MAAO,IACN,CACDA,MAAO,IACN,CACDA,MAAO,MAGHA,EAAQD,MAAI,IACZE,EAAWF,MAAI,IACfG,EAAWH,MAAI,IACfI,EAAeJ,OAAI,GACnBK,EAAWL,MAAI,IACfM,EAAoBN,EAAcA,IAAA,IAClCO,EAAOC,EAAAA,UAAS,IAAMC,KAAKC,KAAK,IAAMX,EAAQY,MAAMC,OAAS,MACnE,SAASC,IACsB,IAAzBd,EAAQY,MAAMC,QAGlBb,EAAQY,MAAMG,KAAK,CACjBb,MAAO,IACR,CAUH,SAASc,IACPX,EAAaO,OAAQ,EACrBN,EAASM,MAAQ,EAAA,CAGnB,SAASK,IACH,IAACf,EAAMU,MAET,YADAM,EAAAA,UAAUC,MAAM,aAGlB,IAAIC,EAAM,GACVpB,EAAQY,MAAMS,SAAQ,CAACC,EAAGC,KACnBD,EAAEpB,QACLkB,GAAO,KAAKI,OAAOC,aAAa,GAAKF,SAAE,IAIvCH,EACFF,EAAAA,UAAUC,MAAMC,GAIbhB,EAASQ,OAKIL,EAAAK,MAAQR,EAASQ,MAAMc,MAAM,MAAMC,WAAYJ,IAEjE3B,EAAM,OAAQ,CACZM,MAAOA,EAAMU,MACbZ,QAASA,EAAQY,MACjBT,SAAUA,EAASS,MACnBL,kBAAmBA,EAAkBK,MACrCgB,oBAAqBvB,EAAaO,MAAQN,EAASM,MAAQ,MAX3DM,EAAAA,UAAUC,MAAM,WAYjB,CA0BHU,EAAAA,WAvBA,WACMnC,EAAMQ,QACRA,EAAMU,MAAQlB,EAAMQ,OAGlBR,EAAMoC,YAAcpC,EAAMoC,WAAWjB,SACvCb,EAAQY,MAAQlB,EAAMoC,YAGpBpC,EAAMS,WACRA,EAASS,MAAQlB,EAAMS,UAGrBT,EAAMa,oBACRA,EAAkBK,MAAQlB,EAAMa,kBAChCH,EAASQ,MAAQL,EAAkBK,MAAMmB,KAAK,OAE5CrC,EAAMkC,sBACRtB,EAASM,MAAQlB,EAAMkC,oBACvBvB,EAAaO,OAAQ,EACvB,IAII,MAAAoB,EAAKC,eAAa,0wHArExB,SAAsBC,GAChBlC,EAAQY,MAAMC,OAAS,GAGnBb,EAAAY,MAAMuB,OAAOD,EAAO,EAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./subject-scale.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=subject-scale.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-scale.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("element-plus/es"),t=require("vue"),l=require("@element-plus/icons-vue"),a=require("@qxs-bns/hooks"),r=require("../../../subject-action/src/subject-action.vue.cjs"),n=require("../../../subject-layout/src/subject-layout.vue.cjs"),o=require("../../../tiny-mce-editor/src/tiny-mce-editor.vue.cjs"),i=require("@qxs-bns/utils"),s=require("element-plus"),u=require("vue-demi");const d={class:"preview"},c={class:"title"},m={key:0},p={key:1},f={key:0},v=["innerHTML"],y={class:"preview-answer"},x={class:"order"},C={class:"order"},k={style:{flex:"1"}},V={class:"margin-bottom flex flex-items-center"},w={class:"margin-bottom answer-list"},h={class:"order"},g={key:0,class:"margin-bottom flex flex-items-center"},E={style:{flex:"1"}},N={key:1,class:"flex"},B={style:{flex:"1"}},S={key:2,class:"margin-bottom flex"},b={style:{flex:"1"}},q={class:"flex flex-justify-end"};var T=t.defineComponent({name:"QxsSubjectSingle",__name:"subject-single",props:{orderIndex:{type:Number,required:!0},title:{type:String,required:!1},isSave:{type:Boolean,required:!0},showAction:{type:Boolean,required:!1},type:{type:String,required:!0},isEdit:{type:Boolean,required:!0},isSet:{type:Boolean,required:!0},answerList:{type:null,required:!1},leastAnswerCount:{type:Number,required:!1},analysis:{type:String,required:!1},examExpand:{type:String,required:!1},examRichTextContent:{type:String,required:!1},showAnalysis:{type:Boolean,required:!1},examAnswerRelationType:{type:Number,required:!1},customId:{type:Number,required:!1},examId:{type:Number,required:!1},isKey:{type:Boolean,required:!0},answerCheckType:{type:Number,required:!0}},emits:["move","save","delete","edit","add","setRelation"],setup(T,{emit:A}){const R=T,_=A,j=u.useAttrs(),D=u.ref(0),I=u.ref(!1),L=u.ref(1),M=u.ref(1),U=u.ref([{title:"",isCorrect:!1},{title:"",isCorrect:!1},{title:"",isCorrect:!1},{title:"",isCorrect:!1}]),z=u.ref(),K=u.ref(""),$=u.ref(""),F=u.ref(!1),P=u.ref(""),O=u.ref(0),G=u.ref(!1),H=u.ref(""),Q=u.computed((()=>"single"===R.type?"单选题":"multiple"===R.type?"多选题":"排序题")),J=u.ref([]),W=u.computed((()=>{const e=[];for(let t=U.value.length;t>1;t--)e.push({label:`至少选择${t}项`,value:t});return e.reverse()}));function X(){R.isSave||U.value.push({title:"",isCorrect:!1,customAnswerId:i.setGuid()})}function Y(){F.value=!1,P.value=""}function Z(){if(!K.value)return void s.ElMessage.error("题目标题不能为空!");let e="",t=!1,l=0;if("multiple"===R.type||"single"===R.type?U.value.forEach(((a,r)=>{a.title||(e+=`选项${String.fromCharCode(65+r)}未填写。`),a.isCorrect&&(t=!0,l++)})):"sort"===R.type&&J.value.length&&(t=!0),e)return void s.ElMessage.error(e);if(new Set(U.value.map((e=>e.title))).size===U.value.length){if("multiple"===R.type){if(1===l)return void s.ElMessage.error("请至少设置两个支持选项");if(t&&l<z.value)return void s.ElMessage.error("至少选几项与支持选项数不符")}console.log(L.value,111),2!==L.value&&3!==L.value||t?_("save",{title:K.value,answers:U.value.map(((e,t)=>({...e,orderIndex:t+1}))),examExpand:J.value.map((e=>e.charCodeAt(0)-65+1)).join(","),analysis:$.value,isSetCorrectAnswer:t,leastAnswerCount:z.value,examRichTextContent:F.value?P.value:"",examAnswerRelationType:M.value,isKey:I.value,answerCheckType:L.value}):s.ElMessage.error("请设置支持选项")}else s.ElMessage.error("选项不能重复")}function ee(){U.value[D.value].resultItem=H.value||"",G.value=!1}function te(){G.value=!1,H.value=""}function le(e){I.value=e}function ae(e){L.value=e}function re(e,t){_("add",e,t?R.examAnswerRelationType:null)}u.watch((()=>R.isEdit),(()=>{R.isEdit&&(O.value=(new Date).getTime())}));const ne=u.computed((()=>e=>{let t=0;return e.forEach((e=>{e.relationAnswers&&(t+=e.relationAnswers.length)})),t})),oe=a.useNamespace("subject-single");return u.onMounted((function(){if(R.title&&(K.value=R.title),R.answerCheckType&&(L.value=R.answerCheckType),R.isKey&&(I.value=R.isKey),R.examAnswerRelationType&&(M.value=R.examAnswerRelationType),R.answerList&&R.answerList.length&&(U.value=R.answerList),R.leastAnswerCount&&(z.value=R.leastAnswerCount),R.examExpand&&R.examExpand){const e=R.examExpand.split(",");J.value=e.map((e=>{const t=R.answerList.find((t=>t.answerId?.toString()===e));return t?String.fromCharCode(65+t.orderIndex-1):e})).filter(Boolean)}R.analysis&&($.value=R.analysis),R.examRichTextContent&&(P.value=R.examRichTextContent,F.value=!0)})),(a,s)=>{const u=e.ElCheckbox,T=e.ElRadio,A=e.ElInput,O=e.ElOption,ie=e.ElSelect,se=e.ElIcon,ue=e.ElLink,de=e.ElButton,ce=e.ElDialog;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(oe).e("single-exam"))},[t.createVNode(n.default,{"show-edit":a.isEdit},t.createSlots({preview:t.withCtx((()=>[t.createElementVNode("div",d,[t.createElementVNode("div",null,[t.createElementVNode("span",c,[t.createTextVNode(t.toDisplayString(a.orderIndex+1)+"."+t.toDisplayString(t.unref(K))+" ",1),"single"===a.type?(t.openBlock(),t.createElementBlock("span",m,"(单选题)")):["multiple","sort"].includes(a.type)?(t.openBlock(),t.createElementBlock("span",p," ("+t.toDisplayString(t.unref(Q))+t.toDisplayString(t.unref(z)?`至少选${t.unref(z)}项${"sort"===a.type?"并排序":""}`:"")+") ",1)):t.createCommentVNode("v-if",!0)])]),t.unref(F)?(t.openBlock(),t.createElementBlock("div",f,[t.createElementVNode("div",{innerHTML:t.unref(P)},null,8,v)])):t.createCommentVNode("v-if",!0),t.createElementVNode("div",y,["sort"===a.type?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(t.unref(U),((e,l)=>(t.openBlock(),t.createBlock(u,{key:l,class:"radio",disabled:!0},{default:t.withCtx((()=>[t.createElementVNode("span",x,t.toDisplayString(String.fromCharCode(65+l))+". ",1),t.createTextVNode(" "+t.toDisplayString(e.title),1)])),_:2},1024)))),128)):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(t.unref(U),((e,l)=>(t.openBlock(),t.createBlock(T,{key:l,class:"radio",value:"disabled",disabled:""},{default:t.withCtx((()=>[t.createElementVNode("span",C,t.toDisplayString(String.fromCharCode(65+l))+". ",1),t.createTextVNode(" "+t.toDisplayString(e.title)+" "+t.toDisplayString(e.isCorrect?"(支持选项)":"")+" "+t.toDisplayString(1===t.unref(M)?e.resultItem?"(已设置结果项)":"(未设置结果项)":"")+" "+t.toDisplayString(2===t.unref(M)?e.answerRelations?.length?"(已设置关联)":"(未设置关联)":""),1)])),_:2},1024)))),128))])])])),default:t.withCtx((()=>[a.showAction?(t.openBlock(),t.createBlock(r.default,{key:0,"is-edit":a.isEdit,"is-set":a.isSet,isKey:t.unref(I),examAnswerRelationType:R.examAnswerRelationType,answerCheckType:t.unref(L),onMoveUp:s[5]||(s[5]=e=>_("move","up")),onMoveDown:s[6]||(s[6]=e=>_("move","down")),onDelete:s[7]||(s[7]=e=>_("delete")),onSave:Z,onEdit:s[8]||(s[8]=e=>_("edit")),onAdd:re,onOnShowRichText:s[9]||(s[9]=e=>F.value=!0),onSetKey:le,onSetAnswerSetting:ae},null,8,["is-edit","is-set","isKey","examAnswerRelationType","answerCheckType"])):t.createCommentVNode("v-if",!0)])),_:2},[a.isEdit?{name:"edit",fn:t.withCtx((()=>[t.createElementVNode("div",{class:t.normalizeClass(["flex",[{"margin-bottom":t.unref(F)}]])},[s[12]||(s[12]=t.createElementVNode("div",{class:"label flex flex-justify-center"},[t.createElementVNode("span",null,"题目:")],-1)),t.createElementVNode("div",k,[t.createVNode(A,{modelValue:t.unref(K),"onUpdate:modelValue":s[0]||(s[0]=e=>t.isRef(K)?K.value=e:null),type:"textarea",rows:2,placeholder:`【${t.unref(Q)}】请输入问题`,disabled:a.isSave,"show-word-limit":"",maxlength:"200",class:"margin-bottom"},null,8,["modelValue","placeholder","disabled"])])],2),t.createElementVNode("div",V,[s[13]||(s[13]=t.createElementVNode("div",{class:"label flex flex-justify-center"},[t.createElementVNode("span",null,"设置:")],-1)),["multiple","sort"].includes(a.type)?(t.openBlock(),t.createBlock(ie,{key:0,modelValue:t.unref(z),"onUpdate:modelValue":s[1]||(s[1]=e=>t.isRef(z)?z.value=e:null),style:{width:"150px"},placeholder:"至少选择几项",disabled:a.isSave},{default:t.withCtx((()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(W),(e=>(t.openBlock(),t.createBlock(O,{key:e.value,value:e.value,label:e.label},null,8,["value","label"])))),128))])),_:1},8,["modelValue","disabled"])):t.createCommentVNode("v-if",!0)]),t.createElementVNode("div",w,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(U),((e,r)=>(t.openBlock(),t.createElementBlock("div",{key:r,class:"answer-item flex flex-items-center"},[t.createElementVNode("span",h,t.toDisplayString(String.fromCharCode(65+r))+".",1),t.createVNode(A,{modelValue:e.title,"onUpdate:modelValue":t=>e.title=t,class:"input","show-word-limit":"",maxlength:"100",placeholder:`选项${String.fromCharCode(65+r)}`,disabled:a.isSave},null,8,["modelValue","onUpdate:modelValue","placeholder","disabled"]),["single","multiple"].includes(a.type)?(t.openBlock(),t.createBlock(u,{key:0,modelValue:e.isCorrect,"onUpdate:modelValue":t=>e.isCorrect=t,class:t.normalizeClass([{"is-correct":e.isCorrect}]),disabled:a.isSave,style:{"margin-left":"10px"},onChange:t=>function(e,t){"single"===R.type?(t&&U.value.forEach((t=>{t!==e&&(t.isCorrect=!1)})),e.isCorrect=t):"multiple"===R.type&&(e.isCorrect=t)}(e,t)},{default:t.withCtx((()=>[...s[14]||(s[14]=[t.createTextVNode(" 支持选项 ")])])),_:2},1032,["modelValue","onUpdate:modelValue","class","disabled","onChange"])):t.createCommentVNode("v-if",!0),t.createVNode(se,{class:"icon"},{default:t.withCtx((()=>[t.createVNode(t.unref(l.CirclePlus),{class:t.normalizeClass([{disabled:a.isSave}]),onClick:X},null,8,["class"])])),_:1}),t.createVNode(se,{class:"icon"},{default:t.withCtx((()=>[t.createVNode(t.unref(l.Remove),{class:t.normalizeClass([{disabled:t.unref(U).length<3||a.isSave}]),onClick:e=>function(e){U.value.length<3||R.isSave||U.value.splice(e,1)}(r)},null,8,["class","onClick"])])),_:2},1024),1===t.unref(M)?(t.openBlock(),t.createBlock(ue,{key:1,type:"primary",class:"margin-left-10",onClick:e=>{return t=r,D.value=t,H.value=U.value[t].resultItem||"",void(G.value=!0);var t}},{default:t.withCtx((()=>[t.createElementVNode("span",null,t.toDisplayString(e.resultItem?"编辑结果":"添加结果"),1)])),_:2},1032,["onClick"])):t.createCommentVNode("v-if",!0),2===t.unref(M)?(t.openBlock(),t.createBlock(ue,{key:2,type:"primary",class:"margin-left-10",onClick:t=>function(e){e.customAnswerId=e.examAnswerId||i.setGuid(),_("setRelation",R.customId,e)}(e)},{default:t.withCtx((()=>[t.createElementVNode("span",null,t.toDisplayString(e.answerRelations?.length?`关联了${t.unref(ne)(e.answerRelations)}项`:"关联检查"),1)])),_:2},1032,["onClick"])):t.createCommentVNode("v-if",!0)])))),128))]),"sort"===a.type?(t.openBlock(),t.createElementBlock("div",g,[s[15]||(s[15]=t.createElementVNode("div",{class:"label flex flex-justify-end"},[t.createElementVNode("span",null,"排序答案:")],-1)),t.createElementVNode("div",E,[t.createVNode(ie,{modelValue:t.unref(J),"onUpdate:modelValue":s[2]||(s[2]=e=>t.isRef(J)?J.value=e:null),mode:"multiple",style:{width:"360px"},placeholder:"请按顺序选择排序答案","show-arrow":!0},{default:t.withCtx((()=>[t.createCommentVNode(' :options="[...Array(answers.length)].map((_, i) => ({ value: String.fromCharCode(65 + i) }))" '),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(U),((e,l)=>(t.openBlock(),t.createBlock(O,{key:l,label:e.title,value:String.fromCharCode(65+l)},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])])])):t.createCommentVNode("v-if",!0),a.showAnalysis?(t.openBlock(),t.createElementBlock("div",N,[s[16]||(s[16]=t.createElementVNode("div",{class:"label flex flex-justify-center"},[t.createElementVNode("span",null,"解析:")],-1)),t.createElementVNode("div",B,[t.createVNode(A,{modelValue:t.unref($),"onUpdate:modelValue":s[3]||(s[3]=e=>t.isRef($)?$.value=e:null),type:"textarea",rows:2,placeholder:"请输入题目解析"},null,8,["modelValue"])])])):t.createCommentVNode("v-if",!0),t.unref(F)?(t.openBlock(),t.createElementBlock("div",S,[s[18]||(s[18]=t.createElementVNode("div",{class:"label flex flex-justify-center"},[t.createElementVNode("span",null,"富文本:")],-1)),t.createElementVNode("div",b,[t.createVNode(o.default,t.mergeProps({"model-value":t.unref(P),"onUpdate:modelValue":s[4]||(s[4]=e=>t.isRef(P)?P.value=e:null)},t.unref(j),{style:{width:"100%"}}),null,16,["model-value"]),t.createElementVNode("div",q,[t.createVNode(ue,{type:"danger",onClick:Y},{default:t.withCtx((()=>s[17]||(s[17]=[t.createTextVNode(" 删除富文本 ")]))),_:1})])])])):t.createCommentVNode("v-if",!0)])),key:"0"}:void 0]),1032,["show-edit"]),t.createVNode(ce,{modelValue:t.unref(G),"onUpdate:modelValue":s[11]||(s[11]=e=>t.isRef(G)?G.value=e:null),title:"添加结果",class:"customize-dialog"},{footer:t.withCtx((()=>[t.createVNode(de,{class:"customize-button",type:"primary",plain:"",onClick:te},{default:t.withCtx((()=>s[19]||(s[19]=[t.createTextVNode(" 取消 ")]))),_:1}),t.createVNode(de,{class:"customize-button",type:"primary",plain:"",onClick:ee},{default:t.withCtx((()=>s[20]||(s[20]=[t.createTextVNode(" 保存 ")]))),_:1})])),default:t.withCtx((()=>[(t.openBlock(),t.createBlock(o.default,t.mergeProps({key:t.unref(D),"model-value":t.unref(H),"onUpdate:modelValue":s[10]||(s[10]=e=>t.isRef(H)?H.value=e:null)},t.unref(j),{style:{width:"100%"}}),null,16,["model-value"]))])),_:1},8,["modelValue"])],2)}}});exports.default=T;
2
+ //# sourceMappingURL=subject-single.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-single.vue.cjs","sources":["../../../../../../../packages/components/src/subject-list/src/components/subject-single.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { CirclePlus, Remove } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport SubjectAction from '../../../subject-action/src/subject-action.vue'\nimport SubjectLayout from '../../../subject-layout/src/subject-layout.vue'\nimport TinyMceEditor from '../../../tiny-mce-editor/src/tiny-mce-editor.vue'\nimport { setGuid } from '@qxs-bns/utils'\nimport { ElMessage } from 'element-plus'\n\ndefineOptions({\n name: 'QxsSubjectSingle',\n})\nconst props = defineProps<{\n orderIndex: number\n title?: string\n isSave: boolean\n showAction?: boolean\n type: 'single' | 'multiple' | 'sort'\n isEdit: boolean\n isSet: boolean\n answerList?: any\n leastAnswerCount?: number\n analysis?: string\n examExpand?: string\n examRichTextContent?: string\n showAnalysis?: boolean\n examAnswerRelationType?: number\n customId?: number\n examId?: number\n isKey: boolean\n answerCheckType: number\n}>()\nconst emits = defineEmits(['move', 'save', 'delete', 'edit', 'add', 'setRelation'])\n\nconst attrs = useAttrs()\n\nconst answersIndex = ref(0)\nconst isKey = ref(false)\nconst answerCheckType = ref(1)\nconst examAnswerRelationType = ref(1)\nconst answers = ref<{\n title: string\n isCorrect: boolean\n orderIndex?: number\n resultItem?: string\n customAnswerId?: string\n answerRelations?: {\n relationExamId: number\n relationAnswers: {\n relationAnswerId: number\n relationAnswerIndex: number\n }[]\n }[]\n}[]>([{\n title: '',\n isCorrect: false,\n}, {\n title: '',\n isCorrect: false,\n}, {\n title: '',\n isCorrect: false,\n}, {\n title: '',\n isCorrect: false,\n}])\n\nconst leastAnswerCount = ref()\nconst title = ref('')\nconst analysis = ref('')\nconst showRichText = ref(false)\nconst richText = ref('')\nconst startTime = ref(0)\nconst showRichContent = ref(false)\nconst resultItem = ref<string>('')\nconst titlePlaceholder = computed(() => {\n if (props.type === 'single') {\n return '单选题'\n }\n else if (props.type === 'multiple') {\n return '多选题'\n }\n else {\n return '排序题'\n }\n})\n\nconst orderList = ref<string[]>([])\n\nconst leastAnswerOptions = computed(() => {\n const items = []\n const length = answers.value.length\n for (let count = length; count > 1; count--) {\n items.push({\n label: `至少选择${count}项`,\n value: count,\n })\n }\n return items.reverse()\n})\nfunction addAnswer() {\n if (props.isSave) {\n return\n }\n answers.value.push({\n title: '',\n isCorrect: false,\n customAnswerId: setGuid()\n })\n}\n\nfunction deleteAnswer(index: number) {\n if (answers.value.length < 3 || props.isSave) {\n return\n }\n answers.value.splice(index, 1)\n}\n\nfunction setCorrect(it: any, event: any) {\n if (props.type === 'single') {\n // 单选题:确保只有一个支持选项\n if (event) {\n answers.value.forEach((answer: any) => {\n if (answer !== it) {\n answer.isCorrect = false\n }\n })\n }\n it.isCorrect = event\n } else if (props.type === 'multiple') {\n // 多选题:可以有多个支持选项\n it.isCorrect = event\n }\n}\nfunction setRelation(item: any) {\n item.customAnswerId = item.examAnswerId || setGuid()\n emits('setRelation', props.customId, item)\n}\n\nfunction deleteRichText() {\n showRichText.value = false\n richText.value = ''\n}\n\nfunction save() {\n if (!title.value) {\n ElMessage.error('题目标题不能为空!')\n return\n }\n let msg = ''\n let isSetCorrectAnswer = false\n // let examAnswerRelationType = null\n let correctAnswerCount = 0\n if (props.type === 'multiple' || props.type === 'single') {\n answers.value.forEach((v: any, i: number) => {\n if (!v.title) {\n msg += `选项${String.fromCharCode(65 + i)}未填写。`\n }\n if (v.isCorrect) {\n isSetCorrectAnswer = true\n correctAnswerCount++\n }\n // if (v.resultItem) {\n // examAnswerRelationType = 1\n // }\n // if (v.answerRelations?.length) {\n // examAnswerRelationType = 2\n // }\n })\n }\n else if (props.type === 'sort') {\n // 如果设置了支持选项\n if (orderList.value.length) {\n isSetCorrectAnswer = true\n }\n }\n if (msg) {\n ElMessage.error(msg)\n return\n }\n\n const uniqueAnswer = new Set(answers.value.map((item: any) => item.title))\n\n if (uniqueAnswer.size !== answers.value.length) {\n ElMessage.error('选项不能重复')\n return\n }\n\n if (props.type === 'multiple') {\n if (correctAnswerCount === 1) {\n ElMessage.error('请至少设置两个支持选项')\n return\n }\n\n if (isSetCorrectAnswer && correctAnswerCount < leastAnswerCount.value) {\n ElMessage.error('至少选几项与支持选项数不符')\n return\n }\n }\n console.log(answerCheckType.value, 111)\n \n\n if(answerCheckType.value === 2 || answerCheckType.value === 3) {\n // 必须有设置支持选项\n if (!isSetCorrectAnswer) {\n ElMessage.error('请设置支持选项')\n return\n }\n }\n\n emits('save', {\n title: title.value,\n answers: answers.value.map((item: any, index: number) => {\n return { ...item, orderIndex: index + 1 }\n }),\n examExpand: orderList.value.map((i: string) => i.charCodeAt(0) - 65 + 1).join(','),\n analysis: analysis.value,\n isSetCorrectAnswer,\n leastAnswerCount: leastAnswerCount.value,\n examRichTextContent: showRichText.value ? richText.value : '',\n examAnswerRelationType: examAnswerRelationType.value,\n isKey: isKey.value,\n answerCheckType: answerCheckType.value\n })\n}\n\nfunction init() {\n if (props.title) {\n title.value = props.title\n }\n // const customId = props.id || setGuid()\n\n if (props.answerCheckType) {\n answerCheckType.value = props.answerCheckType\n }\n if (props.isKey) {\n isKey.value = props.isKey\n }\n\n if (props.examAnswerRelationType) {\n examAnswerRelationType.value = props.examAnswerRelationType\n }\n\n if (props.answerList && props.answerList.length) {\n answers.value = props.answerList\n }\n\n if (props.leastAnswerCount) {\n leastAnswerCount.value = props.leastAnswerCount\n }\n\n if (props.examExpand) {\n // 设置支持选项 props.examExpand里是答案id\n if (props.examExpand) {\n const correctAnswerIdList = props.examExpand.split(',')\n\n // 遍历 correctAnswerIdList,直接在 props.answerList 中查找对应的 orderIndex 并转换成字母\n orderList.value = correctAnswerIdList.map((id: string) => {\n const answer = props.answerList.find((item: any) => item.answerId?.toString() === id)\n return answer ? String.fromCharCode(65 + answer.orderIndex - 1) : id\n }).filter(Boolean) // 过滤掉任何可能的空字符串\n }\n }\n\n if (props.analysis) {\n analysis.value = props.analysis\n }\n\n if (props.examRichTextContent) {\n richText.value = props.examRichTextContent\n showRichText.value = true\n }\n}\nfunction onOpenResult(i: number) {\n answersIndex.value = i\n resultItem.value = answers.value[i].resultItem || ''\n showRichContent.value = true\n}\n\nfunction onSaveResult() {\n answers.value[answersIndex.value].resultItem = resultItem.value || ''\n showRichContent.value = false\n}\nfunction onCloseResult() {\n showRichContent.value = false\n resultItem.value = ''\n}\nfunction setKey(key: boolean) {\n isKey.value = key\n}\nfunction setAnswerSetting(type: number) {\n answerCheckType.value = type\n}\n\nfunction add(type: string, canSet: boolean) {\n emits('add', type, canSet? props.examAnswerRelationType: null)\n}\n// 监听isEdit\nwatch(() => props.isEdit, () => {\n if (props.isEdit) {\n startTime.value = new Date().getTime()\n }\n})\n\nconst relationLength = computed(() => {\n return (v: any) => {\n let count = 0\n v.forEach((item: any) => {\n if (item.relationAnswers) {\n count += item.relationAnswers.length\n }\n })\n return count\n }\n})\n\nconst ns = useNamespace('subject-single')\n\nonMounted(init)\n</script>\n\n<template>\n <div :class=\"ns.e('single-exam')\">\n <SubjectLayout\n :show-edit=\"isEdit\"\n >\n <template #preview>\n <div class=\"preview\">\n <div>\n <span class=\"title\">\n {{ orderIndex + 1 }}.{{ title }}\n <span v-if=\"type === 'single'\">(单选题)</span>\n <span v-else-if=\"['multiple', 'sort'].includes(type)\">\n ({{ titlePlaceholder }}{{ leastAnswerCount ? `至少选${leastAnswerCount}项${type === 'sort' ? '并排序' : ''}` : '' }})\n </span>\n </span>\n </div>\n <div v-if=\"showRichText\">\n <div v-html=\"richText\" />\n </div>\n <div class=\"preview-answer\">\n <template v-if=\"type === 'sort'\">\n <el-checkbox\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"radio\"\n :disabled=\"true\"\n >\n <span class=\"order\">\n {{ String.fromCharCode(65 + index) }}.\n </span>\n {{ item.title }}\n </el-checkbox>\n </template>\n <template v-else>\n <el-radio\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"radio\"\n value=\"disabled\"\n disabled\n >\n <span class=\"order\">\n {{ String.fromCharCode(65 + index) }}.\n </span>\n {{ item.title }} \n {{ item.isCorrect ? '(支持选项)' : '' }} \n {{ examAnswerRelationType === 1 ? (item.resultItem? '(已设置结果项)' : '(未设置结果项)' ) : ''}} \n {{ examAnswerRelationType === 2 ? (item.answerRelations?.length? '(已设置关联)' : '(未设置关联)') : '' }}\n </el-radio>\n </template>\n </div>\n </div>\n </template>\n <template v-if=\"isEdit\" #edit>\n <div class=\"flex\" :class=\"[{ 'margin-bottom': showRichText }]\">\n <div class=\"label flex flex-justify-center\">\n <span>题目:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"title\"\n type=\"textarea\"\n :rows=\"2\"\n :placeholder=\"`【${titlePlaceholder}】请输入问题`\"\n :disabled=\"isSave\"\n show-word-limit\n maxlength=\"200\"\n class=\"margin-bottom\"\n />\n </div>\n </div>\n <div class=\"margin-bottom flex flex-items-center\">\n <div class=\"label flex flex-justify-center\">\n <span>设置:</span>\n </div>\n <el-select\n v-if=\"['multiple', 'sort'].includes(type)\"\n v-model=\"leastAnswerCount\"\n style=\"width: 150px;\"\n placeholder=\"至少选择几项\"\n :disabled=\"isSave\"\n >\n <el-option\n v-for=\"item in leastAnswerOptions\"\n :key=\"item.value\"\n :value=\"item.value\"\n :label=\"item.label\"\n >\n </el-option>\n </el-select>\n </div>\n <div class=\"margin-bottom answer-list\">\n <div\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n class=\"answer-item flex flex-items-center\"\n >\n <span class=\"order\">{{ String.fromCharCode(65 + index) }}.</span>\n <el-input\n v-model=\"item.title\"\n class=\"input\"\n show-word-limit\n maxlength=\"100\"\n :placeholder=\"`选项${String.fromCharCode(65 + index)}`\"\n :disabled=\"isSave\"\n />\n <el-checkbox\n v-if=\"['single', 'multiple'].includes(type)\"\n v-model=\"item.isCorrect\"\n :class=\"[{ 'is-correct': item.isCorrect }]\"\n :disabled=\"isSave\"\n style=\"margin-left: 10px;\"\n @change=\"(event: any) => setCorrect(item, event)\"\n >\n 支持选项 \n </el-checkbox>\n <el-icon class=\"icon\">\n <CirclePlus\n :class=\"[{ disabled: isSave }]\"\n @click=\"addAnswer\"\n />\n </el-icon>\n <el-icon class=\"icon\">\n <Remove\n :class=\"[{ disabled: answers.length < 3 || isSave }]\"\n @click=\"deleteAnswer(index)\"\n />\n </el-icon>\n <el-link\n v-if=\"examAnswerRelationType === 1\"\n type=\"primary\"\n class=\"margin-left-10\"\n @click=\"onOpenResult(index)\"\n >\n <span>{{ item.resultItem ? '编辑结果' : '添加结果' }}</span>\n </el-link>\n <el-link\n v-if=\"examAnswerRelationType === 2\"\n type=\"primary\"\n class=\"margin-left-10\"\n @click=\"setRelation(item)\"\n >\n <span>{{ item.answerRelations?.length ? `关联了${relationLength(item.answerRelations)}项` : '关联检查' }}</span>\n </el-link>\n </div>\n </div>\n <div v-if=\"type === 'sort'\" class=\"margin-bottom flex flex-items-center\">\n <div class=\"label flex flex-justify-end\">\n <span>排序答案:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-select\n v-model=\"orderList\"\n mode=\"multiple\"\n style=\"width: 360px;\"\n placeholder=\"请按顺序选择排序答案\"\n :show-arrow=\"true\"\n >\n <!-- :options=\"[...Array(answers.length)].map((_, i) => ({ value: String.fromCharCode(65 + i) }))\" -->\n <el-option\n v-for=\"(item, index) in answers\"\n :key=\"index\"\n :label=\"item.title\"\n :value=\"String.fromCharCode(65 + index)\"\n />\n </el-select>\n </div>\n </div>\n <div\n v-if=\"showAnalysis\"\n class=\"flex\"\n >\n <div class=\"label flex flex-justify-center\">\n <span>解析:</span>\n </div>\n <div style=\"flex: 1;\">\n <el-input\n v-model=\"analysis\"\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入题目解析\"\n />\n </div>\n </div>\n <div v-if=\"showRichText\" class=\"margin-bottom flex\">\n <div class=\"label flex flex-justify-center\">\n <span>富文本:</span>\n </div>\n <div style=\"flex: 1;\">\n <TinyMceEditor v-model:model-value=\"richText\" v-bind=\"attrs\" style=\"width: 100%;\" />\n <div class=\"flex flex-justify-end\">\n <el-link\n type=\"danger\"\n @click=\"deleteRichText\"\n >\n 删除富文本\n </el-link>\n </div>\n </div>\n </div>\n </template>\n <SubjectAction\n v-if=\"showAction\"\n :is-edit=\"isEdit\"\n :is-set=\"isSet\"\n :isKey=\"isKey\"\n :examAnswerRelationType=\"props.examAnswerRelationType\"\n :answerCheckType=\"answerCheckType\"\n @move-up=\"emits('move', 'up')\"\n @move-down=\"emits('move', 'down')\"\n @delete=\"emits('delete')\"\n @save=\"save\"\n @edit=\"emits('edit')\"\n @add=\"add\"\n @onShowRichText=\"showRichText = true\"\n @setKey=\"setKey\"\n @setAnswerSetting=\"setAnswerSetting\"\n />\n </SubjectLayout>\n <el-dialog\n v-model=\"showRichContent\"\n title=\"添加结果\"\n class=\"customize-dialog\"\n >\n <TinyMceEditor\n :key=\"answersIndex\"\n v-model:model-value=\"resultItem\" \n v-bind=\"attrs\"\n style=\"width: 100%;\" />\n <template #footer>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onCloseResult\"\n >\n 取消\n </el-button>\n <el-button\n class=\"customize-button\"\n type=\"primary\"\n plain\n @click=\"onSaveResult\"\n >\n 保存\n </el-button>\n </template>\n </el-dialog>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","attrs","useAttrs","answersIndex","ref","isKey","answerCheckType","examAnswerRelationType","answers","title","isCorrect","leastAnswerCount","analysis","showRichText","richText","startTime","showRichContent","resultItem","titlePlaceholder","computed","type","orderList","leastAnswerOptions","items","count","value","length","push","label","reverse","addAnswer","isSave","customAnswerId","setGuid","deleteRichText","save","ElMessage","error","msg","isSetCorrectAnswer","correctAnswerCount","forEach","v","i","String","fromCharCode","Set","map","item","size","console","log","index","orderIndex","examExpand","charCodeAt","join","examRichTextContent","onSaveResult","onCloseResult","setKey","key","setAnswerSetting","add","canSet","watch","isEdit","Date","getTime","relationLength","relationAnswers","ns","useNamespace","onMounted","answerList","correctAnswerIdList","split","id","answer","find","answerId","toString","filter","Boolean","it","event","splice","examAnswerId","customId"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./subject-single.vue.cjs");exports.default=e.default;
2
+ //# sourceMappingURL=subject-single.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-single.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}