figureone 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -11254,6 +11254,12 @@ var FigureElement = /*#__PURE__*/function () {
11254
11254
  // lastDrawElementTransformPosition: {parentCount: number, elementCount: number};
11255
11255
 
11256
11256
  // True if should be shown in figure
11257
+ // True if equation forms should not initiate any new state changes on this
11258
+ // element: it is excluded from form layout, show/hide, transform/color sets,
11259
+ // and elementMods. Note: form-driven animations on the equation collection
11260
+ // (collectionMethods.stop()) still cancel any in-flight animations on the
11261
+ // element — the contract is "no new form-driven changes", not full isolation.
11262
+
11257
11263
  // Used to reference element in a collection
11258
11264
 
11259
11265
  // Element is able to be moved
@@ -11371,6 +11377,7 @@ var FigureElement = /*#__PURE__*/function () {
11371
11377
  this.uid = (Math.random() * 1e18).toString(36);
11372
11378
  this.uniqueColor = null;
11373
11379
  this.isShown = true;
11380
+ this.isFormIgnored = false;
11374
11381
  this.simple = false;
11375
11382
  this.allowSetColor = 'all';
11376
11383
  this.transform = transform._dup();
@@ -11566,7 +11573,7 @@ var FigureElement = /*#__PURE__*/function () {
11566
11573
  return ['animations', 'color', 'opacity', 'dimColor', 'defaultColor', 'transform', '_custom', 'scene',
11567
11574
  // 'lastDrawTransform',
11568
11575
  // 'parentTransform',
11569
- 'isShown', 'isMovable', 'isTouchable', 'state', 'pulseSettings', 'setTransformCallback', 'move', 'notifications',
11576
+ 'isShown', 'isMovable', 'isTouchable', 'isFormIgnored', 'state', 'pulseSettings', 'setTransformCallback', 'move', 'notifications',
11570
11577
  // 'finishAnimationOnPause',
11571
11578
  'pulseTransforms', 'frozenPulseTransforms', 'customState'].concat(_toConsumableArray(this.stateProperties));
11572
11579
  }
@@ -18467,20 +18474,31 @@ var Element = /*#__PURE__*/function () {
18467
18474
  if (content.measureAndAlignText != null) {
18468
18475
  content.measureAndAlignText();
18469
18476
  }
18470
- content.transform.updateTranslation([location.x, location.y]);
18471
- content.transform.updateScale([scale, scale]);
18472
- if (content.internalSetTransformCallback != null) {
18473
- this.fnMap.exec(content.internalSetTransformCallback, content.transform);
18474
- }
18477
+ if (content.isFormIgnored) {
18478
+ // Form-ignored elements contribute zero size to the layout so adjacent
18479
+ // elements aren't sized off whatever transform the user has applied.
18480
+ this.location = location._dup();
18481
+ this.scale = scale;
18482
+ this.ascent = 0;
18483
+ this.descent = 0;
18484
+ this.height = 0;
18485
+ this.width = 0;
18486
+ } else {
18487
+ content.transform.updateTranslation([location.x, location.y]);
18488
+ content.transform.updateScale([scale, scale]);
18489
+ if (content.internalSetTransformCallback != null) {
18490
+ this.fnMap.exec(content.internalSetTransformCallback, content.transform);
18491
+ }
18475
18492
 
18476
- // Get the boundaries of element
18477
- var r = content.getRelativeBoundingRect('draw', 'border', null, false);
18478
- this.location = location._dup();
18479
- this.scale = scale;
18480
- this.ascent = r.top * scale;
18481
- this.descent = -r.bottom * scale;
18482
- this.height = r.height * scale;
18483
- this.width = r.width * scale;
18493
+ // Get the boundaries of element
18494
+ var r = content.getRelativeBoundingRect('draw', 'border', null, false);
18495
+ this.location = location._dup();
18496
+ this.scale = scale;
18497
+ this.ascent = r.top * scale;
18498
+ this.descent = -r.bottom * scale;
18499
+ this.height = r.height * scale;
18500
+ this.width = r.width * scale;
18501
+ }
18484
18502
  }
18485
18503
  this.fullSize = {
18486
18504
  leftOffset: 0,
@@ -18528,6 +18546,9 @@ var Element = /*#__PURE__*/function () {
18528
18546
  value: function setPositions() {
18529
18547
  var content = this.content;
18530
18548
  if (content instanceof _Element__WEBPACK_IMPORTED_MODULE_3__.FigureElementCollection || content instanceof _Element__WEBPACK_IMPORTED_MODULE_3__.FigureElementPrimitive) {
18549
+ if (content.isFormIgnored) {
18550
+ return;
18551
+ }
18531
18552
  content.transform.updateTranslation([this.location.x, this.location.y]);
18532
18553
  content.transform.updateScale([this.scale, this.scale]);
18533
18554
  }
@@ -18544,6 +18565,9 @@ var Element = /*#__PURE__*/function () {
18544
18565
  }
18545
18566
  var content = this.content;
18546
18567
  if (content instanceof _Element__WEBPACK_IMPORTED_MODULE_3__.FigureElementCollection || content instanceof _Element__WEBPACK_IMPORTED_MODULE_3__.FigureElementPrimitive) {
18568
+ if (content.isFormIgnored) {
18569
+ return;
18570
+ }
18547
18571
  content.setColor(color);
18548
18572
  }
18549
18573
  }
@@ -22312,9 +22336,11 @@ var EquationForm = /*#__PURE__*/function (_Elements) {
22312
22336
  value: function getElementsToShowAndHide() {
22313
22337
  var allElements = this.collectionMethods.getAllElements();
22314
22338
  var elementsShown = allElements.filter(function (e) {
22315
- return e.isShown;
22339
+ return e.isShown && !e.isFormIgnored;
22340
+ });
22341
+ var elementsShownTarget = this.getAllElements(false).filter(function (e) {
22342
+ return !e.isFormIgnored;
22316
22343
  });
22317
- var elementsShownTarget = this.getAllElements(false);
22318
22344
  var elementsToHide = elementsShown.filter(function (e) {
22319
22345
  return elementsShownTarget.indexOf(e) === -1;
22320
22346
  });
@@ -22405,9 +22431,11 @@ var EquationForm = /*#__PURE__*/function (_Elements) {
22405
22431
  this.collectionMethods.stop();
22406
22432
  var allElements = this.collectionMethods.getAllElements();
22407
22433
  var elementsShown = allElements.filter(function (e) {
22408
- return e.isShown;
22434
+ return e.isShown && !e.isFormIgnored;
22435
+ });
22436
+ var elementsToShow = this.getAllElements(false).filter(function (e) {
22437
+ return !e.isFormIgnored;
22409
22438
  });
22410
- var elementsToShow = this.getAllElements(false);
22411
22439
  var elementsToDelayShowing = elementsToShow.filter(function (e) {
22412
22440
  return !e.isShown;
22413
22441
  });
@@ -22473,6 +22501,9 @@ var EquationForm = /*#__PURE__*/function (_Elements) {
22473
22501
  var _elementMods$elementN = elementMods[elementName],
22474
22502
  element = _elementMods$elementN.element,
22475
22503
  mods = _elementMods$elementN.mods;
22504
+ if (element != null && element.isFormIgnored) {
22505
+ return;
22506
+ }
22476
22507
  if (element != null && mods != null) {
22477
22508
  element.setProperties(mods);
22478
22509
  if (mods.color != null) {
@@ -22499,7 +22530,9 @@ var EquationForm = /*#__PURE__*/function (_Elements) {
22499
22530
  var dissolveInBeforeMove = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
22500
22531
  var allElements = this.collectionMethods.getAllElements();
22501
22532
  this.collectionMethods.stop();
22502
- var elementsShownTarget = this.getAllElements(false);
22533
+ var elementsShownTarget = this.getAllElements(false).filter(function (e) {
22534
+ return !e.isFormIgnored;
22535
+ });
22503
22536
  elementsShownTarget.forEach(function (e) {
22504
22537
  if (e.opacity === 0.001) {
22505
22538
  e.hide();
@@ -22509,7 +22542,7 @@ var EquationForm = /*#__PURE__*/function (_Elements) {
22509
22542
  }
22510
22543
  });
22511
22544
  var elementsShown = allElements.filter(function (e) {
22512
- return e.isShown;
22545
+ return e.isShown && !e.isFormIgnored;
22513
22546
  });
22514
22547
  var elementsToHide = elementsShown.filter(function (e) {
22515
22548
  return elementsShownTarget.indexOf(e) === -1;
@@ -64767,6 +64800,7 @@ var Atlas = /*#__PURE__*/function () {
64767
64800
  if (Math.pow(dimension, 2) > 16777216 && isIOS()) {
64768
64801
  var mDim = Math.sqrt(16777216);
64769
64802
  fontSizePX *= mDim / dimension * 0.95;
64803
+ this.fontSize = fontSizePX;
64770
64804
  dimension = Math.floor(Math.ceil(Math.sqrt(glyphs.length) + 2) * fontSizePX * 1.5);
64771
64805
  }
64772
64806
  var canvas = document.createElement('canvas');
@@ -80648,8 +80682,8 @@ var tools = {
80648
80682
  */
80649
80683
 
80650
80684
  var Fig = {
80651
- version: "1.2.0",
80652
- gitHash: "b3f17c9ba",
80685
+ version: "1.3.0",
80686
+ gitHash: "3aa02f880",
80653
80687
  tools: tools,
80654
80688
  Figure: _js_figure_Figure__WEBPACK_IMPORTED_MODULE_5__["default"],
80655
80689
  Recorder: _js_figure_Recorder_Recorder__WEBPACK_IMPORTED_MODULE_7__.Recorder,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "figureone",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Draw, animate and interact with shapes, text, plots and equations in Javascript. Create interactive slide shows, and interactive videos.",
5
5
  "main": "index.js",
6
6
  "types": "types/index.d.ts",
@@ -414,6 +414,7 @@ declare class FigureElement {
414
414
  lastDrawOpacity: number;
415
415
  parent: FigureElement | null;
416
416
  isShown: boolean;
417
+ isFormIgnored: boolean;
417
418
  name: string;
418
419
  isMovable: boolean;
419
420
  isTouchable: boolean;