artalk 2.6.4 → 2.7.1

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 (316) hide show
  1. package/dist/Artalk.css +1 -1
  2. package/dist/Artalk.es.js +7756 -7432
  3. package/dist/Artalk.es.js.map +1 -0
  4. package/dist/Artalk.iife.js +2 -1
  5. package/dist/Artalk.iife.js.map +1 -0
  6. package/dist/Artalk.js +2 -1
  7. package/dist/Artalk.js.map +1 -0
  8. package/dist/ArtalkLite.css +1 -1
  9. package/dist/ArtalkLite.es.js +5576 -5252
  10. package/dist/ArtalkLite.es.js.map +1 -0
  11. package/dist/ArtalkLite.iife.js +2 -1
  12. package/dist/ArtalkLite.iife.js.map +1 -0
  13. package/dist/ArtalkLite.js +2 -1
  14. package/dist/ArtalkLite.js.map +1 -0
  15. package/dist/i18n/jp.js +1 -1
  16. package/dist/i18n/zh-TW.js +1 -1
  17. package/dist/src/api/{api-base.d.ts → _base.d.ts} +3 -7
  18. package/dist/src/api/_options.d.ts +19 -0
  19. package/dist/src/api/{request.d.ts → _request.d.ts} +3 -3
  20. package/dist/src/api/admin.d.ts +1 -1
  21. package/dist/src/api/captcha.d.ts +1 -1
  22. package/dist/src/api/comment.d.ts +2 -2
  23. package/dist/src/api/index.d.ts +2 -4
  24. package/dist/src/api/page.d.ts +3 -3
  25. package/dist/src/api/site.d.ts +2 -2
  26. package/dist/src/api/system.d.ts +13 -3
  27. package/dist/src/api/upload.d.ts +1 -1
  28. package/dist/src/api/user.d.ts +2 -2
  29. package/dist/src/artalk.d.ts +12 -37
  30. package/dist/src/comment/actions.d.ts +1 -1
  31. package/dist/src/comment/comment.d.ts +3 -4
  32. package/dist/src/comment/render.d.ts +21 -3
  33. package/dist/src/comment/renders/actions.d.ts +2 -2
  34. package/dist/src/comment/renders/avatar.d.ts +2 -2
  35. package/dist/src/comment/renders/content.d.ts +2 -2
  36. package/dist/src/comment/renders/header.d.ts +2 -2
  37. package/dist/src/comment/renders/index.d.ts +2 -2
  38. package/dist/src/comment/renders/pending.d.ts +2 -2
  39. package/dist/src/comment/renders/reply-at.d.ts +2 -2
  40. package/dist/src/comment/renders/reply-to.d.ts +2 -2
  41. package/dist/src/components/action-btn.d.ts +3 -5
  42. package/dist/src/{lib → components}/checker/admin.d.ts +1 -1
  43. package/dist/src/{lib → components}/checker/captcha-renders.d.ts +1 -1
  44. package/dist/src/{lib → components}/checker/captcha.d.ts +1 -1
  45. package/dist/src/{lib → components}/checker/index.d.ts +10 -7
  46. package/dist/src/components/dark-mode.d.ts +2 -0
  47. package/dist/src/components/dialog.d.ts +1 -3
  48. package/dist/src/components/error-dialog.d.ts +8 -0
  49. package/dist/src/components/pagination.d.ts +4 -3
  50. package/dist/src/components/read-more-btn.d.ts +3 -3
  51. package/dist/src/config.d.ts +24 -8
  52. package/dist/src/context.d.ts +16 -35
  53. package/dist/src/data.d.ts +27 -0
  54. package/dist/src/defaults.d.ts +1 -1
  55. package/dist/src/editor/editor.d.ts +14 -61
  56. package/dist/src/editor/state.d.ts +20 -0
  57. package/dist/src/i18n/en.d.ts +3 -0
  58. package/dist/src/i18n/external.d.ts +3 -0
  59. package/dist/src/i18n/index.d.ts +9 -0
  60. package/dist/src/i18n/jp.d.ts +3 -0
  61. package/dist/src/i18n/zh-CN.d.ts +1 -1
  62. package/dist/src/i18n/zh-TW.d.ts +3 -0
  63. package/dist/src/layer/index.d.ts +4 -3
  64. package/dist/src/layer/layer-manager.d.ts +9 -0
  65. package/dist/src/layer/layer.d.ts +8 -28
  66. package/dist/src/layer/scrollbar-helper.d.ts +5 -0
  67. package/dist/src/layer/sidebar-layer.d.ts +6 -6
  68. package/dist/src/layer/wrap.d.ts +13 -0
  69. package/dist/src/lib/component.d.ts +3 -8
  70. package/dist/src/lib/event-manager.d.ts +28 -0
  71. package/dist/src/lib/highlight.d.ts +1 -0
  72. package/dist/src/lib/marked-renderer.d.ts +4 -0
  73. package/dist/src/lib/marked.d.ts +4 -2
  74. package/dist/src/lib/sanitizer.d.ts +1 -0
  75. package/dist/src/lib/ui.d.ts +3 -2
  76. package/dist/src/lib/user.d.ts +8 -5
  77. package/dist/src/lib/utils.d.ts +11 -5
  78. package/dist/src/list/comment.d.ts +3 -0
  79. package/dist/src/list/layout.d.ts +23 -0
  80. package/dist/src/list/list.d.ts +13 -25
  81. package/dist/src/list/{list-nest.d.ts → nest.d.ts} +1 -1
  82. package/dist/src/list/page.d.ts +2 -0
  83. package/dist/src/list/paginator/index.d.ts +22 -7
  84. package/dist/src/list/paginator/read-more.d.ts +18 -0
  85. package/dist/src/list/paginator/up-down.d.ts +14 -0
  86. package/dist/src/main.d.ts +5 -0
  87. package/dist/src/plugins/admin-only-elem.d.ts +2 -0
  88. package/dist/src/plugins/conf-remoter.d.ts +2 -0
  89. package/dist/src/plugins/dark-mode.d.ts +2 -0
  90. package/dist/src/plugins/editor/_kit.d.ts +27 -0
  91. package/dist/src/plugins/editor/_plug.d.ts +29 -0
  92. package/dist/src/plugins/editor/_sample.d.ts +5 -0
  93. package/dist/src/plugins/editor/closable.d.ts +7 -0
  94. package/dist/src/{editor/plugs/emoticons-plug.d.ts → plugins/editor/emoticons.d.ts} +10 -16
  95. package/dist/src/plugins/editor/header-event.d.ts +6 -0
  96. package/dist/src/plugins/editor/header-link.d.ts +6 -0
  97. package/dist/src/plugins/editor/header-user.d.ts +16 -0
  98. package/dist/src/plugins/editor/index.d.ts +6 -0
  99. package/dist/src/plugins/editor/local-storage.d.ts +6 -0
  100. package/dist/src/plugins/editor/mover.d.ts +6 -0
  101. package/dist/src/plugins/editor/preview.d.ts +7 -0
  102. package/dist/src/plugins/editor/state-edit.d.ts +11 -0
  103. package/dist/src/plugins/editor/state-reply.d.ts +8 -0
  104. package/dist/src/plugins/editor/submit-add.d.ts +18 -0
  105. package/dist/src/plugins/editor/submit-btn.d.ts +5 -0
  106. package/dist/src/plugins/editor/submit.d.ts +17 -0
  107. package/dist/src/plugins/editor/textarea.d.ts +8 -0
  108. package/dist/src/plugins/editor/upload.d.ts +9 -0
  109. package/dist/src/plugins/editor-kit.d.ts +42 -0
  110. package/dist/src/plugins/index.d.ts +2 -0
  111. package/dist/src/plugins/list/copyright.d.ts +2 -0
  112. package/dist/src/plugins/list/count.d.ts +2 -0
  113. package/dist/src/plugins/list/dropdown.d.ts +2 -0
  114. package/dist/src/plugins/list/error-dialog.d.ts +2 -0
  115. package/dist/src/plugins/list/fetch.d.ts +2 -0
  116. package/dist/src/plugins/list/goto-first.d.ts +3 -0
  117. package/dist/src/plugins/list/goto.d.ts +2 -0
  118. package/dist/src/plugins/list/index.d.ts +3 -0
  119. package/dist/src/plugins/list/loading.d.ts +2 -0
  120. package/dist/src/plugins/list/no-comment.d.ts +2 -0
  121. package/dist/src/plugins/list/reach-bottom.d.ts +2 -0
  122. package/dist/src/plugins/list/sidebar-btn.d.ts +2 -0
  123. package/dist/src/plugins/list/time-ticking.d.ts +3 -0
  124. package/dist/src/plugins/list/unread-badge.d.ts +2 -0
  125. package/dist/src/plugins/list/unread.d.ts +2 -0
  126. package/dist/src/plugins/list/with-editor.d.ts +2 -0
  127. package/dist/src/plugins/markdown.d.ts +2 -0
  128. package/dist/src/plugins/stat.d.ts +13 -0
  129. package/dist/src/plugins/version-check.d.ts +2 -0
  130. package/dist/src/service.d.ts +19 -23
  131. package/dist/tests/e2e/comment-add.spec.d.ts +1 -0
  132. package/dist/types/config.d.ts +110 -0
  133. package/dist/types/context.d.ts +56 -136
  134. package/dist/types/data.d.ts +194 -0
  135. package/dist/types/editor.d.ts +76 -0
  136. package/dist/types/event.d.ts +36 -25
  137. package/dist/types/index.d.ts +7 -0
  138. package/dist/types/plugin.d.ts +2 -0
  139. package/dist/types/sidebar.d.ts +3 -0
  140. package/package.json +5 -2
  141. package/src/api/_base.ts +18 -0
  142. package/src/api/_options.ts +25 -0
  143. package/src/api/{request.ts → _request.ts} +19 -18
  144. package/src/api/admin.ts +1 -1
  145. package/src/api/captcha.ts +1 -1
  146. package/src/api/comment.ts +4 -4
  147. package/src/api/index.ts +3 -12
  148. package/src/api/page.ts +5 -5
  149. package/src/api/site.ts +2 -2
  150. package/src/api/system.ts +19 -7
  151. package/src/api/upload.ts +3 -3
  152. package/src/api/user.ts +3 -3
  153. package/src/artalk.ts +47 -99
  154. package/src/comment/actions.ts +1 -4
  155. package/src/comment/comment.ts +9 -6
  156. package/src/comment/render.ts +27 -5
  157. package/src/comment/renders/actions.ts +45 -45
  158. package/src/comment/renders/avatar.ts +7 -7
  159. package/src/comment/renders/content.ts +18 -18
  160. package/src/comment/renders/header.ts +13 -13
  161. package/src/comment/renders/index.ts +3 -3
  162. package/src/comment/renders/pending.ts +5 -5
  163. package/src/comment/renders/reply-at.ts +8 -8
  164. package/src/comment/renders/reply-to.ts +13 -13
  165. package/src/components/action-btn.ts +11 -13
  166. package/src/{lib → components}/checker/admin.ts +6 -6
  167. package/src/{lib → components}/checker/captcha-renders.ts +7 -6
  168. package/src/{lib → components}/checker/captcha.ts +1 -1
  169. package/src/{lib → components}/checker/index.ts +21 -26
  170. package/src/components/dark-mode.ts +30 -0
  171. package/src/components/dialog.ts +4 -9
  172. package/src/components/error-dialog.ts +35 -0
  173. package/src/components/pagination.ts +10 -6
  174. package/src/components/read-more-btn.ts +7 -7
  175. package/src/config.ts +60 -6
  176. package/src/context.ts +39 -144
  177. package/src/data.ts +110 -0
  178. package/src/defaults.ts +1 -1
  179. package/src/editor/editor.ts +39 -152
  180. package/src/editor/state.ts +52 -0
  181. package/src/i18n/en.ts +3 -0
  182. package/src/i18n/jp.ts +3 -0
  183. package/src/i18n/zh-CN.ts +4 -1
  184. package/src/i18n/zh-TW.ts +3 -0
  185. package/src/layer/index.ts +4 -4
  186. package/src/layer/layer-manager.ts +32 -0
  187. package/src/layer/layer.ts +20 -144
  188. package/src/layer/scrollbar-helper.ts +24 -0
  189. package/src/layer/sidebar-layer.ts +74 -64
  190. package/src/layer/wrap.ts +77 -0
  191. package/src/lib/component.ts +4 -11
  192. package/src/lib/detect.ts +1 -1
  193. package/src/lib/event-manager.ts +47 -0
  194. package/src/lib/highlight.ts +5 -0
  195. package/src/lib/marked-renderer.ts +32 -0
  196. package/src/lib/marked.ts +43 -104
  197. package/src/lib/sanitizer.ts +57 -0
  198. package/src/lib/ui.ts +22 -15
  199. package/src/lib/user.ts +21 -16
  200. package/src/lib/utils.ts +29 -18
  201. package/src/list/comment.ts +20 -0
  202. package/src/list/layout.ts +120 -0
  203. package/src/list/list.html +3 -1
  204. package/src/list/list.ts +56 -200
  205. package/src/list/{list-nest.ts → nest.ts} +1 -1
  206. package/src/list/page.ts +97 -0
  207. package/src/list/paginator/index.ts +20 -8
  208. package/src/list/paginator/read-more.ts +67 -0
  209. package/src/list/paginator/up-down.ts +51 -0
  210. package/src/main.ts +11 -0
  211. package/src/plugins/admin-only-elem.ts +40 -0
  212. package/src/plugins/conf-remoter.ts +54 -0
  213. package/src/plugins/dark-mode.ts +12 -0
  214. package/src/plugins/editor/_kit.ts +57 -0
  215. package/src/plugins/editor/_plug.ts +60 -0
  216. package/src/plugins/editor/_sample.ts +8 -0
  217. package/src/plugins/editor/closable.ts +44 -0
  218. package/src/{editor/plugs/emoticons-plug.ts → plugins/editor/emoticons.ts} +51 -52
  219. package/src/plugins/editor/header-event.ts +35 -0
  220. package/src/plugins/editor/header-link.ts +31 -0
  221. package/src/plugins/editor/header-user.ts +98 -0
  222. package/src/plugins/editor/index.ts +40 -0
  223. package/src/plugins/editor/local-storage.ts +36 -0
  224. package/src/plugins/editor/mover.ts +29 -0
  225. package/src/plugins/editor/preview.ts +41 -0
  226. package/src/plugins/editor/state-edit.ts +116 -0
  227. package/src/plugins/editor/state-reply.ts +91 -0
  228. package/src/plugins/editor/submit-add.ts +33 -0
  229. package/src/plugins/editor/submit-btn.ts +25 -0
  230. package/src/plugins/editor/submit.ts +73 -0
  231. package/src/plugins/editor/textarea.ts +55 -0
  232. package/src/plugins/editor/upload.ts +145 -0
  233. package/src/plugins/editor-kit.ts +161 -0
  234. package/src/plugins/index.ts +16 -0
  235. package/src/plugins/list/copyright.ts +16 -0
  236. package/src/plugins/list/count.ts +31 -0
  237. package/src/plugins/list/dropdown.ts +95 -0
  238. package/src/plugins/list/error-dialog.ts +22 -0
  239. package/src/plugins/list/fetch.ts +64 -0
  240. package/src/plugins/list/goto-first.ts +23 -0
  241. package/src/plugins/list/goto.ts +72 -0
  242. package/src/plugins/list/index.ts +25 -0
  243. package/src/plugins/list/loading.ts +17 -0
  244. package/src/plugins/list/no-comment.ts +25 -0
  245. package/src/plugins/list/reach-bottom.ts +46 -0
  246. package/src/plugins/list/sidebar-btn.ts +39 -0
  247. package/src/plugins/list/time-ticking.ts +22 -0
  248. package/src/plugins/list/unread-badge.ts +26 -0
  249. package/src/plugins/list/unread.ts +38 -0
  250. package/src/plugins/list/with-editor.ts +59 -0
  251. package/src/plugins/markdown.ts +10 -0
  252. package/src/plugins/stat.ts +82 -0
  253. package/src/plugins/version-check.ts +36 -0
  254. package/src/service.ts +34 -61
  255. package/src/style/comment.scss +5 -7
  256. package/src/style/editor.scss +5 -0
  257. package/src/style/list.scss +1 -1
  258. package/types/{artalk-config.d.ts → config.ts} +16 -2
  259. package/types/context.ts +84 -0
  260. package/types/{artalk-data.d.ts → data.ts} +41 -0
  261. package/types/editor.ts +95 -0
  262. package/types/event.ts +40 -0
  263. package/types/index.ts +7 -0
  264. package/types/plugin.ts +3 -0
  265. package/types/sidebar.ts +3 -0
  266. package/dist/src/comment/render-ctx.d.ts +0 -23
  267. package/dist/src/editor/edit-mode.d.ts +0 -9
  268. package/dist/src/editor/funcs.d.ts +0 -2
  269. package/dist/src/editor/index.d.ts +0 -2
  270. package/dist/src/editor/mover.d.ts +0 -8
  271. package/dist/src/editor/plug-manager.d.ts +0 -17
  272. package/dist/src/editor/plugs/editor-plug.d.ts +0 -38
  273. package/dist/src/editor/plugs/header-input-plug.d.ts +0 -13
  274. package/dist/src/editor/plugs/preview-plug.d.ts +0 -10
  275. package/dist/src/editor/plugs/upload-plug.d.ts +0 -10
  276. package/dist/src/editor/reply.d.ts +0 -9
  277. package/dist/src/editor/submit.d.ts +0 -16
  278. package/dist/src/lib/dark-mode.d.ts +0 -4
  279. package/dist/src/lib/stat.d.ts +0 -15
  280. package/dist/src/list/index.d.ts +0 -2
  281. package/dist/src/list/list-lite.d.ts +0 -77
  282. package/dist/src/list/list-ui.d.ts +0 -16
  283. package/dist/src/list/paginator/adaptors/index.d.ts +0 -12
  284. package/dist/src/list/paginator/adaptors/pagination.d.ts +0 -9
  285. package/dist/src/list/paginator/adaptors/read-more.d.ts +0 -10
  286. package/dist/src/list/paginator/holder.d.ts +0 -16
  287. package/dist/types/artalk-config.d.ts +0 -139
  288. package/dist/types/artalk-data.d.ts +0 -230
  289. package/dist/types/plug.d.ts +0 -4
  290. package/src/api/api-base.ts +0 -27
  291. package/src/comment/render-ctx.ts +0 -30
  292. package/src/editor/edit-mode.ts +0 -105
  293. package/src/editor/funcs.ts +0 -150
  294. package/src/editor/index.ts +0 -3
  295. package/src/editor/mover.ts +0 -43
  296. package/src/editor/plug-manager.ts +0 -172
  297. package/src/editor/plugs/editor-plug.ts +0 -69
  298. package/src/editor/plugs/header-input-plug.ts +0 -79
  299. package/src/editor/plugs/preview-plug.ts +0 -44
  300. package/src/editor/plugs/upload-plug.ts +0 -122
  301. package/src/editor/reply.ts +0 -62
  302. package/src/editor/submit.ts +0 -99
  303. package/src/lib/dark-mode.ts +0 -48
  304. package/src/lib/stat.ts +0 -71
  305. package/src/list/index.ts +0 -3
  306. package/src/list/list-lite.ts +0 -424
  307. package/src/list/list-ui.ts +0 -137
  308. package/src/list/paginator/adaptors/index.ts +0 -21
  309. package/src/list/paginator/adaptors/pagination.ts +0 -42
  310. package/src/list/paginator/adaptors/read-more.ts +0 -56
  311. package/src/list/paginator/holder.ts +0 -56
  312. package/types/context.d.ts +0 -142
  313. package/types/event.d.ts +0 -28
  314. package/types/plug.d.ts +0 -4
  315. /package/src/{editor/plugs/emoticons-plug.scss → plugins/editor/emoticons.scss} +0 -0
  316. /package/src/{editor/plugs/preview-plug.scss → plugins/editor/preview.scss} +0 -0
