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
var async = (function () {
[3000] Fix | Delete
/**
[3001] Fix | Delete
* @method readFileAsDataURL
[3002] Fix | Delete
*
[3003] Fix | Delete
* read contents of file as representing URL
[3004] Fix | Delete
*
[3005] Fix | Delete
* @param {File} file
[3006] Fix | Delete
* @return {Promise} - then: dataUrl
[3007] Fix | Delete
*/
[3008] Fix | Delete
var readFileAsDataURL = function (file) {
[3009] Fix | Delete
return $.Deferred(function (deferred) {
[3010] Fix | Delete
$.extend(new FileReader(), {
[3011] Fix | Delete
onload: function (e) {
[3012] Fix | Delete
var dataURL = e.target.result;
[3013] Fix | Delete
deferred.resolve(dataURL);
[3014] Fix | Delete
},
[3015] Fix | Delete
onerror: function () {
[3016] Fix | Delete
deferred.reject(this);
[3017] Fix | Delete
}
[3018] Fix | Delete
}).readAsDataURL(file);
[3019] Fix | Delete
}).promise();
[3020] Fix | Delete
};
[3021] Fix | Delete
[3022] Fix | Delete
/**
[3023] Fix | Delete
* @method createImage
[3024] Fix | Delete
*
[3025] Fix | Delete
* create `<image>` from url string
[3026] Fix | Delete
*
[3027] Fix | Delete
* @param {String} url
[3028] Fix | Delete
* @return {Promise} - then: $image
[3029] Fix | Delete
*/
[3030] Fix | Delete
var createImage = function (url) {
[3031] Fix | Delete
return $.Deferred(function (deferred) {
[3032] Fix | Delete
var $img = $('<img>');
[3033] Fix | Delete
[3034] Fix | Delete
$img.one('load', function () {
[3035] Fix | Delete
$img.off('error abort');
[3036] Fix | Delete
deferred.resolve($img);
[3037] Fix | Delete
}).one('error abort', function () {
[3038] Fix | Delete
$img.off('load').detach();
[3039] Fix | Delete
deferred.reject($img);
[3040] Fix | Delete
}).css({
[3041] Fix | Delete
display: 'none'
[3042] Fix | Delete
}).appendTo(document.body).attr('src', url);
[3043] Fix | Delete
}).promise();
[3044] Fix | Delete
};
[3045] Fix | Delete
[3046] Fix | Delete
return {
[3047] Fix | Delete
readFileAsDataURL: readFileAsDataURL,
[3048] Fix | Delete
createImage: createImage
[3049] Fix | Delete
};
[3050] Fix | Delete
})();
[3051] Fix | Delete
[3052] Fix | Delete
/**
[3053] Fix | Delete
* @class editing.History
[3054] Fix | Delete
*
[3055] Fix | Delete
* Editor History
[3056] Fix | Delete
*
[3057] Fix | Delete
*/
[3058] Fix | Delete
var History = function ($editable) {
[3059] Fix | Delete
var stack = [], stackOffset = -1;
[3060] Fix | Delete
var editable = $editable[0];
[3061] Fix | Delete
[3062] Fix | Delete
var makeSnapshot = function () {
[3063] Fix | Delete
var rng = range.create();
[3064] Fix | Delete
var emptyBookmark = {s: {path: [], offset: 0}, e: {path: [], offset: 0}};
[3065] Fix | Delete
[3066] Fix | Delete
return {
[3067] Fix | Delete
contents: $editable.html(),
[3068] Fix | Delete
bookmark: (rng ? rng.bookmark(editable) : emptyBookmark)
[3069] Fix | Delete
};
[3070] Fix | Delete
};
[3071] Fix | Delete
[3072] Fix | Delete
var applySnapshot = function (snapshot) {
[3073] Fix | Delete
if (snapshot.contents !== null) {
[3074] Fix | Delete
$editable.html(snapshot.contents);
[3075] Fix | Delete
}
[3076] Fix | Delete
if (snapshot.bookmark !== null) {
[3077] Fix | Delete
range.createFromBookmark(editable, snapshot.bookmark).select();
[3078] Fix | Delete
}
[3079] Fix | Delete
};
[3080] Fix | Delete
[3081] Fix | Delete
/**
[3082] Fix | Delete
* @method rewind
[3083] Fix | Delete
* Rewinds the history stack back to the first snapshot taken.
[3084] Fix | Delete
* Leaves the stack intact, so that "Redo" can still be used.
[3085] Fix | Delete
*/
[3086] Fix | Delete
this.rewind = function () {
[3087] Fix | Delete
[3088] Fix | Delete
// Create snap shot if not yet recorded
[3089] Fix | Delete
if ($editable.html() !== stack[stackOffset].contents) {
[3090] Fix | Delete
this.recordUndo();
[3091] Fix | Delete
}
[3092] Fix | Delete
[3093] Fix | Delete
// Return to the first available snapshot.
[3094] Fix | Delete
stackOffset = 0;
[3095] Fix | Delete
[3096] Fix | Delete
// Apply that snapshot.
[3097] Fix | Delete
applySnapshot(stack[stackOffset]);
[3098] Fix | Delete
[3099] Fix | Delete
};
[3100] Fix | Delete
[3101] Fix | Delete
[3102] Fix | Delete
/**
[3103] Fix | Delete
* @method reset
[3104] Fix | Delete
* Resets the history stack completely; reverting to an empty editor.
[3105] Fix | Delete
*/
[3106] Fix | Delete
this.reset = function () {
[3107] Fix | Delete
[3108] Fix | Delete
// Clear the stack.
[3109] Fix | Delete
stack = [];
[3110] Fix | Delete
[3111] Fix | Delete
// Restore stackOffset to its original value.
[3112] Fix | Delete
stackOffset = -1;
[3113] Fix | Delete
[3114] Fix | Delete
// Clear the editable area.
[3115] Fix | Delete
$editable.html('');
[3116] Fix | Delete
[3117] Fix | Delete
// Record our first snapshot (of nothing).
[3118] Fix | Delete
this.recordUndo();
[3119] Fix | Delete
[3120] Fix | Delete
};
[3121] Fix | Delete
[3122] Fix | Delete
/**
[3123] Fix | Delete
* undo
[3124] Fix | Delete
*/
[3125] Fix | Delete
this.undo = function () {
[3126] Fix | Delete
// Create snap shot if not yet recorded
[3127] Fix | Delete
if ($editable.html() !== stack[stackOffset].contents) {
[3128] Fix | Delete
this.recordUndo();
[3129] Fix | Delete
}
[3130] Fix | Delete
[3131] Fix | Delete
if (0 < stackOffset) {
[3132] Fix | Delete
stackOffset--;
[3133] Fix | Delete
applySnapshot(stack[stackOffset]);
[3134] Fix | Delete
}
[3135] Fix | Delete
};
[3136] Fix | Delete
[3137] Fix | Delete
/**
[3138] Fix | Delete
* redo
[3139] Fix | Delete
*/
[3140] Fix | Delete
this.redo = function () {
[3141] Fix | Delete
if (stack.length - 1 > stackOffset) {
[3142] Fix | Delete
stackOffset++;
[3143] Fix | Delete
applySnapshot(stack[stackOffset]);
[3144] Fix | Delete
}
[3145] Fix | Delete
};
[3146] Fix | Delete
[3147] Fix | Delete
/**
[3148] Fix | Delete
* recorded undo
[3149] Fix | Delete
*/
[3150] Fix | Delete
this.recordUndo = function () {
[3151] Fix | Delete
stackOffset++;
[3152] Fix | Delete
[3153] Fix | Delete
// Wash out stack after stackOffset
[3154] Fix | Delete
if (stack.length > stackOffset) {
[3155] Fix | Delete
stack = stack.slice(0, stackOffset);
[3156] Fix | Delete
}
[3157] Fix | Delete
[3158] Fix | Delete
// Create new snapshot and push it to the end
[3159] Fix | Delete
stack.push(makeSnapshot());
[3160] Fix | Delete
};
[3161] Fix | Delete
};
[3162] Fix | Delete
[3163] Fix | Delete
/**
[3164] Fix | Delete
* @class editing.Style
[3165] Fix | Delete
*
[3166] Fix | Delete
* Style
[3167] Fix | Delete
*
[3168] Fix | Delete
*/
[3169] Fix | Delete
var Style = function () {
[3170] Fix | Delete
/**
[3171] Fix | Delete
* @method jQueryCSS
[3172] Fix | Delete
*
[3173] Fix | Delete
* [workaround] for old jQuery
[3174] Fix | Delete
* passing an array of style properties to .css()
[3175] Fix | Delete
* will result in an object of property-value pairs.
[3176] Fix | Delete
* (compability with version < 1.9)
[3177] Fix | Delete
*
[3178] Fix | Delete
* @private
[3179] Fix | Delete
* @param {jQuery} $obj
[3180] Fix | Delete
* @param {Array} propertyNames - An array of one or more CSS properties.
[3181] Fix | Delete
* @return {Object}
[3182] Fix | Delete
*/
[3183] Fix | Delete
var jQueryCSS = function ($obj, propertyNames) {
[3184] Fix | Delete
if (agent.jqueryVersion < 1.9) {
[3185] Fix | Delete
var result = {};
[3186] Fix | Delete
$.each(propertyNames, function (idx, propertyName) {
[3187] Fix | Delete
result[propertyName] = $obj.css(propertyName);
[3188] Fix | Delete
});
[3189] Fix | Delete
return result;
[3190] Fix | Delete
}
[3191] Fix | Delete
return $obj.css.call($obj, propertyNames);
[3192] Fix | Delete
};
[3193] Fix | Delete
[3194] Fix | Delete
/**
[3195] Fix | Delete
* returns style object from node
[3196] Fix | Delete
*
[3197] Fix | Delete
* @param {jQuery} $node
[3198] Fix | Delete
* @return {Object}
[3199] Fix | Delete
*/
[3200] Fix | Delete
this.fromNode = function ($node) {
[3201] Fix | Delete
var properties = ['font-family', 'font-size', 'text-align', 'list-style-type', 'line-height'];
[3202] Fix | Delete
var styleInfo = jQueryCSS($node, properties) || {};
[3203] Fix | Delete
styleInfo['font-size'] = parseInt(styleInfo['font-size'], 10);
[3204] Fix | Delete
return styleInfo;
[3205] Fix | Delete
};
[3206] Fix | Delete
[3207] Fix | Delete
/**
[3208] Fix | Delete
* paragraph level style
[3209] Fix | Delete
*
[3210] Fix | Delete
* @param {WrappedRange} rng
[3211] Fix | Delete
* @param {Object} styleInfo
[3212] Fix | Delete
*/
[3213] Fix | Delete
this.stylePara = function (rng, styleInfo) {
[3214] Fix | Delete
$.each(rng.nodes(dom.isPara, {
[3215] Fix | Delete
includeAncestor: true
[3216] Fix | Delete
}), function (idx, para) {
[3217] Fix | Delete
$(para).css(styleInfo);
[3218] Fix | Delete
});
[3219] Fix | Delete
};
[3220] Fix | Delete
[3221] Fix | Delete
/**
[3222] Fix | Delete
* insert and returns styleNodes on range.
[3223] Fix | Delete
*
[3224] Fix | Delete
* @param {WrappedRange} rng
[3225] Fix | Delete
* @param {Object} [options] - options for styleNodes
[3226] Fix | Delete
* @param {String} [options.nodeName] - default: `SPAN`
[3227] Fix | Delete
* @param {Boolean} [options.expandClosestSibling] - default: `false`
[3228] Fix | Delete
* @param {Boolean} [options.onlyPartialContains] - default: `false`
[3229] Fix | Delete
* @return {Node[]}
[3230] Fix | Delete
*/
[3231] Fix | Delete
this.styleNodes = function (rng, options) {
[3232] Fix | Delete
rng = rng.splitText();
[3233] Fix | Delete
[3234] Fix | Delete
var nodeName = options && options.nodeName || 'SPAN';
[3235] Fix | Delete
var expandClosestSibling = !!(options && options.expandClosestSibling);
[3236] Fix | Delete
var onlyPartialContains = !!(options && options.onlyPartialContains);
[3237] Fix | Delete
[3238] Fix | Delete
if (rng.isCollapsed()) {
[3239] Fix | Delete
return [rng.insertNode(dom.create(nodeName))];
[3240] Fix | Delete
}
[3241] Fix | Delete
[3242] Fix | Delete
var pred = dom.makePredByNodeName(nodeName);
[3243] Fix | Delete
var nodes = rng.nodes(dom.isText, {
[3244] Fix | Delete
fullyContains: true
[3245] Fix | Delete
}).map(function (text) {
[3246] Fix | Delete
return dom.singleChildAncestor(text, pred) || dom.wrap(text, nodeName);
[3247] Fix | Delete
});
[3248] Fix | Delete
[3249] Fix | Delete
if (expandClosestSibling) {
[3250] Fix | Delete
if (onlyPartialContains) {
[3251] Fix | Delete
var nodesInRange = rng.nodes();
[3252] Fix | Delete
// compose with partial contains predication
[3253] Fix | Delete
pred = func.and(pred, function (node) {
[3254] Fix | Delete
return list.contains(nodesInRange, node);
[3255] Fix | Delete
});
[3256] Fix | Delete
}
[3257] Fix | Delete
[3258] Fix | Delete
return nodes.map(function (node) {
[3259] Fix | Delete
var siblings = dom.withClosestSiblings(node, pred);
[3260] Fix | Delete
var head = list.head(siblings);
[3261] Fix | Delete
var tails = list.tail(siblings);
[3262] Fix | Delete
$.each(tails, function (idx, elem) {
[3263] Fix | Delete
dom.appendChildNodes(head, elem.childNodes);
[3264] Fix | Delete
dom.remove(elem);
[3265] Fix | Delete
});
[3266] Fix | Delete
return list.head(siblings);
[3267] Fix | Delete
});
[3268] Fix | Delete
} else {
[3269] Fix | Delete
return nodes;
[3270] Fix | Delete
}
[3271] Fix | Delete
};
[3272] Fix | Delete
[3273] Fix | Delete
/**
[3274] Fix | Delete
* get current style on cursor
[3275] Fix | Delete
*
[3276] Fix | Delete
* @param {WrappedRange} rng
[3277] Fix | Delete
* @return {Object} - object contains style properties.
[3278] Fix | Delete
*/
[3279] Fix | Delete
this.current = function (rng) {
[3280] Fix | Delete
var $cont = $(!dom.isElement(rng.sc) ? rng.sc.parentNode : rng.sc);
[3281] Fix | Delete
var styleInfo = this.fromNode($cont);
[3282] Fix | Delete
[3283] Fix | Delete
// document.queryCommandState for toggle state
[3284] Fix | Delete
// [workaround] prevent Firefox nsresult: "0x80004005 (NS_ERROR_FAILURE)"
[3285] Fix | Delete
try {
[3286] Fix | Delete
styleInfo = $.extend(styleInfo, {
[3287] Fix | Delete
'font-bold': document.queryCommandState('bold') ? 'bold' : 'normal',
[3288] Fix | Delete
'font-italic': document.queryCommandState('italic') ? 'italic' : 'normal',
[3289] Fix | Delete
'font-underline': document.queryCommandState('underline') ? 'underline' : 'normal',
[3290] Fix | Delete
'font-subscript': document.queryCommandState('subscript') ? 'subscript' : 'normal',
[3291] Fix | Delete
'font-superscript': document.queryCommandState('superscript') ? 'superscript' : 'normal',
[3292] Fix | Delete
'font-strikethrough': document.queryCommandState('strikeThrough') ? 'strikethrough' : 'normal'
[3293] Fix | Delete
});
[3294] Fix | Delete
} catch (e) {}
[3295] Fix | Delete
[3296] Fix | Delete
// list-style-type to list-style(unordered, ordered)
[3297] Fix | Delete
if (!rng.isOnList()) {
[3298] Fix | Delete
styleInfo['list-style'] = 'none';
[3299] Fix | Delete
} else {
[3300] Fix | Delete
var orderedTypes = ['circle', 'disc', 'disc-leading-zero', 'square'];
[3301] Fix | Delete
var isUnordered = $.inArray(styleInfo['list-style-type'], orderedTypes) > -1;
[3302] Fix | Delete
styleInfo['list-style'] = isUnordered ? 'unordered' : 'ordered';
[3303] Fix | Delete
}
[3304] Fix | Delete
[3305] Fix | Delete
var para = dom.ancestor(rng.sc, dom.isPara);
[3306] Fix | Delete
if (para && para.style['line-height']) {
[3307] Fix | Delete
styleInfo['line-height'] = para.style.lineHeight;
[3308] Fix | Delete
} else {
[3309] Fix | Delete
var lineHeight = parseInt(styleInfo['line-height'], 10) / parseInt(styleInfo['font-size'], 10);
[3310] Fix | Delete
styleInfo['line-height'] = lineHeight.toFixed(1);
[3311] Fix | Delete
}
[3312] Fix | Delete
[3313] Fix | Delete
styleInfo.anchor = rng.isOnAnchor() && dom.ancestor(rng.sc, dom.isAnchor);
[3314] Fix | Delete
styleInfo.ancestors = dom.listAncestor(rng.sc, dom.isEditable);
[3315] Fix | Delete
styleInfo.range = rng;
[3316] Fix | Delete
[3317] Fix | Delete
return styleInfo;
[3318] Fix | Delete
};
[3319] Fix | Delete
};
[3320] Fix | Delete
[3321] Fix | Delete
[3322] Fix | Delete
/**
[3323] Fix | Delete
* @class editing.Bullet
[3324] Fix | Delete
*
[3325] Fix | Delete
* @alternateClassName Bullet
[3326] Fix | Delete
*/
[3327] Fix | Delete
var Bullet = function () {
[3328] Fix | Delete
/**
[3329] Fix | Delete
* @method insertOrderedList
[3330] Fix | Delete
*
[3331] Fix | Delete
* toggle ordered list
[3332] Fix | Delete
*
[3333] Fix | Delete
* @type command
[3334] Fix | Delete
*/
[3335] Fix | Delete
this.insertOrderedList = function () {
[3336] Fix | Delete
this.toggleList('OL');
[3337] Fix | Delete
};
[3338] Fix | Delete
[3339] Fix | Delete
/**
[3340] Fix | Delete
* @method insertUnorderedList
[3341] Fix | Delete
*
[3342] Fix | Delete
* toggle unordered list
[3343] Fix | Delete
*
[3344] Fix | Delete
* @type command
[3345] Fix | Delete
*/
[3346] Fix | Delete
this.insertUnorderedList = function () {
[3347] Fix | Delete
this.toggleList('UL');
[3348] Fix | Delete
};
[3349] Fix | Delete
[3350] Fix | Delete
/**
[3351] Fix | Delete
* @method indent
[3352] Fix | Delete
*
[3353] Fix | Delete
* indent
[3354] Fix | Delete
*
[3355] Fix | Delete
* @type command
[3356] Fix | Delete
*/
[3357] Fix | Delete
this.indent = function () {
[3358] Fix | Delete
var self = this;
[3359] Fix | Delete
var rng = range.create().wrapBodyInlineWithPara();
[3360] Fix | Delete
[3361] Fix | Delete
var paras = rng.nodes(dom.isPara, { includeAncestor: true });
[3362] Fix | Delete
var clustereds = list.clusterBy(paras, func.peq2('parentNode'));
[3363] Fix | Delete
[3364] Fix | Delete
$.each(clustereds, function (idx, paras) {
[3365] Fix | Delete
var head = list.head(paras);
[3366] Fix | Delete
if (dom.isLi(head)) {
[3367] Fix | Delete
self.wrapList(paras, head.parentNode.nodeName);
[3368] Fix | Delete
} else {
[3369] Fix | Delete
$.each(paras, function (idx, para) {
[3370] Fix | Delete
$(para).css('marginLeft', function (idx, val) {
[3371] Fix | Delete
return (parseInt(val, 10) || 0) + 25;
[3372] Fix | Delete
});
[3373] Fix | Delete
});
[3374] Fix | Delete
}
[3375] Fix | Delete
});
[3376] Fix | Delete
[3377] Fix | Delete
rng.select();
[3378] Fix | Delete
};
[3379] Fix | Delete
[3380] Fix | Delete
/**
[3381] Fix | Delete
* @method outdent
[3382] Fix | Delete
*
[3383] Fix | Delete
* outdent
[3384] Fix | Delete
*
[3385] Fix | Delete
* @type command
[3386] Fix | Delete
*/
[3387] Fix | Delete
this.outdent = function () {
[3388] Fix | Delete
var self = this;
[3389] Fix | Delete
var rng = range.create().wrapBodyInlineWithPara();
[3390] Fix | Delete
[3391] Fix | Delete
var paras = rng.nodes(dom.isPara, { includeAncestor: true });
[3392] Fix | Delete
var clustereds = list.clusterBy(paras, func.peq2('parentNode'));
[3393] Fix | Delete
[3394] Fix | Delete
$.each(clustereds, function (idx, paras) {
[3395] Fix | Delete
var head = list.head(paras);
[3396] Fix | Delete
if (dom.isLi(head)) {
[3397] Fix | Delete
self.releaseList([paras]);
[3398] Fix | Delete
} else {
[3399] Fix | Delete
$.each(paras, function (idx, para) {
[3400] Fix | Delete
$(para).css('marginLeft', function (idx, val) {
[3401] Fix | Delete
val = (parseInt(val, 10) || 0);
[3402] Fix | Delete
return val > 25 ? val - 25 : '';
[3403] Fix | Delete
});
[3404] Fix | Delete
});
[3405] Fix | Delete
}
[3406] Fix | Delete
});
[3407] Fix | Delete
[3408] Fix | Delete
rng.select();
[3409] Fix | Delete
};
[3410] Fix | Delete
[3411] Fix | Delete
/**
[3412] Fix | Delete
* @method toggleList
[3413] Fix | Delete
*
[3414] Fix | Delete
* toggle list
[3415] Fix | Delete
*
[3416] Fix | Delete
* @param {String} listName - OL or UL
[3417] Fix | Delete
*/
[3418] Fix | Delete
this.toggleList = function (listName) {
[3419] Fix | Delete
var self = this;
[3420] Fix | Delete
var rng = range.create().wrapBodyInlineWithPara();
[3421] Fix | Delete
[3422] Fix | Delete
var paras = rng.nodes(dom.isPara, { includeAncestor: true });
[3423] Fix | Delete
var bookmark = rng.paraBookmark(paras);
[3424] Fix | Delete
var clustereds = list.clusterBy(paras, func.peq2('parentNode'));
[3425] Fix | Delete
[3426] Fix | Delete
// paragraph to list
[3427] Fix | Delete
if (list.find(paras, dom.isPurePara)) {
[3428] Fix | Delete
var wrappedParas = [];
[3429] Fix | Delete
$.each(clustereds, function (idx, paras) {
[3430] Fix | Delete
wrappedParas = wrappedParas.concat(self.wrapList(paras, listName));
[3431] Fix | Delete
});
[3432] Fix | Delete
paras = wrappedParas;
[3433] Fix | Delete
// list to paragraph or change list style
[3434] Fix | Delete
} else {
[3435] Fix | Delete
var diffLists = rng.nodes(dom.isList, {
[3436] Fix | Delete
includeAncestor: true
[3437] Fix | Delete
}).filter(function (listNode) {
[3438] Fix | Delete
return !$.nodeName(listNode, listName);
[3439] Fix | Delete
});
[3440] Fix | Delete
[3441] Fix | Delete
if (diffLists.length) {
[3442] Fix | Delete
$.each(diffLists, function (idx, listNode) {
[3443] Fix | Delete
dom.replace(listNode, listName);
[3444] Fix | Delete
});
[3445] Fix | Delete
} else {
[3446] Fix | Delete
paras = this.releaseList(clustereds, true);
[3447] Fix | Delete
}
[3448] Fix | Delete
}
[3449] Fix | Delete
[3450] Fix | Delete
range.createFromParaBookmark(bookmark, paras).select();
[3451] Fix | Delete
};
[3452] Fix | Delete
[3453] Fix | Delete
/**
[3454] Fix | Delete
* @method wrapList
[3455] Fix | Delete
*
[3456] Fix | Delete
* @param {Node[]} paras
[3457] Fix | Delete
* @param {String} listName
[3458] Fix | Delete
* @return {Node[]}
[3459] Fix | Delete
*/
[3460] Fix | Delete
this.wrapList = function (paras, listName) {
[3461] Fix | Delete
var head = list.head(paras);
[3462] Fix | Delete
var last = list.last(paras);
[3463] Fix | Delete
[3464] Fix | Delete
var prevList = dom.isList(head.previousSibling) && head.previousSibling;
[3465] Fix | Delete
var nextList = dom.isList(last.nextSibling) && last.nextSibling;
[3466] Fix | Delete
[3467] Fix | Delete
var listNode = prevList || dom.insertAfter(dom.create(listName || 'UL'), last);
[3468] Fix | Delete
[3469] Fix | Delete
// P to LI
[3470] Fix | Delete
paras = paras.map(function (para) {
[3471] Fix | Delete
return dom.isPurePara(para) ? dom.replace(para, 'LI') : para;
[3472] Fix | Delete
});
[3473] Fix | Delete
[3474] Fix | Delete
// append to list(<ul>, <ol>)
[3475] Fix | Delete
dom.appendChildNodes(listNode, paras);
[3476] Fix | Delete
[3477] Fix | Delete
if (nextList) {
[3478] Fix | Delete
dom.appendChildNodes(listNode, list.from(nextList.childNodes));
[3479] Fix | Delete
dom.remove(nextList);
[3480] Fix | Delete
}
[3481] Fix | Delete
[3482] Fix | Delete
return paras;
[3483] Fix | Delete
};
[3484] Fix | Delete
[3485] Fix | Delete
/**
[3486] Fix | Delete
* @method releaseList
[3487] Fix | Delete
*
[3488] Fix | Delete
* @param {Array[]} clustereds
[3489] Fix | Delete
* @param {Boolean} isEscapseToBody
[3490] Fix | Delete
* @return {Node[]}
[3491] Fix | Delete
*/
[3492] Fix | Delete
this.releaseList = function (clustereds, isEscapseToBody) {
[3493] Fix | Delete
var releasedParas = [];
[3494] Fix | Delete
[3495] Fix | Delete
$.each(clustereds, function (idx, paras) {
[3496] Fix | Delete
var head = list.head(paras);
[3497] Fix | Delete
var last = list.last(paras);
[3498] Fix | Delete
[3499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function