@thegraid/hexlib 1.1.6 → 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,5 +1,5 @@
1
1
  import { C, className } from "@thegraid/common-lib";
2
- import { CenterText } from "@thegraid/easeljs-lib";
2
+ import { afterUpdate, CenterText } from "@thegraid/easeljs-lib";
3
3
  import { Container, Graphics, Shape } from "@thegraid/easeljs-module";
4
4
  import { H } from "./hex-intfs";
5
5
  import { TP } from "./table-params";
@@ -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,79 +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
- }
160
249
  /** a Rectangular Shape, maybe with rounded corners */
161
250
  export class RectShape extends PaintableShape {
162
251
  fillc;
163
252
  strokec;
164
- static rectWHXY(w, h, x = -w / 2, y = -h / 2, g0 = new Graphics()) {
165
- return g0.dr(x, y, w, h);
166
- }
167
- static rectWHXYr(w, h, x = -w / 2, y = -h / 2, r = 0, g0 = new Graphics()) {
168
- return g0.rr(x, y, w, h, r);
169
- }
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;
170
277
  /**
171
- * paint a background RectShape for given Text.
172
- * @param txt Text
173
- * @param b border size around text [txt.getMeasuredLineHeight * .1]
174
- * @param g0 append to Graphics [new Graphics()]
175
- * @returns
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()
176
283
  */
177
- static rectText(txt, b, g0 = new Graphics()) {
178
- const fs = txt.getMeasuredLineHeight();
179
- if (b === undefined)
180
- b = fs * .1;
181
- const { x, y, width, height } = txt.getBounds();
182
- return RectShape.rectWHXY(width + 2 * b, height + 2 * b, x - b, y - b, g0);
183
- }
184
- rect;
185
- rc = 0;
186
- constructor({ x = 0, y = 0, w = TP.hexRad / 2, h = TP.hexRad / 2, r = 0 }, fillc = C.white, strokec = C.black, g0) {
284
+ constructor({ x = 0, y = 0, w = TP.hexRad, h = TP.hexRad, r = 0 }, fillc = C.white, strokec = C.black, g0) {
187
285
  super((fillc) => this.rscgf(fillc), fillc, g0);
188
286
  this.fillc = fillc;
189
287
  this.strokec = strokec;
190
288
  this._cgf = this.rscgf;
191
- this.rect = { x, y, w, h };
289
+ this._cRad = r;
290
+ this._rect = { x, y, w, h };
192
291
  this.setBounds(x, y, w, h);
193
- this.rc = r;
194
292
  this.paint(fillc, true); // this.graphics = rscgf(...)
195
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
+ }
196
308
  rscgf(fillc, g = this.g0) {
197
- const { x, y, w, h } = this.rect, r = TP.hexRad / 2;
309
+ const { x, y, w, h } = this._rect;
198
310
  (fillc ? g.f(fillc) : g.ef());
199
311
  (this.strokec ? g.s(this.strokec) : g.es());
200
- if (this.rc === 0) {
201
- g.dr(x ?? 0, y ?? 0, w ?? r, h ?? r);
312
+ if (this._cRad === 0) {
313
+ g.dr(x, y, w, h);
202
314
  }
203
315
  else {
204
- 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)
205
318
  }
206
319
  return g;
207
320
  }
208
321
  }
209
- /** from hextowns, with translucent center. */
322
+ /** from hextowns, with translucent center circle. */
210
323
  export class TileShape extends HexShape {
211
324
  static fillColor = C1.lightgrey_8; // 'rgba(200,200,200,.8)'
212
325
  constructor(radius, tilt) {
@@ -226,10 +339,9 @@ export class TileShape extends HexShape {
226
339
  return g;
227
340
  }
228
341
  bgColor = C.nameToRgbaString(C.WHITE, .8);
229
- /** colored HexShape filled with very-lightgrey disk: */
342
+ /** colored HexShape filled with very-lightgrey disk: interpose on cgf with replaceDisk */
230
343
  tscgf(colorn, g0 = this.cgfGraphics?.clone() ?? new Graphics(), super_cgf = (color) => new Graphics()) {
231
- // HexShape.cgf(rgba(C.WHITE, .8))
232
- 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))
233
345
  const fillColor = C.nameToRgbaString(colorn, .8);
234
346
  this.replaceDisk(fillColor, this.radius * H.sqrt3_2 * (55 / 60));
235
347
  return this.graphics = g;
@@ -248,40 +360,96 @@ export class LegalMark extends Shape {
248
360
  parent.addChild(this);
249
361
  }
250
362
  }
251
- /** Show text in a colored Rectangle. */
252
- export class UtilButton extends Container {
253
- fontSize;
254
- textColor;
255
- blocked = false;
256
- 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 */
257
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. */
258
386
  get label_text() { return this.label.text; }
259
- set label_text(t) {
260
- this.label.text = t;
387
+ set label_text(txt) {
388
+ this.label.text = txt;
389
+ this.setBounds(undefined, 0, 0, 0);
261
390
  this.paint(undefined, true);
262
391
  }
263
392
  /**
264
- * Create Container with CenterText above a RectShape.
393
+ * Create Container with Text above a RectShape.
265
394
  * @param color of background RectShape.
266
395
  * @param text label
267
- * @param fontSize
268
- * @param textColor
269
- * @param cgf
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()]
270
399
  */
271
- constructor(color, text, fontSize = TP.hexRad / 2, textColor = C.black, cgf) {
400
+ constructor(color, label, border = .3, corner = 0, cgf) {
272
401
  super();
273
- this.fontSize = fontSize;
274
- this.textColor = textColor;
275
- this.label = new CenterText(text, fontSize, textColor);
276
- this.shape = new PaintableShape(cgf ?? ((c) => this.ubcsf(c)));
277
- this.shape.paint(color);
278
- 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);
279
413
  }
280
- ubcsf(color, g = new Graphics()) {
281
- return RectShape.rectText(this.label, this.fontSize * .3, 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;
282
418
  }
283
- paint(color = this.shape.colorn, force = false) {
284
- 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;
285
453
  }
286
454
  /**
287
455
  * Repaint the stage with button visible or not.
@@ -289,31 +457,16 @@ export class UtilButton extends Container {
289
457
  * Allow Chrome to finish stage.update before proceeding with afterUpdate().
290
458
  *
291
459
  * Other code can watch this.blocked; then call updateWait(false) to reset.
292
- * @param hide true to hide and disable this UtilButton
293
- * @param afterUpdate callback ('drawend') when stage.update is done [none]
294
- * @param scope thisArg for afterUpdate [this TurnButton]
295
- * @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
296
464
  */
297
- updateWait(hide, afterUpdate, scope = this) {
298
- this.blocked = hide;
465
+ updateWait(after, scope = this, hide = false) {
299
466
  this.visible = this.mouseEnabled = !hide;
300
467
  // using @thegraid/easeljs-module@^1.1.8: on(once=true) will now 'just work'
301
- afterUpdate && this.stage.on('drawend', afterUpdate, scope, true);
302
- this.stage.update();
303
- }
304
- }
305
- export class EdgeShape extends Shape {
306
- color;
307
- hex;
308
- dir;
309
- constructor(color, hex, dir, parent) {
310
- super();
311
- this.color = color;
312
- this.hex = hex;
313
- this.dir = dir;
314
- this.reset();
315
- parent.addChild(this);
468
+ // using @thegraid/common-lib@^1.3.12: afterUpdate will always update
469
+ afterUpdate(this, after, scope);
316
470
  }
317
- reset(color = this.color) { this.graphics.c().ss(12, 'round', 'round').s(color); }
318
471
  }
319
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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"}
@@ -15,28 +15,33 @@ export type PlayerColorRecord<T> = Record<PlayerColor, T>;
15
15
  /** @return \{ pc0: arg0 as T, pc1: arg1 as T, ...}: PlayerColorRecord\<T> */
16
16
  export declare function playerColorRecord<T>(...args: T[]): PlayerColorRecord<T>;
17
17
  export declare function playerColorRecordF<T>(f: (sc: PlayerColor) => T): PlayerColorRecord<T>;
18
- /** OR: import { Params } from "@angular/router"; */
18
+ /** 'Object' OR: import { Params } from "@angular/router"; */
19
19
  declare type Params = Record<string, any>;
20
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
+ */
21
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) */
22
31
  static staticFields(over?: Params): string[];
23
- /** called by framework before TP is used; put your overrides here.
24
- * @param qParams source of the new values (TP-local)
25
- * @param force true to apply exact value, if new key or new type.
26
- * @param over the target in which to set the values from qParams (TPLib)
27
- */
28
- static setParams(qParams?: Params, force?: boolean, over?: Params): void;
29
32
  /**
30
- * After pushing all values from local subclass of TP into base TP,
31
- * delete them, so there is only the one copy in original base class: TP (from hexlib)
32
- * 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
33
36
  *
34
- * This way, tsc still sees local TP for type safety,
35
- * 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()
36
38
  *
37
- * @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
38
43
  */
39
- static eraseLocal(local: Params): void;
44
+ static setParams(local?: Params, force?: boolean, tplib?: Params): Params;
40
45
  /** the current map from PlayerColor to colorn */
41
46
  static colorScheme: PlayerColorRecord<string>;
42
47
  static useEwTopo: boolean;
@@ -1 +1 @@
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;AAKD,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;;;;OAIG;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"}