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
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/ninja-fo.../assets/js/lib
File: summernote.js
/**
[0] Fix | Delete
* Super simple wysiwyg editor v0.7.1
[1] Fix | Delete
* http://summernote.org/
[2] Fix | Delete
*
[3] Fix | Delete
* summernote.js
[4] Fix | Delete
* Copyright 2013-2015 Alan Hong. and other contributors
[5] Fix | Delete
* summernote may be freely distributed under the MIT license./
[6] Fix | Delete
*
[7] Fix | Delete
*
[8] Fix | Delete
* MODIFIED: Adding support for CodeMirror callbacks.
[9] Fix | Delete
* If we've got any callbacks for code mirror, register them.
[10] Fix | Delete
* Line 4670
[11] Fix | Delete
*
[12] Fix | Delete
* Date: 2015-12-31T12:09Z
[13] Fix | Delete
*/
[14] Fix | Delete
(function (factory) {
[15] Fix | Delete
/* global define */
[16] Fix | Delete
if (typeof define === 'function' && define.amd) {
[17] Fix | Delete
// AMD. Register as an anonymous module.
[18] Fix | Delete
define(['jquery'], factory);
[19] Fix | Delete
} else if (typeof module === 'object' && module.exports) {
[20] Fix | Delete
// Node/CommonJS
[21] Fix | Delete
module.exports = factory(require('jquery'));
[22] Fix | Delete
} else {
[23] Fix | Delete
// Browser globals
[24] Fix | Delete
factory(window.jQuery);
[25] Fix | Delete
}
[26] Fix | Delete
}(function ($) {
[27] Fix | Delete
'use strict';
[28] Fix | Delete
[29] Fix | Delete
/**
[30] Fix | Delete
* @class core.func
[31] Fix | Delete
*
[32] Fix | Delete
* func utils (for high-order func's arg)
[33] Fix | Delete
*
[34] Fix | Delete
* @singleton
[35] Fix | Delete
* @alternateClassName func
[36] Fix | Delete
*/
[37] Fix | Delete
var func = (function () {
[38] Fix | Delete
var eq = function (itemA) {
[39] Fix | Delete
return function (itemB) {
[40] Fix | Delete
return itemA === itemB;
[41] Fix | Delete
};
[42] Fix | Delete
};
[43] Fix | Delete
[44] Fix | Delete
var eq2 = function (itemA, itemB) {
[45] Fix | Delete
return itemA === itemB;
[46] Fix | Delete
};
[47] Fix | Delete
[48] Fix | Delete
var peq2 = function (propName) {
[49] Fix | Delete
return function (itemA, itemB) {
[50] Fix | Delete
return itemA[propName] === itemB[propName];
[51] Fix | Delete
};
[52] Fix | Delete
};
[53] Fix | Delete
[54] Fix | Delete
var ok = function () {
[55] Fix | Delete
return true;
[56] Fix | Delete
};
[57] Fix | Delete
[58] Fix | Delete
var fail = function () {
[59] Fix | Delete
return false;
[60] Fix | Delete
};
[61] Fix | Delete
[62] Fix | Delete
var not = function (f) {
[63] Fix | Delete
return function () {
[64] Fix | Delete
return !f.apply(f, arguments);
[65] Fix | Delete
};
[66] Fix | Delete
};
[67] Fix | Delete
[68] Fix | Delete
var and = function (fA, fB) {
[69] Fix | Delete
return function (item) {
[70] Fix | Delete
return fA(item) && fB(item);
[71] Fix | Delete
};
[72] Fix | Delete
};
[73] Fix | Delete
[74] Fix | Delete
var self = function (a) {
[75] Fix | Delete
return a;
[76] Fix | Delete
};
[77] Fix | Delete
[78] Fix | Delete
var idCounter = 0;
[79] Fix | Delete
[80] Fix | Delete
/**
[81] Fix | Delete
* generate a globally-unique id
[82] Fix | Delete
*
[83] Fix | Delete
* @param {String} [prefix]
[84] Fix | Delete
*/
[85] Fix | Delete
var uniqueId = function (prefix) {
[86] Fix | Delete
var id = ++idCounter + '';
[87] Fix | Delete
return prefix ? prefix + id : id;
[88] Fix | Delete
};
[89] Fix | Delete
[90] Fix | Delete
/**
[91] Fix | Delete
* returns bnd (bounds) from rect
[92] Fix | Delete
*
[93] Fix | Delete
* - IE Compatability Issue: http://goo.gl/sRLOAo
[94] Fix | Delete
* - Scroll Issue: http://goo.gl/sNjUc
[95] Fix | Delete
*
[96] Fix | Delete
* @param {Rect} rect
[97] Fix | Delete
* @return {Object} bounds
[98] Fix | Delete
* @return {Number} bounds.top
[99] Fix | Delete
* @return {Number} bounds.left
[100] Fix | Delete
* @return {Number} bounds.width
[101] Fix | Delete
* @return {Number} bounds.height
[102] Fix | Delete
*/
[103] Fix | Delete
var rect2bnd = function (rect) {
[104] Fix | Delete
var $document = $(document);
[105] Fix | Delete
return {
[106] Fix | Delete
top: rect.top + $document.scrollTop(),
[107] Fix | Delete
left: rect.left + $document.scrollLeft(),
[108] Fix | Delete
width: rect.right - rect.left,
[109] Fix | Delete
height: rect.bottom - rect.top
[110] Fix | Delete
};
[111] Fix | Delete
};
[112] Fix | Delete
[113] Fix | Delete
/**
[114] Fix | Delete
* returns a copy of the object where the keys have become the values and the values the keys.
[115] Fix | Delete
* @param {Object} obj
[116] Fix | Delete
* @return {Object}
[117] Fix | Delete
*/
[118] Fix | Delete
var invertObject = function (obj) {
[119] Fix | Delete
var inverted = {};
[120] Fix | Delete
for (var key in obj) {
[121] Fix | Delete
if (obj.hasOwnProperty(key)) {
[122] Fix | Delete
inverted[obj[key]] = key;
[123] Fix | Delete
}
[124] Fix | Delete
}
[125] Fix | Delete
return inverted;
[126] Fix | Delete
};
[127] Fix | Delete
[128] Fix | Delete
/**
[129] Fix | Delete
* @param {String} namespace
[130] Fix | Delete
* @param {String} [prefix]
[131] Fix | Delete
* @return {String}
[132] Fix | Delete
*/
[133] Fix | Delete
var namespaceToCamel = function (namespace, prefix) {
[134] Fix | Delete
prefix = prefix || '';
[135] Fix | Delete
return prefix + namespace.split('.').map(function (name) {
[136] Fix | Delete
return name.substring(0, 1).toUpperCase() + name.substring(1);
[137] Fix | Delete
}).join('');
[138] Fix | Delete
};
[139] Fix | Delete
[140] Fix | Delete
return {
[141] Fix | Delete
eq: eq,
[142] Fix | Delete
eq2: eq2,
[143] Fix | Delete
peq2: peq2,
[144] Fix | Delete
ok: ok,
[145] Fix | Delete
fail: fail,
[146] Fix | Delete
self: self,
[147] Fix | Delete
not: not,
[148] Fix | Delete
and: and,
[149] Fix | Delete
uniqueId: uniqueId,
[150] Fix | Delete
rect2bnd: rect2bnd,
[151] Fix | Delete
invertObject: invertObject,
[152] Fix | Delete
namespaceToCamel: namespaceToCamel
[153] Fix | Delete
};
[154] Fix | Delete
})();
[155] Fix | Delete
[156] Fix | Delete
/**
[157] Fix | Delete
* @class core.list
[158] Fix | Delete
*
[159] Fix | Delete
* list utils
[160] Fix | Delete
*
[161] Fix | Delete
* @singleton
[162] Fix | Delete
* @alternateClassName list
[163] Fix | Delete
*/
[164] Fix | Delete
var list = (function () {
[165] Fix | Delete
/**
[166] Fix | Delete
* returns the first item of an array.
[167] Fix | Delete
*
[168] Fix | Delete
* @param {Array} array
[169] Fix | Delete
*/
[170] Fix | Delete
var head = function (array) {
[171] Fix | Delete
return array[0];
[172] Fix | Delete
};
[173] Fix | Delete
[174] Fix | Delete
/**
[175] Fix | Delete
* returns the last item of an array.
[176] Fix | Delete
*
[177] Fix | Delete
* @param {Array} array
[178] Fix | Delete
*/
[179] Fix | Delete
var last = function (array) {
[180] Fix | Delete
return array[array.length - 1];
[181] Fix | Delete
};
[182] Fix | Delete
[183] Fix | Delete
/**
[184] Fix | Delete
* returns everything but the last entry of the array.
[185] Fix | Delete
*
[186] Fix | Delete
* @param {Array} array
[187] Fix | Delete
*/
[188] Fix | Delete
var initial = function (array) {
[189] Fix | Delete
return array.slice(0, array.length - 1);
[190] Fix | Delete
};
[191] Fix | Delete
[192] Fix | Delete
/**
[193] Fix | Delete
* returns the rest of the items in an array.
[194] Fix | Delete
*
[195] Fix | Delete
* @param {Array} array
[196] Fix | Delete
*/
[197] Fix | Delete
var tail = function (array) {
[198] Fix | Delete
return array.slice(1);
[199] Fix | Delete
};
[200] Fix | Delete
[201] Fix | Delete
/**
[202] Fix | Delete
* returns item of array
[203] Fix | Delete
*/
[204] Fix | Delete
var find = function (array, pred) {
[205] Fix | Delete
for (var idx = 0, len = array.length; idx < len; idx ++) {
[206] Fix | Delete
var item = array[idx];
[207] Fix | Delete
if (pred(item)) {
[208] Fix | Delete
return item;
[209] Fix | Delete
}
[210] Fix | Delete
}
[211] Fix | Delete
};
[212] Fix | Delete
[213] Fix | Delete
/**
[214] Fix | Delete
* returns true if all of the values in the array pass the predicate truth test.
[215] Fix | Delete
*/
[216] Fix | Delete
var all = function (array, pred) {
[217] Fix | Delete
for (var idx = 0, len = array.length; idx < len; idx ++) {
[218] Fix | Delete
if (!pred(array[idx])) {
[219] Fix | Delete
return false;
[220] Fix | Delete
}
[221] Fix | Delete
}
[222] Fix | Delete
return true;
[223] Fix | Delete
};
[224] Fix | Delete
[225] Fix | Delete
/**
[226] Fix | Delete
* returns index of item
[227] Fix | Delete
*/
[228] Fix | Delete
var indexOf = function (array, item) {
[229] Fix | Delete
return $.inArray(item, array);
[230] Fix | Delete
};
[231] Fix | Delete
[232] Fix | Delete
/**
[233] Fix | Delete
* returns true if the value is present in the list.
[234] Fix | Delete
*/
[235] Fix | Delete
var contains = function (array, item) {
[236] Fix | Delete
return indexOf(array, item) !== -1;
[237] Fix | Delete
};
[238] Fix | Delete
[239] Fix | Delete
/**
[240] Fix | Delete
* get sum from a list
[241] Fix | Delete
*
[242] Fix | Delete
* @param {Array} array - array
[243] Fix | Delete
* @param {Function} fn - iterator
[244] Fix | Delete
*/
[245] Fix | Delete
var sum = function (array, fn) {
[246] Fix | Delete
fn = fn || func.self;
[247] Fix | Delete
return array.reduce(function (memo, v) {
[248] Fix | Delete
return memo + fn(v);
[249] Fix | Delete
}, 0);
[250] Fix | Delete
};
[251] Fix | Delete
[252] Fix | Delete
/**
[253] Fix | Delete
* returns a copy of the collection with array type.
[254] Fix | Delete
* @param {Collection} collection - collection eg) node.childNodes, ...
[255] Fix | Delete
*/
[256] Fix | Delete
var from = function (collection) {
[257] Fix | Delete
var result = [], idx = -1, length = collection.length;
[258] Fix | Delete
while (++idx < length) {
[259] Fix | Delete
result[idx] = collection[idx];
[260] Fix | Delete
}
[261] Fix | Delete
return result;
[262] Fix | Delete
};
[263] Fix | Delete
[264] Fix | Delete
/**
[265] Fix | Delete
* returns whether list is empty or not
[266] Fix | Delete
*/
[267] Fix | Delete
var isEmpty = function (array) {
[268] Fix | Delete
return !array || !array.length;
[269] Fix | Delete
};
[270] Fix | Delete
[271] Fix | Delete
/**
[272] Fix | Delete
* cluster elements by predicate function.
[273] Fix | Delete
*
[274] Fix | Delete
* @param {Array} array - array
[275] Fix | Delete
* @param {Function} fn - predicate function for cluster rule
[276] Fix | Delete
* @param {Array[]}
[277] Fix | Delete
*/
[278] Fix | Delete
var clusterBy = function (array, fn) {
[279] Fix | Delete
if (!array.length) { return []; }
[280] Fix | Delete
var aTail = tail(array);
[281] Fix | Delete
return aTail.reduce(function (memo, v) {
[282] Fix | Delete
var aLast = last(memo);
[283] Fix | Delete
if (fn(last(aLast), v)) {
[284] Fix | Delete
aLast[aLast.length] = v;
[285] Fix | Delete
} else {
[286] Fix | Delete
memo[memo.length] = [v];
[287] Fix | Delete
}
[288] Fix | Delete
return memo;
[289] Fix | Delete
}, [[head(array)]]);
[290] Fix | Delete
};
[291] Fix | Delete
[292] Fix | Delete
/**
[293] Fix | Delete
* returns a copy of the array with all falsy values removed
[294] Fix | Delete
*
[295] Fix | Delete
* @param {Array} array - array
[296] Fix | Delete
* @param {Function} fn - predicate function for cluster rule
[297] Fix | Delete
*/
[298] Fix | Delete
var compact = function (array) {
[299] Fix | Delete
var aResult = [];
[300] Fix | Delete
for (var idx = 0, len = array.length; idx < len; idx ++) {
[301] Fix | Delete
if (array[idx]) { aResult.push(array[idx]); }
[302] Fix | Delete
}
[303] Fix | Delete
return aResult;
[304] Fix | Delete
};
[305] Fix | Delete
[306] Fix | Delete
/**
[307] Fix | Delete
* produces a duplicate-free version of the array
[308] Fix | Delete
*
[309] Fix | Delete
* @param {Array} array
[310] Fix | Delete
*/
[311] Fix | Delete
var unique = function (array) {
[312] Fix | Delete
var results = [];
[313] Fix | Delete
[314] Fix | Delete
for (var idx = 0, len = array.length; idx < len; idx ++) {
[315] Fix | Delete
if (!contains(results, array[idx])) {
[316] Fix | Delete
results.push(array[idx]);
[317] Fix | Delete
}
[318] Fix | Delete
}
[319] Fix | Delete
[320] Fix | Delete
return results;
[321] Fix | Delete
};
[322] Fix | Delete
[323] Fix | Delete
/**
[324] Fix | Delete
* returns next item.
[325] Fix | Delete
* @param {Array} array
[326] Fix | Delete
*/
[327] Fix | Delete
var next = function (array, item) {
[328] Fix | Delete
var idx = indexOf(array, item);
[329] Fix | Delete
if (idx === -1) { return null; }
[330] Fix | Delete
[331] Fix | Delete
return array[idx + 1];
[332] Fix | Delete
};
[333] Fix | Delete
[334] Fix | Delete
/**
[335] Fix | Delete
* returns prev item.
[336] Fix | Delete
* @param {Array} array
[337] Fix | Delete
*/
[338] Fix | Delete
var prev = function (array, item) {
[339] Fix | Delete
var idx = indexOf(array, item);
[340] Fix | Delete
if (idx === -1) { return null; }
[341] Fix | Delete
[342] Fix | Delete
return array[idx - 1];
[343] Fix | Delete
};
[344] Fix | Delete
[345] Fix | Delete
return { head: head, last: last, initial: initial, tail: tail,
[346] Fix | Delete
prev: prev, next: next, find: find, contains: contains,
[347] Fix | Delete
all: all, sum: sum, from: from, isEmpty: isEmpty,
[348] Fix | Delete
clusterBy: clusterBy, compact: compact, unique: unique };
[349] Fix | Delete
})();
[350] Fix | Delete
[351] Fix | Delete
var isSupportAmd = typeof define === 'function' && define.amd;
[352] Fix | Delete
[353] Fix | Delete
/**
[354] Fix | Delete
* returns whether font is installed or not.
[355] Fix | Delete
*
[356] Fix | Delete
* @param {String} fontName
[357] Fix | Delete
* @return {Boolean}
[358] Fix | Delete
*/
[359] Fix | Delete
var isFontInstalled = function (fontName) {
[360] Fix | Delete
var testFontName = fontName === 'Comic Sans MS' ? 'Courier New' : 'Comic Sans MS';
[361] Fix | Delete
var $tester = $('<div>').css({
[362] Fix | Delete
position: 'absolute',
[363] Fix | Delete
left: '-9999px',
[364] Fix | Delete
top: '-9999px',
[365] Fix | Delete
fontSize: '200px'
[366] Fix | Delete
}).text('mmmmmmmmmwwwwwww').appendTo(document.body);
[367] Fix | Delete
[368] Fix | Delete
var originalWidth = $tester.css('fontFamily', testFontName).width();
[369] Fix | Delete
var width = $tester.css('fontFamily', fontName + ',' + testFontName).width();
[370] Fix | Delete
[371] Fix | Delete
$tester.remove();
[372] Fix | Delete
[373] Fix | Delete
return originalWidth !== width;
[374] Fix | Delete
};
[375] Fix | Delete
[376] Fix | Delete
var userAgent = navigator.userAgent;
[377] Fix | Delete
var isMSIE = /MSIE|Trident/i.test(userAgent);
[378] Fix | Delete
var browserVersion;
[379] Fix | Delete
if (isMSIE) {
[380] Fix | Delete
var matches = /MSIE (\d+[.]\d+)/.exec(userAgent);
[381] Fix | Delete
if (matches) {
[382] Fix | Delete
browserVersion = parseFloat(matches[1]);
[383] Fix | Delete
}
[384] Fix | Delete
matches = /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(userAgent);
[385] Fix | Delete
if (matches) {
[386] Fix | Delete
browserVersion = parseFloat(matches[1]);
[387] Fix | Delete
}
[388] Fix | Delete
}
[389] Fix | Delete
[390] Fix | Delete
/**
[391] Fix | Delete
* @class core.agent
[392] Fix | Delete
*
[393] Fix | Delete
* Object which check platform and agent
[394] Fix | Delete
*
[395] Fix | Delete
* @singleton
[396] Fix | Delete
* @alternateClassName agent
[397] Fix | Delete
*/
[398] Fix | Delete
var agent = {
[399] Fix | Delete
isMac: navigator.appVersion.indexOf('Mac') > -1,
[400] Fix | Delete
isMSIE: isMSIE,
[401] Fix | Delete
isFF: /firefox/i.test(userAgent),
[402] Fix | Delete
isWebkit: /webkit/i.test(userAgent),
[403] Fix | Delete
isSafari: /safari/i.test(userAgent),
[404] Fix | Delete
browserVersion: browserVersion,
[405] Fix | Delete
jqueryVersion: parseFloat($.fn.jquery),
[406] Fix | Delete
isSupportAmd: isSupportAmd,
[407] Fix | Delete
hasCodeMirror: isSupportAmd ? require.specified('codemirror') : !!window.CodeMirror,
[408] Fix | Delete
isFontInstalled: isFontInstalled,
[409] Fix | Delete
isW3CRangeSupport: !!document.createRange
[410] Fix | Delete
};
[411] Fix | Delete
[412] Fix | Delete
[413] Fix | Delete
var NBSP_CHAR = String.fromCharCode(160);
[414] Fix | Delete
var ZERO_WIDTH_NBSP_CHAR = '\ufeff';
[415] Fix | Delete
[416] Fix | Delete
/**
[417] Fix | Delete
* @class core.dom
[418] Fix | Delete
*
[419] Fix | Delete
* Dom functions
[420] Fix | Delete
*
[421] Fix | Delete
* @singleton
[422] Fix | Delete
* @alternateClassName dom
[423] Fix | Delete
*/
[424] Fix | Delete
var dom = (function () {
[425] Fix | Delete
/**
[426] Fix | Delete
* @method isEditable
[427] Fix | Delete
*
[428] Fix | Delete
* returns whether node is `note-editable` or not.
[429] Fix | Delete
*
[430] Fix | Delete
* @param {Node} node
[431] Fix | Delete
* @return {Boolean}
[432] Fix | Delete
*/
[433] Fix | Delete
var isEditable = function (node) {
[434] Fix | Delete
return node && $(node).hasClass('note-editable');
[435] Fix | Delete
};
[436] Fix | Delete
[437] Fix | Delete
/**
[438] Fix | Delete
* @method isControlSizing
[439] Fix | Delete
*
[440] Fix | Delete
* returns whether node is `note-control-sizing` or not.
[441] Fix | Delete
*
[442] Fix | Delete
* @param {Node} node
[443] Fix | Delete
* @return {Boolean}
[444] Fix | Delete
*/
[445] Fix | Delete
var isControlSizing = function (node) {
[446] Fix | Delete
return node && $(node).hasClass('note-control-sizing');
[447] Fix | Delete
};
[448] Fix | Delete
[449] Fix | Delete
/**
[450] Fix | Delete
* @method makePredByNodeName
[451] Fix | Delete
*
[452] Fix | Delete
* returns predicate which judge whether nodeName is same
[453] Fix | Delete
*
[454] Fix | Delete
* @param {String} nodeName
[455] Fix | Delete
* @return {Function}
[456] Fix | Delete
*/
[457] Fix | Delete
var makePredByNodeName = function (nodeName) {
[458] Fix | Delete
nodeName = nodeName.toUpperCase();
[459] Fix | Delete
return function (node) {
[460] Fix | Delete
return node && node.nodeName.toUpperCase() === nodeName;
[461] Fix | Delete
};
[462] Fix | Delete
};
[463] Fix | Delete
[464] Fix | Delete
/**
[465] Fix | Delete
* @method isText
[466] Fix | Delete
*
[467] Fix | Delete
*
[468] Fix | Delete
*
[469] Fix | Delete
* @param {Node} node
[470] Fix | Delete
* @return {Boolean} true if node's type is text(3)
[471] Fix | Delete
*/
[472] Fix | Delete
var isText = function (node) {
[473] Fix | Delete
return node && node.nodeType === 3;
[474] Fix | Delete
};
[475] Fix | Delete
[476] Fix | Delete
/**
[477] Fix | Delete
* @method isElement
[478] Fix | Delete
*
[479] Fix | Delete
*
[480] Fix | Delete
*
[481] Fix | Delete
* @param {Node} node
[482] Fix | Delete
* @return {Boolean} true if node's type is element(1)
[483] Fix | Delete
*/
[484] Fix | Delete
var isElement = function (node) {
[485] Fix | Delete
return node && node.nodeType === 1;
[486] Fix | Delete
};
[487] Fix | Delete
[488] Fix | Delete
/**
[489] Fix | Delete
* ex) br, col, embed, hr, img, input, ...
[490] Fix | Delete
* @see http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements
[491] Fix | Delete
*/
[492] Fix | Delete
var isVoid = function (node) {
[493] Fix | Delete
return node && /^BR|^IMG|^HR|^IFRAME|^BUTTON/.test(node.nodeName.toUpperCase());
[494] Fix | Delete
};
[495] Fix | Delete
[496] Fix | Delete
var isPara = function (node) {
[497] Fix | Delete
if (isEditable(node)) {
[498] Fix | Delete
return false;
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function