@thegraid/hexlib 1.1.5 → 1.1.8

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/shapes.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { C, className } from "@thegraid/common-lib";
2
- import { CenterText } from "@thegraid/easeljs-lib";
3
- import { Container, Graphics, Shape, Text } from "@thegraid/easeljs-module";
2
+ import { afterUpdate, CenterText } from "@thegraid/easeljs-lib";
3
+ import { Container, Graphics, Shape } from "@thegraid/easeljs-module";
4
4
  import { H } from "./hex-intfs";
5
5
  import { TP } from "./table-params";
6
6
  export class C1 {
@@ -21,6 +21,11 @@ export class C1 {
21
21
  * - }
22
22
  * - }
23
23
  */
24
+ // The "origin story" was to create new Shapes without subclassing.
25
+ // Just make a new PaintableShape with its CGF
26
+ // can even compose by passing/invoking the CGF of other Shapes.
27
+ // the tricky bit for that is finding the 'inherited' CGF;
28
+ // maybe a known static; or constructor arg: either a CGF or a PS instance.
24
29
  export class PaintableShape extends Shape {
25
30
  _cgf;
26
31
  colorn;
@@ -66,36 +71,135 @@ export class PaintableShape extends Shape {
66
71
  }
67
72
  return this.graphics;
68
73
  }
74
+ // easeljs does: BitMap, Sprite (Frame?), Text, Filter, BitmapCache, BlurFilter
75
+ // easeljs does Container as union of bounds provided by children.
76
+ /**
77
+ * Paintable shape can & should calculate its Bounds.
78
+ *
79
+ * Subclasses should override to calculate their bounds.
80
+ * @param x
81
+ * * undefined -> calculate bounds,
82
+ * * null -> remove bounds,
83
+ * * number -> set to {x, y, width, height}
84
+ * @param y
85
+ * @param width
86
+ * @param height
87
+ */
88
+ setBounds(x, y, width, height) {
89
+ if (x === undefined) {
90
+ const cached = this.cacheID; // undefined | number >= 1
91
+ this.uncache();
92
+ // setBounds(null, 0, 0, 0); // not nec'sary/useful
93
+ const { x, y, w, h } = this.calcBounds();
94
+ super.setBounds(x, y, w, h);
95
+ if (cached)
96
+ this.cache(x, y, w, h); // recache if previously cached
97
+ }
98
+ else {
99
+ super.setBounds(x, y, width, height);
100
+ }
101
+ }
102
+ /** subclass to override to compute actual bounds of their Shape. */
103
+ calcBounds() {
104
+ return { x: 0, y: 0, w: 5, h: 5 };
105
+ }
106
+ // TODO/QQQ: declare in Paintable?
107
+ /** ensure PaintableShape is cached; expect setBounds() already done. */
108
+ setCacheID() {
109
+ let b = this.getBounds();
110
+ if (!b) {
111
+ debugger;
112
+ b = { x: 0, y: 0, width: 8, height: 8 };
113
+ }
114
+ this.cache(b.x, b.y, b.width, b.height);
115
+ }
116
+ }
117
+ /** an n-sided Polygon, tilted */
118
+ export class PolyShape extends PaintableShape {
119
+ rad = TP.hexRad;
120
+ nsides = 4;
121
+ pSize = 0;
122
+ tilt = 0;
123
+ fillc = C.grey;
124
+ strokec = C.black;
125
+ /**
126
+ * pscgf() invokes drawPoly(0,0,...);
127
+ *
128
+ * To adjust (x,y): supply g0 = new Graphics().mt(x,y)
129
+ * @param params \{ rad, nsides, pSize, tilt, fillc, strokec }
130
+ * @param g0 Graphics base
131
+ */
132
+ constructor({ rad, nsides, pSize, tilt, fillc, strokec }, g0) {
133
+ super((fillc, g) => this.pscgf(fillc, g ?? g0), fillc, g0);
134
+ this.nsides = nsides ?? 4;
135
+ this.rad = rad ?? TP.hexRad;
136
+ this.pSize = pSize ?? 0;
137
+ this.tilt = tilt ?? 0;
138
+ this.fillc = fillc ?? C.grey;
139
+ this.strokec = strokec ?? C.black;
140
+ this._cgf = this.pscgf;
141
+ this.paint(fillc);
142
+ }
143
+ /** set fillc and strokec, invoke drawPoly(0, 0, ...) */
144
+ pscgf(fillc, g = this.g0) {
145
+ ((this.fillc = fillc) ? g.f(fillc) : g.ef());
146
+ (this.strokec ? g.s(this.strokec) : g.es());
147
+ g.dp(0, 0, this.rad, this.nsides, this.pSize, this.tilt * H.degToRadians);
148
+ return g;
149
+ }
150
+ setBounds(x, y, width, height) {
151
+ if (x === undefined) {
152
+ // overestimate: without nsides & tilt
153
+ this.setBounds(-this.rad, -this.rad, 2 * this.rad, 2 * this.rad);
154
+ }
155
+ else {
156
+ super.setBounds(x, y, width, height);
157
+ }
158
+ }
69
159
  }
