From f6154dc0af1a0d65819e87240f4385f9573095cb Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 30 Jan 2020 04:37:25 +0900 Subject: v12 (#5712) Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com> Co-authored-by: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com> --- src/client/components/acct.vue | 29 + src/client/components/autocomplete.vue | 443 ++++++++++++ src/client/components/avatar.vue | 116 ++++ src/client/components/avatars.vue | 27 + src/client/components/code-core.vue | 34 + src/client/components/code.vue | 26 + src/client/components/cw-button.vue | 73 ++ src/client/components/date-separated-list.vue | 94 +++ src/client/components/dialog.vue | 320 +++++++++ src/client/components/drive-file-thumbnail.vue | 188 ++++++ src/client/components/drive-window.vue | 53 ++ src/client/components/drive.file.vue | 368 ++++++++++ src/client/components/drive.folder.vue | 281 ++++++++ src/client/components/drive.nav-folder.vue | 139 ++++ src/client/components/drive.vue | 664 ++++++++++++++++++ src/client/components/ellipsis.vue | 34 + src/client/components/emoji-picker.vue | 268 ++++++++ src/client/components/emoji.vue | 132 ++++ src/client/components/error.vue | 42 ++ src/client/components/file-type-icon.vue | 29 + src/client/components/follow-button.vue | 162 +++++ src/client/components/formula-core.vue | 33 + src/client/components/formula.vue | 22 + src/client/components/google.vue | 71 ++ src/client/components/index.ts | 25 + src/client/components/loading.vue | 30 + src/client/components/media-banner.vue | 109 +++ src/client/components/media-image.vue | 113 ++++ src/client/components/media-list.vue | 130 ++++ src/client/components/media-video.vue | 79 +++ src/client/components/mention.vue | 82 +++ src/client/components/menu.vue | 165 +++++ src/client/components/mfm.ts | 299 +++++++++ .../components/misskey-flavored-markdown.vue | 35 + src/client/components/modal.vue | 84 +++ src/client/components/note-header.vue | 99 +++ src/client/components/note-menu.vue | 199 ++++++ src/client/components/note-preview.vue | 121 ++++ src/client/components/note.sub.vue | 108 +++ src/client/components/note.vue | 729 ++++++++++++++++++++ src/client/components/notes.vue | 144 ++++ src/client/components/notification.vue | 219 ++++++ src/client/components/notifications.vue | 136 ++++ src/client/components/page-preview.vue | 163 +++++ src/client/components/page/page.block.vue | 40 ++ src/client/components/page/page.button.vue | 59 ++ src/client/components/page/page.counter.vue | 49 ++ src/client/components/page/page.if.vue | 29 + src/client/components/page/page.image.vue | 36 + src/client/components/page/page.number-input.vue | 44 ++ src/client/components/page/page.post.vue | 75 +++ src/client/components/page/page.radio-button.vue | 36 + src/client/components/page/page.section.vue | 58 ++ src/client/components/page/page.switch.vue | 46 ++ src/client/components/page/page.text-input.vue | 44 ++ src/client/components/page/page.text.vue | 65 ++ src/client/components/page/page.textarea-input.vue | 35 + src/client/components/page/page.textarea.vue | 35 + src/client/components/page/page.vue | 230 +++++++ src/client/components/poll-editor.vue | 218 ++++++ src/client/components/poll.vue | 174 +++++ src/client/components/popup.vue | 147 ++++ src/client/components/post-form-attaches.vue | 158 +++++ src/client/components/post-form-dialog.vue | 157 +++++ src/client/components/post-form.vue | 747 +++++++++++++++++++++ src/client/components/reaction-icon.vue | 32 + src/client/components/reaction-picker.vue | 229 +++++++ src/client/components/reactions-viewer.details.vue | 117 ++++ .../components/reactions-viewer.reaction.vue | 167 +++++ src/client/components/reactions-viewer.vue | 48 ++ src/client/components/renote-picker.vue | 94 +++ src/client/components/sequential-entrance.vue | 63 ++ src/client/components/signin-dialog.vue | 37 + src/client/components/signin.vue | 219 ++++++ src/client/components/signup-dialog.vue | 22 + src/client/components/signup.vue | 191 ++++++ src/client/components/sub-note-content.vue | 65 ++ src/client/components/time.vue | 74 ++ src/client/components/timeline.vue | 118 ++++ src/client/components/toast.vue | 76 +++ src/client/components/ui/button.vue | 204 ++++++ src/client/components/ui/container.vue | 104 +++ src/client/components/ui/hr.vue | 15 + src/client/components/ui/info.vue | 55 ++ src/client/components/ui/input.vue | 443 ++++++++++++ src/client/components/ui/pagination.vue | 59 ++ src/client/components/ui/radio.vue | 119 ++++ src/client/components/ui/select.vue | 220 ++++++ src/client/components/ui/switch.vue | 150 +++++ src/client/components/ui/textarea.vue | 218 ++++++ src/client/components/uploader.vue | 242 +++++++ src/client/components/url-preview.vue | 331 +++++++++ src/client/components/url.vue | 95 +++ src/client/components/user-list.vue | 148 ++++ src/client/components/user-menu.vue | 188 ++++++ src/client/components/user-moderate-dialog.vue | 108 +++ src/client/components/user-name.vue | 20 + src/client/components/user-preview.vue | 181 +++++ src/client/components/user-select.vue | 152 +++++ src/client/components/users-dialog.vue | 161 +++++ src/client/components/visibility-chooser.vue | 127 ++++ src/client/components/window.vue | 155 +++++ 102 files changed, 14246 insertions(+) create mode 100644 src/client/components/acct.vue create mode 100644 src/client/components/autocomplete.vue create mode 100644 src/client/components/avatar.vue create mode 100644 src/client/components/avatars.vue create mode 100644 src/client/components/code-core.vue create mode 100644 src/client/components/code.vue create mode 100644 src/client/components/cw-button.vue create mode 100644 src/client/components/date-separated-list.vue create mode 100644 src/client/components/dialog.vue create mode 100644 src/client/components/drive-file-thumbnail.vue create mode 100644 src/client/components/drive-window.vue create mode 100644 src/client/components/drive.file.vue create mode 100644 src/client/components/drive.folder.vue create mode 100644 src/client/components/drive.nav-folder.vue create mode 100644 src/client/components/drive.vue create mode 100644 src/client/components/ellipsis.vue create mode 100644 src/client/components/emoji-picker.vue create mode 100644 src/client/components/emoji.vue create mode 100644 src/client/components/error.vue create mode 100644 src/client/components/file-type-icon.vue create mode 100644 src/client/components/follow-button.vue create mode 100644 src/client/components/formula-core.vue create mode 100644 src/client/components/formula.vue create mode 100644 src/client/components/google.vue create mode 100644 src/client/components/index.ts create mode 100644 src/client/components/loading.vue create mode 100644 src/client/components/media-banner.vue create mode 100644 src/client/components/media-image.vue create mode 100644 src/client/components/media-list.vue create mode 100644 src/client/components/media-video.vue create mode 100644 src/client/components/mention.vue create mode 100644 src/client/components/menu.vue create mode 100644 src/client/components/mfm.ts create mode 100644 src/client/components/misskey-flavored-markdown.vue create mode 100644 src/client/components/modal.vue create mode 100644 src/client/components/note-header.vue create mode 100644 src/client/components/note-menu.vue create mode 100644 src/client/components/note-preview.vue create mode 100644 src/client/components/note.sub.vue create mode 100644 src/client/components/note.vue create mode 100644 src/client/components/notes.vue create mode 100644 src/client/components/notification.vue create mode 100644 src/client/components/notifications.vue create mode 100644 src/client/components/page-preview.vue create mode 100644 src/client/components/page/page.block.vue create mode 100644 src/client/components/page/page.button.vue create mode 100644 src/client/components/page/page.counter.vue create mode 100644 src/client/components/page/page.if.vue create mode 100644 src/client/components/page/page.image.vue create mode 100644 src/client/components/page/page.number-input.vue create mode 100644 src/client/components/page/page.post.vue create mode 100644 src/client/components/page/page.radio-button.vue create mode 100644 src/client/components/page/page.section.vue create mode 100644 src/client/components/page/page.switch.vue create mode 100644 src/client/components/page/page.text-input.vue create mode 100644 src/client/components/page/page.text.vue create mode 100644 src/client/components/page/page.textarea-input.vue create mode 100644 src/client/components/page/page.textarea.vue create mode 100644 src/client/components/page/page.vue create mode 100644 src/client/components/poll-editor.vue create mode 100644 src/client/components/poll.vue create mode 100644 src/client/components/popup.vue create mode 100644 src/client/components/post-form-attaches.vue create mode 100644 src/client/components/post-form-dialog.vue create mode 100644 src/client/components/post-form.vue create mode 100644 src/client/components/reaction-icon.vue create mode 100644 src/client/components/reaction-picker.vue create mode 100644 src/client/components/reactions-viewer.details.vue create mode 100644 src/client/components/reactions-viewer.reaction.vue create mode 100644 src/client/components/reactions-viewer.vue create mode 100644 src/client/components/renote-picker.vue create mode 100644 src/client/components/sequential-entrance.vue create mode 100644 src/client/components/signin-dialog.vue create mode 100644 src/client/components/signin.vue create mode 100644 src/client/components/signup-dialog.vue create mode 100644 src/client/components/signup.vue create mode 100644 src/client/components/sub-note-content.vue create mode 100644 src/client/components/time.vue create mode 100644 src/client/components/timeline.vue create mode 100644 src/client/components/toast.vue create mode 100644 src/client/components/ui/button.vue create mode 100644 src/client/components/ui/container.vue create mode 100644 src/client/components/ui/hr.vue create mode 100644 src/client/components/ui/info.vue create mode 100644 src/client/components/ui/input.vue create mode 100644 src/client/components/ui/pagination.vue create mode 100644 src/client/components/ui/radio.vue create mode 100644 src/client/components/ui/select.vue create mode 100644 src/client/components/ui/switch.vue create mode 100644 src/client/components/ui/textarea.vue create mode 100644 src/client/components/uploader.vue create mode 100644 src/client/components/url-preview.vue create mode 100644 src/client/components/url.vue create mode 100644 src/client/components/user-list.vue create mode 100644 src/client/components/user-menu.vue create mode 100644 src/client/components/user-moderate-dialog.vue create mode 100644 src/client/components/user-name.vue create mode 100644 src/client/components/user-preview.vue create mode 100644 src/client/components/user-select.vue create mode 100644 src/client/components/users-dialog.vue create mode 100644 src/client/components/visibility-chooser.vue create mode 100644 src/client/components/window.vue (limited to 'src/client/components') diff --git a/src/client/components/acct.vue b/src/client/components/acct.vue new file mode 100644 index 0000000000..250e8b2371 --- /dev/null +++ b/src/client/components/acct.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/client/components/autocomplete.vue b/src/client/components/autocomplete.vue new file mode 100644 index 0000000000..232b25dd61 --- /dev/null +++ b/src/client/components/autocomplete.vue @@ -0,0 +1,443 @@ + + + + + diff --git a/src/client/components/avatar.vue b/src/client/components/avatar.vue new file mode 100644 index 0000000000..12cbb82478 --- /dev/null +++ b/src/client/components/avatar.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/client/components/avatars.vue b/src/client/components/avatars.vue new file mode 100644 index 0000000000..0dc1ece3bf --- /dev/null +++ b/src/client/components/avatars.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/client/components/code-core.vue b/src/client/components/code-core.vue new file mode 100644 index 0000000000..a9253528d9 --- /dev/null +++ b/src/client/components/code-core.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/client/components/code.vue b/src/client/components/code.vue new file mode 100644 index 0000000000..94cad57be4 --- /dev/null +++ b/src/client/components/code.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/client/components/cw-button.vue b/src/client/components/cw-button.vue new file mode 100644 index 0000000000..4516e5210c --- /dev/null +++ b/src/client/components/cw-button.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/client/components/date-separated-list.vue b/src/client/components/date-separated-list.vue new file mode 100644 index 0000000000..00c3cd6643 --- /dev/null +++ b/src/client/components/date-separated-list.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/client/components/dialog.vue b/src/client/components/dialog.vue new file mode 100644 index 0000000000..5311611575 --- /dev/null +++ b/src/client/components/dialog.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/src/client/components/drive-file-thumbnail.vue b/src/client/components/drive-file-thumbnail.vue new file mode 100644 index 0000000000..37a884dc3d --- /dev/null +++ b/src/client/components/drive-file-thumbnail.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/src/client/components/drive-window.vue b/src/client/components/drive-window.vue new file mode 100644 index 0000000000..64c4cee0c1 --- /dev/null +++ b/src/client/components/drive-window.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/client/components/drive.file.vue b/src/client/components/drive.file.vue new file mode 100644 index 0000000000..22fc8c6fb7 --- /dev/null +++ b/src/client/components/drive.file.vue @@ -0,0 +1,368 @@ + + + + + diff --git a/src/client/components/drive.folder.vue b/src/client/components/drive.folder.vue new file mode 100644 index 0000000000..39a9588772 --- /dev/null +++ b/src/client/components/drive.folder.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/client/components/drive.nav-folder.vue b/src/client/components/drive.nav-folder.vue new file mode 100644 index 0000000000..0689faecd2 --- /dev/null +++ b/src/client/components/drive.nav-folder.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/client/components/drive.vue b/src/client/components/drive.vue new file mode 100644 index 0000000000..2279e2eb6e --- /dev/null +++ b/src/client/components/drive.vue @@ -0,0 +1,664 @@ + + + + + diff --git a/src/client/components/ellipsis.vue b/src/client/components/ellipsis.vue new file mode 100644 index 0000000000..0a46f486d6 --- /dev/null +++ b/src/client/components/ellipsis.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/client/components/emoji-picker.vue b/src/client/components/emoji-picker.vue new file mode 100644 index 0000000000..61d641a023 --- /dev/null +++ b/src/client/components/emoji-picker.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/src/client/components/emoji.vue b/src/client/components/emoji.vue new file mode 100644 index 0000000000..2e8bddb803 --- /dev/null +++ b/src/client/components/emoji.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/src/client/components/error.vue b/src/client/components/error.vue new file mode 100644 index 0000000000..1dc21dbb19 --- /dev/null +++ b/src/client/components/error.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/client/components/file-type-icon.vue b/src/client/components/file-type-icon.vue new file mode 100644 index 0000000000..8492567ad7 --- /dev/null +++ b/src/client/components/file-type-icon.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/client/components/follow-button.vue b/src/client/components/follow-button.vue new file mode 100644 index 0000000000..4b57a2bd88 --- /dev/null +++ b/src/client/components/follow-button.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/client/components/formula-core.vue b/src/client/components/formula-core.vue new file mode 100644 index 0000000000..45b27f9026 --- /dev/null +++ b/src/client/components/formula-core.vue @@ -0,0 +1,33 @@ + + + + + + diff --git a/src/client/components/formula.vue b/src/client/components/formula.vue new file mode 100644 index 0000000000..4aaad1bf3e --- /dev/null +++ b/src/client/components/formula.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/client/components/google.vue b/src/client/components/google.vue new file mode 100644 index 0000000000..e6ef7f7d90 --- /dev/null +++ b/src/client/components/google.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/client/components/index.ts b/src/client/components/index.ts new file mode 100644 index 0000000000..9385c2af73 --- /dev/null +++ b/src/client/components/index.ts @@ -0,0 +1,25 @@ +import Vue from 'vue'; + +import mfm from './misskey-flavored-markdown.vue'; +import acct from './acct.vue'; +import avatar from './avatar.vue'; +import emoji from './emoji.vue'; +import userName from './user-name.vue'; +import ellipsis from './ellipsis.vue'; +import time from './time.vue'; +import url from './url.vue'; +import loading from './loading.vue'; +import SequentialEntrance from './sequential-entrance.vue'; +import error from './error.vue'; + +Vue.component('mfm', mfm); +Vue.component('mk-acct', acct); +Vue.component('mk-avatar', avatar); +Vue.component('mk-emoji', emoji); +Vue.component('mk-user-name', userName); +Vue.component('mk-ellipsis', ellipsis); +Vue.component('mk-time', time); +Vue.component('mk-url', url); +Vue.component('mk-loading', loading); +Vue.component('mk-error', error); +Vue.component('sequential-entrance', SequentialEntrance); diff --git a/src/client/components/loading.vue b/src/client/components/loading.vue new file mode 100644 index 0000000000..88d1ed77fa --- /dev/null +++ b/src/client/components/loading.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/client/components/media-banner.vue b/src/client/components/media-banner.vue new file mode 100644 index 0000000000..088c11fab7 --- /dev/null +++ b/src/client/components/media-banner.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/src/client/components/media-image.vue b/src/client/components/media-image.vue new file mode 100644 index 0000000000..5ae167d490 --- /dev/null +++ b/src/client/components/media-image.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/client/components/media-list.vue b/src/client/components/media-list.vue new file mode 100644 index 0000000000..08722ff91a --- /dev/null +++ b/src/client/components/media-list.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/client/components/media-video.vue b/src/client/components/media-video.vue new file mode 100644 index 0000000000..f96e902976 --- /dev/null +++ b/src/client/components/media-video.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/client/components/mention.vue b/src/client/components/mention.vue new file mode 100644 index 0000000000..06dcf12887 --- /dev/null +++ b/src/client/components/mention.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/src/client/components/menu.vue b/src/client/components/menu.vue new file mode 100644 index 0000000000..c1c5ceaee7 --- /dev/null +++ b/src/client/components/menu.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/client/components/mfm.ts b/src/client/components/mfm.ts new file mode 100644 index 0000000000..932beb907f --- /dev/null +++ b/src/client/components/mfm.ts @@ -0,0 +1,299 @@ +import Vue, { VNode } from 'vue'; +import { MfmForest } from '../../mfm/types'; +import { parse, parsePlain } from '../../mfm/parse'; +import MkUrl from './url.vue'; +import MkMention from './mention.vue'; +import { concat } from '../../prelude/array'; +import MkFormula from './formula.vue'; +import MkCode from './code.vue'; +import MkGoogle from './google.vue'; +import { host } from '../config'; + +export default Vue.component('misskey-flavored-markdown', { + props: { + text: { + type: String, + required: true + }, + plain: { + type: Boolean, + default: false + }, + nowrap: { + type: Boolean, + default: false + }, + author: { + type: Object, + default: null + }, + i: { + type: Object, + default: null + }, + customEmojis: { + required: false, + }, + isNote: { + type: Boolean, + default: true + }, + }, + + render(createElement) { + if (this.text == null || this.text == '') return; + + const ast = (this.plain ? parsePlain : parse)(this.text); + + const genEl = (ast: MfmForest) => concat(ast.map((token): VNode[] => { + switch (token.node.type) { + case 'text': { + const text = token.node.props.text.replace(/(\r\n|\n|\r)/g, '\n'); + + if (!this.plain) { + const x = text.split('\n') + .map(t => t == '' ? [createElement('br')] : [createElement('span', t), createElement('br')]); + x[x.length - 1].pop(); + return x; + } else { + return [createElement('span', text.replace(/\n/g, ' '))]; + } + } + + case 'bold': { + return [createElement('b', genEl(token.children))]; + } + + case 'strike': { + return [createElement('del', genEl(token.children))]; + } + + case 'italic': { + return (createElement as any)('i', { + attrs: { + style: 'font-style: oblique;' + }, + }, genEl(token.children)); + } + + case 'big': { + return (createElement as any)('strong', { + attrs: { + style: `display: inline-block; font-size: 150% };` + }, + directives: [this.$store.state.settings.disableAnimatedMfm ? {} : { + name: 'animate-css', + value: { classes: 'tada', iteration: 'infinite' } + }] + }, genEl(token.children)); + } + + case 'small': { + return [createElement('small', { + attrs: { + style: 'opacity: 0.7;' + }, + }, genEl(token.children))]; + } + + case 'center': { + return [createElement('div', { + attrs: { + style: 'text-align:center;' + } + }, genEl(token.children))]; + } + + case 'motion': { + return (createElement as any)('span', { + attrs: { + style: 'display: inline-block;' + }, + directives: [this.$store.state.settings.disableAnimatedMfm ? {} : { + name: 'animate-css', + value: { classes: 'rubberBand', iteration: 'infinite' } + }] + }, genEl(token.children)); + } + + case 'spin': { + const direction = + token.node.props.attr == 'left' ? 'reverse' : + token.node.props.attr == 'alternate' ? 'alternate' : + 'normal'; + const style = (this.$store.state.settings.disableAnimatedMfm) + ? '' + : `animation: spin 1.5s linear infinite; animation-direction: ${direction};`; + return (createElement as any)('span', { + attrs: { + style: 'display: inline-block;' + style + }, + }, genEl(token.children)); + } + + case 'jump': { + return (createElement as any)('span', { + attrs: { + style: (this.$store.state.settings.disableAnimatedMfm) ? 'display: inline-block;' : 'display: inline-block; animation: jump 0.75s linear infinite;' + }, + }, genEl(token.children)); + } + + case 'flip': { + return (createElement as any)('span', { + attrs: { + style: 'display: inline-block; transform: scaleX(-1);' + }, + }, genEl(token.children)); + } + + case 'url': { + return [createElement(MkUrl, { + key: Math.random(), + props: { + url: token.node.props.url, + rel: 'nofollow noopener', + }, + attrs: { + style: 'color:var(--link);' + } + })]; + } + + case 'link': { + return [createElement('a', { + attrs: { + class: 'link', + href: token.node.props.url, + rel: 'nofollow noopener', + target: '_blank', + title: token.node.props.url, + style: 'color:var(--link);' + } + }, genEl(token.children))]; + } + + case 'mention': { + return [createElement(MkMention, { + key: Math.random(), + props: { + host: (token.node.props.host == null && this.author && this.author.host != null ? this.author.host : token.node.props.host) || host, + username: token.node.props.username + } + })]; + } + + case 'hashtag': { + return [createElement('router-link', { + key: Math.random(), + attrs: { + to: this.isNote ? `/tags/${encodeURIComponent(token.node.props.hashtag)}` : `/explore/tags/${encodeURIComponent(token.node.props.hashtag)}`, + style: 'color:var(--hashtag);' + } + }, `#${token.node.props.hashtag}`)]; + } + + case 'blockCode': { + return [createElement(MkCode, { + key: Math.random(), + props: { + code: token.node.props.code, + lang: token.node.props.lang, + } + })]; + } + + case 'inlineCode': { + return [createElement(MkCode, { + key: Math.random(), + props: { + code: token.node.props.code, + lang: token.node.props.lang, + inline: true + } + })]; + } + + case 'quote': { + if (this.shouldBreak) { + return [createElement('div', { + attrs: { + class: 'quote' + } + }, genEl(token.children))]; + } else { + return [createElement('span', { + attrs: { + class: 'quote' + } + }, genEl(token.children))]; + } + } + + case 'title': { + return [createElement('div', { + attrs: { + class: 'title' + } + }, genEl(token.children))]; + } + + case 'emoji': { + const customEmojis = (this.$root.getMetaSync() || { emojis: [] }).emojis || []; + return [createElement('mk-emoji', { + key: Math.random(), + attrs: { + emoji: token.node.props.emoji, + name: token.node.props.name + }, + props: { + customEmojis: this.customEmojis || customEmojis, + normal: this.plain + } + })]; + } + + case 'mathInline': { + //const MkFormula = () => import('./formula.vue').then(m => m.default); + return [createElement(MkFormula, { + key: Math.random(), + props: { + formula: token.node.props.formula, + block: false + } + })]; + } + + case 'mathBlock': { + //const MkFormula = () => import('./formula.vue').then(m => m.default); + return [createElement(MkFormula, { + key: Math.random(), + props: { + formula: token.node.props.formula, + block: true + } + })]; + } + + case 'search': { + //const MkGoogle = () => import('./google.vue').then(m => m.default); + return [createElement(MkGoogle, { + key: Math.random(), + props: { + q: token.node.props.query + } + })]; + } + + default: { + console.log('unknown ast type:', token.node.type); + + return []; + } + } + })); + + // Parse ast to DOM + return createElement('span', genEl(ast)); + } +}); diff --git a/src/client/components/misskey-flavored-markdown.vue b/src/client/components/misskey-flavored-markdown.vue new file mode 100644 index 0000000000..c8eee8c126 --- /dev/null +++ b/src/client/components/misskey-flavored-markdown.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/client/components/modal.vue b/src/client/components/modal.vue new file mode 100644 index 0000000000..b7e6a336d7 --- /dev/null +++ b/src/client/components/modal.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/client/components/note-header.vue b/src/client/components/note-header.vue new file mode 100644 index 0000000000..30ecb80834 --- /dev/null +++ b/src/client/components/note-header.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/src/client/components/note-menu.vue b/src/client/components/note-menu.vue new file mode 100644 index 0000000000..dd7b062f15 --- /dev/null +++ b/src/client/components/note-menu.vue @@ -0,0 +1,199 @@ + + + diff --git a/src/client/components/note-preview.vue b/src/client/components/note-preview.vue new file mode 100644 index 0000000000..17ff5be868 --- /dev/null +++ b/src/client/components/note-preview.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/client/components/note.sub.vue b/src/client/components/note.sub.vue new file mode 100644 index 0000000000..7f6f972896 --- /dev/null +++ b/src/client/components/note.sub.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/src/client/components/note.vue b/src/client/components/note.vue new file mode 100644 index 0000000000..8b3fa61a65 --- /dev/null +++ b/src/client/components/note.vue @@ -0,0 +1,729 @@ + + + + + diff --git a/src/client/components/notes.vue b/src/client/components/notes.vue new file mode 100644 index 0000000000..7cf2aa2b02 --- /dev/null +++ b/src/client/components/notes.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/client/components/notification.vue b/src/client/components/notification.vue new file mode 100644 index 0000000000..e325f0adb6 --- /dev/null +++ b/src/client/components/notification.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/client/components/notifications.vue b/src/client/components/notifications.vue new file mode 100644 index 0000000000..ad82913380 --- /dev/null +++ b/src/client/components/notifications.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/client/components/page-preview.vue b/src/client/components/page-preview.vue new file mode 100644 index 0000000000..5ba226c481 --- /dev/null +++ b/src/client/components/page-preview.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/client/components/page/page.block.vue b/src/client/components/page/page.block.vue new file mode 100644 index 0000000000..c1d046fa2e --- /dev/null +++ b/src/client/components/page/page.block.vue @@ -0,0 +1,40 @@ + + + diff --git a/src/client/components/page/page.button.vue b/src/client/components/page/page.button.vue new file mode 100644 index 0000000000..eeb56d5eca --- /dev/null +++ b/src/client/components/page/page.button.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/client/components/page/page.counter.vue b/src/client/components/page/page.counter.vue new file mode 100644 index 0000000000..781a1bd549 --- /dev/null +++ b/src/client/components/page/page.counter.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/client/components/page/page.if.vue b/src/client/components/page/page.if.vue new file mode 100644 index 0000000000..a714a522e8 --- /dev/null +++ b/src/client/components/page/page.if.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/client/components/page/page.image.vue b/src/client/components/page/page.image.vue new file mode 100644 index 0000000000..f0d7c7b30f --- /dev/null +++ b/src/client/components/page/page.image.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/client/components/page/page.number-input.vue b/src/client/components/page/page.number-input.vue new file mode 100644 index 0000000000..9ee2730fac --- /dev/null +++ b/src/client/components/page/page.number-input.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/client/components/page/page.post.vue b/src/client/components/page/page.post.vue new file mode 100644 index 0000000000..010a96c855 --- /dev/null +++ b/src/client/components/page/page.post.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/client/components/page/page.radio-button.vue b/src/client/components/page/page.radio-button.vue new file mode 100644 index 0000000000..fda0a03927 --- /dev/null +++ b/src/client/components/page/page.radio-button.vue @@ -0,0 +1,36 @@ + + + diff --git a/src/client/components/page/page.section.vue b/src/client/components/page/page.section.vue new file mode 100644 index 0000000000..b83c773f71 --- /dev/null +++ b/src/client/components/page/page.section.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/src/client/components/page/page.switch.vue b/src/client/components/page/page.switch.vue new file mode 100644 index 0000000000..416c36e9ad --- /dev/null +++ b/src/client/components/page/page.switch.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/client/components/page/page.text-input.vue b/src/client/components/page/page.text-input.vue new file mode 100644 index 0000000000..fcc181d673 --- /dev/null +++ b/src/client/components/page/page.text-input.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/client/components/page/page.text.vue b/src/client/components/page/page.text.vue new file mode 100644 index 0000000000..aeab31225e --- /dev/null +++ b/src/client/components/page/page.text.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/client/components/page/page.textarea-input.vue b/src/client/components/page/page.textarea-input.vue new file mode 100644 index 0000000000..d1cf9813c4 --- /dev/null +++ b/src/client/components/page/page.textarea-input.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/client/components/page/page.textarea.vue b/src/client/components/page/page.textarea.vue new file mode 100644 index 0000000000..78b74dd64c --- /dev/null +++ b/src/client/components/page/page.textarea.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/client/components/page/page.vue b/src/client/components/page/page.vue new file mode 100644 index 0000000000..bd78313475 --- /dev/null +++ b/src/client/components/page/page.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/client/components/poll-editor.vue b/src/client/components/poll-editor.vue new file mode 100644 index 0000000000..b5b8c2c02d --- /dev/null +++ b/src/client/components/poll-editor.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/src/client/components/poll.vue b/src/client/components/poll.vue new file mode 100644 index 0000000000..15be1b282d --- /dev/null +++ b/src/client/components/poll.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/src/client/components/popup.vue b/src/client/components/popup.vue new file mode 100644 index 0000000000..d5b1f9423b --- /dev/null +++ b/src/client/components/popup.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/client/components/post-form-attaches.vue b/src/client/components/post-form-attaches.vue new file mode 100644 index 0000000000..50ba9bfdcf --- /dev/null +++ b/src/client/components/post-form-attaches.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/src/client/components/post-form-dialog.vue b/src/client/components/post-form-dialog.vue new file mode 100644 index 0000000000..fe70b88218 --- /dev/null +++ b/src/client/components/post-form-dialog.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue new file mode 100644 index 0000000000..762b82036b --- /dev/null +++ b/src/client/components/post-form.vue @@ -0,0 +1,747 @@ + + + + + diff --git a/src/client/components/reaction-icon.vue b/src/client/components/reaction-icon.vue new file mode 100644 index 0000000000..368ddc0efc --- /dev/null +++ b/src/client/components/reaction-icon.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/client/components/reaction-picker.vue b/src/client/components/reaction-picker.vue new file mode 100644 index 0000000000..00b964f07c --- /dev/null +++ b/src/client/components/reaction-picker.vue @@ -0,0 +1,229 @@ + + + + + diff --git a/src/client/components/reactions-viewer.details.vue b/src/client/components/reactions-viewer.details.vue new file mode 100644 index 0000000000..ea2523a11f --- /dev/null +++ b/src/client/components/reactions-viewer.details.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/src/client/components/reactions-viewer.reaction.vue b/src/client/components/reactions-viewer.reaction.vue new file mode 100644 index 0000000000..a878a283ff --- /dev/null +++ b/src/client/components/reactions-viewer.reaction.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/src/client/components/reactions-viewer.vue b/src/client/components/reactions-viewer.vue new file mode 100644 index 0000000000..d089cf682c --- /dev/null +++ b/src/client/components/reactions-viewer.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/client/components/renote-picker.vue b/src/client/components/renote-picker.vue new file mode 100644 index 0000000000..d8258d5f5d --- /dev/null +++ b/src/client/components/renote-picker.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/client/components/sequential-entrance.vue b/src/client/components/sequential-entrance.vue new file mode 100644 index 0000000000..70e486719e --- /dev/null +++ b/src/client/components/sequential-entrance.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/client/components/signin-dialog.vue b/src/client/components/signin-dialog.vue new file mode 100644 index 0000000000..dbc63c93bf --- /dev/null +++ b/src/client/components/signin-dialog.vue @@ -0,0 +1,37 @@ + + + diff --git a/src/client/components/signin.vue b/src/client/components/signin.vue new file mode 100644 index 0000000000..dc6fad1c5d --- /dev/null +++ b/src/client/components/signin.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/client/components/signup-dialog.vue b/src/client/components/signup-dialog.vue new file mode 100644 index 0000000000..76421d44ec --- /dev/null +++ b/src/client/components/signup-dialog.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/client/components/signup.vue b/src/client/components/signup.vue new file mode 100644 index 0000000000..c03a99def6 --- /dev/null +++ b/src/client/components/signup.vue @@ -0,0 +1,191 @@ + + + diff --git a/src/client/components/sub-note-content.vue b/src/client/components/sub-note-content.vue new file mode 100644 index 0000000000..e60c197442 --- /dev/null +++ b/src/client/components/sub-note-content.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/client/components/time.vue b/src/client/components/time.vue new file mode 100644 index 0000000000..922067b4d5 --- /dev/null +++ b/src/client/components/time.vue @@ -0,0 +1,74 @@ + + + diff --git a/src/client/components/timeline.vue b/src/client/components/timeline.vue new file mode 100644 index 0000000000..f5edb18550 --- /dev/null +++ b/src/client/components/timeline.vue @@ -0,0 +1,118 @@ + + + diff --git a/src/client/components/toast.vue b/src/client/components/toast.vue new file mode 100644 index 0000000000..fefe91e3bd --- /dev/null +++ b/src/client/components/toast.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/client/components/ui/button.vue b/src/client/components/ui/button.vue new file mode 100644 index 0000000000..4071faa1dd --- /dev/null +++ b/src/client/components/ui/button.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/src/client/components/ui/container.vue b/src/client/components/ui/container.vue new file mode 100644 index 0000000000..19820a307d --- /dev/null +++ b/src/client/components/ui/container.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/client/components/ui/hr.vue b/src/client/components/ui/hr.vue new file mode 100644 index 0000000000..ae7f7dbf8e --- /dev/null +++ b/src/client/components/ui/hr.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/client/components/ui/info.vue b/src/client/components/ui/info.vue new file mode 100644 index 0000000000..3e87fe261d --- /dev/null +++ b/src/client/components/ui/info.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/client/components/ui/input.vue b/src/client/components/ui/input.vue new file mode 100644 index 0000000000..69d842ef0f --- /dev/null +++ b/src/client/components/ui/input.vue @@ -0,0 +1,443 @@ + + + + + diff --git a/src/client/components/ui/pagination.vue b/src/client/components/ui/pagination.vue new file mode 100644 index 0000000000..d953824e00 --- /dev/null +++ b/src/client/components/ui/pagination.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/client/components/ui/radio.vue b/src/client/components/ui/radio.vue new file mode 100644 index 0000000000..7659d147e6 --- /dev/null +++ b/src/client/components/ui/radio.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/src/client/components/ui/select.vue b/src/client/components/ui/select.vue new file mode 100644 index 0000000000..8bad7c5d65 --- /dev/null +++ b/src/client/components/ui/select.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/src/client/components/ui/switch.vue b/src/client/components/ui/switch.vue new file mode 100644 index 0000000000..d4680ca2ef --- /dev/null +++ b/src/client/components/ui/switch.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/client/components/ui/textarea.vue b/src/client/components/ui/textarea.vue new file mode 100644 index 0000000000..7b42b78a73 --- /dev/null +++ b/src/client/components/ui/textarea.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/src/client/components/uploader.vue b/src/client/components/uploader.vue new file mode 100644 index 0000000000..14a4f845c1 --- /dev/null +++ b/src/client/components/uploader.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/src/client/components/url-preview.vue b/src/client/components/url-preview.vue new file mode 100644 index 0000000000..f2ef1f1ba3 --- /dev/null +++ b/src/client/components/url-preview.vue @@ -0,0 +1,331 @@ +