@antv/x6
Version:
JavaScript diagramming library that uses SVG and HTML for rendering.
52 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createClass = exports.inherit = void 0;
var 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];
}
}
};
/**
* @see https://github.com/microsoft/TypeScript/blob/5c85febb0ce9d6088cbe9b09cb42f73f9ee8ea05/src/compiler/transformers/es2015.ts#L4309
*/
function inherit(cls, base) {
extendStatics(cls, base);
function tmp() {
this.constructor = cls;
}
cls.prototype =
base === null
? Object.create(base)
: ((tmp.prototype = base.prototype), new tmp());
}
exports.inherit = inherit;
var A = /** @class */ (function () {
function A() {
}
return A;
}());
var isNativeClass = /^\s*class\s+/.test("" + A) || /^\s*class\s*\{/.test("" + /** @class */ (function () {
function class_1() {
}
return class_1;
}()));
/**
* Extends class with specified class name.
*/
function createClass(className, base) {
// tslint:disable-next-line
var cls = new Function('base', "\n return " + isNativeClass + "\n ? class " + className + " extends base { }\n : function " + className + "() { return base.apply(this, arguments) }\n ")(base);
if (!isNativeClass) {
inherit(cls, base);
}
return cls;
}
exports.createClass = createClass;
//# sourceMappingURL=inherit.js.map