70
160
  /**
71
- * The colored PaintableShape that fills a Hex.
161
+ * A colored PaintableShape that fills a Hex.
162
+ *
72
163
  * @param radius in call to drawPolyStar()
73
164
  */
74
165
  export class HexShape extends PaintableShape {
75
166
  radius;
76
167
  tilt;
168
+ /**
169
+ *
170
+ * @param radius [TP.hexRad] radius of hexagon
171
+ * @param tilt [EwTopo ? 30 : 0] tilt to align EW as vertical
172
+ */
77
173
  constructor(radius = TP.hexRad, tilt = TP.useEwTopo ? 30 : 0) {
78
174
  super((fillc) => this.hscgf(fillc));
79
175
  this.radius = radius;
80
176
  this.tilt = tilt;
81
- this.setHexBounds(); // Assert radius & tilt are readonly, so bounds never changes!
177
+ this.setBounds(undefined, 0, 0, 0); // ASSERT: radius & tilt are readonly, so bounds never changes!
82
178
  }
179
+ /**
180
+ * @deprecated use setBounds(undefined, 0, 0, 0)
181
+ * @param r [this.radius]
182
+ * @param tilt [this.tilt]
183
+ */
83
184
  setHexBounds(r = this.radius, tilt = this.tilt) {
84
185
  const b = H.hexBounds(r, tilt);
85
186
  this.setBounds(b.x, b.y, b.width, b.height);
86
187
  }
87
- setCacheID() {
88
- const b = this.getBounds(); // Bounds are set
89
- this.cache(b.x, b.y, b.width, b.height);
90
- }
91
188
  /**
92
189
  * Draw a Hexagon 1/60th inside the given radius.
93
- * overrides should include call to setHexBounds(radius, angle)
94
- * or in other way setBounds().
95
190
  */
96
191
  hscgf(color, g0 = this.graphics) {
97
192
  return g0.f(color).dp(0, 0, Math.floor(this.radius * 59 / 60), 6, 0, this.tilt); // 30 or 0
98
193
  }
194
+ setBounds(x, y, width, height) {
195
+ if (x === undefined) {
196
+ const b = H.hexBounds(this.radius, this.tilt);
197
+ this.setBounds(b.x, b.y, b.width, b.height);
198
+ }
199
+ else {
200
+ super.setBounds(x, y, width, height);
201
+ }
202
+ }
99
203
  }
