cybench-k3-transcript-runs / assets /xypic-DrMJn58R.js
ajay-citadel's picture
Upload folder using huggingface_hub
55cac7f verified
Raw
History Blame Contribute Delete
481 kB
//#region ../../node_modules/.pnpm/mathxyjax3@0.8.3/node_modules/mathxyjax3/dist/xypic-DrMJn58R.js
(function() {
var e = {
401: function(e, t) {
MathJax._.components.global.isObject, MathJax._.components.global.combineConfig, t.PV = MathJax._.components.global.combineDefaults, MathJax._.components.global.combineWithMathJax, t.NI = MathJax._.components.global.MathJax;
},
771: function(e, t) {
t.v = MathJax._.core.MmlTree.MML.MML;
},
376: function(e, t) {
t.Ls = MathJax._.core.MmlTree.MmlNode.TEXCLASS, MathJax._.core.MmlTree.MmlNode.TEXCLASSNAMES, MathJax._.core.MmlTree.MmlNode.indentAttributes, t.oI = MathJax._.core.MmlTree.MmlNode.AbstractMmlNode, MathJax._.core.MmlTree.MmlNode.AbstractMmlTokenNode, MathJax._.core.MmlTree.MmlNode.AbstractMmlLayoutNode, MathJax._.core.MmlTree.MmlNode.AbstractMmlBaseNode, MathJax._.core.MmlTree.MmlNode.AbstractMmlEmptyNode, MathJax._.core.MmlTree.MmlNode.TextNode, MathJax._.core.MmlTree.MmlNode.XMLNode;
},
226: function(e, t) {
MathJax._.util.BBox.BBoxStyleAdjust, t.bK = MathJax._.util.BBox.BBox;
},
238: function(e, t) {
t.VK = MathJax._.input.tex.Configuration.Configuration, MathJax._.input.tex.Configuration.ConfigurationHandler, MathJax._.input.tex.Configuration.ParserConfiguration;
},
953: function(e, t) {
t.Z = MathJax._.input.tex.ParseMethods.default;
},
166: function(e, t) {
MathJax._.input.tex.SymbolMap.AbstractSymbolMap, MathJax._.input.tex.SymbolMap.RegExpMap, MathJax._.input.tex.SymbolMap.AbstractParseMap, MathJax._.input.tex.SymbolMap.CharacterMap, MathJax._.input.tex.SymbolMap.DelimiterMap, MathJax._.input.tex.SymbolMap.MacroMap, t.QQ = MathJax._.input.tex.SymbolMap.CommandMap, t.QM = MathJax._.input.tex.SymbolMap.EnvironmentMap;
},
847: function(e, t) {
t.Z = MathJax._.input.tex.TexError.default;
},
789: function(e, t) {
t.Z = MathJax._.input.tex.TexParser.default;
},
361: function(e, t) {
t.Z = MathJax._.input.tex.base.BaseMethods.default;
},
81: function(e, t) {
MathJax._.output.chtml.Wrapper.FONTSIZE, MathJax._.output.chtml.Wrapper.SPACE, t.wO = MathJax._.output.chtml.Wrapper.CHTMLWrapper;
},
748: function(e, t) {
t.w = MathJax._.output.chtml.Wrappers_ts.CHTMLWrappers;
},
952: function(e, t) {
t.y = MathJax._.output.svg.Wrapper.SVGWrapper;
},
84: function(e, t) {
t.N = MathJax._.output.svg.Wrappers_ts.SVGWrappers;
}
}, t = {};
function n(r) {
var i = t[r];
if (i !== void 0) return i.exports;
var a = t[r] = { exports: {} };
return e[r](a, a.exports, n), a.exports;
}
(function() {
var e = n(401);
(0, e.PV)(e.NI._, `output`, {
common: { Wrapper: {} },
chtml: {
Wrapper: {},
Wrappers_ts: {}
},
svg: {
Wrapper: {},
Wrappers_ts: {}
}
});
var t = n(238), r = n(166), i = n(361), a = n(953), o = n(789), s = n(847);
function c(e, t) {
return console.error(e, t), new s.Z(e, t);
}
var l = {
whiteSpaceRegex: /^(\s+|%[^\r\n]*(\r\n|\r|\n)?)+/,
lengthResolution: 128,
interpolationResolution: 5,
machinePrecision: 1e-12
};
function u(e) {
return u = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, u(e);
}
function d(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function f(e, t, n) {
return t && d(e.prototype, t), n && d(e, n), e;
}
function p(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && m(e, t);
}
function m(e, t) {
return m = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, m(e, t);
}
function h(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = _(e);
if (t) {
var i = _(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return g(this, n);
};
}
function g(e, t) {
if (t && (u(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return function(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}(e);
}
function _(e) {
return _ = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, _(e);
}
function v(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
var y = function e() {
v(this, e);
}, b = function(e) {
p(n, e);
var t = h(n);
function n(e) {
var r;
return v(this, n), (r = t.call(this)).get = e, r;
}
return f(n, [
{
key: `isEmpty`,
get: function() {
return !1;
}
},
{
key: `isDefined`,
get: function() {
return !0;
}
},
{
key: `getOrElse`,
value: function(e) {
return this.get;
}
},
{
key: `flatMap`,
value: function(e) {
return e(this.get);
}
},
{
key: `map`,
value: function(e) {
return new n(e(this.get));
}
},
{
key: `foreach`,
value: function(e) {
e(this.get);
}
},
{
key: `toString`,
value: function() {
return `Some(` + this.get + `)`;
}
}
], [{
key: `unapply`,
value: function(e) {
return new n(e.get);
}
}]), n;
}(y), x = function(e) {
p(n, e);
var t = h(n);
function n() {
return v(this, n), t.call(this);
}
return f(n, [
{
key: `isEmpty`,
get: function() {
return !0;
}
},
{
key: `isDefined`,
get: function() {
return !1;
}
},
{
key: `getOrElse`,
value: function(e) {
return e;
}
},
{
key: `flatMap`,
value: function(e) {
return this;
}
},
{
key: `foreach`,
value: function(e) {}
},
{
key: `map`,
value: function(e) {
return this;
}
},
{
key: `toString`,
value: function() {
return `None`;
}
}
], [{
key: `unapply`,
value: function(e) {
return new b(e);
}
}]), n;
}(y);
function S(e) {
return S = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, S(e);
}
function C(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function w(e, t, n) {
return t && C(e.prototype, t), n && C(e, n), e;
}
function T(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && E(e, t);
}
function E(e, t) {
return E = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, E(e, t);
}
function D(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = te(e);
if (t) {
var i = te(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return ee(this, n);
};
}
function ee(e, t) {
if (t && (S(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return function(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}(e);
}
function te(e) {
return te = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, te(e);
}
function ne(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
y.Some = b, y.None = x, y.empty = new x();
var O = function e() {
ne(this, e);
}, re = function(e) {
T(n, e);
var t = D(n);
function n(e, r) {
var i;
return ne(this, n), (i = t.call(this)).head = e, i.tail = r, i;
}
return w(n, [
{
key: `isEmpty`,
get: function() {
return !1;
}
},
{
key: `at`,
value: function(e) {
if (e < 0 || e >= this.length()) throw Error(`no such element at ` + e + `. index must be lower than ` + this.length() + `.`);
for (var t = this, n = 0; n < e; n++) t = t.tail;
return t.head;
}
},
{
key: `length`,
value: function() {
for (var e = this, t = 0; !e.isEmpty;) t++, e = e.tail;
return t;
}
},
{
key: `prepend`,
value: function(e) {
return new n(e, this);
}
},
{
key: `append`,
value: function(e) {
var t = new n(e, O.empty);
return this.reverse().foreach((function(e) {
t = new n(e, t);
})), t;
}
},
{
key: `concat`,
value: function(e) {
var t = e;
return this.reverse().foreach((function(e) {
t = new n(e, t);
})), t;
}
},
{
key: `foldLeft`,
value: function(e, t) {
var n, r;
for (n = t(e, this.head), r = this.tail; !r.isEmpty;) n = t(n, r.head), r = r.tail;
return n;
}
},
{
key: `foldRight`,
value: function(e, t) {
return this.tail.isEmpty ? t(this.head, e) : t(this.head, this.tail.foldRight(e, t));
}
},
{
key: `map`,
value: function(e) {
return new n(e(this.head), this.tail.map(e));
}
},
{
key: `flatMap`,
value: function(e) {
return e(this.head).concat(this.tail.flatMap(e));
}
},
{
key: `foreach`,
value: function(e) {
for (var t = this; !t.isEmpty;) e(t.head), t = t.tail;
}
},
{
key: `reverse`,
value: function() {
var e = O.empty;
return this.foreach((function(t) {
e = new n(t, e);
})), e;
}
},
{
key: `mkString`,
value: function() {
var e, t, r, i, a;
switch (arguments.length) {
case 0:
e = t = r = ``;
break;
case 1:
t = arguments[0], e = r = ``;
break;
case 2:
e = arguments[0], t = arguments[1], r = ``;
break;
default: e = arguments[0], t = arguments[1], r = arguments[2];
}
for (i = e + this.head.toString(), a = this.tail; a instanceof n;) i += t + a.head.toString(), a = a.tail;
return i += r;
}
},
{
key: `toString`,
value: function() {
return this.mkString(`[`, `, `, `]`);
}
}
], [{
key: `unapply`,
value: function(e) {
return new y.Some([e.head, e.tail]);
}
}]), n;
}(O);
O.Cons = re;
var ie = function(e) {
T(n, e);
var t = D(n);
function n() {
return ne(this, n), t.call(this);
}
return w(n, [
{
key: `isEmpty`,
get: function() {
return !0;
}
},
{
key: `at`,
value: function(e) {
throw Error(`cannot get element from an empty list.`);
}
},
{
key: `length`,
value: function() {
return 0;
}
},
{
key: `prepend`,
value: function(e) {
return new re(e, O.empty);
}
},
{
key: `append`,
value: function(e) {
return new re(e, O.empty);
}
},
{
key: `concat`,
value: function(e) {
return e;
}
},
{
key: `foldLeft`,
value: function(e, t) {
return e;
}
},
{
key: `foldRight`,
value: function(e, t) {
return e;
}
},
{
key: `flatMap`,
value: function(e) {
return this;
}
},
{
key: `map`,
value: function(e) {
return this;
}
},
{
key: `foreach`,
value: function(e) {}
},
{
key: `reverse`,
value: function() {
return this;
}
},
{
key: `mkString`,
value: function() {
switch (arguments.length) {
case 0:
case 1: return ``;
case 2: return arguments[0];
default: return arguments[0] + arguments[2];
}
}
},
{
key: `toString`,
value: function() {
return `[]`;
}
}
], [{
key: `unapply`,
value: function(e) {
return new y.Some(e);
}
}]), n;
}(O);
function ae(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
O.Nil = ie, O.empty = new ie(), O.fromArray = function(e) {
var t, n;
for (t = O.empty, n = e.length - 1; n >= 0;) t = new re(e[n], t), --n;
return t;
};
var oe = function() {
function e(t, n) {
(function(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
})(this, e), this.head = t, this.tail = n;
}
var t, n, r;
return t = e, r = [{
key: `unapply`,
value: function(e) {
return new Option.Some([e.head, e.tail]);
}
}], (n = [{
key: `toString`,
value: function() {
return `(` + this.head + `~` + this.tail + `)`;
}
}]) && ae(t.prototype, n), r && ae(t, r), e;
}();
function se(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function ce(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function le(e, t, n) {
return t && ce(e.prototype, t), n && ce(e, n), e;
}
var ue = function() {
function e() {
se(this, e), this.cases = [];
}
return le(e, [{
key: `Case`,
value: function(e, t) {
return this.cases.push([e, t]), this;
}
}, {
key: `match`,
value: function(e) {
var t, n, r, i;
for (t = 0, n = this.cases.length; t < n;) {
if (e instanceof (r = this.cases[t][0]) && (i = r.unapply(e)).isDefined) return this.cases[t][1](i.get);
t += 1;
}
throw new de(e);
}
}]), e;
}(), de = function() {
function e(t) {
se(this, e), this.obj = t;
}
return le(e, [{
key: `toString`,
value: function() {
return `MatchError(` + this.obj + `)`;
}
}]), e;
}();
function fe(e) {
return fe = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, fe(e);
}
function pe(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && me(e, t);
}
function me(e, t) {
return me = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, me(e, t);
}
function he(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = _e(e);
if (t) {
var i = _e(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return ge(this, n);
};
}
function ge(e, t) {
if (t && (fe(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return function(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}(e);
}
function _e(e) {
return _e = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, _e(e);
}
function ve(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function ye(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function be(e, t, n) {
return t && ye(e.prototype, t), n && ye(e, n), e;
}
var xe = function() {
function e(t, n) {
ve(this, e), this.source = t, this.offset = n === void 0 ? 0 : n, this._index = null, this._line = null;
}
return be(e, [
{
key: `index`,
value: function() {
if (this._index !== null) return this._index;
this._index = [], this._index.push(0);
for (var e = 0; e < this.source.length;) this.source.charAt(e) === `
` && this._index.push(e + 1), e += 1;
return this._index.push(this.source.length), this._index;
}
},
{
key: `line`,
value: function() {
var e, t, n;
if (this._line !== null) return this._line;
for (e = 0, t = this.index().length - 1; e + 1 < t;) n = t + e >> 1, this.offset < this.index()[n] ? t = n : e = n;
return this._line = e + 1, this._line;
}
},
{
key: `column`,
value: function() {
return this.offset - this.index()[this.line() - 1] + 1;
}
},
{
key: `lineContents`,
value: function() {
var e, t;
return e = this.index(), t = this.line(), this.source.substring(e[t - 1], e[t]);
}
},
{
key: `toString`,
value: function() {
return this.line().toString() + `.` + this.column();
}
},
{
key: `longString`,
value: function() {
var e, t;
for (e = this.lineContents() + `
`, t = 0; t < this.column();) this.lineContents().charAt(t) === ` ` ? e += ` ` : e += ` `, t += 1;
return e += `^`;
}
},
{
key: `isLessThan`,
value: function(t) {
return t instanceof e ? this.offset < t.offset : this.line() < t.line() || this.line() === t.line() && this.column() < t.column();
}
}
]), e;
}(), Se = function() {
function e(t, n, r) {
ve(this, e), this.source = t, this.offset = n, this.context = r;
}
return be(e, [
{
key: `first`,
value: function() {
return this.offset < this.source.length ? this.source.charAt(this.offset) : e.EofCh;
}
},
{
key: `rest`,
value: function() {
return this.offset < this.source.length ? new e(this.source, this.offset + 1, this.context) : this;
}
},
{
key: `pos`,
value: function() {
return new xe(this.source, this.offset);
}
},
{
key: `atEnd`,
value: function() {
return this.offset >= this.source.length;
}
},
{
key: `drop`,
value: function(e) {
var t, n;
for (t = this, n = e; n > 0;) t = t.rest(), --n;
return t;
}
}
]), e;
}();
Se.EofCh = ``;
var k = function() {
function e() {
ve(this, e);
}
return be(e, null, [
{
key: `parse`,
value: function(e, t) {
return e.apply(t);
}
},
{
key: `parseAll`,
value: function(t, n) {
return t.andl((function() {
return e.eos();
})).apply(n);
}
},
{
key: `parseString`,
value: function(t, n) {
var r = new Se(n, 0, { lastNoSuccess: void 0 });
return e.parse(t, r);
}
},
{
key: `parseAllString`,
value: function(t, n) {
var r = new Se(n, 0, { lastNoSuccess: void 0 });
return e.parseAll(t, r);
}
},
{
key: `_handleWhiteSpace`,
value: function(e) {
var t = e.context.whiteSpaceRegex, n = e.source, r = e.offset, i = t.exec(n.substring(r, n.length));
return i === null ? r : r + i[0].length;
}
},
{
key: `literal`,
value: function(t) {
return new Oe((function(n) {
var r, i, a, o, s, c;
for (r = n.source, i = n.offset, o = 0, s = a = e._handleWhiteSpace(n); o < t.length && s < r.length && t.charAt(o) === r.charAt(s);) o += 1, s += 1;
return o === t.length ? new we(t, n.drop(s - i)) : (c = a === r.length ? `end of source` : "`" + r.charAt(a) + `'`, new Ee("`" + t + `' expected but ` + c + ` found`, n.drop(a - i)));
}));
}
},
{
key: `regex`,
value: function(e) {
if (e.toString().substring(0, 2) !== `/^`) throw "regex must start with `^' but " + e;
return new Oe((function(t) {
var n, r, i, a;
return n = t.source, r = t.offset, (i = e.exec(n.substring(r, n.length))) === null ? (a = r === n.length ? `end of source` : "`" + n.charAt(r) + `'`, new Ee(`string matching regex ` + e + ` expected but ` + a + ` found`, t)) : new we(i[0], t.drop(i[0].length));
}));
}
},
{
key: `regexLiteral`,
value: function(t) {
if (t.toString().substring(0, 2) !== `/^`) throw "regex must start with `^' but " + t;
return new Oe((function(n) {
var r, i, a, o, s;
return r = n.source, i = n.offset, a = e._handleWhiteSpace(n), (o = t.exec(r.substring(a, r.length))) === null ? (s = a === r.length ? `end of source` : "`" + r.charAt(a) + `'`, new Ee(`string matching regex ` + t + ` expected but ` + s + ` found`, n.drop(a - i))) : new we(o[0], n.drop(a + o[0].length - i));
}));
}
},
{
key: `eos`,
value: function() {
return new Oe((function(t) {
var n, r;
return n = t.source, t.offset, r = e._handleWhiteSpace(t), n.length === r ? new we(``, t) : new Ee("end of source expected but `" + n.charAt(r) + `' found`, t);
}));
}
},
{
key: `commit`,
value: function(e) {
return new Oe((function(t) {
var n = e()(t);
return new ue().Case(we, (function(e) {
return n;
})).Case(De, (function(e) {
return n;
})).Case(Ee, (function(e) {
return new De(e[0], e[1]);
})).match(n);
}));
}
},
{
key: `elem`,
value: function(t) {
return e.accept(t).named(`"` + t + `"`);
}
},
{
key: `accept`,
value: function(t) {
return e.acceptIf((function(e) {
return e === t;
}), (function(e) {
return "`" + t + "' expected but `" + e + `' found`;
}));
}
},
{
key: `acceptIf`,
value: function(e, t) {
return new Oe((function(n) {
return e(n.first()) ? new we(n.first(), n.rest()) : new Ee(t(n.first()), n);
}));
}
},
{
key: `failure`,
value: function(e) {
return new Oe((function(t) {
return new Ee(e, t);
}));
}
},
{
key: `err`,
value: function(e) {
return new Oe((function(t) {
return new De(e, t);
}));
}
},
{
key: `success`,
value: function(e) {
return new Oe((function(t) {
return new we(e, t);
}));
}
},
{
key: `log`,
value: function(e, t) {
return new Oe((function(n) {
console.log(`trying ` + t + ` at ` + n);
var r = e().apply(n);
return console.log(t + ` --> ` + r), r;
}));
}
},
{
key: `rep`,
value: function(t) {
var n = e.success(O.empty);
return e.rep1(t).or((function() {
return n;
}));
}
},
{
key: `rep1`,
value: function(e) {
return new Oe((function(t) {
var n, r, i, a;
if (n = [], r = t, (a = (i = e()).apply(t)) instanceof we) {
for (; a instanceof we;) n.push(a.result), r = a.next, a = i.apply(r);
return new we(O.fromArray(n), r);
}
return a;
}));
}
},
{
key: `repN`,
value: function(t, n) {
return t === 0 ? e.success(FP.List.empty) : new Oe((function(e) {
var r, i, a, o;
for (r = [], i = e, o = (a = n()).apply(i); o instanceof we;) {
if (r.push(o.result), i = o.next, t === r.length) return new we(O.fromArray(r), i);
o = a.apply(i);
}
return o;
}));
}
},
{
key: `repsep`,
value: function(t, n) {
var r = e.success(O.empty);
return e.rep1sep(t, n).or((function() {
return r;
}));
}
},
{
key: `rep1sep`,
value: function(t, n) {
return t().and(e.rep(n().andr(t))).to((function(e) {
return new O.Cons(e.head, e.tail);
}));
}
},
{
key: `chainl1`,
value: function(t, n, r) {
return t().and(e.rep(r().and(n))).to((function(e) {
return e.tail.foldLeft(e.head, (function(e, t) {
return t.head(e, t.tail);
}));
}));
}
},
{
key: `chainr1`,
value: function(e, t, n, r) {
return e().and(this.rep(t().and(e))).to((function(e) {
return new O.Cons(new oe(n, e.head), e.tail).foldRight(r, (function(e, t) {
return e.head(e.tail, t);
}));
}));
}
},
{
key: `opt`,
value: function(t) {
return t().to((function(e) {
return new y.Some(e);
})).or((function() {
return e.success(y.empty);
}));
}
},
{
key: `not`,
value: function(e) {
return new Oe((function(t) {
return e().apply(t).successful ? new Ee(`Expected failure`, t) : new we(y.empty, t);
}));
}
},
{
key: `guard`,
value: function(e) {
return new Oe((function(t) {
var n = e().apply(t);
return n.successful ? new we(n.result, t) : n;
}));
}
},
{
key: `mkList`,
value: function(e) {
return new O.Cons(e.head, e.tail);
}
},
{
key: `fun`,
value: function(e) {
return function() {
return e;
};
}
},
{
key: `lazyParser`,
value: function(t) {
var n, r;
return t instanceof String || typeof t == `string` ? (n = e.literal(t), function() {
return n;
}) : t instanceof Function ? t : t instanceof Object ? t instanceof Oe ? function() {
return t;
} : t instanceof RegExp ? (r = e.regexLiteral(t), function() {
return r;
}) : e.err(`unhandlable type`) : e.err(`unhandlable type`);
}
},
{
key: `seq`,
value: function() {
var t, n, r;
if ((t = arguments.length) === 0) return e.err(`at least one element must be specified`);
for (n = e.lazyParser(arguments[0])(), r = 1; r < t;) n = n.and(e.lazyParser(arguments[r])), r += 1;
return n;
}
},
{
key: `or`,
value: function() {
var t, n, r;
if ((t = arguments.length) === 0) return e.err(`at least one element must be specified`);
for (n = e.lazyParser(arguments[0])(), r = 1; r < t;) n = n.or(e.lazyParser(arguments[r])), r += 1;
return n;
}
}
]), e;
}(), Ce = function() {
function e() {
ve(this, e);
}
return be(e, [{
key: `isEmpty`,
value: function() {
return !this.successful;
}
}, {
key: `getOrElse`,
value: function(e) {
return this.isEmpty ? e() : this.get();
}
}]), e;
}();
k.ParseResult = Ce;
var we = function(e) {
pe(n, e);
var t = he(n);
function n(e, r) {
var i;
return ve(this, n), (i = t.call(this)).result = e, i.next = r, i;
}
return be(n, [
{
key: `successful`,
get: function() {
return !0;
}
},
{
key: `map`,
value: function(e) {
return new n(e(this.result), this.next);
}
},
{
key: `mapPartial`,
value: function(e, t) {
try {
return new n(e(this.result), this.next);
} catch (e) {
if (e instanceof de) return new Ee(t(this.result), this.next);
throw e;
}
}
},
{
key: `flatMapWithNext`,
value: function(e) {
return e(this.result).apply(this.next);
}
},
{
key: `append`,
value: function(e) {
return this;
}
},
{
key: `get`,
value: function() {
return this.result;
}
},
{
key: `toString`,
value: function() {
return `[` + this.next.pos() + `] parsed: ` + this.result;
}
}
], [{
key: `unapply`,
value: function(e) {
return new y.Some([e.result, e.next]);
}
}]), n;
}(Ce);
k.Success = we;
var Te = function(e) {
pe(n, e);
var t = he(n);
function n() {
return ve(this, n), t.call(this);
}
return be(n, [
{
key: `successful`,
get: function() {
return !1;
}
},
{
key: `_setLastNoSuccess`,
value: function() {
var e = this.next.context;
e.lastNoSuccess !== void 0 && this.next.pos().isLessThan(e.lastNoSuccess.next.pos()) || (e.lastNoSuccess = this);
}
},
{
key: `map`,
value: function(e) {
return this;
}
},
{
key: `mapPartial`,
value: function(e, t) {
return this;
}
},
{
key: `flatMapWithNext`,
value: function(e) {
return this;
}
},
{
key: `get`,
value: function() {
return k.error(`No result when parsing failed`);
}
}
]), n;
}(Ce);
k.NoSuccess = Te;
var Ee = function(e) {
pe(n, e);
var t = he(n);
function n(e, r) {
var i;
return ve(this, n), (i = t.call(this)).msg = e, i.next = r, i._setLastNoSuccess(), i;
}
return be(n, [{
key: `append`,
value: function(e) {
var t = e();
if (t instanceof we) return t;
if (t instanceof Te) return t.next.pos().isLessThan(this.next.pos()) ? this : t;
throw new de(t);
}
}, {
key: `toString`,
value: function() {
return `[` + this.next.pos() + `] failure: ` + this.msg + `
` + this.next.pos().longString();
}
}], [{
key: `unapply`,
value: function(e) {
return new y.Some([e.msg, e.next]);
}
}]), n;
}(Te);
k.Failure = Ee;
var De = function(e) {
pe(n, e);
var t = he(n);
function n(e, r) {
var i;
return ve(this, n), (i = t.call(this)).msg = e, i.next = r, i._setLastNoSuccess(), i;
}
return be(n, [{
key: `append`,
value: function(e) {
return this;
}
}, {
key: `toString`,
value: function() {
return `[` + this.next.pos() + `] error: ` + this.msg + `
` + this.next.pos().longString();
}
}], [{
key: `unapply`,
value: function(e) {
return new y.Some([e.msg, e.next]);
}
}]), n;
}(Te);
k.ParseError = De;
var Oe = function() {
function e(t) {
ve(this, e), this.apply = t, this.name = ``;
}
return be(e, [
{
key: `named`,
value: function(e) {
return this.name = e, this;
}
},
{
key: `toString`,
value: function() {
return `Parser (` + this.name + `)`;
}
},
{
key: `flatMap`,
value: function(t) {
var n = this;
return new e((function(e) {
return n.apply(e).flatMapWithNext(t);
}));
}
},
{
key: `map`,
value: function(t) {
var n = this;
return new e((function(e) {
return n.apply(e).map(t);
}));
}
},
{
key: `append`,
value: function(t) {
var n = this;
return new e((function(e) {
return n.apply(e).append((function() {
return t().apply(e);
}));
}));
}
},
{
key: `and`,
value: function(e) {
return this.flatMap((function(t) {
return e().map((function(e) {
return new oe(t, e);
}));
})).named(`~`);
}
},
{
key: `andr`,
value: function(e) {
return this.flatMap((function(t) {
return e().map((function(e) {
return e;
}));
})).named(`~>`);
}
},
{
key: `andl`,
value: function(e) {
return this.flatMap((function(t) {
return e().map((function(e) {
return t;
}));
})).named(`<~`);
}
},
{
key: `or`,
value: function(e) {
return this.append(e).named(`|`);
}
},
{
key: `andOnce`,
value: function(e) {
var t = this;
return new ke((function() {
return t.flatMap((function(t) {
return k.commit(e).map((function(e) {
return new oe(t, e);
}));
})).named(`~!`);
}));
}
},
{
key: `longestOr`,
value: function(t) {
var n = this;
return new e((function(e) {
var r, i;
return r = n.apply(e), i = t()(e), r.successful ? i.successful ? i.next.pos().isLessThan(r.next.pos()) ? r : i : r : i.successful ? i : r instanceof De || i.next.pos().isLessThan(r.next.pos()) ? r : i;
})).named(`|||`);
}
},
{
key: `to`,
value: function(e) {
return this.map(e).named(this.toString() + `^^`);
}
},
{
key: `ret`,
value: function(t) {
var n = this;
return new e((function(e) {
return n.apply(e).map((function(e) {
return t();
}));
})).named(this.toString() + `^^^`);
}
},
{
key: `toIfPossible`,
value: function(t, n) {
n === void 0 && (n = function(e) {
return `Constructor function not defined at ` + e;
});
var r = this;
return new e((function(e) {
return r.apply(e).mapPartial(t, n);
})).named(this.toString() + `^?`);
}
},
{
key: `into`,
value: function(e) {
return this.flatMap(e);
}
},
{
key: `rep`,
value: function() {
var e = this;
return k.rep((function() {
return e;
}));
}
},
{
key: `chain`,
value: function(e) {
var t, n;
return t = this, n = function() {
return t;
}, k.chainl1(n, n, e);
}
},
{
key: `rep1`,
value: function() {
var e = this;
return k.rep1((function() {
return e;
}));
}
},
{
key: `opt`,
value: function() {
var e = this;
return k.opt((function() {
return e;
}));
}
}
]), e;
}();
k.Parser = Oe;
var ke = function(e) {
pe(n, e);
var t = he(n);
function n(e) {
return ve(this, n), t.call(this, e);
}
return be(n, [{
key: `and`,
value: function(e) {
var t = this;
return new n((function() {
return t.flatMap((function(t) {
return k.commit(e).map((function(e) {
return oe(t, e);
}));
}));
})).named(`~`);
}
}]), n;
}(Oe);
k.OnceParser = ke;
var Ae = n(376), je = n(771);
function Me(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function Ne(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function Pe(e, t, n) {
return t && Ne(e.prototype, t), n && Ne(e, n), e;
}
var Fe = function() {
function e() {
Me(this, e), this.userDirMap = {};
}
return Pe(e, [{
key: `get`,
value: function(e) {
return this.userDirMap[e];
}
}, {
key: `put`,
value: function(e, t) {
this.userDirMap[e] = t;
}
}]), e;
}(), Ie = function() {
function e() {
Me(this, e), this.userModifierMap = {};
}
return Pe(e, [{
key: `get`,
value: function(t) {
var n = e.embeddedModifierMap[t];
return n === void 0 ? this.userModifierMap[t] : n;
}
}, {
key: `put`,
value: function(t, n) {
e.embeddedModifierMap[t] === void 0 && (this.userModifierMap[t] = n);
}
}]), e;
}(), A = {
repositories: {
modifierRepository: new Ie(),
dirRepository: new Fe()
},
xypicCommandIdCounter: 0,
xypicCommandMap: {},
textObjectIdCounter: 0,
wrapperOfTextObjectMap: {}
};
function Le(e) {
return Le = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, Le(e);
}
function Re(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function j(e, t, n) {
return t && Re(e.prototype, t), n && Re(e, n), e;
}
function M(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && ze(e, t);
}
function ze(e, t) {
return ze = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, ze(e, t);
}
function N(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = Ve(e);
if (t) {
var i = Ve(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return Be(this, n);
};
}
function Be(e, t) {
if (t && (Le(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return function(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}(e);
}
function Ve(e) {
return Ve = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, Ve(e);
}
function P(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
var F = function e() {
P(this, e);
}, He = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
var a;
P(this, n), (a = t.call(this, e, r, i)).textMmls = i, a.texClass = Ae.Ls.ORD;
var o = r[`data-cmd-id`];
a.cmd = A.xypicCommandMap[o];
for (var s = JSON.parse(r[`data-text-mml-ids`]), c = 0, l = s.length; c < l; c++) i[c].xypicTextObjectId = s[c];
return a;
}
return n;
}(Ae.oI);
He.defaults = Ae.oI.defaults, (F.xypic = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
return P(this, n), t.call(this, e, r, i);
}
return j(n, [{
key: `kind`,
get: function() {
return `xypic`;
}
}, {
key: `toString`,
value: function() {
return this.kind + `(` + this.cmd + `)`;
}
}]), n;
}(He)).defaults = He.defaults, je.v[F.xypic.prototype.kind] = F.xypic, F.xypic.newdir = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
return P(this, n), t.call(this, e, r, i);
}
return j(n, [{
key: `kind`,
get: function() {
return `xypic-newdir`;
}
}, {
key: `toString`,
value: function() {
return this.kind + `(` + this.cmd + `)`;
}
}]), n;
}(He), F.xypic.newdir.defaults = He.defaults, je.v[F.xypic.newdir.prototype.kind] = F.xypic.newdir, F.xypic.includegraphics = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
return P(this, n), t.call(this, e, r, i);
}
return j(n, [{
key: `kind`,
get: function() {
return `xypic-includegraphics`;
}
}, {
key: `toString`,
value: function() {
return this.kind + `(` + this.cmd + `)`;
}
}]), n;
}(He), F.xypic.includegraphics.defaults = He.defaults, je.v[F.xypic.includegraphics.prototype.kind] = F.xypic.includegraphics, F.PosDecor = function() {
function e(t, n) {
P(this, e), this.pos = t, this.decor = n;
}
return j(e, [{
key: `toString`,
value: function() {
return this.pos.toString() + ` ` + this.decor;
}
}]), e;
}(), (F.Pos = function e() {
P(this, e);
}).Coord = function() {
function e(t, n) {
P(this, e), this.coord = t, this.pos2s = n;
}
return j(e, [{
key: `toString`,
value: function() {
return this.coord.toString() + ` ` + this.pos2s.mkString(` `);
}
}]), e;
}(), F.Pos.Plus = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `+(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.Minus = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `-(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.Skew = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `!(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.Cover = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `.(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.Then = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `,(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.SwapPAndC = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `;(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.SetBase = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `:(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.SetYBase = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `::(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.ConnectObject = function() {
function e(t) {
P(this, e), this.object = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `**(` + this.object + `)`;
}
}]), e;
}(), F.Pos.DropObject = function() {
function e(t) {
P(this, e), this.object = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `*(` + this.object + `)`;
}
}]), e;
}(), F.Pos.Place = function() {
function e(t) {
P(this, e), this.place = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `?(` + this.place + `)`;
}
}]), e;
}(), F.Pos.PushCoord = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@+(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.EvalCoordThenPop = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@-(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.LoadStack = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@=(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.DoCoord = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@@(` + this.coord + `)`;
}
}]), e;
}(), F.Pos.InitStack = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `@i`;
}
}]), e;
}(), F.Pos.EnterFrame = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `@(`;
}
}]), e;
}(), F.Pos.LeaveFrame = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `@)`;
}
}]), e;
}(), F.Pos.SavePos = function() {
function e(t) {
P(this, e), this.id = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `="` + this.id + `"`;
}
}]), e;
}(), F.Pos.SaveMacro = function() {
function e(t, n) {
P(this, e), this.macro = t, this.id = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `=(` + this.macro + ` "` + this.id + `")`;
}
}]), e;
}(), F.Pos.SaveBase = function() {
function e(t) {
P(this, e), this.id = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `=:"` + this.id + `"`;
}
}]), e;
}(), F.Pos.SaveStack = function() {
function e(t) {
P(this, e), this.id = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `=@"` + this.id + `"`;
}
}]), e;
}(), (F.Coord = function e() {
P(this, e);
}).Vector = function() {
function e(t) {
P(this, e), this.vector = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.vector.toString();
}
}]), e;
}(), F.Coord.C = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `c`;
}
}]), e;
}(), F.Coord.P = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `p`;
}
}]), e;
}(), F.Coord.X = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `x`;
}
}]), e;
}(), F.Coord.Y = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `y`;
}
}]), e;
}(), F.Coord.Id = function() {
function e(t) {
P(this, e), this.id = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `"` + this.id + `"`;
}
}]), e;
}(), F.Coord.Group = function() {
function e(t) {
P(this, e), this.posDecor = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `{` + this.posDecor + `}`;
}
}]), e;
}(), F.Coord.StackPosition = function() {
function e(t) {
P(this, e), this.number = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `s{` + this.number + `}`;
}
}]), e;
}(), F.Coord.DeltaRowColumn = function() {
function e(t, n, r) {
P(this, e), this.prefix = t, this.dr = n, this.dc = r;
}
return j(e, [{
key: `toString`,
value: function() {
return `[` + (this.prefix === `` ? `` : `"` + this.prefix + `"`) + this.dr + `,` + this.dc + `]`;
}
}]), e;
}(), F.Coord.Hops = function() {
function e(t, n) {
P(this, e), this.prefix = t, this.hops = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `[` + (this.prefix === `` ? `` : `"` + this.prefix + `"`) + this.hops.mkString(``) + `]`;
}
}]), e;
}(), F.Coord.HopsWithPlace = function() {
function e(t, n, r) {
P(this, e), this.prefix = t, this.hops = n, this.place = r;
}
return j(e, [{
key: `toString`,
value: function() {
return `[` + (this.prefix === `` ? `` : `"` + this.prefix + `"`) + this.hops.mkString(``) + this.place + `]`;
}
}]), e;
}(), (F.Vector = function e() {
P(this, e);
}).InCurBase = function() {
function e(t, n) {
P(this, e), this.x = t, this.y = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `(` + this.x + `, ` + this.y + `)`;
}
}]), e;
}(), F.Vector.Abs = function() {
function e(t, n) {
P(this, e), this.x = t, this.y = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `<` + this.x + `, ` + this.y + `>`;
}
}]), e;
}(), F.Vector.Angle = function() {
function e(t) {
P(this, e), this.degree = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `a(` + this.degree + `)`;
}
}]), e;
}(), F.Vector.Dir = function() {
function e(t, n) {
P(this, e), this.dir = t, this.dimen = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `/` + this.dir + ` ` + this.dimen + `/`;
}
}]), e;
}(), F.Vector.Corner = function() {
function e(t, n) {
P(this, e), this.corner = t, this.factor = n;
}
return j(e, [{
key: `toString`,
value: function() {
return this.corner.toString() + `(` + this.factor + `)`;
}
}]), e;
}(), (F.Corner = function e() {
P(this, e);
}).L = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `L`;
}
}]), e;
}(), F.Corner.R = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `R`;
}
}]), e;
}(), F.Corner.D = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `D`;
}
}]), e;
}(), F.Corner.U = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `U`;
}
}]), e;
}(), F.Corner.CL = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `CL`;
}
}]), e;
}(), F.Corner.CR = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `CR`;
}
}]), e;
}(), F.Corner.CD = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `CD`;
}
}]), e;
}(), F.Corner.CU = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `CU`;
}
}]), e;
}(), F.Corner.LD = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `LD`;
}
}]), e;
}(), F.Corner.RD = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `RD`;
}
}]), e;
}(), F.Corner.LU = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `LU`;
}
}]), e;
}(), F.Corner.RU = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `RU`;
}
}]), e;
}(), F.Corner.NearestEdgePoint = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `E`;
}
}]), e;
}(), F.Corner.PropEdgePoint = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `P`;
}
}]), e;
}(), F.Corner.Axis = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `A`;
}
}]), e;
}(), (F.Place = function() {
function e(t, n, r, i) {
P(this, e), this.shaveP = t, this.shaveC = n, this.factor = r, this.slide = i;
}
return j(e, [{
key: `compound`,
value: function(e) {
return new F.Place(this.shaveP + e.shaveP, this.shaveC + e.shaveC, e.factor === void 0 ? this.factor : e.factor, e.slide);
}
}, {
key: `toString`,
value: function() {
for (var e = ``, t = 0; t < this.shaveP; t++) e += `<`;
for (var n = 0; n < this.shaveC; n++) e += `>`;
return this.factor !== void 0 && (e += `(` + this.factor + `)`), this.slide.dimen.foreach((function(t) {
e += `/` + t + `/`;
})), e;
}
}]), e;
}()).Factor = function() {
function e(t) {
P(this, e), this.factor = t;
}
return j(e, [{
key: `isIntercept`,
get: function() {
return !1;
}
}, {
key: `toString`,
value: function() {
return this.factor.toString();
}
}]), e;
}(), F.Place.Intercept = function() {
function e(t) {
P(this, e), this.pos = t;
}
return j(e, [{
key: `isIntercept`,
get: function() {
return !0;
}
}, {
key: `toString`,
value: function() {
return `!{` + this.pos + `}`;
}
}]), e;
}(), F.Slide = function() {
function e(t) {
P(this, e), this.dimen = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.dimen.getOrElse(``);
}
}]), e;
}(), F.Object = function() {
function e(t, n) {
P(this, e), this.modifiers = t, this.object = n;
}
return j(e, [
{
key: `dirVariant`,
value: function() {
return this.object.dirVariant();
}
},
{
key: `dirMain`,
value: function() {
return this.object.dirMain();
}
},
{
key: `isDir`,
value: function() {
return this.object.isDir();
}
},
{
key: `toString`,
value: function() {
return this.modifiers.mkString() + this.object.toString();
}
}
]), e;
}(), (F.ObjectBox = function() {
function e() {
P(this, e);
}
return j(e, [
{
key: `isEmpty`,
get: function() {
return !1;
}
},
{
key: `dirVariant`,
value: function() {}
},
{
key: `dirMain`,
value: function() {}
},
{
key: `isDir`,
value: function() {
return !1;
}
}
]), e;
}()).Text = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).math = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `{` + this.math.toString() + `}`;
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Empty = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `isEmpty`,
get: function() {
return !0;
}
}, {
key: `toString`,
value: function() {
return `{}`;
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Xymatrix = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).xymatrix = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return this.xymatrix.toString();
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Txt = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
var i;
return P(this, n), (i = t.call(this)).width = e, i.textObject = r, i;
}
return j(n, [{
key: `toString`,
value: function() {
return `\\txt` + this.width + `{` + this.textObject.toString() + `}`;
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Txt.Width = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return n;
}(F.ObjectBox), F.ObjectBox.Txt.Width.Vector = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).vector = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return this.vector.toString();
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Txt.Width.Default = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return ``;
}
}]), n;
}(F.ObjectBox), F.ObjectBox.WrapUpObject = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).object = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `\\object` + this.object.toString();
}
}]), n;
}(F.ObjectBox), F.ObjectBox.CompositeObject = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).objects = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `\\composite{` + this.objects.mkString(` * `) + `}`;
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Xybox = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).posDecor = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `\\xybox{` + this.posDecor.toString() + `}`;
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Cir = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
var i;
return P(this, n), (i = t.call(this)).radius = e, i.cir = r, i;
}
return j(n, [{
key: `toString`,
value: function() {
return `\\cir` + this.radius + `{` + this.cir + `}`;
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Cir.Radius = function e() {
P(this, e);
}, F.ObjectBox.Cir.Radius.Vector = function() {
function e(t) {
P(this, e), this.vector = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.vector.toString();
}
}]), e;
}(), F.ObjectBox.Cir.Radius.Default = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return ``;
}
}]), e;
}(), F.ObjectBox.Cir.Cir = function e() {
P(this, e);
}, F.ObjectBox.Cir.Cir.Segment = function() {
function e(t, n, r) {
P(this, e), this.startDiag = t, this.orient = n, this.endDiag = r;
}
return j(e, [{
key: `toString`,
value: function() {
return this.startDiag.toString() + this.orient + this.endDiag;
}
}]), e;
}(), F.ObjectBox.Cir.Cir.Full = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return ``;
}
}]), e;
}(), F.ObjectBox.Dir = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
var i;
return P(this, n), (i = t.call(this)).variant = e, i.main = r, i;
}
return j(n, [
{
key: `dirVariant`,
value: function() {
return this.variant;
}
},
{
key: `dirMain`,
value: function() {
return this.main;
}
},
{
key: `isDir`,
value: function() {
return !0;
}
},
{
key: `toString`,
value: function() {
return `\\dir` + this.variant + `{` + this.main + `}`;
}
}
]), n;
}(F.ObjectBox), F.ObjectBox.Curve = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
var a;
return P(this, n), (a = t.call(this)).modifiers = e, a.objects = r, a.poslist = i, a;
}
return j(n, [
{
key: `dirVariant`,
value: function() {
return ``;
}
},
{
key: `dirMain`,
value: function() {
return `-`;
}
},
{
key: `isDir`,
value: function() {
return !1;
}
},
{
key: `toString`,
value: function() {
return `\\curve` + this.modifiers.mkString(``) + `{` + this.objects.mkString(` `) + ` ` + this.poslist.mkString(`&`) + `}`;
}
}
]), n;
}(F.ObjectBox), F.ObjectBox.Curve.Modifier = function e() {
P(this, e);
}, F.ObjectBox.Curve.Modifier.p = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~p`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.P = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~P`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.l = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~l`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.L = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~L`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.c = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~c`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.C = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~C`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.pc = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~pc`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.pC = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~pC`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.Pc = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~Pc`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.PC = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~PC`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.lc = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~lc`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.lC = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~lC`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.Lc = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~Lc`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.LC = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~LC`;
}
}]), e;
}(), F.ObjectBox.Curve.Modifier.cC = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~cC`;
}
}]), e;
}(), F.ObjectBox.Curve.Object = function e() {
P(this, e);
}, F.ObjectBox.Curve.Object.Drop = function() {
function e(t) {
P(this, e), this.object = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `~*` + this.object;
}
}]), e;
}(), F.ObjectBox.Curve.Object.Connect = function() {
function e(t) {
P(this, e), this.object = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `~**` + this.object;
}
}]), e;
}(), F.ObjectBox.Curve.PosList = function e() {
P(this, e);
}, F.ObjectBox.Curve.PosList.CurPos = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return ``;
}
}]), e;
}(), F.ObjectBox.Curve.PosList.Pos = function() {
function e(t) {
P(this, e), this.pos = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.pos.toString();
}
}]), e;
}(), F.ObjectBox.Curve.PosList.AddStack = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~@`;
}
}]), e;
}(), (F.Modifier = function e() {
P(this, e);
}).Vector = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).vector = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `!` + this.vector;
}
}]), n;
}(F.Modifier), F.Modifier.RestoreOriginalRefPoint = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `!`;
}
}]), n;
}(F.Modifier), F.Modifier.AddOp = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
var i;
return P(this, n), (i = t.call(this)).op = e, i.size = r, i;
}
return j(n, [{
key: `toString`,
value: function() {
return this.op.toString() + ` ` + this.size;
}
}]), n;
}(F.Modifier), F.Modifier.AddOp.Grow = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `+`;
}
}]), e;
}(), F.Modifier.AddOp.Shrink = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `-`;
}
}]), e;
}(), F.Modifier.AddOp.Set = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `=`;
}
}]), e;
}(), F.Modifier.AddOp.GrowTo = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `+=`;
}
}]), e;
}(), F.Modifier.AddOp.ShrinkTo = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `-=`;
}
}]), e;
}(), F.Modifier.AddOp.VactorSize = function() {
function e(t) {
P(this, e), this.vector = t;
}
return j(e, [{
key: `isDefault`,
get: function() {
return !1;
}
}, {
key: `toString`,
value: function() {
return this.vector.toString();
}
}]), e;
}(), F.Modifier.AddOp.DefaultSize = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `isDefault`,
get: function() {
return !0;
}
}, {
key: `toString`,
value: function() {
return ``;
}
}]), e;
}(), F.Modifier.Shape = function e() {
P(this, e);
}, F.Modifier.Shape.Point = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `[.]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.Rect = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `[]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.Alphabets = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).alphabets = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `[` + this.alphabets + `]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.DefineShape = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).shape = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `[` + this.shape + `]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.Circle = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `[o]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.L = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `[l]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.R = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `[r]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.U = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `[u]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.D = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `[d]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.C = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `[c]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.ChangeColor = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).colorName = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `[` + this.colorName + `]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.CompositeModifiers = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).modifiers = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return this.modifiers.mkString(``);
}
}]), n;
}(F.Modifier), F.Modifier.Shape.Frame = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
var i;
return P(this, n), (i = t.call(this)).main = e, i.options = r, i;
}
return j(n, [{
key: `toString`,
value: function() {
return `[F` + this.main + this.options.mkString(``) + `]`;
}
}]), n;
}(F.Modifier), F.Modifier.Shape.Frame.Radius = function() {
function e(t) {
P(this, e), this.vector = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `:` + this.vector;
}
}]), e;
}(), F.Modifier.Shape.Frame.Color = function() {
function e(t) {
P(this, e), this.colorName = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `:` + this.colorName;
}
}]), e;
}(), F.Modifier.Invisible = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `i`;
}
}]), n;
}(F.Modifier), F.Modifier.Hidden = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `h`;
}
}]), n;
}(F.Modifier), F.Modifier.Direction = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).direction = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return this.direction.toString();
}
}]), n;
}(F.Modifier), (F.Direction = function e() {
P(this, e);
}).Compound = function() {
function e(t, n) {
P(this, e), this.dir = t, this.rots = n;
}
return j(e, [{
key: `toString`,
value: function() {
return this.dir.toString() + this.rots.mkString();
}
}]), e;
}(), F.Direction.Diag = function() {
function e(t) {
P(this, e), this.diag = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.diag.toString();
}
}]), e;
}(), F.Direction.Vector = function() {
function e(t) {
P(this, e), this.vector = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `v` + this.vector.toString();
}
}]), e;
}(), F.Direction.ConstructVector = function() {
function e(t) {
P(this, e), this.posDecor = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `q{` + this.posDecor.toString() + `}`;
}
}]), e;
}(), F.Direction.RotVector = function() {
function e(t) {
P(this, e), this.vector = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `:` + this.vector.toString();
}
}]), e;
}(), F.Direction.RotAntiCW = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `_`;
}
}]), e;
}(), F.Direction.RotCW = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `^`;
}
}]), e;
}(), (F.Diag = function e() {
P(this, e);
}).Default = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return ``;
}
}]), e;
}(), F.Diag.Angle = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return this.symbol;
}
}]), e;
}(), F.Diag.LD = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [
{
key: `symbol`,
get: function() {
return `ld`;
}
},
{
key: `ang`,
get: function() {
return -3 * Math.PI / 4;
}
},
{
key: `turn`,
value: function(e) {
return e === `^` ? new F.Diag.RD() : new F.Diag.LU();
}
}
]), n;
}(F.Diag.Angle), F.Diag.RD = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [
{
key: `symbol`,
get: function() {
return `rd`;
}
},
{
key: `ang`,
get: function() {
return -Math.PI / 4;
}
},
{
key: `turn`,
value: function(e) {
return e === `^` ? new F.Diag.RU() : new F.Diag.LD();
}
}
]), n;
}(F.Diag.Angle), F.Diag.LU = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [
{
key: `symbol`,
get: function() {
return `lu`;
}
},
{
key: `ang`,
get: function() {
return 3 * Math.PI / 4;
}
},
{
key: `turn`,
value: function(e) {
return e === `^` ? new F.Diag.LD() : new F.Diag.RU();
}
}
]), n;
}(F.Diag.Angle), F.Diag.RU = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [
{
key: `symbol`,
get: function() {
return `ru`;
}
},
{
key: `ang`,
get: function() {
return Math.PI / 4;
}
},
{
key: `turn`,
value: function(e) {
return e === `^` ? new F.Diag.LU() : new F.Diag.RD();
}
}
]), n;
}(F.Diag.Angle), F.Diag.L = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [
{
key: `symbol`,
get: function() {
return `l`;
}
},
{
key: `ang`,
get: function() {
return Math.PI;
}
},
{
key: `turn`,
value: function(e) {
return e === `^` ? new F.Diag.D() : new F.Diag.U();
}
}
]), n;
}(F.Diag.Angle), F.Diag.R = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [
{
key: `symbol`,
get: function() {
return `r`;
}
},
{
key: `ang`,
get: function() {
return 0;
}
},
{
key: `turn`,
value: function(e) {
return e === `^` ? new F.Diag.U() : new F.Diag.D();
}
}
]), n;
}(F.Diag.Angle), F.Diag.D = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [
{
key: `symbol`,
get: function() {
return `d`;
}
},
{
key: `ang`,
get: function() {
return -Math.PI / 2;
}
},
{
key: `turn`,
value: function(e) {
return e === `^` ? new F.Diag.R() : new F.Diag.L();
}
}
]), n;
}(F.Diag.Angle), F.Diag.U = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [
{
key: `symbol`,
get: function() {
return `u`;
}
},
{
key: `ang`,
get: function() {
return Math.PI / 2;
}
},
{
key: `turn`,
value: function(e) {
return e === `^` ? new F.Diag.L() : new F.Diag.R();
}
}
]), n;
}(F.Diag.Angle), F.ObjectBox.Frame = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
var i;
return P(this, n), (i = t.call(this)).radius = e, i.main = r, i;
}
return j(n, [{
key: `toString`,
value: function() {
return `\\frm` + this.radius + `{` + this.main + `}`;
}
}]), n;
}(F.ObjectBox), F.ObjectBox.Frame.Radius = function e() {
P(this, e);
}, F.ObjectBox.Frame.Radius.Vector = function() {
function e(t) {
P(this, e), this.vector = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.vector.toString();
}
}]), e;
}(), F.ObjectBox.Frame.Radius.Default = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return ``;
}
}]), e;
}(), F.Decor = function() {
function e(t) {
P(this, e), this.commands = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.commands.mkString(` `);
}
}]), e;
}(), (F.Command = function e() {
P(this, e);
}).Save = function() {
function e(t) {
P(this, e), this.pos = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\save ` + this.pos;
}
}]), e;
}(), F.Command.Restore = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `\\restore`;
}
}]), e;
}(), F.Command.Pos = function() {
function e(t) {
P(this, e), this.pos = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\POS ` + this.pos;
}
}]), e;
}(), F.Command.AfterPos = function() {
function e(t, n) {
P(this, e), this.decor = t, this.pos = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\afterPOS{` + this.decor + `} ` + this.pos;
}
}]), e;
}(), F.Command.Drop = function() {
function e(t) {
P(this, e), this.object = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\drop ` + this.object;
}
}]), e;
}(), F.Command.Connect = function() {
function e(t) {
P(this, e), this.object = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\connect ` + this.object;
}
}]), e;
}(), F.Command.Relax = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `\\relax`;
}
}]), e;
}(), F.Command.Ignore = function() {
function e(t, n) {
P(this, e), this.pos = t, this.decor = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\ignore{` + this.pos + ` ` + this.decor + `}`;
}
}]), e;
}(), F.Command.ShowAST = function() {
function e(t, n) {
P(this, e), this.pos = t, this.decor = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\xyshowAST{` + this.pos + ` ` + this.decor + `}`;
}
}]), e;
}(), F.Command.Path = function() {
function e(t) {
P(this, e), this.path = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\PATH ` + this.path;
}
}]), e;
}(), F.Command.AfterPath = function() {
function e(t, n) {
P(this, e), this.decor = t, this.path = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\afterPATH{` + this.decor + `} ` + this.path;
}
}]), e;
}(), F.Command.Path.Path = function() {
function e(t) {
P(this, e), this.pathElements = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.pathElements.mkString(`[`, `, `, `]`);
}
}]), e;
}(), F.Command.Path.SetBeforeAction = function() {
function e(t) {
P(this, e), this.posDecor = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `~={` + this.posDecor + `}`;
}
}]), e;
}(), F.Command.Path.SetAfterAction = function() {
function e(t) {
P(this, e), this.posDecor = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `~/{` + this.posDecor + `}`;
}
}]), e;
}(), F.Command.Path.AddLabelNextSegmentOnly = function() {
function e(t) {
P(this, e), this.labels = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `~<{` + this.labels + `}`;
}
}]), e;
}(), F.Command.Path.AddLabelLastSegmentOnly = function() {
function e(t) {
P(this, e), this.labels = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `~>{` + this.labels + `}`;
}
}]), e;
}(), F.Command.Path.AddLabelEverySegment = function() {
function e(t) {
P(this, e), this.labels = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `~+{` + this.labels + `}`;
}
}]), e;
}(), F.Command.Path.StraightSegment = function() {
function e(t) {
P(this, e), this.segment = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `'` + this.segment;
}
}]), e;
}(), F.Command.Path.TurningSegment = function() {
function e(t, n) {
P(this, e), this.turn = t, this.segment = n;
}
return j(e, [{
key: `toString`,
value: function() {
return "`" + this.turn + ` ` + this.segment;
}
}]), e;
}(), F.Command.Path.LastSegment = function() {
function e(t) {
P(this, e), this.segment = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.segment.toString();
}
}]), e;
}(), F.Command.Path.Turn = function e() {
P(this, e);
}, F.Command.Path.Turn.Diag = function() {
function e(t, n) {
P(this, e), this.diag = t, this.radius = n;
}
return j(e, [{
key: `toString`,
value: function() {
return this.diag.toString() + ` ` + this.radius;
}
}]), e;
}(), F.Command.Path.Turn.Cir = function() {
function e(t, n) {
P(this, e), this.cir = t, this.radius = n;
}
return j(e, [{
key: `toString`,
value: function() {
return this.cir.toString() + ` ` + this.radius;
}
}]), e;
}(), F.Command.Path.TurnRadius = function e() {
P(this, e);
}, F.Command.Path.TurnRadius.Default = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return ``;
}
}]), e;
}(), F.Command.Path.TurnRadius.Dimen = function() {
function e(t) {
P(this, e), this.dimen = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `/` + this.dimen;
}
}]), e;
}(), F.Command.Path.Segment = function() {
function e(t, n, r) {
P(this, e), this.pos = t, this.slide = n, this.labels = r;
}
return j(e, [{
key: `toString`,
value: function() {
return this.pos.toString() + ` ` + this.slide + ` ` + this.labels;
}
}]), e;
}(), F.Command.Path.Labels = function() {
function e(t) {
P(this, e), this.labels = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.labels.mkString(` `);
}
}]), e;
}(), F.Command.Path.Label = function e(t, n, r) {
P(this, e), this.anchor = t, this.it = n, this.aliasOption = r;
}, F.Command.Path.Label.Above = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
return P(this, n), t.call(this, e, r, i);
}
return j(n, [{
key: `toString`,
value: function() {
return `^(` + this.anchor + ` ` + this.it + ` ` + this.aliasOption + `)`;
}
}]), n;
}(F.Command.Path.Label), F.Command.Path.Label.Below = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
return P(this, n), t.call(this, e, r, i);
}
return j(n, [{
key: `toString`,
value: function() {
return `_(` + this.anchor + ` ` + this.it + ` ` + this.aliasOption + `)`;
}
}]), n;
}(F.Command.Path.Label), F.Command.Path.Label.At = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
return P(this, n), t.call(this, e, r, i);
}
return j(n, [{
key: `toString`,
value: function() {
return `|(` + this.anchor + ` ` + this.it + ` ` + this.aliasOption + `)`;
}
}]), n;
}(F.Command.Path.Label), F.Command.Ar = function() {
function e(t, n) {
P(this, e), this.forms = t, this.path = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\ar ` + this.forms.mkString(` `) + ` ` + this.path;
}
}]), e;
}(), F.Command.Ar.Form = function e() {
P(this, e);
}, F.Command.Ar.Form.BuildArrow = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i, a) {
var o;
return P(this, n), (o = t.call(this)).variant = e, o.tailTip = r, o.stemConn = i, o.headTip = a, o;
}
return j(n, [{
key: `toString`,
value: function() {
return `@` + this.variant + `{` + this.tailTip.toString() + `, ` + this.stemConn.toString() + `, ` + this.headTip.toString() + `}`;
}
}]), n;
}(F.Command.Ar.Form), F.Command.Ar.Form.ChangeVariant = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).variant = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `@` + this.variant;
}
}]), n;
}(F.Command.Ar.Form), F.Command.Ar.Form.Tip = function e() {
P(this, e);
}, F.Command.Ar.Form.Tip.Tipchars = function() {
function e(t) {
P(this, e), this.tipchars = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.tipchars;
}
}]), e;
}(), F.Command.Ar.Form.Tip.Object = function() {
function e(t) {
P(this, e), this.object = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `*` + this.object;
}
}]), e;
}(), F.Command.Ar.Form.Tip.Dir = function() {
function e(t) {
P(this, e), this.dir = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.dir;
}
}]), e;
}(), F.Command.Ar.Form.Conn = function e() {
P(this, e);
}, F.Command.Ar.Form.Conn.Connchars = function() {
function e(t) {
P(this, e), this.connchars = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.connchars;
}
}]), e;
}(), F.Command.Ar.Form.Conn.Object = function() {
function e(t) {
P(this, e), this.object = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `*` + this.object;
}
}]), e;
}(), F.Command.Ar.Form.Conn.Dir = function() {
function e(t) {
P(this, e), this.dir = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.dir;
}
}]), e;
}(), F.Command.Ar.Form.ChangeStem = function() {
function e(t) {
P(this, e), this.connchar = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@` + this.connchar;
}
}]), e;
}(), F.Command.Ar.Form.DashArrowStem = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `@!`;
}
}]), e;
}(), F.Command.Ar.Form.CurveArrow = function() {
function e(t, n) {
P(this, e), this.direction = t, this.dist = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `@/` + this.direction + ` ` + this.dist + `/`;
}
}]), e;
}(), F.Command.Ar.Form.CurveFitToDirection = function() {
function e(t, n) {
P(this, e), this.outDirection = t, this.inDirection = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `@(` + this.outDirection + `,` + this.inDirection + `)`;
}
}]), e;
}(), F.Command.Ar.Form.CurveWithControlPoints = function() {
function e(t) {
P(this, e), this.coord = t;
}
return j(e, [{
key: `toString`,
value: function() {
return "@`{" + this.coord + `}`;
}
}]), e;
}(), F.Command.Ar.Form.AddShape = function() {
function e(t) {
P(this, e), this.shape = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@[` + this.shape + `]`;
}
}]), e;
}(), F.Command.Ar.Form.AddModifiers = function() {
function e(t) {
P(this, e), this.modifiers = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@*{` + this.modifiers.mkString(` `) + `}`;
}
}]), e;
}(), F.Command.Ar.Form.Slide = function() {
function e(t) {
P(this, e), this.slideDimen = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@<` + this.slideDimen + `>`;
}
}]), e;
}(), F.Command.Ar.Form.LabelAt = function() {
function e(t, n) {
P(this, e), this.anchor = t, this.it = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `|` + this.anchor + ` ` + this.it;
}
}]), e;
}(), F.Command.Ar.Form.LabelAbove = function() {
function e(t, n) {
P(this, e), this.anchor = t, this.it = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `^` + this.anchor + ` ` + this.it;
}
}]), e;
}(), F.Command.Ar.Form.LabelBelow = function() {
function e(t, n) {
P(this, e), this.anchor = t, this.it = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `_` + this.anchor + ` ` + this.it;
}
}]), e;
}(), F.Command.Ar.Form.ReverseAboveAndBelow = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `@?`;
}
}]), e;
}(), F.Command.Xymatrix = function() {
function e(t, n) {
P(this, e), this.setup = t, this.rows = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\xymatrix` + this.setup + `{
` + this.rows.mkString(``, `\\\\
`, ``) + `
}`;
}
}]), e;
}(), F.Command.Xymatrix.Setup = function e() {
P(this, e);
}, F.Command.Xymatrix.Setup.Prefix = function() {
function e(t) {
P(this, e), this.prefix = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `"` + this.prefix + `"`;
}
}]), e;
}(), F.Command.Xymatrix.Setup.ChangeSpacing = function e(t, n) {
P(this, e), this.addop = t, this.dimen = n;
}, F.Command.Xymatrix.Setup.ChangeSpacing.Row = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `@R` + this.addop + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.ChangeSpacing), F.Command.Xymatrix.Setup.ChangeSpacing.Column = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `@C` + this.addop + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.ChangeSpacing), F.Command.Xymatrix.Setup.ChangeSpacing.RowAndColumn = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `@` + this.addop + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.ChangeSpacing), F.Command.Xymatrix.Setup.PretendEntrySize = function e(t) {
P(this, e), this.dimen = t;
}, F.Command.Xymatrix.Setup.PretendEntrySize.Height = function(e) {
M(n, e);
var t = N(n);
function n(e) {
return P(this, n), t.call(this, e);
}
return j(n, [{
key: `toString`,
value: function() {
return `@!R=` + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.PretendEntrySize), F.Command.Xymatrix.Setup.PretendEntrySize.Width = function(e) {
M(n, e);
var t = N(n);
function n(e) {
return P(this, n), t.call(this, e);
}
return j(n, [{
key: `toString`,
value: function() {
return `@!C=` + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.PretendEntrySize), F.Command.Xymatrix.Setup.PretendEntrySize.HeightAndWidth = function(e) {
M(n, e);
var t = N(n);
function n(e) {
return P(this, n), t.call(this, e);
}
return j(n, [{
key: `toString`,
value: function() {
return `@!=` + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.PretendEntrySize), F.Command.Xymatrix.Setup.FixGrid = function e() {
P(this, e);
}, F.Command.Xymatrix.Setup.FixGrid.Row = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `@!R`;
}
}]), n;
}(F.Command.Xymatrix.Setup.FixGrid), F.Command.Xymatrix.Setup.FixGrid.Column = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `@!C`;
}
}]), n;
}(F.Command.Xymatrix.Setup.FixGrid), F.Command.Xymatrix.Setup.FixGrid.RowAndColumn = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `@!`;
}
}]), n;
}(F.Command.Xymatrix.Setup.FixGrid), F.Command.Xymatrix.Setup.AdjustEntrySize = function e(t, n) {
P(this, e), this.addop = t, this.dimen = n;
}, F.Command.Xymatrix.Setup.AdjustEntrySize.Margin = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `@M` + this.addop + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.AdjustEntrySize), F.Command.Xymatrix.Setup.AdjustEntrySize.Width = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `@W` + this.addop + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.AdjustEntrySize), F.Command.Xymatrix.Setup.AdjustEntrySize.Height = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `@H` + this.addop + this.dimen;
}
}]), n;
}(F.Command.Xymatrix.Setup.AdjustEntrySize), F.Command.Xymatrix.Setup.AdjustLabelSep = function() {
function e(t, n) {
P(this, e), this.addop = t, this.dimen = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `@L` + this.addop + this.dimen;
}
}]), e;
}(), F.Command.Xymatrix.Setup.SetOrientation = function() {
function e(t) {
P(this, e), this.direction = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@` + this.direction;
}
}]), e;
}(), F.Command.Xymatrix.Setup.AddModifier = function() {
function e(t) {
P(this, e), this.modifier = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `@*` + this.modifier;
}
}]), e;
}(), F.Command.Xymatrix.Row = function() {
function e(t) {
P(this, e), this.entries = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.entries.mkString(` & `);
}
}]), e;
}(), F.Command.Xymatrix.Entry = function e() {
P(this, e);
}, F.Command.Xymatrix.Entry.SimpleEntry = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
var a;
return P(this, n), (a = t.call(this)).modifiers = e, a.objectbox = r, a.decor = i, a;
}
return j(n, [{
key: `isEmpty`,
get: function() {
return !1;
}
}, {
key: `toString`,
value: function() {
return this.modifiers.mkString(`**{`, ``, `}`) + ` ` + this.objectbox + ` ` + this.decor;
}
}]), n;
}(F.Command.Xymatrix.Entry), F.Command.Xymatrix.Entry.ObjectEntry = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i) {
var a;
return P(this, n), (a = t.call(this)).object = e, a.pos = r, a.decor = i, a;
}
return j(n, [{
key: `isEmpty`,
get: function() {
return !1;
}
}, {
key: `toString`,
value: function() {
return `*` + this.object + ` ` + this.pos + ` ` + this.decor;
}
}]), n;
}(F.Command.Xymatrix.Entry), F.Command.Xymatrix.Entry.EmptyEntry = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).decor = e, r;
}
return j(n, [{
key: `isEmpty`,
get: function() {
return !0;
}
}, {
key: `toString`,
value: function() {
return `` + this.decor;
}
}]), n;
}(F.Command.Xymatrix.Entry), F.Command.Twocell = function() {
function e(t, n, r) {
P(this, e), this.twocell = t, this.switches = n, this.arrow = r;
}
return j(e, [{
key: `toString`,
value: function() {
return this.twocell.toString() + this.switches.mkString(``) + this.arrow;
}
}]), e;
}(), F.Command.Twocell.Hops2cell = function e(t, n) {
P(this, e), this.hops = t, this.maybeDisplace = n;
}, F.Command.Twocell.Twocell = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `\\xtwocell[` + this.hops + `]` + this.maybeDisplace.getOrElse(`{}`);
}
}]), n;
}(F.Command.Twocell.Hops2cell), F.Command.Twocell.UpperTwocell = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `\\xuppertwocell[` + this.hops + `]` + this.maybeDisplace.getOrElse(`{}`);
}
}]), n;
}(F.Command.Twocell.Hops2cell), F.Command.Twocell.LowerTwocell = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `\\xlowertwocell[` + this.hops + `]` + this.maybeDisplace.getOrElse(`{}`);
}
}]), n;
}(F.Command.Twocell.Hops2cell), F.Command.Twocell.CompositeMap = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
return P(this, n), t.call(this, e, r);
}
return j(n, [{
key: `toString`,
value: function() {
return `\\xcompositemap[` + this.hops + `]` + this.maybeDisplace.getOrElse(`{}`);
}
}]), n;
}(F.Command.Twocell.Hops2cell), F.Command.Twocell.Switch = function e() {
P(this, e);
}, F.Command.Twocell.Switch.UpperLabel = function() {
function e(t) {
P(this, e), this.label = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `^` + this.label;
}
}]), e;
}(), F.Command.Twocell.Switch.LowerLabel = function() {
function e(t) {
P(this, e), this.label = t;
}
return j(e, [{
key: `toString`,
value: function() {
return `_` + this.label;
}
}]), e;
}(), F.Command.Twocell.Switch.SetCurvature = function() {
function e(t) {
P(this, e), this.nudge = t;
}
return j(e, [{
key: `toString`,
value: function() {
return this.nudge.toString();
}
}]), e;
}(), F.Command.Twocell.Switch.DoNotSetCurvedArrows = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `\\omit`;
}
}]), e;
}(), F.Command.Twocell.Switch.PlaceModMapObject = function() {
function e() {
P(this, e);
}
return j(e, [{
key: `toString`,
value: function() {
return `~!`;
}
}]), e;
}(), F.Command.Twocell.Switch.ChangeHeadTailObject = function() {
function e(t, n) {
P(this, e), this.what = t, this.object = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `~` + this.what + `{` + this.object + `}`;
}
}]), e;
}(), F.Command.Twocell.Switch.ChangeCurveObject = function() {
function e(t, n, r) {
P(this, e), this.what = t, this.spacer = n, this.maybeObject = r;
}
return j(e, [{
key: `toString`,
value: function() {
return `~` + this.what + `{` + this.spacer + (this.maybeObject.isDefined ? `~**` + this.maybeObject.get : ``) + `}`;
}
}]), e;
}(), F.Command.Twocell.Label = function() {
function e(t, n) {
P(this, e), this.maybeNudge = t, this.labelObject = n;
}
return j(e, [{
key: `toString`,
value: function() {
return this.maybeNudge.toString() + this.labelObject;
}
}]), e;
}(), F.Command.Twocell.Nudge = function e() {
P(this, e);
}, F.Command.Twocell.Nudge.Number = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).number = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `<` + this.number + `>`;
}
}]), n;
}(F.Command.Twocell.Nudge), F.Command.Twocell.Nudge.Omit = function(e) {
M(n, e);
var t = N(n);
function n() {
return P(this, n), t.call(this);
}
return j(n, [{
key: `toString`,
value: function() {
return `<\\omit>`;
}
}]), n;
}(F.Command.Twocell.Nudge), F.Command.Twocell.Arrow = function e() {
P(this, e);
}, F.Command.Twocell.Arrow.WithOrientation = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
var i;
return P(this, n), (i = t.call(this)).tok = e, i.labelObject = r, i;
}
return j(n, [{
key: `toString`,
value: function() {
return `{[` + this.tok + `] ` + this.labelObject + `}`;
}
}]), n;
}(F.Command.Twocell.Arrow), F.Command.Twocell.Arrow.WithPosition = function(e) {
M(n, e);
var t = N(n);
function n(e, r) {
var i;
return P(this, n), (i = t.call(this)).nudge = e, i.labelObject = r, i;
}
return j(n, [{
key: `toString`,
value: function() {
return `{[` + this.nudge + `] ` + this.labelObject + `}`;
}
}]), n;
}(F.Command.Twocell.Arrow), F.Command.Newdir = function() {
function e(t, n) {
P(this, e), this.dirMain = t, this.compositeObject = n;
}
return j(e, [{
key: `toString`,
value: function() {
return `\\newdir{` + this.dirMain + `}{` + this.compositeObject + `}`;
}
}]), e;
}(), F.Pos.Xyimport = function e() {
P(this, e);
}, F.Pos.Xyimport.TeXCommand = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i, a, o) {
var s;
return P(this, n), (s = t.call(this)).width = e, s.height = r, s.xOffset = i, s.yOffset = a, s.graphics = o, s;
}
return j(n, [{
key: `toString`,
value: function() {
return `\\xyimport(` + this.width + `, ` + this.height + `)(` + this.xOffset + `, ` + this.yOffset + `){` + this.graphics + `}`;
}
}]), n;
}(F.Pos.Xyimport), F.Pos.Xyimport.Graphics = function(e) {
M(n, e);
var t = N(n);
function n(e, r, i, a, o) {
var s;
return P(this, n), (s = t.call(this)).width = e, s.height = r, s.xOffset = i, s.yOffset = a, s.graphics = o, s;
}
return j(n, [{
key: `toString`,
value: function() {
return `\\xyimport(` + this.width + `, ` + this.height + `)(` + this.xOffset + `, ` + this.yOffset + `){` + this.graphics + `}`;
}
}]), n;
}(F.Pos.Xyimport), F.Command.Includegraphics = function() {
function e(t, n, r) {
P(this, e), this.isClipped = t, this.attributeList = n, this.filepath = r;
}
return j(e, [{
key: `isIncludegraphics`,
get: function() {
return !0;
}
}, {
key: `toString`,
value: function() {
return `\\includegraphics` + (this.isClipped ? `*` : ``) + this.attributeList.mkString(`[`, `,`, `]`) + `{` + this.filepath + `}`;
}
}]), e;
}(), F.Command.Includegraphics.Attr = function e() {
P(this, e);
}, F.Command.Includegraphics.Attr.Width = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).dimen = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `width=` + this.dimen;
}
}]), n;
}(F.Command.Includegraphics.Attr), F.Command.Includegraphics.Attr.Height = function(e) {
M(n, e);
var t = N(n);
function n(e) {
var r;
return P(this, n), (r = t.call(this)).dimen = e, r;
}
return j(n, [{
key: `toString`,
value: function() {
return `height=` + this.dimen;
}
}]), n;
}(F.Command.Includegraphics.Attr);
var I = k.fun, Ue = k.elem, We = function(e) {
return I(k.elem(e));
}, L = k.literal, Ge = k.regex, Ke = k.regexLiteral, R = function(e) {
return I(k.literal(e));
}, qe = k.seq, z = k.or, Je = function(e) {
return k.lazyParser(e)().rep();
}, Ye = function(e) {
return k.lazyParser(e)().rep1();
}, Xe = function(e) {
return k.lazyParser(e)().opt();
}, Ze = k.success, B = function(e) {
return function() {
var t = e.memo;
return t === void 0 && (t = e.memo = e()), t;
};
}, V = new k(), Qe = {
xy: B((function() {
return V.posDecor().to((function(e) {
return e;
}));
})),
xybox: B((function() {
return L(`{`).andr(V.posDecor).andl(R(`}`)).to((function(e) {
return e;
}));
})),
xymatrixbox: B((function() {
return V.xymatrix().to((function(e) {
return new F.PosDecor(new F.Pos.Coord(new F.Coord.C(), O.empty), new F.Decor(O.empty.append(e)));
}));
})),
posDecor: B((function() {
return qe(V.pos, V.decor).to((function(e) {
return new F.PosDecor(e.head, e.tail);
}));
})),
pos: B((function() {
return qe(V.coord, Je(V.pos2)).to((function(e) {
return new F.Pos.Coord(e.head, e.tail);
}));
})),
nonemptyPos: B((function() {
return z(qe(V.nonemptyCoord, Je(V.pos2)), qe(V.coord, Ye(V.pos2))).to((function(e) {
return new F.Pos.Coord(e.head, e.tail);
}));
})),
pos2: B((function() {
return z(L(`+`).andr(V.coord).to((function(e) {
return new F.Pos.Plus(e);
})), L(`-`).andr(V.coord).to((function(e) {
return new F.Pos.Minus(e);
})), L(`!`).andr(V.coord).to((function(e) {
return new F.Pos.Skew(e);
})), L(`.`).andr(V.coord).to((function(e) {
return new F.Pos.Cover(e);
})), L(`,`).andr(V.coord).to((function(e) {
return new F.Pos.Then(e);
})), L(`;`).andr(V.coord).to((function(e) {
return new F.Pos.SwapPAndC(e);
})), L(`::`).andr(V.coord).to((function(e) {
return new F.Pos.SetYBase(e);
})), L(`:`).andr(V.coord).to((function(e) {
return new F.Pos.SetBase(e);
})), L(`**`).andr(V.object).to((function(e) {
return new F.Pos.ConnectObject(e);
})), L(`*`).andr(V.object).to((function(e) {
return new F.Pos.DropObject(e);
})), L(`?`).andr(V.place).to((function(e) {
return new F.Pos.Place(e);
})), L(`@+`).andr(V.coord).to((function(e) {
return new F.Pos.PushCoord(e);
})), L(`@-`).andr(V.coord).to((function(e) {
return new F.Pos.EvalCoordThenPop(e);
})), L(`@=`).andr(V.coord).to((function(e) {
return new F.Pos.LoadStack(e);
})), L(`@@`).andr(V.coord).to((function(e) {
return new F.Pos.DoCoord(e);
})), L(`@i`).to((function() {
return new F.Pos.InitStack();
})), L(`@(`).to((function() {
return new F.Pos.EnterFrame();
})), L(`@)`).to((function() {
return new F.Pos.LeaveFrame();
})), L(`=:`).andr(R(`"`)).andr(V.id).andl(We(`"`)).to((function(e) {
return new F.Pos.SaveBase(e);
})), L(`=@`).andr(R(`"`)).andr(V.id).andl(We(`"`)).to((function(e) {
return new F.Pos.SaveStack(e);
})), L(`=`).andr(R(`"`)).andr(V.id).andl(We(`"`)).to((function(e) {
return new F.Pos.SavePos(e);
})), L(`=`).andr(V.nonemptyCoord).andl(R(`"`)).and(V.id).andl(We(`"`)).to((function(e) {
return new F.Pos.SaveMacro(e.head, e.tail);
})), V.xyimport);
})),
coord: B((function() {
return z(V.nonemptyCoord, Ze(`empty`).to((function() {
return new F.Coord.C();
})));
})),
nonemptyCoord: B((function() {
return z(L(`c`).to((function() {
return new F.Coord.C();
})), L(`p`).to((function() {
return new F.Coord.P();
})), L(`x`).to((function() {
return new F.Coord.X();
})), L(`y`).to((function() {
return new F.Coord.Y();
})), V.vector().to((function(e) {
return new F.Coord.Vector(e);
})), L(`"`).andr(V.id).andl(We(`"`)).to((function(e) {
return new F.Coord.Id(e);
})), L(`{`).andr(V.posDecor).andl(R(`}`)).to((function(e) {
return new F.Coord.Group(e);
})), L(`s`).andr(I(Ke(/^\d/))).to((function(e) {
return new F.Coord.StackPosition(parseInt(e));
})), L(`s`).andr(R(`{`)).and(V.nonnegativeNumber).andl(R(`}`)).to((function(e) {
return new F.Coord.StackPosition(e);
})), L(`[`).andr(I(Xe(L(`"`).andr(V.id).andl(We(`"`))).to((function(e) {
return e.getOrElse(``);
})))).and(V.number).andl(R(`,`)).and(V.number).andl(R(`]`)).to((function(e) {
return new F.Coord.DeltaRowColumn(e.head.head, e.head.tail, e.tail);
})), L(`[`).andr(I(Xe(L(`"`).andr(V.id).andl(We(`"`))).to((function(e) {
return e.getOrElse(``);
})))).and(I(Je(Ge(/^[lrud]/)))).andl(R(`]`)).to((function(e) {
return new F.Coord.Hops(e.head, e.tail);
})), L(`[`).andr(I(Xe(L(`"`).andr(V.id).andl(We(`"`))).to((function(e) {
return e.getOrElse(``);
})))).and(I(Ye(Ge(/^[lrud]/)))).and(V.place).andl(R(`]`)).to((function(e) {
return new F.Coord.DeltaRowColumn(e.head.head, e.head.tail, new F.Pos.Place(e.tail));
})));
})),
vector: B((function() {
return z(L(`(`).andr(V.factor).andl(R(`,`)).and(V.factor).andl(R(`)`)).to((function(e) {
return new F.Vector.InCurBase(e.head, e.tail);
})), L(`<`).andr(V.dimen).andl(R(`,`)).and(V.dimen).andl(R(`>`)).to((function(e) {
return new F.Vector.Abs(e.head, e.tail);
})), L(`<`).andr(V.dimen).andl(R(`>`)).to((function(e) {
return new F.Vector.Abs(e, e);
})), L(`a`).andr(R(`(`)).andr(V.number).andl(R(`)`)).to((function(e) {
return new F.Vector.Angle(e);
})), L(`/`).andr(V.direction).and(V.looseDimen).andl(R(`/`)).to((function(e) {
return new F.Vector.Dir(e.head, e.tail);
})), L(`0`).to((function(e) {
return new F.Vector.Abs(`0mm`, `0mm`);
})), (function() {
return V.corner().and(I(k.opt(I(L(`(`).andr(V.factor).andl(R(`)`)))).to((function(e) {
return e.getOrElse(1);
})))).to((function(e) {
return new F.Vector.Corner(e.head, e.tail);
}));
}));
})),
corner: B((function() {
return z(Ke(/^(CL|LC)/).to((function() {
return new F.Corner.CL();
})), Ke(/^(CR|RC)/).to((function() {
return new F.Corner.CR();
})), Ke(/^(CD|DC)/).to((function() {
return new F.Corner.CD();
})), Ke(/^(CU|UC)/).to((function() {
return new F.Corner.CU();
})), Ke(/^(LD|DL)/).to((function() {
return new F.Corner.LD();
})), Ke(/^(RD|DR)/).to((function() {
return new F.Corner.RD();
})), Ke(/^(LU|UL)/).to((function() {
return new F.Corner.LU();
})), Ke(/^(RU|UR)/).to((function() {
return new F.Corner.RU();
})), L(`L`).to((function() {
return new F.Corner.L();
})), L(`R`).to((function() {
return new F.Corner.R();
})), L(`D`).to((function() {
return new F.Corner.D();
})), L(`U`).to((function() {
return new F.Corner.U();
})), L(`E`).to((function() {
return new F.Corner.NearestEdgePoint();
})), L(`P`).to((function() {
return new F.Corner.PropEdgePoint();
})), L(`A`).to((function() {
return new F.Corner.Axis();
})));
})),
place: B((function() {
return z(L(`<`).andr(V.place).to((function(e) {
return new F.Place(1, 0, void 0, void 0).compound(e);
})), L(`>`).andr(V.place).to((function(e) {
return new F.Place(0, 1, void 0, void 0).compound(e);
})), L(`(`).andr(V.factor).andl(R(`)`)).and(V.place).to((function(e) {
return new F.Place(0, 0, new F.Place.Factor(e.head), void 0).compound(e.tail);
})), L(`!`).andr(R(`{`)).andr(V.pos).andl(R(`}`)).and(V.slide).to((function(e) {
return new F.Place(0, 0, new F.Place.Intercept(e.head), e.tail);
})), (function() {
return V.slide().to((function(e) {
return new F.Place(0, 0, void 0, e);
}));
}));
})),
slide: B((function() {
return z(L(`/`).andr(V.dimen).andl(R(`/`)).to((function(e) {
return new F.Slide(new y.Some(e));
})), Ze(`no slide`).to((function() {
return new F.Slide(y.empty);
})));
})),
factor: B(I(Ke(/^[+\-]?(\d+(\.\d*)?|\d*\.\d+)/).to((function(e) {
return parseFloat(e);
})))),
number: B(I(Ke(/^[+\-]?\d+/).to((function(e) {
return parseInt(e);
})))),
nonnegativeNumber: B(I(Ke(/^\d+/).to((function(e) {
return parseInt(e);
})))),
unit: B(I(Ke(/^(em|ex|px|pt|pc|in|cm|mm|mu)/).to((function(e) {
return e;
})))),
dimen: B((function() {
return V.factor().and(V.unit).to((function(e) {
return e.head.toString() + e.tail;
}));
})),
looseDimen: B((function() {
return V.looseFactor().and(V.unit).to((function(e) {
return e.head.toString() + e.tail;
}));
})),
looseFactor: B(I(z(Ke(/^(\d \d*(\.\d*))/).to((function(e) {
return parseFloat(e.replace(/ /, ``));
})), Ke(/^[+\-]?(\d+(\.\d*)?|\d*\.\d+)/).to((function(e) {
return parseFloat(e);
}))))),
id: B(I(Ge(/^[^"]+/))),
object: B((function() {
return z(Je(V.modifier).and(V.objectbox).to((function(e) {
return new F.Object(e.head, e.tail);
})));
})),
objectbox: B((function() {
return z(V.mathText, L(`@`).andr(V.dir), L(`\\dir`).andr(V.dir), L(`\\cir`).andr(V.cirRadius).andl(R(`{`)).and(V.cir).andl(R(`}`)).to((function(e) {
return new F.ObjectBox.Cir(e.head, e.tail);
})), L(`\\frm`).andr(V.frameRadius).andl(R(`{`)).and(V.frameMain).andl(R(`}`)).to((function(e) {
return new F.ObjectBox.Frame(e.head, e.tail);
})), L(`\\object`).andr(V.object).to((function(e) {
return new F.ObjectBox.WrapUpObject(e);
})), L(`\\composite`).and(R(`{`)).andr(V.compositeObject).andl(R(`}`)).to((function(e) {
return new F.ObjectBox.CompositeObject(e);
})), L(`\\xybox`).and(R(`{`)).andr(V.posDecor).andl(R(`}`)).to((function(e) {
return new F.ObjectBox.Xybox(e);
})), L(`\\xymatrix`).andr(V.xymatrix).to((function(e) {
return new F.ObjectBox.Xymatrix(e);
})), V.txt, V.curve, Ge(/^(\\[a-zA-Z@][a-zA-Z0-9@]+)/).andl(R(`{`)).and(V.text).andl(R(`}`)).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail;
return V.toMath(t.head + `{` + t.tail + `}`, n);
})));
})),
compositeObject: B((function() {
return V.object().and(I(Je(L(`*`).andr(V.object)))).to((function(e) {
return e.tail.prepend(e.head);
}));
})),
mathText: B((function() {
return L(`{`).andr(V.text).andl(We(`}`)).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail;
return V.toMath(`\\hbox{$\\objectstyle{` + t + `}$}`, n);
}));
})),
toMath: function(e, t) {
var n = t(e);
return new F.ObjectBox.Text(n);
},
textNodeCreator: B((function() {
return new k.Parser((function(e) {
return new k.Success(e.context.createTextNode, e);
}));
})),
text: B((function() {
return Ge(/^[^{}\\%]*/).and((function() {
return z(Ge(/^(\\\{|\\\}|\\%|\\)/).to((function(e) {
return e;
})), Ue(`{`).andr(V.text).andl(We(`}`)).to((function(e) {
return `{` + e + `}`;
})), Ge(/^%[^\r\n]*(\r\n|\r|\n)?/).to((function(e) {
return ` `;
}))).and(I(Ge(/^[^{}\\%]*/))).rep().to((function(e) {
var t = ``;
return e.foreach((function(e) {
t += e.head + e.tail;
})), t;
}));
})).to((function(e) {
return e.head + e.tail;
}));
})),
txt: B((function() {
return L(`\\txt`).andr(V.txtWidth).and(I(Ge(/^(\\[a-zA-Z@][a-zA-Z0-9@]+)?/))).andl(R(`{`)).and(V.text).andl(R(`}`)).and(V.textNodeCreator).to((function(e) {
var t, n = e.head, r = e.tail, i = n.head.head, a = n.head.tail, o = n.tail, s = o.split(`\\\\`);
if (s.length <= 1) t = a + `{\\hbox{` + o + `}}`;
else {
t = `\\hbox{$\\begin{array}{c}
`;
for (var c = 0; c < s.length; c++) t += a + `{\\hbox{` + s[c].replace(/(^[\r\n\s]+)|([\r\n\s]+$)/g, ``) + `}}`, c != s.length - 1 && (t += `\\\\
`);
t += `\\end{array}$}`;
}
return new F.ObjectBox.Txt(i, V.toMath(t, r));
}));
})),
txtWidth: B((function() {
return z(L(`<`).andr(V.dimen).andl(R(`>`)).to((function(e) {
return new F.Vector.Abs(e, e);
})).to((function(e) {
return new F.ObjectBox.Txt.Width.Vector(e);
})), Ze(`default`).to((function() {
return new F.ObjectBox.Txt.Width.Default();
})));
})),
dir: B((function() {
return Ke(/^[\^_0123]/).opt().andl(R(`{`)).and(V.dirMain).andl(R(`}`)).to((function(e) {
return new F.ObjectBox.Dir(e.head.getOrElse(``), e.tail);
}));
})),
dirMain: B((function() {
return Ge(/^(-|\.|~|>|<|\(|\)|`|'|\||\*|\+|x|\/|o|=|:|[a-zA-Z@ ])+/).opt().to((function(e) {
return e.getOrElse(``);
}));
})),
cirRadius: B((function() {
return z(V.vector().to((function(e) {
return new F.ObjectBox.Cir.Radius.Vector(e);
})), Ze(`default`).to((function() {
return new F.ObjectBox.Cir.Radius.Default();
})));
})),
frameRadius: B((function() {
return z(V.frameRadiusVector().to((function(e) {
return new F.ObjectBox.Frame.Radius.Vector(e);
})), Ze(`default`).to((function() {
return new F.ObjectBox.Frame.Radius.Default();
})));
})),
frameRadiusVector: B((function() {
return z(L(`<`).andr(V.dimen).andl(R(`,`)).and(V.dimen).andl(R(`>`)).to((function(e) {
return new F.Vector.Abs(e.head, e.tail);
})), L(`<`).andr(V.dimen).andl(R(`>`)).to((function(e) {
return new F.Vector.Abs(e, e);
})));
})),
frameMain: B((function() {
return Ge(/^(((_|\^)?(\\\{|\\\}|\(|\)))|[\-=oe,\.\*]*)/);
})),
cir: B((function() {
return z(V.nonemptyCir, Ze(`full`).to((function() {
return new F.ObjectBox.Cir.Cir.Full();
})));
})),
nonemptyCir: B((function() {
return V.diag().and(I(Ke(/^[_\^]/))).and(V.diag).to((function(e) {
return new F.ObjectBox.Cir.Cir.Segment(e.head.head, e.head.tail, e.tail);
}));
})),
curve: B((function() {
return L(`\\crv`).andr(V.curveModifier).andl(R(`{`)).and(V.curveObject).and(V.curvePoslist).andl(R(`}`)).to((function(e) {
return new F.ObjectBox.Curve(e.head.head, e.head.tail, e.tail);
}));
})),
curveModifier: B((function() {
return Je(I(L(`~`).andr(V.curveOption)));
})),
curveOption: B((function() {
return z(L(`p`).to((function() {
return new F.ObjectBox.Curve.Modifier.p();
})), L(`P`).to((function() {
return new F.ObjectBox.Curve.Modifier.P();
})), L(`l`).to((function() {
return new F.ObjectBox.Curve.Modifier.l();
})), L(`L`).to((function() {
return new F.ObjectBox.Curve.Modifier.L();
})), L(`c`).to((function() {
return new F.ObjectBox.Curve.Modifier.c();
})), L(`C`).to((function() {
return new F.ObjectBox.Curve.Modifier.C();
})), L(`pc`).to((function() {
return new F.ObjectBox.Curve.Modifier.pc();
})), L(`pC`).to((function() {
return new F.ObjectBox.Curve.Modifier.pC();
})), L(`Pc`).to((function() {
return new F.ObjectBox.Curve.Modifier.Pc();
})), L(`PC`).to((function() {
return new F.ObjectBox.Curve.Modifier.PC();
})), L(`lc`).to((function() {
return new F.ObjectBox.Curve.Modifier.lc();
})), L(`lC`).to((function() {
return new F.ObjectBox.Curve.Modifier.lC();
})), L(`Lc`).to((function() {
return new F.ObjectBox.Curve.Modifier.Lc();
})), L(`LC`).to((function() {
return new F.ObjectBox.Curve.Modifier.LC();
})), L(`cC`).to((function() {
return new F.ObjectBox.Curve.Modifier.cC();
})));
})),
curveObject: B((function() {
return Je(z(L(`~*`).andr(V.object).to((function(e) {
return new F.ObjectBox.Curve.Object.Drop(e);
})), L(`~**`).andr(V.object).to((function(e) {
return new F.ObjectBox.Curve.Object.Connect(e);
}))));
})),
curvePoslist: B((function() {
return z(L(`&`).andr(V.curvePoslist2).to((function(e) {
return e.prepend(new F.ObjectBox.Curve.PosList.CurPos());
})), L(`~@`).andr(R(`&`)).andr(V.curvePoslist2).to((function(e) {
return e.prepend(new F.ObjectBox.Curve.PosList.AddStack());
})), L(`~@`).to((function() {
return O.empty.prepend(new F.ObjectBox.Curve.PosList.AddStack());
})), V.pos().andl(R(`&`)).and(V.curvePoslist2).to((function(e) {
return e.tail.prepend(new F.ObjectBox.Curve.PosList.Pos(e.head));
})), V.nonemptyPos().to((function(e) {
return O.empty.prepend(new F.ObjectBox.Curve.PosList.Pos(e));
})), Ze(`empty`).to((function() {
return O.empty;
})));
})),
curvePoslist2: B((function() {
return z(L(`&`).andr(V.curvePoslist2).to((function(e) {
return e.prepend(new F.ObjectBox.Curve.PosList.CurPos());
})), L(`~@`).andr(R(`&`)).andr(V.curvePoslist2).to((function(e) {
return e.prepend(new F.ObjectBox.Curve.PosList.AddStack());
})), L(`~@`).to((function() {
return O.empty.prepend(new F.ObjectBox.Curve.PosList.AddStack());
})), V.nonemptyPos().andl(R(`&`)).and(V.curvePoslist2).to((function(e) {
return e.tail.prepend(new F.ObjectBox.Curve.PosList.Pos(e.head));
})), V.nonemptyPos().to((function(e) {
return O.empty.prepend(new F.ObjectBox.Curve.PosList.Pos(e));
})), Ze(`empty`).to((function() {
return O.empty.prepend(new F.ObjectBox.Curve.PosList.CurPos());
})));
})),
modifier: B((function() {
return z(L(`!`).andr(V.vector).to((function(e) {
return new F.Modifier.Vector(e);
})), L(`!`).to((function(e) {
return new F.Modifier.RestoreOriginalRefPoint();
})), L(`[`).andr(V.shape).andl(R(`]`)).to((function(e) {
return e;
})), L(`i`).to((function(e) {
return new F.Modifier.Invisible();
})), L(`h`).to((function(e) {
return new F.Modifier.Hidden();
})), V.addOp().and(V.size).to((function(e) {
return new F.Modifier.AddOp(e.head, e.tail);
})), V.nonemptyDirection().to((function(e) {
return new F.Modifier.Direction(e);
})));
})),
addOp: B((function() {
return z(L(`+=`).to((function() {
return new F.Modifier.AddOp.GrowTo();
})), L(`-=`).to((function() {
return new F.Modifier.AddOp.ShrinkTo();
})), L(`+`).to((function() {
return new F.Modifier.AddOp.Grow();
})), L(`-`).to((function() {
return new F.Modifier.AddOp.Shrink();
})), L(`=`).to((function() {
return new F.Modifier.AddOp.Set();
})));
})),
size: B((function() {
return z((function() {
return V.vector().to((function(e) {
return new F.Modifier.AddOp.VactorSize(e);
}));
}), Ze(`default size`).to((function() {
return new F.Modifier.AddOp.DefaultSize();
})));
})),
shape: B((function() {
return z(L(`.`).to((function() {
return new F.Modifier.Shape.Point();
})), V.frameShape, V.alphabets().to((function(e) {
return new F.Modifier.Shape.Alphabets(e);
})), L(`=`).andr(V.alphabets).to((function(e) {
return new F.Modifier.Shape.DefineShape(e);
})), Ze(`rect`).to((function() {
return new F.Modifier.Shape.Rect();
})));
})),
frameShape: B((function() {
return L(`F`).andr(V.frameMain).and(I(Je(L(`:`).andr(I(z(V.frameRadiusVector().to((function(e) {
return new F.Modifier.Shape.Frame.Radius(e);
})), V.colorName().to((function(e) {
return new F.Modifier.Shape.Frame.Color(e);
})))))))).to((function(e) {
var t = e.head;
return t === `` && (t = `-`), new F.Modifier.Shape.Frame(t, e.tail);
}));
})),
alphabets: B((function() {
return Ge(/^([a-zA-Z]+)/);
})),
colorName: B((function() {
return Ge(/^([a-zA-Z][a-zA-Z0-9]*)/);
})),
direction: B((function() {
return qe(V.direction0, Je(V.direction1)).to((function(e) {
return new F.Direction.Compound(e.head, e.tail);
}));
})),
direction0: B((function() {
return z(V.direction2, V.diag().to((function(e) {
return new F.Direction.Diag(e);
})));
})),
direction1: B((function() {
return z(L(`:`).andr(V.vector).to((function(e) {
return new F.Direction.RotVector(e);
})), L(`_`).to((function(e) {
return new F.Direction.RotAntiCW();
})), L(`^`).to((function(e) {
return new F.Direction.RotCW();
})));
})),
direction2: B((function() {
return z(L(`v`).andr(V.vector).to((function(e) {
return new F.Direction.Vector(e);
})), L(`q`).andr(R(`{`)).andr(V.posDecor).andl(R(`}`)).to((function(e) {
return new F.Direction.ConstructVector(e);
})));
})),
nonemptyDirection: B((function() {
return z(qe(V.nonemptyDirection0, Je(V.direction1)), qe(V.direction0, Ye(V.direction1))).to((function(e) {
return new F.Direction.Compound(e.head, e.tail);
}));
})),
nonemptyDirection0: B((function() {
return z(V.direction2, V.nonemptyDiag().to((function(e) {
return new F.Direction.Diag(e);
})));
})),
diag: B((function() {
return z(V.nonemptyDiag, Ze(`empty`).to((function(e) {
return new F.Diag.Default();
})));
})),
nonemptyDiag: B((function() {
return z(Ke(/^(ld|dl)/).to((function(e) {
return new F.Diag.LD();
})), Ke(/^(rd|dr)/).to((function(e) {
return new F.Diag.RD();
})), Ke(/^(lu|ul)/).to((function(e) {
return new F.Diag.LU();
})), Ke(/^(ru|ur)/).to((function(e) {
return new F.Diag.RU();
})), L(`l`).to((function(e) {
return new F.Diag.L();
})), L(`r`).to((function(e) {
return new F.Diag.R();
})), L(`d`).to((function(e) {
return new F.Diag.D();
})), L(`u`).to((function(e) {
return new F.Diag.U();
})));
})),
decor: B((function() {
return V.command().rep().to((function(e) {
return new F.Decor(e);
}));
})),
command: B((function() {
return z(L(`\\ar`).andr(I(Je(V.arrowForm))).and(V.path).to((function(e) {
return new F.Command.Ar(e.head, e.tail);
})), L(`\\xymatrix`).andr(V.xymatrix), L(`\\PATH`).andr(V.path).to((function(e) {
return new F.Command.Path(e);
})), L(`\\afterPATH`).andr(R(`{`)).andr(V.decor).andl(R(`}`)).and(V.path).to((function(e) {
return new F.Command.AfterPath(e.head, e.tail);
})), L(`\\save`).andr(V.pos).to((function(e) {
return new F.Command.Save(e);
})), L(`\\restore`).to((function() {
return new F.Command.Restore();
})), L(`\\POS`).andr(V.pos).to((function(e) {
return new F.Command.Pos(e);
})), L(`\\afterPOS`).andr(R(`{`)).andr(V.decor).andl(R(`}`)).and(V.pos).to((function(e) {
return new F.Command.AfterPos(e.head, e.tail);
})), L(`\\drop`).andr(V.object).to((function(e) {
return new F.Command.Drop(e);
})), L(`\\connect`).andr(V.object).to((function(e) {
return new F.Command.Connect(e);
})), L(`\\relax`).to((function() {
return new F.Command.Relax();
})), L(`\\xyignore`).andr(R(`{`)).andr(V.pos).and(V.decor).andl(R(`}`)).to((function(e) {
return new F.Command.Ignore(e.head, e.tail);
})), L(`\\xyshowAST`).andr(R(`{`)).andr(V.pos).and(V.decor).andl(R(`}`)).to((function(e) {
return new F.Command.ShowAST(e.head, e.tail);
})), V.twocellCommand);
})),
arrowForm: B((function() {
return z(L(`@`).andr(I(Ge(/^([\-\.~=:])/))).to((function(e) {
return new F.Command.Ar.Form.ChangeStem(e);
})), L(`@`).andr(R(`!`)).to((function(e) {
return new F.Command.Ar.Form.DashArrowStem();
})), L(`@`).andr(R(`/`)).andr(V.direction).and(I(Xe(V.looseDimen))).andl(R(`/`)).to((function(e) {
return new F.Command.Ar.Form.CurveArrow(e.head, e.tail.getOrElse(`.5pc`));
})), L(`@`).andr(R(`(`)).andr(V.direction).andl(R(`,`)).and(V.direction).andl(R(`)`)).to((function(e) {
return new F.Command.Ar.Form.CurveFitToDirection(e.head, e.tail);
})), L(`@`).andr(R("`")).andr(V.coord).to((function(e) {
return new F.Command.Ar.Form.CurveWithControlPoints(e);
})), L(`@`).andr(R(`[`)).andr(V.shape).andl(R(`]`)).to((function(e) {
return new F.Command.Ar.Form.AddShape(e);
})), L(`@`).andr(R(`*`)).andr(R(`{`)).andr(I(Je(V.modifier))).andl(R(`}`)).to((function(e) {
return new F.Command.Ar.Form.AddModifiers(e);
})), L(`@`).andr(R(`<`)).andr(V.dimen).andl(R(`>`)).to((function(e) {
return new F.Command.Ar.Form.Slide(e);
})), L(`|`).andr(V.anchor).and(V.it).to((function(e) {
return new F.Command.Ar.Form.LabelAt(e.head, e.tail);
})), L(`^`).andr(V.anchor).and(V.it).to((function(e) {
return new F.Command.Ar.Form.LabelAbove(e.head, e.tail);
})), L(`_`).andr(V.anchor).and(V.it).to((function(e) {
return new F.Command.Ar.Form.LabelBelow(e.head, e.tail);
})), L(`@`).andr(R(`?`)).to((function() {
return new F.Command.Ar.Form.ReverseAboveAndBelow();
})), L(`@`).andr(I(Ge(/^([\^_0123])/).opt())).and(I(Xe(V.tipConnTip))).to((function(e) {
var t = e.head.getOrElse(``);
if (e.tail.isDefined) {
var n = e.tail.get;
return new F.Command.Ar.Form.BuildArrow(t, n.tail, n.stem, n.head);
}
return new F.Command.Ar.Form.ChangeVariant(t);
})));
})),
tipConnTip: B((function() {
return L(`{`).andr(I(Xe(V.nonemptyTip))).and(I(Xe(V.nonemptyConn))).and(I(Xe(V.nonemptyTip))).andl(R(`}`)).to((function(e) {
var t, n, r, i = e.head.head, a = e.head.tail, o = e.tail, s = new F.Command.Ar.Form.Tip.Tipchars(``);
return a.isDefined || o.isDefined ? (t = i.getOrElse(s), n = a.getOrElse(new F.Command.Ar.Form.Conn.Connchars(``)), r = o.getOrElse(s)) : i.isDefined ? (t = s, n = new F.Command.Ar.Form.Conn.Connchars(`-`), r = i.getOrElse(s)) : (t = s, n = new F.Command.Ar.Form.Conn.Connchars(``), r = s), {
tail: t,
stem: n,
head: r
};
}));
})),
nonemptyTip: B((function() {
return z(Ge(/^([<>()|'`+\/a-zA-Z ]+)/).to((function(e) {
return new F.Command.Ar.Form.Tip.Tipchars(e);
})), L(`*`).andr(V.object).to((function(e) {
return new F.Command.Ar.Form.Tip.Object(e);
})), V.dir().to((function(e) {
return new F.Command.Ar.Form.Tip.Dir(e);
})));
})),
nonemptyConn: B((function() {
return z(Ge(/^([\-\.~=:]+)/).to((function(e) {
return new F.Command.Ar.Form.Conn.Connchars(e);
})), L(`*`).andr(V.object).to((function(e) {
return new F.Command.Ar.Form.Conn.Object(e);
})), V.dir().to((function(e) {
return new F.Command.Ar.Form.Conn.Dir(e);
})));
})),
path: B((function() {
return V.path2(O.empty).to((function(e) {
return new F.Command.Path.Path(e);
}));
})),
path2: function(e) {
var t = B((function() {
return V.path2(e);
}));
return z(V.path3().and(t).to((function(e) {
return e.tail.prepend(e.head);
})), qe(`~`, `{`, t, `}`).to((function(e) {
return e.head.tail;
})).into((function(e) {
return V.path2(e);
})), V.segment().to((function(e) {
return O.empty.prepend(new F.Command.Path.LastSegment(e));
})), Ze(e).to((function(e) {
return e;
})));
},
path3: B((function() {
return z(qe(`~`, `=`, `{`, V.posDecor, `}`).to((function(e) {
return new F.Command.Path.SetBeforeAction(e.head.tail);
})), qe(`~`, `/`, `{`, V.posDecor, `}`).to((function(e) {
return new F.Command.Path.SetAfterAction(e.head.tail);
})), qe(`~`, `<`, `{`, V.labels, `}`).to((function(e) {
return new F.Command.Path.AddLabelNextSegmentOnly(e.head.tail);
})), qe(`~`, `>`, `{`, V.labels, `}`).to((function(e) {
return new F.Command.Path.AddLabelLastSegmentOnly(e.head.tail);
})), qe(`~`, `+`, `{`, V.labels, `}`).to((function(e) {
return new F.Command.Path.AddLabelEverySegment(e.head.tail);
})), qe(`'`, V.segment).to((function(e) {
return new F.Command.Path.StraightSegment(e.tail);
})), qe("`", V.turn, V.segment).to((function(e) {
return new F.Command.Path.TurningSegment(e.head.tail, e.tail);
})));
})),
turn: B((function() {
return z(V.nonemptyCir().and(V.turnRadius).to((function(e) {
return new F.Command.Path.Turn.Cir(e.head, e.tail);
})), V.diag().and(V.turnRadius).to((function(e) {
return new F.Command.Path.Turn.Diag(e.head, e.tail);
})));
})),
turnRadius: B((function() {
return z(L(`/`).andr(V.dimen).to((function(e) {
return new F.Command.Path.TurnRadius.Dimen(e);
})), Ze(`default`).to((function() {
return new F.Command.Path.TurnRadius.Default();
})));
})),
segment: B((function() {
return V.nonemptyPos().and(V.pathSlide).and(V.labels).to((function(e) {
return new F.Command.Path.Segment(e.head.head, e.head.tail, e.tail);
}));
})),
pathSlide: B((function() {
return z(L(`<`).andr(V.dimen).andl(R(`>`)).to((function(e) {
return new F.Slide(new y.Some(e));
})), Ze(`no slide`).to((function() {
return new F.Slide(y.empty);
})));
})),
labels: B((function() {
return V.label().rep().to((function(e) {
return new F.Command.Path.Labels(e);
}));
})),
label: B((function() {
return z(qe(`^`, V.anchor, V.it, V.alias).to((function(e) {
return new F.Command.Path.Label.Above(new F.Pos.Place(e.head.head.tail), e.head.tail, e.tail);
})), qe(`_`, V.anchor, V.it, V.alias).to((function(e) {
return new F.Command.Path.Label.Below(new F.Pos.Place(e.head.head.tail), e.head.tail, e.tail);
})), qe(`|`, V.anchor, V.it, V.alias).to((function(e) {
return new F.Command.Path.Label.At(new F.Pos.Place(e.head.head.tail), e.head.tail, e.tail);
})));
})),
anchor: B((function() {
return z(L(`-`).andr(V.anchor).to((function(e) {
return new F.Place(1, 1, new F.Place.Factor(.5), void 0).compound(e);
})), V.place);
})),
it: B((function() {
return Je(L(`[`).andr(V.shape).andl(R(`]`)).to((function(e) {
return e;
}))).and(V.it2).to((function(e) {
return new F.Object(e.head.concat(e.tail.modifiers), e.tail.object);
}));
})),
it2: B((function() {
return z(Ke(/^[0-9a-zA-Z]/).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail;
return new F.Object(O.empty, V.toMath(`\\labelstyle ` + t, n));
})), Ke(/^(\\[a-zA-Z][a-zA-Z0-9]*)/).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail;
return new F.Object(O.empty, V.toMath(`\\labelstyle ` + t, n));
})), L(`{`).andr(V.text).andl(We(`}`)).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail;
return new F.Object(O.empty, V.toMath(`\\labelstyle ` + t, n));
})), L(`*`).andr(V.object), L(`@`).andr(V.dir).to((function(e) {
return new F.Object(O.empty, e);
})));
})),
alias: B((function() {
return qe(`=`, `"`, V.id, `"`).opt().to((function(e) {
return e.map((function(e) {
return e.head.tail;
}));
}));
})),
xymatrix: B((function() {
return V.setup().andl(R(`{`)).and(V.rows).andl(R(`}`)).to((function(e) {
return new F.Command.Xymatrix(e.head, e.tail);
}));
})),
setup: B((function() {
return Je(I(z(L(`"`).andr(I(Ge(/^[^"]+/))).andl(We(`"`)).to((function(e) {
return new F.Command.Xymatrix.Setup.Prefix(e);
})), L(`@!`).andr(I(Ge(/^[RC]/).opt().to((function(e) {
return e.getOrElse(``);
})))).and(I(z(Ue(`0`).to((function() {
return `0em`;
})), Ue(`=`).andr(V.dimen)))).to((function(e) {
var t = e.tail;
switch (e.head) {
case `R`: return new F.Command.Xymatrix.Setup.PretendEntrySize.Height(t);
case `C`: return new F.Command.Xymatrix.Setup.PretendEntrySize.Width(t);
default: return new F.Command.Xymatrix.Setup.PretendEntrySize.HeightAndWidth(t);
}
})), L(`@!`).andr(I(z(Ue(`R`).to((function() {
return new F.Command.Xymatrix.Setup.FixGrid.Row();
})), Ue(`C`).to((function() {
return new F.Command.Xymatrix.Setup.FixGrid.Column();
}))).opt().to((function(e) {
return e.getOrElse(new F.Command.Xymatrix.Setup.FixGrid.RowAndColumn());
})))), L(`@`).andr(I(Ge(/^[MWHL]/))).and(V.addOp).and(V.dimen).to((function(e) {
var t = e.head.tail, n = e.tail;
switch (e.head.head) {
case `M`: return new F.Command.Xymatrix.Setup.AdjustEntrySize.Margin(t, n);
case `W`: return new F.Command.Xymatrix.Setup.AdjustEntrySize.Width(t, n);
case `H`: return new F.Command.Xymatrix.Setup.AdjustEntrySize.Height(t, n);
case `L`: return new F.Command.Xymatrix.Setup.AdjustLabelSep(t, n);
}
})), L(`@`).andr(V.nonemptyDirection).to((function(e) {
return new F.Command.Xymatrix.Setup.SetOrientation(e);
})), L(`@*[`).andr(V.shape).andl(R(`]`)).to((function(e) {
return new F.Command.Xymatrix.Setup.AddModifier(e);
})), L(`@*`).andr(V.addOp).and(V.size).to((function(e) {
return new F.Command.Xymatrix.Setup.AddModifier(new F.Modifier.AddOp(e.head, e.tail));
})), L(`@`).andr(I(Ge(/^[RC]/).opt().to((function(e) {
return e.getOrElse(``);
})))).and(V.addOp).and(V.dimen).to((function(e) {
var t = e.head.tail, n = e.tail;
switch (e.head.head) {
case `R`: return new F.Command.Xymatrix.Setup.ChangeSpacing.Row(t, n);
case `C`: return new F.Command.Xymatrix.Setup.ChangeSpacing.Column(t, n);
default: return new F.Command.Xymatrix.Setup.ChangeSpacing.RowAndColumn(t, n);
}
})), L(`@1`).to((function() {
return new F.Command.Xymatrix.Setup.AdjustEntrySize.Margin(new F.Modifier.AddOp.Set(), `1pc`);
})))));
})),
rows: B((function() {
return V.row().and(I(Je(L(`\\\\`).andr(V.row)))).to((function(e) {
var t = e.tail.prepend(e.head);
if (!t.isEmpty) {
var n = t.at(t.length() - 1);
n.entries.length() === 1 && n.entries.at(0).isEmpty && (t = t.reverse().tail.reverse());
}
return t;
}));
})),
row: B((function() {
return V.entry().and(I(Je(L(`&`).andr(V.entry)))).to((function(e) {
return new F.Command.Xymatrix.Row(e.tail.prepend(e.head));
}));
})),
entry: B((function() {
return z(L(`*`).andr(V.object).and(V.pos).and(V.decor).to((function(e) {
var t = e.head.head, n = e.head.tail, r = e.tail;
return new F.Command.Xymatrix.Entry.ObjectEntry(t, n, r);
})), V.entryModifier().rep().and(V.looseObjectbox).and(V.decor).to((function(e) {
var t = e.head.head.foldLeft(O.empty, (function(e, t) {
return t.concat(e);
})), n = e.head.tail.isEmpty, r = e.head.tail.object, i = e.tail;
return n && t.isEmpty ? new F.Command.Xymatrix.Entry.EmptyEntry(i) : new F.Command.Xymatrix.Entry.SimpleEntry(t, r, i);
})));
})),
entryModifier: B((function() {
return z(L(`**`).andr(R(`[`)).andr(V.shape).andl(R(`]`)).to((function(e) {
return O.empty.append(e);
})), L(`**`).andr(R(`{`)).andr(I(Je(V.modifier))).andl(R(`}`)));
})),
looseObjectbox: B((function() {
return z(V.objectbox().to((function(e) {
return {
isEmpty: !1,
object: e
};
})), Ge(/^[^\\{}%&]+/).opt().to((function(e) {
return e.getOrElse(``);
})).and(I(Je(z(Ue(`{`).andr(V.text).andl(We(`}`)).to((function(e) {
return `{` + e + `}`;
})), Ue(`\\`).andr(I((e = Ge(/^(\\|ar|xymatrix|PATH|afterPATH|save|restore|POS|afterPOS|drop|connect|xyignore|([lrud]+(twocell|uppertwocell|lowertwocell|compositemap))|xtwocell|xuppertwocell|xlowertwocell|xcompositemap)/), k.not(k.lazyParser(e))))).andr(I(Ge(/^[{}%&]/).opt().to((function(e) {
return e.getOrElse(``);
})))).to((function(e) {
return `\\` + e;
})), Ge(/^%[^\r\n]*(\r\n|\r|\n)?/).to((function(e) {
return ` `;
}))).and(I(Ge(/^[^\\{}%&]+/).opt().to((function(e) {
return e.getOrElse(``);
})))).to((function(e) {
return e.head + e.tail;
}))).to((function(e) {
return e.mkString(``);
})))).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail, r = t.head + t.tail;
return {
isEmpty: r.trim().length === 0,
object: V.toMath(`\\hbox{$\\objectstyle{` + r + `}$}`, n)
};
})));
var e;
})),
twocellCommand: B((function() {
return V.twocell().and(I(Je(V.twocellSwitch))).and(V.twocellArrow).to((function(e) {
return new F.Command.Twocell(e.head.head, e.head.tail, e.tail);
}));
})),
twocell: B((function() {
return z(Ke(/^\\[lrud]+twocell/).to((function(e) {
var t = e.substring(1, e.length - 7);
return new F.Command.Twocell.Twocell(t, y.empty);
})), Ke(/^\\[lrud]+uppertwocell/).to((function(e) {
var t = e.substring(1, e.length - 12);
return new F.Command.Twocell.UpperTwocell(t, y.empty);
})), Ke(/^\\[lrud]+lowertwocell/).to((function(e) {
var t = e.substring(1, e.length - 12);
return new F.Command.Twocell.LowerTwocell(t, y.empty);
})), Ke(/^\\[lrud]+compositemap/).to((function(e) {
var t = e.substring(1, e.length - 12);
return new F.Command.Twocell.CompositeMap(t, y.empty);
})), z(L(`\\xtwocell`).to((function() {
return F.Command.Twocell.Twocell;
})), L(`\\xuppertwocell`).to((function() {
return F.Command.Twocell.UpperTwocell;
})), L(`\\xlowertwocell`).to((function() {
return F.Command.Twocell.LowerTwocell;
})), L(`\\xcompositemap`).to((function() {
return F.Command.Twocell.CompositeMap;
}))).andl(R(`[`)).and(I(Ge(/^[lrud]+/))).andl(R(`]`)).andl(R(`{`)).and(V.text).andl(R(`}`)).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail, r = new F.Object(O.empty, V.toMath(`\\labelstyle ` + t.tail, n));
return new t.head.head(t.head.tail, new y.Some(r));
})));
})),
twocellSwitch: B((function() {
return z(L(`^`).andr(V.twocellLabel).to((function(e) {
return new F.Command.Twocell.Switch.UpperLabel(e);
})), L(`_`).andr(V.twocellLabel).to((function(e) {
return new F.Command.Twocell.Switch.LowerLabel(e);
})), L(`\\omit`).to((function() {
return new F.Command.Twocell.Switch.DoNotSetCurvedArrows();
})), L(`~!`).to((function() {
return new F.Command.Twocell.Switch.PlaceModMapObject();
})), Ke(/^(~[`'])/).andl(R(`{`)).and(V.object).andl(R(`}`)).to((function(e) {
var t = e.head.substring(1);
return new F.Command.Twocell.Switch.ChangeHeadTailObject(t, e.tail);
})), Ke(/^(~[\^_]?)/).andl(R(`{`)).and(V.object).and(I(Xe(L(`~**`).andr(V.object)))).andl(R(`}`)).to((function(e) {
var t = e.head.head.substring(1), n = e.head.tail, r = e.tail;
return new F.Command.Twocell.Switch.ChangeCurveObject(t, n, r);
})), V.nudge().to((function(e) {
return new F.Command.Twocell.Switch.SetCurvature(e);
})));
})),
twocellLabel: B((function() {
return z(Ke(/^[0-9a-zA-Z]/).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail, r = new F.Object(O.empty, V.toMath(`\\twocellstyle ` + t, n));
return new F.Command.Twocell.Label(y.empty, r);
})), Ke(/^(\\[a-zA-Z][a-zA-Z0-9]*)/).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail, r = new F.Object(O.empty, V.toMath(`\\twocellstyle ` + t, n));
return new F.Command.Twocell.Label(y.empty, r);
})), L(`{`).andr(I(Xe(V.nudge))).andl(R(`*`)).and(V.object).andl(R(`}`)).to((function(e) {
return new F.Command.Twocell.Label(e.head, e.tail);
})), L(`{`).andr(I(Xe(V.nudge))).and(V.text).andl(We(`}`)).and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail, r = new F.Object(O.empty, V.toMath(`\\twocellstyle ` + t.tail, n));
return new F.Command.Twocell.Label(t.head, r);
})));
})),
nudge: B((function() {
return z(L(`<\\omit>`).to((function() {
return new F.Command.Twocell.Nudge.Omit();
})), L(`<`).andr(V.factor).andl(R(`>`)).to((function(e) {
return new F.Command.Twocell.Nudge.Number(e);
})));
})),
twocellArrow: B((function() {
return z(L(`{`).andr(I(Ke(/^([\^_=`'"!]|\\omit)/))).and(V.twocellLabelEntry).andl(R(`}`)).to((function(e) {
return new F.Command.Twocell.Arrow.WithOrientation(e.head, e.tail);
})), L(`{`).andr(V.nudge).and(V.twocellLabelEntry).andl(R(`}`)).to((function(e) {
return new F.Command.Twocell.Arrow.WithPosition(e.head, e.tail);
})), L(`{`).andr(V.twocellLabelEntry).andl(R(`}`)).to((function(e) {
return new F.Command.Twocell.Arrow.WithOrientation(``, e);
})), Ze(`no arrow label`).andr(V.textNodeCreator).to((function(e) {
return new F.Command.Twocell.Arrow.WithOrientation(``, new F.Object(O.empty, V.toMath(`\\twocellstyle{}`, e)));
})));
})),
twocellLabelEntry: B((function() {
return z(L(`*`).andr(V.object), V.text().and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail;
return new F.Object(O.empty, V.toMath(`\\twocellstyle ` + t, n));
})));
})),
newdir: B((function() {
return L(`{`).andr(V.dirMain).andl(We(`}`)).andl(R(`{`)).and(V.compositeObject).andl(R(`}`)).to((function(e) {
return new F.Command.Newdir(e.head, new F.ObjectBox.CompositeObject(e.tail));
}));
})),
xyimport: B((function() {
return L(`\\xyimport`).andr(R(`(`)).andr(V.factor).andl(R(`,`)).and(V.factor).andl(R(`)`)).and(I(Xe(L(`(`).andr(V.factor).andl(R(`,`)).and(V.factor).andl(R(`)`))))).andl(R(`{`)).and(I(z(L(`\\includegraphics`).andr(V.includegraphics), V.text().and(V.textNodeCreator).to((function(e) {
var t = e.head, n = e.tail;
return V.toMath(`\\hbox{$\\objectstyle{` + t + `}$}`, n);
}))))).andl(R(`}`)).to((function(e) {
var t, n, r = e.head.head.head, i = e.head.head.tail;
e.head.tail.isDefined ? (t = e.head.tail.get.head, n = e.head.tail.get.tail) : (t = 0, n = 0);
var a = e.tail;
return a.isIncludegraphics === void 0 ? new F.Pos.Xyimport.TeXCommand(r, i, t, n, a) : new F.Pos.Xyimport.Graphics(r, i, t, n, a);
}));
})),
includegraphics: B((function() {
return L(`[`).andr(I(Xe(V.includegraphicsAttrList))).andl(R(`]`)).andl(R(`{`)).and(I(Ke(/^[^\s{}]+/))).andl(R(`}`)).to((function(e) {
var t = e.head.getOrElse(O.empty), n = e.tail;
return new F.Command.Includegraphics(!1, t, n);
}));
})),
includegraphicsAttrList: B((function() {
return V.includegraphicsAttr().and(I(Je(L(`,`).andr(V.includegraphicsAttr)))).to((function(e) {
return e.tail.prepend(e.head);
}));
})),
includegraphicsAttr: B((function() {
return z(L(`width`).andr(R(`=`)).andr(V.dimen).to((function(e) {
return new F.Command.Includegraphics.Attr.Width(e);
})), L(`height`).andr(R(`=`)).andr(V.dimen).to((function(e) {
return new F.Command.Includegraphics.Attr.Height(e);
})));
}))
};
for (var $e in Qe) V[$e] = Qe[$e];
var et = V, tt = function(e, t) {
return [
e[1] * t[2] - e[2] * t[1],
e[2] * t[0] - e[0] * t[2],
e[0] * t[1] - e[1] * t[0]
];
}, nt = function(e) {
return e < 0 ? -1 : e > 0 ? 1 : 0;
}, rt = function(e) {
return Math.abs(e) < l.machinePrecision ? 0 : e;
}, H = function(e, t) {
var n = e[t], r = function() {
var r = n.call(this), a = function() {
return r;
};
return a.reset = i, e[t] = a, r;
}, i = function() {
e[t] = r;
};
r.reset = i, i();
}, it = function(e) {
return Math.round(100 * e) / 100;
};
function at(e) {
return at = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, at(e);
}
function ot(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && st(e, t);
}
function st(e, t) {
return st = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, st(e, t);
}
function ct(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = ut(e);
if (t) {
var i = ut(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return lt(this, n);
};
}
function lt(e, t) {
if (t && (at(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return function(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}(e);
}
function ut(e) {
return ut = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, ut(e);
}
function dt(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function ft(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function pt(e, t, n) {
return t && ft(e.prototype, t), n && ft(e, n), e;
}
var U = function() {
function e() {
dt(this, e);
}
return pt(e, [
{
key: `toRect`,
value: function(t) {
return new e.Rect(this.x, this.y, t);
}
},
{
key: `toPoint`,
value: function() {
return new e.Point(this.x, this.y);
}
},
{
key: `combineRect`,
value: function(t) {
return e.combineRect(this, t);
}
}
], [{
key: `combineRect`,
value: function(e, t) {
if (e === void 0) return t;
if (t === void 0) return e;
var n = -(Math.min(e.x - e.l, t.x - t.l) - e.x), r = Math.max(e.x + e.r, t.x + t.r) - e.x, i = -(Math.min(e.y - e.d, t.y - t.d) - e.y), a = Math.max(e.y + e.u, t.y + t.u) - e.y;
return e.toRect({
l: n,
r,
d: i,
u: a
});
}
}]), e;
}();
function mt(e) {
return mt = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, mt(e);
}
function W(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && ht(e, t);
}
function ht(e, t) {
return ht = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, ht(e, t);
}
function G(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = _t(e);
if (t) {
var i = _t(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return gt(this, n);
};
}
function gt(e, t) {
if (t && (mt(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return K(e);
}
function K(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}
function _t(e) {
return _t = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, _t(e);
}
function q(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function vt(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function J(e, t, n) {
return t && vt(e.prototype, t), n && vt(e, n), e;
}
U.Point = function(e) {
ot(n, e);
var t = ct(n);
function n(e, r) {
var i;
return dt(this, n), (i = t.call(this)).x = e, i.y = r, i;
}
return pt(n, [
{
key: `l`,
get: function() {
return 0;
}
},
{
key: `r`,
get: function() {
return 0;
}
},
{
key: `u`,
get: function() {
return 0;
}
},
{
key: `d`,
get: function() {
return 0;
}
},
{
key: `isPoint`,
value: function() {
return !0;
}
},
{
key: `isRect`,
value: function() {
return !1;
}
},
{
key: `isCircle`,
value: function() {
return !1;
}
},
{
key: `edgePoint`,
value: function(e, t) {
return this;
}
},
{
key: `proportionalEdgePoint`,
value: function(e, t) {
return this;
}
},
{
key: `grow`,
value: function(e, t) {
var n = Math.max(0, e), r = Math.max(0, t);
return this.toRect({
l: n,
r: n,
u: r,
d: r
});
}
},
{
key: `toSize`,
value: function(e, t) {
return this.toRect({
l: e / 2,
r: e / 2,
u: t / 2,
d: t / 2
});
}
},
{
key: `growTo`,
value: function(e, t) {
var n = Math.max(0, e), r = Math.max(0, t);
return this.toRect({
l: n / 2,
r: n / 2,
u: r / 2,
d: r / 2
});
}
},
{
key: `shrinkTo`,
value: function(e, t) {
return this;
}
},
{
key: `move`,
value: function(e, t) {
return new U.Point(e, t);
}
},
{
key: `shiftFrame`,
value: function(e, t) {
return this;
}
},
{
key: `rotate`,
value: function(e) {
return this;
}
},
{
key: `contains`,
value: function(e) {
return !1;
}
},
{
key: `toString`,
value: function() {
return `{x:` + this.x + `, y:` + this.y + `}`;
}
}
]), n;
}(U), U.Rect = function(e) {
ot(n, e);
var t = ct(n);
function n(e, r, i) {
var a;
return dt(this, n), (a = t.call(this)).x = e, a.y = r, a.l = i.l || 0, a.r = i.r || 0, a.u = i.u || 0, a.d = i.d || 0, a;
}
return pt(n, [
{
key: `isPoint`,
value: function() {
return this.l === 0 && this.r === 0 && this.u === 0 && this.d === 0;
}
},
{
key: `isRect`,
value: function() {
return !this.isPoint();
}
},
{
key: `isCircle`,
value: function() {
return !1;
}
},
{
key: `edgePoint`,
value: function(e, t) {
if (this.isPoint()) return this;
var n, r = e - this.x, i = t - this.y;
return r > 0 ? (n = i * this.r / r) > this.u ? new U.Point(this.x + this.u * r / i, this.y + this.u) : n < -this.d ? new U.Point(this.x - this.d * r / i, this.y - this.d) : new U.Point(this.x + this.r, this.y + n) : r < 0 ? (n = -i * this.l / r) > this.u ? new U.Point(this.x + this.u * r / i, this.y + this.u) : n < -this.d ? new U.Point(this.x - this.d * r / i, this.y - this.d) : new U.Point(this.x - this.l, this.y + n) : i > 0 ? new U.Point(this.x, this.y + this.u) : new U.Point(this.x, this.y - this.d);
}
},
{
key: `proportionalEdgePoint`,
value: function(e, t) {
if (this.isPoint()) return this;
var n = e - this.x, r = t - this.y;
if (Math.abs(n) < l.machinePrecision && Math.abs(r) < l.machinePrecision) return new U.Point(this.x - this.l, this.y + this.u);
var i, a = this.l + this.r, o = this.u + this.d, s = Math.PI, c = Math.atan2(r, n);
return -3 * s / 4 < c && c <= -s / 4 ? (i = (c + 3 * s / 4) / (s / 2), new U.Point(this.x + this.r - i * a, this.y + this.u)) : -s / 4 < c && c <= s / 4 ? (i = (c + s / 4) / (s / 2), new U.Point(this.x - this.l, this.y + this.u - i * o)) : s / 4 < c && c <= 3 * s / 4 ? (i = (c - s / 4) / (s / 2), new U.Point(this.x - this.l + i * a, this.y - this.d)) : (i = (c - (c > 0 ? 3 * s / 4 : -5 * s / 4)) / (s / 2), new U.Point(this.x + this.r, this.y - this.d + i * o));
}
},
{
key: `grow`,
value: function(e, t) {
return this.toRect({
l: Math.max(0, this.l + e),
r: Math.max(0, this.r + e),
u: Math.max(0, this.u + t),
d: Math.max(0, this.d + t)
});
}
},
{
key: `toSize`,
value: function(e, t) {
var n, r, i, a, o = this.l + this.r, s = this.u + this.d;
return o === 0 ? (a = e / 2, i = e / 2) : (a = e * this.l / o, i = e * this.r / o), s === 0 ? (n = t / 2, r = t / 2) : (n = t * this.u / s, r = t * this.d / s), this.toRect({
l: a,
r: i,
u: n,
d: r
});
}
},
{
key: `growTo`,
value: function(e, t) {
var n = this.u, r = this.d, i = this.r, a = this.l, o = a + i, s = n + r;
return e > o && (o === 0 ? (a = e / 2, i = e / 2) : (a = e * this.l / o, i = e * this.r / o)), t > s && (s === 0 ? (n = t / 2, r = t / 2) : (n = t * this.u / s, r = t * this.d / s)), this.toRect({
l: a,
r: i,
u: n,
d: r
});
}
},
{
key: `shrinkTo`,
value: function(e, t) {
var n = this.u, r = this.d, i = this.r, a = this.l, o = a + i, s = n + r;
return e < o && (o === 0 ? (a = e / 2, i = e / 2) : (a = e * this.l / o, i = e * this.r / o)), t < s && (s === 0 ? (n = t / 2, r = t / 2) : (n = t * this.u / s, r = t * this.d / s)), this.toRect({
l: a,
r: i,
u: n,
d: r
});
}
},
{
key: `move`,
value: function(e, t) {
return new U.Rect(e, t, {
l: this.l,
r: this.r,
u: this.u,
d: this.d
});
}
},
{
key: `shiftFrame`,
value: function(e, t) {
return new U.Rect(this.x, this.y, {
l: Math.max(0, this.l - e),
r: Math.max(0, this.r + e),
u: Math.max(0, this.u + t),
d: Math.max(0, this.d - t)
});
}
},
{
key: `rotate`,
value: function(e) {
var t = Math.cos(e), n = Math.sin(e), r = -this.l, i = this.r, a = this.u, o = -this.d, s = {
x: r * t - a * n,
y: r * n + a * t
}, c = {
x: r * t - o * n,
y: r * n + o * t
}, l = {
x: i * t - a * n,
y: i * n + a * t
}, u = {
x: i * t - o * n,
y: i * n + o * t
};
return this.toRect({
l: -Math.min(s.x, c.x, l.x, u.x),
r: Math.max(s.x, c.x, l.x, u.x),
u: Math.max(s.y, c.y, l.y, u.y),
d: -Math.min(s.y, c.y, l.y, u.y)
});
}
},
{
key: `contains`,
value: function(e) {
var t = e.x, n = e.y;
return t >= this.x - this.l && t <= this.x + this.r && n >= this.y - this.d && n <= this.y + this.u;
}
},
{
key: `toString`,
value: function() {
return `{x:` + this.x + `, y:` + this.y + `, l:` + this.l + `, r:` + this.r + `, u:` + this.u + `, d:` + this.d + `}`;
}
}
]), n;
}(U), U.Ellipse = function(e) {
ot(n, e);
var t = ct(n);
function n(e, r, i, a, o, s) {
var c;
return dt(this, n), (c = t.call(this)).x = e, c.y = r, c.l = i, c.r = a, c.u = o, c.d = s, c;
}
return pt(n, [
{
key: `isPoint`,
value: function() {
return this.r === 0 && this.l === 0 || this.u === 0 && this.d === 0;
}
},
{
key: `isRect`,
value: function() {
return !1;
}
},
{
key: `isCircle`,
value: function() {
return !this.isPoint();
}
},
{
key: `isPerfectCircle`,
value: function() {
return this.l === this.r && this.l === this.u && this.l === this.d;
}
},
{
key: `edgePoint`,
value: function(e, t) {
if (this.isPoint()) return this;
if (this.isPerfectCircle()) {
var n, r = e - this.x, i = t - this.y;
return n = Math.abs(r) < l.machinePrecision && Math.abs(i) < l.machinePrecision ? -Math.PI / 2 : Math.atan2(i, r), new U.Point(this.x + this.r * Math.cos(n), this.y + this.r * Math.sin(n));
}
var a = this.l, o = this.r, s = this.u, c = this.d, u = this.x, d = this.y, f = u + (o - a) / 2, p = d + (s - c) / 2, m = (a + o) / 2, h = (s + c) / 2, g = -(r = e - u), _ = (i = t - d) * m, v = g * h, y = _ * _ + v * v, b = -(c = _ * f + v * p + ((r * d - i * u) * m + (m - h) * g * p)) / y, x = y * m * m - c * c;
if (x < 0) return new U.Point(this.x, this.y - this.d);
var S = Math.sqrt(x) / y, C = h / m, w = _ * b + v * S + f, T = C * (v * b - _ * S + p - p) + p, E = _ * b - v * S + f, D = C * (v * b + _ * S + p - p) + p, ee = nt;
return ee(w - f) === ee(e - f) && ee(T - p) === ee(t - p) ? new U.Point(w, T) : new U.Point(E, D);
}
},
{
key: `proportionalEdgePoint`,
value: function(e, t) {
if (this.isPoint()) return this;
if (this.isPerfectCircle()) {
var n, r = e - this.x, i = t - this.y;
return n = Math.abs(r) < l.machinePrecision && Math.abs(i) < l.machinePrecision ? -Math.PI / 2 : Math.atan2(i, r), new U.Point(this.x - this.r * Math.cos(n), this.y - this.r * Math.sin(n));
}
var a = this.l, o = this.r, s = this.u, c = this.d, u = this.x, d = this.y, f = u + (o - a) / 2, p = d + (s - c) / 2, m = (a + o) / 2, h = (s + c) / 2, g = -(r = e - u), _ = (i = t - d) * m, v = g * h, y = _ * _ + v * v, b = -(c = _ * f + v * p + ((r * d - i * u) * m + (m - h) * g * p)) / y, x = y * m * m - c * c;
if (x < 0) return new U.Point(this.x, this.y - this.d);
var S = Math.sqrt(x) / y, C = h / m, w = _ * b + v * S + f, T = C * (v * b - _ * S + p - p) + p, E = _ * b - v * S + f, D = C * (v * b + _ * S + p - p) + p;
return sign(w - f) === sign(e - f) && sign(T - p) === sign(t - p) ? new U.Point(E, D) : new U.Point(w, T);
}
},
{
key: `grow`,
value: function(e, t) {
return new U.Ellipse(this.x, this.y, Math.max(0, this.l + e), Math.max(0, this.r + e), Math.max(0, this.u + t), Math.max(0, this.d + t));
}
},
{
key: `toSize`,
value: function(e, t) {
var n, r, i, a, o = this.l + this.r, s = this.u + this.d;
return o === 0 ? (a = e / 2, i = e / 2) : (a = e * this.l / o, i = e * this.r / o), s === 0 ? (n = t / 2, r = t / 2) : (n = t * this.u / s, r = t * this.d / s), new U.Ellipse(this.x, this.y, a, i, n, r);
}
},
{
key: `growTo`,
value: function(e, t) {
var n = this.u, r = this.d, i = this.r, a = this.l, o = a + i, s = n + r;
return e > o && (o === 0 ? (a = e / 2, i = e / 2) : (a = e * this.l / o, i = e * this.r / o)), t > s && (s === 0 ? (n = t / 2, r = t / 2) : (n = t * this.u / s, r = t * this.d / s)), new U.Ellipse(this.x, this.y, a, i, n, r);
}
},
{
key: `shrinkTo`,
value: function(e, t) {
var n = this.u, r = this.d, i = this.r, a = this.l, o = a + i, s = n + r;
return e < o && (o === 0 ? (a = e / 2, i = e / 2) : (a = e * this.l / o, i = e * this.r / o)), t < s && (s === 0 ? (n = t / 2, r = t / 2) : (n = t * this.u / s, r = t * this.d / s)), new U.Ellipse(this.x, this.y, a, i, n, r);
}
},
{
key: `move`,
value: function(e, t) {
return new U.Ellipse(e, t, this.l, this.r, this.u, this.d);
}
},
{
key: `shiftFrame`,
value: function(e, t) {
return new U.Ellipse(this.x, this.y, Math.max(0, this.l - e), Math.max(0, this.r + e), Math.max(0, this.u + t), Math.max(0, this.d - t));
}
},
{
key: `rotate`,
value: function(e) {
return this;
}
},
{
key: `contains`,
value: function(e) {
var t = e.x, n = e.y;
if (this.isPoint()) return !1;
var r = this.l, i = this.r, a = this.u, o = this.d, s = (r + i) / 2, c = t - (this.x + (i - r) / 2), l = (n - (this.y + (a - o) / 2)) / ((a + o) / 2 / s);
return c * c + l * l <= s * s;
}
},
{
key: `toString`,
value: function() {
return `{x:` + this.x + `, y:` + this.y + `, l:` + this.l + `, r:` + this.r + `, u:` + this.u + `, d:` + this.d + `}`;
}
}
]), n;
}(U);
var Y = function() {
function e() {
q(this, e);
}
return J(e, [{
key: `isNone`,
get: function() {
return !1;
}
}]), e;
}();
function yt(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
Y.NoneShape = function(e) {
W(n, e);
var t = G(n);
function n() {
return q(this, n), t.call(this);
}
return J(n, [
{
key: `draw`,
value: function(e) {}
},
{
key: `getBoundingBox`,
value: function() {}
},
{
key: `toString`,
value: function() {
return `NoneShape`;
}
},
{
key: `isNone`,
get: function() {
return !0;
}
}
]), n;
}(Y), Y.none = new Y.NoneShape(), Y.InvisibleBoxShape = function(e) {
W(n, e);
var t = G(n);
function n(e) {
var r;
return q(this, n), (r = t.call(this)).bbox = e, r;
}
return J(n, [
{
key: `draw`,
value: function(e) {}
},
{
key: `getBoundingBox`,
value: function() {
return this.bbox;
}
},
{
key: `toString`,
value: function() {
return `InvisibleBoxShape[bbox:` + this.bbox.toString() + `]`;
}
}
]), n;
}(Y), Y.TranslateShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i) {
var a;
return q(this, n), (a = t.call(this)).dx = e, a.dy = r, a.shape = i, H(K(a), `getBoundingBox`), a;
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t = e.createGroup(e.transformBuilder().translate(this.dx, this.dy));
this.shape.draw(t);
}
},
{
key: `getBoundingBox`,
value: function() {
var e = this.shape.getBoundingBox();
if (e !== void 0) return new U.Rect(e.x + this.dx, e.y + this.dy, e);
}
},
{
key: `toString`,
value: function() {
return `TranslateShape[dx:` + this.dx + `, dy:` + this.dy + `, shape:` + this.shape.toString() + `]`;
}
}
]), n;
}(Y), Y.CompositeShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).foregroundShape = e, i.backgroundShape = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `draw`,
value: function(e) {
this.backgroundShape.draw(e), this.foregroundShape.draw(e);
}
},
{
key: `getBoundingBox`,
value: function() {
return U.combineRect(this.foregroundShape.getBoundingBox(), this.backgroundShape.getBoundingBox());
}
},
{
key: `toString`,
value: function() {
return `(` + this.foregroundShape.toString() + `, ` + this.backgroundShape.toString() + `)`;
}
}
]), n;
}(Y), Y.ChangeColorShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).color = e, i.shape = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t = e.createChangeColorGroup(this.color);
this.shape.draw(t);
}
},
{
key: `getBoundingBox`,
value: function() {
return this.shape.getBoundingBox();
}
},
{
key: `toString`,
value: function() {
return this.shape + `, color:` + this.color;
}
}
]), n;
}(Y), Y.CircleSegmentShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i, a, o, s, c, l, u) {
var d;
return q(this, n), (d = t.call(this)).x = e, d.y = r, d.sx = i, d.sy = a, d.r = o, d.large = s, d.flip = c, d.ex = l, d.ey = u, H(K(d), `getBoundingBox`), d;
}
return J(n, [
{
key: `draw`,
value: function(e) {
e.createSVGElement(`path`, { d: `M` + A.measure.em2px(this.sx) + `,` + A.measure.em2px(-this.sy) + ` A` + A.measure.em2px(this.r) + `,` + A.measure.em2px(this.r) + ` 0 ` + this.large + `,` + this.flip + ` ` + A.measure.em2px(this.ex) + `,` + A.measure.em2px(-this.ey) });
}
},
{
key: `getBoundingBox`,
value: function() {
return new U.Ellipse(this.x, this.y, this.r, this.r, this.r, this.r);
}
},
{
key: `toString`,
value: function() {
return `CircleSegmentShape[x:` + this.x + `, y:` + this.y + `, sx:` + this.sx + `, sy:` + this.sy + `, r:` + this.r + `, large:` + this.large + `, flip:` + this.flip + `, ex:` + this.ex + `, ey:` + this.ey + `]`;
}
}
]), n;
}(Y), Y.FullCircleShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i) {
var a;
return q(this, n), (a = t.call(this)).x = e, a.y = r, a.r = i, H(K(a), `getBoundingBox`), a;
}
return J(n, [
{
key: `draw`,
value: function(e) {
e.createSVGElement(`circle`, {
cx: A.measure.em2px(this.x),
cy: A.measure.em2px(-this.y),
r: A.measure.em2px(this.r)
});
}
},
{
key: `getBoundingBox`,
value: function() {
return new U.Ellipse(this.x, this.y, this.r, this.r, this.r, this.r);
}
},
{
key: `toString`,
value: function() {
return `FullCircleShape[x:` + this.x + `, y:` + this.y + `, r:` + this.r + `]`;
}
}
]), n;
}(Y), Y.RectangleShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i, a, o, s, c, l, u, d, f, p) {
var m;
return q(this, n), (m = t.call(this)).x = e, m.y = r, m.left = i, m.right = a, m.up = o, m.down = s, m.r = c, m.isDoubled = l, m.color = u, m.dasharray = d, m.fillColor = f, m.hideLine = p || !1, H(K(m), `getBoundingBox`), m;
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t = {
x: A.measure.em2px(this.x - this.left),
y: -A.measure.em2px(this.y + this.up),
width: A.measure.em2px(this.left + this.right),
height: A.measure.em2px(this.up + this.down),
rx: A.measure.em2px(this.r)
};
this.dasharray !== void 0 && (t[`stroke-dasharray`] = this.dasharray), this.hideLine ? t.stroke = `none` : this.color !== void 0 && (t.stroke = this.color), this.fillColor !== void 0 && (t.fill = this.fillColor), e.createSVGElement(`rect`, t), this.isDoubled && (t = {
x: A.measure.em2px(this.x - this.left + A.measure.thickness),
y: -A.measure.em2px(this.y + this.up - A.measure.thickness),
width: A.measure.em2px(this.left + this.right - 2 * A.measure.thickness),
height: A.measure.em2px(this.up + this.down - 2 * A.measure.thickness),
rx: A.measure.em2px(Math.max(this.r - A.measure.thickness, 0))
}, this.dasharray !== void 0 && (t[`stroke-dasharray`] = this.dasharray), this.hideLine ? t.stroke = `none` : this.color !== void 0 && (t.stroke = this.color), this.fillColor !== void 0 && (t.fill = this.fillColor), e.createSVGElement(`rect`, t));
}
},
{
key: `getBoundingBox`,
value: function() {
return new U.Rect(this.x, this.y, {
l: this.left,
r: this.right,
u: this.up,
d: this.down
});
}
},
{
key: `toString`,
value: function() {
return `RectangleShape[x:` + this.x + `, y:` + this.y + `, left:` + this.left + `, right:` + this.right + `, up:` + this.up + `, down:` + this.down + `, r:` + this.r + `, isDouble:` + this.isDouble + `, dasharray:` + this.dasharray + `]`;
}
}
]), n;
}(Y), Y.EllipseShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i, a, o, s, c, l, u) {
var d;
return q(this, n), (d = t.call(this)).x = e, d.y = r, d.rx = i, d.ry = a, d.isDoubled = o, d.color = s, d.dasharray = c, d.fillColor = l, d.hideLine = u || !1, H(K(d), `getBoundingBox`), d;
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t = {
cx: A.measure.em2px(this.x),
cy: -A.measure.em2px(this.y),
rx: A.measure.em2px(this.rx),
ry: A.measure.em2px(this.ry)
};
this.dasharray !== void 0 && (t[`stroke-dasharray`] = this.dasharray), this.hideLine ? t.stroke = `none` : this.color !== void 0 && (t.stroke = this.color), this.fillColor !== void 0 && (t.fill = this.fillColor), e.createSVGElement(`ellipse`, t), this.isDoubled && (t = {
cx: A.measure.em2px(this.x),
cy: -A.measure.em2px(this.y),
rx: A.measure.em2px(Math.max(this.rx - A.measure.thickness)),
ry: A.measure.em2px(Math.max(this.ry - A.measure.thickness))
}, this.dasharray !== void 0 && (t[`stroke-dasharray`] = this.dasharray), this.hideLine ? t.stroke = `none` : this.color !== void 0 && (t.stroke = this.color), this.fillColor !== void 0 && (t.fill = this.fillColor), e.createSVGElement(`ellipse`, t));
}
},
{
key: `getBoundingBox`,
value: function() {
return new U.Rect(this.x, this.y, {
l: this.rx,
r: this.rx,
u: this.ry,
d: this.ry
});
}
},
{
key: `toString`,
value: function() {
return `EllipseShape[x:` + this.x + `, y:` + this.y + `, rx:` + this.rx + `, ry:` + this.ry + `, isDoubled:` + this.isDoubled + `, dasharray:` + this.dasharray + `]`;
}
}
]), n;
}(Y), Y.BoxShadeShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i, a, o, s, c, l) {
var u;
return q(this, n), (u = t.call(this)).x = e, u.y = r, u.left = i, u.right = a, u.up = o, u.down = s, u.depth = c, u.color = l || `currentColor`, H(K(u), `getBoundingBox`), u;
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t = A.measure.em2px(this.x), n = A.measure.em2px(this.y), r = A.measure.em2px(this.left), i = A.measure.em2px(this.right), a = A.measure.em2px(this.up), o = A.measure.em2px(this.down), s = A.measure.em2px(this.depth);
e.createSVGElement(`path`, {
d: `M` + (t - r + s) + `,` + (-n + o) + `L` + (t + i) + `,` + (-n + o) + `L` + (t + i) + `,` + (-n - a + s) + `L` + (t + i + s) + `,` + (-n - a + s) + `L` + (t + i + s) + `,` + (-n + o + s) + `L` + (t - r + s) + `,` + (-n + o + s) + `Z`,
stroke: this.color,
fill: this.color
});
}
},
{
key: `getBoundingBox`,
value: function() {
return new U.Rect(this.x, this.y, {
l: this.left,
r: this.right + this.depth,
u: this.up,
d: this.down + this.depth
});
}
},
{
key: `toString`,
value: function() {
return `RectangleShape[x:` + this.x + `, y:` + this.y + `, left:` + this.left + `, right:` + this.right + `, up:` + this.up + `, down:` + this.down + `, depth:` + this.depth + `]`;
}
}
]), n;
}(Y), Y.LeftBrace = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i, a, o, s) {
var c;
return q(this, n), (c = t.call(this)).x = e, c.y = r, c.up = i, c.down = a, c.degree = o, c.color = s || `currentColor`, H(K(c), `getBoundingBox`), c;
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t, n = A.measure.oneem, r = Math.max(1.41975, this.down / n * 1.125) - .660375, i = .660375 - Math.max(1.41975, this.up / n * 1.125);
t = `M` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(r) + `T` + A.measure.em2px(-.068625) + ` ` + A.measure.em2px(.07875 + r) + `Q` + A.measure.em2px(-.068625) + ` ` + A.measure.em2px(.190125 + r) + ` ` + A.measure.em2px(-.0585) + ` ` + A.measure.em2px(.250875 + r) + `T` + A.measure.em2px(-.01125) + ` ` + A.measure.em2px(.387 + r) + `Q` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(.55575 + r) + ` ` + A.measure.em2px(.2475) + ` ` + A.measure.em2px(.6525 + r) + `L` + A.measure.em2px(.262125) + ` ` + A.measure.em2px(.660375 + r) + `L` + A.measure.em2px(.3015) + ` ` + A.measure.em2px(.660375 + r) + `L` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(.653625 + r) + `V` + A.measure.em2px(.622125 + r) + `Q` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(.60975 + r) + ` ` + A.measure.em2px(.2925) + ` ` + A.measure.em2px(.60075 + r) + `Q` + A.measure.em2px(.205875) + ` ` + A.measure.em2px(.541125 + r) + ` ` + A.measure.em2px(.149625) + ` ` + A.measure.em2px(.44775 + r) + `T` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(.239625 + r) + `Q` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(.2385 + r) + ` ` + A.measure.em2px(.073125) + ` ` + A.measure.em2px(.235125 + r) + `Q` + A.measure.em2px(.068625) + ` ` + A.measure.em2px(.203625 + r) + ` ` + A.measure.em2px(.0675) + ` ` + A.measure.em2px(.041625 + r) + `L` + A.measure.em2px(.0675) + ` ` + A.measure.em2px(.75825) + `Q` + A.measure.em2px(.0675) + ` ` + A.measure.em2px(.496125) + ` ` + A.measure.em2px(.066375) + ` ` + A.measure.em2px(.486) + `Q` + A.measure.em2px(.05625) + ` ` + A.measure.em2px(.336375) + ` ` + A.measure.em2px(-.021375) + ` ` + A.measure.em2px(.212625) + `T` + A.measure.em2px(-.226125) + ` ` + A.measure.em2px(.010125) + `L` + A.measure.em2px(-.241875) + ` 0L` + A.measure.em2px(-.226125) + ` ` + A.measure.em2px(-.010125) + `Q` + A.measure.em2px(-.106875) + ` ` + A.measure.em2px(-.084375) + ` ` + A.measure.em2px(-.025875) + ` ` + A.measure.em2px(-.207) + `T` + A.measure.em2px(.066375) + ` ` + A.measure.em2px(-.486) + `Q` + A.measure.em2px(.0675) + ` ` + A.measure.em2px(-.496125) + ` ` + A.measure.em2px(.0675) + ` ` + A.measure.em2px(-.75825) + `L` + A.measure.em2px(.0675) + ` ` + A.measure.em2px(-.041625 + i) + `Q` + A.measure.em2px(.068625) + ` ` + A.measure.em2px(-.203625 + i) + ` ` + A.measure.em2px(.073125) + ` ` + A.measure.em2px(-.235125 + i) + `Q` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(-.2385 + i) + ` ` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(-.239625 + i) + `Q` + A.measure.em2px(.093375) + ` ` + A.measure.em2px(-.354375 + i) + ` ` + A.measure.em2px(.149625) + ` ` + A.measure.em2px(-.44775 + i) + `T` + A.measure.em2px(.2925) + ` ` + A.measure.em2px(-.60075 + i) + `Q` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(-.60975 + i) + ` ` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(-.622125 + i) + `L` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(-.653625 + i) + `L` + A.measure.em2px(.3015) + ` ` + A.measure.em2px(-.660375 + i) + `L` + A.measure.em2px(.262125) + ` ` + A.measure.em2px(-.660375 + i) + `L` + A.measure.em2px(.2475) + ` ` + A.measure.em2px(-.6525 + i) + `Q` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(-.55575 + i) + ` ` + A.measure.em2px(-.01125) + ` ` + A.measure.em2px(-.387 + i) + `Q` + A.measure.em2px(-.048375) + ` ` + A.measure.em2px(-.311625 + i) + ` ` + A.measure.em2px(-.0585) + ` ` + A.measure.em2px(-.250875 + i) + `T` + A.measure.em2px(-.068625) + ` ` + A.measure.em2px(-.07875 + i) + `Q` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(i) + ` ` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(i) + `L` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(-.759375) + `V` + A.measure.em2px(-.5985) + `Q` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(-.47925) + ` ` + A.measure.em2px(-.075375) + ` ` + A.measure.em2px(-.41175) + `T` + A.measure.em2px(-.11475) + ` ` + A.measure.em2px(-.27) + `Q` + A.measure.em2px(-.133875) + ` ` + A.measure.em2px(-.2205) + ` ` + A.measure.em2px(-.160875) + ` ` + A.measure.em2px(-.17775) + `T` + A.measure.em2px(-.212625) + ` ` + A.measure.em2px(-.106875) + `T` + A.measure.em2px(-.25875) + ` ` + A.measure.em2px(-.06075) + `T` + A.measure.em2px(-.293625) + ` ` + A.measure.em2px(-.0315) + `T` + A.measure.em2px(-.307125) + ` ` + A.measure.em2px(-.02025) + `Q` + A.measure.em2px(-.30825) + ` ` + A.measure.em2px(-.019125) + ` ` + A.measure.em2px(-.30825) + ` 0T` + A.measure.em2px(-.307125) + ` ` + A.measure.em2px(.02025) + `Q` + A.measure.em2px(-.307125) + ` ` + A.measure.em2px(.021375) + ` ` + A.measure.em2px(-.284625) + ` ` + A.measure.em2px(.03825) + `T` + A.measure.em2px(-.2295) + ` ` + A.measure.em2px(.091125) + `T` + A.measure.em2px(-.162) + ` ` + A.measure.em2px(.176625) + `T` + A.measure.em2px(-.10125) + ` ` + A.measure.em2px(.30825) + `T` + A.measure.em2px(-.068625) + ` ` + A.measure.em2px(.482625) + `Q` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(.496125) + ` ` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(.759375) + `Z`, e.createSVGElement(`path`, {
d: t,
fill: this.color,
stroke: this.color,
"stroke-width": `0pt`,
transform: `translate(` + A.measure.em2px(this.x) + `,` + A.measure.em2px(-this.y) + `) rotate(` + -this.degree + `) scale(` + n / 1.125 + `)`
});
}
},
{
key: `getBoundingBox`,
value: function() {
var e = A.measure.oneem;
return new U.Rect(this.x, this.y, {
l: .274 * e,
r: .274 * e,
u: Math.max(1.41975 * e / 1.125, this.up),
d: Math.max(1.41975 * e / 1.125, this.down)
}).rotate(this.degree * Math.PI / 180);
}
},
{
key: `toString`,
value: function() {
return `LeftBrace[x:` + this.x + `, y:` + this.y + `, up:` + this.up + `, down:` + this.down + `]`;
}
}
]), n;
}(Y), Y.LeftParenthesis = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i, a, o) {
var s;
return q(this, n), (s = t.call(this)).x = e, s.y = r, s.height = i, s.degree = a, s.color = o || `currentColor`, H(K(s), `getBoundingBox`), s;
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t, n = A.measure.oneem, r = Math.max(.660375, this.height / 2 / n * 1.125) - .660375, i = -r;
t = `M` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(r) + `T` + A.measure.em2px(-.068625) + ` ` + A.measure.em2px(.07875 + r) + `Q` + A.measure.em2px(-.068625) + ` ` + A.measure.em2px(.190125 + r) + ` ` + A.measure.em2px(-.0585) + ` ` + A.measure.em2px(.250875 + r) + `T` + A.measure.em2px(-.01125) + ` ` + A.measure.em2px(.387 + r) + `Q` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(.55575 + r) + ` ` + A.measure.em2px(.2475) + ` ` + A.measure.em2px(.6525 + r) + `L` + A.measure.em2px(.262125) + ` ` + A.measure.em2px(.660375 + r) + `L` + A.measure.em2px(.3015) + ` ` + A.measure.em2px(.660375 + r) + `L` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(.653625 + r) + `V` + A.measure.em2px(.622125 + r) + `Q` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(.60975 + r) + ` ` + A.measure.em2px(.2925) + ` ` + A.measure.em2px(.60075 + r) + `Q` + A.measure.em2px(.205875) + ` ` + A.measure.em2px(.541125 + r) + ` ` + A.measure.em2px(.149625) + ` ` + A.measure.em2px(.44775 + r) + `T` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(.239625 + r) + `Q` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(.2385 + r) + ` ` + A.measure.em2px(.073125) + ` ` + A.measure.em2px(.235125 + r) + `Q` + A.measure.em2px(.068625) + ` ` + A.measure.em2px(.203625 + r) + ` ` + A.measure.em2px(.0675) + ` ` + A.measure.em2px(.041625 + r) + `L` + A.measure.em2px(.0675) + ` ` + A.measure.em2px(-.041625 + i) + `Q` + A.measure.em2px(.068625) + ` ` + A.measure.em2px(-.203625 + i) + ` ` + A.measure.em2px(.073125) + ` ` + A.measure.em2px(-.235125 + i) + `Q` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(-.2385 + i) + ` ` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(-.239625 + i) + `Q` + A.measure.em2px(.093375) + ` ` + A.measure.em2px(-.354375 + i) + ` ` + A.measure.em2px(.149625) + ` ` + A.measure.em2px(-.44775 + i) + `T` + A.measure.em2px(.2925) + ` ` + A.measure.em2px(-.60075 + i) + `Q` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(-.60975 + i) + ` ` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(-.622125 + i) + `L` + A.measure.em2px(.30825) + ` ` + A.measure.em2px(-.653625 + i) + `L` + A.measure.em2px(.3015) + ` ` + A.measure.em2px(-.660375 + i) + `L` + A.measure.em2px(.262125) + ` ` + A.measure.em2px(-.660375 + i) + `L` + A.measure.em2px(.2475) + ` ` + A.measure.em2px(-.6525 + i) + `Q` + A.measure.em2px(.07425) + ` ` + A.measure.em2px(-.55575 + i) + ` ` + A.measure.em2px(-.01125) + ` ` + A.measure.em2px(-.387 + i) + `Q` + A.measure.em2px(-.048375) + ` ` + A.measure.em2px(-.311625 + i) + ` ` + A.measure.em2px(-.0585) + ` ` + A.measure.em2px(-.250875 + i) + `T` + A.measure.em2px(-.068625) + ` ` + A.measure.em2px(-.07875 + i) + `Q` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(i) + ` ` + A.measure.em2px(-.0675) + ` ` + A.measure.em2px(i) + `Z`, e.createSVGElement(`path`, {
d: t,
fill: this.color,
stroke: this.color,
"stroke-width": `0pt`,
transform: `translate(` + A.measure.em2px(this.x) + `,` + A.measure.em2px(-this.y) + `) rotate(` + -this.degree + `) scale(` + n / 1.125 + `)`
});
}
},
{
key: `getBoundingBox`,
value: function() {
var e = A.measure.oneem;
return new U.Rect(this.x, this.y, {
l: .06 * e,
r: .274 * e,
u: Math.max(.660375 * e / 1.125, this.height / 2),
d: Math.max(.660375 * e / 1.125, this.height / 2)
}).rotate(this.degree * Math.PI / 180);
}
},
{
key: `toString`,
value: function() {
return `LeftBrace[x:` + this.x + `, y:` + this.y + `, up:` + this.up + `, down:` + this.down + `]`;
}
}
]), n;
}(Y), Y.TextShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.math = r, i.originalBBox = void 0, H(K(i), `getBoundingBox`), H(K(i), `getOriginalReferencePoint`), i;
}
return J(n, [
{
key: `draw`,
value: function(e) {
this._draw(e, !1);
}
},
{
key: `getBoundingBox`,
value: function() {
return this._draw(A.svgForTestLayout, !0);
}
},
{
key: `_draw`,
value: function(e, t) {
return e.xypicWrapper.drawTextObject(this, e, t);
}
},
{
key: `getOriginalReferencePoint`,
value: function() {
this.getBoundingBox();
var e = this.originalBBox, t = this.c, n = e.H, r = e.D;
return new U.Point(t.x, t.y - (n - r) / 2);
}
},
{
key: `toString`,
value: function() {
return `TextShape[c:` + this.c.toString() + `, math:` + this.math.toString() + `]`;
}
}
]), n;
}(Y), Y.ImageShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.url = r, H(K(i), `getBoundingBox`), H(K(i), `getOriginalReferencePoint`), i;
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t = this.c;
e.createSVGElement(`image`, {
x: A.measure.em2px(t.x - t.l),
y: A.measure.em2px(-t.y - t.u),
width: A.measure.em2px(t.l + t.r),
height: A.measure.em2px(t.u + t.d),
preserveAspectRatio: `none`,
"xlink:href": this.url
});
}
},
{
key: `getBoundingBox`,
value: function() {
return this.c;
}
},
{
key: `getOriginalReferencePoint`,
value: function() {
return this.c;
}
},
{
key: `toString`,
value: function() {
return `ImageShape[c:` + this.c.toString() + `, height:` + this.height + `, width:` + this.width + `, url:` + this.url + `]`;
}
}
]), n;
}(Y), Y.ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n() {
return q(this, n), t.call(this);
}
return J(n, [
{
key: `draw`,
value: function(e) {
var t = e.createGroup(e.transformBuilder().translate(this.c.x, this.c.y).rotateRadian(this.angle));
this.drawDelegate(t);
}
},
{
key: `getBoundingBox`,
value: function() {
return this.c.toRect(this.getBox()).rotate(this.angle);
}
},
{
key: `toString`,
value: function() {
return `ArrowheadShape[c:` + this.c.toString() + `, angle:` + this.angle + `]`;
}
}
]), n;
}(Y), Y.GT2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .456 * e,
r: 0,
d: .229 * e,
u: .229 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .213 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = e.createGroup(e.transformBuilder().rotateDegree(-10)), r = e.createGroup(e.transformBuilder().rotateDegree(10));
n.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) }), r.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}
]), n;
}(Y.ArrowheadShape), Y.GT3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .507 * e,
r: 0,
d: .268 * e,
u: .268 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .325 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = e.createGroup(e.transformBuilder().rotateDegree(-15)), r = e.createGroup(e.transformBuilder().rotateDegree(15));
n.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: A.measure.em2px(-.507 * t),
y2: 0
}), r.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}
]), n;
}(Y.ArrowheadShape), Y.UpperGTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .489 * e,
r: 0,
d: 0,
u: .147 * e
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem;
e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.LowerGTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .489 * e,
r: 0,
d: .147 * e,
u: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem;
e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.GTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .489 * e,
r: 0,
d: .147 * e,
u: .147 * e
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem;
e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.LT2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .456 * e,
d: .229 * e,
u: .229 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .213 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = e.createGroup(e.transformBuilder().rotateDegree(10)), r = e.createGroup(e.transformBuilder().rotateDegree(-10));
n.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), r.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}
]), n;
}(Y.ArrowheadShape), Y.LT3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .507 * e,
d: .268 * e,
u: .268 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .325 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = e.createGroup(e.transformBuilder().rotateDegree(15)), r = e.createGroup(e.transformBuilder().rotateDegree(-15));
n.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: A.measure.em2px(.507 * t),
y2: 0
}), r.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}
]), n;
}(Y.ArrowheadShape), Y.UpperLTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .489 * e,
d: 0,
u: .147 * e
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem;
e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.LowerLTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .489 * e,
d: .147 * e,
u: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem;
e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.LTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .489 * e,
d: .147 * e,
u: .147 * e
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem;
e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.UpperColumnArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: A.measure.lineElementLength,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: 0,
y2: -t
});
}
}]), n;
}(Y.ArrowheadShape), Y.LowerColumnArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: 0,
d: A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: 0,
y2: t
});
}
}]), n;
}(Y.ArrowheadShape), Y.Column2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: .5 * (A.measure.lineElementLength + A.measure.thickness),
d: .5 * (A.measure.lineElementLength + A.measure.thickness)
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(.5 * (A.measure.lineElementLength + A.measure.thickness));
e.createSVGElement(`line`, {
x1: 0,
y1: t,
x2: 0,
y2: -t
});
}
}]), n;
}(Y.ArrowheadShape), Y.Column3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: .5 * A.measure.lineElementLength + A.measure.thickness,
d: .5 * A.measure.lineElementLength + A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(.5 * A.measure.lineElementLength + A.measure.thickness);
e.createSVGElement(`line`, {
x1: 0,
y1: t,
x2: 0,
y2: -t
});
}
}]), n;
}(Y.ArrowheadShape), Y.ColumnArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: t,
x2: 0,
y2: -t
});
}
}]), n;
}(Y.ArrowheadShape), Y.UpperLParenArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .5 * A.measure.lineElementLength,
r: 0,
u: A.measure.lineElementLength,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M0,0 A ` + t + `,` + t + ` 0 0,1 0,` + -2 * t });
}
}]), n;
}(Y.ArrowheadShape), Y.LowerLParenArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .5 * A.measure.lineElementLength,
r: 0,
u: 0,
d: A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M0,0 A ` + t + `,` + t + ` 0 0,0 0,` + 2 * t });
}
}]), n;
}(Y.ArrowheadShape), Y.LParenArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: .5 * A.measure.lineElementLength,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M` + t + `,` + -t + ` A ` + t + `,` + t + ` 0 0,0 ` + t + `,` + t });
}
}]), n;
}(Y.ArrowheadShape), Y.UpperRParenArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: .5 * A.measure.lineElementLength,
u: A.measure.lineElementLength,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M0,0 A ` + t + `,` + t + ` 0 0,0 0,` + -2 * t });
}
}]), n;
}(Y.ArrowheadShape), Y.LowerRParenArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: .5 * A.measure.lineElementLength,
u: 0,
d: A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M0,0 A ` + t + `,` + t + ` 0 0,1 0,` + 2 * t });
}
}]), n;
}(Y.ArrowheadShape), Y.RParenArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .5 * A.measure.lineElementLength,
r: 0,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M` + -t + `,` + -t + ` A ` + t + `,` + t + ` 0 0,1 ` + -t + `,` + t });
}
}]), n;
}(Y.ArrowheadShape), Y.LowerBackquoteArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .5 * A.measure.lineElementLength,
r: 0,
u: 0,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M0,0 A ` + t + `,` + t + ` 0 0,0 ` + -t + `,` + t });
}
}]), n;
}(Y.ArrowheadShape), Y.UpperBackquoteArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .5 * A.measure.lineElementLength,
r: 0,
u: .5 * A.measure.lineElementLength,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M0,0 A ` + t + `,` + t + ` 0 0,1 ` + -t + `,` + -t });
}
}]), n;
}(Y.ArrowheadShape), Y.LowerQuoteArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: .5 * A.measure.lineElementLength,
u: 0,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M0,0 A ` + t + `,` + t + ` 0 0,1 ` + t + `,` + t });
}
}]), n;
}(Y.ArrowheadShape), Y.UpperQuoteArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: .5 * A.measure.lineElementLength,
u: .5 * A.measure.lineElementLength,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`path`, { d: `M0,0 A ` + t + `,` + t + ` 0 0,0 ` + t + `,` + -t });
}
}]), n;
}(Y.ArrowheadShape), Y.AsteriskArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = 0, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: A.measure.thickness,
r: A.measure.thickness,
u: A.measure.thickness,
d: A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
e.createSVGElement(`circle`, {
cx: 0,
cy: 0,
r: A.measure.em2px(A.measure.thickness),
fill: `currentColor`
});
}
}]), n;
}(Y.ArrowheadShape), Y.OArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = 0, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: A.measure.thickness,
r: A.measure.thickness,
u: A.measure.thickness,
d: A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
e.createSVGElement(`circle`, {
cx: 0,
cy: 0,
r: A.measure.em2px(A.measure.thickness)
});
}
}]), n;
}(Y.ArrowheadShape), Y.PlusArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .5 * A.measure.lineElementLength,
r: .5 * A.measure.lineElementLength,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.lineElementLength / 2, n = A.measure.em2px(t);
e.createSVGElement(`line`, {
x1: -n,
y1: 0,
x2: n,
y2: 0
}), e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.XArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r + Math.PI / 4, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .5 * A.measure.lineElementLength,
r: .5 * A.measure.lineElementLength,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.lineElementLength / 2, n = A.measure.em2px(t);
e.createSVGElement(`line`, {
x1: -n,
y1: 0,
x2: n,
y2: 0
}), e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.SlashArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r - Math.PI / 10, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: A.measure.lineElementLength / 2,
d: A.measure.lineElementLength / 2
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.lineElementLength / 2, n = A.measure.em2px(t);
e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.Line3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: A.measure.lineElementLength,
u: A.measure.thickness,
d: A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.lineElementLength), n = A.measure.em2px(A.measure.thickness);
e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: t,
y2: n
}), e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: t,
y2: 0
}), e.createSVGElement(`line`, {
x1: 0,
y1: -n,
x2: t,
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.Line2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: A.measure.lineElementLength,
u: .5 * A.measure.thickness,
d: .5 * A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(.5 * A.measure.thickness), n = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: t,
x2: n,
y2: t
}), e.createSVGElement(`line`, {
x1: 0,
y1: -t,
x2: n,
y2: -t
});
}
}]), n;
}(Y.ArrowheadShape), Y.LineArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: A.measure.lineElementLength,
u: 0,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: t,
y2: 0
});
}
}]), n;
}(Y.ArrowheadShape), Y.Dot3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: A.measure.thickness,
d: A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.oneem;
var t = A.measure.em2px(A.measure.thickness), n = A.measure.em2px(A.measure.thickness), r = A.measure.dottedDasharray;
e.createSVGElement(`line`, {
x1: 0,
y1: t,
x2: n,
y2: t,
"stroke-dasharray": r
}), e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: n,
y2: 0,
"stroke-dasharray": r
}), e.createSVGElement(`line`, {
x1: 0,
y1: -t,
x2: n,
y2: -t,
"stroke-dasharray": r
});
}
}]), n;
}(Y.ArrowheadShape), Y.Dot2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: .5 * A.measure.thickness,
d: .5 * A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(.5 * A.measure.thickness), n = A.measure.em2px(A.measure.thickness), r = A.measure.dottedDasharray;
e.createSVGElement(`line`, {
x1: 0,
y1: t,
x2: n,
y2: t,
"stroke-dasharray": r
}), e.createSVGElement(`line`, {
x1: 0,
y1: -t,
x2: n,
y2: -t,
"stroke-dasharray": r
});
}
}]), n;
}(Y.ArrowheadShape), Y.DotArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: 0,
u: 0,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.oneem;
var t = A.measure.em2px(A.measure.thickness), n = A.measure.dottedDasharray;
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: t,
y2: 0,
"stroke-dasharray": n
});
}
}]), n;
}(Y.ArrowheadShape), Y.Tilde3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: -2 * A.measure.thickness,
r: 2 * A.measure.thickness,
u: 2 * A.measure.thickness,
d: 2 * A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.thickness);
e.createSVGElement(`path`, { d: `M` + -2 * t + `,` + t + ` Q` + -t + `,0 0,` + t + ` T` + 2 * t + `,` + t + `M` + -2 * t + `,0 Q` + -t + `,` + -t + ` 0,0 T` + 2 * t + `,0M` + -2 * t + `,` + -t + ` Q` + -t + `,` + -2 * t + ` 0,` + -t + ` T` + 2 * t + `,` + -t });
}
}]), n;
}(Y.ArrowheadShape), Y.Tilde2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: -2 * A.measure.thickness,
r: 2 * A.measure.thickness,
u: 1.5 * A.measure.thickness,
d: 1.5 * A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.thickness);
e.createSVGElement(`path`, { d: `M` + -2 * t + `,` + .5 * t + ` Q` + -t + `,` + -.5 * t + ` 0,` + .5 * t + ` T` + 2 * t + `,` + .5 * t + `M` + -2 * t + `,` + -.5 * t + ` Q` + -t + `,` + -1.5 * t + ` 0,` + -.5 * t + ` T` + 2 * t + `,` + -.5 * t });
}
}]), n;
}(Y.ArrowheadShape), Y.TildeArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: -2 * A.measure.thickness,
r: 2 * A.measure.thickness,
u: A.measure.thickness,
d: A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.thickness);
e.createSVGElement(`path`, { d: `M` + -2 * t + `,0 Q` + -t + `,` + -t + ` 0,0 T` + 2 * t + `,0` });
}
}]), n;
}(Y.ArrowheadShape), Y.TildeArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: -2 * A.measure.thickness,
r: 2 * A.measure.thickness,
u: A.measure.thickness,
d: A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.thickness);
e.createSVGElement(`path`, { d: `M` + -2 * t + `,0 Q` + -t + `,` + -t + ` 0,0 T` + 2 * t + `,0` });
}
}]), n;
}(Y.ArrowheadShape), Y.GTGTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .489 * e + 2 * A.measure.thickness,
r: 0,
d: .147 * e,
u: .147 * e
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = A.measure.em2px(2 * n);
e.createSVGElement(`path`, { d: `M` + -r + `,0 Q` + (A.measure.em2px(-.222 * t) - r) + `,` + A.measure.em2px(.02 * t) + ` ` + (A.measure.em2px(-.489 * t) - r) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M` + -r + `,0 Q` + (A.measure.em2px(-.222 * t) - r) + `,` + A.measure.em2px(-.02 * t) + ` ` + (A.measure.em2px(-.489 * t) - r) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.UpperGTGTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .489 * e + 2 * A.measure.thickness,
r: 0,
d: 0,
u: .147 * e
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = A.measure.em2px(2 * n);
e.createSVGElement(`path`, { d: `M` + -r + `,0 Q` + (A.measure.em2px(-.222 * t) - r) + `,` + A.measure.em2px(-.02 * t) + ` ` + (A.measure.em2px(-.489 * t) - r) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.LowerGTGTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .489 * e + 2 * A.measure.thickness,
r: 0,
d: .147 * e,
u: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = A.measure.em2px(2 * n);
e.createSVGElement(`path`, { d: `M` + -r + `,0 Q` + (A.measure.em2px(-.222 * t) - r) + `,` + A.measure.em2px(.02 * t) + ` ` + (A.measure.em2px(-.489 * t) - r) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.GTGT2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .456 * e + 2 * A.measure.thickness,
r: 0,
d: .229 * e,
u: .229 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .213 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = e.createGroup(e.transformBuilder().rotateDegree(-10)), i = e.createGroup(e.transformBuilder().rotateDegree(10));
r.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) }), i.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) });
var a = e.createGroup(e.transformBuilder().translate(-2 * n, 0).rotateDegree(-10)), o = e.createGroup(e.transformBuilder().translate(-2 * n, 0).rotateDegree(10));
a.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) }), o.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}
]), n;
}(Y.ArrowheadShape), Y.GTGT3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: .507 * e + 2 * A.measure.thickness,
r: 0,
d: .268 * e,
u: .268 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .325 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = e.createGroup(e.transformBuilder().rotateDegree(-15)), i = e.createGroup(e.transformBuilder().rotateDegree(15));
r.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) }), i.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) });
var a = e.createGroup(e.transformBuilder().translate(-2 * n, 0).rotateDegree(-15)), o = e.createGroup(e.transformBuilder().translate(-2 * n, 0).rotateDegree(15));
a.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) }), o.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: A.measure.em2px(-.507 * t - 2 * n),
y2: 0
});
}
}
]), n;
}(Y.ArrowheadShape), Y.LTLTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .489 * e + 2 * A.measure.thickness,
d: .147 * e,
u: .147 * e
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = A.measure.em2px(2 * n);
e.createSVGElement(`path`, { d: `M` + r + `,0 Q` + (A.measure.em2px(.222 * t) + r) + `,` + A.measure.em2px(-.02 * t) + ` ` + (A.measure.em2px(.489 * t) + r) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M` + r + `,0 Q` + (A.measure.em2px(.222 * t) + r) + `,` + A.measure.em2px(.02 * t) + ` ` + (A.measure.em2px(.489 * t) + r) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.UpperLTLTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .489 * e + 2 * A.measure.thickness,
d: 0,
u: .147 * e
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = A.measure.em2px(2 * n);
e.createSVGElement(`path`, { d: `M` + r + `,0 Q` + (A.measure.em2px(.222 * t) + r) + `,` + A.measure.em2px(-.02 * t) + ` ` + (A.measure.em2px(.489 * t) + r) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.LowerLTLTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .489 * e + 2 * A.measure.thickness,
d: .147 * e,
u: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = A.measure.em2px(2 * n);
e.createSVGElement(`path`, { d: `M` + r + `,0 Q` + (A.measure.em2px(.222 * t) + r) + `,` + A.measure.em2px(.02 * t) + ` ` + (A.measure.em2px(.489 * t) + r) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.LTLT2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .456 + e + 2 * A.measure.thickness,
d: .229 * e,
u: .229 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .213 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = e.createGroup(e.transformBuilder().translate(2 * n, 0).rotateDegree(10)), i = e.createGroup(e.transformBuilder().translate(2 * n, 0).rotateDegree(-10));
r.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), i.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
var a = e.createGroup(e.transformBuilder().rotateDegree(10)), o = e.createGroup(e.transformBuilder().rotateDegree(-10));
a.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), o.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}
]), n;
}(Y.ArrowheadShape), Y.LTLT3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: 0,
r: .507 * e + 2 * A.measure.thickness,
d: .268 * e,
u: .268 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .325 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = e.createGroup(e.transformBuilder().translate(2 * n, 0).rotateDegree(15)), i = e.createGroup(e.transformBuilder().translate(2 * n, 0).rotateDegree(-15));
r.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), i.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
var a = e.createGroup(e.transformBuilder().rotateDegree(15)), o = e.createGroup(e.transformBuilder().rotateDegree(-15));
a.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), o.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: A.measure.em2px(.507 * t + 2 * n),
y2: 0
});
}
}
]), n;
}(Y.ArrowheadShape), Y.ColumnColumnArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: A.measure.thickness,
r: 0,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.thickness, n = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
}), e.createSVGElement(`line`, {
x1: -A.measure.em2px(t),
y1: n,
x2: -A.measure.em2px(t),
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.UpperColumnColumnArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: A.measure.thickness,
r: 0,
u: A.measure.lineElementLength,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.thickness, n = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: 0,
y2: -n
}), e.createSVGElement(`line`, {
x1: -A.measure.em2px(t),
y1: 0,
x2: -A.measure.em2px(t),
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.LowerColumnColumnArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: A.measure.thickness,
r: 0,
u: 0,
d: A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.thickness, n = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: 0,
y2: n
}), e.createSVGElement(`line`, {
x1: -A.measure.em2px(t),
y1: 0,
x2: -A.measure.em2px(t),
y2: n
});
}
}]), n;
}(Y.ArrowheadShape), Y.ColumnColumn2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: A.measure.thickness,
r: 0,
u: .5 * (A.measure.lineElementLength + A.measure.thickness),
d: .5 * (A.measure.lineElementLength + A.measure.thickness)
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.thickness, n = A.measure.em2px(.5 * (A.measure.lineElementLength + A.measure.thickness));
e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
}), e.createSVGElement(`line`, {
x1: -A.measure.em2px(t),
y1: n,
x2: -A.measure.em2px(t),
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.ColumnColumn3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: A.measure.thickness,
r: 0,
u: .5 * A.measure.lineElementLength + A.measure.thickness,
d: .5 * A.measure.lineElementLength + A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.thickness, n = (t = A.measure.thickness, A.measure.em2px(.5 * A.measure.lineElementLength + A.measure.thickness));
e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
}), e.createSVGElement(`line`, {
x1: -A.measure.em2px(t),
y1: n,
x2: -A.measure.em2px(t),
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.ColumnLineArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: A.measure.lineElementLength,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: t,
x2: 0,
y2: -t
});
var n = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: n,
y2: 0
});
}
}]), n;
}(Y.ArrowheadShape), Y.UpperColumnLineArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: A.measure.lineElementLength,
u: A.measure.lineElementLength,
d: 0
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: 0,
y2: -t
});
var n = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: n,
y2: 0
});
}
}]), n;
}(Y.ArrowheadShape), Y.LowerColumnLineArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: A.measure.lineElementLength,
u: 0,
d: A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.thickness;
var t = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: 0,
y2: t
});
var n = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: n,
y2: 0
});
}
}]), n;
}(Y.ArrowheadShape), Y.ColumnLine2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: A.measure.lineElementLength,
u: .5 * (A.measure.lineElementLength + A.measure.thickness),
d: .5 * (A.measure.lineElementLength + A.measure.thickness)
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.thickness, n = A.measure.em2px(.5 * (A.measure.lineElementLength + A.measure.thickness));
e.createSVGElement(`line`, {
x1: 0,
y1: -n,
x2: 0,
y2: n
});
var r = A.measure.em2px(.5 * t), i = A.measure.em2px(A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: r,
x2: i,
y2: r
}), e.createSVGElement(`line`, {
x1: 0,
y1: -r,
x2: i,
y2: -r
});
}
}]), n;
}(Y.ArrowheadShape), Y.ColumnLine3ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: A.measure.lineElementLength,
u: .5 * A.measure.lineElementLength + A.measure.thickness,
d: .5 * A.measure.lineElementLength + A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.thickness, n = A.measure.em2px(.5 * A.measure.lineElementLength + A.measure.thickness);
e.createSVGElement(`line`, {
x1: 0,
y1: -n,
x2: 0,
y2: n
});
var r = A.measure.em2px(A.measure.lineElementLength), i = A.measure.em2px(t);
e.createSVGElement(`line`, {
x1: 0,
y1: i,
x2: r,
y2: i
}), e.createSVGElement(`line`, {
x1: 0,
y1: 0,
x2: r,
y2: 0
}), e.createSVGElement(`line`, {
x1: 0,
y1: -i,
x2: r,
y2: -i
});
}
}]), n;
}(Y.ArrowheadShape), Y.GTColumnArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .489 * A.measure.oneem,
r: 0,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
}), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.GTGTColumnArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: .489 * A.measure.oneem + 2 * A.measure.thickness,
r: 0,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: r,
x2: 0,
y2: -r
});
var i = A.measure.em2px(2 * n);
e.createSVGElement(`path`, { d: `M` + -i + `,0 Q` + (A.measure.em2px(-.222 * t) - i) + `,` + A.measure.em2px(.02 * t) + ` ` + (A.measure.em2px(-.489 * t) - i) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M` + -i + `,0 Q` + (A.measure.em2px(-.222 * t) - i) + `,` + A.measure.em2px(-.02 * t) + ` ` + (A.measure.em2px(-.489 * t) - i) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.ColumnLTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: .489 * A.measure.oneem,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = (A.measure.thickness, A.measure.em2px(.5 * A.measure.lineElementLength));
e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
}), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.ColumnLTLTArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: 0,
r: .489 * A.measure.oneem + 2 * A.measure.thickness,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.thickness, r = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: r,
x2: 0,
y2: -r
});
var i = A.measure.em2px(2 * n);
e.createSVGElement(`path`, { d: `M` + i + `,0 Q` + (A.measure.em2px(.222 * t) + i) + `,` + A.measure.em2px(-.02 * t) + ` ` + (A.measure.em2px(.489 * t) + i) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M` + i + `,0 Q` + (A.measure.em2px(.222 * t) + i) + `,` + A.measure.em2px(.02 * t) + ` ` + (A.measure.em2px(.489 * t) + i) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(-.147 * t) }), e.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(.489 * t) + `,` + A.measure.em2px(.147 * t) });
}
}]), n;
}(Y.ArrowheadShape), Y.SlashSlashArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r - Math.PI / 10, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return {
l: A.measure.thickness,
r: 0,
u: .5 * A.measure.lineElementLength,
d: .5 * A.measure.lineElementLength
};
}
}, {
key: `drawDelegate`,
value: function(e) {
var t = A.measure.em2px(A.measure.thickness), n = A.measure.em2px(.5 * A.measure.lineElementLength);
e.createSVGElement(`line`, {
x1: 0,
y1: n,
x2: 0,
y2: -n
}), e.createSVGElement(`line`, {
x1: -t,
y1: n,
x2: -t,
y2: -n
});
}
}]), n;
}(Y.ArrowheadShape), Y.LineGT2ArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [
{
key: `getBox`,
value: function() {
var e = A.measure.oneem;
return {
l: A.measure.lineElementLength,
r: A.measure.lineElementLength,
d: .229 * e,
u: .229 * e
};
}
},
{
key: `getRadius`,
value: function() {
return .213 * A.measure.oneem;
}
},
{
key: `drawDelegate`,
value: function(e) {
var t = A.measure.oneem, n = A.measure.lineElementLength, r = A.measure.em2px(n), i = .5 * A.measure.thickness, a = A.measure.em2px(i), o = this.getRadius(), s = A.measure.em2px(Math.sqrt(o * o - i * i)), c = e.createGroup(e.transformBuilder().translate(n, 0).rotateDegree(-10)), l = e.createGroup(e.transformBuilder().translate(n, 0).rotateDegree(10));
c.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(-.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(-.147 * t) }), l.createSVGElement(`path`, { d: `M0,0 Q` + A.measure.em2px(-.222 * t) + `,` + A.measure.em2px(.02 * t) + ` ` + A.measure.em2px(-.489 * t) + `,` + A.measure.em2px(.147 * t) }), e.createSVGElement(`path`, { d: `M` + -r + `,` + a + ` L` + (r - s) + `,` + a + ` M` + -r + `,` + -a + ` L` + (r - s) + `,` + -a });
}
}
]), n;
}(Y.ArrowheadShape), Y.TwocellEqualityArrowheadShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r) {
var i;
return q(this, n), (i = t.call(this)).c = e, i.angle = r, H(K(i), `getBoundingBox`), i;
}
return J(n, [{
key: `getBox`,
value: function() {
return A.measure.oneem, {
l: A.measure.lineElementLength,
r: A.measure.lineElementLength,
d: .5 * A.measure.thickness,
u: .5 * A.measure.thickness
};
}
}, {
key: `drawDelegate`,
value: function(e) {
A.measure.oneem;
var t = A.measure.em2px(A.measure.lineElementLength), n = A.measure.em2px(.5 * A.measure.thickness);
e.createSVGElement(`path`, { d: `M` + -t + `,` + n + ` L` + t + `,` + n + ` M` + -t + `,` + -n + ` L` + t + `,` + -n });
}
}]), n;
}(Y.ArrowheadShape), Y.LineShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i, a, o) {
var s;
return q(this, n), (s = t.call(this)).line = e, s.object = r, s.main = i, s.variant = a, s.bbox = o, s.holeRanges = O.empty, s;
}
return J(n, [
{
key: `sliceHole`,
value: function(e) {
this.holeRanges = this.holeRanges.prepend(e);
}
},
{
key: `draw`,
value: function(e) {
this.line.drawLine(e, this.object, this.main, this.variant, this.holeRanges);
}
},
{
key: `getBoundingBox`,
value: function() {
return this.bbox;
}
},
{
key: `toString`,
value: function() {
return `LineShape[line:` + this.line + `, object:` + this.object + `, main:` + this.main + `, variant:` + this.variant + `]`;
}
}
]), n;
}(Y), Y.CurveShape = function(e) {
W(n, e);
var t = G(n);
function n(e, r, i, a) {
var o;
return q(this, n), (o = t.call(this)).curve = e, o.objectForDrop = r, o.objectForConnect = i, o.bbox = a, o.holeRanges = O.empty, o;
}
return J(n, [
{
key: `sliceHole`,
value: function(e) {
this.holeRanges = this.holeRanges.prepend(e);
}
},
{
key: `draw`,
value: function(e) {
this.curve.drawCurve(e, this.objectForDrop, this.objectForConnect, this.holeRanges);
}
},
{
key: `getBoundingBox`,
value: function() {
return this.bbox;
}
},
{
key: `toString`,
value: function() {
return `CurveShape[curve` + this.curve + `, objectForDrop:` + (this.objectForDrop === void 0 ? `null` : this.objectForDrop.toString()) + `, objectForConnect:` + (this.objectForConnect === void 0 ? `null` : this.objectForConnect.toString()) + `]`;
}
}
]), n;
}(Y);
var bt = function() {
function e(t, n) {
(function(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
})(this, e), t > n ? (this.start = n, this.end = t) : (this.start = t, this.end = n);
}
var t, n, r;
return t = e, (n = [
{
key: `difference`,
value: function(t) {
var n = O.empty, r = this.start, i = this.end, a = t.start, o = t.end;
return i <= a || o <= r ? n = n.prepend(this) : r < a ? n = i <= o ? n.prepend(new e(r, a)) : (n = n.prepend(new e(r, a))).prepend(new e(o, i)) : o < i && (n = n.prepend(new e(o, i))), n;
}
},
{
key: `differenceRanges`,
value: function(e) {
var t = O.empty.prepend(this);
return e.foreach((function(e) {
t = t.flatMap((function(t) {
return t.difference(e);
}));
})), t;
}
},
{
key: `toString`,
value: function() {
return `[` + this.start + `, ` + this.end + `]`;
}
}
]) && yt(t.prototype, n), r && yt(t, r), e;
}();
function xt(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
var St = function() {
function e(t, n) {
(function(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
})(this, e), this.shape = t, this.env = n;
}
var t, n, r;
return t = e, (n = [
{
key: `duplicateEnv`,
value: function() {
var t = this.env.duplicate();
return new e(this.shape, t);
}
},
{
key: `appendShapeToFront`,
value: function(e) {
e.isNone || (this.shape.isNone ? this.shape = e : this.shape = new Y.CompositeShape(e, this.shape));
}
},
{
key: `appendShapeToBack`,
value: function(e) {
e.isNone || (this.shape.isNone ? this.shape = e : this.shape = new Y.CompositeShape(this.shape, e));
}
}
]) && xt(t.prototype, n), r && xt(t, r), e;
}();
function Ct(e) {
return Ct = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, Ct(e);
}
function wt(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && Tt(e, t);
}
function Tt(e, t) {
return Tt = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, Tt(e, t);
}
function Et(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = Ot(e);
if (t) {
var i = Ot(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return Dt(this, n);
};
}
function Dt(e, t) {
if (t && (Ct(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return function(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}(e);
}
function Ot(e) {
return Ot = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, Ot(e);
}
function kt(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function At(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function jt(e, t, n) {
return t && At(e.prototype, t), n && At(e, n), e;
}
var Mt = function() {
function e() {
kt(this, e);
var t = A.measure.length2em(`1mm`);
this.origin = {
x: 0,
y: 0
}, this.xBase = {
x: t,
y: 0
}, this.yBase = {
x: 0,
y: t
}, this.savedPosition = {}, this.stateStack = O.empty, this.stackFrames = O.empty, this.stack = O.empty, this.angle = 0, this.lastCurve = Q.none, this.p = this.c = e.originPosition, this.shouldCapturePos = !1, this.capturedPositions = O.empty, this.objectmargin = A.measure.objectmargin, this.objectheight = A.measure.objectheight, this.objectwidth = A.measure.objectwidth, this.labelmargin = A.measure.labelmargin;
}
return jt(e, [
{
key: `duplicate`,
value: function() {
var t = new e();
return e.copyFields(this, t), t;
}
},
{
key: `saveState`,
value: function() {
var e = this.duplicate();
this.stateStack = this.stateStack.prepend(e);
}
},
{
key: `restoreState`,
value: function() {
if (!this.stateStack.isEmpty) {
var t = this.stateStack.head;
this.stateStack = this.stateStack.tail, e.copyFields(t, this);
}
}
},
{
key: `absVector`,
value: function(e, t) {
return {
x: this.origin.x + e * this.xBase.x + t * this.yBase.x,
y: this.origin.y + e * this.xBase.y + t * this.yBase.y
};
}
},
{
key: `inverseAbsVector`,
value: function(e, t) {
var n = this.xBase.x, r = this.xBase.y, i = this.yBase.x, a = this.yBase.y, o = n * a - r * i, s = e - this.origin.x, c = t - this.origin.y;
return {
x: (a * s - i * c) / o,
y: (-r * s + n * c) / o
};
}
},
{
key: `setOrigin`,
value: function(e, t) {
this.origin = {
x: e,
y: t
};
}
},
{
key: `setXBase`,
value: function(e, t) {
this.xBase = {
x: e,
y: t
};
}
},
{
key: `setYBase`,
value: function(e, t) {
this.yBase = {
x: e,
y: t
};
}
},
{
key: `swapPAndC`,
value: function() {
var e = this.p;
this.p = this.c, this.c = e;
}
},
{
key: `enterStackFrame`,
value: function() {
this.stackFrames = this.stackFrames.prepend(this.stack), this.initStack();
}
},
{
key: `leaveStackFrame`,
value: function() {
this.stackFrames.isEmpty ? this.initStack() : (this.stack = this.stackFrames.head, this.stackFrames = this.stackFrames.tail);
}
},
{
key: `savePos`,
value: function(e, t) {
this.savedPosition[e] = t;
}
},
{
key: `startCapturePositions`,
value: function() {
this.shouldCapturePos = !0, this.capturedPositions = O.empty;
}
},
{
key: `endCapturePositions`,
value: function() {
this.shouldCapturePos = !1;
var e = this.capturedPositions;
return this.capturedPositions = O.empty, e;
}
},
{
key: `capturePosition`,
value: function(e) {
this.shouldCapturePos && e !== void 0 && (this.capturedPositions = this.capturedPositions.prepend(e));
}
},
{
key: `pushPos`,
value: function(e) {
e !== void 0 && (this.stack = this.stack.prepend(e));
}
},
{
key: `popPos`,
value: function() {
if (this.stack.isEmpty) throw c(`ExecutionError`, `cannot pop from the empty stack`);
var e = this.stack.head;
return this.stack = this.stack.tail, e;
}
},
{
key: `initStack`,
value: function() {
this.stack = O.empty;
}
},
{
key: `setStack`,
value: function(e) {
this.stack = e;
}
},
{
key: `stackAt`,
value: function(e) {
return this.stack.at(e);
}
},
{
key: `lookupPos`,
value: function(e, t) {
var n = this.savedPosition[e];
if (n === void 0) throw c(`ExecutionError`, t === void 0 ? `<pos> "` + e + `" not defined.` : t);
return n;
}
},
{
key: `toString`,
value: function() {
var e = ``;
for (var t in this.savedPosition) this.savedPosition.hasOwnProperty(t) && (e.length > 0 && (e += `, `), e += t.toString() + `:` + this.savedPosition[t]);
return `Env
p:` + this.p + `
c:` + this.c + `
angle:` + this.angle + `
lastCurve:` + this.lastCurve + `
savedPosition:{` + e + `}
origin:{x:` + this.origin.x + `, y:` + this.origin.y + `}
xBase:{x:` + this.xBase.x + `, y:` + this.xBase.y + `}
yBase:{x:` + this.yBase.x + `, y:` + this.yBase.y + `}
stackFrames:` + this.stackFrames + `
stack:` + this.stack + `
shouldCapturePos:` + this.shouldCapturePos + `
capturedPositions:` + this.capturedPositions;
}
}
], [{
key: `copyFields`,
value: function(e, t) {
for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
for (var r in t.savedPosition = {}, e.savedPosition) e.savedPosition.hasOwnProperty(r) && (t.savedPosition[r] = e.savedPosition[r]);
}
}]), e;
}();
Mt.originPosition = new U.Point(0, 0);
var X = function() {
function e() {
kt(this, e);
}
return jt(e, [
{
key: `velocity`,
value: function(e) {
var t = this.dpx(e), n = this.dpy(e);
return Math.sqrt(t * t + n * n);
}
},
{
key: `length`,
value: function(e) {
if (e < 0 || e > 1) throw c(`ExecutionError`, `illegal cubic Bezier parameter t:` + e);
this.buildLengthArray();
var t = e * l.lengthResolution, n = Math.floor(t), r = Math.ceil(t);
if (n === r) return this.lengthArray[n];
var i = this.lengthArray[n];
return i + (this.lengthArray[r] - i) / (r - n) * (t - n);
}
},
{
key: `tOfLength`,
value: function(e) {
this.buildLengthArray();
var t, n, r, i = this.lengthArray;
if (e < i[0]) return 0;
if (e > i[i.length - 1]) return 1;
for (var a = 0, o = i.length - 2; a <= o && (n = i[t = a + o >> 1], r = i[t + 1], !(e >= n && e <= r));) e < n ? o = t - 1 : a = t + 1;
var s = l.lengthResolution;
return n === r ? t / s : (t + (e - n) / (r - n)) / s;
}
},
{
key: `tOfShavedStart`,
value: function(e) {
if (e.isPoint()) return 0;
var t = this.tOfIntersections(e);
return t.length == 0 ? void 0 : Math.min.apply(Math, t);
}
},
{
key: `tOfShavedEnd`,
value: function(e) {
if (e.isPoint()) return 1;
var t = this.tOfIntersections(e);
return t.length == 0 ? void 0 : Math.max.apply(Math, t);
}
},
{
key: `shaveStart`,
value: function(e) {
if (e.isPoint()) return this;
var t = this.tOfIntersections(e);
if (t.length != 0) {
var n = Math.min.apply(Math, t);
return this.divide(n)[1];
}
}
},
{
key: `shaveEnd`,
value: function(e) {
if (e.isPoint()) return this;
var t = this.tOfIntersections(e);
if (t.length != 0) {
var n = Math.max.apply(Math, t);
return this.divide(n)[0];
}
}
},
{
key: `buildLengthArray`,
value: function() {
if (this.lengthArray === void 0) {
var e = l.lengthResolution, t = Array(e + 1), n = 0, r = .5 / e, i = 0, a = r / 3;
t[0] = 0, n = this.velocity(0) + 4 * this.velocity(r);
var o = this.velocity(2 * r);
for (t[1] = a * (n + o), i = 2; i <= e; i++) n += 2 * o + 4 * this.velocity((2 * i - 1) * r), o = this.velocity(2 * i * r), t[i] = a * (n + o);
this.lengthArray = t;
}
}
},
{
key: `drawParallelCurve`,
value: function(t, n) {
var r, i, a, o, s, c, u, d, f = this.countOfSegments() * l.interpolationResolution, p = Array(f + 1), m = Array(f + 1), h = Array(f + 1), g = Array(f + 1), _ = Array(f + 1), v = Math.PI / 2, y = n;
for (r = 0; r <= f; r++) i = r / f, p[r] = i, a = this.angle(i), s = (o = this.position(i)).x, c = o.y, u = y * Math.cos(a + v), d = y * Math.sin(a + v), m[r] = s + u, h[r] = c + d, g[r] = s - u, _[r] = c - d;
e.CubicBeziers.interpolation(p, m, h).drawPrimitive(t, `none`), e.CubicBeziers.interpolation(p, g, _).drawPrimitive(t, `none`);
}
},
{
key: `drawParallelDottedCurve`,
value: function(e, t, n) {
var r = 1 / A.measure.em, i = r / 2, a = r + t, o = this.length(1), s = Math.floor((o - r) / a), c = n;
if (s >= 0) {
var l, u = Math.PI / 2, d = this.startPosition();
for (this.endPosition(), l = 0; l <= s; l++) {
d = i + l * a;
var f = this.tOfLength(d), p = this.angle(f), m = this.position(f), h = m.x, g = m.y, _ = c * Math.cos(p + u), v = c * Math.sin(p + u);
e.createSVGElement(`circle`, {
cx: A.measure.em2px(h + _),
cy: -A.measure.em2px(g + v),
r: .12,
fill: `currentColor`
}), e.createSVGElement(`circle`, {
cx: A.measure.em2px(h - _),
cy: -A.measure.em2px(g - v),
r: .12,
fill: `currentColor`
});
}
}
}
},
{
key: `drawParallelDashedCurve`,
value: function(t, n, r) {
var i, a, o, s, c, l, u, d, f = this.length(1), p = Math.floor((f - n) / (2 * n)), m = 2 * p + 1, h = (f - n) / 2 - p * n, g = Array(p + 1), _ = Array(p + 1), v = Array(p + 1), y = Array(p + 1), b = Array(p + 1), x = Math.PI / 2, S = r;
for (i = 0; i <= m; i++) a = this.tOfLength(h + i * n), g[i] = a, o = this.angle(a), c = (s = this.position(a)).x, l = s.y, u = S * Math.cos(o + x), d = S * Math.sin(o + x), _[i] = c + u, v[i] = l + d, y[i] = c - u, b[i] = l - d;
e.CubicBeziers.interpolation(g, _, v).drawSkipped(t), e.CubicBeziers.interpolation(g, y, b).drawSkipped(t);
}
},
{
key: `drawSquigCurve`,
value: function(e, t) {
var n = A.measure.length2em(`0.15em`), r = this.length(1), i = 4 * n, a = n;
if (r >= i) {
var o, s, c, l, u, d, f, p, m, h = Math.floor(r / i), g = (r - h * i) / 2, _ = Math.PI / 2;
switch (t) {
case `3`:
o = g, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f = `M` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p = `M` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), m = `M` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d);
for (var v = 0; v < h; v++) o = g + i * v + n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` Q` + A.measure.em2px(c.x + 2 * u) + `,` + A.measure.em2px(-c.y - 2 * d), p += ` Q` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), m += ` Q` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), o = g + i * v + 2 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` ` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), m += ` ` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), o = g + i * v + 3 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` Q` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), p += ` Q` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), m += ` ` + A.measure.em2px(c.x - 2 * u) + `,` + A.measure.em2px(-c.y + 2 * d), o = g + i * (v + 1), s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` ` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), m += ` ` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d);
e.createSVGElement(`path`, { d: f }), e.createSVGElement(`path`, { d: p }), e.createSVGElement(`path`, { d: m });
break;
case `2`:
for (o = g, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f = `M` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p = `M` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), v = 0; v < h; v++) o = g + i * v + n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` Q` + A.measure.em2px(c.x + 3 * u) + `,` + A.measure.em2px(-c.y - 3 * d), p += ` Q` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), o = g + i * v + 2 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` ` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` ` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), o = g + i * v + 3 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` Q` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), p += ` Q` + A.measure.em2px(c.x - 3 * u) + `,` + A.measure.em2px(-c.y + 3 * d), o = g + i * (v + 1), s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` ` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` ` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d);
e.createSVGElement(`path`, { d: f }), e.createSVGElement(`path`, { d: p });
break;
default:
for (o = g, s = this.tOfLength(o), c = this.position(s), f = `M` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), v = 0; v < h; v++) o = g + i * v + n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` Q` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), o = g + i * v + 2 * n, s = this.tOfLength(o), c = this.position(s), f += ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), o = g + i * v + 3 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` Q` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), o = g + i * (v + 1), s = this.tOfLength(o), c = this.position(s), f += ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y);
e.createSVGElement(`path`, { d: f });
}
}
}
},
{
key: `drawDashSquigCurve`,
value: function(e, t) {
var n = A.measure.thickness, r = this.length(1), i = 4 * n, a = n;
if (r >= i) {
var o, s, c, l, u, d, f, p, m, h = Math.floor((r - i) / 2 / i), g = (r - i) / 2 - h * i, _ = Math.PI / 2;
switch (t) {
case `3`:
f = p = m = ``;
for (var v = 0; v <= h; v++) o = g + i * v * 2, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` M` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` M` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), m += ` M` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), o = g + i * v * 2 + n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` Q` + A.measure.em2px(c.x + 2 * u) + `,` + A.measure.em2px(-c.y - 2 * d), p += ` Q` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), m += ` Q` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), o = g + i * v * 2 + 2 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` ` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), m += ` ` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), o = g + i * v * 2 + 3 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` Q` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), p += ` Q` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), m += ` ` + A.measure.em2px(c.x - 2 * u) + `,` + A.measure.em2px(-c.y + 2 * d), o = g + i * (2 * v + 1), s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` ` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), m += ` ` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d);
e.createSVGElement(`path`, { d: f }), e.createSVGElement(`path`, { d: p }), e.createSVGElement(`path`, { d: m });
break;
case `2`:
for (f = p = ``, v = 0; v <= h; v++) o = g + i * v * 2, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` M` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` M` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), o = g + i * v * 2 + n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` Q` + A.measure.em2px(c.x + 3 * u) + `,` + A.measure.em2px(-c.y - 3 * d), p += ` Q` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), o = g + i * v * 2 + 2 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` ` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` ` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), o = g + i * v * 2 + 3 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` Q` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), p += ` Q` + A.measure.em2px(c.x - 3 * u) + `,` + A.measure.em2px(-c.y + 3 * d), o = g + i * (2 * v + 1), s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _) / 2, d = a * Math.sin(l + _) / 2, f += ` ` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), p += ` ` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d);
e.createSVGElement(`path`, { d: f }), e.createSVGElement(`path`, { d: p });
break;
default:
for (f = ``, v = 0; v <= h; v++) o = g + i * v * 2, s = this.tOfLength(o), c = this.position(s), f += ` M` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), o = g + i * v * 2 + n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` Q` + A.measure.em2px(c.x + u) + `,` + A.measure.em2px(-c.y - d), o = g + i * v * 2 + 2 * n, s = this.tOfLength(o), c = this.position(s), f += ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), o = g + i * v * 2 + 3 * n, s = this.tOfLength(o), c = this.position(s), l = this.angle(s), u = a * Math.cos(l + _), d = a * Math.sin(l + _), f += ` Q` + A.measure.em2px(c.x - u) + `,` + A.measure.em2px(-c.y + d), o = g + i * (2 * v + 1), s = this.tOfLength(o), c = this.position(s), f += ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y);
e.createSVGElement(`path`, { d: f });
}
}
}
},
{
key: `drawCurve`,
value: function(e, t, n, r) {
if (r.isEmpty) this._drawCurve(e, t, n);
else {
var i = new bt(0, 1).differenceRanges(r), a = this;
i.foreach((function(r) {
a.slice(r.start, r.end)._drawCurve(e, t, n);
}));
}
}
},
{
key: `_drawCurve`,
value: function(e, t, n) {
var r, i = A.measure.length2em(`0.15em`);
if (n !== void 0) {
var a = n.dirMain(), o = n.dirVariant();
switch (a) {
case `=`:
a = `-`, o = `2`;
break;
case `==`:
a = `--`, o = `2`;
break;
case `:`:
case `::`: a = `.`, o = `2`;
}
switch (a) {
case ``: break;
case `-`:
switch (o) {
case `2`:
r = i / 2, this.drawParallelCurve(e, r);
break;
case `3`:
r = i, this.drawParallelCurve(e, r), this.drawPrimitive(e, `none`);
break;
default: r = 0, this.drawPrimitive(e, `none`);
}
break;
case `.`:
case `..`:
switch (o) {
case `2`:
r = i / 2, this.drawParallelDottedCurve(e, i, r);
break;
case `3`:
r = i, this.drawParallelDottedCurve(e, i, r), this.drawPrimitive(e, A.measure.dottedDasharray);
break;
default: r = 0, this.drawPrimitive(e, A.measure.dottedDasharray);
}
break;
case `--`:
var s = 3 * i;
if ((v = this.length(1)) >= s) switch (o) {
case `2`:
r = i / 2, this.drawParallelDashedCurve(e, s, r);
break;
case `3`:
r = i, this.drawParallelDashedCurve(e, s, r);
var c = (v - s) / 2 - Math.floor((v - s) / 2 / s) * s, l = this.tOfLength(c);
this.divide(l)[1].drawPrimitive(e, A.measure.em2px(s) + ` ` + A.measure.em2px(s));
break;
default: r = 0, c = (v - s) / 2 - Math.floor((v - s) / 2 / s) * s, l = this.tOfLength(c), this.divide(l)[1].drawPrimitive(e, A.measure.em2px(s) + ` ` + A.measure.em2px(s));
}
break;
case `~`:
switch (this.drawSquigCurve(e, o), o) {
case `2`:
r = 1.5 * i;
break;
case `3`:
r = 2 * i;
break;
default: r = 0;
}
break;
case `~~`:
switch (this.drawDashSquigCurve(e, o), o) {
case `2`:
r = 1.5 * i;
break;
case `3`:
r = 2 * i;
break;
default: r = 0;
}
break;
default:
(b = new Mt()).c = Mt.originPosition;
var u = new St(Y.none, b), d = n.boundingBox(u);
if (d == null) return;
var f, p, m = d.l, h = m + d.r;
if (t !== void 0) {
var g = t.boundingBox(u);
g !== void 0 && (f = (p = g.l) + g.r);
} else f = 0;
var _ = h + f;
_ == 0 && (_ = A.measure.strokeWidth);
var v = this.length(1);
if ((T = Math.floor(v / _)) == 0) return;
c = (v - T * _) / 2, u = new St(Y.none, b);
for (var y = 0; y < T; y++) E = c + y * _, t !== void 0 && (D = this.tOfLength(E + p), b.c = this.position(D), b.angle = this.angle(D), t.toDropShape(u).draw(e)), D = this.tOfLength(E + f + m), b.c = this.position(D), b.angle = this.angle(D), n.toDropShape(u).draw(e);
}
} else {
var b;
(b = new Mt()).c = Mt.originPosition, u = new St(Y.none, b);
var x = t, S = x.boundingBox(u);
if (S === void 0) return;
var C = S.l + S.r, w = C;
w == 0 && (w = A.measure.strokeWidth);
var T;
if (v = this.length(1), (T = Math.floor(v / w)) == 0) return;
for (c = (v - T * w + w - C) / 2 + S.l, u = new St(Y.none, b), y = 0; y < T; y++) {
var E = c + y * w, D = this.tOfLength(E);
b.c = this.position(D), b.angle = 0, x.toDropShape(u).draw(e);
}
}
}
},
{
key: `toShape`,
value: function(e, t, n) {
var r, i = e.env, a = A.measure.length2em(`0.15em`), o = Y.none;
if (n !== void 0) {
var s = n.dirMain(), c = n.dirVariant();
switch (s) {
case `=`:
s = `-`, c = `2`;
break;
case `==`:
s = `--`, c = `2`;
break;
case `:`:
case `::`: s = `.`, c = `2`;
}
switch (s) {
case ``:
r = 0;
break;
case `-`:
case `.`:
case `..`:
switch (c) {
case `2`:
r = a / 2;
break;
case `3`:
r = a;
break;
default: r = 0;
}
break;
case `--`:
var l = 3 * a;
if ((h = this.length(1)) >= l) switch (c) {
case `2`:
r = a / 2;
break;
case `3`:
r = a;
break;
default: r = 0;
}
break;
case `~`:
case `~~`:
switch (c) {
case `2`:
r = 1.5 * a;
break;
case `3`:
r = 2 * a;
break;
default: r = 0;
}
break;
default:
var u = n.boundingBox(e);
if (u == null) return i.angle = 0, i.lastCurve = Q.none, Y.none;
r = Math.max(u.u, u.d);
var d, f = u.l + u.r;
if (t !== void 0) {
var p = t.boundingBox(e);
p !== void 0 && (d = p.l + p.r, r = Math.max(r, p.u, p.d));
} else d = 0;
var m = f + d;
m == 0 && (m = A.measure.strokeWidth);
var h = this.length(1);
return Math.floor(h / m) == 0 ? (i.angle = 0, i.lastCurve = Q.none, Y.none) : (o = new Y.CurveShape(this, t, n, this.boundingBox(r)), e.appendShapeToFront(o), o);
}
return r === void 0 ? Y.none : (o = new Y.CurveShape(this, t, n, this.boundingBox(r)), e.appendShapeToFront(o), o);
}
if (t !== void 0) {
var g = t.boundingBox(e);
if (g == null) return i.angle = 0, i.lastCurve = Q.none, Y.none;
var _ = g.l + g.r;
return _ == 0 && (_ = A.measure.strokeWidth), h = this.length(1), Math.floor(h / _) == 0 ? (i.angle = 0, i.lastCurve = Q.none, Y.none) : (r = Math.max(g.u, g.d), o = new Y.CurveShape(this, t, n, this.boundingBox(r)), e.appendShapeToFront(o), o);
}
return o;
}
}
], [
{
key: `sign`,
value: function(e) {
return e > 0 ? 1 : e === 0 ? 0 : -1;
}
},
{
key: `solutionsOfCubicEq`,
value: function(t, n, r, i) {
if (t === 0) return e.solutionsOfQuadEq(n, r, i);
var a = n / 3 / t, o = r / t, s = a * a - o / 3, c = -(i / t) / 2 + o * a / 2 - a * a * a, l = c * c - s * s * s;
if (l === 0) {
var u = 2 * (h = c ** (1 / 3)) - a, d = -h - a;
return e.filterByIn0to1([u, d]);
}
if (l > 0) {
var f = c + e.sign(c) * Math.sqrt(l), p = (m = e.sign(f) * Math.abs(f) ** (1 / 3)) + (h = s / m) - a;
return e.filterByIn0to1([p]);
}
var m = 2 * Math.sqrt(s), h = Math.acos(2 * c / s / m), g = (u = m * Math.cos(h / 3) - a, d = m * Math.cos((h + 2 * Math.PI) / 3) - a, m * Math.cos((h + 4 * Math.PI) / 3) - a);
return e.filterByIn0to1([
u,
d,
g
]);
}
},
{
key: `solutionsOfQuadEq`,
value: function(t, n, r) {
if (t === 0) return e.solutionsOfLinearEq(n, r);
var i = n * n - 4 * r * t;
if (i >= 0) {
var a = Math.sqrt(i), o = (-n + a) / 2 / t, s = (-n - a) / 2 / t;
return e.filterByIn0to1([o, s]);
}
return [];
}
},
{
key: `solutionsOfLinearEq`,
value: function(t, n) {
return t === 0 ? n === 0 ? 0 : [] : e.filterByIn0to1([-n / t]);
}
},
{
key: `filterByIn0to1`,
value: function(e) {
for (var t = [], n = 0; n < e.length; n++) {
var r = e[n];
r >= 0 && r <= 1 && t.push(r);
}
return t;
}
}
]), e;
}();
X.QuadBezier = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i) {
var a;
kt(this, n), (a = t.call(this)).cp0 = e, a.cp1 = r, a.cp2 = i;
var o = e.x, s = 2 * (r.x - e.x), c = i.x - 2 * r.x + e.x;
a.px = function(e) {
return o + e * s + e * e * c;
}, a.dpx = function(e) {
return s + 2 * e * c;
};
var l = e.y, u = 2 * (r.y - e.y), d = i.y - 2 * r.y + e.y;
return a.py = function(e) {
return l + e * u + e * e * d;
}, a.dpy = function(e) {
return u + 2 * e * d;
}, a;
}
return jt(n, [
{
key: `startPosition`,
value: function() {
return this.cp0;
}
},
{
key: `endPosition`,
value: function() {
return this.cp2;
}
},
{
key: `position`,
value: function(e) {
return new U.Point(this.px(e), this.py(e));
}
},
{
key: `derivative`,
value: function(e) {
return new U.Point(this.dpx(e), this.dpy(e));
}
},
{
key: `angle`,
value: function(e) {
return Math.atan2(this.dpy(e), this.dpx(e));
}
},
{
key: `boundingBox`,
value: function(e) {
var t = this.maxMin(this.cp0.x, this.cp1.x, this.cp2.x, e), n = this.maxMin(this.cp0.y, this.cp1.y, this.cp2.y, e);
if (e === 0) return new U.Rect(this.cp0.x, this.cp0.y, {
l: this.cp0.x - t.min,
r: t.max - this.cp0.x,
u: n.max - this.cp0.y,
d: this.cp0.y - n.min
});
var r = Math.PI / 2, i = this.cp0.x, a = this.cp0.y, o = this.cp2.x, s = this.cp2.y, c = this.angle(0) + r, l = this.angle(1) + r, u = e * Math.cos(c), d = e * Math.sin(c), f = e * Math.cos(l), p = e * Math.sin(l), m = Math.min(t.min, i + u, i - u, o + f, o - f), h = Math.max(t.max, i + u, i - u, o + f, o - f), g = Math.min(n.min, a + d, a - d, s + p, s - p), _ = Math.max(n.max, a + d, a - d, s + p, s - p);
return new U.Rect(i, a, {
l: i - m,
r: h - i,
u: _ - a,
d: a - g
});
}
},
{
key: `maxMin`,
value: function(e, t, n, r) {
var i, a;
e > n ? (i = e, a = n) : (i = n, a = e);
var o, s, c = rt, l = c(e), u = c(t - e), d = c(n - 2 * t + e);
return d != 0 && (s = -u / d) > 0 && s < 1 && (o = function(e) {
return l + 2 * e * u + e * e * d;
}(s), i = Math.max(i, o + r, o - r), a = Math.min(a, o + r, o - r)), {
min: a,
max: i
};
}
},
{
key: `divide`,
value: function(e) {
if (e < 0 || e > 1) throw c(`ExecutionError`, `illegal quadratic Bezier parameter t:` + e);
var t = this.cp0.x, n = this.cp1.x, r = this.cp2.x, i = this.cp0.y, a = this.cp1.y, o = this.cp2.y, s = this.px(e), l = this.py(e), u = this.cp0, d = new U.Point(t + e * (n - t), i + e * (a - i)), f = new U.Point(s, l), p = f, m = new U.Point(n + e * (r - n), a + e * (o - a)), h = this.cp2;
return [new X.QuadBezier(u, d, f), new X.QuadBezier(p, m, h)];
}
},
{
key: `slice`,
value: function(e, t) {
if (!(e >= t)) {
if (e < 0 && (e = 0), t > 1 && (t = 1), e === 0 && t === 1) return this;
this.cp0.x;
var n = this.cp1.x, r = this.cp2.x, i = (this.cp0.y, this.cp1.y), a = this.cp2.y, o = this.px(e), s = this.py(e), c = n + e * (r - n), l = i + e * (a - i), u = new U.Point(o, s), d = new U.Point(o + t * (c - o), s + t * (l - s)), f = new U.Point(this.px(t), this.py(t));
return new X.QuadBezier(u, d, f);
}
}
},
{
key: `tOfIntersections`,
value: function(e) {
if (e.isPoint()) return [];
if (e.isRect()) {
var t, n = e.x + e.r, r = e.x - e.l, i = e.y + e.u, a = e.y - e.d, o = rt, s = this.cp0.x, c = this.cp1.x, l = this.cp2.x, u = o(s), d = o(2 * (c - s)), f = o(l - 2 * c + s), p = function(e) {
return u + e * d + e * e * f;
}, m = this.cp0.y, h = this.cp1.y, g = this.cp2.y, _ = o(m), v = o(2 * (h - m)), y = o(g - 2 * h + m), b = function(e) {
return _ + e * v + e * e * y;
}, x = [];
t = (t = X.solutionsOfQuadEq(f, d, u - n)).concat(X.solutionsOfQuadEq(f, d, u - r));
for (var S = 0; S < t.length; S++) (T = b(de = t[S])) >= a && T <= i && x.push(de);
for (t = (t = X.solutionsOfQuadEq(y, v, _ - i)).concat(X.solutionsOfQuadEq(y, v, _ - a)), S = 0; S < t.length; S++) (w = p(de = t[S])) >= r && w <= n && x.push(de);
return x;
}
if (e.isCircle()) {
var C = Math.PI, w = e.x, T = e.y, E = e.l, D = e.r, ee = e.u, te = e.d, ne = w + (D - E) / 2, O = T + (ee - te) / 2, re = (n = (E + D) / 2, (ee + te) / 2), ie = C / 180, ae = new Z.Arc(ne, O, n, re, -C - ie, -C / 2 + ie), oe = new Z.Arc(ne, O, n, re, -C / 2 - ie, 0 + ie), se = new Z.Arc(ne, O, n, re, 0 - ie, C / 2 + ie), ce = new Z.Arc(ne, O, n, re, C / 2 - ie, C + ie), le = new Z.QuadBezier(this, 0, 1), ue = [];
for (ue = (ue = (ue = (ue = ue.concat(Z.findIntersections(ae, le))).concat(Z.findIntersections(oe, le))).concat(Z.findIntersections(se, le))).concat(Z.findIntersections(ce, le)), x = [], S = 0; S < ue.length; S++) {
var de = (ue[S][1].min + ue[S][1].max) / 2;
x.push(de);
}
return x;
}
}
},
{
key: `countOfSegments`,
value: function() {
return 1;
}
},
{
key: `drawPrimitive`,
value: function(e, t) {
var n = this.cp0, r = this.cp1, i = this.cp2;
e.createSVGElement(`path`, {
d: `M` + A.measure.em2px(n.x) + `,` + A.measure.em2px(-n.y) + ` Q` + A.measure.em2px(r.x) + `,` + A.measure.em2px(-r.y) + ` ` + A.measure.em2px(i.x) + `,` + A.measure.em2px(-i.y),
"stroke-dasharray": t
});
}
},
{
key: `toString`,
value: function() {
return `QuadBezier(` + this.cp0.x + `, ` + this.cp0.y + `)-(` + this.cp1.x + `, ` + this.cp1.y + `)-(` + this.cp2.x + `, ` + this.cp2.y + `)`;
}
}
]), n;
}(X), X.CubicBezier = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i, a) {
var o;
kt(this, n), (o = t.call(this)).cp0 = e, o.cp1 = r, o.cp2 = i, o.cp3 = a;
var s = e.x, c = 3 * (r.x - e.x), l = 3 * (i.x - 2 * r.x + e.x), u = a.x - 3 * i.x + 3 * r.x - e.x;
o.px = function(e) {
return s + e * c + e * e * l + e * e * e * u;
}, o.dpx = function(e) {
return c + 2 * e * l + 3 * e * e * u;
};
var d = e.y, f = 3 * (r.y - e.y), p = 3 * (i.y - 2 * r.y + e.y), m = a.y - 3 * i.y + 3 * r.y - e.y;
return o.py = function(e) {
return d + e * f + e * e * p + e * e * e * m;
}, o.dpy = function(e) {
return f + 2 * e * p + 3 * e * e * m;
}, o;
}
return jt(n, [
{
key: `startPosition`,
value: function() {
return this.cp0;
}
},
{
key: `endPosition`,
value: function() {
return this.cp3;
}
},
{
key: `position`,
value: function(e) {
return new U.Point(this.px(e), this.py(e));
}
},
{
key: `derivative`,
value: function(e) {
return new U.Point(this.dpx(e), this.dpy(e));
}
},
{
key: `angle`,
value: function(e) {
return Math.atan2(this.dpy(e), this.dpx(e));
}
},
{
key: `boundingBox`,
value: function(e) {
var t = this.maxMin(this.cp0.x, this.cp1.x, this.cp2.x, this.cp3.x, e), n = this.maxMin(this.cp0.y, this.cp1.y, this.cp2.y, this.cp3.y, e);
if (e === 0) return new U.Rect(this.cp0.x, this.cp0.y, {
l: this.cp0.x - t.min,
r: t.max - this.cp0.x,
u: n.max - this.cp0.y,
d: this.cp0.y - n.min
});
var r = Math.PI / 2, i = this.cp0.x, a = this.cp0.y, o = this.cp3.x, s = this.cp3.y, c = this.angle(0) + r, l = this.angle(1) + r, u = e * Math.cos(c), d = e * Math.sin(c), f = e * Math.cos(l), p = e * Math.sin(l), m = Math.min(t.min, i + u, i - u, o + f, o - f), h = Math.max(t.max, i + u, i - u, o + f, o - f), g = Math.min(n.min, a + d, a - d, s + p, s - p), _ = Math.max(n.max, a + d, a - d, s + p, s - p);
return new U.Rect(i, a, {
l: i - m,
r: h - i,
u: _ - a,
d: a - g
});
}
},
{
key: `maxMin`,
value: function(e, t, n, r, i) {
var a, o;
e > r ? (a = e, o = r) : (a = r, o = e);
var s, c = rt, l = c(e), u = c(t - e), d = c(n - 2 * t + e), f = c(r - 3 * n + 3 * t - e), p = function(e) {
e > 0 && e < 1 && (s = function(e) {
return l + 3 * e * u + 3 * e * e * d + e * e * e * f;
}(e), a = Math.max(a, s + i, s - i), o = Math.min(o, s + i, s - i));
};
if (f == 0) d != 0 && p(-u / d / 2);
else {
var m = d * d - u * f;
m > 0 ? (p((-d + Math.sqrt(m)) / f), p((-d - Math.sqrt(m)) / f)) : m == 0 && p(-d / f);
}
return {
min: o,
max: a
};
}
},
{
key: `divide`,
value: function(e) {
if (e < 0 || e > 1) throw c(`ExecutionError`, `illegal cubic Bezier parameter t:` + e);
var t = this.cp0.x, n = this.cp1.x, r = this.cp2.x, i = this.cp3.x, a = this.cp0.y, o = this.cp1.y, s = this.cp2.y, l = this.cp3.y, u = this.px(e), d = this.py(e), f = this.cp0, p = new U.Point(t + e * (n - t), a + e * (o - a)), m = new U.Point(t + 2 * e * (n - t) + e * e * (r - 2 * n + t), a + 2 * e * (o - a) + e * e * (s - 2 * o + a)), h = new U.Point(u, d), g = h, _ = new U.Point(n + 2 * e * (r - n) + e * e * (i - 2 * r + n), o + 2 * e * (s - o) + e * e * (l - 2 * s + o)), v = new U.Point(r + e * (i - r), s + e * (l - s)), y = this.cp3;
return [new X.CubicBezier(f, p, m, h), new X.CubicBezier(g, _, v, y)];
}
},
{
key: `slice`,
value: function(e, t) {
if (!(e >= t)) {
if (e < 0 && (e = 0), t > 1 && (t = 1), e === 0 && t === 1) return this;
this.cp0.x;
var n = this.cp1.x, r = this.cp2.x, i = this.cp3.x, a = (this.cp0.y, this.cp1.y), o = this.cp2.y, s = this.cp3.y, c = this.px(e), l = this.py(e), u = n + 2 * e * (r - n) + e * e * (i - 2 * r + n), d = a + 2 * e * (o - a) + e * e * (s - 2 * o + a), f = r + e * (i - r), p = o + e * (s - o), m = new U.Point(c, l), h = new U.Point(c + t * (u - c), l + t * (d - l)), g = new U.Point(c + 2 * t * (u - c) + t * t * (f - 2 * u + c), l + 2 * t * (d - l) + t * t * (p - 2 * d + l)), _ = new U.Point(this.px(t), this.py(t));
return new X.CubicBezier(m, h, g, _);
}
}
},
{
key: `tOfIntersections`,
value: function(e) {
if (e.isPoint()) return [];
if (e.isRect()) {
var t, n = e.x + e.r, r = e.x - e.l, i = e.y + e.u, a = e.y - e.d, o = rt, s = this.cp0.x, c = this.cp1.x, l = this.cp2.x, u = this.cp3.x, d = this.cp0.y, f = this.cp1.y, p = this.cp2.y, m = this.cp3.y, h = o(s), g = o(3 * (c - s)), _ = o(3 * (l - 2 * c + s)), v = o(u - 3 * l + 3 * c - s), y = function(e) {
return h + e * g + e * e * _ + e * e * e * v;
}, b = o(d), x = o(3 * (f - d)), S = o(3 * (p - 2 * f + d)), C = o(m - 3 * p + 3 * f - d), w = function(e) {
return b + e * x + e * e * S + e * e * e * C;
}, T = [];
t = (t = X.solutionsOfCubicEq(v, _, g, h - n)).concat(X.solutionsOfCubicEq(v, _, g, h - r));
for (var E = 0; E < t.length; E++) (te = w(he = t[E])) >= a && te <= i && T.push(he);
for (t = (t = X.solutionsOfCubicEq(C, S, x, b - i)).concat(X.solutionsOfCubicEq(C, S, x, b - a)), E = 0; E < t.length; E++) (ee = y(he = t[E])) >= r && ee <= n && T.push(he);
return T;
}
if (e.isCircle()) {
var D = Math.PI, ee = e.x, te = e.y, ne = e.l, O = e.r, re = e.u, ie = e.d, ae = ee + (O - ne) / 2, oe = te + (re - ie) / 2, se = (n = (ne + O) / 2, (re + ie) / 2), ce = D / 180, le = new Z.Arc(ae, oe, n, se, -D - ce, -D / 2 + ce), ue = new Z.Arc(ae, oe, n, se, -D / 2 - ce, 0 + ce), de = new Z.Arc(ae, oe, n, se, 0 - ce, D / 2 + ce), fe = new Z.Arc(ae, oe, n, se, D / 2 - ce, D + ce), pe = new Z.CubicBezier(this, 0, 1), me = [];
for (me = (me = (me = (me = me.concat(Z.findIntersections(le, pe))).concat(Z.findIntersections(ue, pe))).concat(Z.findIntersections(de, pe))).concat(Z.findIntersections(fe, pe)), T = [], E = 0; E < me.length; E++) {
var he = (me[E][1].min + me[E][1].max) / 2;
T.push(he);
}
return T;
}
}
},
{
key: `countOfSegments`,
value: function() {
return 1;
}
},
{
key: `drawPrimitive`,
value: function(e, t) {
var n = this.cp0, r = this.cp1, i = this.cp2, a = this.cp3;
e.createSVGElement(`path`, {
d: `M` + A.measure.em2px(n.x) + `,` + A.measure.em2px(-n.y) + ` C` + A.measure.em2px(r.x) + `,` + A.measure.em2px(-r.y) + ` ` + A.measure.em2px(i.x) + `,` + A.measure.em2px(-i.y) + ` ` + A.measure.em2px(a.x) + `,` + A.measure.em2px(-a.y),
"stroke-dasharray": t
});
}
},
{
key: `toString`,
value: function() {
return `CubicBezier(` + this.cp0.x + `, ` + this.cp0.y + `)-(` + this.cp1.x + `, ` + this.cp1.y + `)-(` + this.cp2.x + `, ` + this.cp2.y + `)-(` + this.cp3.x + `, ` + this.cp3.y + `)`;
}
}
]), n;
}(X), X.CubicBeziers = function(e) {
wt(n, e);
var t = Et(n);
function n(e) {
var r;
kt(this, n), (r = t.call(this)).cbs = e;
var i = r.cbs.length;
return r.delegate = i == 0 ? function(e, t, n) {
return n;
} : function(t, n, r) {
var a = t * i, o = Math.floor(a);
o < 0 && (o = 0), o >= i && (o = i - 1);
var s = a - o;
return n(e[o], s);
}, r;
}
return jt(n, [
{
key: `startPosition`,
value: function() {
return this.cbs[0].cp0;
}
},
{
key: `endPosition`,
value: function() {
return this.cbs[this.cbs.length - 1].cp3;
}
},
{
key: `position`,
value: function(e) {
return this.delegate(e, (function(e, t) {
return e.position(t);
}), void 0);
}
},
{
key: `derivative`,
value: function(e) {
return this.delegate(e, (function(e, t) {
return e.derivative(t);
}), void 0);
}
},
{
key: `angle`,
value: function(e) {
return this.delegate(e, (function(e, t) {
return e.angle(t);
}), 0);
}
},
{
key: `velocity`,
value: function(e) {
var t = this.cbs.length;
return this.delegate(e, (function(e, n) {
return t * e.velocity(n);
}), 0);
}
},
{
key: `boundingBox`,
value: function(e) {
if (this.cbs.length != 0) {
var t, n = this.cbs[0].boundingBox(e), r = this.cbs.length;
for (t = 1; t < r; t++) n = n.combineRect(this.cbs[t].boundingBox(e));
return n;
}
}
},
{
key: `tOfIntersections`,
value: function(e) {
var t = [], n = 0, r = this.cbs.length;
for (n = 0; n < r; n++) for (var i = this.cbs[n].tOfIntersections(e), a = 0; a < i.length; a++) t.push((i[a] + n) / r);
return t;
}
},
{
key: `divide`,
value: function(e) {
if (e < 0 || e > 1) throw c(`ExecutionError`, `illegal cubic Bezier parameter t:` + e);
if (e === 0) return [new X.CubicBeziers([]), this];
if (e === 1) return [this, new X.CubicBeziers([])];
var t = this.cbs.length, n = e * t, r = Math.floor(n);
r === t && (r = t - 1);
var i = n - r, a = this.cbs.slice(0, r), o = this.cbs.slice(r + 1), s = this.cbs[r].divide(i);
return a.push(s[0]), o.unshift(s[1]), [new X.CubicBeziers(a), new X.CubicBeziers(o)];
}
},
{
key: `slice`,
value: function(e, t) {
if (!(e >= t)) {
if (e < 0 && (e = 0), t > 1 && (t = 1), e === 0 && t === 1) return this;
var n = this.cbs.length, r = e * n, i = t * n, a = Math.floor(r), o = Math.floor(i);
a === n && (a = n - 1), o === n && (o = n - 1);
var s, c = r - a, l = i - o;
return a === o ? s = [this.cbs[a].slice(c, l)] : ((s = this.cbs.slice(a + 1, o)).push(this.cbs[o].slice(0, l)), s.unshift(this.cbs[a].slice(c, 1))), new X.CubicBeziers(s);
}
}
},
{
key: `countOfSegments`,
value: function() {
return this.cbs.length;
}
},
{
key: `drawPrimitive`,
value: function(e, t) {
for (var n = this.cbs.length, r = this.cbs, i = r[0], a = i.cp0, o = i.cp1, s = i.cp2, c = i.cp3, l = `M` + A.measure.em2px(a.x) + `,` + A.measure.em2px(-a.y) + ` C` + A.measure.em2px(o.x) + `,` + A.measure.em2px(-o.y) + ` ` + A.measure.em2px(s.x) + `,` + A.measure.em2px(-s.y) + ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y), u = 1; u < n; u++) s = (i = r[u]).cp2, c = i.cp3, l += ` S` + A.measure.em2px(s.x) + `,` + A.measure.em2px(-s.y) + ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y);
e.createSVGElement(`path`, {
d: l,
"stroke-dasharray": t
});
}
},
{
key: `drawSkipped`,
value: function(e) {
for (var t = this.cbs.length, n = this.cbs, r = ``, i = 0; i < t; i += 2) {
var a = n[i], o = a.cp0, s = a.cp1, c = a.cp2, l = a.cp3;
r += `M` + A.measure.em2px(o.x) + `,` + A.measure.em2px(-o.y) + ` C` + A.measure.em2px(s.x) + `,` + A.measure.em2px(-s.y) + ` ` + A.measure.em2px(c.x) + `,` + A.measure.em2px(-c.y) + ` ` + A.measure.em2px(l.x) + `,` + A.measure.em2px(-l.y);
}
e.createSVGElement(`path`, { d: r });
}
}
], [{
key: `interpolation`,
value: function(e, t, n) {
var r, i = X.CubicBeziers.cubicSplineInterpolation(e, t), a = i[0], o = i[1], s = X.CubicBeziers.cubicSplineInterpolation(e, n), c = s[0], l = s[1], u = e.length, d = Array(u - 1);
for (r = 0; r < u - 1; r++) d[r] = new X.CubicBezier(new U.Point(t[r], n[r]), new U.Point(a[r], c[r]), new U.Point(o[r], l[r]), new U.Point(t[r + 1], n[r + 1]));
return new X.CubicBeziers(d);
}
}, {
key: `cubicSplineInterpolation`,
value: function(e, t) {
var n, r = e.length - 1, i = Array(r);
for (n = 0; n < r; n++) i[n] = e[n + 1] - e[n];
var a = Array(r);
for (n = 1; n < r; n++) a[n] = 3 * (t[n + 1] - t[n]) / i[n] - 3 * (t[n] - t[n - 1]) / i[n - 1];
var o = Array(r + 1), s = Array(r + 1), c = Array(r + 1);
for (o[0] = 1, s[0] = 0, c[0] = 0, n = 1; n < r; n++) o[n] = 2 * (e[n + 1] - e[n - 1]) - i[n - 1] * s[n - 1], s[n] = i[n] / o[n], c[n] = (a[n] - i[n - 1] * c[n - 1]) / o[n];
o[r] = 1, c[r] = 0;
var l = Array(r), u = Array(r + 1);
for (u[r] = 0, n = r - 1; n >= 0; n--) {
var d = i[n], f = u[n + 1], p = d * d * c[n] - s[n] * f;
u[n] = p, l[n] = t[n + 1] - t[n] - (f + 2 * p) / 3;
}
var m = Array(r), h = Array(r);
for (n = 0; n < r; n++) {
var g = t[n], _ = l[n], v = u[n];
m[n] = g + _ / 3, h[n] = g + (2 * _ + v) / 3;
}
return [m, h];
}
}]), n;
}(X), X.CubicBSpline = function() {
function e(t, n, r) {
if (kt(this, e), n.length < 1) throw c(`ExecutionError`, `the number of internal control points of cubic B-spline must be greater than or equal to 1`);
var i = [];
i.push(t);
for (var a = 0, o = n.length; a < o; a++) i.push(n[a]);
i.push(r), this.cps = i;
var s = this.cps.length - 1, l = function(e) {
return e < 0 ? i[0] : e > s ? i[s] : i[e];
}, u = function(e) {
var t = Math.abs(e);
return t <= 1 ? (3 * t * t * t - 6 * t * t + 4) / 6 : t <= 2 ? -(t - 2) * (t - 2) * (t - 2) / 6 : 0;
};
this.px = function(e) {
for (var t = (s + 2) * e - 1, n = Math.ceil(t - 2), r = Math.floor(t + 2), i = 0, a = n; a <= r; a++) i += u(t - a) * l(a).x;
return i;
}, this.py = function(e) {
for (var t = (s + 2) * e - 1, n = Math.ceil(t - 2), r = Math.floor(t + 2), i = 0, a = n; a <= r; a++) i += u(t - a) * l(a).y;
return i;
};
var d = function(e) {
var t = e > 0 ? 1 : e < 0 ? -1 : 0, n = Math.abs(e);
return n <= 1 ? t * (3 * n * n - 4 * n) / 2 : n <= 2 ? -t * (n - 2) * (n - 2) / 2 : 0;
};
this.dpx = function(e) {
for (var t = (s + 2) * e - 1, n = Math.ceil(t - 2), r = Math.floor(t + 2), i = 0, a = n; a <= r; a++) i += d(t - a) * l(a).x;
return i;
}, this.dpy = function(e) {
for (var t = (s + 2) * e - 1, n = Math.ceil(t - 2), r = Math.floor(t + 2), i = 0, a = n; a <= r; a++) i += d(t - a) * l(a).y;
return i;
};
}
return jt(e, [
{
key: `position`,
value: function(e) {
return new U.Point(this.px(e), this.py(e));
}
},
{
key: `angle`,
value: function(e) {
return Math.atan2(this.dpy(e), this.dpx(e));
}
},
{
key: `toCubicBeziers`,
value: function() {
var e = [], t = this.cps, n = t[0], r = t[1], i = t[2], a = n.x, o = n.y, s = a + (r.x - a) / 3, c = o + (r.y - o) / 3, l = a + 2 * (r.x - a) / 3, u = o + 2 * (r.y - o) / 3, d = r.x + (i.x - r.x) / 3, f = r.y + (i.y - r.y) / 3, p = (l + d) / 2, m = (u + f) / 2, h = n, g = new U.Point(s, c), _ = new U.Point(l, u), v = new U.Point(p, m), y = new X.CubicBezier(h, g, _, v);
e.push(y);
for (var b = this.cps.length - 1, x = 2; x < b; x++) n = r, r = i, i = t[x + 1], a = p, o = m, s = 2 * p - l, c = 2 * m - u, l = n.x + 2 * (r.x - n.x) / 3, u = n.y + 2 * (r.y - n.y) / 3, p = (l + (d = r.x + (i.x - r.x) / 3)) / 2, m = (u + (f = r.y + (i.y - r.y) / 3)) / 2, h = v, g = new U.Point(s, c), _ = new U.Point(l, u), v = new U.Point(p, m), y = new X.CubicBezier(h, g, _, v), e.push(y);
return n = r, r = i, a = p, o = m, s = 2 * p - l, c = 2 * m - u, l = n.x + 2 * (r.x - n.x) / 3, u = n.y + 2 * (r.y - n.y) / 3, p = r.x, m = r.y, h = v, g = new U.Point(s, c), _ = new U.Point(l, u), v = new U.Point(p, m), y = new X.CubicBezier(h, g, _, v), e.push(y), e;
}
},
{
key: `countOfSegments`,
value: function() {
return this.cps.length - 1;
}
}
]), e;
}(), X.Line = function() {
function e(t, n) {
kt(this, e), this.s = t, this.e = n;
}
return jt(e, [
{
key: `position`,
value: function(e) {
return new U.Point(this.s.x + e * (this.e.x - this.s.x), this.s.y + e * (this.e.y - this.s.y));
}
},
{
key: `slice`,
value: function(e, t) {
if (!(e >= t)) {
if (e < 0 && (e = 0), t > 1 && (t = 1), e === 0 && t === 1) return this;
var n = this.s, r = this.e, i = r.x - n.x, a = r.y - n.y, o = new U.Point(n.x + e * i, n.y + e * a), s = new U.Point(n.x + t * i, n.y + t * a);
return new X.Line(o, s);
}
}
},
{
key: `tOfIntersections`,
value: function(e) {
if (e.isPoint()) return [];
var t = this.s, n = this.e;
if (e.isRect()) {
var r, i = e.x + e.r, a = e.x - e.l, o = e.y + e.u, s = e.y - e.d, c = t.x, l = t.y, u = n.x - c, d = n.y - l, f = function(e) {
return c + e * u;
}, p = function(e) {
return l + e * d;
}, m = [];
r = (r = X.solutionsOfLinearEq(u, c - i)).concat(X.solutionsOfLinearEq(u, c - a));
for (var h = 0; h < r.length; h++) {
var g = p(_ = r[h]);
g >= s && g <= o && m.push(_);
}
for (r = (r = X.solutionsOfLinearEq(d, l - o)).concat(X.solutionsOfLinearEq(d, l - s)), h = 0; h < r.length; h++) {
var _, v = f(_ = r[h]);
v >= a && v <= i && m.push(_);
}
return m;
}
if (e.isCircle()) {
var y = e.l, b = e.r, x = e.u, S = e.d, C = e.x + (b - y) / 2, w = e.y + (x - S) / 2, T = (i = (y + b) / 2, (x + S) / 2), E = t.x, D = t.y, ee = n.x - E, te = -ee, ne = (s = n.y - D) * i, O = te * T, re = ne * ne + O * O, ie = (n = -(S = ne * C + O * w + ((ee * D - s * E) * i + (i - T) * te * w)) / re, re * i * i - S * S);
if (ie < 0) return [];
var ae, oe, se = Math.sqrt(ie) / re, ce = T / i, le = ne * n + O * se + C, ue = ce * (O * n - ne * se + w - w) + w, de = ne * n - O * se + C, fe = ce * (O * n + ne * se + w - w) + w;
return Math.abs(ee) > Math.abs(s) ? (ae = (le - E) / ee, oe = (de - E) / ee) : (ae = (ue - D) / s, oe = (fe - D) / s), m = [], ae >= 0 && ae <= 1 && m.push(ae), oe >= 0 && oe <= 1 && m.push(oe), m;
}
}
},
{
key: `toShape`,
value: function(e, t, n, r) {
var i = e.env, a = A.measure.thickness, o = this.s, s = this.e;
if (o.x !== s.x || o.y !== s.y) {
var c, l = s.x - o.x, u = s.y - o.y, d = Math.atan2(u, l), f = Y.none;
switch (n) {
case `=`:
n = `-`, r = `2`;
break;
case `==`:
n = `--`, r = `2`;
break;
case `:`:
case `::`: n = `.`, r = `2`;
}
switch (n) {
case ``: return i.angle = d, i.lastCurve = new Q.Line(o, s, i.p, i.c, void 0), f;
case `-`:
case `.`:
case `..`:
switch (r) {
case `2`:
c = a / 2;
break;
case `3`:
c = a;
break;
default: c = 0;
}
break;
case `--`:
var p = 3 * a;
if ((g = Math.sqrt(l * l + u * u)) >= p) switch (r) {
case `2`:
c = a / 2;
break;
case `3`:
c = a;
break;
default: c = 0;
}
break;
case `~`:
case `~~`:
switch (r) {
case `2`:
c = 1.5 * a;
break;
case `3`:
c = 2 * a;
break;
default: c = 0;
}
break;
default:
var m = t.boundingBox(e);
if (m == null) return i.angle = 0, i.lastCurve = Q.none, Y.none;
var h = m.l + m.r;
h == 0 && (h = A.measure.strokeWidth);
var g = Math.sqrt(l * l + u * u);
if (Math.floor(g / h) == 0) return i.angle = 0, i.lastCurve = Q.none, Y.none;
c = Math.max(m.u, m.d);
}
if (c !== void 0) {
var _ = this.boundingBox(c);
return f = new Y.LineShape(this, t, n, r, _), e.appendShapeToFront(f), i.angle = d, i.lastCurve = new Q.Line(o, s, i.p, i.c, f), f;
}
}
return i.angle = 0, i.lastCurve = Q.none, Y.none;
}
},
{
key: `boundingBox`,
value: function(e) {
var t = this.s, n = this.e, r = n.x - t.x, i = n.y - t.y, a = Math.atan2(i, r), o = e * Math.cos(a + Math.PI / 2), s = e * Math.sin(a + Math.PI / 2);
return new U.Rect(t.x, t.y, {
l: t.x - Math.min(t.x + o, t.x - o, n.x + o, n.x - o),
r: Math.max(t.x + o, t.x - o, n.x + o, n.x - o) - t.x,
u: Math.max(t.y + s, t.y - s, n.y + s, n.y - s) - t.y,
d: t.y - Math.min(t.y + s, t.y - s, n.y + s, n.y - s)
});
}
},
{
key: `drawLine`,
value: function(e, t, n, r, i) {
if (i.isEmpty) this._drawLine(e, t, n, r);
else {
var a = new bt(0, 1).differenceRanges(i), o = this;
a.foreach((function(i) {
o.slice(i.start, i.end)._drawLine(e, t, n, r);
}));
}
}
},
{
key: `_drawLine`,
value: function(e, t, n, r) {
var i = A.measure.thickness, a = this.s, o = this.e;
if (a.x !== o.x || a.y !== o.y) {
var s = o.x - a.x, c = o.y - a.y, l = Math.atan2(c, s), u = {
x: 0,
y: 0
};
switch (n) {
case ``: break;
case `-`:
this.drawStraightLine(e, a, o, u, l, i, r, ``);
break;
case `=`:
this.drawStraightLine(e, a, o, u, l, i, `2`, ``);
break;
case `.`:
case `..`:
this.drawStraightLine(e, a, o, u, l, i, r, A.measure.dottedDasharray);
break;
case `:`:
case `::`:
this.drawStraightLine(e, a, o, u, l, i, `2`, A.measure.dottedDasharray);
break;
case `--`:
case `==`:
var d = 3 * i;
(E = Math.sqrt(s * s + c * c)) >= d && (u = {
x: (D = (E - d) / 2 - Math.floor((E - d) / 2 / d) * d) * Math.cos(l),
y: D * Math.sin(l)
}, this.drawStraightLine(e, a, o, u, l, i, n === `==` ? `2` : r, A.measure.em2px(d) + ` ` + A.measure.em2px(d)));
break;
case `~`:
if ((E = Math.sqrt(s * s + c * c)) >= (b = 4 * i)) {
u = {
x: (D = (E - (T = Math.floor(E / b)) * b) / 2) * Math.cos(l),
y: D * Math.sin(l)
};
for (var f = i * Math.cos(l + Math.PI / 2), p = i * Math.sin(l + Math.PI / 2), m = i * Math.cos(l), h = i * Math.sin(l), g = a.x + u.x, _ = -a.y - u.y, v = `M` + A.measure.em2px(g) + `,` + A.measure.em2px(_) + ` Q` + A.measure.em2px(g + m + f) + `,` + A.measure.em2px(_ - h - p) + ` ` + A.measure.em2px(g + 2 * m) + `,` + A.measure.em2px(_ - 2 * h) + ` T` + A.measure.em2px(g + 4 * m) + `,` + A.measure.em2px(_ - 4 * h), y = 1; y < T; y++) v += ` T` + A.measure.em2px(g + (4 * y + 2) * m) + `,` + A.measure.em2px(_ - (4 * y + 2) * h) + ` T` + A.measure.em2px(g + (4 * y + 4) * m) + `,` + A.measure.em2px(_ - (4 * y + 4) * h);
this.drawSquigglyLineShape(e, v, a, o, f, p, r);
}
break;
case `~~`:
var b;
if ((E = Math.sqrt(s * s + c * c)) >= (b = 4 * i)) {
for (u = {
x: (D = (E - b) / 2 - (T = Math.floor((E - b) / 2 / b)) * b) * Math.cos(l),
y: D * Math.sin(l)
}, f = i * Math.cos(l + Math.PI / 2), p = i * Math.sin(l + Math.PI / 2), m = i * Math.cos(l), h = i * Math.sin(l), g = a.x + u.x, _ = -a.y - u.y, v = ``, y = 0; y <= T; y++) v += ` M` + A.measure.em2px(g + 8 * y * m) + `,` + A.measure.em2px(_ - 8 * y * h) + ` Q` + A.measure.em2px(g + (8 * y + 1) * m + f) + `,` + A.measure.em2px(_ - (8 * y + 1) * h - p) + ` ` + A.measure.em2px(g + (8 * y + 2) * m) + `,` + A.measure.em2px(_ - (8 * y + 2) * h) + ` T` + A.measure.em2px(g + (8 * y + 4) * m) + `,` + A.measure.em2px(_ - (8 * y + 4) * h);
this.drawSquigglyLineShape(e, v, a, o, f, p, r);
}
break;
default:
var x = new Mt();
x.c = Mt.originPosition;
var S = new St(Y.none, x), C = t.boundingBox(S);
if (C == null) return;
var w = C.l + C.r;
w == 0 && (w = A.measure.strokeWidth);
var T, E = Math.sqrt(s * s + c * c);
if ((T = Math.floor(E / w)) == 0) return;
var D = (E - T * w) / 2, ee = Math.cos(l), te = Math.sin(l), ne = w * ee, O = w * te, re = a.x + (D + C.l) * ee, ie = a.y + (D + C.l) * te;
for (S = new St(Y.none, x), y = 0; y < T; y++) x.c = new U.Point(re + y * ne, ie + y * O), x.angle = l, t.toDropShape(S).draw(e);
}
}
}
},
{
key: `drawStraightLine`,
value: function(e, t, n, r, i, a, o, s) {
if (o === `3`) {
var c = a * Math.cos(i + Math.PI / 2), l = a * Math.sin(i + Math.PI / 2);
e.createSVGElement(`line`, {
x1: A.measure.em2px(t.x + r.x),
y1: -A.measure.em2px(t.y + r.y),
x2: A.measure.em2px(n.x),
y2: -A.measure.em2px(n.y),
"stroke-dasharray": s
}), e.createSVGElement(`line`, {
x1: A.measure.em2px(t.x + c + r.x),
y1: -A.measure.em2px(t.y + l + r.y),
x2: A.measure.em2px(n.x + c),
y2: -A.measure.em2px(n.y + l),
"stroke-dasharray": s
}), e.createSVGElement(`line`, {
x1: A.measure.em2px(t.x - c + r.x),
y1: -A.measure.em2px(t.y - l + r.y),
x2: A.measure.em2px(n.x - c),
y2: -A.measure.em2px(n.y - l),
"stroke-dasharray": s
});
} else o === `2` ? (c = a * Math.cos(i + Math.PI / 2) / 2, l = a * Math.sin(i + Math.PI / 2) / 2, e.createSVGElement(`line`, {
x1: A.measure.em2px(t.x + c + r.x),
y1: -A.measure.em2px(t.y + l + r.y),
x2: A.measure.em2px(n.x + c),
y2: -A.measure.em2px(n.y + l),
"stroke-dasharray": s
}), e.createSVGElement(`line`, {
x1: A.measure.em2px(t.x - c + r.x),
y1: -A.measure.em2px(t.y - l + r.y),
x2: A.measure.em2px(n.x - c),
y2: -A.measure.em2px(n.y - l),
"stroke-dasharray": s
})) : e.createSVGElement(`line`, {
x1: A.measure.em2px(t.x + r.x),
y1: -A.measure.em2px(t.y + r.y),
x2: A.measure.em2px(n.x),
y2: -A.measure.em2px(n.y),
"stroke-dasharray": s
});
}
},
{
key: `drawSquigglyLineShape`,
value: function(e, t, n, r, i, a, o) {
o === `3` ? (e.createSVGElement(`path`, { d: t }), e.createGroup(e.transformBuilder().translate(i, a)).createSVGElement(`path`, { d: t }), e.createGroup(e.transformBuilder().translate(-i, -a)).createSVGElement(`path`, { d: t })) : o === `2` ? (e.createGroup(e.transformBuilder().translate(i / 2, a / 2)).createSVGElement(`path`, { d: t }), e.createGroup(e.transformBuilder().translate(-i / 2, -a / 2)).createSVGElement(`path`, { d: t })) : e.createSVGElement(`path`, { d: t });
}
}
]), e;
}();
var Z = function() {
function e() {
kt(this, e);
}
return jt(e, [{
key: `bezierFatLine`,
value: function(e) {
var t, n, r, i, a = this.cps[0], o = this.cps[e];
if (a.x !== o.x || a.y !== o.y) t = a.y - o.y, n = o.x - a.x, t /= i = Math.sqrt(t * t + n * n), n /= i, r = (a.x * o.y - a.y * o.x) / i;
else {
var s = this.bezier.angle(this.tmin);
t = -Math.sin(s), n = Math.cos(s), r = -t * this.cp0.x - n * this.cp0.y;
}
for (var c = r, l = r, u = 1; u < e; u++) {
var d = -t * this.cps[u].x - n * this.cps[u].y;
d > l ? l = d : d < c && (c = d);
}
return {
min: [
t,
n,
c
],
max: [
t,
n,
l
]
};
}
}, {
key: `clippedLineRange`,
value: function(e, t, n) {
for (var r, i, a, o, s, c = e.length - 1, l = Array(c + 1), u = tt, d = 0; d <= c; d++) l[d] = [
d / c,
-t[0] * e[d].x - t[1] * e[d].y - t[2],
1
];
if (l[0][1] < 0) {
var f = !0;
for (d = 1; d <= c; d++) (r = -(m = u(l[0], l[d]))[2] / m[0]) > 0 && r < 1 && (i === void 0 || r < i) && (i = r), l[d][1] >= 0 && (f = !1);
if (f) return;
} else i = 0;
if (l[c][1] < 0) for (d = 0; d < c; d++) (r = -(h = u(l[c], l[d]))[2] / h[0]) > 0 && r < 1 && (a === void 0 || r > a) && (a = r);
else a = 1;
for (d = 0; d <= c; d++) l[d] = [
d / c,
n[0] * e[d].x + n[1] * e[d].y + n[2],
1
];
if (l[0][1] < 0) {
var p = !0;
for (d = 1; d <= c; d++) {
var m;
(r = -(m = u(l[0], l[d]))[2] / m[0]) > 0 && r < 1 && (o === void 0 || r < o) && (o = r), l[d][1] >= 0 && (p = !1);
}
if (p) return;
} else o = 0;
if (l[c][1] < 0) for (d = 0; d < c; d++) {
var h;
(r = -(h = u(l[c], l[d]))[2] / h[0]) > 0 && r < 1 && (s === void 0 || r > s) && (s = r);
}
else s = 1;
var g = Math.max(i, o), _ = Math.min(a, s);
return {
min: this.tmin + g * (this.tmax - this.tmin),
max: this.tmin + _ * (this.tmax - this.tmin)
};
}
}], [
{
key: `findIntersections`,
value: function(t, n) {
for (var r = e.maxIterations, i = e.goalAccuracy, a = [[
t,
n,
!1
]], o = 0, s = []; o < r && a.length > 0;) {
o++;
var c = a.shift(), l = (t = c[0], n = c[1], c[2]), u = t.fatLine(), d = n.clippedRange(u.min, u.max);
if (d != null) {
var f = d.min, p = d.max, m = p - f;
if (m < i && t.paramLength() < i) l ? s.push([n.clip(f, p).paramRange(), t.paramRange()]) : s.push([t.paramRange(), n.clip(f, p).paramRange()]);
else if (m <= .8 * n.paramLength()) a.push([
n.clip(f, p),
t,
!l
]);
else if (m > t.paramLength()) {
var h = (p + f) / 2;
a.push([
n.clip(f, h),
t,
!l
]), a.push([
n.clip(h, p),
t,
!l
]);
} else {
var g = n.clip(f, p), _ = t.paramRange(), v = (_.min + _.max) / 2;
a.push([
g,
t.clip(_.min, v),
!l
]), a.push([
g,
t.clip(v, _.max),
!l
]);
}
}
}
return s;
}
},
{
key: `maxIterations`,
get: function() {
return 30;
}
},
{
key: `goalAccuracy`,
get: function() {
return 1e-4;
}
}
]), e;
}();
Z.Line = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i, a) {
var o;
return kt(this, n), (o = t.call(this)).p0 = e, o.p1 = r, o.tmin = i, o.tmax = a, o;
}
return jt(n, [
{
key: `paramRange`,
value: function() {
return {
min: this.tmin,
max: this.tmax
};
}
},
{
key: `paramLength`,
value: function() {
return this.tmax - this.tmin;
}
},
{
key: `containsParam`,
value: function(e) {
return e >= this.tmin && e <= this.tmax;
}
},
{
key: `position`,
value: function(e) {
return {
x: this.p0.x + e * (this.p1.x - this.p0.x),
y: this.p0.y + e * (this.p1.y - this.p0.y)
};
}
},
{
key: `fatLine`,
value: function() {
var e = this.p1.y - this.p0.y, t = this.p0.x - this.p1.x, n = this.p1.x * this.p0.y - this.p0.x * this.p1.y, r = Math.sqrt(e * e + t * t);
return r === 0 ? (e = 1, t = 0) : (e /= r, t /= r, n /= r), {
min: [
e,
t,
n
],
max: [
e,
t,
n
]
};
}
},
{
key: `clip`,
value: function(e, t) {
return new Z.Line(this.p0, this.p1, e, t);
}
},
{
key: `clippedRange`,
value: function(e, t) {
var n = [, ,];
return n[0] = this.position(this.tmin), n[1] = this.position(this.tmax), this.clippedLineRange(n, e, t);
}
},
{
key: `drawFatLine`,
value: function() {
this.fatLine().min;
var e = function(e, t) {
return -(e * t[0] + t[2]) / t[1];
}, t = this.p0.x, n = this.p1.x;
A.svgForDebug.createSVGElement(`line`, {
x1: A.measure.em2px(t),
y1: -A.measure.em2px(e(t, lmax)),
x2: A.measure.em2px(n),
y2: -A.measure.em2px(e(n, lmax)),
"stroke-width": A.measure.em2px(.02 * A.measure.oneem),
stroke: `red`
});
}
}
]), n;
}(Z), Z.QuadBezier = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i) {
var a;
return kt(this, n), (a = t.call(this)).bezier = e, a.tmin = r, a.tmax = i, a.cp0 = e.position(r), a.cp1 = new U.Point((1 - i) * (1 - r) * e.cp0.x + (r + i - 2 * r * i) * e.cp1.x + r * i * e.cp2.x, (1 - i) * (1 - r) * e.cp0.y + (r + i - 2 * r * i) * e.cp1.y + r * i * e.cp2.y), a.cp2 = e.position(i), a.cps = [
a.cp0,
a.cp1,
a.cp2
], a;
}
return jt(n, [
{
key: `paramRange`,
value: function() {
return {
min: this.tmin,
max: this.tmax
};
}
},
{
key: `paramLength`,
value: function() {
return this.tmax - this.tmin;
}
},
{
key: `fatLine`,
value: function() {
return this.bezierFatLine(2);
}
},
{
key: `clip`,
value: function(e, t) {
return new Z.QuadBezier(this.bezier, e, t);
}
},
{
key: `clippedRange`,
value: function(e, t) {
return this.clippedLineRange(this.cps, e, t);
}
},
{
key: `drawFatLine`,
value: function() {
var e = this.fatLine(), t = e.min, n = e.max, r = function(e, t) {
return -(e * t[0] + t[2]) / t[1];
}, i = this.cp0.x, a = this.cp2.x;
A.svgForDebug.createSVGElement(`line`, {
x1: A.measure.em2px(i),
y1: -A.measure.em2px(r(i, t)),
x2: A.measure.em2px(a),
y2: -A.measure.em2px(r(a, t)),
"stroke-width": A.measure.em2px(.02 * A.measure.oneem),
stroke: `blue`
}), A.svgForDebug.createSVGElement(`line`, {
x1: A.measure.em2px(i),
y1: -A.measure.em2px(r(i, n)),
x2: A.measure.em2px(a),
y2: -A.measure.em2px(r(a, n)),
"stroke-width": A.measure.em2px(.02 * A.measure.oneem),
stroke: `red`
});
}
}
]), n;
}(Z), Z.CubicBezier = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i) {
var a;
return kt(this, n), (a = t.call(this)).bezier = e, a.tmin = r, a.tmax = i, a.cp0 = e.position(r), a.cp1 = new U.Point((1 - i) * (1 - r) * (1 - r) * e.cp0.x + (1 - r) * (2 * r + i - 3 * r * i) * e.cp1.x + r * (2 * i + r - 3 * r * i) * e.cp2.x + r * r * i * e.cp3.x, (1 - i) * (1 - r) * (1 - r) * e.cp0.y + (1 - r) * (2 * r + i - 3 * r * i) * e.cp1.y + r * (2 * i + r - 3 * r * i) * e.cp2.y + r * r * i * e.cp3.y), a.cp2 = new U.Point((1 - r) * (1 - i) * (1 - i) * e.cp0.x + (1 - i) * (2 * i + r - 3 * r * i) * e.cp1.x + i * (2 * r + i - 3 * r * i) * e.cp2.x + r * i * i * e.cp3.x, (1 - r) * (1 - i) * (1 - i) * e.cp0.y + (1 - i) * (2 * i + r - 3 * r * i) * e.cp1.y + i * (2 * r + i - 3 * r * i) * e.cp2.y + r * i * i * e.cp3.y), a.cp3 = e.position(i), a.cps = [
a.cp0,
a.cp1,
a.cp2,
a.cp3
], a;
}
return jt(n, [
{
key: `paramRange`,
value: function() {
return {
min: this.tmin,
max: this.tmax
};
}
},
{
key: `paramLength`,
value: function() {
return this.tmax - this.tmin;
}
},
{
key: `fatLine`,
value: function() {
return this.bezierFatLine(3);
}
},
{
key: `clip`,
value: function(e, t) {
return new Z.CubicBezier(this.bezier, e, t);
}
},
{
key: `clippedRange`,
value: function(e, t) {
return this.clippedLineRange(this.cps, e, t);
}
},
{
key: `drawFatLine`,
value: function() {
var e = this.fatLine(), t = e.min, n = e.max, r = function(e, t) {
return -(e * t[0] + t[2]) / t[1];
}, i = this.cp0.x, a = this.cp3.x;
A.svgForDebug.createSVGElement(`line`, {
x1: A.measure.em2px(i),
y1: -A.measure.em2px(r(i, t)),
x2: A.measure.em2px(a),
y2: -A.measure.em2px(r(a, t)),
"stroke-width": A.measure.em2px(.02 * A.measure.oneem),
stroke: `blue`
}), A.svgForDebug.createSVGElement(`line`, {
x1: A.measure.em2px(i),
y1: -A.measure.em2px(r(i, n)),
x2: A.measure.em2px(a),
y2: -A.measure.em2px(r(a, n)),
"stroke-width": A.measure.em2px(.02 * A.measure.oneem),
stroke: `red`
});
}
}
]), n;
}(Z), Z.Arc = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i, a, o, s) {
var c;
return kt(this, n), (c = t.call(this)).x = e, c.y = r, c.rx = i, c.ry = a, c.angleMin = o, c.angleMax = s, c;
}
return jt(n, [
{
key: `paramRange`,
value: function() {
return {
min: this.angleMin,
max: this.angleMax
};
}
},
{
key: `paramLength`,
value: function() {
return this.angleMax - this.angleMin;
}
},
{
key: `normalizeAngle`,
value: function(e) {
return (e = e % 2 * Math.PI) > Math.PI ? e - 2 * Math.PI : e < -Math.PI ? e + 2 * Math.PI : e;
}
},
{
key: `containsParam`,
value: function(e) {
return e >= this.angleMin && e <= this.angleMax;
}
},
{
key: `fatLine`,
value: function() {
var e = this.rx, t = this.ry, n = (this.angleMax + this.angleMin) / 2, r = (this.angleMax - this.angleMin) / 2, i = Math.cos(n), a = Math.sin(n), o = Math.sqrt(e * e * a * a + t * t * i * i);
if (o < l.machinePrecision) var s = [
1,
0,
this.x * t * i + this.y * e * a + e * t * Math.cos(r)
], c = [
1,
0,
this.x * t * i + this.y * e * a + e * t
];
else {
var u = e / o, d = t / o;
s = [
-d * i,
-u * a,
this.x * d * i + this.y * u * a + e * t / o * Math.cos(r)
], c = [
-d * i,
-u * a,
this.x * d * i + this.y * u * a + e * t / o
];
}
return {
min: s,
max: c
};
}
},
{
key: `clip`,
value: function(e, t) {
return new Z.Arc(this.x, this.y, this.rx, this.ry, e, t);
}
},
{
key: `toCircleLine`,
value: function(e, t, n, r, i) {
var a = e[0], o = e[1], s = a * r, c = o * i, u = e[2] * r + (r - i) * o * n, d = Math.sqrt(s * s + c * c);
return d < l.machinePrecision ? (s = 1, c = 0) : (s /= d, c /= d, u /= d), [
s,
c,
u
];
}
},
{
key: `clippedRange`,
value: function(e, t) {
var n = this.x, r = this.y, i = this.rx, a = this.ry, o = this.toCircleLine(e, n, r, i, a), s = this.toCircleLine(t, n, r, i, a), c = i, l = this.angleMin, u = this.angleMax, d = -(o[0] * n + o[1] * r + o[2]), f = [];
if (c * c - d * d >= 0) {
var p = o[0] * d - o[1] * Math.sqrt(c * c - d * d), m = o[1] * d + o[0] * Math.sqrt(c * c - d * d), h = o[0] * d + o[1] * Math.sqrt(c * c - d * d), g = o[1] * d - o[0] * Math.sqrt(c * c - d * d), _ = Math.atan2(m, p), v = Math.atan2(g, h);
this.containsParam(_) && f.push(_), this.containsParam(v) && f.push(v);
}
var y, b, x = -(o[0] * (n + c * Math.cos(l)) + o[1] * (r + c * Math.sin(l)) + o[2]), S = -(o[0] * (n + c * Math.cos(u)) + o[1] * (r + c * Math.sin(u)) + o[2]);
if (x < 0) {
if (f.length == 0) return;
y = Math.min.apply(Math, f);
} else y = this.angleMin;
if (S < 0) {
if (f.length == 0) return;
b = Math.max.apply(Math, f);
} else b = this.angleMax;
f = [], c * c - (d = s[0] * n + s[1] * r + s[2]) * d >= 0 && (p = -o[0] * d + o[1] * Math.sqrt(c * c - d * d), m = -o[1] * d - o[0] * Math.sqrt(c * c - d * d), h = -o[0] * d - o[1] * Math.sqrt(c * c - d * d), g = -o[1] * d + o[0] * Math.sqrt(c * c - d * d), _ = Math.atan2(m, p), v = Math.atan2(g, h), this.containsParam(_) && f.push(_), this.containsParam(v) && f.push(v));
var C, w;
if (x = s[0] * (n + c * Math.cos(l)) + s[1] * (r + c * Math.sin(l)) + s[2], S = s[0] * (n + c * Math.cos(u)) + s[1] * (r + c * Math.sin(u)) + s[2], x < 0) {
if (f.length == 0) return;
C = Math.min.apply(Math, f);
} else C = this.angleMin;
if (S < 0) {
if (f.length == 0) return;
w = Math.max.apply(Math, f);
} else w = this.angleMax;
return {
min: Math.max(y, C),
max: Math.min(b, w)
};
}
},
{
key: `drawFatLine`,
value: function() {
var e = this.fatLine(), t = e.min, n = e.max, r = function(e, t) {
return -(e * t[0] + t[2]) / t[1];
}, i = this.x + this.r * Math.cos(this.angleMin), a = this.x + this.r * Math.cos(this.angleMax);
A.svgForDebug.createSVGElement(`line`, {
x1: A.measure.em2px(i),
y1: -A.measure.em2px(r(i, t)),
x2: A.measure.em2px(a),
y2: -A.measure.em2px(r(a, t)),
"stroke-width": A.measure.em2px(.02 * A.measure.oneem),
stroke: `blue`
}), A.svgForDebug.createSVGElement(`line`, {
x1: A.measure.em2px(i),
y1: -A.measure.em2px(r(i, n)),
x2: A.measure.em2px(a),
y2: -A.measure.em2px(r(a, n)),
"stroke-width": A.measure.em2px(.02 * A.measure.oneem),
stroke: `red`
});
}
}
]), n;
}(Z);
var Q = function e() {
kt(this, e);
};
function Nt(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function Pt(e, t, n) {
return t && Nt(e.prototype, t), n && Nt(e, n), e;
}
function Ft(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
Q.None = function(e) {
wt(n, e);
var t = Et(n);
function n() {
return kt(this, n), t.call(this);
}
return jt(n, [
{
key: `isDefined`,
get: function() {
return !1;
}
},
{
key: `segments`,
value: function() {
return [];
}
},
{
key: `angle`,
value: function() {
return 0;
}
}
]), n;
}(Q), Q.none = new Q.None(), Q.Line = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i, a, o) {
var s;
return kt(this, n), (s = t.call(this)).start = e, s.end = r, s.p = i, s.c = a, s.lineShape = o, s;
}
return jt(n, [
{
key: `isDefined`,
get: function() {
return !0;
}
},
{
key: `position`,
value: function(e) {
return new U.Point(this.p.x + e * (this.c.x - this.p.x), this.p.y + e * (this.c.y - this.p.y));
}
},
{
key: `derivative`,
value: function(e) {
return new U.Point(this.c.x - this.p.x, this.c.y - this.p.y);
}
},
{
key: `angle`,
value: function(e) {
var t = this.c.x - this.p.x, n = this.c.y - this.p.y;
return t === 0 && n === 0 ? 0 : Math.atan2(n, t);
}
},
{
key: `tOfPlace`,
value: function(e, t, n, r) {
var i = e ? this.start : this.p, a = t ? this.end : this.c;
if (i.x === a.x && i.y === a.y) return 0;
var o, s, c = a.x - i.x, l = a.y - i.y, u = Math.sqrt(c * c + l * l);
n > .5 ? (o = a.x - (1 - n) * c + r * c / u, s = a.y - (1 - n) * l + r * l / u) : (o = i.x + n * c + r * c / u, s = i.y + n * l + r * l / u);
var d = this.c.x - this.p.x, f = this.c.y - this.p.y;
return d === 0 && f === 0 ? 0 : Math.abs(d) > Math.abs(f) ? (o - this.p.x) / d : (s - this.p.y) / f;
}
},
{
key: `sliceHole`,
value: function(e, t) {
if (this.lineShape !== void 0 && !e.isPoint()) {
var n = this.lineShape, r = n.line, i = r.tOfIntersections(e);
i.push(0), i.push(1), i.sort();
for (var a = i[0], o = 1; o < i.length; o++) {
var s = i[o], c = r.position((s + a) / 2);
if (e.contains(c)) {
var l = new bt(a, s);
n.sliceHole(l);
}
a = s;
}
}
}
},
{
key: `segments`,
value: function() {
return [new Z.Line(this.p, this.c, 0, 1)];
}
}
]), n;
}(Q), Q.QuadBezier = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i, a) {
var o;
return kt(this, n), (o = t.call(this)).origBezier = e, o.tOfShavedStart = r, o.tOfShavedEnd = i, a.isNone || (o.curveShape = a, r > 0 && a.sliceHole(new bt(0, r)), i < 1 && a.sliceHole(new bt(i, 1))), o;
}
return jt(n, [
{
key: `isDefined`,
get: function() {
return !0;
}
},
{
key: `position`,
value: function(e) {
return this.origBezier.position(e);
}
},
{
key: `derivative`,
value: function(e) {
return this.origBezier.derivative(e);
}
},
{
key: `angle`,
value: function(e) {
return this.origBezier.angle(e);
}
},
{
key: `tOfPlace`,
value: function(e, t, n, r) {
var i, a;
e ? (i = this.tOfShavedStart, a = t ? this.tOfShavedEnd - this.tOfShavedStart : 1 - this.tOfShavedStart) : (i = 0, a = t ? this.tOfShavedEnd : 1);
var o = this.origBezier, s = i + a * n;
if (r !== 0) {
var c = o.length(s);
s = o.tOfLength(c + r);
}
return s;
}
},
{
key: `sliceHole`,
value: function(e, t) {
var n = this.curveShape;
if (n !== void 0 && !e.isPoint()) {
var r = n.curve, i = r.tOfIntersections(e);
i.push(0), i.push(1), i.sort();
for (var a = i[0], o = 1; o < i.length; o++) {
var s = i[o];
if (a <= t && t <= s) {
var c = r.position((s + a) / 2);
if (e.contains(c)) {
var l = new bt(a, s);
n.sliceHole(l);
}
}
a = s;
}
}
}
},
{
key: `segments`,
value: function() {
return [new Z.QuadBezier(this.origBezier, 0, 1)];
}
}
]), n;
}(Q), Q.CubicBezier = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i, a) {
var o;
return kt(this, n), (o = t.call(this)).origBezier = e, o.tOfShavedStart = r, o.tOfShavedEnd = i, a.isNone || (o.curveShape = a, r > 0 && a.sliceHole(new bt(0, r)), i < 1 && a.sliceHole(new bt(i, 1))), o;
}
return jt(n, [
{
key: `originalLine`,
value: function() {
return this.originalLine;
}
},
{
key: `isDefined`,
get: function() {
return !0;
}
},
{
key: `position`,
value: function(e) {
return this.origBezier.position(e);
}
},
{
key: `derivative`,
value: function(e) {
return this.origBezier.derivative(e);
}
},
{
key: `angle`,
value: function(e) {
return this.origBezier.angle(e);
}
},
{
key: `tOfPlace`,
value: function(e, t, n, r) {
var i, a;
e ? (i = this.tOfShavedStart, a = t ? this.tOfShavedEnd - this.tOfShavedStart : 1 - this.tOfShavedStart) : (i = 0, a = t ? this.tOfShavedEnd : 1);
var o = this.origBezier, s = i + a * n;
if (r !== 0) {
var c = o.length(s);
s = o.tOfLength(c + r);
}
return s;
}
},
{
key: `sliceHole`,
value: function(e, t) {
var n = this.curveShape;
if (n !== void 0 && !e.isPoint()) {
var r = n.curve, i = r.tOfIntersections(e);
i.push(0), i.push(1), i.sort();
for (var a = i[0], o = 1; o < i.length; o++) {
var s = i[o];
if (a <= t && t <= s) {
var c = r.position((s + a) / 2);
if (e.contains(c)) {
var l = new bt(a, s);
n.sliceHole(l);
}
}
a = s;
}
}
}
},
{
key: `segments`,
value: function() {
return [new Z.CubicBezier(this.origBezier, 0, 1)];
}
}
]), n;
}(Q), Q.CubicBSpline = function(e) {
wt(n, e);
var t = Et(n);
function n(e, r, i, a, o, s) {
var c;
return kt(this, n), (c = t.call(this)).s = e, c.e = r, c.origBeziers = i, c.tOfShavedStart = a, c.tOfShavedEnd = o, s.isNone || (c.curveShape = s, a > 0 && s.sliceHole(new bt(0, a)), o < 1 && s.sliceHole(new bt(o, 1))), c;
}
return jt(n, [
{
key: `isDefined`,
get: function() {
return !0;
}
},
{
key: `position`,
value: function(e) {
return this.origBeziers.position(e);
}
},
{
key: `derivative`,
value: function(e) {
return this.origBeziers.derivative(e);
}
},
{
key: `angle`,
value: function(e) {
return this.origBeziers.angle(e);
}
},
{
key: `tOfPlace`,
value: function(e, t, n, r) {
var i, a;
e ? (i = this.tOfShavedStart, a = t ? this.tOfShavedEnd - this.tOfShavedStart : 1 - this.tOfShavedStart) : (i = 0, a = t ? this.tOfShavedEnd : 1);
var o = this.origBeziers, s = i + a * n;
if (r !== 0) {
var c = o.length(s);
s = o.tOfLength(c + r);
}
return s;
}
},
{
key: `sliceHole`,
value: function(e, t) {
var n = this.curveShape;
if (n !== void 0 && !e.isPoint()) {
var r = n.curve, i = r.tOfIntersections(e);
i.push(0), i.push(1), i.sort();
for (var a = i[0], o = 1; o < i.length; o++) {
var s = i[o];
if (a <= t && t <= s) {
var c = r.position((s + a) / 2);
if (e.contains(c)) {
var l = new bt(a, s);
n.sliceHole(l);
}
}
a = s;
}
}
}
},
{
key: `segments`,
value: function() {
for (var e = Array(this.origBeziers.length), t = e.length, n = 0; n < t; n++) e[n] = new Z.CubicBezier(this.origBezier, n / t, (n + 1) / t);
return e;
}
}
]), n;
}(Q);
var It = function e() {
Ft(this, e);
};
function Lt(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function Rt(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function zt(e, t, n) {
return t && Rt(e.prototype, t), n && Rt(e, n), e;
}
function $(e, t) {
for (var n in t) e.prototype.hasOwnProperty(n) ? console.log(`WARN`, `method ` + n + ` is already exists in class ` + e.name) : e.prototype[n] = t[n];
}
It.Position = function() {
function e(t) {
Ft(this, e), this.pos = t;
}
return Pt(e, [{
key: `position`,
value: function(e) {
return this.pos;
}
}, {
key: `toString`,
value: function() {
return this.pos.toString();
}
}]), e;
}(), It.Macro = function() {
function e(t) {
Ft(this, e), this.macro = t;
}
return Pt(e, [{
key: `position`,
value: function(e) {
return env.c = this.macro.position(e), env.c;
}
}, {
key: `toString`,
value: function() {
return this.macro.toString();
}
}]), e;
}(), It.Base = function() {
function e(t, n, r) {
Ft(this, e), this.origin = t, this.xBase = n, this.yBase = r;
}
return Pt(e, [{
key: `position`,
value: function(e) {
var t = e.env;
return t.origin = this.origin, t.xBase = this.xBase, t.yBase = this.yBase, t.c;
}
}, {
key: `toString`,
value: function() {
return `origin:` + this.origin + `, xBase:` + this.xBase + `, yBase:` + this.yBase;
}
}]), e;
}(), It.Stack = function() {
function e(t) {
Ft(this, e), this.stack = t;
}
return Pt(e, [{
key: `position`,
value: function(e) {
var t = e.env;
return this.stack.isEmpty || (this.stack.tail.reverse().foreach((function(e) {
t.capturePosition(e);
})), t.c = this.stack.head), t.c;
}
}, {
key: `toString`,
value: function() {
return this.stack.toString();
}
}]), e;
}(), $(F.PosDecor, { toShape: function(e) {
this.pos.toShape(e), this.decor.toShape(e);
} }), $(F.Pos.Coord, { toShape: function(e) {
e.env.c = this.coord.position(e), this.pos2s.foreach((function(t) {
t.toShape(e);
}));
} }), $(F.Pos.Plus, { toShape: function(e) {
var t = e.env, n = this.coord.position(e);
t.c = n.move(t.c.x + n.x, t.c.y + n.y);
} }), $(F.Pos.Minus, { toShape: function(e) {
var t = e.env, n = this.coord.position(e);
t.c = n.move(t.c.x - n.x, t.c.y - n.y);
} }), $(F.Pos.Skew, { toShape: function(e) {
var t = e.env, n = this.coord.position(e);
t.c = new U.Point(n.x + t.c.x, n.y + t.c.y).combineRect(t.c);
} }), $(F.Pos.Cover, { toShape: function(e) {
var t = e.env, n = this.coord.position(e);
t.c = t.c.combineRect(n);
} }), $(F.Pos.Then, { toShape: function(e) {
var t = e.env;
t.capturePosition(t.c), t.c = this.coord.position(e);
} }), $(F.Pos.SwapPAndC, { toShape: function(e) {
var t = e.env;
t.swapPAndC(), t.c = this.coord.position(e);
} }), $(F.Pos.SetBase, { toShape: function(e) {
var t = e.env, n = t.p, r = t.c.x - n.x, i = t.c.y - n.y;
t.setOrigin(n.x, n.y), t.setXBase(r, i), t.setYBase(-i, r), t.c = this.coord.position(e);
} }), $(F.Pos.SetYBase, { toShape: function(e) {
var t = e.env;
t.setYBase(t.c.x - t.origin.x, t.c.y - t.origin.y), t.c = this.coord.position(e);
} }), $(F.Pos.ConnectObject, { toShape: function(e) {
this.object.toConnectShape(e);
} }), $(F.Pos.DropObject, { toShape: function(e) {
this.object.toDropShape(e);
} }), $(F.Pos.Place, { toShape: function(e) {
var t = e.env;
if (t.lastCurve.isDefined) {
var n, r = this.place, i = r.shaveP > 0, a = r.shaveC > 0, o = i ? r.shaveP - 1 : 0, s = a ? r.shaveC - 1 : 0;
if (i && (n = 0), a && (n = 1), i == a && (n = .5), r.factor !== void 0) if (r.factor.isIntercept) {
if (a = i = !1, (n = r.factor.value(e)) === void 0) return;
} else n = r.factor.value(e);
var c = A.measure.length2em(r.slide.dimen.getOrElse(`0`)) + (o - s) * A.measure.jot, l = t.lastCurve.tOfPlace(i, a, n, c), u = t.lastCurve.position(l), d = t.lastCurve.angle(l);
return t.c = u, t.angle = d, l;
}
} }), $(F.Pos.PushCoord, { toShape: function(e) {
var t = e.env, n = this.coord.position(e);
t.pushPos(n);
} }), $(F.Pos.EvalCoordThenPop, { toShape: function(e) {
var t = e.env;
t.c = this.coord.position(e), t.popPos();
} }), $(F.Pos.LoadStack, { toShape: function(e) {
var t = e.env;
t.startCapturePositions(), this.coord.position(e);
var n = t.endCapturePositions();
t.setStack(n), t.pushPos(t.c);
} }), $(F.Pos.DoCoord, { toShape: function(e) {
var t = e.env, n = this.coord;
t.stack.reverse().foreach((function(r) {
t.c = r, n.position(e);
}));
} }), $(F.Pos.InitStack, { toShape: function(e) {
e.env.initStack();
} }), $(F.Pos.EnterFrame, { toShape: function(e) {
e.env.enterStackFrame();
} }), $(F.Pos.LeaveFrame, { toShape: function(e) {
e.env.leaveStackFrame();
} }), $(F.Place.Factor, { value: function(e) {
return this.factor;
} }), $(F.Place.Intercept, { value: function(e) {
var t = e.env;
if (t.lastCurve.isDefined) {
var n = t.duplicate();
n.angle = 0, n.lastCurve = Q.none, n.p = n.c = Mt.originPosition;
var r = new St(Y.none, n);
this.pos.toShape(r), e.appendShapeToFront(r.shape), n.lastCurve.isDefined || (n.lastCurve = new Q.Line(n.p, n.c, n.p, n.c, void 0));
for (var i = [], a = t.lastCurve.segments(), o = n.lastCurve.segments(), s = 0; s < a.length; s++) for (var c = 0; c < o.length; c++) i = i.concat(Z.findIntersections(a[s], o[c]));
if (i.length === 0) {
console.log(`perhaps no curve intersection.`);
for (var l = t.lastCurve, u = n.lastCurve, d = 1e-5, f = 0, p = 2, m = 0, h = 0, g = function(e) {
return 1 / (1 + Math.exp(-e));
}, _ = function(e) {
var t = Math.exp(-e);
return t / (1 + t) / (1 + t);
}, v = g(m), y = g(h), b = _(m), x = _(h), S = l.derivative(v), C = u.derivative(y), w = S.x * b, T = -C.x * x, E = S.y * b, D = -C.y * x, ee = w * w + E * E, te = w * T + E * D, ne = T * w + D * E, O = T * T + D * D, re = l.position(v), ie = u.position(y), ae = re.x - ie.x, oe = re.y - ie.y, se = w * ae + E * oe, ce = T * ae + D * oe, le = Math.sqrt(se * se + ce * ce) < d, ue = .001 * Math.max(ee, O); !le && f < 100;) {
f++;
do {
var de = O + ue, fe = (ee + ue) * de - te * ne, pe = (de * se - te * ce) / fe, me = (-ne * se + ee * ce) / fe;
if (pe * pe + me * me < 10000000000000002e-26 * (m * m + h * h)) le = !0;
else {
var he = m - pe, ge = h - me, _e = g(he), ve = g(ge), ye = l.position(_e), be = u.position(ve), xe = ye.x - be.x, Se = ye.y - be.y, k = (ae * ae + oe * oe - (xe * xe + Se * Se)) / (pe * (ue * pe + se) + me * (ue * me + ce));
if (k > 0) {
h = ge, v = _e, y = ve, b = _(m = he), x = _(h), S = l.derivative(v), C = u.derivative(y), w = S.x * b, T = -C.x * x, ee = w * w + (E = S.y * b) * E, te = w * T + E * (D = -C.y * x), ne = T * w + D * E, O = T * T + D * D, se = w * (ae = xe) + E * (oe = Se), ce = T * ae + D * oe, le = Math.sqrt(se * se + ce * ce) < d;
var Ce = 2 * k - 1;
ue += Math.max(1 / 3, 1 - Ce * Ce * Ce), p = 2;
} else ue *= p, p *= 2;
}
} while (!(le || k !== void 0 && k > 0));
}
return g(m);
}
var we = (i[0][0].min + i[0][0].max) / 2;
for (s = 1; s < i.length; s++) {
var Te = (i[s][0].min + i[s][0].max) / 2;
we > Te && (we = Te);
}
return we;
}
} }), $(F.Pos.SavePos, { toShape: function(e) {
var t = e.env;
t.savePos(this.id, new It.Position(t.c));
} }), $(F.Pos.SaveMacro, { toShape: function(e) {
e.env.savePos(this.id, new It.Macro(this.macro));
} }), $(F.Pos.SaveBase, { toShape: function(e) {
var t = e.env;
t.savePos(this.id, new It.Base(t.origin, t.xBase, t.yBase));
} }), $(F.Pos.SaveStack, { toShape: function(e) {
var t = e.env;
t.savePos(this.id, new It.Stack(t.stack));
} }), $(F.Object, {
toDropShape: function(e) {
var t = e.env;
if (t.c === void 0) return Y.none;
var n = this.modifiers;
if (n.isEmpty) return this.object.toDropShape(e);
var r = t.duplicate(), i = new St(Y.none, r), a = O.empty;
n.foreach((function(e) {
e.preprocess(i, a), a = a.prepend(e);
}));
var o = this.object.toDropShape(i), s = r.c;
if (s === void 0) return Y.none;
var c = r.originalReferencePoint;
return (r = t.duplicate()).c = s, r.originalReferencePoint = c, i = new St(Y.none, r), o = n.head.modifyShape(i, o, n.tail), e.appendShapeToFront(o), t.c = r.c.move(t.c.x, t.c.y), o;
},
toConnectShape: function(e) {
var t = e.env;
if (t.c === void 0) return Y.none;
var n = this.modifiers;
if (n.isEmpty) return this.object.toConnectShape(e);
var r = t.duplicate(), i = new St(Y.none, r), a = O.empty;
n.foreach((function(e) {
e.preprocess(i, a), a = a.prepend(e);
}));
var o = this.object.toConnectShape(i);
t.angle = r.angle, t.lastCurve = r.lastCurve;
var s = r.c;
if (s === void 0) return Y.none;
var c = r.originalReferencePoint;
return (r = t.duplicate()).c = s, r.originalReferencePoint = c, i = new St(Y.none, r), o = n.head.modifyShape(i, o, n.tail), e.appendShapeToFront(o), t.c = r.c.move(t.c.x, t.c.y), o;
},
boundingBox: function(e) {
var t = e.duplicateEnv(), n = t.env;
return n.angle = 0, n.p = n.c = Mt.originPosition, t.shape = Y.none, this.toDropShape(t).getBoundingBox();
}
}), $(F.ObjectBox, {
toConnectShape: function(e) {
var t = (n = e.env).c, n = e.env, r = (A.measure.thickness, n.p.edgePoint(n.c.x, n.c.y)), i = n.c.edgePoint(n.p.x, n.p.y);
if (r.x !== i.x || r.y !== i.y) {
var a = new X.Line(r, i).toShape(e, this, `196883`, ``);
return n.originalReferencePoint = t, a;
}
return n.angle = 0, n.lastCurve = Q.none, n.originalReferencePoint = t, Y.none;
},
boundingBox: function(e) {
var t = e.duplicateEnv(), n = t.env;
return n.angle = 0, n.p = n.c = Mt.originPosition, t.shape = Y.none, this.toDropShape(t).getBoundingBox();
}
}), $(F.ObjectBox.WrapUpObject, {
toDropShape: function(e) {
var t = e.env, n = this.object.toDropShape(e);
return t.originalReferencePoint = t.c, n;
},
toConnectShape: function(e) {
var t = e.env, n = this.object.toConnectShape(e);
return t.originalReferencePoint = t.c, n;
}
}), $(F.ObjectBox.CompositeObject, { toDropShape: function(e) {
var t = e.env, n = t.c;
if (n === void 0) return Y.none;
var r = n, i = t.duplicate(), a = new St(Y.none, i);
this.objects.foreach((function(e) {
i.c = n;
var t = e.toDropShape(a);
r = U.combineRect(r, i.c), r = U.combineRect(r, t.getBoundingBox().toPoint());
})), t.c = r;
var o = a.shape;
return e.appendShapeToFront(o), t.originalReferencePoint = n, o;
} }), $(F.ObjectBox.Xybox, { toDropShape: function(e) {
var t = e.env, n = t.c;
if (n === void 0) return Y.none;
var r = new Mt(), i = new St(Y.none, r);
this.posDecor.toShape(i);
var a = i.shape, o = a.getBoundingBox();
if (o === void 0) return Y.none;
var s = Math.max(0, o.l - o.x), c = Math.max(0, o.r + o.x), l = Math.max(0, o.u + o.y), u = Math.max(0, o.d - o.y);
t.c = new U.Rect(n.x, n.y, {
l: s,
r: c,
u: l,
d: u
}), t.originalReferencePoint = n;
var d = new Y.TranslateShape(n.x, n.y, a);
return e.appendShapeToFront(d), d;
} }), $(F.ObjectBox.Xymatrix, { toDropShape: function(e) {
var t = e.env, n = t.c, r = this.xymatrix.toShape(e);
return t.originalReferencePoint = n, r;
} }), $(F.ObjectBox.Text, { toDropShape: function(e) {
var t = e.env, n = new Y.TextShape(t.c, this.math);
return e.appendShapeToFront(n), t.c = n.getBoundingBox(), t.originalReferencePoint = n.getOriginalReferencePoint(), n;
} }), $(F.ObjectBox.Empty, { toDropShape: function(e) {
var t = e.env;
return t.originalReferencePoint = t.c, t.c = new U.Point(t.c.x, t.c.y), Y.none;
} }), $(F.ObjectBox.Txt, { toDropShape: function(e) {
var t = e.env;
if (t.c === void 0) return Y.none;
var n = this.textObject.toDropShape(e);
return t.originalReferencePoint = t.c, n;
} }), $(F.ObjectBox.Txt.Width.Vector, { width: function(e) {
return this.vector.xy().x;
} }), $(F.ObjectBox.Txt.Width.Default, { width: function(e) {
var t = e.env.c;
return t.r + t.l;
} }), $(F.ObjectBox.Cir, {
toDropShape: function(e) {
var t = e.env;
if (t.c === void 0) return Y.none;
t.originalReferencePoint = t.c;
var n = this.radius.radius(e), r = t.c.x, i = t.c.y, a = this.cir.toDropShape(e, r, i, n);
return t.c = new U.Ellipse(r, i, n, n, n, n), a;
},
toConnectShape: function(e) {
var t = e.env;
return t.originalReferencePoint = t.c, Y.none;
}
}), $(F.ObjectBox.Cir.Radius.Vector, { radius: function(e) {
return this.vector.xy(e).x;
} }), $(F.ObjectBox.Cir.Radius.Default, { radius: function(e) {
return e.env.c.r;
} }), $(F.ObjectBox.Cir.Cir.Segment, {
toDropShape: function(e, t, n, r) {
e.env;
var i, a, o = this.startPointDegree(e), s = this.endPointDegree(e, o), c = s - o;
if ((c = c < 0 ? c + 360 : c) === 0) return Y.none;
this.orient === `^` ? (i = c > 180 ? `1` : `0`, a = `0`) : (i = c > 180 ? `0` : `1`, a = `1`);
var l = Math.PI / 180, u = t + r * Math.cos(o * l), d = n + r * Math.sin(o * l), f = t + r * Math.cos(s * l), p = n + r * Math.sin(s * l), m = new Y.CircleSegmentShape(t, n, u, d, r, i, a, f, p);
return e.appendShapeToFront(m), m;
},
startPointDegree: function(e) {
var t = this.startDiag.toString();
return this.orient === `^` ? this.diagToAngleACW(t) : this.diagToAngleCW(t);
},
endPointDegree: function(e, t) {
var n = this.endDiag.toString();
return this.orient === `^` ? this.diagToAngleACW(n, t) : this.diagToAngleCW(n, t);
},
diagToAngleACW: function(e, t) {
switch (e) {
case `l`: return 90;
case `r`: return -90;
case `d`: return 180;
case `u`: return 0;
case `dl`:
case `ld`: return 135;
case `dr`:
case `rd`: return -135;
case `ul`:
case `lu`: return 45;
case `ur`:
case `ru`: return -45;
default: return t === void 0 ? 0 : t + 180;
}
},
diagToAngleCW: function(e, t) {
switch (e) {
case `l`: return -90;
case `r`: return 90;
case `d`: return 0;
case `u`: return 180;
case `dl`:
case `ld`: return -45;
case `dr`:
case `rd`: return 45;
case `ul`:
case `lu`: return -135;
case `ur`:
case `ru`: return 135;
default: return t === void 0 ? 0 : t + 180;
}
}
}), $(F.ObjectBox.Cir.Cir.Full, { toDropShape: function(e, t, n, r) {
var i = new Y.FullCircleShape(t, n, r);
return e.appendShapeToFront(i), i;
} }), $(F.ObjectBox.Frame, {
toDropShape: function(e) {
var t = e.env;
return t.originalReferencePoint = t.c, this.toDropFilledShape(e, `currentColor`, !1);
},
toDropFilledShape: function(e, t, n) {
var r = e.env.c;
if (r === void 0) return Y.none;
var i = A.measure.thickness, a = r.x, o = r.y, s = r.l, c = r.r, l = r.u, u = r.d, d = Y.none;
switch (this.main) {
case `--`:
var f = 3 * i;
if (n) {
var p = this.radius.xy(e);
d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !1, t, A.measure.em2px(f) + ` ` + A.measure.em2px(f));
} else {
var m = this.radius.radius(e);
d = new Y.RectangleShape(a, o, s, c, l, u, m, !1, t, A.measure.em2px(f) + ` ` + A.measure.em2px(f));
}
break;
case `==`:
f = 3 * i, n ? (p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !0, t, A.measure.em2px(f) + ` ` + A.measure.em2px(f))) : (m = this.radius.radius(e), d = new Y.RectangleShape(a, o, s, c, l, u, m, !0, t, A.measure.em2px(f) + ` ` + A.measure.em2px(f)));
break;
case `o-`:
f = 3 * i, m = A.measure.lineElementLength, d = new Y.RectangleShape(a, o, s, c, l, u, m, !1, t, A.measure.em2px(f) + ` ` + A.measure.em2px(f));
break;
case `oo`:
var h = (p = this.radius.xy(e)).x;
d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, h, h, !0, t, void 0);
break;
case `ee`:
p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !0, t, void 0);
break;
case `-,`:
var g = this.radius.depth(e);
m = this.radius.radius(e), d = new Y.CompositeShape(new Y.RectangleShape(a, o, s, c, l, u, m, !1, t, void 0), new Y.BoxShadeShape(a, o, s, c, l, u, g));
break;
case `.o`:
h = (p = this.radius.xy(e)).x, d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, h, h, !1, t, A.measure.dottedDasharray);
break;
case `-o`:
f = 3 * i, h = (p = this.radius.xy(e)).x, d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, h, h, !1, t, A.measure.em2px(f) + ` ` + A.measure.em2px(f));
break;
case `.e`:
p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !1, t, A.measure.dottedDasharray);
break;
case `-e`:
f = 3 * i, p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !1, t, A.measure.em2px(f) + ` ` + A.measure.em2px(f));
break;
case `-`:
n ? (p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !1, t, void 0)) : (m = this.radius.radius(e), d = new Y.RectangleShape(a, o, s, c, l, u, m, !1, t, void 0));
break;
case `=`:
n ? (p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !0, t, void 0)) : (m = this.radius.radius(e), d = new Y.RectangleShape(a, o, s, c, l, u, m, !0, t, void 0));
break;
case `.`:
n ? (p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !1, t, A.measure.dottedDasharray)) : (m = this.radius.radius(e), d = new Y.RectangleShape(a, o, s, c, l, u, m, !1, t, A.measure.dottedDasharray));
break;
case `,`:
g = this.radius.depth(e), d = new Y.BoxShadeShape(a, o, s, c, l, u, g, t);
break;
case `o`:
h = (p = this.radius.xy(e)).x, d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, h, h, !1, t, void 0);
break;
case `e`:
p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !1, t, void 0);
break;
case `\\{`:
d = new Y.LeftBrace(a - s, o, l, u, 0, t);
break;
case `\\}`:
d = new Y.LeftBrace(a + c, o, u, l, 180, t);
break;
case `^\\}`:
case `^\\{`:
d = new Y.LeftBrace(a, o + l, c, s, 270, t);
break;
case `_\\{`:
case `_\\}`:
d = new Y.LeftBrace(a, o - u, s, c, 90, t);
break;
case `(`:
d = new Y.LeftParenthesis(a - s, o + (l - u) / 2, l + u, 0, t);
break;
case `)`:
d = new Y.LeftParenthesis(a + c, o + (l - u) / 2, l + u, 180, t);
break;
case `^(`:
case `^)`:
d = new Y.LeftParenthesis(a + (c - s) / 2, o + l, s + c, 270, t);
break;
case `_(`:
case `_)`:
d = new Y.LeftParenthesis(a + (c - s) / 2, o - u, s + c, 90, t);
break;
case `*`:
r.isCircle() ? (p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !1, `currentColor`, void 0, t, !0)) : (m = this.radius.radius(e), d = new Y.RectangleShape(a, o, s, c, l, u, m, !1, `currentColor`, void 0, t, !0));
break;
case `**`:
r.isCircle() ? (p = this.radius.xy(e), d = new Y.EllipseShape(a + (c - s) / 2, o + (l - u) / 2, p.x, p.y, !1, `currentColor`, void 0, t, !1)) : (m = this.radius.radius(e), d = new Y.RectangleShape(a, o, s, c, l, u, m, !1, `currentColor`, void 0, t, !1));
break;
default: return Y.none;
}
return e.appendShapeToFront(d), d;
},
toConnectShape: function(e) {
var t = e.env, n = t.c, r = t.p;
n !== void 0 && r !== void 0 || Y.none, t.originalReferencePoint = n;
var i = t.duplicate();
i.c = r.combineRect(n);
var a = new St(Y.none, i), o = this.toDropShape(a);
return e.appendShapeToFront(o), o;
}
}), $(F.ObjectBox.Frame.Radius.Vector, {
radius: function(e) {
return this.vector.xy(e).x;
},
depth: function(e) {
return this.vector.xy(e).x;
},
xy: function(e) {
return this.vector.xy(e);
}
}), $(F.ObjectBox.Frame.Radius.Default, {
radius: function(e) {
return 0;
},
depth: function(e) {
return A.measure.thickness / 2;
},
xy: function(e) {
var t = e.env.c;
return {
x: (t.l + t.r) / 2,
y: (t.u + t.d) / 2
};
}
}), $(F.ObjectBox.Dir, {
toDropShape: function(e) {
var t = e.env, n = t.c;
t.originalReferencePoint = n;
var r = t.angle;
if (n === void 0) return Y.none;
t.c = new U.Point(n.x, n.y), A.measure.thickness;
var i = Y.none;
switch (this.main) {
case ``: return Y.none;
case `>`:
switch (this.variant) {
case `2`:
var a = (i = new Y.GT2ArrowheadShape(n, r)).getRadius();
t.c = new U.Ellipse(n.x, n.y, a, a, a, a);
break;
case `3`:
a = (i = new Y.GT3ArrowheadShape(n, r)).getRadius(), t.c = new U.Ellipse(n.x, n.y, a, a, a, a);
break;
default: i = this.variant === `^` ? new Y.UpperGTArrowheadShape(n, r) : this.variant === `_` ? new Y.LowerGTArrowheadShape(n, r) : new Y.GTArrowheadShape(n, r);
}
break;
case `<`:
switch (this.variant) {
case `2`:
a = (i = new Y.LT2ArrowheadShape(n, r)).getRadius(), t.c = new U.Ellipse(n.x, n.y, a, a, a, a);
break;
case `3`:
a = (i = new Y.LT3ArrowheadShape(n, r)).getRadius(), t.c = new U.Ellipse(n.x, n.y, a, a, a, a);
break;
default: i = this.variant === `^` ? new Y.UpperLTArrowheadShape(n, r) : this.variant === `_` ? new Y.LowerLTArrowheadShape(n, r) : new Y.LTArrowheadShape(n, r);
}
break;
case `|`:
switch (this.variant) {
case `^`:
i = new Y.UpperColumnArrowheadShape(n, r);
break;
case `_`:
i = new Y.LowerColumnArrowheadShape(n, r);
break;
case `2`:
i = new Y.Column2ArrowheadShape(n, r);
break;
case `3`:
i = new Y.Column3ArrowheadShape(n, r);
break;
default: i = new Y.ColumnArrowheadShape(n, r);
}
break;
case `(`:
switch (this.variant) {
case `^`:
i = new Y.UpperLParenArrowheadShape(n, r);
break;
case `_`:
i = new Y.LowerLParenArrowheadShape(n, r);
break;
default: i = new Y.LParenArrowheadShape(n, r);
}
break;
case `)`:
switch (this.variant) {
case `^`:
i = new Y.UpperRParenArrowheadShape(n, r);
break;
case `_`:
i = new Y.LowerRParenArrowheadShape(n, r);
break;
default: i = new Y.RParenArrowheadShape(n, r);
}
break;
case "`":
i = this.variant === `_` ? new Y.LowerBackquoteArrowheadShape(n, r) : new Y.UpperBackquoteArrowheadShape(n, r);
break;
case `'`:
i = this.variant === `_` ? new Y.LowerQuoteArrowheadShape(n, r) : new Y.UpperQuoteArrowheadShape(n, r);
break;
case `*`:
i = new Y.AsteriskArrowheadShape(n, 0);
break;
case `o`:
i = new Y.OArrowheadShape(n, 0);
break;
case `+`:
i = new Y.PlusArrowheadShape(n, r);
break;
case `x`:
i = new Y.XArrowheadShape(n, r);
break;
case `/`:
i = new Y.SlashArrowheadShape(n, r);
break;
case `-`:
case `--`:
A.measure.lineElementLength, i = this.variant === `3` ? new Y.Line3ArrowheadShape(n, r) : this.variant === `2` ? new Y.Line2ArrowheadShape(n, r) : new Y.LineArrowheadShape(n, r);
break;
case `=`:
case `==`:
i = new Y.Line2ArrowheadShape(n, r);
break;
case `.`:
case `..`:
i = this.variant === `3` ? new Y.Dot3ArrowheadShape(n, r) : this.variant === `2` ? new Y.Dot2ArrowheadShape(n, r) : new Y.DotArrowheadShape(n, r);
break;
case `:`:
case `::`:
i = new Y.Dot2ArrowheadShape(n, r);
break;
case `~`:
case `~~`:
i = this.variant === `3` ? new Y.Tilde3ArrowheadShape(n, r) : this.variant === `2` ? new Y.Tilde2ArrowheadShape(n, r) : new Y.TildeArrowheadShape(n, r);
break;
case `>>`:
switch (this.variant) {
case `^`:
i = new Y.UpperGTGTArrowheadShape(n, r);
break;
case `_`:
i = new Y.LowerGTGTArrowheadShape(n, r);
break;
case `2`:
a = (i = new Y.GTGT2ArrowheadShape(n, r)).getRadius(), t.c = new U.Ellipse(n.x, n.y, a, a, a, a);
break;
case `3`:
a = (i = new Y.GTGT3ArrowheadShape(n, r)).getRadius(), t.c = new U.Ellipse(n.x, n.y, a, a, a, a);
break;
default: i = new Y.GTGTArrowheadShape(n, r);
}
break;
case `<<`:
switch (this.variant) {
case `^`:
i = new Y.UpperLTLTArrowheadShape(n, r);
break;
case `_`:
i = new Y.LowerLTLTArrowheadShape(n, r);
break;
case `2`:
a = (i = new Y.LTLT2ArrowheadShape(n, r)).getRadius(), t.c = new U.Ellipse(n.x, n.y, a, a, a, a);
break;
case `3`:
a = (i = new Y.LTLT3ArrowheadShape(n, r)).getRadius(), t.c = new U.Ellipse(n.x, n.y, a, a, a, a);
break;
default: i = new Y.LTLTArrowheadShape(n, r);
}
break;
case `||`:
switch (this.variant) {
case `^`:
i = new Y.UpperColumnColumnArrowheadShape(n, r);
break;
case `_`:
i = new Y.LowerColumnColumnArrowheadShape(n, r);
break;
case `2`:
i = new Y.ColumnColumn2ArrowheadShape(n, r);
break;
case `3`:
i = new Y.ColumnColumn3ArrowheadShape(n, r);
break;
default: i = new Y.ColumnColumnArrowheadShape(n, r);
}
break;
case `|-`:
switch (this.variant) {
case `^`:
i = new Y.UpperColumnLineArrowheadShape(n, r);
break;
case `_`:
i = new Y.LowerColumnLineArrowheadShape(n, r);
break;
case `2`:
i = new Y.ColumnLine2ArrowheadShape(n, r);
break;
case `3`:
i = new Y.ColumnLine3ArrowheadShape(n, r);
break;
default: i = new Y.ColumnLineArrowheadShape(n, r);
}
break;
case `>|`:
i = new Y.GTColumnArrowheadShape(n, r);
break;
case `>>|`:
i = new Y.GTGTColumnArrowheadShape(n, r);
break;
case `|<`:
i = new Y.ColumnLTArrowheadShape(n, r);
break;
case `|<<`:
i = new Y.ColumnLTLTArrowheadShape(n, r);
break;
case `//`:
i = new Y.SlashSlashArrowheadShape(n, r);
break;
case `=>`:
i = new Y.LineGT2ArrowheadShape(n, r);
break;
default:
var o = A.repositories.dirRepository.get(this.main);
if (o === void 0) throw c(`ExecutionError`, `\\dir ` + this.variant + `{` + this.main + `} not defined.`);
i = o.toDropShape(e);
}
return e.appendShapeToFront(i), i;
},
toConnectShape: function(e) {
var t = e.env;
t.originalReferencePoint = t.c, A.measure.thickness;
var n = t.p.edgePoint(t.c.x, t.c.y), r = t.c.edgePoint(t.p.x, t.p.y);
return n.x !== r.x || n.y !== r.y ? new X.Line(n, r).toShape(e, this, this.main, this.variant) : (t.angle = 0, t.lastCurve = Q.none, Y.none);
}
}), $(F.ObjectBox.Curve, {
toDropShape: function(e) {
var t = e.env;
return t.originalReferencePoint = t.c, Y.none;
},
toConnectShape: function(e) {
var t = e.env;
t.originalReferencePoint = t.c;
var n = void 0, r = void 0;
this.objects.foreach((function(e) {
n = e.objectForDrop(n), r = e.objectForConnect(r);
})), n === void 0 && r === void 0 && (r = new F.Object(O.empty, new F.ObjectBox.Dir(``, `-`))), A.measure.thickness;
var i = t.c, a = t.p, o = [];
this.poslist.foreach((function(t) {
t.addPositions(o, e);
})), t.c = i, t.p = a;
var s = Y.none, c = a, l = i;
switch (o.length) {
case 0: return c.x === l.x && c.y === l.y ? (t.lastCurve = Q.none, t.angle = 0, Y.none) : r === void 0 ? n.toConnectShape(e) : r.toConnectShape(e);
case 1:
var u = (f = new X.QuadBezier(c, o[0], l)).tOfShavedStart(c), d = f.tOfShavedEnd(l);
if (u === void 0 || d === void 0 || u >= d) return t.angle = 0, t.lastCurve = Q.none, Y.none;
s = f.toShape(e, n, r), t.lastCurve = new Q.QuadBezier(f, u, d, s), t.angle = Math.atan2(l.y - c.y, l.x - c.x);
break;
case 2:
var f;
if (u = (f = new X.CubicBezier(c, o[0], o[1], l)).tOfShavedStart(c), d = f.tOfShavedEnd(l), u === void 0 || d === void 0 || u >= d) return t.angle = 0, t.lastCurve = Q.none, Y.none;
s = f.toShape(e, n, r), t.lastCurve = new Q.CubicBezier(f, u, d, s), t.angle = Math.atan2(l.y - c.y, l.x - c.x);
break;
default:
var p = new X.CubicBSpline(c, o, l), m = new X.CubicBeziers(p.toCubicBeziers());
if (u = m.tOfShavedStart(c), d = m.tOfShavedEnd(l), u === void 0 || d === void 0 || u >= d) return t.angle = 0, t.lastCurve = Q.none, Y.none;
s = m.toShape(e, n, r), t.lastCurve = new Q.CubicBSpline(c, l, m, u, d, s), t.angle = Math.atan2(l.y - c.y, l.x - c.x);
}
return s;
}
}), $(F.ObjectBox.Curve.Object.Drop, {
objectForDrop: function(e) {
return this.object;
},
objectForConnect: function(e) {
return e;
}
}), $(F.ObjectBox.Curve.Object.Connect, {
objectForDrop: function(e) {
return e;
},
objectForConnect: function(e) {
return this.object;
}
}), $(F.ObjectBox.Curve.PosList.CurPos, { addPositions: function(e, t) {
var n = t.env;
e.push(n.c);
} }), $(F.ObjectBox.Curve.PosList.Pos, { addPositions: function(e, t) {
var n = t.env;
this.pos.toShape(t), e.push(n.c);
} }), $(F.ObjectBox.Curve.PosList.AddStack, { addPositions: function(e, t) {
t.env.stack.reverse().foreach((function(t) {
e.push(t);
}));
} }), $(F.Coord.C, { position: function(e) {
return e.env.c;
} }), $(F.Coord.P, { position: function(e) {
return e.env.p;
} }), $(F.Coord.X, { position: function(e) {
var t = e.env, n = t.p, r = t.c, i = t.origin, a = t.xBase, o = r.y - n.y, s = n.x - r.x, c = r.x * n.y - r.y * n.x, u = a.y, d = -a.x, f = a.x * i.y - a.y * i.x, p = o * d - u * s;
if (Math.abs(p) < l.machinePrecision) return console.log(`there is no intersection point.`), Mt.originPosition;
var m = -(d * c - s * f) / p, h = (u * c - o * f) / p;
return new U.Point(m, h);
} }), $(F.Coord.Y, { position: function(e) {
var t = e.env, n = t.p, r = t.c, i = t.origin, a = t.yBase, o = r.y - n.y, s = n.x - r.x, c = r.x * n.y - r.y * n.x, u = a.y, d = -a.x, f = a.x * i.y - a.y * i.x, p = o * d - u * s;
if (Math.abs(p) < l.machinePrecision) return console.log(`there is no intersection point.`), Mt.originPosition;
var m = -(d * c - s * f) / p, h = (u * c - o * f) / p;
return new U.Point(m, h);
} }), $(F.Coord.Vector, { position: function(e) {
var t = this.vector.xy(e);
return new U.Point(t.x, t.y);
} }), $(F.Coord.Id, { position: function(e) {
return e.env.lookupPos(this.id).position(e);
} }), $(F.Coord.Group, { position: function(e) {
var t = e.env, n = t.origin, r = t.xBase, i = t.yBase, a = t.p;
return this.posDecor.toShape(e), t.p = a, t.origin = n, t.xBase = r, t.yBase = i, t.c;
} }), $(F.Coord.StackPosition, { position: function(e) {
return e.env.stackAt(this.number);
} }), $(F.Coord.DeltaRowColumn, { position: function(e) {
var t = e.env, n = t.xymatrixRow, r = t.xymatrixCol;
if (n === void 0 || r === void 0) throw c(`ExecutionError`, `xymatrix rows and columns not found for ` + this.toSring());
var i = this.prefix + (n + this.dr) + `,` + (r + this.dc);
return e.env.lookupPos(i, `in entry "` + t.xymatrixRow + `,` + t.xymatrixCol + `": No ` + this + ` (is ` + i + `) from here.`).position(e);
} }), $(F.Coord.Hops, { position: function(e) {
var t = e.env, n = t.xymatrixRow, r = t.xymatrixCol;
if (n === void 0 || r === void 0) throw c(`ExecutionError`, `xymatrix rows and columns not found for ` + this.toSring());
this.hops.foreach((function(e) {
switch (e) {
case `u`:
--n;
break;
case `d`:
n += 1;
break;
case `l`:
--r;
break;
case `r`: r += 1;
}
}));
var i = this.prefix + n + `,` + r;
return e.env.lookupPos(i, `in entry "` + t.xymatrixRow + `,` + t.xymatrixCol + `": No ` + this + ` (is ` + i + `) from here.`).position(e);
} }), $(F.Coord.HopsWithPlace, { position: function(e) {
var t = e.env, n = t.xymatrixRow, r = t.xymatrixCol;
if (n === void 0 || r === void 0) throw c(`ExecutionError`, `xymatrix rows and columns not found for ` + this.toSring());
this.hops.foreach((function(e) {
switch (e) {
case `u`:
--n;
break;
case `d`:
n += 1;
break;
case `l`:
--r;
break;
case `r`: r += 1;
}
}));
var i = this.prefix + n + `,` + r, a = e.env.lookupPos(i, `in entry "` + t.xymatrixRow + `,` + t.xymatrixCol + `": No ` + this + ` (is ` + i + `) from here.`).position(e), o = (t.c, t.duplicate());
o.p = t.c, o.c = a;
var s, l = o.c.x - o.p.x, u = o.c.y - o.p.y;
s = l === 0 && u === 0 ? 0 : Math.atan2(u, l), o.angle = s;
var d = o.p.edgePoint(o.c.x, o.c.y), f = o.c.edgePoint(o.p.x, o.p.y);
o.lastCurve = new Q.Line(d, f, o.p, o.c, void 0);
var p = new St(Y.none, o), m = this.place.toShape(p);
return o.lastCurve.position(m);
} }), $(F.Vector.InCurBase, {
xy: function(e) {
return e.env.absVector(this.x, this.y);
},
angle: function(e) {
var t = e.env.absVector(this.x, this.y);
return Math.atan2(t.y, t.x);
}
}), $(F.Vector.Abs, {
xy: function(e) {
return {
x: A.measure.length2em(this.x),
y: A.measure.length2em(this.y)
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Vector.Angle, {
xy: function(e) {
var t = Math.PI / 180 * this.degree;
return e.env.absVector(Math.cos(t), Math.sin(t));
},
angle: function(e) {
return Math.PI / 180 * this.degree;
}
}), $(F.Vector.Dir, {
xy: function(e) {
var t = A.measure.length2em(this.dimen), n = this.dir.angle(e);
return {
x: t * Math.cos(n),
y: t * Math.sin(n)
};
},
angle: function(e) {
return this.dir.angle(e);
}
}), $(F.Vector.Corner, {
xy: function(e) {
var t = this.corner.xy(e);
return {
x: t.x * this.factor,
y: t.y * this.factor
};
},
angle: function(e) {
return this.corner.angle(e);
}
}), $(F.Corner.L, {
xy: function(e) {
return {
x: -e.env.c.l,
y: 0
};
},
angle: function(e) {
return Math.PI;
}
}), $(F.Corner.R, {
xy: function(e) {
return {
x: e.env.c.r,
y: 0
};
},
angle: function(e) {
return 0;
}
}), $(F.Corner.D, {
xy: function(e) {
return {
x: 0,
y: -e.env.c.d
};
},
angle: function(e) {
return -Math.PI / 2;
}
}), $(F.Corner.U, {
xy: function(e) {
return {
x: 0,
y: e.env.c.u
};
},
angle: function(e) {
return Math.PI / 2;
}
}), $(F.Corner.CL, {
xy: function(e) {
var t = e.env.c;
return {
x: -t.l,
y: (t.u - t.d) / 2
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.CR, {
xy: function(e) {
var t = e.env.c;
return {
x: t.r,
y: (t.u - t.d) / 2
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.CD, {
xy: function(e) {
var t = e.env.c;
return {
x: (t.r - t.l) / 2,
y: -t.d
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.CU, {
xy: function(e) {
var t = e.env.c;
return {
x: (t.r - t.l) / 2,
y: t.u
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.LU, {
xy: function(e) {
var t = e.env.c;
return {
x: -t.l,
y: t.u
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.LD, {
xy: function(e) {
var t = e.env.c;
return {
x: -t.l,
y: -t.d
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.RU, {
xy: function(e) {
var t = e.env.c;
return {
x: t.r,
y: t.u
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.RD, {
xy: function(e) {
var t = e.env.c;
return {
x: t.r,
y: -t.d
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.NearestEdgePoint, {
xy: function(e) {
var t = e.env, n = t.c, r = n.edgePoint(t.p.x, t.p.y);
return {
x: r.x - n.x,
y: r.y - n.y
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.PropEdgePoint, {
xy: function(e) {
var t = e.env, n = t.c, r = n.proportionalEdgePoint(t.p.x, t.p.y);
return {
x: r.x - n.x,
y: r.y - n.y
};
},
angle: function(e) {
var t = this.xy(e);
return Math.atan2(t.y, t.x);
}
}), $(F.Corner.Axis, {
xy: function(e) {
return {
x: 0,
y: A.measure.axisHeightLength
};
},
angle: function(e) {
return Math.PI / 2;
}
}), $(F.Modifier, { proceedModifyShape: function(e, t, n) {
return n.isEmpty ? t : n.head.modifyShape(e, t, n.tail);
} }), $(F.Modifier.Vector, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = this.vector.xy(e), i = e.env;
return i.c = i.c.shiftFrame(-r.x, -r.y), t = new Y.TranslateShape(-r.x, -r.y, t), this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.RestoreOriginalRefPoint, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env, i = r.originalReferencePoint;
if (i !== void 0) {
var a = r.c.x - i.x, o = r.c.y - i.y;
r.c = r.c.shiftFrame(a, o), t = new Y.TranslateShape(a, o, t);
}
return this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.Point, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env.c;
return e.env.c = new U.Point(r.x, r.y), this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.Rect, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env.c;
return e.env.c = new U.Rect(r.x, r.y, {
l: r.l,
r: r.r,
u: r.u,
d: r.d
}), this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.Circle, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env.c;
return e.env.c = new U.Ellipse(r.x, r.y, r.l, r.r, r.u, r.d), this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.L, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env, i = r.c;
if (i !== void 0) {
var a, o, s = i.r + i.l, c = i.u + i.d;
s < c ? (a = (i.l - i.r) / 2, o = (i.d - i.u) / 2) : (a = -i.r + c / 2, o = (i.d - i.u) / 2), r.c = r.c.shiftFrame(a, o), t = new Y.TranslateShape(a, o, t);
}
return this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.R, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env, i = r.c;
if (i !== void 0) {
var a, o, s = i.r + i.l, c = i.u + i.d;
s < c ? (a = (i.l - i.r) / 2, o = (i.d - i.u) / 2) : (a = i.l - c / 2, o = (i.d - i.u) / 2), r.c = r.c.shiftFrame(a, o), t = new Y.TranslateShape(a, o, t);
}
return this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.U, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env, i = r.c;
if (i !== void 0) {
var a, o, s = i.r + i.l;
s > i.u + i.d ? (a = (i.l - i.r) / 2, o = (i.d - i.u) / 2) : (a = (i.l - i.r) / 2, o = i.d - s / 2), r.c = r.c.shiftFrame(a, o), t = new Y.TranslateShape(a, o, t);
}
return this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.D, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env, i = r.c;
if (i !== void 0) {
var a, o, s = i.r + i.l;
s > i.u + i.d ? (a = (i.l - i.r) / 2, o = (i.d - i.u) / 2) : (a = (i.l - i.r) / 2, o = -i.u + s / 2), r.c = r.c.shiftFrame(a, o), t = new Y.TranslateShape(a, o, t);
}
return this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.C, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r, i, a = e.env, o = a.c;
return o !== void 0 && (r = (o.l - o.r) / 2, i = (o.d - o.u) / 2, a.c = a.c.shiftFrame(r, i), t = new Y.TranslateShape(r, i, t)), this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.ChangeColor, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
return t = this.proceedModifyShape(e, t, n), new Y.ChangeColorShape(this.colorName, t);
}
}), $(F.Modifier.Shape.Alphabets, {
preprocess: function(e, t) {
var n = A.repositories.modifierRepository.get(this.alphabets);
if (n !== void 0) return n.preprocess(e, t);
},
modifyShape: function(e, t, n) {
var r = A.repositories.modifierRepository.get(this.alphabets);
if (r !== void 0) return r.modifyShape(e, t, n);
}
}), $(F.Modifier.Shape.DefineShape, {
preprocess: function(e, t) {
var n = t.reverse();
A.repositories.modifierRepository.put(this.shape, new F.Modifier.Shape.CompositeModifiers(n));
},
modifyShape: function(e, t, n) {
return this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.CompositeModifiers, {
preprocess: function(e, t) {
this.modifiers.foreach((function(n) {
n.preprocess(e, t), t = t.prepend(n);
}));
},
modifyShape: function(e, t, n) {
return t = this.proceedModifyShape(e, t, this.modifiers), this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Invisible, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
return t = this.proceedModifyShape(e, t, n), Y.none;
}
}), $(F.Modifier.Hidden, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
return this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Direction, {
preprocess: function(e, t) {
e.env.angle = this.direction.angle(e);
},
modifyShape: function(e, t, n) {
return e.env.angle = this.direction.angle(e), this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.AddOp, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env.c;
return e.env.c = this.op.apply(this.size, r, e), e.appendShapeToFront(new Y.InvisibleBoxShape(e.env.c)), this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.AddOp.Grow, {
apply: function(e, t, n) {
var r = n.env, i = e.isDefault ? {
x: 2 * r.objectmargin,
y: 2 * r.objectmargin
} : e.vector.xy(n), a = Math.abs(i.x / 2), o = Math.abs(i.y / 2);
return t.grow(a, o);
},
applyToDimen: function(e, t) {
return e + t;
}
}), $(F.Modifier.AddOp.Shrink, {
apply: function(e, t, n) {
var r = n.env, i = e.isDefault ? {
x: 2 * r.objectmargin,
y: 2 * r.objectmargin
} : e.vector.xy(n), a = -Math.abs(i.x / 2), o = -Math.abs(i.y / 2);
return t.grow(a, o);
},
applyToDimen: function(e, t) {
return e - t;
}
}), $(F.Modifier.AddOp.Set, {
apply: function(e, t, n) {
var r = n.env, i = e.isDefault ? {
x: r.objectwidth,
y: r.objectheight
} : e.vector.xy(n), a = Math.abs(i.x), o = Math.abs(i.y);
return t.toSize(a, o);
},
applyToDimen: function(e, t) {
return t;
}
}), $(F.Modifier.AddOp.GrowTo, {
apply: function(e, t, n) {
var r = Math.max(t.l + t.r, t.u + t.d), i = e.isDefault ? {
x: r,
y: r
} : e.vector.xy(n), a = Math.abs(i.x), o = Math.abs(i.y);
return t.growTo(a, o);
},
applyToDimen: function(e, t) {
return Math.max(Math.max(e, t), 0);
}
}), $(F.Modifier.AddOp.ShrinkTo, {
apply: function(e, t, n) {
var r = Math.min(t.l + t.r, t.u + t.d), i = e.isDefault ? {
x: r,
y: r
} : e.vector.xy(n), a = Math.abs(i.x), o = Math.abs(i.y);
return t.shrinkTo(a, o);
},
applyToDimen: function(e, t) {
return Math.max(Math.min(e, t), 0);
}
}), $(F.Modifier.Shape.Frame, {
preprocess: function(e, t) {},
modifyShape: function(e, t, n) {
var r = e.env;
if (r.c !== void 0) {
this.main;
var i = new F.ObjectBox.Frame.Radius.Default(), a = `currentColor`;
this.options.foreach((function(e) {
i = e.getRadius(i);
})), this.options.foreach((function(e) {
a = e.getColorName(a);
}));
var o = r.duplicate(), s = new St(Y.none, o), c = new F.ObjectBox.Frame(i, this.main).toDropFilledShape(s, a, r.c.isCircle());
t = new Y.CompositeShape(t, c);
}
return this.proceedModifyShape(e, t, n);
}
}), $(F.Modifier.Shape.Frame.Radius, {
getRadius: function(e) {
return new F.ObjectBox.Frame.Radius.Vector(this.vector);
},
getColorName: function(e) {
return e;
}
}), $(F.Modifier.Shape.Frame.Color, {
getRadius: function(e) {
return e;
},
getColorName: function(e) {
return this.colorName;
}
}), $(F.Direction.Compound, { angle: function(e) {
var t = this.dir.angle(e);
return this.rots.foreach((function(n) {
t = n.rotate(t, e);
})), t;
} }), $(F.Direction.Diag, { angle: function(e) {
return this.diag.angle(e);
} }), $(F.Direction.Vector, { angle: function(e) {
return this.vector.angle(e);
} }), $(F.Direction.ConstructVector, { angle: function(e) {
var t = e.env, n = t.origin, r = t.xBase, i = t.yBase, a = t.p, o = t.c;
this.posDecor.toShape(e);
var s = Math.atan2(t.c.y - t.p.y, t.c.x - t.p.x);
return t.c = o, t.p = a, t.origin = n, t.xBase = r, t.yBase = i, s;
} }), $(F.Direction.RotVector, { rotate: function(e, t) {
return e + this.vector.angle(t);
} }), $(F.Direction.RotCW, { rotate: function(e, t) {
return e + Math.PI / 2;
} }), $(F.Direction.RotAntiCW, { rotate: function(e, t) {
return e - Math.PI / 2;
} }), $(F.Diag.Default, {
isEmpty: !0,
angle: function(e) {
return e.env.angle;
}
}), $(F.Diag.Angle, {
isEmpty: !1,
angle: function(e) {
return this.ang;
}
}), $(F.Decor, { toShape: function(e) {
this.commands.foreach((function(t) {
t.toShape(e);
}));
} }), $(F.Command.Save, { toShape: function(e) {
e.env.saveState(), this.pos.toShape(e);
} }), $(F.Command.Restore, { toShape: function(e) {
e.env.restoreState();
} }), $(F.Command.Pos, { toShape: function(e) {
this.pos.toShape(e);
} }), $(F.Command.AfterPos, { toShape: function(e) {
this.pos.toShape(e), this.decor.toShape(e);
} }), $(F.Command.Drop, { toShape: function(e) {
this.object.toDropShape(e);
} }), $(F.Command.Connect, { toShape: function(e) {
this.object.toConnectShape(e);
} }), $(F.Command.Relax, { toShape: function(e) {} }), $(F.Command.Ignore, { toShape: function(e) {} }), $(F.Command.ShowAST, { toShape: function(e) {
console.log(this.pos.toString() + ` ` + this.decor);
} }), $(F.Command.Ar, { toShape: function(e) {
var t = e.env, n = t.origin, r = t.xBase, i = t.yBase, a = t.p, o = t.c;
t.pathActionForBeforeSegment = y.empty, t.pathActionForAfterSegment = y.empty, t.labelsForNextSegmentOnly = y.empty, t.labelsForLastSegmentOnly = y.empty, t.labelsForEverySegment = y.empty, t.segmentSlideEm = y.empty, t.lastTurnDiag = y.empty, t.arrowVariant = ``, t.tailTip = new F.Command.Ar.Form.Tip.Tipchars(``), t.headTip = new F.Command.Ar.Form.Tip.Tipchars(`>`), t.stemConn = new F.Command.Ar.Form.Conn.Connchars(`-`), t.reverseAboveAndBelow = !1, t.arrowObjectModifiers = O.empty, this.forms.foreach((function(t) {
t.toShape(e);
})), t.pathActionForBeforeSegment.isDefined || (t.pathActionForBeforeSegment = new y.Some(new F.PosDecor(new F.Pos.Coord(new F.Coord.C(), O.empty.append(new F.Pos.ConnectObject(new F.Object(t.arrowObjectModifiers, t.stemConn.getObject(e))))), new F.Decor(O.empty)))), t.labelsForNextSegmentOnly = new y.Some(new F.Command.Path.Labels(O.empty.append(new F.Command.Path.Label.At(new F.Pos.Place(new F.Place(1, 1, new F.Place.Factor(0), new F.Slide(y.empty))), t.tailTip.getObject(e), y.empty)))), t.labelsForLastSegmentOnly = new y.Some(new F.Command.Path.Labels(O.empty.append(new F.Command.Path.Label.At(new F.Pos.Place(new F.Place(1, 1, new F.Place.Factor(1), new F.Slide(y.empty))), t.headTip.getObject(e), y.empty)))), this.path.toShape(e), t.c = o, t.p = a, t.origin = n, t.xBase = r, t.yBase = i;
} }), $(F.Command.Ar.Form.BuildArrow, { toShape: function(e) {
var t = e.env;
t.arrowVariant = this.variant, t.tailTip = this.tailTip, t.stemConn = this.stemConn, t.headTip = this.headTip;
} }), $(F.Command.Ar.Form.ChangeVariant, { toShape: function(e) {
e.env.arrowVariant = this.variant;
} }), $(F.Command.Ar.Form.ChangeStem, { toShape: function(e) {
e.env.stemConn = new F.Command.Ar.Form.Conn.Connchars(this.connchar);
} }), $(F.Command.Ar.Form.DashArrowStem, { toShape: function(e) {} }), $(F.Command.Ar.Form.CurveArrow, { toShape: function(e) {
var t = e.env, n = A.measure.em2length(2 * A.measure.length2em(this.dist));
t.pathActionForBeforeSegment = new y.Some(new F.PosDecor(new F.Pos.Coord(new F.Coord.C(), O.empty.append(new F.Pos.ConnectObject(new F.Object(t.arrowObjectModifiers, new F.ObjectBox.Curve(O.empty, O.empty.append(new F.ObjectBox.Curve.Object.Connect(t.stemConn.getObject(e))), O.empty.append(new F.ObjectBox.Curve.PosList.Pos(new F.Pos.Coord(new F.Coord.Group(new F.PosDecor(new F.Pos.Coord(new F.Coord.C(), O.empty.append(new F.Pos.ConnectObject(new F.Object(O.empty, new F.ObjectBox.Dir(``, ``)))).append(new F.Pos.Place(new F.Place(0, 0, void 0, new F.Slide(y.empty)))).append(new F.Pos.Plus(new F.Coord.Vector(new F.Vector.Dir(this.direction, n))))), new F.Decor(O.empty))), O.empty)))))))), new F.Decor(O.empty)));
} }), $(F.Command.Ar.Form.CurveFitToDirection, { toShape: function(e) {
var t = e.env;
t.pathActionForBeforeSegment = new y.Some(new F.PosDecor(new F.Pos.Coord(new F.Coord.C(), O.empty.append(new F.Pos.ConnectObject(new F.Object(t.arrowObjectModifiers, new F.ObjectBox.Curve(O.empty, O.empty.append(new F.ObjectBox.Curve.Object.Connect(t.stemConn.getObject(e))), O.empty.append(new F.ObjectBox.Curve.PosList.Pos(new F.Pos.Coord(new F.Coord.C(), O.empty.append(new F.Pos.SwapPAndC(new F.Coord.C())).append(new F.Pos.Plus(new F.Coord.Vector(new F.Vector.Dir(this.outDirection, `3pc`))))))).append(new F.ObjectBox.Curve.PosList.Pos(new F.Pos.Coord(new F.Coord.C(), O.empty.append(new F.Pos.SwapPAndC(new F.Coord.C())).append(new F.Pos.Plus(new F.Coord.Vector(new F.Vector.Dir(this.inDirection, `3pc`)))))))))))), new F.Decor(O.empty)));
} }), $(F.Command.Ar.Form.CurveWithControlPoints, { toShape: function(e) {
var t = e.env, n = t.duplicate();
n.startCapturePositions();
var r = new St(Y.none, n);
this.coord.position(r);
var i = n.endCapturePositions();
i = i.append(n.c);
var a = O.empty;
i.reverse().foreach((function(e) {
var n = t.inverseAbsVector(e.x, e.y);
a = a.prepend(new F.ObjectBox.Curve.PosList.Pos(new F.Pos.Coord(new F.Coord.Vector(new F.Vector.InCurBase(n.x, n.y)), O.empty)));
})), t.pathActionForBeforeSegment = new y.Some(new F.PosDecor(new F.Pos.Coord(new F.Coord.C(), O.empty.append(new F.Pos.ConnectObject(new F.Object(t.arrowObjectModifiers, new F.ObjectBox.Curve(O.empty, O.empty.append(new F.ObjectBox.Curve.Object.Connect(t.stemConn.getObject(e))), a))))), new F.Decor(O.empty)));
} }), $(F.Command.Ar.Form.AddShape, { toShape: function(e) {
e.env.arrowObjectModifiers = O.empty.append(this.shape);
} }), $(F.Command.Ar.Form.AddModifiers, { toShape: function(e) {
e.env.arrowObjectModifiers = this.modifiers;
} }), $(F.Command.Ar.Form.Slide, { toShape: function(e) {
e.env.segmentSlideEm = new y.Some(A.measure.length2em(this.slideDimen));
} }), $(F.Command.Ar.Form.LabelAt, { toShape: function(e) {
e.env.labelsForEverySegment = new y.Some(new F.Command.Path.Labels(O.empty.append(new F.Command.Path.Label.At(new F.Pos.Place(this.anchor), this.it, y.empty))));
} }), $(F.Command.Ar.Form.LabelAbove, { toShape: function(e) {
var t, n = e.env;
t = n.reverseAboveAndBelow ? new F.Command.Path.Label.Below(new F.Pos.Place(this.anchor), this.it, y.empty) : new F.Command.Path.Label.Above(new F.Pos.Place(this.anchor), this.it, y.empty), n.labelsForEverySegment = new y.Some(new F.Command.Path.Labels(O.empty.append(t)));
} }), $(F.Command.Ar.Form.LabelBelow, { toShape: function(e) {
var t, n = e.env;
t = n.reverseAboveAndBelow ? new F.Command.Path.Label.Above(new F.Pos.Place(this.anchor), this.it, y.empty) : new F.Command.Path.Label.Below(new F.Pos.Place(this.anchor), this.it, y.empty), n.labelsForEverySegment = new y.Some(new F.Command.Path.Labels(O.empty.append(t)));
} }), $(F.Command.Ar.Form.ReverseAboveAndBelow, { toShape: function(e) {
e.env.reverseAboveAndBelow = !0;
} }), $(F.Command.Ar.Form.Conn.Connchars, { getObject: function(e) {
var t = e.env, n = new F.ObjectBox.Dir(t.arrowVariant, this.connchars);
return new F.Object(t.arrowObjectModifiers, n);
} }), $(F.Command.Ar.Form.Conn.Object, { getObject: function(e) {
var t = e.env.arrowObjectModifiers.concat(this.object.modifiers);
return new F.Object(t, this.object.object);
} }), $(F.Command.Ar.Form.Conn.Dir, { getObject: function(e) {
var t = e.env, n = this.dir, r = n;
return n.variant === `` && t.arrowVariant !== `` && (r = new F.ObjectBox.Dir(t.arrowVariant, n.main)), new F.Object(t.arrowObjectModifiers, r);
} }), $(F.Command.Ar.Form.Tip.Tipchars, { getObject: function(e) {
var t = e.env, n = new F.ObjectBox.Dir(t.arrowVariant, this.tipchars);
return new F.Object(t.arrowObjectModifiers, n);
} }), $(F.Command.Ar.Form.Tip.Object, { getObject: function(e) {
var t = e.env.arrowObjectModifiers.concat(this.object.modifiers);
return new F.Object(t, this.object.object);
} }), $(F.Command.Ar.Form.Tip.Dir, { getObject: function(e) {
var t = e.env, n = this.dir, r = n;
return n.variant === `` && t.arrowVariant !== `` && (r = new F.ObjectBox.Dir(t.arrowVariant, n.main)), new F.Object(t.arrowObjectModifiers, r);
} }), $(F.Command.Path, { toShape: function(e) {
var t = e.env, n = t.origin, r = t.xBase, i = t.yBase, a = t.p, o = t.c;
t.pathActionForBeforeSegment = y.empty, t.pathActionForAfterSegment = y.empty, t.labelsForNextSegmentOnly = y.empty, t.labelsForLastSegmentOnly = y.empty, t.labelsForEverySegment = y.empty, t.segmentSlideEm = y.empty, t.lastTurnDiag = y.empty, this.path.toShape(e), t.c = o, t.p = a, t.origin = n, t.xBase = r, t.yBase = i;
} }), $(F.Command.AfterPath, { toShape: function(e) {
this.path.toShape(e), this.decor.toShape(e);
} }), $(F.Command.Path.Path, { toShape: function(e) {
this.pathElements.foreach((function(t) {
t.toShape(e);
}));
} }), $(F.Command.Path.SetBeforeAction, { toShape: function(e) {
e.env.pathActionForBeforeSegment = new y.Some(this.posDecor);
} }), $(F.Command.Path.SetAfterAction, { toShape: function(e) {
e.env.pathActionForAfterSegment = new y.Some(this.posDecor);
} }), $(F.Command.Path.AddLabelNextSegmentOnly, { toShape: function(e) {
e.env.labelsForNextSegmentOnly = new y.Some(this.labels);
} }), $(F.Command.Path.AddLabelLastSegmentOnly, { toShape: function(e) {
e.env.labelsForLastSegmentOnly = new y.Some(this.labels);
} }), $(F.Command.Path.AddLabelEverySegment, { toShape: function(e) {
e.env.labelsForEverySegment = new y.Some(this.labels);
} }), $(F.Command.Path.StraightSegment, { toShape: function(e) {
var t = e.env;
this.segment.setupPositions(e);
var n = t.c;
t.pathActionForBeforeSegment.foreach((function(t) {
t.toShape(e);
})), t.labelsForNextSegmentOnly.foreach((function(n) {
n.toShape(e), t.labelsForNextSegmentOnly = y.empty;
})), t.labelsForEverySegment.foreach((function(t) {
t.toShape(e);
})), t.c = n, t.pathActionForAfterSegment.foreach((function(t) {
t.toShape(e);
})), this.segment.toLabelsShape(e);
} }), $(F.Command.Path.LastSegment, { toShape: function(e) {
var t = e.env;
this.segment.setupPositions(e);
var n = t.c;
t.pathActionForBeforeSegment.foreach((function(t) {
t.toShape(e);
})), t.labelsForNextSegmentOnly.foreach((function(n) {
n.toShape(e), t.labelsForNextSegmentOnly = y.empty;
})), t.labelsForLastSegmentOnly.foreach((function(n) {
n.toShape(e), t.labelsForNextSegmentOnly = y.empty;
})), t.labelsForEverySegment.foreach((function(t) {
t.toShape(e);
})), t.c = n, t.pathActionForAfterSegment.foreach((function(t) {
t.toShape(e);
})), this.segment.toLabelsShape(e);
} }), $(F.Command.Path.TurningSegment, { toShape: function(e) {
var t = e.env, n = t.c;
this.segment.pos.toShape(e), t.p = n;
var r = this.turn.explicitizedCircle(e), i = this.turn.radius.radius(e);
t.lastTurnDiag = new y.Some(r.endDiag);
var a = r.startVector(e), o = r.endVector(e), s = t.segmentSlideEm.getOrElse(0);
this.segment.slide.dimen.foreach((function(e) {
s = A.measure.length2em(e), t.segmentSlideEm = new y.Some(s);
})), s !== 0 && (t.p = t.p.move(t.p.x - s * a.y, t.p.y + s * a.x), t.c = t.c.move(t.c.x - s * o.y, t.c.y + s * o.x), i = r.orient === `^` ? Math.max(0, i - s) : Math.max(0, i + s));
var c, u = t.p.edgePoint(t.p.x + a.x, t.p.y + a.y), d = t.c, f = r.relativeStartPoint(e, i), p = r.relativeEndPoint(e, i), m = r.relativeEndPoint(e, i + (r.orient === `^` ? s : -s)), h = a.x * o.y - a.y * o.x;
if (Math.abs(h) < l.machinePrecision) c = 0;
else {
var g = d.x - u.x + f.x - p.x, _ = d.y - u.y + f.y - p.y;
(c = (o.y * g - o.x * _) / h) < 0 && (c = 0);
}
var v = u.x - f.x + c * a.x, b = u.y - f.y + c * a.y, x = (r.toDropShape(e, v, b, i), new U.Point(v + m.x, b + m.y));
t.c = new U.Point(v + f.x, b + f.y), t.pathActionForBeforeSegment.foreach((function(t) {
t.toShape(e);
})), t.labelsForNextSegmentOnly.foreach((function(n) {
n.toShape(e), t.labelsForNextSegmentOnly = y.empty;
})), t.labelsForEverySegment.foreach((function(t) {
t.toShape(e);
})), t.c = x, t.pathActionForAfterSegment.foreach((function(t) {
t.toShape(e);
})), this.segment.toLabelsShape(e);
} }), $(F.Command.Path.Turn.Cir, { explicitizedCircle: function(e) {
var t, n, r, i = e.env;
return t = this.cir.startDiag.isEmpty ? i.lastTurnDiag.getOrElse(new F.Diag.R()) : this.cir.startDiag, n = this.cir.orient, r = this.cir.endDiag.isEmpty ? t.turn(n) : this.cir.endDiag, new F.ObjectBox.Cir.Cir.Segment(t, n, r);
} }), $(F.ObjectBox.Cir.Cir.Segment, {
startVector: function(e) {
var t = this.startDiag.angle(e);
return {
x: Math.cos(t),
y: Math.sin(t)
};
},
endVector: function(e) {
var t = this.endDiag.angle(e);
return {
x: Math.cos(t),
y: Math.sin(t)
};
},
relativeStartPointAngle: function(e) {
return this.startPointDegree(e) / 180 * Math.PI;
},
relativeStartPoint: function(e, t) {
var n = this.startPointDegree(e) / 180 * Math.PI;
return {
x: t * Math.cos(n),
y: t * Math.sin(n)
};
},
relativeEndPoint: function(e, t) {
var n;
return n = this.endPointDegree(e, this.relativeStartPointAngle(e)) / 180 * Math.PI, {
x: t * Math.cos(n),
y: t * Math.sin(n)
};
}
}), $(F.Command.Path.Turn.Diag, { explicitizedCircle: function(e) {
var t, n, r, i = e.env, a = (t = this.diag.isEmpty ? i.lastTurnDiag.getOrElse(new F.Diag.R()) : this.diag).angle(e);
return n = (i.c.x - i.p.x) * Math.sin(a) - (i.c.y - i.p.y) * Math.cos(a) < 0 ? `^` : `_`, r = t.turn(n), new F.ObjectBox.Cir.Cir.Segment(t, n, r);
} }), $(F.Command.Path.TurnRadius.Default, { radius: function(e) {
return A.measure.turnradius;
} }), $(F.Command.Path.TurnRadius.Dimen, { radius: function(e) {
return A.measure.length2em(this.dimen);
} }), $(F.Command.Path.Segment, {
setupPositions: function(e) {
var t = e.env;
t.p = t.c, this.pos.toShape(e);
var n = t.p, r = t.c, i = r.x - n.x, a = r.y - n.y, o = Math.atan2(a, i) + Math.PI / 2, s = t.segmentSlideEm.getOrElse(0);
this.slide.dimen.foreach((function(e) {
s = A.measure.length2em(e), t.segmentSlideEm = new y.Some(s);
})), s !== 0 && (n = n.move(n.x + s * Math.cos(o), n.y + s * Math.sin(o)), r = r.move(r.x + s * Math.cos(o), r.y + s * Math.sin(o))), t.p = n, t.c = r;
},
toLabelsShape: function(e) {
var t = e.env, n = t.c, r = t.p;
this.labels.toShape(e), t.c = n, t.p = r;
}
}), $(F.Command.Path.Labels, { toShape: function(e) {
this.labels.foreach((function(t) {
t.toShape(e);
}));
} }), $(F.Command.Path.Label, { toShape: function(e) {
var t = e.env, n = t.p, r = t.c, i = this.anchor.toShape(e), a = this.getLabelMargin(e);
if (a !== 0) {
var o = (b = t.lastCurve).isNone ? Math.atan2(r.y - n.y, r.x - n.x) + Math.PI / 2 : b.angle(i) + Math.PI / 2 + (a > 0 ? 0 : Math.PI);
r = t.c;
var s = new St(Y.none, t);
this.it.toDropShape(s);
var c = s.shape, l = c.getBoundingBox();
if (l !== void 0) {
var u = l.x - r.x, d = l.y - r.y, f = l.l, p = l.r, m = l.u, h = l.d, g = Math.cos(o), _ = Math.sin(o), v = Math.min((u - f) * g + (d - h) * _, (u - f) * g + (d + m) * _, (u + p) * g + (d - h) * _, (u + p) * g + (d + m) * _), y = Math.abs(a) - v;
t.c = t.c.move(r.x + y * g, r.y + y * _), e.appendShapeToFront(new Y.TranslateShape(y * g, y * _, c));
}
} else this.it.toDropShape(e);
var b = t.lastCurve;
this.shouldSliceHole && b.isDefined && i !== void 0 && b.sliceHole(t.c, i), this.aliasOption.foreach((function(e) {
t.savePos(e, new It.Position(t.c));
}));
} }), $(F.Command.Path.Label.Above, {
getLabelMargin: function(e) {
return e.env.labelmargin;
},
shouldSliceHole: !1
}), $(F.Command.Path.Label.Below, {
getLabelMargin: function(e) {
return -e.env.labelmargin;
},
shouldSliceHole: !1
}), $(F.Command.Path.Label.At, {
getLabelMargin: function(e) {
return 0;
},
shouldSliceHole: !0
}), $(F.Command.Xymatrix, { toShape: function(e) {
var t = e.env;
if (t.c === void 0) return Y.none;
var n = t.duplicate(), r = new St(Y.none, n);
n.xymatrixPrefix = ``, n.xymatrixRowSepEm = A.measure.length2em(`2pc`), n.xymatrixColSepEm = A.measure.length2em(`2pc`), n.xymatrixPretendEntryHeight = y.empty, n.xymatrixPretendEntryWidth = y.empty, n.xymatrixFixedRow = !1, n.xymatrixFixedCol = !1, n.xymatrixOrientationAngle = 0, n.xymatrixEntryModifiers = O.empty, this.setup.foreach((function(e) {
e.toShape(r);
}));
var i, a, o = n.xymatrixOrientationAngle, s = 0, c = 0, l = new Bt(this.rows.map((function(e) {
c += 1, a = 0;
var t = new Bt.Row(e.entries.map((function(e) {
a += 1;
var t = n.duplicate();
t.origin = {
x: 0,
y: 0
}, t.p = t.c = Mt.originPosition, t.angle = 0, t.lastCurve = Q.none, t.xymatrixRow = c, t.xymatrixCol = a;
var r, i, o, s, l = new St(Y.none, t), u = e.toShape(l), d = t.c;
if (n.xymatrixPretendEntryHeight.isDefined) {
var f = n.xymatrixPretendEntryHeight.get;
o = f / 2, s = f / 2;
} else o = d.u, s = d.d;
if (n.xymatrixPretendEntryWidth.isDefined) {
var p = n.xymatrixPretendEntryWidth.get;
r = p / 2, i = p / 2;
} else r = d.l, i = d.r;
var m = new U.Rect(0, 0, {
l: r,
r: i,
u: o,
d: s
});
return new Bt.Entry(t.c, u, e.decor, m);
})), o);
return s = Math.max(s, a), t;
})), o);
if ((i = c) === 0) return Y.none;
l.rows.foreach((function(e) {
a = 0, e.entries.foreach((function(e) {
a += 1, l.getColumn(a).addEntry(e);
}));
}));
var u, d, f = n.xymatrixColSepEm, p = [], m = t.c.x;
if (p.push(m), n.xymatrixFixedCol) {
var h = 0, g = 0;
l.columns.foreach((function(e) {
h = Math.max(h, e.getL()), g = Math.max(g, e.getR());
})), l.columns.tail.foreach((function(e) {
m = m + g + f + h, p.push(m);
})), u = h, d = p[p.length - 1] + g;
} else {
var _ = l.columns.head;
l.columns.tail.foreach((function(e) {
m = m + _.getR() + f + e.getL(), p.push(m), _ = e;
})), u = l.columns.head.getL(), d = m + l.columns.at(s - 1).getR() - p[0];
}
var v, b, x = n.xymatrixRowSepEm, S = [], C = t.c.y;
if (S.push(C), n.xymatrixFixedRow) {
var w = 0, T = 0;
l.rows.foreach((function(e) {
w = Math.max(w, e.getU()), T = Math.max(T, e.getD());
})), l.rows.tail.foreach((function(e) {
C -= T + x + w, S.push(C);
})), v = w, b = S[0] - S[S.length - 1] + T;
} else {
var E = l.rows.head;
l.rows.tail.foreach((function(e) {
C -= E.getD() + x + e.getU(), S.push(C), E = e;
})), v = l.rows.head.getU(), b = S[0] - C + l.rows.at(i - 1).getD();
}
t.c = new U.Rect(t.c.x, t.c.y, {
l: u,
r: d,
u: v,
d: b
});
var D = n.xymatrixPrefix, ee = Math.cos(o), te = Math.sin(o), ne = 0;
l.rows.foreach((function(e) {
var t = 0;
e.entries.foreach((function(e) {
var r = p[t], i = S[ne], a = r * ee - i * te, o = r * te + i * ee, s = t + 1, c = ne + 1, l = new It.Position(e.c.move(a, o));
n.savePos(c + `,` + s, l), n.savePos(D + c + `,` + s, l), t += 1;
})), ne += 1;
})), r = new St(Y.none, n), ne = 0, l.rows.foreach((function(e) {
var t = 0;
e.entries.foreach((function(e) {
var i = p[t], a = S[ne], o = i * ee - a * te, s = i * te + a * ee, c = t + 1, l = ne + 1, u = new Y.TranslateShape(o, s, e.objectShape);
r.appendShapeToFront(u), n.c = e.c.move(o, s), n.xymatrixRow = l, n.xymatrixCol = c, e.decor.toShape(r), t += 1;
})), ne += 1;
}));
var re = r.shape;
return e.appendShapeToFront(re), t.savedPosition = n.savedPosition, re;
} });
var Bt = function() {
function e(t, n) {
Lt(this, e), this.rows = t, this.columns = O.empty, this.orientation = n;
}
return zt(e, [{
key: `getColumn`,
value: function(t) {
if (this.columns.length() >= t) return this.columns.at(t - 1);
var n = new e.Column(this.orientation);
return this.columns = this.columns.append(n), n;
}
}, {
key: `toString`,
value: function() {
return `Xymatrix{
` + this.rows.mkString(`\\\\
`) + `
}`;
}
}]), e;
}();
function Vt(e, t, n) {
var r = [], i = [], a = {
lastNoSuccess: void 0,
whiteSpaceRegex: l.whiteSpaceRegex,
createTextNode: function(t) {
var n = new o.Z(t, e.stack.env, e.configuration).mml(), a = A.textObjectIdCounter;
return A.textObjectIdCounter++, r.push(n), i.push(a), n;
}
}, s = new Se(e.string, e.i, a), u = k.parse(t, s);
if (e.i = u.next.offset, u.successful) {
var d = `` + A.xypicCommandIdCounter;
A.xypicCommandIdCounter++, A.xypicCommandMap[d] = u.get();
var f = JSON.stringify(i);
return e.create(n, {
"data-cmd-id": d,
"data-text-mml-ids": f
}, r);
}
var p = a.lastNoSuccess.next.pos().lineContents();
throw c(`SyntaxError`, a.lastNoSuccess.msg + `. Parse error at or near "` + p + `".`);
}
Bt.Row = function() {
function e(t, n) {
Lt(this, e), this.entries = t, this.orientation = n, H(this, `getU`), H(this, `getD`);
}
return zt(e, [
{
key: `getU`,
value: function() {
var e = this.orientation, t = 0;
return this.entries.foreach((function(n) {
t = Math.max(t, n.getU(e));
})), t;
}
},
{
key: `getD`,
value: function() {
var e = this.orientation, t = 0;
return this.entries.foreach((function(n) {
t = Math.max(t, n.getD(e));
})), t;
}
},
{
key: `toString`,
value: function() {
return this.entries.mkString(` & `);
}
}
]), e;
}(), Bt.Column = function() {
function e(t) {
Lt(this, e), this.entries = O.empty, this.orientation = t, H(this, `getL`), H(this, `getR`);
}
return zt(e, [
{
key: `addEntry`,
value: function(e) {
this.entries = this.entries.append(e), this.getL.reset, this.getR.reset;
}
},
{
key: `getL`,
value: function() {
var e = this.orientation, t = 0;
return this.entries.foreach((function(n) {
t = Math.max(t, n.getL(e));
})), t;
}
},
{
key: `getR`,
value: function() {
var e = this.orientation, t = 0;
return this.entries.foreach((function(n) {
t = Math.max(t, n.getR(e));
})), t;
}
},
{
key: `toString`,
value: function() {
return this.entries.mkString(` \\\\ `);
}
}
]), e;
}(), Bt.Entry = function() {
function e(t, n, r, i) {
Lt(this, e), this.c = t, this.objectShape = n, this.decor = r, this.frame = i;
}
return zt(e, [
{
key: `getDistanceToEdgePoint`,
value: function(e, t) {
var n = e.edgePoint(e.x + Math.cos(t), e.y + Math.sin(t)), r = n.x - e.x, i = n.y - e.y;
return Math.sqrt(r * r + i * i);
}
},
{
key: `getU`,
value: function(e) {
return e === 0 ? this.frame.u : this.getDistanceToEdgePoint(this.frame, e + Math.PI / 2);
}
},
{
key: `getD`,
value: function(e) {
return e === 0 ? this.frame.d : this.getDistanceToEdgePoint(this.frame, e - Math.PI / 2);
}
},
{
key: `getL`,
value: function(e) {
return e === 0 ? this.frame.l : this.getDistanceToEdgePoint(this.frame, e + Math.PI);
}
},
{
key: `getR`,
value: function(e) {
return e === 0 ? this.frame.r : this.getDistanceToEdgePoint(this.frame, e);
}
},
{
key: `toString`,
value: function() {
return this.objectShape.toString() + ` ` + this.decor;
}
}
]), e;
}(), $(F.Command.Xymatrix.Setup.Prefix, { toShape: function(e) {
e.env.xymatrixPrefix = this.prefix;
} }), $(F.Command.Xymatrix.Setup.ChangeSpacing.Row, { toShape: function(e) {
var t = e.env;
t.xymatrixRowSepEm = this.addop.applyToDimen(t.xymatrixRowSepEm, A.measure.length2em(this.dimen));
} }), $(F.Command.Xymatrix.Setup.ChangeSpacing.Column, { toShape: function(e) {
var t = e.env;
t.xymatrixColSepEm = this.addop.applyToDimen(t.xymatrixColSepEm, A.measure.length2em(this.dimen));
} }), $(F.Command.Xymatrix.Setup.ChangeSpacing.RowAndColumn, { toShape: function(e) {
var t = e.env, n = this.addop.applyToDimen(t.xymatrixRowSepEm, A.measure.length2em(this.dimen));
t.xymatrixRowSepEm = n, t.xymatrixColSepEm = n;
} }), $(F.Command.Xymatrix.Setup.PretendEntrySize.Height, { toShape: function(e) {
e.env.xymatrixPretendEntryHeight = new y.Some(A.measure.length2em(this.dimen));
} }), $(F.Command.Xymatrix.Setup.PretendEntrySize.Width, { toShape: function(e) {
e.env.xymatrixPretendEntryWidth = new y.Some(A.measure.length2em(this.dimen));
} }), $(F.Command.Xymatrix.Setup.PretendEntrySize.HeightAndWidth, { toShape: function(e) {
var t = new y.Some(A.measure.length2em(this.dimen));
e.env.xymatrixPretendEntryHeight = t, e.env.xymatrixPretendEntryWidth = t;
} }), $(F.Command.Xymatrix.Setup.FixGrid.Row, { toShape: function(e) {
e.env.xymatrixFixedRow = !0;
} }), $(F.Command.Xymatrix.Setup.FixGrid.Column, { toShape: function(e) {
e.env.xymatrixFixedCol = !0;
} }), $(F.Command.Xymatrix.Setup.FixGrid.RowAndColumn, { toShape: function(e) {
e.env.xymatrixFixedRow = !0, e.env.xymatrixFixedCol = !0;
} }), $(F.Command.Xymatrix.Setup.AdjustEntrySize.Margin, { toShape: function(e) {
var t = e.env;
t.objectmargin = this.addop.applyToDimen(t.objectmargin, A.measure.length2em(this.dimen));
} }), $(F.Command.Xymatrix.Setup.AdjustEntrySize.Width, { toShape: function(e) {
var t = e.env;
t.objectwidth = this.addop.applyToDimen(t.objectwidth, A.measure.length2em(this.dimen));
} }), $(F.Command.Xymatrix.Setup.AdjustEntrySize.Height, { toShape: function(e) {
var t = e.env;
t.objectheight = this.addop.applyToDimen(t.objectheight, A.measure.length2em(this.dimen));
} }), $(F.Command.Xymatrix.Setup.AdjustLabelSep, { toShape: function(e) {
var t = e.env;
t.labelmargin = this.addop.applyToDimen(t.labelmargin, A.measure.length2em(this.dimen));
} }), $(F.Command.Xymatrix.Setup.SetOrientation, { toShape: function(e) {
e.env.xymatrixOrientationAngle = this.direction.angle(e);
} }), $(F.Command.Xymatrix.Setup.AddModifier, { toShape: function(e) {
var t = e.env;
t.xymatrixEntryModifiers = t.xymatrixEntryModifiers.prepend(this.modifier);
} }), $(F.Command.Xymatrix.Entry.SimpleEntry, { toShape: function(e) {
var t = e.env, n = A.measure.em2length(t.objectmargin + t.objectwidth), r = A.measure.em2length(t.objectmargin + t.objectheight), i = new F.Modifier.AddOp(new F.Modifier.AddOp.GrowTo(), new F.Modifier.AddOp.VactorSize(new F.Vector.Abs(n, r))), a = A.measure.em2length(t.objectmargin), o = new F.Modifier.AddOp(new F.Modifier.AddOp.Grow(), new F.Modifier.AddOp.VactorSize(new F.Vector.Abs(a, a))), s = this.modifiers.concat(t.xymatrixEntryModifiers).prepend(i).prepend(o);
return new F.Object(s, this.objectbox).toDropShape(e);
} }), $(F.Command.Xymatrix.Entry.EmptyEntry, { toShape: function(e) {
var t = e.env, n = A.measure.em2length(t.objectmargin + t.objectwidth), r = A.measure.em2length(t.objectmargin + t.objectheight), i = new F.Modifier.AddOp(new F.Modifier.AddOp.GrowTo(), new F.Modifier.AddOp.VactorSize(new F.Vector.Abs(n, r))), a = A.measure.em2length(t.objectmargin), o = new F.Modifier.AddOp(new F.Modifier.AddOp.Grow(), new F.Modifier.AddOp.VactorSize(new F.Vector.Abs(a, a))), s = t.xymatrixEntryModifiers.prepend(i).prepend(o);
return new F.Object(s, new F.ObjectBox.Empty()).toDropShape(e);
} }), $(F.Command.Xymatrix.Entry.ObjectEntry, { toShape: function(e) {
return this.object.toDropShape(e);
} }), $(F.Command.Twocell, { toShape: function(e) {
var t = e.env;
if (t.c === void 0) return Y.none;
var n = t.duplicate(), r = new St(Y.none, n);
n.twocellmodmapobject = t.twocellmodmapobject || new F.Object(O.empty, new F.ObjectBox.Dir(``, `|`)), n.twocellhead = t.twocellhead || new F.Object(O.empty, new F.ObjectBox.Dir(``, `>`)), n.twocelltail = t.twocelltail || new F.Object(O.empty, new F.ObjectBox.Dir(``, ``)), n.twocellarrowobject = t.twocellarrowobject || new F.Object(O.empty, new F.ObjectBox.Dir(``, `=>`)), n.twocellUpperCurveObjectSpacer = t.twocellUpperCurveObjectSpacer, n.twocellUpperCurveObject = t.twocellUpperCurveObject, n.twocellLowerCurveObjectSpacer = t.twocellLowerCurveObjectSpacer, n.twocellLowerCurveObject = t.twocellLowerCurveObject, n.twocellUpperLabel = y.empty, n.twocellLowerLabel = y.empty, n.twocellCurvatureEm = y.empty, n.twocellShouldDrawCurve = !0, n.twocellShouldDrawModMap = !1, this.switches.foreach((function(e) {
e.setup(r);
})), this.twocell.toShape(r, this.arrow), e.appendShapeToFront(r.shape);
} }), $(F.Command.Twocell.Hops2cell, {
toShape: function(e, t) {
var n = e.env, r = n.c, i = n.angle, a = n.c, o = this.targetPosition(e);
if (a !== void 0 && o !== void 0) {
var s = o.x - a.x, c = o.y - a.y;
if (s !== 0 || c !== 0) {
var l = new U.Point(a.x + .5 * s, a.y + .5 * c), u = Math.atan2(c, s), d = u + Math.PI / 2, f = n.twocellCurvatureEm.getOrElse(this.getDefaultCurvature()), p = Math.cos(d), m = Math.sin(d), h = this.getUpperControlPoint(a, o, l, f, p, m), g = this.getLowerControlPoint(a, o, l, f, p, m);
if (n.twocellShouldDrawCurve) {
var _, v;
if (v = (_ = n.twocellUpperCurveObjectSpacer) === void 0 ? new F.Object(O.empty, new F.ObjectBox.Dir(``, `-`)) : n.twocellUpperCurveObject === void 0 ? void 0 : n.twocellUpperCurveObject.getOrElse(void 0), this.toUpperCurveShape(e, a, h, o, _, v), n.lastCurve.isDefined) {
n.angle = u;
var y = this.getUpperLabelPosition(a, o, l, f, p, m), b = this.getUpperLabelAngle(d, a, o, l, f, p, m);
n.twocellUpperLabel.foreach((function(t) {
t.toShape(e, y, Math.cos(b), Math.sin(b), u);
})), this.hasUpperTips && t.toUpperTipsShape(e);
}
if (v = (_ = n.twocellLowerCurveObjectSpacer) === void 0 ? new F.Object(O.empty, new F.ObjectBox.Dir(``, `-`)) : n.twocellLowerCurveObject === void 0 ? void 0 : n.twocellLowerCurveObject.getOrElse(void 0), this.toLowerCurveShape(e, a, g, o, _, v), n.lastCurve.isDefined) {
n.angle = u;
var x = this.getLowerLabelPosition(a, o, l, f, p, m), S = this.getLowerLabelAngle(d, a, o, l, f, p, m);
n.twocellLowerLabel.foreach((function(t) {
t.toShape(e, x, Math.cos(S), Math.sin(S), u);
})), this.hasLowerTips && t.toLowerTipsShape(e);
}
}
n.c = this.getDefaultArrowPoint(a, o, l, f, p, m), n.angle = d + Math.PI;
var C = l;
t.toArrowShape(e, C), n.c = r, n.angle = i;
}
}
},
_toCurveShape: function(e, t, n, r, i, a) {
var o = e.env, s = new X.QuadBezier(t, n, r), c = s.tOfShavedStart(t), l = s.tOfShavedEnd(r);
if (c === void 0 || l === void 0 || c >= l) o.lastCurve = Q.none;
else {
var u = s.toShape(e, i, a);
o.lastCurve = new Q.QuadBezier(s, c, l, u);
}
},
targetPosition: function(e) {
var t = e.env, n = t.xymatrixRow, r = t.xymatrixCol;
if (n === void 0 || r === void 0) throw c(`ExecutionError`, `rows and columns not found for hops [` + this.hops + `]`);
for (var i = 0; i < this.hops.length; i++) switch (this.hops[i]) {
case `u`:
--n;
break;
case `d`:
n += 1;
break;
case `l`:
--r;
break;
case `r`: r += 1;
}
var a = n + `,` + r;
return e.env.lookupPos(a, `in entry "` + t.xymatrixRow + `,` + t.xymatrixCol + `": No ` + this + ` (is ` + a + `) from here.`).position(e);
}
}), $(F.Command.Twocell.Twocell, {
getUpperControlPoint: function(e, t, n, r, i, a) {
return new U.Point(n.x + r * i, n.y + r * a);
},
getLowerControlPoint: function(e, t, n, r, i, a) {
return new U.Point(n.x - r * i, n.y - r * a);
},
getUpperLabelPosition: function(e, t, n, r, i, a) {
return new U.Point(n.x + .5 * r * i, n.y + .5 * r * a);
},
getLowerLabelPosition: function(e, t, n, r, i, a) {
return new U.Point(n.x - .5 * r * i, n.y - .5 * r * a);
},
getUpperLabelAngle: function(e, t, n, r, i, a, o) {
return e + (i < 0 ? Math.PI : 0);
},
getLowerLabelAngle: function(e, t, n, r, i, a, o) {
return e + (i < 0 ? 0 : Math.PI);
},
getDefaultArrowPoint: function(e, t, n, r, i, a) {
return n;
},
toUpperCurveShape: function(e, t, n, r, i, a) {
this._toCurveShape(e, t, n, r, i, a);
},
toLowerCurveShape: function(e, t, n, r, i, a) {
this._toCurveShape(e, t, n, r, i, a);
},
getDefaultCurvature: function() {
return 3.5 * A.measure.lineElementLength;
},
hasUpperTips: !0,
hasLowerTips: !0
}), $(F.Command.Twocell.UpperTwocell, {
getUpperControlPoint: function(e, t, n, r, i, a) {
return new U.Point(n.x + r * i, n.y + r * a);
},
getLowerControlPoint: function(e, t, n, r, i, a) {
return n;
},
getUpperLabelPosition: function(e, t, n, r, i, a) {
return new U.Point(n.x + .5 * r * i, n.y + .5 * r * a);
},
getLowerLabelPosition: function(e, t, n, r, i, a) {
return n;
},
getUpperLabelAngle: function(e, t, n, r, i, a, o) {
return e + (i < 0 ? Math.PI : 0);
},
getLowerLabelAngle: function(e, t, n, r, i, a, o) {
return e + (i < 0 ? 0 : Math.PI);
},
getDefaultArrowPoint: function(e, t, n, r, i, a) {
return new U.Point(n.x + .25 * r * i, n.y + .25 * r * a);
},
toUpperCurveShape: function(e, t, n, r, i, a) {
this._toCurveShape(e, t, n, r, i, a);
},
toLowerCurveShape: function(e, t, n, r, i, a) {
var o = t.edgePoint(r.x, r.y), s = r.edgePoint(t.x, t.y);
o.x !== s.x || o.y !== s.y ? e.env.lastCurve = new Q.Line(o, s, t, r, void 0) : e.env.lastCurve = Q.none;
},
getDefaultCurvature: function() {
return 7 * A.measure.lineElementLength;
},
hasUpperTips: !0,
hasLowerTips: !1
}), $(F.Command.Twocell.LowerTwocell, {
getUpperControlPoint: function(e, t, n, r, i, a) {
return n;
},
getLowerControlPoint: function(e, t, n, r, i, a) {
return new U.Point(n.x + r * i, n.y + r * a);
},
getUpperLabelPosition: function(e, t, n, r, i, a) {
return n;
},
getLowerLabelPosition: function(e, t, n, r, i, a) {
return new U.Point(n.x + .5 * r * i, n.y + .5 * r * a);
},
getUpperLabelAngle: function(e, t, n, r, i, a, o) {
return e + (i < 0 ? 0 : Math.PI);
},
getLowerLabelAngle: function(e, t, n, r, i, a, o) {
return e + (i < 0 ? Math.PI : 0);
},
getDefaultArrowPoint: function(e, t, n, r, i, a) {
return new U.Point(n.x + .25 * r * i, n.y + .25 * r * a);
},
toUpperCurveShape: function(e, t, n, r, i, a) {
var o = t.edgePoint(r.x, r.y), s = r.edgePoint(t.x, t.y);
o.x !== s.x || o.y !== s.y ? e.env.lastCurve = new Q.Line(o, s, t, r, void 0) : e.env.lastCurve = Q.none;
},
toLowerCurveShape: function(e, t, n, r, i, a) {
this._toCurveShape(e, t, n, r, i, a);
},
getDefaultCurvature: function() {
return -7 * A.measure.lineElementLength;
},
hasUpperTips: !1,
hasLowerTips: !0
}), $(F.Command.Twocell.CompositeMap, {
getUpperControlPoint: function(e, t, n, r, i, a) {
var o = this.getMidBoxSize();
return new U.Ellipse(n.x + r * i, n.y + r * a, o, o, o, o);
},
getLowerControlPoint: function(e, t, n, r, i, a) {
var o = this.getMidBoxSize();
return new U.Ellipse(n.x + r * i, n.y + r * a, o, o, o, o);
},
getUpperLabelPosition: function(e, t, n, r, i, a) {
var o = n.x + r * i - t.x, s = n.y + r * a - t.y;
return Math.sqrt(o * o + s * s), new U.Point(t.x + .5 * o, t.y + .5 * s);
},
getLowerLabelPosition: function(e, t, n, r, i, a) {
var o = n.x + r * i - e.x, s = n.y + r * a - e.y;
return Math.sqrt(o * o + s * s), new U.Point(e.x + .5 * o, e.y + .5 * s);
},
getUpperLabelAngle: function(e, t, n, r, i, a, o) {
var s = n.x - r.x + i * a, c = n.y - r.y + i * o, l = Math.atan2(c, s), u = i < 0 ? Math.PI : 0;
return l + Math.PI / 2 + u;
},
getLowerLabelAngle: function(e, t, n, r, i, a, o) {
var s = r.x + i * a - t.x, c = r.y + i * o - t.y, l = Math.atan2(c, s), u = i < 0 ? Math.PI : 0;
return l + Math.PI / 2 + u;
},
getDefaultArrowPoint: function(e, t, n, r, i, a) {
return n;
},
toUpperCurveShape: function(e, t, n, r, i, a) {
var o = e.env, s = t, c = n, l = s.edgePoint(c.x, c.y), u = c.edgePoint(s.x, s.y), d = o.p, f = o.c;
o.p = s, o.c = c, new X.Line(l, u).toShape(e, void 0, `-`, ``), o.p = d, o.c = f;
},
toLowerCurveShape: function(e, t, n, r, i, a) {
var o = e.env, s = n, c = r, l = s.edgePoint(c.x, c.y), u = c.edgePoint(s.x, s.y), d = o.p, f = o.c;
o.p = s, o.c = c, new X.Line(l, u).toShape(e, void 0, `-`, ``), o.p = d, o.c = f;
},
getMidBoxSize: function() {
return .5 * A.measure.lineElementLength;
},
getDefaultCurvature: function() {
return 3.5 * A.measure.lineElementLength;
},
hasUpperTips: !0,
hasLowerTips: !0
}), $(F.Command.Twocell.Switch.UpperLabel, {
setup: function(e) {
e.env.twocellUpperLabel = new y.Some(this);
},
toShape: function(e, t, n, r, i) {
this.label.toShape(e, t, n, r, i);
}
}), $(F.Command.Twocell.Switch.LowerLabel, {
setup: function(e) {
e.env.twocellLowerLabel = new y.Some(this);
},
toShape: function(e, t, n, r, i) {
this.label.toShape(e, t, n, r, i);
}
}), $(F.Command.Twocell.Switch.SetCurvature, { setup: function(e) {
var t = e.env;
this.nudge.isOmit ? t.twocellShouldDrawCurve = !1 : t.twocellCurvatureEm = new y.Some(this.nudge.number * A.measure.lineElementLength);
} }), $(F.Command.Twocell.Switch.DoNotSetCurvedArrows, { setup: function(e) {
e.env.twocellShouldDrawCurve = !1;
} }), $(F.Command.Twocell.Switch.PlaceModMapObject, { setup: function(e) {
e.env.twocellShouldDrawModMap = !0;
} }), $(F.Command.Twocell.Switch.ChangeHeadTailObject, { setup: function(e) {
var t = e.env;
switch (this.what) {
case "`":
t.twocelltail = this.object;
break;
case `'`: t.twocellhead = this.object;
}
} }), $(F.Command.Twocell.Switch.ChangeCurveObject, { setup: function(e) {
var t = e.env;
switch (this.what) {
case ``:
t.twocellUpperCurveObjectSpacer = this.spacer, t.twocellUpperCurveObject = this.maybeObject, t.twocellLowerCurveObjectSpacer = this.spacer, t.twocellLowerCurveObject = this.maybeObject;
break;
case `^`:
t.twocellUpperCurveObjectSpacer = this.spacer, t.twocellUpperCurveObject = this.maybeObject;
break;
case `_`: t.twocellLowerCurveObjectSpacer = this.spacer, t.twocellLowerCurveObject = this.maybeObject;
}
} }), $(F.Command.Twocell.Label, {
toShape: function(e, t, n, r, i) {
var a, o = this.maybeNudge;
if (o.isDefined) {
var s = o.get;
if (s.isOmit) return;
a = s.number * A.measure.lineElementLength;
} else a = this.getDefaultLabelOffset();
var c = e.env, l = c.c;
c.c = new U.Point(t.x + a * n, t.y + a * r), this.labelObject.toDropShape(e), c.c = l;
},
getDefaultLabelOffset: function() {
return A.measure.lineElementLength;
}
}), $(F.Command.Twocell.Nudge.Number, { isOmit: !1 }), $(F.Command.Twocell.Nudge.Omit, { isOmit: !0 }), $(F.Command.Twocell.Arrow, { toTipsShape: function(e, t, n) {
var r = e.env, i = r.lastCurve, a = r.c, o = r.angle, s = t ? Math.PI : 0, c = i.tOfPlace(!0, !0, t ? 0 : 1, 0);
r.c = i.position(c), r.angle = i.angle(c) + s, r.twocellhead.toDropShape(e), c = i.tOfPlace(!0, !0, t ? 1 : 0, 0), r.c = i.position(c), r.angle = i.angle(c) + s, n ? r.twocellhead.toDropShape(e) : r.twocelltail.toDropShape(e), r.twocellShouldDrawModMap && (c = i.tOfPlace(!1, !1, .5, 0), r.c = i.position(c), r.angle = i.angle(c) + s, r.twocellmodmapobject.toDropShape(e)), r.c = a, r.angle = o;
} }), $(F.Command.Twocell.Arrow.WithOrientation, {
toUpperTipsShape: function(e) {
switch (this.tok) {
case ``:
case `^`:
case `_`:
case `=`:
case `\\omit`:
case `'`:
this.toTipsShape(e, !1, !1);
break;
case "`":
this.toTipsShape(e, !0, !1);
break;
case `"`: this.toTipsShape(e, !1, !0);
}
},
toLowerTipsShape: function(e) {
switch (this.tok) {
case ``:
case `^`:
case `_`:
case `=`:
case `\\omit`:
case "`":
this.toTipsShape(e, !1, !1);
break;
case `'`:
this.toTipsShape(e, !0, !1);
break;
case `"`: this.toTipsShape(e, !1, !0);
}
},
toArrowShape: function(e, t) {
var n = e.env, r = n.c;
switch (this.tok) {
case `^`:
var i = n.angle;
n.angle = i + Math.PI, n.twocellarrowobject.toDropShape(e), n.c = new U.Point(r.x + A.measure.lineElementLength * Math.cos(i - Math.PI / 2), r.y + A.measure.lineElementLength * Math.sin(i - Math.PI / 2)), this.labelObject.toDropShape(e), n.angle = i;
break;
case ``:
case `_`:
i = n.angle, n.twocellarrowobject.toDropShape(e), n.c = new U.Point(r.x + A.measure.lineElementLength * Math.cos(i + Math.PI / 2), r.y + A.measure.lineElementLength * Math.sin(i + Math.PI / 2)), this.labelObject.toDropShape(e);
break;
case `=`:
i = n.angle;
var a = new Y.TwocellEqualityArrowheadShape(n.c, n.angle);
e.appendShapeToFront(a), n.c = new U.Point(r.x + A.measure.lineElementLength * Math.cos(i + Math.PI / 2), r.y + A.measure.lineElementLength * Math.sin(i + Math.PI / 2)), this.labelObject.toDropShape(e);
break;
default: this.labelObject.toDropShape(e);
}
n.c = r;
}
}), $(F.Command.Twocell.Arrow.WithPosition, {
toUpperTipsShape: function(e) {
this.toTipsShape(e, !1, !1);
},
toLowerTipsShape: function(e) {
this.toTipsShape(e, !1, !1);
},
toArrowShape: function(e, t) {
var n, r = e.env, i = r.c, a = r.angle, o = this.nudge;
if (o.isOmit) n = i;
else {
var s = o.number * A.measure.lineElementLength;
n = new U.Point(t.x + s * Math.cos(a), t.y + s * Math.sin(a));
}
r.c = n, r.twocellarrowobject.toDropShape(e), o.isOmit || (r.c = new U.Point(n.x + A.measure.lineElementLength * Math.cos(a + Math.PI / 2), n.y + A.measure.lineElementLength * Math.sin(a + Math.PI / 2)), this.labelObject.toDropShape(e)), r.c = i;
}
}), $(F.Pos.Xyimport.TeXCommand, { toShape: function(e) {
var t = e.env;
if (t.c === void 0) return Y.none;
var n = t.duplicate(), r = new St(Y.none, n), i = this.graphics.toDropShape(r), a = this.width, o = this.height;
if (a === 0 || o === 0) throw c(`ExecutionError`, `the 'width' and 'height' attributes of the \\xyimport should be non-zero.`);
var s = n.c, l = s.l + s.r, u = s.u + s.d;
if (l === 0 || u === 0) throw c(`ExecutionError`, `the width and height of the graphics to import should be non-zero.`);
var d = this.xOffset, f = this.yOffset;
t.c = s.toRect({
u: u / o * (o - f),
d: u / o * f,
l: l / a * d,
r: l / a * (a - d)
}), t.setXBase(l / a, 0), t.setYBase(0, u / o);
var p = s.l - t.c.l, m = s.d - t.c.d;
i = new Y.TranslateShape(p, m, r.shape), e.appendShapeToFront(i);
} }), $(F.Pos.Xyimport.Graphics, { toShape: function(e) {
var t = e.env;
if (t.c === void 0) return Y.none;
var n = t.duplicate(), r = new St(Y.none, n), i = this.width, a = this.height;
if (i === 0 || a === 0) throw c(`ExecutionError`, `the 'width' and 'height' attributes of the \\xyimport should be non-zero.`);
var o = this.graphics;
if (o.setup(r), !n.includegraphicsWidth.isDefined || !n.includegraphicsHeight.isDefined) throw c(`ExecutionError`, `the 'width' and 'height' attributes of the \\includegraphics are required.`);
var s = n.includegraphicsWidth.get, l = n.includegraphicsHeight.get;
if (s === 0 || l === 0) throw c(`ExecutionError`, `the 'width' and 'height' attributes of the \\includegraphics should be non-zero.`);
var u = this.xOffset, d = this.yOffset;
t.c = n.c.toRect({
u: l / a * (a - d),
d: l / a * d,
l: s / i * u,
r: s / i * (i - u)
}), t.setXBase(s / i, 0), t.setYBase(0, l / a);
var f = new Y.ImageShape(t.c, o.filepath);
e.appendShapeToFront(f);
} }), $(F.Command.Includegraphics, { setup: function(e) {
var t = e.env;
t.includegraphicsWidth = y.empty, t.includegraphicsHeight = y.empty, this.attributeList.foreach((function(t) {
t.setup(e);
}));
} }), $(F.Command.Includegraphics.Attr.Width, { setup: function(e) {
e.env.includegraphicsWidth = new y.Some(A.measure.length2em(this.dimen));
} }), $(F.Command.Includegraphics.Attr.Height, { setup: function(e) {
e.env.includegraphicsHeight = new y.Some(A.measure.length2em(this.dimen));
} });
var Ht = {};
Ht.Macro = i.Z.Macro, Ht.xybox = function(e, t, n) {
var r = Vt(e, et.xybox(), F.xypic.prototype.kind);
e.Push(r);
}, Ht.xymatrixbox = function(e, t, n) {
var r = Vt(e, et.xymatrixbox(), F.xypic.prototype.kind);
e.Push(r);
}, Ht.newdir = function(e, t, n) {
var r = Vt(e, et.newdir(), F.xypic.newdir.prototype.kind);
e.Push(r);
}, Ht.xyincludegraphics = function(e, t, n) {
var r = Vt(e, et.includegraphics(), F.xypic.includegraphics.prototype.kind);
e.Push(r);
}, Ht.xyEnvironment = function(e, t) {
var n = Vt(e, et.xy(), F.xypic.prototype.kind);
return e.Push(t), n;
}, new r.QQ(`xypic-command`, {
hole: [`Macro`, `{\\style{visibility:hidden}{x}}`],
objectstyle: [`Macro`, `\\textstyle`],
labelstyle: [`Macro`, `\\scriptstyle`],
twocellstyle: [`Macro`, `\\scriptstyle`],
xybox: [`xybox`, `xybox`],
xymatrix: [`xymatrixbox`, `xymatrix`],
newdir: [`newdir`, `newdir`],
includegraphics: [`xyincludegraphics`, `includegraphics`]
}, Ht), new r.QM(`xypic-environment`, a.Z.environment, { xy: [
`xyEnvironment`,
null,
!1
] }, Ht), t.VK.create(`xypic`, {
handler: {
macro: [`xypic-command`],
environment: [`xypic-environment`]
},
preprocessors: [function(e) {
e.math, e.document, e.data, A.xypicCommandIdCounter = 0, A.xypicCommandMap = {}, A.textObjectIdCounter = 0, A.wrapperOfTextObjectMap = {};
}],
nodes: {
xypic: function(e, t, n) {
var r = e.mmlFactory;
return new F.xypic(r, t, n);
},
"xypic-newdir": function(e, t, n) {
var r = e.mmlFactory;
return new F.xypic.newdir(r, t, n);
},
"xypic-includegraphics": function(e, t, n) {
var r = e.mmlFactory;
return new F.xypic.includegraphics(r, t, n);
}
}
}), Ie.embeddedModifierMap = {
o: new F.Modifier.Shape.Circle(),
l: new F.Modifier.Shape.L(),
r: new F.Modifier.Shape.R(),
u: new F.Modifier.Shape.U(),
d: new F.Modifier.Shape.D(),
c: new F.Modifier.Shape.C(),
aliceblue: new F.Modifier.Shape.ChangeColor(`aliceblue`),
antiquewhite: new F.Modifier.Shape.ChangeColor(`antiquewhite`),
aqua: new F.Modifier.Shape.ChangeColor(`aqua`),
aquamarine: new F.Modifier.Shape.ChangeColor(`aquamarine`),
azure: new F.Modifier.Shape.ChangeColor(`azure`),
beige: new F.Modifier.Shape.ChangeColor(`beige`),
bisque: new F.Modifier.Shape.ChangeColor(`bisque`),
black: new F.Modifier.Shape.ChangeColor(`black`),
blanchedalmond: new F.Modifier.Shape.ChangeColor(`blanchedalmond`),
blue: new F.Modifier.Shape.ChangeColor(`blue`),
blueviolet: new F.Modifier.Shape.ChangeColor(`blueviolet`),
brown: new F.Modifier.Shape.ChangeColor(`brown`),
burlywood: new F.Modifier.Shape.ChangeColor(`burlywood`),
cadetblue: new F.Modifier.Shape.ChangeColor(`cadetblue`),
chartreuse: new F.Modifier.Shape.ChangeColor(`chartreuse`),
chocolate: new F.Modifier.Shape.ChangeColor(`chocolate`),
coral: new F.Modifier.Shape.ChangeColor(`coral`),
cornflowerblue: new F.Modifier.Shape.ChangeColor(`cornflowerblue`),
cornsilk: new F.Modifier.Shape.ChangeColor(`cornsilk`),
crimson: new F.Modifier.Shape.ChangeColor(`crimson`),
cyan: new F.Modifier.Shape.ChangeColor(`cyan`),
darkblue: new F.Modifier.Shape.ChangeColor(`darkblue`),
darkcyan: new F.Modifier.Shape.ChangeColor(`darkcyan`),
darkgoldenrod: new F.Modifier.Shape.ChangeColor(`darkgoldenrod`),
darkgray: new F.Modifier.Shape.ChangeColor(`darkgray`),
darkgreen: new F.Modifier.Shape.ChangeColor(`darkgreen`),
darkgrey: new F.Modifier.Shape.ChangeColor(`darkgrey`),
darkkhaki: new F.Modifier.Shape.ChangeColor(`darkkhaki`),
darkmagenta: new F.Modifier.Shape.ChangeColor(`darkmagenta`),
darkolivegreen: new F.Modifier.Shape.ChangeColor(`darkolivegreen`),
darkorange: new F.Modifier.Shape.ChangeColor(`darkorange`),
darkorchid: new F.Modifier.Shape.ChangeColor(`darkorchid`),
darkred: new F.Modifier.Shape.ChangeColor(`darkred`),
darksalmon: new F.Modifier.Shape.ChangeColor(`darksalmon`),
darkseagreen: new F.Modifier.Shape.ChangeColor(`darkseagreen`),
darkslateblue: new F.Modifier.Shape.ChangeColor(`darkslateblue`),
darkslategray: new F.Modifier.Shape.ChangeColor(`darkslategray`),
darkslategrey: new F.Modifier.Shape.ChangeColor(`darkslategrey`),
darkturquoise: new F.Modifier.Shape.ChangeColor(`darkturquoise`),
darkviolet: new F.Modifier.Shape.ChangeColor(`darkviolet`),
deeppink: new F.Modifier.Shape.ChangeColor(`deeppink`),
deepskyblue: new F.Modifier.Shape.ChangeColor(`deepskyblue`),
dimgray: new F.Modifier.Shape.ChangeColor(`dimgray`),
dimgrey: new F.Modifier.Shape.ChangeColor(`dimgrey`),
dodgerblue: new F.Modifier.Shape.ChangeColor(`dodgerblue`),
firebrick: new F.Modifier.Shape.ChangeColor(`firebrick`),
floralwhite: new F.Modifier.Shape.ChangeColor(`floralwhite`),
forestgreen: new F.Modifier.Shape.ChangeColor(`forestgreen`),
fuchsia: new F.Modifier.Shape.ChangeColor(`fuchsia`),
gainsboro: new F.Modifier.Shape.ChangeColor(`gainsboro`),
ghostwhite: new F.Modifier.Shape.ChangeColor(`ghostwhite`),
gold: new F.Modifier.Shape.ChangeColor(`gold`),
goldenrod: new F.Modifier.Shape.ChangeColor(`goldenrod`),
gray: new F.Modifier.Shape.ChangeColor(`gray`),
grey: new F.Modifier.Shape.ChangeColor(`grey`),
green: new F.Modifier.Shape.ChangeColor(`green`),
greenyellow: new F.Modifier.Shape.ChangeColor(`greenyellow`),
honeydew: new F.Modifier.Shape.ChangeColor(`honeydew`),
hotpink: new F.Modifier.Shape.ChangeColor(`hotpink`),
indianred: new F.Modifier.Shape.ChangeColor(`indianred`),
indigo: new F.Modifier.Shape.ChangeColor(`indigo`),
ivory: new F.Modifier.Shape.ChangeColor(`ivory`),
khaki: new F.Modifier.Shape.ChangeColor(`khaki`),
lavender: new F.Modifier.Shape.ChangeColor(`lavender`),
lavenderblush: new F.Modifier.Shape.ChangeColor(`lavenderblush`),
lawngreen: new F.Modifier.Shape.ChangeColor(`lawngreen`),
lemonchiffon: new F.Modifier.Shape.ChangeColor(`lemonchiffon`),
lightblue: new F.Modifier.Shape.ChangeColor(`lightblue`),
lightcoral: new F.Modifier.Shape.ChangeColor(`lightcoral`),
lightcyan: new F.Modifier.Shape.ChangeColor(`lightcyan`),
lightgoldenrodyellow: new F.Modifier.Shape.ChangeColor(`lightgoldenrodyellow`),
lightgray: new F.Modifier.Shape.ChangeColor(`lightgray`),
lightgreen: new F.Modifier.Shape.ChangeColor(`lightgreen`),
lightgrey: new F.Modifier.Shape.ChangeColor(`lightgrey`),
lightpink: new F.Modifier.Shape.ChangeColor(`lightpink`),
lightsalmon: new F.Modifier.Shape.ChangeColor(`lightsalmon`),
lightseagreen: new F.Modifier.Shape.ChangeColor(`lightseagreen`),
lightskyblue: new F.Modifier.Shape.ChangeColor(`lightskyblue`),
lightslategray: new F.Modifier.Shape.ChangeColor(`lightslategray`),
lightslategrey: new F.Modifier.Shape.ChangeColor(`lightslategrey`),
lightsteelblue: new F.Modifier.Shape.ChangeColor(`lightsteelblue`),
lightyellow: new F.Modifier.Shape.ChangeColor(`lightyellow`),
lime: new F.Modifier.Shape.ChangeColor(`lime`),
limegreen: new F.Modifier.Shape.ChangeColor(`limegreen`),
linen: new F.Modifier.Shape.ChangeColor(`linen`),
magenta: new F.Modifier.Shape.ChangeColor(`magenta`),
maroon: new F.Modifier.Shape.ChangeColor(`maroon`),
mediumaquamarine: new F.Modifier.Shape.ChangeColor(`mediumaquamarine`),
mediumblue: new F.Modifier.Shape.ChangeColor(`mediumblue`),
mediumorchid: new F.Modifier.Shape.ChangeColor(`mediumorchid`),
mediumpurple: new F.Modifier.Shape.ChangeColor(`mediumpurple`),
mediumseagreen: new F.Modifier.Shape.ChangeColor(`mediumseagreen`),
mediumslateblue: new F.Modifier.Shape.ChangeColor(`mediumslateblue`),
mediumspringgreen: new F.Modifier.Shape.ChangeColor(`mediumspringgreen`),
mediumturquoise: new F.Modifier.Shape.ChangeColor(`mediumturquoise`),
mediumvioletred: new F.Modifier.Shape.ChangeColor(`mediumvioletred`),
midnightblue: new F.Modifier.Shape.ChangeColor(`midnightblue`),
mintcream: new F.Modifier.Shape.ChangeColor(`mintcream`),
mistyrose: new F.Modifier.Shape.ChangeColor(`mistyrose`),
moccasin: new F.Modifier.Shape.ChangeColor(`moccasin`),
navajowhite: new F.Modifier.Shape.ChangeColor(`navajowhite`),
navy: new F.Modifier.Shape.ChangeColor(`navy`),
oldlace: new F.Modifier.Shape.ChangeColor(`oldlace`),
olive: new F.Modifier.Shape.ChangeColor(`olive`),
olivedrab: new F.Modifier.Shape.ChangeColor(`olivedrab`),
orange: new F.Modifier.Shape.ChangeColor(`orange`),
orangered: new F.Modifier.Shape.ChangeColor(`orangered`),
orchid: new F.Modifier.Shape.ChangeColor(`orchid`),
palegoldenrod: new F.Modifier.Shape.ChangeColor(`palegoldenrod`),
palegreen: new F.Modifier.Shape.ChangeColor(`palegreen`),
paleturquoise: new F.Modifier.Shape.ChangeColor(`paleturquoise`),
palevioletred: new F.Modifier.Shape.ChangeColor(`palevioletred`),
papayawhip: new F.Modifier.Shape.ChangeColor(`papayawhip`),
peachpuff: new F.Modifier.Shape.ChangeColor(`peachpuff`),
peru: new F.Modifier.Shape.ChangeColor(`peru`),
pink: new F.Modifier.Shape.ChangeColor(`pink`),
plum: new F.Modifier.Shape.ChangeColor(`plum`),
powderblue: new F.Modifier.Shape.ChangeColor(`powderblue`),
purple: new F.Modifier.Shape.ChangeColor(`purple`),
red: new F.Modifier.Shape.ChangeColor(`red`),
rosybrown: new F.Modifier.Shape.ChangeColor(`rosybrown`),
royalblue: new F.Modifier.Shape.ChangeColor(`royalblue`),
saddlebrown: new F.Modifier.Shape.ChangeColor(`saddlebrown`),
salmon: new F.Modifier.Shape.ChangeColor(`salmon`),
sandybrown: new F.Modifier.Shape.ChangeColor(`sandybrown`),
seagreen: new F.Modifier.Shape.ChangeColor(`seagreen`),
seashell: new F.Modifier.Shape.ChangeColor(`seashell`),
sienna: new F.Modifier.Shape.ChangeColor(`sienna`),
silver: new F.Modifier.Shape.ChangeColor(`silver`),
skyblue: new F.Modifier.Shape.ChangeColor(`skyblue`),
slateblue: new F.Modifier.Shape.ChangeColor(`slateblue`),
slategray: new F.Modifier.Shape.ChangeColor(`slategray`),
slategrey: new F.Modifier.Shape.ChangeColor(`slategrey`),
snow: new F.Modifier.Shape.ChangeColor(`snow`),
springgreen: new F.Modifier.Shape.ChangeColor(`springgreen`),
steelblue: new F.Modifier.Shape.ChangeColor(`steelblue`),
tan: new F.Modifier.Shape.ChangeColor(`tan`),
teal: new F.Modifier.Shape.ChangeColor(`teal`),
thistle: new F.Modifier.Shape.ChangeColor(`thistle`),
tomato: new F.Modifier.Shape.ChangeColor(`tomato`),
turquoise: new F.Modifier.Shape.ChangeColor(`turquoise`),
violet: new F.Modifier.Shape.ChangeColor(`violet`),
wheat: new F.Modifier.Shape.ChangeColor(`wheat`),
white: new F.Modifier.Shape.ChangeColor(`white`),
whitesmoke: new F.Modifier.Shape.ChangeColor(`whitesmoke`),
yellow: new F.Modifier.Shape.ChangeColor(`yellow`),
yellowgreen: new F.Modifier.Shape.ChangeColor(`yellowgreen`)
};
var Ut = n(81), Wt = n(748), Gt = n(226);
function Kt(e) {
return Kt = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, Kt(e);
}
function qt(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && Jt(e, t);
}
function Jt(e, t) {
return Jt = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, Jt(e, t);
}
function Yt(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = Qt(e);
if (t) {
var i = Qt(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return Xt(this, n);
};
}
function Xt(e, t) {
if (t && (Kt(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return Zt(e);
}
function Zt(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}
function Qt(e) {
return Qt = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, Qt(e);
}
function $t(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function en(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function tn(e, t, n) {
return t && en(e.prototype, t), n && en(e, n), e;
}
var nn = it, rn = function() {
function e() {
$t(this, e);
}
return tn(e, null, [{
key: `createSVG`,
value: function(e, t, n, r, i, a, o) {
return new on(e, t, n, r, i, a, o);
}
}]), e;
}(), an = function() {
function e(t) {
$t(this, e), this.xypicWrapper = t;
}
return tn(e, [
{
key: `createElement`,
value: function(e) {
return this.xypicWrapper.svg(e);
}
},
{
key: `createGroup`,
value: function(e) {
return new un(this, e);
}
},
{
key: `createChangeColorGroup`,
value: function(e) {
return new dn(this, e);
}
},
{
key: `createSVGElement`,
value: function(e, t) {
var n = this.createElement(e);
if (t) {
for (var r in t) if (t.hasOwnProperty(r)) {
var i = t[r].toString();
r === `xlink:href` ? this.xypicWrapper.setAttribute(n, r, i, `http://www.w3.org/1999/xlink`) : this.xypicWrapper.setAttribute(n, r, i);
}
}
return this.appendChild(n), n;
}
},
{
key: `appendChild`,
value: function(e) {
return this.xypicWrapper.adaptor.append(this.drawArea, e), e;
}
},
{
key: `transformBuilder`,
value: function() {
return new sn();
}
}
]), e;
}(), on = function(e) {
qt(n, e);
var t = Yt(n);
function n(e, r, i, a, o, s, c) {
var l;
$t(this, n);
var u = (l = t.call(this, e)).createElement(`svg`);
if (l.xypicWrapper.setAttribute(u, `xmlns`, `http://www.w3.org/2000/svg`), l.xypicWrapper.setAttribute(u, `version`, `1.1`), c) for (var d in c) c.hasOwnProperty(d) && l.xypicWrapper.setAttribute(u, d, c[d].toString());
for (var f in u.style && (u.style.width = A.measure.Em(a), u.style.height = A.measure.Em(r + i)), c = {
fill: `none`,
stroke: s,
"stroke-linecap": `round`,
"stroke-width": A.measure.em2px(o)
}, l.drawArea = l.createElement(`g`), c) c.hasOwnProperty(f) && l.xypicWrapper.setAttribute(l.drawArea, f, c[f].toString());
return l.xypicWrapper.append(u, l.drawArea), l.svg = u, l.boundingBox = void 0, l.color = s, l;
}
return tn(n, [
{
key: `setHeight`,
value: function(e) {
this.xypicWrapper.setStyle(this.svg, `height`, A.measure.Em(e));
}
},
{
key: `setWidth`,
value: function(e) {
this.xypicWrapper.setStyle(this.svg, `width`, A.measure.Em(e));
}
},
{
key: `setAttribute`,
value: function(e, t) {
this.xypicWrapper.setAttribute(this.svg, e, t.toString());
}
},
{
key: `extendBoundingBox`,
value: function(e) {
this.boundingBox = U.combineRect(this.boundingBox, e);
}
},
{
key: `getOrigin`,
value: function() {
return {
x: 0,
y: 0
};
}
},
{
key: `getCurrentColor`,
value: function() {
return this.color;
}
}
]), n;
}(an), sn = function() {
function e(t) {
$t(this, e), this.transform = t || O.empty;
}
return tn(e, [
{
key: `translate`,
value: function(t, n) {
return new e(this.transform.append(new cn(t, n)));
}
},
{
key: `rotateDegree`,
value: function(t) {
return new e(this.transform.append(new ln(t / 180 * Math.PI)));
}
},
{
key: `rotateRadian`,
value: function(t) {
return new e(this.transform.append(new ln(t)));
}
},
{
key: `toString`,
value: function() {
var e = ``;
return this.transform.foreach((function(t) {
e += t.toTranslateForm();
})), e;
}
},
{
key: `apply`,
value: function(e, t) {
var n = {
x: e,
y: t
};
return this.transform.foreach((function(e) {
n = e.apply(n.x, n.y);
})), n;
}
}
]), e;
}(), cn = function() {
function e(t, n) {
$t(this, e), this.dx = t, this.dy = n;
}
return tn(e, [{
key: `apply`,
value: function(e, t) {
return {
x: e - this.dx,
y: t + this.dy
};
}
}, {
key: `toTranslateForm`,
value: function() {
return `translate(` + A.measure.em2px(this.dx) + `,` + A.measure.em2px(-this.dy) + `) `;
}
}]), e;
}(), ln = function() {
function e(t) {
$t(this, e), this.radian = t;
}
return tn(e, [{
key: `apply`,
value: function(e, t) {
var n = Math.cos(this.radian), r = Math.sin(this.radian);
return {
x: n * e + r * t,
y: -r * e + n * t
};
}
}, {
key: `toTranslateForm`,
value: function() {
return `rotate(` + nn(-180 * this.radian / Math.PI) + `) `;
}
}]), e;
}(), un = function(e) {
qt(n, e);
var t = Yt(n);
function n(e, r) {
var i;
$t(this, n), (i = t.call(this, e.xypicWrapper)).parent = e, i.drawArea = e.createSVGElement(`g`, r === void 0 ? {} : { transform: r.toString() });
var a = e.getOrigin();
return i.origin = r === void 0 ? a : r.apply(a.x, a.y), H(Zt(i), `getCurrentColor`), i;
}
return tn(n, [
{
key: `remove`,
value: function() {
this.xypicWrapper.remove(this.drawArea);
}
},
{
key: `extendBoundingBox`,
value: function(e) {
this.parent.extendBoundingBox(e);
}
},
{
key: `getOrigin`,
value: function() {
return this.origin;
}
},
{
key: `getCurrentColor`,
value: function() {
return this.parent.getCurrentColor();
}
}
]), n;
}(an), dn = function(e) {
qt(n, e);
var t = Yt(n);
function n(e, r) {
var i;
return $t(this, n), (i = t.call(this, e.xypicWrapper)).parent = e, i.drawArea = e.createSVGElement(`g`, { stroke: r }), i.color = r, H(Zt(i), `getOrigin`), i;
}
return tn(n, [
{
key: `remove`,
value: function() {
this.xypicWrapper.remove(this.drawArea);
}
},
{
key: `extendBoundingBox`,
value: function(e) {
this.parent.extendBoundingBox(e);
}
},
{
key: `getOrigin`,
value: function() {
return this.parent.getOrigin();
}
},
{
key: `getCurrentColor`,
value: function() {
return this.color;
}
}
]), n;
}(an);
function fn(e) {
return fn = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, fn(e);
}
function pn(e, t) {
var n = typeof Symbol < `u` && e[Symbol.iterator] || e[`@@iterator`];
if (!n) {
if (Array.isArray(e) || (n = function(e, t) {
if (e) {
if (typeof e == `string`) return mn(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
if (n === `Object` && e.constructor && (n = e.constructor.name), n === `Map` || n === `Set`) return Array.from(e);
if (n === `Arguments` || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return mn(e, t);
}
}(e)) || t && e && typeof e.length == `number`) {
n && (e = n);
var r = 0, i = function() {};
return {
s: i,
n: function() {
return r >= e.length ? { done: !0 } : {
done: !1,
value: e[r++]
};
},
e: function(e) {
throw e;
},
f: i
};
}
throw TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
var a, o = !0, s = !1;
return {
s: function() {
n = n.call(e);
},
n: function() {
var e = n.next();
return o = e.done, e;
},
e: function(e) {
s = !0, a = e;
},
f: function() {
try {
o || n.return == null || n.return();
} finally {
if (s) throw a;
}
}
};
}
function mn(e, t) {
(t == null || t > e.length) && (t = e.length);
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
return r;
}
function hn(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function gn(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function _n(e, t, n) {
return t && gn(e.prototype, t), n && gn(e, n), e;
}
function vn(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && yn(e, t);
}
function yn(e, t) {
return yn = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, yn(e, t);
}
function bn(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = Sn(e);
if (t) {
var i = Sn(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return xn(this, n);
};
}
function xn(e, t) {
if (t && (fn(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return function(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}(e);
}
function Sn(e) {
return Sn = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, Sn(e);
}
var Cn = `http://www.w3.org/2000/svg`, wn = it;
function Tn(e, t) {
var n = function(e) {
vn(n, e);
var t = bn(n);
function n(e, r) {
var i, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
hn(this, n), i = t.call(this, e, r, a);
for (var o = A.wrapperOfTextObjectMap, s = r.textMmls, c = i.childNodes, l = s.length, u = 0; u < l; u++) {
var d = s[u].xypicTextObjectId;
o[d] = c[u];
}
return i._textObjects = [], i;
}
return _n(n, [
{
key: `getElement`,
value: function() {
return this.chtml;
}
},
{
key: `appendTextObject`,
value: function(e) {
this._textObjects.push(e);
}
},
{
key: `getChildWrapper`,
value: function(e) {
var t = e.xypicTextObjectId;
if (t == null) throw c(`IllegalStateError`, `BUG`);
var n = A.wrapperOfTextObjectMap[t];
if (n == null) throw c(`IllegalStateError`, `unknown textObjectId:` + t);
return n;
}
},
{
key: `toCHTML`,
value: function(e) {
var t = A.svgForDebug, n = A.svgForTestLayout;
this._textObjects = [], this.setupMeasure(this), this._toCHTML(e), A.svgForDebug = t, A.svgForTestLayout = n;
}
},
{
key: `setupMeasure`,
value: function(e) {
var t = it, n = e.length2em(`1em`), r = parseFloat(e.px(100).replace(`px`, ``)) / 100, i = e.font.params.axis_height, a = e.length2em(`0.15em`), o = function(t) {
return Math.round(parseFloat(e.px(100 * t).replace(`px`, ``))) / 100;
};
A.measure = {
length2em: function(n) {
return t(e.length2em(n));
},
oneem: n,
em2length: function(e) {
return t(e / n) + `em`;
},
Em: function(t) {
return e.em(t);
},
em: r,
em2px: o,
axis_height: i,
strokeWidth: e.length2em(`0.04em`),
thickness: a,
jot: e.length2em(`3pt`),
objectmargin: e.length2em(`3pt`),
objectwidth: e.length2em(`0pt`),
objectheight: e.length2em(`0pt`),
labelmargin: e.length2em(`2.5pt`),
turnradius: e.length2em(`10pt`),
lineElementLength: e.length2em(`5pt`),
axisHeightLength: i * e.length2em(`10pt`),
dottedDasharray: n + ` ` + o(a)
};
}
},
{
key: `append`,
value: function(e, t) {
this.adaptor.append(e, t);
}
},
{
key: `remove`,
value: function(e) {
this.adaptor.remove(e);
}
},
{
key: `svg`,
value: function(e) {
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
return this.adaptor.node(e, t, n, Cn);
}
},
{
key: `setAttribute`,
value: function(e, t, n, r) {
return this.adaptor.setAttribute(e, t, n, r);
}
},
{
key: `setStyle`,
value: function(e, t, n) {
this.adaptor.setStyle(e, t, n);
}
},
{
key: `drawTextObject`,
value: function(e, t, n) {
var r = A.measure.length2em(`0.2em`), i = t.xypicWrapper, a = i.getChildWrapper(e.math), o = a.adaptor, s = a.getBBox(), c = s.scale, l = (s.h + r) * c, u = (s.d + r) * c, d = (s.w + 2 * r) * c, f = (l + u) / 2, p = d / 2, m = e.c;
if (e.originalBBox = {
H: l,
D: u,
W: d
}, !n) {
var h = a.html(`mjx-xypic-object`);
o.append(i.getElement(), h), o.setStyle(h, `color`, t.getCurrentColor()), a.toCHTML(h);
var g = t.getOrigin();
o.setAttribute(h, `data-x`, m.x - p - g.x + r * c), o.setAttribute(h, `data-y`, -m.y - f - g.y + r * c), o.setAttribute(h, `data-xypic-id`, e.math.xypicTextObjectId), i.appendTextObject(h);
}
return m.toRect({
u: f,
d: f,
l: p,
r: p
});
}
}
]), n;
}(e), r = function(e) {
vn(n, e);
var t = bn(n);
function n(e, r) {
var i, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
return hn(this, n), (i = t.call(this, e, r, a)).shape = null, i;
}
return _n(n, [
{
key: `computeBBox`,
value: function(e) {
e.empty();
var t = this.node.cmd;
if (t) {
var n = this.length2em(`0.2em`);
if (this.shape == null) {
var r = A.svgForDebug, i = A.svgForTestLayout;
this._textObjects = [], this.setupMeasure(this), this.adaptor;
var a = A.measure.strokeWidth, o = 1, s = 0, c = 1, l = A.measure.em2px, d = rn.createSVG(this, o, s, c, a, `black`, {
viewBox: [
0,
-l(o + s),
l(c),
l(o + s)
].join(` `),
role: `img`,
focusable: !1,
overflow: `visible`
});
A.svgForDebug = d, A.svgForTestLayout = d;
var f = new Mt(), p = new St(Y.none, f);
t.toShape(p), this.shape = p.shape, A.svgForDebug = r, A.svgForTestLayout = i;
}
var h = this.shape.getBoundingBox();
h !== void 0 && (h = new U.Rect(0, 0, {
l: Math.max(0, -(h.x - h.l)),
r: Math.max(0, h.x + h.r),
u: Math.max(0, h.y + h.u),
d: Math.max(0, -(h.y - h.d))
}), e.updateFrom(new Gt.bK({
w: h.l + h.r + 2 * n,
h: h.u + 2 * n,
d: h.d
})));
}
}
},
{
key: `kind`,
get: function() {
return F.xypic.prototype.kind;
}
},
{
key: `_toCHTML`,
value: function(e) {
var t = this.standardCHTMLnode(e);
this.cthml = t;
var n = this.adaptor, r = this.length2em(`0.2em`), i = A.measure.strokeWidth, a = 1, o = 0, s = 1, c = A.measure.em2px, l = rn.createSVG(this, a, o, s, i, `black`, {
viewBox: [
0,
-c(a + o),
c(s),
c(a + o)
].join(` `),
role: `img`,
focusable: !1,
overflow: `visible`
});
A.svgForDebug = l, A.svgForTestLayout = l, n.append(t, l.svg);
var u = this.node.cmd;
if (u) {
if (this.shape == null) {
var d = new Mt(), f = new St(Y.none, d);
u.toShape(f), this.shape = f.shape;
}
var p = this.shape;
p.draw(l);
var m = p.getBoundingBox();
if (m !== void 0) {
var h = (m = new U.Rect(0, 0, {
l: Math.max(0, -(m.x - m.l)),
r: Math.max(0, m.x + m.r),
u: Math.max(0, m.y + m.u),
d: Math.max(0, -(m.y - m.d))
})).x - m.l - r, g = -m.y - m.u - r, _ = m.l + m.r + 2 * r, v = m.u + m.d + 2 * r;
l.setWidth(_), l.setHeight(v), l.setAttribute(`viewBox`, [
c(h),
c(g),
c(_),
c(v)
].join(` `)), n.setStyle(t, `vertical-align`, wn(-m.d - r + A.measure.axis_height) + `em`);
var y, b = pn(this._textObjects);
try {
for (b.s(); !(y = b.n()).done;) {
var x = y.value, S = parseFloat(n.getAttribute(x, `data-x`)), C = parseFloat(n.getAttribute(x, `data-y`));
n.setStyle(x, `left`, wn(S - h) + `em`), n.setStyle(x, `top`, wn(C + m.y - m.d - .5 * r) + `em`);
}
} catch (e) {
b.e(e);
} finally {
b.f();
}
} else n.remove(l.svg);
} else n.remove(l.svg);
}
}
], [{
key: `styles`,
get: function() {
return {
"mjx-xypic path": { "stroke-width": `inherit` },
".MathJax mjx-xypic path": { "stroke-width": `inherit` },
"mjx-xypic-object": {
"text-align": `center`,
position: `absolute`
},
"mjx-xypic": { position: `relative` }
};
}
}]), n;
}(n);
t[r.prototype.kind] = r;
var i = function(e) {
vn(n, e);
var t = bn(n);
function n(e, r) {
var i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
return hn(this, n), t.call(this, e, r, i);
}
return _n(n, [{
key: `kind`,
get: function() {
return F.xypic.newdir.prototype.kind;
}
}, {
key: `_toCHTML`,
value: function(e) {
var t = this.node.cmd;
A.repositories.dirRepository.put(t.dirMain, t.compositeObject);
}
}]), n;
}(n);
t[i.prototype.kind] = i;
var a = function(e) {
vn(n, e);
var t = bn(n);
function n(e, r) {
var i, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
return hn(this, n), (i = t.call(this, e, r, a))._setupGraphics(), i.computeBBox(i.bbox), i.bboxComputed = !0, i;
}
return _n(n, [
{
key: `kind`,
get: function() {
return F.xypic.includegraphics.prototype.kind;
}
},
{
key: `_setupGraphics`,
value: function() {
this.setupMeasure(this);
var e = new Mt(), t = new St(Y.none, e), n = this.node.cmd;
if (n.setup(t), !e.includegraphicsWidth.isDefined || !e.includegraphicsHeight.isDefined) throw c(`ExecutionError`, `the 'width' and 'height' attributes of the \\includegraphics are required.`);
var r = e.includegraphicsWidth.get, i = e.includegraphicsHeight.get;
this.imageWidth = this.length2em(r), this.imageHeight = this.length2em(i), this.filepath = n.filepath;
}
},
{
key: `computeBBox`,
value: function(e) {
e.empty(), e.updateFrom(new Gt.bK({
w: this.imageWidth,
h: this.imageHeight,
d: 0
}));
}
},
{
key: `_toCHTML`,
value: function(e) {
var t = this.standardCHTMLnode(e);
this.cthml = t, this.adaptor.setStyle(t, `position`, `relative`), this.adaptor.setStyle(t, `vertical-align`, `0em`);
var n = this.html(`img`);
this.adaptor.setAttribute(n, `src`, this.filepath), this.adaptor.setStyle(n, `width`, wn(this.imageWidth) + `em`), this.adaptor.setStyle(n, `height`, wn(this.imageHeight) + `em`), this.adaptor.append(t, n);
}
}
]), n;
}(n);
t[a.prototype.kind] = a;
}
Ut.wO !== void 0 && Tn(Ut.wO, Wt.w);
var En = n(952), Dn = n(84);
function On(e) {
return On = typeof Symbol == `function` && typeof Symbol.iterator == `symbol` ? function(e) {
return typeof e;
} : function(e) {
return e && typeof Symbol == `function` && e.constructor === Symbol && e !== Symbol.prototype ? `symbol` : typeof e;
}, On(e);
}
function kn(e, t) {
var n = typeof Symbol < `u` && e[Symbol.iterator] || e[`@@iterator`];
if (!n) {
if (Array.isArray(e) || (n = function(e, t) {
if (e) {
if (typeof e == `string`) return An(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
if (n === `Object` && e.constructor && (n = e.constructor.name), n === `Map` || n === `Set`) return Array.from(e);
if (n === `Arguments` || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return An(e, t);
}
}(e)) || t && e && typeof e.length == `number`) {
n && (e = n);
var r = 0, i = function() {};
return {
s: i,
n: function() {
return r >= e.length ? { done: !0 } : {
done: !1,
value: e[r++]
};
},
e: function(e) {
throw e;
},
f: i
};
}
throw TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
}
var a, o = !0, s = !1;
return {
s: function() {
n = n.call(e);
},
n: function() {
var e = n.next();
return o = e.done, e;
},
e: function(e) {
s = !0, a = e;
},
f: function() {
try {
o || n.return == null || n.return();
} finally {
if (s) throw a;
}
}
};
}
function An(e, t) {
(t == null || t > e.length) && (t = e.length);
for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
return r;
}
function jn(e, t) {
if (!(e instanceof t)) throw TypeError(`Cannot call a class as a function`);
}
function Mn(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, `value` in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
}
}
function Nn(e, t, n) {
return t && Mn(e.prototype, t), n && Mn(e, n), e;
}
function Pn(e, t) {
if (typeof t != `function` && t !== null) throw TypeError(`Super expression must either be null or a function`);
e.prototype = Object.create(t && t.prototype, { constructor: {
value: e,
writable: !0,
configurable: !0
} }), t && Fn(e, t);
}
function Fn(e, t) {
return Fn = Object.setPrototypeOf || function(e, t) {
return e.__proto__ = t, e;
}, Fn(e, t);
}
function In(e) {
var t = function() {
if (typeof Reflect > `u` || !Reflect.construct || Reflect.construct.sham) return !1;
if (typeof Proxy == `function`) return !0;
try {
return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), !0;
} catch {
return !1;
}
}();
return function() {
var n, r = Rn(e);
if (t) {
var i = Rn(this).constructor;
n = Reflect.construct(r, arguments, i);
} else n = r.apply(this, arguments);
return Ln(this, n);
};
}
function Ln(e, t) {
if (t && (On(t) === `object` || typeof t == `function`)) return t;
if (t !== void 0) throw TypeError(`Derived constructors may only return object or undefined`);
return function(e) {
if (e === void 0) throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);
return e;
}(e);
}
function Rn(e) {
return Rn = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
}, Rn(e);
}
var zn = `http://www.w3.org/2000/svg`, Bn = it;
function Vn(e, t) {
var n = function(e) {
Pn(n, e);
var t = In(n);
function n(e, r) {
var i, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
jn(this, n), i = t.call(this, e, r, a);
for (var o = A.wrapperOfTextObjectMap, s = r.textMmls, c = i.childNodes, l = s.length, u = 0; u < l; u++) {
var d = s[u].xypicTextObjectId;
o[d] = c[u];
}
return i._textObjects = [], i;
}
return Nn(n, [
{
key: `getElement`,
value: function() {
return this.svgNode;
}
},
{
key: `appendTextObject`,
value: function(e) {
this._textObjects.push(e);
}
},
{
key: `getChildWrapper`,
value: function(e) {
var t = e.xypicTextObjectId;
if (t == null) throw c(`IllegalStateError`, `BUG`);
var n = A.wrapperOfTextObjectMap[t];
if (n == null) throw c(`IllegalStateError`, `unknown textObjectId:` + t);
return n;
}
},
{
key: `toSVG`,
value: function(e) {
var t = A.svgForDebug, n = A.svgForTestLayout;
this._textObjects = [], this.setupMeasure(this), this._toSVG(e), A.svgForDebug = t, A.svgForTestLayout = n;
}
},
{
key: `setupMeasure`,
value: function(e) {
var t = it, n = e.length2em(`1em`), r = parseFloat(e.px(100).replace(`px`, ``)) / 100, i = e.font.params.axis_height, a = e.length2em(`0.15em`), o = function(t) {
return Math.round(parseFloat(e.px(100 * t).replace(`px`, ``))) / 100;
};
A.measure = {
length2em: function(n) {
return t(e.length2em(n));
},
oneem: n,
em2length: function(e) {
return t(e / n) + `em`;
},
Em: function(t) {
return e.em(t);
},
em: r,
em2px: o,
axis_height: i,
strokeWidth: e.length2em(`0.04em`),
thickness: a,
jot: e.length2em(`3pt`),
objectmargin: e.length2em(`3pt`),
objectwidth: e.length2em(`0pt`),
objectheight: e.length2em(`0pt`),
labelmargin: e.length2em(`2.5pt`),
turnradius: e.length2em(`10pt`),
lineElementLength: e.length2em(`5pt`),
axisHeightLength: i * e.length2em(`10pt`),
dottedDasharray: n + ` ` + o(a)
};
}
},
{
key: `append`,
value: function(e, t) {
this.adaptor.append(e, t);
}
},
{
key: `remove`,
value: function(e) {
this.adaptor.remove(e);
}
},
{
key: `svg`,
value: function(e) {
var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
return this.adaptor.node(e, t, n, zn);
}
},
{
key: `setAttribute`,
value: function(e, t, n, r) {
return this.adaptor.setAttribute(e, t, n, r);
}
},
{
key: `setStyle`,
value: function(e, t, n) {
this.adaptor.setStyle(e, t, n);
}
},
{
key: `drawTextObject`,
value: function(e, t, n) {
var r = A.measure.length2em(`0.2em`), i = t.xypicWrapper, a = i.getChildWrapper(e.math), o = a.adaptor, s = a.getBBox(), c = s.scale, l = (s.h + r) * c, u = (s.d + r) * c, d = (s.w + 2 * r) * c, f = (l + u) / 2, p = d / 2, m = e.c;
if (e.originalBBox = {
H: l,
D: u,
W: d
}, !n) {
var h = a.svg(`g`);
o.append(i.getElement(), h), o.setAttribute(h, `stroke`, t.getCurrentColor()), o.setAttribute(h, `fill`, t.getCurrentColor()), a.toSVG(h);
var g = t.getOrigin();
o.setAttribute(h, `data-x`, m.x - p - g.x + r * c), o.setAttribute(h, `data-y`, -m.y + (l - u) / 2 - g.y), o.setAttribute(h, `data-xypic-id`, e.math.xypicTextObjectId), i.appendTextObject(h);
}
return m.toRect({
u: f,
d: f,
l: p,
r: p
});
}
}
]), n;
}(e), r = function(e) {
Pn(n, e);
var t = In(n);
function n(e, r) {
var i, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
return jn(this, n), (i = t.call(this, e, r, a)).shape = null, i;
}
return Nn(n, [
{
key: `computeBBox`,
value: function(e) {
e.empty();
var t = this.node.cmd;
if (t) {
var n = this.length2em(`0.2em`);
if (this.shape == null) {
var r = A.svgForDebug, i = A.svgForTestLayout;
this._textObjects = [], this.setupMeasure(this), this.adaptor;
var a = A.measure.strokeWidth, o = 1, s = 0, c = 1, l = A.measure.em2px, d = rn.createSVG(this, o, s, c, a, `black`, {
viewBox: [
0,
-l(o + s),
l(c),
l(o + s)
].join(` `),
role: `img`,
focusable: !1,
overflow: `visible`
});
A.svgForDebug = d, A.svgForTestLayout = d;
var f = new Mt(), p = new St(Y.none, f);
t.toShape(p), this.shape = p.shape, A.svgForDebug = r, A.svgForTestLayout = i;
}
var h = this.shape.getBoundingBox();
h !== void 0 && (h = new U.Rect(0, 0, {
l: Math.max(0, -(h.x - h.l)),
r: Math.max(0, h.x + h.r),
u: Math.max(0, h.y + h.u),
d: Math.max(0, -(h.y - h.d))
}), e.updateFrom(new Gt.bK({
w: h.l + h.r + 2 * n,
h: h.u + 2 * n,
d: h.d
})));
}
}
},
{
key: `kind`,
get: function() {
return F.xypic.prototype.kind;
}
},
{
key: `_toSVG`,
value: function(e) {
var t = this.standardSVGnode(e);
this.svgNode = t;
var n = this.adaptor, r = this.length2em(`0.2em`), i = A.measure.strokeWidth, a = 1, o = 0, s = 1, c = A.measure.em2px, l = rn.createSVG(this, a, o, s, i, `black`, {
viewBox: [
0,
-c(a + o),
c(s),
c(a + o)
].join(` `),
role: `img`,
focusable: !1,
overflow: `visible`
});
A.svgForDebug = l, A.svgForTestLayout = l, n.append(t, l.drawArea);
var u = this.node.cmd;
if (u) {
if (this.shape == null) {
var d = new Mt(), f = new St(Y.none, d);
u.toShape(f), this.shape = f.shape;
}
var p = this.shape;
p.draw(l);
var m = p.getBoundingBox();
if (m !== void 0) {
var h = (m = new U.Rect(0, 0, {
l: Math.max(0, -(m.x - m.l)),
r: Math.max(0, m.x + m.r),
u: Math.max(0, m.y + m.u),
d: Math.max(0, -(m.y - m.d))
})).x - m.l - r, g = -m.y - m.u - r, _ = m.l + m.r + 2 * r, v = m.u + m.d + 2 * r;
l.setWidth(_), l.setHeight(v), l.setAttribute(`viewBox`, [
c(h),
c(g),
c(_),
c(v)
].join(` `));
var y = this.fixed(1) / c(1);
n.setAttribute(l.drawArea, `transform`, `translate(` + this.fixed(-h) + `,` + this.fixed(m.y + A.measure.axis_height) + `) scale(` + y + `, ` + -y + `)`);
var b, x = kn(this._textObjects);
try {
for (x.s(); !(b = x.n()).done;) {
var S = b.value, C = parseFloat(n.getAttribute(S, `data-x`)), w = parseFloat(n.getAttribute(S, `data-y`)), T = C - h, E = -w + m.y + A.measure.axis_height;
this.place(T, E, S);
}
} catch (e) {
x.e(e);
} finally {
x.f();
}
} else n.remove(l.drawArea);
} else n.remove(l.drawArea);
}
}
], [{
key: `styles`,
get: function() {
return {
"g[data-mml-node=\"xypic\"] path": { "stroke-width": `inherit` },
".MathJax g[data-mml-node=\"xypic\"] path": { "stroke-width": `inherit` }
};
}
}]), n;
}(n);
t[r.prototype.kind] = r;
var i = function(e) {
Pn(n, e);
var t = In(n);
function n(e, r) {
var i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
return jn(this, n), t.call(this, e, r, i);
}
return Nn(n, [
{
key: `kind`,
get: function() {
return F.xypic.newdir.prototype.kind;
}
},
{
key: `computeBBox`,
value: function(e) {
var t = this.node.cmd;
A.repositories.dirRepository.put(t.dirMain, t.compositeObject);
}
},
{
key: `_toSVG`,
value: function(e) {
var t = this.node.cmd;
A.repositories.dirRepository.put(t.dirMain, t.compositeObject);
}
}
]), n;
}(n);
t[i.prototype.kind] = i;
var a = function(e) {
Pn(n, e);
var t = In(n);
function n(e, r) {
var i, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
return jn(this, n), (i = t.call(this, e, r, a))._setupGraphics(), i.computeBBox(i.bbox), i.bboxComputed = !0, i;
}
return Nn(n, [
{
key: `kind`,
get: function() {
return F.xypic.includegraphics.prototype.kind;
}
},
{
key: `_setupGraphics`,
value: function() {
this.setupMeasure(this);
var e = new Mt(), t = new St(Y.none, e), n = this.node.cmd;
if (n.setup(t), !e.includegraphicsWidth.isDefined || !e.includegraphicsHeight.isDefined) throw c(`ExecutionError`, `the 'width' and 'height' attributes of the \\includegraphics are required.`);
var r = e.includegraphicsWidth.get, i = e.includegraphicsHeight.get;
this.imageWidth = this.length2em(r), this.imageHeight = this.length2em(i), this.filepath = n.filepath;
}
},
{
key: `computeBBox`,
value: function(e) {
e.empty(), e.updateFrom(new Gt.bK({
w: this.imageWidth,
h: this.imageHeight,
d: 0
}));
}
},
{
key: `_toSVG`,
value: function(e) {
var t = this.standardSVGnode(e);
this.svgNode = t;
var n = this.fixed(1), r = this.svg(`image`, {
x: `0`,
y: `0`,
preserveAspectRatio: `none`,
width: Bn(this.imageWidth),
height: Bn(this.imageHeight),
transform: `scale(` + n + `,` + -n + `) translate(0,` + Bn(-this.imageHeight) + `)`
});
this.adaptor.setAttribute(r, `xlink:href`, this.filepath, `http://www.w3.org/1999/xlink`), this.adaptor.append(t, r);
}
}
]), n;
}(n);
t[a.prototype.kind] = a;
}
En.y !== void 0 && Vn(En.y, Dn.N);
var Hn = MathJax._.components.loader.Loader;
Hn && (MathJax._.output.chtml.Wrapper.CHTMLWrapper || Hn.ready(`output/chtml`).then((function() {
var e = MathJax._.output.chtml;
Tn(e.Wrapper.CHTMLWrapper, e.Wrappers_ts.CHTMLWrappers);
})).catch((function(e) {
return console.log(`Caught`, e);
})), MathJax._.output.svg.Wrapper.SVGWrapper || Hn.ready(`output/svg`).then((function() {
var e = MathJax._.output.svg;
Vn(e.Wrapper.SVGWrapper, e.Wrappers_ts.SVGWrappers);
})).catch((function(e) {
return console.log(`Caught`, e);
})));
})();
})();
//#endregion
//# sourceMappingURL=xypic-DrMJn58R.js.map