@@ -1,10 +1,25 @@
1
- import ListLite from '../list-lite';
2
- import PgHolder from './holder';
3
- export type TPgMode = 'pagination' | 'read-more';
4
- export interface IPgHolderConf {
5
- list: ListLite;
6
- mode: TPgMode;
1
+ import type { ContextApi, ListFetchParams } from '../../../types';
2
+ import UpDownPaginator from './up-down';
3
+ import ReadMorePaginator from './read-more';
4
+ export interface IPgHolderOpt {
5
+ ctx: ContextApi;
7
6
  total: number;
8
7
  pageSize: number;
8
+ readMoreAutoLoad?: boolean;
9
9
  }
10
- export default PgHolder;
10
+ export interface Paginator {
11
+ create(opts: IPgHolderOpt): HTMLElement;
12
+ setLoading(val: boolean): void;
13
+ update(offset: number, total: number): void;
14
+ next(): void;
15
+ showErr?(msg: string): void;
16
+ getHasMore(): boolean;
17
+ /** Clear comments when fetch new page data */
18
+ getIsClearComments(params: Partial<ListFetchParams>): boolean;
19
+ dispose(): void;
20
+ }
21
+ declare const _default: {
22
+ UpDownPaginator: typeof UpDownPaginator;
23
+ ReadMorePaginator: typeof ReadMorePaginator;
24
+ };
25
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import type { ListFetchParams } from '../../../types';
2
+ import type { Paginator, IPgHolderOpt } from '.';
3
+ /**
4
+ * 阅读更多形式的分页
5
+ */
6
+ export default class ReadMorePaginator implements Paginator {
7
+ private instance;
8
+ private onReachedBottom;
9
+ private opt;
10
+ create(opt: IPgHolderOpt): HTMLElement;
11
+ setLoading(val: boolean): void;
12
+ update(offset: number, total: number): void;
13
+ showErr(msg: string): void;
14
+ next(): void;
15
+ getHasMore(): boolean;
16
+ getIsClearComments(params: Partial<ListFetchParams>): boolean;
17
+ dispose(): void;
18
+ }
@@ -0,0 +1,14 @@
1
+ import type { Paginator, IPgHolderOpt } from '.';
2
+ /**
3
+ * 翻页形式的分页
4
+ */
5
+ export default class UpDownPaginator implements Paginator {
6
+ private instance;
7
+ create(opt: IPgHolderOpt): HTMLElement;
8
+ setLoading(val: boolean): void;
9
+ update(offset: number, total: number): void;
10
+ next(): void;
11
+ getHasMore(): boolean;
12
+ getIsClearComments(): boolean;
13
+ dispose(): void;
14
+ }
@@ -1,2 +1,7 @@
1
1
  import Artalk from './artalk';
2
+ import * as ArtalkType from '../types';
3
+ export { ArtalkType };
2
4
  export default Artalk;
5
+ export declare const init: typeof Artalk.init;
6
+ export declare const use: typeof Artalk.use;
7
+ export declare const loadCountWidget: typeof Artalk.loadCountWidget;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../types';
2
+ export declare const AdminOnlyElem: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../types';
2
+ export declare const ConfRemoter: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../types';
2
+ export declare const DarkMode: ArtalkPlugin;
@@ -0,0 +1,27 @@
1
+ import type { PlugManager } from '../editor-kit';
2
+ import type EditorPlug from "./_plug";
3
+ /**
4
+ * PlugKit provides a set of methods to help you develop editor plug
5
+ */
6
+ export default class PlugKit {
7
+ private plugs;
8
+ constructor(plugs: PlugManager);
9
+ /** Use the editor */
10
+ useEditor(): import("../../../types").EditorApi;
11
+ /** Use the context of global */
12
+ useGlobalCtx(): import("../../../types").ContextApi;
13
+ /** Use the config of Artalk */
14
+ useConf(): import("../../../types").ArtalkConfig;
15
+ /** Use the http api client */
16
+ useApi(): import("../../api").default;
17
+ /** Use the ui of editor */
18
+ useUI(): import("../../editor/ui").EditorUI;
19
+ /** Use the events in editor scope */
20
+ useEvents(): import("../../lib/event-manager").default<import("../editor-kit").EditorEventPayloadMap>;
21
+ /** Listen the event when plug is mounted */
22
+ useMounted(func: () => void): void;
23
+ /** Listen the event when plug is unmounted */
24
+ useUnmounted(func: () => void): void;
25
+ /** Use the deps of other plug */
26
+ useDeps<T extends typeof EditorPlug>(plug: T): InstanceType<T> | undefined;
27
+ }
@@ -0,0 +1,29 @@
1
+ import type { CommentData, EditorState } from '../../../types';
2
+ import type PlugKit from './_kit';
3
+ /**
4
+ * Editor 插件
5
+ */
6
+ interface EditorPlug {
7
+ $btn?: HTMLElement;
8
+ $panel?: HTMLElement;
9
+ contentTransformer?(rawContent: string): string;
10
+ editorStateEffectWhen?: EditorState;
11
+ editorStateEffect?(comment: CommentData): () => void;
12
+ }
13
+ declare class EditorPlug {
14
+ protected kit: PlugKit;
15
+ constructor(kit: PlugKit);
16
+ /** Use plug btn will add a btn on the bottom of editor */
17
+ useBtn(html?: string): HTMLElement;
18
+ /** Use plug panel will show the panel when btn is clicked */
19
+ usePanel(html?: string): HTMLElement;
20
+ /** Use the content transformer to handle the content of the last submit by the editor */
21
+ useContentTransformer(func: (raw: string) => string): void;
22
+ /** Listen the event of panel show */
23
+ usePanelShow(func: () => void): void;
24
+ /** Listen the event of panel hide */
25
+ usePanelHide(func: () => void): void;
26
+ /** Use editor state modifier */
27
+ useEditorStateEffect(stateName: EditorState, effectFn: (comment: CommentData) => () => void): void;
28
+ }
29
+ export default EditorPlug;
@@ -0,0 +1,5 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class SamplePlug extends EditorPlug {
4
+ constructor(kit: PlugKit);
5
+ }
@@ -0,0 +1,7 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class Closable extends EditorPlug {
4
+ constructor(kit: PlugKit);
5
+ private open;
6
+ private close;
7
+ }
@@ -1,19 +1,13 @@
1
- import { EmoticonListData } from '../../../types/artalk-data';
2
- import EditorPlug from './editor-plug';
3
- import Editor from '../editor';
4
- export default class EmoticonsPlug extends EditorPlug {
5
- editor: Editor;
6
- static Name: string;
7
- protected $panel: HTMLElement;
8
- emoticons: EmoticonListData;
9
- loadingTask: Promise<void> | null;
10
- $grpWrap: HTMLElement;
11
- $grpSwitcher: HTMLElement;
12
- constructor(editor: Editor);
13
- onPanelShow(): void;
14
- onPanelHide(): void;
15
- isListLoaded: boolean;
16
- isImgLoaded: boolean;
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class Emoticons extends EditorPlug {
4
+ private emoticons;
5
+ private loadingTask;
6
+ private $grpWrap;
7
+ private $grpSwitcher;
8
+ constructor(kit: PlugKit);
9
+ private isListLoaded;
10
+ private isImgLoaded;
17
11
  loadEmoticonsData(): Promise<void>;
18
12
  private handleData;
19
13
  /** 远程加载 */
@@ -0,0 +1,6 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class HeaderEvent extends EditorPlug {
4
+ private get $inputs();
5
+ constructor(kit: PlugKit);
6
+ }
@@ -0,0 +1,6 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class HeaderLink extends EditorPlug {
4
+ constructor(kit: PlugKit);
5
+ private onLinkInputChange;
6
+ }
@@ -0,0 +1,16 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class HeaderUser extends EditorPlug {
4
+ constructor(kit: PlugKit);
5
+ private query;
6
+ /**
7
+ * Fetch user info from server
8
+ */
9
+ private fetchUserInfo;
10
+ /**
11
+ * Function called when user info fetched
12
+ *
13
+ * @param data The response data from server
14
+ */
15
+ private onUserInfoFetched;
16
+ }
@@ -0,0 +1,6 @@
1
+ import type { ArtalkConfig } from '../../../types';
2
+ import type EditorPlug from './_plug';
3
+ /** The default enabled plugs */
4
+ export declare const ENABLED_PLUGS: (typeof EditorPlug)[];
5
+ /** Get the name list of disabled plugs */
6
+ export declare function getDisabledPlugByConf(conf: ArtalkConfig): (typeof EditorPlug)[];
@@ -0,0 +1,6 @@
1
+ import type PlugKit from './_kit';
2
+ import EditorPlug from './_plug';
3
+ export default class LocalStorage extends EditorPlug {
4
+ constructor(kit: PlugKit);
5
+ save(): void;
6
+ }
@@ -0,0 +1,6 @@
1
+ import EditorPlug from './_plug';
2
+ export default class Mover extends EditorPlug {
3
+ private isMoved;
4
+ move(afterEl: HTMLElement): void;
5
+ back(): void;
6
+ }
@@ -0,0 +1,7 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class Preview extends EditorPlug {
4
+ private isPlugPanelShow;
5
+ constructor(kit: PlugKit);
6
+ updateContent(): void;
7
+ }
@@ -0,0 +1,11 @@
1
+ import type PlugKit from './_kit';
2
+ import EditorPlug from './_plug';
3
+ export default class StateEdit extends EditorPlug {
4
+ private comment?;
5
+ constructor(kit: PlugKit);
6
+ private edit;
7
+ private cancelEdit;
8
+ private originalSubmitBtnText;
9
+ private updateSubmitBtnText;
10
+ private restoreSubmitBtnText;
11
+ }
@@ -0,0 +1,8 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class StateReply extends EditorPlug {
4
+ private comment?;
5
+ constructor(kit: PlugKit);
6
+ private setReply;
7
+ private cancelReply;
8
+ }
@@ -0,0 +1,18 @@
1
+ import type { CommentData } from '../../../types';
2
+ import type PlugKit from './_kit';
3
+ export default class SubmitAddPreset {
4
+ private kit;
5
+ constructor(kit: PlugKit);
6
+ reqAdd(): Promise<CommentData>;
7
+ getSubmitAddParams(): {
8
+ content: string;
9
+ nick: string;
10
+ email: string;
11
+ link: string;
12
+ rid: number;
13
+ page_key: string;
14
+ page_title: string;
15
+ site_name: string;
16
+ };
17
+ postSubmitAdd(commentNew: CommentData): void;
18
+ }
@@ -0,0 +1,5 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class SubmitBtn extends EditorPlug {
4
+ constructor(kit: PlugKit);
5
+ }
@@ -0,0 +1,17 @@
1
+ import type { CommentData } from '../../../types';
2
+ import EditorPlug from './_plug';
3
+ import type PlugKit from './_kit';
4
+ interface CustomSubmit {
5
+ activeCond: () => void;
6
+ pre?: () => void;
7
+ req?: () => Promise<CommentData>;
8
+ post?: (nComment: CommentData) => void;
9
+ }
10
+ export default class Submit extends EditorPlug {
11
+ private customs;
12
+ private defaultPreset;
13
+ constructor(kit: PlugKit);
14
+ registerCustom(c: CustomSubmit): void;
15
+ private do;
16
+ }
17
+ export {};
@@ -0,0 +1,8 @@
1
+ import EditorPlug from './_plug';
2
+ import type PlugKit from './_kit';
3
+ export default class Textarea extends EditorPlug {
4
+ constructor(kit: PlugKit);
5
+ private onKeydown;
6
+ private onInput;
7
+ adaptiveHeightByContent(): void;
8
+ }
@@ -0,0 +1,9 @@
1
+ import type PlugKit from './_kit';
2
+ import EditorPlug from './_plug';
3
+ export default class Upload extends EditorPlug {
4
+ private $imgUploadInput?;
5
+ constructor(kit: PlugKit);
6
+ private init;
7
+ private initDragImg;
8
+ uploadImg(file: File): Promise<void>;
9
+ }
@@ -0,0 +1,42 @@
1
+ import type { EditorApi, ArtalkPlugin } from '../../types';
2
+ import EventManager from '../lib/event-manager';
3
+ import EditorPlug from './editor/_plug';
4
+ export interface EditorEventPayloadMap {
5
+ 'mounted': undefined;
6
+ 'unmounted': undefined;
7
+ 'header-input': {
8
+ field: string;
9
+ $input: HTMLInputElement;
10
+ };
11
+ 'header-change': {
12
+ field: string;
13
+ $input: HTMLInputElement;
14
+ };
15
+ 'content-updated': string;
16
+ 'panel-show': EditorPlug;
17
+ 'panel-hide': EditorPlug;
18
+ 'panel-close': undefined;
19
+ 'editor-close': undefined;
20
+ 'editor-open': undefined;
21
+ }
22
+ export declare const EditorKit: ArtalkPlugin;
23
+ export declare class PlugManager {
24
+ editor: EditorApi;
25
+ private plugs;
26
+ private openedPlug;
27
+ private events;
28
+ getPlugs(): EditorPlug[];
29
+ getEvents(): EventManager<EditorEventPayloadMap>;
30
+ private clear;
31
+ constructor(editor: EditorApi);
32
+ private loadPluginUI;
33
+ /** Load the plug btn and plug panel on editor ui */
34
+ private loadPluginItem;
35
+ get<T extends typeof EditorPlug>(plug: T): InstanceType<T> | undefined;
36
+ /** Open the editor plug panel */
37
+ openPlugPanel(plug: EditorPlug): void;
38
+ /** Close the editor plug panel */
39
+ closePlugPanel(): void;
40
+ /** Get the content which is transformed by plugs */
41
+ getTransformedContent(rawContent: string): string;
42
+ }
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../types';
2
+ export declare const DefaultPlugins: ArtalkPlugin[];
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const Copyright: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const Count: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const Dropdown: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const ErrorDialog: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const Fetch: ArtalkPlugin;
@@ -0,0 +1,3 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ /** List scroll to the first comment */
3
+ export declare const GotoFirst: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const Goto: ArtalkPlugin;
@@ -0,0 +1,3 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ declare const ListPlugins: ArtalkPlugin[];
3
+ export { ListPlugins };
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const Loading: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const NoComment: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const ReachBottom: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const SidebarBtn: ArtalkPlugin;
@@ -0,0 +1,3 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ /** 评论时间自动更新 */
3
+ export declare const TimeTicking: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const UnreadBadge: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const Unread: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../../types';
2
+ export declare const WithEditor: ArtalkPlugin;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../types';
2
+ export declare const Markdown: ArtalkPlugin;
@@ -0,0 +1,13 @@
1
+ import type { ArtalkPlugin } from '../../types';
2
+ import Api from '../api';
3
+ export interface CountOptions {
4
+ getApi(): Api;
5
+ pageKey: string;
6
+ countEl: string;
7
+ pvEl: string;
8
+ /** 是否增加当前页面 PV 数 */
9
+ pvAdd?: boolean;
10
+ }
11
+ export declare const PvCountWidget: ArtalkPlugin;
12
+ /** 初始化评论数和 PV 数量展示元素 */
13
+ export declare function initCountWidget(opt: CountOptions): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import type { ArtalkPlugin } from '../../types';
2
+ export declare const VersionCheck: ArtalkPlugin;
@@ -1,35 +1,31 @@
1
- import Context from '../types/context';
2
- import CheckerLauncher from './lib/checker';
3
- import Api from './api';
4
- import Editor from './editor';
1
+ import type { ContextApi } from '../types';
2
+ import CheckerLauncher from './components/checker';
3
+ import Editor from './editor/editor';
5
4
  import SidebarLayer from './layer/sidebar-layer';
6
- import ListLite from './list/list-lite';
5
+ import List from './list/list';
6
+ import { PlugManager } from './plugins/editor-kit';
7
+ import { LayerManager } from './layer/layer-manager';
7
8
  /**
8
9
  * Services
9
10
  *
10
- * @description
11
- * 当函数有返回值时,该值将自动添加到 Context 类作为一个 private 成员的值,
12
- * 这个成员的名称与函数名对应。可在 Context 类中访问该对象(同事类)。
11
+ * @description Call these services by `ctx.get('serviceName')` or `ctx.serviceName`
13
12
  */
14
13
  declare const services: {
15
- i18n(ctx: Context): void;
16
- markdown(): void;
17
- user(ctx: Context): {
18
- ctx?: Context | undefined;
19
- data: import("../types/artalk-config").LocalUser;
20
- setContext(ctx: Context): void;
21
- update(obj?: Partial<import("../types/artalk-config").LocalUser>): void;
14
+ i18n(ctx: ContextApi): void;
15
+ user(ctx: ContextApi): {
16
+ data: import('../types').LocalUser;
17
+ onUserChanged: ((user: import('../types').LocalUser) => void) | null;
18
+ update(obj?: Partial<import('../types').LocalUser>): void;
19
+ setOnUserChanged(fn: ((user: import('../types').LocalUser) => void) | null): void;
22
20
  logout(): void;
23
21
  checkHasBasicUserInfo(): boolean;
24
22
  };
25
- api(ctx: Context): Api;
26
- checkerLauncher(ctx: Context): CheckerLauncher;
27
- editor(ctx: Context): Editor;
28
- list(ctx: Context): ListLite | undefined;
29
- layer(ctx: Context): void;
30
- sidebarLayer(ctx: Context): SidebarLayer;
31
- eventsDefault(ctx: Context): void;
32
- darkMode(ctx: Context): void;
23
+ layerManager(ctx: ContextApi): LayerManager;
24
+ checkerLauncher(ctx: ContextApi): CheckerLauncher;
25
+ editor(ctx: ContextApi): Editor;
26
+ list(ctx: ContextApi): List;
27
+ sidebarLayer(ctx: ContextApi): SidebarLayer;
28
+ editorPlugs(): PlugManager | undefined;
33
29
  };
34
30
  export default services;
35
31
  type TServiceImps = typeof services;
@@ -0,0 +1 @@
1
+ export {};