当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript draft-js.ContentState类代码示例

本文整理汇总了TypeScript中draft-js.ContentState的典型用法代码示例。如果您正苦于以下问题:TypeScript ContentState类的具体用法?TypeScript ContentState怎么用?TypeScript ContentState使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ContentState类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: ContentBlock

const createContentBlock = ( blockData: DraftEntityInstance, contentState: ContentState) => {
  const {key, type, text, data, inlineStyles, entityData} = blockData;
  let blockSpec = {
    type: type != null ? type : 'unstyled',
    text: text != null ? text : '',
    key: key != null ? key : genKey(),
    data: null,
    characterList: List([]),
  };

  if (data) {
    blockSpec.data = fromJS(data)
  }

  if (inlineStyles || entityData) {
    let entityKey;
    if (entityData) {
      const {type, mutability, data} = entityData;
      contentState.createEntity(type, mutability, data);
      entityKey = contentState.getLastCreatedEntityKey();
    } else {
      entityKey = null
    }
    const style = OrderedSet(inlineStyles || [])
    const charData = CharacterMetadata.create({style, entityKey} as CharacterMetadataConfig)
    blockSpec.characterList = List(Repeat(charData, text.length))
  }
  return new ContentBlock(blockSpec)
}
开发者ID:react-component,项目名称:editor-core,代码行数:29,代码来源:customHTML2Content.ts

示例2: getCurrentRow

export function getCurrentRow(content: ContentState, selection: SelectionState) {
  let currentRow = 1
  let key = selection.getFocusKey()
  while (key = content.getKeyBefore(key)) {
    currentRow++
  }
  return currentRow
}
开发者ID:Pajn,项目名称:meltdown,代码行数:8,代码来源:editor-syntax-highlighting.ts

示例3:

    const getEditorState = html => {
      const blocks = Draft.convertFromHTML(html)
      const content = Draft.ContentState.createFromBlockArray(
        blocks.contentBlocks,
        blocks.entityMap
      )

      return Draft.EditorState.createWithContent(content)
    }
开发者ID:artsy,项目名称:positron,代码行数:9,代码来源:shared.test.ts

示例4: setTextToEditor

 setTextToEditor(text: string) {
     return EditorState.moveSelectionToEnd(
         EditorState.push(
             this.core,
             ContentState.createFromText(text),
             'insert-characters'
         )
     );
 }
开发者ID:DevenLu,项目名称:YourFukurou,代码行数:9,代码来源:tweet_editor.ts

示例5: changeCommentFocus

function changeCommentFocus(content: ContentState, comment: Comment, {focus}: {focus: boolean}) {
  let block = content.getBlockForKey(comment.selection.getAnchorKey())
  let chars = block.getCharacterList()

  for (let i = 0; i < chars.size; i++) {
    let metadata = chars.get(i)
    if (metadata.getEntity() === comment.entityKey) {
      if (focus) {
        metadata = CharacterMetadata.applyStyle(metadata, 'focusedComment')
      } else {
        metadata = CharacterMetadata.removeStyle(metadata, 'focusedComment')
      }
      chars = chars.set(i, metadata)
    }
  }

  block = block.set('characterList', chars)
  return content.set('blockMap', content.getBlockMap().set(block.getKey(), block))
}
开发者ID:Pajn,项目名称:meltdown,代码行数:19,代码来源:document.ts

示例6: getEntityContent

function getEntityContent(contentState: ContentState, entityKey, content: string): string {
  if (entityKey) {
    const entity = contentState.getEntity(entityKey);
    const entityData = entity.getData();
    if (entityData && entityData.export) {
      return entityData.export(content, entityData);
    }
  }
  return content;
}
开发者ID:react-component,项目名称:editor-core,代码行数:10,代码来源:getHTML.ts

示例7: updateStyles

export function updateStyles(editor: EditorState) {
  const key = editor.getSelection().getFocusKey()
  const content = editor.getCurrentContent()
  const block = content.getBlockForKey(key)
  const ast = parser.parse(block.getText())

  let updatedBlock: ContentBlock
  let updatedContent: ContentState
  if (ast.firstChild === ast.lastChild && ast.firstChild) {
    const node = ast.firstChild

    if (node.type === 'Heading') {
      const type = headerType[ast.firstChild.level] || 'unstyled'

      updatedBlock = maybeSet(block, type)
    } else if (node.type === 'BlockQuote') {
      updatedBlock = maybeSet(block, 'blockquote')
    // } else if (node.type === 'Paragraph' && node.firstChild !== node.lastChild) {
    //   updatedContent = updateInlineStyles(content, block.getKey(), node)
    } else {
      updatedBlock = maybeSet(block, 'unstyled')
    }
    /// goal question metiric, victor basili
    /// Program slicing, component based systems
  } else {
    updatedBlock = maybeSet(block, 'unstyled')
  }

  if (updatedBlock) {
    updatedContent = content.setIn(['blockMap', key], updatedBlock)
  }
  if (updatedContent) {
    const selection = editor.getSelection()
    updatedContent = updatedContent.merge({
      selectionBefore: selection,
      selectionAfter: selection,
    })

    return EditorState.push(editor, updatedContent, 'change-block-type')
  }

  return editor
}
开发者ID:Pajn,项目名称:meltdown,代码行数:43,代码来源:editor-syntax-highlighting.ts

示例8: getCurrentComment

function getCurrentComment(selection: SelectionState, content: ContentState) {
  if (!selection.isCollapsed()) return

  const block = content.getBlockForKey(selection.getAnchorKey())
  const metadata = block.getCharacterList().get(selection.getAnchorOffset())
  if (!metadata) return
  const entityKey = metadata.getEntity()
  const entity = entityKey && Entity.get(entityKey)
  if (entity && entity.getType() === 'Comment') {
    return entity.getData().id
  }
}
开发者ID:Pajn,项目名称:meltdown,代码行数:12,代码来源:document.ts

示例9:

	generate(): string {
		this.output = [];
		this.blocks = this.contentState.getBlocksAsArray();
		this.totalBlocks = this.blocks.length;
		this.currentBlock = 0;
		this.indentLevel = 0;
		this.wrapperTag = null;
		while (this.currentBlock < this.totalBlocks) {
			this.processBlock();
		}
		this.closeWrapperTag();
		return this.output.join('').trim();
	}
开发者ID:aaronvine,项目名称:draft-js-export-html,代码行数:13,代码来源:contentToHtml.ts


注:本文中的draft-js.ContentState类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。