@steroidsjs/core 3.0.22 → 3.0.23

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.
@@ -13569,6 +13569,15 @@
13569
13569
  "example": "true",
13570
13570
  "defaultValue": null
13571
13571
  },
13572
+ {
13573
+ "name": "empty",
13574
+ "decorators": [],
13575
+ "description": "Текст при отсутствии элементов",
13576
+ "required": false,
13577
+ "type": "string",
13578
+ "example": "'Ничего не найдено'",
13579
+ "defaultValue": null
13580
+ },
13572
13581
  {
13573
13582
  "name": "errors",
13574
13583
  "decorators": [],
@@ -13921,6 +13930,15 @@
13921
13930
  }
13922
13931
  ],
13923
13932
  "methods": [
13933
+ {
13934
+ "name": "onClear",
13935
+ "decorators": [],
13936
+ "description": "",
13937
+ "required": false,
13938
+ "type": "void",
13939
+ "example": null,
13940
+ "parameters": []
13941
+ },
13924
13942
  {
13925
13943
  "name": "onItemHover",
13926
13944
  "decorators": [],
@@ -20741,6 +20759,15 @@
20741
20759
  "example": null,
20742
20760
  "defaultValue": null
20743
20761
  },
20762
+ {
20763
+ "name": "initialItems",
20764
+ "decorators": [],
20765
+ "description": "Начальные элементы списка",
20766
+ "required": false,
20767
+ "type": "{}[]",
20768
+ "example": "[\n {\n name: 'Ivan',\n amount: 5\n },\n {\n name: 'John',\n amount: 1\n }\n]",
20769
+ "defaultValue": null
20770
+ },
20744
20771
  {
20745
20772
  "name": "initialRowsCount",
20746
20773
  "decorators": [],
@@ -20753,7 +20780,7 @@
20753
20780
  {
20754
20781
  "name": "initialValues",
20755
20782
  "decorators": [],
20756
- "description": "Начальные значения в полях",
20783
+ "description": "Значения для полей при нажатии кнопки 'Добавить'",
20757
20784
  "required": false,
20758
20785
  "type": "{}",
20759
20786
  "example": "{\n name: 'Ivan',\n amount: 5\n}",
package/en.json CHANGED
@@ -996,7 +996,10 @@
996
996
  "Начальная дата": "",
997
997
  "Дополнительные данные которые попадут в дата аттрибут data-icon": "",
998
998
  "Компоненты для подключения wysiwyg редактора": "",
999
+ "Текст при отсутствии элементов": "",
999
1000
  "Отображать чекбоксы только на узлах, не имеющих вложенных элементов": "",
1001
+ "Начальные элементы списка": "",
1002
+ "Значения для полей при нажатии кнопки 'Добавить'": "",
1000
1003
  "Размер компонента и вложенных полей": "",
1001
1004
  "Параметры для кнопки отправки формы": "",
1002
1005
  "Очищать сообщение об ошибке при редактировании поля. По-умолчанию включено": "",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.22",
3
+ "version": "3.0.23",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -32,6 +32,11 @@ export interface IAutoCompleteFieldProps extends IBaseFieldProps, IDataProviderC
32
32
  * @example true
33
33
  */
34
34
  searchOnFocus?: boolean;
35
+ /**
36
+ * Текст при отсутствии элементов
37
+ * @example 'Ничего не найдено'
38
+ */
39
+ empty?: string;
35
40
  }
36
41
  export interface IAutoCompleteFieldViewProps extends Omit<IAutoCompleteFieldProps, 'items'> {
37
42
  items: IAutoCompleteItem[];
@@ -53,6 +58,7 @@ export interface IAutoCompleteFieldViewProps extends Omit<IAutoCompleteFieldProp
53
58
  isLoading?: boolean;
54
59
  onItemSelect: (id: PrimaryKey | any) => void;
55
60
  onItemHover: (id: PrimaryKey | any) => void;
61
+ onClear: () => void;
56
62
  }
57
63
  declare const _default: import("../../../ui/form/Field/fieldWrapper").FieldWrapperComponent<IAutoCompleteFieldProps>;
58
64
  export default _default;
@@ -40,14 +40,16 @@ function AutoCompleteField(props) {
40
40
  dataProvider: props.dataProvider,
41
41
  autoComplete: props.autoComplete,
42
42
  autoFetch: props.autoFetch,
43
+ initialSelectedIds: props.selectedIds,
43
44
  query: query
44
- }), items = _b.items, isLoading = _b.isLoading;
45
+ }), items = _b.items, isLoading = _b.isLoading, sourceItems = _b.sourceItems;
45
46
  // Data select
46
47
  var _c = (0, hooks_1.useDataSelect)({
47
48
  selectedIds: props.selectedIds,
48
49
  primaryKey: props.primaryKey,
49
50
  items: items,
50
- inputValue: props.input.value
51
+ inputValue: props.input.value,
52
+ sourceItems: sourceItems
51
53
  }), isOpened = _c.isOpened, setIsOpened = _c.setIsOpened, setIsFocused = _c.setIsFocused, hoveredId = _c.hoveredId, setHoveredId = _c.setHoveredId, selectedIds = _c.selectedIds, setSelectedIds = _c.setSelectedIds;
