@disy/cadenza.js 10.2.9 → 10.2.11

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 (60) hide show
  1. package/CHANGELOG.md +9 -2
  2. package/apidoc/assets/hierarchy.js +1 -0
  3. package/apidoc/assets/icons.js +17 -14
  4. package/apidoc/assets/icons.svg +1 -1
  5. package/apidoc/assets/main.js +5 -4
  6. package/apidoc/assets/navigation.js +1 -1
  7. package/apidoc/assets/search.js +1 -1
  8. package/apidoc/assets/style.css +1423 -1224
  9. package/apidoc/classes/AbortError.html +60 -60
  10. package/apidoc/classes/CadenzaClient.html +163 -188
  11. package/apidoc/classes/CadenzaError.html +15 -16
  12. package/apidoc/functions/cadenza.html +10 -10
  13. package/apidoc/index.html +146 -118
  14. package/apidoc/interfaces/CadenzaClientOptions.html +14 -14
  15. package/apidoc/interfaces/CadenzaEvent.html +6 -6
  16. package/apidoc/interfaces/Distance.html +3 -3
  17. package/apidoc/interfaces/ExternalLinkKey.html +8 -7
  18. package/apidoc/interfaces/Feature.html +16 -16
  19. package/apidoc/interfaces/FeatureCollection.html +6 -6
  20. package/apidoc/interfaces/Geometry.html +6 -6
  21. package/apidoc/interfaces/GeometryExtentStrategy.html +6 -6
  22. package/apidoc/interfaces/LayerDataExtentStrategy.html +7 -7
  23. package/apidoc/interfaces/LayerDefinition.html +7 -7
  24. package/apidoc/interfaces/LocationFinderExtentStrategy.html +6 -6
  25. package/apidoc/interfaces/PageSource.html +4 -4
  26. package/apidoc/interfaces/SnappingOptions.html +5 -0
  27. package/apidoc/interfaces/StaticExtentStrategy.html +6 -6
  28. package/apidoc/modules.html +1 -46
  29. package/apidoc/types/CadenzaActionEvent.html +2 -2
  30. package/apidoc/types/CadenzaChangeSelectionEvent.html +2 -2
  31. package/apidoc/types/CadenzaDrillThroughEvent.html +2 -2
  32. package/apidoc/types/CadenzaEditGeometryCancelEvent.html +2 -2
  33. package/apidoc/types/CadenzaEditGeometryOkEvent.html +2 -2
  34. package/apidoc/types/CadenzaEditGeometryUpdateEvent.html +2 -2
  35. package/apidoc/types/CadenzaErrorEvent.html +2 -2
  36. package/apidoc/types/CadenzaEventByType.html +1 -1
  37. package/apidoc/types/CadenzaEventType.html +2 -2
  38. package/apidoc/types/CadenzaObjectInfoEvent.html +2 -2
  39. package/apidoc/types/CadenzaReloadEvent.html +2 -2
  40. package/apidoc/types/CadenzaSelectObjectsCancelEvent.html +2 -2
  41. package/apidoc/types/CadenzaSelectObjectsOkEvent.html +2 -2
  42. package/apidoc/types/Coordinate.html +2 -2
  43. package/apidoc/types/CustomValidityType.html +2 -2
  44. package/apidoc/types/DataType.html +2 -2
  45. package/apidoc/types/EmbeddingTargetId.html +3 -3
  46. package/apidoc/types/Extent.html +2 -2
  47. package/apidoc/types/ExtentStrategy.html +5 -5
  48. package/apidoc/types/FilterVariables.html +2 -2
  49. package/apidoc/types/GeometryType.html +2 -2
  50. package/apidoc/types/GlobalId.html +2 -2
  51. package/apidoc/types/LengthUnit.html +1 -1
  52. package/apidoc/types/OpaqueString.html +4 -4
  53. package/apidoc/types/OperationMode.html +2 -2
  54. package/apidoc/types/TablePart.html +2 -2
  55. package/apidoc/types/UiFeature.html +4 -3
  56. package/apidoc/types/WorkbookLayerPath.html +3 -3
  57. package/cadenza.d.ts +38 -23
  58. package/cadenza.js +41 -30
  59. package/package.json +8 -8
  60. package/sandbox.html +64 -21
