@itwin/editor-frontend 3.0.0-dev.163 → 3.0.0-dev.169

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 (32) hide show
  1. package/lib/cjs/ProjectLocation/ProjectGeolocation.d.ts +10 -17
  2. package/lib/cjs/ProjectLocation/ProjectGeolocation.d.ts.map +1 -1
  3. package/lib/cjs/ProjectLocation/ProjectGeolocation.js +54 -94
  4. package/lib/cjs/ProjectLocation/ProjectGeolocation.js.map +1 -1
  5. package/lib/cjs/SketchTools.d.ts +3 -5
  6. package/lib/cjs/SketchTools.d.ts.map +1 -1
  7. package/lib/cjs/SketchTools.js +55 -188
  8. package/lib/cjs/SketchTools.js.map +1 -1
  9. package/lib/cjs/SolidModelingTools.d.ts +2 -3
  10. package/lib/cjs/SolidModelingTools.d.ts.map +1 -1
  11. package/lib/cjs/SolidModelingTools.js +31 -246
  12. package/lib/cjs/SolidModelingTools.js.map +1 -1
  13. package/lib/cjs/TransformElementsTool.d.ts.map +1 -1
  14. package/lib/cjs/TransformElementsTool.js +8 -28
  15. package/lib/cjs/TransformElementsTool.js.map +1 -1
  16. package/lib/esm/ProjectLocation/ProjectGeolocation.d.ts +10 -17
  17. package/lib/esm/ProjectLocation/ProjectGeolocation.d.ts.map +1 -1
  18. package/lib/esm/ProjectLocation/ProjectGeolocation.js +54 -94
  19. package/lib/esm/ProjectLocation/ProjectGeolocation.js.map +1 -1
  20. package/lib/esm/SketchTools.d.ts +3 -5
  21. package/lib/esm/SketchTools.d.ts.map +1 -1
  22. package/lib/esm/SketchTools.js +55 -188
  23. package/lib/esm/SketchTools.js.map +1 -1
  24. package/lib/esm/SolidModelingTools.d.ts +2 -3
  25. package/lib/esm/SolidModelingTools.d.ts.map +1 -1
  26. package/lib/esm/SolidModelingTools.js +31 -246
  27. package/lib/esm/SolidModelingTools.js.map +1 -1
  28. package/lib/esm/TransformElementsTool.d.ts.map +1 -1
  29. package/lib/esm/TransformElementsTool.js +8 -28
  30. package/lib/esm/TransformElementsTool.js.map +1 -1
  31. package/lib/public/locales/en/Editor.json +4 -0
  32. package/package.json +12 -12
@@ -927,70 +927,28 @@ export class CreateArcTool extends CreateOrContinuePathTool {
927
927
  return;
928
928
  }
929
929
  const syncData = [];
930
- if (!this.useRadius) {
931
- this.radiusProperty.displayValue = this.radiusProperty.description.format(this.radius);
932
- this.radiusProperty.isDisabled = !this.useRadius;
930
+ if (!this.useRadius)
933
931
  syncData.push(this.radiusProperty.syncItem);
934
- }
935
- if (!this.useSweep) {
936
- this.sweepProperty.displayValue = this.sweepProperty.description.format(this.sweep);
937
- this.sweepProperty.isDisabled = !this.useSweep;
932
+ if (!this.useSweep)
938
933
  syncData.push(this.sweepProperty.syncItem);
939
- }
940
934
  if (0 !== syncData.length)
941
935
  this.syncToolSettingsProperties(syncData);
942
936
  }
