@qxs-bns/components 0.0.91 → 0.0.92

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 (415) hide show
  1. package/es/base/define.mjs +1 -1
  2. package/es/base/define.mjs.map +1 -1
  3. package/es/base/uid.mjs +1 -1
  4. package/es/base/uid.mjs.map +1 -1
  5. package/es/data-chart.mjs +15 -14
  6. package/es/data-chart.mjs.map +1 -1
  7. package/es/editor/blocksuite-editor.mjs +62 -51
  8. package/es/editor/blocksuite-editor.mjs.map +1 -1
  9. package/es/editor/content-format.mjs +8 -1
  10. package/es/editor/content-format.mjs.map +1 -1
  11. package/es/editor/index.mjs +1 -1
  12. package/es/editor/index.mjs.map +1 -1
  13. package/es/editor/toolbar.mjs +1 -1
  14. package/es/editor/toolbar.mjs.map +1 -1
  15. package/es/entry-data-chart.mjs +1 -1
  16. package/es/entry-editor.mjs +1 -1
  17. package/es/entry-file-upload.mjs +1 -1
  18. package/es/entry-fixed-action-bar.mjs +1 -1
  19. package/es/entry-icon.mjs +1 -1
  20. package/es/entry-image-upload.mjs +1 -1
  21. package/es/entry-photo-crop-tool.mjs +1 -1
  22. package/es/entry-subject.mjs +1 -1
  23. package/es/file-upload.mjs +25 -18
  24. package/es/file-upload.mjs.map +1 -1
  25. package/es/fixed-action-bar.mjs +5 -5
  26. package/es/fixed-action-bar.mjs.map +1 -1
  27. package/es/icon.mjs +7 -7
  28. package/es/icon.mjs.map +1 -1
  29. package/es/image-upload.mjs +26 -26
  30. package/es/image-upload.mjs.map +1 -1
  31. package/es/index.mjs +1 -1
  32. package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs +59 -1
  33. package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs.map +1 -1
  34. package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs +16 -1
  35. package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs.map +1 -1
  36. package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.browser.es.mjs +62 -0
  37. package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.browser.es.mjs.map +1 -0
  38. package/es/photo-crop-tool.mjs +12 -12
  39. package/es/photo-crop-tool.mjs.map +1 -1
  40. package/es/subject/action.mjs +58 -58
  41. package/es/subject/action.mjs.map +1 -1
  42. package/es/subject/blank-fill.mjs +80 -80
  43. package/es/subject/blank-fill.mjs.map +1 -1
  44. package/es/subject/draft.mjs +1 -1
  45. package/es/subject/draft.mjs.map +1 -1
  46. package/es/subject/layout.mjs +4 -4
  47. package/es/subject/layout.mjs.map +1 -1
  48. package/es/subject/page-end.mjs +5 -5
  49. package/es/subject/page-end.mjs.map +1 -1
  50. package/es/subject/pagination.mjs +1 -1
  51. package/es/subject/pagination.mjs.map +1 -1
  52. package/es/subject/runtime.mjs +1 -1
  53. package/es/subject/runtime.mjs.map +1 -1
  54. package/es/subject/scale.mjs +53 -50
  55. package/es/subject/scale.mjs.map +1 -1
  56. package/es/subject/shared-methods.mjs +1 -1
  57. package/es/subject/shared-methods.mjs.map +1 -1
  58. package/es/subject/shared-styles.mjs +53 -15
  59. package/es/subject/shared-styles.mjs.map +1 -1
  60. package/es/subject/single-interactions.mjs +2 -0
  61. package/es/subject/single-interactions.mjs.map +1 -0
  62. package/es/subject/single-model.mjs +2 -0
  63. package/es/subject/single-model.mjs.map +1 -0
  64. package/es/subject/single-state.mjs +2 -0
  65. package/es/subject/single-state.mjs.map +1 -0
  66. package/es/subject/single.mjs +177 -177
  67. package/es/subject/single.mjs.map +1 -1
  68. package/es/subject/sort-controller.mjs +1 -1
  69. package/es/subject/sort-controller.mjs.map +1 -1
  70. package/es/subject/sortable.mjs +13 -13
  71. package/es/subject/sortable.mjs.map +1 -1
  72. package/es/subject/sorting-card.mjs +12 -12
  73. package/es/subject/sorting-card.mjs.map +1 -1
  74. package/es/subject/subject-shared.mjs +2 -0
  75. package/es/subject/subject-shared.mjs.map +1 -0
  76. package/es/subject/text-fill.mjs +73 -73
  77. package/es/subject/text-fill.mjs.map +1 -1
  78. package/es/subject/title-prefix.mjs +1 -1
  79. package/es/subject/title-prefix.mjs.map +1 -1
  80. package/es/subject/types.mjs +1 -1
  81. package/es/subject/types.mjs.map +1 -1
  82. package/lib/base/define.cjs +1 -1
  83. package/lib/base/define.cjs.map +1 -1
  84. package/lib/base/uid.cjs +1 -1
  85. package/lib/base/uid.cjs.map +1 -1
  86. package/lib/data-chart.cjs +16 -15
  87. package/lib/data-chart.cjs.map +1 -1
  88. package/lib/editor/blocksuite-editor.cjs +62 -51
  89. package/lib/editor/blocksuite-editor.cjs.map +1 -1
  90. package/lib/editor/content-format.cjs +8 -1
  91. package/lib/editor/content-format.cjs.map +1 -1
  92. package/lib/editor/index.cjs +1 -1
  93. package/lib/editor/index.cjs.map +1 -1
  94. package/lib/editor/toolbar.cjs +1 -1
  95. package/lib/editor/toolbar.cjs.map +1 -1
  96. package/lib/entry-data-chart.cjs +1 -1
  97. package/lib/entry-editor.cjs +1 -1
  98. package/lib/entry-file-upload.cjs +1 -1
  99. package/lib/entry-fixed-action-bar.cjs +1 -1
  100. package/lib/entry-icon.cjs +1 -1
  101. package/lib/entry-image-upload.cjs +1 -1
  102. package/lib/entry-photo-crop-tool.cjs +1 -1
  103. package/lib/entry-subject.cjs +1 -1
  104. package/lib/file-upload.cjs +24 -17
  105. package/lib/file-upload.cjs.map +1 -1
  106. package/lib/fixed-action-bar.cjs +6 -6
  107. package/lib/fixed-action-bar.cjs.map +1 -1
  108. package/lib/icon.cjs +9 -9
  109. package/lib/icon.cjs.map +1 -1
  110. package/lib/image-upload.cjs +26 -26
  111. package/lib/image-upload.cjs.map +1 -1
  112. package/lib/index.cjs +1 -1
  113. package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs +59 -1
  114. package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs.map +1 -1
  115. package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs +16 -1
  116. package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs.map +1 -1
  117. package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.browser.es.cjs +62 -0
  118. package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.browser.es.cjs.map +1 -0
  119. package/lib/photo-crop-tool.cjs +11 -11
  120. package/lib/photo-crop-tool.cjs.map +1 -1
  121. package/lib/subject/action.cjs +42 -42
  122. package/lib/subject/action.cjs.map +1 -1
  123. package/lib/subject/blank-fill.cjs +80 -80
  124. package/lib/subject/blank-fill.cjs.map +1 -1
  125. package/lib/subject/draft.cjs +1 -1
  126. package/lib/subject/draft.cjs.map +1 -1
  127. package/lib/subject/layout.cjs +4 -4
  128. package/lib/subject/layout.cjs.map +1 -1
  129. package/lib/subject/page-end.cjs +4 -4
  130. package/lib/subject/page-end.cjs.map +1 -1
  131. package/lib/subject/pagination.cjs +1 -1
  132. package/lib/subject/pagination.cjs.map +1 -1
  133. package/lib/subject/runtime.cjs +1 -1
  134. package/lib/subject/runtime.cjs.map +1 -1
  135. package/lib/subject/scale.cjs +53 -50
  136. package/lib/subject/scale.cjs.map +1 -1
  137. package/lib/subject/shared-methods.cjs +1 -1
  138. package/lib/subject/shared-methods.cjs.map +1 -1
  139. package/lib/subject/shared-styles.cjs +54 -16
  140. package/lib/subject/shared-styles.cjs.map +1 -1
  141. package/lib/subject/single-interactions.cjs +2 -0
  142. package/lib/subject/single-interactions.cjs.map +1 -0
  143. package/lib/subject/single-model.cjs +2 -0
  144. package/lib/subject/single-model.cjs.map +1 -0
  145. package/lib/subject/single-state.cjs +2 -0
  146. package/lib/subject/single-state.cjs.map +1 -0
  147. package/lib/subject/single.cjs +177 -177
  148. package/lib/subject/single.cjs.map +1 -1
  149. package/lib/subject/sort-controller.cjs +1 -1
  150. package/lib/subject/sort-controller.cjs.map +1 -1
  151. package/lib/subject/sortable.cjs +15 -15
  152. package/lib/subject/sortable.cjs.map +1 -1
  153. package/lib/subject/sorting-card.cjs +12 -12
  154. package/lib/subject/sorting-card.cjs.map +1 -1
  155. package/lib/subject/subject-shared.cjs +2 -0
  156. package/lib/subject/subject-shared.cjs.map +1 -0
  157. package/lib/subject/text-fill.cjs +81 -81
  158. package/lib/subject/text-fill.cjs.map +1 -1
  159. package/lib/subject/title-prefix.cjs +1 -1
  160. package/lib/subject/title-prefix.cjs.map +1 -1
  161. package/lib/subject/types.cjs +1 -1
  162. package/lib/subject/types.cjs.map +1 -1
  163. package/package.json +5 -5
  164. package/types/editor/blocksuite-editor.d.ts +2 -0
  165. package/types/editor/toolbar.d.ts +1 -1
  166. package/types/file-upload.d.ts +2 -0
  167. package/types/subject/blank-fill.d.ts +1 -1
  168. package/types/subject/runtime.d.ts +1 -1
  169. package/types/subject/scale.d.ts +1 -1
  170. package/types/subject/single-interactions.d.ts +46 -0
  171. package/types/subject/single-model.d.ts +88 -0
  172. package/types/subject/single-state.d.ts +42 -0
  173. package/types/subject/single.d.ts +7 -85
  174. package/types/subject/sortable.d.ts +1 -1
  175. package/types/subject/subject-shared.d.ts +43 -0
  176. package/types/subject/text-fill.d.ts +1 -1
  177. package/README.md +0 -562
  178. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.mjs +0 -2
  179. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.mjs.map +0 -1
  180. package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs +0 -2
  181. package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs.map +0 -1
  182. package/es/package.json.mjs +0 -2
  183. package/es/package.json.mjs.map +0 -1
  184. package/es/src/alert/index.mjs +0 -2
  185. package/es/src/alert/index.mjs.map +0 -1
  186. package/es/src/alert/src/alert.mjs +0 -2
  187. package/es/src/alert/src/alert.mjs.map +0 -1
  188. package/es/src/components.mjs +0 -2
  189. package/es/src/components.mjs.map +0 -1
  190. package/es/src/data-chart/index.mjs +0 -2
  191. package/es/src/data-chart/index.mjs.map +0 -1
  192. package/es/src/defaults.mjs +0 -2
  193. package/es/src/defaults.mjs.map +0 -1
  194. package/es/src/dialog/src/dialog.mjs +0 -2
  195. package/es/src/dialog/src/dialog.mjs.map +0 -1
  196. package/es/src/feedback-plugin/index.mjs +0 -2
  197. package/es/src/feedback-plugin/index.mjs.map +0 -1
  198. package/es/src/file-upload/index.mjs +0 -2
  199. package/es/src/file-upload/index.mjs.map +0 -1
  200. package/es/src/icon/index.mjs +0 -2
  201. package/es/src/icon/index.mjs.map +0 -1
  202. package/es/src/icon/src/icon.mjs +0 -2
  203. package/es/src/icon/src/icon.mjs.map +0 -1
  204. package/es/src/image-upload/index.mjs +0 -2
  205. package/es/src/image-upload/index.mjs.map +0 -1
  206. package/es/src/make-installer.mjs +0 -2
  207. package/es/src/make-installer.mjs.map +0 -1
  208. package/es/src/message/src/message.mjs +0 -2
  209. package/es/src/message/src/message.mjs.map +0 -1
  210. package/es/src/photo-crop-tool/index.mjs +0 -2
  211. package/es/src/photo-crop-tool/index.mjs.map +0 -1
  212. package/es/src/tiny-mce-editor/index.mjs +0 -2
  213. package/es/src/tiny-mce-editor/index.mjs.map +0 -1
  214. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs +0 -2
  215. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs.map +0 -1
  216. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.mjs +0 -2
  217. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue2.mjs.map +0 -1
  218. package/es/src/ui/button/index.mjs +0 -2
  219. package/es/src/ui/button/index.mjs.map +0 -1
  220. package/es/src/ui/checkbox/index.mjs +0 -2
  221. package/es/src/ui/checkbox/index.mjs.map +0 -1
  222. package/es/src/ui/dialog/index.mjs +0 -2
  223. package/es/src/ui/dialog/index.mjs.map +0 -1
  224. package/es/src/ui/input/index.mjs +0 -2
  225. package/es/src/ui/input/index.mjs.map +0 -1
  226. package/es/src/ui/input-number/index.mjs +0 -2
  227. package/es/src/ui/input-number/index.mjs.map +0 -1
  228. package/es/src/ui/layout/index.mjs +0 -2
  229. package/es/src/ui/layout/index.mjs.map +0 -1
  230. package/es/src/ui/link/index.mjs +0 -2
  231. package/es/src/ui/link/index.mjs.map +0 -1
  232. package/es/src/ui/popover/index.mjs +0 -2
  233. package/es/src/ui/popover/index.mjs.map +0 -1
  234. package/es/src/ui/radio/index.mjs +0 -2
  235. package/es/src/ui/radio/index.mjs.map +0 -1
  236. package/es/src/ui/scrollbar/index.mjs +0 -2
  237. package/es/src/ui/scrollbar/index.mjs.map +0 -1
  238. package/es/src/ui/select/index.mjs +0 -2
  239. package/es/src/ui/select/index.mjs.map +0 -1
  240. package/es/src/ui/table/index.mjs +0 -2
  241. package/es/src/ui/table/index.mjs.map +0 -1
  242. package/es/src/ui/tag/index.mjs +0 -2
  243. package/es/src/ui/tag/index.mjs.map +0 -1
  244. package/es/src/wc-bridge.mjs +0 -2
  245. package/es/src/wc-bridge.mjs.map +0 -1
  246. package/es/src/withInstall.mjs +0 -2
  247. package/es/src/withInstall.mjs.map +0 -1
  248. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.cjs +0 -2
  249. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.cjs.map +0 -1
  250. package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs +0 -2
  251. package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs.map +0 -1
  252. package/lib/package.json.cjs +0 -2
  253. package/lib/package.json.cjs.map +0 -1
  254. package/lib/src/alert/index.cjs +0 -2
  255. package/lib/src/alert/index.cjs.map +0 -1
  256. package/lib/src/alert/src/alert.cjs +0 -2
  257. package/lib/src/alert/src/alert.cjs.map +0 -1
  258. package/lib/src/components.cjs +0 -2
  259. package/lib/src/components.cjs.map +0 -1
  260. package/lib/src/data-chart/index.cjs +0 -2
  261. package/lib/src/data-chart/index.cjs.map +0 -1
  262. package/lib/src/defaults.cjs +0 -2
  263. package/lib/src/defaults.cjs.map +0 -1
  264. package/lib/src/dialog/src/dialog.cjs +0 -2
  265. package/lib/src/dialog/src/dialog.cjs.map +0 -1
  266. package/lib/src/feedback-plugin/index.cjs +0 -2
  267. package/lib/src/feedback-plugin/index.cjs.map +0 -1
  268. package/lib/src/file-upload/index.cjs +0 -2
  269. package/lib/src/file-upload/index.cjs.map +0 -1
  270. package/lib/src/icon/index.cjs +0 -2
  271. package/lib/src/icon/index.cjs.map +0 -1
  272. package/lib/src/icon/src/icon.cjs +0 -2
  273. package/lib/src/icon/src/icon.cjs.map +0 -1
  274. package/lib/src/image-upload/index.cjs +0 -2
  275. package/lib/src/image-upload/index.cjs.map +0 -1
  276. package/lib/src/make-installer.cjs +0 -2
  277. package/lib/src/make-installer.cjs.map +0 -1
  278. package/lib/src/message/src/message.cjs +0 -2
  279. package/lib/src/message/src/message.cjs.map +0 -1
  280. package/lib/src/photo-crop-tool/index.cjs +0 -2
  281. package/lib/src/photo-crop-tool/index.cjs.map +0 -1
  282. package/lib/src/tiny-mce-editor/index.cjs +0 -2
  283. package/lib/src/tiny-mce-editor/index.cjs.map +0 -1
  284. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs +0 -2
  285. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs.map +0 -1
  286. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue2.cjs +0 -2
  287. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue2.cjs.map +0 -1
  288. package/lib/src/ui/button/index.cjs +0 -2
  289. package/lib/src/ui/button/index.cjs.map +0 -1
  290. package/lib/src/ui/checkbox/index.cjs +0 -2
  291. package/lib/src/ui/checkbox/index.cjs.map +0 -1
  292. package/lib/src/ui/dialog/index.cjs +0 -2
  293. package/lib/src/ui/dialog/index.cjs.map +0 -1
  294. package/lib/src/ui/input/index.cjs +0 -2
  295. package/lib/src/ui/input/index.cjs.map +0 -1
  296. package/lib/src/ui/input-number/index.cjs +0 -2
  297. package/lib/src/ui/input-number/index.cjs.map +0 -1
  298. package/lib/src/ui/layout/index.cjs +0 -2
  299. package/lib/src/ui/layout/index.cjs.map +0 -1
  300. package/lib/src/ui/link/index.cjs +0 -2
  301. package/lib/src/ui/link/index.cjs.map +0 -1
  302. package/lib/src/ui/popover/index.cjs +0 -2
  303. package/lib/src/ui/popover/index.cjs.map +0 -1
  304. package/lib/src/ui/radio/index.cjs +0 -2
  305. package/lib/src/ui/radio/index.cjs.map +0 -1
  306. package/lib/src/ui/scrollbar/index.cjs +0 -2
  307. package/lib/src/ui/scrollbar/index.cjs.map +0 -1
  308. package/lib/src/ui/select/index.cjs +0 -2
  309. package/lib/src/ui/select/index.cjs.map +0 -1
  310. package/lib/src/ui/table/index.cjs +0 -2
  311. package/lib/src/ui/table/index.cjs.map +0 -1
  312. package/lib/src/ui/tag/index.cjs +0 -2
  313. package/lib/src/ui/tag/index.cjs.map +0 -1
  314. package/lib/src/wc-bridge.cjs +0 -2
  315. package/lib/src/wc-bridge.cjs.map +0 -1
  316. package/lib/src/withInstall.cjs +0 -2
  317. package/lib/src/withInstall.cjs.map +0 -1
  318. package/types/index.d.ts.map +0 -1
  319. package/types/src/alert/index.d.ts +0 -66
  320. package/types/src/alert/index.d.ts.map +0 -1
  321. package/types/src/alert/src/alert.d.ts +0 -73
  322. package/types/src/alert/src/alert.d.ts.map +0 -1
  323. package/types/src/components.d.ts +0 -10
  324. package/types/src/components.d.ts.map +0 -1
  325. package/types/src/data-chart/index.d.ts +0 -13
  326. package/types/src/data-chart/index.d.ts.map +0 -1
  327. package/types/src/defaults.d.ts +0 -6
  328. package/types/src/defaults.d.ts.map +0 -1
  329. package/types/src/dialog/index.d.ts +0 -3
  330. package/types/src/dialog/index.d.ts.map +0 -1
  331. package/types/src/dialog/src/dialog.d.ts +0 -25
  332. package/types/src/dialog/src/dialog.d.ts.map +0 -1
  333. package/types/src/feedback-plugin/index.d.ts +0 -9
  334. package/types/src/feedback-plugin/index.d.ts.map +0 -1
  335. package/types/src/file-upload/index.d.ts +0 -12
  336. package/types/src/file-upload/index.d.ts.map +0 -1
  337. package/types/src/icon/index.d.ts +0 -56
  338. package/types/src/icon/index.d.ts.map +0 -1
  339. package/types/src/icon/src/icon.d.ts +0 -62
  340. package/types/src/icon/src/icon.d.ts.map +0 -1
  341. package/types/src/image-upload/index.d.ts +0 -12
  342. package/types/src/image-upload/index.d.ts.map +0 -1
  343. package/types/src/make-installer.d.ts +0 -6
  344. package/types/src/make-installer.d.ts.map +0 -1
  345. package/types/src/message/index.d.ts +0 -3
  346. package/types/src/message/index.d.ts.map +0 -1
  347. package/types/src/message/src/message.d.ts +0 -21
  348. package/types/src/message/src/message.d.ts.map +0 -1
  349. package/types/src/message/src/toaster.vue.d.ts +0 -3
  350. package/types/src/message/src/toaster.vue.d.ts.map +0 -1
  351. package/types/src/photo-crop-tool/index.d.ts +0 -12
  352. package/types/src/photo-crop-tool/index.d.ts.map +0 -1
  353. package/types/src/subject-action/index.d.ts +0 -93
  354. package/types/src/subject-action/index.d.ts.map +0 -1
  355. package/types/src/subject-action/src/subject-action.vue.d.ts +0 -92
  356. package/types/src/subject-action/src/subject-action.vue.d.ts.map +0 -1
  357. package/types/src/subject-layout/index.d.ts +0 -30
  358. package/types/src/subject-layout/index.d.ts.map +0 -1
  359. package/types/src/subject-layout/src/subject-layout.vue.d.ts +0 -20
  360. package/types/src/subject-layout/src/subject-layout.vue.d.ts.map +0 -1
  361. package/types/src/subject-list/index.d.ts +0 -20
  362. package/types/src/subject-list/index.d.ts.map +0 -1
  363. package/types/src/subject-list/src/components/SubjectPageEnd.vue.d.ts +0 -24
  364. package/types/src/subject-list/src/components/SubjectPageEnd.vue.d.ts.map +0 -1
  365. package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts +0 -32
  366. package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts.map +0 -1
  367. package/types/src/subject-list/src/components/subject-scale.vue.d.ts +0 -29
  368. package/types/src/subject-list/src/components/subject-scale.vue.d.ts.map +0 -1
  369. package/types/src/subject-list/src/components/subject-single.vue.d.ts +0 -37
  370. package/types/src/subject-list/src/components/subject-single.vue.d.ts.map +0 -1
  371. package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts +0 -34
  372. package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts.map +0 -1
  373. package/types/src/subject-list/src/subject-list.vue.d.ts +0 -21
  374. package/types/src/subject-list/src/subject-list.vue.d.ts.map +0 -1
  375. package/types/src/subject-type/index.d.ts +0 -8
  376. package/types/src/subject-type/index.d.ts.map +0 -1
  377. package/types/src/subject-type/src/subject-type.vue.d.ts +0 -7
  378. package/types/src/subject-type/src/subject-type.vue.d.ts.map +0 -1
  379. package/types/src/tiny-mce-editor/index.d.ts +0 -20
  380. package/types/src/tiny-mce-editor/index.d.ts.map +0 -1
  381. package/types/src/tiny-mce-editor/src/tiny-mce-editor.vue.d.ts +0 -32
  382. package/types/src/tiny-mce-editor/src/tiny-mce-editor.vue.d.ts.map +0 -1
  383. package/types/src/ui/button/index.d.ts +0 -96
  384. package/types/src/ui/button/index.d.ts.map +0 -1
  385. package/types/src/ui/checkbox/index.d.ts +0 -111
  386. package/types/src/ui/checkbox/index.d.ts.map +0 -1
  387. package/types/src/ui/dialog/index.d.ts +0 -134
  388. package/types/src/ui/dialog/index.d.ts.map +0 -1
  389. package/types/src/ui/index.d.ts +0 -16
  390. package/types/src/ui/index.d.ts.map +0 -1
  391. package/types/src/ui/input/index.d.ts +0 -132
  392. package/types/src/ui/input/index.d.ts.map +0 -1
  393. package/types/src/ui/input-number/index.d.ts +0 -106
  394. package/types/src/ui/input-number/index.d.ts.map +0 -1
  395. package/types/src/ui/layout/index.d.ts +0 -373
  396. package/types/src/ui/layout/index.d.ts.map +0 -1
  397. package/types/src/ui/link/index.d.ts +0 -57
  398. package/types/src/ui/link/index.d.ts.map +0 -1
  399. package/types/src/ui/popover/index.d.ts +0 -89
  400. package/types/src/ui/popover/index.d.ts.map +0 -1
  401. package/types/src/ui/radio/index.d.ts +0 -84
  402. package/types/src/ui/radio/index.d.ts.map +0 -1
  403. package/types/src/ui/scrollbar/index.d.ts +0 -35
  404. package/types/src/ui/scrollbar/index.d.ts.map +0 -1
  405. package/types/src/ui/select/index.d.ts +0 -113
  406. package/types/src/ui/select/index.d.ts.map +0 -1
  407. package/types/src/ui/table/index.d.ts +0 -152
  408. package/types/src/ui/table/index.d.ts.map +0 -1
  409. package/types/src/ui/tag/index.d.ts +0 -69
  410. package/types/src/ui/tag/index.d.ts.map +0 -1
  411. package/types/src/wc-bridge.d.ts +0 -23
  412. package/types/src/wc-bridge.d.ts.map +0 -1
  413. package/types/src/withInstall.d.ts +0 -4
  414. package/types/src/withInstall.d.ts.map +0 -1
  415. package/types/tsconfig.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"action.cjs","sources":["../../../../packages/components/src/subject/action.ts"],"sourcesContent":["import { css, html, LitElement } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { safeCustomElement } from '../base/define'\nimport { subjectControlResetStyles } from './shared-styles'\n\nconst answerTextList = [\n { value: 2, label: '必须全部都是支持选项,方可下一步' },\n { value: 1, label: '无需判断是否是支持选项' },\n { value: 3, label: '包含全部支持选项,即可下一步' },\n]\n\nconst addSubjectOptions = [\n { type: 'single', label: '单选题' },\n { type: 'multiple', label: '多选题' },\n { type: 'blank_fill', label: '填空题' },\n { type: 'text_fill', label: '问答题' },\n { type: 'scale', label: '量表题' },\n { type: 'sort', label: '排序题' },\n { type: 'page_end', label: '分页符' },\n]\n\n@safeCustomElement('qxs-subject-action')\nexport class QxsSubjectAction extends LitElement {\n static styles = [subjectControlResetStyles, css`\n :host { display: block; font-family: inherit; font-size: 12px; }\n\n .action { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; flex-wrap: wrap; gap: 8px; }\n .action.active { background: transparent; }\n .left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n .right { display: flex; align-items: center; gap: 4px; }\n\n .action-icon {\n display: inline-flex; align-items: center; justify-content: center;\n width: 32px; height: 32px; font-size: 18px; color: #303133;\n cursor: pointer; border-radius: 6px; border: 1px solid #dcdfe6;\n background: #fff; transition: all 0.2s;\n }\n .action-icon:hover { color: #3D61E3; border-color: #3D61E3; background: #ecf5ff; }\n .action-icon--danger:hover { color: #f56c6c; border-color: #f56c6c; background: #fef0f0; }\n .action-icon:disabled { color: #c0c4cc; cursor: not-allowed; opacity: 0.6; }\n\n .text-btn {\n display: inline-flex; align-items: center; gap: 4px;\n padding: 6px 12px; font-size: 12px; border-radius: 3px;\n cursor: pointer; border: 1px solid; transition: all 0.2s;\n }\n .text-btn--primary { background: #3D61E3; border-color: #3D61E3; color: #fff; }\n .text-btn--primary:hover { background: #2D4CB8; border-color: #2D4CB8; }\n .text-btn--default { background: #fff; border-color: #dcdfe6; color: #606266; }\n .text-btn--default:hover { color: #3D61E3; border-color: #a0cfff; }\n .text-btn--danger { background: #f56c6c; border-color: #f56c6c; color: #fff; }\n .text-btn--danger:hover { background: #e05252; border-color: #e05252; }\n\n .link-btn { background: none; border: none; color: #3D61E3; cursor: pointer; font-size: 12px; }\n .link-btn:hover { color: #2D4CB8; }\n\n .checkbox-label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; color: #606266; user-select: none; font-size: 12px; }\n .checkbox-label.disabled { cursor: not-allowed; opacity: 0.6; }\n .has-set { display: flex; align-items: center; font-size: 12px; color: #bbb; }\n .answer-text { font-size: 11px; color: #909399; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n\n .btn-margin { margin-right: 10px; }\n\n .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 2000; display: flex; align-items: center; justify-content: center; }\n .modal { background: #fff; border-radius: 4px; min-width: 360px; max-width: 460px; box-shadow: 0 12px 32px rgba(0,0,0,.1); }\n .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px 12px; border-bottom: 1px solid #e4e7ed; }\n .modal-title { font-size: 14px; font-weight: 600; color: #303133; }\n .modal-close { background: none; border: none; font-size: 16px; cursor: pointer; color: #909399; padding: 0; line-height: 1; }\n .modal-close:hover { color: #3D61E3; }\n .modal-body { padding: 20px; }\n .modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 1px solid #e4e7ed; }\n .modal-footer button { padding: 6px 16px; font-size: 12px; border-radius: 3px; cursor: pointer; border: 1px solid #dcdfe6; background: #fff; color: #606266; }\n .modal-footer button:hover { color: #3D61E3; border-color: #a0cfff; }\n .modal-footer button.primary { background: #3D61E3; border-color: #3D61E3; color: #fff; }\n .modal-footer button.primary:hover { background: #2D4CB8; border-color: #2D4CB8; }\n\n .radio-item { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; cursor: pointer; font-size: 13px; color: #606266; }\n .radio-item:last-child { margin-bottom: 0; }\n\n .inline-actions { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }\n .add-menu-wrap { position: relative; display: inline-flex; }\n .add-menu {\n position: absolute; top: calc(100% + 6px); left: 0; z-index: 50;\n display: grid; grid-template-columns: repeat(2, minmax(84px, 1fr)); gap: 8px;\n min-width: 196px; padding: 10px; background: #fff; border: 1px solid #e4e7ed;\n border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.12);\n }\n .add-item {\n display: inline-flex; align-items: center; justify-content: center;\n min-height: 30px; padding: 0 10px; border: 1px solid #dcdfe6; border-radius: 4px;\n background: #fff; color: #606266; font-size: 12px; cursor: pointer; transition: all .2s;\n }\n .add-item:hover { color: #3D61E3; border-color: #3D61E3; background: #ecf5ff; }\n `]\n\n @property({ type: Boolean, attribute: 'is-edit' }) 'is-edit' = false\n @property({ type: Boolean, attribute: 'is-set' }) 'is-set' = false\n @property({ type: Boolean, attribute: 'is-key' }) 'is-key' = false\n @property({ type: Number, attribute: 'answer-check-type' }) 'answer-check-type' = 1\n @property({ type: Boolean, attribute: 'show-other-option' }) 'show-other-option' = false\n @property({ type: Boolean, attribute: 'show-answer-setting' }) 'show-answer-setting' = false\n @property({ type: Boolean, attribute: 'show-key' }) 'show-key' = false\n @property({ type: Boolean, attribute: 'show-rich-text' }) 'show-rich-text' = false\n @property({ type: Boolean, attribute: 'hide-add-rich-text' }) 'hide-add-rich-text' = false\n @property({ type: Boolean, attribute: 'show-delete-action' }) 'show-delete-action' = true\n @property({ type: Boolean, attribute: 'show-save-action' }) 'show-save-action' = true\n @property({ type: Boolean, attribute: 'page-end' }) 'page-end' = false\n @property({ type: Boolean, attribute: 'show-move' }) 'show-move' = false\n @property({ type: Boolean, attribute: 'show-add' }) 'show-add' = true\n @property({ type: Boolean, attribute: 'show-jump' }) 'show-jump' = false\n @property({ type: Number, attribute: 'exam-answer-relation-type' }) 'exam-answer-relation-type' = 0\n\n @state() private _modalOpen = false\n @state() private _currentCheckType = 1\n @state() private _addMenuOpen = false\n\n connectedCallback() {\n super.connectedCallback()\n document.addEventListener('click', this._handleDocumentClick)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n document.removeEventListener('click', this._handleDocumentClick)\n }\n\n updated(changed: Map<string, unknown>) {\n if (changed.has('answer-check-type')) {\n this._currentCheckType = this['answer-check-type']\n }\n }\n\n private _handleDocumentClick = (e: MouseEvent) => {\n const path = e.composedPath()\n const wrap = this.shadowRoot?.querySelector('.add-menu-wrap')\n if (wrap && !path.includes(wrap)) {\n this._addMenuOpen = false\n }\n }\n\n private _emit(name: string, detail?: unknown) {\n this.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail: detail ?? null }))\n }\n\n private get _answerText() {\n return answerTextList.find(i => i.value === this['answer-check-type'])?.label ?? ''\n }\n\n private get _showAnswerSetting() {\n return this['show-other-option'] || this['show-answer-setting']\n }\n\n private get _showKey() {\n return this['show-other-option'] || this['show-key']\n }\n\n private _renderEditMode() {\n return html`\n <div class=\"left\">\n <span class=\"inline-actions\">\n ${this['show-add']\n ? html`\n <span class=\"add-menu-wrap\">\n <span class=\"link-btn\" @click=${() => { this._addMenuOpen = !this._addMenuOpen }}>在此题后加入新题</span>\n ${this._renderAddMenu()}\n </span>\n `\n : ''}\n ${!this['hide-add-rich-text']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('on-show-rich-text')}>\n ${this['show-rich-text'] ? '删除题目描述(图文)' : '+添加题目描述(图文)'}\n </span>\n `\n : ''}\n ${this['show-jump']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('jump')}>${this['is-set'] ? '编辑跳题逻辑' : '设置跳题逻辑'}</span>\n `\n : ''}\n ${this._showAnswerSetting\n ? html`\n <span class=\"link-btn\" @click=${() => { this._modalOpen = true }}>答题设置</span>\n `\n : ''}\n ${this._showKey\n ? html`\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" .checked=${this['is-key']} @change=${(e: Event) => this._emit('set-key', { value: (e.target as HTMLInputElement).checked })} />\n 核心题\n </label>\n `\n : ''}\n </span>\n </div>\n <div class=\"right\">\n ${this['show-delete-action']\n ? html`<button class=\"text-btn text-btn--danger btn-margin\" @click=${() => this._emit('delete')}>删除</button>`\n : ''}\n ${this['show-save-action']\n ? html`<button class=\"text-btn text-btn--primary\" @click=${() => this._emit('save')}>完成编辑</button>`\n : ''}\n </div>\n `\n }\n\n private _renderViewMode() {\n return html`\n <div class=\"left\">\n <span class=\"inline-actions\">\n ${this._showKey\n ? html`\n <label class=\"checkbox-label disabled\">\n <input type=\"checkbox\" disabled .checked=${this['is-key']} /> 核心题\n </label>\n `\n : ''}\n ${this._showAnswerSetting\n ? html`\n <span class=\"answer-text\">${this._answerText}</span>\n `\n : ''}\n ${this['show-add']\n ? html`\n <span class=\"add-menu-wrap\">\n <span class=\"link-btn\" @click=${() => { this._addMenuOpen = !this._addMenuOpen }}>在此题后加入新题</span>\n ${this._renderAddMenu()}\n </span>\n `\n : ''}\n ${this['show-jump']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('jump')}>${this['is-set'] ? '编辑跳题逻辑' : '设置跳题逻辑'}</span>\n `\n : ''}\n </span>\n </div>\n <div class=\"right\">\n ${!this['is-set'] && this['show-move']\n ? html`\n <button class=\"text-btn text-btn--default\" @click=${() => this._emit('move', 'up')}>上移</button>\n <button class=\"text-btn text-btn--default btn-margin\" @click=${() => this._emit('move', 'down')}>下移</button>\n `\n : ''}\n ${!this['is-set'] && this['show-delete-action']\n ? html`<button class=\"text-btn text-btn--danger btn-margin\" @click=${() => this._emit('delete')}>删除</button>`\n : ''}\n ${!this['page-end'] && !this['is-set']\n ? html`\n <button class=\"text-btn text-btn--default\" @click=${() => this._emit('edit')}>编辑</button>\n `\n : ''}\n </div>\n `\n }\n\n private _renderModal() {\n if (!this._modalOpen) { return '' }\n return html`\n <div class=\"modal-backdrop\" @click=${() => { this._modalOpen = false }}>\n <div class=\"modal\" @click=${(e: Event) => e.stopPropagation()}>\n <div class=\"modal-header\">\n <span class=\"modal-title\">答题设置</span>\n <button class=\"modal-close\" @click=${() => { this._modalOpen = false }}>&#x2715;</button>\n </div>\n <div class=\"modal-body\">\n ${answerTextList.map(item => html`\n <label class=\"radio-item\">\n <input type=\"radio\" name=\"answer-check-type\" .value=${String(item.value)}\n .checked=${this._currentCheckType === item.value}\n @change=${() => { this._currentCheckType = item.value }} />\n ${item.label}\n </label>\n `)}\n </div>\n <div class=\"modal-footer\">\n <button @click=${() => { this._modalOpen = false }}>取消</button>\n <button class=\"primary\" @click=${() => {\n this._emit('set-answer-setting', { value: this._currentCheckType })\n this._modalOpen = false\n }}>保存</button>\n </div>\n </div>\n </div>\n `\n }\n\n private _renderAddMenu() {\n if (!this._addMenuOpen) { return '' }\n return html`\n <div class=\"add-menu\">\n ${addSubjectOptions.map(item => html`\n <button class=\"add-item\" @click=${() => {\n this._addMenuOpen = false\n this._emit('add', item.type)\n }}>${item.label}</button>\n `)}\n </div>\n `\n }\n\n render() {\n return html`\n <div class=\"action ${this['is-edit'] ? 'active' : ''}\">\n ${this['is-edit'] ? this._renderEditMode() : this._renderViewMode()}\n ${this['is-set'] ? html`<div class=\"has-set\">*此题设置了跳题逻辑</div>` : ''}\n </div>\n ${this._renderModal()}\n `\n }\n}\n\nexport function register() {}\n"],"names":["answerTextList","value","label","addSubjectOptions","type","QxsSubjectAction","LitElement","constructor","super","arguments","this","_modalOpen","_currentCheckType","_addMenuOpen","_handleDocumentClick","e","path","composedPath","wrap","shadowRoot","querySelector","includes","connectedCallback","document","addEventListener","disconnectedCallback","removeEventListener","updated","changed","has","_emit","name","detail","dispatchEvent","CustomEvent","bubbles","composed","_answerText","find","i","_showAnswerSetting","_showKey","_renderEditMode","html","_renderAddMenu","target","checked","_renderViewMode","_renderModal","stopPropagation","map","item","String","render","styles","subjectControlResetStyles","css","__decorateClass","property","Boolean","attribute","prototype","Number","state","safeCustomElement"],"mappings":"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"}
