@limetech/lime-elements 38.29.4 → 38.30.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.
Files changed (28) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/cjs/limel-form.cjs.entry.js +60 -27
  4. package/dist/cjs/limel-form.cjs.entry.js.map +1 -1
  5. package/dist/collection/components/form/form.js +1 -0
  6. package/dist/collection/components/form/form.js.map +1 -1
  7. package/dist/collection/components/form/form.types.js.map +1 -1
  8. package/dist/collection/components/form/templates/array-field-collapsible-item.js +11 -9
  9. package/dist/collection/components/form/templates/array-field-collapsible-item.js.map +1 -1
  10. package/dist/collection/components/form/templates/array-field-simple-item.js +36 -18
  11. package/dist/collection/components/form/templates/array-field-simple-item.js.map +1 -1
  12. package/dist/collection/components/form/templates/array-field.js +13 -0
  13. package/dist/collection/components/form/templates/array-field.js.map +1 -1
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/limel-form.entry.js +60 -27
  16. package/dist/esm/limel-form.entry.js.map +1 -1
  17. package/dist/lime-elements/index.esm.js.map +1 -1
  18. package/dist/lime-elements/lime-elements.esm.js +1 -1
  19. package/dist/lime-elements/{p-d24988e7.entry.js → p-beee38bc.entry.js} +5 -5
  20. package/dist/lime-elements/p-beee38bc.entry.js.map +1 -0
  21. package/dist/types/components/form/form.d.ts +1 -0
  22. package/dist/types/components/form/form.types.d.ts +8 -0
  23. package/dist/types/components/form/templates/array-field-collapsible-item.d.ts +9 -1
  24. package/dist/types/components/form/templates/array-field-simple-item.d.ts +9 -5
  25. package/dist/types/components/form/templates/array-field.d.ts +1 -0
  26. package/dist/types/components.d.ts +4 -0
  27. package/package.json +1 -1
  28. package/dist/lime-elements/p-d24988e7.entry.js.map +0 -1
@@ -39294,27 +39294,29 @@ class CollapsibleItemTemplate extends react.Component {
39294
39294
  }, children);
39295
39295
  }
39296
39296
  setActions(element) {
39297
- const { item, index } = this.props;
39298
- const actions = [
39299
- {
39297
+ const { item, index, allowItemRemoval, allowItemReorder } = this.props;
39298
+ const actions = [];
39299
+ if (allowItemReorder) {
39300
+ actions.push({
39300
39301
  id: 'down',
39301
39302
  icon: 'down_arrow',
39302
39303
  disabled: !item.hasMoveDown,
39303
39304
  run: item.onReorderClick(index, index + 1),
39304
- },
39305
- {
39305
+ }, {
39306
39306
  id: 'up',
39307
39307
  icon: 'up_arrow',
39308
39308
  disabled: !item.hasMoveUp,
39309
39309
  run: item.onReorderClick(index, index - 1),
39310
- },
39311
- {
39310
+ });
39311
+ }
39312
+ if (allowItemRemoval) {
39313
+ actions.push({
39312
39314
  id: 'remove',
39313
39315
  icon: 'trash',
39314
39316
  disabled: !item.hasRemove,
39315
39317
  run: item.onDropIndexClick(index),
39316
- },
39317
- ];
39318
+ });
39319
+ }
39318
39320
  element.actions = actions;
39319
39321
  }
39320
39322
  handleAction(event) {
@@ -39349,30 +39351,52 @@ class SimpleItemTemplate extends react.Component {
39349
39351
  const { item, index } = this.props;
39350
39352
  item.onReorderClick(index, index + 1)(event);
39351
39353
  };
39352
- }
39353
- componentDidMount() {
39354
- this.removeButton.addEventListener('click', this.handleRemove);
39355
- this.moveUpButton.addEventListener('click', this.handleMoveUp);
39356
- this.moveDownButton.addEventListener('click', this.handleMoveDown);
39354
+ this.setRemoveButton = (button) => {
39355
+ if (this.removeButton) {
39356
+ this.removeButton.removeEventListener('click', this.handleRemove);
39357
+ }
39358
+ this.removeButton = button || undefined;
39359
+ if (this.removeButton) {
39360
+ this.removeButton.addEventListener('click', this.handleRemove);
39361
+ }
39362
+ };
39363
+ this.setMoveUpButton = (button) => {
39364
+ if (this.moveUpButton) {
39365
+ this.moveUpButton.removeEventListener('click', this.handleMoveUp);
39366
+ }
39367
+ this.moveUpButton = button || undefined;
39368
+ if (this.moveUpButton) {
39369
+ this.moveUpButton.addEventListener('click', this.handleMoveUp);
39370
+ }
39371
+ };
39372
+ this.setMoveDownButton = (button) => {
39373
+ if (this.moveDownButton) {
39374
+ this.moveDownButton.removeEventListener('click', this.handleMoveDown);
39375
+ }
39376
+ this.moveDownButton = button || undefined;
39377
+ if (this.moveDownButton) {
39378
+ this.moveDownButton.addEventListener('click', this.handleMoveDown);
39379
+ }
39380
+ };
39357
39381
  }
