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: interactivity.js
* where they are defined, or added to the main context when they don't exist.
[1000] Fix | Delete
*
[1001] Fix | Delete
* By default, all plain objects inside the context are wrapped, unless it is
[1002] Fix | Delete
* listed in the `ignore` option.
[1003] Fix | Delete
*
[1004] Fix | Delete
* @param current Current context.
[1005] Fix | Delete
* @param inherited Inherited context, used as fallback.
[1006] Fix | Delete
*
[1007] Fix | Delete
* @return The wrapped context object.
[1008] Fix | Delete
*/
[1009] Fix | Delete
const proxifyContext = (current, inherited = {}) => {
[1010] Fix | Delete
// Update the fallback object reference when it changes.
[1011] Fix | Delete
contextObjectToFallback.set(current, inherited);
[1012] Fix | Delete
if (!contextObjectToProxy.has(current)) {
[1013] Fix | Delete
const proxy = new Proxy(current, {
[1014] Fix | Delete
get: (target, k) => {
[1015] Fix | Delete
const fallback = contextObjectToFallback.get(current);
[1016] Fix | Delete
// Always subscribe to prop changes in the current context.
[1017] Fix | Delete
const currentProp = target[k];
[1018] Fix | Delete
[1019] Fix | Delete
// Return the inherited prop when missing in target.
[1020] Fix | Delete
if (!(k in target) && k in fallback) {
[1021] Fix | Delete
return fallback[k];
[1022] Fix | Delete
}
[1023] Fix | Delete
[1024] Fix | Delete
// Proxify plain objects that were not directly assigned.
[1025] Fix | Delete
if (k in target && !contextAssignedObjects.get(target)?.has(k) && isPlainObject(deepsignal_module_p(target, k))) {
[1026] Fix | Delete
return proxifyContext(currentProp, fallback[k]);
[1027] Fix | Delete
}
[1028] Fix | Delete
[1029] Fix | Delete
// Return the stored proxy for `currentProp` when it exists.
[1030] Fix | Delete
if (contextObjectToProxy.has(currentProp)) {
[1031] Fix | Delete
return contextObjectToProxy.get(currentProp);
[1032] Fix | Delete
}
[1033] Fix | Delete
[1034] Fix | Delete
/*
[1035] Fix | Delete
* For other cases, return the value from target, also
[1036] Fix | Delete
* subscribing to changes in the parent context when the current
[1037] Fix | Delete
* prop is not defined.
[1038] Fix | Delete
*/
[1039] Fix | Delete
return k in target ? currentProp : fallback[k];
[1040] Fix | Delete
},
[1041] Fix | Delete
set: (target, k, value) => {
[1042] Fix | Delete
const fallback = contextObjectToFallback.get(current);
[1043] Fix | Delete
const obj = k in target || !(k in fallback) ? target : fallback;
[1044] Fix | Delete
[1045] Fix | Delete
/*
[1046] Fix | Delete
* Assigned object values should not be proxified so they point
[1047] Fix | Delete
* to the original object and don't inherit unexpected
[1048] Fix | Delete
* properties.
[1049] Fix | Delete
*/
[1050] Fix | Delete
if (value && typeof value === 'object') {
[1051] Fix | Delete
if (!contextAssignedObjects.has(obj)) {
[1052] Fix | Delete
contextAssignedObjects.set(obj, new Set());
[1053] Fix | Delete
}
[1054] Fix | Delete
contextAssignedObjects.get(obj).add(k);
[1055] Fix | Delete
}
[1056] Fix | Delete
[1057] Fix | Delete
/*
[1058] Fix | Delete
* When the value is a proxy, it's because it comes from the
[1059] Fix | Delete
* context, so the inner value is assigned instead.
[1060] Fix | Delete
*/
[1061] Fix | Delete
if (contextProxyToObject.has(value)) {
[1062] Fix | Delete
const innerValue = contextProxyToObject.get(value);
[1063] Fix | Delete
obj[k] = innerValue;
[1064] Fix | Delete
} else {
[1065] Fix | Delete
obj[k] = value;
[1066] Fix | Delete
}
[1067] Fix | Delete
return true;
[1068] Fix | Delete
},
[1069] Fix | Delete
ownKeys: target => [...new Set([...Object.keys(contextObjectToFallback.get(current)), ...Object.keys(target)])],
[1070] Fix | Delete
getOwnPropertyDescriptor: (target, k) => descriptor(target, k) || descriptor(contextObjectToFallback.get(current), k)
[1071] Fix | Delete
});
[1072] Fix | Delete
contextObjectToProxy.set(current, proxy);
[1073] Fix | Delete
contextProxyToObject.set(proxy, current);
[1074] Fix | Delete
}
[1075] Fix | Delete
return contextObjectToProxy.get(current);
[1076] Fix | Delete
};
[1077] Fix | Delete
[1078] Fix | Delete
/**
[1079] Fix | Delete
* Recursively update values within a deepSignal object.
[1080] Fix | Delete
*
[1081] Fix | Delete
* @param target A deepSignal instance.
[1082] Fix | Delete
* @param source Object with properties to update in `target`.
[1083] Fix | Delete
*/
[1084] Fix | Delete
const updateSignals = (target, source) => {
[1085] Fix | Delete
for (const k in source) {
[1086] Fix | Delete
if (isPlainObject(deepsignal_module_p(target, k)) && isPlainObject(deepsignal_module_p(source, k))) {
[1087] Fix | Delete
updateSignals(target[`$${k}`].peek(), source[k]);
[1088] Fix | Delete
} else {
[1089] Fix | Delete
target[k] = source[k];
[1090] Fix | Delete
}
[1091] Fix | Delete
}
[1092] Fix | Delete
};
[1093] Fix | Delete
[1094] Fix | Delete
/**
[1095] Fix | Delete
* Recursively clone the passed object.
[1096] Fix | Delete
*
[1097] Fix | Delete
* @param source Source object.
[1098] Fix | Delete
* @return Cloned object.
[1099] Fix | Delete
*/
[1100] Fix | Delete
function deepClone(source) {
[1101] Fix | Delete
if (isPlainObject(source)) {
[1102] Fix | Delete
return Object.fromEntries(Object.entries(source).map(([key, value]) => [key, deepClone(value)]));
[1103] Fix | Delete
}
[1104] Fix | Delete
if (Array.isArray(source)) {
[1105] Fix | Delete
return source.map(i => deepClone(i));
[1106] Fix | Delete
}
[1107] Fix | Delete
return source;
[1108] Fix | Delete
}
[1109] Fix | Delete
const newRule = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g;
[1110] Fix | Delete
const ruleClean = /\/\*[^]*?\*\/| +/g;
[1111] Fix | Delete
const ruleNewline = /\n+/g;
[1112] Fix | Delete
const empty = ' ';
[1113] Fix | Delete
[1114] Fix | Delete
/**
[1115] Fix | Delete
* Convert a css style string into a object.
[1116] Fix | Delete
*
[1117] Fix | Delete
* Made by Cristian Bote (@cristianbote) for Goober.
[1118] Fix | Delete
* https://unpkg.com/browse/goober@2.1.13/src/core/astish.js
[1119] Fix | Delete
*
[1120] Fix | Delete
* @param val CSS string.
[1121] Fix | Delete
* @return CSS object.
[1122] Fix | Delete
*/
[1123] Fix | Delete
const cssStringToObject = val => {
[1124] Fix | Delete
const tree = [{}];
[1125] Fix | Delete
let block, left;
[1126] Fix | Delete
while (block = newRule.exec(val.replace(ruleClean, ''))) {
[1127] Fix | Delete
if (block[4]) {
[1128] Fix | Delete
tree.shift();
[1129] Fix | Delete
} else if (block[3]) {
[1130] Fix | Delete
left = block[3].replace(ruleNewline, empty).trim();
[1131] Fix | Delete
tree.unshift(tree[0][left] = tree[0][left] || {});
[1132] Fix | Delete
} else {
[1133] Fix | Delete
tree[0][block[1]] = block[2].replace(ruleNewline, empty).trim();
[1134] Fix | Delete
}
[1135] Fix | Delete
}
[1136] Fix | Delete
return tree[0];
[1137] Fix | Delete
};
[1138] Fix | Delete
[1139] Fix | Delete
/**
[1140] Fix | Delete
* Creates a directive that adds an event listener to the global window or
[1141] Fix | Delete
* document object.
[1142] Fix | Delete
*
[1143] Fix | Delete
* @param type 'window' or 'document'
[1144] Fix | Delete
*/
[1145] Fix | Delete
const getGlobalEventDirective = type => {
[1146] Fix | Delete
return ({
[1147] Fix | Delete
directives,
[1148] Fix | Delete
evaluate
[1149] Fix | Delete
}) => {
[1150] Fix | Delete
directives[`on-${type}`].filter(({
[1151] Fix | Delete
suffix
[1152] Fix | Delete
}) => suffix !== 'default').forEach(entry => {
[1153] Fix | Delete
const eventName = entry.suffix.split('--', 1)[0];
[1154] Fix | Delete
useInit(() => {
[1155] Fix | Delete
const cb = event => evaluate(entry, event);
[1156] Fix | Delete
const globalVar = type === 'window' ? window : document;
[1157] Fix | Delete
globalVar.addEventListener(eventName, cb);
[1158] Fix | Delete
return () => globalVar.removeEventListener(eventName, cb);
[1159] Fix | Delete
});
[1160] Fix | Delete
});
[1161] Fix | Delete
};
[1162] Fix | Delete
};
[1163] Fix | Delete
[1164] Fix | Delete
/**
[1165] Fix | Delete
* Creates a directive that adds an async event listener to the global window or
[1166] Fix | Delete
* document object.
[1167] Fix | Delete
*
[1168] Fix | Delete
* @param type 'window' or 'document'
[1169] Fix | Delete
*/
[1170] Fix | Delete
const getGlobalAsyncEventDirective = type => {
[1171] Fix | Delete
return ({
[1172] Fix | Delete
directives,
[1173] Fix | Delete
evaluate
[1174] Fix | Delete
}) => {
[1175] Fix | Delete
directives[`on-async-${type}`].filter(({
[1176] Fix | Delete
suffix
[1177] Fix | Delete
}) => suffix !== 'default').forEach(entry => {
[1178] Fix | Delete
const eventName = entry.suffix.split('--', 1)[0];
[1179] Fix | Delete
useInit(() => {
[1180] Fix | Delete
const cb = async event => {
[1181] Fix | Delete
await splitTask();
[1182] Fix | Delete
evaluate(entry, event);
[1183] Fix | Delete
};
[1184] Fix | Delete
const globalVar = type === 'window' ? window : document;
[1185] Fix | Delete
globalVar.addEventListener(eventName, cb, {
[1186] Fix | Delete
passive: true
[1187] Fix | Delete
});
[1188] Fix | Delete
return () => globalVar.removeEventListener(eventName, cb);
[1189] Fix | Delete
});
[1190] Fix | Delete
});
[1191] Fix | Delete
};
[1192] Fix | Delete
};
[1193] Fix | Delete
/* harmony default export */ const directives = (() => {
[1194] Fix | Delete
// data-wp-context
[1195] Fix | Delete
directive('context',
[1196] Fix | Delete
// @ts-ignore-next-line
[1197] Fix | Delete
({
[1198] Fix | Delete
directives: {
[1199] Fix | Delete
context
[1200] Fix | Delete
},
[1201] Fix | Delete
props: {
[1202] Fix | Delete
children
[1203] Fix | Delete
},
[1204] Fix | Delete
context: inheritedContext
[1205] Fix | Delete
}) => {
[1206] Fix | Delete
const {
[1207] Fix | Delete
Provider
[1208] Fix | Delete
} = inheritedContext;
[1209] Fix | Delete
const inheritedValue = hooks_module_P(inheritedContext);
[1210] Fix | Delete
const currentValue = hooks_module_F(deepsignal_module_g({}));
[1211] Fix | Delete
const defaultEntry = context.find(({
[1212] Fix | Delete
suffix
[1213] Fix | Delete
}) => suffix === 'default');
[1214] Fix | Delete
[1215] Fix | Delete
// No change should be made if `defaultEntry` does not exist.
[1216] Fix | Delete
const contextStack = hooks_module_q(() => {
[1217] Fix | Delete
if (defaultEntry) {
[1218] Fix | Delete
const {
[1219] Fix | Delete
namespace,
[1220] Fix | Delete
value
[1221] Fix | Delete
} = defaultEntry;
[1222] Fix | Delete
// Check that the value is a JSON object. Send a console warning if not.
[1223] Fix | Delete
if (!isPlainObject(value)) {
[1224] Fix | Delete
warn(`The value of data-wp-context in "${namespace}" store must be a valid stringified JSON object.`);
[1225] Fix | Delete
}
[1226] Fix | Delete
updateSignals(currentValue.current, {
[1227] Fix | Delete
[namespace]: deepClone(value)
[1228] Fix | Delete
});
[1229] Fix | Delete
}
[1230] Fix | Delete
return proxifyContext(currentValue.current, inheritedValue);
[1231] Fix | Delete
}, [defaultEntry, inheritedValue]);
[1232] Fix | Delete
return _(Provider, {
[1233] Fix | Delete
value: contextStack
[1234] Fix | Delete
}, children);
[1235] Fix | Delete
}, {
[1236] Fix | Delete
priority: 5
[1237] Fix | Delete
});
[1238] Fix | Delete
[1239] Fix | Delete
// data-wp-watch--[name]
[1240] Fix | Delete
directive('watch', ({
[1241] Fix | Delete
directives: {
[1242] Fix | Delete
watch
[1243] Fix | Delete
},
[1244] Fix | Delete
evaluate
[1245] Fix | Delete
}) => {
[1246] Fix | Delete
watch.forEach(entry => {
[1247] Fix | Delete
useWatch(() => evaluate(entry));
[1248] Fix | Delete
});
[1249] Fix | Delete
});
[1250] Fix | Delete
[1251] Fix | Delete
// data-wp-init--[name]
[1252] Fix | Delete
directive('init', ({
[1253] Fix | Delete
directives: {
[1254] Fix | Delete
init
[1255] Fix | Delete
},
[1256] Fix | Delete
evaluate
[1257] Fix | Delete
}) => {
[1258] Fix | Delete
init.forEach(entry => {
[1259] Fix | Delete
// TODO: Replace with useEffect to prevent unneeded scopes.
[1260] Fix | Delete
useInit(() => evaluate(entry));
[1261] Fix | Delete
});
[1262] Fix | Delete
});
[1263] Fix | Delete
[1264] Fix | Delete
// data-wp-on--[event]
[1265] Fix | Delete
directive('on', ({
[1266] Fix | Delete
directives: {
[1267] Fix | Delete
on
[1268] Fix | Delete
},
[1269] Fix | Delete
element,
[1270] Fix | Delete
evaluate
[1271] Fix | Delete
}) => {
[1272] Fix | Delete
const events = new Map();
[1273] Fix | Delete
on.filter(({
[1274] Fix | Delete
suffix
[1275] Fix | Delete
}) => suffix !== 'default').forEach(entry => {
[1276] Fix | Delete
const event = entry.suffix.split('--')[0];
[1277] Fix | Delete
if (!events.has(event)) {
[1278] Fix | Delete
events.set(event, new Set());
[1279] Fix | Delete
}
[1280] Fix | Delete
events.get(event).add(entry);
[1281] Fix | Delete
});
[1282] Fix | Delete
events.forEach((entries, eventType) => {
[1283] Fix | Delete
const existingHandler = element.props[`on${eventType}`];
[1284] Fix | Delete
element.props[`on${eventType}`] = event => {
[1285] Fix | Delete
entries.forEach(entry => {
[1286] Fix | Delete
if (existingHandler) {
[1287] Fix | Delete
existingHandler(event);
[1288] Fix | Delete
}
[1289] Fix | Delete
evaluate(entry, event);
[1290] Fix | Delete
});
[1291] Fix | Delete
};
[1292] Fix | Delete
});
[1293] Fix | Delete
});
[1294] Fix | Delete
[1295] Fix | Delete
// data-wp-on-async--[event]
[1296] Fix | Delete
directive('on-async', ({
[1297] Fix | Delete
directives: {
[1298] Fix | Delete
'on-async': onAsync
[1299] Fix | Delete
},
[1300] Fix | Delete
element,
[1301] Fix | Delete
evaluate
[1302] Fix | Delete
}) => {
[1303] Fix | Delete
const events = new Map();
[1304] Fix | Delete
onAsync.filter(({
[1305] Fix | Delete
suffix
[1306] Fix | Delete
}) => suffix !== 'default').forEach(entry => {
[1307] Fix | Delete
const event = entry.suffix.split('--')[0];
[1308] Fix | Delete
if (!events.has(event)) {
[1309] Fix | Delete
events.set(event, new Set());
[1310] Fix | Delete
}
[1311] Fix | Delete
events.get(event).add(entry);
[1312] Fix | Delete
});
[1313] Fix | Delete
events.forEach((entries, eventType) => {
[1314] Fix | Delete
const existingHandler = element.props[`on${eventType}`];
[1315] Fix | Delete
element.props[`on${eventType}`] = event => {
[1316] Fix | Delete
if (existingHandler) {
[1317] Fix | Delete
existingHandler(event);
[1318] Fix | Delete
}
[1319] Fix | Delete
entries.forEach(async entry => {
[1320] Fix | Delete
await splitTask();
[1321] Fix | Delete
evaluate(entry, event);
[1322] Fix | Delete
});
[1323] Fix | Delete
};
[1324] Fix | Delete
});
[1325] Fix | Delete
});
[1326] Fix | Delete
[1327] Fix | Delete
// data-wp-on-window--[event]
[1328] Fix | Delete
directive('on-window', getGlobalEventDirective('window'));
[1329] Fix | Delete
// data-wp-on-document--[event]
[1330] Fix | Delete
directive('on-document', getGlobalEventDirective('document'));
[1331] Fix | Delete
[1332] Fix | Delete
// data-wp-on-async-window--[event]
[1333] Fix | Delete
directive('on-async-window', getGlobalAsyncEventDirective('window'));
[1334] Fix | Delete
// data-wp-on-async-document--[event]
[1335] Fix | Delete
directive('on-async-document', getGlobalAsyncEventDirective('document'));
[1336] Fix | Delete
[1337] Fix | Delete
// data-wp-class--[classname]
[1338] Fix | Delete
directive('class', ({
[1339] Fix | Delete
directives: {
[1340] Fix | Delete
class: classNames
[1341] Fix | Delete
},
[1342] Fix | Delete
element,
[1343] Fix | Delete
evaluate
[1344] Fix | Delete
}) => {
[1345] Fix | Delete
classNames.filter(({
[1346] Fix | Delete
suffix
[1347] Fix | Delete
}) => suffix !== 'default').forEach(entry => {
[1348] Fix | Delete
const className = entry.suffix;
[1349] Fix | Delete
const result = evaluate(entry);
[1350] Fix | Delete
const currentClass = element.props.class || '';
[1351] Fix | Delete
const classFinder = new RegExp(`(^|\\s)${className}(\\s|$)`, 'g');
[1352] Fix | Delete
if (!result) {
[1353] Fix | Delete
element.props.class = currentClass.replace(classFinder, ' ').trim();
[1354] Fix | Delete
} else if (!classFinder.test(currentClass)) {
[1355] Fix | Delete
element.props.class = currentClass ? `${currentClass} ${className}` : className;
[1356] Fix | Delete
}
[1357] Fix | Delete
useInit(() => {
[1358] Fix | Delete
/*
[1359] Fix | Delete
* This seems necessary because Preact doesn't change the class
[1360] Fix | Delete
* names on the hydration, so we have to do it manually. It doesn't
[1361] Fix | Delete
* need deps because it only needs to do it the first time.
[1362] Fix | Delete
*/
[1363] Fix | Delete
if (!result) {
[1364] Fix | Delete
element.ref.current.classList.remove(className);
[1365] Fix | Delete
} else {
[1366] Fix | Delete
element.ref.current.classList.add(className);
[1367] Fix | Delete
}
[1368] Fix | Delete
});
[1369] Fix | Delete
});
[1370] Fix | Delete
});
[1371] Fix | Delete
[1372] Fix | Delete
// data-wp-style--[style-prop]
[1373] Fix | Delete
directive('style', ({
[1374] Fix | Delete
directives: {
[1375] Fix | Delete
style
[1376] Fix | Delete
},
[1377] Fix | Delete
element,
[1378] Fix | Delete
evaluate
[1379] Fix | Delete
}) => {
[1380] Fix | Delete
style.filter(({
[1381] Fix | Delete
suffix
[1382] Fix | Delete
}) => suffix !== 'default').forEach(entry => {
[1383] Fix | Delete
const styleProp = entry.suffix;
[1384] Fix | Delete
const result = evaluate(entry);
[1385] Fix | Delete
element.props.style = element.props.style || {};
[1386] Fix | Delete
if (typeof element.props.style === 'string') {
[1387] Fix | Delete
element.props.style = cssStringToObject(element.props.style);
[1388] Fix | Delete
}
[1389] Fix | Delete
if (!result) {
[1390] Fix | Delete
delete element.props.style[styleProp];
[1391] Fix | Delete
} else {
[1392] Fix | Delete
element.props.style[styleProp] = result;
[1393] Fix | Delete
}
[1394] Fix | Delete
useInit(() => {
[1395] Fix | Delete
/*
[1396] Fix | Delete
* This seems necessary because Preact doesn't change the styles on
[1397] Fix | Delete
* the hydration, so we have to do it manually. It doesn't need deps
[1398] Fix | Delete
* because it only needs to do it the first time.
[1399] Fix | Delete
*/
[1400] Fix | Delete
if (!result) {
[1401] Fix | Delete
element.ref.current.style.removeProperty(styleProp);
[1402] Fix | Delete
} else {
[1403] Fix | Delete
element.ref.current.style[styleProp] = result;
[1404] Fix | Delete
}
[1405] Fix | Delete
});
[1406] Fix | Delete
});
[1407] Fix | Delete
});
[1408] Fix | Delete
[1409] Fix | Delete
// data-wp-bind--[attribute]
[1410] Fix | Delete
directive('bind', ({
[1411] Fix | Delete
directives: {
[1412] Fix | Delete
bind
[1413] Fix | Delete
},
[1414] Fix | Delete
element,
[1415] Fix | Delete
evaluate
[1416] Fix | Delete
}) => {
[1417] Fix | Delete
bind.filter(({
[1418] Fix | Delete
suffix
[1419] Fix | Delete
}) => suffix !== 'default').forEach(entry => {
[1420] Fix | Delete
const attribute = entry.suffix;
[1421] Fix | Delete
const result = evaluate(entry);
[1422] Fix | Delete
element.props[attribute] = result;
[1423] Fix | Delete
[1424] Fix | Delete
/*
[1425] Fix | Delete
* This is necessary because Preact doesn't change the attributes on the
[1426] Fix | Delete
* hydration, so we have to do it manually. It only needs to do it the
[1427] Fix | Delete
* first time. After that, Preact will handle the changes.
[1428] Fix | Delete
*/
[1429] Fix | Delete
useInit(() => {
[1430] Fix | Delete
const el = element.ref.current;
[1431] Fix | Delete
[1432] Fix | Delete
/*
[1433] Fix | Delete
* We set the value directly to the corresponding HTMLElement instance
[1434] Fix | Delete
* property excluding the following special cases. We follow Preact's
[1435] Fix | Delete
* logic: https://github.com/preactjs/preact/blob/ea49f7a0f9d1ff2c98c0bdd66aa0cbc583055246/src/diff/props.js#L110-L129
[1436] Fix | Delete
*/
[1437] Fix | Delete
if (attribute === 'style') {
[1438] Fix | Delete
if (typeof result === 'string') {
[1439] Fix | Delete
el.style.cssText = result;
[1440] Fix | Delete
}
[1441] Fix | Delete
return;
[1442] Fix | Delete
} else if (attribute !== 'width' && attribute !== 'height' && attribute !== 'href' && attribute !== 'list' && attribute !== 'form' &&
[1443] Fix | Delete
/*
[1444] Fix | Delete
* The value for `tabindex` follows the parsing rules for an
[1445] Fix | Delete
* integer. If that fails, or if the attribute isn't present, then
[1446] Fix | Delete
* the browsers should "follow platform conventions to determine if
[1447] Fix | Delete
* the element should be considered as a focusable area",
[1448] Fix | Delete
* practically meaning that most elements get a default of `-1` (not
[1449] Fix | Delete
* focusable), but several also get a default of `0` (focusable in
[1450] Fix | Delete
* order after all elements with a positive `tabindex` value).
[1451] Fix | Delete
*
[1452] Fix | Delete
* @see https://html.spec.whatwg.org/#tabindex-value
[1453] Fix | Delete
*/
[1454] Fix | Delete
attribute !== 'tabIndex' && attribute !== 'download' && attribute !== 'rowSpan' && attribute !== 'colSpan' && attribute !== 'role' && attribute in el) {
[1455] Fix | Delete
try {
[1456] Fix | Delete
el[attribute] = result === null || result === undefined ? '' : result;
[1457] Fix | Delete
return;
[1458] Fix | Delete
} catch (err) {}
[1459] Fix | Delete
}
[1460] Fix | Delete
/*
[1461] Fix | Delete
* aria- and data- attributes have no boolean representation.
[1462] Fix | Delete
* A `false` value is different from the attribute not being
[1463] Fix | Delete
* present, so we can't remove it.
[1464] Fix | Delete
* We follow Preact's logic: https://github.com/preactjs/preact/blob/ea49f7a0f9d1ff2c98c0bdd66aa0cbc583055246/src/diff/props.js#L131C24-L136
[1465] Fix | Delete
*/
[1466] Fix | Delete
if (result !== null && result !== undefined && (result !== false || attribute[4] === '-')) {
[1467] Fix | Delete
el.setAttribute(attribute, result);
[1468] Fix | Delete
} else {
[1469] Fix | Delete
el.removeAttribute(attribute);
[1470] Fix | Delete
}
[1471] Fix | Delete
});
[1472] Fix | Delete
});
[1473] Fix | Delete
});
[1474] Fix | Delete
[1475] Fix | Delete
// data-wp-ignore
[1476] Fix | Delete
directive('ignore', ({
[1477] Fix | Delete
element: {
[1478] Fix | Delete
type: Type,
[1479] Fix | Delete
props: {
[1480] Fix | Delete
innerHTML,
[1481] Fix | Delete
...rest
[1482] Fix | Delete
}
[1483] Fix | Delete
}
[1484] Fix | Delete
}) => {
[1485] Fix | Delete
// Preserve the initial inner HTML.
[1486] Fix | Delete
const cached = hooks_module_q(() => innerHTML, []);
[1487] Fix | Delete
return _(Type, {
[1488] Fix | Delete
dangerouslySetInnerHTML: {
[1489] Fix | Delete
__html: cached
[1490] Fix | Delete
},
[1491] Fix | Delete
...rest
[1492] Fix | Delete
});
[1493] Fix | Delete
});
[1494] Fix | Delete
[1495] Fix | Delete
// data-wp-text
[1496] Fix | Delete
directive('text', ({
[1497] Fix | Delete
directives: {
[1498] Fix | Delete
text
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function