1
+ {"version":3,"file":"action.cjs","sources":["../../../../packages/components/src/subject/action.ts"],"sourcesContent":["import { css, html, LitElement } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { safeCustomElement } from '../base/define'\nimport { subjectControlResetStyles, subjectHostStyles } from './shared-styles'\n\nconst answerTextList = [\n { value: 2, label: '必须全部都是支持选项,方可下一步' },\n { value: 1, label: '无需判断是否是支持选项' },\n { value: 3, label: '包含全部支持选项,即可下一步' },\n]\n\nconst addSubjectOptions = [\n { type: 'single', label: '单选题' },\n { type: 'multiple', label: '多选题' },\n { type: 'blank_fill', label: '填空题' },\n { type: 'text_fill', label: '问答题' },\n { type: 'scale', label: '量表题' },\n { type: 'sort', label: '排序题' },\n { type: 'page_end', label: '分页符' },\n]\n\n@safeCustomElement('qxs-subject-action')\nexport class QxsSubjectAction extends LitElement {\n static styles = [subjectHostStyles, subjectControlResetStyles, css`\n :host { font-size: 12px; }\n\n .action { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; flex-wrap: wrap; gap: 8px; }\n .action.active { background: transparent; }\n .left { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n .right { display: flex; align-items: center; gap: 4px; }\n\n .action-icon {\n display: inline-flex; align-items: center; justify-content: center;\n width: 32px; height: 32px; font-size: 18px; color: var(--qxs-subject-text-primary, #303133);\n cursor: pointer; border-radius: 6px; border: 1px solid var(--qxs-subject-border, #dcdfe6);\n background: var(--qxs-subject-fill-blank, #fff); transition: all 0.2s;\n }\n .action-icon:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-color-primary, #3D61E3); background: var(--qxs-subject-fill-soft-primary, #ecf5ff); }\n .action-icon--danger:hover { color: var(--qxs-subject-color-danger, #f56c6c); border-color: var(--qxs-subject-color-danger, #f56c6c); background: var(--qxs-subject-fill-soft-danger, #fef0f0); }\n .action-icon:disabled { color: var(--qxs-subject-text-disabled, #c0c4cc); cursor: not-allowed; opacity: 0.6; }\n\n .text-btn {\n display: inline-flex; align-items: center; gap: 4px;\n padding: 6px 12px; font-size: 12px; border-radius: 3px;\n cursor: pointer; border: 1px solid; transition: all 0.2s;\n }\n .text-btn--primary { background: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-color-primary, #3D61E3); color: var(--qxs-subject-fill-blank, #fff); }\n .text-btn--primary:hover { background: var(--qxs-subject-color-primary-hover, #2D4CB8); border-color: var(--qxs-subject-color-primary-hover, #2D4CB8); }\n .text-btn--default { background: var(--qxs-subject-fill-blank, #fff); border-color: var(--qxs-subject-border, #dcdfe6); color: var(--qxs-subject-text-regular, #606266); }\n .text-btn--default:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-fill-soft-primary-border-strong, #bfd1ff); }\n .text-btn--danger { background: var(--qxs-subject-color-danger, #f56c6c); border-color: var(--qxs-subject-color-danger, #f56c6c); color: var(--qxs-subject-fill-blank, #fff); }\n .text-btn--danger:hover { background: var(--qxs-subject-color-danger-hover, #e05252); border-color: var(--qxs-subject-color-danger-hover, #e05252); }\n\n .link-btn { background: none; border: none; color: var(--qxs-subject-color-primary, #3D61E3); cursor: pointer; font-size: 12px; }\n .link-btn:hover { color: var(--qxs-subject-color-primary-hover, #2D4CB8); }\n\n .checkbox-label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; color: var(--qxs-subject-text-regular, #606266); user-select: none; font-size: 12px; }\n .checkbox-label.disabled { cursor: not-allowed; opacity: 0.6; }\n .has-set { display: flex; align-items: center; font-size: 12px; color: #bbb; }\n .answer-text { font-size: 11px; color: var(--qxs-subject-text-secondary, #909399); max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n\n .btn-margin { margin-right: 10px; }\n\n .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 2000; display: flex; align-items: center; justify-content: center; }\n .modal { background: var(--qxs-subject-fill-blank, #fff); border-radius: 4px; min-width: 360px; max-width: 460px; box-shadow: 0 12px 32px rgba(0,0,0,.1); }\n .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px 12px; border-bottom: 1px solid var(--qxs-subject-border-light, #e4e7ed); }\n .modal-title { font-size: 14px; font-weight: 600; color: var(--qxs-subject-text-primary, #303133); }\n .modal-close { background: none; border: none; font-size: 16px; cursor: pointer; color: var(--qxs-subject-text-secondary, #909399); padding: 0; line-height: 1; }\n .modal-close:hover { color: var(--qxs-subject-color-primary, #3D61E3); }\n .modal-body { padding: 20px; }\n .modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--qxs-subject-border-light, #e4e7ed); }\n .modal-footer button { padding: 6px 16px; font-size: 12px; border-radius: 3px; cursor: pointer; border: 1px solid var(--qxs-subject-border, #dcdfe6); background: var(--qxs-subject-fill-blank, #fff); color: var(--qxs-subject-text-regular, #606266); }\n .modal-footer button:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-fill-soft-primary-border-strong, #bfd1ff); }\n .modal-footer button.primary { background: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-color-primary, #3D61E3); color: var(--qxs-subject-fill-blank, #fff); }\n .modal-footer button.primary:hover { background: var(--qxs-subject-color-primary-hover, #2D4CB8); border-color: var(--qxs-subject-color-primary-hover, #2D4CB8); }\n\n .radio-item { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; cursor: pointer; font-size: 13px; color: var(--qxs-subject-text-regular, #606266); }\n .radio-item:last-child { margin-bottom: 0; }\n\n .inline-actions { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }\n .add-menu-wrap { position: relative; display: inline-flex; }\n .add-menu {\n position: absolute; top: calc(100% + 6px); left: 0; z-index: 50;\n display: grid; grid-template-columns: repeat(2, minmax(84px, 1fr)); gap: 8px;\n min-width: 196px; padding: 10px; background: var(--qxs-subject-fill-blank, #fff); border: 1px solid var(--qxs-subject-border-light, #e4e7ed);\n border-radius: 6px; box-shadow: var(--qxs-subject-shadow-soft, 0 8px 20px rgba(0,0,0,.12));\n }\n .add-item {\n display: inline-flex; align-items: center; justify-content: center;\n min-height: 30px; padding: 0 10px; border: 1px solid var(--qxs-subject-border, #dcdfe6); border-radius: 4px;\n background: var(--qxs-subject-fill-blank, #fff); color: var(--qxs-subject-text-regular, #606266); font-size: 12px; cursor: pointer; transition: all .2s;\n }\n .add-item:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-color-primary, #3D61E3); background: var(--qxs-subject-fill-soft-primary, #ecf5ff); }\n `]\n\n @property({ type: Boolean, attribute: 'is-edit' }) 'is-edit' = false\n @property({ type: Boolean, attribute: 'is-set' }) 'is-set' = false\n @property({ type: Boolean, attribute: 'is-key' }) 'is-key' = false\n @property({ type: Number, attribute: 'answer-check-type' }) 'answer-check-type' = 1\n @property({ type: Boolean, attribute: 'show-other-option' }) 'show-other-option' = false\n @property({ type: Boolean, attribute: 'show-answer-setting' }) 'show-answer-setting' = false\n @property({ type: Boolean, attribute: 'show-key' }) 'show-key' = false\n @property({ type: Boolean, attribute: 'show-rich-text' }) 'show-rich-text' = false\n @property({ type: Boolean, attribute: 'hide-add-rich-text' }) 'hide-add-rich-text' = false\n @property({ type: Boolean, attribute: 'show-delete-action' }) 'show-delete-action' = true\n @property({ type: Boolean, attribute: 'show-save-action' }) 'show-save-action' = true\n @property({ type: Boolean, attribute: 'page-end' }) 'page-end' = false\n @property({ type: Boolean, attribute: 'show-move' }) 'show-move' = false\n @property({ type: Boolean, attribute: 'show-add' }) 'show-add' = true\n @property({ type: Boolean, attribute: 'show-jump' }) 'show-jump' = false\n @property({ type: Number, attribute: 'exam-answer-relation-type' }) 'exam-answer-relation-type' = 0\n\n @state() private _modalOpen = false\n @state() private _currentCheckType = 1\n @state() private _addMenuOpen = false\n\n connectedCallback() {\n super.connectedCallback()\n document.addEventListener('click', this._handleDocumentClick)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n document.removeEventListener('click', this._handleDocumentClick)\n }\n\n updated(changed: Map<string, unknown>) {\n if (changed.has('answer-check-type')) {\n this._currentCheckType = this['answer-check-type']\n }\n }\n\n private _handleDocumentClick = (e: MouseEvent) => {\n const path = e.composedPath()\n const wrap = this.shadowRoot?.querySelector('.add-menu-wrap')\n if (wrap && !path.includes(wrap)) {\n this._addMenuOpen = false\n }\n }\n\n private _emit(name: string, detail?: unknown) {\n this.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail: detail ?? null }))\n }\n\n private get _answerText() {\n return answerTextList.find(i => i.value === this['answer-check-type'])?.label ?? ''\n }\n\n private get _showAnswerSetting() {\n return this['show-other-option'] || this['show-answer-setting']\n }\n\n private get _showKey() {\n return this['show-other-option'] || this['show-key']\n }\n\n private _renderEditMode() {\n return html`\n <div class=\"left\">\n <span class=\"inline-actions\">\n ${this['show-add']\n ? html`\n <span class=\"add-menu-wrap\">\n <span class=\"link-btn\" @click=${() => { this._addMenuOpen = !this._addMenuOpen }}>在此题后加入新题</span>\n ${this._renderAddMenu()}\n </span>\n `\n : ''}\n ${!this['hide-add-rich-text']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('on-show-rich-text')}>\n ${this['show-rich-text'] ? '删除题目描述(图文)' : '+添加题目描述(图文)'}\n </span>\n `\n : ''}\n ${this['show-jump']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('jump')}>${this['is-set'] ? '编辑跳题逻辑' : '设置跳题逻辑'}</span>\n `\n : ''}\n ${this._showAnswerSetting\n ? html`\n <span class=\"link-btn\" @click=${() => { this._modalOpen = true }}>答题设置</span>\n `\n : ''}\n ${this._showKey\n ? html`\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" .checked=${this['is-key']} @change=${(e: Event) => this._emit('set-key', { value: (e.target as HTMLInputElement).checked })} />\n 核心题\n </label>\n `\n : ''}\n </span>\n </div>\n <div class=\"right\">\n ${this['show-delete-action']\n ? html`<button class=\"text-btn text-btn--danger btn-margin\" @click=${() => this._emit('delete')}>删除</button>`\n : ''}\n ${this['show-save-action']\n ? html`<button class=\"text-btn text-btn--primary\" @click=${() => this._emit('save')}>完成编辑</button>`\n : ''}\n </div>\n `\n }\n\n private _renderViewMode() {\n return html`\n <div class=\"left\">\n <span class=\"inline-actions\">\n ${this._showKey\n ? html`\n <label class=\"checkbox-label disabled\">\n <input type=\"checkbox\" disabled .checked=${this['is-key']} /> 核心题\n </label>\n `\n : ''}\n ${this._showAnswerSetting\n ? html`\n <span class=\"answer-text\">${this._answerText}</span>\n `\n : ''}\n ${this['show-add']\n ? html`\n <span class=\"add-menu-wrap\">\n <span class=\"link-btn\" @click=${() => { this._addMenuOpen = !this._addMenuOpen }}>在此题后加入新题</span>\n ${this._renderAddMenu()}\n </span>\n `\n : ''}\n ${this['show-jump']\n ? html`\n <span class=\"link-btn\" @click=${() => this._emit('jump')}>${this['is-set'] ? '编辑跳题逻辑' : '设置跳题逻辑'}</span>\n `\n : ''}\n </span>\n </div>\n <div class=\"right\">\n ${!this['is-set'] && this['show-move']\n ? html`\n <button class=\"text-btn text-btn--default\" @click=${() => this._emit('move', 'up')}>上移</button>\n <button class=\"text-btn text-btn--default btn-margin\" @click=${() => this._emit('move', 'down')}>下移</button>\n `\n : ''}\n ${!this['is-set'] && this['show-delete-action']\n ? html`<button class=\"text-btn text-btn--danger btn-margin\" @click=${() => this._emit('delete')}>删除</button>`\n : ''}\n ${!this['page-end'] && !this['is-set']\n ? html`\n <button class=\"text-btn text-btn--default\" @click=${() => this._emit('edit')}>编辑</button>\n `\n : ''}\n </div>\n `\n }\n\n private _renderModal() {\n if (!this._modalOpen) { return '' }\n return html`\n <div class=\"modal-backdrop\" @click=${() => { this._modalOpen = false }}>\n <div class=\"modal\" @click=${(e: Event) => e.stopPropagation()}>\n <div class=\"modal-header\">\n <span class=\"modal-title\">答题设置</span>\n <button class=\"modal-close\" @click=${() => { this._modalOpen = false }}>&#x2715;</button>\n </div>\n <div class=\"modal-body\">\n ${answerTextList.map(item => html`\n <label class=\"radio-item\">\n <input type=\"radio\" name=\"answer-check-type\" .value=${String(item.value)}\n .checked=${this._currentCheckType === item.value}\n @change=${() => { this._currentCheckType = item.value }} />\n ${item.label}\n </label>\n `)}\n </div>\n <div class=\"modal-footer\">\n <button @click=${() => { this._modalOpen = false }}>取消</button>\n <button class=\"primary\" @click=${() => {\n this._emit('set-answer-setting', { value: this._currentCheckType })\n this._modalOpen = false\n }}>保存</button>\n </div>\n </div>\n </div>\n `\n }\n\n private _renderAddMenu() {\n if (!this._addMenuOpen) { return '' }\n return html`\n <div class=\"add-menu\">\n ${addSubjectOptions.map(item => html`\n <button class=\"add-item\" @click=${() => {\n this._addMenuOpen = false\n this._emit('add', item.type)\n }}>${item.label}</button>\n `)}\n </div>\n `\n }\n\n render() {\n return html`\n <div class=\"action ${this['is-edit'] ? 'active' : ''}\">\n ${this['is-edit'] ? this._renderEditMode() : this._renderViewMode()}\n ${this['is-set'] ? html`<div class=\"has-set\">*此题设置了跳题逻辑</div>` : ''}\n </div>\n ${this._renderModal()}\n `\n }\n}\n\nexport function register() {}\n"],"names":["answerTextList","addSubjectOptions","QxsSubjectAction","LitElement","path","wrap","changed","name","detail","i","html","item","subjectHostStyles","subjectControlResetStyles","css","__decorateClass","property","state","safeCustomElement"],"mappings":"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"}
@@ -1,50 +1,50 @@
1
- "use strict";var t=require("lit"),e=require("lit/decorators.js"),i=require("../base/define.cjs"),s=require("../editor/toolbar.cjs"),r=require("./shared-methods.cjs"),l=require("./shared-styles.cjs"),o=require("./single.cjs"),a=require("./sorting-card.cjs"),n=require("./title-prefix.cjs"),p=require("./types.cjs"),h=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=(t,e,i,s)=>{for(var r,l=s>1?void 0:s?c(e,i):e,o=t.length-1;o>=0;o--)(r=t[o])&&(l=(s?r(e,i,l):r(l))||l);return s&&l&&h(e,i,l),l};const x=" ______",g=t.html`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("lit"),i=require("lit/decorators.js"),B=require("../base/define.cjs"),$=require("../editor/toolbar.cjs"),h=require("./shared-methods.cjs"),x=require("./shared-styles.cjs"),p=require("./subject-shared.cjs"),v=require("./sorting-card.cjs"),I=require("./title-prefix.cjs"),u=require("./types.cjs");var q=Object.defineProperty,S=Object.getOwnPropertyDescriptor,s=(y,t,e,r)=>{for(var a=r>1?void 0:r?S(t,e):t,o=y.length-1,c;o>=0;o--)(c=y[o])&&(a=(r?c(t,e,a):c(a))||a);return r&&a&&q(t,e,a),a};const _=" ______",A=l.html`
2
2
  <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none"
