artalk 2.6.3 → 2.7.0

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 (300) hide show
  1. package/dist/Artalk.css +1 -1
  2. package/dist/Artalk.es.js +7673 -7330
  3. package/dist/Artalk.iife.js +1 -1
  4. package/dist/Artalk.js +1 -1
  5. package/dist/ArtalkLite.css +1 -1
  6. package/dist/ArtalkLite.es.js +5304 -4961
  7. package/dist/ArtalkLite.iife.js +1 -1
  8. package/dist/ArtalkLite.js +1 -1
  9. package/dist/src/api/{api-base.d.ts → _base.d.ts} +3 -7
  10. package/dist/src/api/_options.d.ts +19 -0
  11. package/dist/src/api/{request.d.ts → _request.d.ts} +3 -3
  12. package/dist/src/api/admin.d.ts +1 -1
  13. package/dist/src/api/captcha.d.ts +1 -1
  14. package/dist/src/api/comment.d.ts +2 -2
  15. package/dist/src/api/index.d.ts +2 -4
  16. package/dist/src/api/page.d.ts +3 -3
  17. package/dist/src/api/site.d.ts +2 -2
  18. package/dist/src/api/system.d.ts +13 -3
  19. package/dist/src/api/upload.d.ts +1 -1
  20. package/dist/src/api/user.d.ts +2 -2
  21. package/dist/src/artalk.d.ts +14 -37
  22. package/dist/src/comment/actions.d.ts +1 -1
  23. package/dist/src/comment/comment.d.ts +3 -4
  24. package/dist/src/comment/render.d.ts +21 -3
  25. package/dist/src/comment/renders/actions.d.ts +2 -2
  26. package/dist/src/comment/renders/avatar.d.ts +2 -2
  27. package/dist/src/comment/renders/content.d.ts +2 -2
  28. package/dist/src/comment/renders/header.d.ts +2 -2
  29. package/dist/src/comment/renders/index.d.ts +2 -2
  30. package/dist/src/comment/renders/pending.d.ts +2 -2
  31. package/dist/src/comment/renders/reply-at.d.ts +2 -2
  32. package/dist/src/comment/renders/reply-to.d.ts +2 -2
  33. package/dist/src/components/action-btn.d.ts +3 -5
  34. package/dist/src/{lib → components}/checker/admin.d.ts +1 -1
  35. package/dist/src/{lib → components}/checker/captcha-renders.d.ts +1 -1
  36. package/dist/src/{lib → components}/checker/captcha.d.ts +1 -1
  37. package/dist/src/{lib → components}/checker/index.d.ts +10 -7
  38. package/dist/src/components/dark-mode.d.ts +2 -0
  39. package/dist/src/components/dialog.d.ts +1 -3
  40. package/dist/src/components/error-dialog.d.ts +8 -0
  41. package/dist/src/components/pagination.d.ts +4 -3
  42. package/dist/src/components/read-more-btn.d.ts +3 -3
  43. package/dist/src/config.d.ts +24 -8
  44. package/dist/src/context.d.ts +16 -35
  45. package/dist/src/data.d.ts +27 -0
  46. package/dist/src/defaults.d.ts +1 -1
  47. package/dist/src/editor/editor.d.ts +14 -59
  48. package/dist/src/editor/state.d.ts +20 -0
  49. package/dist/src/i18n/zh-CN.d.ts +1 -1
  50. package/dist/src/layer/index.d.ts +4 -3
  51. package/dist/src/layer/layer-manager.d.ts +9 -0
  52. package/dist/src/layer/layer.d.ts +8 -28
  53. package/dist/src/layer/scrollbar-helper.d.ts +5 -0
  54. package/dist/src/layer/sidebar-layer.d.ts +6 -6
  55. package/dist/src/layer/wrap.d.ts +13 -0
  56. package/dist/src/lib/component.d.ts +3 -8
  57. package/dist/src/lib/event-manager.d.ts +28 -0
  58. package/dist/src/lib/highlight.d.ts +1 -0
  59. package/dist/src/lib/marked-renderer.d.ts +4 -0
  60. package/dist/src/lib/marked.d.ts +4 -2
  61. package/dist/src/lib/sanitizer.d.ts +1 -0
  62. package/dist/src/lib/ui.d.ts +3 -2
  63. package/dist/src/lib/user.d.ts +8 -5
  64. package/dist/src/lib/utils.d.ts +11 -5
  65. package/dist/src/list/comment.d.ts +3 -0
  66. package/dist/src/list/layout.d.ts +23 -0
  67. package/dist/src/list/list.d.ts +13 -25
  68. package/dist/src/list/{list-nest.d.ts → nest.d.ts} +1 -1
  69. package/dist/src/list/page.d.ts +2 -0
  70. package/dist/src/list/paginator/index.d.ts +22 -7
  71. package/dist/src/list/paginator/read-more.d.ts +18 -0
  72. package/dist/src/list/paginator/up-down.d.ts +14 -0
  73. package/dist/src/main.d.ts +2 -0
  74. package/dist/src/plugins/admin-only-elem.d.ts +2 -0
  75. package/dist/src/plugins/conf-remoter.d.ts +2 -0
  76. package/dist/src/plugins/dark-mode.d.ts +2 -0
  77. package/dist/src/plugins/editor/_kit.d.ts +27 -0
  78. package/dist/src/plugins/editor/_plug.d.ts +29 -0
  79. package/dist/src/plugins/editor/_sample.d.ts +5 -0
  80. package/dist/src/plugins/editor/closable.d.ts +7 -0
  81. package/dist/src/{editor/plugs/emoticons-plug.d.ts → plugins/editor/emoticons.d.ts} +10 -16
  82. package/dist/src/plugins/editor/header-event.d.ts +6 -0
  83. package/dist/src/plugins/editor/header-link.d.ts +6 -0
  84. package/dist/src/plugins/editor/header-user.d.ts +16 -0
  85. package/dist/src/plugins/editor/index.d.ts +6 -0
  86. package/dist/src/plugins/editor/local-storage.d.ts +6 -0
  87. package/dist/src/plugins/editor/mover.d.ts +6 -0
  88. package/dist/src/plugins/editor/preview.d.ts +7 -0
  89. package/dist/src/plugins/editor/state-edit.d.ts +11 -0
  90. package/dist/src/plugins/editor/state-reply.d.ts +8 -0
  91. package/dist/src/plugins/editor/submit-add.d.ts +18 -0
  92. package/dist/src/plugins/editor/submit-btn.d.ts +5 -0
  93. package/dist/src/plugins/editor/submit.d.ts +17 -0
  94. package/dist/src/plugins/editor/textarea.d.ts +8 -0
  95. package/dist/src/plugins/editor/upload.d.ts +9 -0
  96. package/dist/src/plugins/editor-kit.d.ts +42 -0
  97. package/dist/src/plugins/index.d.ts +2 -0
  98. package/dist/src/plugins/list/copyright.d.ts +2 -0
  99. package/dist/src/plugins/list/count.d.ts +2 -0
  100. package/dist/src/plugins/list/dropdown.d.ts +2 -0
  101. package/dist/src/plugins/list/error-dialog.d.ts +2 -0
  102. package/dist/src/plugins/list/fetch.d.ts +2 -0
  103. package/dist/src/plugins/list/goto-first.d.ts +3 -0
  104. package/dist/src/plugins/list/goto.d.ts +2 -0
  105. package/dist/src/plugins/list/index.d.ts +3 -0
  106. package/dist/src/plugins/list/loading.d.ts +2 -0
  107. package/dist/src/plugins/list/no-comment.d.ts +2 -0
  108. package/dist/src/plugins/list/reach-bottom.d.ts +2 -0
  109. package/dist/src/plugins/list/sidebar-btn.d.ts +2 -0
  110. package/dist/src/plugins/list/time-ticking.d.ts +3 -0
  111. package/dist/src/plugins/list/unread-badge.d.ts +2 -0
  112. package/dist/src/plugins/list/unread.d.ts +2 -0
  113. package/dist/src/plugins/list/with-editor.d.ts +2 -0
  114. package/dist/src/plugins/markdown.d.ts +2 -0
  115. package/dist/src/plugins/stat.d.ts +13 -0
  116. package/dist/src/plugins/version-check.d.ts +2 -0
  117. package/dist/src/service.d.ts +19 -23
  118. package/dist/tests/e2e/comment-add.spec.d.ts +1 -0
  119. package/dist/types/config.d.ts +110 -0
  120. package/dist/types/context.d.ts +56 -136
  121. package/dist/types/data.d.ts +194 -0
  122. package/dist/types/editor.d.ts +76 -0
  123. package/dist/types/event.d.ts +36 -25
  124. package/dist/types/index.d.ts +7 -0
  125. package/dist/types/plugin.d.ts +2 -0
  126. package/dist/types/sidebar.d.ts +3 -0
  127. package/package.json +5 -2
  128. package/src/api/_base.ts +18 -0
  129. package/src/api/_options.ts +25 -0
  130. package/src/api/{request.ts → _request.ts} +19 -18
  131. package/src/api/admin.ts +1 -1
  132. package/src/api/captcha.ts +1 -1
  133. package/src/api/comment.ts +4 -4
  134. package/src/api/index.ts +3 -12
  135. package/src/api/page.ts +5 -5
  136. package/src/api/site.ts +2 -2
  137. package/src/api/system.ts +19 -7
  138. package/src/api/upload.ts +3 -3
  139. package/src/api/user.ts +3 -3
  140. package/src/artalk.ts +49 -97
  141. package/src/comment/actions.ts +1 -4
  142. package/src/comment/comment.ts +9 -6
  143. package/src/comment/render.ts +27 -5
  144. package/src/comment/renders/actions.ts +45 -45
  145. package/src/comment/renders/avatar.ts +7 -7
  146. package/src/comment/renders/content.ts +18 -18
  147. package/src/comment/renders/header.ts +13 -13
  148. package/src/comment/renders/index.ts +3 -3
  149. package/src/comment/renders/pending.ts +5 -5
  150. package/src/comment/renders/reply-at.ts +8 -8
  151. package/src/comment/renders/reply-to.ts +13 -13
  152. package/src/components/action-btn.ts +11 -13
  153. package/src/{lib → components}/checker/admin.ts +6 -6
  154. package/src/{lib → components}/checker/captcha-renders.ts +7 -6
  155. package/src/{lib → components}/checker/captcha.ts +1 -1
  156. package/src/{lib → components}/checker/index.ts +21 -26
  157. package/src/components/dark-mode.ts +30 -0
  158. package/src/components/dialog.ts +4 -9
  159. package/src/components/error-dialog.ts +35 -0
  160. package/src/components/pagination.ts +10 -6
  161. package/src/components/read-more-btn.ts +7 -7
  162. package/src/config.ts +60 -6
  163. package/src/context.ts +39 -144
  164. package/src/data.ts +110 -0
  165. package/src/defaults.ts +1 -1
  166. package/src/editor/editor.ts +41 -146
  167. package/src/editor/state.ts +52 -0
  168. package/src/i18n/zh-CN.ts +1 -1
  169. package/src/layer/index.ts +4 -4
  170. package/src/layer/layer-manager.ts +32 -0
  171. package/src/layer/layer.ts +20 -144
  172. package/src/layer/scrollbar-helper.ts +24 -0
  173. package/src/layer/sidebar-layer.ts +74 -64
  174. package/src/layer/wrap.ts +77 -0
  175. package/src/lib/component.ts +4 -11
  176. package/src/lib/detect.ts +1 -1
  177. package/src/lib/event-manager.ts +47 -0
  178. package/src/lib/highlight.ts +5 -0
  179. package/src/lib/marked-renderer.ts +32 -0
  180. package/src/lib/marked.ts +43 -104
  181. package/src/lib/sanitizer.ts +57 -0
  182. package/src/lib/ui.ts +22 -15
  183. package/src/lib/user.ts +21 -16
  184. package/src/lib/utils.ts +29 -18
  185. package/src/list/comment.ts +20 -0
  186. package/src/list/layout.ts +120 -0
  187. package/src/list/list.html +3 -1
  188. package/src/list/list.ts +56 -200
  189. package/src/list/{list-nest.ts → nest.ts} +1 -1
  190. package/src/list/page.ts +97 -0
  191. package/src/list/paginator/index.ts +20 -8
  192. package/src/list/paginator/read-more.ts +67 -0
  193. package/src/list/paginator/up-down.ts +51 -0
  194. package/src/main.ts +2 -0
  195. package/src/plugins/admin-only-elem.ts +40 -0
  196. package/src/plugins/conf-remoter.ts +54 -0
  197. package/src/plugins/dark-mode.ts +12 -0
  198. package/src/plugins/editor/_kit.ts +57 -0
  199. package/src/plugins/editor/_plug.ts +60 -0
  200. package/src/plugins/editor/_sample.ts +8 -0
  201. package/src/plugins/editor/closable.ts +44 -0
  202. package/src/{editor/plugs/emoticons-plug.ts → plugins/editor/emoticons.ts} +51 -52
  203. package/src/plugins/editor/header-event.ts +35 -0
  204. package/src/plugins/editor/header-link.ts +31 -0
  205. package/src/plugins/editor/header-user.ts +98 -0
  206. package/src/plugins/editor/index.ts +40 -0
  207. package/src/plugins/editor/local-storage.ts +36 -0
  208. package/src/plugins/editor/mover.ts +29 -0
  209. package/src/plugins/editor/preview.ts +41 -0
  210. package/src/plugins/editor/state-edit.ts +116 -0
  211. package/src/plugins/editor/state-reply.ts +91 -0
  212. package/src/plugins/editor/submit-add.ts +33 -0
  213. package/src/plugins/editor/submit-btn.ts +25 -0
  214. package/src/plugins/editor/submit.ts +73 -0
  215. package/src/plugins/editor/textarea.ts +55 -0
  216. package/src/plugins/editor/upload.ts +145 -0
  217. package/src/plugins/editor-kit.ts +161 -0
  218. package/src/plugins/index.ts +16 -0
  219. package/src/plugins/list/copyright.ts +16 -0
  220. package/src/plugins/list/count.ts +31 -0
  221. package/src/plugins/list/dropdown.ts +95 -0
  222. package/src/plugins/list/error-dialog.ts +22 -0
  223. package/src/plugins/list/fetch.ts +64 -0
  224. package/src/plugins/list/goto-first.ts +23 -0
  225. package/src/plugins/list/goto.ts +72 -0
  226. package/src/plugins/list/index.ts +25 -0
  227. package/src/plugins/list/loading.ts +17 -0
  228. package/src/plugins/list/no-comment.ts +25 -0
  229. package/src/plugins/list/reach-bottom.ts +46 -0
  230. package/src/plugins/list/sidebar-btn.ts +39 -0
  231. package/src/plugins/list/time-ticking.ts +22 -0
  232. package/src/plugins/list/unread-badge.ts +26 -0
  233. package/src/plugins/list/unread.ts +38 -0
  234. package/src/plugins/list/with-editor.ts +59 -0
  235. package/src/plugins/markdown.ts +10 -0
  236. package/src/plugins/stat.ts +79 -0
  237. package/src/plugins/version-check.ts +37 -0
  238. package/src/service.ts +34 -61
  239. package/src/style/comment.scss +5 -7
  240. package/src/style/editor.scss +5 -0
  241. package/src/style/list.scss +2 -7
  242. package/types/{artalk-config.d.ts → config.ts} +16 -2
  243. package/types/context.ts +84 -0
  244. package/{dist/types/artalk-data.d.ts → types/data.ts} +41 -0
  245. package/types/editor.ts +95 -0
  246. package/types/event.ts +40 -0
  247. package/types/index.ts +7 -0
  248. package/types/plugin.ts +3 -0
  249. package/types/sidebar.ts +3 -0
  250. package/dist/src/comment/render-ctx.d.ts +0 -23
  251. package/dist/src/editor/edit-mode.d.ts +0 -9
  252. package/dist/src/editor/funcs.d.ts +0 -2
  253. package/dist/src/editor/index.d.ts +0 -2
  254. package/dist/src/editor/mover.d.ts +0 -8
  255. package/dist/src/editor/plug-manager.d.ts +0 -17
  256. package/dist/src/editor/plugs/editor-plug.d.ts +0 -38
  257. package/dist/src/editor/plugs/header-input-plug.d.ts +0 -13
  258. package/dist/src/editor/plugs/preview-plug.d.ts +0 -10
  259. package/dist/src/editor/plugs/upload-plug.d.ts +0 -10
  260. package/dist/src/editor/reply.d.ts +0 -9
  261. package/dist/src/editor/submit.d.ts +0 -16
  262. package/dist/src/lib/dark-mode.d.ts +0 -4
  263. package/dist/src/lib/stat.d.ts +0 -15
  264. package/dist/src/list/index.d.ts +0 -2
  265. package/dist/src/list/list-lite.d.ts +0 -77
  266. package/dist/src/list/list-ui.d.ts +0 -16
  267. package/dist/src/list/paginator/adaptors/index.d.ts +0 -12
  268. package/dist/src/list/paginator/adaptors/pagination.d.ts +0 -9
  269. package/dist/src/list/paginator/adaptors/read-more.d.ts +0 -10
  270. package/dist/src/list/paginator/holder.d.ts +0 -16
  271. package/dist/types/artalk-config.d.ts +0 -139
  272. package/dist/types/plug.d.ts +0 -4
  273. package/src/api/api-base.ts +0 -27
  274. package/src/comment/render-ctx.ts +0 -30
  275. package/src/editor/edit-mode.ts +0 -103
  276. package/src/editor/funcs.ts +0 -97
  277. package/src/editor/index.ts +0 -3
  278. package/src/editor/mover.ts +0 -43
  279. package/src/editor/plug-manager.ts +0 -172
  280. package/src/editor/plugs/editor-plug.ts +0 -69
  281. package/src/editor/plugs/header-input-plug.ts +0 -79
  282. package/src/editor/plugs/preview-plug.ts +0 -44
  283. package/src/editor/plugs/upload-plug.ts +0 -122
  284. package/src/editor/reply.ts +0 -62
  285. package/src/editor/submit.ts +0 -99
  286. package/src/lib/dark-mode.ts +0 -48
  287. package/src/lib/stat.ts +0 -71
  288. package/src/list/index.ts +0 -3
  289. package/src/list/list-lite.ts +0 -424
  290. package/src/list/list-ui.ts +0 -137
  291. package/src/list/paginator/adaptors/index.ts +0 -21
  292. package/src/list/paginator/adaptors/pagination.ts +0 -42
  293. package/src/list/paginator/adaptors/read-more.ts +0 -56
  294. package/src/list/paginator/holder.ts +0 -56
  295. package/types/artalk-data.d.ts +0 -230
  296. package/types/context.d.ts +0 -142
  297. package/types/event.d.ts +0 -28
  298. package/types/plug.d.ts +0 -4
  299. /package/src/{editor/plugs/emoticons-plug.scss → plugins/editor/emoticons.scss} +0 -0
  300. /package/src/{editor/plugs/preview-plug.scss → plugins/editor/preview.scss} +0 -0