943
- syncRadiusState() {
944
- this.radiusProperty.displayValue = this.radiusProperty.description.format(this.radius);
945
- this.radiusProperty.isDisabled = !this.useRadius;
946
- this.syncToolSettingsProperties([this.radiusProperty.syncItem]);
947
- }
948
- syncSweepState() {
949
- this.sweepProperty.displayValue = this.sweepProperty.description.format(this.sweep);
950
- this.sweepProperty.isDisabled = !this.useSweep;
951
- this.syncToolSettingsProperties([this.sweepProperty.syncItem]);
937
+ getToolSettingPropertyLocked(property) {
938
+ if (property === this.useRadiusProperty)
939
+ return this.radiusProperty;
940
+ else if (property === this.useSweepProperty)
941
+ return this.sweepProperty;
942
+ return undefined;
952
943
  }
953
944
  async applyToolSettingPropertyChange(updatedValue) {
954
- if (this.methodProperty.name === updatedValue.propertyName) {
955
- this.methodProperty.value = updatedValue.value.value;
956
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.methodProperty.item);
945
+ if (!this.changeToolSettingPropertyValue(updatedValue))
946
+ return false;
947
+ if (this.methodProperty.name === updatedValue.propertyName)
957
948
  await this.onReinitialize();
958
- return true;
959
- }
960
- else if (updatedValue.propertyName === this.useRadiusProperty.name) {
961
- this.useRadius = updatedValue.value.value;
962
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.useRadiusProperty.item);
963
- this.syncRadiusState();
964
- return true;
965
- }
966
- else if (updatedValue.propertyName === this.useSweepProperty.name) {
967
- this.useSweep = updatedValue.value.value;
968
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.useSweepProperty.item);
969
- this.syncSweepState();
970
- return true;
971
- }
972
- else if (updatedValue.propertyName === this.radiusProperty.name) {
973
- if (!updatedValue.value.value) {
974
- this.syncRadiusState(); // force UI to redisplay last valid value
975
- return false;
976
- }
977
- this.radius = updatedValue.value.value;
978
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.radiusProperty.item);
979
- // If radius is changed when creating arc by start/center after center has been defined, back up a step to defined a new center point...
980
- if (ArcMethod.StartCenter === this.method && this.useRadius && 2 === this.accepted.length)
981
- await this.onUndoPreviousStep();
982
- return true;
983
- }
984
- else if (updatedValue.propertyName === this.sweepProperty.name) {
985
- if (!updatedValue.value.value) {
986
- this.syncSweepState(); // force UI to redisplay last valid value
987
- return false;
988
- }
989
- this.sweep = updatedValue.value.value;
990
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.sweepProperty.item);
991
- return true;
992
- }
993
- return false;
949
+ else if (updatedValue.propertyName === this.radiusProperty.name && ArcMethod.StartCenter === this.method && this.useRadius && 2 === this.accepted.length)
950
+ await this.onUndoPreviousStep(); // If radius is changed when creating arc by start/center after center has been defined, back up a step to defined a new center point...
951
+ return true;
994
952
  }
995
953
  supplyToolSettingsProperties() {
996
954
  const toolSettings = new Array();
@@ -1015,23 +973,9 @@ export class CreateArcTool extends CreateOrContinuePathTool {
1015
973
  if (!await super.onInstall())
1016
974
  return false;
1017
975
  // Setup initial values here instead of supplyToolSettingsProperties to support keyin args w/o appui-react...
1018
- const methodValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.methodProperty.name);
1019
- if (undefined !== methodValue)
1020
- this.methodProperty.dialogItemValue = methodValue;
1021
- const radiusValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.radiusProperty.name);
1022
- if (undefined !== radiusValue)
1023
- this.radiusProperty.dialogItemValue = radiusValue;
1024
- const useRadiusValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.useRadiusProperty.name);
1025
- if (undefined !== useRadiusValue)
1026
- this.useRadiusProperty.dialogItemValue = useRadiusValue;
976
+ this.initializeToolSettingPropertyValues([this.methodProperty, this.radiusProperty, this.useRadiusProperty, this.sweepProperty, this.useSweepProperty]);
1027
977
  if (!this.radius)
1028
978
  this.useRadius = false;
1029
- const useSweepValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.useSweepProperty.name);
1030
- if (undefined !== useSweepValue)
1031
- this.useSweepProperty.dialogItemValue = useSweepValue;
1032
- const sweepValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.sweepProperty.name);
1033
- if (undefined !== sweepValue)
1034
- this.sweepProperty.dialogItemValue = sweepValue;
1035
979
  if (!this.sweep)
