Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../js/dist
File: blocks.js
return pieces.map(piece => {
[14500] Fix | Delete
// Already a block from shortcode.
[14501] Fix | Delete
if (typeof piece !== 'string') {
[14502] Fix | Delete
return piece;
[14503] Fix | Delete
}
[14504] Fix | Delete
[14505] Fix | Delete
// These filters are essential for some blocks to be able to transform
[14506] Fix | Delete
// from raw HTML. These filters move around some content or add
[14507] Fix | Delete
// additional tags, they do not remove any content.
[14508] Fix | Delete
const filters = [
[14509] Fix | Delete
// Needed to adjust invalid lists.
[14510] Fix | Delete
listReducer,
[14511] Fix | Delete
// Needed to create more and nextpage blocks.
[14512] Fix | Delete
specialCommentConverter,
[14513] Fix | Delete
// Needed to create media blocks.
[14514] Fix | Delete
figureContentReducer,
[14515] Fix | Delete
// Needed to create the quote block, which cannot handle text
[14516] Fix | Delete
// without wrapper paragraphs.
[14517] Fix | Delete
blockquoteNormaliser({
[14518] Fix | Delete
raw: true
[14519] Fix | Delete
})];
[14520] Fix | Delete
piece = deepFilterHTML(piece, filters, blockContentSchema);
[14521] Fix | Delete
piece = normaliseBlocks(piece, {
[14522] Fix | Delete
raw: true
[14523] Fix | Delete
});
[14524] Fix | Delete
return htmlToBlocks(piece, rawHandler);
[14525] Fix | Delete
}).flat().filter(Boolean);
[14526] Fix | Delete
}
[14527] Fix | Delete
[14528] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/comment-remover.js
[14529] Fix | Delete
/**
[14530] Fix | Delete
* WordPress dependencies
[14531] Fix | Delete
*/
[14532] Fix | Delete
[14533] Fix | Delete
[14534] Fix | Delete
/**
[14535] Fix | Delete
* Looks for comments, and removes them.
[14536] Fix | Delete
*
[14537] Fix | Delete
* @param {Node} node The node to be processed.
[14538] Fix | Delete
* @return {void}
[14539] Fix | Delete
*/
[14540] Fix | Delete
function commentRemover(node) {
[14541] Fix | Delete
if (node.nodeType === node.COMMENT_NODE) {
[14542] Fix | Delete
(0,external_wp_dom_namespaceObject.remove)(node);
[14543] Fix | Delete
}
[14544] Fix | Delete
}
[14545] Fix | Delete
[14546] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/is-inline-content.js
[14547] Fix | Delete
/**
[14548] Fix | Delete
* WordPress dependencies
[14549] Fix | Delete
*/
[14550] Fix | Delete
[14551] Fix | Delete
[14552] Fix | Delete
/**
[14553] Fix | Delete
* Checks if the given node should be considered inline content, optionally
[14554] Fix | Delete
* depending on a context tag.
[14555] Fix | Delete
*
[14556] Fix | Delete
* @param {Node} node Node name.
[14557] Fix | Delete
* @param {string} contextTag Tag name.
[14558] Fix | Delete
*
[14559] Fix | Delete
* @return {boolean} True if the node is inline content, false if nohe.
[14560] Fix | Delete
*/
[14561] Fix | Delete
function isInline(node, contextTag) {
[14562] Fix | Delete
if ((0,external_wp_dom_namespaceObject.isTextContent)(node)) {
[14563] Fix | Delete
return true;
[14564] Fix | Delete
}
[14565] Fix | Delete
if (!contextTag) {
[14566] Fix | Delete
return false;
[14567] Fix | Delete
}
[14568] Fix | Delete
const tag = node.nodeName.toLowerCase();
[14569] Fix | Delete
const inlineAllowedTagGroups = [['ul', 'li', 'ol'], ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']];
[14570] Fix | Delete
return inlineAllowedTagGroups.some(tagGroup => [tag, contextTag].filter(t => !tagGroup.includes(t)).length === 0);
[14571] Fix | Delete
}
[14572] Fix | Delete
function deepCheck(nodes, contextTag) {
[14573] Fix | Delete
return nodes.every(node => isInline(node, contextTag) && deepCheck(Array.from(node.children), contextTag));
[14574] Fix | Delete
}
[14575] Fix | Delete
function isDoubleBR(node) {
[14576] Fix | Delete
return node.nodeName === 'BR' && node.previousSibling && node.previousSibling.nodeName === 'BR';
[14577] Fix | Delete
}
[14578] Fix | Delete
function isInlineContent(HTML, contextTag) {
[14579] Fix | Delete
const doc = document.implementation.createHTMLDocument('');
[14580] Fix | Delete
doc.body.innerHTML = HTML;
[14581] Fix | Delete
const nodes = Array.from(doc.body.children);
[14582] Fix | Delete
return !nodes.some(isDoubleBR) && deepCheck(nodes, contextTag);
[14583] Fix | Delete
}
[14584] Fix | Delete
[14585] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/phrasing-content-reducer.js
[14586] Fix | Delete
/**
[14587] Fix | Delete
* WordPress dependencies
[14588] Fix | Delete
*/
[14589] Fix | Delete
[14590] Fix | Delete
function phrasingContentReducer(node, doc) {
[14591] Fix | Delete
// In jsdom-jscore, 'node.style' can be null.
[14592] Fix | Delete
// TODO: Explore fixing this by patching jsdom-jscore.
[14593] Fix | Delete
if (node.nodeName === 'SPAN' && node.style) {
[14594] Fix | Delete
const {
[14595] Fix | Delete
fontWeight,
[14596] Fix | Delete
fontStyle,
[14597] Fix | Delete
textDecorationLine,
[14598] Fix | Delete
textDecoration,
[14599] Fix | Delete
verticalAlign
[14600] Fix | Delete
} = node.style;
[14601] Fix | Delete
if (fontWeight === 'bold' || fontWeight === '700') {
[14602] Fix | Delete
(0,external_wp_dom_namespaceObject.wrap)(doc.createElement('strong'), node);
[14603] Fix | Delete
}
[14604] Fix | Delete
if (fontStyle === 'italic') {
[14605] Fix | Delete
(0,external_wp_dom_namespaceObject.wrap)(doc.createElement('em'), node);
[14606] Fix | Delete
}
[14607] Fix | Delete
[14608] Fix | Delete
// Some DOM implementations (Safari, JSDom) don't support
[14609] Fix | Delete
// style.textDecorationLine, so we check style.textDecoration as a
[14610] Fix | Delete
// fallback.
[14611] Fix | Delete
if (textDecorationLine === 'line-through' || textDecoration.includes('line-through')) {
[14612] Fix | Delete
(0,external_wp_dom_namespaceObject.wrap)(doc.createElement('s'), node);
[14613] Fix | Delete
}
[14614] Fix | Delete
if (verticalAlign === 'super') {
[14615] Fix | Delete
(0,external_wp_dom_namespaceObject.wrap)(doc.createElement('sup'), node);
[14616] Fix | Delete
} else if (verticalAlign === 'sub') {
[14617] Fix | Delete
(0,external_wp_dom_namespaceObject.wrap)(doc.createElement('sub'), node);
[14618] Fix | Delete
}
[14619] Fix | Delete
} else if (node.nodeName === 'B') {
[14620] Fix | Delete
node = (0,external_wp_dom_namespaceObject.replaceTag)(node, 'strong');
[14621] Fix | Delete
} else if (node.nodeName === 'I') {
[14622] Fix | Delete
node = (0,external_wp_dom_namespaceObject.replaceTag)(node, 'em');
[14623] Fix | Delete
} else if (node.nodeName === 'A') {
[14624] Fix | Delete
// In jsdom-jscore, 'node.target' can be null.
[14625] Fix | Delete
// TODO: Explore fixing this by patching jsdom-jscore.
[14626] Fix | Delete
if (node.target && node.target.toLowerCase() === '_blank') {
[14627] Fix | Delete
node.rel = 'noreferrer noopener';
[14628] Fix | Delete
} else {
[14629] Fix | Delete
node.removeAttribute('target');
[14630] Fix | Delete
node.removeAttribute('rel');
[14631] Fix | Delete
}
[14632] Fix | Delete
[14633] Fix | Delete
// Saves anchor elements name attribute as id
[14634] Fix | Delete
if (node.name && !node.id) {
[14635] Fix | Delete
node.id = node.name;
[14636] Fix | Delete
}
[14637] Fix | Delete
[14638] Fix | Delete
// Keeps id only if there is an internal link pointing to it
[14639] Fix | Delete
if (node.id && !node.ownerDocument.querySelector(`[href="#${node.id}"]`)) {
[14640] Fix | Delete
node.removeAttribute('id');
[14641] Fix | Delete
}
[14642] Fix | Delete
}
[14643] Fix | Delete
}
[14644] Fix | Delete
[14645] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/head-remover.js
[14646] Fix | Delete
function headRemover(node) {
[14647] Fix | Delete
if (node.nodeName !== 'SCRIPT' && node.nodeName !== 'NOSCRIPT' && node.nodeName !== 'TEMPLATE' && node.nodeName !== 'STYLE') {
[14648] Fix | Delete
return;
[14649] Fix | Delete
}
[14650] Fix | Delete
node.parentNode.removeChild(node);
[14651] Fix | Delete
}
[14652] Fix | Delete
[14653] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/ms-list-ignore.js
[14654] Fix | Delete
/**
[14655] Fix | Delete
* Looks for comments, and removes them.
[14656] Fix | Delete
*
[14657] Fix | Delete
* @param {Node} node The node to be processed.
[14658] Fix | Delete
* @return {void}
[14659] Fix | Delete
*/
[14660] Fix | Delete
function msListIgnore(node) {
[14661] Fix | Delete
if (node.nodeType !== node.ELEMENT_NODE) {
[14662] Fix | Delete
return;
[14663] Fix | Delete
}
[14664] Fix | Delete
const style = node.getAttribute('style');
[14665] Fix | Delete
if (!style || !style.includes('mso-list')) {
[14666] Fix | Delete
return;
[14667] Fix | Delete
}
[14668] Fix | Delete
const rules = style.split(';').reduce((acc, rule) => {
[14669] Fix | Delete
const [key, value] = rule.split(':');
[14670] Fix | Delete
if (key && value) {
[14671] Fix | Delete
acc[key.trim().toLowerCase()] = value.trim().toLowerCase();
[14672] Fix | Delete
}
[14673] Fix | Delete
return acc;
[14674] Fix | Delete
}, {});
[14675] Fix | Delete
if (rules['mso-list'] === 'ignore') {
[14676] Fix | Delete
node.remove();
[14677] Fix | Delete
}
[14678] Fix | Delete
}
[14679] Fix | Delete
[14680] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/ms-list-converter.js
[14681] Fix | Delete
/**
[14682] Fix | Delete
* Internal dependencies
[14683] Fix | Delete
*/
[14684] Fix | Delete
[14685] Fix | Delete
[14686] Fix | Delete
function ms_list_converter_isList(node) {
[14687] Fix | Delete
return node.nodeName === 'OL' || node.nodeName === 'UL';
[14688] Fix | Delete
}
[14689] Fix | Delete
function msListConverter(node, doc) {
[14690] Fix | Delete
if (node.nodeName !== 'P') {
[14691] Fix | Delete
return;
[14692] Fix | Delete
}
[14693] Fix | Delete
const style = node.getAttribute('style');
[14694] Fix | Delete
if (!style || !style.includes('mso-list')) {
[14695] Fix | Delete
return;
[14696] Fix | Delete
}
[14697] Fix | Delete
const prevNode = node.previousElementSibling;
[14698] Fix | Delete
[14699] Fix | Delete
// Add new list if no previous.
[14700] Fix | Delete
if (!prevNode || !ms_list_converter_isList(prevNode)) {
[14701] Fix | Delete
// See https://html.spec.whatwg.org/multipage/grouping-content.html#attr-ol-type.
[14702] Fix | Delete
const type = node.textContent.trim().slice(0, 1);
[14703] Fix | Delete
const isNumeric = /[1iIaA]/.test(type);
[14704] Fix | Delete
const newListNode = doc.createElement(isNumeric ? 'ol' : 'ul');
[14705] Fix | Delete
if (isNumeric) {
[14706] Fix | Delete
newListNode.setAttribute('type', type);
[14707] Fix | Delete
}
[14708] Fix | Delete
node.parentNode.insertBefore(newListNode, node);
[14709] Fix | Delete
}
[14710] Fix | Delete
const listNode = node.previousElementSibling;
[14711] Fix | Delete
const listType = listNode.nodeName;
[14712] Fix | Delete
const listItem = doc.createElement('li');
[14713] Fix | Delete
let receivingNode = listNode;
[14714] Fix | Delete
[14715] Fix | Delete
// Add content.
[14716] Fix | Delete
listItem.innerHTML = deepFilterHTML(node.innerHTML, [msListIgnore]);
[14717] Fix | Delete
const matches = /mso-list\s*:[^;]+level([0-9]+)/i.exec(style);
[14718] Fix | Delete
let level = matches ? parseInt(matches[1], 10) - 1 || 0 : 0;
[14719] Fix | Delete
[14720] Fix | Delete
// Change pointer depending on indentation level.
[14721] Fix | Delete
while (level--) {
[14722] Fix | Delete
receivingNode = receivingNode.lastChild || receivingNode;
[14723] Fix | Delete
[14724] Fix | Delete
// If it's a list, move pointer to the last item.
[14725] Fix | Delete
if (ms_list_converter_isList(receivingNode)) {
[14726] Fix | Delete
receivingNode = receivingNode.lastChild || receivingNode;
[14727] Fix | Delete
}
[14728] Fix | Delete
}
[14729] Fix | Delete
[14730] Fix | Delete
// Make sure we append to a list.
[14731] Fix | Delete
if (!ms_list_converter_isList(receivingNode)) {
[14732] Fix | Delete
receivingNode = receivingNode.appendChild(doc.createElement(listType));
[14733] Fix | Delete
}
[14734] Fix | Delete
[14735] Fix | Delete
// Append the list item to the list.
[14736] Fix | Delete
receivingNode.appendChild(listItem);
[14737] Fix | Delete
[14738] Fix | Delete
// Remove the wrapper paragraph.
[14739] Fix | Delete
node.parentNode.removeChild(node);
[14740] Fix | Delete
}
[14741] Fix | Delete
[14742] Fix | Delete
;// CONCATENATED MODULE: external ["wp","blob"]
[14743] Fix | Delete
const external_wp_blob_namespaceObject = window["wp"]["blob"];
[14744] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/image-corrector.js
[14745] Fix | Delete
/**
[14746] Fix | Delete
* WordPress dependencies
[14747] Fix | Delete
*/
[14748] Fix | Delete
[14749] Fix | Delete
function imageCorrector(node) {
[14750] Fix | Delete
if (node.nodeName !== 'IMG') {
[14751] Fix | Delete
return;
[14752] Fix | Delete
}
[14753] Fix | Delete
if (node.src.indexOf('file:') === 0) {
[14754] Fix | Delete
node.src = '';
[14755] Fix | Delete
}
[14756] Fix | Delete
[14757] Fix | Delete
// This piece cannot be tested outside a browser env.
[14758] Fix | Delete
if (node.src.indexOf('data:') === 0) {
[14759] Fix | Delete
const [properties, data] = node.src.split(',');
[14760] Fix | Delete
const [type] = properties.slice(5).split(';');
[14761] Fix | Delete
if (!data || !type) {
[14762] Fix | Delete
node.src = '';
[14763] Fix | Delete
return;
[14764] Fix | Delete
}
[14765] Fix | Delete
let decoded;
[14766] Fix | Delete
[14767] Fix | Delete
// Can throw DOMException!
[14768] Fix | Delete
try {
[14769] Fix | Delete
decoded = atob(data);
[14770] Fix | Delete
} catch (e) {
[14771] Fix | Delete
node.src = '';
[14772] Fix | Delete
return;
[14773] Fix | Delete
}
[14774] Fix | Delete
const uint8Array = new Uint8Array(decoded.length);
[14775] Fix | Delete
for (let i = 0; i < uint8Array.length; i++) {
[14776] Fix | Delete
uint8Array[i] = decoded.charCodeAt(i);
[14777] Fix | Delete
}
[14778] Fix | Delete
const name = type.replace('/', '.');
[14779] Fix | Delete
const file = new window.File([uint8Array], name, {
[14780] Fix | Delete
type
[14781] Fix | Delete
});
[14782] Fix | Delete
node.src = (0,external_wp_blob_namespaceObject.createBlobURL)(file);
[14783] Fix | Delete
}
[14784] Fix | Delete
[14785] Fix | Delete
// Remove trackers and hardly visible images.
[14786] Fix | Delete
if (node.height === 1 || node.width === 1) {
[14787] Fix | Delete
node.parentNode.removeChild(node);
[14788] Fix | Delete
}
[14789] Fix | Delete
}
[14790] Fix | Delete
[14791] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/div-normaliser.js
[14792] Fix | Delete
/**
[14793] Fix | Delete
* Internal dependencies
[14794] Fix | Delete
*/
[14795] Fix | Delete
[14796] Fix | Delete
function divNormaliser(node) {
[14797] Fix | Delete
if (node.nodeName !== 'DIV') {
[14798] Fix | Delete
return;
[14799] Fix | Delete
}
[14800] Fix | Delete
node.innerHTML = normaliseBlocks(node.innerHTML);
[14801] Fix | Delete
}
[14802] Fix | Delete
[14803] Fix | Delete
// EXTERNAL MODULE: ./node_modules/showdown/dist/showdown.js
[14804] Fix | Delete
var showdown = __webpack_require__(1030);
[14805] Fix | Delete
var showdown_default = /*#__PURE__*/__webpack_require__.n(showdown);
[14806] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/markdown-converter.js
[14807] Fix | Delete
/**
[14808] Fix | Delete
* External dependencies
[14809] Fix | Delete
*/
[14810] Fix | Delete
[14811] Fix | Delete
[14812] Fix | Delete
// Reuse the same showdown converter.
[14813] Fix | Delete
const converter = new (showdown_default()).Converter({
[14814] Fix | Delete
noHeaderId: true,
[14815] Fix | Delete
tables: true,
[14816] Fix | Delete
literalMidWordUnderscores: true,
[14817] Fix | Delete
omitExtraWLInCodeBlocks: true,
[14818] Fix | Delete
simpleLineBreaks: true,
[14819] Fix | Delete
strikethrough: true
[14820] Fix | Delete
});
[14821] Fix | Delete
[14822] Fix | Delete
/**
[14823] Fix | Delete
* Corrects the Slack Markdown variant of the code block.
[14824] Fix | Delete
* If uncorrected, it will be converted to inline code.
[14825] Fix | Delete
*
[14826] Fix | Delete
* @see https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages-#code-blocks
[14827] Fix | Delete
*
[14828] Fix | Delete
* @param {string} text The potential Markdown text to correct.
[14829] Fix | Delete
*
[14830] Fix | Delete
* @return {string} The corrected Markdown.
[14831] Fix | Delete
*/
[14832] Fix | Delete
function slackMarkdownVariantCorrector(text) {
[14833] Fix | Delete
return text.replace(/((?:^|\n)```)([^\n`]+)(```(?:$|\n))/, (match, p1, p2, p3) => `${p1}\n${p2}\n${p3}`);
[14834] Fix | Delete
}
[14835] Fix | Delete
function bulletsToAsterisks(text) {
[14836] Fix | Delete
return text.replace(/(^|\n)•( +)/g, '$1*$2');
[14837] Fix | Delete
}
[14838] Fix | Delete
[14839] Fix | Delete
/**
[14840] Fix | Delete
* Converts a piece of text into HTML based on any Markdown present.
[14841] Fix | Delete
* Also decodes any encoded HTML.
[14842] Fix | Delete
*
[14843] Fix | Delete
* @param {string} text The plain text to convert.
[14844] Fix | Delete
*
[14845] Fix | Delete
* @return {string} HTML.
[14846] Fix | Delete
*/
[14847] Fix | Delete
function markdownConverter(text) {
[14848] Fix | Delete
return converter.makeHtml(slackMarkdownVariantCorrector(bulletsToAsterisks(text)));
[14849] Fix | Delete
}
[14850] Fix | Delete
[14851] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/iframe-remover.js
[14852] Fix | Delete
/**
[14853] Fix | Delete
* Removes iframes.
[14854] Fix | Delete
*
[14855] Fix | Delete
* @param {Node} node The node to check.
[14856] Fix | Delete
*
[14857] Fix | Delete
* @return {void}
[14858] Fix | Delete
*/
[14859] Fix | Delete
function iframeRemover(node) {
[14860] Fix | Delete
if (node.nodeName === 'IFRAME') {
[14861] Fix | Delete
const text = node.ownerDocument.createTextNode(node.src);
[14862] Fix | Delete
node.parentNode.replaceChild(text, node);
[14863] Fix | Delete
}
[14864] Fix | Delete
}
[14865] Fix | Delete
[14866] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/google-docs-uid-remover.js
[14867] Fix | Delete
/**
[14868] Fix | Delete
* WordPress dependencies
[14869] Fix | Delete
*/
[14870] Fix | Delete
[14871] Fix | Delete
function googleDocsUIdRemover(node) {
[14872] Fix | Delete
if (!node.id || node.id.indexOf('docs-internal-guid-') !== 0) {
[14873] Fix | Delete
return;
[14874] Fix | Delete
}
[14875] Fix | Delete
[14876] Fix | Delete
// Google Docs sometimes wraps the content in a B tag. We don't want to keep
[14877] Fix | Delete
// this.
[14878] Fix | Delete
if (node.tagName === 'B') {
[14879] Fix | Delete
(0,external_wp_dom_namespaceObject.unwrap)(node);
[14880] Fix | Delete
} else {
[14881] Fix | Delete
node.removeAttribute('id');
[14882] Fix | Delete
}
[14883] Fix | Delete
}
[14884] Fix | Delete
[14885] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/html-formatting-remover.js
[14886] Fix | Delete
/**
[14887] Fix | Delete
* Internal dependencies
[14888] Fix | Delete
*/
[14889] Fix | Delete
[14890] Fix | Delete
function isFormattingSpace(character) {
[14891] Fix | Delete
return character === ' ' || character === '\r' || character === '\n' || character === '\t';
[14892] Fix | Delete
}
[14893] Fix | Delete
[14894] Fix | Delete
/**
[14895] Fix | Delete
* Removes spacing that formats HTML.
[14896] Fix | Delete
*
[14897] Fix | Delete
* @see https://www.w3.org/TR/css-text-3/#white-space-processing
[14898] Fix | Delete
*
[14899] Fix | Delete
* @param {Node} node The node to be processed.
[14900] Fix | Delete
* @return {void}
[14901] Fix | Delete
*/
[14902] Fix | Delete
function htmlFormattingRemover(node) {
[14903] Fix | Delete
if (node.nodeType !== node.TEXT_NODE) {
[14904] Fix | Delete
return;
[14905] Fix | Delete
}
[14906] Fix | Delete
[14907] Fix | Delete
// Ignore pre content. Note that this does not use Element#closest due to
[14908] Fix | Delete
// a combination of (a) node may not be Element and (b) node.parentElement
[14909] Fix | Delete
// does not have full support in all browsers (Internet Exporer).
[14910] Fix | Delete
//
[14911] Fix | Delete
// See: https://developer.mozilla.org/en-US/docs/Web/API/Node/parentElement#Browser_compatibility
[14912] Fix | Delete
[14913] Fix | Delete
/** @type {Node?} */
[14914] Fix | Delete
let parent = node;
[14915] Fix | Delete
while (parent = parent.parentNode) {
[14916] Fix | Delete
if (parent.nodeType === parent.ELEMENT_NODE && parent.nodeName === 'PRE') {
[14917] Fix | Delete
return;
[14918] Fix | Delete
}
[14919] Fix | Delete
}
[14920] Fix | Delete
[14921] Fix | Delete
// First, replace any sequence of HTML formatting space with a single space.
[14922] Fix | Delete
let newData = node.data.replace(/[ \r\n\t]+/g, ' ');
[14923] Fix | Delete
[14924] Fix | Delete
// Remove the leading space if the text element is at the start of a block,
[14925] Fix | Delete
// is preceded by a line break element, or has a space in the previous
[14926] Fix | Delete
// node.
[14927] Fix | Delete
if (newData[0] === ' ') {
[14928] Fix | Delete
const previousSibling = getSibling(node, 'previous');
[14929] Fix | Delete
if (!previousSibling || previousSibling.nodeName === 'BR' || previousSibling.textContent.slice(-1) === ' ') {
[14930] Fix | Delete
newData = newData.slice(1);
[14931] Fix | Delete
}
[14932] Fix | Delete
}
[14933] Fix | Delete
[14934] Fix | Delete
// Remove the trailing space if the text element is at the end of a block,
[14935] Fix | Delete
// is succeded by a line break element, or has a space in the next text
[14936] Fix | Delete
// node.
[14937] Fix | Delete
if (newData[newData.length - 1] === ' ') {
[14938] Fix | Delete
const nextSibling = getSibling(node, 'next');
[14939] Fix | Delete
if (!nextSibling || nextSibling.nodeName === 'BR' || nextSibling.nodeType === nextSibling.TEXT_NODE && isFormattingSpace(nextSibling.textContent[0])) {
[14940] Fix | Delete
newData = newData.slice(0, -1);
[14941] Fix | Delete
}
[14942] Fix | Delete
}
[14943] Fix | Delete
[14944] Fix | Delete
// If there's no data left, remove the node, so `previousSibling` stays
[14945] Fix | Delete
// accurate. Otherwise, update the node data.
[14946] Fix | Delete
if (!newData) {
[14947] Fix | Delete
node.parentNode.removeChild(node);
[14948] Fix | Delete
} else {
[14949] Fix | Delete
node.data = newData;
[14950] Fix | Delete
}
[14951] Fix | Delete
}
[14952] Fix | Delete
[14953] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/br-remover.js
[14954] Fix | Delete
/**
[14955] Fix | Delete
* Internal dependencies
[14956] Fix | Delete
*/
[14957] Fix | Delete
[14958] Fix | Delete
[14959] Fix | Delete
/**
[14960] Fix | Delete
* Removes trailing br elements from text-level content.
[14961] Fix | Delete
*
[14962] Fix | Delete
* @param {Element} node Node to check.
[14963] Fix | Delete
*/
[14964] Fix | Delete
function brRemover(node) {
[14965] Fix | Delete
if (node.nodeName !== 'BR') {
[14966] Fix | Delete
return;
[14967] Fix | Delete
}
[14968] Fix | Delete
if (getSibling(node, 'next')) {
[14969] Fix | Delete
return;
[14970] Fix | Delete
}
[14971] Fix | Delete
node.parentNode.removeChild(node);
[14972] Fix | Delete
}
[14973] Fix | Delete
[14974] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/empty-paragraph-remover.js
[14975] Fix | Delete
/**
[14976] Fix | Delete
* Removes empty paragraph elements.
[14977] Fix | Delete
*
[14978] Fix | Delete
* @param {Element} node Node to check.
[14979] Fix | Delete
*/
[14980] Fix | Delete
function emptyParagraphRemover(node) {
[14981] Fix | Delete
if (node.nodeName !== 'P') {
[14982] Fix | Delete
return;
[14983] Fix | Delete
}
[14984] Fix | Delete
if (node.hasChildNodes()) {
[14985] Fix | Delete
return;
[14986] Fix | Delete
}
[14987] Fix | Delete
node.parentNode.removeChild(node);
[14988] Fix | Delete
}
[14989] Fix | Delete
[14990] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/slack-paragraph-corrector.js
[14991] Fix | Delete
/**
[14992] Fix | Delete
* Replaces Slack paragraph markup with a double line break (later converted to
[14993] Fix | Delete
* a proper paragraph).
[14994] Fix | Delete
*
[14995] Fix | Delete
* @param {Element} node Node to check.
[14996] Fix | Delete
*/
[14997] Fix | Delete
function slackParagraphCorrector(node) {
[14998] Fix | Delete
if (node.nodeName !== 'SPAN') {
[14999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function