171 lines
7.1 KiB
JavaScript
171 lines
7.1 KiB
JavaScript
|
"use strict";
|
||
|
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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||
|
return extendStatics(d, b);
|
||
|
};
|
||
|
return function (d, b) {
|
||
|
if (typeof b !== "function" && b !== null)
|
||
|
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||
|
extendStatics(d, b);
|
||
|
function __() { this.constructor = d; }
|
||
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||
|
};
|
||
|
})();
|
||
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.FlalignItem = exports.MultlineItem = void 0;
|
||
|
var BaseItems_js_1 = require("../base/BaseItems.js");
|
||
|
var ParseUtil_js_1 = __importDefault(require("../ParseUtil.js"));
|
||
|
var NodeUtil_js_1 = __importDefault(require("../NodeUtil.js"));
|
||
|
var TexError_js_1 = __importDefault(require("../TexError.js"));
|
||
|
var TexConstants_js_1 = require("../TexConstants.js");
|
||
|
var MultlineItem = (function (_super) {
|
||
|
__extends(MultlineItem, _super);
|
||
|
function MultlineItem(factory) {
|
||
|
var args = [];
|
||
|
for (var _i = 1; _i < arguments.length; _i++) {
|
||
|
args[_i - 1] = arguments[_i];
|
||
|
}
|
||
|
var _this = _super.call(this, factory) || this;
|
||
|
_this.factory.configuration.tags.start('multline', true, args[0]);
|
||
|
return _this;
|
||
|
}
|
||
|
Object.defineProperty(MultlineItem.prototype, "kind", {
|
||
|
get: function () {
|
||
|
return 'multline';
|
||
|
},
|
||
|
enumerable: false,
|
||
|
configurable: true
|
||
|
});
|
||
|
MultlineItem.prototype.EndEntry = function () {
|
||
|
if (this.table.length) {
|
||
|
ParseUtil_js_1.default.fixInitialMO(this.factory.configuration, this.nodes);
|
||
|
}
|
||
|
var shove = this.getProperty('shove');
|
||
|
var mtd = this.create('node', 'mtd', this.nodes, shove ? { columnalign: shove } : {});
|
||
|
this.setProperty('shove', null);
|
||
|
this.row.push(mtd);
|
||
|
this.Clear();
|
||
|
};
|
||
|
MultlineItem.prototype.EndRow = function () {
|
||
|
if (this.row.length !== 1) {
|
||
|
throw new TexError_js_1.default('MultlineRowsOneCol', 'The rows within the %1 environment must have exactly one column', 'multline');
|
||
|
}
|
||
|
var row = this.create('node', 'mtr', this.row);
|
||
|
this.table.push(row);
|
||
|
this.row = [];
|
||
|
};
|
||
|
MultlineItem.prototype.EndTable = function () {
|
||
|
_super.prototype.EndTable.call(this);
|
||
|
if (this.table.length) {
|
||
|
var m = this.table.length - 1, label = -1;
|
||
|
if (!NodeUtil_js_1.default.getAttribute(NodeUtil_js_1.default.getChildren(this.table[0])[0], 'columnalign')) {
|
||
|
NodeUtil_js_1.default.setAttribute(NodeUtil_js_1.default.getChildren(this.table[0])[0], 'columnalign', TexConstants_js_1.TexConstant.Align.LEFT);
|
||
|
}
|
||
|
if (!NodeUtil_js_1.default.getAttribute(NodeUtil_js_1.default.getChildren(this.table[m])[0], 'columnalign')) {
|
||
|
NodeUtil_js_1.default.setAttribute(NodeUtil_js_1.default.getChildren(this.table[m])[0], 'columnalign', TexConstants_js_1.TexConstant.Align.RIGHT);
|
||
|
}
|
||
|
var tag = this.factory.configuration.tags.getTag();
|
||
|
if (tag) {
|
||
|
label = (this.arraydef.side === TexConstants_js_1.TexConstant.Align.LEFT ? 0 : this.table.length - 1);
|
||
|
var mtr = this.table[label];
|
||
|
var mlabel = this.create('node', 'mlabeledtr', [tag].concat(NodeUtil_js_1.default.getChildren(mtr)));
|
||
|
NodeUtil_js_1.default.copyAttributes(mtr, mlabel);
|
||
|
this.table[label] = mlabel;
|
||
|
}
|
||
|
}
|
||
|
this.factory.configuration.tags.end();
|
||
|
};
|
||
|
return MultlineItem;
|
||
|
}(BaseItems_js_1.ArrayItem));
|
||
|
exports.MultlineItem = MultlineItem;
|
||
|
var FlalignItem = (function (_super) {
|
||
|
__extends(FlalignItem, _super);
|
||
|
function FlalignItem(factory, name, numbered, padded, center) {
|
||
|
var _this = _super.call(this, factory) || this;
|
||
|
_this.name = name;
|
||
|
_this.numbered = numbered;
|
||
|
_this.padded = padded;
|
||
|
_this.center = center;
|
||
|
_this.factory.configuration.tags.start(name, numbered, numbered);
|
||
|
return _this;
|
||
|
}
|
||
|
Object.defineProperty(FlalignItem.prototype, "kind", {
|
||
|
get: function () {
|
||
|
return 'flalign';
|
||
|
},
|
||
|
enumerable: false,
|
||
|
configurable: true
|
||
|
});
|
||
|
FlalignItem.prototype.EndEntry = function () {
|
||
|
_super.prototype.EndEntry.call(this);
|
||
|
var n = this.getProperty('xalignat');
|
||
|
if (!n)
|
||
|
return;
|
||
|
if (this.row.length > n) {
|
||
|
throw new TexError_js_1.default('XalignOverflow', 'Extra %1 in row of %2', '&', this.name);
|
||
|
}
|
||
|
};
|
||
|
FlalignItem.prototype.EndRow = function () {
|
||
|
var cell;
|
||
|
var row = this.row;
|
||
|
var n = this.getProperty('xalignat');
|
||
|
while (row.length < n) {
|
||
|
row.push(this.create('node', 'mtd'));
|
||
|
}
|
||
|
this.row = [];
|
||
|
if (this.padded) {
|
||
|
this.row.push(this.create('node', 'mtd'));
|
||
|
}
|
||
|
while ((cell = row.shift())) {
|
||
|
this.row.push(cell);
|
||
|
cell = row.shift();
|
||
|
if (cell)
|
||
|
this.row.push(cell);
|
||
|
if (row.length || this.padded) {
|
||
|
this.row.push(this.create('node', 'mtd'));
|
||
|
}
|
||
|
}
|
||
|
if (this.row.length > this.maxrow) {
|
||
|
this.maxrow = this.row.length;
|
||
|
}
|
||
|
_super.prototype.EndRow.call(this);
|
||
|
var mtr = this.table[this.table.length - 1];
|
||
|
if (this.getProperty('zeroWidthLabel') && mtr.isKind('mlabeledtr')) {
|
||
|
var mtd = NodeUtil_js_1.default.getChildren(mtr)[0];
|
||
|
var side = this.factory.configuration.options['tagSide'];
|
||
|
var def = __assign({ width: 0 }, (side === 'right' ? { lspace: '-1width' } : {}));
|
||
|
var mpadded = this.create('node', 'mpadded', NodeUtil_js_1.default.getChildren(mtd), def);
|
||
|
mtd.setChildren([mpadded]);
|
||
|
}
|
||
|
};
|
||
|
FlalignItem.prototype.EndTable = function () {
|
||
|
_super.prototype.EndTable.call(this);
|
||
|
if (this.center) {
|
||
|
if (this.maxrow <= 2) {
|
||
|
var def = this.arraydef;
|
||
|
delete def.width;
|
||
|
delete this.global.indentalign;
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
return FlalignItem;
|
||
|
}(BaseItems_js_1.EqnArrayItem));
|
||
|
exports.FlalignItem = FlalignItem;
|
||
|
//# sourceMappingURL=AmsItems.js.map
|