1036
980
  this.useSweep = false;
1037
981
  return true;
@@ -1083,16 +1027,16 @@ export class CreateArcTool extends CreateOrContinuePathTool {
1083
1027
  }
1084
1028
  // Update current session values so keyin args are picked up for tool settings/restart...
1085
1029
  if (undefined !== arcMethod)
1086
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.methodProperty.name, value: { value: arcMethod } });
1030
+ this.saveToolSettingPropertyValue(this.methodProperty, { value: arcMethod });
1087
1031
  if (undefined !== arcRadius) {
1088
1032
  if (0.0 !== arcRadius)
1089
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.radiusProperty.name, value: { value: arcRadius } });
1090
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.useRadiusProperty.name, value: { value: 0.0 !== arcRadius } });
1033
+ this.saveToolSettingPropertyValue(this.radiusProperty, { value: arcRadius });
1034
+ this.saveToolSettingPropertyValue(this.useRadiusProperty, { value: 0.0 !== arcRadius });
1091
1035
  }
1092
1036
  if (undefined !== arcSweep) {
1093
1037
  if (0.0 !== arcSweep)
1094
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.sweepProperty.name, value: { value: arcSweep } });
1095
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.useSweepProperty.name, value: { value: 0.0 !== arcSweep } });
1038
+ this.saveToolSettingPropertyValue(this.sweepProperty, { value: arcSweep });
1039
+ this.saveToolSettingPropertyValue(this.useSweepProperty, { value: 0.0 !== arcSweep });
1096
1040
  }
1097
1041
  return this.run();
1098
1042
  }
@@ -1213,45 +1157,19 @@ export class CreateCircleTool extends CreateOrContinuePathTool {
1213
1157
  syncToolSettingsRadius() {
1214
1158
  if (this.useRadius)
1215
1159
  return;
1216
- const syncData = [];
1217
- if (!this.useRadius) {
1218
- this.radiusProperty.displayValue = this.radiusProperty.description.format(this.radius);
1219
- this.radiusProperty.isDisabled = !this.useRadius;
1220
- syncData.push(this.radiusProperty.syncItem);
1221
- }
1222
- if (0 !== syncData.length)
1223
- this.syncToolSettingsProperties(syncData);
1224
- }
1225
- syncRadiusState() {
1226
- this.radiusProperty.displayValue = this.radiusProperty.description.format(this.radius);
1227
- this.radiusProperty.isDisabled = !this.useRadius;
1228
1160
  this.syncToolSettingsProperties([this.radiusProperty.syncItem]);
1229
1161
  }
1162
+ getToolSettingPropertyLocked(property) {
1163
+ return (property === this.useRadiusProperty ? this.radiusProperty : undefined);
1164
+ }
1230
1165
  async applyToolSettingPropertyChange(updatedValue) {
1231
- if (this.methodProperty.name === updatedValue.propertyName) {
1232
- this.methodProperty.value = updatedValue.value.value;
1233
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.methodProperty.item);
1166
+ if (!this.changeToolSettingPropertyValue(updatedValue))
1167
+ return false;
1168
+ if (this.methodProperty.name === updatedValue.propertyName)
1234
1169
  await this.onReinitialize();
1235
- return true;
1236
- }
1237
- else if (updatedValue.propertyName === this.useRadiusProperty.name) {
1238
- this.useRadius = updatedValue.value.value;
1239
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.useRadiusProperty.item);
1240
- this.syncRadiusState();
1241
- if (CircleMethod.Center === this.method && this.useRadius && 0 === this.accepted.length)
1242
- await this.onReinitialize();
1243
- return true;
1244
- }
1245
- else if (updatedValue.propertyName === this.radiusProperty.name) {
1246
- if (!updatedValue.value.value) {
1247
- this.syncRadiusState(); // force UI to redisplay last valid value
1248
- return false;
1249
- }
1250
- this.radius = updatedValue.value.value;
1251
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.radiusProperty.item);
1252
- return true;
1253
- }
1254
- return false;
1170
+ else if (updatedValue.propertyName === this.useRadiusProperty.name && CircleMethod.Center === this.method && this.useRadius && 0 === this.accepted.length)
1171
+ await this.onReinitialize();
1172
+ return true;
1255
1173
  }