3
3
  stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
4
4
  <line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/>
5
- </svg>`;exports.QxsBlankFill=class extends t.LitElement{constructor(){super(...arguments),this["order-index"]=0,this.title="",this["custom-id"]="",this["is-edit"]=!1,this["is-save"]=!1,this["is-set"]=!1,this["is-key"]=!1,this["show-action"]=!0,this["show-add"]=!0,this["hide-add-rich-text"]=!1,this["show-rich-text"]=!1,this["show-delete-action"]=!0,this["show-save-action"]=!0,this.sorting=!1,this["show-answer-setting"]=!1,this["show-analysis"]=!1,this["rich-text-content"]="",this.analysis="",this["exam-answer-relation-type"]=0,this["exam-expand"]="",this["exam-id"]=0,this["category-id"]="",this["exam-answer-setting"]={isInOrder:!1,isIgnoreCase:!0},this["upload-image"]=async t=>new Promise((e,i)=>{const s=new FileReader;s.onload=t=>e(t.target?.result),s.onerror=i,s.readAsDataURL(t)}),this["answer-list"]=[],this["tag-list"]=[],this["category-list"]=[],this["resource-list"]=[],this["show-tag"]=!1,this["show-category"]=!1,this["show-resource"]=!1,this["model-value"]="",this["use-model"]=!1,this._title="",this._analysis="",this._answers=[{title:"",tag:"",showInput:!1}],this._isInOrder=!1,this._isIgnoreCase=!0,this._showRichText=!1,this._richText="",this._selectedTagList=[],this._categoryId="",this.TITLE_MAX=400}willUpdate(t){t.has("is-edit")&&this["is-edit"]&&this._syncProps(),!this["is-edit"]&&(t.has("title")||t.has("answer-list")||t.has("analysis")||t.has("exam-answer-setting")||t.has("rich-text-content")||t.has("tag-list")||t.has("category-id"))&&this._syncProps(),t.has("model-value")&&this["use-model"]&&(this._title=this["model-value"].replaceAll(/<filter><\/filter>/g," ______")),t.has("tag-list")&&(this._selectedTagList=Array.isArray(this["tag-list"])?this["tag-list"].map(t=>({...t})):[]),t.has("category-id")&&(this._categoryId=this["category-id"]?String(this["category-id"]):"")}_normalizeAnswerTitle(t){return o.trimCommaSeparatedText(t?.title??t?.answer??"")}_blankCount(t){return(t.match(/ ______/g)||[]).length}_syncAnswersToBlankCount(t){t!==this._answers.length&&(t>this._answers.length?this._answers=[...this._answers,...Array.from({length:t-this._answers.length},()=>({title:"",tag:"",showInput:!1}))]:this._answers=this._answers.slice(0,t))}_syncProps(){if(this._title=(this.title||"").replaceAll(/<filter><\/filter>/g," ______"),this._analysis=this.analysis||"",this["answer-list"]?.length)this._answers=this["answer-list"].map(t=>({title:this._normalizeAnswerTitle(t),tag:"",showInput:!1,answerId:t?.answerId??t?.examAnswerId}));else{const t=this._blankCount(this._title);this._answers=Array.from({length:t},()=>({title:"",tag:"",showInput:!1}))}this["exam-answer-setting"]&&(this._isInOrder=!!this["exam-answer-setting"].isInOrder,this._isIgnoreCase=!!this["exam-answer-setting"].isIgnoreCase),this._richText=this["rich-text-content"]||"",this._showRichText=!!this["rich-text-content"],this._selectedTagList=Array.isArray(this["tag-list"])?this["tag-list"].map(t=>({...t})):[],this._categoryId=this["category-id"]?String(this["category-id"]):""}_emit(t,e){r.emitSubjectEvent(this,t,e)}_addBlank(){const t=this.shadowRoot?.querySelector(".title-textarea"),e=t?.selectionStart??this._title.length,i=t?.selectionEnd??this._title.length,s=`${this._title.slice(0,e)}${x}${this._title.slice(i)}`;s.length>this.TITLE_MAX||(this._title=s,this._syncAnswersToBlankCount(this._blankCount(this._title)),this.requestUpdate(),this._emitModelUpdate(),this.updateComplete.then(()=>{const t=this.shadowRoot?.querySelector(".title-textarea");if(!t)return;const i=e+7;t.focus(),t.setSelectionRange(i,i)}))}_onTitleInput(t){const e=t.target;e.value.length>this.TITLE_MAX&&(e.value=e.value.slice(0,this.TITLE_MAX)),this._title=e.value,this._syncAnswersToBlankCount(this._blankCount(this._title)),this._emitModelUpdate()}_emitModelUpdate(){if(this["use-model"]){const t=this._title.replaceAll(/ ______/g,"<filter></filter>");r.emitSubjectModelValue(this,t)}}_handleAddTag(t){t.showInput=!1,t.tag&&(t.title=t.title?[t.title,t.tag].join(","):t.tag,t.tag=""),this.requestUpdate()}_closeTag(t,e){if(!t)return;const i=e.title.split(","),s=i.findIndex(e=>e===t);s>-1&&(i.splice(s,1),e.title=i.join(",")),this.requestUpdate()}_onCategoryChange(t){this._categoryId=t,this._emit("category-change",{value:t,customId:this["custom-id"]||"",examId:this["exam-id"]||0})}_imageResources(){return r.getSubjectImageResources(this["resource-list"]||[])}_videoResource(){return r.getSubjectVideoResource(this["resource-list"]||[])}_categoryLabel(){return r.resolveSubjectCategoryLabel(this["category-list"],this._categoryId)}_previewAnswerText(t){const e=(t?.title||"").split(",").map(t=>t.trim()).filter(Boolean);return e.length?e.join(" / "):""}_renderInlineBlankTitle(e){const i=this.title.replaceAll(/<filter><\/filter>/g," ______"),s=n.resolveSubjectPrefix(this["subject-prefix"],`${this["order-index"]+1}.`),r=i.split(" ______");return t.html`<span class="title preview-filled-title">${s?`${s} `:""}${r[0]??""}${r.slice(1).map((i,s)=>{const r=this._previewAnswerText(e[s]);return t.html`<span class="inline-blank ${r?"":"empty"}">${r||"填空"}</span>${i}`})}</span>`}async toJSON(){return new Promise((t,e)=>{const i={customId:this["custom-id"]||void 0,answerType:"blank_fill",orderIndex:this["order-index"]},s=o.trimText(this["is-edit"]?this._title:this.title?.replaceAll(/<filter><\/filter>/g," ______")||""),r=this["is-edit"]?this._answers:(this["answer-list"]||[]).map(t=>({...t,title:this._normalizeAnswerTitle(t),answerId:t?.answerId??t?.examAnswerId})),l=o.trimText(this["is-edit"]?this._analysis:this.analysis||""),a=this["is-edit"]?this._isInOrder:this["exam-answer-setting"]?.isInOrder??!1,n=this["is-edit"]?this._isIgnoreCase:this["exam-answer-setting"]?.isIgnoreCase??!0,h=this["is-edit"]?this._showRichText:!!this["rich-text-content"],c=this["is-edit"]?this._richText:this["rich-text-content"]||"",d=r.filter(t=>this._normalizeAnswerTitle(t));if(!s)return void e(new o.SubjectError("题目标题不能为空!","EMPTY_TITLE","title",i));if(r.length<1)return void e(new o.SubjectError("至少添加一个填空符!","NO_BLANK","answers",i));const x={answerType:p.SubjectType.BLANK_FILL,examTypeEnum:p.SubjectType.BLANK_FILL,title:s.replaceAll(/ ______/g,"<filter></filter>"),answers:d.map((t,e)=>{const i=this._normalizeAnswerTitle(t),s={title:i,answer:i,isCorrect:!0,orderIndex:e+1};return t.answerId&&(s.answerId=t.answerId,s.examAnswerId=t.answerId),s}),analysis:l,isSetCorrectAnswer:d.length>0,isKey:this["is-key"],examAnswerSettingBO:{isIgnoreCase:n,isInOrder:a},examAnswerSettingVO:{isIgnoreCase:n,isInOrder:a},examRichTextContent:h?c:""};this["custom-id"]&&(x.customId=this["custom-id"]),t(x)})}async _save(t){t?.stopImmediatePropagation();try{const t=await this.toJSON();this._emit("save",t)}catch(t){r.showSubjectToast(t.message)}}validate(){const t=[],e={customId:this["custom-id"]||void 0,answerType:"blank_fill",orderIndex:this["order-index"]},i=o.trimText(this["is-edit"]?this._title:this.title?.replaceAll(/<filter><\/filter>/g," ______")||""),s=this["is-edit"]?this._answers:(this["answer-list"]||[]).map(t=>({...t,title:this._normalizeAnswerTitle(t)}));return i||t.push(new o.SubjectError("题目标题不能为空!","EMPTY_TITLE","title",e)),s.length<1&&t.push(new o.SubjectError("至少添加一个填空符!","NO_BLANK","answers",e)),t}_renderPreview(){const e=this["is-edit"]?this._answers:(this["answer-list"]||[]).map(t=>({...t,title:this._normalizeAnswerTitle(t)}));return t.html`
5
+ </svg>`;exports.QxsBlankFill=class extends l.LitElement{constructor(){super(...arguments),this["order-index"]=0,this.title="",this["custom-id"]="",this["is-edit"]=!1,this["is-save"]=!1,this["is-set"]=!1,this["is-key"]=!1,this["show-action"]=!0,this["show-add"]=!0,this["hide-add-rich-text"]=!1,this["show-rich-text"]=!1,this["show-delete-action"]=!0,this["show-save-action"]=!0,this.sorting=!1,this["show-answer-setting"]=!1,this["show-analysis"]=!1,this["rich-text-content"]="",this.analysis="",this["exam-answer-relation-type"]=0,this["exam-expand"]="",this["exam-id"]=0,this["category-id"]="",this["exam-answer-setting"]={isInOrder:!1,isIgnoreCase:!0},this["upload-image"]=async t=>new Promise((e,r)=>{const a=new FileReader;a.onload=o=>e(o.target?.result),a.onerror=r,a.readAsDataURL(t)}),this["answer-list"]=[],this["tag-list"]=[],this["category-list"]=[],this["resource-list"]=[],this["show-tag"]=!1,this["show-category"]=!1,this["show-resource"]=!1,this["model-value"]="",this["use-model"]=!1,this._title="",this._analysis="",this._answers=[{title:"",tag:"",showInput:!1}],this._isInOrder=!1,this._isIgnoreCase=!0,this._showRichText=!1,this._richText="",this._selectedTagList=[],this._categoryId="",this.TITLE_MAX=400}willUpdate(t){t.has("is-edit")&&this["is-edit"]&&this._syncProps(),!this["is-edit"]&&(t.has("title")||t.has("answer-list")||t.has("analysis")||t.has("exam-answer-setting")||t.has("rich-text-content")||t.has("tag-list")||t.has("category-id"))&&this._syncProps(),t.has("model-value")&&this["use-model"]&&(this._title=this["model-value"].replaceAll(/<filter><\/filter>/g," ______")),t.has("tag-list")&&(this._selectedTagList=Array.isArray(this["tag-list"])?this["tag-list"].map(e=>({...e})):[]),t.has("category-id")&&(this._categoryId=this["category-id"]?String(this["category-id"]):"")}_normalizeAnswerTitle(t){return p.trimCommaSeparatedText(t?.title??t?.answer??"")}_blankCount(t){return(t.match(/ ______/g)||[]).length}_syncAnswersToBlankCount(t){if(t!==this._answers.length){if(t>this._answers.length){this._answers=[...this._answers,...Array.from({length:t-this._answers.length},()=>({title:"",tag:"",showInput:!1}))];return}this._answers=this._answers.slice(0,t)}}_syncProps(){if(this._title=(this.title||"").replaceAll(/<filter><\/filter>/g," ______"),this._analysis=this.analysis||"",this["answer-list"]?.length)this._answers=this["answer-list"].map(t=>({title:this._normalizeAnswerTitle(t),tag:"",showInput:!1,answerId:t?.answerId??t?.examAnswerId}));else{const t=this._blankCount(this._title);this._answers=Array.from({length:t},()=>({title:"",tag:"",showInput:!1}))}this["exam-answer-setting"]&&(this._isInOrder=!!this["exam-answer-setting"].isInOrder,this._isIgnoreCase=!!this["exam-answer-setting"].isIgnoreCase),this._richText=this["rich-text-content"]||"",this._showRichText=!!this["rich-text-content"],this._selectedTagList=Array.isArray(this["tag-list"])?this["tag-list"].map(t=>({...t})):[],this._categoryId=this["category-id"]?String(this["category-id"]):""}_emit(t,e){h.emitSubjectEvent(this,t,e)}_addBlank(){const t=this.shadowRoot?.querySelector(".title-textarea"),e=t?.selectionStart??this._title.length,r=t?.selectionEnd??this._title.length,a=`${this._title.slice(0,e)}${_}${this._title.slice(r)}`;a.length>this.TITLE_MAX||(this._title=a,this._syncAnswersToBlankCount(this._blankCount(this._title)),this.requestUpdate(),this._emitModelUpdate(),this.updateComplete.then(()=>{const o=this.shadowRoot?.querySelector(".title-textarea");if(!o)return;const c=e+_.length;o.focus(),o.setSelectionRange(c,c)}))}_onTitleInput(t){const e=t.target;e.value.length>this.TITLE_MAX&&(e.value=e.value.slice(0,this.TITLE_MAX)),this._title=e.value,this._syncAnswersToBlankCount(this._blankCount(this._title)),this._emitModelUpdate()}_emitModelUpdate(){if(this["use-model"]){const t=this._title.replaceAll(/ ______/g,"<filter></filter>");h.emitSubjectModelValue(this,t)}}_handleAddTag(t){t.showInput=!1,t.tag&&(t.title=t.title?[t.title,t.tag].join(","):t.tag,t.tag=""),this.requestUpdate()}_closeTag(t,e){if(!t)return;const r=e.title.split(","),a=r.findIndex(o=>o===t);a>-1&&(r.splice(a,1),e.title=r.join(",")),this.requestUpdate()}_onCategoryChange(t){this._categoryId=t,this._emit("category-change",{value:t,customId:this["custom-id"]||"",examId:this["exam-id"]||0})}_imageResources(){return h.getSubjectImageResources(this["resource-list"]||[])}_videoResource(){return h.getSubjectVideoResource(this["resource-list"]||[])}_categoryLabel(){return h.resolveSubjectCategoryLabel(this["category-list"],this._categoryId)}_previewAnswerText(t){const e=(t?.title||"").split(",").map(r=>r.trim()).filter(Boolean);return e.length?e.join(" / "):""}_renderInlineBlankTitle(t){const e=this.title.replaceAll(/<filter><\/filter>/g," ______"),r=I.resolveSubjectPrefix(this["subject-prefix"],`${this["order-index"]+1}.`),a=e.split(" ______");return l.html`<span class="title preview-filled-title">${r?`${r} `:""}${a[0]??""}${a.slice(1).map((o,c)=>{const d=this._previewAnswerText(t[c]);return l.html`<span class="inline-blank ${d?"":"empty"}">${d||"填空"}</span>${o}`})}</span>`}async toJSON(){return new Promise((t,e)=>{const r={customId:this["custom-id"]||void 0,answerType:"blank_fill",orderIndex:this["order-index"]},a=p.trimText(this["is-edit"]?this._title:this.title?.replaceAll(/<filter><\/filter>/g," ______")||""),o=this["is-edit"]?this._answers:(this["answer-list"]||[]).map(n=>({...n,title:this._normalizeAnswerTitle(n),answerId:n?.answerId??n?.examAnswerId})),c=p.trimText(this["is-edit"]?this._analysis:this.analysis||""),d=this["is-edit"]?this._isInOrder:this["exam-answer-setting"]?.isInOrder??!1,w=this["is-edit"]?this._isIgnoreCase:this["exam-answer-setting"]?.isIgnoreCase??!0,k=this["is-edit"]?this._showRichText:!!this["rich-text-content"],j=this["is-edit"]?this._richText:this["rich-text-content"]||"",m=o.filter(n=>this._normalizeAnswerTitle(n));if(!a){e(new p.SubjectError("题目标题不能为空!","EMPTY_TITLE","title",r));return}if(o.length<1){e(new p.SubjectError("至少添加一个填空符!","NO_BLANK","answers",r));return}const f={answerType:u.SubjectType.BLANK_FILL,examTypeEnum:u.SubjectType.BLANK_FILL,title:a.replaceAll(/ ______/g,"<filter></filter>"),answers:m.map((n,T)=>{const b=this._normalizeAnswerTitle(n),g={title:b,answer:b,isCorrect:!0,orderIndex:T+1};return n.answerId&&(g.answerId=n.answerId,g.examAnswerId=n.answerId),g}),analysis:c,isSetCorrectAnswer:m.length>0,isKey:this["is-key"],examAnswerSettingBO:{isIgnoreCase:w,isInOrder:d},examAnswerSettingVO:{isIgnoreCase:w,isInOrder:d},examRichTextContent:k?j:""};this["custom-id"]&&(f.customId=this["custom-id"]),t(f)})}async _save(t){t?.stopImmediatePropagation();try{const e=await this.toJSON();this._emit("save",e)}catch(e){h.showSubjectToast(e.message)}}validate(){const t=[],e={customId:this["custom-id"]||void 0,answerType:"blank_fill",orderIndex:this["order-index"]},r=p.trimText(this["is-edit"]?this._title:this.title?.replaceAll(/<filter><\/filter>/g," ______")||""),a=this["is-edit"]?this._answers:(this["answer-list"]||[]).map(o=>({...o,title:this._normalizeAnswerTitle(o)}));return r||t.push(new p.SubjectError("题目标题不能为空!","EMPTY_TITLE","title",e)),a.length<1&&t.push(new p.SubjectError("至少添加一个填空符!","NO_BLANK","answers",e)),t}_renderPreview(){const t=this["is-edit"]?this._answers:(this["answer-list"]||[]).map(e=>({...e,title:this._normalizeAnswerTitle(e)}));return l.html`
6
6
  <div class="preview">
