pts 0.10.12 → 0.11.0
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/dist/{pts.d.ts → index.d.ts} +1245 -1207
- package/dist/index.js +6825 -6660
- package/dist/index.mjs +6785 -0
- package/package.json +12 -33
- package/tsup.browser.js +21 -0
- package/tsup.min.js +23 -0
- package/tsup.module.js +15 -0
- package/dist/es2015/Canvas.js +0 -684
- package/dist/es2015/Canvas.js.map +0 -1
- package/dist/es2015/Color.js +0 -337
- package/dist/es2015/Color.js.map +0 -1
- package/dist/es2015/Create.js +0 -275
- package/dist/es2015/Create.js.map +0 -1
- package/dist/es2015/Dom.js +0 -448
- package/dist/es2015/Dom.js.map +0 -1
- package/dist/es2015/Form.js +0 -80
- package/dist/es2015/Form.js.map +0 -1
- package/dist/es2015/Image.js +0 -220
- package/dist/es2015/Image.js.map +0 -1
- package/dist/es2015/LinearAlgebra.js +0 -286
- package/dist/es2015/LinearAlgebra.js.map +0 -1
- package/dist/es2015/Num.js +0 -477
- package/dist/es2015/Num.js.map +0 -1
- package/dist/es2015/Op.js +0 -978
- package/dist/es2015/Op.js.map +0 -1
- package/dist/es2015/Physics.js +0 -383
- package/dist/es2015/Physics.js.map +0 -1
- package/dist/es2015/Play.js +0 -339
- package/dist/es2015/Play.js.map +0 -1
- package/dist/es2015/Pt.js +0 -463
- package/dist/es2015/Pt.js.map +0 -1
- package/dist/es2015/Space.js +0 -331
- package/dist/es2015/Space.js.map +0 -1
- package/dist/es2015/Svg.js +0 -367
- package/dist/es2015/Svg.js.map +0 -1
- package/dist/es2015/Types.js +0 -3
- package/dist/es2015/Types.js.map +0 -1
- package/dist/es2015/Typography.js +0 -40
- package/dist/es2015/Typography.js.map +0 -1
- package/dist/es2015/UI.js +0 -273
- package/dist/es2015/UI.js.map +0 -1
- package/dist/es2015/Util.js +0 -200
- package/dist/es2015/Util.js.map +0 -1
- package/dist/es2015/_lib.js +0 -45
- package/dist/es2015/_lib.js.map +0 -1
- package/dist/es2015/_module.js +0 -18
- package/dist/es2015/_module.js.map +0 -1
- package/dist/es2015/uheprng.js +0 -69
- package/dist/es2015/uheprng.js.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/es2015/Svg.js
DELETED
|
@@ -1,367 +0,0 @@
|
|
|
1
|
-
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
|
-
import { VisualForm, Font } from "./Form";
|
|
3
|
-
import { Geom } from './Num';
|
|
4
|
-
import { Const, Util } from './Util';
|
|
5
|
-
import { Pt, Group } from './Pt';
|
|
6
|
-
import { Rectangle } from "./Op";
|
|
7
|
-
import { DOMSpace } from "./Dom";
|
|
8
|
-
export class SVGSpace extends DOMSpace {
|
|
9
|
-
constructor(elem, callback) {
|
|
10
|
-
super(elem, callback);
|
|
11
|
-
this._bgcolor = "#999";
|
|
12
|
-
if (this._canvas.nodeName.toLowerCase() != "svg") {
|
|
13
|
-
let s = SVGSpace.svgElement(this._canvas, "svg", `${this.id}_svg`);
|
|
14
|
-
this._container = this._canvas;
|
|
15
|
-
this._canvas = s;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
getForm() { return new SVGForm(this); }
|
|
19
|
-
get element() {
|
|
20
|
-
return this._canvas;
|
|
21
|
-
}
|
|
22
|
-
resize(b, evt) {
|
|
23
|
-
super.resize(b, evt);
|
|
24
|
-
SVGSpace.setAttr(this.element, {
|
|
25
|
-
"viewBox": `0 0 ${this.bound.width} ${this.bound.height}`,
|
|
26
|
-
"width": `${this.bound.width}`,
|
|
27
|
-
"height": `${this.bound.height}`,
|
|
28
|
-
"xmlns": "http://www.w3.org/2000/svg",
|
|
29
|
-
"version": "1.1"
|
|
30
|
-
});
|
|
31
|
-
return this;
|
|
32
|
-
}
|
|
33
|
-
static svgElement(parent, name, id) {
|
|
34
|
-
if (!parent || !parent.appendChild)
|
|
35
|
-
throw new Error("parent is not a valid DOM element");
|
|
36
|
-
let elem = document.querySelector(`#${id}`);
|
|
37
|
-
if (!elem) {
|
|
38
|
-
elem = document.createElementNS("http://www.w3.org/2000/svg", name);
|
|
39
|
-
elem.setAttribute("id", id);
|
|
40
|
-
parent.appendChild(elem);
|
|
41
|
-
}
|
|
42
|
-
return elem;
|
|
43
|
-
}
|
|
44
|
-
remove(player) {
|
|
45
|
-
let temp = this._container.querySelectorAll("." + SVGForm.scopeID(player));
|
|
46
|
-
temp.forEach((el) => {
|
|
47
|
-
el.parentNode.removeChild(el);
|
|
48
|
-
});
|
|
49
|
-
return super.remove(player);
|
|
50
|
-
}
|
|
51
|
-
removeAll() {
|
|
52
|
-
this._container.innerHTML = "";
|
|
53
|
-
return super.removeAll();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
export class SVGForm extends VisualForm {
|
|
57
|
-
constructor(space) {
|
|
58
|
-
super();
|
|
59
|
-
this._style = {
|
|
60
|
-
"filled": true,
|
|
61
|
-
"stroked": true,
|
|
62
|
-
"fill": "#f03",
|
|
63
|
-
"stroke": "#fff",
|
|
64
|
-
"stroke-width": 1,
|
|
65
|
-
"stroke-linejoin": "bevel",
|
|
66
|
-
"stroke-linecap": "sqaure",
|
|
67
|
-
"opacity": 1
|
|
68
|
-
};
|
|
69
|
-
this._ctx = {
|
|
70
|
-
group: null,
|
|
71
|
-
groupID: "pts",
|
|
72
|
-
groupCount: 0,
|
|
73
|
-
currentID: "pts0",
|
|
74
|
-
currentClass: "",
|
|
75
|
-
style: {},
|
|
76
|
-
};
|
|
77
|
-
this._ready = false;
|
|
78
|
-
this._space = space;
|
|
79
|
-
this._space.add({ start: () => {
|
|
80
|
-
this._ctx.group = this._space.element;
|
|
81
|
-
this._ctx.groupID = "pts_svg_" + (SVGForm.groupID++);
|
|
82
|
-
this._ctx.style = Object.assign({}, this._style);
|
|
83
|
-
this._ready = true;
|
|
84
|
-
} });
|
|
85
|
-
}
|
|
86
|
-
get space() { return this._space; }
|
|
87
|
-
styleTo(k, v) {
|
|
88
|
-
if (this._ctx.style[k] === undefined)
|
|
89
|
-
throw new Error(`${k} style property doesn't exist`);
|
|
90
|
-
this._ctx.style[k] = v;
|
|
91
|
-
}
|
|
92
|
-
alpha(a) {
|
|
93
|
-
this.styleTo("opacity", a);
|
|
94
|
-
return this;
|
|
95
|
-
}
|
|
96
|
-
fill(c) {
|
|
97
|
-
if (typeof c == "boolean") {
|
|
98
|
-
this.styleTo("filled", c);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
this.styleTo("filled", true);
|
|
102
|
-
this.styleTo("fill", c);
|
|
103
|
-
}
|
|
104
|
-
return this;
|
|
105
|
-
}
|
|
106
|
-
stroke(c, width, linejoin, linecap) {
|
|
107
|
-
if (typeof c == "boolean") {
|
|
108
|
-
this.styleTo("stroked", c);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
this.styleTo("stroked", true);
|
|
112
|
-
this.styleTo("stroke", c);
|
|
113
|
-
if (width)
|
|
114
|
-
this.styleTo("stroke-width", width);
|
|
115
|
-
if (linejoin)
|
|
116
|
-
this.styleTo("stroke-linejoin", linejoin);
|
|
117
|
-
if (linecap)
|
|
118
|
-
this.styleTo("stroke-linecap", linecap);
|
|
119
|
-
}
|
|
120
|
-
return this;
|
|
121
|
-
}
|
|
122
|
-
cls(c) {
|
|
123
|
-
if (typeof c == "boolean") {
|
|
124
|
-
this._ctx.currentClass = "";
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
this._ctx.currentClass = c;
|
|
128
|
-
}
|
|
129
|
-
return this;
|
|
130
|
-
}
|
|
131
|
-
font(sizeOrFont, weight, style, lineHeight, family) {
|
|
132
|
-
if (typeof sizeOrFont == "number") {
|
|
133
|
-
this._font.size = sizeOrFont;
|
|
134
|
-
if (family)
|
|
135
|
-
this._font.face = family;
|
|
136
|
-
if (weight)
|
|
137
|
-
this._font.weight = weight;
|
|
138
|
-
if (style)
|
|
139
|
-
this._font.style = style;
|
|
140
|
-
if (lineHeight)
|
|
141
|
-
this._font.lineHeight = lineHeight;
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
this._font = sizeOrFont;
|
|
145
|
-
}
|
|
146
|
-
this._ctx.style['font'] = this._font.value;
|
|
147
|
-
return this;
|
|
148
|
-
}
|
|
149
|
-
reset() {
|
|
150
|
-
this._ctx.style = Object.assign({}, this._style);
|
|
151
|
-
this._font = new Font(10, "sans-serif");
|
|
152
|
-
this._ctx.style['font'] = this._font.value;
|
|
153
|
-
return this;
|
|
154
|
-
}
|
|
155
|
-
updateScope(group_id, group) {
|
|
156
|
-
this._ctx.group = group;
|
|
157
|
-
this._ctx.groupID = group_id;
|
|
158
|
-
this._ctx.groupCount = 0;
|
|
159
|
-
this.nextID();
|
|
160
|
-
return this._ctx;
|
|
161
|
-
}
|
|
162
|
-
scope(item) {
|
|
163
|
-
if (!item || item.animateID == null)
|
|
164
|
-
throw new Error("item not defined or not yet added to Space");
|
|
165
|
-
return this.updateScope(SVGForm.scopeID(item), this.space.element);
|
|
166
|
-
}
|
|
167
|
-
nextID() {
|
|
168
|
-
this._ctx.groupCount++;
|
|
169
|
-
this._ctx.currentID = `${this._ctx.groupID}-${this._ctx.groupCount}`;
|
|
170
|
-
return this._ctx.currentID;
|
|
171
|
-
}
|
|
172
|
-
static getID(ctx) {
|
|
173
|
-
return ctx.currentID || `p-${SVGForm.domID++}`;
|
|
174
|
-
}
|
|
175
|
-
static scopeID(item) {
|
|
176
|
-
return `item-${item.animateID}`;
|
|
177
|
-
}
|
|
178
|
-
static style(elem, styles) {
|
|
179
|
-
let st = [];
|
|
180
|
-
if (!styles["filled"])
|
|
181
|
-
st.push("fill: none");
|
|
182
|
-
if (!styles["stroked"])
|
|
183
|
-
st.push("stroke: none");
|
|
184
|
-
for (let k in styles) {
|
|
185
|
-
if (styles.hasOwnProperty(k) && k != "filled" && k != "stroked") {
|
|
186
|
-
let v = styles[k];
|
|
187
|
-
if (v) {
|
|
188
|
-
if (!styles["filled"] && k.indexOf('fill') === 0) {
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
else if (!styles["stroked"] && k.indexOf('stroke') === 0) {
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
st.push(`${k}: ${v}`);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
return DOMSpace.setAttr(elem, { style: st.join(";") });
|
|
201
|
-
}
|
|
202
|
-
static point(ctx, pt, radius = 5, shape = "square") {
|
|
203
|
-
if (shape === "circle") {
|
|
204
|
-
return SVGForm.circle(ctx, pt, radius);
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
return SVGForm.square(ctx, pt, radius);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
point(pt, radius = 5, shape = "square") {
|
|
211
|
-
this.nextID();
|
|
212
|
-
SVGForm.point(this._ctx, pt, radius, shape);
|
|
213
|
-
return this;
|
|
214
|
-
}
|
|
215
|
-
static circle(ctx, pt, radius = 10) {
|
|
216
|
-
let elem = SVGSpace.svgElement(ctx.group, "circle", SVGForm.getID(ctx));
|
|
217
|
-
DOMSpace.setAttr(elem, {
|
|
218
|
-
cx: pt[0],
|
|
219
|
-
cy: pt[1],
|
|
220
|
-
r: radius,
|
|
221
|
-
'class': `pts-svgform pts-circle ${ctx.currentClass}`,
|
|
222
|
-
});
|
|
223
|
-
SVGForm.style(elem, ctx.style);
|
|
224
|
-
return elem;
|
|
225
|
-
}
|
|
226
|
-
circle(pts) {
|
|
227
|
-
this.nextID();
|
|
228
|
-
let p = Util.iterToArray(pts);
|
|
229
|
-
SVGForm.circle(this._ctx, p[0], p[1][0]);
|
|
230
|
-
return this;
|
|
231
|
-
}
|
|
232
|
-
static arc(ctx, pt, radius, startAngle, endAngle, cc) {
|
|
233
|
-
let elem = SVGSpace.svgElement(ctx.group, "path", SVGForm.getID(ctx));
|
|
234
|
-
const start = new Pt(pt).toAngle(startAngle, radius, true);
|
|
235
|
-
const end = new Pt(pt).toAngle(endAngle, radius, true);
|
|
236
|
-
const diff = Geom.boundAngle(endAngle) - Geom.boundAngle(startAngle);
|
|
237
|
-
let largeArc = (diff > Const.pi) ? true : false;
|
|
238
|
-
if (cc)
|
|
239
|
-
largeArc = !largeArc;
|
|
240
|
-
const sweep = (cc) ? "0" : "1";
|
|
241
|
-
const d = `M ${start[0]} ${start[1]} A ${radius} ${radius} 0 ${largeArc ? "1" : "0"} ${sweep} ${end[0]} ${end[1]}`;
|
|
242
|
-
DOMSpace.setAttr(elem, {
|
|
243
|
-
d: d,
|
|
244
|
-
'class': `pts-svgform pts-arc ${ctx.currentClass}`,
|
|
245
|
-
});
|
|
246
|
-
SVGForm.style(elem, ctx.style);
|
|
247
|
-
return elem;
|
|
248
|
-
}
|
|
249
|
-
arc(pt, radius, startAngle, endAngle, cc) {
|
|
250
|
-
this.nextID();
|
|
251
|
-
SVGForm.arc(this._ctx, pt, radius, startAngle, endAngle, cc);
|
|
252
|
-
return this;
|
|
253
|
-
}
|
|
254
|
-
static square(ctx, pt, halfsize) {
|
|
255
|
-
let elem = SVGSpace.svgElement(ctx.group, "rect", SVGForm.getID(ctx));
|
|
256
|
-
DOMSpace.setAttr(elem, {
|
|
257
|
-
x: pt[0] - halfsize,
|
|
258
|
-
y: pt[1] - halfsize,
|
|
259
|
-
width: halfsize * 2,
|
|
260
|
-
height: halfsize * 2,
|
|
261
|
-
'class': `pts-svgform pts-square ${ctx.currentClass}`,
|
|
262
|
-
});
|
|
263
|
-
SVGForm.style(elem, ctx.style);
|
|
264
|
-
return elem;
|
|
265
|
-
}
|
|
266
|
-
square(pt, halfsize) {
|
|
267
|
-
this.nextID();
|
|
268
|
-
SVGForm.square(this._ctx, pt, halfsize);
|
|
269
|
-
return this;
|
|
270
|
-
}
|
|
271
|
-
static line(ctx, pts) {
|
|
272
|
-
let points = SVGForm.pointsString(pts);
|
|
273
|
-
if (points.count < 2)
|
|
274
|
-
return;
|
|
275
|
-
if (points.count > 2)
|
|
276
|
-
return SVGForm._poly(ctx, points.string, false);
|
|
277
|
-
let elem = SVGSpace.svgElement(ctx.group, "line", SVGForm.getID(ctx));
|
|
278
|
-
let p = Util.iterToArray(pts);
|
|
279
|
-
DOMSpace.setAttr(elem, {
|
|
280
|
-
x1: p[0][0],
|
|
281
|
-
y1: p[0][1],
|
|
282
|
-
x2: p[1][0],
|
|
283
|
-
y2: p[1][1],
|
|
284
|
-
'class': `pts-svgform pts-line ${ctx.currentClass}`,
|
|
285
|
-
});
|
|
286
|
-
SVGForm.style(elem, ctx.style);
|
|
287
|
-
return elem;
|
|
288
|
-
}
|
|
289
|
-
line(pts) {
|
|
290
|
-
this.nextID();
|
|
291
|
-
SVGForm.line(this._ctx, pts);
|
|
292
|
-
return this;
|
|
293
|
-
}
|
|
294
|
-
static _poly(ctx, points, closePath = true) {
|
|
295
|
-
let elem = SVGSpace.svgElement(ctx.group, ((closePath) ? "polygon" : "polyline"), SVGForm.getID(ctx));
|
|
296
|
-
DOMSpace.setAttr(elem, {
|
|
297
|
-
points: points,
|
|
298
|
-
'class': `pts-svgform pts-polygon ${ctx.currentClass}`,
|
|
299
|
-
});
|
|
300
|
-
SVGForm.style(elem, ctx.style);
|
|
301
|
-
return elem;
|
|
302
|
-
}
|
|
303
|
-
static pointsString(pts) {
|
|
304
|
-
let points = "";
|
|
305
|
-
let count = 0;
|
|
306
|
-
for (let p of pts) {
|
|
307
|
-
points += `${p[0]},${p[1]} `;
|
|
308
|
-
count++;
|
|
309
|
-
}
|
|
310
|
-
return { string: points, count: count };
|
|
311
|
-
}
|
|
312
|
-
static polygon(ctx, pts) {
|
|
313
|
-
let points = SVGForm.pointsString(pts);
|
|
314
|
-
return SVGForm._poly(ctx, points.string, true);
|
|
315
|
-
}
|
|
316
|
-
polygon(pts) {
|
|
317
|
-
this.nextID();
|
|
318
|
-
SVGForm.polygon(this._ctx, pts);
|
|
319
|
-
return this;
|
|
320
|
-
}
|
|
321
|
-
static rect(ctx, pts) {
|
|
322
|
-
if (!Util.arrayCheck(pts))
|
|
323
|
-
return;
|
|
324
|
-
let elem = SVGSpace.svgElement(ctx.group, "rect", SVGForm.getID(ctx));
|
|
325
|
-
let bound = Group.fromArray(pts).boundingBox();
|
|
326
|
-
let size = Rectangle.size(bound);
|
|
327
|
-
DOMSpace.setAttr(elem, {
|
|
328
|
-
x: bound[0][0],
|
|
329
|
-
y: bound[0][1],
|
|
330
|
-
width: size[0],
|
|
331
|
-
height: size[1],
|
|
332
|
-
'class': `pts-svgform pts-rect ${ctx.currentClass}`,
|
|
333
|
-
});
|
|
334
|
-
SVGForm.style(elem, ctx.style);
|
|
335
|
-
return elem;
|
|
336
|
-
}
|
|
337
|
-
rect(pts) {
|
|
338
|
-
this.nextID();
|
|
339
|
-
SVGForm.rect(this._ctx, pts);
|
|
340
|
-
return this;
|
|
341
|
-
}
|
|
342
|
-
static text(ctx, pt, txt) {
|
|
343
|
-
let elem = SVGSpace.svgElement(ctx.group, "text", SVGForm.getID(ctx));
|
|
344
|
-
DOMSpace.setAttr(elem, {
|
|
345
|
-
"pointer-events": "none",
|
|
346
|
-
x: pt[0],
|
|
347
|
-
y: pt[1],
|
|
348
|
-
dx: 0, dy: 0,
|
|
349
|
-
'class': `pts-svgform pts-text ${ctx.currentClass}`,
|
|
350
|
-
});
|
|
351
|
-
elem.textContent = txt;
|
|
352
|
-
SVGForm.style(elem, ctx.style);
|
|
353
|
-
return elem;
|
|
354
|
-
}
|
|
355
|
-
text(pt, txt) {
|
|
356
|
-
this.nextID();
|
|
357
|
-
SVGForm.text(this._ctx, pt, txt);
|
|
358
|
-
return this;
|
|
359
|
-
}
|
|
360
|
-
log(txt) {
|
|
361
|
-
this.fill("#000").stroke("#fff", 0.5).text([10, 14], txt);
|
|
362
|
-
return this;
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
SVGForm.groupID = 0;
|
|
366
|
-
SVGForm.domID = 0;
|
|
367
|
-
//# sourceMappingURL=Svg.js.map
|
package/dist/es2015/Svg.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Svg.js","sourceRoot":"","sources":["../../src/Svg.ts"],"names":[],"mappings":"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"}
|
package/dist/es2015/Types.js
DELETED
package/dist/es2015/Types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/Types.ts"],"names":[],"mappings":"AAAA,gJAAgJ"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/*! Pts.js is licensed under Apache License 2.0. Copyright © 2017-current William Ngan and contributors. (https://github.com/williamngan/pts) */
|
|
2
|
-
import { Pt, Bound } from "./Pt";
|
|
3
|
-
export class Typography {
|
|
4
|
-
static textWidthEstimator(fn, samples = ["M", "n", "."], distribution = [0.06, 0.8, 0.14]) {
|
|
5
|
-
let m = samples.map(fn);
|
|
6
|
-
let avg = new Pt(distribution).dot(m);
|
|
7
|
-
return (str) => str.length * avg;
|
|
8
|
-
}
|
|
9
|
-
static truncate(fn, str, width, tail = "") {
|
|
10
|
-
let trim = Math.floor(str.length * Math.min(1, width / fn(str)));
|
|
11
|
-
if (trim < str.length) {
|
|
12
|
-
trim = Math.max(0, trim - tail.length);
|
|
13
|
-
return [str.substr(0, trim) + tail, trim];
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
return [str, str.length];
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
static fontSizeToBox(box, ratio = 1, byHeight = true) {
|
|
20
|
-
let bound = Bound.fromGroup(box);
|
|
21
|
-
let h = byHeight ? bound.height : bound.width;
|
|
22
|
-
let f = ratio * h;
|
|
23
|
-
return function (box2) {
|
|
24
|
-
let bound2 = Bound.fromGroup(box2);
|
|
25
|
-
let nh = (byHeight ? bound2.height : bound2.width) / h;
|
|
26
|
-
return f * nh;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
static fontSizeToThreshold(threshold, direction = 0) {
|
|
30
|
-
return function (defaultSize, val) {
|
|
31
|
-
let d = defaultSize * val / threshold;
|
|
32
|
-
if (direction < 0)
|
|
33
|
-
return Math.min(d, defaultSize);
|
|
34
|
-
if (direction > 0)
|
|
35
|
-
return Math.max(d, defaultSize);
|
|
36
|
-
return d;
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=Typography.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Typography.js","sourceRoot":"","sources":["../../src/Typography.ts"],"names":[],"mappings":"AAAA,gJAAgJ;AAEhJ,OAAO,EAAC,EAAE,EAAE,KAAK,EAAC,MAAM,MAAM,CAAC;AAO/B,MAAM,OAAO,UAAU;IASrB,MAAM,CAAC,kBAAkB,CAAG,EAAqB,EAAE,UAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,eAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;QAC9H,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAE,EAAE,CAAE,CAAC;QAC1B,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAE,CAAC,CAAE,CAAC;QACxC,OAAO,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IAC1C,CAAC;IAUD,MAAM,CAAC,QAAQ,CAAE,EAAqB,EAAE,GAAU,EAAE,KAAY,EAAE,OAAY,EAAE;QAC9E,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QACpE,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE;YACrB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;SAC3C;aAAM;YACL,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;SAC1B;IACH,CAAC;IASD,MAAM,CAAC,aAAa,CAAE,GAAkB,EAAE,QAAa,CAAC,EAAE,WAAiB,IAAI;QAC7E,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAE,GAAG,CAAE,CAAC;QACnC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9C,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAClB,OAAO,UAAU,IAAc;YAC7B,IAAI,MAAM,GAAG,KAAK,CAAC,SAAS,CAAE,IAAI,CAAE,CAAC;YACrC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAUD,MAAM,CAAC,mBAAmB,CAAE,SAAgB,EAAE,YAAiB,CAAC;QAC9D,OAAO,UAAU,WAAkB,EAAE,GAAU;YAC7C,IAAI,CAAC,GAAG,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;YACtC,IAAI,SAAS,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAE,CAAC,EAAE,WAAW,CAAE,CAAC;YACrD,IAAI,SAAS,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAE,CAAC,EAAE,WAAW,CAAE,CAAC;YACrD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;IACJ,CAAC;CACF"}
|