UNPKG

@qn-pandora/pandora-visualization

Version:

Pandora 通用可视化库

81 lines (80 loc) 3.1 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; function applySingleBasePropsMixins(derivedCtorProto, baseCtorProto) { if (baseCtorProto.constructor === Object) { return; } applySingleBasePropsMixins(derivedCtorProto, baseCtorProto.__proto__); Object.getOwnPropertyNames(baseCtorProto).forEach(function (name) { if (name !== 'constructor') { Object.defineProperty(derivedCtorProto, name, Object.getOwnPropertyDescriptor(baseCtorProto, name) || baseCtorProto[name]); } }); } /** * 通过mixins的方式实现继承多个基类 * @param derivedCtor 子类构造函数 * @param baseCtors 基类构造函数数组 */ function applyMixins(derivedCtor, baseCtors) { var derivedCtorProto = derivedCtor.prototype; baseCtors.forEach(function (baseCtor) { var baseCtorProto = baseCtor.prototype; applySingleBasePropsMixins(derivedCtorProto, baseCtorProto); Object.getOwnPropertySymbols(baseCtorProto).forEach(function (symbol) { derivedCtorProto[symbol] = Array.isArray(baseCtorProto[symbol]) ? __spread(derivedCtorProto[symbol], baseCtorProto[symbol]) : __assign(__assign({}, derivedCtorProto[symbol]), baseCtorProto[symbol]); }); // Object.getOwnPropertyNames(baseCtor).forEach(name => { // derivedCtor[name] = baseCtor(name) // }) }); } export default function doubleExtends(baseA, baseB) { function C() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var baseAFunc = baseA; var baseBFunc = baseB; this['__mobxDecorators'] = {}; var a = new (baseAFunc.bind.apply(baseAFunc, __spread([void 0], args)))(); var b = new (baseBFunc.bind.apply(baseBFunc, __spread([void 0], args)))(); this['__mobxDecorators'] = __assign(__assign({}, a['__mobxDecorators']), b['__mobxDecorators']); baseAFunc.apply(this, args); baseBFunc.apply(this, args); } applyMixins(C, [baseA, baseB]); return C; }