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-conte.../plugins/ninja-fo.../assets/js/lib
File: summernote.js
[1000] Fix | Delete
/**
[1001] Fix | Delete
* returns whether point is visible (can set cursor) or not.
[1002] Fix | Delete
*
[1003] Fix | Delete
* @param {BoundaryPoint} point
[1004] Fix | Delete
* @return {Boolean}
[1005] Fix | Delete
*/
[1006] Fix | Delete
var isVisiblePoint = function (point) {
[1007] Fix | Delete
if (isText(point.node) || !hasChildren(point.node) || isEmpty(point.node)) {
[1008] Fix | Delete
return true;
[1009] Fix | Delete
}
[1010] Fix | Delete
[1011] Fix | Delete
var leftNode = point.node.childNodes[point.offset - 1];
[1012] Fix | Delete
var rightNode = point.node.childNodes[point.offset];
[1013] Fix | Delete
if ((!leftNode || isVoid(leftNode)) && (!rightNode || isVoid(rightNode))) {
[1014] Fix | Delete
return true;
[1015] Fix | Delete
}
[1016] Fix | Delete
[1017] Fix | Delete
return false;
[1018] Fix | Delete
};
[1019] Fix | Delete
[1020] Fix | Delete
/**
[1021] Fix | Delete
* @method prevPointUtil
[1022] Fix | Delete
*
[1023] Fix | Delete
* @param {BoundaryPoint} point
[1024] Fix | Delete
* @param {Function} pred
[1025] Fix | Delete
* @return {BoundaryPoint}
[1026] Fix | Delete
*/
[1027] Fix | Delete
var prevPointUntil = function (point, pred) {
[1028] Fix | Delete
while (point) {
[1029] Fix | Delete
if (pred(point)) {
[1030] Fix | Delete
return point;
[1031] Fix | Delete
}
[1032] Fix | Delete
[1033] Fix | Delete
point = prevPoint(point);
[1034] Fix | Delete
}
[1035] Fix | Delete
[1036] Fix | Delete
return null;
[1037] Fix | Delete
};
[1038] Fix | Delete
[1039] Fix | Delete
/**
[1040] Fix | Delete
* @method nextPointUntil
[1041] Fix | Delete
*
[1042] Fix | Delete
* @param {BoundaryPoint} point
[1043] Fix | Delete
* @param {Function} pred
[1044] Fix | Delete
* @return {BoundaryPoint}
[1045] Fix | Delete
*/
[1046] Fix | Delete
var nextPointUntil = function (point, pred) {
[1047] Fix | Delete
while (point) {
[1048] Fix | Delete
if (pred(point)) {
[1049] Fix | Delete
return point;
[1050] Fix | Delete
}
[1051] Fix | Delete
[1052] Fix | Delete
point = nextPoint(point);
[1053] Fix | Delete
}
[1054] Fix | Delete
[1055] Fix | Delete
return null;
[1056] Fix | Delete
};
[1057] Fix | Delete
[1058] Fix | Delete
/**
[1059] Fix | Delete
* returns whether point has character or not.
[1060] Fix | Delete
*
[1061] Fix | Delete
* @param {Point} point
[1062] Fix | Delete
* @return {Boolean}
[1063] Fix | Delete
*/
[1064] Fix | Delete
var isCharPoint = function (point) {
[1065] Fix | Delete
if (!isText(point.node)) {
[1066] Fix | Delete
return false;
[1067] Fix | Delete
}
[1068] Fix | Delete
[1069] Fix | Delete
var ch = point.node.nodeValue.charAt(point.offset - 1);
[1070] Fix | Delete
return ch && (ch !== ' ' && ch !== NBSP_CHAR);
[1071] Fix | Delete
};
[1072] Fix | Delete
[1073] Fix | Delete
/**
[1074] Fix | Delete
* @method walkPoint
[1075] Fix | Delete
*
[1076] Fix | Delete
* @param {BoundaryPoint} startPoint
[1077] Fix | Delete
* @param {BoundaryPoint} endPoint
[1078] Fix | Delete
* @param {Function} handler
[1079] Fix | Delete
* @param {Boolean} isSkipInnerOffset
[1080] Fix | Delete
*/
[1081] Fix | Delete
var walkPoint = function (startPoint, endPoint, handler, isSkipInnerOffset) {
[1082] Fix | Delete
var point = startPoint;
[1083] Fix | Delete
[1084] Fix | Delete
while (point) {
[1085] Fix | Delete
handler(point);
[1086] Fix | Delete
[1087] Fix | Delete
if (isSamePoint(point, endPoint)) {
[1088] Fix | Delete
break;
[1089] Fix | Delete
}
[1090] Fix | Delete
[1091] Fix | Delete
var isSkipOffset = isSkipInnerOffset &&
[1092] Fix | Delete
startPoint.node !== point.node &&
[1093] Fix | Delete
endPoint.node !== point.node;
[1094] Fix | Delete
point = nextPoint(point, isSkipOffset);
[1095] Fix | Delete
}
[1096] Fix | Delete
};
[1097] Fix | Delete
[1098] Fix | Delete
/**
[1099] Fix | Delete
* @method makeOffsetPath
[1100] Fix | Delete
*
[1101] Fix | Delete
* return offsetPath(array of offset) from ancestor
[1102] Fix | Delete
*
[1103] Fix | Delete
* @param {Node} ancestor - ancestor node
[1104] Fix | Delete
* @param {Node} node
[1105] Fix | Delete
*/
[1106] Fix | Delete
var makeOffsetPath = function (ancestor, node) {
[1107] Fix | Delete
var ancestors = listAncestor(node, func.eq(ancestor));
[1108] Fix | Delete
return ancestors.map(position).reverse();
[1109] Fix | Delete
};
[1110] Fix | Delete
[1111] Fix | Delete
/**
[1112] Fix | Delete
* @method fromOffsetPath
[1113] Fix | Delete
*
[1114] Fix | Delete
* return element from offsetPath(array of offset)
[1115] Fix | Delete
*
[1116] Fix | Delete
* @param {Node} ancestor - ancestor node
[1117] Fix | Delete
* @param {array} offsets - offsetPath
[1118] Fix | Delete
*/
[1119] Fix | Delete
var fromOffsetPath = function (ancestor, offsets) {
[1120] Fix | Delete
var current = ancestor;
[1121] Fix | Delete
for (var i = 0, len = offsets.length; i < len; i++) {
[1122] Fix | Delete
if (current.childNodes.length <= offsets[i]) {
[1123] Fix | Delete
current = current.childNodes[current.childNodes.length - 1];
[1124] Fix | Delete
} else {
[1125] Fix | Delete
current = current.childNodes[offsets[i]];
[1126] Fix | Delete
}
[1127] Fix | Delete
}
[1128] Fix | Delete
return current;
[1129] Fix | Delete
};
[1130] Fix | Delete
[1131] Fix | Delete
/**
[1132] Fix | Delete
* @method splitNode
[1133] Fix | Delete
*
[1134] Fix | Delete
* split element or #text
[1135] Fix | Delete
*
[1136] Fix | Delete
* @param {BoundaryPoint} point
[1137] Fix | Delete
* @param {Object} [options]
[1138] Fix | Delete
* @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false
[1139] Fix | Delete
* @param {Boolean} [options.isNotSplitEdgePoint] - default: false
[1140] Fix | Delete
* @return {Node} right node of boundaryPoint
[1141] Fix | Delete
*/
[1142] Fix | Delete
var splitNode = function (point, options) {
[1143] Fix | Delete
var isSkipPaddingBlankHTML = options && options.isSkipPaddingBlankHTML;
[1144] Fix | Delete
var isNotSplitEdgePoint = options && options.isNotSplitEdgePoint;
[1145] Fix | Delete
[1146] Fix | Delete
// edge case
[1147] Fix | Delete
if (isEdgePoint(point) && (isText(point.node) || isNotSplitEdgePoint)) {
[1148] Fix | Delete
if (isLeftEdgePoint(point)) {
[1149] Fix | Delete
return point.node;
[1150] Fix | Delete
} else if (isRightEdgePoint(point)) {
[1151] Fix | Delete
return point.node.nextSibling;
[1152] Fix | Delete
}
[1153] Fix | Delete
}
[1154] Fix | Delete
[1155] Fix | Delete
// split #text
[1156] Fix | Delete
if (isText(point.node)) {
[1157] Fix | Delete
return point.node.splitText(point.offset);
[1158] Fix | Delete
} else {
[1159] Fix | Delete
var childNode = point.node.childNodes[point.offset];
[1160] Fix | Delete
var clone = insertAfter(point.node.cloneNode(false), point.node);
[1161] Fix | Delete
appendChildNodes(clone, listNext(childNode));
[1162] Fix | Delete
[1163] Fix | Delete
if (!isSkipPaddingBlankHTML) {
[1164] Fix | Delete
paddingBlankHTML(point.node);
[1165] Fix | Delete
paddingBlankHTML(clone);
[1166] Fix | Delete
}
[1167] Fix | Delete
[1168] Fix | Delete
return clone;
[1169] Fix | Delete
}
[1170] Fix | Delete
};
[1171] Fix | Delete
[1172] Fix | Delete
/**
[1173] Fix | Delete
* @method splitTree
[1174] Fix | Delete
*
[1175] Fix | Delete
* split tree by point
[1176] Fix | Delete
*
[1177] Fix | Delete
* @param {Node} root - split root
[1178] Fix | Delete
* @param {BoundaryPoint} point
[1179] Fix | Delete
* @param {Object} [options]
[1180] Fix | Delete
* @param {Boolean} [options.isSkipPaddingBlankHTML] - default: false
[1181] Fix | Delete
* @param {Boolean} [options.isNotSplitEdgePoint] - default: false
[1182] Fix | Delete
* @return {Node} right node of boundaryPoint
[1183] Fix | Delete
*/
[1184] Fix | Delete
var splitTree = function (root, point, options) {
[1185] Fix | Delete
// ex) [#text, <span>, <p>]
[1186] Fix | Delete
var ancestors = listAncestor(point.node, func.eq(root));
[1187] Fix | Delete
[1188] Fix | Delete
if (!ancestors.length) {
[1189] Fix | Delete
return null;
[1190] Fix | Delete
} else if (ancestors.length === 1) {
[1191] Fix | Delete
return splitNode(point, options);
[1192] Fix | Delete
}
[1193] Fix | Delete
[1194] Fix | Delete
return ancestors.reduce(function (node, parent) {
[1195] Fix | Delete
if (node === point.node) {
[1196] Fix | Delete
node = splitNode(point, options);
[1197] Fix | Delete
}
[1198] Fix | Delete
[1199] Fix | Delete
return splitNode({
[1200] Fix | Delete
node: parent,
[1201] Fix | Delete
offset: node ? dom.position(node) : nodeLength(parent)
[1202] Fix | Delete
}, options);
[1203] Fix | Delete
});
[1204] Fix | Delete
};
[1205] Fix | Delete
[1206] Fix | Delete
/**
[1207] Fix | Delete
* split point
[1208] Fix | Delete
*
[1209] Fix | Delete
* @param {Point} point
[1210] Fix | Delete
* @param {Boolean} isInline
[1211] Fix | Delete
* @return {Object}
[1212] Fix | Delete
*/
[1213] Fix | Delete
var splitPoint = function (point, isInline) {
[1214] Fix | Delete
// find splitRoot, container
[1215] Fix | Delete
// - inline: splitRoot is a child of paragraph
[1216] Fix | Delete
// - block: splitRoot is a child of bodyContainer
[1217] Fix | Delete
var pred = isInline ? isPara : isBodyContainer;
[1218] Fix | Delete
var ancestors = listAncestor(point.node, pred);
[1219] Fix | Delete
var topAncestor = list.last(ancestors) || point.node;
[1220] Fix | Delete
[1221] Fix | Delete
var splitRoot, container;
[1222] Fix | Delete
if (pred(topAncestor)) {
[1223] Fix | Delete
splitRoot = ancestors[ancestors.length - 2];
[1224] Fix | Delete
container = topAncestor;
[1225] Fix | Delete
} else {
[1226] Fix | Delete
splitRoot = topAncestor;
[1227] Fix | Delete
container = splitRoot.parentNode;
[1228] Fix | Delete
}
[1229] Fix | Delete
[1230] Fix | Delete
// if splitRoot is exists, split with splitTree
[1231] Fix | Delete
var pivot = splitRoot && splitTree(splitRoot, point, {
[1232] Fix | Delete
isSkipPaddingBlankHTML: isInline,
[1233] Fix | Delete
isNotSplitEdgePoint: isInline
[1234] Fix | Delete
});
[1235] Fix | Delete
[1236] Fix | Delete
// if container is point.node, find pivot with point.offset
[1237] Fix | Delete
if (!pivot && container === point.node) {
[1238] Fix | Delete
pivot = point.node.childNodes[point.offset];
[1239] Fix | Delete
}
[1240] Fix | Delete
[1241] Fix | Delete
return {
[1242] Fix | Delete
rightNode: pivot,
[1243] Fix | Delete
container: container
[1244] Fix | Delete
};
[1245] Fix | Delete
};
[1246] Fix | Delete
[1247] Fix | Delete
var create = function (nodeName) {
[1248] Fix | Delete
return document.createElement(nodeName);
[1249] Fix | Delete
};
[1250] Fix | Delete
[1251] Fix | Delete
var createText = function (text) {
[1252] Fix | Delete
return document.createTextNode(text);
[1253] Fix | Delete
};
[1254] Fix | Delete
[1255] Fix | Delete
/**
[1256] Fix | Delete
* @method remove
[1257] Fix | Delete
*
[1258] Fix | Delete
* remove node, (isRemoveChild: remove child or not)
[1259] Fix | Delete
*
[1260] Fix | Delete
* @param {Node} node
[1261] Fix | Delete
* @param {Boolean} isRemoveChild
[1262] Fix | Delete
*/
[1263] Fix | Delete
var remove = function (node, isRemoveChild) {
[1264] Fix | Delete
if (!node || !node.parentNode) { return; }
[1265] Fix | Delete
if (node.removeNode) { return node.removeNode(isRemoveChild); }
[1266] Fix | Delete
[1267] Fix | Delete
var parent = node.parentNode;
[1268] Fix | Delete
if (!isRemoveChild) {
[1269] Fix | Delete
var nodes = [];
[1270] Fix | Delete
var i, len;
[1271] Fix | Delete
for (i = 0, len = node.childNodes.length; i < len; i++) {
[1272] Fix | Delete
nodes.push(node.childNodes[i]);
[1273] Fix | Delete
}
[1274] Fix | Delete
[1275] Fix | Delete
for (i = 0, len = nodes.length; i < len; i++) {
[1276] Fix | Delete
parent.insertBefore(nodes[i], node);
[1277] Fix | Delete
}
[1278] Fix | Delete
}
[1279] Fix | Delete
[1280] Fix | Delete
parent.removeChild(node);
[1281] Fix | Delete
};
[1282] Fix | Delete
[1283] Fix | Delete
/**
[1284] Fix | Delete
* @method removeWhile
[1285] Fix | Delete
*
[1286] Fix | Delete
* @param {Node} node
[1287] Fix | Delete
* @param {Function} pred
[1288] Fix | Delete
*/
[1289] Fix | Delete
var removeWhile = function (node, pred) {
[1290] Fix | Delete
while (node) {
[1291] Fix | Delete
if (isEditable(node) || !pred(node)) {
[1292] Fix | Delete
break;
[1293] Fix | Delete
}
[1294] Fix | Delete
[1295] Fix | Delete
var parent = node.parentNode;
[1296] Fix | Delete
remove(node);
[1297] Fix | Delete
node = parent;
[1298] Fix | Delete
}
[1299] Fix | Delete
};
[1300] Fix | Delete
[1301] Fix | Delete
/**
[1302] Fix | Delete
* @method replace
[1303] Fix | Delete
*
[1304] Fix | Delete
* replace node with provided nodeName
[1305] Fix | Delete
*
[1306] Fix | Delete
* @param {Node} node
[1307] Fix | Delete
* @param {String} nodeName
[1308] Fix | Delete
* @return {Node} - new node
[1309] Fix | Delete
*/
[1310] Fix | Delete
var replace = function (node, nodeName) {
[1311] Fix | Delete
if (node.nodeName.toUpperCase() === nodeName.toUpperCase()) {
[1312] Fix | Delete
return node;
[1313] Fix | Delete
}
[1314] Fix | Delete
[1315] Fix | Delete
var newNode = create(nodeName);
[1316] Fix | Delete
[1317] Fix | Delete
if (node.style.cssText) {
[1318] Fix | Delete
newNode.style.cssText = node.style.cssText;
[1319] Fix | Delete
}
[1320] Fix | Delete
[1321] Fix | Delete
appendChildNodes(newNode, list.from(node.childNodes));
[1322] Fix | Delete
insertAfter(newNode, node);
[1323] Fix | Delete
remove(node);
[1324] Fix | Delete
[1325] Fix | Delete
return newNode;
[1326] Fix | Delete
};
[1327] Fix | Delete
[1328] Fix | Delete
var isTextarea = makePredByNodeName('TEXTAREA');
[1329] Fix | Delete
[1330] Fix | Delete
/**
[1331] Fix | Delete
* @param {jQuery} $node
[1332] Fix | Delete
* @param {Boolean} [stripLinebreaks] - default: false
[1333] Fix | Delete
*/
[1334] Fix | Delete
var value = function ($node, stripLinebreaks) {
[1335] Fix | Delete
var val = isTextarea($node[0]) ? $node.val() : $node.html();
[1336] Fix | Delete
if (stripLinebreaks) {
[1337] Fix | Delete
return val.replace(/[\n\r]/g, '');
[1338] Fix | Delete
}
[1339] Fix | Delete
return val;
[1340] Fix | Delete
};
[1341] Fix | Delete
[1342] Fix | Delete
/**
[1343] Fix | Delete
* @method html
[1344] Fix | Delete
*
[1345] Fix | Delete
* get the HTML contents of node
[1346] Fix | Delete
*
[1347] Fix | Delete
* @param {jQuery} $node
[1348] Fix | Delete
* @param {Boolean} [isNewlineOnBlock]
[1349] Fix | Delete
*/
[1350] Fix | Delete
var html = function ($node, isNewlineOnBlock) {
[1351] Fix | Delete
var markup = value($node);
[1352] Fix | Delete
[1353] Fix | Delete
if (isNewlineOnBlock) {
[1354] Fix | Delete
var regexTag = /<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g;
[1355] Fix | Delete
markup = markup.replace(regexTag, function (match, endSlash, name) {
[1356] Fix | Delete
name = name.toUpperCase();
[1357] Fix | Delete
var isEndOfInlineContainer = /^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(name) &&
[1358] Fix | Delete
!!endSlash;
[1359] Fix | Delete
var isBlockNode = /^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(name);
[1360] Fix | Delete
[1361] Fix | Delete
return match + ((isEndOfInlineContainer || isBlockNode) ? '\n' : '');
[1362] Fix | Delete
});
[1363] Fix | Delete
markup = $.trim(markup);
[1364] Fix | Delete
}
[1365] Fix | Delete
[1366] Fix | Delete
return markup;
[1367] Fix | Delete
};
[1368] Fix | Delete
[1369] Fix | Delete
var posFromPlaceholder = function (placeholder) {
[1370] Fix | Delete
var $placeholder = $(placeholder);
[1371] Fix | Delete
var pos = $placeholder.offset();
[1372] Fix | Delete
var height = $placeholder.outerHeight(true); // include margin
[1373] Fix | Delete
[1374] Fix | Delete
return {
[1375] Fix | Delete
left: pos.left,
[1376] Fix | Delete
top: pos.top + height
[1377] Fix | Delete
};
[1378] Fix | Delete
};
[1379] Fix | Delete
[1380] Fix | Delete
var attachEvents = function ($node, events) {
[1381] Fix | Delete
Object.keys(events).forEach(function (key) {
[1382] Fix | Delete
$node.on(key, events[key]);
[1383] Fix | Delete
});
[1384] Fix | Delete
};
[1385] Fix | Delete
[1386] Fix | Delete
var detachEvents = function ($node, events) {
[1387] Fix | Delete
Object.keys(events).forEach(function (key) {
[1388] Fix | Delete
$node.off(key, events[key]);
[1389] Fix | Delete
});
[1390] Fix | Delete
};
[1391] Fix | Delete
[1392] Fix | Delete
return {
[1393] Fix | Delete
/** @property {String} NBSP_CHAR */
[1394] Fix | Delete
NBSP_CHAR: NBSP_CHAR,
[1395] Fix | Delete
/** @property {String} ZERO_WIDTH_NBSP_CHAR */
[1396] Fix | Delete
ZERO_WIDTH_NBSP_CHAR: ZERO_WIDTH_NBSP_CHAR,
[1397] Fix | Delete
/** @property {String} blank */
[1398] Fix | Delete
blank: blankHTML,
[1399] Fix | Delete
/** @property {String} emptyPara */
[1400] Fix | Delete
emptyPara: '<p>' + blankHTML + '</p>',
[1401] Fix | Delete
makePredByNodeName: makePredByNodeName,
[1402] Fix | Delete
isEditable: isEditable,
[1403] Fix | Delete
isControlSizing: isControlSizing,
[1404] Fix | Delete
isText: isText,
[1405] Fix | Delete
isElement: isElement,
[1406] Fix | Delete
isVoid: isVoid,
[1407] Fix | Delete
isPara: isPara,
[1408] Fix | Delete
isPurePara: isPurePara,
[1409] Fix | Delete
isHeading: isHeading,
[1410] Fix | Delete
isInline: isInline,
[1411] Fix | Delete
isBlock: func.not(isInline),
[1412] Fix | Delete
isBodyInline: isBodyInline,
[1413] Fix | Delete
isBody: isBody,
[1414] Fix | Delete
isParaInline: isParaInline,
[1415] Fix | Delete
isPre: isPre,
[1416] Fix | Delete
isList: isList,
[1417] Fix | Delete
isTable: isTable,
[1418] Fix | Delete
isCell: isCell,
[1419] Fix | Delete
isBlockquote: isBlockquote,
[1420] Fix | Delete
isBodyContainer: isBodyContainer,
[1421] Fix | Delete
isAnchor: isAnchor,
[1422] Fix | Delete
isDiv: makePredByNodeName('DIV'),
[1423] Fix | Delete
isLi: isLi,
[1424] Fix | Delete
isBR: makePredByNodeName('BR'),
[1425] Fix | Delete
isSpan: makePredByNodeName('SPAN'),
[1426] Fix | Delete
isB: makePredByNodeName('B'),
[1427] Fix | Delete
isU: makePredByNodeName('U'),
[1428] Fix | Delete
isS: makePredByNodeName('S'),
[1429] Fix | Delete
isI: makePredByNodeName('I'),
[1430] Fix | Delete
isImg: makePredByNodeName('IMG'),
[1431] Fix | Delete
isTextarea: isTextarea,
[1432] Fix | Delete
isEmpty: isEmpty,
[1433] Fix | Delete
isEmptyAnchor: func.and(isAnchor, isEmpty),
[1434] Fix | Delete
isClosestSibling: isClosestSibling,
[1435] Fix | Delete
withClosestSiblings: withClosestSiblings,
[1436] Fix | Delete
nodeLength: nodeLength,
[1437] Fix | Delete
isLeftEdgePoint: isLeftEdgePoint,
[1438] Fix | Delete
isRightEdgePoint: isRightEdgePoint,
[1439] Fix | Delete
isEdgePoint: isEdgePoint,
[1440] Fix | Delete
isLeftEdgeOf: isLeftEdgeOf,
[1441] Fix | Delete
isRightEdgeOf: isRightEdgeOf,
[1442] Fix | Delete
isLeftEdgePointOf: isLeftEdgePointOf,
[1443] Fix | Delete
isRightEdgePointOf: isRightEdgePointOf,
[1444] Fix | Delete
prevPoint: prevPoint,
[1445] Fix | Delete
nextPoint: nextPoint,
[1446] Fix | Delete
isSamePoint: isSamePoint,
[1447] Fix | Delete
isVisiblePoint: isVisiblePoint,
[1448] Fix | Delete
prevPointUntil: prevPointUntil,
[1449] Fix | Delete
nextPointUntil: nextPointUntil,
[1450] Fix | Delete
isCharPoint: isCharPoint,
[1451] Fix | Delete
walkPoint: walkPoint,
[1452] Fix | Delete
ancestor: ancestor,
[1453] Fix | Delete
singleChildAncestor: singleChildAncestor,
[1454] Fix | Delete
listAncestor: listAncestor,
[1455] Fix | Delete
lastAncestor: lastAncestor,
[1456] Fix | Delete
listNext: listNext,
[1457] Fix | Delete
listPrev: listPrev,
[1458] Fix | Delete
listDescendant: listDescendant,
[1459] Fix | Delete
commonAncestor: commonAncestor,
[1460] Fix | Delete
wrap: wrap,
[1461] Fix | Delete
insertAfter: insertAfter,
[1462] Fix | Delete
appendChildNodes: appendChildNodes,
[1463] Fix | Delete
position: position,
[1464] Fix | Delete
hasChildren: hasChildren,
[1465] Fix | Delete
makeOffsetPath: makeOffsetPath,
[1466] Fix | Delete
fromOffsetPath: fromOffsetPath,
[1467] Fix | Delete
splitTree: splitTree,
[1468] Fix | Delete
splitPoint: splitPoint,
[1469] Fix | Delete
create: create,
[1470] Fix | Delete
createText: createText,
[1471] Fix | Delete
remove: remove,
[1472] Fix | Delete
removeWhile: removeWhile,
[1473] Fix | Delete
replace: replace,
[1474] Fix | Delete
html: html,
[1475] Fix | Delete
value: value,
[1476] Fix | Delete
posFromPlaceholder: posFromPlaceholder,
[1477] Fix | Delete
attachEvents: attachEvents,
[1478] Fix | Delete
detachEvents: detachEvents
[1479] Fix | Delete
};
[1480] Fix | Delete
})();
[1481] Fix | Delete
[1482] Fix | Delete
[1483] Fix | Delete
/**
[1484] Fix | Delete
* @param {jQuery} $note
[1485] Fix | Delete
* @param {Object} options
[1486] Fix | Delete
* @return {Context}
[1487] Fix | Delete
*/
[1488] Fix | Delete
var Context = function ($note, options) {
[1489] Fix | Delete
var self = this;
[1490] Fix | Delete
[1491] Fix | Delete
var ui = $.summernote.ui;
[1492] Fix | Delete
this.memos = {};
[1493] Fix | Delete
this.modules = {};
[1494] Fix | Delete
this.layoutInfo = {};
[1495] Fix | Delete
this.options = options;
[1496] Fix | Delete
[1497] Fix | Delete
/**
[1498] Fix | Delete
* create layout and initialize modules and other resources
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function