@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.es.js CHANGED
@@ -3300,11 +3300,13 @@ class MoveFormFieldHandler {
3300
3300
  * @param { import('../../../FormEditor').default } formEditor
3301
3301
  * @param { import('../../../core/FormFieldRegistry').default } formFieldRegistry
3302
3302
  * @param { import('@bpmn-io/form-js-viewer').PathRegistry } pathRegistry
3303
+ * @param { import('@bpmn-io/form-js-viewer').FormLayouter } formLayouter
3303
3304
  */
3304
- constructor(formEditor, formFieldRegistry, pathRegistry) {
3305
+ constructor(formEditor, formFieldRegistry, pathRegistry, formLayouter) {
3305
3306
  this._formEditor = formEditor;
3306
3307
  this._formFieldRegistry = formFieldRegistry;
3307
3308
  this._pathRegistry = pathRegistry;
3309
+ this._formLayouter = formLayouter;
3308
3310
  }
3309
3311
  execute(context) {
3310
3312
  this.moveFormField(context);
@@ -3351,8 +3353,8 @@ class MoveFormFieldHandler {
3351
3353
  }
3352
3354
  const formField = get(schema, [...sourcePath, sourceIndex]);
3353
3355
 
3354
- // (1) Add to row
3355
- updateRow(formField, targetRow ? targetRow.id : null);
3356
+ // (1) Add to row or create new one
3357
+ updateRow(formField, targetRow ? targetRow.id : this._formLayouter.nextRowId());
3356
3358
 
3357
3359
  // (2) Move form field
3358
3360
  mutate(get(schema, sourcePath), sourceIndex, targetIndex);
@@ -3377,8 +3379,8 @@ class MoveFormFieldHandler {
3377
3379
  get(schema, sourcePath).forEach((formField, index) => updatePath(this._formFieldRegistry, formField, index));
3378
3380
  const targetPath = [...targetFormField._path, 'components'];
3379
3381
 
3380
- // (4) Add to row
3381
- updateRow(formField, targetRow ? targetRow.id : null);
3382
+ // (4) Add to row or create new one
3383
+ updateRow(formField, targetRow ? targetRow.id : this._formLayouter.nextRowId());
3382
3384
 
3383
3385
  // (5) Add form field
3384
3386
  arrayAdd$1(get(schema, targetPath), targetIndex, formField);
@@ -3401,7 +3403,7 @@ class MoveFormFieldHandler {
3401
3403
  });
3402
3404
  }
3403
3405
  }
3404
- MoveFormFieldHandler.$inject = ['formEditor', 'formFieldRegistry', 'pathRegistry'];
3406
+ MoveFormFieldHandler.$inject = ['formEditor', 'formFieldRegistry', 'pathRegistry', 'formLayouter'];
3405
3407
 
3406
3408
  class RemoveFormFieldHandler {
3407
3409
  /**
@@ -3991,12 +3993,21 @@ class FormLayoutUpdater extends CommandInterceptor {
3991
3993
  const {
3992
3994
  schema
3993
3995
  } = this._formEditor._getState();
3996
+ const setRowIds = parent => {
3997
+ if (!parent.components || !parent.components.length) {
3998
+ return;
3999
+ }
4000
+ parent.components.forEach(formField => {
4001
+ const row = this._formLayouter.getRowForField(formField);
4002
+ updateRow(formField, row.id);
4003
+
4004
+ // handle children recursively
4005
+ setRowIds(formField);
4006
+ });
4007
+ };
3994
4008
 
3995
4009
  // make sure rows are persisted in schema (e.g. for migration case)
3996
- schema.components.forEach(formField => {
3997
- const row = this._formLayouter.getRowForField(formField);
3998
- updateRow(formField, row.id);
3999
- });
4010
+ setRowIds(schema);
4000
4011
  }
4001
4012
  }
4002
4013
  FormLayoutUpdater.$inject = ['eventBus', 'formLayouter', 'modeling', 'formEditor'];