@phin-tech/dottie 0.6.1 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PARITY.md +3 -1
- package/README.md +8 -2
- package/dist/compile.js +64 -7
- package/dist/dottie-compile.mjs +76 -9
- package/dist/dottie-loader.js +2 -1
- package/dist/dottie-player.js +490 -179
- package/dist/dottie-player.min.js +53 -53
- package/dist/dottie.js +484 -179
- package/dist/fonts/OFL-architects-daughter.txt +93 -0
- package/dist/fonts/OFL-caveat.txt +93 -0
- package/dist/fonts/OFL-patrick-hand.txt +93 -0
- package/dist/fonts/architects-daughter-regular.woff2 +0 -0
- package/dist/fonts/caveat-bold.woff2 +0 -0
- package/dist/fonts/caveat-regular.woff2 +0 -0
- package/dist/fonts/patrick-hand-regular.woff2 +0 -0
- package/dist/types/compile.d.ts +5 -1
- package/dist/types/connector.d.ts +6 -6
- package/dist/types/element.d.ts +3 -0
- package/dist/types/fonts.d.ts +13 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/metrics.d.ts +16 -9
- package/dist/types/model.d.ts +8 -0
- package/dist/types/shapes.d.ts +17 -4
- package/dist/types/text.d.ts +20 -6
- package/package.json +1 -1
package/dist/dottie-compile.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
/*! dottie.js 0.6.
|
|
2
|
+
/*! dottie.js 0.6.3 | Apache-2.0 | https://github.com/phin-tech/dottie */
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
5
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
@@ -8,6 +8,50 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
8
8
|
import { readFileSync, writeFileSync } from "node:fs";
|
|
9
9
|
import { basename } from "node:path";
|
|
10
10
|
|
|
11
|
+
// src/metrics.ts
|
|
12
|
+
var families = { "Architects Daughter": { "faces": { "regular": { "ascent": 0.986328125, "descent": 0.4033203125, "k": {}, "leading": 0, "w": { " ": 400.39, "_": 686.52, "-": 310.55, "\u2013": 310.55, "\u2014": 411.13, ",": 177.73, ";": 124.02, ":": 166.99, "!": 134.77, "?": 505.86, ".": 140.63, "\u2026": 422.85, "\xB7": 140.63, "'": 162.11, "\u2018": 162.11, "\u2019": 162.11, '"': 236.33, "\u201C": 236.33, "\u201D": 236.33, "(": 297.85, ")": 351.56, "[": 424.8, "]": 541.02, "{": 352.54, "}": 478.52, "@": 1042.97, "*": 507.81, "/": 455.08, "\\": 501.95, "&": 669.92, "#": 637.7, "%": 518.55, "\u2022": 192.38, "`": 171.88, "^": 306.64, "\u2190": 1e3, "\u2192": 1e3, "\u2191": 645.02, "\u2193": 645.02, "+": 524.41, "\xD7": 470.7, "<": 475.59, "=": 492.19, ">": 471.68, "|": 145.51, "~": 444.34, "\u25E6": 578.13, "\u2610": 830.08, "\u2611": 830.08, "\u2713": 764.16, "$": 556.64, "0": 630.86, "1": 127.93, "2": 572.27, "3": 508.79, "4": 680.66, "5": 708.01, "6": 626.95, "7": 615.23, "8": 648.44, "9": 569.34, "a": 508.79, "A": 640.63, "b": 561.52, "B": 710.94, "c": 632.81, "C": 708.01, "d": 512.7, "D": 648.44, "e": 541.02, "E": 591.8, "\xE9": 541.02, "f": 593.75, "F": 692.38, "g": 515.63, "G": 692.38, "h": 495.12, "H": 605.47, "i": 151.37, "I": 151.37, "j": 177.73, "J": 529.3, "k": 614.26, "K": 605.47, "l": 157.23, "L": 692.38, "m": 778.32, "M": 827.15, "n": 500, "N": 626.95, "o": 562.5, "O": 669.92, "p": 556.64, "P": 637.7, "q": 513.67, "Q": 712.89, "r": 551.76, "R": 712.89, "s": 501.95, "S": 642.58, "t": 404.3, "T": 623.05, "u": 507.81, "U": 561.52, "v": 518.55, "V": 626.95, "w": 808.59, "W": 940.43, "x": 470.7, "X": 599.61, "y": 548.83, "Y": 534.18, "z": 495.12, "Z": 784.18 } } }, "fallback": { "\u2190": [0.966796875, 0.2109375, 0], "\u2192": [0.966796875, 0.2109375, 0], "\u2191": [0.966796875, 0.2109375, 0], "\u2193": [0.966796875, 0.2109375, 0], "\u25E6": [0.966796875, 0.2109375, 0], "\u2610": [0.66650390625, 0.25, 0.08349609375], "\u2611": [0.66650390625, 0.25, 0.08349609375], "\u2713": [0.966796875, 0.2109375, 0] } }, "Caveat": { "faces": { "bold": { "ascent": 0.9600067138671875, "descent": 0.3000030517578125, "k": { "AC": -20, "AE": -10, "AG": -10, "AH": -10, "AI": 10, "Aj": 10, "AJ": 10, "AL": -10, "AM": 10, "An": -10, "AO": -20, "AP": -10, "Aq": -10, "AQ": -20, "Ar": -10, "As": -10, "AS": -35, "AT": -50, "Au": -10, "AU": -20, "av": -20, "Av": -5, "AV": -40, "aw": -10, "AW": -20, "Ax": 10, "AX": -10, "ay": -20, "Ay": -10, "AY": -65, "Az": 20, "AZ": -10, "ba": -10, "bc": -10, "BC": -20, "bd": -10, "Bf": 10, "BF": -20, "Bg": 10, "bh": -5, "Bi": 10, "BI": -10, "bj": -5, "Bj": 10, "BJ": -10, "Bk": 10, "Bl": 10, "Bm": 10, "BP": -10, "BR": -10, "BS": -20, "BT": -40, "bu": -10, "BU": -20, "BV": -50, "BW": -50, "bx": -10, "Bx": 10, "BX": -40, "by": -10, "BY": -65, "Bz": 40, "BZ": -30, "CA": -20, "Cc": -5, "CC": -10, "Cd": -10, "CE": -10, "CG": -10, "Cj": 10, "CJ": -10, "CK": -10, "cl": 10, "Cl": 5, "Cn": -5, "CO": -10, "CP": -10, "CQ": -20, "Cs": -10, "CS": -10, "Ct": 10, "CT": -20, "Cu": -10, "CU": -10, "Cv": -20, "CV": -20, "cw": -10, "Cw": -10, "CW": -20, "Cx": 20, "CX": -30, "cy": -5, "CY": -35, "Cz": 20, "CZ": -40, "DA": -10, "Db": 10, "Dc": 10, "De": 10, "Df": 20, "DF": -10, "Dg": 10, "Dh": 10, "Di": 15, "DI": -10, "Dj": 5, "DJ": -10, "Dk": 10, "Dl": 10, "Dm": 20, "DM": -5, "dn": -10, "Do": 10, "Dp": 10, "Dq": 10, "Dr": 10, "Ds": 10, "dt": 10, "Dt": 20, "DT": -40, "du": -10, "Dv": 30, "DV": -30, "Dw": 20, "DW": -10, "Dx": 20, "DX": -50, "Dy": 10, "DY": -50, "Dz": 30, "DZ": -30, "EC": -10, "ED": -10, "EG": -10, "EJ": -10, "el": 10, "EO": -10, "EQ": -20, "ES": -40, "ET": -10, "EU": -20, "Ev": -10, "EV": -25, "Ew": -10, "EW": -30, "Ex": 10, "EX": -40, "Ey": -10, "EY": -50, "Ez": 20, "EZ": -20, "fa": -10, "Fa": -30, "FA": -40, "Fc": -20, "FC": -10, "Fd": -20, "FD": 20, "Fe": -15, "ff": 10, "Ff": 10, "FF": 20, "Fg": -10, "fh": 10, "Fh": 20, "fi": 10, "Fi": 10, "FI": 10, "fj": 10, "Fj": 10, "FJ": 20, "Fk": 10, "fl": 20, "Fl": 20, "FL": 10, "fm": 10, "FM": -10, "Fn": -20, "FN": 10, "Fo": -20, "FO": 10, "Fp": -10, "FP": -10, "Fq": -10, "FQ": 10, "Fr": -10, "FS": 10, "ft": 40, "Ft": 10, "FT": -30, "Fu": -10, "fv": 10, "Fv": 10, "FV": 10, "FW": 10, "fy": 10, "FY": 10, "Fz": 10, "FZ": -10, "GA": -10, "Gf": 10, "Gh": 10, "gi": 10, "Gi": 10, "GI": -10, "Gj": 10, "GJ": -10, "Gk": 10, "Gl": 10, "Gm": 10, "GM": -10, "GN": 10, "GP": -20, "GS": -10, "Gt": 10, "GU": -10, "Gv": 10, "GV": -10, "GW": -20, "Gx": 10, "GX": -40, "gy": 10, "GY": -40, "Gz": 10, "GZ": -20, "Hb": 10, "hf": -10, "Hf": 10, "hg": -20, "Hh": 10, "Hi": 10, "Hj": 20, "Hk": 10, "Hl": 10, "Hm": 10, "hq": -10, "hs": -10, "Ht": 20, "hv": -30, "Hv": 10, "hw": -15, "Hx": 20, "hy": -30, "Hy": 10, "Hz": 20, "Ia": -10, "IA": 10, "Ib": 10, "Ic": -10, "Id": -10, "ID": 30, "Ie": -10, "if": 10, "If": 20, "IF": 40, "Ig": -10, "Ih": 30, "Ii": 20, "II": 30, "Ij": 30, "IJ": 40, "Ik": 20, "IK": 10, "Il": 20, "IL": 10, "IM": 30, "In": -10, "IN": 20, "Io": -10, "Ip": 10, "Iq": -20, "Ir": -10, "IR": 10, "Is": -10, "It": 10, "Iu": -10, "IU": 10, "iv": 10, "Iv": -20, "IV": 30, "Iw": -25, "IW": 20, "Ix": 10, "IX": 10, "Iy": -10, "IY": 30, "Iz": 20, "IZ": 20, "Ja": -10, "Jb": 10, "Jc": -10, "Jd": -10, "Je": -10, "Jf": 10, "Jh": 10, "Ji": 10, "JI": -10, "Jj": 20, "JJ": 10, "Jk": 10, "Jl": 20, "Jn": -10, "Jo": -10, "JO": -10, "Jp": 10, "JP": -10, "Jq": -10, "JQ": -10, "JR": -10, "jt": 10, "Jt": 20, "JT": 10, "ju": -10, "Ju": -20, "JU": -10, "jx": 10, "JX": -25, "jy": 10, "JY": -20, "jz": 10, "Jz": 10, "JZ": -20, "Ka": -40, "kc": 20, "Kc": -40, "KC": -10, "Kd": -40, "KD": 10, "ke": 10, "Ke": -40, "kf": 20, "Kf": 10, "KF": 20, "Kg": -40, "KG": -10, "kh": 10, "Kh": 10, "ki": 10, "Ki": 10, "Kj": 40, "KJ": 20, "kk": 20, "Kk": 10, "kl": 20, "Kl": 10, "km": 10, "KM": 20, "Kn": -40, "ko": 10, "Ko": -50, "KO": -10, "Kp": 10, "Kq": -50, "kr": 10, "Ks": -40, "kt": 10, "Kt": 10, "KT": -10, "ku": 10, "Ku": -60, "kv": 10, "Kv": -30, "Kw": -40, "Kx": -10, "KX": -10, "ky": -10, "Ky": -30, "kz": 10, "Lb": -10, "LC": -20, "LE": -20, "Lf": 10, "Lg": -10, "LG": -20, "Lh": -10, "Li": 10, "LI": -40, "Lj": 20, "Lk": 10, "ll": 10, "Ll": 10, "LL": -20, "Ln": -20, "LO": -25, "Lp": 10, "Lq": -40, "LQ": -30, "Ls": -10, "LS": -65, "lt": 10, "Lt": -10, "LT": -70, "Lu": -40, "LU": -45, "Lv": -60, "LV": -70, "Lw": -40, "LW": -40, "Lx": 10, "Ly": -20, "LY": -90, "lz": 20, "Lz": 30, "LZ": -10, "Mb": 10, "md": 10, "Mf": 10, "Mh": 10, "Mi": 10, "MJ": 10, "Mk": 10, "Ml": 10, "mo": 20, "Mp": 10, "MP": -10, "Mq": -10, "MQ": -10, "MS": -20, "Mt": 20, "MT": -30, "Mu": -10, "MU": -20, "mv": -15, "Mv": 10, "MV": -20, "mw": -10, "MW": -30, "Mx": 10, "MX": -10, "my": -10, "My": -10, "MY": -50, "Mz": 10, "MZ": -10, "nb": -15, "Nb": 10, "Ne": 10, "Nf": 10, "Ng": 10, "Nh": 10, "Ni": 20, "Nj": 20, "Nk": 20, "Nl": 20, "Nm": 10, "Nq": 10, "ns": -5, "nt": -10, "Nt": 20, "nu": -10, "nv": -20, "Nv": 30, "nw": -20, "NW": -10, "Nx": 30, "NX": -20, "ny": -20, "Ny": 10, "NY": -20, "Nz": 40, "NZ": -10, "OA": -10, "OD": -10, "Of": 20, "Og": 20, "Oh": 10, "Oi": 20, "OI": -10, "oj": -5, "Oj": 20, "Ok": 10, "Ol": 20, "OL": 10, "Om": 20, "Oo": 10, "Op": 10, "Oq": 10, "OQ": 10, "Os": 10, "Ot": 20, "OT": -10, "ou": -10, "ov": 5, "Ov": 30, "OV": -10, "ow": -10, "Ow": 10, "OW": -10, "Ox": 30, "OX": -40, "oy": -10, "Oy": 20, "OY": -40, "Oz": 30, "OZ": -20, "Pa": -40, "PA": -40, "Pc": -30, "Pd": -40, "PD": -10, "Pe": -20, "Pf": 10, "Pg": -10, "Ph": 10, "Pi": 10, "PI": -10, "Pj": 20, "PJ": -10, "Pk": 10, "Pl": 10, "Pm": 10, "PM": -30, "pn": -10, "Pn": -10, "PN": -10, "Po": -30, "Pq": -30, "Ps": -20, "PS": 10, "Pt": 20, "pu": -10, "Pu": -30, "Pv": 10, "Px": 10, "PX": -35, "py": -10, "PY": -20, "Pz": 10, "PZ": -50, "Qb": 10, "Qf": 20, "Qg": 20, "qh": -10, "Qh": 10, "Qi": 20, "qj": 10, "Qj": 90, "QJ": 80, "Qk": 10, "Ql": 20, "Qm": 20, "qn": -10, "qo": -10, "Qp": 20, "Qt": 30, "QT": -10, "qu": -10, "Qv": 20, "QV": -10, "QW": -10, "Qx": 20, "QX": -20, "Qy": 50, "QY": -30, "Qz": 40, "QZ": -10, "ra": -5, "Ra": -10, "RA": -25, "RB": -10, "Rc": -10, "RC": -20, "Rd": -10, "RD": 10, "Re": -10, "RE": -20, "Rf": 20, "RF": 10, "Rg": -10, "RG": -10, "ri": 5, "RI": -10, "Rj": 30, "RJ": 30, "RL": -10, "RM": -20, "Rn": -10, "RN": 10, "Ro": -10, "RO": -10, "Rp": 20, "Rq": -30, "RQ": -10, "Rr": -10, "Rs": -10, "Rt": 10, "RT": -10, "Ru": -30, "RU": -20, "rv": 20, "RV": -10, "Rw": -10, "RW": -10, "Rx": 10, "RX": -20, "Ry": 10, "RY": -30, "Rz": 20, "RZ": -45, "Sa": -10, "Sb": 10, "Sc": -20, "Sd": -25, "SD": 20, "Se": -20, "SE": -10, "sf": 10, "Sf": 20, "SF": 30, "Sg": -20, "Sh": 20, "Si": 20, "SI": 10, "Sj": 30, "SJ": 30, "Sk": 10, "Sl": 20, "SL": 20, "Sn": -20, "SN": 10, "So": -10, "SO": 10, "Sq": -20, "Sr": -10, "Ss": -10, "st": 10, "St": 20, "Su": -20, "sv": 20, "Sv": -50, "SV": 20, "Sw": -30, "SW": 10, "sx": 15, "Sx": 10, "Sy": -15, "SY": 10, "sz": 20, "Sz": 20, "SZ": -10, "Ta": -90, "TA": -50, "Tc": -80, "TC": -10, "Td": -110, "TD": 10, "Te": -90, "TE": -10, "Tf": 20, "TF": 30, "Tg": -80, "TG": -10, "Th": 20, "ti": 5, "TI": 10, "Tj": 20, "Tk": 10, "Tl": 20, "Tm": -50, "TM": -30, "Tn": -90, "To": -90, "Tp": -80, "Tq": -120, "Tr": -80, "Ts": -80, "Tt": 10, "TT": -30, "Tu": -90, "tv": 10, "Tv": -70, "TV": 10, "Tw": -100, "tx": 20, "Tx": -60, "TX": -10, "Ty": -50, "tz": 30, "Tz": -40, "TZ": -10, "ub": -10, "Ub": 20, "UE": 10, "uf": 10, "Uf": 30, "UF": 10, "Ug": 10, "Uh": 30, "ui": 10, "Ui": 30, "Uj": 40, "uk": 10, "Uk": 20, "ul": 10, "Ul": 30, "Um": 30, "Up": 10, "UQ": 30, "Ur": 10, "UR": 10, "Us": 10, "Ut": 50, "UT": 20, "Uu": 10, "UU": 10, "Uv": 50, "UV": 10, "Uw": 10, "ux": 10, "Ux": 30, "UX": -10, "Uy": 10, "UY": -10, "uz": 30, "Uz": 30, "UZ": -10, "va": -10, "Va": -50, "VA": -55, "Vc": -30, "VC": -20, "Vd": -30, "Ve": -30, "VE": -20, "vf": 10, "VF": 10, "Vg": -30, "VG": -10, "vi": 10, "Vm": -10, "VM": -30, "Vn": -30, "VN": -10, "Vo": -30, "VO": -10, "Vp": -20, "VP": -20, "Vq": -30, "VQ": -10, "Vr": -20, "Vs": -30, "vt": 10, "VT": 20, "Vu": -30, "VU": -10, "vv": 20, "Vw": -30, "vx": 20, "VX": -20, "vy": 10, "VY": -10, "vz": 10, "VZ": -20, "WA": -20, "Wb": 20, "Wd": -10, "WD": 20, "We": 10, "Wf": 30, "WF": 20, "Wh": 30, "wi": 10, "Wi": 30, "WI": 10, "Wj": 40, "WJ": 20, "Wk": 20, "Wl": 40, "WL": 10, "Wm": 10, "WM": -10, "WS": 10, "Wt": 40, "WT": 30, "Wv": 30, "WV": 10, "wx": 10, "Wx": 20, "WX": -10, "Wy": 20, "WY": 10, "Wz": 30, "WZ": -10, "XA": -25, "XC": -20, "Xe": -10, "XE": -10, "xf": 10, "Xf": 10, "Xg": -10, "XG": -20, "xi": 10, "Xi": 10, "XI": -10, "Xj": 30, "xk": 10, "Xk": 10, "xl": 10, "Xl": 20, "Xm": 10, "XM": -25, "xn": -10, "XN": -10, "Xo": -10, "XO": -20, "xp": 10, "Xp": 10, "XP": -10, "xq": -10, "Xq": -40, "XQ": -25, "XS": -20, "xu": -5, "Xu": -30, "XU": -20, "xv": 10, "Xv": -20, "Xw": -30, "xx": 15, "Xx": 10, "XX": -30, "xy": -10, "Xy": -20, "XY": -20, "xz": 10, "Xz": 30, "ya": -10, "Ya": -70, "YA": -55, "Yc": -60, "YC": -30, "yd": -10, "Yd": -60, "YD": 10, "ye": 10, "Ye": -60, "YE": -30, "YF": 20, "Yg": -60, "YG": -30, "YH": -10, "YI": 10, "YJ": 10, "Ym": -30, "YM": -35, "yn": -10, "Yn": -60, "Yo": -60, "YO": -20, "Yp": -50, "YP": -10, "Yq": -60, "YQ": -10, "Yr": -60, "YR": -10, "Ys": -60, "YS": -10, "yt": 10, "YT": -15, "yu": -10, "Yu": -60, "yv": 10, "Yv": -20, "Yw": -50, "yx": 10, "Yx": -50, "YX": -30, "Yy": -40, "YY": -10, "Yz": -30, "YZ": -40, "Za": -20, "ZA": -20, "Zb": -10, "ZB": -10, "Zc": -10, "ZC": -20, "Zd": -30, "ZD": -10, "Ze": -40, "ZE": -20, "zf": 10, "Zg": -40, "ZG": -20, "zi": 10, "Zj": 10, "Zk": 10, "ZL": -10, "Zm": -10, "Zn": -50, "Zo": -30, "ZO": -30, "Zp": -10, "ZP": -10, "Zq": -50, "ZQ": -10, "Zr": -40, "ZR": -10, "Zs": -30, "ZS": -20, "zt": 10, "Zt": -10, "Zu": -30, "ZU": -10, "zv": 10, "Zv": -20, "Zw": -40, "ZW": -10, "zx": 10, "Zx": -10, "ZX": -10, "Zy": -30, "ZY": -20, "zz": 20, "Zz": 10, "ZZ": -10 }, "leading": 0, "w": { " ": 242, "_": 446, "-": 326, "\u2013": 446, "\u2014": 566, ",": 198, ";": 198, ":": 198, "!": 210, "?": 374, ".": 198, "\u2026": 594, "\xB7": 187, "'": 117, "\u2018": 117, "\u2019": 117, '"': 237, "\u201C": 267, "\u201D": 267, "(": 330, ")": 330, "[": 330, "]": 330, "{": 330, "}": 330, "@": 643, "*": 363, "/": 330, "\\": 330, "&": 564, "#": 559, "%": 600, "\u2022": 187, "`": 353, "^": 446, "\u2190": 1e3, "\u2192": 1e3, "\u2191": 722.66, "\u2193": 722.66, "+": 446, "\xD7": 446, "<": 446, "=": 446, ">": 446, "|": 330, "~": 446, "\u25E6": 608.4, "\u2610": 830.08, "\u2611": 830.08, "\u2713": 764.16, "$": 450, "0": 450, "1": 450, "2": 450, "3": 450, "4": 450, "5": 434, "6": 471, "7": 446, "8": 450, "9": 438, "a": 446, "A": 511, "b": 444, "B": 523, "c": 364, "C": 477, "d": 402, "D": 587, "e": 334, "E": 534, "\xE9": 325, "f": 300, "F": 466, "g": 364, "G": 494, "h": 473, "H": 574, "i": 196, "I": 409, "j": 213, "J": 315, "k": 374, "K": 508, "l": 178, "L": 426, "m": 569, "M": 729, "n": 459, "N": 619, "o": 362, "O": 505, "p": 378, "P": 468, "q": 377, "Q": 492, "r": 360, "R": 544, "s": 350, "S": 495, "t": 331, "T": 458, "u": 370, "U": 482, "v": 331, "V": 490, "w": 517, "W": 720, "x": 343, "X": 524, "y": 341, "Y": 504, "z": 315, "Z": 522 } }, "regular": { "ascent": 0.9600067138671875, "descent": 0.3000030517578125, "k": { "AC": -20, "AE": -10, "AG": -10, "AH": -10, "AI": 10, "Aj": 10, "AJ": 10, "AL": -10, "AM": 10, "An": -10, "AO": -20, "AP": -10, "Aq": -10, "AQ": -20, "Ar": -10, "As": -10, "AS": -35, "AT": -50, "Au": -10, "AU": -20, "av": -20, "Av": -5, "AV": -40, "aw": -10, "AW": -20, "Ax": 10, "AX": -10, "ay": -20, "Ay": -10, "AY": -65, "Az": 20, "AZ": -10, "ba": -10, "bc": -10, "BC": -20, "bd": -10, "Bf": 10, "BF": -20, "Bg": 10, "bh": -5, "Bi": 10, "BI": -10, "bj": -5, "Bj": 10, "BJ": -10, "Bk": 10, "Bl": 10, "Bm": 10, "BP": -10, "BR": -10, "BS": -20, "BT": -40, "bu": -10, "BU": -20, "BV": -50, "BW": -50, "bx": -10, "Bx": 10, "BX": -40, "by": -10, "BY": -65, "Bz": 40, "BZ": -30, "CA": -20, "Cc": -5, "CC": -10, "Cd": -10, "CE": -10, "CG": -10, "Cj": 10, "CJ": -10, "CK": -10, "cl": 10, "Cl": 5, "Cn": -5, "CO": -10, "CP": -10, "CQ": -20, "Cs": -10, "CS": -10, "Ct": 10, "CT": -20, "Cu": -10, "CU": -10, "Cv": -20, "CV": -20, "cw": -10, "Cw": -10, "CW": -20, "Cx": 20, "CX": -30, "cy": -5, "CY": -35, "Cz": 20, "CZ": -40, "DA": -10, "Db": 10, "Dc": 10, "De": 10, "Df": 20, "DF": -10, "Dg": 10, "Dh": 10, "Di": 15, "DI": -10, "Dj": 5, "DJ": -10, "Dk": 10, "Dl": 10, "Dm": 20, "DM": -5, "dn": -10, "Do": 10, "Dp": 10, "Dq": 10, "Dr": 10, "Ds": 10, "dt": 10, "Dt": 20, "DT": -40, "du": -10, "Dv": 30, "DV": -30, "Dw": 20, "DW": -10, "Dx": 20, "DX": -50, "Dy": 10, "DY": -50, "Dz": 30, "DZ": -30, "EC": -10, "ED": -10, "EG": -10, "EJ": -10, "el": 10, "EO": -10, "EQ": -20, "ES": -40, "ET": -10, "EU": -20, "Ev": -10, "EV": -25, "Ew": -10, "EW": -30, "Ex": 10, "EX": -40, "Ey": -10, "EY": -50, "Ez": 20, "EZ": -20, "fa": -10, "Fa": -30, "FA": -40, "Fc": -20, "FC": -10, "Fd": -20, "FD": 20, "Fe": -15, "ff": 10, "Ff": 10, "FF": 20, "Fg": -10, "fh": 10, "Fh": 20, "fi": 10, "Fi": 10, "FI": 10, "fj": 10, "Fj": 10, "FJ": 20, "Fk": 10, "fl": 20, "Fl": 20, "FL": 10, "fm": 10, "FM": -10, "Fn": -20, "FN": 10, "Fo": -20, "FO": 10, "Fp": -10, "FP": -10, "Fq": -10, "FQ": 10, "Fr": -10, "FS": 10, "ft": 40, "Ft": 10, "FT": -30, "Fu": -10, "fv": 10, "Fv": 10, "FV": 10, "FW": 10, "fy": 10, "FY": 10, "Fz": 10, "FZ": -10, "GA": -10, "Gf": 10, "Gh": 10, "gi": 10, "Gi": 10, "GI": -10, "Gj": 10, "GJ": -10, "Gk": 10, "Gl": 10, "Gm": 10, "GM": -10, "GN": 10, "GP": -20, "GS": -10, "Gt": 10, "GU": -10, "Gv": 10, "GV": -10, "GW": -20, "Gx": 10, "GX": -40, "gy": 10, "GY": -40, "Gz": 10, "GZ": -20, "Hb": 10, "hf": -10, "Hf": 10, "hg": -20, "Hh": 10, "Hi": 10, "Hj": 20, "Hk": 10, "Hl": 10, "Hm": 10, "hq": -10, "hs": -10, "Ht": 20, "hv": -30, "Hv": 10, "hw": -15, "Hx": 20, "hy": -30, "Hy": 10, "Hz": 20, "Ia": -10, "IA": 10, "Ib": 10, "Ic": -10, "Id": -10, "ID": 30, "Ie": -10, "if": 10, "If": 20, "IF": 40, "Ig": -10, "Ih": 30, "Ii": 20, "II": 30, "Ij": 30, "IJ": 40, "Ik": 20, "IK": 10, "Il": 20, "IL": 10, "IM": 30, "In": -10, "IN": 20, "Io": -10, "Ip": 10, "Iq": -20, "Ir": -10, "IR": 10, "Is": -10, "It": 10, "Iu": -10, "IU": 10, "iv": 10, "Iv": -20, "IV": 30, "Iw": -25, "IW": 20, "Ix": 10, "IX": 10, "Iy": -10, "IY": 30, "Iz": 20, "IZ": 20, "Ja": -10, "Jb": 10, "Jc": -10, "Jd": -10, "Je": -10, "Jf": 10, "Jh": 10, "Ji": 10, "JI": -10, "Jj": 20, "JJ": 10, "Jk": 10, "Jl": 20, "Jn": -10, "Jo": -10, "JO": -10, "Jp": 10, "JP": -10, "Jq": -10, "JQ": -10, "JR": -10, "jt": 10, "Jt": 20, "JT": 10, "ju": -10, "Ju": -20, "JU": -10, "jx": 10, "JX": -25, "jy": 10, "JY": -20, "jz": 10, "Jz": 10, "JZ": -20, "Ka": -40, "kc": 20, "Kc": -40, "KC": -10, "Kd": -40, "KD": 10, "ke": 10, "Ke": -40, "kf": 20, "Kf": 10, "KF": 20, "Kg": -40, "KG": -10, "kh": 10, "Kh": 10, "ki": 10, "Ki": 10, "Kj": 40, "KJ": 20, "kk": 20, "Kk": 10, "kl": 20, "Kl": 10, "km": 10, "KM": 20, "Kn": -40, "ko": 10, "Ko": -50, "KO": -10, "Kp": 10, "Kq": -50, "kr": 10, "Ks": -40, "kt": 10, "Kt": 10, "KT": -10, "ku": 10, "Ku": -60, "kv": 10, "Kv": -30, "Kw": -40, "Kx": -10, "KX": -10, "ky": -10, "Ky": -30, "kz": 10, "Lb": -10, "LC": -20, "LE": -20, "Lf": 10, "Lg": -10, "LG": -20, "Lh": -10, "Li": 10, "LI": -40, "Lj": 20, "Lk": 10, "ll": 10, "Ll": 10, "LL": -20, "Ln": -20, "LO": -25, "Lp": 10, "Lq": -40, "LQ": -30, "Ls": -10, "LS": -65, "lt": 10, "Lt": -10, "LT": -70, "Lu": -40, "LU": -45, "Lv": -60, "LV": -70, "Lw": -40, "LW": -40, "Lx": 10, "Ly": -20, "LY": -90, "lz": 20, "Lz": 30, "LZ": -10, "Mb": 10, "md": 10, "Mf": 10, "Mh": 10, "Mi": 10, "MJ": 10, "Mk": 10, "Ml": 10, "mo": 20, "Mp": 10, "MP": -10, "Mq": -10, "MQ": -10, "MS": -20, "Mt": 20, "MT": -30, "Mu": -10, "MU": -20, "mv": -15, "Mv": 10, "MV": -20, "mw": -10, "MW": -30, "Mx": 10, "MX": -10, "my": -10, "My": -10, "MY": -50, "Mz": 10, "MZ": -10, "nb": -15, "Nb": 10, "Ne": 10, "Nf": 10, "Ng": 10, "Nh": 10, "Ni": 20, "Nj": 20, "Nk": 20, "Nl": 20, "Nm": 10, "Nq": 10, "ns": -5, "nt": -10, "Nt": 20, "nu": -10, "nv": -20, "Nv": 30, "nw": -20, "NW": -10, "Nx": 30, "NX": -20, "ny": -20, "Ny": 10, "NY": -20, "Nz": 40, "NZ": -10, "OA": -10, "OD": -10, "Of": 20, "Og": 20, "Oh": 10, "Oi": 20, "OI": -10, "oj": -5, "Oj": 20, "Ok": 10, "Ol": 20, "OL": 10, "Om": 20, "Oo": 10, "Op": 10, "Oq": 10, "OQ": 10, "Os": 10, "Ot": 20, "OT": -10, "ou": -10, "ov": 5, "Ov": 30, "OV": -10, "ow": -10, "Ow": 10, "OW": -10, "Ox": 30, "OX": -40, "oy": -10, "Oy": 20, "OY": -40, "Oz": 30, "OZ": -20, "Pa": -40, "PA": -40, "Pc": -30, "Pd": -40, "PD": -10, "Pe": -20, "Pf": 10, "Pg": -10, "Ph": 10, "Pi": 10, "PI": -10, "Pj": 20, "PJ": -10, "Pk": 10, "Pl": 10, "Pm": 10, "PM": -30, "pn": -10, "Pn": -10, "PN": -10, "Po": -30, "Pq": -30, "Ps": -20, "PS": 10, "Pt": 20, "pu": -10, "Pu": -30, "Pv": 10, "Px": 10, "PX": -35, "py": -10, "PY": -20, "Pz": 10, "PZ": -50, "Qb": 10, "Qf": 20, "Qg": 20, "qh": -10, "Qh": 10, "Qi": 20, "qj": 10, "Qj": 90, "QJ": 80, "Qk": 10, "Ql": 20, "Qm": 20, "qn": -10, "qo": -10, "Qp": 20, "Qt": 30, "QT": -10, "qu": -10, "Qv": 20, "QV": -10, "QW": -10, "Qx": 20, "QX": -20, "Qy": 50, "QY": -30, "Qz": 40, "QZ": -10, "ra": -5, "Ra": -10, "RA": -25, "RB": -10, "Rc": -10, "RC": -20, "Rd": -10, "RD": 10, "Re": -10, "RE": -20, "Rf": 20, "RF": 10, "Rg": -10, "RG": -10, "ri": 5, "RI": -10, "Rj": 30, "RJ": 30, "RL": -10, "RM": -20, "Rn": -10, "RN": 10, "Ro": -10, "RO": -10, "Rp": 20, "Rq": -30, "RQ": -10, "Rr": -10, "Rs": -10, "Rt": 10, "RT": -10, "Ru": -30, "RU": -20, "rv": 20, "RV": -10, "Rw": -10, "RW": -10, "Rx": 10, "RX": -20, "Ry": 10, "RY": -30, "Rz": 20, "RZ": -45, "Sa": -10, "Sb": 10, "Sc": -20, "Sd": -25, "SD": 20, "Se": -20, "SE": -10, "sf": 10, "Sf": 20, "SF": 30, "Sg": -20, "Sh": 20, "Si": 20, "SI": 10, "Sj": 30, "SJ": 30, "Sk": 10, "Sl": 20, "SL": 20, "Sn": -20, "SN": 10, "So": -10, "SO": 10, "Sq": -20, "Sr": -10, "Ss": -10, "st": 10, "St": 20, "Su": -20, "sv": 20, "Sv": -50, "SV": 20, "Sw": -30, "SW": 10, "sx": 15, "Sx": 10, "Sy": -15, "SY": 10, "sz": 20, "Sz": 20, "SZ": -10, "Ta": -90, "TA": -50, "Tc": -80, "TC": -10, "Td": -110, "TD": 10, "Te": -90, "TE": -10, "Tf": 20, "TF": 30, "Tg": -80, "TG": -10, "Th": 20, "ti": 5, "TI": 10, "Tj": 20, "Tk": 10, "Tl": 20, "Tm": -50, "TM": -30, "Tn": -90, "To": -90, "Tp": -80, "Tq": -120, "Tr": -80, "Ts": -80, "Tt": 10, "TT": -30, "Tu": -90, "tv": 10, "Tv": -70, "TV": 10, "Tw": -100, "tx": 20, "Tx": -60, "TX": -10, "Ty": -50, "tz": 30, "Tz": -40, "TZ": -10, "ub": -10, "Ub": 20, "UE": 10, "uf": 10, "Uf": 30, "UF": 10, "Ug": 10, "Uh": 30, "ui": 10, "Ui": 30, "Uj": 40, "uk": 10, "Uk": 20, "ul": 10, "Ul": 30, "Um": 30, "Up": 10, "UQ": 30, "Ur": 10, "UR": 10, "Us": 10, "Ut": 50, "UT": 20, "Uu": 10, "UU": 10, "Uv": 50, "UV": 10, "Uw": 10, "ux": 10, "Ux": 30, "UX": -10, "Uy": 10, "UY": -10, "uz": 30, "Uz": 30, "UZ": -10, "va": -10, "Va": -50, "VA": -55, "Vc": -30, "VC": -20, "Vd": -30, "Ve": -30, "VE": -20, "vf": 10, "VF": 10, "Vg": -30, "VG": -10, "vi": 10, "Vm": -10, "VM": -30, "Vn": -30, "VN": -10, "Vo": -30, "VO": -10, "Vp": -20, "VP": -20, "Vq": -30, "VQ": -10, "Vr": -20, "Vs": -30, "vt": 10, "VT": 20, "Vu": -30, "VU": -10, "vv": 20, "Vw": -30, "vx": 20, "VX": -20, "vy": 10, "VY": -10, "vz": 10, "VZ": -20, "WA": -20, "Wb": 20, "Wd": -10, "WD": 20, "We": 10, "Wf": 30, "WF": 20, "Wh": 30, "wi": 10, "Wi": 30, "WI": 10, "Wj": 40, "WJ": 20, "Wk": 20, "Wl": 40, "WL": 10, "Wm": 10, "WM": -10, "WS": 10, "Wt": 40, "WT": 30, "Wv": 30, "WV": 10, "wx": 10, "Wx": 20, "WX": -10, "Wy": 20, "WY": 10, "Wz": 30, "WZ": -10, "XA": -25, "XC": -20, "Xe": -10, "XE": -10, "xf": 10, "Xf": 10, "Xg": -10, "XG": -20, "xi": 10, "Xi": 10, "XI": -10, "Xj": 30, "xk": 10, "Xk": 10, "xl": 10, "Xl": 20, "Xm": 10, "XM": -25, "xn": -10, "XN": -10, "Xo": -10, "XO": -20, "xp": 10, "Xp": 10, "XP": -10, "xq": -10, "Xq": -40, "XQ": -25, "XS": -20, "xu": -5, "Xu": -30, "XU": -20, "xv": 10, "Xv": -20, "Xw": -30, "xx": 15, "Xx": 10, "XX": -30, "xy": -10, "Xy": -20, "XY": -20, "xz": 10, "Xz": 30, "ya": -10, "Ya": -70, "YA": -55, "Yc": -60, "YC": -30, "yd": -10, "Yd": -60, "YD": 10, "ye": 10, "Ye": -60, "YE": -30, "YF": 20, "Yg": -60, "YG": -30, "YH": -10, "YI": 10, "YJ": 10, "Ym": -30, "YM": -35, "yn": -10, "Yn": -60, "Yo": -60, "YO": -20, "Yp": -50, "YP": -10, "Yq": -60, "YQ": -10, "Yr": -60, "YR": -10, "Ys": -60, "YS": -10, "yt": 10, "YT": -15, "yu": -10, "Yu": -60, "yv": 10, "Yv": -20, "Yw": -50, "yx": 10, "Yx": -50, "YX": -30, "Yy": -40, "YY": -10, "Yz": -30, "YZ": -40, "Za": -20, "ZA": -20, "Zb": -10, "ZB": -10, "Zc": -10, "ZC": -20, "Zd": -30, "ZD": -10, "Ze": -40, "ZE": -20, "zf": 10, "Zg": -40, "ZG": -20, "zi": 10, "Zj": 10, "Zk": 10, "ZL": -10, "Zm": -10, "Zn": -50, "Zo": -30, "ZO": -30, "Zp": -10, "ZP": -10, "Zq": -50, "ZQ": -10, "Zr": -40, "ZR": -10, "Zs": -30, "ZS": -20, "zt": 10, "Zt": -10, "Zu": -30, "ZU": -10, "zv": 10, "Zv": -20, "Zw": -40, "ZW": -10, "zx": 10, "Zx": -10, "ZX": -10, "Zy": -30, "ZY": -20, "zz": 20, "Zz": 10, "ZZ": -10 }, "leading": 0, "w": { " ": 242, "_": 446, "-": 326, "\u2013": 446, "\u2014": 566, ",": 198, ";": 198, ":": 198, "!": 210, "?": 374, ".": 198, "\u2026": 594, "\xB7": 187, "'": 117, "\u2018": 117, "\u2019": 117, '"': 237, "\u201C": 267, "\u201D": 267, "(": 330, ")": 330, "[": 330, "]": 330, "{": 330, "}": 330, "@": 643, "*": 363, "/": 330, "\\": 330, "&": 564, "#": 559, "%": 600, "\u2022": 187, "`": 353, "^": 446, "\u2190": 1e3, "\u2192": 1e3, "\u2191": 645.02, "\u2193": 645.02, "+": 446, "\xD7": 446, "<": 446, "=": 446, ">": 446, "|": 330, "~": 446, "\u25E6": 578.13, "\u2610": 830.08, "\u2611": 830.08, "\u2713": 764.16, "$": 450, "0": 450, "1": 450, "2": 450, "3": 450, "4": 450, "5": 450, "6": 450, "7": 450, "8": 450, "9": 450, "a": 437, "A": 502, "b": 435, "B": 520, "c": 355, "C": 472, "d": 393, "D": 578, "e": 325, "E": 529, "\xE9": 325, "f": 291, "F": 454, "g": 355, "G": 487, "h": 464, "H": 563, "i": 187, "I": 400, "j": 204, "J": 306, "k": 365, "K": 498, "l": 169, "L": 426, "m": 560, "M": 720, "n": 450, "N": 599, "o": 353, "O": 496, "p": 378, "P": 464, "q": 377, "Q": 502, "r": 360, "R": 537, "s": 341, "S": 486, "t": 331, "T": 458, "u": 370, "U": 482, "v": 331, "V": 490, "w": 517, "W": 720, "x": 343, "X": 524, "y": 341, "Y": 504, "z": 315, "Z": 522 } } }, "fallback": { "\u2190": [0.966796875, 0.2109375, 0], "\u2192": [0.966796875, 0.2109375, 0], "\u2191": [0.966796875, 0.2109375, 0], "\u2193": [0.966796875, 0.2109375, 0], "\u25E6": [0.966796875, 0.2109375, 0], "\u2610": [0.66650390625, 0.25, 0.08349609375], "\u2611": [0.66650390625, 0.25, 0.08349609375], "\u2713": [0.966796875, 0.2109375, 0] } }, "Helvetica Neue": { "faces": { "bold": { "ascent": 0.975006103515625, "descent": 0.2169952392578125, "k": { "\u2018\u2018": -95, "\u2019\u2019": -95, "\u2019s": -74, "\u2019t": -18, "A\u2019": -74, "AT": -92, "Av": -18, "AV": -46, "Aw": -18, "AW": -24, "Ay": -18, "AY": -74, "F,": -157, "F.": -157, "f\u2019": 18, "FA": -55, "ff": -30, "fi": 20, "fl": 20, "L\u2019": -74, "LT": -92, "LV": -92, "LW": -55, "Ly": -37, "LY": -111, "P,": -179, "P.": -179, "PA": -74, "r-": -55, "r,": -92, "r.": -92, "rc": -18, "rd": -18, "re": -18, "rg": -28, "rn": 18, "ro": -18, "rq": -18, "RT": -18, "RV": -18, "RW": -18, "RY": -37, "T-": -129, "T,": -111, "T;": -111, "T:": -111, "T.": -111, "Ta": -111, "TA": -92, "Tc": -111, "Te": -111, "To": -111, "Tr": -92, "Ts": -111, "Tu": -92, "Tw": -111, "Ty": -111, "V-": -55, "v,": -74, "V,": -129, "V;": -46, "V:": -46, "v.": -74, "V.": -129, "Va": -55, "VA": -46, "Ve": -55, "Vi": -18, "Vo": -55, "Vr": -37, "Vu": -37, "Vy": -18, "w,": -55, "W,": -74, "W;": -18, "W:": -18, "w.": -55, "W.": -74, "Wa": -37, "WA": -24, "We": -57, "Wo": -57, "Wr": -18, "Wu": -18, "Y-": -111, "y,": -74, "Y,": -139, "Y;": -92, "Y:": -92, "y.": -74, "Y.": -139, "Ya": -92, "YA": -74, "Ye": -111, "Yi": -37, "Yo": -111, "Yp": -74, "Yq": -92, "Yu": -74, "Yv": -55 }, "leading": 0.0290069580078125, "w": { " ": 278, "_": 500, "-": 407, "\u2013": 500, "\u2014": 1e3, ",": 278, ";": 278, ":": 278, "!": 278, "?": 556, ".": 278, "\u2026": 1e3, "\xB7": 278, "'": 278, "\u2018": 278, "\u2019": 278, '"': 463, "\u201C": 463, "\u201D": 463, "(": 296, ")": 296, "[": 333, "]": 333, "{": 333, "}": 333, "@": 800, "*": 407, "/": 371, "\\": 371, "&": 685, "#": 556, "%": 1e3, "\u2022": 350, "`": 259, "^": 600, "\u2190": 1e3, "\u2192": 1e3, "\u2191": 722.66, "\u2193": 722.66, "+": 600, "\xD7": 600, "<": 600, "=": 600, ">": 600, "|": 223, "~": 600, "\u25E6": 608.4, "\u2610": 830.08, "\u2611": 830.08, "\u2713": 764.16, "$": 556, "0": 556, "1": 556, "2": 556, "3": 556, "4": 556, "5": 556, "6": 556, "7": 556, "8": 556, "9": 556, "a": 574, "A": 685, "b": 611, "B": 704, "c": 574, "C": 741, "d": 611, "D": 741, "e": 574, "E": 648, "\xE9": 574, "f": 333, "F": 593, "g": 611, "G": 759, "h": 593, "H": 741, "i": 258, "I": 295, "j": 278, "J": 556, "k": 574, "K": 722, "l": 258, "L": 593, "m": 906, "M": 907, "n": 593, "N": 741, "o": 611, "O": 778, "p": 611, "P": 667, "q": 611, "Q": 778, "r": 389, "R": 722, "s": 537, "S": 649, "t": 352, "T": 611, "u": 593, "U": 741, "v": 520, "V": 630, "w": 814, "W": 944, "x": 537, "X": 667, "y": 519, "Y": 667, "z": 519, "Z": 648 } }, "boldItalic": { "ascent": 0.975006103515625, "descent": 0.2169952392578125, "k": { "\u2018\u2018": -95, "\u2019\u2019": -95, "\u2019s": -74, "\u2019t": -18, "A\u2019": -74, "AT": -92, "Av": -18, "AV": -46, "Aw": -18, "AW": -24, "Ay": -18, "AY": -74, "F,": -157, "F.": -157, "f\u2019": 18, "FA": -55, "ff": -68, "L\u2019": -74, "LT": -92, "LV": -92, "LW": -55, "Ly": -37, "LY": -111, "P,": -179, "P.": -179, "PA": -74, "r-": -55, "r,": -92, "r.": -92, "rc": -18, "rd": -18, "re": -18, "rg": -28, "rn": 18, "ro": -18, "rq": -18, "RT": -18, "RV": -18, "RW": -18, "RY": -37, "T-": -129, "T,": -111, "T;": -111, "T:": -111, "T.": -111, "Ta": -111, "TA": -92, "Tc": -111, "Te": -111, "To": -111, "Tr": -92, "Ts": -111, "Tu": -92, "Tw": -111, "Ty": -111, "V-": -55, "v,": -74, "V,": -129, "V;": -46, "V:": -46, "v.": -74, "V.": -129, "Va": -55, "VA": -46, "Ve": -55, "Vi": -18, "Vo": -55, "Vr": -37, "Vu": -37, "Vy": -18, "w,": -55, "W,": -74, "W;": -18, "W:": -18, "w.": -55, "W.": -74, "Wa": -37, "WA": -24, "We": -57, "Wo": -57, "Wr": -18, "Wu": -18, "Y-": -111, "y,": -74, "Y,": -139, "Y;": -92, "Y:": -92, "y.": -74, "Y.": -139, "Ya": -92, "YA": -74, "Ye": -111, "Yi": -37, "Yo": -111, "Yp": -74, "Yq": -92, "Yu": -74, "Yv": -55 }, "leading": 0.0290069580078125, "w": { " ": 278, "_": 500, "-": 407, "\u2013": 500, "\u2014": 1e3, ",": 278, ";": 278, ":": 278, "!": 296, "?": 574, ".": 278, "\u2026": 1e3, "\xB7": 278, "'": 278, "\u2018": 278, "\u2019": 278, '"': 481, "\u201C": 481, "\u201D": 481, "(": 296, ")": 296, "[": 333, "]": 333, "{": 333, "}": 333, "@": 800, "*": 407, "/": 389, "\\": 389, "&": 685, "#": 556, "%": 963, "\u2022": 350, "`": 259, "^": 600, "\u2190": 1e3, "\u2192": 1e3, "\u2191": 722.66, "\u2193": 722.66, "+": 600, "\xD7": 600, "<": 600, "=": 600, ">": 600, "|": 222, "~": 600, "\u25E6": 608.4, "\u2610": 830.08, "\u2611": 830.08, "\u2713": 764.16, "$": 556, "0": 556, "1": 556, "2": 556, "3": 556, "4": 556, "5": 556, "6": 556, "7": 556, "8": 556, "9": 556, "a": 574, "A": 685, "b": 611, "B": 722, "c": 556, "C": 741, "d": 611, "D": 741, "e": 574, "E": 667, "\xE9": 574, "f": 352, "F": 593, "g": 611, "G": 759, "h": 611, "H": 741, "i": 259, "I": 296, "j": 259, "J": 556, "k": 556, "K": 722, "l": 259, "L": 574, "m": 907, "M": 907, "n": 611, "N": 741, "o": 593, "O": 778, "p": 611, "P": 667, "q": 611, "Q": 778, "r": 389, "R": 722, "s": 519, "S": 648, "t": 370, "T": 611, "u": 611, "U": 741, "v": 519, "V": 630, "w": 815, "W": 944, "x": 519, "X": 667, "y": 519, "Y": 648, "z": 500, "Z": 648 } }, "italic": { "ascent": 0.957000732421875, "descent": 0.2129974365234375, "k": { "\u2018\u2018": -95, "\u2019\u2019": -95, "\u2019s": -74, "\u2019t": -18, "A\u2019": -74, "AT": -92, "Av": -18, "AV": -46, "Aw": -18, "AW": -24, "Ay": -18, "AY": -74, "F,": -157, "F.": -157, "f\u2019": 18, "FA": -55, "ff": -15, "fi": 1, "fl": 1, "L\u2019": -74, "LT": -92, "LV": -92, "LW": -55, "Ly": -37, "LY": -111, "P,": -179, "P.": -179, "PA": -74, "r-": -55, "r,": -92, "r.": -92, "rc": -18, "rd": -18, "re": -18, "rg": -28, "rn": 18, "ro": -18, "rq": -18, "RT": -18, "RV": -18, "RW": -18, "RY": -37, "T-": -129, "T,": -111, "T;": -111, "T:": -111, "T.": -111, "Ta": -111, "TA": -92, "Tc": -111, "Te": -111, "To": -111, "Tr": -92, "Ts": -111, "Tu": -92, "Tw": -111, "Ty": -111, "V-": -55, "v,": -74, "V,": -129, "V;": -46, "V:": -46, "v.": -74, "V.": -129, "Va": -55, "VA": -46, "Ve": -55, "Vi": -18, "Vo": -55, "Vr": -37, "Vu": -37, "Vy": -18, "w,": -55, "W,": -74, "W;": -18, "W:": -18, "w.": -55, "W.": -74, "Wa": -37, "WA": -24, "We": -57, "Wo": -57, "Wr": -18, "Wu": -18, "Y-": -111, "y,": -74, "Y,": -139, "Y;": -92, "Y:": -92, "y.": -74, "Y.": -139, "Ya": -92, "YA": -74, "Ye": -111, "Yi": -37, "Yo": -111, "Yp": -74, "Yq": -92, "Yu": -74, "Yv": -55 }, "leading": 0.0279998779296875, "w": { " ": 278, "_": 500, "-": 389, "\u2013": 500, "\u2014": 1e3, ",": 278, ";": 278, ":": 278, "!": 259, "?": 556, ".": 278, "\u2026": 1e3, "\xB7": 278, "'": 278, "\u2018": 278, "\u2019": 278, '"': 426, "\u201C": 426, "\u201D": 426, "(": 259, ")": 259, "[": 259, "]": 259, "{": 333, "}": 333, "@": 800, "*": 352, "/": 333, "\\": 333, "&": 630, "#": 556, "%": 926, "\u2022": 500, "`": 222, "^": 600, "\u2190": 1e3, "\u2192": 1e3, "\u2191": 645.02, "\u2193": 645.02, "+": 600, "\xD7": 600, "<": 600, "=": 600, ">": 600, "|": 222, "~": 600, "\u25E6": 578.13, "\u2610": 830.08, "\u2611": 830.08, "\u2713": 764.16, "$": 556, "0": 556, "1": 556, "2": 556, "3": 556, "4": 556, "5": 556, "6": 556, "7": 556, "8": 556, "9": 556, "a": 519, "A": 667, "b": 593, "B": 685, "c": 537, "C": 722, "d": 593, "D": 704, "e": 537, "E": 611, "\xE9": 537, "f": 296, "F": 574, "g": 574, "G": 759, "h": 556, "H": 722, "i": 222, "I": 259, "j": 222, "J": 519, "k": 481, "K": 667, "l": 222, "L": 556, "m": 852, "M": 870, "n": 556, "N": 722, "o": 574, "O": 759, "p": 593, "P": 648, "q": 593, "Q": 759, "r": 333, "R": 685, "s": 481, "S": 648, "t": 315, "T": 574, "u": 556, "U": 722, "v": 481, "V": 611, "w": 759, "W": 926, "x": 481, "X": 611, "y": 481, "Y": 611, "z": 444, "Z": 611 } }, "regular": { "ascent": 0.951995849609375, "descent": 0.2129974365234375, "k": { "\u2018\u2018": -95, "\u2019\u2019": -95, "\u2019s": -74, "\u2019t": -18, "A\u2019": -74, "AT": -92, "Av": -18, "AV": -46, "Aw": -18, "AW": -24, "Ay": -18, "AY": -74, "F,": -157, "F.": -157, "f\u2019": 18, "FA": -55, "ff": -15, "L\u2019": -74, "LT": -92, "LV": -92, "LW": -55, "Ly": -37, "LY": -111, "P,": -179, "P.": -179, "PA": -74, "r-": -55, "r,": -92, "r.": -92, "rc": -18, "rd": -18, "re": -18, "rg": -28, "rn": 18, "ro": -18, "rq": -18, "RT": -18, "RV": -18, "RW": -18, "RY": -37, "T-": -129, "T,": -111, "T;": -111, "T:": -111, "T.": -111, "Ta": -111, "TA": -92, "Tc": -111, "Te": -111, "To": -111, "Tr": -92, "Ts": -111, "Tu": -92, "Tw": -111, "Ty": -111, "V-": -55, "v,": -74, "V,": -129, "V;": -46, "V:": -46, "v.": -74, "V.": -129, "Va": -55, "VA": -46, "Ve": -55, "Vi": -18, "Vo": -55, "Vr": -37, "Vu": -37, "Vy": -18, "w,": -55, "W,": -74, "W;": -18, "W:": -18, "w.": -55, "W.": -74, "Wa": -37, "WA": -24, "We": -57, "Wo": -57, "Wr": -18, "Wu": -18, "Y-": -111, "y,": -74, "Y,": -139, "Y;": -92, "Y:": -92, "y.": -74, "Y.": -139, "Ya": -92, "YA": -74, "Ye": -111, "Yi": -37, "Yo": -111, "Yp": -74, "Yq": -92, "Yu": -74, "Yv": -55 }, "leading": 0.0279998779296875, "w": { " ": 278, "_": 500, "-": 389, "\u2013": 500, "\u2014": 1e3, ",": 278, ";": 278, ":": 278, "!": 259, "?": 556, ".": 278, "\u2026": 1e3, "\xB7": 278, "'": 278, "\u2018": 278, "\u2019": 278, '"': 426, "\u201C": 426, "\u201D": 426, "(": 259, ")": 259, "[": 259, "]": 259, "{": 333, "}": 333, "@": 800, "*": 352, "/": 333, "\\": 333, "&": 630, "#": 556, "%": 1e3, "\u2022": 350, "`": 222, "^": 600, "\u2190": 1e3, "\u2192": 1e3, "\u2191": 645.02, "\u2193": 645.02, "+": 600, "\xD7": 600, "<": 600, "=": 600, ">": 600, "|": 222, "~": 600, "\u25E6": 578.13, "\u2610": 830.08, "\u2611": 830.08, "\u2713": 764.16, "$": 556, "0": 556, "1": 556, "2": 556, "3": 556, "4": 556, "5": 556, "6": 556, "7": 556, "8": 556, "9": 556, "a": 537, "A": 648, "b": 593, "B": 685, "c": 537, "C": 722, "d": 593, "D": 704, "e": 537, "E": 611, "\xE9": 537, "f": 296, "F": 574, "g": 574, "G": 759, "h": 556, "H": 722, "i": 222, "I": 259, "j": 222, "J": 519, "k": 519, "K": 667, "l": 222, "L": 556, "m": 853, "M": 871, "n": 556, "N": 722, "o": 574, "O": 760, "p": 593, "P": 648, "q": 593, "Q": 760, "r": 333, "R": 685, "s": 500, "S": 648, "t": 315, "T": 574, "u": 556, "U": 722, "v": 500, "V": 611, "w": 758, "W": 926, "x": 518, "X": 611, "y": 500, "Y": 648, "z": 480, "Z": 611 } } }, "fallback": { "\u2190": [0.966796875, 0.2109375, 0], "\u2192": [0.966796875, 0.2109375, 0], "\u2191": [0.966796875, 0.2109375, 0], "\u2193": [0.966796875, 0.2109375, 0], "\u25E6": [0.966796875, 0.2109375, 0], "\u2610": [0.66650390625, 0.25, 0.08349609375], "\u2611": [0.66650390625, 0.25, 0.08349609375], "\u2713": [0.966796875, 0.2109375, 0] } }, "Patrick Hand": { "faces": { "regular": { "ascent": 1.0420074462890625, "descent": 0.3119964599609375, "k": {}, "leading": 0, "w": { " ": 230, "_": 571, "-": 404, "\u2013": 420, "\u2014": 648, ",": 202, ";": 232, ":": 232, "!": 247, "?": 368, ".": 214, "\u2026": 571, "\xB7": 200, "'": 164, "\u2018": 190, "\u2019": 220, '"': 303, "\u201C": 315, "\u201D": 303, "(": 334, ")": 364, "[": 303, "]": 296, "{": 339, "}": 328, "@": 550, "*": 404, "/": 423, "\\": 420, "&": 530, "#": 457, "%": 643, "\u2022": 352, "`": 220, "^": 370, "\u2190": 1e3, "\u2192": 1e3, "\u2191": 645.02, "\u2193": 645.02, "+": 480, "\xD7": 490, "<": 396, "=": 572, ">": 400, "|": 176, "~": 529, "\u25E6": 578.13, "\u2610": 830.08, "\u2611": 830.08, "\u2713": 764.16, "$": 507, "0": 448, "1": 363, "2": 468, "3": 448, "4": 375, "5": 423, "6": 399, "7": 495, "8": 433, "9": 367, "a": 392, "A": 488, "b": 412, "B": 507, "c": 388, "C": 548, "d": 390, "D": 475, "e": 398, "E": 442, "\xE9": 398, "f": 359, "F": 375, "g": 445, "G": 480, "h": 420, "H": 468, "i": 224, "I": 235, "j": 235, "J": 370, "k": 415, "K": 523, "l": 266, "L": 372, "m": 680, "M": 595, "n": 452, "N": 532, "o": 403, "O": 556, "p": 428, "P": 481, "q": 463, "Q": 655, "r": 385, "R": 454, "s": 385, "S": 459, "t": 344, "T": 468, "u": 400, "U": 550, "v": 400, "V": 562, "w": 463, "W": 616, "x": 448, "X": 601, "y": 423, "Y": 442, "z": 428, "Z": 507 } } }, "fallback": { "\u2190": [0.966796875, 0.2109375, 0], "\u2192": [0.966796875, 0.2109375, 0], "\u2191": [0.966796875, 0.2109375, 0], "\u2193": [0.966796875, 0.2109375, 0], "\u25E6": [0.966796875, 0.2109375, 0], "\u2610": [0.66650390625, 0.25, 0.08349609375], "\u2611": [0.66650390625, 0.25, 0.08349609375], "\u2713": [0.966796875, 0.2109375, 0] } } };
|
|
13
|
+
|
|
14
|
+
// src/text.ts
|
|
15
|
+
var DEFAULT_FAMILY = "Helvetica Neue";
|
|
16
|
+
var BUNDLED_FONTS = Object.keys(families).filter((f) => f !== DEFAULT_FAMILY).sort();
|
|
17
|
+
function bundledFamily(font) {
|
|
18
|
+
if (!font) return null;
|
|
19
|
+
const lower = font.toLowerCase();
|
|
20
|
+
return BUNDLED_FONTS.find((f) => f.toLowerCase() === lower) ?? null;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/fonts.ts
|
|
24
|
+
var FACES = ["bold", "boldItalic", "italic", "regular"];
|
|
25
|
+
function fontFile(family, face) {
|
|
26
|
+
return `${family.toLowerCase().replaceAll(" ", "-")}-${face}.woff2`;
|
|
27
|
+
}
|
|
28
|
+
function fontFaces(family) {
|
|
29
|
+
return FACES.filter((f) => families[family]?.faces[f] !== void 0);
|
|
30
|
+
}
|
|
31
|
+
function usedFonts(page) {
|
|
32
|
+
const used = /* @__PURE__ */ new Set();
|
|
33
|
+
const add = (es) => {
|
|
34
|
+
for (const e of es) {
|
|
35
|
+
const b = bundledFamily(e.style.font);
|
|
36
|
+
if (b) used.add(b);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
add(page.elements);
|
|
40
|
+
for (const s of page.symbols ?? []) add(s.elements);
|
|
41
|
+
return BUNDLED_FONTS.filter((f) => used.has(f));
|
|
42
|
+
}
|
|
43
|
+
function defaultBase() {
|
|
44
|
+
try {
|
|
45
|
+
const script = typeof document === "undefined" ? null : document.currentScript;
|
|
46
|
+
if (script?.src) return new URL("fonts/", script.src).href;
|
|
47
|
+
const here = import.meta.url;
|
|
48
|
+
return here ? new URL("fonts/", here).href : null;
|
|
49
|
+
} catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
var base = defaultBase();
|
|
54
|
+
|
|
11
55
|
// src/model.ts
|
|
12
56
|
var SUPPORTED_VERSION = 2;
|
|
13
57
|
var KINDS = ["rectangle", "ellipse", "diamond", "text", "connector", "freehand", "path", "note", "image", "symbol"];
|
|
@@ -18,7 +62,7 @@ var KNOWN_FIELDS = {
|
|
|
18
62
|
symbol: ["id", "name", "width", "height", "layers", "elements", "timeline", "button", "params"],
|
|
19
63
|
layer: ["id", "name", "visible", "locked"],
|
|
20
64
|
rgba: ["r", "g", "b", "a"],
|
|
21
|
-
style: ["stroke", "fill", "fillStyle", "strokeWidth", "dash", "roughness", "bowing", "fontSize", "gridSize", "opacity", "dashOffset"],
|
|
65
|
+
style: ["stroke", "fill", "fillStyle", "strokeWidth", "dash", "roughness", "bowing", "fontSize", "font", "gridSize", "opacity", "dashOffset", "textColor"],
|
|
22
66
|
element: [
|
|
23
67
|
"id",
|
|
24
68
|
"kind",
|
|
@@ -59,7 +103,8 @@ var KNOWN_FIELDS = {
|
|
|
59
103
|
extensionRef: ["id", "shape", "version", "params"],
|
|
60
104
|
normalizedPoint: ["x", "y"],
|
|
61
105
|
normalizedRect: ["x", "y", "width", "height"],
|
|
62
|
-
connector: ["start", "end", "routing", "startHead", "endHead"],
|
|
106
|
+
connector: ["start", "end", "routing", "startHead", "endHead", "waypoints", "hops"],
|
|
107
|
+
waypoint: ["x", "y"],
|
|
63
108
|
timeline: ["fps", "duration", "boil", "settle", "poster", "tracks", "camera", "markers"],
|
|
64
109
|
track: ["element", "keys", "boil", "follow", "repeats", "march"],
|
|
65
110
|
keyframe: ["t", "x", "y", "width", "height", "rotation", "strokeWidth", "stroke", "fill", "visible", "reveal", "opacity", "ease"],
|
|
@@ -133,9 +178,11 @@ var Reader = class {
|
|
|
133
178
|
roughness: num(s.roughness) ?? 1,
|
|
134
179
|
bowing: num(s.bowing) ?? 1,
|
|
135
180
|
fontSize: num(s.fontSize) ?? 18,
|
|
181
|
+
font: str(s.font) || null,
|
|
136
182
|
gridSize: num(s.gridSize) ?? null,
|
|
137
183
|
opacity: num(s.opacity) ?? null,
|
|
138
|
-
dashOffset: num(s.dashOffset) ?? null
|
|
184
|
+
dashOffset: num(s.dashOffset) ?? null,
|
|
185
|
+
textColor: rgba(s.textColor) ?? null
|
|
139
186
|
};
|
|
140
187
|
}
|
|
141
188
|
endpoint(v) {
|
|
@@ -163,7 +210,12 @@ var Reader = class {
|
|
|
163
210
|
end: this.endpoint(v.end),
|
|
164
211
|
routing: routing && ["straight", "curved", "elbow"].includes(routing) ? routing : "straight",
|
|
165
212
|
startHead: head(v.startHead, "none"),
|
|
166
|
-
endHead: head(v.endHead, "arrow")
|
|
213
|
+
endHead: head(v.endHead, "arrow"),
|
|
214
|
+
waypoints: Array.isArray(v.waypoints) ? v.waypoints.filter(isObj).map((w) => {
|
|
215
|
+
this.fields(w, "waypoint");
|
|
216
|
+
return { x: num(w.x) ?? 0, y: num(w.y) ?? 0 };
|
|
217
|
+
}) : null,
|
|
218
|
+
hops: typeof v.hops === "boolean" ? v.hops : null
|
|
167
219
|
};
|
|
168
220
|
}
|
|
169
221
|
image(v, table) {
|
|
@@ -470,8 +522,9 @@ ${CLICK_STYLE}`;
|
|
|
470
522
|
|
|
471
523
|
// src/compile.ts
|
|
472
524
|
var LOADER = `;(function () {
|
|
473
|
-
var data = DOTTIE_DATA, options = DOTTIE_OPTIONS;
|
|
525
|
+
var data = DOTTIE_DATA, options = DOTTIE_OPTIONS, fonts = DOTTIE_FONTS;
|
|
474
526
|
var script = document.currentScript;
|
|
527
|
+
if (window.Dottie.addFonts) window.Dottie.addFonts(Object.keys(fonts), fonts);
|
|
475
528
|
function attr(el, name, value) { el.setAttribute(name.replace(/[A-Z]/g, function (c) { return "-" + c.toLowerCase(); }), value); }
|
|
476
529
|
function mount() {
|
|
477
530
|
var player = document.createElement("dottie-player"), k;
|
|
@@ -524,11 +577,18 @@ function compile(source2, runtime, options2 = {}) {
|
|
|
524
577
|
const images = Object.fromEntries(Object.entries(json.images ?? {}).filter(([k]) => refs.has(k)));
|
|
525
578
|
const data = { version: json.version, pages: [page] };
|
|
526
579
|
if (Object.keys(images).length) data.images = images;
|
|
527
|
-
|
|
580
|
+
const fonts = {};
|
|
581
|
+
for (const family of options2.fontData ? usedFonts(file.pages[i]) : []) {
|
|
582
|
+
for (const face of fontFaces(family)) {
|
|
583
|
+
const b64 = options2.fontData(family, face);
|
|
584
|
+
if (b64) (fonts[family] ?? (fonts[family] = {}))[face] = b64;
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
return runtime.trimEnd() + "\n" + LOADER.replace("DOTTIE_DATA", () => scriptJSON(data)).replace("DOTTIE_OPTIONS", () => scriptJSON(playerAttributes(options2))).replace("DOTTIE_FONTS", () => scriptJSON(fonts));
|
|
528
588
|
}
|
|
529
589
|
|
|
530
590
|
// src/index.ts
|
|
531
|
-
var VERSION = "0.6.
|
|
591
|
+
var VERSION = "0.6.3";
|
|
532
592
|
|
|
533
593
|
// src/cli.ts
|
|
534
594
|
var usage = `dottie-compile ${VERSION}: a Dottie drawing as one script that plays it on any page.
|
|
@@ -618,7 +678,14 @@ try {
|
|
|
618
678
|
for (const w of parseDottie(source).warnings) process.stderr.write(`dottie-compile: ${input}: ${w}
|
|
619
679
|
`);
|
|
620
680
|
const runtime = readFileSync(new URL("./dottie-player.min.js", import.meta.url), "utf8");
|
|
621
|
-
const
|
|
681
|
+
const fontData = (family, face) => {
|
|
682
|
+
try {
|
|
683
|
+
return readFileSync(new URL(`./fonts/${fontFile(family, face)}`, import.meta.url)).toString("base64");
|
|
684
|
+
} catch {
|
|
685
|
+
return void 0;
|
|
686
|
+
}
|
|
687
|
+
};
|
|
688
|
+
const js = compile(source, runtime, { ...options, fontData });
|
|
622
689
|
if (output === "-") process.stdout.write(js);
|
|
623
690
|
else {
|
|
624
691
|
const target = output ?? input.replace(/\.dottie$/i, "") + ".js";
|
package/dist/dottie-loader.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
;(function () {
|
|
2
|
-
var data = DOTTIE_DATA, options = DOTTIE_OPTIONS;
|
|
2
|
+
var data = DOTTIE_DATA, options = DOTTIE_OPTIONS, fonts = DOTTIE_FONTS;
|
|
3
3
|
var script = document.currentScript;
|
|
4
|
+
if (window.Dottie.addFonts) window.Dottie.addFonts(Object.keys(fonts), fonts);
|
|
4
5
|
function attr(el, name, value) { el.setAttribute(name.replace(/[A-Z]/g, function (c) { return "-" + c.toLowerCase(); }), value); }
|
|
5
6
|
function mount() {
|
|
6
7
|
var player = document.createElement("dottie-player"), k;
|