1256
1174
  supplyToolSettingsProperties() {
1257
1175
  const toolSettings = new Array();
@@ -1291,15 +1209,7 @@ export class CreateCircleTool extends CreateOrContinuePathTool {
1291
1209
  if (!await super.onInstall())
1292
1210
  return false;
1293
1211
  // Setup initial values here instead of supplyToolSettingsProperties to support keyin args w/o appui-react...
1294
- const methodValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.methodProperty.name);
1295
- if (undefined !== methodValue)
1296
- this.methodProperty.dialogItemValue = methodValue;
1297
- const radiusValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.radiusProperty.name);
1298
- if (undefined !== radiusValue)
1299
- this.radiusProperty.dialogItemValue = radiusValue;
1300
- const useRadiusValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.useRadiusProperty.name);
1301
- if (undefined !== useRadiusValue)
1302
- this.useRadiusProperty.dialogItemValue = useRadiusValue;
1212
+ this.initializeToolSettingPropertyValues([this.methodProperty, this.radiusProperty, this.useRadiusProperty]);
1303
1213
  if (!this.radius)
1304
1214
  this.useRadius = false;
1305
1215
  return true;
@@ -1337,11 +1247,11 @@ export class CreateCircleTool extends CreateOrContinuePathTool {
1337
1247
  }
1338
1248
  // Update current session values so keyin args are picked up for tool settings/restart...
1339
1249
  if (undefined !== circleMethod)
1340
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.methodProperty.name, value: { value: circleMethod } });
1250
+ this.saveToolSettingPropertyValue(this.methodProperty, { value: circleMethod });
1341
1251
  if (undefined !== circleRadius) {
1342
1252
  if (0.0 !== circleRadius)
1343
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.radiusProperty.name, value: { value: circleRadius } });
1344
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.useRadiusProperty.name, value: { value: 0.0 !== circleRadius } });
1253
+ this.saveToolSettingPropertyValue(this.radiusProperty, { value: circleRadius });
1254
+ this.saveToolSettingPropertyValue(this.useRadiusProperty, { value: 0.0 !== circleRadius });
1345
1255
  }
1346
1256
  return this.run();
1347
1257
  }
@@ -1494,27 +1404,11 @@ export class CreateRectangleTool extends CreateOrContinuePathTool {
1494
1404
  return;
1495
1405
  return { format: "flatbuffer", data: builder.entries };
1496
1406
  }
1497
- syncRadiusState() {
1498
- this.radiusProperty.displayValue = this.radiusProperty.description.format(this.radius);
1499
- this.radiusProperty.isDisabled = !this.useRadius;
1500
- this.syncToolSettingsProperties([this.radiusProperty.syncItem]);
1407
+ getToolSettingPropertyLocked(property) {
1408
+ return (property === this.useRadiusProperty ? this.radiusProperty : undefined);
1501
1409
  }
1502
1410
  async applyToolSettingPropertyChange(updatedValue) {
1503
- if (updatedValue.propertyName === this.useRadiusProperty.name) {
1504
- this.useRadius = updatedValue.value.value;
1505
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.useRadiusProperty.item);
1506
- this.syncRadiusState();
1507
- }
1508
- else if (updatedValue.propertyName === this.radiusProperty.name) {
1509
- if (!updatedValue.value.value) {
1510
- this.syncRadiusState(); // force UI to redisplay last valid value
1511
- return false;
1512
- }
1513
- this.radius = updatedValue.value.value;
1514
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.radiusProperty.item);
1515
- return true;
1516
- }
1517
- return false;
1411
+ return this.changeToolSettingPropertyValue(updatedValue);
1518
1412
  }