package/sandbox.html CHANGED
@@ -165,8 +165,8 @@
165
165
  setSelection: data => cadenzaClient.setSelection(JSON.parse(data.layer), JSON.parse(data.objectIds), {extentStrategy: JSON.parse(data.extentStrategy)}),
166
166
  addSelection: data => cadenzaClient.addSelection(JSON.parse(data.layer), JSON.parse(data.objectIds), { extentStrategy: JSON.parse(data.extentStrategy) }),
167
167
  removeSelection: data => cadenzaClient.removeSelection(JSON.parse(data.layer), JSON.parse(data.objectIds), { extentStrategy: JSON.parse(data.extentStrategy) }),
168
- createGeometry: data => cadenzaClient.createGeometry(data.embeddingTargetId, data.geometryType, getOptions(data)),
169
- editGeometry: ({ geometry, ...data }) => cadenzaClient.editGeometry(data.embeddingTargetId, JSON.parse(geometry), getOptions(data)),
168
+ createGeometry: (data, formData) => cadenzaClient.createGeometry(data.embeddingTargetId, data.geometryType, getOptions(data, formData)),
169
+ editGeometry: ({ geometry, ...data }, formData) => cadenzaClient.editGeometry(data.embeddingTargetId, JSON.parse(geometry), getOptions(data, formData)),
170
170
  selectObjects: data => cadenzaClient.selectObjects(data.embeddingTargetId, getOptions(data)),
171
171
  fetchData: data => {
172
172
  console.log('Inspect the fetchData() request in the devtools.');
@@ -189,8 +189,9 @@
189
189
  const form = document.getElementById('form');
190
190
  form.onsubmit = (event) => {
191
191
  event.preventDefault();
192
- const { action, ...data } = Object.fromEntries(new FormData(form));
193
- actionHandlers[action](data);
192
+ const formData = new FormData(form);
193
+ const { action, ...data } = Object.fromEntries(formData);
194
+ actionHandlers[action](data, formData);
194
195
  localStorage.setItem(`cadenzajs-sandbox-${action}`, JSON.stringify(data));
195
196
  };
196
197
 
@@ -212,47 +213,52 @@
212
213
  }
213
214
 
214
215
  function getOptions ({
216
+ additionalLayers,
215
217
  disabledUiFeatures,
218
+ distance,
216
219
  expandNavigator,
220
+ extentStrategy,
221
+ fullGeometries,
217
222
  fileName,
218
223
  filter,
219
224
  geometry,
220
225
  hideMainHeaderAndFooter,
221
226
  hideWorkbookToolBar,
222
227
  highlightGlobalId,
223
- requestAsPdf,
224
228
  labelSet,
229
+ layers,
230
+ lengthUnit,
225
231
  minScale,
226
232
  parts,
227
- layers,
233
+ requestAsPdf,
228
234
  simplifiedOperationMode,
235
+ snappingLayer,
229
236
  useMapSrs,
230
- fullGeometries,
231
- extentStrategy,
232
- distance,
233
- lengthUnit,
234
- additionalLayers
235
- }) {
237
+ }, formData) {
236
238
  return {
239
+ additionalLayers: additionalLayers && JSON.parse(additionalLayers),
240
+ buffer: distance ? { value: Number(distance), lengthUnit: lengthUnit ? lengthUnit : 'm' } : undefined,
241
+ ...(requestAsPdf === 'on' && { dataType: 'pdf' }),
237
242
  disabledUiFeatures: disabledUiFeatures && disabledUiFeatures.split(','),
238
243
  expandNavigator: (expandNavigator === 'on'),
244
+ extentStrategy: extentStrategy && JSON.parse(extentStrategy),
239
245
  fileName,
240
246
  filter: filter && parseFilterVariables(filter),
247
+ fullGeometries: fullGeometries === 'on',
241
248
  geometry: geometry && JSON.parse(geometry),
242
249
  hideMainHeaderAndFooter: (hideMainHeaderAndFooter === 'on'),
243
250
  hideWorkbookToolBar: (hideWorkbookToolBar === 'on'),
244
251
  highlightGlobalId,
245
- ...(requestAsPdf === 'on' && { dataType: 'pdf' }),
246
252
  labelSet,
253
+ layers: layers ? JSON.parse(layers) : undefined,
247
254
  minScale: minScale && Number(minScale),
248
- parts: parts && parts.split(','),
249
255
  operationMode: (simplifiedOperationMode === 'on' ? 'simplified' : 'normal' ),
250
- layers: layers ? JSON.parse(layers) : undefined,
256
+ parts: parts && parts.split(','),
257
+ snapping: snappingLayer ? {
258
+ layer: JSON.parse(snappingLayer),
259
+ types: formData?.getAll('snappingTypes')
260
+ }: undefined,
251
261
  useMapSrs: useMapSrs === 'on',
252
- fullGeometries: fullGeometries === 'on',
253
- extentStrategy: extentStrategy && JSON.parse(extentStrategy),
254
- buffer: distance ? { value: Number(distance), lengthUnit: lengthUnit ? lengthUnit : 'm' } : undefined,
255
- additionalLayers: additionalLayers && JSON.parse(additionalLayers)
256
262
  };
257
263
  }