@@ -1,56 +0,0 @@
1
- import ReadMoreBtn from '@/components/read-more-btn'
2
- import $t from '@/i18n'
3
- import * as Ui from '@/lib/ui'
4
- import { IPgAdaptor } from '.'
5
-
6
- interface IReadMoreAdaptor extends IPgAdaptor<ReadMoreBtn> {
7
- autoLoadScrollEvent?: () => void
8
- }
9
-
10
- /**
11
- * 阅读更多形式的分页
12
- */
13
- export default <IReadMoreAdaptor>{
14
- createInstance(conf) {
15
- const readMoreBtn = new ReadMoreBtn({
16
- pageSize: conf.pageSize,
17
- onClick: async (o) => {
18
- await conf.list.fetchComments(o)
19
- },
20
- text: $t('loadMore'),
21
- })
22
-
23
- // 滚动到底部自动加载
24
- if (conf.list.conf.pagination.autoLoad) {
25
- // 添加滚动事件监听
26
- const at = conf.list.scrollListenerAt || document
27
- if (this.autoLoadScrollEvent) at.removeEventListener('scroll', this.autoLoadScrollEvent) // 解除原有
28
- this.autoLoadScrollEvent = () => {
29
- if (conf.mode !== 'read-more'
30
- || !readMoreBtn?.hasMore
31
- || conf.list.getLoading()
32
- ) return
33
-
34
- const $target = conf.list.$el.querySelector<HTMLElement>('.atk-list-comments-wrap > .atk-comment-wrap:nth-last-child(3)') // 获取倒数第3个评论元素
35
- if ($target && Ui.isVisible($target, conf.list.scrollListenerAt)) {
36
- readMoreBtn.click() // 自动点击加载更多按钮
37
- }
38
- }
39
- at.addEventListener('scroll', this.autoLoadScrollEvent)
40
- }
41
-
42
- return [readMoreBtn, readMoreBtn.$el]
43
- },
44
- setLoading(val) {
45
- this.instance.setLoading(val)
46
- },
47
- update(offset, total) {
48
- this.instance.update(offset, total)
49
- },
50
- showErr(msg) {
51
- this.instance.showErr(msg)
52
- },
53
- next() {
54
- this.instance.click()
55
- }
56
- }
@@ -1,56 +0,0 @@
1
- import { IPgHolderConf, TPgMode } from '.'
2
- import Adaptors from './adaptors'
3
-
4
- /**
5
- * 分页方式持有者(调度器)
6
- */
7
- export default class PgHolder {
8
- private conf: IPgHolderConf
9
-
10
- constructor(conf: IPgHolderConf) {
11
- this.conf = conf
12
- this.init()
13
- }
14
-
15
- public getAdaptor() {
16
- return Adaptors[this.conf.mode]
17
- }
18
-
19
- public init() {
20
- const adaptor = this.getAdaptor()
21
- const [instance, el] = adaptor.createInstance(this.conf)
22
- adaptor.instance = instance
23
- adaptor.el = el
24
- this.conf.list.$el.append(adaptor.el)
25
- }
26
-
27
- public setLoading(val: boolean) {
28
- this.getAdaptor().setLoading(val)
29
- }
30
-
31
- public update(offset: number, total: number) {
32
- this.getAdaptor().update(offset, total)
33
- }
34
-
35
- public getEl() {
36
- return this.getAdaptor().el
37
- }
38
-
39
- public showErr(msg: string) {
40
- const that = this.getAdaptor()
41
- const func = that.showErr
42
- if (func) func.bind(that)(msg)
43
- }
44
-
45
- public setMode(val: TPgMode) {
46
- if (val !== this.conf.mode) {
47
- this.getEl().remove()
48
- this.conf.mode = val
49
- this.init()
50
- }
51
- }
52
-
53
- public next() {
54
- this.getAdaptor().next()
55
- }
56
- }
@@ -1,230 +0,0 @@
1
- export interface CommentData {
2
- /** 评论 ID */
3
- id: number
4
-
5
- /** 评论正文 */
6
- content: string
7
-
8
- /** 用户昵称 */
9
- nick: string
10
-
11
- /** 用户邮箱 (该字段仅管理员可见) */
12
- email?: string
13
-
14
- /** 用户邮箱(已加密) */
15
- email_encrypted: string
16
-
17
- /** 用户链接 */
18
- link: string
19
-
20
- /** 回复目标评论 ID */
21
- rid: number
22
-
23
- /** User Agent */
24
- ua: string
25
-
26
- /** 评论日期 */
27
- date: string
28
-
29
- /** 是否折叠 */
30
- is_collapsed?: boolean
31
-
32
- /** 是否待审 */
33
- is_pending?: boolean
34
-
35
- /** 是否置顶 */
36
- is_pinned?: boolean
37
-
38
- /** 是否为管理员 */
39
- is_admin?: boolean
40
-
41
- /** 徽章文字 */
42
- badge_name?: string
43
-
44
- /** 徽章颜色 */
45
- badge_color?: string
46
-
47
- /** IP 归属地 */
48
- ip_region?: string
49
-
50
- /** 是否允许回复 */
51
- is_allow_reply?: boolean
52
-
53
- /** 评论页面 key */
54
- page_key: string
55
-
56
- /** 评论页面 url */
57
- page_url?: string
58
-
59
- /** 是否可见 */
60
- visible: boolean
61
-
62
- /** 站点名(用于隔离) */
63
- site_name: string
64
-
65
- /** 赞同数 */
66
- vote_up: number
67
-
68
- /** 反对数 */
69
- vote_down: number
70
- }
71
-
72
- export interface ListData {
73
- /** 评论数据 */
74
- comments: CommentData[]
75
-
76
- /** 根评论总数 */
77
- total_roots: number
78
-
79
- /** 评论总数(包括所有子评论) */
80
- total: number
81
-
82
- /** 页面信息 */
83
- page: PageData
84
-
85
- /** 站点信息 */
86
- site: SiteData
87
-
88
- /** 未读的 Notifies */
89
- unread: NotifyData[]
90
-
91
- /** 未读计数 */
92
- unread_count: number
93
-
94
- /** API 版本 */
95
- api_version: ApiVersionData
96
-
97
- /** 后端配置 */
98
- conf: any // TODO
99
- }
100
-
101
- export interface PageData {
102
- /** 页面 ID */
103
- id: number
104
-
105
- /** 页面唯一标识符 */
106
- key: string
107
-
108
- /** 页面标题 */
109
- title: string
110
-
111
- /** 页面 url */
112
- url: string
113
-
114
- /** 仅管理员可评 */
115
- admin_only: boolean
116
-
117
- /** 站点名(用于隔离) */
118
- site_name: string
119
-
120
- /** 赞同数 */
121
- vote_up: number
122
-
123
- /** 反对数 */
124
- vote_down: number
125
- }
126
-
127
- export interface SiteData {
128
- /** 站点 ID */
129
- id: number
130
-
131
- /** 站点名 */
132
- name: string
133
-
134
- /** 站点 URLs */
135
- urls: string[]
136
-
137
- /** 站点 URLs(原始字符串) */
138
- urls_raw: string
139
-
140
- /** 站点主 URL */
141
- first_url: string
142
- }
143
-
144
- export interface UserData {
145
- /** 用户 ID */
146
- id: number
147
-
148
- /** 用户名 */
149
- name: string
150
-
151
- /** 邮箱 */
152
- email: string
153
-
154
- /** 链接 */
155
- link: string
156
-
157
- /** 徽章名称 */
158
- badge_name: string
159
-
160
- /** 徽章颜色 */
161
- badge_color: string
162
-
163
- /** 是否属于管理员 */
164
- is_admin: boolean
165
-
166
- /** 所属站点名 */
167
- site_names: string[]
168
-
169
- /** 所属站点名 (字符串) */
170
- site_names_raw: string,
171
-
172
- /** 是否允许接收邮件通知 */
173
- receive_email: boolean
174
- }
175
-
176
- export interface UserDataForAdmin extends UserData {
177
- /** 最后一次操作 IP */
178
- last_ip: string
179
-
180
- /** 最后一次操作 UA */
181
- last_ua: string
182
-
183
- /** 是否存在于配置文件中 */
184
- is_in_conf: boolean
185
-
186
- /** 评论数 */
187
- comment_count: number
188
-
189
- /** 密码 */
190
- password: string
191
- }
192
-
193
- export interface NotifyData {
194
- /** 通知 ID */
195
- id: number
196
-
197
- /** 用户 ID */
198
- user_id: number
199
-
200
- /** 评论 ID */
201
- comment_id: number
202
-
203
- /** 是否已读 */
204
- is_read: boolean
205
-
206
- /** 是否已发送邮件通知 */
207
- is_emailed: boolean
208
-
209
- /** 标为已读地址 */
210
- read_link: string
211
- }
212
-
213
- export type EmoticonGrpData = {
214
- name: string,
215
- type: 'emoticon'|'image'|'emoji'
216
- items: {key: string, val: string}[]
217
- }
218
-
219
- export type EmoticonListData = EmoticonGrpData[]
220
-
221
- export interface ApiVersionData {
222
- /** API 程序名 */
223
- app: string
224
-
225
- /** API 程序版本号 */
226
- version: string
227
-
228
- /** API 程序 CommitHash */
229
- commit_hash: string
230
- }
@@ -1,142 +0,0 @@
1
- import ArtalkConfig from './artalk-config'
2
- import { CommentData, NotifyData } from './artalk-data'
3
- import { EventPayloadMap, Event, EventScopeType, Handler } from './event'
4
- import { internal as internalLocales, I18n } from '../src/i18n'
5
- import Api from '../src/api'
6
- import User from '../src/lib/user'
7
- import Comment from '../src/comment'
8
- import { SidebarShowPayload } from '../src/layer/sidebar-layer'
9
- import { CheckerCaptchaPayload, CheckerPayload } from '../src/lib/checker'
10
- import type { TMarked } from '../src/lib/marked'
11
- import type { TInjectedServices } from '../src/service'
12
-
13
- /**
14
- * Context 接口
15
- *
16
- * (面向接口的编程)
17
- */
18
- export default interface ContextApi {
19
- /** Artalk 根元素对象 */
20
- $root: HTMLElement
21
-
22
- /** 依赖注入函数 */
23
- inject<K extends keyof TInjectedServices>(depName: K, obj: TInjectedServices[K]): void
24
-
25
- /** 获取依赖对象 */
26
- get<K extends keyof TInjectedServices>(depName: K): TInjectedServices[K]
27
-
28
- /** 配置对象 */
29
- // TODO 修改为 getConf() 和 setConf()
30
- conf: ArtalkConfig
31
-
32
- /** marked 依赖对象 */
33
- getMarkedInstance(): TMarked | undefined
34
-
35
- /** marked 内容替换器 */
36
- markedReplacers: ((raw: string) => string)[]
37
-
38
- /** 获取 API 以供 HTTP 请求 */
39
- getApi(): Api
40
-
41
- /** 获取评论实例对象列表 */
42
- getCommentList(): Comment[]
43
-
44
- /** 获取评论数据列表 */
45
- getCommentDataList(): CommentData[]
46
-
47
- /** 查找评论 */
48
- findComment(id: number): Comment|undefined
49
-
50
- /** 删除评论 */
51
- deleteComment(comment: number|Comment): void
52
-
53
- /** 清空评论 */
54
- clearAllComments(): void
55
-
56
- /** 插入评论 */
57
- insertComment(commentData: CommentData): void
58
-
59
- /** 更新评论 */
60
- updateComment(commentData: CommentData): void
61
-
62
- /** 评论回复 */
63
- replyComment(commentData: CommentData, $comment: HTMLElement, scroll?: boolean): void
64
-
65
- /** 取消回复评论 */
66
- cancelReplyComment(): void
67
-
68
- /** 编辑评论 */
69
- editComment(commentData: CommentData, $comment: HTMLElement): void
70
-
71
- /** 取消编辑评论 */
72
- cancelEditComment(): void
73
-
74
- /** 更新通知数据 */
75
- updateNotifies(notifies: NotifyData[]): void
76
-
77
- /** 列表 - 重新加载数据 */
78
- listReload(): void
79
-
80
- /** 列表 - 重新加载数据 (别名) */
81
- reload(): void
82
-
83
- /** 列表 - UI 更新 */
84
- listRefreshUI(): void
85
-
86
- /** 列表 - HashGoto 功能检测 */
87
- listHashGotoCheck(): void
88
-
89
- /** 显示侧边栏 */
90
- showSidebar(payload?: SidebarShowPayload): void
91
-
92
- /** 隐藏侧边栏 */
93
- hideSidebar(): void
94
-
95
- /** 编辑器 - 关闭评论 */
96
- editorClose(): void
97
-
98
- /** 编辑器 - 打开评论 */
99
- editorOpen(): void
100
-
101
- /** 编辑器 - 显示加载 */
102
- editorShowLoading(): void
103
-
104
- /** 编辑器 - 隐藏加载 */
105
- editorHideLoading(): void
106
-
107
- /** 编辑器 - 显示提示消息 */
108
- editorShowNotify(msg: string, type: "i" | "s" | "w" | "e"): void
109
-
110
- /** 评论框 - 位置移动 */
111
- editorTravel($el: HTMLElement): void
112
-
113
- /** 评论框 - 位置回归 */
114
- editorTravelBack(): void
115
-
116
- /** 验证码检测 */
117
- checkCaptcha(payload: CheckerCaptchaPayload): void
118
-
119
- /** 管理员检测 */
120
- checkAdmin(payload: CheckerPayload): void
121
-
122
- /** 管理员显示元素可见性更新 */
123
- checkAdminShowEl(): void
124
-
125
- /** 订阅注册 */
126
- on<K extends keyof EventPayloadMap>(name: K, handler: Handler<EventPayloadMap[K]>, scope?: EventScopeType): void
127
-
128
- /** 订阅取消 */
129
- off<K extends keyof EventPayloadMap>(name: K, handler?: Handler<EventPayloadMap[K]>, scope?: EventScopeType): void
130
-
131
- /** 订阅发布 */
132
- trigger<K extends keyof EventPayloadMap>(name: K, payload?: EventPayloadMap[K], scope?: EventScopeType): void
133
-
134
- /** i18n 翻译 */
135
- $t(key: keyof I18n, args?: {[key: string]: string}): string
136
-
137
- /** 设置夜间模式 */
138
- setDarkMode(darkMode: boolean): void
139
-
140
- /** 更新配置 */
141
- updateConf(conf: Partial<ArtalkConfig>): void
142
- }
package/types/event.d.ts DELETED
@@ -1,28 +0,0 @@
1
- import { CommentData } from './artalk-data'
2
- import { LocalUser } from './artalk-config'
3
-
4
- /** EventName to EventPayload Type */
5
- export interface EventPayloadMap {
6
- 'list-load': undefined // 评论加载时
7
- 'list-loaded': undefined // 评论装载后
8
- 'list-inserted': CommentData // 评论插入后
9
- 'editor-submit': undefined // 编辑器提交时
10
- 'editor-submitted': undefined // 编辑器提交后
11
- 'user-changed': LocalUser // 本地用户数据变更时
12
- 'conf-loaded': undefined // Artalk 配置变更时
13
- 'sidebar-show': undefined // 侧边栏显示
14
- 'sidebar-hide': undefined // 侧边栏隐藏
15
- }
16
-
17
- // ============================================
18
- export interface Handler<P> {
19
- (payload: P): void
20
- }
21
-
22
- export type EventScopeType = 'internal'|'external'
23
-
24
- export interface Event<K extends keyof EventPayloadMap = keyof EventPayloadMap> {
25
- name: keyof EventPayloadMap
26
- handler: Handler<EventPayloadMap[K]>
27
- scope: EventScopeType
28
- }
package/types/plug.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import ContextApi from './context'
2
-
3
- type ArtalkPlug = (ctx: ContextApi) => void
4
- export default ArtalkPlug