/
githubmirror
/
gutenberg
Обзор
Документация
Войти
/
githubmirror
/
gutenberg
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
trunk
packages/rich-text/src/insert.js
50 строк
1 KB
Marco Ciampini
ESLint: Replace strict config with bulk suppressions (#81248)
07 авг 2026, 14:34
Не верифицирован
07 авг 2026, 14:34
7f43eaf
Код
Авторство
О чём код?
import { create } from './create'; import { normaliseFormats } from './normalise-formats'; /** @typedef {import('./types').RichTextValue} RichTextValue */ /** * Insert a Rich Text value, an HTML string, or a plain text string, into a * Rich Text value at the given `startIndex`. Any content between `startIndex` * and `endIndex` will be removed. Indices are retrieved from the selection if * none are provided. * * @param {RichTextValue} value Value to modify. * @param {RichTextValue|string} valueToInsert Value to insert. * @param {number} [startIndex] Start index. * @param {number} [endIndex] End index. * * @return {RichTextValue} A new value with the value inserted. */ export function insert( value, valueToInsert, startIndex = value.start, endIndex = value.end ) { const { formats, replacements, text } = value; if ( typeof valueToInsert === 'string' ) { valueToInsert = create( { text: valueToInsert } ); } const index = startIndex + valueToInsert.text.length; return normaliseFormats( { formats: formats .slice( 0, startIndex ) .concat( valueToInsert.formats, formats.slice( endIndex ) ), replacements: replacements .slice( 0, startIndex ) .concat( valueToInsert.replacements, replacements.slice( endIndex ) ), text: text.slice( 0, startIndex ) + valueToInsert.text + text.slice( endIndex ), start: index, end: index, } ); }