Edit File by line
/home/zeestwma/richards.../wp-inclu.../js/tinymce/plugins/image
File: plugin.js
(function () {
[0] Fix | Delete
var image = (function (domGlobals) {
[1] Fix | Delete
'use strict';
[2] Fix | Delete
[3] Fix | Delete
var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
[4] Fix | Delete
[5] Fix | Delete
var hasDimensions = function (editor) {
[6] Fix | Delete
return editor.settings.image_dimensions === false ? false : true;
[7] Fix | Delete
};
[8] Fix | Delete
var hasAdvTab = function (editor) {
[9] Fix | Delete
return editor.settings.image_advtab === true ? true : false;
[10] Fix | Delete
};
[11] Fix | Delete
var getPrependUrl = function (editor) {
[12] Fix | Delete
return editor.getParam('image_prepend_url', '');
[13] Fix | Delete
};
[14] Fix | Delete
var getClassList = function (editor) {
[15] Fix | Delete
return editor.getParam('image_class_list');
[16] Fix | Delete
};
[17] Fix | Delete
var hasDescription = function (editor) {
[18] Fix | Delete
return editor.settings.image_description === false ? false : true;
[19] Fix | Delete
};
[20] Fix | Delete
var hasImageTitle = function (editor) {
[21] Fix | Delete
return editor.settings.image_title === true ? true : false;
[22] Fix | Delete
};
[23] Fix | Delete
var hasImageCaption = function (editor) {
[24] Fix | Delete
return editor.settings.image_caption === true ? true : false;
[25] Fix | Delete
};
[26] Fix | Delete
var getImageList = function (editor) {
[27] Fix | Delete
return editor.getParam('image_list', false);
[28] Fix | Delete
};
[29] Fix | Delete
var hasUploadUrl = function (editor) {
[30] Fix | Delete
return editor.getParam('images_upload_url', false);
[31] Fix | Delete
};
[32] Fix | Delete
var hasUploadHandler = function (editor) {
[33] Fix | Delete
return editor.getParam('images_upload_handler', false);
[34] Fix | Delete
};
[35] Fix | Delete
var getUploadUrl = function (editor) {
[36] Fix | Delete
return editor.getParam('images_upload_url');
[37] Fix | Delete
};
[38] Fix | Delete
var getUploadHandler = function (editor) {
[39] Fix | Delete
return editor.getParam('images_upload_handler');
[40] Fix | Delete
};
[41] Fix | Delete
var getUploadBasePath = function (editor) {
[42] Fix | Delete
return editor.getParam('images_upload_base_path');
[43] Fix | Delete
};
[44] Fix | Delete
var getUploadCredentials = function (editor) {
[45] Fix | Delete
return editor.getParam('images_upload_credentials');
[46] Fix | Delete
};
[47] Fix | Delete
var Settings = {
[48] Fix | Delete
hasDimensions: hasDimensions,
[49] Fix | Delete
hasAdvTab: hasAdvTab,
[50] Fix | Delete
getPrependUrl: getPrependUrl,
[51] Fix | Delete
getClassList: getClassList,
[52] Fix | Delete
hasDescription: hasDescription,
[53] Fix | Delete
hasImageTitle: hasImageTitle,
[54] Fix | Delete
hasImageCaption: hasImageCaption,
[55] Fix | Delete
getImageList: getImageList,
[56] Fix | Delete
hasUploadUrl: hasUploadUrl,
[57] Fix | Delete
hasUploadHandler: hasUploadHandler,
[58] Fix | Delete
getUploadUrl: getUploadUrl,
[59] Fix | Delete
getUploadHandler: getUploadHandler,
[60] Fix | Delete
getUploadBasePath: getUploadBasePath,
[61] Fix | Delete
getUploadCredentials: getUploadCredentials
[62] Fix | Delete
};
[63] Fix | Delete
[64] Fix | Delete
var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
[65] Fix | Delete
[66] Fix | Delete
var path = function (parts, scope) {
[67] Fix | Delete
var o = scope !== undefined && scope !== null ? scope : Global;
[68] Fix | Delete
for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) {
[69] Fix | Delete
o = o[parts[i]];
[70] Fix | Delete
}
[71] Fix | Delete
return o;
[72] Fix | Delete
};
[73] Fix | Delete
var resolve = function (p, scope) {
[74] Fix | Delete
var parts = p.split('.');
[75] Fix | Delete
return path(parts, scope);
[76] Fix | Delete
};
[77] Fix | Delete
[78] Fix | Delete
var unsafe = function (name, scope) {
[79] Fix | Delete
return resolve(name, scope);
[80] Fix | Delete
};
[81] Fix | Delete
var getOrDie = function (name, scope) {
[82] Fix | Delete
var actual = unsafe(name, scope);
[83] Fix | Delete
if (actual === undefined || actual === null) {
[84] Fix | Delete
throw new Error(name + ' not available on this browser');
[85] Fix | Delete
}
[86] Fix | Delete
return actual;
[87] Fix | Delete
};
[88] Fix | Delete
var Global$1 = { getOrDie: getOrDie };
[89] Fix | Delete
[90] Fix | Delete
function FileReader () {
[91] Fix | Delete
var f = Global$1.getOrDie('FileReader');
[92] Fix | Delete
return new f();
[93] Fix | Delete
}
[94] Fix | Delete
[95] Fix | Delete
var global$1 = tinymce.util.Tools.resolve('tinymce.util.Promise');
[96] Fix | Delete
[97] Fix | Delete
var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
[98] Fix | Delete
[99] Fix | Delete
var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR');
[100] Fix | Delete
[101] Fix | Delete
var parseIntAndGetMax = function (val1, val2) {
[102] Fix | Delete
return Math.max(parseInt(val1, 10), parseInt(val2, 10));
[103] Fix | Delete
};
[104] Fix | Delete
var getImageSize = function (url, callback) {
[105] Fix | Delete
var img = domGlobals.document.createElement('img');
[106] Fix | Delete
function done(width, height) {
[107] Fix | Delete
if (img.parentNode) {
[108] Fix | Delete
img.parentNode.removeChild(img);
[109] Fix | Delete
}
[110] Fix | Delete
callback({
[111] Fix | Delete
width: width,
[112] Fix | Delete
height: height
[113] Fix | Delete
});
[114] Fix | Delete
}
[115] Fix | Delete
img.onload = function () {
[116] Fix | Delete
var width = parseIntAndGetMax(img.width, img.clientWidth);
[117] Fix | Delete
var height = parseIntAndGetMax(img.height, img.clientHeight);
[118] Fix | Delete
done(width, height);
[119] Fix | Delete
};
[120] Fix | Delete
img.onerror = function () {
[121] Fix | Delete
done(0, 0);
[122] Fix | Delete
};
[123] Fix | Delete
var style = img.style;
[124] Fix | Delete
style.visibility = 'hidden';
[125] Fix | Delete
style.position = 'fixed';
[126] Fix | Delete
style.bottom = style.left = '0px';
[127] Fix | Delete
style.width = style.height = 'auto';
[128] Fix | Delete
domGlobals.document.body.appendChild(img);
[129] Fix | Delete
img.src = url;
[130] Fix | Delete
};
[131] Fix | Delete
var buildListItems = function (inputList, itemCallback, startItems) {
[132] Fix | Delete
function appendItems(values, output) {
[133] Fix | Delete
output = output || [];
[134] Fix | Delete
global$2.each(values, function (item) {
[135] Fix | Delete
var menuItem = { text: item.text || item.title };
[136] Fix | Delete
if (item.menu) {
[137] Fix | Delete
menuItem.menu = appendItems(item.menu);
[138] Fix | Delete
} else {
[139] Fix | Delete
menuItem.value = item.value;
[140] Fix | Delete
itemCallback(menuItem);
[141] Fix | Delete
}
[142] Fix | Delete
output.push(menuItem);
[143] Fix | Delete
});
[144] Fix | Delete
return output;
[145] Fix | Delete
}
[146] Fix | Delete
return appendItems(inputList, startItems || []);
[147] Fix | Delete
};
[148] Fix | Delete
var removePixelSuffix = function (value) {
[149] Fix | Delete
if (value) {
[150] Fix | Delete
value = value.replace(/px$/, '');
[151] Fix | Delete
}
[152] Fix | Delete
return value;
[153] Fix | Delete
};
[154] Fix | Delete
var addPixelSuffix = function (value) {
[155] Fix | Delete
if (value.length > 0 && /^[0-9]+$/.test(value)) {
[156] Fix | Delete
value += 'px';
[157] Fix | Delete
}
[158] Fix | Delete
return value;
[159] Fix | Delete
};
[160] Fix | Delete
var mergeMargins = function (css) {
[161] Fix | Delete
if (css.margin) {
[162] Fix | Delete
var splitMargin = css.margin.split(' ');
[163] Fix | Delete
switch (splitMargin.length) {
[164] Fix | Delete
case 1:
[165] Fix | Delete
css['margin-top'] = css['margin-top'] || splitMargin[0];
[166] Fix | Delete
css['margin-right'] = css['margin-right'] || splitMargin[0];
[167] Fix | Delete
css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];
[168] Fix | Delete
css['margin-left'] = css['margin-left'] || splitMargin[0];
[169] Fix | Delete
break;
[170] Fix | Delete
case 2:
[171] Fix | Delete
css['margin-top'] = css['margin-top'] || splitMargin[0];
[172] Fix | Delete
css['margin-right'] = css['margin-right'] || splitMargin[1];
[173] Fix | Delete
css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];
[174] Fix | Delete
css['margin-left'] = css['margin-left'] || splitMargin[1];
[175] Fix | Delete
break;
[176] Fix | Delete
case 3:
[177] Fix | Delete
css['margin-top'] = css['margin-top'] || splitMargin[0];
[178] Fix | Delete
css['margin-right'] = css['margin-right'] || splitMargin[1];
[179] Fix | Delete
css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];
[180] Fix | Delete
css['margin-left'] = css['margin-left'] || splitMargin[1];
[181] Fix | Delete
break;
[182] Fix | Delete
case 4:
[183] Fix | Delete
css['margin-top'] = css['margin-top'] || splitMargin[0];
[184] Fix | Delete
css['margin-right'] = css['margin-right'] || splitMargin[1];
[185] Fix | Delete
css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];
[186] Fix | Delete
css['margin-left'] = css['margin-left'] || splitMargin[3];
[187] Fix | Delete
}
[188] Fix | Delete
delete css.margin;
[189] Fix | Delete
}
[190] Fix | Delete
return css;
[191] Fix | Delete
};
[192] Fix | Delete
var createImageList = function (editor, callback) {
[193] Fix | Delete
var imageList = Settings.getImageList(editor);
[194] Fix | Delete
if (typeof imageList === 'string') {
[195] Fix | Delete
global$3.send({
[196] Fix | Delete
url: imageList,
[197] Fix | Delete
success: function (text) {
[198] Fix | Delete
callback(JSON.parse(text));
[199] Fix | Delete
}
[200] Fix | Delete
});
[201] Fix | Delete
} else if (typeof imageList === 'function') {
[202] Fix | Delete
imageList(callback);
[203] Fix | Delete
} else {
[204] Fix | Delete
callback(imageList);
[205] Fix | Delete
}
[206] Fix | Delete
};
[207] Fix | Delete
var waitLoadImage = function (editor, data, imgElm) {
[208] Fix | Delete
function selectImage() {
[209] Fix | Delete
imgElm.onload = imgElm.onerror = null;
[210] Fix | Delete
if (editor.selection) {
[211] Fix | Delete
editor.selection.select(imgElm);
[212] Fix | Delete
editor.nodeChanged();
[213] Fix | Delete
}
[214] Fix | Delete
}
[215] Fix | Delete
imgElm.onload = function () {
[216] Fix | Delete
if (!data.width && !data.height && Settings.hasDimensions(editor)) {
[217] Fix | Delete
editor.dom.setAttribs(imgElm, {
[218] Fix | Delete
width: imgElm.clientWidth,
[219] Fix | Delete
height: imgElm.clientHeight
[220] Fix | Delete
});
[221] Fix | Delete
}
[222] Fix | Delete
selectImage();
[223] Fix | Delete
};
[224] Fix | Delete
imgElm.onerror = selectImage;
[225] Fix | Delete
};
[226] Fix | Delete
var blobToDataUri = function (blob) {
[227] Fix | Delete
return new global$1(function (resolve, reject) {
[228] Fix | Delete
var reader = FileReader();
[229] Fix | Delete
reader.onload = function () {
[230] Fix | Delete
resolve(reader.result);
[231] Fix | Delete
};
[232] Fix | Delete
reader.onerror = function () {
[233] Fix | Delete
reject(reader.error.message);
[234] Fix | Delete
};
[235] Fix | Delete
reader.readAsDataURL(blob);
[236] Fix | Delete
});
[237] Fix | Delete
};
[238] Fix | Delete
var Utils = {
[239] Fix | Delete
getImageSize: getImageSize,
[240] Fix | Delete
buildListItems: buildListItems,
[241] Fix | Delete
removePixelSuffix: removePixelSuffix,
[242] Fix | Delete
addPixelSuffix: addPixelSuffix,
[243] Fix | Delete
mergeMargins: mergeMargins,
[244] Fix | Delete
createImageList: createImageList,
[245] Fix | Delete
waitLoadImage: waitLoadImage,
[246] Fix | Delete
blobToDataUri: blobToDataUri
[247] Fix | Delete
};
[248] Fix | Delete
[249] Fix | Delete
var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
[250] Fix | Delete
[251] Fix | Delete
var hasOwnProperty = Object.prototype.hasOwnProperty;
[252] Fix | Delete
var shallow = function (old, nu) {
[253] Fix | Delete
return nu;
[254] Fix | Delete
};
[255] Fix | Delete
var baseMerge = function (merger) {
[256] Fix | Delete
return function () {
[257] Fix | Delete
var objects = new Array(arguments.length);
[258] Fix | Delete
for (var i = 0; i < objects.length; i++) {
[259] Fix | Delete
objects[i] = arguments[i];
[260] Fix | Delete
}
[261] Fix | Delete
if (objects.length === 0) {
[262] Fix | Delete
throw new Error('Can\'t merge zero objects');
[263] Fix | Delete
}
[264] Fix | Delete
var ret = {};
[265] Fix | Delete
for (var j = 0; j < objects.length; j++) {
[266] Fix | Delete
var curObject = objects[j];
[267] Fix | Delete
for (var key in curObject) {
[268] Fix | Delete
if (hasOwnProperty.call(curObject, key)) {
[269] Fix | Delete
ret[key] = merger(ret[key], curObject[key]);
[270] Fix | Delete
}
[271] Fix | Delete
}
[272] Fix | Delete
}
[273] Fix | Delete
return ret;
[274] Fix | Delete
};
[275] Fix | Delete
};
[276] Fix | Delete
var merge = baseMerge(shallow);
[277] Fix | Delete
[278] Fix | Delete
var DOM = global$4.DOM;
[279] Fix | Delete
var getHspace = function (image) {
[280] Fix | Delete
if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {
[281] Fix | Delete
return Utils.removePixelSuffix(image.style.marginLeft);
[282] Fix | Delete
} else {
[283] Fix | Delete
return '';
[284] Fix | Delete
}
[285] Fix | Delete
};
[286] Fix | Delete
var getVspace = function (image) {
[287] Fix | Delete
if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {
[288] Fix | Delete
return Utils.removePixelSuffix(image.style.marginTop);
[289] Fix | Delete
} else {
[290] Fix | Delete
return '';
[291] Fix | Delete
}
[292] Fix | Delete
};
[293] Fix | Delete
var getBorder = function (image) {
[294] Fix | Delete
if (image.style.borderWidth) {
[295] Fix | Delete
return Utils.removePixelSuffix(image.style.borderWidth);
[296] Fix | Delete
} else {
[297] Fix | Delete
return '';
[298] Fix | Delete
}
[299] Fix | Delete
};
[300] Fix | Delete
var getAttrib = function (image, name) {
[301] Fix | Delete
if (image.hasAttribute(name)) {
[302] Fix | Delete
return image.getAttribute(name);
[303] Fix | Delete
} else {
[304] Fix | Delete
return '';
[305] Fix | Delete
}
[306] Fix | Delete
};
[307] Fix | Delete
var getStyle = function (image, name) {
[308] Fix | Delete
return image.style[name] ? image.style[name] : '';
[309] Fix | Delete
};
[310] Fix | Delete
var hasCaption = function (image) {
[311] Fix | Delete
return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';
[312] Fix | Delete
};
[313] Fix | Delete
var setAttrib = function (image, name, value) {
[314] Fix | Delete
image.setAttribute(name, value);
[315] Fix | Delete
};
[316] Fix | Delete
var wrapInFigure = function (image) {
[317] Fix | Delete
var figureElm = DOM.create('figure', { class: 'image' });
[318] Fix | Delete
DOM.insertAfter(figureElm, image);
[319] Fix | Delete
figureElm.appendChild(image);
[320] Fix | Delete
figureElm.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption'));
[321] Fix | Delete
figureElm.contentEditable = 'false';
[322] Fix | Delete
};
[323] Fix | Delete
var removeFigure = function (image) {
[324] Fix | Delete
var figureElm = image.parentNode;
[325] Fix | Delete
DOM.insertAfter(image, figureElm);
[326] Fix | Delete
DOM.remove(figureElm);
[327] Fix | Delete
};
[328] Fix | Delete
var toggleCaption = function (image) {
[329] Fix | Delete
if (hasCaption(image)) {
[330] Fix | Delete
removeFigure(image);
[331] Fix | Delete
} else {
[332] Fix | Delete
wrapInFigure(image);
[333] Fix | Delete
}
[334] Fix | Delete
};
[335] Fix | Delete
var normalizeStyle = function (image, normalizeCss) {
[336] Fix | Delete
var attrValue = image.getAttribute('style');
[337] Fix | Delete
var value = normalizeCss(attrValue !== null ? attrValue : '');
[338] Fix | Delete
if (value.length > 0) {
[339] Fix | Delete
image.setAttribute('style', value);
[340] Fix | Delete
image.setAttribute('data-mce-style', value);
[341] Fix | Delete
} else {
[342] Fix | Delete
image.removeAttribute('style');
[343] Fix | Delete
}
[344] Fix | Delete
};
[345] Fix | Delete
var setSize = function (name, normalizeCss) {
[346] Fix | Delete
return function (image, name, value) {
[347] Fix | Delete
if (image.style[name]) {
[348] Fix | Delete
image.style[name] = Utils.addPixelSuffix(value);
[349] Fix | Delete
normalizeStyle(image, normalizeCss);
[350] Fix | Delete
} else {
[351] Fix | Delete
setAttrib(image, name, value);
[352] Fix | Delete
}
[353] Fix | Delete
};
[354] Fix | Delete
};
[355] Fix | Delete
var getSize = function (image, name) {
[356] Fix | Delete
if (image.style[name]) {
[357] Fix | Delete
return Utils.removePixelSuffix(image.style[name]);
[358] Fix | Delete
} else {
[359] Fix | Delete
return getAttrib(image, name);
[360] Fix | Delete
}
[361] Fix | Delete
};
[362] Fix | Delete
var setHspace = function (image, value) {
[363] Fix | Delete
var pxValue = Utils.addPixelSuffix(value);
[364] Fix | Delete
image.style.marginLeft = pxValue;
[365] Fix | Delete
image.style.marginRight = pxValue;
[366] Fix | Delete
};
[367] Fix | Delete
var setVspace = function (image, value) {
[368] Fix | Delete
var pxValue = Utils.addPixelSuffix(value);
[369] Fix | Delete
image.style.marginTop = pxValue;
[370] Fix | Delete
image.style.marginBottom = pxValue;
[371] Fix | Delete
};
[372] Fix | Delete
var setBorder = function (image, value) {
[373] Fix | Delete
var pxValue = Utils.addPixelSuffix(value);
[374] Fix | Delete
image.style.borderWidth = pxValue;
[375] Fix | Delete
};
[376] Fix | Delete
var setBorderStyle = function (image, value) {
[377] Fix | Delete
image.style.borderStyle = value;
[378] Fix | Delete
};
[379] Fix | Delete
var getBorderStyle = function (image) {
[380] Fix | Delete
return getStyle(image, 'borderStyle');
[381] Fix | Delete
};
[382] Fix | Delete
var isFigure = function (elm) {
[383] Fix | Delete
return elm.nodeName === 'FIGURE';
[384] Fix | Delete
};
[385] Fix | Delete
var defaultData = function () {
[386] Fix | Delete
return {
[387] Fix | Delete
src: '',
[388] Fix | Delete
alt: '',
[389] Fix | Delete
title: '',
[390] Fix | Delete
width: '',
[391] Fix | Delete
height: '',
[392] Fix | Delete
class: '',
[393] Fix | Delete
style: '',
[394] Fix | Delete
caption: false,
[395] Fix | Delete
hspace: '',
[396] Fix | Delete
vspace: '',
[397] Fix | Delete
border: '',
[398] Fix | Delete
borderStyle: ''
[399] Fix | Delete
};
[400] Fix | Delete
};
[401] Fix | Delete
var getStyleValue = function (normalizeCss, data) {
[402] Fix | Delete
var image = domGlobals.document.createElement('img');
[403] Fix | Delete
setAttrib(image, 'style', data.style);
[404] Fix | Delete
if (getHspace(image) || data.hspace !== '') {
[405] Fix | Delete
setHspace(image, data.hspace);
[406] Fix | Delete
}
[407] Fix | Delete
if (getVspace(image) || data.vspace !== '') {
[408] Fix | Delete
setVspace(image, data.vspace);
[409] Fix | Delete
}
[410] Fix | Delete
if (getBorder(image) || data.border !== '') {
[411] Fix | Delete
setBorder(image, data.border);
[412] Fix | Delete
}
[413] Fix | Delete
if (getBorderStyle(image) || data.borderStyle !== '') {
[414] Fix | Delete
setBorderStyle(image, data.borderStyle);
[415] Fix | Delete
}
[416] Fix | Delete
return normalizeCss(image.getAttribute('style'));
[417] Fix | Delete
};
[418] Fix | Delete
var create = function (normalizeCss, data) {
[419] Fix | Delete
var image = domGlobals.document.createElement('img');
[420] Fix | Delete
write(normalizeCss, merge(data, { caption: false }), image);
[421] Fix | Delete
setAttrib(image, 'alt', data.alt);
[422] Fix | Delete
if (data.caption) {
[423] Fix | Delete
var figure = DOM.create('figure', { class: 'image' });
[424] Fix | Delete
figure.appendChild(image);
[425] Fix | Delete
figure.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption'));
[426] Fix | Delete
figure.contentEditable = 'false';
[427] Fix | Delete
return figure;
[428] Fix | Delete
} else {
[429] Fix | Delete
return image;
[430] Fix | Delete
}
[431] Fix | Delete
};
[432] Fix | Delete
var read = function (normalizeCss, image) {
[433] Fix | Delete
return {
[434] Fix | Delete
src: getAttrib(image, 'src'),
[435] Fix | Delete
alt: getAttrib(image, 'alt'),
[436] Fix | Delete
title: getAttrib(image, 'title'),
[437] Fix | Delete
width: getSize(image, 'width'),
[438] Fix | Delete
height: getSize(image, 'height'),
[439] Fix | Delete
class: getAttrib(image, 'class'),
[440] Fix | Delete
style: normalizeCss(getAttrib(image, 'style')),
[441] Fix | Delete
caption: hasCaption(image),
[442] Fix | Delete
hspace: getHspace(image),
[443] Fix | Delete
vspace: getVspace(image),
[444] Fix | Delete
border: getBorder(image),
[445] Fix | Delete
borderStyle: getStyle(image, 'borderStyle')
[446] Fix | Delete
};
[447] Fix | Delete
};
[448] Fix | Delete
var updateProp = function (image, oldData, newData, name, set) {
[449] Fix | Delete
if (newData[name] !== oldData[name]) {
[450] Fix | Delete
set(image, name, newData[name]);
[451] Fix | Delete
}
[452] Fix | Delete
};
[453] Fix | Delete
var normalized = function (set, normalizeCss) {
[454] Fix | Delete
return function (image, name, value) {
[455] Fix | Delete
set(image, value);
[456] Fix | Delete
normalizeStyle(image, normalizeCss);
[457] Fix | Delete
};
[458] Fix | Delete
};
[459] Fix | Delete
var write = function (normalizeCss, newData, image) {
[460] Fix | Delete
var oldData = read(normalizeCss, image);
[461] Fix | Delete
updateProp(image, oldData, newData, 'caption', function (image, _name, _value) {
[462] Fix | Delete
return toggleCaption(image);
[463] Fix | Delete
});
[464] Fix | Delete
updateProp(image, oldData, newData, 'src', setAttrib);
[465] Fix | Delete
updateProp(image, oldData, newData, 'alt', setAttrib);
[466] Fix | Delete
updateProp(image, oldData, newData, 'title', setAttrib);
[467] Fix | Delete
updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));
[468] Fix | Delete
updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));
[469] Fix | Delete
updateProp(image, oldData, newData, 'class', setAttrib);
[470] Fix | Delete
updateProp(image, oldData, newData, 'style', normalized(function (image, value) {
[471] Fix | Delete
return setAttrib(image, 'style', value);
[472] Fix | Delete
}, normalizeCss));
[473] Fix | Delete
updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));
[474] Fix | Delete
updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));
[475] Fix | Delete
updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));
[476] Fix | Delete
updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));
[477] Fix | Delete
};
[478] Fix | Delete
[479] Fix | Delete
var normalizeCss = function (editor, cssText) {
[480] Fix | Delete
var css = editor.dom.styles.parse(cssText);
[481] Fix | Delete
var mergedCss = Utils.mergeMargins(css);
[482] Fix | Delete
var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));
[483] Fix | Delete
return editor.dom.styles.serialize(compressed);
[484] Fix | Delete
};
[485] Fix | Delete
var getSelectedImage = function (editor) {
[486] Fix | Delete
var imgElm = editor.selection.getNode();
[487] Fix | Delete
var figureElm = editor.dom.getParent(imgElm, 'figure.image');
[488] Fix | Delete
if (figureElm) {
[489] Fix | Delete
return editor.dom.select('img', figureElm)[0];
[490] Fix | Delete
}
[491] Fix | Delete
if (imgElm && (imgElm.nodeName !== 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) {
[492] Fix | Delete
return null;
[493] Fix | Delete
}
[494] Fix | Delete
return imgElm;
[495] Fix | Delete
};
[496] Fix | Delete
var splitTextBlock = function (editor, figure) {
[497] Fix | Delete
var dom = editor.dom;
[498] Fix | Delete
var textBlock = dom.getParent(figure.parentNode, function (node) {
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function