1519
1413
  supplyToolSettingsProperties() {
1520
1414
  const toolSettings = new Array();
@@ -1533,12 +1427,7 @@ export class CreateRectangleTool extends CreateOrContinuePathTool {
1533
1427
  if (!await super.onInstall())
1534
1428
  return false;
1535
1429
  // Setup initial values here instead of supplyToolSettingsProperties to support keyin args w/o appui-react...
1536
- const radiusValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.radiusProperty.name);
1537
- if (undefined !== radiusValue)
1538
- this.radiusProperty.dialogItemValue = radiusValue;
1539
- const useRadiusValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.useRadiusProperty.name);
1540
- if (undefined !== useRadiusValue)
1541
- this.useRadiusProperty.dialogItemValue = useRadiusValue;
1430
+ this.initializeToolSettingPropertyValues([this.radiusProperty, this.useRadiusProperty]);
1542
1431
  if (!this.radius)
1543
1432
  this.useRadius = false;
1544
1433
  return true;
@@ -1562,8 +1451,8 @@ export class CreateRectangleTool extends CreateOrContinuePathTool {
1562
1451
  // Update current session values so keyin args are picked up for tool settings/restart...
1563
1452
  if (undefined !== cornerRadius) {
1564
1453
  if (0.0 !== cornerRadius)
1565
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.radiusProperty.name, value: { value: cornerRadius } });
1566
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.useRadiusProperty.name, value: { value: 0.0 !== cornerRadius } });
1454
+ this.saveToolSettingPropertyValue(this.radiusProperty, { value: cornerRadius });
1455
+ this.saveToolSettingPropertyValue(this.useRadiusProperty, { value: 0.0 !== cornerRadius });
1567
1456
  }
1568
1457
  return this.run();
1569
1458
  }
@@ -1589,9 +1478,13 @@ export class CreateBCurveTool extends CreateOrContinuePathTool {
1589
1478
  get showCurveConstructions() { return true; } // Display control polygon or through points...
1590
1479
  provideToolAssistance(_mainInstrText, _additionalInstr) {
1591
1480
  const nPts = this.accepted.length;
1592
- const mainMsg = CoreTools.translate(0 === nPts ? "ElementSet.Prompts.StartPoint" : (1 === nPts ? "ElementSet.Prompts.EndPoint" : "ElementSet.Inputs.AdditionalPoint"));
1481
+ let mainMsg;
1482
+ if (CreateCurvePhase.DefineOther === this._tangentPhase)
1483
+ mainMsg = CoreTools.translate(0 === nPts ? "ElementSet.Prompts.StartPoint" : "ElementSet.Inputs.AdditionalPoint");
1484
+ else
1485
+ mainMsg = EditTools.translate(CreateCurvePhase.DefineStart === this._tangentPhase ? "CreateBCurve.Prompts.StartTangent" : "CreateBCurve.Prompts.EndTangent");
1593
1486
  const leftMsg = CoreTools.translate("ElementSet.Inputs.AcceptPoint");
1594
- const rightMsg = CoreTools.translate(nPts > 1 ? "ElementSet.Inputs.Complete" : "ElementSet.Inputs.Cancel");
1487
+ const rightMsg = CoreTools.translate(CreateCurvePhase.DefineOther === this._tangentPhase && nPts >= this.requiredPointCount ? "ElementSet.Inputs.Complete" : "ElementSet.Inputs.Cancel");
1595
1488
  const mouseInstructions = [];
1596
1489
  const touchInstructions = [];
1597
1490
  if (!ToolAssistance.createTouchCursorInstructions(touchInstructions))
@@ -1745,11 +1638,13 @@ export class CreateBCurveTool extends CreateOrContinuePathTool {
1745
1638
  await this.updateCurveAndContinuationData(ev, false, CreateCurvePhase.DefineEnd);
1746
1639
  this._tangentPhase = (undefined === fitCurve.options.startTangent ? CreateCurvePhase.DefineStart : CreateCurvePhase.DefineEnd);
1747
1640
  IModelApp.toolAdmin.updateDynamics();
1641
+ this.setupAndPromptForNextAction();
1748
1642
  return false;
1749
1643
  case CreateCurvePhase.DefineStart:
1750
1644
  fitCurve.options.startTangent = undefined; // Not accepted, compute default start tangent...
1751
1645
  this._tangentPhase = CreateCurvePhase.DefineEnd;
1752
1646
  IModelApp.toolAdmin.updateDynamics();
1647
+ this.setupAndPromptForNextAction();
1753
1648
  return false;
1754
1649
  case CreateCurvePhase.DefineEnd:
1755
1650
  fitCurve.options.endTangent = undefined; // Not accepted, compute default end tangent...
@@ -1762,32 +1657,12 @@ export class CreateBCurveTool extends CreateOrContinuePathTool {
1762
1657
  }
1763
1658
  return true;
1764
1659
  }
1765
- syncOrderState() {
1766
- this.orderProperty.displayValue = this.orderProperty.description.format(this.order);
1767
- this.syncToolSettingsProperties([this.orderProperty.syncItem]);
1768
- }
1769
1660
  async applyToolSettingPropertyChange(updatedValue) {
1770
- if (this.methodProperty.name === updatedValue.propertyName) {
1771
- this.methodProperty.value = updatedValue.value.value;
1772
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.methodProperty.item);
1661
+ if (!this.changeToolSettingPropertyValue(updatedValue))
1662
+ return false;
1663
+ if (this.methodProperty.name === updatedValue.propertyName)
1773
1664
  await this.onReinitialize();
1774
- return true;
1775
- }
1776
- else if (updatedValue.propertyName === this.orderProperty.name) {
1777
- if (!updatedValue.value.value) {
1778
- this.syncOrderState(); // force UI to redisplay last valid value
1779
- return false;
1780
- }
1781
- this.order = updatedValue.value.value;
1782
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.orderProperty.item);
1783
- return true;
1784
- }
1785
- else if (updatedValue.propertyName === this.tangentsProperty.name) {
1786
- this.tangents = updatedValue.value.value;
1787
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, this.tangentsProperty.item);
1788
- return true;
1789
- }
1790
- return false;
1665
+ return true;
1791
1666
  }
