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


TypeScript CharacterMetadata.getEntity方法代码示例

本文整理汇总了TypeScript中draft-js.CharacterMetadata.getEntity方法的典型用法代码示例。如果您正苦于以下问题:TypeScript CharacterMetadata.getEntity方法的具体用法?TypeScript CharacterMetadata.getEntity怎么用?TypeScript CharacterMetadata.getEntity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在draft-js.CharacterMetadata的用法示例。


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

示例1: getEntityRanges

export default function getEntityRanges(text: string, charMetaList: CharacterMetaList): Array<EntityRange> {
	let charEntity: any = null;
	let prevCharEntity: any = null;
	let ranges: Array<EntityRange> = [];
	let rangeStart = 0;
	for (let i = 0, len = text.length; i < len; i++) {
		prevCharEntity = charEntity;
		let meta: CharacterMetadata = charMetaList.get(i);
		charEntity = meta ? meta.getEntity() : null;
		if (i > 0 && charEntity !== prevCharEntity) {
			ranges.push([
				prevCharEntity,
				getStyleRanges(
					text.slice(rangeStart, i),
					charMetaList.slice(rangeStart, i)
				),
			]);
			rangeStart = i;
		}
	}
	ranges.push([
		charEntity,
		getStyleRanges(
			text.slice(rangeStart),
			charMetaList.slice(rangeStart)
		),
	]);
	return ranges;
}
开发者ID:aaronvine,项目名称:draft-js-export-html,代码行数:29,代码来源:getEntityRanges.ts

示例2: getStyleRanges

    return blockMap.map(block => {
      let resultText = '<div>';
      let closeTag = '</div>';
      let lastPosition = 0;
      const text = block.getText();
      const blockType = block.getType();
      const blockRender = customBlockRenderMap.get(blockType);
      if (blockRender) {
        const element = typeof blockRender.element === 'function' ? blockRender.elementTag || 'div' : 'div';
        resultText = `<${element || 'div'} style="${getStyleText(customBlockRenderMap.get(blockType).style || {})}">`;
        closeTag = `</${element || 'div'}>`;
      }

      const charMetaList = block.getCharacterList();

      let charEntity = null;
      let prevCharEntity = null;
      let ranges = [];
      let rangeStart = 0;
      for (let i = 0, len = text.length; i < len; i++) {
        prevCharEntity = charEntity;
        let meta: CharacterMetadata = charMetaList.get(i);
        charEntity = meta ? meta.getEntity() : null;
        if (i > 0 && charEntity !== prevCharEntity) {
          ranges.push([
            prevCharEntity,
            getStyleRanges(
              text.slice(rangeStart, i),
              charMetaList.slice(rangeStart, i)
            ),
          ]);
          rangeStart = i;
        }
      }
      ranges.push([
        charEntity,
        getStyleRanges(
          text.slice(rangeStart),
          charMetaList.slice(rangeStart)
        ),
      ]);

      ranges.map(([ entityKey, stylePieces]) => {
        let element = DEFAULT_ELEMENT;
        const rawContent = stylePieces.map(([text]) => text).join('');
        let content = stylePieces.map(([text, styleSet]) => {
          let encodedContent = encodeContent(text);
          if (styleSet.size) {
            let inlineStyle = {};
            styleSet.forEach(item => {
              if (customStyleMap.hasOwnProperty(item)) {
                const currentStyle = customStyleMap[item];
                inlineStyle = Object.assign(inlineStyle, currentStyle);
              }
            });
            const customedStyle = customStyleFn(styleSet);
            inlineStyle = Object.assign(inlineStyle, customedStyle);
            return `<span style="${getStyleText(inlineStyle)}">${encodedContent}</span>`;
          }
          return `<span>${encodedContent}</span>`;
        }).join('');

        if (entityKey) {
          const entity = contentState.getEntity(entityKey);
          const entityData = entity.getData();
          if (entityData && entityData.export) {
            resultText += entityData.export(content, entityData);
          } else {
            let HTMLText = '';
            toHTMLList.forEach(toHTML => {
              const text = toHTML(rawContent, entity, contentState);
              if (text) {
                HTMLText = text;
              }
            });
            if (HTMLText) { resultText += HTMLText }
          }
        } else {
          resultText += content;
        }
      });

      resultText += closeTag;
      return resultText;
    }).join('\n');
开发者ID:react-component,项目名称:editor-core,代码行数:85,代码来源:getHTML.ts


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