@shzlx/ui-default 4.58.2

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 (448) hide show
  1. package/README.md +5 -0
  2. package/api.ts +61 -0
  3. package/backendlib/builder.ts +182 -0
  4. package/backendlib/markdown-it-imsize.ts +235 -0
  5. package/backendlib/markdown-it-katex.ts +139 -0
  6. package/backendlib/markdown-it-media.ts +163 -0
  7. package/backendlib/markdown-it-xss.ts +200 -0
  8. package/backendlib/markdown.js +64 -0
  9. package/backendlib/misc.ts +54 -0
  10. package/backendlib/template.ts +279 -0
  11. package/breakpoints.json +5 -0
  12. package/components/DOMAttachedObject.ts +128 -0
  13. package/components/autocomplete/AssignSelectAutoComplete.tsx +22 -0
  14. package/components/autocomplete/CustomSelectAutoComplete.tsx +23 -0
  15. package/components/autocomplete/DomainSelectAutoComplete.tsx +18 -0
  16. package/components/autocomplete/FileSelectAutoComplete.tsx +26 -0
  17. package/components/autocomplete/LanguageSelectAutoComplete.tsx +24 -0
  18. package/components/autocomplete/ProblemSelectAutoComplete.tsx +18 -0
  19. package/components/autocomplete/UserSelectAutoComplete.tsx +23 -0
  20. package/components/autocomplete/components/AssignSelectAutoComplete.tsx +118 -0
  21. package/components/autocomplete/components/DomainSelectAutoComplete.tsx +53 -0
  22. package/components/autocomplete/components/FileSelectAutoComplete.tsx +50 -0
  23. package/components/autocomplete/components/LanguageSelectAutoComplete.tsx +48 -0
  24. package/components/autocomplete/components/ProblemSelectAutoComplete.tsx +54 -0
  25. package/components/autocomplete/components/UserSelectAutoComplete.tsx +54 -0
  26. package/components/autocomplete/domainselectautocomplete.page.styl +6 -0
  27. package/components/autocomplete/index.tsx +110 -0
  28. package/components/autocomplete/problemselectautocomplete.page.styl +6 -0
  29. package/components/autocomplete/userselectautocomplete.page.styl +6 -0
  30. package/components/browser-update.page.ts +27 -0
  31. package/components/calendar/calendar.page.styl +129 -0
  32. package/components/calendar/index.js +367 -0
  33. package/components/clipboard.page.ts +23 -0
  34. package/components/contest/contest.page.styl +119 -0
  35. package/components/contest/contest.page.ts +23 -0
  36. package/components/contest/contest_sidebar.page.styl +21 -0
  37. package/components/contest/problem-contest-bg.png +0 -0
  38. package/components/contest/problem-contest-bg@2x.png +0 -0
  39. package/components/customFont.page.tsx +90 -0
  40. package/components/datepicker/datepicker.page.tsx +94 -0
  41. package/components/dialog/DomDialog.ts +145 -0
  42. package/components/dialog/dialog.page.styl +40 -0
  43. package/components/dialog/index.tsx +285 -0
  44. package/components/discussion/CommentBox.js +103 -0
  45. package/components/discussion/collapsible.page.styl +40 -0
  46. package/components/discussion/collapsible.page.tsx +62 -0
  47. package/components/discussion/comments.page.styl +142 -0
  48. package/components/discussion/comments.page.tsx +192 -0
  49. package/components/discussion/discussion.page.styl +17 -0
  50. package/components/discussion/history.page.tsx +81 -0
  51. package/components/discussion/reaction.page.styl +30 -0
  52. package/components/discussion/reaction.page.tsx +103 -0
  53. package/components/drop/drop.page.styl +40 -0
  54. package/components/dropdown/Dropdown.js +50 -0
  55. package/components/dropdown/dropdown.page.styl +33 -0
  56. package/components/dropdown/dropdown.page.ts +8 -0
  57. package/components/editor/cmeditor.page.ts +23 -0
  58. package/components/editor/cmeditor.styl +10 -0
  59. package/components/editor/index.tsx +293 -0
  60. package/components/editor/mdeditor.ts +60 -0
  61. package/components/editor/textareaHandler.ts +29 -0
  62. package/components/footer/footer.page.styl +94 -0
  63. package/components/footer/footer.page.ts +26 -0
  64. package/components/form/button.page.default.styl +59 -0
  65. package/components/form/button.page.styl +36 -0
  66. package/components/form/checkbox.page.styl +89 -0
  67. package/components/form/form.page.styl +200 -0
  68. package/components/form/form.page.ts +20 -0
  69. package/components/form/multiSelectCheckbox.page.js +46 -0
  70. package/components/form/radiobox.page.styl +62 -0
  71. package/components/form/select.page.styl +29 -0
  72. package/components/form/textbox.page.styl +79 -0
  73. package/components/form/textbox.page.ts +21 -0
  74. package/components/form/var.inc.styl +14 -0
  75. package/components/header/header.page.styl +79 -0
  76. package/components/highlighter/code-example.js +111 -0
  77. package/components/highlighter/highlighter.page.styl +99 -0
  78. package/components/highlighter/highlighter.page.ts +72 -0
  79. package/components/highlighter/meta.js +15 -0
  80. package/components/highlighter/prismjs.js +122 -0
  81. package/components/hint.page.styl +9 -0
  82. package/components/hint.ts +19 -0
  83. package/components/hitokoto/index.page.js +21 -0
  84. package/components/hotkey/hotkey.page.js +83 -0
  85. package/components/katex/katex.page.js +26 -0
  86. package/components/katex/katex.page.styl +2 -0
  87. package/components/languageselect.tsx +94 -0
  88. package/components/loader/loader.page.styl +40 -0
  89. package/components/mantine.page.tsx +39 -0
  90. package/components/marker/Marker.js +192 -0
  91. package/components/marker/MarkerReactive.js +55 -0
  92. package/components/marker/marker.page.js +8 -0
  93. package/components/marker/marker.page.styl +57 -0
  94. package/components/media/media.page.js +46 -0
  95. package/components/menu/menu-heading.page.js +28 -0
  96. package/components/menu/menu.page.js +18 -0
  97. package/components/menu/menu.page.styl +68 -0
  98. package/components/message/index.page.ts +166 -0
  99. package/components/message/worker.ts +110 -0
  100. package/components/messagepad/DialogueListItem.page.styl +28 -0
  101. package/components/messagepad/DialogueListItemComponent.jsx +39 -0
  102. package/components/messagepad/Message.page.styl +64 -0
  103. package/components/messagepad/MessageComponent.jsx +33 -0
  104. package/components/messagepad/MessagePad.page.styl +99 -0
  105. package/components/messagepad/MessagePadDialogueContentContainer.jsx +104 -0
  106. package/components/messagepad/MessagePadDialogueListContainer.jsx +49 -0
  107. package/components/messagepad/MessagePadInputContainer.jsx +100 -0
  108. package/components/messagepad/index.jsx +49 -0
  109. package/components/messagepad/reducers/activeId.ts +36 -0
  110. package/components/messagepad/reducers/dialogues.js +53 -0
  111. package/components/messagepad/reducers/index.ts +14 -0
  112. package/components/messagepad/reducers/inputs.js +43 -0
  113. package/components/messagepad/reducers/isPosting.ts +49 -0
  114. package/components/monaco/index.ts +178 -0
  115. package/components/monaco/languages/markdown.ts +97 -0
  116. package/components/monaco/languages/typescript.ts +45 -0
  117. package/components/monaco/languages/yaml.ts +22 -0
  118. package/components/monaco/loader.ts +96 -0
  119. package/components/monaco/monaco.styl +30 -0
  120. package/components/monaco/nls.js +31 -0
  121. package/components/monaco/schema/problemconfig.ts +123 -0
  122. package/components/navigation/hamburgers.page.styl +87 -0
  123. package/components/navigation/nav-logo-small_dark.png +0 -0
  124. package/components/navigation/navigation.page.js +203 -0
  125. package/components/navigation/navigation.page.styl +211 -0
  126. package/components/notification/index.ts +105 -0
  127. package/components/notification/notification.page.js +14 -0
  128. package/components/notification/notification.page.styl +84 -0
  129. package/components/nprogress.page.styl +50 -0
  130. package/components/omnisearch/index.page.tsx +124 -0
  131. package/components/omnisearch/omnibar.page.styl +138 -0
  132. package/components/pager/pager.page.styl +57 -0
  133. package/components/preview/preview.page.ts +187 -0
  134. package/components/problem/create.page.js +12 -0
  135. package/components/problem/list.page.js +9 -0
  136. package/components/problem/rp.page.styl +4 -0
  137. package/components/problem/tag.page.styl +84 -0
  138. package/components/problemconfig/BasicForm.tsx +92 -0
  139. package/components/problemconfig/ProblemConfigEditor.tsx +170 -0
  140. package/components/problemconfig/ProblemConfigForm.tsx +140 -0
  141. package/components/problemconfig/ProblemConfigTree.tsx +163 -0
  142. package/components/problemconfig/ProblemType.tsx +165 -0
  143. package/components/problemconfig/index.tsx +91 -0
  144. package/components/problemconfig/reducer/config.ts +173 -0
  145. package/components/problemconfig/reducer/index.ts +11 -0
  146. package/components/problemconfig/reducer/testdata.ts +16 -0
  147. package/components/problemconfig/tree/AddTestcase.tsx +137 -0
  148. package/components/problemconfig/tree/SelectionManager.tsx +140 -0
  149. package/components/problemconfig/tree/SubtaskSettings.tsx +180 -0
  150. package/components/problemconfig/tree/Testcase.tsx +98 -0
  151. package/components/profile/backgrounds/1.jpg +0 -0
  152. package/components/profile/backgrounds/10.jpg +0 -0
  153. package/components/profile/backgrounds/11.jpg +0 -0
  154. package/components/profile/backgrounds/12.jpg +0 -0
  155. package/components/profile/backgrounds/13.jpg +0 -0
  156. package/components/profile/backgrounds/14.jpg +0 -0
  157. package/components/profile/backgrounds/15.jpg +0 -0
  158. package/components/profile/backgrounds/16.jpg +0 -0
  159. package/components/profile/backgrounds/17.jpg +0 -0
  160. package/components/profile/backgrounds/18.jpg +0 -0
  161. package/components/profile/backgrounds/19.jpg +0 -0
  162. package/components/profile/backgrounds/2.jpg +0 -0
  163. package/components/profile/backgrounds/20.jpg +0 -0
  164. package/components/profile/backgrounds/21.jpg +0 -0
  165. package/components/profile/backgrounds/3.jpg +0 -0
  166. package/components/profile/backgrounds/4.jpg +0 -0
  167. package/components/profile/backgrounds/5.jpg +0 -0
  168. package/components/profile/backgrounds/6.jpg +0 -0
  169. package/components/profile/backgrounds/7.jpg +0 -0
  170. package/components/profile/backgrounds/8.jpg +0 -0
  171. package/components/profile/backgrounds/9.jpg +0 -0
  172. package/components/profile/backgrounds/gen_thumbnails.sh +7 -0
  173. package/components/profile/backgrounds/thumbnail/1.jpg +0 -0
  174. package/components/profile/backgrounds/thumbnail/10.jpg +0 -0
  175. package/components/profile/backgrounds/thumbnail/11.jpg +0 -0
  176. package/components/profile/backgrounds/thumbnail/12.jpg +0 -0
  177. package/components/profile/backgrounds/thumbnail/13.jpg +0 -0
  178. package/components/profile/backgrounds/thumbnail/14.jpg +0 -0
  179. package/components/profile/backgrounds/thumbnail/15.jpg +0 -0
  180. package/components/profile/backgrounds/thumbnail/16.jpg +0 -0
  181. package/components/profile/backgrounds/thumbnail/17.jpg +0 -0
  182. package/components/profile/backgrounds/thumbnail/18.jpg +0 -0
  183. package/components/profile/backgrounds/thumbnail/19.jpg +0 -0
  184. package/components/profile/backgrounds/thumbnail/2.jpg +0 -0
  185. package/components/profile/backgrounds/thumbnail/20.jpg +0 -0
  186. package/components/profile/backgrounds/thumbnail/21.jpg +0 -0
  187. package/components/profile/backgrounds/thumbnail/3.jpg +0 -0
  188. package/components/profile/backgrounds/thumbnail/4.jpg +0 -0
  189. package/components/profile/backgrounds/thumbnail/5.jpg +0 -0
  190. package/components/profile/backgrounds/thumbnail/6.jpg +0 -0
  191. package/components/profile/backgrounds/thumbnail/7.jpg +0 -0
  192. package/components/profile/backgrounds/thumbnail/8.jpg +0 -0
  193. package/components/profile/backgrounds/thumbnail/9.jpg +0 -0
  194. package/components/profile/profile.page.styl +23 -0
  195. package/components/react/DomComponent.tsx +14 -0
  196. package/components/react/IconComponent.tsx +20 -0
  197. package/components/record/record.page.styl +26 -0
  198. package/components/rotator/index.js +75 -0
  199. package/components/rotator/rotator.page.styl +20 -0
  200. package/components/scratchpad/DataInput.page.styl +17 -0
  201. package/components/scratchpad/DataInputComponent.jsx +45 -0
  202. package/components/scratchpad/Editor.page.styl +13 -0
  203. package/components/scratchpad/Panel.page.styl +18 -0
  204. package/components/scratchpad/PanelButton.page.styl +15 -0
  205. package/components/scratchpad/PanelButtonComponent.jsx +19 -0
  206. package/components/scratchpad/PanelComponent.jsx +25 -0
  207. package/components/scratchpad/ScratchpadEditorContainer.tsx +137 -0
  208. package/components/scratchpad/ScratchpadPretestContainer.jsx +57 -0
  209. package/components/scratchpad/ScratchpadRecordsContainer.jsx +45 -0
  210. package/components/scratchpad/ScratchpadRecordsRowContainer.jsx +83 -0
  211. package/components/scratchpad/ScratchpadSettings.tsx +48 -0
  212. package/components/scratchpad/ScratchpadToolbarContainer.jsx +190 -0
  213. package/components/scratchpad/Tab.page.styl +24 -0
  214. package/components/scratchpad/Toolbar.page.styl +53 -0
  215. package/components/scratchpad/ToolbarComponent.jsx +85 -0
  216. package/components/scratchpad/index.tsx +132 -0
  217. package/components/scratchpad/reducers/editor.ts +24 -0
  218. package/components/scratchpad/reducers/index.ts +17 -0
  219. package/components/scratchpad/reducers/pretest.ts +34 -0
  220. package/components/scratchpad/reducers/records.ts +40 -0
  221. package/components/scratchpad/reducers/state.ts +10 -0
  222. package/components/scratchpad/reducers/ui.ts +152 -0
  223. package/components/scratchpad/scratchpad.page.styl +55 -0
  224. package/components/scratchpad/var.inc.styl +2 -0
  225. package/components/selectUser.tsx +16 -0
  226. package/components/signin/signInDialog.page.js +84 -0
  227. package/components/signin/signin_dialog.page.styl +57 -0
  228. package/components/smoothscroll/smoothscroll.page.js +44 -0
  229. package/components/socket/index.ts +68 -0
  230. package/components/star/star.page.styl +20 -0
  231. package/components/star/star.page.ts +58 -0
  232. package/components/sticky/sticky.page.js +66 -0
  233. package/components/tab/Tab.js +168 -0
  234. package/components/tab/tab.page.js +9 -0
  235. package/components/tab/tab.page.styl +105 -0
  236. package/components/tab/var.inc.styl +3 -0
  237. package/components/table/StyledTable.js +51 -0
  238. package/components/table/styledTable.page.js +8 -0
  239. package/components/table/table.page.styl +73 -0
  240. package/components/time/time.page.js +47 -0
  241. package/components/tooltip/Tooltip.js +49 -0
  242. package/components/tooltip/tooltip.page.js +29 -0
  243. package/components/tooltip/tooltip.page.styl +69 -0
  244. package/components/training/training.page.styl +25 -0
  245. package/components/upload.tsx +103 -0
  246. package/components/vote/vote.page.js +43 -0
  247. package/components/zipDownloader/index.ts +157 -0
  248. package/constant/domain.js +21 -0
  249. package/constant/message.js +5 -0
  250. package/constant/record.js +52 -0
  251. package/context.ts +11 -0
  252. package/entry.js +72 -0
  253. package/hydro.ts +112 -0
  254. package/index.ts +226 -0
  255. package/lazyload.ts +69 -0
  256. package/locales/en.yaml +71 -0
  257. package/locales/ko.yaml +823 -0
  258. package/locales/zh.yaml +1137 -0
  259. package/locales/zh_TW.yaml +1133 -0
  260. package/misc/Page.ts +49 -0
  261. package/misc/PageLoader.js +31 -0
  262. package/misc/float.styl +14 -0
  263. package/misc/grid.styl +1048 -0
  264. package/misc/immersive-background.jpg +0 -0
  265. package/misc/immersive-background@2x.jpg +0 -0
  266. package/misc/immersive.styl +23 -0
  267. package/misc/nothing.styl +13 -0
  268. package/misc/puzzled_twd2.svg +1 -0
  269. package/misc/section.styl +105 -0
  270. package/misc/slideout.styl +46 -0
  271. package/misc/structure.styl +158 -0
  272. package/misc/textalign.styl +11 -0
  273. package/misc/typography.styl +485 -0
  274. package/package.json +148 -0
  275. package/polyfill.ts +90 -0
  276. package/postcss.config.js +15 -0
  277. package/sentry.ts +26 -0
  278. package/service-worker.ts +265 -0
  279. package/setting.yaml +98 -0
  280. package/templates/about.html +14 -0
  281. package/templates/bsod.html +35 -0
  282. package/templates/components/comments_discussion.html +165 -0
  283. package/templates/components/comments_solution.html +171 -0
  284. package/templates/components/contest.html +12 -0
  285. package/templates/components/form.html +214 -0
  286. package/templates/components/home.html +20 -0
  287. package/templates/components/homework.html +8 -0
  288. package/templates/components/md_hint.html +39 -0
  289. package/templates/components/noscript_note.html +15 -0
  290. package/templates/components/nothing.html +6 -0
  291. package/templates/components/paginator.html +25 -0
  292. package/templates/components/problem.html +33 -0
  293. package/templates/components/record.html +21 -0
  294. package/templates/components/sidemenu.html +11 -0
  295. package/templates/components/user.html +49 -0
  296. package/templates/contest_balloon.html +48 -0
  297. package/templates/contest_clarification.html +103 -0
  298. package/templates/contest_detail.html +56 -0
  299. package/templates/contest_edit.html +259 -0
  300. package/templates/contest_main.html +146 -0
  301. package/templates/contest_manage.html +80 -0
  302. package/templates/contest_print.html +27 -0
  303. package/templates/contest_problemlist.html +231 -0
  304. package/templates/contest_scoreboard.html +46 -0
  305. package/templates/contest_scoreboard_download_html.html +71 -0
  306. package/templates/contest_user.html +47 -0
  307. package/templates/discussion_create.html +28 -0
  308. package/templates/discussion_detail.html +149 -0
  309. package/templates/discussion_edit.html +30 -0
  310. package/templates/discussion_main_or_node.html +47 -0
  311. package/templates/domain_base.html +26 -0
  312. package/templates/domain_create.html +55 -0
  313. package/templates/domain_dashboard.html +45 -0
  314. package/templates/domain_edit.html +6 -0
  315. package/templates/domain_group.html +51 -0
  316. package/templates/domain_join.html +47 -0
  317. package/templates/domain_join_applications.html +67 -0
  318. package/templates/domain_permission.html +66 -0
  319. package/templates/domain_role.html +71 -0
  320. package/templates/domain_user.html +86 -0
  321. package/templates/domain_user_raw.html +5 -0
  322. package/templates/error.html +25 -0
  323. package/templates/home_domain.html +64 -0
  324. package/templates/home_files.html +16 -0
  325. package/templates/home_messages.html +9 -0
  326. package/templates/home_security.html +224 -0
  327. package/templates/home_settings.html +21 -0
  328. package/templates/homework_detail.html +82 -0
  329. package/templates/homework_edit.html +138 -0
  330. package/templates/homework_files.html +24 -0
  331. package/templates/homework_main.html +76 -0
  332. package/templates/layout/basic.html +27 -0
  333. package/templates/layout/home_base.html +13 -0
  334. package/templates/layout/html5.html +74 -0
  335. package/templates/layout/immersive.html +22 -0
  336. package/templates/layout/mail.html +31 -0
  337. package/templates/layout/simple.html +4 -0
  338. package/templates/layout/wiki_base.html +16 -0
  339. package/templates/main.html +22 -0
  340. package/templates/manage_base.html +24 -0
  341. package/templates/manage_config.html +6 -0
  342. package/templates/manage_dashboard.html +27 -0
  343. package/templates/manage_script.html +56 -0
  344. package/templates/manage_setting.html +6 -0
  345. package/templates/manage_user_import.html +23 -0
  346. package/templates/manage_user_priv.html +76 -0
  347. package/templates/partials/category.html +19 -0
  348. package/templates/partials/contest.html +3 -0
  349. package/templates/partials/contest_balloon.html +37 -0
  350. package/templates/partials/contest_sidebar.html +150 -0
  351. package/templates/partials/contest_sidebar_management.html +56 -0
  352. package/templates/partials/contest_user.html +19 -0
  353. package/templates/partials/discussion_edit_form.html +45 -0
  354. package/templates/partials/discussion_list.html +50 -0
  355. package/templates/partials/discussion_nodes_widget.html +17 -0
  356. package/templates/partials/files.html +49 -0
  357. package/templates/partials/footer.html +108 -0
  358. package/templates/partials/hamburger.html +7 -0
  359. package/templates/partials/header_mobile.html +12 -0
  360. package/templates/partials/homepage/bulletin.html +7 -0
  361. package/templates/partials/homepage/contest.html +48 -0
  362. package/templates/partials/homepage/discussion.html +13 -0
  363. package/templates/partials/homepage/discussion_nodes.html +4 -0
  364. package/templates/partials/homepage/error.html +5 -0
  365. package/templates/partials/homepage/hitokoto.html +6 -0
  366. package/templates/partials/homepage/homework.html +45 -0
  367. package/templates/partials/homepage/problem_search.html +13 -0
  368. package/templates/partials/homepage/ranking.html +39 -0
  369. package/templates/partials/homepage/recent_problems.html +17 -0
  370. package/templates/partials/homepage/starred_problems.html +15 -0
  371. package/templates/partials/homepage/suggestion.html +34 -0
  372. package/templates/partials/homepage/training.html +50 -0
  373. package/templates/partials/homework.html +3 -0
  374. package/templates/partials/homework_default_penalty_rules.yaml +6 -0
  375. package/templates/partials/homework_sidebar.html +93 -0
  376. package/templates/partials/login_dialog.html +56 -0
  377. package/templates/partials/manage_user_priv.html +78 -0
  378. package/templates/partials/nav.html +138 -0
  379. package/templates/partials/problem-sidebar-information.html +25 -0
  380. package/templates/partials/problem.html +2 -0
  381. package/templates/partials/problem_category_dialog.html +43 -0
  382. package/templates/partials/problem_default.md +26 -0
  383. package/templates/partials/problem_description.html +33 -0
  384. package/templates/partials/problem_files.html +63 -0
  385. package/templates/partials/problem_list.html +68 -0
  386. package/templates/partials/problem_lucky.html +10 -0
  387. package/templates/partials/problem_sidebar.html +14 -0
  388. package/templates/partials/problem_sidebar_contest.html +43 -0
  389. package/templates/partials/problem_sidebar_homework.html +42 -0
  390. package/templates/partials/problem_sidebar_normal.html +152 -0
  391. package/templates/partials/problem_stat.html +3 -0
  392. package/templates/partials/scoreboard.html +79 -0
  393. package/templates/partials/setting.html +92 -0
  394. package/templates/partials/training_default.json +14 -0
  395. package/templates/partials/training_detail.html +153 -0
  396. package/templates/partials/user.html +2 -0
  397. package/templates/partials/user_detail/activity.html +18 -0
  398. package/templates/partials/user_detail/solution.html +29 -0
  399. package/templates/problem_config.html +39 -0
  400. package/templates/problem_detail.html +150 -0
  401. package/templates/problem_edit.html +111 -0
  402. package/templates/problem_files.html +91 -0
  403. package/templates/problem_hack.html +41 -0
  404. package/templates/problem_import.html +58 -0
  405. package/templates/problem_main.html +100 -0
  406. package/templates/problem_solution.html +55 -0
  407. package/templates/problem_statistics.html +96 -0
  408. package/templates/problem_submit.html +40 -0
  409. package/templates/ranking.html +81 -0
  410. package/templates/record_detail.html +134 -0
  411. package/templates/record_detail_status.html +93 -0
  412. package/templates/record_detail_summary.html +19 -0
  413. package/templates/record_main.html +142 -0
  414. package/templates/record_main_tr.html +35 -0
  415. package/templates/status.html +75 -0
  416. package/templates/training_detail.html +120 -0
  417. package/templates/training_edit.html +68 -0
  418. package/templates/training_files.html +64 -0
  419. package/templates/training_main.html +107 -0
  420. package/templates/user_changemail_mail.html +6 -0
  421. package/templates/user_changemail_mail_sent.html +9 -0
  422. package/templates/user_delete_pending.html +10 -0
  423. package/templates/user_detail.html +181 -0
  424. package/templates/user_login.html +46 -0
  425. package/templates/user_logout.html +13 -0
  426. package/templates/user_lostpass.html +27 -0
  427. package/templates/user_lostpass_mail.html +6 -0
  428. package/templates/user_lostpass_mail_sent.html +9 -0
  429. package/templates/user_lostpass_with_code.html +29 -0
  430. package/templates/user_register.html +22 -0
  431. package/templates/user_register_mail.html +6 -0
  432. package/templates/user_register_mail_sent.html +9 -0
  433. package/templates/user_register_with_code.html +35 -0
  434. package/templates/user_sudo.html +54 -0
  435. package/templates/user_sudo_redirect.html +18 -0
  436. package/templates/wiki_help.html +189 -0
  437. package/theme/bp6-compat.css +48 -0
  438. package/theme/dark.styl +397 -0
  439. package/theme/default.js +33 -0
  440. package/typed.d.ts +20 -0
  441. package/utils/base.ts +209 -0
  442. package/utils/base64.js +104 -0
  443. package/utils/db.ts +32 -0
  444. package/utils/index.ts +73 -0
  445. package/utils/loadReactRedux.ts +32 -0
  446. package/utils/mediaQuery.ts +13 -0
  447. package/utils/pjax.js +148 -0
  448. package/utils/slide.ts +57 -0
