diff --git "a/viewer/assets/xypic-DrMJn58R.js" "b/viewer/assets/xypic-DrMJn58R.js" new file mode 100644--- /dev/null +++ "b/viewer/assets/xypic-DrMJn58R.js" @@ -0,0 +1,14876 @@ +//#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 ? ` "` + 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 \ No newline at end of file