100
204
  export class EllipseShape extends PaintableShape {
101
205
  fillc;
@@ -120,9 +224,17 @@ export class EllipseShape extends PaintableShape {
120
224
  cscgf(fillc, g = this.g0) {
121
225
  ((this.fillc = fillc) ? g.f(fillc) : g.ef());
122
226
  (this.strokec ? g.s(this.strokec) : g.es());
123
- g.de(-this.radx, -this.rady, 2 * this.radx, 2 * this.rady); // easlejs can determine Bounds of Ellipse
227
+ g.de(-this.radx, -this.rady, 2 * this.radx, 2 * this.rady);
124
228
  return g;
125
229
  }
230
+ setBounds(x, y, width, height) {
231
+ if (x === undefined) {
232
+ this.setBounds(-this.radx, -this.rady, 2 * this.radx, 2 * this.rady);
233
+ }
234
+ else {
235
+ super.setBounds(x, y, width, height);
236
+ }
237
+ }
126
238
  }
127
239
  /**
128
240
  * Circle centered on (0,0)
@@ -134,78 +246,80 @@ export class CircleShape extends EllipseShape {
134
246
  super(fillc, rad, rad, strokec, g0);
135
247
  }
136
248
  }
137
- export class PolyShape extends PaintableShape {
138
- nsides;
139
- tilt;
140
- fillc;
141
- rad;
142
- strokec;
143
- constructor(nsides = 4, tilt = 0, fillc = C.white, rad = TP.hexRad / 2, strokec = C.black, g0) {
144
- super((fillc) => this.pscgf(fillc), fillc, g0);
145
- this.nsides = nsides;
146
- this.tilt = tilt;
147
- this.fillc = fillc;
148
- this.rad = rad;
149
- this.strokec = strokec;
150
- this._cgf = this.pscgf;
151
- this.paint(fillc);
152
- }
153
- pscgf(fillc, g = this.g0) {
154
- ((this.fillc = fillc) ? g.f(fillc) : g.ef());
155
- (this.strokec ? g.s(this.strokec) : g.es());
156
- g.dp(0, 0, this.rad, this.nsides, 0, this.tilt * H.degToRadians);
157
- return g;
158
- }
159
- }
249
+ /** a Rectangular Shape, maybe with rounded corners */
160
250
  export class RectShape extends PaintableShape {
161
251
  fillc;
162
252
  strokec;
163
- static rectWHXY(w, h, x = -w / 2, y = -h / 2, g0 = new Graphics()) {
164
- return g0.dr(x, y, w, h);
165
- }
166
- static rectWHXYr(w, h, x = -w / 2, y = -h / 2, r = 0, g0 = new Graphics()) {
167
- return g0.rr(x, y, w, h, r);
168
- }
169
- /** draw rectangle suitable for given Text; with border, textAlign. */
170
- static rectText(t, fs, b, align = (t instanceof Text) ? t.textAlign : 'center', g0 = new Graphics()) {
171
- const txt = (t instanceof Text) ? t : new CenterText(t, fs ?? 30);
172
- txt.textAlign = align;
173
- if (txt.text === undefined)
174
- return g0; // or RectShape.rectWHXY(0,0,0,0); ??
175
- if (fs === undefined)
176
- fs = txt.getMeasuredHeight();
177
- if (b === undefined)
178
- b = fs * .1;
179
- const txtw = txt.getMeasuredWidth(), w = b + txtw + b, h = b + fs + b;
180
- const x = (align == 'right') ? w - b : (align === 'left') ? -b : w / 2;
181
- return RectShape.rectWHXY(w, h, -x, -h / 2, g0);
182
- }
183
- rect;
184
- rc = 0;
185
- constructor({ x = 0, y = 0, w = TP.hexRad / 2, h = TP.hexRad / 2, r = 0 }, fillc = C.white, strokec = C.black, g0) {
253
+ // static rectWHXY(w: number, h: number, x = -w / 2, y = -h / 2, g0 = new Graphics()) {
254
+ // return g0.dr(x, y, w, h)
255
+ // }
256
+ // static rectWHXYr(w: number, h: number, x = -w / 2, y = -h / 2, r = 0, g0 = new Graphics()) {
257
+ // return g0.rr(x, y, w, h, r);
258
+ // }
259
+ // /**
260
+ // * paint a background RectShape for given Text.
261
+ // * @param txt Text
262
+ // * @param b border size around text [txt.getMeasuredLineHeight * .1]
263
+ // * @param g0 append to Graphics [new Graphics()]
264
+ // * @returns
265
+ // */
266
+ // static rectText(txt: Text, b?: number, g0 = new Graphics()) {
267
+ // const fs = txt.getMeasuredLineHeight();
268
+ // if (b === undefined) b = fs * .1;
269
+ // const { x, y, width, height } = txt.getBounds();
270
+ // return RectShape.rectWHXY(width + 2 * b, height + 2 * b, x - b, y - b, g0);
271
+ // }
272
+ // compare to Bounds;
273
+ // this._bounds: Rectangle === { x, y, width, height }
274
+ // this._rectangle: Rectangle === { x, y, width, height }
275
+ _rect;
276
+ _cRad = 0;
277
+ /**
278
+ * Paint a rectangle (possibly with rounded corners) with fillc and stroke.
279
+ * @param rect \{ x=0, y=0, w=hexRad, h=hexRad, r=0 } origin, extent and corner radius of Rectangle
280
+ * @param fillc [C.white] color to fill the rectangle, '' for no fill
281
+ * @param strokec [C.black] stroke color, '' for no stroke
282
+ * @param g0 [new Graphics()] Graphics to clone and extend during paint()
283
+ */
284
+ constructor({ x = 0, y = 0, w = TP.hexRad, h = TP.hexRad, r = 0 }, fillc = C.white, strokec = C.black, g0) {
186
285
  super((fillc) => this.rscgf(fillc), fillc, g0);
187
286
  this.fillc = fillc;
188
287
  this.strokec = strokec;
189
288
  this._cgf = this.rscgf;
190
- this.rect = { x, y, w, h };
289
+ this._cRad = r;
290
+ this._rect = { x, y, w, h };
191
291
  this.setBounds(x, y, w, h);
192
- this.rc = r;
193
292
  this.paint(fillc, true); // this.graphics = rscgf(...)
194
293
  }
294
+ /** update any of {x, y, w, h, r} for future paint() or setBounds(...) */
295
+ setRectRad({ x = this._rect.x, y = this._rect.y, w = this._rect.w, h = this._rect.h, r = this._cRad }) {
296
+ this._cRad = r ?? this._cRad;
297
+ this._rect = { x, y, w, h };
298
+ }
299
+ setBounds(x, y, width, height) {
300
+ if (x === undefined) {
301
+ const b = this._rect;
302
+ this.setBounds(b.x, b.y, b.w, b.h);
303
+ }
304
+ else {
305
+ super.setBounds(x, y, width, height);
306
+ }
307
+ }
195
308
  rscgf(fillc, g = this.g0) {
196
- const { x, y, w, h } = this.rect, r = TP.hexRad / 2;
309
+ const { x, y, w, h } = this._rect;
197
310
  (fillc ? g.f(fillc) : g.ef());
198
311
  (this.strokec ? g.s(this.strokec) : g.es());
199
- if (this.rc === 0) {
200
- g.dr(x ?? 0, y ?? 0, w ?? r, h ?? r);
312
+ if (this._cRad === 0) {
313
+ g.dr(x, y, w, h);
201
314
  }
202
315
  else {
203
- g.rr(x ?? 0, y ?? 0, w ?? r, h ?? r, this.rc);
316
+ g.rr(x, y, w, h, this._cRad);
317
+ // note: there is also a drawRoundRectComplex(x,y,w,h,rTL,rTR,rBR,rBL)
204
318
  }
205
319
  return g;
206
320
  }
207
321
  }
208
- /** from hextowns, with translucent center. */
322
+ /** from hextowns, with translucent center circle. */
209
323
  export class TileShape extends HexShape {
210
324
  static fillColor = C1.lightgrey_8; // 'rgba(200,200,200,.8)'
211
325
  constructor(radius, tilt) {
@@ -225,10 +339,9 @@ export class TileShape extends HexShape {
225
339
  return g;
226
340
  }
227
341
  bgColor = C.nameToRgbaString(C.WHITE, .8);
228
- /** colored HexShape filled with very-lightgrey disk: */
342
+ /** colored HexShape filled with very-lightgrey disk: interpose on cgf with replaceDisk */
229
343
  tscgf(colorn, g0 = this.cgfGraphics?.clone() ?? new Graphics(), super_cgf = (color) => new Graphics()) {
230
- // HexShape.cgf(rgba(C.WHITE, .8))
231
- const g = this.graphics = super_cgf.call(this, this.bgColor); // paint HexShape(White)
344
+ const g = this.graphics = super_cgf.call(this, this.bgColor); // HexShape.cgf(rgba(C.White, .8))
232
345
  const fillColor = C.nameToRgbaString(colorn, .8);
233
346
  this.replaceDisk(fillColor, this.radius * H.sqrt3_2 * (55 / 60));
234
347
  return this.graphics = g;
@@ -247,31 +360,96 @@ export class LegalMark extends Shape {
247
360
  parent.addChild(this);
248
361
  }
249
362
  }
250
- export class UtilButton extends Container {
251
- fontSize;
252
- textColor;
253
- blocked = false;
254
- shape;
363
+ // TODO: Mixin base class PaintableShape? and override everything except setBounds()?
364
+ /** A Text label above a colored RectShape.
365
+ *
366
+ * Configure the border width [.3] and corner radius [0].
367
+ */
368
+ export class TextInRect extends Container {
369
+ /** draws a RectShape around label_text, with border, no strokec */
370
+ rectShape = new RectShape({ x: 0, y: 0, w: 8, h: 8, r: 0 });
371
+ /** Text object to be displayed above an RectShape of color */
255
372
  label;
373
+ _border;
374
+ /** extend RectShape around Text bounds; fraction of line height. */
375
+ get border() { return this._border; }
376
+ set border(b) { this._border = b; }
377
+ _corner;
378
+ /** corner radius; fraction of line height. */
379
+ get corner() { return this._corner; }
380
+ set corner(rc) {
381
+ this._corner = rc;
382
+ const r = rc * this.label.getMeasuredLineHeight();
383
+ this.rectShape.setRectRad({ r });
384
+ }
385
+ /** the string inside the Text label. */
256
386
  get label_text() { return this.label.text; }
257
- set label_text(t) {
258
- this.label.text = t;
387
+ set label_text(txt) {
388
+ this.label.text = txt;
389
+ this.setBounds(undefined, 0, 0, 0);
259
390
  this.paint(undefined, true);
260
391
  }
261
- constructor(color, text, fontSize = TP.hexRad / 2, textColor = C.black, cgf) {
392
+ /**
393
+ * Create Container with Text above a RectShape.
394
+ * @param color of background RectShape.
395
+ * @param text label
396
+ * @param border [.3] extend RectShape around Text; fraction of fontSize
397
+ * @param corner [0] corner radius as fraction of fontSize
398
+ * @param cgf [new Graphics()]
399
+ */
400
+ constructor(color, label, border = .3, corner = 0, cgf) {
262
401
  super();
263
- this.fontSize = fontSize;
264
- this.textColor = textColor;
265
- this.label = new CenterText(text, fontSize, textColor);
266
- this.shape = new PaintableShape(cgf ?? ((c) => this.ubcsf(c)));
267
- this.shape.paint(color);
268
- this.addChild(this.shape, this.label);
402
+ this.label = label;
403
+ this.border = border;
404
+ this.corner = corner; // _rShape._cRad = corner
405
+ this.setBounds(undefined, 0, 0, 0); // calc (Text + border) -> rectShape -> this
406
+ this.rectShape.paint(color); // set initial color, Graphics
407
+ this.addChild(this.rectShape, this.label);
408
+ }
409
+ /** TextInRect.paint(color) paints new color for the backing RectShape. */
410
+ paint(color = this.rectShape.colorn, force = false) {
411
+ this.rectShape.rscgf;
412
+ return this.rectShape.paint(color, force);
269
413
  }
270
- ubcsf(color, g = new Graphics()) {
271
- return RectShape.rectText(this.label.text, this.fontSize, this.fontSize * .3, this.label.textAlign, g.f(color));
414
+ calcBounds() {
415
+ const tb = this.label.getBounds(), db = this.label.getMeasuredLineHeight() * this._border;
416
+ const b = { x: tb.x - db, y: tb.y - db, w: tb.width + 2 * db, h: tb.height + 2 * db };
417
+ return b;
272
418
  }
273
- paint(color = this.shape.colorn, force = false) {
274
- return this.shape.paint(color, force);
419
+ // Bounds = (label:Text + border) -> rectShape._rect [& cRad] -> this._bounds
420
+ // Copied from/to PaintableShape.setBounds()
421
+ setBounds(x, y, width, height) {
422
+ if (x === undefined) {
423
+ const { x, y, w, h } = this.calcBounds(), cached = this.cacheID;
424
+ this.uncache();
425
+ super.setBounds(x, y, w, h);
426
+ if (cached)
427
+ this.cache(x, y, w, h); // recache if previously cached
428
+ }
429
+ else {
430
+ super.setBounds(x, y, width, height);
431
+ }
432
+ }
433
+ }
434
+ // From ankh, 'done' button to move to next phase or action.
435
+ /** Construct a CenterText for a TextInRect. */
436
+ export class UtilButton extends TextInRect {
437
+ fontSize;
438
+ textColor;
439
+ /**
440
+ * Create Container with CenterText above a RectShape.
441
+ * @param color of background RectShape.
442
+ * @param text label
443
+ * @param fontSize [TP.hexRad/2]
444
+ * @param textColor [C.black]
445
+ * @param border [.3]
446
+ * @param cgf [trcsf]
447
+ */
448
+ constructor(color, text, fontSize = TP.hexRad / 2, textColor = C.black, border = .3, cgf) {
449
+ const label = new CenterText(text, fontSize, textColor);
450
+ super(color, label, border, 0, cgf);
451
+ this.fontSize = fontSize;
452
+ this.textColor = textColor;
275
453
  }
276
454
  /**
277
455
  * Repaint the stage with button visible or not.
@@ -279,31 +457,16 @@ export class UtilButton extends Container {
279
457
  * Allow Chrome to finish stage.update before proceeding with afterUpdate().
280
458
  *
281
459
  * Other code can watch this.blocked; then call updateWait(false) to reset.
282
- * @param hide true to hide and disable the turnButton
283
- * @param afterUpdate callback ('drawend') when stage.update is done [none]
284
- * @param scope thisArg for afterUpdate [this TurnButton]
285
- * @deprecated use easeljs-lib afterUpdate(container, function)
460
+ * @param after callback on('drawend') when stage.update is done [none]
461
+ * @param scope thisArg for after [this UtilButton]
462
+ * @param hide [false] true to hide and disable this UtilButton
463
+ * @deprecated use easeljs-lib.afterUpdate(cont, after, scope) directly
286
464
  */
287
- updateWait(hide, afterUpdate, scope = this) {
288
- this.blocked = hide;
465
+ updateWait(after, scope = this, hide = false) {
289
466
  this.visible = this.mouseEnabled = !hide;
290
467
  // using @thegraid/easeljs-module@^1.1.8: on(once=true) will now 'just work'
291
- afterUpdate && this.stage.on('drawend', afterUpdate, scope, true);
292
- this.stage.update();
293
- }
294
- }
295
- export class EdgeShape extends Shape {
296
- color;
297
- hex;
298
- dir;
299
- constructor(color, hex, dir, parent) {
300
- super();
301
- this.color = color;
302
- this.hex = hex;
303
- this.dir = dir;
304
- this.reset();
305
- parent.addChild(this);
468
+ // using @thegraid/common-lib@^1.3.12: afterUpdate will always update
469
+ afterUpdate(this, after, scope);
306
470
  }
307
- reset(color = this.color) { this.graphics.c().ss(12, 'round', 'round').s(color); }
308
471
  }
309
472
  //# sourceMappingURL=shapes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shapes.js","sourceRoot":"","sources":["../src/shapes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shapes.js","sourceRoot":"","sources":["../src/shapes.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,47 @@
1
- export declare const playerColors: readonly ["b", "w"];
2
- export declare const playerColorsC: readonly ["b", "w", "c"];
3
- export declare const playerColor0: "b";
4
- export declare const playerColor1: "w";
5
- export declare const playerColor2: "c";
6
- export type PlayerColor = typeof playerColorsC[number];
1
+ declare const playerColorsLib: readonly ["b", "w"];
2
+ export declare const playerColors: ("b" | "w")[];
3
+ /** Default type for PlayerColor. Maybe don't import, define your own locally.
4
+ *
5
+ * @example
6
+ * import { playerColors, PlayerColor as PCLib } from "@thegraid/hexlib"
7
+ * playerColors.push('c')
8
+ * type PlayerColor = PCLib | 'c' // Player Colors + Criminal!
9
+ */
10
+ export type PlayerColor = typeof playerColorsLib[number];
11
+ export declare const playerColor0: "b" | "w";
12
+ export declare const playerColor1: "b" | "w";
7
13
  export declare function otherColor(color: PlayerColor): PlayerColor;
8
- /** PlayerColerRecord<T> maps from PlayerColor -> T */
9
14
  export type PlayerColorRecord<T> = Record<PlayerColor, T>;
10
- export declare function playerColorRecord<T>(b: T, w: T, c: T): PlayerColorRecord<T>;
15
+ /** @return \{ pc0: arg0 as T, pc1: arg1 as T, ...}: PlayerColorRecord\<T> */
16
+ export declare function playerColorRecord<T>(...args: T[]): PlayerColorRecord<T>;
11
17
  export declare function playerColorRecordF<T>(f: (sc: PlayerColor) => T): PlayerColorRecord<T>;
12
- /** OR: import { Params } from "@angular/router"; */
18
+ /** 'Object' OR: import { Params } from "@angular/router"; */
13
19
  declare type Params = Record<string, any>;
14
20
  export declare class TP {
21
+ /** compose a URL of form wss://host.domain:port/path.
22
+ *
23
+ * @param scheme ['wss']
24
+ * @param host [TP.ghost]
25
+ * @param domain [TP.gdomain]
26
+ * @param port [TP.gport]
27
+ * @param path [''] supply your own '/' and any query part
28
+ */
15
29
  static buildURL(scheme?: string, host?: string, domain?: string, port?: number, path?: string): string;
30
+ /** return OwnPropertyNames that are NOT also in Object (ie: length, name, prototype) */
16
31
  static staticFields(over?: Params): string[];
17
- /** called by framework before TP is used; put your overrides here.
18
- * @param qParams
19
- * @param force true to apply exact value, if new key or new type.
20
- */
21
- static setParams(qParams?: Params, force?: boolean, over?: Params): void;
22
32
  /**
23
- * After pushing all values from local subclass of TP into base TP,
24
- * delete them, so there is only the one copy in original base class: TP (from hexlib)
25
- * Local references should still get/set values in the base object.
33
+ * If local field is present in tplib, set local value in tplib, and delete it from local.
34
+ *
35
+ * So hexlib methods will see and use the value as TP.field
26
36
  *
27
- * This way, tsc still sees local TP for type safety,
28
- * but there is a single object for updates using Chooser.
37
+ * If tplib value is a number and local value is a string, try coerce using parseInt()
29
38
  *
30
- * @param local the locally created subclass of TP with static fields
39
+ * @param local source of the new values (typically TP-local or {...})
40
+ * @param force [false] if true, do not attempt to coerce value with parseInt().
41
+ * @param tplib [TP-lib] the target in which to set the values from local.
42
+ * @return local with tplib values removed
31
43
  */
32
- static eraseLocal(local: Params): void;
44
+ static setParams(local?: Params, force?: boolean, tplib?: Params): Params;
33
45
  /** the current map from PlayerColor to colorn */
34
46
  static colorScheme: PlayerColorRecord<string>;
35
47
  static useEwTopo: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"table-params.d.ts","sourceRoot":"","sources":["../src/table-params.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,qBAAsB,CAAA;AAC/C,eAAO,MAAM,aAAa,0BAA2B,CAAA;AACrD,eAAO,MAAM,YAAY,KAAkB,CAAA;AAC3C,eAAO,MAAM,YAAY,KAAkB,CAAA;AAC3C,eAAO,MAAM,YAAY,KAAmB,CAAA;AAE5C,MAAM,MAAM,WAAW,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AACvD,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAAgE;AAE3H,sDAAsD;AACtD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;AACzD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAuB;AACnG,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,CAAC,wBAAiF;AAEhJ,oDAAoD;AACpD,OAAO,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE1C,qBAAa,EAAE;IACb,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAQ,EAAE,IAAI,SAAW,EAAE,MAAM,SAAa,EAAE,IAAI,SAAW,EAAE,IAAI,SAAK,GAAG,MAAM;IAGzG,MAAM,CAAC,YAAY,CAAC,IAAI,SAAiB;IAKzC;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,GAAE,MAAW,EAAE,KAAK,UAAQ,EAAE,IAAI,SAAiB;IAa3E;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAM/B,iDAAiD;IACjD,MAAM,CAAC,WAAW,4BAAwC;IAC1D,MAAM,CAAC,SAAS,UAAQ;IACxB,MAAM,CAAC,UAAU,SAAK;IACtB,MAAM,CAAC,WAAW,UAAQ;IAC1B,MAAM,CAAC,YAAY,SAAM;IACzB,MAAM,CAAC,GAAG,SAAK;IAEf,MAAM,CAAC,UAAU,SAAK;IACtB,MAAM,CAAC,UAAU,SAAK;IACtB,MAAM,CAAC,OAAO,EAAC,MAAM,CAAK;IAC1B,MAAM,CAAC,OAAO,EAAC,MAAM,CAAM;IAC3B,MAAM,CAAC,MAAM,SAAK;IAClB,MAAM,CAAC,MAAM,SAAK;IAElB,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IACtC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGvC,MAAM,CAAC,SAAS,EAAG,MAAM,CAAM;IAC/B,MAAM,CAAC,UAAU,EAAE,MAAM,CAAM;IAC/B,MAAM,CAAC,SAAS,EAAG,MAAM,CAAM;IAE/B,MAAM,CAAC,OAAO,EAAE,MAAM,CAA6B;IACnD,MAAM,CAAC,MAAM;;;;;MAA2C;IAExD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAU;IAC9B,MAAM,CAAC,OAAO,EAAE,MAAM,CAAiB;IACvC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAO;IAC3B,MAAM,CAAC,UAAU,EAAE,MAAM,CAAiB;IAC1C,MAAM,CAAC,YAAY,EAAE,MAAM,CAAiB;IAE5C,MAAM,CAAC,OAAO,EAAE,MAAM,CAAM;IAC5B,MAAM,CAAC,YAAY,EAAE,MAAM,CAAM;IAEjC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAQ;IAEzC,MAAM,CAAC,MAAM,SAAM;IACnB,MAAM,CAAC,SAAS,SAAM;IACtB,MAAM,CAAC,QAAQ,SAAM;IAGrB,MAAM,CAAC,OAAO,SAAK;IACnB,MAAM,CAAC,UAAU,SAAK;CACvB"}
1
+ {"version":3,"file":"table-params.d.ts","sourceRoot":"","sources":["../src/table-params.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,qBAAsB,CAAA;AAC3C,eAAO,MAAM,YAAY,eAA2B,CAAC;AACrD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAGzD,eAAO,MAAM,YAAY,WAAkB,CAAA;AAC3C,eAAO,MAAM,YAAY,WAAkB,CAAA;AAE3C,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAAgE;AAE3H,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;AACzD,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,wBAIhD;AACD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,CAAC,wBAE9D;AAED,6DAA6D;AAC7D,OAAO,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE1C,qBAAa,EAAE;IACb;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAQ,EAAE,IAAI,SAAW,EAAE,MAAM,SAAa,EAAE,IAAI,SAAW,EAAE,IAAI,SAAK,GAAG,MAAM;IAGzG,wFAAwF;IACxF,MAAM,CAAC,YAAY,CAAC,IAAI,SAAiB;IAKzC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,GAAE,MAAW,EAAE,KAAK,UAAQ,EAAE,KAAK,SAAiB;IAc1E,iDAAiD;IACjD,MAAM,CAAC,WAAW,4BAAwC;IAC1D,MAAM,CAAC,SAAS,UAAQ;IACxB,MAAM,CAAC,UAAU,SAAK;IACtB,MAAM,CAAC,WAAW,UAAQ;IAC1B,MAAM,CAAC,YAAY,SAAM;IACzB,MAAM,CAAC,GAAG,SAAK;IAEf,MAAM,CAAC,UAAU,SAAK;IACtB,MAAM,CAAC,UAAU,SAAK;IACtB,MAAM,CAAC,OAAO,EAAC,MAAM,CAAK;IAC1B,MAAM,CAAC,OAAO,EAAC,MAAM,CAAM;IAC3B,MAAM,CAAC,MAAM,SAAK;IAClB,MAAM,CAAC,MAAM,SAAK;IAElB,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IACtC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGvC,MAAM,CAAC,SAAS,EAAG,MAAM,CAAM;IAC/B,MAAM,CAAC,UAAU,EAAE,MAAM,CAAM;IAC/B,MAAM,CAAC,SAAS,EAAG,MAAM,CAAM;IAE/B,MAAM,CAAC,OAAO,EAAE,MAAM,CAA6B;IACnD,MAAM,CAAC,MAAM;;;;;MAA2C;IAExD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAU;IAC9B,MAAM,CAAC,OAAO,EAAE,MAAM,CAAiB;IACvC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAO;IAC3B,MAAM,CAAC,UAAU,EAAE,MAAM,CAAiB;IAC1C,MAAM,CAAC,YAAY,EAAE,MAAM,CAAiB;IAE5C,MAAM,CAAC,OAAO,EAAE,MAAM,CAAM;IAC5B,MAAM,CAAC,YAAY,EAAE,MAAM,CAAM;IAEjC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAQ;IAEzC,MAAM,CAAC,MAAM,SAAM;IACnB,MAAM,CAAC,SAAS,SAAM;IACtB,MAAM,CAAC,QAAQ,SAAM;IAGrB,MAAM,CAAC,OAAO,SAAK;IACnB,MAAM,CAAC,UAAU,SAAK;CACvB"}