7
7
  <div class="preview-header">
8
8
  <div class="preview-title-row">
9
- ${this._renderInlineBlankTitle(e)}
9
+ ${this._renderInlineBlankTitle(t)}
10
10
  <span class="preview-type">填空题</span>
11
11
  </div>
12
- ${this["show-rich-text"]&&this["rich-text-content"]?t.html`<div class="rich-text" .innerHTML=${this["rich-text-content"]}></div>`:""}
12
+ ${this["show-rich-text"]&&this["rich-text-content"]?l.html`<div class="rich-text" .innerHTML=${this["rich-text-content"]}></div>`:""}
13
13
  </div>
14
- ${this.analysis?t.html`<div class="preview-note">${this.analysis}</div>`:""}
15
- ${this["show-category"]&&this._categoryId?t.html`<div class="section-row"><span class="value-text">分类:${this._categoryLabel()}</span></div>`:""}
14
+ ${this.analysis?l.html`<div class="preview-note">${this.analysis}</div>`:""}
15
+ ${this["show-category"]&&this._categoryId?l.html`<div class="section-row"><span class="value-text">分类:${this._categoryLabel()}</span></div>`:""}
16
16
  ${this._renderResourceSection()}
17
17
  </div>
18
- `}_renderCategorySection(){return this["show-category"]?t.html`
18
+ `}_renderCategorySection(){return this["show-category"]?l.html`
19
19
  <div class="flex flex-items-start section-row">
