SYMBOL INDEX (2265 symbols across 275 files)
FILE: __mocks__/cssMock.js
method process (line 2) | process() {
FILE: apps/editor/rollup.config.js
function i18nEditorImportPath (line 8) | function i18nEditorImportPath() {
function createBannerPlugin (line 19) | function createBannerPlugin(type) {
FILE: apps/editor/scripts/createConfigVariable.js
function getTestUrls (line 11) | function getTestUrls() {
function getGlobalVariable (line 28) | function getGlobalVariable() {
FILE: apps/editor/scripts/createIndexPage.js
function writeData (line 35) | function writeData(dir) {
FILE: apps/editor/scripts/webpack.config.i18n.js
function getOptimizationConfig (line 11) | function getOptimizationConfig(minify) {
function getEntries (line 26) | function getEntries() {
FILE: apps/editor/src/__test__/integration/ui/layout.spec.ts
constant EDITOR_CLASS (line 7) | const EDITOR_CLASS = 'toastui-editor';
function getElement (line 9) | function getElement(selector: string) {
function getElements (line 13) | function getElements(selector: string) {
function getEditorMain (line 17) | function getEditorMain() {
function getMdEditor (line 21) | function getMdEditor() {
function getMdPreview (line 25) | function getMdPreview() {
function getWwEditor (line 29) | function getWwEditor() {
function getMdSwitch (line 33) | function getMdSwitch() {
function getWwSwitch (line 37) | function getWwSwitch() {
function clickMdSwitch (line 41) | function clickMdSwitch() {
function clickWwSwitch (line 45) | function clickWwSwitch() {
function getMdWriteTab (line 49) | function getMdWriteTab() {
function getMdPreviewTab (line 53) | function getMdPreviewTab() {
function getScrollSyncWrapper (line 57) | function getScrollSyncWrapper() {
function clickMdWriteTab (line 63) | function clickMdWriteTab() {
function clickMdPreviewTab (line 67) | function clickMdPreviewTab() {
function assertToContainElement (line 71) | function assertToContainElement(el: HTMLElement) {
FILE: apps/editor/src/__test__/integration/ui/toolbar.spec.ts
function getElement (line 6) | function getElement(selector: string) {
function getPopUpElement (line 10) | function getPopUpElement() {
function fireMousemoveEvent (line 14) | function fireMousemoveEvent(el: HTMLElement, x: number, y: number) {
function fireMouseoverEvent (line 28) | function fireMouseoverEvent(el: HTMLElement) {
function createCustomButtonWithPopup (line 356) | function createCustomButtonWithPopup() {
function getToolbarItems (line 468) | function getToolbarItems() {
FILE: apps/editor/src/__test__/integration/vdom/render.spec.ts
type Props (line 7) | interface Props {
type State (line 14) | interface State {
class TestComponent (line 19) | class TestComponent extends Component {
method constructor (line 20) | constructor(props: Props) {
method show (line 28) | show() {
method hide (line 32) | hide() {
method conditionalRender (line 36) | conditionalRender() {
method mounted (line 40) | mounted() {
method updated (line 46) | updated() {
method beforeDestroy (line 52) | beforeDestroy() {
method render (line 58) | render() {
function clickShowBtn (line 170) | function clickShowBtn() {
function clickHideBtn (line 174) | function clickHideBtn() {
function clickConditionalBtn (line 178) | function clickConditionalBtn() {
function renderComponent (line 182) | function renderComponent(spies?: Record) {
FILE: apps/editor/src/__test__/integration/widget/widgetNode.spec.ts
function getPreviewHTML (line 13) | function getPreviewHTML() {
method toDOM (line 24) | toDOM(text) {
FILE: apps/editor/src/__test__/unit/convertor.spec.ts
function createSchema (line 17) | function createSchema() {
function assertConverting (line 34) | function assertConverting(markdown: string, expected: string) {
function createCustomConvertor (line 822) | function createCustomConvertor(customConvertor: ToMdConvertorMap) {
method thematicBreak (line 829) | thematicBreak() {
method thematicBreak (line 843) | thematicBreak() {
method thematicBreak (line 857) | thematicBreak() {
method thematicBreak (line 871) | thematicBreak(_: NodeInfo | MarkInfo, { origin }: ToMdConvertorContext) {
method heading (line 883) | heading({ node }: NodeInfo | MarkInfo, { origin }: ToMdConvertorContext) {
function assertFrontMatterConverting (line 922) | function assertFrontMatterConverting(markdown: string, expected: string) {
function createConvertorWithHTMLRenderer (line 948) | function createConvertorWithHTMLRenderer() {
function createCustomConvertor (line 1010) | function createCustomConvertor(customConvertor: HTMLConvertorMap) {
method paragraph (line 1017) | paragraph(_: MdNode, { entering, origin, options }: Context) {
FILE: apps/editor/src/__test__/unit/editor.spec.ts
constant HEADING_CLS (line 14) | const HEADING_CLS = `${cls('md-heading')} ${cls('md-heading1')}`;
constant DELIM_CLS (line 15) | const DELIM_CLS = cls('md-delimiter');
function getPreviewHTML (line 24) | function getPreviewHTML() {
method toDOM (line 40) | toDOM(text) {
function createEditor (line 652) | function createEditor(options: EditorOptions) {
method paragraph (line 916) | paragraph(_, { entering, origin }) {
method link (line 938) | link(_, { origin }) {
function mockDefaultImageBlobHook (line 1007) | function mockDefaultImageBlobHook() {
FILE: apps/editor/src/__test__/unit/eventEmitter.spec.ts
function triggerEvent (line 208) | function triggerEvent(apiName: 'emit' | 'emitReduce') {
FILE: apps/editor/src/__test__/unit/helper/image.spec.ts
function mockReadAsDataURL (line 11) | function mockReadAsDataURL() {
FILE: apps/editor/src/__test__/unit/markdown/keymap.spec.ts
function forceKeymapFn (line 19) | function forceKeymapFn(type: string, methodName: string, args: any[] = [...
function forceBackspaceKeymap (line 28) | function forceBackspaceKeymap() {
function getPreviewHTML (line 36) | function getPreviewHTML() {
function assertSelection (line 40) | function assertSelection(mdPos: Sourcepos) {
function execUndo (line 44) | function execUndo() {
FILE: apps/editor/src/__test__/unit/markdown/mdCommand.spec.ts
function execUndo (line 13) | function execUndo() {
function getPreviewHTML (line 19) | function getPreviewHTML() {
FILE: apps/editor/src/__test__/unit/markdown/mdEditor.spec.ts
function getSelectedText (line 6) | function getSelectedText() {
function getEditorHTML (line 10) | function getEditorHTML(editor: MarkdownEditor) {
FILE: apps/editor/src/__test__/unit/markdown/mdPreview.spec.ts
function getHTML (line 8) | function getHTML(preview: MarkdownPreview) {
function init (line 67) | function init(highlight: boolean) {
function setMarkdown (line 85) | function setMarkdown(markdown: string) {
function setCursor (line 89) | function setCursor(caret: MdPos) {
function blur (line 93) | function blur() {
function getHighlightedCount (line 97) | function getHighlightedCount() {
function assertHighlighted (line 101) | function assertHighlighted(tagName: string, html: string) {
function createPreviewWithHTMLRenderer (line 223) | function createPreviewWithHTMLRenderer() {
FILE: apps/editor/src/__test__/unit/markdown/smartTask.spec.ts
function dispatchKeyup (line 8) | function dispatchKeyup() {
FILE: apps/editor/src/__test__/unit/markdown/syntaxHighlight.spec.ts
function getEditorHTML (line 6) | function getEditorHTML(editor: MarkdownEditor) {
FILE: apps/editor/src/__test__/unit/markdown/util.ts
function getTextContent (line 5) | function getTextContent(editor: MarkdownEditor) {
function removeDataAttr (line 21) | function removeDataAttr(html: string) {
function createHTMLrenderer (line 25) | function createHTMLrenderer() {
class TestEditorWithNoneDelayHistory (line 50) | class TestEditorWithNoneDelayHistory extends MarkdownEditor {
method defaultPlugins (line 51) | get defaultPlugins() {
FILE: apps/editor/src/__test__/unit/vdom/template.spec.ts
class TestComponent (line 5) | class TestComponent extends Component {
method render (line 6) | render() {
FILE: apps/editor/src/__test__/unit/viewer.spec.ts
function getViewerHTML (line 8) | function getViewerHTML() {
FILE: apps/editor/src/__test__/unit/wysiwyg/customBlock.spec.ts
function createCustomBlockNode (line 10) | function createCustomBlockNode() {
method myCustom (line 22) | myCustom(node) {
FILE: apps/editor/src/__test__/unit/wysiwyg/keymap.spec.ts
constant CELL_SELECTION_CLS (line 17) | const CELL_SELECTION_CLS = cls('cell-selected');
constant CODE_BLOCK_CLS (line 18) | const CODE_BLOCK_CLS = cls('ww-code-block');
function setContent (line 24) | function setContent(content: string) {
function forceKeymapFn (line 34) | function forceKeymapFn(type: string, methodName: string, args: any[] = [...
function selectCells (line 43) | function selectCells(from: number, to: number) {
function forceBackspaceKeymap (line 478) | function forceBackspaceKeymap() {
FILE: apps/editor/src/__test__/unit/wysiwyg/wwCommand.spec.ts
constant CODE_BLOCK_CLS (line 13) | const CODE_BLOCK_CLS = cls('ww-code-block');
function setTextToEditor (line 18) | function setTextToEditor(text: string) {
function setContent (line 29) | function setContent(content: string) {
method myCustom (line 41) | myCustom(node) {
FILE: apps/editor/src/__test__/unit/wysiwyg/wwEditor.spec.ts
function assertToContainHTML (line 17) | function assertToContainHTML(html: string) {
function setContent (line 21) | function setContent(content: string) {
FILE: apps/editor/src/__test__/unit/wysiwyg/wwTableCommand.spec.ts
constant CELL_SELECTION_CLS (line 12) | const CELL_SELECTION_CLS = cls('cell-selected');
function selectCells (line 17) | function selectCells(from: number, to: number) {
function setCellSelection (line 28) | function setCellSelection(
FILE: apps/editor/src/__test__/unit/wysiwyg/wwToDOMAdaptor.spec.ts
function createText (line 14) | function createText(text: string) {
function createNode (line 18) | function createNode(
function createMark (line 26) | function createMark(type: string, attrs?: { [key: string]: any } | null) {
method code (line 32) | code() {
method heading (line 39) | heading(node, { entering }) {
method codeBlock (line 47) | codeBlock(node) {
method emph (line 63) | emph(_, { entering }) {
method nav (line 73) | nav(node) {
method big (line 83) | big(node: MdLikeNode, { entering }: Context) {
function getHTML (line 250) | function getHTML(node: Node) {
FILE: apps/editor/src/base.ts
method constructor (line 49) | constructor(eventEmitter: Emitter) {
method createState (line 63) | createState() {
method initEvent (line 70) | protected initEvent() {
method emitChangeEvent (line 77) | protected emitChangeEvent(tr: Transaction) {
method defaultPlugins (line 84) | get defaultPlugins() {
method createInputRules (line 101) | private createInputRules() {
method clearTimer (line 133) | private clearTimer() {
method createSchema (line 140) | createSchema() {
method createKeymaps (line 147) | createKeymaps(useCommandShortcut: boolean) {
method createCommands (line 158) | createCommands() {
method createPluginProps (line 162) | createPluginProps() {
method focus (line 166) | focus() {
method blur (line 175) | blur() {
method destroy (line 179) | destroy() {
method moveCursorToStart (line 187) | moveCursorToStart(focus: boolean) {
method moveCursorToEnd (line 196) | moveCursorToEnd(focus: boolean) {
method setScrollTop (line 208) | setScrollTop(top: number) {
method getScrollTop (line 212) | getScrollTop() {
method setPlaceholder (line 216) | setPlaceholder(text: string) {
method setHeight (line 221) | setHeight(height: number) {
method setMinHeight (line 225) | setMinHeight(minHeight: number) {
method getElement (line 229) | getElement() {
FILE: apps/editor/src/commands/commandManager.ts
type GetEditorType (line 5) | type GetEditorType = () => EditorType;
class CommandManager (line 6) | class CommandManager {
method constructor (line 15) | constructor(
method initEvent (line 28) | private initEvent() {
method addCommand (line 34) | addCommand(type: EditorType, name: string, command: EditorCommandFn) {
method deleteCommand (line 42) | deleteCommand(type: EditorType, name: string) {
method exec (line 50) | exec(name: string, payload?: Record) {
FILE: apps/editor/src/commands/defaultCommands.ts
function getDefaultCommands (line 6) | function getDefaultCommands(): Record {
FILE: apps/editor/src/commands/wwCommands.ts
function indent (line 6) | function indent(): EditorCommand {
function outdent (line 20) | function outdent(): EditorCommand {
function getWwCommands (line 34) | function getWwCommands(): Record {
FILE: apps/editor/src/convertors/convertor.ts
class Convertor (line 13) | class Convertor {
method constructor (line 26) | constructor(
method getMappedPos (line 45) | getMappedPos() {
method getInfoForPosSync (line 53) | private getInfoForPosSync() {
method toWysiwygModel (line 57) | toWysiwygModel(mdNode: MdNode) {
method toMarkdownText (line 63) | toMarkdownText(wwNode: ProsemirrorNode) {
FILE: apps/editor/src/convertors/toMarkdown/toMdConvertorState.ts
class ToMdConvertorState (line 14) | class ToMdConvertorState {
method constructor (line 31) | constructor({ nodeTypeConvertors, markTypeConvertors }: ToMdConvertors) {
method getMarkConvertor (line 42) | private getMarkConvertor(mark: Mark) {
method isInBlank (line 48) | private isInBlank() {
method markText (line 52) | private markText(mark: Mark, entering: boolean, parent: Node, index: n...
method setDelim (line 64) | setDelim(delim: string) {
method getDelim (line 68) | getDelim() {
method flushClose (line 72) | flushClose(size?: number) {
method wrapBlock (line 99) | wrapBlock(delim: string, firstDelim: string | null, node: Node, fn: ()...
method ensureNewLine (line 109) | ensureNewLine() {
method write (line 115) | write(content = '') {
method closeBlock (line 127) | closeBlock(node: Node) {
method text (line 131) | text(text: string, escaped = true) {
method convertBlock (line 144) | convertBlock(node: Node, parent: Node, index: number) {
method convertInline (line 156) | convertInline(parent: Node) {
method convertList (line 295) | convertList(node: Node, delim: string, firstDelimFn: FirstDelimFn) {
method convertTableCell (line 318) | convertTableCell(node: Node) {
method convertNode (line 343) | convertNode(parent: Node, infoForPosSync?: InfoForPosSync | null) {
FILE: apps/editor/src/convertors/toMarkdown/toMdConvertors.ts
function addBackticks (line 19) | function addBackticks(node: ProsemirrorNode, side: number) {
function getPairRawHTML (line 46) | function getPairRawHTML(rawHTML?: string[]) {
function getOpenRawHTML (line 50) | function getOpenRawHTML(rawHTML?: string) {
function getCloseRawHTML (line 54) | function getCloseRawHTML(rawHTML?: string) {
method heading (line 59) | heading({ node }) {
method codeBlock (line 74) | codeBlock({ node }) {
method blockQuote (line 84) | blockQuote({ node }) {
method bulletList (line 91) | bulletList({ node }, { inTable }) {
method orderedList (line 104) | orderedList({ node }, { inTable }) {
method listItem (line 116) | listItem({ node }, { inTable }) {
method table (line 132) | table({ node }) {
method tableHead (line 138) | tableHead({ node }) {
method tableBody (line 144) | tableBody({ node }) {
method tableRow (line 150) | tableRow({ node }) {
method tableHeadCell (line 156) | tableHeadCell({ node }) {
method tableBodyCell (line 162) | tableBodyCell({ node }) {
method image (line 168) | image({ node }) {
method thematicBreak (line 183) | thematicBreak({ node }) {
method customBlock (line 190) | customBlock({ node }) {
method frontMatter (line 199) | frontMatter({ node }) {
method widget (line 205) | widget({ node }) {
method strong (line 211) | strong({ node }, { entering }) {
method emph (line 220) | emph({ node }, { entering }) {
method strike (line 229) | strike({ node }, { entering }) {
method link (line 238) | link({ node }, { entering }) {
method code (line 257) | code({ node, parent, index = 0 }, { entering }) {
method htmlComment (line 271) | htmlComment({ node }) {
method html (line 278) | html({ node }, { entering }) {
function createNodeTypeConvertors (line 327) | function createNodeTypeConvertors(convertors: ToMdConvertorMap) {
function createMarkTypeConvertors (line 351) | function createMarkTypeConvertors(convertors: ToMdConvertorMap) {
function createMdConvertors (line 386) | function createMdConvertors(customConvertors: ToMdConvertorMap) {
FILE: apps/editor/src/convertors/toMarkdown/toMdNodeTypeWriters.ts
function convertToRawHTMLHavingInlines (line 15) | function convertToRawHTMLHavingInlines(
function convertToRawHTMLHavingBlocks (line 25) | function convertToRawHTMLHavingBlocks(
function createTableHeadDelim (line 41) | function createTableHeadDelim(textContent: string, columnAlign: ColumnAl...
method text (line 62) | text(state, { node }) {
method paragraph (line 72) | paragraph(state, { node, parent, index = 0 }) {
method heading (line 107) | heading(state, { node }, { delim }) {
method codeBlock (line 122) | codeBlock(state, { node }, { delim, text }) {
method blockQuote (line 133) | blockQuote(state, { node, parent }, { delim }) {
method bulletList (line 141) | bulletList(state, { node }, { delim }) {
method orderedList (line 146) | orderedList(state, { node }) {
method listItem (line 157) | listItem(state, { node }) {
method image (line 167) | image(state, _, { attrs }) {
method thematicBreak (line 171) | thematicBreak(state, { node }, { delim }) {
method table (line 176) | table(state, { node }) {
method tableHead (line 181) | tableHead(state, { node }, { delim }) {
method tableBody (line 200) | tableBody(state, { node }) {
method tableRow (line 204) | tableRow(state, { node }) {
method tableHeadCell (line 210) | tableHeadCell(state, { node }, { delim = '| ' }) {
method tableBodyCell (line 216) | tableBodyCell(state, { node }, { delim = '| ' }) {
method customBlock (line 222) | customBlock(state, { node }, { delim, text }) {
method frontMatter (line 233) | frontMatter(state, { node }, { text }) {
method widget (line 238) | widget(state, _, { text }) {
method html (line 242) | html(state, { node }, { text }) {
method htmlComment (line 250) | htmlComment(state, { node }, { text }) {
function write (line 256) | function write(
FILE: apps/editor/src/convertors/toWysiwyg/htmlToWwConvertors.ts
function getTextWithoutTrailingNewline (line 12) | function getTextWithoutTrailingNewline(text: string) {
function isCustomHTMLInlineNode (line 16) | function isCustomHTMLInlineNode({ schema }: ToWwConvertorState, node: Md...
function isInlineNode (line 29) | function isInlineNode({ type }: MdNode) {
function isSoftbreak (line 33) | function isSoftbreak(mdNode: MdNode | null) {
function isListNode (line 37) | function isListNode({ type, literal }: MdNode) {
function getListItemAttrs (line 52) | function getListItemAttrs({ literal }: MdNode) {
function getMatchedAttributeValue (line 59) | function getMatchedAttributeValue(rawHTML: string, ...attrNames: string[...
function createConvertors (line 69) | function createConvertors(convertors: HTMLToWwConvertorMap) {
FILE: apps/editor/src/convertors/toWysiwyg/toWwConvertorState.ts
function mergeMarkText (line 8) | function mergeMarkText(a: Node, b: Node) {
class ToWwConvertorState (line 18) | class ToWwConvertorState {
method constructor (line 27) | constructor(schema: Schema, convertors: ToWwConvertorMap) {
method top (line 34) | top() {
method push (line 38) | push(node: Node) {
method addText (line 44) | addText(text: string) {
method openMark (line 59) | openMark(mark: Mark) {
method closeMark (line 63) | closeMark(mark: MarkType) {
method addNode (line 67) | addNode(type: NodeType, attrs: Attrs, content: Node[]) {
method openNode (line 79) | openNode(type: NodeType, attrs: Attrs) {
method closeNode (line 83) | closeNode() {
method convertByDOMParser (line 93) | convertByDOMParser(root: HTMLElement) {
method closeUnmatchedHTMLInline (line 99) | private closeUnmatchedHTMLInline(node: MdNode, entering: boolean) {
method convert (line 120) | private convert(mdNode: MdNode, infoForPosSync?: InfoForPosSync) {
method convertNode (line 166) | convertNode(mdNode: MdNode, infoForPosSync?: InfoForPosSync) {
FILE: apps/editor/src/convertors/toWysiwyg/toWwConvertors.ts
function isBRTag (line 33) | function isBRTag(node: MdNode) {
function addRawHTMLAttributeToDOM (line 37) | function addRawHTMLAttributeToDOM(parent: Node) {
method text (line 52) | text(state, node) {
method paragraph (line 56) | paragraph(state, node, { entering }, customAttrs) {
method heading (line 73) | heading(state, node, { entering }, customAttrs) {
method codeBlock (line 83) | codeBlock(state, node, customAttrs) {
method list (line 92) | list(state, node, { entering }, customAttrs) {
method item (line 107) | item(state, node, { entering }, customAttrs) {
method blockQuote (line 124) | blockQuote(state, _, { entering }, customAttrs) {
method image (line 132) | image(state, node, { entering, skipChildren }, customAttrs) {
method thematicBreak (line 147) | thematicBreak(state, node, _, customAttrs) {
method strong (line 151) | strong(state, _, { entering }, customAttrs) {
method emph (line 161) | emph(state, _, { entering }, customAttrs) {
method link (line 171) | link(state, node, { entering }, customAttrs) {
method softbreak (line 188) | softbreak(state, node) {
method table (line 203) | table(state, _, { entering }, customAttrs) {
method tableHead (line 211) | tableHead(state, _, { entering }, customAttrs) {
method tableBody (line 219) | tableBody(state, _, { entering }, customAttrs) {
method tableRow (line 227) | tableRow(state, _, { entering }, customAttrs) {
method tableCell (line 235) | tableCell(state, node, { entering }) {
method strike (line 267) | strike(state, _, { entering }, customAttrs) {
method code (line 277) | code(state, node, _, customAttrs) {
method customBlock (line 285) | customBlock(state, node) {
method frontMatter (line 299) | frontMatter(state, node) {
method htmlInline (line 305) | htmlInline(state, node) {
method htmlBlock (line 331) | htmlBlock(state, node) {
method customInline (line 363) | customInline(state, node, { entering, skipChildren }) {
function createWwConvertors (line 387) | function createWwConvertors(customConvertors: HTMLConvertorMap) {
FILE: apps/editor/src/editor.ts
class ToastUIEditor (line 13) | class ToastUIEditor extends EditorCore {
method constructor (line 16) | constructor(options: EditorOptions) {
method factory (line 57) | static factory(options: (EditorOptions | ViewerOptions) & { viewer?: b...
method insertToolbarItem (line 66) | insertToolbarItem(indexInfo: IndexList, item: string | ToolbarItemOpti...
method removeToolbarItem (line 74) | removeToolbarItem(itemName: string) {
method destroy (line 81) | destroy() {
FILE: apps/editor/src/editorCore.ts
class ToastUIEditorCore (line 90) | class ToastUIEditorCore {
method constructor (line 125) | constructor(options: EditorOptions) {
method addInitEvent (line 296) | private addInitEvent() {
method addInitCommand (line 312) | private addInitCommand(mdCommands: PluginCommandMap, wwCommands: Plugi...
method getCurrentModeEditor (line 327) | private getCurrentModeEditor() {
method factory (line 336) | static factory(options: (EditorOptions | ViewerOptions) & { viewer?: b...
method setLanguage (line 345) | static setLanguage(code: string | string[], data: Record) {
method addCommand (line 374) | addCommand(type: EditorType, name: string, command: CommandFn) {
method on (line 389) | on(type: string, handler: Handler) {
method off (line 397) | off(type: string) {
method addHook (line 406) | addHook(type: string, handler: Handler) {
method removeHook (line 415) | removeHook(type: string) {
method focus (line 422) | focus() {
method blur (line 429) | blur() {
method moveCursorToEnd (line 437) | moveCursorToEnd(focus = true) {
method moveCursorToStart (line 445) | moveCursorToStart(focus = true) {
method setMarkdown (line 454) | setMarkdown(markdown = '', cursorToEnd = true) {
method setHTML (line 470) | setHTML(html = '', cursorToEnd = true) {
method getMarkdown (line 488) | getMarkdown() {
method getHTML (line 500) | getHTML() {
method insertText (line 527) | insertText(text: string) {
method setSelection (line 536) | setSelection(start: EditorPos, end?: EditorPos) {
method replaceSelection (line 546) | replaceSelection(text: string, start?: EditorPos, end?: EditorPos) {
method deleteSelection (line 555) | deleteSelection(start?: EditorPos, end?: EditorPos) {
method getSelectedText (line 565) | getSelectedText(start?: EditorPos, end?: EditorPos) {
method getRangeInfoOfNode (line 584) | getRangeInfoOfNode(pos?: EditorPos) {
method addWidget (line 594) | addWidget(node: Node, style: WidgetStyle, pos?: EditorPos) {
method replaceWithWidget (line 604) | replaceWithWidget(start: EditorPos, end: EditorPos, text: string) {
method setHeight (line 612) | setHeight(height: string) {
method getHeight (line 632) | getHeight() {
method setMinHeight (line 640) | setMinHeight(minHeight: string) {
method getMinHeight (line 663) | getMinHeight() {
method isMarkdownMode (line 671) | isMarkdownMode() {
method isWysiwygMode (line 679) | isWysiwygMode() {
method isViewer (line 687) | isViewer() {
method getCurrentPreviewStyle (line 695) | getCurrentPreviewStyle() {
method changeMode (line 704) | changeMode(mode: EditorType, withoutFocus?: boolean) {
method destroy (line 741) | destroy() {
method hide (line 753) | hide() {
method show (line 760) | show() {
method setScrollTop (line 768) | setScrollTop(value: number) {
method getScrollTop (line 776) | getScrollTop() {
method reset (line 783) | reset() {
method getSelection (line 802) | getSelection() {
method setPlaceholder (line 810) | setPlaceholder(placeholder: string) {
method getEditorElements (line 819) | getEditorElements() {
method convertPosToMatchEditorMode (line 833) | convertPosToMatchEditorMode(start: EditorPos, end = start, mode = this...
FILE: apps/editor/src/event/eventEmitter.ts
class EventEmitter (line 47) | class EventEmitter implements Emitter {
method constructor (line 54) | constructor() {
method listen (line 71) | listen(type: string, handler: Handler) {
method emit (line 93) | emit(type: string, ...args: any[]) {
method emitReduce (line 117) | emitReduce(type: string, source: any, ...args: any[]) {
method getTypeInfo (line 139) | private getTypeInfo(type: string) {
method hasEventType (line 154) | private hasEventType(type: string) {
method addEventType (line 162) | addEventType(type: string) {
method removeEventHandler (line 175) | removeEventHandler(eventType: string, handler?: Handler) {
method removeEventHandlerWithHandler (line 197) | private removeEventHandlerWithHandler(type: string, handler: Handler) {
method removeEventHandlerWithTypeInfo (line 215) | private removeEventHandlerWithTypeInfo(type: string, namespace: string) {
method getEvents (line 234) | getEvents() {
method holdEventInvoke (line 238) | holdEventInvoke(fn: Function) {
FILE: apps/editor/src/helper/image.ts
function addDefaultImageBlobHook (line 6) | function addDefaultImageBlobHook(eventEmitter: Emitter) {
function emitImageBlobHook (line 15) | function emitImageBlobHook(eventEmitter: Emitter, blob: File, type: stri...
function pasteImageOnly (line 26) | function pasteImageOnly(items: DataTransferItemList) {
FILE: apps/editor/src/helper/manipulation.ts
type ReplacePayload (line 6) | interface ReplacePayload {
function createParagraph (line 14) | function createParagraph(schema: Schema, content?: string | ProsemirrorN...
function createTextNode (line 23) | function createTextNode(schema: Schema, text: string, marks?: Mark[]) {
function createTextSelection (line 27) | function createTextSelection(tr: Transaction, from: number, to = from) {
function addParagraph (line 34) | function addParagraph(tr: Transaction, { pos }: ResolvedPos, schema: Sch...
function replaceTextNode (line 40) | function replaceTextNode({ state, from, startIndex, endIndex, createText...
function splitAndExtendBlock (line 56) | function splitAndExtendBlock(
FILE: apps/editor/src/helper/plugin.ts
function execPlugin (line 14) | function execPlugin(pluginInfo: EditorPluginInfo) {
function getPluginInfo (line 43) | function getPluginInfo(pluginsInfo: EditorPluginsInfo) {
FILE: apps/editor/src/i18n/i18n.ts
constant DEFAULT_CODE (line 8) | const DEFAULT_CODE = 'en-US';
class I18n (line 14) | class I18n {
method constructor (line 19) | constructor() {
method setCode (line 24) | setCode(code?: string) {
method setLanguage (line 33) | setLanguage(codes: string | string[], data: Record) {
method get (line 47) | get(key: string, code?: string) {
FILE: apps/editor/src/markdown/helper/list.ts
type ToListContext (line 7) | interface ToListContext {
type ExtendListContext (line 15) | type ExtendListContext = Omit;
type ChangedListInfo (line 17) | interface ChangedListInfo {
type ToListResult (line 22) | interface ToListResult {
type ExtendedResult (line 28) | type ExtendedResult = {
type ListType (line 34) | type ListType = 'bullet' | 'ordered';
type ListToListFn (line 35) | type ListToListFn = (context: ToListContext) => ToListResult;
type NodeToListFn (line 36) | type NodeToListFn = (context: ToListContext) => ToListResult;
type ExtendListFn (line 37) | type ExtendListFn = (context: ExtendListContext) => ExtendedResult;
type ItemInfo (line 39) | interface ItemInfo {
type ListToList (line 45) | interface ListToList {
type NodeToList (line 51) | interface NodeToList {
type ExtendList (line 57) | interface ExtendList {
function getListType (line 70) | function getListType(text: string): ListType {
function getListDepth (line 74) | function getListDepth(mdNode: MdNode) {
function findSameDepthList (line 86) | function findSameDepthList(
function getSameDepthItems (line 112) | function getSameDepthItems({ toastMark, mdNode, line }: ToListContext) {
function textToBullet (line 120) | function textToBullet(text: string) {
function textToOrdered (line 135) | function textToOrdered(text: string, ordinalNum: number) {
function getChangedInfo (line 155) | function getChangedInfo(
function getBulletOrOrdered (line 178) | function getBulletOrOrdered(type: ListType, context: ToListContext) {
method bullet (line 185) | bullet(context) {
method ordered (line 188) | ordered(context) {
method task (line 191) | task({ mdNode, doc, line }) {
method bullet (line 205) | bullet({ doc, line }) {
method ordered (line 211) | ordered({ toastMark, doc, line, startLine }) {
method task (line 245) | task({ doc, line }) {
method bullet (line 254) | bullet({ line, doc }: ExtendListContext) {
method ordered (line 260) | ordered({ toastMark, line, mdNode, doc }: ExtendListContext) {
function getReorderedListInfo (line 283) | function getReorderedListInfo(
FILE: apps/editor/src/markdown/helper/mdCommand.ts
type ConditionFn (line 6) | type ConditionFn = (text: string) => boolean;
type Condition (line 7) | type Condition = RegExp | ConditionFn;
function toggleMark (line 9) | function toggleMark(condition: Condition, syntax: string): EditorCommand {
FILE: apps/editor/src/markdown/helper/pos.ts
function resolveSelectionPos (line 6) | function resolveSelectionPos(selection: Selection) {
function getMdLine (line 15) | function getMdLine(resolvedPos: ResolvedPos) {
function getWidgetNodePos (line 19) | function getWidgetNodePos(node: ProsemirrorNode, chPos: number, directio...
function getEditorToMdPos (line 32) | function getEditorToMdPos(doc: ProsemirrorNode, from: number, to = from)...
function getStartPosListPerLine (line 63) | function getStartPosListPerLine(doc: ProsemirrorNode, endIndex: number) {
function getMdToEditorPos (line 76) | function getMdToEditorPos(doc: ProsemirrorNode, startPos: MdPos, endPos:...
function getRangeInfo (line 94) | function getRangeInfo(selection: Selection) {
function getNodeContentOffsetRange (line 120) | function getNodeContentOffsetRange(doc: ProsemirrorNode, targetIndex: nu...
FILE: apps/editor/src/markdown/helper/query.ts
function getTextByMdLine (line 3) | function getTextByMdLine(doc: ProsemirrorNode, mdLine: number) {
function getTextContent (line 7) | function getTextContent(doc: ProsemirrorNode, index: number) {
FILE: apps/editor/src/markdown/htmlRenderConvertors.ts
type TokenAttrs (line 20) | type TokenAttrs = Record;
method paragraph (line 25) | paragraph(_, { entering, origin, options }: Context) {
method softbreak (line 37) | softbreak(node: MdNode) {
method item (line 45) | item(node: MdNode, { entering }: Context) {
method code (line 75) | code(node: MdNode) {
method codeBlock (line 85) | codeBlock(node: MdNode) {
method customInline (line 110) | customInline(node: MdNode, { origin, entering, skipChildren }: Context) {
function getHTMLRenderConvertors (line 128) | function getHTMLRenderConvertors(
FILE: apps/editor/src/markdown/marks/blockQuote.ts
class BlockQuote (line 17) | class BlockQuote extends Mark {
method name (line 18) | get name() {
method schema (line 22) | get schema() {
method createBlockQuoteText (line 30) | private createBlockQuoteText(text: string, isBlockQuote?: boolean) {
method extendBlockQuote (line 34) | private extendBlockQuote(): Command {
method commands (line 59) | commands(): EditorCommand {
method keymaps (line 77) | keymaps() {
FILE: apps/editor/src/markdown/marks/code.ts
class Code (line 10) | class Code extends Mark {
method name (line 11) | get name() {
method schema (line 15) | get schema() {
method commands (line 41) | commands(): EditorCommand {
method keymaps (line 45) | keymaps() {
FILE: apps/editor/src/markdown/marks/codeBlock.ts
class CodeBlock (line 13) | class CodeBlock extends Mark {
method name (line 16) | get name() {
method schema (line 20) | get schema() {
method commands (line 28) | commands(): EditorCommand {
method keepIndentation (line 50) | private keepIndentation(): Command {
method keymaps (line 76) | keymaps() {
FILE: apps/editor/src/markdown/marks/customBlock.ts
class CustomBlock (line 10) | class CustomBlock extends Mark {
method name (line 11) | get name() {
method schema (line 15) | get schema() {
method commands (line 23) | commands(): EditorCommand {
FILE: apps/editor/src/markdown/marks/emph.ts
class Emph (line 10) | class Emph extends Mark {
method name (line 11) | get name() {
method schema (line 15) | get schema() {
method italic (line 23) | private italic(): EditorCommand {
method commands (line 27) | commands() {
method keymaps (line 31) | keymaps() {
FILE: apps/editor/src/markdown/marks/heading.ts
type Payload (line 10) | interface Payload {
class Heading (line 14) | class Heading extends Mark {
method name (line 15) | get name() {
method schema (line 19) | get schema() {
method createHeadingText (line 37) | private createHeadingText(level: number, text: string, curHeadingSynta...
method commands (line 49) | commands(): EditorCommand {
FILE: apps/editor/src/markdown/marks/html.ts
class Html (line 5) | class Html extends Mark {
method name (line 6) | get name() {
method schema (line 10) | get schema() {
FILE: apps/editor/src/markdown/marks/link.ts
type CommandType (line 9) | type CommandType = 'image' | 'link';
type Payload (line 11) | interface Payload {
class Link (line 18) | class Link extends Mark {
method name (line 19) | get name() {
method schema (line 23) | get schema() {
method addLinkOrImage (line 45) | private addLinkOrImage(commandType: CommandType): EditorCommand {
method commands (line 175) | commands() {
method keymaps (line 179) | keymaps() {
FILE: apps/editor/src/markdown/marks/thematicBreak.ts
class ThematicBreak (line 11) | class ThematicBreak extends Mark {
method name (line 12) | get name() {
method schema (line 16) | get schema() {
method hr (line 24) | private hr(): EditorCommand {
method commands (line 42) | commands() {
method keymaps (line 46) | keymaps() {
FILE: apps/editor/src/markdown/mdEditor.ts
type WindowWithClipboard (line 42) | interface WindowWithClipboard extends Window {
type MarkdownOptions (line 46) | interface MarkdownOptions {
constant EVENT_TYPE (line 52) | const EVENT_TYPE = 'cut';
class MdEditor (line 55) | class MdEditor extends EditorBase {
method constructor (line 62) | constructor(eventEmitter: Emitter, options: MarkdownOptions) {
method toggleActive (line 87) | private toggleActive(active: boolean, isMarkdownTabMounted?: boolean) {
method createClipboard (line 98) | private createClipboard() {
method createContext (line 133) | createContext() {
method createSpecs (line 141) | createSpecs() {
method createPlugins (line 168) | createPlugins() {
method createView (line 177) | createView() {
method createCommands (line 213) | createCommands() {
method captureCopy (line 217) | private captureCopy(ev: ClipboardEvent, type?: string) {
method updateMarkdown (line 240) | private updateMarkdown(tr: Transaction) {
method getChanged (line 262) | private getChanged(slice: Slice) {
method setSelection (line 278) | setSelection(start: MdPos, end = start) {
method replaceSelection (line 285) | replaceSelection(text: string, start?: MdPos, end?: MdPos) {
method deleteSelection (line 306) | deleteSelection(start?: MdPos, end?: MdPos) {
method getSelectedText (line 320) | getSelectedText(start?: MdPos, end?: MdPos) {
method getSelection (line 334) | getSelection() {
method setMarkdown (line 340) | setMarkdown(markdown: string, cursorToEnd = true) {
method addWidget (line 354) | addWidget(node: Node, style: WidgetStyle, mdPos?: MdPos) {
method replaceWithWidget (line 361) | replaceWithWidget(start: MdPos, end: MdPos, text: string) {
method getRangeInfoOfNode (line 369) | getRangeInfoOfNode(pos?: MdPos) {
method getMarkdown (line 384) | getMarkdown() {
method getToastMark (line 391) | getToastMark() {
FILE: apps/editor/src/markdown/mdPreview.ts
constant CLASS_HIGHLIGHT (line 22) | const CLASS_HIGHLIGHT = cls('md-preview-highlight');
function findTableCell (line 24) | function findTableCell(tableRow: MdNode, chOffset: number) {
type Sanitizer (line 37) | type Sanitizer = (html: string) => string;
type Options (line 39) | interface Options {
class MarkdownPreview (line 59) | class MarkdownPreview {
method constructor (line 74) | constructor(eventEmitter: Emitter, options: Options) {
method initContentSection (line 103) | private initContentSection() {
method toggleActive (line 113) | private toggleActive(active: boolean) {
method initEvent (line 117) | private initEvent(highlight: boolean) {
method removeHighlight (line 145) | private removeHighlight() {
method updateCursorNode (line 155) | private updateCursorNode(cursorNode: MdNode | null, cursorPos: MdPos) {
method getElementByNodeId (line 186) | private getElementByNodeId(nodeId: number | null) {
method update (line 192) | update(changed: EditResult[]) {
method replaceRangeNodes (line 197) | replaceRangeNodes(editResult: EditResult) {
method getRenderer (line 231) | getRenderer() {
method destroy (line 235) | destroy() {
method getElement (line 240) | getElement() {
method getHTML (line 244) | getHTML() {
method setHTML (line 248) | setHTML(html: string) {
method setHeight (line 252) | setHeight(height: number) {
method setMinHeight (line 256) | setMinHeight(minHeight: number) {
FILE: apps/editor/src/markdown/nodes/doc.ts
class Doc (line 3) | class Doc extends Node {
method name (line 4) | get name() {
method schema (line 8) | get schema() {
FILE: apps/editor/src/markdown/nodes/paragraph.ts
type SelectionInfo (line 14) | interface SelectionInfo {
type IndentSelectionInfo (line 19) | interface IndentSelectionInfo extends SelectionInfo {
type OutdentSelectionInfo (line 24) | interface OutdentSelectionInfo extends SelectionInfo {
function isBlockUnit (line 31) | function isBlockUnit(from: number, to: number, text: string) {
function isInTableCellNode (line 35) | function isInTableCellNode(doc: ProsemirrorNode, schema: Schema, selecti...
function createSelection (line 52) | function createSelection(tr: Transaction, posInfo: IndentSelectionInfo |...
class Paragraph (line 72) | class Paragraph extends Node {
method name (line 75) | get name() {
method schema (line 79) | get schema() {
method reorderList (line 98) | private reorderList(startLine: number, endLine: number) {
method indent (line 140) | private indent(tabKey = false): EditorCommand {
method outdent (line 182) | private outdent(tabKey = false): EditorCommand {
method deleteLines (line 231) | private deleteLines(): Command {
method moveDown (line 246) | private moveDown(): Command {
method moveUp (line 266) | private moveUp(): Command {
method commands (line 286) | commands() {
method keymaps (line 293) | keymaps() {
FILE: apps/editor/src/markdown/nodes/text.ts
class Text (line 3) | class Text extends Node {
method name (line 4) | get name() {
method schema (line 8) | get schema() {
FILE: apps/editor/src/markdown/plugins/helper/markInfo.ts
constant HEADING (line 22) | const HEADING = 'heading';
constant BLOCK_QUOTE (line 23) | const BLOCK_QUOTE = 'blockQuote';
constant LIST_ITEM (line 24) | const LIST_ITEM = 'listItem';
constant TABLE (line 25) | const TABLE = 'table';
constant TABLE_CELL (line 26) | const TABLE_CELL = 'tableCell';
constant CODE_BLOCK (line 27) | const CODE_BLOCK = 'codeBlock';
constant THEMATIC_BREAK (line 28) | const THEMATIC_BREAK = 'thematicBreak';
constant LINK (line 29) | const LINK = 'link';
constant CODE (line 30) | const CODE = 'code';
constant META (line 31) | const META = 'meta';
constant DELIM (line 32) | const DELIM = 'delimiter';
constant TASK_DELIM (line 33) | const TASK_DELIM = 'taskDelimiter';
constant TEXT (line 34) | const TEXT = 'markedText';
constant HTML (line 35) | const HTML = 'html';
constant CUSTOM_BLOCK (line 36) | const CUSTOM_BLOCK = 'customBlock';
type MarkType (line 44) | type MarkType =
type MarkInfo (line 53) | interface MarkInfo {
function markInfo (line 60) | function markInfo(start: MdPos, end: MdPos, type: MarkType, attrs?: Reco...
function heading (line 64) | function heading({ level, headingType }: HeadingMdNode, start: MdPos, en...
function emphasisAndStrikethrough (line 76) | function emphasisAndStrikethrough(
function markLink (line 91) | function markLink(start: MdPos, end: MdPos, linkTextStart: MdPos, lastCh...
function image (line 101) | function image({ lastChild }: LinkMdNode, start: MdPos, end: MdPos) {
function link (line 108) | function link({ lastChild, extendedAutolink }: LinkMdNode, start: MdPos,...
function code (line 116) | function code({ tickCount }: CodeMdNode, start: MdPos, end: MdPos) {
function lineBackground (line 128) | function lineBackground(parent: MdNode, start: MdPos, end: MdPos, prefix...
function codeBlock (line 153) | function codeBlock(node: CodeBlockMdNode, start: MdPos, end: MdPos, endL...
function customBlock (line 184) | function customBlock(node: MdNode, start: MdPos, end: MdPos) {
function markListItemChildren (line 208) | function markListItemChildren(node: MdNode, markType: MarkType) {
function markParagraphInBlockQuote (line 229) | function markParagraphInBlockQuote(node: MdNode) {
function blockQuote (line 246) | function blockQuote(node: MdNode, start: MdPos, end: MdPos) {
function getSpecOfListItemStyle (line 265) | function getSpecOfListItemStyle(node: MdNode): [MarkType, Record) => any;
method getPopupInitialValues (line 6) | getPopupInitialValues(editor, payload) {
function buildQuery (line 13) | function buildQuery(editor: Editor) {
FILE: apps/editor/src/sanitizer/htmlSanitizer.ts
constant CAN_BE_WHITE_TAG_LIST (line 4) | const CAN_BE_WHITE_TAG_LIST = ['iframe', 'embed'];
function registerTagWhitelistIfPossible (line 7) | function registerTagWhitelistIfPossible(tagName: string) {
function sanitizeHTML (line 13) | function sanitizeHTML {
method constructor (line 18) | constructor(props: Props) {
method addEvent (line 27) | addEvent() {
method mounted (line 33) | mounted() {
method beforeDestroy (line 37) | beforeDestroy() {
method getMenuGroupElements (line 47) | private getMenuGroupElements() {
method render (line 85) | render() {
FILE: apps/editor/src/ui/components/layout.ts
type Props (line 11) | interface Props {
type State (line 25) | interface State {
class Layout (line 31) | class Layout extends Component {
method constructor (line 34) | constructor(props: Props) {
method mounted (line 46) | mounted() {
method insertToolbarItem (line 54) | insertToolbarItem(indexList: IndexList, item: string | ToolbarItemOpti...
method removeToolbarItem (line 58) | removeToolbarItem(name: string) {
method render (line 62) | render() {
method addEvent (line 106) | addEvent() {
FILE: apps/editor/src/ui/components/popup.ts
type PopupStyle (line 8) | type PopupStyle = {
type Props (line 12) | interface Props {
type State (line 20) | interface State {
constant MARGIN_FROM_RIGHT_SIDE (line 24) | const MARGIN_FROM_RIGHT_SIDE = 20;
class Popup (line 26) | class Popup extends Component {
method mounted (line 36) | mounted() {
method beforeDestroy (line 41) | beforeDestroy() {
method updated (line 45) | updated(prevProps: Props) {
method render (line 63) | render() {
FILE: apps/editor/src/ui/components/switch.ts
type Props (line 8) | interface Props {
type State (line 13) | interface State {
class Switch (line 17) | class Switch extends Component {
method constructor (line 18) | constructor(props: Props) {
method show (line 25) | show() {
method hide (line 29) | hide() {
method render (line 33) | render() {
FILE: apps/editor/src/ui/components/tabs.ts
type Props (line 7) | interface Props {
class Tabs (line 13) | class Tabs extends Component {
method toggleTab (line 14) | private toggleTab(ev: MouseEvent, activeTab: string) {
method render (line 18) | render() {
FILE: apps/editor/src/ui/components/toolbar/buttonHoc.ts
type Props (line 16) | interface Props {
type Payload (line 26) | interface Payload {
type State (line 30) | interface State {
constant TOOLTIP_INDENT (line 35) | const TOOLTIP_INDENT = 6;
function connectHOC (line 37) | function connectHOC(WrappedComponent: ComponentClass) {
FILE: apps/editor/src/ui/components/toolbar/customPopupBody.ts
type Props (line 6) | interface Props {
class CustomPopupBody (line 14) | class CustomPopupBody extends Component {
method mounted (line 15) | mounted() {
method updated (line 20) | updated(prevProps: Props) {
method render (line 25) | render() {
FILE: apps/editor/src/ui/components/toolbar/customToolbarItem.ts
type Props (line 17) | interface Props {
class CustomToolbarItemComp (line 30) | class CustomToolbarItemComp extends Component {
method mounted (line 31) | mounted() {
method updated (line 46) | updated(prevProps: Props) {
method render (line 70) | render() {
FILE: apps/editor/src/ui/components/toolbar/dropdownToolbarButton.ts
type Props (line 17) | interface Props {
type State (line 29) | interface State {
constant POPUP_INDENT (line 34) | const POPUP_INDENT = 4;
class DropdownToolbarButtonComp (line 36) | class DropdownToolbarButtonComp extends Component {
method constructor (line 37) | constructor(props: Props) {
method getBound (line 42) | private getBound() {
method mounted (line 59) | mounted() {
method updated (line 63) | updated() {
method beforeDestroy (line 69) | beforeDestroy() {
method render (line 77) | render() {
FILE: apps/editor/src/ui/components/toolbar/headingPopupBody.ts
type Props (line 8) | interface Props {
class HeadingPopupBody (line 13) | class HeadingPopupBody extends Component {
method execCommand (line 14) | execCommand(ev: MouseEvent) {
method render (line 22) | render() {
FILE: apps/editor/src/ui/components/toolbar/imagePopupBody.ts
constant TYPE_UI (line 12) | const TYPE_UI = 'ui';
type TabType (line 14) | type TabType = 'url' | 'file';
type Props (line 16) | interface Props {
type State (line 23) | interface State {
class ImagePopupBody (line 29) | class ImagePopupBody extends Component {
method constructor (line 32) | constructor(props: Props) {
method emitAddImageBlob (line 53) | private emitAddImageBlob() {
method emitAddImage (line 69) | private emitAddImage() {
method preventSelectStart (line 113) | private preventSelectStart(ev: Event) {
method updated (line 117) | updated() {
method render (line 123) | render() {
FILE: apps/editor/src/ui/components/toolbar/linkPopupBody.ts
type Props (line 12) | interface Props {
class LinkPopupBody (line 20) | class LinkPopupBody extends Component {
method initialize (line 21) | private initialize() {
method mounted (line 65) | mounted() {
method updated (line 69) | updated(prevProps: Props) {
method render (line 75) | render() {
FILE: apps/editor/src/ui/components/toolbar/tablePopupBody.ts
type Range (line 8) | interface Range {
type Props (line 13) | interface Props {
type State (line 19) | type State = Range;
constant CELL_WIDTH (line 21) | const CELL_WIDTH = 20;
constant CELL_HEIGHT (line 22) | const CELL_HEIGHT = 20;
constant MIN_ROW_INDEX (line 23) | const MIN_ROW_INDEX = 5;
constant MAX_ROW_INDEX (line 24) | const MAX_ROW_INDEX = 14;
constant MIN_COL_INDEX (line 25) | const MIN_COL_INDEX = 5;
constant MAX_COL_INDEX (line 26) | const MAX_COL_INDEX = 9;
constant MIN_ROW_SELECTION_INDEX (line 27) | const MIN_ROW_SELECTION_INDEX = 1;
constant MIN_COL_SELECTION_INDEX (line 28) | const MIN_COL_SELECTION_INDEX = 1;
constant BORDER_WIDTH (line 29) | const BORDER_WIDTH = 1;
class TablePopupBody (line 31) | class TablePopupBody extends Component {
method constructor (line 34) | constructor(props: Props) {
method getDescription (line 57) | private getDescription() {
method getBoundByRange (line 61) | private getBoundByRange(colIdx: number, rowIdx: number) {
method getRangeByOffset (line 68) | private getRangeByOffset(x: number, y: number) {
method getTableRange (line 75) | private getTableRange() {
method getSelectionAreaBound (line 90) | private getSelectionAreaBound() {
method getSelectionRangeByOffset (line 100) | private getSelectionRangeByOffset(x: number, y: number) {
method updated (line 109) | updated() {
method createTableArea (line 122) | private createTableArea(tableRange: Range) {
method render (line 140) | render() {
FILE: apps/editor/src/ui/components/toolbar/toolbar.ts
type TabType (line 37) | type TabType = 'write' | 'preview';
type Props (line 39) | interface Props {
type State (line 46) | interface State {
type ItemWidthMap (line 54) | interface ItemWidthMap {
constant INLINE_PADDING (line 58) | const INLINE_PADDING = 50;
class Toolbar (line 60) | class Toolbar extends Component {
method constructor (line 73) | constructor(props: Props) {
method insertToolbarItem (line 94) | insertToolbarItem(indexList: IndexList, item: string | ToolbarItemOpti...
method removeToolbarItem (line 108) | removeToolbarItem(name: string) {
method addEvent (line 125) | addEvent() {
method appendTooltipToRoot (line 136) | private appendTooltipToRoot() {
method hiddenScrollSync (line 145) | private hiddenScrollSync() {
method movePrevItemToDropdownToolbar (line 201) | private movePrevItemToDropdownToolbar(
method classifyToolbarItems (line 226) | private classifyToolbarItems() {
method mounted (line 272) | mounted() {
method updated (line 282) | updated(prevProps: Props) {
method beforeDestroy (line 300) | beforeDestroy() {
method render (line 306) | render() {
FILE: apps/editor/src/ui/components/toolbar/toolbarButton.ts
type Props (line 17) | interface Props {
constant DEFAULT_WIDTH (line 30) | const DEFAULT_WIDTH = 80;
class ToolbarButtonComp (line 32) | class ToolbarButtonComp extends Component {
method mounted (line 33) | mounted() {
method updated (line 37) | updated(prevProps: Props) {
method setItemWidth (line 43) | private setItemWidth() {
method render (line 79) | render() {
FILE: apps/editor/src/ui/components/toolbar/toolbarGroup.ts
type Props (line 18) | interface Props {
class ToolbarGroup (line 33) | class ToolbarGroup extends Component {
method render (line 34) | render() {
FILE: apps/editor/src/ui/toolbarItemFactory.ts
function createToolbarItemInfo (line 26) | function createToolbarItemInfo(type: string | ToolbarItemOptions): Toolb...
function createScrollSyncToolbarItem (line 30) | function createScrollSyncToolbarItem(): ToolbarItemInfo {
function createDefaultToolbarItemInfo (line 62) | function createDefaultToolbarItemInfo(type: string) {
type Payload (line 227) | interface Payload {
function createPopupInfo (line 234) | function createPopupInfo(type: string, payload: Payload): PopupInfo | nu...
function setGroupState (line 282) | function setGroupState(group: ToolbarGroupInfo) {
function groupToolbarItems (line 286) | function groupToolbarItems(toolbarItems: ToolbarItem[], hiddenScrollSync...
function toggleScrollSync (line 303) | function toggleScrollSync(toolbarItems: ToolbarGroupInfo[], hiddenScroll...
FILE: apps/editor/src/ui/vdom/commit.ts
function commit (line 5) | function commit(vnode?: VNode) {
function getParentNode (line 33) | function getParentNode(vnode: VNode) {
function diff (line 43) | function diff(vnode: VNode | null) {
FILE: apps/editor/src/ui/vdom/component.ts
method constructor (line 14) | constructor(props: T) {
method setState (line 20) | setState(state: Partial) {
FILE: apps/editor/src/ui/vdom/dom.ts
type ConditionFn (line 7) | type ConditionFn = (propName: string) => boolean;
type Props (line 8) | type Props = Record;
function createNode (line 12) | function createNode(vnode: VNode) {
function removeNode (line 25) | function removeNode(vnode: VNode, parentNode: Node) {
function innerDiff (line 33) | function innerDiff(node: Node, prevProps: Props, nextProps: Props) {
function setProps (line 56) | function setProps(node: Node, prevProps: Props, props: Props, condition?...
function setStyleProps (line 77) | function setStyleProps(node: HTMLElement, prevStyleProps: Props | null, ...
FILE: apps/editor/src/ui/vdom/render.ts
function createComponent (line 7) | function createComponent(Comp: ComponentClass, vnode: VNode) {
function buildVNode (line 19) | function buildVNode(vnode: VNode | null) {
function isSameType (line 51) | function isSameType(old: VNode | null, vnode: VNode) {
function buildChildrenVNode (line 56) | function buildChildrenVNode(parent: VNode) {
FILE: apps/editor/src/ui/vdom/renderer.ts
function destroy (line 6) | function destroy(vnode: VNode) {
function rerender (line 13) | function rerender(comp: Component) {
function render (line 33) | function render(container: HTMLElement, vnode: VNode) {
FILE: apps/editor/src/ui/vdom/template.ts
function createTextNode (line 8) | function createTextNode(text: string) {
function excludeUnnecessaryChild (line 12) | function excludeUnnecessaryChild(child: VNode, flatted: VNode[]) {
function h (line 26) | function h(type: string | ComponentClass, props: Record, .....
FILE: apps/editor/src/ui/vdom/vnode.ts
class VNodeWalker (line 3) | class VNodeWalker {
method constructor (line 10) | constructor(current: VNode | null) {
method walk (line 16) | walk() {
class VNode (line 44) | class VNode {
method constructor (line 74) | constructor(type: string | ComponentClass, props: Record,...
method walker (line 89) | walker() {
FILE: apps/editor/src/utils/common.ts
constant XMLSPECIAL (line 18) | const XMLSPECIAL = '[&<>"]';
function replaceUnsafeChar (line 21) | function replaceUnsafeChar(char: string) {
function escapeXml (line 36) | function escapeXml(text: string) {
function sendHostName (line 43) | function sendHostName() {
function includes (line 47) | function includes(arr: T[], targetItem: T) {
function sanitizeLinkAttribute (line 66) | function sanitizeLinkAttribute(attribute: LinkAttributes) {
function repeat (line 82) | function repeat(text: string, count: number) {
function isNeedEscapeText (line 92) | function isNeedEscapeText(text: string) {
function escapeTextForLink (line 105) | function escapeTextForLink(text: string) {
function escape (line 121) | function escape(text: string) {
function quote (line 148) | function quote(text: string) {
function isNil (line 160) | function isNil(value: unknown): value is null | undefined {
function shallowEqual (line 164) | function shallowEqual(o1: Record | null, o2: Record(arr: T[]) {
function between (line 189) | function between(value: number, min: number, max: number) {
function isObject (line 193) | function isObject(obj: unknown): obj is object {
function deepMergedCopy (line 197) | function deepMergedCopy, T2 extends Recor...
function deepCopyArray (line 222) | function deepCopyArray>(items: T): T {
function deepCopy (line 231) | function deepCopy>(obj: T) {
function assign (line 248) | function assign(targetObj: Record, obj: Record...
function getSortedNumPair (line 263) | function getSortedNumPair(valueA: number, valueB: number) {
FILE: apps/editor/src/utils/constants.ts
constant TAG_NAME (line 1) | const TAG_NAME = '[A-Za-z][A-Za-z0-9-]*';
constant ATTRIBUTE_NAME (line 2) | const ATTRIBUTE_NAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';
constant UNQUOTED_VALUE (line 3) | const UNQUOTED_VALUE = '[^"\'=<>`\\x00-\\x20]+';
constant SINGLE_QUOTED_VALUE (line 5) | const SINGLE_QUOTED_VALUE = "'[^']*'";
constant DOUBLE_QUOTED_VALUE (line 6) | const DOUBLE_QUOTED_VALUE = '"[^"]*"';
constant ATTRIBUTE_VALUE (line 8) | const ATTRIBUTE_VALUE = `(?:${UNQUOTED_VALUE}|${SINGLE_QUOTED_VALUE}|${D...
constant ATTRIBUTE_VALUE_SPEC (line 9) | const ATTRIBUTE_VALUE_SPEC = `${'(?:\\s*=\\s*'}${ATTRIBUTE_VALUE})`;
constant ATTRIBUTE (line 11) | const ATTRIBUTE = `${'(?:\\s+'}${ATTRIBUTE_NAME}${ATTRIBUTE_VALUE_SPEC}?)`;
constant OPEN_TAG (line 13) | const OPEN_TAG = `<(${TAG_NAME})(${ATTRIBUTE})*\\s*/?>`;
constant CLOSE_TAG (line 14) | const CLOSE_TAG = `(${TAG_NAME})\\s*[>]`;
constant HTML_TAG (line 16) | const HTML_TAG = `(?:${OPEN_TAG}|${CLOSE_TAG})`;
constant ALTERNATIVE_TAG_FOR_BR (line 22) | const ALTERNATIVE_TAG_FOR_BR = '
';
FILE: apps/editor/src/utils/dom.ts
function isPositionInBox (line 12) | function isPositionInBox(style: CSSStyleDeclaration, offsetX: number, of...
constant CLS_PREFIX (line 23) | const CLS_PREFIX = 'toastui-editor-';
function cls (line 25) | function cls(...names: (string | [boolean, string])[]) {
function clsWithMdPrefix (line 45) | function clsWithMdPrefix(...names: string[]) {
function isTextNode (line 49) | function isTextNode(node: Node) {
function isElemNode (line 53) | function isElemNode(node: Node) {
function findNodes (line 57) | function findNodes(element: Element, selector: string) {
function appendNodes (line 67) | function appendNodes(node: Node, nodesToAppend: Node | Node[]) {
function insertBeforeNode (line 75) | function insertBeforeNode(insertedNode: Node, node: Node) {
function removeNode (line 81) | function removeNode(node: Node) {
function unwrapNode (line 87) | function unwrapNode(node: Node) {
function toggleClass (line 103) | function toggleClass(element: Element, className: string, state?: boolea...
function createElementWith (line 112) | function createElementWith(contents: string | HTMLElement, target?: HTML...
function getOuterWidth (line 130) | function getOuterWidth(el: HTMLElement) {
function closest (line 141) | function closest(node: Node, found: string | Node) {
function getTotalOffset (line 161) | function getTotalOffset(el: HTMLElement, root: HTMLElement) {
function finalizeHtml (line 178) | function finalizeHtml(html: Element, needHtmlText: boolean) {
function empty (line 197) | function empty(node: Node) {
function appendNode (line 203) | function appendNode(node: Element, appended: string | ArrayLike...
function prependNode (line 217) | function prependNode(node: Element, appended: string | ArrayLike, element: HTMLEle...
function replaceBRWithEmptyBlock (line 241) | function replaceBRWithEmptyBlock(html: string) {
function removeProseMirrorHackNodes (line 268) | function removeProseMirrorHackNodes(html: string) {
FILE: apps/editor/src/utils/map.ts
class Map (line 9) | class Map implements Mapable {
method constructor (line 14) | constructor() {
method getKeyIndex (line 19) | private getKeyIndex(key: K) {
method get (line 23) | get(key: K): V {
method set (line 27) | set(key: K, value: V) {
method has (line 39) | has(key: K) {
method delete (line 43) | delete(key: K) {
method forEach (line 55) | forEach(callback: (value: V, key: K, map: Mapable) => void, this...
method clear (line 63) | clear() {
FILE: apps/editor/src/utils/markdown.ts
function hasSpecificTypeAncestor (line 13) | function hasSpecificTypeAncestor(mdNode: MdNode, ...types: MdNodeType[]) {
function getMdStartLine (line 23) | function getMdStartLine(mdNode: MdNode) {
function getMdEndLine (line 27) | function getMdEndLine(mdNode: MdNode) {
function getMdStartCh (line 31) | function getMdStartCh(mdNode: MdNode) {
function getMdEndCh (line 35) | function getMdEndCh(mdNode: MdNode) {
function isMultiLineNode (line 39) | function isMultiLineNode(mdNode: MdNode) {
function isHTMLNode (line 45) | function isHTMLNode(mdNode: MdNode) {
function isStyledInlineNode (line 51) | function isStyledInlineNode(mdNode: MdNode) {
function isCodeBlockNode (line 64) | function isCodeBlockNode(mdNode: MdNode): mdNode is CodeBlockMdNode {
function isCustomBlockNode (line 68) | function isCustomBlockNode(mdNode: MdNode): mdNode is CustomBlockMdNode {
function isListNode (line 72) | function isListNode(mdNode: MdNode): mdNode is ListItemMdNode {
function isOrderedListNode (line 76) | function isOrderedListNode(mdNode: MdNode): mdNode is ListItemMdNode {
function isBulletListNode (line 80) | function isBulletListNode(mdNode: MdNode): mdNode is ListItemMdNode {
function isTableCellNode (line 84) | function isTableCellNode(mdNode: MdNode): mdNode is TableCellMdNode {
function isInlineNode (line 88) | function isInlineNode(mdNode: MdNode) {
function findClosestNode (line 107) | function findClosestNode(
function traverseParentNodes (line 123) | function traverseParentNodes(
function addOffsetPos (line 136) | function addOffsetPos(originPos: MdPos, offset: number): MdPos {
function setOffsetPos (line 140) | function setOffsetPos(originPos: MdPos, newOffset: number): MdPos {
function getInlineMarkdownText (line 144) | function getInlineMarkdownText(mdNode: MdNode) {
function isContainer (line 168) | function isContainer(node: MdNode) {
function getChildrenText (line 194) | function getChildrenText(node: MdNode) {
FILE: apps/editor/src/viewer.ts
constant TASK_ATTR_NAME (line 16) | const TASK_ATTR_NAME = 'data-task';
constant DISABLED_TASK_ATTR_NAME (line 17) | const DISABLED_TASK_ATTR_NAME = 'data-task-disabled';
constant TASK_CHECKED_CLASS_NAME (line 18) | const TASK_CHECKED_CLASS_NAME = 'checked';
function registerHTMLTagToWhitelist (line 20) | function registerHTMLTagToWhitelist(convertorMap: CustomHTMLRenderer) {
class ToastUIEditorViewer (line 49) | class ToastUIEditorViewer {
method constructor (line 58) | constructor(options: ViewerOptions) {
method toggleTask (line 145) | private toggleTask(ev: MouseEvent) {
method setMarkdown (line 166) | setMarkdown(markdown: string) {
method on (line 181) | on(type: string, handler: Handler) {
method off (line 189) | off(type: string) {
method addHook (line 198) | addHook(type: string, handler: Handler) {
method destroy (line 206) | destroy() {
method isViewer (line 216) | isViewer() {
method isMarkdownMode (line 224) | isMarkdownMode() {
method isWysiwygMode (line 232) | isWysiwygMode() {
FILE: apps/editor/src/widget/rules.ts
function unwrapWidgetSyntax (line 12) | function unwrapWidgetSyntax(text: string) {
function createWidgetContent (line 25) | function createWidgetContent(info: string, text: string) {
function widgetToDOM (line 29) | function widgetToDOM(info: string, text: string) {
function getWidgetRules (line 41) | function getWidgetRules() {
function setWidgetRules (line 45) | function setWidgetRules(rules: WidgetRule[]) {
function mergeNodes (line 52) | function mergeNodes(nodes: ProsemirrorNode[], text: string, schema: Sche...
function createNodesWithWidget (line 74) | function createNodesWithWidget(text: string, schema: Schema, ruleIndex =...
function getWidgetContent (line 117) | function getWidgetContent(widgetNode: CustomInlineMdNode) {
FILE: apps/editor/src/widget/widgetNode.ts
function widgetNodeView (line 5) | function widgetNodeView(pmNode: ProsemirrorNode) {
function isWidgetNode (line 15) | function isWidgetNode(pmNode: ProsemirrorNode) {
class Widget (line 19) | class Widget extends SpecNode {
method name (line 20) | get name() {
method schema (line 24) | get schema() {
FILE: apps/editor/src/wysiwyg/adaptor/mdLikeNode.ts
function isPmNode (line 6) | function isPmNode(node: ProsemirrorNode | Mark): node is ProsemirrorNode {
function isContainer (line 10) | function isContainer(type: string) {
function createMdLikeNode (line 35) | function createMdLikeNode(node: ProsemirrorNode | Mark): MdLikeNode {
FILE: apps/editor/src/wysiwyg/adaptor/wwToDOMAdaptor.ts
type TokenToDOM (line 21) | interface TokenToDOM {
method openTag (line 29) | openTag(token, stack) {
method closeTag (line 44) | closeTag(_, stack) {
method html (line 51) | html(token, stack) {
method text (line 54) | text(token, stack) {
class WwToDOMAdaptor (line 61) | class WwToDOMAdaptor implements ToDOMAdaptor {
method constructor (line 68) | constructor(linkAttributes: LinkAttributes | null, customRenderer: Cus...
method generateTokens (line 81) | private generateTokens(node: ProsemirrorNode | Mark) {
method toDOMNode (line 105) | private toDOMNode(node: ProsemirrorNode | Mark) {
method getToDOMNode (line 114) | getToDOMNode(name: string) {
FILE: apps/editor/src/wysiwyg/clipboard/paste.ts
constant START_FRAGMENT_COMMENT (line 7) | const START_FRAGMENT_COMMENT = '';
constant END_FRAGMENT_COMMENT (line 8) | const END_FRAGMENT_COMMENT = '';
function getContentBetweenFragmentComments (line 10) | function getContentBetweenFragmentComments(html: string) {
function convertMsoTableToCompletedTable (line 21) | function convertMsoTableToCompletedTable(html: string) {
function changePastedHTML (line 36) | function changePastedHTML(html: string) {
function getMaxColumnCount (line 47) | function getMaxColumnCount(rows: Node[]) {
function createCells (line 55) | function createCells(orgRow: Node, maxColumnCount: number, cell: NodeTyp...
function copyTableHeadRow (line 73) | function copyTableHeadRow(orgRow: Node, maxColumnCount: number, schema: ...
function copyTableBodyRow (line 80) | function copyTableBodyRow(orgRow: Node, maxColumnCount: number, schema: ...
function creatTableBodyDummyRow (line 87) | function creatTableBodyDummyRow(columnCount: number, schema: Schema) {
function createRowsFromPastingTable (line 100) | function createRowsFromPastingTable(tableContent: Fragment) {
function createTableHead (line 119) | function createTableHead(tableHeadRow: Node, maxColumnCount: number, sch...
function createTableBody (line 125) | function createTableBody(tableBodyRows: Node[], maxColumnCount: number, ...
function createTableFromPastingTable (line 139) | function createTableFromPastingTable(
function changePastedSlice (line 163) | function changePastedSlice(slice: Slice, schema: Schema, isInTable: bool...
FILE: apps/editor/src/wysiwyg/clipboard/pasteMsoList.ts
constant MSO_CLASS_NAME_LIST_PARA (line 16) | const MSO_CLASS_NAME_LIST_PARA = 'p.MsoListParagraph';
type ListItemData (line 18) | interface ListItemData {
function isFromMso (line 28) | function isFromMso(html: string) {
function getListItemContents (line 32) | function getListItemContents(para: HTMLElement) {
function createListItemDataFromParagraph (line 63) | function createListItemDataFromParagraph(para: HTMLElement, index: numbe...
function addListItemDetailData (line 86) | function addListItemDetailData(data: ListItemData, prevData: ListItemDat...
function createListData (line 109) | function createListData(paras: HTMLElement[]) {
function makeList (line 128) | function makeList(listData: ListItemData[]) {
function makeListFromParagraphs (line 147) | function makeListFromParagraphs(paras: HTMLElement[]) {
function isMsoListParagraphEnd (line 154) | function isMsoListParagraphEnd(node: HTMLElement) {
function convertMsoParagraphsToList (line 165) | function convertMsoParagraphsToList(html: string) {
FILE: apps/editor/src/wysiwyg/clipboard/pasteToTable.ts
type PastingRangeInfo (line 22) | interface PastingRangeInfo {
type ReplacedCellsOffsets (line 31) | interface ReplacedCellsOffsets {
constant DUMMY_CELL_SIZE (line 38) | const DUMMY_CELL_SIZE = 4;
constant TR_NODES_SIZE (line 39) | const TR_NODES_SIZE = 2;
function getDummyCellSize (line 41) | function getDummyCellSize(dummyCellCount: number) {
function createPastingCells (line 45) | function createPastingCells(
function getPastingRangeInfo (line 79) | function getPastingRangeInfo(
function addReplacedOffsets (line 115) | function addReplacedOffsets(
function expandColumns (line 135) | function expandColumns(
function expandRows (line 175) | function expandRows(
function replaceCells (line 205) | function replaceCells(
function pasteToTable (line 224) | function pasteToTable(view: EditorView, slice: Slice) {
function setSelection (line 264) | function setSelection(view: EditorView, cellsOffsets: ReplacedCellsOffse...
function canMerge (line 281) | function canMerge(map: TableOffsetMap, pastingInfo: PastingRangeInfo) {
FILE: apps/editor/src/wysiwyg/command/list.ts
type Attrs (line 8) | interface Attrs {
type WrapperInfo (line 12) | interface WrapperInfo {
function findWrappingOutside (line 17) | function findWrappingOutside(range: NodeRange, type: NodeType) {
function findWrappingInside (line 30) | function findWrappingInside(range: NodeRange, type: NodeType) {
function findWrappers (line 51) | function findWrappers(range: NodeRange, innerRange: NodeRange, nodeType:...
function wrapInList (line 70) | function wrapInList(
function changeToList (line 122) | function changeToList(tr: Transaction, range: NodeRange, list: NodeType,...
function getBeforeLineListItem (line 154) | function getBeforeLineListItem(doc: ProsemirrorNode, offset: number) {
function toggleTaskListItems (line 165) | function toggleTaskListItems(tr: Transaction, { $from, $to }: NodeRange) {
function changeListType (line 188) | function changeListType(tr: Transaction, { $from, $to }: NodeRange, list...
function changeList (line 219) | function changeList(list: NodeType): Command {
function toggleTask (line 238) | function toggleTask(): Command {
function sinkListItem (line 257) | function sinkListItem(listItem: NodeType): Command {
function liftToOuterList (line 297) | function liftToOuterList(tr: Transaction, range: NodeRange, listItem: No...
function liftOutOfList (line 324) | function liftOutOfList(tr: Transaction, range: NodeRange) {
function liftListItem (line 377) | function liftListItem(listItem: NodeType): Command {
function splitListItem (line 398) | function splitListItem(listItem: NodeType): Command {
FILE: apps/editor/src/wysiwyg/command/table.ts
type CellPosition (line 9) | type CellPosition = [rowIdx: number, colIdx: number];
type CellOffsetFn (line 11) | type CellOffsetFn = ([rowIdx, colIdx]: CellPosition, map: TableOffsetMap...
type CellOffsetFnMap (line 13) | type CellOffsetFnMap = {
function isInFirstListItem (line 24) | function isInFirstListItem(
function isInLastListItem (line 34) | function isInLastListItem(pos: ResolvedPos) {
function canMoveToBeforeCell (line 63) | function canMoveToBeforeCell(
function canMoveToAfterCell (line 86) | function canMoveToAfterCell(
function canMoveBetweenCells (line 109) | function canMoveBetweenCells(
function canBeOutOfTable (line 131) | function canBeOutOfTable(
function addParagraphBeforeTable (line 145) | function addParagraphBeforeTable(tr: Transaction, map: TableOffsetMap, s...
function addParagraphAfterTable (line 154) | function addParagraphAfterTable(
function getRightCellOffset (line 168) | function getRightCellOffset([rowIdx, colIdx]: CellPosition, map: TableOf...
function getLeftCellOffset (line 194) | function getLeftCellOffset([rowIdx, colIdx]: CellPosition, map: TableOff...
function getUpCellOffset (line 216) | function getUpCellOffset([rowIdx, colIdx]: CellPosition, map: TableOffse...
function getDownCellOffset (line 226) | function getDownCellOffset([rowIdx, colIdx]: CellPosition, map: TableOff...
function moveToCell (line 244) | function moveToCell(
function canSelectTableNode (line 262) | function canSelectTableNode(
function selectNode (line 279) | function selectNode(tr: Transaction, pos: ResolvedPos, depth: number) {
FILE: apps/editor/src/wysiwyg/helper/node.ts
type NodeAttrs (line 4) | type NodeAttrs = Record;
type CustomAttrs (line 6) | interface CustomAttrs {
function findNodeBy (line 11) | function findNodeBy(
function isListNode (line 34) | function isListNode({ type }: ProsemirrorNode) {
function isInListNode (line 38) | function isInListNode(pos: ResolvedPos) {
function isInTableNode (line 46) | function isInTableNode(pos: ResolvedPos) {
function findListItem (line 53) | function findListItem(pos: ResolvedPos) {
function createDOMInfoParsedRawHTML (line 57) | function createDOMInfoParsedRawHTML(tag: string) {
function createCellAttrs (line 70) | function createCellAttrs(attrs: NodeAttrs) {
function createParsedCellDOM (line 80) | function createParsedCellDOM(tag: string) {
function getDefaultCustomAttrs (line 99) | function getDefaultCustomAttrs(): CustomAttrs {
function getCustomAttrs (line 106) | function getCustomAttrs(attrs: Record) {
FILE: apps/editor/src/wysiwyg/helper/table.ts
function createTableHeadRow (line 9) | function createTableHeadRow(columnCount: number, schema: Schema, data?: ...
function createTableBodyRows (line 23) | function createTableBodyRows(
function createDummyCells (line 48) | function createDummyCells(
function findCellElement (line 65) | function findCellElement(node: HTMLElement, root: Element) {
function findCell (line 77) | function findCell(pos: ResolvedPos) {
function getResolvedSelection (line 84) | function getResolvedSelection(selection: Selection | CellSelection) {
function getTableContentFromSlice (line 101) | function getTableContentFromSlice(slice: Slice) {
function getRowAndColumnCount (line 129) | function getRowAndColumnCount({
function setAttrs (line 141) | function setAttrs(cell: ProsemirrorNode, attrs: Record) {
FILE: apps/editor/src/wysiwyg/helper/tableOffsetMap.ts
type CellInfo (line 5) | interface CellInfo {
type SelectionInfo (line 10) | interface SelectionInfo {
type SpanMap (line 17) | interface SpanMap {
type RowInfo (line 21) | interface RowInfo {
type SpanInfo (line 28) | interface SpanInfo {
type OffsetMap (line 35) | interface OffsetMap {
type CreateOffsetMapMixin (line 57) | type CreateOffsetMapMixin = (
class TableOffsetMap (line 66) | class TableOffsetMap {
method constructor (line 75) | constructor(table: Node, tableRows: Node[], tableStartPos: number, row...
method create (line 82) | static create(cellPos: ResolvedPos): TableOffsetMap | null {
method totalRowCount (line 115) | get totalRowCount() {
method totalColumnCount (line 119) | get totalColumnCount() {
method tableStartOffset (line 123) | get tableStartOffset() {
method tableEndOffset (line 127) | get tableEndOffset() {
method getCellInfo (line 131) | getCellInfo(rowIdx: number, colIdx: number) {
method posAt (line 135) | posAt(rowIdx: number, colIdx: number): number {
method getNodeAndPos (line 152) | getNodeAndPos(rowIdx: number, colIdx: number) {
method extendedRowspan (line 161) | extendedRowspan(rowIdx: number, colIdx: number) {
method extendedColspan (line 165) | extendedColspan(rowIdx: number, colIdx: number) {
method getRowspanCount (line 169) | getRowspanCount(rowIdx: number, colIdx: number) {
method getColspanCount (line 173) | getColspanCount(rowIdx: number, colIdx: number) {
method decreaseColspanCount (line 177) | decreaseColspanCount(rowIdx: number, colIdx: number) {
method decreaseRowspanCount (line 181) | decreaseRowspanCount(rowIdx: number, colIdx: number) {
method getColspanStartInfo (line 185) | getColspanStartInfo(rowIdx: number, colIdx: number): SpanInfo | null {
method getRowspanStartInfo (line 189) | getRowspanStartInfo(rowIdx: number, colIdx: number): SpanInfo | null {
method getCellStartOffset (line 193) | getCellStartOffset(rowIdx: number, colIdx: number) {
method getCellEndOffset (line 199) | getCellEndOffset(rowIdx: number, colIdx: number) {
method getCellIndex (line 205) | getCellIndex(cellPos: ResolvedPos): [rowIdx: number, colIdx: number] {
method getRectOffsets (line 218) | getRectOffsets(startCellPos: ResolvedPos, endCellPos = startCellPos) {
method getSpannedOffsets (line 231) | getSpannedOffsets(selectionInfo: SelectionInfo): SelectionInfo {
function mixinTableOffsetMapPrototype (line 264) | function mixinTableOffsetMapPrototype(
FILE: apps/editor/src/wysiwyg/marks/code.ts
class Code (line 9) | class Code extends Mark {
method name (line 10) | get name() {
method schema (line 14) | get schema() {
method commands (line 38) | commands(): EditorCommand {
method keymaps (line 42) | keymaps() {
FILE: apps/editor/src/wysiwyg/marks/emph.ts
class Emph (line 9) | class Emph extends Mark {
method name (line 10) | get name() {
method schema (line 14) | get schema() {
method italic (line 40) | private italic(): EditorCommand {
method commands (line 44) | commands() {
method keymaps (line 48) | keymaps() {
FILE: apps/editor/src/wysiwyg/marks/link.ts
class Link (line 13) | class Link extends Mark {
method constructor (line 16) | constructor(linkAttributes: LinkAttributes) {
method name (line 21) | get name() {
method schema (line 25) | get schema() {
method addLink (line 63) | private addLink(): EditorCommand {
method toggleLink (line 90) | private toggleLink(): EditorCommand {
method commands (line 95) | commands() {
FILE: apps/editor/src/wysiwyg/marks/strike.ts
class Strike (line 9) | class Strike extends Mark {
method name (line 10) | get name() {
method schema (line 14) | get schema() {
method commands (line 40) | commands(): EditorCommand {
method keymaps (line 44) | keymaps() {
FILE: apps/editor/src/wysiwyg/marks/strong.ts
class Strong (line 9) | class Strong extends Mark {
method name (line 10) | get name() {
method schema (line 14) | get schema() {
method bold (line 40) | private bold(): EditorCommand {
method commands (line 44) | commands() {
method keymaps (line 48) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/blockQuote.ts
class BlockQuote (line 13) | class BlockQuote extends NodeSchema {
method name (line 14) | get name() {
method schema (line 18) | get schema() {
method commands (line 33) | commands(): EditorCommand {
method keymaps (line 37) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/bulletList.ts
class BulletList (line 14) | class BulletList extends NodeSchema {
method name (line 15) | get name() {
method schema (line 19) | get schema() {
method changeList (line 34) | private changeList(): Command {
method commands (line 38) | commands() {
method keymaps (line 45) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/codeBlock.ts
class CodeBlock (line 11) | class CodeBlock extends NodeSchema {
method name (line 12) | get name() {
method schema (line 16) | get schema() {
method commands (line 52) | commands(): EditorCommand {
method moveCursor (line 56) | moveCursor(direction: 'up' | 'down'): Command {
method keymaps (line 87) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/customBlock.ts
class CustomBlock (line 6) | class CustomBlock extends NodeSchema {
method name (line 7) | get name() {
method schema (line 11) | get schema() {
method commands (line 37) | commands(): EditorCommand {
FILE: apps/editor/src/wysiwyg/nodes/doc.ts
class Doc (line 3) | class Doc extends Node {
method name (line 4) | get name() {
method schema (line 8) | get schema() {
FILE: apps/editor/src/wysiwyg/nodes/frontMatter.ts
class FrontMatter (line 8) | class FrontMatter extends NodeSchema {
method name (line 9) | get name() {
method schema (line 13) | get schema() {
method commands (line 31) | commands(): EditorCommand {
method keymaps (line 43) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/heading.ts
class Heading (line 9) | class Heading extends NodeSchema {
method name (line 10) | get name() {
method levels (line 14) | get levels() {
method schema (line 18) | get schema() {
method commands (line 50) | commands(): EditorCommand {
FILE: apps/editor/src/wysiwyg/nodes/html.ts
function getChildrenHTML (line 15) | function getChildrenHTML(node: MdNode, typeName: string) {
function getHTMLAttrsByHTMLString (line 21) | function getHTMLAttrsByHTMLString(html: string) {
function getHTMLAttrs (line 38) | function getHTMLAttrs(dom: HTMLElement) {
function sanitizeDOM (line 45) | function sanitizeDOM(
method htmlBlock (line 64) | htmlBlock(typeName: string, sanitizeHTML: Sanitizer, wwToDOMAdaptor: ToD...
method htmlInline (line 94) | htmlInline(typeName: string, sanitizeHTML: Sanitizer, wwToDOMAdaptor: To...
function createHTMLSchemaMap (line 119) | function createHTMLSchemaMap(
FILE: apps/editor/src/wysiwyg/nodes/htmlComment.ts
class HTMLComment (line 8) | class HTMLComment extends NodeSchema {
method name (line 9) | get name() {
method schema (line 13) | get schema() {
method commands (line 26) | commands(): EditorCommand {
method keymaps (line 38) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/image.ts
class Image (line 10) | class Image extends NodeSchema {
method name (line 11) | get name() {
method schema (line 15) | get schema() {
method addImage (line 57) | private addImage(): EditorCommand {
method commands (line 76) | commands() {
FILE: apps/editor/src/wysiwyg/nodes/listItem.ts
class ListItem (line 7) | class ListItem extends NodeSchema {
method name (line 8) | get name() {
method schema (line 12) | get schema() {
method liftToPrevListItem (line 62) | private liftToPrevListItem(): Command {
method keymaps (line 93) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/orderedList.ts
class OrderedList (line 10) | class OrderedList extends NodeSchema {
method name (line 11) | get name() {
method schema (line 15) | get schema() {
method commands (line 48) | commands(): EditorCommand {
method keymaps (line 52) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/paragraph.ts
class Paragraph (line 6) | class Paragraph extends NodeSchema {
method name (line 7) | get name() {
method schema (line 11) | get schema() {
FILE: apps/editor/src/wysiwyg/nodes/table.ts
type AddTablePayload (line 38) | interface AddTablePayload {
type AlignColumnPayload (line 44) | interface AlignColumnPayload {
type Direction (line 49) | const enum Direction {
type ColDirection (line 56) | type ColDirection = Direction.LEFT | Direction.RIGHT;
type RowDirection (line 57) | type RowDirection = Direction.UP | Direction.DOWN;
function getTargetRowInfo (line 59) | function getTargetRowInfo(
function getRowRanges (line 80) | function getRowRanges(map: TableOffsetMap, rowIdx: number, totalColumnCo...
class Table (line 87) | class Table extends NodeSchema {
method name (line 88) | get name() {
method schema (line 92) | get schema() {
method addTable (line 107) | private addTable(): EditorCommand {
method removeTable (line 135) | private removeTable(): EditorCommand {
method addColumn (line 152) | private addColumn(direction: ColDirection): EditorCommand {
method removeColumn (line 179) | private removeColumn(): EditorCommand {
method addRow (line 216) | private addRow(direction: Direction.UP | Direction.DOWN): EditorCommand {
method removeRow (line 252) | private removeRow(): EditorCommand {
method alignColumn (line 285) | private alignColumn(): EditorCommand {
method moveToCell (line 314) | private moveToCell(direction: Direction): Command {
method moveInCell (line 342) | private moveInCell(direction: Direction): Command {
method deleteCells (line 396) | private deleteCells(): Command {
method exitTable (line 423) | private exitTable(): Command {
method commands (line 447) | commands() {
method keymaps (line 461) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/tableBody.ts
class TableBody (line 6) | class TableBody extends NodeSchema {
method name (line 7) | get name() {
method schema (line 11) | get schema() {
FILE: apps/editor/src/wysiwyg/nodes/tableBodyCell.ts
class TableBodyCell (line 6) | class TableBodyCell extends NodeSchema {
method name (line 7) | get name() {
method schema (line 11) | get schema() {
FILE: apps/editor/src/wysiwyg/nodes/tableHead.ts
class TableHead (line 10) | class TableHead extends NodeSchema {
method name (line 11) | get name() {
method schema (line 15) | get schema() {
FILE: apps/editor/src/wysiwyg/nodes/tableHeadCell.ts
class TableHeadCell (line 11) | class TableHeadCell extends NodeSchema {
method name (line 12) | get name() {
method schema (line 16) | get schema() {
FILE: apps/editor/src/wysiwyg/nodes/tableRow.ts
class TableRow (line 6) | class TableRow extends NodeSchema {
method name (line 7) | get name() {
method schema (line 11) | get schema() {
FILE: apps/editor/src/wysiwyg/nodes/text.ts
class Text (line 8) | class Text extends Node {
method name (line 9) | get name() {
method schema (line 13) | get schema() {
method addSpaces (line 19) | private addSpaces(): Command {
method removeSpaces (line 33) | private removeSpaces(): Command {
method keymaps (line 56) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodes/thematicBreak.ts
constant ROOT_BLOCK_DEPTH (line 8) | const ROOT_BLOCK_DEPTH = 1;
class ThematicBreak (line 10) | class ThematicBreak extends Node {
method name (line 11) | get name() {
method schema (line 15) | get schema() {
method hr (line 30) | private hr(): EditorCommand {
method commands (line 58) | commands() {
method keymaps (line 62) | keymaps() {
FILE: apps/editor/src/wysiwyg/nodeview/codeBlockView.ts
type GetPos (line 12) | type GetPos = (() => number) | boolean;
type InputPos (line 14) | type InputPos = {
constant WRAPPER_CLASS_NAME (line 19) | const WRAPPER_CLASS_NAME = 'toastui-editor-ww-code-block';
constant CODE_BLOCK_LANG_CLASS_NAME (line 20) | const CODE_BLOCK_LANG_CLASS_NAME = 'toastui-editor-ww-code-block-language';
class CodeBlockView (line 22) | class CodeBlockView implements NodeView {
method constructor (line 39) | constructor(node: ProsemirrorNode, view: EditorView, getPos: GetPos, e...
method createElement (line 50) | private createElement() {
method createCodeBlockElement (line 66) | private createCodeBlockElement() {
method createLanguageEditor (line 82) | private createLanguageEditor({ top, right }: InputPos) {
method bindDOMEvent (line 112) | private bindDOMEvent() {
method bindEvent (line 118) | private bindEvent() {
method changeLanguage (line 145) | private changeLanguage() {
method reset (line 159) | private reset() {
method clearTimer (line 168) | private clearTimer() {
method stopEvent (line 175) | stopEvent() {
method update (line 179) | update(node: ProsemirrorNode) {
method destroy (line 189) | destroy() {
FILE: apps/editor/src/wysiwyg/nodeview/customBlockView.ts
type GetPos (line 13) | type GetPos = (() => number) | boolean;
class CustomBlockView (line 15) | class CustomBlockView implements NodeView {
method constructor (line 34) | constructor(node: ProsemirrorNode, view: EditorView, getPos: GetPos, t...
method renderToolArea (line 54) | private renderToolArea() {
method renderCustomBlock (line 70) | private renderCustomBlock() {
method createInnerViewContainer (line 87) | private createInnerViewContainer() {
method closeEditor (line 143) | private closeEditor() {
method saveAndFinishEditing (line 152) | private saveAndFinishEditing() {
method cancelEditing (line 163) | private cancelEditing() {
method dispatchInner (line 185) | private dispatchInner(tr: Transaction) {
method update (line 207) | update(node: ProsemirrorNode) {
method stopEvent (line 221) | stopEvent(event: Event): boolean {
method ignoreMutation (line 229) | ignoreMutation() {
method destroy (line 233) | destroy() {
FILE: apps/editor/src/wysiwyg/nodeview/imageView.ts
type GetPos (line 13) | type GetPos = (() => number) | boolean;
constant IMAGE_LINK_CLASS_NAME (line 15) | const IMAGE_LINK_CLASS_NAME = 'image-link';
class ImageView (line 17) | class ImageView implements NodeView {
method constructor (line 30) | constructor(node: ProsemirrorNode, view: EditorView, getPos: GetPos, e...
method createElement (line 41) | private createElement() {
method createImageElement (line 56) | private createImageElement(node: ProsemirrorNode) {
method bindEvent (line 71) | private bindEvent() {
method stopEvent (line 102) | stopEvent() {
method destroy (line 106) | destroy() {
FILE: apps/editor/src/wysiwyg/plugins/selection/cellSelection.ts
function getSelectionRanges (line 7) | function getSelectionRanges(
function createTableFragment (line 24) | function createTableFragment(tableHead: Node, tableBody: Node) {
class CellSelection (line 36) | class CellSelection extends Selection {
method constructor (line 45) | constructor(startCellPos: ResolvedPos, endCellPos = startCellPos) {
method map (line 64) | map(doc: Node, mapping: Mappable) {
method eq (line 87) | eq(cell: CellSelection) {
method content (line 95) | content() {
method toJSON (line 135) | toJSON() {
FILE: apps/editor/src/wysiwyg/plugins/selection/tableSelection.ts
constant SELECTED_CELL_CLASS_NAME (line 10) | const SELECTED_CELL_CLASS_NAME = cls('cell-selected');
function drawCellSelection (line 12) | function drawCellSelection({ selection, doc }: EditorState) {
function tableSelection (line 27) | function tableSelection() {
FILE: apps/editor/src/wysiwyg/plugins/selection/tableSelectionView.ts
type EventHandlers (line 9) | interface EventHandlers {
constant MOUSE_RIGHT_BUTTON (line 17) | const MOUSE_RIGHT_BUTTON = 2;
class TableSelection (line 19) | class TableSelection {
method constructor (line 26) | constructor(view: EditorView) {
method init (line 40) | init() {
method handleMousedown (line 44) | handleMousedown(ev: Event) {
method handleMousemove (line 63) | handleMousemove(ev: Event) {
method handleMouseup (line 81) | handleMouseup() {
method bindEvent (line 91) | bindEvent() {
method unbindEvent (line 98) | unbindEvent() {
method getCellPos (line 105) | getCellPos({ clientX, clientY }: MouseEvent) {
method setCellSelection (line 123) | setCellSelection(startCellPos: ResolvedPos, endCellPos: ResolvedPos) {
method destroy (line 139) | destroy() {
FILE: apps/editor/src/wysiwyg/plugins/tableContextMenu.ts
type ContextMenuInfo (line 9) | interface ContextMenuInfo {
function getContextMenuGroups (line 63) | function getContextMenuGroups(eventEmitter: Emitter, inTableHead: boolea...
function tableContextMenu (line 80) | function tableContextMenu(eventEmitter: Emitter) {
FILE: apps/editor/src/wysiwyg/plugins/task.ts
function task (line 7) | function task() {
FILE: apps/editor/src/wysiwyg/plugins/toolbarState.ts
type ListType (line 9) | type ListType = 'bulletList' | 'orderedList' | 'taskList';
constant EXCEPT_TYPES (line 11) | const EXCEPT_TYPES = ['image', 'link', 'customBlock', 'frontMatter'];
constant MARK_TYPES (line 12) | const MARK_TYPES = ['strong', 'strike', 'emph', 'code'];
constant LIST_TYPES (line 13) | const LIST_TYPES: ListType[] = ['bulletList', 'orderedList', 'taskList'];
function getToolbarStateType (line 15) | function getToolbarStateType(node: Node, parentNode: Node) {
function setListNodeToolbarState (line 29) | function setListNodeToolbarState(type: ToolbarStateKeys, nodeTypeState: ...
function setMarkTypeStates (line 39) | function setMarkTypeStates(
function getToolbarState (line 56) | function getToolbarState(selection: Selection, doc: Node, schema: Schema) {
function toolbarStateHighlight (line 84) | function toolbarStateHighlight(eventEmitter: Emitter) {
FILE: apps/editor/src/wysiwyg/specCreator.ts
function createSpecs (line 32) | function createSpecs(linkAttributes: LinkAttributes) {
FILE: apps/editor/src/wysiwyg/wwEditor.ts
type WindowWithClipboard (line 35) | interface WindowWithClipboard extends Window {
type WysiwygOptions (line 39) | interface WysiwygOptions {
type PluginNodeVeiwFn (line 48) | type PluginNodeVeiwFn = (node: ProsemirrorNode, view: EditorView, getPos...
type PluginNodeViews (line 50) | interface PluginNodeViews {
constant CONTENTS_CLASS_NAME (line 54) | const CONTENTS_CLASS_NAME = cls('contents');
class WysiwygEditor (line 56) | class WysiwygEditor extends EditorBase {
method constructor (line 63) | constructor(eventEmitter: Emitter, options: WysiwygOptions) {
method createSpecs (line 91) | createSpecs() {
method createContext (line 95) | createContext() {
method createSchema (line 102) | createSchema(htmlSchemaMap?: HTMLSchemaMap) {
method createPlugins (line 109) | createPlugins() {
method createPluginNodeViews (line 119) | createPluginNodeViews() {
method createView (line 133) | createView() {
method createCommands (line 205) | createCommands() {
method getHTML (line 209) | getHTML() {
method getModel (line 213) | getModel() {
method getSelection (line 217) | getSelection(): [number, number] {
method getSchema (line 223) | getSchema() {
method replaceSelection (line 227) | replaceSelection(text: string, start?: number, end?: number) {
method deleteSelection (line 243) | deleteSelection(start?: number, end?: number) {
method getSelectedText (line 251) | getSelectedText(start?: number, end?: number) {
method setModel (line 262) | setModel(newDoc: ProsemirrorNode | [], cursorToEnd = false) {
method setSelection (line 272) | setSelection(start: number, end = start) {
method addWidget (line 279) | addWidget(node: Node, style: WidgetStyle, pos?: number) {
method replaceWithWidget (line 285) | replaceWithWidget(start: number, end: number, text: string) {
method getRangeInfoOfNode (line 292) | getRangeInfoOfNode(pos?: number) {
FILE: apps/editor/tsBannerGenerator.js
constant TS_BANNER (line 9) | const TS_BANNER = [
FILE: apps/editor/types/convertor.d.ts
type Attrs (line 5) | type Attrs = { [name: string]: any } | null;
type StackItem (line 7) | interface StackItem {
type ToWwConvertorState (line 13) | interface ToWwConvertorState {
type ToWwConvertor (line 27) | type ToWwConvertor = (
type ToWwConvertorMap (line 41) | type ToWwConvertorMap = Partial>;
type FirstDelimFn (line 43) | type FirstDelimFn = (index: number) => string;
type ToMdConvertorState (line 45) | interface ToMdConvertorState {
type ToDOMAdaptor (line 63) | interface ToDOMAdaptor {
type HTMLToWwConvertor (line 67) | type HTMLToWwConvertor = (state: ToWwConvertorState, node: MdNode, openT...
type HTMLToWwConvertorMap (line 69) | type HTMLToWwConvertorMap = Partial>;
type FlattenHTMLToWwConvertorMap (line 71) | interface FlattenHTMLToWwConvertorMap {
type NodeInfo (line 75) | interface NodeInfo {
type MarkInfo (line 81) | interface MarkInfo {
type ToMdConvertorReturnValues (line 87) | interface ToMdConvertorReturnValues {
type ToMdNodeTypeWriter (line 94) | type ToMdNodeTypeWriter = (
type ToMdNodeTypeWriterMap (line 100) | type ToMdNodeTypeWriterMap = Partial;
type EventMap (line 33) | interface EventMap {
type HookCallback (line 45) | type HookCallback = (url: string, text?: string) => void;
type HookMap (line 47) | type HookMap = {
type AutolinkParser (line 51) | type AutolinkParser = (
type ExtendedAutolinks (line 59) | type ExtendedAutolinks = boolean | AutolinkParser;
type LinkAttributeNames (line 61) | type LinkAttributeNames = 'rel' | 'target' | 'hreflang' | 'type';
type LinkAttributes (line 64) | type LinkAttributes = Partial>;
type Sanitizer (line 66) | type Sanitizer = (content: string) => string;
type HTMLMdNodeConvertor (line 68) | type HTMLMdNodeConvertor = (
type HTMLMdNodeConvertorMap (line 74) | type HTMLMdNodeConvertorMap = Record;
type CustomHTMLRenderer (line 76) | type CustomHTMLRenderer = Partial PluginInfo | ...
type EditorPlugin (line 147) | type EditorPlugin = PluginFn | [PluginFn, any];
type ContextInfo (line 148) | type ContextInfo = {
type EditorPluginInfo (line 154) | type EditorPluginInfo = ContextInfo & {
type EditorPluginsInfo (line 158) | type EditorPluginsInfo = ContextInfo & {
type EditorOptions (line 162) | interface EditorOptions {
type Slots (line 192) | interface Slots {
class EditorCore (line 198) | class EditorCore {
class Editor (line 292) | class Editor extends EditorCore {
type SelectionPos (line 298) | type SelectionPos = Sourcepos | [from: number, to: number];
type EditorPos (line 299) | type EditorPos = MdPos | number;
type NodeRangeInfo (line 300) | interface NodeRangeInfo {
type Base (line 305) | interface Base {
type SchemaMap (line 379) | type SchemaMap = Record;
type HTMLSchemaMap (line 380) | interface HTMLSchemaMap {
FILE: apps/editor/types/event.d.ts
type Handler (line 3) | interface Handler {
type Emitter (line 8) | interface Emitter {
type EmitterConstructor (line 18) | interface EmitterConstructor {
type EventTypes (line 22) | type EventTypes =
FILE: apps/editor/types/map.d.ts
type Mapable (line 1) | interface Mapable {
FILE: apps/editor/types/markdown.d.ts
type TableRowMdNode (line 3) | interface TableRowMdNode extends MdNode {
type TableBodyMdNode (line 7) | interface TableBodyMdNode extends MdNode {
type TableHeadMdNode (line 11) | interface TableHeadMdNode extends MdNode {
type MdLikeNode (line 18) | interface MdLikeNode {
type HTMLMdNode (line 38) | interface HTMLMdNode {
FILE: apps/editor/types/plugin.d.ts
type PluginProp (line 12) | type PluginProp = (eventEmitter?: Emitter) => Plugin;
type PluginNodeViews (line 14) | type PluginNodeViews = (
type NodeViewPropMap (line 21) | type NodeViewPropMap = Record;
type CommandFn (line 23) | type CommandFn = (
type PluginCommandMap (line 29) | type PluginCommandMap = Record;
type PluginToolbarItem (line 31) | interface PluginToolbarItem {
type PluginInfo (line 37) | interface PluginInfo {
type PluginInfoResult (line 49) | interface PluginInfoResult {
FILE: apps/editor/types/prosemirror-commands.d.ts
type Command (line 8) | interface Command {
type Keymap (line 12) | interface Keymap {
FILE: apps/editor/types/prosemirror-model.d.ts
type Fragment (line 4) | interface Fragment {
type ProsemirrorNode (line 10) | type ProsemirrorNode = Model.Node;
type NodeType (line 12) | interface NodeType {
FILE: apps/editor/types/prosemirror-transform.d.ts
type Step (line 5) | interface Step {
type Transform (line 11) | interface Transform {
FILE: apps/editor/types/spec.d.ts
type Context (line 8) | interface Context {
type MdContext (line 13) | interface MdContext extends Context {
type SpecContext (line 17) | interface SpecContext extends Context {
type MdSpecContext (line 21) | interface MdSpecContext extends SpecContext {
type DefaultPayload (line 25) | type DefaultPayload = Record;
type Payload (line 26) | type Payload = T extends infer P ? P : any;
type Dispatch (line 28) | type Dispatch = (tr: Transaction) => void;
type EditorCommand (line 29) | type EditorCommand = (payload?: Payload) => Command;
type EditorCommandMap (line 30) | type EditorCommandMap = Record = (payload?: Payload) => boo...
type EditorAllCommandMap (line 32) | type EditorAllCommandMap = Record>;
type RefDefState (line 179) | type RefDefState = {
type RefMap (line 187) | type RefMap = {
type RefLinkCandidateMap (line 191) | type RefLinkCandidateMap = {
type RefDefCandidateMap (line 198) | type RefDefCandidateMap = {
type ParserOptions (line 202) | interface ParserOptions {
class Parser (line 213) | class Parser {
type HTMLConvertor (line 252) | type HTMLConvertor = (
type HTMLConvertorMap (line 258) | type HTMLConvertorMap = Partial>;
type RendererOptions (line 260) | interface RendererOptions {
type Context (line 268) | interface Context {
type TagToken (line 277) | interface TagToken {
type OpenTagToken (line 283) | interface OpenTagToken extends TagToken {
type CloseTagToken (line 290) | interface CloseTagToken extends TagToken {
type TextToken (line 294) | interface TextToken {
type RawHTMLToken (line 299) | interface RawHTMLToken {
type HTMLToken (line 305) | type HTMLToken = OpenTagToken | CloseTagToken | TextToken | RawHTMLToken;
class Renderer (line 307) | class Renderer {
type RemovedNodeRange (line 319) | interface RemovedNodeRange {
type EditResult (line 324) | interface EditResult {
type EventName (line 329) | type EventName = 'change';
type EventHandlerMap (line 331) | type EventHandlerMap = {
class ToastMark (line 335) | class ToastMark {
FILE: apps/editor/types/ui.d.ts
type PopupOptions (line 1) | interface PopupOptions {
type ToolbarButtonOptions (line 7) | interface ToolbarButtonOptions {
type ToolbarCustomOptions (line 18) | interface ToolbarCustomOptions {
type ToolbarButtonInfo (line 29) | type ToolbarButtonInfo = {
type Component (line 33) | interface Component {
type VNodeWalker (line 46) | interface VNodeWalker {
type VNode (line 56) | interface VNode {
type ComponentClass (line 84) | interface ComponentClass {
type Pos (line 88) | interface Pos {
type TooltipStyle (line 93) | type TooltipStyle = {
type PopupInfo (line 97) | interface PopupInfo {
type PopupInitialValues (line 106) | type PopupInitialValues = Record;
type TabInfo (line 108) | interface TabInfo {
type ToolbarItemState (line 113) | interface ToolbarItemState {
type ToolbarStateMap (line 118) | interface ToolbarStateMap {
type ToolbarStateKeys (line 134) | type ToolbarStateKeys = keyof ToolbarStateMap;
type ToolbarItemInfo (line 136) | type ToolbarItemInfo = ToolbarCustomOptions | ToolbarButtonInfo;
type ToolbarGroupInfo (line 137) | type ToolbarGroupInfo = ToolbarItemInfo[] & { hidden?: boolean };
type ToolbarItemOptions (line 138) | type ToolbarItemOptions = ToolbarCustomOptions | ToolbarButtonOptions;
type ToolbarItem (line 139) | type ToolbarItem = (string | ToolbarItemOptions)[];
type ExecCommand (line 141) | type ExecCommand = (command: string, payload?: Record) => v...
type HidePopup (line 142) | type HidePopup = () => void;
type SetPopupInfo (line 143) | type SetPopupInfo = (info: PopupInfo) => void;
type SetItemWidth (line 144) | type SetItemWidth = (name: string, width: number) => void;
type ShowTooltip (line 145) | type ShowTooltip = (el: HTMLElement) => void;
type HideTooltip (line 146) | type HideTooltip = () => void;
type GetBound (line 147) | type GetBound = (el: HTMLElement, active?: boolean) => Pos;
type ContextMenuItem (line 149) | interface ContextMenuItem {
type IndexList (line 156) | interface IndexList {
type DefaultUI (line 161) | interface DefaultUI {
FILE: apps/editor/types/wysiwyg.d.ts
type WwNodeType (line 4) | type WwNodeType =
type WwMarkType (line 29) | type WwMarkType = 'strong' | 'emph' | 'strike' | 'link' | 'code' | 'html';
type CellSelection (line 31) | interface CellSelection extends Selection {
type ColumnAlign (line 36) | type ColumnAlign = 'left' | 'right' | 'center';
FILE: apps/editor/webpack.config.js
constant ENTRY_EDITOR (line 14) | const ENTRY_EDITOR = './src/index.ts';
constant ENTRY_ONLY_STYLE (line 15) | const ENTRY_ONLY_STYLE = './src/indexEditorOnlyStyle.ts';
constant ENTRY_VIEWER (line 16) | const ENTRY_VIEWER = './src/indexViewer.ts';
function addFileManagerPlugin (line 21) | function addFileManagerPlugin(config) {
function addCopyPluginForThemeCss (line 37) | function addCopyPluginForThemeCss(config) {
function addMinifyPlugin (line 49) | function addMinifyPlugin(config) {
function addAnalyzerPlugin (line 62) | function addAnalyzerPlugin(config, type) {
function setDevelopConfig (line 71) | function setDevelopConfig(config) {
function setProductionConfig (line 90) | function setProductionConfig(config) {
function setProductionConfigForAll (line 106) | function setProductionConfigForAll(config) {
FILE: apps/react-editor/index.d.ts
type EventMapping (line 5) | interface EventMapping {
type EventNames (line 17) | type EventNames = keyof EventMapping;
type EditorProps (line 19) | type EditorProps = Omit & Partial;
type ViewerProps (line 20) | type ViewerProps = Omit & Partial;
class Editor (line 22) | class Editor extends Component {
class Viewer (line 28) | class Viewer extends Component {
FILE: apps/react-editor/src/editor.tsx
method getRootElement (line 10) | getRootElement() {
method getInstance (line 14) | getInstance() {
method getBindingEventNames (line 18) | getBindingEventNames() {
method bindEventHandlers (line 24) | bindEventHandlers(props: EditorProps) {
method getInitEvents (line 33) | getInitEvents() {
method componentDidMount (line 46) | componentDidMount() {
method shouldComponentUpdate (line 54) | shouldComponentUpdate(nextProps: EditorProps) {
method render (line 71) | render() {
FILE: apps/react-editor/src/viewer.tsx
class ViewerComponent (line 5) | class ViewerComponent extends React.Component {
method getRootElement (line 10) | getRootElement() {
method getInstance (line 14) | getInstance() {
method getBindingEventNames (line 18) | getBindingEventNames() {
method bindEventHandlers (line 24) | bindEventHandlers(props: ViewerProps) {
method getInitEvents (line 33) | getInitEvents() {
method componentDidMount (line 46) | componentDidMount() {
method shouldComponentUpdate (line 54) | shouldComponentUpdate(nextProps: ViewerProps) {
method render (line 60) | render() {
FILE: apps/vue-editor/demo/esm/index.js
method data (line 48) | data() {
FILE: apps/vue-editor/index.d.ts
type FunctionKeys (line 5) | type FunctionKeys = {
type EditorFnKeys (line 9) | type EditorFnKeys = FunctionKeys;
type ViewerFnKeys (line 10) | type ViewerFnKeys = FunctionKeys;
class Editor (line 12) | class Editor extends Vue {
class Viewer (line 21) | class Viewer extends Vue {
FILE: apps/vue-editor/rollup.config.js
function transpile (line 8) | function transpile() {
FILE: apps/vue-editor/src/mixin/option.js
method data (line 20) | data() {
method invoke (line 46) | invoke(methodName, ...args) {
method destroyed (line 56) | destroyed() {
FILE: libs/toastmark/src/__sample__/index.ts
type TokenTypes (line 34) | type TokenTypes = typeof tokenTypes;
FILE: libs/toastmark/src/__test__/toastmark.spec.ts
function removeIdAttrFromAllNode (line 7) | function removeIdAttrFromAllNode(root: Node) {
function assertParseResult (line 19) | function assertParseResult(doc: ToastMark, lineTexts: string[], options?...
function assertResultNodes (line 31) | function assertResultNodes(doc: ToastMark, nodes: Node[], startIdx = 0) {
FILE: libs/toastmark/src/commonmark/__test__/helper.spec.ts
function pos (line 3) | function pos(line1: number, col1: number, line2: number, col2: number) {
function convertToArrayTree (line 10) | function convertToArrayTree(root: BlockNode, attrs: (keyof BlockNode)[]) {
FILE: libs/toastmark/src/commonmark/__test__/options.spec.ts
method emph (line 169) | emph(node: Node, { entering }) {
method text (line 177) | text(node: Node) {
FILE: libs/toastmark/src/commonmark/blockHandlers.ts
type Process (line 26) | const enum Process {
type BlockHandler (line 37) | interface BlockHandler {
method continue (line 45) | continue() {
method finalize (line 48) | finalize() {}
method canContain (line 49) | canContain() {
method continue (line 56) | continue() {
method finalize (line 59) | finalize() {}
method canContain (line 60) | canContain(t) {
method continue (line 67) | continue() {
method finalize (line 70) | finalize(_, block: ListNode) {
method canContain (line 91) | canContain(t) {
method continue (line 98) | continue(parser) {
method finalize (line 111) | finalize() {}
method canContain (line 112) | canContain(t) {
method continue (line 119) | continue(parser, container: ListNode) {
method canContain (line 134) | canContain(t) {
method continue (line 141) | continue() {
method finalize (line 145) | finalize() {}
method canContain (line 146) | canContain() {
method continue (line 153) | continue() {
method finalize (line 157) | finalize() {}
method canContain (line 158) | canContain() {
method continue (line 165) | continue(parser, container: CodeBlockNode) {
method finalize (line 198) | finalize(_, block: CodeBlockNode) {
method canContain (line 219) | canContain() {
method continue (line 226) | continue(parser, container: HtmlBlockNode) {
method finalize (line 231) | finalize(_, block) {
method canContain (line 235) | canContain() {
method continue (line 242) | continue(parser) {
method finalize (line 245) | finalize(parser, block) {
method canContain (line 265) | canContain() {
FILE: libs/toastmark/src/commonmark/blockHelper.ts
constant CODE_INDENT (line 3) | const CODE_INDENT = 4;
constant C_TAB (line 4) | const C_TAB = 9;
constant C_NEWLINE (line 5) | const C_NEWLINE = 10;
constant C_GREATERTHAN (line 6) | const C_GREATERTHAN = 62;
constant C_LESSTHAN (line 7) | const C_LESSTHAN = 60;
constant C_SPACE (line 8) | const C_SPACE = 32;
constant C_OPEN_BRACKET (line 9) | const C_OPEN_BRACKET = 91;
function endsWithBlankLine (line 17) | function endsWithBlankLine(block: BlockNode) {
function peek (line 36) | function peek(ln: string, pos: number) {
function isBlank (line 44) | function isBlank(s: string) {
function isSpaceOrTab (line 48) | function isSpaceOrTab(c: number) {
FILE: libs/toastmark/src/commonmark/blockStarts.ts
type Matched (line 19) | const enum Matched {
type BlockStart (line 24) | interface BlockStart {
function parseListMarker (line 47) | function parseListMarker(parser: Parser, container: ListNode): ListData ...
function listsMatch (line 122) | function listsMatch(listData: ListData, itemData: ListData) {
function isDisallowedDeepHeading (line 130) | function isDisallowedDeepHeading(parser: Parser, node: BlockNode) {
FILE: libs/toastmark/src/commonmark/blocks.ts
function document (line 31) | function document() {
class Parser (line 49) | class Parser implements BlockParser {
method constructor (line 73) | constructor(options?: Partial) {
method advanceOffset (line 104) | advanceOffset(count: number, columns = false) {
method advanceNextNonspace (line 132) | advanceNextNonspace() {
method findNextNonspace (line 138) | findNextNonspace() {
method addLine (line 164) | addLine() {
method addChild (line 182) | addChild(tag: BlockNodeType, offset: number) {
method closeUnmatchedBlocks (line 199) | closeUnmatchedBlocks() {
method finalize (line 216) | finalize(block: BlockNode, lineNumber: number) {
method processInlines (line 227) | processInlines(block: BlockNode) {
method incorporateLine (line 258) | incorporateLine(ln: string) {
method parse (line 405) | parse(input: string, lineTexts?: string[]) {
method partialParseStart (line 435) | partialParseStart(lineNumber: number, lines: string[]) {
method partialParseExtends (line 453) | partialParseExtends(lines: string[]) {
method partialParseFinish (line 459) | partialParseFinish() {
method setRefMaps (line 466) | setRefMaps(
method clearRefMaps (line 476) | clearRefMaps() {
FILE: libs/toastmark/src/commonmark/common.ts
constant ENTITY (line 4) | const ENTITY = '&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});';
constant C_BACKSLASH (line 5) | const C_BACKSLASH = 92;
constant ESCAPABLE (line 7) | const ESCAPABLE = '[!"#$%&\'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]';
constant XMLSPECIAL (line 9) | const XMLSPECIAL = '[&<>"]';
function unescapeString (line 20) | function unescapeString(s: string) {
function normalizeURI (line 27) | function normalizeURI(uri: string) {
function replaceUnsafeChar (line 35) | function replaceUnsafeChar(s: string) {
function escapeXml (line 50) | function escapeXml(s: string) {
function repeat (line 57) | function repeat(str: string, count: number): string {
function last (line 65) | function last(arr: T[]) {
function isEmpty (line 72) | function isEmpty(str: string) {
FILE: libs/toastmark/src/commonmark/custom/__test__/customBlock.spec.ts
method myCustom (line 7) | myCustom(node) {
FILE: libs/toastmark/src/commonmark/custom/customBlockHandler.ts
method continue (line 9) | continue(parser, container: CustomBlockNode) {
method finalize (line 26) | finalize(_, block: CustomBlockNode) {
method canContain (line 41) | canContain() {
FILE: libs/toastmark/src/commonmark/frontMatter/frontMatterHandler.ts
method continue (line 6) | continue(parser, container: BlockNode) {
method finalize (line 18) | finalize(_, block: BlockNode) {
method canContain (line 25) | canContain() {
FILE: libs/toastmark/src/commonmark/gfm/autoLinks.ts
constant DOMAIN (line 6) | const DOMAIN = '(?:[w-]+.)*[A-Za-z0-9-]+.[A-Za-z0-9-]+';
constant PATH (line 7) | const PATH = '[^<\\s]*[^!.,:*_?~\\s]';
constant EMAIL (line 8) | const EMAIL = '[\\w.+-]+@(?:[\\w-]+\\.)+[\\w-]+';
function trimUnmatchedTrailingParens (line 10) | function trimUnmatchedTrailingParens(source: string) {
function trimTrailingEntity (line 34) | function trimTrailingEntity(source: string) {
type LinkInfo (line 38) | interface LinkInfo {
function parseEmailLink (line 44) | function parseEmailLink(source: string) {
function parseUrlLink (line 62) | function parseUrlLink(source: string) {
function baseAutolinkParser (line 80) | function baseAutolinkParser(source: string) {
function convertExtAutoLinks (line 86) | function convertExtAutoLinks(walker: NodeWalker, autolinkParser: boolean...
FILE: libs/toastmark/src/commonmark/gfm/tableBlockHandler.ts
method continue (line 5) | continue() {
method finalize (line 8) | finalize() {}
method canContain (line 9) | canContain(t: MdNodeType) {
method continue (line 16) | continue() {
method finalize (line 19) | finalize() {}
method canContain (line 20) | canContain(t: MdNodeType) {
method continue (line 27) | continue() {
method finalize (line 30) | finalize() {}
method canContain (line 31) | canContain(t: MdNodeType) {
method continue (line 38) | continue() {
method finalize (line 41) | finalize() {}
method canContain (line 42) | canContain(t: MdNodeType) {
method continue (line 49) | continue() {
method finalize (line 52) | finalize() {}
method canContain (line 53) | canContain() {
method continue (line 60) | continue() {
method finalize (line 63) | finalize() {}
method canContain (line 64) | canContain(t: MdNodeType) {
method continue (line 71) | continue() {
method finalize (line 74) | finalize() {}
method canContain (line 75) | canContain() {
FILE: libs/toastmark/src/commonmark/gfm/tableBlockStart.ts
function parseRowContent (line 7) | function parseRowContent(content: string): [number, string[]] {
function generateTableCells (line 33) | function generateTableCells(
function getColumnFromDelimCell (line 75) | function getColumnFromDelimCell(cellNode: TableCellNode) {
FILE: libs/toastmark/src/commonmark/gfm/taskListItem.ts
function taskListItemFinalize (line 7) | function taskListItemFinalize(_: Parser, block: ListNode) {
FILE: libs/toastmark/src/commonmark/inlines.ts
constant C_NEWLINE (line 13) | const C_NEWLINE = 10;
constant C_ASTERISK (line 14) | const C_ASTERISK = 42;
constant C_UNDERSCORE (line 15) | const C_UNDERSCORE = 95;
constant C_BACKTICK (line 16) | const C_BACKTICK = 96;
constant C_OPEN_BRACKET (line 17) | const C_OPEN_BRACKET = 91;
constant C_CLOSE_BRACKET (line 18) | const C_CLOSE_BRACKET = 93;
constant C_TILDE (line 19) | const C_TILDE = 126;
constant C_LESSTHAN (line 20) | const C_LESSTHAN = 60;
constant C_BANG (line 21) | const C_BANG = 33;
constant C_BACKSLASH (line 22) | const C_BACKSLASH = 92;
constant C_AMPERSAND (line 23) | const C_AMPERSAND = 38;
constant C_OPEN_PAREN (line 24) | const C_OPEN_PAREN = 40;
constant C_CLOSE_PAREN (line 25) | const C_CLOSE_PAREN = 41;
constant C_COLON (line 26) | const C_COLON = 58;
constant C_SINGLEQUOTE (line 27) | const C_SINGLEQUOTE = 39;
constant C_DOUBLEQUOTE (line 28) | const C_DOUBLEQUOTE = 34;
constant C_DOLLAR (line 29) | const C_DOLLAR = 36;
constant ESCAPED_CHAR (line 32) | const ESCAPED_CHAR = `\\\\${ESCAPABLE}`;
type DelimiterCC (line 66) | type DelimiterCC =
type Delimiter (line 74) | type Delimiter = {
type Bracket (line 85) | type Bracket = {
class InlineParser (line 96) | class InlineParser {
method constructor (line 112) | constructor(options: ParserOptions) {
method sourcepos (line 118) | sourcepos(start: number, end?: number): [number, number] | Sourcepos {
method nextLine (line 129) | nextLine() {
method match (line 136) | match(re: RegExp) {
method peek (line 147) | peek() {
method spnl (line 155) | spnl() {
method parseBackticks (line 166) | parseBackticks(block: BlockNode) {
method parseBackslash (line 213) | parseBackslash(block: BlockNode) {
method parseAutolink (line 234) | parseAutolink(block: BlockNode) {
method parseHtmlTag (line 261) | parseHtmlTag(block: BlockNode) {
method scanDelims (line 278) | scanDelims(cc: number) {
method handleDelim (line 334) | handleDelim(cc: DelimiterCC, block: BlockNode) {
method removeDelimiter (line 377) | removeDelimiter(delim: Delimiter) {
method removeDelimitersBetween (line 389) | removeDelimitersBetween(bottom: Delimiter, top: Delimiter) {
method processEmphasis (line 401) | processEmphasis(stackBottom: Delimiter | null) {
method parseLinkTitle (line 572) | parseLinkTitle() {
method parseLinkDestination (line 582) | parseLinkDestination() {
method parseLinkLabel (line 627) | parseLinkLabel() {
method parseOpenBracket (line 636) | parseOpenBracket(block: BlockNode) {
method parseBang (line 650) | parseBang(block: BlockNode) {
method parseCloseBracket (line 672) | parseCloseBracket(block: BlockNode) {
method addBracket (line 801) | addBracket(node: Node, index: number, image: boolean) {
method removeBracket (line 816) | removeBracket() {
method parseEntity (line 823) | parseEntity(block: BlockNode) {
method parseString (line 835) | parseString(block: BlockNode) {
method parseNewline (line 873) | parseNewline(block: BlockNode) {
method parseReference (line 900) | parseReference(block: BlockNode, refMap: RefMap) {
method mergeTextNodes (line 993) | mergeTextNodes(walker: NodeWalker) {
method getReferenceDefSourcepos (line 1023) | getReferenceDefSourcepos(block: BlockNode): Sourcepos {
method parseInline (line 1062) | parseInline(block: BlockNode) {
method parse (line 1121) | parse(block: BlockNode) {
FILE: libs/toastmark/src/commonmark/node.ts
function isContainer (line 23) | function isContainer(node: Node) {
function getNodeById (line 52) | function getNodeById(id: number) {
function removeNodeById (line 56) | function removeNodeById(id: number) {
function removeAllNode (line 60) | function removeAllNode() {
class Node (line 64) | class Node implements MdNode {
method constructor (line 79) | constructor(nodeType: MdNodeType, sourcepos?: Sourcepos) {
method isContainer (line 91) | isContainer() {
method unlink (line 95) | unlink() {
method replaceWith (line 111) | replaceWith(node: Node) {
method insertAfter (line 116) | insertAfter(sibling: Node) {
method insertBefore (line 132) | insertBefore(sibling: Node) {
method appendChild (line 146) | appendChild(child: Node) {
method prependChild (line 159) | prependChild(child: Node) {
method walker (line 172) | walker() {
class BlockNode (line 177) | class BlockNode extends Node implements BlockMdNode {
method constructor (line 187) | constructor(nodeType: BlockNodeType, sourcepos?: Sourcepos) {
class ListNode (line 193) | class ListNode extends BlockNode implements ListMdNode {
class HeadingNode (line 197) | class HeadingNode extends BlockNode implements HeadingMdNode {
class CodeBlockNode (line 202) | class CodeBlockNode extends BlockNode implements CodeBlockMdNode {
class TableNode (line 211) | class TableNode extends BlockNode implements TableMdNode {
class TableCellNode (line 215) | class TableCellNode extends BlockNode implements TableCellMdNode {
class RefDefNode (line 223) | class RefDefNode extends BlockNode implements RefDefMdNode {
class CustomBlockNode (line 229) | class CustomBlockNode extends BlockNode implements CustomBlockMdNode {
class HtmlBlockNode (line 235) | class HtmlBlockNode extends BlockNode implements HtmlBlockMdNode {
class LinkNode (line 239) | class LinkNode extends Node implements LinkMdNode {
class CodeNode (line 246) | class CodeNode extends Node implements CodeMdNode {
class CustomInlineNode (line 250) | class CustomInlineNode extends Node implements CustomInlineMdNode {
function createNode (line 266) | function createNode(type: MdNodeType, sourcepos?: Sourcepos) {
function isCodeBlock (line 306) | function isCodeBlock(node: Node): node is CodeBlockNode {
function isHtmlBlock (line 310) | function isHtmlBlock(node: Node): node is HtmlBlockNode {
function isHeading (line 314) | function isHeading(node: Node): node is HeadingNode {
function isList (line 318) | function isList(node: Node): node is ListNode {
function isTable (line 322) | function isTable(node: Node): node is TableNode {
function isRefDef (line 326) | function isRefDef(node: Node): node is RefDefNode {
function isCustomBlock (line 330) | function isCustomBlock(node: Node): node is CustomBlockNode {
function isCustomInline (line 334) | function isCustomInline(node: Node) {
function text (line 338) | function text(s: string, sourcepos?: Sourcepos) {
FILE: libs/toastmark/src/commonmark/nodeWalker.ts
class NodeWalker (line 4) | class NodeWalker implements BaseNodeWalker {
method constructor (line 9) | constructor(root: Node) {
method next (line 15) | next() {
method resumeAt (line 46) | resumeAt(node: Node, entering: boolean) {
FILE: libs/toastmark/src/commonmark/rawHtml.ts
constant TAGNAME (line 1) | const TAGNAME = '[A-Za-z][A-Za-z0-9-]*';
constant ATTRIBUTENAME (line 2) | const ATTRIBUTENAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';
constant UNQUOTEDVALUE (line 3) | const UNQUOTEDVALUE = '[^"\'=<>`\\x00-\\x20]+';
constant SINGLEQUOTEDVALUE (line 5) | const SINGLEQUOTEDVALUE = "'[^']*'";
constant DOUBLEQUOTEDVALUE (line 6) | const DOUBLEQUOTEDVALUE = '"[^"]*"';
constant ATTRIBUTEVALUE (line 8) | const ATTRIBUTEVALUE = `(?:${UNQUOTEDVALUE}|${SINGLEQUOTEDVALUE}|${DOUBL...
constant ATTRIBUTEVALUESPEC (line 9) | const ATTRIBUTEVALUESPEC = `${'(?:\\s*=\\s*'}${ATTRIBUTEVALUE})`;
constant ATTRIBUTE (line 10) | const ATTRIBUTE = `${'(?:\\s+'}${ATTRIBUTENAME}${ATTRIBUTEVALUESPEC}?)`;
constant OPENTAG (line 12) | const OPENTAG = `<${TAGNAME}${ATTRIBUTE}*\\s*/?>`;
constant CLOSETAG (line 13) | const CLOSETAG = `${TAGNAME}\\s*[>]`;
constant HTMLCOMMENT (line 15) | const HTMLCOMMENT = '|';
constant PROCESSINGINSTRUCTION (line 16) | const PROCESSINGINSTRUCTION = '[<][?].*?[?][>]';
constant DECLARATION (line 17) | const DECLARATION = ']*>';
constant CDATA (line 18) | const CDATA = '';
constant HTMLTAG (line 20) | const HTMLTAG = `(?:${OPENTAG}|${CLOSETAG}|${HTMLCOMMENT}|${PROCESSINGIN...
FILE: libs/toastmark/src/helper.ts
function last (line 4) | function last(arr: T[] | string) {
function normalizeReference (line 11) | function normalizeReference(str: string) {
function iterateObject (line 20) | function iterateObject(obj: T, iteratee: (key: keyof T, value: T[keyo...
function omit (line 26) | function omit(obj: T, ...propNames: (keyof T)[]) {
function isEmptyObj (line 34) | function isEmptyObj(obj: T) {
function clearObj (line 38) | function clearObj(obj: T) {
FILE: libs/toastmark/src/html/__test__/render.spec.ts
method paragraph (line 94) | paragraph(_, { entering, origin }) {
method tableCell (line 117) | tableCell(_, { origin }) {
FILE: libs/toastmark/src/html/baseConvertors.ts
constant CUSTOM_SYNTAX_LENGTH (line 13) | const CUSTOM_SYNTAX_LENGTH = 4;
method heading (line 16) | heading(node, { entering }) {
method text (line 24) | text(node) {
method softbreak (line 31) | softbreak(_, { options }) {
method linebreak (line 38) | linebreak() {
method emph (line 45) | emph(_, { entering }) {
method strong (line 52) | strong(_, { entering }) {
method paragraph (line 59) | paragraph(node, { entering }) {
method thematicBreak (line 74) | thematicBreak() {
method blockQuote (line 83) | blockQuote(_, { entering }) {
method list (line 92) | list(node, { entering }) {
method item (line 108) | item(_, { entering }) {
method htmlInline (line 116) | htmlInline(node, { options }) {
method htmlBlock (line 122) | htmlBlock(node, { options }) {
method code (line 136) | code(node) {
method codeBlock (line 144) | codeBlock(node) {
method link (line 161) | link(node: Node, { entering }) {
method image (line 177) | image(node: Node, { getChildrenText, skipChildren }) {
method customBlock (line 194) | customBlock(node, context, convertors) {
method frontMatter (line 215) | frontMatter(node) {
method customInline (line 229) | customInline(node, context, convertors) {
FILE: libs/toastmark/src/html/gfmConvertors.ts
method strike (line 5) | strike(_, { entering }) {
method item (line 12) | item(node: Node, { entering }) {
method table (line 51) | table(_, { entering }) {
method tableHead (line 59) | tableHead(_, { entering }) {
method tableBody (line 67) | tableBody(_, { entering }) {
method tableRow (line 75) | tableRow(node: Node, { entering }) {
method tableCell (line 113) | tableCell(node: Node, { entering }) {
FILE: libs/toastmark/src/html/renderer.ts
function getChildrenText (line 27) | function getChildrenText(node: Node) {
class Renderer (line 41) | class Renderer implements HTMLRenderer {
method constructor (line 48) | constructor(customOptions?: Partial) {
method createConvertors (line 55) | private createConvertors() {
method getConvertors (line 87) | getConvertors() {
method getOptions (line 91) | getOptions() {
method render (line 95) | render(rootNode: Node): string {
method renderHTMLNode (line 146) | renderHTMLNode(node: HTMLToken) {
method generateOpenTagString (line 163) | private generateOpenTagString(node: OpenTagToken) {
method generateCloseTagString (line 185) | private generateCloseTagString({ tagName }: CloseTagToken) {
method addNewLine (line 189) | private addNewLine() {
method addOuterNewLine (line 195) | private addOuterNewLine(node: TagToken | RawHTMLToken) {
method addInnerNewLine (line 201) | private addInnerNewLine(node: TagToken) {
method renderTextNode (line 207) | private renderTextNode(node: TextToken) {
method renderRawHtmlNode (line 211) | private renderRawHtmlNode(node: RawHTMLToken) {
method renderElementNode (line 217) | private renderElementNode(node: OpenTagToken | CloseTagToken) {
FILE: libs/toastmark/src/html/tagFilter.ts
function filterDisallowedTags (line 15) | function filterDisallowedTags(str: string) {
FILE: libs/toastmark/src/nodeHelper.ts
type Compare (line 4) | const enum Compare {
function comparePos (line 10) | function comparePos(p1: Pos, p2: Pos) {
function compareRangeAndPos (line 26) | function compareRangeAndPos([startPos, endPos]: Sourcepos, pos: Pos) {
function getAllParents (line 36) | function getAllParents(node: Node) {
function removeNextUntil (line 45) | function removeNextUntil(node: Node, last: Node) {
function getChildNodes (line 69) | function getChildNodes(parent: Node) {
function insertNodesBefore (line 79) | function insertNodesBefore(target: Node, nodes: Node[]) {
function prependChildNodes (line 85) | function prependChildNodes(parent: Node, nodes: Node[]) {
function updateNextLineNumbers (line 91) | function updateNextLineNumbers(base: Node | null, diff: number) {
function compareRangeAndLine (line 109) | function compareRangeAndLine([startPos, endPos]: Sourcepos, line: number) {
function findChildNodeAtLine (line 119) | function findChildNodeAtLine(parent: Node, line: number) {
function lastLeafNode (line 135) | function lastLeafNode(node: Node) {
function sameLineTopAncestor (line 142) | function sameLineTopAncestor(node: Node) {
function findFirstNodeAtLine (line 153) | function findFirstNodeAtLine(parent: Node, line: number) {
function findNodeAtPosition (line 178) | function findNodeAtPosition(parent: Node, pos: Pos) {
function toString (line 202) | function toString(node: Node | null) {
function findNodeById (line 213) | function findNodeById(id: number) {
function invokeNextUntil (line 217) | function invokeNextUntil(callback: Function, start: Node | null, end: No...
function isUnlinked (line 232) | function isUnlinked(id: number) {
FILE: libs/toastmark/src/toastmark.ts
type ParseResult (line 42) | type ParseResult = EditResult & { nextNode: Node | null };
function canBeContinuedListItem (line 44) | function canBeContinuedListItem(lineText: string) {
function canBeContinuedTableBody (line 54) | function canBeContinuedTableBody(lineText: string) {
function createRefDefState (line 58) | function createRefDefState(node: RefDefNode) {
class ToastMark (line 69) | class ToastMark implements ToastMarkParser {
method constructor (line 79) | constructor(contents?: string, options?: Partial) {
method updateLineTexts (line 93) | private updateLineTexts(startPos: Pos, endPos: Pos, newText: string) {
method updateRootNodeState (line 109) | private updateRootNodeState() {
method replaceRangeNodes (line 135) | private replaceRangeNodes(
method getNodeRange (line 156) | private getNodeRange(startPos: Pos, endPos: Pos) {
method trigger (line 168) | private trigger(eventName: EventName, param: any) {
method extendEndLine (line 174) | private extendEndLine(line: number) {
method parseRange (line 181) | private parseRange(
method getRemovedNodeRange (line 229) | private getRemovedNodeRange(
method markDeletedRefMap (line 246) | private markDeletedRefMap(extStartNode: BlockNode | null, extEndNode: ...
method replaceWithNewRefDefState (line 265) | private replaceWithNewRefDefState(nodes: BlockNode[]) {
method replaceWithRefDefCandidate (line 282) | private replaceWithRefDefCandidate() {
method getRangeWithRefDef (line 299) | private getRangeWithRefDef(
method parse (line 324) | private parse(startPos: Pos, endPos: Pos, lineDiff = 0): ParseResult {
method parseRefLink (line 351) | private parseRefLink() {
method removeUnlinkedCandidate (line 371) | private removeUnlinkedCandidate() {
method editMarkdown (line 383) | editMarkdown(startPos: Pos, endPos: Pos, newText: string) {
method getLineTexts (line 404) | getLineTexts() {
method getRootNode (line 408) | getRootNode() {
method findNodeAtPosition (line 412) | findNodeAtPosition(pos: Pos) {
method findFirstNodeAtLine (line 420) | findFirstNodeAtLine(line: number) {
method on (line 424) | on(eventName: EventName, callback: () => void) {
method off (line 428) | off(eventName: EventName, callback: Function) {
method findNodeById (line 434) | findNodeById(id: number) {
method removeAllNode (line 438) | removeAllNode() {
FILE: libs/toastmark/types/node.d.ts
type BlockNodeType (line 1) | type BlockNodeType =
type InlineNodeType (line 22) | type InlineNodeType =
type MdNodeType (line 35) | type MdNodeType = BlockNodeType | InlineNodeType;
type Pos (line 37) | type Pos = [number, number];
type Sourcepos (line 38) | type Sourcepos = [Pos, Pos];
type NodeWalker (line 40) | interface NodeWalker {
type MdNode (line 49) | interface MdNode {
type BlockMdNode (line 70) | interface BlockMdNode extends MdNode {
type ListData (line 81) | interface ListData {
type ListMdNode (line 93) | interface ListMdNode extends BlockMdNode {
type ListItemMdNode (line 97) | interface ListItemMdNode extends BlockMdNode {
type HeadingMdNode (line 102) | interface HeadingMdNode extends BlockMdNode {
type CodeBlockMdNode (line 107) | interface CodeBlockMdNode extends BlockMdNode {
type TableColumn (line 115) | interface TableColumn {
type TableMdNode (line 119) | interface TableMdNode extends BlockMdNode {
type TableCellMdNode (line 123) | interface TableCellMdNode extends BlockMdNode {
type CustomBlockMdNode (line 132) | interface CustomBlockMdNode extends BlockMdNode {
type RefDefMdNode (line 136) | interface RefDefMdNode extends BlockMdNode {
type CustomBlockMdNode (line 142) | interface CustomBlockMdNode extends BlockMdNode {
type HtmlBlockMdNode (line 148) | interface HtmlBlockMdNode extends BlockMdNode {
type LinkMdNode (line 152) | interface LinkMdNode extends MdNode {
type CodeMdNode (line 159) | interface CodeMdNode extends MdNode {
type CustomInlineMdNode (line 163) | interface CustomInlineMdNode extends MdNode {
FILE: libs/toastmark/types/parser.d.ts
type AutolinkParser (line 3) | type AutolinkParser = (
type CustomParser (line 11) | type CustomParser = (
type CustomParserMap (line 15) | type CustomParserMap = Partial>;
type RefDefState (line 17) | type RefDefState = {
type RefMap (line 25) | type RefMap = {
type RefLinkCandidateMap (line 29) | type RefLinkCandidateMap = {
type RefDefCandidateMap (line 36) | type RefDefCandidateMap = {
type ParserOptions (line 40) | interface ParserOptions {
class BlockParser (line 51) | class BlockParser {
FILE: libs/toastmark/types/renderer.d.ts
type HTMLConvertor (line 3) | type HTMLConvertor = (
type HTMLConvertorMap (line 9) | type HTMLConvertorMap = Partial void;
function parse (line 81) | function parse(text: string, callback: ParserCallback) {
function detectDelimiter (line 105) | function detectDelimiter(text: string) {
function parseToChartData (line 123) | function parseToChartData(text: string, delimiter?: string | RegExp) {
function createOptionKeys (line 169) | function createOptionKeys(keyString: string) {
function parseToChartOption (line 187) | function parseToChartOption(text: string) {
function getAdjustedDimension (line 225) | function getAdjustedDimension(size: 'auto' | number, containerWidth: num...
function getChartDimension (line 229) | function getChartDimension(
function setDefaultOptions (line 249) | function setDefaultOptions(
function destroyChart (line 276) | function destroyChart() {
function renderChart (line 288) | function renderChart(
function generateId (line 328) | function generateId() {
function clearTimer (line 334) | function clearTimer() {
function chartPlugin (line 352) | function chartPlugin(
FILE: plugins/chart/src/util.ts
function trimKeepingTabs (line 1) | function trimKeepingTabs(text: string) {
function isNumeric (line 5) | function isNumeric(text: string) {
function clamp (line 11) | function clamp(value: number, min: number, max: number) {
FILE: plugins/chart/types/index.d.ts
type PluginOptions (line 3) | interface PluginOptions {
FILE: plugins/chart/webpack.config.js
function getOutputConfig (line 9) | function getOutputConfig(isProduction, isCDN, minify) {
function getExternalsConfig (line 44) | function getExternalsConfig() {
function getOptimizationConfig (line 57) | function getOptimizationConfig(isProduction, minify) {
FILE: plugins/code-syntax-highlight/src/__test__/integration/codeHighlightPlugin.spec.ts
function getPreviewHTML (line 21) | function getPreviewHTML() {
function getWwEditorHTML (line 28) | function getWwEditorHTML() {
FILE: plugins/code-syntax-highlight/src/__test__/integration/codeHighlightPluginWithAllLangs.spec.ts
function getPreviewHTML (line 18) | function getPreviewHTML() {
function getWwEditorHTML (line 25) | function getWwEditorHTML() {
FILE: plugins/code-syntax-highlight/src/indexAll.ts
function plugin (line 17) | function plugin(context: PluginContext): PluginInfo {
FILE: plugins/code-syntax-highlight/src/nodeViews/codeSyntaxHighlightView.ts
type GetPos (line 11) | type GetPos = (() => number) | boolean;
type CodeBlockPos (line 13) | type CodeBlockPos = { top: number; right: number };
constant WRAPPER_CLASS_NAME (line 15) | const WRAPPER_CLASS_NAME = 'ww-code-block-highlighting';
function getCustomAttrs (line 17) | function getCustomAttrs(attrs: Record) {
class CodeSyntaxHighlightView (line 23) | class CodeSyntaxHighlightView implements NodeView {
method constructor (line 33) | constructor(
method createElement (line 52) | private createElement() {
method createCodeBlockElement (line 73) | private createCodeBlockElement() {
method bindDOMEvent (line 94) | private bindDOMEvent() {
method bindEvent (line 102) | private bindEvent() {
method openLanguageSelectBox (line 126) | private openLanguageSelectBox(pos: CodeBlockPos) {
method changeLanguage (line 136) | private changeLanguage(language: string) {
method reset (line 154) | private reset() {
method stopEvent (line 163) | stopEvent() {
method update (line 167) | update(node: ProsemirrorNode) {
method destroy (line 177) | destroy() {
function createCodeSyntaxHighlightView (line 192) | function createCodeSyntaxHighlightView(languages: string[]) {
FILE: plugins/code-syntax-highlight/src/nodeViews/languageSelectBox.ts
constant WRAPPER_CLASS_NAME (line 11) | const WRAPPER_CLASS_NAME = 'code-block-language';
constant INPUT_CLASS_NANE (line 12) | const INPUT_CLASS_NANE = 'code-block-language-input';
constant LIST_CLASS_NAME (line 13) | const LIST_CLASS_NAME = 'code-block-language-list';
constant LANG_ATTR (line 14) | const LANG_ATTR = 'data-language';
constant CODE_BLOCK_PADDING (line 16) | const CODE_BLOCK_PADDING = 10;
function getButtonsHTML (line 18) | function getButtonsHTML(languages: string[]) {
class LanguageSelectBox (line 24) | class LanguageSelectBox {
method constructor (line 43) | constructor(rootEl: HTMLElement, eventEmitter: Emitter, languages: str...
method createElement (line 53) | private createElement() {
method createInputElement (line 66) | private createInputElement() {
method createLanguageListElement (line 82) | private createLanguageListElement() {
method bindDOMEvent (line 99) | private bindDOMEvent() {
method bindEvent (line 107) | private bindEvent() {
method activateSelectBox (line 168) | private activateSelectBox() {
method inactivateSelectBox (line 173) | private inactivateSelectBox() {
method toggleFocus (line 179) | private toggleFocus() {
method storeInputLanguage (line 187) | private storeInputLanguage() {
method activateButtonByIndex (line 196) | private activateButtonByIndex(index: number) {
method selectLanguage (line 209) | private selectLanguage(selectedLanguage: string) {
method selectPrevLanguage (line 214) | private selectPrevLanguage() {
method selectNextLanguage (line 224) | private selectNextLanguage() {
method hideList (line 234) | private hideList() {
method show (line 238) | show() {
method hide (line 242) | hide() {
method setLanguage (line 246) | setLanguage(language: string) {
method destroy (line 259) | destroy() {
FILE: plugins/code-syntax-highlight/src/plugin.ts
function codeSyntaxHighlightPlugin (line 10) | function codeSyntaxHighlightPlugin(
FILE: plugins/code-syntax-highlight/src/plugins/codeSyntaxHighlighting.ts
type ChildNodeInfo (line 11) | interface ChildNodeInfo {
type HighlightedNodeInfo (line 16) | interface HighlightedNodeInfo {
constant NODE_TYPE (line 21) | const NODE_TYPE = 'codeBlock';
function findCodeBlocks (line 23) | function findCodeBlocks(doc: ProsemirrorNode) {
function parseTokens (line 35) | function parseTokens(
function getDecorations (line 68) | function getDecorations(doc: ProsemirrorNode, context: PluginContext, pr...
function codeSyntaxHighlighting (line 101) | function codeSyntaxHighlighting(context: PluginContext, prism: PrismJs) {
FILE: plugins/code-syntax-highlight/src/renderers/toHTMLRenderers.ts
constant BACKTICK_COUNT (line 5) | const BACKTICK_COUNT = 3;
function getHTMLRenderers (line 7) | function getHTMLRenderers(prism: PrismJs) {
FILE: plugins/code-syntax-highlight/src/utils/common.ts
function flatten (line 1) | function flatten(arr: T[]): T[] {
FILE: plugins/code-syntax-highlight/src/utils/dom.ts
function stringToNumber (line 1) | function stringToNumber(value: string) {
function isPositionInBox (line 5) | function isPositionInBox(style: CSSStyleDeclaration, offsetX: number, of...
function removeNode (line 20) | function removeNode(node: Node) {
constant CLS_PREFIX (line 26) | const CLS_PREFIX = 'toastui-editor-';
function cls (line 28) | function cls(...names: string[]) {
FILE: plugins/code-syntax-highlight/types/index.d.ts
type PrismJs (line 4) | type PrismJs = typeof Prism & {
type Window (line 9) | interface Window {
type PluginOptions (line 14) | type PluginOptions = {
FILE: plugins/code-syntax-highlight/types/prosemirror-transform.d.ts
type Transform (line 5) | interface Transform {
FILE: plugins/code-syntax-highlight/webpack.config.js
constant ENTRY (line 13) | const ENTRY = './src/index.ts';
constant ENTRY_ALL_LANG (line 14) | const ENTRY_ALL_LANG = './src/indexAll.ts';
function getOutputConfig (line 16) | function getOutputConfig(isProduction, isCDN, isAll, minify) {
function getOptimizationConfig (line 54) | function getOptimizationConfig(isProduction, minify) {
FILE: plugins/color-syntax/src/__test__/integration/colorSyntaxPlugin.spec.ts
function removeDataAttr (line 7) | function removeDataAttr(html: string) {
function assertWwEditorHTML (line 17) | function assertWwEditorHTML(html: string) {
function assertMdPreviewHTML (line 25) | function assertMdPreviewHTML(html: string) {
FILE: plugins/color-syntax/src/i18n/langs.ts
function addLangs (line 3) | function addLangs(i18n: I18n) {
FILE: plugins/color-syntax/src/index.ts
constant PREFIX (line 11) | const PREFIX = 'toastui-editor-';
function createApplyButton (line 13) | function createApplyButton(text: string) {
function createToolbarItemOption (line 22) | function createToolbarItemOption(colorPickerContainer: HTMLDivElement, i...
function createSelection (line 35) | function createSelection(
function getCurrentEditorEl (line 52) | function getCurrentEditorEl(colorPickerEl: HTMLElement, containerClassNa...
type ColorPickerOption (line 58) | interface ColorPickerOption {
function colorSyntaxPlugin (line 75) | function colorSyntaxPlugin(
FILE: plugins/color-syntax/src/utils/dom.ts
function hasClass (line 1) | function hasClass(element: HTMLElement, className: string) {
function findParentByClassName (line 5) | function findParentByClassName(el: HTMLElement, className: string) {
function removeProseMirrorHackNodes (line 15) | function removeProseMirrorHackNodes(html: string) {
FILE: plugins/color-syntax/types/index.d.ts
type PluginOptions (line 3) | interface PluginOptions {
FILE: plugins/color-syntax/types/prosemirror-model.d.ts
type Fragment (line 2) | interface Fragment {
FILE: plugins/color-syntax/types/tui-color-picker.d.ts
type ColorPickerOption (line 1) | interface ColorPickerOption {
type ColorPicker (line 7) | interface ColorPicker {
FILE: plugins/color-syntax/webpack.config.js
function getOutputConfig (line 13) | function getOutputConfig(isProduction, isCDN, minify) {
function getExternalsConfig (line 52) | function getExternalsConfig() {
function getOptimizationConfig (line 65) | function getOptimizationConfig(isProduction, minify) {
FILE: plugins/table-merged-cell/src/__test__/integration/convertor.spec.ts
function assertMdEditorText (line 8) | function assertMdEditorText(markdownText: string) {
function assertWYSIWYGHTML (line 12) | function assertWYSIWYGHTML(html: string) {
FILE: plugins/table-merged-cell/src/__test__/integration/markdown/mergedTablePreview.spec.ts
function removeDataAttr (line 8) | function removeDataAttr(html: string) {
function assertMdPreviewHTML (line 15) | function assertMdPreviewHTML(html: string) {
FILE: plugins/table-merged-cell/src/__test__/integration/wysiwyg/helper/cellSelection.ts
function getSelectionRanges (line 7) | function getSelectionRanges(
function createTableFragment (line 24) | function createTableFragment(tableHead: Node, tableBody: Node) {
class CellSelection (line 36) | class CellSelection extends Selection {
method constructor (line 45) | constructor(startCellPos: ResolvedPos, endCellPos = startCellPos) {
method map (line 64) | map(doc: Node, mapping: Mappable) {
method eq (line 87) | eq(cell: CellSelection) {
method content (line 95) | content() {
method toJSON (line 135) | toJSON() {
FILE: plugins/table-merged-cell/src/__test__/integration/wysiwyg/helper/tableOffsetMap.ts
type CellInfo (line 4) | interface CellInfo {
type SelectionInfo (line 9) | interface SelectionInfo {
type SpanMap (line 16) | interface SpanMap {
type RowInfo (line 20) | interface RowInfo {
function getSortedNumPair (line 27) | function getSortedNumPair(valueA: number, valueB: number) {
class TableOffsetMap (line 31) | class TableOffsetMap {
method constructor (line 40) | constructor(table: Node, tableRows: Node[], tableStartPos: number, row...
method create (line 47) | static create(cellPos: ResolvedPos): TableOffsetMap | null {
method totalRowCount (line 73) | get totalRowCount() {
method totalColumnCount (line 77) | get totalColumnCount() {
method tableStartOffset (line 81) | get tableStartOffset() {
method tableEndOffset (line 85) | get tableEndOffset() {
method getCellInfo (line 89) | getCellInfo(rowIdx: number, colIdx: number) {
method posAt (line 93) | posAt(rowIdx: number, colIdx: number): number {
method getNodeAndPos (line 110) | getNodeAndPos(rowIdx: number, colIdx: number) {
method extendedRowspan (line 116) | extendedRowspan(rowIdx: number, colIdx: number) {
method extendedColspan (line 122) | extendedColspan(rowIdx: number, colIdx: number) {
method getRowspanCount (line 128) | getRowspanCount(rowIdx: number, colIdx: number) {
method getColspanCount (line 134) | getColspanCount(rowIdx: number, colIdx: number) {
method decreaseColspanCount (line 140) | decreaseColspanCount(rowIdx: number, colIdx: number) {
method decreaseRowspanCount (line 149) | decreaseRowspanCount(rowIdx: number, colIdx: number) {
method getColspanStartInfo (line 158) | getColspanStartInfo(rowIdx: number, colIdx: number) {
method getRowspanStartInfo (line 176) | getRowspanStartInfo(rowIdx: number, colIdx: number) {
method getSpannedOffsets (line 194) | getSpannedOffsets(selectionInfo: SelectionInfo): SelectionInfo {
method getCellStartOffset (line 236) | getCellStartOffset(rowIdx: number, colIdx: number) {
method getCellEndOffset (line 242) | getCellEndOffset(rowIdx: number, colIdx: number) {
method getCellIndex (line 248) | getCellIndex(cellPos: ResolvedPos): [rowIdx: number, colIdx: number] {
method getRectOffsets (line 261) | getRectOffsets(startCellPos: ResolvedPos, endCellPos = startCellPos) {
function extendPrevRowspan (line 275) | function extendPrevRowspan(prevRowInfo: RowInfo, rowInfo: RowInfo) {
function extendPrevColspan (line 296) | function extendPrevColspan(
function createOffsetMap (line 317) | function createOffsetMap(headOrBody: Node, startOffset: number, startFro...
FILE: plugins/table-merged-cell/src/__test__/integration/wysiwyg/helper/utils.ts
function assertWYSIWYGHTML (line 4) | function assertWYSIWYGHTML(editor: Editor, html: string) {
function createEditor (line 11) | function createEditor() {
function removeProseMirrorHackNodes (line 38) | function removeProseMirrorHackNodes(html: string) {
FILE: plugins/table-merged-cell/src/__test__/integration/wysiwyg/mergeCells.spec.ts
function setCellSelection (line 21) | function setCellSelection(startPos: number, endPos: number) {
FILE: plugins/table-merged-cell/src/__test__/integration/wysiwyg/splitCells.spec.ts
function setCellSelection (line 21) | function setCellSelection(startPos: number, endPos: number) {
FILE: plugins/table-merged-cell/src/i18n/langs.ts
function addLangs (line 3) | function addLangs(i18n: I18n) {
FILE: plugins/table-merged-cell/src/index.ts
function tableMergedCellPlugin (line 12) | function tableMergedCellPlugin(context: PluginContext): PluginInfo {
FILE: plugins/table-merged-cell/src/markdown/parser.ts
type Attrs (line 4) | interface Attrs {
type CellSpanInfo (line 8) | type CellSpanInfo = [spanCount: number, content: string];
function getSpanInfo (line 10) | function getSpanInfo(content: string, type: SpanType, oppositeType: Span...
function extendTableCellIndexWithRowspanMap (line 23) | function extendTableCellIndexWithRowspanMap(
method tableRow (line 59) | tableRow(node: MergedTableRowMdNode, { entering }) {
method tableCell (line 75) | tableCell(node: MergedTableCellMdNode, { entering }) {
FILE: plugins/table-merged-cell/src/markdown/renderer.ts
method tableRow (line 7) | tableRow(node: MergedTableRowMdNode, { entering, origin }) {
method tableCell (line 45) | tableCell(node: MergedTableCellMdNode, { entering, origin }) {
FILE: plugins/table-merged-cell/src/wysiwyg/command/addColumn.ts
type ColDirection (line 6) | type ColDirection = Direction.LEFT | Direction.RIGHT;
function getTargetColInfo (line 8) | function getTargetColInfo(
function createAddColumnCommand (line 30) | function createAddColumnCommand(
FILE: plugins/table-merged-cell/src/wysiwyg/command/addRow.ts
type RowDirection (line 7) | type RowDirection = Direction.UP | Direction.DOWN;
function getTargetRowInfo (line 9) | function getTargetRowInfo(
function createAddRowCommand (line 35) | function createAddRowCommand(
FILE: plugins/table-merged-cell/src/wysiwyg/command/direction.ts
type Direction (line 2) | const enum Direction {
FILE: plugins/table-merged-cell/src/wysiwyg/command/mergeCells.ts
type RangeInfo (line 12) | interface RangeInfo {
function createMergeCellsCommand (line 19) | function createMergeCellsCommand(context: PluginContext, OffsetMap: Tabl...
function setSpanToRootCell (line 87) | function setSpanToRootCell(tr: Transaction, fragment: Fragment, rangeInf...
function appendFragment (line 102) | function appendFragment(rowIdx: number, colIdx: number, fragment: Fragme...
FILE: plugins/table-merged-cell/src/wysiwyg/command/removeColumn.ts
function createRemoveColumnCommand (line 5) | function createRemoveColumnCommand(
FILE: plugins/table-merged-cell/src/wysiwyg/command/removeRow.ts
function getRowRanges (line 5) | function getRowRanges(map: TableOffsetMap, rowIdx: number) {
function createRemoveRowCommand (line 21) | function createRemoveRowCommand(context: PluginContext, OffsetMap: Table...
FILE: plugins/table-merged-cell/src/wysiwyg/command/splitCells.ts
function getColspanEndIdx (line 7) | function getColspanEndIdx(rowIdx: number, colIdx: number, map: TableOffs...
function judgeInsertToNextRow (line 18) | function judgeInsertToNextRow(
function createSplitCellsCommand (line 33) | function createSplitCellsCommand(context: PluginContext, OffsetMap: Tabl...
function setCellSelection (line 95) | function setCellSelection(
FILE: plugins/table-merged-cell/src/wysiwyg/commandFactory.ts
function createCommands (line 11) | function createCommands(context: PluginContext, OffsetMap: TableOffsetMa...
FILE: plugins/table-merged-cell/src/wysiwyg/contextMenu.ts
constant TABLE_CELL_SELECT_CLASS (line 4) | const TABLE_CELL_SELECT_CLASS = '.toastui-editor-cell-selected';
function hasSpanAttr (line 6) | function hasSpanAttr(tableCell: Element) {
function hasSpanningCell (line 12) | function hasSpanningCell(headOrBody: Element) {
function isCellSelected (line 16) | function isCellSelected(headOrBody: Element) {
function createMergedTableContextMenu (line 20) | function createMergedTableContextMenu(context: PluginContext, tableCell:...
function addMergedTableContextMenu (line 44) | function addMergedTableContextMenu(context: PluginContext) {
FILE: plugins/table-merged-cell/src/wysiwyg/renderer.ts
type ColumnAlign (line 4) | type ColumnAlign = 'left' | 'right' | 'center';
constant DELIM_LENGH (line 5) | const DELIM_LENGH = 3;
function repeat (line 7) | function repeat(text: string, count: number) {
function createTableHeadDelim (line 17) | function createTableHeadDelim(textContent: string, columnAlign: ColumnAl...
function createDelim (line 37) | function createDelim(node: ProsemirrorNode) {
method tableHead (line 52) | tableHead(nodeInfo) {
method tableHeadCell (line 72) | tableHeadCell(nodeInfo) {
method tableBodyCell (line 75) | tableBodyCell(nodeInfo) {
FILE: plugins/table-merged-cell/src/wysiwyg/tableOffsetMapMixin.ts
method extendedRowspan (line 5) | extendedRowspan(rowIdx: number, colIdx: number) {
method extendedColspan (line 10) | extendedColspan(rowIdx: number, colIdx: number) {
method getRowspanCount (line 15) | getRowspanCount(rowIdx: number, colIdx: number) {
method getColspanCount (line 20) | getColspanCount(rowIdx: number, colIdx: number) {
method decreaseColspanCount (line 25) | decreaseColspanCount(rowIdx: number, colIdx: number) {
method decreaseRowspanCount (line 33) | decreaseRowspanCount(rowIdx: number, colIdx: number) {
method getColspanStartInfo (line 41) | getColspanStartInfo(rowIdx: number, colIdx: number) {
method getRowspanStartInfo (line 58) | getRowspanStartInfo(rowIdx: number, colIdx: number) {
method getSpannedOffsets (line 75) | getSpannedOffsets(selectionInfo: SelectionInfo): SelectionInfo {
function extendPrevRowspan (line 118) | function extendPrevRowspan(prevRowInfo: RowInfo, rowInfo: RowInfo) {
function extendPrevColspan (line 139) | function extendPrevColspan(
FILE: plugins/table-merged-cell/src/wysiwyg/util.ts
function findNodeBy (line 6) | function findNodeBy(pos: ResolvedPos, condition: (node: Node, depth: num...
function findCell (line 26) | function findCell(pos: ResolvedPos) {
function getResolvedSelection (line 33) | function getResolvedSelection(selection: Selection, context: PluginConte...
function getRowAndColumnCount (line 50) | function getRowAndColumnCount({
function setAttrs (line 59) | function setAttrs(cell: Node, attrs: Record) {
function getCellSelectionClass (line 63) | function getCellSelectionClass(selection: Selection) {
function createDummyCells (line 69) | function createDummyCells(
FILE: plugins/table-merged-cell/types/index.d.ts
type TableBodyMdNode (line 12) | interface TableBodyMdNode extends MdNode {
type TableHeadMdNode (line 16) | interface TableHeadMdNode extends MdNode {
type SpanType (line 23) | type SpanType = '@cols' | '@rows';
type MergedTableRowMdNode (line 25) | interface MergedTableRowMdNode extends MdNode {
type MergedTableCellMdNode (line 34) | interface MergedTableCellMdNode extends TableCellMdNode {
type CellSelection (line 40) | interface CellSelection extends Selection {
type CellInfo (line 46) | interface CellInfo {
type SelectionInfo (line 52) | interface SelectionInfo {
type SpanMap (line 59) | interface SpanMap {
type RowInfo (line 63) | interface RowInfo {
type SpanInfo (line 70) | interface SpanInfo {
type TableOffsetMapFactory (line 77) | interface TableOffsetMapFactory {
type TableOffsetMap (line 81) | interface TableOffsetMap {
type CommandFn (line 103) | type CommandFn = PluginCommandMap[keyof PluginCommandMap];
FILE: plugins/table-merged-cell/types/prosemirror-transform.d.ts
type Transform (line 5) | interface Transform {
FILE: plugins/table-merged-cell/webpack.config.js
function getOutputConfig (line 13) | function getOutputConfig(isProduction, isCDN, minify) {
function getOptimizationConfig (line 51) | function getOptimizationConfig(isProduction, minify) {
FILE: plugins/uml/index.d.ts
type PluginOptions (line 3) | interface PluginOptions {
FILE: plugins/uml/src/__test__/integration/umlPlugin.spec.ts
function removeDataAttr (line 8) | function removeDataAttr(html: string) {
function assertWwEditorHTML (line 18) | function assertWwEditorHTML(html: string) {
function assertMdPreviewHTML (line 24) | function assertMdPreviewHTML(html: string) {
FILE: plugins/uml/src/index.ts
constant DEFAULT_RENDERER_URL (line 11) | const DEFAULT_RENDERER_URL = '//www.plantuml.com/plantuml/png/';
function createUMLTokens (line 13) | function createUMLTokens(text: string, rendererURL: string): HTMLToken[] {
function umlPlugin (line 38) | function umlPlugin(_: PluginContext, options: PluginOptions = {}): Plugi...
FILE: plugins/uml/webpack.config.js
function getOutputConfig (line 9) | function getOutputConfig(isProduction, isCDN, minify) {
function getExternalsConfig (line 44) | function getExternalsConfig(isProduction, isCDN) {
function getOptimizationConfig (line 52) | function getOptimizationConfig(isProduction, minify) {
FILE: scripts/publish-cdn.js
constant LOCAL_DIST_PATH (line 7) | const LOCAL_DIST_PATH = path.join(__dirname, '../apps/editor/dist/cdn');
constant STORAGE_API_URL (line 8) | const STORAGE_API_URL = 'https://api-storage.cloud.toast.com/v1';
constant IDENTITY_API_URL (line 9) | const IDENTITY_API_URL = 'https://api-identity.infrastructure.cloud.toas...
function getTOASTCloudContainer (line 16) | async function getTOASTCloudContainer(token) {
function getTOASTCloudToken (line 29) | async function getTOASTCloudToken() {
function publishToCdn (line 52) | function publishToCdn(token, localPath, cdnPath) {
function publish (line 76) | async function publish() {