mirror of
https://bitbucket.org/wisemapping/wisemapping-frontend.git
synced 2024-11-25 23:54:55 +01:00
Fix web2d patch issue
This commit is contained in:
parent
475c5e2538
commit
f774a8a0c9
@ -16,7 +16,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
import { $assert, innerXML } from '@wisemapping/core-js';
|
import { $assert } from '@wisemapping/core-js';
|
||||||
import XMLSerializerFactory from './persistence/XMLSerializerFactory';
|
import XMLSerializerFactory from './persistence/XMLSerializerFactory';
|
||||||
|
|
||||||
class PersistenceManager {
|
class PersistenceManager {
|
||||||
@ -29,7 +29,7 @@ class PersistenceManager {
|
|||||||
|
|
||||||
const serializer = XMLSerializerFactory.getSerializerFromMindmap(mindmap);
|
const serializer = XMLSerializerFactory.getSerializerFromMindmap(mindmap);
|
||||||
const domMap = serializer.toXML(mindmap);
|
const domMap = serializer.toXML(mindmap);
|
||||||
const mapXml = innerXML(domMap);
|
const mapXml = new XMLSerializer().serializeToString(domMap);
|
||||||
|
|
||||||
const pref = JSON.stringify(editorProperties);
|
const pref = JSON.stringify(editorProperties);
|
||||||
try {
|
try {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
|
|
||||||
import { Mindmap } from "../..";
|
import { Mindmap } from "../..";
|
||||||
import ImageIcon from "../ImageIcon";
|
|
||||||
import Exporter from "./Exporter";
|
import Exporter from "./Exporter";
|
||||||
|
|
||||||
class SVGExporter implements Exporter {
|
class SVGExporter implements Exporter {
|
||||||
@ -12,14 +11,14 @@ class SVGExporter implements Exporter {
|
|||||||
export(): string {
|
export(): string {
|
||||||
// Replace all images for in-line images ...
|
// Replace all images for in-line images ...
|
||||||
const imagesElements: HTMLCollection = this.svgElement.getElementsByTagName('image');
|
const imagesElements: HTMLCollection = this.svgElement.getElementsByTagName('image');
|
||||||
console.log(imagesElements.length);
|
let result:string = new XMLSerializer().serializeToString(this.svgElement);
|
||||||
|
|
||||||
const image = ImageIcon.getImageUrl('face_smile');
|
// Are namespace declared ?. Otherwise, force the declaration ...
|
||||||
Array.from(imagesElements).forEach((image) => {
|
if(result.indexOf('xmlns=')!=-1){
|
||||||
const imgValue = image.attributes['xlink:href'].value;
|
result.replace('<svg ', '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ')
|
||||||
console.log(image.attributes);
|
}
|
||||||
});
|
|
||||||
return "";
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -169,18 +169,6 @@ class XMLSerializerBeta {
|
|||||||
return noteDom;
|
return noteDom;
|
||||||
}
|
}
|
||||||
|
|
||||||
static innerXML(element) {
|
|
||||||
let result = null;
|
|
||||||
if ($defined(element.innerXML)) {
|
|
||||||
result = element.innerXML;
|
|
||||||
} if ($defined(element.xml)) {
|
|
||||||
result = element.xml;
|
|
||||||
} if ($defined(XMLSerializer)) {
|
|
||||||
result = new XMLSerializer().serializeToString(element);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
loadFromDom(dom, mapId) {
|
loadFromDom(dom, mapId) {
|
||||||
$assert(dom, 'Dom can not be null');
|
$assert(dom, 'Dom can not be null');
|
||||||
$assert(mapId, 'mapId can not be null');
|
$assert(mapId, 'mapId can not be null');
|
||||||
@ -196,7 +184,7 @@ class XMLSerializerBeta {
|
|||||||
$assert(
|
$assert(
|
||||||
documentElement.tagName === XMLSerializerBeta.MAP_ROOT_NODE,
|
documentElement.tagName === XMLSerializerBeta.MAP_ROOT_NODE,
|
||||||
`This seem not to be a map document. Root Tag: '${documentElement.tagName}',HTML:${dom.innerHTML
|
`This seem not to be a map document. Root Tag: '${documentElement.tagName}',HTML:${dom.innerHTML
|
||||||
},XML:,${XMLSerializerBeta.innerXML(dom)}`,
|
},XML:,${new XMLSerializer().serializeToString(dom)}`,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Start the loading process ...
|
// Start the loading process ...
|
||||||
|
@ -495,18 +495,6 @@ class XMLSerializerPela {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static innerXML(element) {
|
|
||||||
let result = null;
|
|
||||||
if ($defined(element.innerXML)) {
|
|
||||||
result = element.innerXML;
|
|
||||||
} if ($defined(element.xml)) {
|
|
||||||
result = element.xml;
|
|
||||||
} if ($defined(XMLSerializer)) {
|
|
||||||
result = new XMLSerializer().serializeToString(element);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,7 +19,8 @@ test('mindplot generation of simple maps', () => {
|
|||||||
|
|
||||||
// Inspect ...
|
// Inspect ...
|
||||||
const exporter = new SVGExporter(mindmap, svgDocument.documentElement);
|
const exporter = new SVGExporter(mindmap, svgDocument.documentElement);
|
||||||
console.log(exporter.export());
|
console.log('Exported map:' + exporter.export());
|
||||||
|
|
||||||
|
|
||||||
function parseXMLFile(filePath: fs.PathOrFileDescriptor, mimeType: DOMParserSupportedType) {
|
function parseXMLFile(filePath: fs.PathOrFileDescriptor, mimeType: DOMParserSupportedType) {
|
||||||
const parser = new DOMParser();
|
const parser = new DOMParser();
|
||||||
@ -28,8 +29,10 @@ test('mindplot generation of simple maps', () => {
|
|||||||
|
|
||||||
// Is there any parsing error ?.
|
// Is there any parsing error ?.
|
||||||
if (xmlDoc.getElementsByTagName("parsererror").length > 0) {
|
if (xmlDoc.getElementsByTagName("parsererror").length > 0) {
|
||||||
|
console.log(new XMLSerializer().serializeToString(xmlDoc));
|
||||||
throw new Error(`Unexpected error parsing: ${filePath}. Error: ${new XMLSerializer().serializeToString(xmlDoc)}`);
|
throw new Error(`Unexpected error parsing: ${filePath}. Error: ${new XMLSerializer().serializeToString(xmlDoc)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return xmlDoc;
|
return xmlDoc;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 81 KiB |
@ -90,7 +90,7 @@ class Text extends ElementClass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getHeight() {
|
getHeight() {
|
||||||
return parseInt(this.peer.getHeight(), 10);
|
return Number.parseInt(this.peer.getHeight(), 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
getFontHeight() {
|
getFontHeight() {
|
||||||
|
@ -31,10 +31,6 @@ import VerdanaFont from './peer/svg/VerdanaFont';
|
|||||||
import TahomaFont from './peer/svg/TahomaFont';
|
import TahomaFont from './peer/svg/TahomaFont';
|
||||||
|
|
||||||
class Toolkit {
|
class Toolkit {
|
||||||
static init() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static createWorkspace(element) {
|
static createWorkspace(element) {
|
||||||
return new WorkspacePeer(element);
|
return new WorkspacePeer(element);
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,7 @@ class ArrowPeer extends ElementPeer {
|
|||||||
yp = x3 === 0 ? l * Math.sign(y3) : mp * xp;
|
yp = x3 === 0 ? l * Math.sign(y3) : mp * xp;
|
||||||
|
|
||||||
const path = `M${this._fromPoint.x},${this._fromPoint.y} `
|
const path = `M${this._fromPoint.x},${this._fromPoint.y} `
|
||||||
+ `L${x + this._fromPoint.x},${y + this._fromPoint.y}M${this._fromPoint.x},${this._fromPoint.y
|
+ `L${x + this._fromPoint.x},${y + this._fromPoint.y} M${this._fromPoint.x},${this._fromPoint.y
|
||||||
} `
|
} `
|
||||||
+ `L${xp + this._fromPoint.x},${yp + this._fromPoint.y}`;
|
+ `L${xp + this._fromPoint.x},${yp + this._fromPoint.y}`;
|
||||||
this._native.setAttribute('d', path);
|
this._native.setAttribute('d', path);
|
||||||
|
@ -37,8 +37,8 @@ class CurvedLinePeer extends ElementPeer {
|
|||||||
const change = this._control1.x !== control.x || this._control1.y !== control.y;
|
const change = this._control1.x !== control.x || this._control1.y !== control.y;
|
||||||
if ($defined(control.x)) {
|
if ($defined(control.x)) {
|
||||||
this._control1 = control;
|
this._control1 = control;
|
||||||
this._control1.x = Number.parseInt(this._control1.x, 10);
|
this._control1.x = Number.parseFloat(this._control1.x, 10);
|
||||||
this._control1.y = Number.parseInt(this._control1.y, 10);
|
this._control1.y = Number.parseFloat(this._control1.y, 10);
|
||||||
}
|
}
|
||||||
if (change) {
|
if (change) {
|
||||||
this._updatePath();
|
this._updatePath();
|
||||||
@ -50,8 +50,8 @@ class CurvedLinePeer extends ElementPeer {
|
|||||||
const change = this._control2.x !== control.x || this._control2.y !== control.y;
|
const change = this._control2.x !== control.x || this._control2.y !== control.y;
|
||||||
if ($defined(control.x)) {
|
if ($defined(control.x)) {
|
||||||
this._control2 = control;
|
this._control2 = control;
|
||||||
this._control2.x = Number.parseInt(this._control2.x, 10);
|
this._control2.x = Number.parseFloat(this._control2.x, 10);
|
||||||
this._control2.y = Number.parseInt(this._control2.y, 10);
|
this._control2.y = Number.parseFloat(this._control2.y, 10);
|
||||||
}
|
}
|
||||||
if (change) this._updatePath();
|
if (change) this._updatePath();
|
||||||
}
|
}
|
||||||
@ -77,16 +77,16 @@ class CurvedLinePeer extends ElementPeer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setFrom(x1, y1) {
|
setFrom(x1, y1) {
|
||||||
const change = this._x1 !== parseInt(x1, 10) || this._y1 !== parseInt(y1, 10);
|
const change = this._x1 !== Number.parseFloat(x1, 10) || this._y1 !== Number.parseFloat(y1, 10);
|
||||||
this._x1 = Number.parseInt(x1, 10);
|
this._x1 = Number.parseFloat(x1, 10);
|
||||||
this._y1 = Number.parseInt(y1, 10);
|
this._y1 = Number.parseFloat(y1, 10);
|
||||||
if (change) this._updatePath();
|
if (change) this._updatePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
setTo(x2, y2) {
|
setTo(x2, y2) {
|
||||||
const change = this._x2 !== parseInt(x2, 10) || this._y2 !== parseInt(y2, 10);
|
const change = this._x2 !== Number.parseFloat(x2, 10) || this._y2 !== parseFloat(y2, 10);
|
||||||
this._x2 = Number.parseInt(x2, 10);
|
this._x2 = Number.parseFloat(x2, 10);
|
||||||
this._y2 = Number.parseInt(y2, 10);
|
this._y2 = Number.parseFloat(y2, 10);
|
||||||
if (change) this._updatePath();
|
if (change) this._updatePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,8 +196,8 @@ class CurvedLinePeer extends ElementPeer {
|
|||||||
const y2 = m * (x2 - tarPos.x) + tarPos.y;
|
const y2 = m * (x2 - tarPos.x) + tarPos.y;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
new Point(Number.toFixed(-srcPos.x + x1, 5), Number.toFixed(-srcPos.y + y1), 5),
|
new Point(-srcPos.x + x1, -srcPos.y + y1),
|
||||||
new Point(Number.toFixed(-tarPos.x + x2, 5), Number.toFixed(-tarPos.y + y2, 5)),
|
new Point(-tarPos.x + x2, -tarPos.y + y2),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,13 +120,13 @@ class ElementPeer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setSize(width, height) {
|
setSize(width, height) {
|
||||||
if ($defined(width) && this._size.width !== parseInt(width, 10)) {
|
if ($defined(width) && this._size.width !== Number.parseFloat(width, 10)) {
|
||||||
this._size.width = parseInt(width, 10);
|
this._size.width = Number.parseFloat(width, 10);
|
||||||
this._native.setAttribute('width', this._size.width);
|
this._native.setAttribute('width', this._size.width);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(height) && this._size.height !== parseInt(height, 10)) {
|
if ($defined(height) && this._size.height !== Number.parseFloat(height, 10)) {
|
||||||
this._size.height = parseInt(height, 10);
|
this._size.height = Number.parseFloat(height, 10);
|
||||||
this._native.setAttribute('height', this._size.height);
|
this._native.setAttribute('height', this._size.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ class Font {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getSize() {
|
getSize() {
|
||||||
return parseInt(this._size, 10);
|
return Number.parseInt(this._size, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
getStyle() {
|
getStyle() {
|
||||||
|
@ -132,11 +132,11 @@ class GroupPeer extends ElementPeer {
|
|||||||
setPosition(x, y) {
|
setPosition(x, y) {
|
||||||
const change = x !== this._position.x || y !== this._position.y;
|
const change = x !== this._position.x || y !== this._position.y;
|
||||||
if ($defined(x)) {
|
if ($defined(x)) {
|
||||||
this._position.x = parseInt(x, 10);
|
this._position.x = Number.parseFloat(x, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(y)) {
|
if ($defined(y)) {
|
||||||
this._position.y = parseInt(y, 10);
|
this._position.y = Number.parseFloat(y, 10);
|
||||||
}
|
}
|
||||||
if (change) {
|
if (change) {
|
||||||
this.updateTransform();
|
this.updateTransform();
|
||||||
|
@ -31,22 +31,23 @@ class RectPeer extends ElementPeer {
|
|||||||
|
|
||||||
setPosition(x, y) {
|
setPosition(x, y) {
|
||||||
if ($defined(x)) {
|
if ($defined(x)) {
|
||||||
this._native.setAttribute('x', parseInt(x, 10));
|
this._native.setAttribute('x', Number.parseFloat(x, 10));
|
||||||
}
|
}
|
||||||
if ($defined(y)) {
|
if ($defined(y)) {
|
||||||
this._native.setAttribute('y', parseInt(y, 10));
|
this._native.setAttribute('y', Number.parseFloat(y, 10));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getPosition() {
|
getPosition() {
|
||||||
const x = this._native.getAttribute('x');
|
const x = this._native.getAttribute('x');
|
||||||
const y = this._native.getAttribute('y');
|
const y = this._native.getAttribute('y');
|
||||||
return { x: parseInt(x, 10), y: parseInt(y, 10) };
|
return { x: Number.parseFloat(x, 10), y: Number.parseFloat(y, 10) };
|
||||||
}
|
}
|
||||||
|
|
||||||
setSize(width, height) {
|
setSize(width, height) {
|
||||||
super.setSize(width, height);
|
super.setSize(width, height);
|
||||||
const min = width < height ? width : height;
|
const min = width < height ? width : height;
|
||||||
|
|
||||||
if ($defined(this._arc)) {
|
if ($defined(this._arc)) {
|
||||||
// Transform percentages to SVG format.
|
// Transform percentages to SVG format.
|
||||||
const arc = (min / 2) * this._arc;
|
const arc = (min / 2) * this._arc;
|
||||||
|
@ -51,16 +51,17 @@ class WorkspacePeer extends ElementPeer {
|
|||||||
|
|
||||||
setCoordSize(width, height) {
|
setCoordSize(width, height) {
|
||||||
const viewBox = this._native.getAttribute('viewBox');
|
const viewBox = this._native.getAttribute('viewBox');
|
||||||
|
|
||||||
let coords = [0, 0, 0, 0];
|
let coords = [0, 0, 0, 0];
|
||||||
if (viewBox != null) {
|
if (viewBox != null) {
|
||||||
coords = viewBox.split(/ /);
|
coords = viewBox.split(/ /);
|
||||||
}
|
}
|
||||||
if ($defined(width)) {
|
if ($defined(width)) {
|
||||||
coords[2] = width;
|
coords[2] = width.toFixed(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($defined(height)) {
|
if ($defined(height)) {
|
||||||
coords[3] = height;
|
coords[3] = height.toFixed(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._native.setAttribute('viewBox', coords.join(' '));
|
this._native.setAttribute('viewBox', coords.join(' '));
|
||||||
|
@ -25,8 +25,8 @@ const TransformUtil = {
|
|||||||
const coordSize = current.getCoordSize();
|
const coordSize = current.getCoordSize();
|
||||||
const size = current.getSize();
|
const size = current.getSize();
|
||||||
|
|
||||||
width *= parseInt(size.width, 10) / coordSize.width;
|
width *= Number.parseFloat(size.width, 10) / coordSize.width;
|
||||||
height *= parseInt(size.height, 10) / coordSize.height;
|
height *= Number.parseFloat(size.height, 10) / coordSize.height;
|
||||||
current = current.getParent();
|
current = current.getParent();
|
||||||
}
|
}
|
||||||
return { width, height };
|
return { width, height };
|
||||||
|
Loading…
Reference in New Issue
Block a user