src/model/immutable/BlockNode.js (45 lines of code) (raw):
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @flow
* @emails oncall+draft_js
*/
'use strict';
import type CharacterMetadata, {
CharacterMetadataRawConfig,
} from 'CharacterMetadata';
import type {DraftBlockType} from 'DraftBlockType';
import type {DraftInlineStyle} from 'DraftInlineStyle';
import type {List, Map} from 'immutable';
export type BlockNodeKey = string;
export type BlockNodeRawConfig = {
characterList?: Array<CharacterMetadataRawConfig>,
data?: Map<any, any>,
depth?: number,
key?: BlockNodeKey,
text?: string,
type?: DraftBlockType,
...
};
export type BlockNodeConfig = {
characterList?: List<CharacterMetadata>,
data?: Map<any, any>,
depth?: number,
key?: BlockNodeKey,
text?: string,
type?: DraftBlockType,
...
};
// https://github.com/facebook/draft-js/issues/1492
// prettier-ignore
export interface BlockNode {
+findEntityRanges: (
filterFn: (value: CharacterMetadata) => boolean,
callback: (start: number, end: number) => void,
) => void,
+findStyleRanges: (
filterFn: (value: CharacterMetadata) => boolean,
callback: (start: number, end: number) => void,
) => void,
+getCharacterList: () => List<CharacterMetadata>,
+getData: () => Map<any, any>,
+getDepth: () => number,
+getEntityAt: (offset: number) => ?string,
+getInlineStyleAt: (offset: number) => DraftInlineStyle,
+getKey: () => BlockNodeKey,
+getLength: () => number,
+getText: () => string,
+getType: () => DraftBlockType,
}