52
54
  var onOpen = (0, react_1.useCallback)(function () {
53
55
  setQuery('');
@@ -65,6 +67,9 @@ function AutoCompleteField(props) {
65
67
  setIsFocused(false);
66
68
  setIsOpened(false);
67
69
  }, [setIsFocused, setIsOpened]);
70
+ var onClear = (0, react_1.useCallback)(function () {
71
+ setSelectedIds([]);
72
+ }, [setSelectedIds]);
68
73
  // Outside click -> close
69
74
  var forwardedRef = (0, react_1.useRef)(null);
70
75
  (0, react_use_1.useClickAway)(forwardedRef, onClose);
@@ -99,6 +104,7 @@ function AutoCompleteField(props) {
99
104
  onOpen: onOpen,
100
105
  isOpened: isOpened,
101
106
  onClose: onClose,
107
+ onClear: onClear,
102
108
  forwardedRef: forwardedRef,
103
109
  onItemHover: onItemHover,
104
110
  onItemSelect: onItemSelect,
@@ -109,10 +115,12 @@ function AutoCompleteField(props) {
109
115
  required: props.required,
110
116
  categories: getCategories(props.items),
111
117
  className: props.className,
112
- style: props.style
113
- }); }, [inputProps, items, isLoading, hoveredId, selectedIds, onOpen, isOpened, onClose,
114
- onItemHover, onItemSelect, props.primaryKey, props.size, props.placeholder, props.disabled,
115
- props.required, props.items, props.className, props.style]);
118
+ style: props.style,
119
+ showClear: props.showClear,
120
+ empty: props.empty
121
+ }); }, [inputProps, items, isLoading, hoveredId, selectedIds, onOpen, isOpened, onClose, onClear, onItemHover, onItemSelect,
122
+ props.primaryKey, props.size, props.placeholder, props.disabled, props.required, props.items, props.className,
123
+ props.style, props.showClear, props.empty]);
116
124
  return components.ui.renderView(props.view || 'form.AutoCompleteFieldView', viewProps);
117
125
  }
118
126
  AutoCompleteField.defaultProps = {
@@ -120,6 +128,7 @@ AutoCompleteField.defaultProps = {
120
128
  autoComplete: true,
121
129
  multiple: false,
122
130
  disabled: false,
123
- required: false
131
+ required: false,
132
+ showClear: false
124
133
  };
125
134
  exports["default"] = (0, fieldWrapper_1["default"])('AutoCompleteField', AutoCompleteField);
@@ -34,7 +34,7 @@ export interface IFieldListItem extends IFieldWrapperInputProps, IUiComponent {
34
34
  */
35
35
  export interface IFieldListProps extends IFieldWrapperInputProps, IUiComponent {
36
36
  /**
37
- * Начальные значения в полях
37
+ * Значения для полей при нажатии кнопки 'Добавить'
38
38
  * @example
39
39
  * {
40
40
  * name: 'Ivan',
@@ -44,6 +44,23 @@ export interface IFieldListProps extends IFieldWrapperInputProps, IUiComponent {
44
44
  initialValues?: {
45
45
  [key: string]: any;
46
46
  };
47
+ /**
48
+ * Начальные элементы списка
49
+ * @example
50
+ * [
51
+ * {
52
+ * name: 'Ivan',
53
+ * amount: 5
54
+ * },
55
+ * {
56
+ * name: 'John',
57
+ * amount: 1
58
+ * }
59
+ * ]
60
+ */
61
+ initialItems?: {
62
+ [key: string]: any;
63
+ }[];
47
64
  /**
48
65
  * Список с полями формы
49
66
  */
@@ -88,11 +88,15 @@ function FieldList(props) {
88
88
  removeRowIndex(rowIndex);
89
89
  dispatch((0, form_1.formArrayRemove)(context.formId, props.input.name, rowIndex));
90
90
  }, [context.formId, dispatch, props.input.name, removeRowIndex]);
91
- // Add initial rows
92
91
  (0, react_use_1.useMount)(function () {
92
+ // Add initial rows
93
93
  if (!props.input.value) {
94
94
  onAdd(props.initialRowsCount);
95
95
  }
96
+ // Add initial items
97
+ if (props.initialItems) {
98
+ dispatch((0, form_1.formChange)(context.formId, props.input.name, props.initialItems));
99
+ }
96
100
  });
97
101
  // Keyboard navigation
98
102
  var nodeRef = (0, react_1.useRef)();
@@ -138,6 +142,7 @@ function FieldList(props) {
138
142
  }
139
143
  FieldList.defaultProps = {
140
144
  initialValues: null,
145
+ initialItems: null,
141
146
  disabled: false,
142
147
  required: false,
143
148
  showAdd: true,