20
20
  <div class="label"><span>分类:</span></div>
21
21
  <div style="flex:1">
22
- ${this["is-edit"]?t.html`
22
+ ${this["is-edit"]?l.html`
23
23
  <select class="el-select" .value=${String(this._categoryId)}
24
24
  @change=${t=>this._onCategoryChange(t.target.value)}>
25
25
  <option value="">选择分类</option>
26
- ${this["category-list"].map(e=>t.html`
27
- <option value=${String(e.categoryId)} ?selected=${String(e.categoryId)===String(this._categoryId)}>${e.title||e.categoryName}</option>
26
+ ${this["category-list"].map(t=>l.html`
27
+ <option value=${String(t.categoryId)} ?selected=${String(t.categoryId)===String(this._categoryId)}>${t.title||t.categoryName}</option>
28
28
  `)}
29
29
  </select>
30
- `:t.html`<span class="value-text">${this._categoryLabel()}</span>`}
30
+ `:l.html`<span class="value-text">${this._categoryLabel()}</span>`}
31
31
  </div>
32
32
  </div>
33
- `:""}_renderResourceSection(){if(!this["show-resource"])return"";const e=this._imageResources(),i=this._videoResource();return t.html`
33
+ `:""}_renderResourceSection(){if(!this["show-resource"])return"";const t=this._imageResources(),e=this._videoResource();return l.html`
34
34
  <div class="flex flex-items-start section-row">
35
35
  <div class="label"><span>资源:</span></div>
36
36
  <div style="flex:1">
37
- <div class="resource-summary">图片 ${e.length} 张${i?.url?",含视频资源":""}</div>
38
- ${e.length?t.html`
37
+ <div class="resource-summary">图片 ${t.length} 张${e?.url?",含视频资源":""}</div>
38
+ ${t.length?l.html`
39
39
  <div class="resource-thumbs">
40
- ${e.slice(0,4).map(e=>t.html`<img class="resource-thumb" src=${e} alt="resource" />`)}
40
+ ${t.slice(0,4).map(r=>l.html`<img class="resource-thumb" src=${r} alt="resource" />`)}
41
41
  </div>
42
42
  `:""}
43
- ${i?.url?t.html`<div style="margin-top:8px"><a class="el-link" href=${i.url} target="_blank" rel="noreferrer">查看视频</a></div>`:""}
44
- ${e.length||i?.url?"":t.html`<div class="tag-hint">暂无资源</div>`}
43
+ ${e?.url?l.html`<div style="margin-top:8px"><a class="el-link" href=${e.url} target="_blank" rel="noreferrer">查看视频</a></div>`:""}
44
+ ${!t.length&&!e?.url?l.html`<div class="tag-hint">暂无资源</div>`:""}
45
45
  </div>
46
46
  </div>
47
- `}_renderSorting(){const t=o.trimText(this["is-edit"]?this._title:this.title||"")||"未命名题目",e=r.buildSubjectSortingTitle(this["subject-prefix"],this["order-index"],t);return a.renderSortingCard(e,p.SubjectTypeLabel[p.SubjectType.BLANK_FILL]||p.SubjectType.BLANK_FILL)}_renderEdit(){return t.html`
47
+ `}_renderSorting(){const t=p.trimText(this["is-edit"]?this._title:this.title||"")||"未命名题目",e=h.buildSubjectSortingTitle(this["subject-prefix"],this["order-index"],t);return v.renderSortingCard(e,u.SubjectTypeLabel[u.SubjectType.BLANK_FILL]||u.SubjectType.BLANK_FILL)}_renderEdit(){return l.html`
48
48
  <div class="edit-form">
49
49
  <div class="edit-row">
50
50
  <div class="label"><span>题目:</span></div>
@@ -89,26 +89,26 @@
89
89
  <div class="row-body">
90
90
  <div class="answer-section">
91
91
  <div class="edit-note">每个填空支持多个同义词,录入后会按逗号序列化。</div>
92
- ${this._answers.map((e,i)=>t.html`
92
+ ${this._answers.map((t,e)=>l.html`
93
93
  <div class="answer-item">
94
- <div class="answer-item-label"><span>第${i+1}空:</span></div>
94
+ <div class="answer-item-label"><span>第${e+1}空:</span></div>
95
95
  <div class="answer-tags">
96
- ${e.title.split(",").filter(Boolean).map(i=>t.html`
96
+ ${t.title.split(",").filter(Boolean).map(r=>l.html`
97
97
  <span class="el-tag">
98
- ${i}
99
- <span class="el-tag__close" @click=${()=>this._closeTag(i,e)}>×</span>
98
+ ${r}
99
+ <span class="el-tag__close" @click=${()=>this._closeTag(r,t)}>×</span>
100
100
  </span>
101
101
  `)}
102
- ${t.html`
103
- ${e.showInput?t.html`
102
+ ${l.html`
103
+ ${t.showInput?l.html`
104
104
  <input type="text" class="el-input--small"
105
- @keydown=${t=>{"Enter"===t.key&&this._handleAddTag(e)}}
106
- @input=${t=>{e.tag=t.target.value}}
107
- @blur=${()=>this._handleAddTag(e)} />
108
- `:t.html`
109
- <span class="el-button--small" @click=${()=>{e.showInput=!0,this.requestUpdate(),this.updateComplete.then(()=>{this.shadowRoot?.querySelector(".el-input--small")?.focus()})}}>
110
- ${g}
111
- <span>${e.title?"添加同义词":"添加答案"}</span>
105
+ @keydown=${r=>{r.key==="Enter"&&this._handleAddTag(t)}}
106
+ @input=${r=>{t.tag=r.target.value}}
107
+ @blur=${()=>this._handleAddTag(t)} />
108
+ `:l.html`
109
+ <span class="el-button--small" @click=${()=>{t.showInput=!0,this.requestUpdate(),this.updateComplete.then(()=>{this.shadowRoot?.querySelector(".el-input--small")?.focus()})}}>
110
+ ${A}
111
+ <span>${t.title?"添加同义词":"添加答案"}</span>
112
112
  </span>
113
113
  `}
114
114
  `}
@@ -119,29 +119,29 @@
119
119
  </div>
120
120
  </div>
121
121
 
122
- ${this["show-rich-text"]&&this._showRichText?t.html`
122
+ ${this["show-rich-text"]&&this._showRichText?l.html`
123
123
  <div class="edit-row section-row">
124
124
  <div class="label"><span>副文本:</span></div>
125
125
  <div class="row-body">
126
126
  <slot name="sub-text">
127
127
  <qxs-blocksuite-editor
128
128
  .content=${this._richText}
129
- .toolbar=${s.SUB_TEXT_EDITOR_TOOLBAR}
129
+ .toolbar=${$.SUB_TEXT_EDITOR_TOOLBAR}
130
130
  .upload-image=${this["upload-image"]}
131
131
  ?is-edit=${!0}
132
132
  @input=${t=>{this._richText=t.target.getContent()}}
133
133
  ></qxs-blocksuite-editor>
134
134
  </slot>
135
- ${this["show-action"]?"":t.html`
135
+ ${this["show-action"]?"":l.html`
136
136
  <div class="flex flex-justify-end" style="margin-top:8px">
137
- <span class="el-link" style="color:#f56c6c" @click=${()=>{this._showRichText=!1,this._richText=""}}>删除富文本</span>
137
+ <span class="el-link" style="color:var(--qxs-subject-color-danger, #f56c6c)" @click=${()=>{this._showRichText=!1,this._richText=""}}>删除富文本</span>
138
138
  </div>
139
139
  `}
140
140
  </div>
141
141
  </div>
142
142
  `:""}
143
143
 
144
- ${this["show-analysis"]?t.html`
144
+ ${this["show-analysis"]?l.html`
145
145
  <div class="edit-row section-row">
146
146
  <div class="label"><span>解析:</span></div>
147
147
  <div class="row-body">
@@ -154,10 +154,10 @@
154
154
  </div>
155
155
  `:""}
156
156
  </div>
157
- `}render(){if(this.sorting)return this._renderSorting();const e=this["is-edit"]?t.html`<div slot="edit">${this._renderEdit()}</div>`:t.html`<div slot="preview">${this._renderPreview()}</div>`;return t.html`
157
+ `}render(){if(this.sorting)return this._renderSorting();const t=this["is-edit"]?l.html`<div slot="edit">${this._renderEdit()}</div>`:l.html`<div slot="preview">${this._renderPreview()}</div>`;return l.html`
158
158
  <qxs-subject-layout .show-edit=${this["is-edit"]}>
159
- ${e}
160
- ${this["show-action"]?t.html`
159
+ ${t}
160
+ ${this["show-action"]?l.html`
161
161
  <qxs-subject-action
162
162
  .is-edit=${this["is-edit"]}
163
163
  .is-set=${this["is-set"]}
@@ -170,28 +170,28 @@
170
170
  @delete=${()=>this._emit("delete")}
171
171
  @save=${this._save}
172
172
  @edit=${()=>this._emit("edit")}
173
- @add=${t=>this._emit("add",t.detail)}
174
- @set-key=${t=>{this._emit("set-key",t.detail)}}
173
+ @add=${e=>this._emit("add",e.detail)}
174
+ @set-key=${e=>{this._emit("set-key",e.detail)}}
175
175
  @on-show-rich-text=${()=>{this._showRichText=!this._showRichText,this._showRichText||(this._richText="")}}
176
176
  ></qxs-subject-action>
177
177
  `:""}
178
178
  <slot name="action"></slot>
179
179
  </qxs-subject-layout>
180
- `}},exports.QxsBlankFill.styles=[a.sortingCardStyles,l.subjectHostStyles,l.subjectControlResetStyles,l.subjectPreviewBaseStyles,l.subjectFormBaseStyles,l.subjectTextareaStyles,t.css`
180
+ `}};exports.QxsBlankFill.styles=[v.sortingCardStyles,x.subjectHostStyles,x.subjectControlResetStyles,x.subjectPreviewBaseStyles,x.subjectFormBaseStyles,x.subjectTextareaStyles,l.css`
181
181
  .preview-note {
182
182
  margin-top: 18px;
183
183
  padding-left: 10px;
184
- border-left: 2px solid #e5eaf3;
184
+ border-left: 2px solid var(--qxs-subject-border-lighter, #e5eaf3);
185
185
  font-size: 13px;
186
186
  line-height: 1.8;
187
- color: #6b7280;
187
+ color: var(--qxs-subject-text-soft, #6b7280);
188
188
  }
189
189
  .preview-filled-title {
190
190
  display: inline;
191
191
  font-size: 16px;
192
192
  line-height: 1.9;
193
193
  font-weight: 600;
194
- color: #303133;
194
+ color: var(--qxs-subject-text-primary, #303133);
195
195
  }
196
196
  .inline-blank {
197
197
  display: inline-flex;
@@ -199,11 +199,11 @@
199
199
  min-width: 64px;
200
200
  margin: 0 4px;
201
201
  padding: 0 4px 1px;
202
- border-bottom: 1px solid #d6deea;
202
+ border-bottom: 1px solid var(--qxs-subject-border-strong, #d6deea);
203
203
  font-size: 14px;
204
204
  line-height: 1.6;
205
205
  font-weight: 500;
206
- color: #8b95a7;
206
+ color: var(--qxs-subject-text-muted, #8b95a7);
207
207
  vertical-align: baseline;
208
208
  }
209
209
  .inline-blank.empty {
@@ -230,32 +230,32 @@
230
230
  .edit-note {
231
231
  font-size: 12px;
232
232
  line-height: 1.6;
233
- color: #909399;
233
+ color: var(--qxs-subject-text-secondary, #909399);
234
234
  }
235
235
 
236
236
  .el-tag {
237
237
  display: inline-flex; align-items: center; height: 24px; padding: 0 9px;
238
- font-size: 12px; line-height: 1; color: #3D61E3; background: #ecf5ff;
239
- border: 1px solid #d9ecff; border-radius: 4px; white-space: nowrap;
238
+ font-size: 12px; line-height: 1; color: var(--qxs-subject-color-primary, #3D61E3); background: var(--qxs-subject-fill-soft-primary, #ecf5ff);
239
+ border: 1px solid var(--qxs-subject-fill-soft-primary-border, #d9ecff); border-radius: 4px; white-space: nowrap;
240
240
  }
241
241
  .el-tag .el-tag__close {
242
242
  display: inline-flex; align-items: center; justify-content: center;
243
243
  margin-left: 4px; width: 16px; height: 16px; border-radius: 50%;
244
- font-size: 12px; color: #909399; cursor: pointer; transition: all .2s;
244
+ font-size: 12px; color: var(--qxs-subject-text-secondary, #909399); cursor: pointer; transition: all .2s;
245
245
  }
246
- .el-tag .el-tag__close:hover { background: #909399; color: #fff; }
246
+ .el-tag .el-tag__close:hover { background: var(--qxs-subject-text-secondary, #909399); color: var(--qxs-subject-fill-blank, #fff); }
247
247
 
248
248
  .el-button--small {
249
249
  display: inline-flex; align-items: center; gap: 4px;
250
250
  height: 28px; padding: 0 10px; font-size: 12px; line-height: 1;
251
- border: 1px solid #dcdfe6; border-radius: 6px; background: #fff; color: #606266;
251
+ border: 1px solid var(--qxs-subject-border, #dcdfe6); border-radius: 6px; background: var(--qxs-subject-fill-blank, #fff); color: var(--qxs-subject-text-regular, #606266);
252
252
  cursor: pointer; transition: all .2s; white-space: nowrap;
253
253
  }
254
- .el-button--small:hover { color: #3D61E3; border-color: #c6e2ff; background-color: #ecf5ff; }
254
+ .el-button--small:hover { color: var(--qxs-subject-color-primary, #3D61E3); border-color: var(--qxs-subject-fill-soft-primary-border-strong, #c6e2ff); background-color: var(--qxs-subject-fill-soft-primary, #ecf5ff); }
255
255
 
256
- .el-link { color: #3D61E3; cursor: pointer; font-size: 12px; text-decoration: none; }
257
- .el-link:hover { color: #2D4CB8; }
258
- .el-link.is-disabled { color: #c0c4cc; cursor: not-allowed; }
256
+ .el-link { color: var(--qxs-subject-color-primary, #3D61E3); cursor: pointer; font-size: 12px; text-decoration: none; }
257
+ .el-link:hover { color: var(--qxs-subject-color-primary-hover, #2D4CB8); }
258
+ .el-link.is-disabled { color: var(--qxs-subject-text-disabled, #c0c4cc); cursor: not-allowed; }
259
259
 
260
260
  .el-input--small {
261
261
  width: 80px;
@@ -263,14 +263,14 @@
263
263
  padding: 0 8px;
264
264
  font-size: 12px;
265
265
  line-height: 24px;
266
- color: #606266;
267
- background: #fff;
268
- border: 1px solid #dcdfe6;
266
+ color: var(--qxs-subject-text-regular, #606266);
267
+ background: var(--qxs-subject-fill-blank, #fff);
268
+ border: 1px solid var(--qxs-subject-border, #dcdfe6);
269
269
  border-radius: 6px;
270
270
  box-sizing: border-box;
271
271
  font-family: inherit;
272
272
  }
273
- .el-input--small:focus { border-color: #3D61E3; outline: none; }
273
+ .el-input--small:focus { border-color: var(--qxs-subject-color-primary, #3D61E3); outline: none; }
274
274
 
275
275
  .title-input textarea {
276
276
  padding-bottom: 38px;
@@ -285,28 +285,28 @@
285
285
  }
286
286
  .title-input .char-counter {
287
287
  position: static;
288
- color: #909399;
288
+ color: var(--qxs-subject-text-secondary, #909399);
289
289
  }
290
290
  .title-input-insert {
291
291
  border: none;
292
292
  background: none;
293
293
  padding: 0;
294
294
  margin: 0;
295
- color: #3D61E3;
295
+ color: var(--qxs-subject-color-primary, #3D61E3);
296
296
  cursor: pointer;
297
297
  font-size: 12px;
298
298
  font-family: inherit;
299
299
  line-height: 1;
300
300
  white-space: nowrap;
301
301
  }
302
- .title-input-insert:hover { color: #2D4CB8; }
302
+ .title-input-insert:hover { color: var(--qxs-subject-color-primary-hover, #2D4CB8); }
303
303
 
304
304
  .el-checkbox {
305
305
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
306
- font-size: 13px; color: #606266; user-select: none; margin-right: 16px;
306
+ font-size: 13px; color: var(--qxs-subject-text-regular, #606266); user-select: none; margin-right: 16px;
307
307
  }
308
308
  .el-checkbox input[type="checkbox"] {
309
- width: 14px; height: 14px; cursor: pointer; accent-color: #3D61E3;
309
+ width: 14px; height: 14px; cursor: pointer; accent-color: var(--qxs-subject-color-primary, #3D61E3);
310
310
  }
311
311
 
312
312
  .answer-item {
@@ -321,38 +321,38 @@
321
321
  font-size: 13px;
322
322
  line-height: 1.5;
323
323
  font-weight: 600;
324
- color: #6b7280;
324
+ color: var(--qxs-subject-text-soft, #6b7280);
325
325
  letter-spacing: 0;
326
326
  }
327
327
  .answer-tags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; flex: 1; min-height: 28px; }
328
328
  .answer-section { display: flex; flex-direction: column; gap: 10px; }
329
329
  .answer-section-row > .label { padding-top: 0; }
330
330
 
331
- .value-text { font-size: 13px; color: #606266; white-space: pre-wrap; }
331
+ .value-text { font-size: 13px; color: var(--qxs-subject-text-regular, #606266); white-space: pre-wrap; }
332
332
  .tag-list { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-height: 32px; }
333
333
  .tag-item {
334
334
  display: inline-flex; align-items: center; gap: 4px;
335
335
  padding: 4px 8px; font-size: 12px; line-height: 1;
336
- color: #3D61E3; background: #ecf5ff; border: 1px solid #d9ecff; border-radius: 4px;
336
+ color: var(--qxs-subject-color-primary, #3D61E3); background: var(--qxs-subject-fill-soft-primary, #ecf5ff); border: 1px solid var(--qxs-subject-fill-soft-primary-border, #d9ecff); border-radius: 4px;
337
337
  }
338
- .tag-item .close { cursor: pointer; color: #909399; }
339
- .tag-item .close:hover { color: #f56c6c; }
340
- .tag-hint { font-size: 12px; color: #909399; }
338
+ .tag-item .close { cursor: pointer; color: var(--qxs-subject-text-secondary, #909399); }
339
+ .tag-item .close:hover { color: var(--qxs-subject-color-danger, #f56c6c); }
340
+ .tag-hint { font-size: 12px; color: var(--qxs-subject-text-secondary, #909399); }
341
341
 
342
342
  .el-select {
343
- width: 150px; height: 34px; border: 1px solid #dcdfe6; border-radius: 6px;
344
- padding: 0 8px; font-size: 13px; background: #fff; appearance: none;
343
+ width: 150px; height: 34px; border: 1px solid var(--qxs-subject-border, #dcdfe6); border-radius: 6px;
344
+ padding: 0 8px; font-size: 13px; background: var(--qxs-subject-fill-blank, #fff); appearance: none;
345
345
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23c0c4cc' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
346
346
  background-repeat: no-repeat; background-position: right 8px center;
347
347
  }
348
- .el-select:focus { border-color: #3D61E3; outline: none; }
349
- .el-select:disabled { background: #f5f7fa; color: #c0c4cc; cursor: not-allowed; }
348
+ .el-select:focus { border-color: var(--qxs-subject-color-primary, #3D61E3); outline: none; }
349
+ .el-select:disabled { background: var(--qxs-subject-fill-light, #f5f7fa); color: var(--qxs-subject-text-disabled, #c0c4cc); cursor: not-allowed; }
350
350
 
351
- .resource-summary { font-size: 12px; color: #606266; }
351
+ .resource-summary { font-size: 12px; color: var(--qxs-subject-text-regular, #606266); }
352
352
  .resource-thumbs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
353
353
  .resource-thumb {
354
354
  width: 72px; height: 72px; object-fit: cover; border-radius: 6px;
355
- border: 1px solid #e4e7ed; background: #f5f7fa;
355
+ border: 1px solid var(--qxs-subject-border-light, #e4e7ed); background: var(--qxs-subject-fill-light, #f5f7fa);
356
356
  }
357
357
 
358
358
  @media (max-width: 720px) {
@@ -381,5 +381,5 @@
381
381
  min-width: 0;
382
382
  }
383
383
  }
384
- `],d([e.property({type:Number,attribute:"order-index"})],exports.QxsBlankFill.prototype,"order-index",2),d([e.property({type:String,attribute:"subject-prefix"})],exports.QxsBlankFill.prototype,"subject-prefix",2),d([e.property({type:String})],exports.QxsBlankFill.prototype,"title",2),d([e.property({type:String,attribute:"custom-id"})],exports.QxsBlankFill.prototype,"custom-id",2),d([e.property({type:Boolean,attribute:"is-edit"})],exports.QxsBlankFill.prototype,"is-edit",2),d([e.property({type:Boolean,attribute:"is-save"})],exports.QxsBlankFill.prototype,"is-save",2),d([e.property({type:Boolean,attribute:"is-set"})],exports.QxsBlankFill.prototype,"is-set",2),d([e.property({type:Boolean,attribute:"is-key"})],exports.QxsBlankFill.prototype,"is-key",2),d([e.property({type:Boolean,attribute:"show-action"})],exports.QxsBlankFill.prototype,"show-action",2),d([e.property({type:Boolean,attribute:"show-add"})],exports.QxsBlankFill.prototype,"show-add",2),d([e.property({type:Boolean,attribute:"hide-add-rich-text"})],exports.QxsBlankFill.prototype,"hide-add-rich-text",2),d([e.property({type:Boolean,attribute:"show-rich-text"})],exports.QxsBlankFill.prototype,"show-rich-text",2),d([e.property({type:Boolean,attribute:"show-delete-action"})],exports.QxsBlankFill.prototype,"show-delete-action",2),d([e.property({type:Boolean,attribute:"show-save-action"})],exports.QxsBlankFill.prototype,"show-save-action",2),d([e.property({type:Boolean,reflect:!0})],exports.QxsBlankFill.prototype,"sorting",2),d([e.property({type:Boolean,attribute:"show-answer-setting"})],exports.QxsBlankFill.prototype,"show-answer-setting",2),d([e.property({type:Boolean,attribute:"show-analysis"})],exports.QxsBlankFill.prototype,"show-analysis",2),d([e.property({type:String,attribute:"rich-text-content"})],exports.QxsBlankFill.prototype,"rich-text-content",2),d([e.property({type:String})],exports.QxsBlankFill.prototype,"analysis",2),d([e.property({type:Number,attribute:"exam-answer-relation-type"})],exports.QxsBlankFill.prototype,"exam-answer-relation-type",2),d([e.property({type:String,attribute:"exam-expand"})],exports.QxsBlankFill.prototype,"exam-expand",2),d([e.property({type:Number,attribute:"exam-id"})],exports.QxsBlankFill.prototype,"exam-id",2),d([e.property({type:String,attribute:"category-id"})],exports.QxsBlankFill.prototype,"category-id",2),d([e.property({type:Object,attribute:"exam-answer-setting"})],exports.QxsBlankFill.prototype,"exam-answer-setting",2),d([e.property({type:Object,attribute:"upload-image"})],exports.QxsBlankFill.prototype,"upload-image",2),d([e.property({type:Array,attribute:"answer-list"})],exports.QxsBlankFill.prototype,"answer-list",2),d([e.property({type:Array,attribute:"tag-list"})],exports.QxsBlankFill.prototype,"tag-list",2),d([e.property({type:Array,attribute:"category-list"})],exports.QxsBlankFill.prototype,"category-list",2),d([e.property({type:Array,attribute:"resource-list"})],exports.QxsBlankFill.prototype,"resource-list",2),d([e.property({type:Boolean,attribute:"show-tag"})],exports.QxsBlankFill.prototype,"show-tag",2),d([e.property({type:Boolean,attribute:"show-category"})],exports.QxsBlankFill.prototype,"show-category",2),d([e.property({type:Boolean,attribute:"show-resource"})],exports.QxsBlankFill.prototype,"show-resource",2),d([e.property({type:String,attribute:"model-value"})],exports.QxsBlankFill.prototype,"model-value",2),d([e.property({type:Boolean,attribute:"use-model"})],exports.QxsBlankFill.prototype,"use-model",2),d([e.state()],exports.QxsBlankFill.prototype,"_title",2),d([e.state()],exports.QxsBlankFill.prototype,"_analysis",2),d([e.state()],exports.QxsBlankFill.prototype,"_answers",2),d([e.state()],exports.QxsBlankFill.prototype,"_isInOrder",2),d([e.state()],exports.QxsBlankFill.prototype,"_isIgnoreCase",2),d([e.state()],exports.QxsBlankFill.prototype,"_showRichText",2),d([e.state()],exports.QxsBlankFill.prototype,"_richText",2),d([e.state()],exports.QxsBlankFill.prototype,"_selectedTagList",2),d([e.state()],exports.QxsBlankFill.prototype,"_categoryId",2),exports.QxsBlankFill=d([i.safeCustomElement("qxs-blank-fill")],exports.QxsBlankFill);
384
+ `];s([i.property({type:Number,attribute:"order-index"})],exports.QxsBlankFill.prototype,"order-index",2);s([i.property({type:String,attribute:"subject-prefix"})],exports.QxsBlankFill.prototype,"subject-prefix",2);s([i.property({type:String})],exports.QxsBlankFill.prototype,"title",2);s([i.property({type:String,attribute:"custom-id"})],exports.QxsBlankFill.prototype,"custom-id",2);s([i.property({type:Boolean,attribute:"is-edit"})],exports.QxsBlankFill.prototype,"is-edit",2);s([i.property({type:Boolean,attribute:"is-save"})],exports.QxsBlankFill.prototype,"is-save",2);s([i.property({type:Boolean,attribute:"is-set"})],exports.QxsBlankFill.prototype,"is-set",2);s([i.property({type:Boolean,attribute:"is-key"})],exports.QxsBlankFill.prototype,"is-key",2);s([i.property({type:Boolean,attribute:"show-action"})],exports.QxsBlankFill.prototype,"show-action",2);s([i.property({type:Boolean,attribute:"show-add"})],exports.QxsBlankFill.prototype,"show-add",2);s([i.property({type:Boolean,attribute:"hide-add-rich-text"})],exports.QxsBlankFill.prototype,"hide-add-rich-text",2);s([i.property({type:Boolean,attribute:"show-rich-text"})],exports.QxsBlankFill.prototype,"show-rich-text",2);s([i.property({type:Boolean,attribute:"show-delete-action"})],exports.QxsBlankFill.prototype,"show-delete-action",2);s([i.property({type:Boolean,attribute:"show-save-action"})],exports.QxsBlankFill.prototype,"show-save-action",2);s([i.property({type:Boolean,reflect:!0})],exports.QxsBlankFill.prototype,"sorting",2);s([i.property({type:Boolean,attribute:"show-answer-setting"})],exports.QxsBlankFill.prototype,"show-answer-setting",2);s([i.property({type:Boolean,attribute:"show-analysis"})],exports.QxsBlankFill.prototype,"show-analysis",2);s([i.property({type:String,attribute:"rich-text-content"})],exports.QxsBlankFill.prototype,"rich-text-content",2);s([i.property({type:String})],exports.QxsBlankFill.prototype,"analysis",2);s([i.property({type:Number,attribute:"exam-answer-relation-type"})],exports.QxsBlankFill.prototype,"exam-answer-relation-type",2);s([i.property({type:String,attribute:"exam-expand"})],exports.QxsBlankFill.prototype,"exam-expand",2);s([i.property({type:Number,attribute:"exam-id"})],exports.QxsBlankFill.prototype,"exam-id",2);s([i.property({type:String,attribute:"category-id"})],exports.QxsBlankFill.prototype,"category-id",2);s([i.property({type:Object,attribute:"exam-answer-setting"})],exports.QxsBlankFill.prototype,"exam-answer-setting",2);s([i.property({type:Object,attribute:"upload-image"})],exports.QxsBlankFill.prototype,"upload-image",2);s([i.property({type:Array,attribute:"answer-list"})],exports.QxsBlankFill.prototype,"answer-list",2);s([i.property({type:Array,attribute:"tag-list"})],exports.QxsBlankFill.prototype,"tag-list",2);s([i.property({type:Array,attribute:"category-list"})],exports.QxsBlankFill.prototype,"category-list",2);s([i.property({type:Array,attribute:"resource-list"})],exports.QxsBlankFill.prototype,"resource-list",2);s([i.property({type:Boolean,attribute:"show-tag"})],exports.QxsBlankFill.prototype,"show-tag",2);s([i.property({type:Boolean,attribute:"show-category"})],exports.QxsBlankFill.prototype,"show-category",2);s([i.property({type:Boolean,attribute:"show-resource"})],exports.QxsBlankFill.prototype,"show-resource",2);s([i.property({type:String,attribute:"model-value"})],exports.QxsBlankFill.prototype,"model-value",2);s([i.property({type:Boolean,attribute:"use-model"})],exports.QxsBlankFill.prototype,"use-model",2);s([i.state()],exports.QxsBlankFill.prototype,"_title",2);s([i.state()],exports.QxsBlankFill.prototype,"_analysis",2);s([i.state()],exports.QxsBlankFill.prototype,"_answers",2);s([i.state()],exports.QxsBlankFill.prototype,"_isInOrder",2);s([i.state()],exports.QxsBlankFill.prototype,"_isIgnoreCase",2);s([i.state()],exports.QxsBlankFill.prototype,"_showRichText",2);s([i.state()],exports.QxsBlankFill.prototype,"_richText",2);s([i.state()],exports.QxsBlankFill.prototype,"_selectedTagList",2);s([i.state()],exports.QxsBlankFill.prototype,"_categoryId",2);exports.QxsBlankFill=s([B.safeCustomElement("qxs-blank-fill")],exports.QxsBlankFill);
385
385
  //# sourceMappingURL=blank-fill.cjs.map