258
264
 
@@ -368,6 +374,7 @@
368
374
 
369
375
  Supported features:
370
376
  <ul>
377
+ <li>geometry-edit-translate</li>
371
378
  <li>workbook-design</li>
372
379
  <li>workbook-map-add-layer</li>
373
380
  <li>workbook-view-management</li>
@@ -481,7 +488,7 @@
481
488
 
482
489
  <template data-action="setFilter" data-common="filter"></template>
483
490
 
484
- <template data-action="createGeometry" data-common="additionalLayers,extentStrategy,map,disabledUiFeatures,filter">
491
+ <template data-action="createGeometry" data-common="additionalLayers,extentStrategy,map,snapping,disabledUiFeatures,filter">
485
492
  <div>
486
493
  <label for="embeddingTargetId">Embedding target ID of the map view *</label>
487
494
  <input name="embeddingTargetId" id="embeddingTargetId" required>
@@ -509,7 +516,7 @@
509
516
  </div>
510
517
  </template>
511
518
 
512
- <template data-action="editGeometry" data-common="additionalLayers,extentStrategy,map,disabledUiFeatures,filter">
519
+ <template data-action="editGeometry" data-common="additionalLayers,extentStrategy,map,snapping,disabledUiFeatures,filter">
513
520
  <div>
514
521
  <label for="embeddingTargetId">Embedding target ID of the map view *</label>
515
522
  <input name="embeddingTargetId" id="embeddingTargetId" required>
@@ -546,6 +553,42 @@
546
553
  </div>
547
554
  </template>
548
555
 
556
+ <template id="common-snapping">
557
+ <div>
558
+ <label for="snappingLayer">Snapping Layer</label>
559
+ <input name="snappingLayer" id="snappingLayer">
560
+ <small>
561
+ <p>
562
+ A JSON value like <code>"&lt;layerPrintName&gt;"</code> or
563
+ <code>["&lt;layerGroupPrintName&gt;","&lt;layerPrintName&gt;"]</code>
564
+ </p>
565
+ </small>
566
+ </div>
567
+ <div>
568
+ <label for="snappingTypes">Snapping Types</label>
569
+ <div role="group" id="snappingTypes">
570
+ <div>
571
+ <label>
572
+ <input type="checkbox" name="snappingTypes" value="toVertices">
573
+ To Vertices
574
+ </label>
575
+ </div>
576
+ <div>
577
+ <label>
578
+ <input type="checkbox" name="snappingTypes" value="toEdges">
579
+ To Edges
580
+ </label>
581
+ </div>
582
+ <div>
583
+ <label>
584
+ <input type="checkbox" name="snappingTypes" value="lineTracing">
585
+ Line Tracing
586
+ </label>
587
+ </div>
588
+ </div>
589
+ </div>
590
+ </template>
591
+
549
592
  <template data-action="selectObjects" data-common="extentStrategy,map,filter">
550
593
  <div>
551
594
  <label for="embeddingTargetId">Embedding target ID of the map view *</label>