當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。