deploy: static pages
This commit is contained in:
+94
@@ -0,0 +1,94 @@
|
||||
import env from './env.js';
|
||||
import { buildTransformer } from './fourPointsTransform.js';
|
||||
var EVENT_SAVED_PROP = '___zrEVENTSAVED';
|
||||
var _calcOut = [];
|
||||
export function transformLocalCoord(out, elFrom, elTarget, inX, inY) {
|
||||
return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)
|
||||
&& transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);
|
||||
}
|
||||
export function transformCoordWithViewport(out, el, inX, inY, inverse) {
|
||||
if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {
|
||||
var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});
|
||||
var markers = prepareCoordMarkers(el, saved);
|
||||
var transformer = preparePointerTransformer(markers, saved, inverse);
|
||||
if (transformer) {
|
||||
transformer(out, inX, inY);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function prepareCoordMarkers(el, saved) {
|
||||
var markers = saved.markers;
|
||||
if (markers) {
|
||||
return markers;
|
||||
}
|
||||
markers = saved.markers = [];
|
||||
var propLR = ['left', 'right'];
|
||||
var propTB = ['top', 'bottom'];
|
||||
for (var i = 0; i < 4; i++) {
|
||||
var marker = document.createElement('div');
|
||||
var stl = marker.style;
|
||||
var idxLR = i % 2;
|
||||
var idxTB = (i >> 1) % 2;
|
||||
stl.cssText = [
|
||||
'position: absolute',
|
||||
'visibility: hidden',
|
||||
'padding: 0',
|
||||
'margin: 0',
|
||||
'border-width: 0',
|
||||
'user-select: none',
|
||||
'width:0',
|
||||
'height:0',
|
||||
propLR[idxLR] + ':0',
|
||||
propTB[idxTB] + ':0',
|
||||
propLR[1 - idxLR] + ':auto',
|
||||
propTB[1 - idxTB] + ':auto',
|
||||
''
|
||||
].join('!important;');
|
||||
el.appendChild(marker);
|
||||
markers.push(marker);
|
||||
}
|
||||
return markers;
|
||||
}
|
||||
function preparePointerTransformer(markers, saved, inverse) {
|
||||
var transformerName = inverse ? 'invTrans' : 'trans';
|
||||
var transformer = saved[transformerName];
|
||||
var oldSrcCoords = saved.srcCoords;
|
||||
var srcCoords = [];
|
||||
var destCoords = [];
|
||||
var oldCoordTheSame = true;
|
||||
for (var i = 0; i < 4; i++) {
|
||||
var rect = markers[i].getBoundingClientRect();
|
||||
var ii = 2 * i;
|
||||
var x = rect.left;
|
||||
var y = rect.top;
|
||||
srcCoords.push(x, y);
|
||||
oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];
|
||||
destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);
|
||||
}
|
||||
return (oldCoordTheSame && transformer)
|
||||
? transformer
|
||||
: (saved.srcCoords = srcCoords,
|
||||
saved[transformerName] = inverse
|
||||
? buildTransformer(destCoords, srcCoords)
|
||||
: buildTransformer(srcCoords, destCoords));
|
||||
}
|
||||
export function isCanvasEl(el) {
|
||||
return el.nodeName.toUpperCase() === 'CANVAS';
|
||||
}
|
||||
var replaceReg = /([&<>"'])/g;
|
||||
var replaceMap = {
|
||||
'&': '&',
|
||||
'<': '<',
|
||||
'>': '>',
|
||||
'"': '"',
|
||||
'\'': '''
|
||||
};
|
||||
export function encodeHTML(source) {
|
||||
return source == null
|
||||
? ''
|
||||
: (source + '').replace(replaceReg, function (str, c) {
|
||||
return replaceMap[c];
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user