本文整理汇总了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)
}
示例2: getCurrentRow
export function getCurrentRow(content: ContentState, selection: SelectionState) {
let currentRow = 1
let key = selection.getFocusKey()
while (key = content.getKeyBefore(key)) {
currentRow++
}
return currentRow
}
示例3:
const getEditorState = html => {
const blocks = Draft.convertFromHTML(html)
const content = Draft.ContentState.createFromBlockArray(
blocks.contentBlocks,
blocks.entityMap
)
return Draft.EditorState.createWithContent(content)
}
示例4: setTextToEditor
setTextToEditor(text: string) {
return EditorState.moveSelectionToEnd(
EditorState.push(
this.core,
ContentState.createFromText(text),
'insert-characters'
)
);
}
示例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))
}
示例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;
}
示例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
}
示例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
}
}
示例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();
}