@saber2pr/react
Version:
react in Typescript.
73 lines (72 loc) • 2.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/*
* @Author: saber2pr
* @Date: 2019-12-06 19:30:24
* @Last Modified by: saber2pr
* @Last Modified time: 2019-12-10 17:10:12
*/
var HostConfig;
(function (HostConfig) {
function createElement(tag) {
return document.createElement(tag);
}
HostConfig.createElement = createElement;
function createDocumentFragment() {
return document.createDocumentFragment();
}
HostConfig.createDocumentFragment = createDocumentFragment;
function createTextNode(data) {
return document.createTextNode(String(data));
}
HostConfig.createTextNode = createTextNode;
function insertBefore(parent, newChild, refChild) {
parent.insertBefore(newChild, refChild);
}
HostConfig.insertBefore = insertBefore;
function appendChild(parent) {
var nodes = [];
for (var _i = 1; _i < arguments.length; _i++) {
nodes[_i - 1] = arguments[_i];
}
parent.append.apply(parent, nodes);
}
HostConfig.appendChild = appendChild;
function removeSelf(node) {
node.remove();
}
HostConfig.removeSelf = removeSelf;
function removeAllChild(node) {
node.innerHTML = "";
}
HostConfig.removeAllChild = removeAllChild;
function updateProps(node, newProps, oldProps) {
Object.entries(newProps).forEach(function (_a) {
var k = _a[0], v = _a[1];
if (k === "style")
return;
if (oldProps[k] === v)
return;
if (k.startsWith("on")) {
k = k.toLowerCase();
}
if (k === "dangerouslySetInnerHTML") {
k = "innerHTML";
v = v.__html;
}
node[k] = v;
});
if (newProps["style"]) {
var newStyle = newProps["style"];
var oldStyle_1 = oldProps["style"] || {};
Object.entries(newStyle).forEach(function (_a) {
var k = _a[0], v = _a[1];
if (oldStyle_1[k] === v)
return;
node.style[k] = v;
});
}
}
HostConfig.updateProps = updateProps;
})(HostConfig || (HostConfig = {}));
exports.HostConfig = HostConfig;