mostly-dom
Version:
A virtual-dom for TypeScript
44 lines • 1.77 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { BaseModule } from './BaseModule';
import { emptyVNode } from './emptyVNode';
export function createClassModule() {
return new ClassModule();
}
var ClassModule = /** @class */ (function (_super) {
__extends(ClassModule, _super);
function ClassModule() {
return _super !== null && _super.apply(this, arguments) || this;
}
ClassModule.prototype.create = function (vNode) {
updateClass(emptyVNode, vNode);
};
ClassModule.prototype.update = function (formerVNode, vNode) {
updateClass(formerVNode, vNode);
};
return ClassModule;
}(BaseModule));
function updateClass(formerVNode, vNode) {
var _a = formerVNode.props.class, formerClass = _a === void 0 ? {} : _a, formerElement = formerVNode.element;
var _b = vNode.props.class, klass = _b === void 0 ? {} : _b, element = vNode.element;
if (formerClass === klass)
return;
for (var name_1 in formerClass)
if (!klass[name_1])
formerElement.classList.remove(name_1);
for (var name_2 in klass)
if (klass[name_2] !== formerClass[name_2])
element.classList.toggle(name_2);
}
//# sourceMappingURL=class.js.map