cosey 0.9.5 → 0.10.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.
- package/README.md +1 -1
- package/components/audio-card/audio-card.js +1 -1
- package/components/close/close.js +1 -1
- package/components/col/col.api.d.ts +1 -1
- package/components/context-menu/content.js +1 -1
- package/components/dnd-sort/dnd-sort-item.js +1 -1
- package/components/editor/button-group.d.ts +2 -0
- package/components/editor/button-group.js +20 -0
- package/components/editor/button-select.d.ts +14 -0
- package/components/editor/button-select.js +51 -0
- package/components/editor/button-split.d.ts +25 -0
- package/components/editor/button-split.js +68 -0
- package/components/editor/button.d.ts +19 -0
- package/components/editor/button.js +40 -0
- package/components/editor/contents/content-code-block.d.ts +18 -0
- package/components/editor/contents/content-code-block.js +51 -0
- package/components/editor/contents/content-formula.d.ts +12 -0
- package/components/editor/contents/content-formula.js +48 -0
- package/components/editor/contents/content-formula.style.js +14 -0
- package/components/editor/contents/content-image.d.ts +29 -0
- package/components/editor/contents/content-image.js +89 -0
- package/components/editor/{components/list/list.style.d.ts → contents/content-image.style.d.ts} +1 -1
- package/components/editor/contents/content-image.style.js +20 -0
- package/components/editor/contents/content-link.d.ts +16 -0
- package/components/editor/contents/content-link.js +74 -0
- package/components/editor/contents/content-link.stye.d.ts +4 -0
- package/components/editor/contents/content-link.stye.js +17 -0
- package/components/editor/contents/content-list-item.d.ts +21 -0
- package/components/editor/contents/content-list-item.js +41 -0
- package/components/editor/contents/content-list-item.style.d.ts +4 -0
- package/components/editor/contents/content-list-item.style.js +52 -0
- package/components/editor/contents/content-placeholder.d.ts +2 -0
- package/components/editor/contents/content-placeholder.js +24 -0
- package/components/editor/contents/content-placeholder.style.d.ts +4 -0
- package/components/editor/contents/content-placeholder.style.js +19 -0
- package/components/editor/contents/content-table.d.ts +2 -0
- package/components/editor/contents/content-table.js +133 -0
- package/components/editor/contents/content-table.style.d.ts +4 -0
- package/components/editor/contents/content-table.style.js +21 -0
- package/components/editor/contents/content-video.d.ts +26 -0
- package/components/editor/contents/content-video.js +73 -0
- package/components/editor/contents/content-video.style.d.ts +4 -0
- package/components/editor/contents/content-video.style.js +20 -0
- package/components/editor/contents/resize.d.ts +37 -0
- package/components/editor/contents/resize.js +133 -0
- package/components/editor/{components/resize → contents}/resize.style.d.ts +1 -1
- package/components/editor/{components/resize → contents}/resize.style.js +14 -34
- package/components/editor/contents/upload.d.ts +17 -0
- package/components/editor/contents/upload.js +80 -0
- package/components/editor/contents/upload.style.d.ts +4 -0
- package/components/editor/contents/upload.style.js +38 -0
- package/components/editor/contents/widget-popover.d.ts +389 -0
- package/components/editor/contents/widget-popover.js +36 -0
- package/components/editor/contents/widget-popover.style.d.ts +4 -0
- package/components/editor/contents/widget-popover.style.js +15 -0
- package/components/editor/editor.api.d.ts +14 -6
- package/components/editor/editor.api.js +10 -6
- package/components/editor/editor.d.ts +15 -8
- package/components/editor/editor.js +178 -76
- package/components/editor/editor.style.d.ts +5 -1
- package/components/editor/editor.style.js +121 -253
- package/components/editor/{components/color-picker/color-picker.js → formats/color-picker.api.js} +3 -3
- package/components/editor/formats/color-picker.d.ts +20 -0
- package/components/editor/formats/color-picker.js +154 -0
- package/components/editor/{components/color-picker → formats}/color-picker.style.d.ts +1 -1
- package/components/editor/{components/color-picker → formats}/color-picker.style.js +1 -1
- package/components/editor/formats/format-align.d.ts +22 -0
- package/components/editor/formats/format-align.js +38 -0
- package/components/editor/formats/format-background.d.ts +2 -0
- package/components/editor/formats/format-background.js +60 -0
- package/components/editor/formats/format-block-quote.d.ts +2 -0
- package/components/editor/formats/format-block-quote.js +27 -0
- package/components/editor/formats/format-clear.d.ts +2 -0
- package/components/editor/formats/format-clear.js +25 -0
- package/components/editor/formats/format-code-block.d.ts +2 -0
- package/components/editor/formats/format-code-block.js +27 -0
- package/components/editor/formats/format-color.d.ts +2 -0
- package/components/editor/formats/format-color.js +59 -0
- package/components/editor/formats/format-font.d.ts +2 -0
- package/components/editor/formats/format-font.js +46 -0
- package/components/editor/formats/format-formula.d.ts +2 -0
- package/components/editor/formats/format-formula.js +133 -0
- package/components/editor/formats/format-heading.d.ts +2 -0
- package/components/editor/formats/format-heading.js +52 -0
- package/components/editor/formats/format-image.d.ts +2 -0
- package/components/editor/formats/format-image.js +140 -0
- package/components/editor/formats/format-indent.d.ts +20 -0
- package/components/editor/formats/format-indent.js +35 -0
- package/components/editor/formats/format-link.d.ts +2 -0
- package/components/editor/formats/format-link.js +114 -0
- package/components/editor/formats/format-list.d.ts +22 -0
- package/components/editor/formats/format-list.js +39 -0
- package/components/editor/formats/format-mark.d.ts +20 -0
- package/components/editor/formats/format-mark.js +38 -0
- package/components/editor/formats/format-size-delta.d.ts +24 -0
- package/components/editor/formats/format-size-delta.js +43 -0
- package/components/editor/formats/format-size.d.ts +2 -0
- package/components/editor/formats/format-size.js +51 -0
- package/components/editor/formats/format-source.d.ts +2 -0
- package/components/editor/formats/format-source.js +69 -0
- package/components/editor/formats/format-table.d.ts +2 -0
- package/components/editor/formats/format-table.js +85 -0
- package/components/editor/formats/format-table.style.d.ts +4 -0
- package/components/editor/{components/toolbar/formats/table.style.js → formats/format-table.style.js} +2 -2
- package/components/editor/formats/format-video.d.ts +2 -0
- package/components/editor/formats/format-video.js +117 -0
- package/components/editor/formats/picker.d.ts +45 -0
- package/components/editor/formats/picker.js +91 -0
- package/components/editor/{components/picker → formats}/picker.style.d.ts +1 -1
- package/components/editor/{components/picker → formats}/picker.style.js +1 -1
- package/components/editor/formats/select-list.d.ts +28 -0
- package/components/editor/formats/select-list.js +47 -0
- package/components/editor/formats/select-list.style.d.ts +4 -0
- package/components/editor/{components/list/list.style.js → formats/select-list.style.js} +2 -2
- package/components/editor/formats/select.d.ts +32 -0
- package/components/editor/formats/select.js +61 -0
- package/components/editor/hooks/useBlockValueActive.d.ts +1 -0
- package/components/editor/hooks/useBlockValueActive.js +21 -0
- package/components/editor/hooks/useFocus.d.ts +5 -0
- package/components/editor/hooks/useFocus.js +18 -0
- package/components/editor/{components/color-picker → hooks}/useHistoryColor.js +1 -1
- package/components/editor/hooks/useMarkActive.d.ts +1 -0
- package/components/editor/hooks/useMarkActive.js +13 -0
- package/components/editor/hooks/useMarkValue.d.ts +1 -0
- package/components/editor/hooks/useMarkValue.js +21 -0
- package/components/editor/index.d.ts +25 -13
- package/components/editor/index.js +3 -21
- package/components/editor/plugins/align.d.ts +8 -0
- package/components/editor/plugins/align.js +13 -0
- package/components/editor/plugins/background.d.ts +7 -0
- package/components/editor/plugins/background.js +19 -0
- package/components/editor/plugins/block-quote.d.ts +8 -0
- package/components/editor/plugins/block-quote.js +34 -0
- package/components/editor/plugins/clear.d.ts +7 -0
- package/components/editor/plugins/clear.js +53 -0
- package/components/editor/plugins/code-block.d.ts +13 -0
- package/components/editor/plugins/code-block.js +356 -0
- package/components/editor/plugins/color.d.ts +7 -0
- package/components/editor/plugins/color.js +21 -0
- package/components/editor/plugins/font.d.ts +7 -0
- package/components/editor/plugins/font.js +17 -0
- package/components/editor/plugins/formula.d.ts +11 -0
- package/components/editor/{components/toolbar/formats → plugins}/formula.js +50 -1
- package/components/editor/plugins/heading.d.ts +9 -0
- package/components/editor/plugins/heading.js +70 -0
- package/components/editor/plugins/html.d.ts +7 -0
- package/components/editor/plugins/html.js +30 -0
- package/components/editor/plugins/image.d.ts +8 -0
- package/components/editor/plugins/image.js +63 -0
- package/components/editor/plugins/indent.d.ts +7 -0
- package/components/editor/plugins/indent.js +47 -0
- package/components/editor/plugins/index.d.ts +2 -0
- package/components/editor/plugins/index.js +50 -0
- package/components/editor/plugins/keyboard.d.ts +41 -0
- package/components/editor/plugins/keyboard.js +120 -0
- package/components/editor/plugins/link.d.ts +8 -0
- package/components/editor/plugins/link.js +56 -0
- package/components/editor/plugins/list/deserialize.d.ts +3 -0
- package/components/editor/plugins/list/deserialize.js +106 -0
- package/components/editor/plugins/list/format.d.ts +3 -0
- package/components/editor/plugins/list/format.js +155 -0
- package/components/editor/plugins/list/indent.d.ts +2 -0
- package/components/editor/plugins/list/indent.js +38 -0
- package/components/editor/plugins/list/index.d.ts +10 -0
- package/components/editor/plugins/list/index.js +61 -0
- package/components/editor/plugins/list/insert-break.d.ts +2 -0
- package/components/editor/plugins/list/insert-break.js +19 -0
- package/components/editor/plugins/list/normalize.d.ts +3 -0
- package/components/editor/plugins/list/normalize.js +168 -0
- package/components/editor/plugins/list/serialize.d.ts +3 -0
- package/components/editor/plugins/list/serialize.js +63 -0
- package/components/editor/plugins/list/utils.d.ts +6 -0
- package/components/editor/plugins/list/utils.js +24 -0
- package/components/editor/plugins/mark.d.ts +7 -0
- package/components/editor/plugins/mark.js +27 -0
- package/components/editor/plugins/render.d.ts +11 -0
- package/components/editor/plugins/render.js +54 -0
- package/components/editor/plugins/serialize.d.ts +10 -0
- package/components/editor/plugins/serialize.js +342 -0
- package/components/editor/plugins/size.d.ts +8 -0
- package/components/editor/plugins/size.js +47 -0
- package/components/editor/plugins/table.d.ts +21 -0
- package/components/editor/plugins/table.js +702 -0
- package/components/editor/plugins/video.d.ts +8 -0
- package/components/editor/plugins/video.js +40 -0
- package/components/editor/toolbar.d.ts +2 -0
- package/components/editor/toolbar.js +20 -0
- package/components/editor/types.d.ts +194 -0
- package/components/editor/types.js +55 -0
- package/components/editor/usePopoverContainer.d.ts +8 -0
- package/components/editor/usePopoverContainer.js +31 -0
- package/components/editor/utils.d.ts +77 -0
- package/components/editor/utils.js +165 -0
- package/components/field/components/checkbox-group/checkbox-group.vue.js +1 -1
- package/components/field/components/editor/editor.d.ts +16 -0
- package/components/field/components/editor/editor.vue.d.ts +4 -0
- package/components/field/components/editor/editor.vue.js +21 -0
- package/components/field/components/password/password.vue.js +1 -1
- package/components/field/components/select/select.vue.js +1 -1
- package/components/field/field.api.d.ts +3 -0
- package/components/field/field.api.js +18 -16
- package/components/file-card/file-card.js +1 -1
- package/components/form/form-item.vue.js +2 -2
- package/components/form/form.api.d.ts +3 -3
- package/components/form/form.api.js +1 -1
- package/components/form/form.d.ts +6 -6
- package/components/form/index.d.ts +17 -17
- package/components/form/useBubbleTemplate.js +1 -1
- package/components/form-dialog/form-dialog.api.js +1 -1
- package/components/form-dialog/form-dialog.d.ts +5 -5
- package/components/form-drawer/form-drawer.d.ts +5 -5
- package/components/form-drawer/index.d.ts +15 -15
- package/components/form-group/form-group.js +1 -1
- package/components/form-list/index.d.ts +5 -5
- package/components/form-query/form-query.d.ts +5 -5
- package/components/form-query/form-query.js +1 -1
- package/components/form-query/index.d.ts +15 -15
- package/components/highlight/highlight.api.d.ts +30 -12
- package/components/highlight/highlight.api.js +3 -19
- package/components/highlight/highlight.d.ts +7 -3
- package/components/highlight/highlight.js +6 -6
- package/components/highlight/highlight.style.d.ts +1 -0
- package/components/highlight/highlight.style.js +288 -54
- package/components/highlight/index.d.ts +15 -6
- package/components/highlight/index.js +1 -1
- package/components/icon/icon.api.d.ts +11 -0
- package/components/icon/icon.api.js +10 -0
- package/components/icon/icon.d.ts +16 -5
- package/components/icon/icon.js +59 -0
- package/components/icon/icon.style.d.ts +4 -0
- package/components/icon/{style/index.js → icon.style.js} +1 -1
- package/components/icon/index.d.ts +24 -7
- package/components/icon/index.js +2 -1
- package/components/iconify-icon/iconify-icon.api.d.ts +15 -0
- package/components/iconify-icon/iconify-icon.api.js +20 -0
- package/components/iconify-icon/iconify-icon.d.ts +21 -6
- package/components/iconify-icon/iconify-icon.js +22 -8
- package/components/iconify-icon/index.d.ts +37 -4
- package/components/iconify-icon/index.js +2 -2
- package/components/index.d.ts +1 -0
- package/components/index.js +5 -4
- package/components/input-number-range/index.d.ts +39 -30
- package/components/input-number-range/input-number-range.api.d.ts +10 -10
- package/components/input-number-range/input-number-range.d.ts +23 -20
- package/components/input-number-range/input-number-range.js +1 -1
- package/components/snug-menu/snug-menu-item.vue.js +2 -2
- package/components/stack-dialog/index.d.ts +3 -3
- package/components/stack-dialog/stack-dialog.d.ts +1 -1
- package/components/svg-icon/index.d.ts +16 -4
- package/components/svg-icon/index.js +2 -1
- package/components/svg-icon/svg-icon.api.d.ts +7 -0
- package/components/svg-icon/svg-icon.api.js +7 -0
- package/components/svg-icon/svg-icon.d.ts +10 -3
- package/components/svg-icon/svg-icon.js +18 -0
- package/components/table/index.d.ts +12 -12
- package/components/table/table-column/table-column.js +1 -1
- package/components/table/table-export/table-export.d.ts +5 -5
- package/components/table/table-query/table-query.d.ts +5 -5
- package/components/table/table.d.ts +5 -5
- package/components/table/table.js +1 -1
- package/components/table/table.vue.d.ts +7 -7
- package/components/table/table.vue.js +5 -5
- package/components/table-action/item.js +1 -1
- package/components/toggle/toggle.js +1 -1
- package/components/upload/index.d.ts +3 -4
- package/components/upload/index.js +0 -1
- package/components/upload/upload-item.js +1 -1
- package/components/upload/upload.api.d.ts +2 -2
- package/components/upload/upload.d.ts +2 -2
- package/components/upload/upload.js +4 -4
- package/components/video-card/video-card.js +1 -1
- package/config/root-config-provider.js +2 -2
- package/{components/upload-context.d.ts → config/upload.d.ts} +2 -2
- package/{components/upload-context.js → config/upload.js} +3 -3
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +2 -0
- package/hooks/useObjectUrl.d.ts +2 -0
- package/hooks/useObjectUrl.js +27 -0
- package/hooks/useSingleUpload.d.ts +15 -0
- package/hooks/useSingleUpload.js +64 -0
- package/layout/layout-menu/style/index.js +1 -1
- package/locale/lang/ar.d.ts +2 -0
- package/locale/lang/ar.js +3 -1
- package/locale/lang/en.d.ts +2 -0
- package/locale/lang/en.js +3 -1
- package/locale/lang/zh-cn.d.ts +2 -0
- package/locale/lang/zh-cn.js +3 -1
- package/package.json +11 -7
- package/utils/array.d.ts +1 -1
- package/utils/browser.d.ts +1 -0
- package/utils/browser.js +3 -2
- package/utils/file.d.ts +5 -0
- package/utils/file.js +24 -1
- package/utils/index.js +2 -2
- package/utils/url.d.ts +4 -0
- package/utils/url.js +10 -0
- package/components/editor/components/button-group.vue.d.ts +0 -12
- package/components/editor/components/button-group.vue.js +0 -19
- package/components/editor/components/button.vue.d.ts +0 -17
- package/components/editor/components/button.vue.js +0 -35
- package/components/editor/components/color-picker/color-picker.vue.d.ts +0 -23
- package/components/editor/components/color-picker/color-picker.vue.js +0 -181
- package/components/editor/components/list/list.d.ts +0 -6
- package/components/editor/components/list/list.vue.d.ts +0 -11
- package/components/editor/components/list/list.vue.js +0 -51
- package/components/editor/components/picker/picker.vue.d.ts +0 -25
- package/components/editor/components/picker/picker.vue.js +0 -95
- package/components/editor/components/resize/resize.d.ts +0 -23
- package/components/editor/components/resize/resize.js +0 -88
- package/components/editor/components/resize/resize.vue.d.ts +0 -2
- package/components/editor/components/resize/resize.vue.js +0 -204
- package/components/editor/components/select-button.vue.d.ts +0 -15
- package/components/editor/components/select-button.vue.js +0 -46
- package/components/editor/components/select.vue.d.ts +0 -14
- package/components/editor/components/select.vue.js +0 -67
- package/components/editor/components/split-button.vue.d.ts +0 -22
- package/components/editor/components/split-button.vue.js +0 -69
- package/components/editor/components/table-toolbar/table-toolbar.style.d.ts +0 -4
- package/components/editor/components/table-toolbar/table-toolbar.style.js +0 -22
- package/components/editor/components/table-toolbar/table-toolbar.vue.d.ts +0 -2
- package/components/editor/components/table-toolbar/table-toolbar.vue.js +0 -182
- package/components/editor/components/toolbar/formats/align.vue.d.ts +0 -5
- package/components/editor/components/toolbar/formats/align.vue.js +0 -52
- package/components/editor/components/toolbar/formats/background.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/background.vue.js +0 -70
- package/components/editor/components/toolbar/formats/blockquote.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/blockquote.vue.js +0 -39
- package/components/editor/components/toolbar/formats/bold.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/bold.vue.js +0 -39
- package/components/editor/components/toolbar/formats/clean.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/clean.vue.js +0 -26
- package/components/editor/components/toolbar/formats/code-block.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/code-block.vue.js +0 -39
- package/components/editor/components/toolbar/formats/code.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/code.vue.js +0 -39
- package/components/editor/components/toolbar/formats/color.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/color.vue.js +0 -69
- package/components/editor/components/toolbar/formats/font.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/font.vue.js +0 -59
- package/components/editor/components/toolbar/formats/formula.d.ts +0 -4
- package/components/editor/components/toolbar/formats/formula.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/formula.vue.js +0 -154
- package/components/editor/components/toolbar/formats/header.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/header.vue.js +0 -68
- package/components/editor/components/toolbar/formats/image.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/image.vue.js +0 -26
- package/components/editor/components/toolbar/formats/indent.vue.d.ts +0 -5
- package/components/editor/components/toolbar/formats/indent.vue.js +0 -36
- package/components/editor/components/toolbar/formats/italic.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/italic.vue.js +0 -39
- package/components/editor/components/toolbar/formats/link.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/link.vue.js +0 -218
- package/components/editor/components/toolbar/formats/list.vue.d.ts +0 -5
- package/components/editor/components/toolbar/formats/list.vue.js +0 -50
- package/components/editor/components/toolbar/formats/script.vue.d.ts +0 -5
- package/components/editor/components/toolbar/formats/script.vue.js +0 -50
- package/components/editor/components/toolbar/formats/size-delta.vue.d.ts +0 -5
- package/components/editor/components/toolbar/formats/size-delta.vue.js +0 -79
- package/components/editor/components/toolbar/formats/size.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/size.vue.js +0 -56
- package/components/editor/components/toolbar/formats/source.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/source.vue.js +0 -78
- package/components/editor/components/toolbar/formats/strike.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/strike.vue.js +0 -39
- package/components/editor/components/toolbar/formats/strikethrough.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/strikethrough.vue.js +0 -39
- package/components/editor/components/toolbar/formats/table.style.d.ts +0 -4
- package/components/editor/components/toolbar/formats/table.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/table.vue.js +0 -100
- package/components/editor/components/toolbar/formats/underline.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/underline.vue.js +0 -39
- package/components/editor/components/toolbar/formats/video.vue.d.ts +0 -2
- package/components/editor/components/toolbar/formats/video.vue.js +0 -123
- package/components/editor/components/toolbar/toolbar.d.ts +0 -36
- package/components/editor/components/toolbar/toolbar.js +0 -137
- package/components/editor/components/toolbar/toolbar.vue.d.ts +0 -3
- package/components/editor/components/toolbar/toolbar.vue.js +0 -130
- package/components/editor/components/toolbar/toolbarContext.d.ts +0 -8
- package/components/editor/components/toolbar/toolbarContext.js +0 -3
- package/components/editor/formats/align.d.ts +0 -2
- package/components/editor/formats/align.js +0 -6
- package/components/editor/formats/font.d.ts +0 -7
- package/components/editor/formats/font.js +0 -36
- package/components/editor/formats/formula.d.ts +0 -9
- package/components/editor/formats/formula.js +0 -29
- package/components/editor/formats/image.d.ts +0 -13
- package/components/editor/formats/image.js +0 -46
- package/components/editor/formats/indent.d.ts +0 -10
- package/components/editor/formats/indent.js +0 -37
- package/components/editor/formats/kbd.d.ts +0 -7
- package/components/editor/formats/kbd.js +0 -13
- package/components/editor/formats/link.d.ts +0 -28
- package/components/editor/formats/link.js +0 -51
- package/components/editor/formats/list.d.ts +0 -13
- package/components/editor/formats/list.js +0 -57
- package/components/editor/formats/size.d.ts +0 -3
- package/components/editor/formats/size.js +0 -9
- package/components/editor/formats/video.d.ts +0 -16
- package/components/editor/formats/video.js +0 -44
- package/components/editor/modules/custom-list.d.ts +0 -5
- package/components/editor/modules/custom-list.js +0 -23
- package/components/editor/modules/image-uploader/formats/image-loading.d.ts +0 -16
- package/components/editor/modules/image-uploader/formats/image-loading.js +0 -31
- package/components/editor/modules/image-uploader/formats/image-loading.style.d.ts +0 -2
- package/components/editor/modules/image-uploader/formats/image-loading.style.js +0 -46
- package/components/editor/modules/image-uploader/image-uploader.d.ts +0 -18
- package/components/editor/modules/image-uploader/image-uploader.js +0 -134
- package/components/editor/modules/syntax/index.d.ts +0 -2
- package/components/editor/modules/syntax/index.js +0 -1
- package/components/editor/modules/syntax/syntaxOptions.d.ts +0 -8
- package/components/editor/modules/syntax/syntaxOptions.js +0 -23
- package/components/editor/quill.d.ts +0 -1
- package/components/editor/quill.js +0 -33
- package/components/editor/quillContext.d.ts +0 -6
- package/components/editor/quillContext.js +0 -3
- package/components/icon/icon.vue.d.ts +0 -13
- package/components/icon/icon.vue.js +0 -76
- package/components/iconify-icon/iconify-icon.vue.d.ts +0 -3
- package/components/iconify-icon/iconify-icon.vue.js +0 -38
- package/components/svg-icon/svg-icon.vue.d.ts +0 -3
- package/components/svg-icon/svg-icon.vue.js +0 -29
- /package/components/{icon/style/index.d.ts → editor/contents/content-formula.style.d.ts} +0 -0
- /package/components/editor/{components/color-picker/color-picker.d.ts → formats/color-picker.api.d.ts} +0 -0
- /package/components/editor/{components/picker/picker.d.ts → formats/picker.api.d.ts} +0 -0
- /package/components/editor/{components/picker/picker.js → formats/picker.api.js} +0 -0
- /package/components/editor/{components/color-picker → hooks}/useHistoryColor.d.ts +0 -0
- /package/components/{editor/components/list/list.js → field/components/editor/editor.js} +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Editor } from 'slate-vue3/core';
|
|
2
|
+
import { type HeadingParagraphType } from '../types';
|
|
3
|
+
declare module 'slate-vue3/core' {
|
|
4
|
+
interface BaseEditor {
|
|
5
|
+
formatHeading: (value: HeadingParagraphType) => void;
|
|
6
|
+
getActiveHeadingType: () => HeadingParagraphType;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export declare function withHeading(editor: Editor): import("../types").CustomEditor;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Editor, Path } from 'slate-vue3/core';
|
|
2
|
+
import { isNormalBlock, isHeading } from '../utils.js';
|
|
3
|
+
|
|
4
|
+
function getActiveHeadingType(editor) {
|
|
5
|
+
if (!editor.selection) return "paragraph";
|
|
6
|
+
const nodes = editor.nodes({
|
|
7
|
+
at: editor.edges(editor.selection)[0],
|
|
8
|
+
match: isHeading
|
|
9
|
+
});
|
|
10
|
+
const { done, value } = nodes.next();
|
|
11
|
+
return done ? "paragraph" : value[0].type;
|
|
12
|
+
}
|
|
13
|
+
function formatHeading(editor, value) {
|
|
14
|
+
if (!editor.selection) return;
|
|
15
|
+
const activeType = getActiveHeadingType(editor);
|
|
16
|
+
if (activeType === value) {
|
|
17
|
+
editor.setNodes(
|
|
18
|
+
{
|
|
19
|
+
type: "paragraph"
|
|
20
|
+
},
|
|
21
|
+
{ match: isNormalBlock }
|
|
22
|
+
);
|
|
23
|
+
} else {
|
|
24
|
+
editor.setNodes(
|
|
25
|
+
{
|
|
26
|
+
type: value
|
|
27
|
+
},
|
|
28
|
+
{ match: isNormalBlock }
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function insertBreak(editor) {
|
|
33
|
+
const [match] = editor.nodes({
|
|
34
|
+
match: isHeading
|
|
35
|
+
});
|
|
36
|
+
if (match) {
|
|
37
|
+
const [, path] = match;
|
|
38
|
+
const isAtEnd = Editor.isEnd(editor, editor.selection.focus, path);
|
|
39
|
+
if (isAtEnd) {
|
|
40
|
+
editor.insertNodes(
|
|
41
|
+
{
|
|
42
|
+
type: "paragraph",
|
|
43
|
+
children: [{ text: "" }]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
at: Path.next(path)
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
editor.select(Path.next(path));
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function withHeading(editor) {
|
|
55
|
+
const { insertBreak: srcInsertBreak } = editor;
|
|
56
|
+
editor.formatHeading = (value) => {
|
|
57
|
+
formatHeading(editor, value);
|
|
58
|
+
};
|
|
59
|
+
editor.insertBreak = () => {
|
|
60
|
+
if (!insertBreak(editor)) {
|
|
61
|
+
srcInsertBreak();
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
editor.getActiveHeadingType = () => {
|
|
65
|
+
return getActiveHeadingType(editor);
|
|
66
|
+
};
|
|
67
|
+
return editor;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export { withHeading };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
function isTransferCode(data) {
|
|
2
|
+
for (const type of data.types) {
|
|
3
|
+
if (type === "text/rtf" || type.includes("code") || type.includes("editor")) {
|
|
4
|
+
return true;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
function insertData(editor, data) {
|
|
9
|
+
if (editor.insertFragmentData(data)) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (isTransferCode(data)) return;
|
|
13
|
+
const html = data.getData("text/html");
|
|
14
|
+
if (html) {
|
|
15
|
+
const fragment = editor.deserialize(html);
|
|
16
|
+
editor.insertFragment(fragment);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function withHtml(editor) {
|
|
21
|
+
const { insertData: srcInsertData } = editor;
|
|
22
|
+
editor.insertData = (data) => {
|
|
23
|
+
if (!insertData(editor, data)) {
|
|
24
|
+
srcInsertData(data);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
return editor;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { withHtml };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Editor } from 'slate-vue3/core';
|
|
2
|
+
import type { CustomEditor } from '../types';
|
|
3
|
+
declare module 'slate-vue3/core' {
|
|
4
|
+
interface BaseEditor {
|
|
5
|
+
insertImage: (url: string, file?: File, width?: number | string, height?: number | string) => void;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export declare function withImage(editor: Editor): CustomEditor;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { useInheritRef } from 'slate-vue3';
|
|
2
|
+
import { h } from 'vue';
|
|
3
|
+
import stdin_default from '../contents/content-image.js';
|
|
4
|
+
import { isImageUrl } from '../../../utils/file.js';
|
|
5
|
+
|
|
6
|
+
const insertImage = (editor, url, file, width, height) => {
|
|
7
|
+
const image = { type: "image", url, width, height, file, children: [{ text: "" }] };
|
|
8
|
+
editor.insertNodes(image);
|
|
9
|
+
editor.move();
|
|
10
|
+
};
|
|
11
|
+
function insertData(editor, data) {
|
|
12
|
+
const text = data.getData("text/plain");
|
|
13
|
+
const { files } = data;
|
|
14
|
+
if (files.length > 0) {
|
|
15
|
+
Array.from(files).forEach((file) => {
|
|
16
|
+
const [mime] = file.type.split("/");
|
|
17
|
+
if (mime === "image") {
|
|
18
|
+
insertImage(editor, "", file);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return true;
|
|
22
|
+
} else if (isImageUrl(text)) {
|
|
23
|
+
insertImage(editor, text);
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function withImage(editor) {
|
|
28
|
+
const { isInline, isVoid, renderElement, insertData: srcInsertData } = editor;
|
|
29
|
+
editor.isInline = (element) => {
|
|
30
|
+
return element.type === "image" ? true : isInline(element);
|
|
31
|
+
};
|
|
32
|
+
editor.isVoid = (element) => {
|
|
33
|
+
return element.type === "image" ? true : isVoid(element);
|
|
34
|
+
};
|
|
35
|
+
editor.renderElement = (props) => {
|
|
36
|
+
const { attributes, children, element } = props;
|
|
37
|
+
if (element.type === "image") {
|
|
38
|
+
return h(
|
|
39
|
+
stdin_default,
|
|
40
|
+
{
|
|
41
|
+
...useInheritRef(attributes),
|
|
42
|
+
url: element.url,
|
|
43
|
+
width: element.width,
|
|
44
|
+
height: element.height,
|
|
45
|
+
file: element.file
|
|
46
|
+
},
|
|
47
|
+
() => children
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
return renderElement(props);
|
|
51
|
+
};
|
|
52
|
+
editor.insertData = (data) => {
|
|
53
|
+
if (!insertData(editor, data)) {
|
|
54
|
+
srcInsertData(data);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
editor.insertImage = (url, file, width, height) => {
|
|
58
|
+
insertImage(editor, url, file, width, height);
|
|
59
|
+
};
|
|
60
|
+
return editor;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { withImage };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Element } from 'slate-vue3/core';
|
|
2
|
+
|
|
3
|
+
const indentableElements = [
|
|
4
|
+
"paragraph",
|
|
5
|
+
"heading-one",
|
|
6
|
+
"heading-two",
|
|
7
|
+
"heading-three",
|
|
8
|
+
"heading-four",
|
|
9
|
+
"heading-five",
|
|
10
|
+
"heading-six",
|
|
11
|
+
"block-quote"
|
|
12
|
+
];
|
|
13
|
+
function formatIndent(editor, value) {
|
|
14
|
+
if (!editor.selection) return;
|
|
15
|
+
const nodeEntries = [
|
|
16
|
+
...editor.nodes({
|
|
17
|
+
match(node) {
|
|
18
|
+
return Element.isElement(node) && indentableElements.includes(node.type);
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
];
|
|
22
|
+
for (const entry of nodeEntries) {
|
|
23
|
+
const element = entry[0];
|
|
24
|
+
const path = entry[1];
|
|
25
|
+
let indent = "indent" in element ? element.indent || 0 : 0;
|
|
26
|
+
indent += value;
|
|
27
|
+
if (indent < 0) {
|
|
28
|
+
indent = 0;
|
|
29
|
+
}
|
|
30
|
+
editor.setNodes(
|
|
31
|
+
{
|
|
32
|
+
indent
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
at: path
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function withIndent(editor) {
|
|
41
|
+
editor.formatIndent = (value) => {
|
|
42
|
+
formatIndent(editor, value);
|
|
43
|
+
};
|
|
44
|
+
return editor;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { withIndent };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { withKeyboard } from './keyboard.js';
|
|
2
|
+
import { withList } from './list/index.js';
|
|
3
|
+
import { withHeading } from './heading.js';
|
|
4
|
+
import { withFont } from './font.js';
|
|
5
|
+
import { withColor } from './color.js';
|
|
6
|
+
import { withBackground } from './background.js';
|
|
7
|
+
import { withSize } from './size.js';
|
|
8
|
+
import { withIndent } from './indent.js';
|
|
9
|
+
import { withMark } from './mark.js';
|
|
10
|
+
import { withBlockQuote } from './block-quote.js';
|
|
11
|
+
import { withAlign } from './align.js';
|
|
12
|
+
import { withClear } from './clear.js';
|
|
13
|
+
import { withSerialize } from './serialize.js';
|
|
14
|
+
import { withRender } from './render.js';
|
|
15
|
+
import { withLink } from './link.js';
|
|
16
|
+
import { withCodeBlock } from './code-block.js';
|
|
17
|
+
import { withImage } from './image.js';
|
|
18
|
+
import { withVideo } from './video.js';
|
|
19
|
+
import { withHtml } from './html.js';
|
|
20
|
+
import { withTable } from './table.js';
|
|
21
|
+
import { withFormula } from './formula.js';
|
|
22
|
+
|
|
23
|
+
const plugins = [
|
|
24
|
+
withKeyboard,
|
|
25
|
+
withRender,
|
|
26
|
+
withIndent,
|
|
27
|
+
withHtml,
|
|
28
|
+
withList,
|
|
29
|
+
withHeading,
|
|
30
|
+
withFont,
|
|
31
|
+
withColor,
|
|
32
|
+
withBackground,
|
|
33
|
+
withSize,
|
|
34
|
+
withMark,
|
|
35
|
+
withBlockQuote,
|
|
36
|
+
withAlign,
|
|
37
|
+
withClear,
|
|
38
|
+
withSerialize,
|
|
39
|
+
withLink,
|
|
40
|
+
withCodeBlock,
|
|
41
|
+
withImage,
|
|
42
|
+
withVideo,
|
|
43
|
+
withTable,
|
|
44
|
+
withFormula
|
|
45
|
+
];
|
|
46
|
+
function withDefaultPlugins(editor) {
|
|
47
|
+
return plugins.reduce((editor2, plugin) => plugin(editor2), editor);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { withDefaultPlugins };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Editor } from 'slate-vue3/core';
|
|
2
|
+
/**
|
|
3
|
+
* Hotkeys.
|
|
4
|
+
*/
|
|
5
|
+
export declare const Hotkeys: {
|
|
6
|
+
isBold: (event: KeyboardEvent) => boolean;
|
|
7
|
+
isCompose: (event: KeyboardEvent) => boolean;
|
|
8
|
+
isMoveBackward: (event: KeyboardEvent) => boolean;
|
|
9
|
+
isMoveForward: (event: KeyboardEvent) => boolean;
|
|
10
|
+
isMoveUp: (event: KeyboardEvent) => boolean;
|
|
11
|
+
isMoveDown: (event: KeyboardEvent) => boolean;
|
|
12
|
+
isDeleteBackward: (event: KeyboardEvent) => boolean;
|
|
13
|
+
isDeleteForward: (event: KeyboardEvent) => boolean;
|
|
14
|
+
isDeleteLineBackward: (event: KeyboardEvent) => boolean;
|
|
15
|
+
isDeleteLineForward: (event: KeyboardEvent) => boolean;
|
|
16
|
+
isDeleteWordBackward: (event: KeyboardEvent) => boolean;
|
|
17
|
+
isDeleteWordForward: (event: KeyboardEvent) => boolean;
|
|
18
|
+
isExtendBackward: (event: KeyboardEvent) => boolean;
|
|
19
|
+
isExtendForward: (event: KeyboardEvent) => boolean;
|
|
20
|
+
isExtendLineBackward: (event: KeyboardEvent) => boolean;
|
|
21
|
+
isExtendLineForward: (event: KeyboardEvent) => boolean;
|
|
22
|
+
isItalic: (event: KeyboardEvent) => boolean;
|
|
23
|
+
isMoveLineBackward: (event: KeyboardEvent) => boolean;
|
|
24
|
+
isMoveLineForward: (event: KeyboardEvent) => boolean;
|
|
25
|
+
isMoveWordBackward: (event: KeyboardEvent) => boolean;
|
|
26
|
+
isMoveWordForward: (event: KeyboardEvent) => boolean;
|
|
27
|
+
isRedo: (event: KeyboardEvent) => boolean;
|
|
28
|
+
isSoftBreak: (event: KeyboardEvent) => boolean;
|
|
29
|
+
isSplitBlock: (event: KeyboardEvent) => boolean;
|
|
30
|
+
isTransposeCharacter: (event: KeyboardEvent) => boolean;
|
|
31
|
+
isUndo: (event: KeyboardEvent) => boolean;
|
|
32
|
+
isUnderline: (event: KeyboardEvent) => boolean;
|
|
33
|
+
isIndent: (event: KeyboardEvent) => boolean;
|
|
34
|
+
isOutdent: (event: KeyboardEvent) => boolean;
|
|
35
|
+
};
|
|
36
|
+
declare module 'slate-vue3/core' {
|
|
37
|
+
interface BaseEditor {
|
|
38
|
+
onKeydown: (event: KeyboardEvent) => void;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export declare function withKeyboard(editor: Editor): import("../types").CustomEditor;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { isHotkey } from 'is-hotkey';
|
|
2
|
+
import { IS_APPLE } from '../../../utils/browser.js';
|
|
3
|
+
|
|
4
|
+
const HOTKEYS = {
|
|
5
|
+
bold: "mod+b",
|
|
6
|
+
compose: ["down", "left", "right", "up", "backspace", "enter"],
|
|
7
|
+
moveBackward: "left",
|
|
8
|
+
moveForward: "right",
|
|
9
|
+
moveUp: "up",
|
|
10
|
+
moveDown: "down",
|
|
11
|
+
moveWordBackward: "ctrl+left",
|
|
12
|
+
moveWordForward: "ctrl+right",
|
|
13
|
+
deleteBackward: "shift?+backspace",
|
|
14
|
+
deleteForward: "shift?+delete",
|
|
15
|
+
extendBackward: "shift+left",
|
|
16
|
+
extendForward: "shift+right",
|
|
17
|
+
italic: "mod+i",
|
|
18
|
+
insertSoftBreak: "shift+enter",
|
|
19
|
+
splitBlock: "enter",
|
|
20
|
+
undo: "mod+z",
|
|
21
|
+
underline: "mod+u",
|
|
22
|
+
indent: "tab",
|
|
23
|
+
outdent: "shift+tab"
|
|
24
|
+
};
|
|
25
|
+
const APPLE_HOTKEYS = {
|
|
26
|
+
moveLineBackward: "opt+up",
|
|
27
|
+
moveLineForward: "opt+down",
|
|
28
|
+
moveWordBackward: "opt+left",
|
|
29
|
+
moveWordForward: "opt+right",
|
|
30
|
+
deleteBackward: ["ctrl+backspace", "ctrl+h"],
|
|
31
|
+
deleteForward: ["ctrl+delete", "ctrl+d"],
|
|
32
|
+
deleteLineBackward: "cmd+shift?+backspace",
|
|
33
|
+
deleteLineForward: ["cmd+shift?+delete", "ctrl+k"],
|
|
34
|
+
deleteWordBackward: "opt+shift?+backspace",
|
|
35
|
+
deleteWordForward: "opt+shift?+delete",
|
|
36
|
+
extendLineBackward: "opt+shift+up",
|
|
37
|
+
extendLineForward: "opt+shift+down",
|
|
38
|
+
redo: "cmd+shift+z",
|
|
39
|
+
transposeCharacter: "ctrl+t"
|
|
40
|
+
};
|
|
41
|
+
const WINDOWS_HOTKEYS = {
|
|
42
|
+
deleteWordBackward: "ctrl+shift?+backspace",
|
|
43
|
+
deleteWordForward: "ctrl+shift?+delete",
|
|
44
|
+
redo: ["ctrl+y", "ctrl+shift+z"]
|
|
45
|
+
};
|
|
46
|
+
const create = (key) => {
|
|
47
|
+
const generic = HOTKEYS[key];
|
|
48
|
+
const apple = APPLE_HOTKEYS[key];
|
|
49
|
+
const windows = WINDOWS_HOTKEYS[key];
|
|
50
|
+
const isGeneric = generic && isHotkey(generic);
|
|
51
|
+
const isApple = apple && isHotkey(apple);
|
|
52
|
+
const isWindows = windows && isHotkey(windows);
|
|
53
|
+
return (event) => {
|
|
54
|
+
if (isGeneric && isGeneric(event)) return true;
|
|
55
|
+
if (IS_APPLE && isApple && isApple(event)) return true;
|
|
56
|
+
if (!IS_APPLE && isWindows && isWindows(event)) return true;
|
|
57
|
+
return false;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
const Hotkeys = {
|
|
61
|
+
isBold: create("bold"),
|
|
62
|
+
isCompose: create("compose"),
|
|
63
|
+
isMoveBackward: create("moveBackward"),
|
|
64
|
+
isMoveForward: create("moveForward"),
|
|
65
|
+
isMoveUp: create("moveUp"),
|
|
66
|
+
isMoveDown: create("moveDown"),
|
|
67
|
+
isDeleteBackward: create("deleteBackward"),
|
|
68
|
+
isDeleteForward: create("deleteForward"),
|
|
69
|
+
isDeleteLineBackward: create("deleteLineBackward"),
|
|
70
|
+
isDeleteLineForward: create("deleteLineForward"),
|
|
71
|
+
isDeleteWordBackward: create("deleteWordBackward"),
|
|
72
|
+
isDeleteWordForward: create("deleteWordForward"),
|
|
73
|
+
isExtendBackward: create("extendBackward"),
|
|
74
|
+
isExtendForward: create("extendForward"),
|
|
75
|
+
isExtendLineBackward: create("extendLineBackward"),
|
|
76
|
+
isExtendLineForward: create("extendLineForward"),
|
|
77
|
+
isItalic: create("italic"),
|
|
78
|
+
isMoveLineBackward: create("moveLineBackward"),
|
|
79
|
+
isMoveLineForward: create("moveLineForward"),
|
|
80
|
+
isMoveWordBackward: create("moveWordBackward"),
|
|
81
|
+
isMoveWordForward: create("moveWordForward"),
|
|
82
|
+
isRedo: create("redo"),
|
|
83
|
+
isSoftBreak: create("insertSoftBreak"),
|
|
84
|
+
isSplitBlock: create("splitBlock"),
|
|
85
|
+
isTransposeCharacter: create("transposeCharacter"),
|
|
86
|
+
isUndo: create("undo"),
|
|
87
|
+
isUnderline: create("underline"),
|
|
88
|
+
isIndent: create("indent"),
|
|
89
|
+
isOutdent: create("outdent")
|
|
90
|
+
};
|
|
91
|
+
function onKeydown(editor, event) {
|
|
92
|
+
if (Hotkeys.isBold(event)) {
|
|
93
|
+
event.preventDefault();
|
|
94
|
+
return editor.formatMark("bold");
|
|
95
|
+
}
|
|
96
|
+
if (Hotkeys.isItalic(event)) {
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
return editor.formatMark("italic");
|
|
99
|
+
}
|
|
100
|
+
if (Hotkeys.isUnderline(event)) {
|
|
101
|
+
event.preventDefault();
|
|
102
|
+
return editor.formatMark("underline");
|
|
103
|
+
}
|
|
104
|
+
if (Hotkeys.isIndent(event)) {
|
|
105
|
+
event.preventDefault();
|
|
106
|
+
return editor.formatIndent(1);
|
|
107
|
+
}
|
|
108
|
+
if (Hotkeys.isOutdent(event)) {
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
return editor.formatIndent(-1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function withKeyboard(editor) {
|
|
114
|
+
editor.onKeydown = (event) => {
|
|
115
|
+
onKeydown(editor, event);
|
|
116
|
+
};
|
|
117
|
+
return editor;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { Hotkeys, withKeyboard };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Editor, Location } from 'slate-vue3/core';
|
|
2
|
+
declare module 'slate-vue3/core' {
|
|
3
|
+
interface BaseEditor {
|
|
4
|
+
formatLink: (url: string, target: string, text: string) => void;
|
|
5
|
+
unwrapLink: (at?: Location) => void;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export declare function withLink(editor: Editor): import("../types").CustomEditor;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Element } from 'slate-vue3/core';
|
|
2
|
+
import { useInheritRef } from 'slate-vue3';
|
|
3
|
+
import { h } from 'vue';
|
|
4
|
+
import stdin_default from '../contents/content-link.js';
|
|
5
|
+
|
|
6
|
+
function unwrapLink(editor, at) {
|
|
7
|
+
editor.unwrapNodes({
|
|
8
|
+
match: (n) => Element.isElement(n) && n.type === "link",
|
|
9
|
+
at
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function wrapLink(editor, url, target, text) {
|
|
13
|
+
const link = {
|
|
14
|
+
type: "link",
|
|
15
|
+
url,
|
|
16
|
+
target,
|
|
17
|
+
children: [{ text }]
|
|
18
|
+
};
|
|
19
|
+
editor.delete();
|
|
20
|
+
editor.insertNodes(link);
|
|
21
|
+
}
|
|
22
|
+
function formatLink(editor, url, target, text) {
|
|
23
|
+
unwrapLink(editor);
|
|
24
|
+
wrapLink(editor, url, target, text);
|
|
25
|
+
}
|
|
26
|
+
function withLink(editor) {
|
|
27
|
+
const { isInline, renderElement } = editor;
|
|
28
|
+
editor.isInline = (element) => {
|
|
29
|
+
return element.type === "link" ? true : isInline(element);
|
|
30
|
+
};
|
|
31
|
+
editor.renderElement = (props) => {
|
|
32
|
+
const { attributes, children, element } = props;
|
|
33
|
+
if (element.type === "link") {
|
|
34
|
+
return h(
|
|
35
|
+
stdin_default,
|
|
36
|
+
{
|
|
37
|
+
...useInheritRef(attributes),
|
|
38
|
+
url: element.url,
|
|
39
|
+
target: element.target,
|
|
40
|
+
element
|
|
41
|
+
},
|
|
42
|
+
() => children
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
return renderElement(props);
|
|
46
|
+
};
|
|
47
|
+
editor.formatLink = (url, target, text) => {
|
|
48
|
+
formatLink(editor, url, target, text);
|
|
49
|
+
};
|
|
50
|
+
editor.unwrapLink = (at) => {
|
|
51
|
+
unwrapLink(editor, at);
|
|
52
|
+
};
|
|
53
|
+
return editor;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { withLink };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Descendant } from 'slate-vue3/core';
|
|
2
|
+
import { BulletedListElement, NumberedListElement } from '../../types';
|
|
3
|
+
export declare function deserializeList(node: HTMLUListElement | HTMLOListElement, deserialize: (node: Node, markAttributes?: {}) => Descendant | null | Descendant[]): BulletedListElement | NumberedListElement;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { tagToElementTypeMap } from '../../types.js';
|
|
2
|
+
import { LIST_MAX_LEVEL } from './utils.js';
|
|
3
|
+
import { toArray } from '../../../../utils/array.js';
|
|
4
|
+
|
|
5
|
+
function deserializeListItemLike(node, deserialize) {
|
|
6
|
+
const textChildren = [];
|
|
7
|
+
const listChildren = [];
|
|
8
|
+
let listType = "";
|
|
9
|
+
for (const childNode of node.childNodes) {
|
|
10
|
+
if (childNode instanceof HTMLUListElement || childNode instanceof HTMLOListElement) {
|
|
11
|
+
if (!listType) {
|
|
12
|
+
listType = tagToElementTypeMap[childNode.tagName];
|
|
13
|
+
}
|
|
14
|
+
listChildren.push(...deserializeListLike(childNode, deserialize).children);
|
|
15
|
+
} else {
|
|
16
|
+
const result = deserialize(childNode);
|
|
17
|
+
if (Array.isArray(result)) {
|
|
18
|
+
textChildren.push(...result);
|
|
19
|
+
} else if (result) {
|
|
20
|
+
textChildren.push(result);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (textChildren.length === 0) {
|
|
25
|
+
textChildren.push({ text: "" });
|
|
26
|
+
}
|
|
27
|
+
const children = [
|
|
28
|
+
{
|
|
29
|
+
type: "list-item-text-like",
|
|
30
|
+
children: textChildren
|
|
31
|
+
}
|
|
32
|
+
];
|
|
33
|
+
if (listChildren.length > 0) {
|
|
34
|
+
children[1] = {
|
|
35
|
+
type: "list-like",
|
|
36
|
+
subType: listType,
|
|
37
|
+
children: listChildren
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
type: "list-item-like",
|
|
42
|
+
children
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function deserializeListLike(node, deserialize) {
|
|
46
|
+
const children = [];
|
|
47
|
+
for (const childNode of node.childNodes) {
|
|
48
|
+
if (childNode instanceof HTMLLIElement) {
|
|
49
|
+
children.push(deserializeListItemLike(childNode, deserialize));
|
|
50
|
+
} else if (childNode instanceof HTMLUListElement || childNode instanceof HTMLOListElement) {
|
|
51
|
+
children.push({
|
|
52
|
+
type: "list-item-like",
|
|
53
|
+
children: [
|
|
54
|
+
{
|
|
55
|
+
type: "list-item-text-like",
|
|
56
|
+
children: [{ text: "" }]
|
|
57
|
+
},
|
|
58
|
+
deserializeListLike(childNode, deserialize)
|
|
59
|
+
]
|
|
60
|
+
});
|
|
61
|
+
} else {
|
|
62
|
+
const result = deserialize(childNode);
|
|
63
|
+
if (result) {
|
|
64
|
+
children.push({
|
|
65
|
+
type: "list-item-like",
|
|
66
|
+
children: [
|
|
67
|
+
{
|
|
68
|
+
type: "list-item-text-like",
|
|
69
|
+
children: toArray(result)
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
type: "list-like",
|
|
78
|
+
subType: tagToElementTypeMap[node.tagName],
|
|
79
|
+
children
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function flatList(list, level = 0) {
|
|
83
|
+
return list.children.map(({ children: [text, subList] }) => {
|
|
84
|
+
const item = [
|
|
85
|
+
{
|
|
86
|
+
type: "list-item",
|
|
87
|
+
listType: list.subType,
|
|
88
|
+
level: Math.min(level, LIST_MAX_LEVEL - 1),
|
|
89
|
+
children: text.children
|
|
90
|
+
}
|
|
91
|
+
];
|
|
92
|
+
if (subList) {
|
|
93
|
+
item.push(...flatList(subList, level + 1));
|
|
94
|
+
}
|
|
95
|
+
return item;
|
|
96
|
+
}).flat(1);
|
|
97
|
+
}
|
|
98
|
+
function deserializeList(node, deserialize) {
|
|
99
|
+
const listLike = deserializeListLike(node, deserialize);
|
|
100
|
+
return {
|
|
101
|
+
type: tagToElementTypeMap[node.tagName],
|
|
102
|
+
children: flatList(listLike)
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { deserializeList };
|