@@ -0,0 +1,36 @@
1
+ @import './var.inc.styl'
2
+
3
+ .button
4
+ &:not(.codicon)
5
+ font-size: rem($font-size-secondary)
6
+ line-height: rem($form-control-height - 2)
7
+ height: rem($form-control-height)
8
+ padding: rem(0 25px)
9
+ display: inline-block
10
+ outline: 0
11
+ margin: 0 0 1rem
12
+ cursor: pointer
13
+ user-select: none
14
+
15
+ &:hover, &:focus
16
+ text-decoration: none
17
+ &.expanded
18
+ padding-left: 0
19
+ padding-right: 0
20
+ text-align: center
21
+ width: 100%
22
+
23
+ &.compact
24
+ margin-bottom: 0
25
+ height: rem($compact-control-height)
26
+ line-height: rem($compact-control-height - 2)
27
+ padding: rem(0 15px)
28
+
29
+ .button.inverse
30
+ line-height: rem($form-control-height - 4)
31
+ border: 2px solid #FFF
32
+ background: none
33
+
34
+ &, &:visited
35
+ &, .typo &
36
+ color: #FFF
@@ -0,0 +1,89 @@
1
+ @import './var.inc.styl'
2
+
3
+ $checkbox-size = 16px
4
+
5
+ .checkbox
6
+ font-size: rem($font-size-small) !important
7
+ line-height: 1.4 !important
8
+ border: 0
9
+ display: inline-block !important
10
+ vertical-align: middle
11
+ cursor: pointer
12
+ user-select: none
13
+ color: lighten($text-1-color, 30%) !important
14
+ margin: $input-margin !important
15
+
16
+ &:hover
17
+ color: $text-1-color
18
+
19
+ input
20
+ appearance: none
21
+ border: 1px solid #D0D0D0
22
+ border-radius: 1px
23
+ vertical-align: top
24
+ width: rem($checkbox-size)
25
+ height: rem($checkbox-size)
26
+ margin: ((@line-height * @font-size - rem($checkbox-size)) / 2) 0 !important
27
+ margin-right: rem(5px) !important
28
+ position: relative
29
+ outline: 0
30
+ transition: background .1s linear
31
+ background: none
32
+ cursor: pointer
33
+
34
+ &:after
35
+ content: ''
36
+ width: rem(10px)
37
+ height: rem(6px)
38
+ position: absolute
39
+ top: rem(3px)
40
+ left: rem(2px)
41
+ border: 2px solid #FFF
42
+ border-top: none
43
+ border-right: none
44
+ background: transparent
45
+ transform: rotate(-65deg) scale(0.5)
46
+ opacity: 0
47
+
48
+ &:enabled:hover
49
+ border-color: rgba($secondary-color, 0.7)
50
+
51
+ &:checked
52
+ background: $secondary-color
53
+ border-color: $secondary-color
54
+
55
+ &:checked:after
56
+ opacity: 1
57
+ transform: rotate(-45deg)
58
+
59
+ &:disabled
60
+ opacity: 0.5
61
+
62
+ &.compact
63
+ margin-bottom: 0
64
+ line-height: 1.2
65
+ padding: ((rem($compact-control-height) - (@line-height * @font-size)) / 2) 0
66
+ margin: 0 !important
67
+
68
+ input
69
+ margin: ((@line-height * @font-size - rem($checkbox-size)) / 2) 0
70
+ margin-right: rem(5px)
71
+
72
+ label.checkbox.inverse
73
+ color: $immersive-text-color !important
74
+
75
+ input
76
+ color: $immersive-text-color
77
+ border-color: rgba($immersive-text-color, 0.4)
78
+
79
+ &:disabled, &:read-only
80
+ color: rgba($immersive-text-color, 0.6)
81
+
82
+ &:enabled:read-write:hover
83
+ border-color: $immersive-text-color
84
+
85
+ &:enabled:read-write:focus
86
+ border-color: $immersive-primary-color
87
+
88
+ &.focus
89
+ color: $immersive-primary-color
@@ -0,0 +1,200 @@
1
+ // Extracted from Foundation framework
2
+
3
+ /**
4
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
5
+ * styling of `select`, unless a `border` property is set.
6
+ */
7
+ /**
8
+ * 1. Correct color not being inherited.
9
+ * Known issue: affects color of disabled elements.
10
+ * 2. Correct font properties not being inherited.
11
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
12
+ */
13
+ button,
14
+ input,
15
+ optgroup,
16
+ select,
17
+ textarea
18
+ color: inherit
19
+ /* 1 */
20
+ font: inherit
21
+ /* 2 */
22
+ margin: 0
23
+ /* 3 */
24
+
25
+ /**
26
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
27
+ */
28
+ button
29
+ overflow: visible
30
+
31
+ /**
32
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
33
+ * All other form control elements do not inherit `text-transform` values.
34
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
35
+ * Correct `select` style inheritance in Firefox.
36
+ */
37
+ button,
38
+ select
39
+ text-transform: none
40
+
41
+ /**
42
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
43
+ * and `video` controls.
44
+ * 2. Correct inability to style clickable `input` types in iOS.
45
+ * 3. Improve usability and consistency of cursor style between image-type
46
+ * `input` and others.
47
+ */
48
+ button,
49
+ html input[type="button"],
50
+ input[type="reset"],
51
+ input[type="submit"]
52
+ appearance: button
53
+ /* 2 */
54
+ cursor: pointer
55
+ /* 3 */
56
+
57
+ /**
58
+ * Re-set default cursor for disabled elements.
59
+ */
60
+ button[disabled],
61
+ html input[disabled]
62
+ cursor: not-allowed
63
+
64
+ /**
65
+ * Remove inner padding and border in Firefox 4+.
66
+ */
67
+ button::-moz-focus-inner,
68
+ input::-moz-focus-inner
69
+ border: 0
70
+ padding: 0
71
+
72
+ /**
73
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
74
+ * the UA stylesheet.
75
+ */
76
+ input
77
+ line-height: normal
78
+
79
+ /**
80
+ * It's recommended that you don't attempt to style these elements.
81
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
82
+ *
83
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
84
+ * 2. Remove excess padding in IE 8/9/10.
85
+ */
86
+ input[type="checkbox"],
87
+ input[type="radio"]
88
+ box-sizing: border-box
89
+ /* 1 */
90
+ padding: 0
91
+ /* 2 */
92
+
93
+ /**
94
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
95
+ * `font-size` values of the `input`, it causes the cursor style of the
96
+ * decrement button to change from `default` to `text`.
97
+ */
98
+ input[type="number"]::-webkit-inner-spin-button,
99
+ input[type="number"]::-webkit-outer-spin-button
100
+ height: auto
101
+
102
+ /**
103
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
104
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
105
+ */
106
+ input[type="search"]
107
+ appearance: textfield
108
+ /* 1 */
109
+ box-sizing: content-box
110
+ /* 2 */
111
+
112
+ /**
113
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
114
+ * Safari (but not Chrome) clips the cancel button when the search input has
115
+ * padding (and `textfield` appearance).
116
+ */
117
+ input[type="search"]::-webkit-search-cancel-button,
118
+ input[type="search"]::-webkit-search-decoration
119
+ -webkit-appearance: none
120
+
121
+ /**
122
+ * Define consistent border, margin, and padding.
123
+ * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
124
+ */
125
+ /* fieldset
126
+ border: 1px solid #c0c0c0
127
+ margin: 0 2px
128
+ padding: 0.35em 0.625em 0.75em
129
+ */
130
+ /**
131
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
132
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
133
+ */
134
+ legend
135
+ border: 0
136
+ /* 1 */
137
+ padding: 0
138
+ /* 2 */
139
+
140
+ /**
141
+ * Remove default vertical scrollbar in IE 8/9/10/11.
142
+ */
143
+ textarea
144
+ overflow: auto
145
+
146
+ /**
147
+ * Don't inherit the `font-weight` (applied by a rule above).
148
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
149
+ */
150
+ optgroup
151
+ font-weight: bold
152
+
153
+ .form--inline
154
+ display: inline
155
+
156
+ textarea
157
+ height: auto
158
+ border-radius: 0px
159
+ resize: vertical
160
+
161
+ select
162
+ width: 100%
163
+ border-radius: 0px
164
+
165
+ button
166
+ appearance: none
167
+ background: transparent
168
+ padding: 0
169
+ border: 0
170
+ border-radius: 0px
171
+ line-height: 1
172
+
173
+ [data-whatinput='mouse'] button
174
+ outline: 0
175
+
176
+ label
177
+ &:not(.quick-input-list-label)
178
+ display: block
179
+ margin: 0
180
+ font-size: rem($font-size-secondary)
181
+ line-height: 1.8
182
+ color: $label-color
183
+
184
+ input, textarea, select
185
+ display: block
186
+
187
+ .help-text
188
+ margin-top: -0.5rem
189
+ margin-bottom: 1rem
190
+ font-size: rem($font-size-small)
191
+ color: $help-text-color
192
+
193
+ .form__item
194
+ transition: opacity .1s linear
195
+
196
+ &.is--disabled
197
+ opacity: 0.3
198
+
199
+ :disabled
200
+ opacity: 1
@@ -0,0 +1,20 @@
1
+ import $ from 'jquery';
2
+ import { AutoloadPage } from 'vj/misc/Page';
3
+ import { delay } from 'vj/utils';
4
+
5
+ const formPage = new AutoloadPage('formPage', () => {
6
+ $(document).on('vjFormDisableUpdate', 'input, select, textarea', (ev) => {
7
+ const $input = $(ev.currentTarget);
8
+ const $formItem = $input.closest('.form__item');
9
+ $formItem[$input.prop('disabled') ? 'addClass' : 'removeClass']('is--disabled');
10
+ });
11
+
12
+ const submitting = {};
13
+ $(document).on('click', '[type="submit"]', (ev) => {
14
+ if (submitting[ev.currentTarget]) ev.preventDefault();
15
+ submitting[ev.currentTarget] = true;
16
+ delay(5000).then(() => { submitting[ev.currentTarget] = false; });
17
+ });
18
+ });
19
+
20
+ export default formPage;
@@ -0,0 +1,46 @@
1
+ import $ from 'jquery';
2
+ import { AutoloadPage } from 'vj/misc/Page';
3
+
4
+ const lastSelectionByGroup = {};
5
+
6
+ function isInGroup(group) {
7
+ return (idx, element) => element.getAttribute('data-checkbox-group') === group;
8
+ }
9
+
10
+ function onRangeRoleCheckboxClick(ev) {
11
+ const $current = $(ev.currentTarget);
12
+ const targetGroup = $current.attr('data-checkbox-group');
13
+ const $targets = $('[type="checkbox"]')
14
+ .filter(isInGroup(targetGroup))
15
+ .filter(':visible')
16
+ .filter(':not(:disabled)');
17
+ if (ev.shiftKey && lastSelectionByGroup[targetGroup]) {
18
+ const destCheck = lastSelectionByGroup[targetGroup].prop('checked');
19
+ const from = $targets.index(lastSelectionByGroup[targetGroup]);
20
+ const to = $targets.index($current);
21
+ const start = Math.min(from, to);
22
+ const end = Math.max(from, to) + 1;
23
+ $targets
24
+ .slice(start, end)
25
+ .prop('checked', destCheck);
26
+ }
27
+ lastSelectionByGroup[targetGroup] = $current;
28
+ }
29
+
30
+ function onToggleRoleCheckboxClick(ev) {
31
+ const $current = $(ev.currentTarget);
32
+ const targetGroup = $current.attr('data-checkbox-toggle');
33
+ const $targets = $('[type="checkbox"]')
34
+ .filter(isInGroup(targetGroup))
35
+ .filter(':visible')
36
+ .filter(':not(:disabled)');
37
+ const destCheck = $current.prop('checked');
38
+ $targets.prop('checked', destCheck);
39
+ }
40
+
41
+ const multiSelectCheckboxPage = new AutoloadPage('multiSelectCheckboxPage', () => {
42
+ $(document).on('click', '[data-checkbox-range]', onRangeRoleCheckboxClick);
43
+ $(document).on('click', '[data-checkbox-toggle]', onToggleRoleCheckboxClick);
44
+ });
45
+
46
+ export default multiSelectCheckboxPage;
@@ -0,0 +1,62 @@
1
+ @import './var.inc.styl'
2
+
3
+ $radiobox-size = 16px
4
+
5
+ .radiobox
6
+ display: block
7
+ font-size: rem($font-size-secondary)
8
+ line-height: 1.4
9
+ border: 0
10
+ cursor: pointer
11
+ user-select: none
12
+ color: lighten($text-1-color, 30%)
13
+ margin: $input-multi-line-margin
14
+
15
+ &:hover
16
+ color: $text-1-color
17
+
18
+ input
19
+ display: inline-block
20
+
21
+ .radiobox-container
22
+ margin: $input-margin
23
+
24
+ // Image Radio Box
25
+
26
+ .radiobox.with-image
27
+ margin: $input-image-radio-margin
28
+
29
+ .radiobox__image-container
30
+ cursor: pointer
31
+ border: 2px solid #DDD
32
+ transition: border-color .1s linear, opacity .1s linear
33
+ padding: 1px
34
+ overflow: hidden
35
+ position: relative
36
+ opacity: 0.7
37
+
38
+ &:hover
39
+ border: 2px solid $primary-color
40
+ opacity: 1
41
+
42
+ &:after
43
+ position: absolute
44
+ width: rem(20px)
45
+ height: rem(20px)
46
+ right: rem(-10px)
47
+ top: rem(-10px)
48
+ transform: translateX(10px) translateY(-10px) rotate(45deg)
49
+ background: $highlight-color
50
+ content: ''
51
+ transition: transform .1s ease-out-cubic
52
+
53
+ input
54
+ visibility: hidden
55
+ position: absolute
56
+
57
+ &:checked + .radiobox__image-container
58
+ border: 2px solid $highlight-color
59
+ opacity: 1
60
+
61
+ &:after
62
+ transform: rotate(45deg)
@@ -0,0 +1,29 @@
1
+ @import './var.inc.styl'
2
+
3
+ .select
4
+ form-styles()
5
+ padding-right: 1.1rem
6
+ background-color: $input-background-color
7
+ background-image: url('~vj/misc/icons/expand_more.svg')
8
+ background-size: 16px 16px
9
+ background-position: right -1rem center
10
+ background-origin: content-box
11
+ background-repeat: no-repeat
12
+ outline: $input-outline
13
+ transition: outline-color .2s, border-color .2s
14
+ transition-timing-function: ease-out-cubic
15
+
16
+ &:focus
17
+ border-color: $input-focus-border-color
18
+ outline: $input-focus-outline
19
+ outline-offset: 0
20
+
21
+ &:disabled
22
+ opacity: 0.5
23
+
24
+ .select-container.compact .select, .select.compact
25
+ margin-bottom: 0
26
+ height: rem($compact-control-height)
27
+ line-height: rem($compact-control-height - 2)
28
+ padding-top: 0
29
+ padding-bottom: 0
@@ -0,0 +1,79 @@
1
+ @import './var.inc.styl'
2
+
3
+ // Normal Textbox
4
+ input.textbox, textarea.textbox, span.textbox
5
+ form-styles()
6
+ background-color: $input-background-color
7
+ outline: $input-outline
8
+ transition: outline-color .2s, border-color .2s
9
+ transition-timing-function: ease-out-cubic
10
+
11
+ &:focus
12
+ border-color: $input-focus-border-color
13
+ outline: $input-focus-outline
14
+ outline-offset: 0
15
+
16
+ // Overwrite, for IE compatibility
17
+ &:read-only
18
+ outline: 0
19
+
20
+ &:disabled
21
+ opacity: 0.5
22
+
23
+ textarea.textbox
24
+ height: rem(200px)
25
+
26
+ div.textbox
27
+ min-height: rem(200px)
28
+ margin-bottom: 1rem
29
+
30
+ .data-table
31
+ input.textbox, textarea.textbox, span.textbox
32
+ margin-bottom: 0
33
+
34
+ div.autocomplete-container
35
+ margin-bottom: 0 !important
36
+
37
+ // Material Textbox
38
+ label.textbox.material
39
+ input
40
+ form-styles()
41
+ border: 0
42
+ background: none
43
+ outline: 0
44
+ padding-left: 0
45
+ padding-right: 0
46
+ color: $text-1-color
47
+ border-bottom: 2px solid rgba($text-1-color, 0.4)
48
+ transition: border-color .2s ease-out-cubic
49
+
50
+ &:disabled, &:read-only
51
+ color: rgba($text-1-color, 0.6)
52
+
53
+ &:enabled:read-write:hover
54
+ border-color: rgba($text-1-color, 0.8)
55
+
56
+ &:enabled:read-write:focus
57
+ border-color: $input-focus-border-color
58
+
59
+ &.focus
60
+ color: $input-focus-border-color
61
+
62
+ label.textbox.material.inverse
63
+ color: $immersive-text-color
64
+
65
+ input
66
+ color: $immersive-text-color
67
+ border-color: rgba($immersive-text-color, 0.4)
68
+
69
+ &:disabled, &:read-only
70
+ color: rgba($immersive-text-color, 0.6)
71
+
72
+ &:enabled:read-write:hover
73
+ border-color: $immersive-text-color
74
+
75
+ &:enabled:read-write:focus
76
+ border-color: $immersive-primary-color
77
+
78
+ &.focus
79
+ color: $immersive-primary-color
@@ -0,0 +1,21 @@
1
+ import $ from 'jquery';
2
+ import { AutoloadPage } from 'vj/misc/Page';
3
+
4
+ const textboxPage = new AutoloadPage('textboxPage', () => {
5
+ $(document).on('focusin', '.textbox.material input', (ev) => {
6
+ $(ev.currentTarget).parent().addClass('focus');
7
+ });
8
+
9
+ $(document).on('focusout', '.textbox.material input', (ev) => {
10
+ $(ev.currentTarget).parent().removeClass('focus');
11
+ });
12
+
13
+ const $focusElement = $(document.activeElement);
14
+ if ($focusElement.prop('tagName') === 'INPUT'
15
+ && $focusElement.parent().is('.textbox.material')
16
+ ) {
17
+ $focusElement.focusin();
18
+ }
19
+ });
20
+
21
+ export default textboxPage;
@@ -0,0 +1,14 @@
1
+ form-styles()
2
+ appearance: none
3
+ display: block
4
+ width: 100%
5
+ font-size: rem($font-size-secondary)
6
+ margin: $input-margin
7
+ height: rem($form-control-height)
8
+ line-height: 1.2
9
+ padding: rem(5px)
10
+ border: $input-border
11
+
12
+ &.inline
13
+ display: inline-block
14
+ width: auto
@@ -0,0 +1,79 @@
1
+ $header-gap-mini = ($header-bg-height-mini - $nav-item-height - $header-logo-height) / 2
2
+ $header-gap-mini-domain = ($header-bg-height-mini - $nav-item-height - $header-logo-domain-lh - $header-logo-system-lh) / 2
3
+
4
+ .global-notification
5
+ padding: rem(20px 0)
6
+ background: #FFF
7
+
8
+ &.warning
9
+ background: #ffe1a6
10
+
11
+ .header__logo
12
+ display: block
13
+ width: rem($header-logo-width-real)
14
+ height: rem($header-logo-height + $header-gap-mini + $nav-item-height)
15
+ background: no-repeat
16
+ background-size: rem($header-logo-width-real) rem($header-logo-height-real)
17
+ background-position: 0 rem($header-gap-mini + $nav-item-height - ($header-logo-height-real - $header-logo-height))
18
+ transition: transform .5s, opacity .5s
19
+ transition-timing-function: ease-out-cubic
20
+ transform-origin: 0 0
21
+ opacity: 1
22
+ +mobile()
23
+ display: inline-block
24
+
25
+ .header--collapsed
26
+
27
+ #panel
28
+ padding-top: $header-bg-height
29
+
30
+ .header__logo
31
+ transform: scale(0)
32
+ opacity: 0
33
+
34
+ .location
35
+ position: absolute
36
+ left: 0
37
+ bottom: 0
38
+ width: 100%
39
+ height: rem($header-layer-height)
40
+ background: rgba(#000, 0.5)
41
+
42
+ +mobile()
43
+ position: relative
44
+ height: auto
45
+
46
+ .header__hamburger
47
+ display: none
48
+
49
+ +mobile()
50
+ display: block
51
+
52
+ .header--mobile
53
+ display: none
54
+
55
+ .header--mobile, .location
56
+ +mobile()
57
+ display: block
58
+ background: #56758f
59
+ color: #FFF
60
+ line-height: rem($nav-item-height)
61
+ font-size: rem($font-size-title)
62
+ padding: rem(10px 0)
63
+
64
+ a, a:visited, a:hover
65
+ color: #FFF
66
+
67
+ .header--mobile__domain
68
+ display: block
69
+ height: $nav-logo-height-mobile // no rem
70
+ margin-top: rem(10px)
71
+
72
+ img
73
+ height: 100%
74
+
75
+ .header__hamburger
76
+ background: none
77
+ border: 0
78
+ border-radius: 0
79
+ outline: 0