UNPKG

@antv/data-wizard

Version:
79 lines (78 loc) 4.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var utils_1 = require("../utils"); var utils_2 = require("./utils"); /** Base data structure */ var BaseFrame = /** @class */ (function () { function BaseFrame(data, extra) { var _a, _b, _c, _d, _e; this.axes = [[]]; this.data = []; utils_1.assert(!extra || utils_1.isObject(extra), 'If extra exists, it must be an object.'); /** 1D: basic type */ if (utils_1.isBasicType(data)) { // generate indexes if (extra === null || extra === void 0 ? void 0 : extra.indexes) { this.setAxis(0, extra === null || extra === void 0 ? void 0 : extra.indexes); this.data = Array(extra === null || extra === void 0 ? void 0 : extra.indexes.length).fill(utils_2.convertDataType(utils_2.fillMissingValue(data, extra === null || extra === void 0 ? void 0 : extra.fillValue), (_a = extra === null || extra === void 0 ? void 0 : extra.columnTypes) === null || _a === void 0 ? void 0 : _a[0])); } else { this.data = [utils_2.convertDataType(utils_2.fillMissingValue(data, extra === null || extra === void 0 ? void 0 : extra.fillValue), (_b = extra === null || extra === void 0 ? void 0 : extra.columnTypes) === null || _b === void 0 ? void 0 : _b[0])]; this.setAxis(0, [0]); } } else if (utils_1.isArray(data)) { /** 1D: array */ var legal = true; for (var i = 0; i < data.length; i += 1) { var datum = data[i]; // For DataFrame, as long as any datum in data is basic type, it's a 1D array if (!utils_1.isBasicType(datum)) { legal = false; break; } } this.setAxis(0, utils_2.generateArrayIndex(data, extra === null || extra === void 0 ? void 0 : extra.indexes)); if (legal) { if (extra === null || extra === void 0 ? void 0 : extra.indexes) { utils_1.assert(((_c = extra === null || extra === void 0 ? void 0 : extra.indexes) === null || _c === void 0 ? void 0 : _c.length) === data.length, "Index length is " + (extra === null || extra === void 0 ? void 0 : extra.indexes.length) + ", but data size " + data.length); this.setAxis(0, extra === null || extra === void 0 ? void 0 : extra.indexes); } this.data = (extra === null || extra === void 0 ? void 0 : extra.fillValue) ? data.map(function (datum) { return utils_2.fillMissingValue(datum, extra === null || extra === void 0 ? void 0 : extra.fillValue); }) : data; if ((_d = extra === null || extra === void 0 ? void 0 : extra.columnTypes) === null || _d === void 0 ? void 0 : _d.length) { for (var i = 0; i < this.data.length; i += 1) { this.data[i] = utils_2.convertDataType(this.data[i], (_e = extra === null || extra === void 0 ? void 0 : extra.columnTypes) === null || _e === void 0 ? void 0 : _e[0]); } } } } } Object.defineProperty(BaseFrame.prototype, "indexes", { get: function () { return this.getAxis(0); }, enumerable: false, configurable: true }); Object.defineProperty(BaseFrame.prototype, "columns", { get: function () { return this.getAxis(1); }, enumerable: false, configurable: true }); BaseFrame.prototype.getAxis = function (axis) { return this.axes[axis]; }; /** * Set axis. Only the 0 and 1 are currently supported. * @param axis * @param labels */ BaseFrame.prototype.setAxis = function (axis, values) { utils_1.assert(utils_1.isArray(values), 'Index or columns must be Axis array.'); this.axes[axis] = values; }; return BaseFrame; }()); exports.default = BaseFrame;