chat-layout 0.0.12 → 0.0.13

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.
Files changed (3) hide show
  1. package/index.js +55 -51
  2. package/index.js.map +3 -3
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -188,16 +188,20 @@ class VStack extends Group {
188
188
  let { width, height } = shallow(ctx).measureNode(child);
189
189
  const curctx = shallow(ctx);
190
190
  if (test.y >= y && test.y < y + height) {
191
+ let ref5;
192
+ if (alignment === "right") {
193
+ ref5 = test.x - fullwidth + width;
194
+ } else if (alignment === "center") {
195
+ ref5 = test.x - (fullwidth - width) / 2;
196
+ } else {
197
+ ref5 = test.x;
198
+ }
199
+ const x = ref5;
200
+ if (x < 0 || x >= width) {
201
+ return false;
202
+ }
191
203
  return child.hittest(curctx, shallowMerge(test, {
192
- x: (() => {
193
- if (alignment === "right") {
194
- return test.x - fullwidth + width;
195
- } else if (alignment === "center") {
196
- return test.x - (fullwidth - width) / 2;
197
- } else {
198
- return test.x;
199
- }
200
- })(),
204
+ x,
201
205
  y: test.y - y
202
206
  }));
203
207
  }
@@ -219,9 +223,9 @@ class HStack extends Group {
219
223
  let width = 0;
220
224
  let height = 0;
221
225
  let firstflex;
222
- for (let ref5 = this.children, i5 = 0, len5 = ref5.length;i5 < len5; i5++) {
226
+ for (let ref6 = this.children, i5 = 0, len5 = ref6.length;i5 < len5; i5++) {
223
227
  const index = i5;
224
- const child = ref5[i5];
228
+ const child = ref6[i5];
225
229
  if (this.options.gap != null && index !== 0) {
226
230
  width += this.options.gap;
227
231
  }
@@ -252,12 +256,12 @@ class HStack extends Group {
252
256
  }
253
257
  if (reverse) {
254
258
  x += ctx.measureNode(this).width;
255
- for (let ref6 = this.children, i6 = 0, len6 = ref6.length;i6 < len6; i6++) {
259
+ for (let ref7 = this.children, i6 = 0, len6 = ref7.length;i6 < len6; i6++) {
256
260
  const index = i6;
257
- const child = ref6[i6];
258
- let ref7;
259
- if (ref7 = this.options.gap != null && index !== 0 ? this.options.gap : undefined) {
260
- const gap = ref7;
261
+ const child = ref7[i6];
262
+ let ref8;
263
+ if (ref8 = this.options.gap != null && index !== 0 ? this.options.gap : undefined) {
264
+ const gap = ref8;
261
265
  x -= gap;
262
266
  ctx.remainingWidth -= gap;
263
267
  }
@@ -268,12 +272,12 @@ class HStack extends Group {
268
272
  ctx.remainingWidth -= width;
269
273
  }
270
274
  } else {
271
- for (let ref8 = this.children, i7 = 0, len7 = ref8.length;i7 < len7; i7++) {
275
+ for (let ref9 = this.children, i7 = 0, len7 = ref9.length;i7 < len7; i7++) {
272
276
  const index = i7;
273
- const child = ref8[i7];
274
- let ref9;
275
- if (ref9 = this.options.gap != null && index !== 0 ? this.options.gap : undefined) {
276
- const gap = ref9;
277
+ const child = ref9[i7];
278
+ let ref10;
279
+ if (ref10 = this.options.gap != null && index !== 0 ? this.options.gap : undefined) {
280
+ const gap = ref10;
277
281
  x += gap;
278
282
  ctx.remainingWidth -= gap;
279
283
  }
@@ -293,19 +297,19 @@ class HStack extends Group {
293
297
  }
294
298
  if (reverse) {
295
299
  let x = ctx.measureNode(this).width;
296
- for (let ref10 = this.children, i8 = 0, len8 = ref10.length;i8 < len8; i8++) {
300
+ for (let ref11 = this.children, i8 = 0, len8 = ref11.length;i8 < len8; i8++) {
297
301
  const index = i8;
298
- const child = ref10[i8];
299
- let ref11;
300
- if (ref11 = this.options.gap != null && index !== 0 ? this.options.gap : undefined) {
301
- const gap = ref11;
302
+ const child = ref11[i8];
303
+ let ref12;
304
+ if (ref12 = this.options.gap != null && index !== 0 ? this.options.gap : undefined) {
305
+ const gap = ref12;
302
306
  x -= gap;
303
307
  ctx.remainingWidth -= gap;
304
308
  }
305
309
  const { width } = shallow(ctx).measureNode(child);
306
310
  x -= width;
307
- let ref12;
308
- if (x <= (ref12 = test.x) && ref12 <= x + width) {
311
+ let ref13;
312
+ if (x <= (ref13 = test.x) && ref13 <= x + width) {
309
313
  return child.hittest(shallow(ctx), shallowMerge(test, {
310
314
  x: test.x - x
311
315
  }));
@@ -314,18 +318,18 @@ class HStack extends Group {
314
318
  }
315
319
  } else {
316
320
  let x = 0;
317
- for (let ref13 = this.children, i9 = 0, len9 = ref13.length;i9 < len9; i9++) {
321
+ for (let ref14 = this.children, i9 = 0, len9 = ref14.length;i9 < len9; i9++) {
318
322
  const index = i9;
319
- const child = ref13[i9];
320
- let ref14;
321
- if (ref14 = this.options.gap != null && index !== 0 ? this.options.gap : undefined) {
322
- const gap = ref14;
323
+ const child = ref14[i9];
324
+ let ref15;
325
+ if (ref15 = this.options.gap != null && index !== 0 ? this.options.gap : undefined) {
326
+ const gap = ref15;
323
327
  x += gap;
324
328
  ctx.remainingWidth -= gap;
325
329
  }
326
330
  const { width } = shallow(ctx).measureNode(child);
327
- let ref15;
328
- if (x <= (ref15 = test.x) && ref15 <= x + width) {
331
+ let ref16;
332
+ if (x <= (ref16 = test.x) && ref16 <= x + width) {
329
333
  return child.hittest(shallow(ctx), shallowMerge(test, {
330
334
  x: test.x - x
331
335
  }));
@@ -402,9 +406,9 @@ class PaddingBox extends Wrapper {
402
406
  hittest(ctx, test) {
403
407
  ctx.remainingWidth -= this.#left + this.#right;
404
408
  const { width, height } = shallow(ctx).measureNode(this.inner);
405
- let ref16;
406
409
  let ref17;
407
- if (0 <= (ref16 = test.x - this.#left) && ref16 < width && (0 <= (ref17 = test.y - this.#top) && ref17 < height)) {
410
+ let ref18;
411
+ if (0 <= (ref17 = test.x - this.#left) && ref17 < width && (0 <= (ref18 = test.y - this.#top) && ref18 < height)) {
408
412
  return this.inner.hittest(shallow(ctx), shallowMerge(test, {
409
413
  x: test.x - this.#left,
410
414
  y: test.y - this.#top
@@ -424,21 +428,21 @@ class AlignBox extends Wrapper {
424
428
  measure(ctx) {
425
429
  ctx.alignment = this.options.alignment;
426
430
  const { width, height } = ctx.measureNode(this.inner);
427
- let ref18;
431
+ let ref19;
428
432
  switch (this.options.alignment) {
429
433
  case "center": {
430
- ref18 = (ctx.remainingWidth - width) / 2;
434
+ ref19 = (ctx.remainingWidth - width) / 2;
431
435
  break;
432
436
  }
433
437
  case "right": {
434
- ref18 = ctx.remainingWidth - width;
438
+ ref19 = ctx.remainingWidth - width;
435
439
  break;
436
440
  }
437
441
  default: {
438
- ref18 = 0;
442
+ ref19 = 0;
439
443
  }
440
444
  }
441
- this.#shift = ref18;
445
+ this.#shift = ref19;
442
446
  return {
443
447
  width: ctx.remainingWidth,
444
448
  height
@@ -451,8 +455,8 @@ class AlignBox extends Wrapper {
451
455
  hittest(ctx, test) {
452
456
  ctx.alignment = this.options.alignment;
453
457
  const { width } = shallow(ctx).measureNode(this.inner);
454
- let ref19;
455
- if (0 <= (ref19 = test.x - this.#shift) && ref19 < width) {
458
+ let ref20;
459
+ if (0 <= (ref20 = test.x - this.#shift) && ref20 < width) {
456
460
  return this.inner.hittest(shallow(ctx), shallowMerge(test, {
457
461
  x: test.x - this.#shift
458
462
  }));
@@ -488,8 +492,8 @@ class MultilineText {
488
492
  g.fillStyle = ctx.resolveDynValue(this.options.style);
489
493
  switch (this.options.alignment) {
490
494
  case "left": {
491
- for (let ref20 = this.#lines, i10 = 0, len10 = ref20.length;i10 < len10; i10++) {
492
- const { text, shift, lineHeight } = ref20[i10];
495
+ for (let ref21 = this.#lines, i10 = 0, len10 = ref21.length;i10 < len10; i10++) {
496
+ const { text, shift, lineHeight } = ref21[i10];
493
497
  g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2);
494
498
  y += this.options.lineHeight;
495
499
  }
@@ -498,8 +502,8 @@ class MultilineText {
498
502
  case "right": {
499
503
  x += this.#width;
500
504
  g.textAlign = "right";
501
- for (let ref21 = this.#lines, i11 = 0, len11 = ref21.length;i11 < len11; i11++) {
502
- const { text, shift, lineHeight } = ref21[i11];
505
+ for (let ref22 = this.#lines, i11 = 0, len11 = ref22.length;i11 < len11; i11++) {
506
+ const { text, shift, lineHeight } = ref22[i11];
503
507
  g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2);
504
508
  y += this.options.lineHeight;
505
509
  }
@@ -508,8 +512,8 @@ class MultilineText {
508
512
  case "center": {
509
513
  x += this.#width / 2;
510
514
  g.textAlign = "center";
511
- for (let ref22 = this.#lines, i12 = 0, len12 = ref22.length;i12 < len12; i12++) {
512
- const { text, shift, lineHeight } = ref22[i12];
515
+ for (let ref23 = this.#lines, i12 = 0, len12 = ref23.length;i12 < len12; i12++) {
516
+ const { text, shift, lineHeight } = ref23[i12];
513
517
  g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2);
514
518
  y += this.options.lineHeight;
515
519
  }
@@ -993,5 +997,5 @@ export {
993
997
  AlignBox
994
998
  };
995
999
 
996
- //# debugId=825DA65A294F10FE64756E2164756E21
1000
+ //# debugId=1C49092FC0BEE04D64756E2164756E21
997
1001
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -5,10 +5,10 @@
5
5
  "import type { Context } from \"./types.civet\"\n\nexport type TextLayout = {\n width: number\n text: string\n shift: number\n lineHeight: number\n}\n\nexport function layoutFirstLine<C extends CanvasRenderingContext2D>(\n ctx: Context<C>,\n text: string,\n maxWidth: number\n): TextLayout {\n const line = (((text.replaceAll(/[^\\S\\n]+/g, \" \")).split(\"\\n\", 1))[0]).trim()\n const { width: textWidth, fontBoundingBoxAscent: shift, fontBoundingBoxDescent: lineHeight } = ctx.graphics.measureText(line)\n if (textWidth <= maxWidth) {\n return ({ width: textWidth, text: line, shift: shift / 2, lineHeight })\n }\n else {\n const { width, text } = splitToFitText(ctx, line, maxWidth, textWidth)\n return ({ width, text, shift: shift / 2, lineHeight })\n }\n}\n\nexport function layoutText<C extends CanvasRenderingContext2D>(\n ctx: Context<C>,\n text: string,\n maxWidth: number\n): { width: number; lines: TextLayout[] } {\n const results=[];for (let ref = text\n .replaceAll(/[^\\S\\n]+/g, \" \")\n .split(\"\\n\"), i = 0, len = ref.length; i < len; i++) {const line = ref[i];\n const trimed = line.trim()\n if (!trimed) { continue }\n results.push(trimed)\n };const inputLines =results\n if (inputLines.length === 0) { return { width: 0, lines: [] } }\n let width = 0\n const lines: TextLayout[] = []\n for (let i1 = 0, len1 = inputLines.length; i1 < len1; i1++) {let line = inputLines[i1];\n let { width: textWidth, fontBoundingBoxAscent: shift, fontBoundingBoxDescent: lineHeight } = ctx.graphics.measureText(line)\n if (textWidth <= maxWidth) {\n width = Math.max(width, textWidth)\n lines.push({width: textWidth, text: line, shift: shift / 2, lineHeight: lineHeight})\n }\n else {\n while (textWidth > maxWidth) {\n const splited = splitToFitText(ctx, line, maxWidth, textWidth)\n width = Math.max(width, splited.width)\n lines.push({text: splited.text, width: splited.width, shift: shift / 2, lineHeight: lineHeight})\n line = splited.rest;\n ({ width: textWidth } = ctx.graphics.measureText(line))\n }\n if (textWidth > 0) {\n width = Math.max(width, textWidth)\n lines.push({width: textWidth, text: line, shift: shift / 2, lineHeight: lineHeight})\n }\n }\n }\n return ({ width, lines })\n}\n\nfunction splitToFitText<C extends CanvasRenderingContext2D>(\n ctx: Context<C>,\n text: string,\n width: number,\n totalWidth: number\n): { text: string, width: number, rest: string } {\n const arr = ctx.splitText(text)\n let guess = Math.floor((width / totalWidth) * arr.length)\n let guessText\n let { width: guessWidth } = ctx.graphics.measureText(guessText = arr.slice(0, guess).join(\"\"))\n while (!(guessWidth >= width)) {\n guess++;\n ({ width: guessWidth } = ctx.graphics.measureText(guessText = arr.slice(0, guess).join(\"\")))\n }\n while (guessWidth > width) {\n const lastSpace = arr.lastIndexOf(\" \", guess - 1)\n if (lastSpace > 0) {\n guess = lastSpace\n }\n else {\n guess--\n };\n ({ width: guessWidth } = ctx.graphics.measureText(guessText = arr.slice(0, guess).join(\"\")))\n }\n return ({text: guessText,\n width: guessWidth,\n rest: (arr.slice(guess).join(\"\")).trimStart()})\n}",
6
6
  "export function shallow<T extends {}>(object: T): T {\n return Object.create(object) as T\n}\n\nexport function shallowMerge<T extends {}, R extends {}>(object: T, other: R): T & R {\n return ({ __proto__: object, ...other } as unknown as T & R)\n}\n\n",
7
7
  "import type { Node } from \"./types.civet\"\n\nconst registry = new WeakMap<Node<any>, Node<any>>()\n\nexport function registerNodeParent<C extends CanvasRenderingContext2D>(node: Node<C>, parent: Node<C>): void {\n registry.set(node, parent)\n}\n\nexport function unregisterNodeParent<C extends CanvasRenderingContext2D>(node: Node<C>): void {\n registry.delete(node)\n}\n\nexport function getNodeParent<C extends CanvasRenderingContext2D>(node: Node<C>): (Node<C> | undefined) {\n return registry.get(node)\n}\n",
8
- "import type { Box, Context, Node, HitTest, DynValue, Alignment } from \"./types.civet\";\nimport { layoutText, layoutFirstLine, type TextLayout } from \"./text.civet\";\nimport { shallow, shallowMerge } from \"./utils.civet\"\nimport { registerNodeParent, unregisterNodeParent } from \"./registry.civet\"\n\nexport abstract class Group<C extends CanvasRenderingContext2D> implements Node<C> {\n constructor(readonly children: Node<C>[]) {\n for (let i = 0, len = children.length; i < len; i++) {const child = children[i];\n registerNodeParent(child, this)\n }\n }\n\n abstract measure(ctx: Context<C>): Box\n abstract draw(ctx: Context<C>, x: number, y: number): boolean\n abstract hittest(ctx: Context<C>, test: HitTest): boolean\n get flex() {\n let results=false;for (let ref = this.children, i1 = 0, len1 = ref.length; i1 < len1; i1++) {const item = ref[i1];\n if (item.flex) {results = true; break}\n }return results\n }\n}\n\nexport class VStack<C extends CanvasRenderingContext2D> extends Group<C> {\n constructor(children: Node<C>[], readonly options: { gap?: number, alignment?: \"left\" | \"center\" | \"right\" } = {}) {\n super(children)\n }\n\n measure(ctx: Context<C>): Box {\n let width = 0\n let height = 0\n if (this.options.alignment != null) { ctx.alignment = this.options.alignment }\n for (let ref1 = this.children, i2 = 0, len2 = ref1.length; i2 < len2; i2++) {const index = i2;const child = ref1[i2];\n if ((this.options.gap != null) && index !== 0) { height += this.options.gap }\n let result = shallow(ctx).measureNode(child)\n height += result.height\n width = Math.max(width, result.width)\n }\n ctx.remainingWidth -= width\n return ({ width, height })\n }\n\n draw(ctx: Context<C>, x: number, y: number) {\n let result = false\n const fullwidth = ctx.measureNode(this).width\n const alignment = this.options.alignment ?? ctx.alignment\n if (this.options.alignment != null) { ctx.alignment = this.options.alignment }\n for (let ref2 = this.children, i3 = 0, len3 = ref2.length; i3 < len3; i3++) {const index = i3;const child = ref2[i3];\n if ((this.options.gap != null) && index !== 0) { y += this.options.gap }\n let { width, height } = shallow(ctx).measureNode(child)\n const curctx = shallow(ctx)\n let ref3;\n if(alignment === \"right\") { ref3 = child.draw(curctx, x + fullwidth - width, y)}\nelse if(alignment === \"center\") { ref3 = child.draw(curctx, x + (fullwidth - width) / 2, y)}\nelse { ref3 = child.draw(curctx, x, y) };const request_redraw =ref3\n result ||= request_redraw\n y += height\n }\n return result\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n let y = 0\n const fullwidth = ctx.measureNode(this).width\n const alignment = this.options.alignment ?? ctx.alignment\n if (this.options.alignment != null) { ctx.alignment = this.options.alignment }\n for (let ref4 = this.children, i4 = 0, len4 = ref4.length; i4 < len4; i4++) {const index = i4;const child = ref4[i4];\n if ((this.options.gap != null) && index !== 0) { y += this.options.gap }\n let { width, height } = shallow(ctx).measureNode(child)\n const curctx = shallow(ctx)\n if (test.y >= y && test.y < y + height) {\n return child.hittest(curctx, shallowMerge(test, {\n x: (()=>{if(alignment === \"right\") { return test.x - fullwidth + width}\nelse if(alignment === \"center\") { return test.x - (fullwidth - width) / 2}\nelse { return test.x }})(),\n y: test.y - y,\n }))\n }\n y += height\n }\n return false\n }\n}\n\nexport class HStack<C extends CanvasRenderingContext2D> extends Group<C> {\n constructor(\n readonly children: Node<C>[],\n readonly options: { reverse?: boolean; gap?: number } = {}\n ) { super(children) }\n\n measure(ctx: Context<C>): Box {\n let width = 0\n let height = 0\n let firstflex: (Node<C> | undefined)\n for (let ref5 = this.children, i5 = 0, len5 = ref5.length; i5 < len5; i5++) {const index = i5;const child = ref5[i5];\n if ((this.options.gap != null) && index !== 0) { width += this.options.gap }\n if ((firstflex == null) && child.flex) {\n firstflex = child\n continue\n }\n const curctx = shallow(ctx)\n curctx.remainingWidth = ctx.remainingWidth - width\n const result = curctx.measureNode(child)\n width += result.width\n height = Math.max(height, result.height)\n }\n\n if (firstflex != null) {\n const curctx = shallow(ctx)\n curctx.remainingWidth = ctx.remainingWidth - width\n const result = curctx.measureNode(firstflex)\n width += result.width\n height = Math.max(height, result.height)\n }\n\n return ({ width, height })\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n let result = false\n const reverse = this.options.reverse ?? ctx.reverse\n if (this.options.reverse) { ctx.reverse = this.options.reverse }\n if (reverse) {\n x += ctx.measureNode(this).width\n for (let ref6 = this.children, i6 = 0, len6 = ref6.length; i6 < len6; i6++) {const index = i6;const child = ref6[i6];\n let ref7;if ((ref7 = (((this.options.gap != null) && index !== 0?this.options.gap:void 0)))) {const gap = ref7;\n x -= gap\n ctx.remainingWidth -= gap\n }\n const { width } = shallow(ctx).measureNode(child)\n x -= width\n const request_redraw = child.draw(shallow(ctx), x, y)\n result ||= request_redraw\n ctx.remainingWidth -= width\n }\n }\n else {\n for (let ref8 = this.children, i7 = 0, len7 = ref8.length; i7 < len7; i7++) {const index = i7;const child = ref8[i7];\n let ref9;if ((ref9 = (((this.options.gap != null) && index !== 0?this.options.gap:void 0)))) {const gap = ref9;\n x += gap\n ctx.remainingWidth -= gap\n }\n const request_redraw = child.draw(shallow(ctx), x, y)\n result ||= request_redraw\n const { width } = shallow(ctx).measureNode(child)\n ctx.remainingWidth -= width\n x += width\n }\n }\n return result\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n const reverse = this.options.reverse ?? ctx.reverse\n if (this.options.reverse) { ctx.reverse = this.options.reverse }\n if (reverse) {\n let x = ctx.measureNode(this).width\n for (let ref10 = this.children, i8 = 0, len8 = ref10.length; i8 < len8; i8++) {const index = i8;const child = ref10[i8];\n let ref11;if ((ref11 = (((this.options.gap != null) && index !== 0?this.options.gap:void 0)))) {const gap = ref11;\n x -= gap\n ctx.remainingWidth -= gap\n }\n const { width } = shallow(ctx).measureNode(child)\n x -= width\n let ref12;if (x <= (ref12 = test.x) && ref12 <= x + width) {\n return child.hittest(shallow(ctx), shallowMerge(test, {\n x: test.x - x,\n }))\n }\n ctx.remainingWidth -= width\n }\n }\n else {\n let x = 0\n for (let ref13 = this.children, i9 = 0, len9 = ref13.length; i9 < len9; i9++) {const index = i9;const child = ref13[i9];\n let ref14;if ((ref14 = (((this.options.gap != null) && index !== 0?this.options.gap:void 0)))) {const gap = ref14;\n x += gap\n ctx.remainingWidth -= gap\n }\n const { width } = shallow(ctx).measureNode(child)\n let ref15;if (x <= (ref15 = test.x) && ref15 <= x + width) {\n return child.hittest(shallow(ctx), shallowMerge(test, {\n x: test.x - x,\n }))\n }\n x += width\n ctx.remainingWidth -= width\n }\n }\n return false\n }\n}\n\nexport class Wrapper<C extends CanvasRenderingContext2D> implements Node<C> {\n #inner: Node<C>;constructor(inner1: Node<C>) {\n this.#inner = inner1;\n registerNodeParent(this.#inner, this)\n }\n\n get inner() { return this.#inner }\n set inner(newnode: Node<C>) {\n if (newnode === this.#inner) { return }\n unregisterNodeParent(this.#inner)\n this.#inner = newnode\n registerNodeParent(newnode, this)\n }\n\n get flex() { return this.inner.flex }\n\n measure(ctx: Context<C>): Box {\n return this.inner.measure(ctx)\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n return this.inner.draw(ctx, x, y)\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n return this.inner.hittest(ctx, test)\n }\n}\n\nexport class PaddingBox<C extends CanvasRenderingContext2D> extends Wrapper<C> {\n constructor(\n inner: Node<C>,\n readonly padding: {\n top?: number\n bottom?: number\n left?: number\n right?: number\n }\n = {}\n ) { super(inner) }\n\n get #top() { return this.padding.top ?? 0 }\n get #bottom() { return this.padding.bottom ?? 0 }\n get #left() { return this.padding.left ?? 0 }\n get #right() { return this.padding.right ?? 0 }\n\n measure(ctx: Context<C>): Box {\n ctx.remainingWidth -= this.#left + this.#right\n const { width, height } = ctx.measureNode(this.inner)\n return ({width: width + this.#left + this.#right,\n height: height + this.#top + this.#bottom,})\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n ctx.remainingWidth -= this.#left + this.#right\n return this.inner.draw(ctx, x + this.#left, y + this.#top)\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n ctx.remainingWidth -= this.#left + this.#right\n const { width, height } = shallow(ctx).measureNode(this.inner)\n let ref16;let ref17;if(\n ((\n 0 <= (ref16 = test.x - this.#left) && ref16 < width)&&(\n 0 <= (ref17 = test.y - this.#top) && ref17 < height))) {\n return this.inner.hittest(shallow(ctx), shallowMerge(test, {\n x: test.x - this.#left,\n y: test.y - this.#top,\n }))\n }\n return false\n }\n}\n\nexport class AlignBox<C extends CanvasRenderingContext2D> extends Wrapper<C> {\n #shift = 0\n\n constructor(\n inner: Node<C>,\n readonly options: {alignment: Alignment}\n ) { super(inner) }\n\n measure(ctx: Context<C>): Box {\n ctx.alignment = this.options.alignment\n const { width, height } = ctx.measureNode(this.inner)\n let ref18;switch(this.options.alignment) {\n case 'center': { ref18 = (ctx.remainingWidth - width) / 2;break;\n }\n case 'right': { ref18 = ctx.remainingWidth - width;break;\n }\n default: { ref18 = 0 }\n };this.#shift = ref18\n return ({width: ctx.remainingWidth,\n height: height})\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n ctx.alignment = this.options.alignment\n return this.inner.draw(ctx, x + this.#shift, y)\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n ctx.alignment = this.options.alignment\n const { width } = shallow(ctx).measureNode(this.inner)\n let ref19;if (0 <= (ref19 = test.x - this.#shift) && ref19 < width) {\n return this.inner.hittest(shallow(ctx), shallowMerge(test, {\n x: test.x - this.#shift,\n }))\n }\n return false\n }\n}\n\nexport class MultilineText<C extends CanvasRenderingContext2D> implements Node<C> {\n #width: number = 0\n #lines: TextLayout[] = []\n\n constructor(\n readonly text: string,\n readonly options: {\n lineHeight: number\n font: string\n alignment: \"left\" | \"center\" | \"right\"\n style: DynValue<C, string>\n }\n ){}\n\n get flex() { return true }\n\n measure(ctx: Context<C>): Box {\n return ctx.with((g) => {\n g.font = this.options.font\n const {width: width1, lines } = layoutText(ctx, this.text, ctx.remainingWidth);this.#width = width1;this.#lines = lines;\n return ({ width: this.#width, height: this.#lines.length * this.options.lineHeight })\n })\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n return ctx.with((g) => {\n g.font = this.options.font\n g.fillStyle = ctx.resolveDynValue(this.options.style)\n switch(this.options.alignment) {\n case 'left': {\n for (let ref20 = this.#lines, i10 = 0, len10 = ref20.length; i10 < len10; i10++) {const { text, shift, lineHeight } = ref20[i10];\n g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2)\n y += this.options.lineHeight\n };break;\n }\n case 'right': {\n x += this.#width\n g.textAlign = \"right\"\n for (let ref21 = this.#lines, i11 = 0, len11 = ref21.length; i11 < len11; i11++) {const { text, shift, lineHeight } = ref21[i11];\n g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2)\n y += this.options.lineHeight\n };break;\n }\n case 'center': {\n x += this.#width / 2\n g.textAlign = \"center\"\n for (let ref22 = this.#lines, i12 = 0, len12 = ref22.length; i12 < len12; i12++) {const { text, shift, lineHeight } = ref22[i12];\n g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2)\n y += this.options.lineHeight\n };break;\n }\n }\n return false\n })\n }\n\n hittest(ctx: Context<C>, test: HitTest) { return false }\n}\n\nexport class Text<C extends CanvasRenderingContext2D> implements Node<C> {\n constructor(\n readonly text: string,\n readonly options: {\n lineHeight: number\n font: string\n style: DynValue<C, string>\n }\n ){}\n\n #width = 0\n #text = \"\"\n #shift = 0\n #lineHeight = 0\n\n get flex() { return false }\n\n measure(ctx: Context<C>): Box {\n return ctx.with((g) => {\n g.font = this.options.font\n const {width: width2,text: text1,shift: shift1,lineHeight: lineHeight1 } = layoutFirstLine(ctx, this.text, ctx.remainingWidth);this.#width = width2;this.#text = text1;this.#shift = shift1;this.#lineHeight = lineHeight1;\n return ({ width: this.#width, height: this.options.lineHeight })\n })\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n return ctx.with((g) => {\n g.font = this.options.font\n g.fillStyle = ctx.resolveDynValue(this.options.style)\n g.fillText(this.#text, x, y + this.#shift + (this.options.lineHeight - this.#lineHeight) / 2)\n return false\n })\n }\n\n hittest(ctx: Context<C>, test: HitTest) { return false }\n}\n\nexport class Fixed<C extends CanvasRenderingContext2D> implements Node<C> {\n constructor(readonly width: number, readonly height: number){}\n\n get flex() { return false }\n\n measure(ctx: Context<C>): Box {\n return ({ width: this.width, height: this.height })\n }\n\n draw(ctx: Context<C>, x: number, y: number) { return false }\n\n hittest(ctx: Context<C>, test: HitTest) { return false }\n}",
8
+ "import type { Box, Context, Node, HitTest, DynValue, Alignment } from \"./types.civet\";\nimport { layoutText, layoutFirstLine, type TextLayout } from \"./text.civet\";\nimport { shallow, shallowMerge } from \"./utils.civet\"\nimport { registerNodeParent, unregisterNodeParent } from \"./registry.civet\"\n\nexport abstract class Group<C extends CanvasRenderingContext2D> implements Node<C> {\n constructor(readonly children: Node<C>[]) {\n for (let i = 0, len = children.length; i < len; i++) {const child = children[i];\n registerNodeParent(child, this)\n }\n }\n\n abstract measure(ctx: Context<C>): Box\n abstract draw(ctx: Context<C>, x: number, y: number): boolean\n abstract hittest(ctx: Context<C>, test: HitTest): boolean\n get flex() {\n let results=false;for (let ref = this.children, i1 = 0, len1 = ref.length; i1 < len1; i1++) {const item = ref[i1];\n if (item.flex) {results = true; break}\n }return results\n }\n}\n\nexport class VStack<C extends CanvasRenderingContext2D> extends Group<C> {\n constructor(children: Node<C>[], readonly options: { gap?: number, alignment?: \"left\" | \"center\" | \"right\" } = {}) {\n super(children)\n }\n\n measure(ctx: Context<C>): Box {\n let width = 0\n let height = 0\n if (this.options.alignment != null) { ctx.alignment = this.options.alignment }\n for (let ref1 = this.children, i2 = 0, len2 = ref1.length; i2 < len2; i2++) {const index = i2;const child = ref1[i2];\n if ((this.options.gap != null) && index !== 0) { height += this.options.gap }\n let result = shallow(ctx).measureNode(child)\n height += result.height\n width = Math.max(width, result.width)\n }\n ctx.remainingWidth -= width\n return ({ width, height })\n }\n\n draw(ctx: Context<C>, x: number, y: number) {\n let result = false\n const fullwidth = ctx.measureNode(this).width\n const alignment = this.options.alignment ?? ctx.alignment\n if (this.options.alignment != null) { ctx.alignment = this.options.alignment }\n for (let ref2 = this.children, i3 = 0, len3 = ref2.length; i3 < len3; i3++) {const index = i3;const child = ref2[i3];\n if ((this.options.gap != null) && index !== 0) { y += this.options.gap }\n let { width, height } = shallow(ctx).measureNode(child)\n const curctx = shallow(ctx)\n let ref3;\n if(alignment === \"right\") { ref3 = child.draw(curctx, x + fullwidth - width, y)}\nelse if(alignment === \"center\") { ref3 = child.draw(curctx, x + (fullwidth - width) / 2, y)}\nelse { ref3 = child.draw(curctx, x, y) };const request_redraw =ref3\n result ||= request_redraw\n y += height\n }\n return result\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n let y = 0\n const fullwidth = ctx.measureNode(this).width\n const alignment = this.options.alignment ?? ctx.alignment\n if (this.options.alignment != null) { ctx.alignment = this.options.alignment }\n for (let ref4 = this.children, i4 = 0, len4 = ref4.length; i4 < len4; i4++) {const index = i4;const child = ref4[i4];\n if ((this.options.gap != null) && index !== 0) { y += this.options.gap }\n let { width, height } = shallow(ctx).measureNode(child)\n const curctx = shallow(ctx)\n if (test.y >= y && test.y < y + height) {\n let ref5;if(alignment === \"right\") { ref5 = test.x - fullwidth + width}\nelse if(alignment === \"center\") { ref5 = test.x - (fullwidth - width) / 2}\nelse { ref5 = test.x };const x =ref5\n if (x < 0 || x >= width) { return false }\n return child.hittest(curctx, shallowMerge(test, {\n x: x,\n y: test.y - y,\n }))\n }\n y += height\n }\n return false\n }\n}\n\nexport class HStack<C extends CanvasRenderingContext2D> extends Group<C> {\n constructor(\n readonly children: Node<C>[],\n readonly options: { reverse?: boolean; gap?: number } = {}\n ) { super(children) }\n\n measure(ctx: Context<C>): Box {\n let width = 0\n let height = 0\n let firstflex: (Node<C> | undefined)\n for (let ref6 = this.children, i5 = 0, len5 = ref6.length; i5 < len5; i5++) {const index = i5;const child = ref6[i5];\n if ((this.options.gap != null) && index !== 0) { width += this.options.gap }\n if ((firstflex == null) && child.flex) {\n firstflex = child\n continue\n }\n const curctx = shallow(ctx)\n curctx.remainingWidth = ctx.remainingWidth - width\n const result = curctx.measureNode(child)\n width += result.width\n height = Math.max(height, result.height)\n }\n\n if (firstflex != null) {\n const curctx = shallow(ctx)\n curctx.remainingWidth = ctx.remainingWidth - width\n const result = curctx.measureNode(firstflex)\n width += result.width\n height = Math.max(height, result.height)\n }\n\n return ({ width, height })\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n let result = false\n const reverse = this.options.reverse ?? ctx.reverse\n if (this.options.reverse) { ctx.reverse = this.options.reverse }\n if (reverse) {\n x += ctx.measureNode(this).width\n for (let ref7 = this.children, i6 = 0, len6 = ref7.length; i6 < len6; i6++) {const index = i6;const child = ref7[i6];\n let ref8;if ((ref8 = (((this.options.gap != null) && index !== 0?this.options.gap:void 0)))) {const gap = ref8;\n x -= gap\n ctx.remainingWidth -= gap\n }\n const { width } = shallow(ctx).measureNode(child)\n x -= width\n const request_redraw = child.draw(shallow(ctx), x, y)\n result ||= request_redraw\n ctx.remainingWidth -= width\n }\n }\n else {\n for (let ref9 = this.children, i7 = 0, len7 = ref9.length; i7 < len7; i7++) {const index = i7;const child = ref9[i7];\n let ref10;if ((ref10 = (((this.options.gap != null) && index !== 0?this.options.gap:void 0)))) {const gap = ref10;\n x += gap\n ctx.remainingWidth -= gap\n }\n const request_redraw = child.draw(shallow(ctx), x, y)\n result ||= request_redraw\n const { width } = shallow(ctx).measureNode(child)\n ctx.remainingWidth -= width\n x += width\n }\n }\n return result\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n const reverse = this.options.reverse ?? ctx.reverse\n if (this.options.reverse) { ctx.reverse = this.options.reverse }\n if (reverse) {\n let x = ctx.measureNode(this).width\n for (let ref11 = this.children, i8 = 0, len8 = ref11.length; i8 < len8; i8++) {const index = i8;const child = ref11[i8];\n let ref12;if ((ref12 = (((this.options.gap != null) && index !== 0?this.options.gap:void 0)))) {const gap = ref12;\n x -= gap\n ctx.remainingWidth -= gap\n }\n const { width } = shallow(ctx).measureNode(child)\n x -= width\n let ref13;if (x <= (ref13 = test.x) && ref13 <= x + width) {\n return child.hittest(shallow(ctx), shallowMerge(test, {\n x: test.x - x,\n }))\n }\n ctx.remainingWidth -= width\n }\n }\n else {\n let x = 0\n for (let ref14 = this.children, i9 = 0, len9 = ref14.length; i9 < len9; i9++) {const index = i9;const child = ref14[i9];\n let ref15;if ((ref15 = (((this.options.gap != null) && index !== 0?this.options.gap:void 0)))) {const gap = ref15;\n x += gap\n ctx.remainingWidth -= gap\n }\n const { width } = shallow(ctx).measureNode(child)\n let ref16;if (x <= (ref16 = test.x) && ref16 <= x + width) {\n return child.hittest(shallow(ctx), shallowMerge(test, {\n x: test.x - x,\n }))\n }\n x += width\n ctx.remainingWidth -= width\n }\n }\n return false\n }\n}\n\nexport class Wrapper<C extends CanvasRenderingContext2D> implements Node<C> {\n #inner: Node<C>;constructor(inner1: Node<C>) {\n this.#inner = inner1;\n registerNodeParent(this.#inner, this)\n }\n\n get inner() { return this.#inner }\n set inner(newnode: Node<C>) {\n if (newnode === this.#inner) { return }\n unregisterNodeParent(this.#inner)\n this.#inner = newnode\n registerNodeParent(newnode, this)\n }\n\n get flex() { return this.inner.flex }\n\n measure(ctx: Context<C>): Box {\n return this.inner.measure(ctx)\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n return this.inner.draw(ctx, x, y)\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n return this.inner.hittest(ctx, test)\n }\n}\n\nexport class PaddingBox<C extends CanvasRenderingContext2D> extends Wrapper<C> {\n constructor(\n inner: Node<C>,\n readonly padding: {\n top?: number\n bottom?: number\n left?: number\n right?: number\n }\n = {}\n ) { super(inner) }\n\n get #top() { return this.padding.top ?? 0 }\n get #bottom() { return this.padding.bottom ?? 0 }\n get #left() { return this.padding.left ?? 0 }\n get #right() { return this.padding.right ?? 0 }\n\n measure(ctx: Context<C>): Box {\n ctx.remainingWidth -= this.#left + this.#right\n const { width, height } = ctx.measureNode(this.inner)\n return ({width: width + this.#left + this.#right,\n height: height + this.#top + this.#bottom,})\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n ctx.remainingWidth -= this.#left + this.#right\n return this.inner.draw(ctx, x + this.#left, y + this.#top)\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n ctx.remainingWidth -= this.#left + this.#right\n const { width, height } = shallow(ctx).measureNode(this.inner)\n let ref17;let ref18;if(\n ((\n 0 <= (ref17 = test.x - this.#left) && ref17 < width)&&(\n 0 <= (ref18 = test.y - this.#top) && ref18 < height))) {\n return this.inner.hittest(shallow(ctx), shallowMerge(test, {\n x: test.x - this.#left,\n y: test.y - this.#top,\n }))\n }\n return false\n }\n}\n\nexport class AlignBox<C extends CanvasRenderingContext2D> extends Wrapper<C> {\n #shift = 0\n\n constructor(\n inner: Node<C>,\n readonly options: {alignment: Alignment}\n ) { super(inner) }\n\n measure(ctx: Context<C>): Box {\n ctx.alignment = this.options.alignment\n const { width, height } = ctx.measureNode(this.inner)\n let ref19;switch(this.options.alignment) {\n case 'center': { ref19 = (ctx.remainingWidth - width) / 2;break;\n }\n case 'right': { ref19 = ctx.remainingWidth - width;break;\n }\n default: { ref19 = 0 }\n };this.#shift = ref19\n return ({width: ctx.remainingWidth,\n height: height})\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n ctx.alignment = this.options.alignment\n return this.inner.draw(ctx, x + this.#shift, y)\n }\n\n hittest(ctx: Context<C>, test: HitTest): boolean {\n ctx.alignment = this.options.alignment\n const { width } = shallow(ctx).measureNode(this.inner)\n let ref20;if (0 <= (ref20 = test.x - this.#shift) && ref20 < width) {\n return this.inner.hittest(shallow(ctx), shallowMerge(test, {\n x: test.x - this.#shift,\n }))\n }\n return false\n }\n}\n\nexport class MultilineText<C extends CanvasRenderingContext2D> implements Node<C> {\n #width: number = 0\n #lines: TextLayout[] = []\n\n constructor(\n readonly text: string,\n readonly options: {\n lineHeight: number\n font: string\n alignment: \"left\" | \"center\" | \"right\"\n style: DynValue<C, string>\n }\n ){}\n\n get flex() { return true }\n\n measure(ctx: Context<C>): Box {\n return ctx.with((g) => {\n g.font = this.options.font\n const {width: width1, lines } = layoutText(ctx, this.text, ctx.remainingWidth);this.#width = width1;this.#lines = lines;\n return ({ width: this.#width, height: this.#lines.length * this.options.lineHeight })\n })\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n return ctx.with((g) => {\n g.font = this.options.font\n g.fillStyle = ctx.resolveDynValue(this.options.style)\n switch(this.options.alignment) {\n case 'left': {\n for (let ref21 = this.#lines, i10 = 0, len10 = ref21.length; i10 < len10; i10++) {const { text, shift, lineHeight } = ref21[i10];\n g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2)\n y += this.options.lineHeight\n };break;\n }\n case 'right': {\n x += this.#width\n g.textAlign = \"right\"\n for (let ref22 = this.#lines, i11 = 0, len11 = ref22.length; i11 < len11; i11++) {const { text, shift, lineHeight } = ref22[i11];\n g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2)\n y += this.options.lineHeight\n };break;\n }\n case 'center': {\n x += this.#width / 2\n g.textAlign = \"center\"\n for (let ref23 = this.#lines, i12 = 0, len12 = ref23.length; i12 < len12; i12++) {const { text, shift, lineHeight } = ref23[i12];\n g.fillText(text, x, y + shift + (this.options.lineHeight - lineHeight) / 2)\n y += this.options.lineHeight\n };break;\n }\n }\n return false\n })\n }\n\n hittest(ctx: Context<C>, test: HitTest) { return false }\n}\n\nexport class Text<C extends CanvasRenderingContext2D> implements Node<C> {\n constructor(\n readonly text: string,\n readonly options: {\n lineHeight: number\n font: string\n style: DynValue<C, string>\n }\n ){}\n\n #width = 0\n #text = \"\"\n #shift = 0\n #lineHeight = 0\n\n get flex() { return false }\n\n measure(ctx: Context<C>): Box {\n return ctx.with((g) => {\n g.font = this.options.font\n const {width: width2,text: text1,shift: shift1,lineHeight: lineHeight1 } = layoutFirstLine(ctx, this.text, ctx.remainingWidth);this.#width = width2;this.#text = text1;this.#shift = shift1;this.#lineHeight = lineHeight1;\n return ({ width: this.#width, height: this.options.lineHeight })\n })\n }\n\n draw(ctx: Context<C>, x: number, y: number): boolean {\n return ctx.with((g) => {\n g.font = this.options.font\n g.fillStyle = ctx.resolveDynValue(this.options.style)\n g.fillText(this.#text, x, y + this.#shift + (this.options.lineHeight - this.#lineHeight) / 2)\n return false\n })\n }\n\n hittest(ctx: Context<C>, test: HitTest) { return false }\n}\n\nexport class Fixed<C extends CanvasRenderingContext2D> implements Node<C> {\n constructor(readonly width: number, readonly height: number){}\n\n get flex() { return false }\n\n measure(ctx: Context<C>): Box {\n return ({ width: this.width, height: this.height })\n }\n\n draw(ctx: Context<C>, x: number, y: number) { return false }\n\n hittest(ctx: Context<C>, test: HitTest) { return false }\n}",
9
9
  "var concatAssign: <B, A extends {push: (this: A, b: B) => void} | (B extends unknown[] ? {push: (this: A, ...b: B) => void} : never)>(lhs: A, rhs: B) => A = (lhs, rhs) => (((rhs as any)?.[Symbol.isConcatSpreadable] ?? Array.isArray(rhs)) ? (lhs as any).push.apply(lhs, rhs as any) : (lhs as any).push(rhs), lhs);\nimport type { RendererOptions, Context, Node, Box, HitTest, DynValue, RenderFeedback } from \"./types.civet\"\nimport { shallow, shallowMerge } from \"./utils.civet\"\nimport { getNodeParent } from \"./registry.civet\"\n\nexport class BaseRenderer<C extends CanvasRenderingContext2D, O extends {} = {}> {\n graphics: C\n #ctx: Context<C>\n #lastWidth: number\n #cache = new WeakMap<Node<C>, Box>()\n\n protected get context() { return shallow(this.#ctx) }\n\n constructor(graphics1: C, readonly options: RendererOptions & O) {\n this.graphics = graphics1;\n this.graphics.textBaseline = 'top'\n this.graphics.textRendering = 'optimizeLegibility'\n const self = this\n this.#ctx = {\n graphics: this.graphics,\n get remainingWidth() { return this.graphics.canvas.clientWidth },\n set remainingWidth(value) {\n Object.defineProperty(this, \"remainingWidth\", {value: value, writable: true})\n },\n alignment: \"left\",\n reverse: false,\n measureNode(node: Node<C>) { return self.measureNode(node, this) },\n invalidateNode: this.invalidateNode.bind(this),\n resolveDynValue<T>(value: DynValue<C, T>): T {\n if (typeof value === \"function\") {\n return value(this.graphics)\n }\n else {\n return value as T\n }\n },\n with<T>(cb: (g: C) => T): T {\n this.graphics.save()\n try {\n return cb(this.graphics)} finally { this.graphics.restore() }\n },\n splitText(text: string) { return options.splitText(text) }}\n this.#lastWidth = this.graphics.canvas.clientWidth\n }\n\n invalidateNode(node: Node<C>): void {\n this.#cache.delete(node)\n let it: (Node<C> | undefined) = node\n while (it = getNodeParent(it)) {\n this.#cache.delete(it)\n }\n }\n\n measureNode(node: Node<C>, ctx?: Context<C>): Box {\n let ref;if (this.#lastWidth != this.graphics.canvas.clientWidth) {\n this.#cache = new WeakMap<Node<C>, Box>()\n }\n else if ((ref= this.#cache.get(node)) != null) {const result = ref;\n return result\n }\n const result = node.measure(ctx ?? this.context)\n this.#cache.set(node, result)\n return result\n }\n}\n\nexport class DebugRenderer<C extends CanvasRenderingContext2D> extends BaseRenderer<C> {\n draw(node: Node<C>): boolean {\n const { clientWidth: viewportWidth, clientHeight: viewportHeight } = this.graphics.canvas\n this.graphics.clearRect(0, 0, viewportWidth, viewportHeight)\n return node.draw(this.context, 0, 0)\n }\n\n hittest(node: Node<C>, test: HitTest): boolean {\n return node.hittest(this.context, test)\n }\n}\n\nexport function memoRenderItem<C extends CanvasRenderingContext2D, T extends {}>(renderItem: (item: T) => Node<C>) {\n const cache = new WeakMap<T, Node<C>>()\n function fn(item: T): Node<C> {\n let ref1;if ((ref1= cache.get(item)) != null) { const result = ref1;return result }\n const result = renderItem(item)\n cache.set(item, result)\n return result\n }\n return Object.assign(fn, {reset: cache.delete.bind(cache)})\n}\n\nexport class ListState<T extends {}> {\n offset = 0\n position = NaN\n items: T[] = []\n\n unshift(...items: T[]) { return this.unshiftAll(items) }\n\n unshiftAll(items: T[]) {\n this.position += items.length\n return this.items = items.concat(this.items)\n }\n\n push(...items: T[]) { return this.pushAll(items) }\n\n pushAll(items: T[]) { return concatAssign(this.items, items) }\n\n reset(): void {\n this.items = []\n this.offset = 0\n this.position = NaN\n }\n\n resetScroll(): void {\n this.offset = 0\n this.position = NaN\n }\n\n applyScroll(delta: number) { return this.offset += delta }\n}\n\nexport abstract class VirtualizedRenderer<C extends CanvasRenderingContext2D, T extends {}> extends BaseRenderer<C, {\n renderItem: (item: T) => Node<C>\n list: ListState<T>\n}> {\n get position() { return this.options.list.position }\n set position(value) { this.options.list.position = value }\n\n get offset() { return this.options.list.offset }\n set offset(value) { this.options.list.offset = value }\n\n get items() { return this.options.list.items }\n set items(value) { this.options.list.items = value }\n\n abstract render(): boolean\n abstract hittest(test: HitTest): boolean\n}\n\nexport class TimelineRenderer<C extends CanvasRenderingContext2D, T extends {}> extends VirtualizedRenderer<C, T> {\n #action: \"idle\" | \"scrollToTop\" = \"idle\"\n\n render(feedback?: RenderFeedback): boolean {\n const { clientWidth: viewportWidth, clientHeight: viewportHeight } = this.graphics.canvas\n this.graphics.clearRect(0, 0, viewportWidth, viewportHeight)\n\n let drawlength = 0\n\n if (isNaN(this.position)) { this.position = 0 }\n\n if (this.offset > 0) {\n if (this.position == 0) {\n this.offset = 0\n }\n else {\n for (let i1 = this.position - 1; i1 >= 0; --i1) {const i = i1;\n const item = this.items[i]\n const node = this.options.renderItem(item)\n const { height } = this.measureNode(node)\n this.position = i\n this.offset -= height\n if (this.offset <= 0) { break }\n }\n if (this.position == 0 && this.offset > 0) { this.offset = 0 }\n }\n }\n\n let y = this.offset\n const drawlist: [Node<C>, number][] = []\n\n feedback != null ? feedback.minIdx = this.position : void 0\n\n for (let end = this.items.length, i2 = this.position; i2 < end; ++i2) {const i = i2;\n const item = this.items[i]\n const node = this.options.renderItem(item)\n const { height } = this.measureNode(node)\n if (y + height > 0) {\n drawlist.push([node, y])\n drawlength += height\n feedback != null ? feedback.maxIdx = i : void 0\n }\n else {\n this.offset += height\n this.position = i + 1\n }\n y += height\n if (y >= viewportHeight) { break }\n }\n\n let shift = 0\n\n if (y < viewportHeight) {\n if (this.position == 0 && drawlength < viewportHeight) {\n shift = -this.offset\n this.offset = 0\n }\n else {\n shift = viewportHeight - y\n y = this.offset += shift\n let lastidx = -1\n for (let i3 = this.position - 1; i3 >= 0; --i3) {const i = i3;\n const item = this.items[lastidx = i]\n const node = this.options.renderItem(item)\n const { height } = this.measureNode(node)\n drawlength += height\n y -= height\n drawlist.push([node, y - shift])\n feedback != null ? feedback.minIdx = i : void 0\n if (y < 0) { break }\n }\n if (lastidx == 0 && drawlength < viewportHeight) {\n shift = -drawlist[drawlist.length-1][1]\n this.position = 0\n this.offset = 0\n }\n }\n }\n\n let result = false\n for (let i4 = 0, len = drawlist.length; i4 < len; i4++) {const [node, y] = drawlist[i4];\n const request_redraw = node.draw(this.context, 0, y + shift)\n result ||= request_redraw\n }\n\n if (this.#action === 'scrollToTop') {\n if (this.position === 0 && this.offset === 0) {\n this.#action = \"idle\"\n }\n else {\n this.options.list.applyScroll(5 * (this.position + 1))\n return true\n }\n }\n return result\n }\n\n hittest(test: HitTest): boolean {\n const viewportHeight = this.graphics.canvas.clientHeight\n let y = this.offset\n for (let end1 = this.items.length, i5 = this.position; i5 < end1; ++i5) {const i = i5;\n const item = this.items[i]\n const node = this.options.renderItem(item)\n const { height } = this.measureNode(node)\n if (test.y < y + height) {\n return node.hittest(this.context, shallowMerge(test, {y: test.y - y}))\n }\n y += height\n if (y >= viewportHeight) { break }\n }\n return false\n }\n\n scrollToTop(): void {\n this.#action = \"scrollToTop\"\n }\n}\n\nexport class ChatRenderer<C extends CanvasRenderingContext2D, T extends {}> extends VirtualizedRenderer<C, T> {\n #action: \"idle\" | \"scrollToBottom\" = \"idle\"\n\n render(feedback?: RenderFeedback) {\n const { clientWidth: viewportWidth, clientHeight: viewportHeight } = this.graphics.canvas\n this.graphics.clearRect(0, 0, viewportWidth, viewportHeight)\n\n let drawlength = 0\n if (isNaN(this.position)) { this.position = this.items.length - 1 }\n\n if (this.offset < 0) {\n if (this.position == this.items.length - 1) {\n this.offset = 0\n }\n else {\n for (let end2 = this.items.length, i6 = this.position + 1; i6 < end2; ++i6) {const i = i6;\n const item = this.items[i]\n const node = this.options.renderItem(item)\n const { height } = this.measureNode(node)\n this.position = i\n this.offset += height\n if (this.offset > 0) { break }\n }\n }\n }\n\n let y = viewportHeight + this.offset\n const drawlist: [Node<C>, number][] = []\n\n feedback != null ? feedback.maxIdx = this.position : void 0\n\n for (let i7 = this.position; i7 >= 0; --i7) {const i = i7;\n const item = this.items[i]\n const node = this.options.renderItem(item)\n const { height } = this.measureNode(node)\n y -= height\n if (y <= viewportHeight) {\n drawlist.push([node, y])\n drawlength += height\n feedback != null ? feedback.minIdx = i : void 0\n }\n else {\n this.offset -= height\n this.position = i - 1\n }\n if (y < 0) { break }\n }\n\n let shift = 0\n\n if (y > 0) {\n shift = -y\n if (drawlength < viewportHeight) {\n y = drawlength\n for (let end3 = this.items.length, i8 = this.position + 1; i8 < end3; ++i8) {const i = i8;\n const item = this.items[i]\n const node = this.options.renderItem(item)\n const { height } = this.measureNode(node)\n drawlist.push([node, y - shift])\n y = drawlength += height\n this.position = i\n feedback != null ? feedback.maxIdx = i : void 0\n if (y >= viewportHeight) { break }\n }\n if (drawlength < viewportHeight) {\n this.offset = 0\n }\n else {\n this.offset = drawlength - viewportHeight\n }\n }\n else {\n this.offset = drawlength - viewportHeight\n }\n }\n\n let result = false\n for (let i9 = 0, len1 = drawlist.length; i9 < len1; i9++) {const [node, y] = drawlist[i9];\n const request_redraw = node.draw(this.context, 0, y + shift)\n result ||= request_redraw\n }\n\n if (this.#action === 'scrollToBottom') {\n if (this.position === this.items.length - 1 && this.offset === 0) {\n this.#action = \"idle\"\n }\n else {\n this.options.list.applyScroll(-5 * (this.items.length - this.position))\n return true\n }\n }\n return result\n }\n\n hittest(test: HitTest): boolean {\n const viewportHeight = this.graphics.canvas.clientHeight\n\n let drawlength = 0\n\n const results=[];for (let i10 = this.position; i10 >= 0; --i10) {const i = i10;\n const item = this.items[i]\n const node = this.options.renderItem(item)\n const { height } = this.measureNode(node)\n drawlength += height\n results.push([node, height] as const)\n };const heights =results\n\n let y = drawlength < viewportHeight ? drawlength : viewportHeight + this.offset\n\n if (test.y > y) { return false }\n\n for (let i11 = 0, len2 = heights.length; i11 < len2; i11++) {const [node, height] = heights[i11];\n y -= height\n if (test.y > y) {\n return node.hittest(this.context, shallowMerge(test, {y: test.y - y}))\n }\n }\n\n return false\n }\n\n scrollToBottom(): void {\n this.#action = \"scrollToBottom\"\n }\n}"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "825DA65A294F10FE64756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "1C49092FC0BEE04D64756E2164756E21",
13
13
  "names": []
14
14
  }
package/package.json CHANGED
@@ -4,5 +4,5 @@
4
4
  "type": "module",
5
5
  "devDependencies": {},
6
6
  "dependencies": {},
7
- "version": "0.0.12"
7
+ "version": "0.0.13"
8
8
  }