@steroidsjs/core 3.0.27 → 3.0.28

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.
@@ -19027,6 +19027,24 @@
19027
19027
  "example": null
19028
19028
  }
19029
19029
  ]
19030
+ },
19031
+ {
19032
+ "name": "onClose",
19033
+ "decorators": [],
19034
+ "description": "Callback-функция, которая вызывается при закрытии DropDown",
19035
+ "required": false,
19036
+ "type": "void",
19037
+ "example": null,
19038
+ "parameters": [
19039
+ {
19040
+ "name": "selectedIds",
19041
+ "decorators": [],
19042
+ "description": "",
19043
+ "required": true,
19044
+ "type": "PrimaryKey[]",
19045
+ "example": null
19046
+ }
19047
+ ]
19030
19048
  }
19031
19049
  ]
19032
19050
  },
@@ -19445,6 +19463,24 @@
19445
19463
  }
19446
19464
  ]
19447
19465
  },
19466
+ {
19467
+ "name": "onClose",
19468
+ "decorators": [],
19469
+ "description": "Callback-функция, которая вызывается при закрытии DropDown",
19470
+ "required": false,
19471
+ "type": "void",
19472
+ "example": null,
19473
+ "parameters": [
19474
+ {
19475
+ "name": "selectedIds",
19476
+ "decorators": [],
19477
+ "description": "",
19478
+ "required": true,
19479
+ "type": "PrimaryKey[]",
19480
+ "example": null
19481
+ }
19482
+ ]
19483
+ },
19448
19484
  {
19449
19485
  "name": "onItemRemove",
19450
19486
  "decorators": [],
@@ -20663,6 +20699,15 @@
20663
20699
  }
20664
20700
  ],
20665
20701
  "methods": [
20702
+ {
20703
+ "name": "onAdd",
20704
+ "decorators": [],
20705
+ "description": "",
20706
+ "required": false,
20707
+ "type": "void",
20708
+ "example": null,
20709
+ "parameters": []
20710
+ },
20666
20711
  {
20667
20712
  "name": "onRemove",
20668
20713
  "decorators": [],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.27",
3
+ "version": "3.0.28",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -130,6 +130,10 @@ export interface IDropDownFieldProps extends IFieldWrapperInputProps, Omit<IData
130
130
  * Кастомная вьюшка для элемента
131
131
  */
132
132
  itemView?: CustomView;
133
+ /**
134
+ * Callback-функция, которая вызывается при закрытии DropDown
135
+ */
136
+ onClose?: (selectedIds: PrimaryKey[]) => void;
133
137
  [key: string]: any;
134
138
  }
135
139
  export interface IDropDownFieldViewProps extends IDropDownFieldProps {
@@ -135,9 +135,14 @@ function DropDownField(props) {
135
135
  setSelectedIds([]);
136
136
  }, [setSelectedIds]);
137
137
  var onClose = (0, react_1.useCallback)(function () {
138
- setIsFocused(false);
139
- setIsOpened(false);
140
- }, [setIsFocused, setIsOpened]);
138
+ if (isOpened) {
139
+ setIsFocused(false);
140
+ setIsOpened(false);
141
+ if (props.onClose) {
142
+ props.onClose(selectedIds);
143
+ }
144
+ }
145
+ }, [isOpened, props, selectedIds, setIsFocused, setIsOpened]);
141
146
  // Outside click -> close
142
147
  var forwardedRef = (0, react_1.useRef)(null);
143
148
  if (process.env.PLATFORM !== 'mobile') {
@@ -136,6 +136,7 @@ export interface IFieldListItemViewProps extends IFieldWrapperOutputProps {
136
136
  required?: boolean;
137
137
  rowIndex: number;
138
138
  showRemove: boolean;
139
+ onAdd?: () => void;
139
140
  }
140
141
  declare const _default: import("../../form/Field/fieldWrapper").FieldWrapperComponent<IFieldListProps>;
141
142
  export default _default;
@@ -131,9 +131,10 @@ function FieldList(props) {
131
131
  required: props.required,
132
132
  className: props.className,
133
133
  tableClassName: props.tableClassName,
134
- items: items
135
- }); }, [items, props.className, props.disabled, props.required, props.showAdd, props.showRemove, props.size, props.tableClassName]);
136
- var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign({}, commonProps), props.viewProps), { forwardedRef: nodeRef, onAdd: onAdd, hasAlternatingColors: props.hasAlternatingColors, style: props.style, children: props.children })); }, [commonProps, onAdd, props.children, props.hasAlternatingColors, props.style, props.viewProps]);
134
+ items: items,
135
+ onAdd: onAdd
136
+ }); }, [items, onAdd, props.className, props.disabled, props.required, props.showAdd, props.showRemove, props.size, props.tableClassName]);
137
+ var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign({}, commonProps), props.viewProps), { forwardedRef: nodeRef, hasAlternatingColors: props.hasAlternatingColors, style: props.style, children: props.children })); }, [commonProps, props.children, props.hasAlternatingColors, props.style, props.viewProps]);
137
138
  var itemViewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign({}, commonProps), props.itemViewProps), { onRemove: onRemove })); }, [commonProps, onRemove, props.itemViewProps]);
138
139
  var FieldListView = props.view || components.ui.getView('form.FieldListView');
139
140
  var FieldListItemView = props.itemView || components.ui.getView('form.FieldListItemView');