1792
1667
  supplyToolSettingsProperties() {
1793
1668
  const toolSettings = new Array();
@@ -1807,15 +1682,7 @@ export class CreateBCurveTool extends CreateOrContinuePathTool {
1807
1682
  if (!await super.onInstall())
1808
1683
  return false;
1809
1684
  // Setup initial values here instead of supplyToolSettingsProperties to support keyin args w/o appui-react...
1810
- const methodValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.methodProperty.name);
1811
- if (undefined !== methodValue)
1812
- this.methodProperty.dialogItemValue = methodValue;
1813
- const orderValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.orderProperty.name);
1814
- if (undefined !== orderValue)
1815
- this.orderProperty.dialogItemValue = orderValue;
1816
- const tangentsValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, this.tangentsProperty.name);
1817
- if (undefined !== tangentsValue)
1818
- this.tangentsProperty.dialogItemValue = tangentsValue;
1685
+ this.initializeToolSettingPropertyValues([this.methodProperty, this.orderProperty, this.tangentsProperty]);
1819
1686
  return true;
1820
1687
  }
1821
1688
  /** The keyin takes the following arguments, all of which are optional:
@@ -1857,11 +1724,11 @@ export class CreateBCurveTool extends CreateOrContinuePathTool {
1857
1724
  }
1858
1725
  // Update current session values so keyin args are picked up for tool settings/restart...
1859
1726
  if (undefined !== bcurveMethod)
1860
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.methodProperty.name, value: { value: bcurveMethod } });
1727
+ this.saveToolSettingPropertyValue(this.methodProperty, { value: bcurveMethod });
1861
1728
  if (undefined !== bcurveOrder)
1862
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.orderProperty.name, value: { value: bcurveOrder } });
1729
+ this.saveToolSettingPropertyValue(this.orderProperty, { value: bcurveOrder });
1863
1730
  if (undefined !== bcurveTangents)
1864
- IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: this.tangentsProperty.name, value: { value: bcurveTangents } });
1731
+ this.saveToolSettingPropertyValue(this.tangentsProperty, { value: bcurveTangents });
1865
1732
  return this.run();
1866
1733
  }
1867
1734
  }