@bpmn-io/form-js-editor 1.4.1 → 1.5.0-alpha.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/dist/index.cjs CHANGED
@@ -3320,11 +3320,13 @@ class MoveFormFieldHandler {
3320
3320
  * @param { import('../../../FormEditor').default } formEditor
3321
3321
  * @param { import('../../../core/FormFieldRegistry').default } formFieldRegistry
3322
3322
  * @param { import('@bpmn-io/form-js-viewer').PathRegistry } pathRegistry
3323
+ * @param { import('@bpmn-io/form-js-viewer').FormLayouter } formLayouter
3323
3324
  */
3324
- constructor(formEditor, formFieldRegistry, pathRegistry) {
3325
+ constructor(formEditor, formFieldRegistry, pathRegistry, formLayouter) {
3325
3326
  this._formEditor = formEditor;
3326
3327
  this._formFieldRegistry = formFieldRegistry;
3327
3328
  this._pathRegistry = pathRegistry;
3329
+ this._formLayouter = formLayouter;
3328
3330
  }
3329
3331
  execute(context) {
3330
3332
  this.moveFormField(context);
@@ -3371,8 +3373,8 @@ class MoveFormFieldHandler {
3371
3373
  }
3372
3374
  const formField = minDash.get(schema, [...sourcePath, sourceIndex]);
3373
3375
 
3374
- // (1) Add to row
3375
- updateRow(formField, targetRow ? targetRow.id : null);
3376
+ // (1) Add to row or create new one
3377
+ updateRow(formField, targetRow ? targetRow.id : this._formLayouter.nextRowId());
3376
3378
 
3377
3379
  // (2) Move form field
3378
3380
  arrayMove.mutate(minDash.get(schema, sourcePath), sourceIndex, targetIndex);
@@ -3397,8 +3399,8 @@ class MoveFormFieldHandler {
3397
3399
  minDash.get(schema, sourcePath).forEach((formField, index) => updatePath(this._formFieldRegistry, formField, index));
3398
3400
  const targetPath = [...targetFormField._path, 'components'];
3399
3401
 
3400
- // (4) Add to row
3401
- updateRow(formField, targetRow ? targetRow.id : null);
3402
+ // (4) Add to row or create new one
3403
+ updateRow(formField, targetRow ? targetRow.id : this._formLayouter.nextRowId());
3402
3404
 
3403
3405
  // (5) Add form field
3404
3406
  arrayAdd$1(minDash.get(schema, targetPath), targetIndex, formField);
@@ -3421,7 +3423,7 @@ class MoveFormFieldHandler {
3421
3423
  });
3422
3424
  }
3423
3425
  }
3424
- MoveFormFieldHandler.$inject = ['formEditor', 'formFieldRegistry', 'pathRegistry'];
3426
+ MoveFormFieldHandler.$inject = ['formEditor', 'formFieldRegistry', 'pathRegistry', 'formLayouter'];
3425
3427
 
3426
3428
  class RemoveFormFieldHandler {
3427
3429
  /**
@@ -4011,12 +4013,21 @@ class FormLayoutUpdater extends CommandInterceptor {
4011
4013
  const {
4012
4014
  schema
4013
4015
  } = this._formEditor._getState();
4016
+ const setRowIds = parent => {
4017
+ if (!parent.components || !parent.components.length) {
4018
+ return;
4019
+ }
4020
+ parent.components.forEach(formField => {
4021
+ const row = this._formLayouter.getRowForField(formField);
4022
+ updateRow(formField, row.id);
4023
+
4024
+ // handle children recursively
4025
+ setRowIds(formField);
4026
+ });
4027
+ };
4014
4028
 
4015
4029
  // make sure rows are persisted in schema (e.g. for migration case)
4016
- schema.components.forEach(formField => {
4017
- const row = this._formLayouter.getRowForField(formField);
4018
- updateRow(formField, row.id);
4019
- });
4030
+ setRowIds(schema);
4020
4031
  }
4021
4032
  }
4022
4033
  FormLayoutUpdater.$inject = ['eventBus', 'formLayouter', 'modeling', 'formEditor'];