39358
39382
  componentWillUnmount() {
39359
- this.removeButton.removeEventListener('click', this.handleRemove);
39360
- this.moveUpButton.removeEventListener('click', this.handleMoveUp);
39361
- this.moveDownButton.removeEventListener('click', this.handleMoveDown);
39383
+ this.setRemoveButton(undefined);
39384
+ this.setMoveUpButton(undefined);
39385
+ this.setMoveDownButton(undefined);
39362
39386
  }
39363
39387
  render() {
39364
39388
  const { item } = this.props;
39365
39389
  return react.createElement('div', {
39366
39390
  className: 'limel-form-array-item--simple',
39367
- }, this.props.item.children, this.renderRemoveButton(item), this.renderMoveUpButton(item), this.renderMoveDownButton(item));
39391
+ }, this.props.item.children, this.props.allowItemReorder
39392
+ ? this.renderMoveDownButton(item)
39393
+ : null, this.props.allowItemReorder ? this.renderMoveUpButton(item) : null, this.props.allowItemRemoval ? this.renderRemoveButton(item) : null);
39368
39394
  }
39369
39395
  renderRemoveButton(item) {
39370
39396
  const props = {
39371
39397
  icon: 'trash',
39372
39398
  disabled: !item.hasRemove,
39373
- ref: (button) => {
39374
- this.removeButton = button;
39375
- },
39399
+ ref: this.setRemoveButton,
39376
39400
  };
39377
39401
  return react.createElement(LIMEL_ICON_BUTTON, props);
39378
39402
  }
@@ -39380,9 +39404,7 @@ class SimpleItemTemplate extends react.Component {
39380
39404
  const props = {
39381
39405
  icon: 'up_arrow',
39382
39406
  disabled: !item.hasMoveUp,
39383
- ref: (button) => {
39384
- this.moveUpButton = button;
39385
- },
39407
+ ref: this.setMoveUpButton,
39386
39408
  };
39387
39409
  return react.createElement(LIMEL_ICON_BUTTON, props);
39388
39410
  }
@@ -39390,9 +39412,7 @@ class SimpleItemTemplate extends react.Component {
39390
39412
  const props = {
39391
39413
  icon: 'down_arrow',
39392
39414
  disabled: !item.hasMoveDown,
39393
- ref: (button) => {
39394
- this.moveDownButton = button;
39395
- },
39415
+ ref: this.setMoveDownButton,
39396
39416
  };
39397
39417
  return react.createElement(LIMEL_ICON_BUTTON, props);
39398
39418
  }
@@ -39421,6 +39441,7 @@ class ArrayFieldTemplate extends react.Component {
39421
39441
  }
39422
39442
  renderItem(item, index) {
39423
39443
  const { schema, formData, formContext } = this.props;
39444
+ const controls = this.getItemControls();
39424
39445
  if (isObjectType(schema.items)) {
39425
39446
  return react.createElement(CollapsibleItemTemplate, {
39426
39447
  key: item.key,
@@ -39429,14 +39450,26 @@ class ArrayFieldTemplate extends react.Component {
39429
39450
  schema: schema,
39430
39451
  formSchema: formContext.schema,
39431
39452
  index: index,
39453
+ allowItemRemoval: controls.allowItemRemoval,
39454
+ allowItemReorder: controls.allowItemReorder,
39432
39455
  });
39433
39456
  }
39434
39457
  return react.createElement(SimpleItemTemplate, {
39435
39458
  key: item.key,
39436
39459
  item: item,
39437
39460
  index: index,
39461
+ allowItemRemoval: controls.allowItemRemoval,
39462
+ allowItemReorder: controls.allowItemReorder,
39438
39463
  });
39439
39464
  }
39465
+ getItemControls() {
39466
+ var _a;
39467
+ const limeOptions = ((_a = this.props.schema) === null || _a === void 0 ? void 0 : _a.lime) || {};
39468
+ return {
39469
+ allowItemRemoval: limeOptions.allowItemRemoval !== false,
39470
+ allowItemReorder: limeOptions.allowItemReorder !== false,
39471
+ };
39472
+ }
39440
39473
  handleAddClick(event) {
39441
39474
  event.stopPropagation();
39442
39475
  this.props.onAddClick(event);