@panneau/field-resource-item 2.0.58 → 2.0.65
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/es/index.js +45 -15
- package/lib/index.js +50 -17
- package/package.json +6 -3
package/es/index.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
1
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
2
3
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
3
4
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
@@ -14,8 +15,9 @@ import { isMessage, getPathValue } from '@panneau/core/utils';
|
|
14
15
|
import { useResourceItems } from '@panneau/data';
|
15
16
|
import Button from '@panneau/element-button';
|
16
17
|
import Select from '@panneau/element-select';
|
17
|
-
|
18
|
-
|
18
|
+
import ResourceForm from '@panneau/form-resource';
|
19
|
+
import { useResourceValues } from '@panneau/intl';
|
20
|
+
import Dialog from '@panneau/modal-dialog';
|
19
21
|
|
20
22
|
var propTypes = {
|
21
23
|
name: PropTypes.string,
|
@@ -73,7 +75,7 @@ var defaultProps = {
|
|
73
75
|
onChange: null
|
74
76
|
};
|
75
77
|
var ResourceItemField = function ResourceItemField(_ref) {
|
76
|
-
var
|
78
|
+
var _ref8;
|
77
79
|
var name = _ref.name,
|
78
80
|
value = _ref.value,
|
79
81
|
errors = _ref.errors,
|
@@ -125,9 +127,9 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
125
127
|
_useState12 = _slicedToArray(_useState11, 2),
|
126
128
|
inputTextValue = _useState12[0],
|
127
129
|
setInputTextValue = _useState12[1];
|
128
|
-
var
|
129
|
-
|
130
|
-
var
|
130
|
+
var resource = usePanneauResource(resourceId);
|
131
|
+
var resourceValues = useResourceValues(resource);
|
132
|
+
var queryResource = useMemo(function () {
|
131
133
|
return {
|
132
134
|
id: resourceId
|
133
135
|
};
|
@@ -135,10 +137,17 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
135
137
|
var finalQuery = useMemo(function () {
|
136
138
|
return _objectSpread(_objectSpread({}, query), !isEmpty(inputTextValue) ? _defineProperty({}, searchParamName, inputTextValue) : null);
|
137
139
|
}, [inputTextValue]);
|
138
|
-
var resourceItems = useResourceItems(
|
140
|
+
var resourceItems = useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
|
139
141
|
var _ref3 = resourceItems || {},
|
140
142
|
_ref3$items = _ref3.items,
|
141
|
-
|
143
|
+
responseItems = _ref3$items === void 0 ? null : _ref3$items;
|
144
|
+
var _ref4 = value || {},
|
145
|
+
_ref4$id = _ref4.id,
|
146
|
+
valueId = _ref4$id === void 0 ? null : _ref4$id;
|
147
|
+
var filteredItems = responseItems !== null && valueId !== null ? responseItems.filter(function (it) {
|
148
|
+
return it !== null && it.id ? it.id !== valueId : true;
|
149
|
+
}) : responseItems || [];
|
150
|
+
var items = [].concat(_toConsumableArray(filteredItems), _toConsumableArray(value !== null ? value : []));
|
142
151
|
var getItemLabel = useCallback(function (it, path) {
|
143
152
|
var id = get(it, 'id', null);
|
144
153
|
if (itemLabelWithId) {
|
@@ -168,16 +177,16 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
168
177
|
var onValueChange = useCallback(function (newId) {
|
169
178
|
if (onChange === null) return;
|
170
179
|
if (multiple) {
|
171
|
-
var newValue = items.filter(function (
|
172
|
-
var
|
173
|
-
id =
|
180
|
+
var newValue = items.filter(function (_ref5) {
|
181
|
+
var _ref5$id = _ref5.id,
|
182
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
174
183
|
return newId.indexOf(id) !== -1;
|
175
184
|
}) || [];
|
176
185
|
onChange(newValue);
|
177
186
|
} else {
|
178
|
-
var _newValue = items.filter(function (
|
179
|
-
var
|
180
|
-
id =
|
187
|
+
var _newValue = items.filter(function (_ref6) {
|
188
|
+
var _ref6$id = _ref6.id,
|
189
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
181
190
|
return id === newId;
|
182
191
|
}) || [];
|
183
192
|
if (_newValue !== null && _newValue.length > 0) {
|
@@ -193,6 +202,11 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
193
202
|
var onCloseCreate = useCallback(function () {
|
194
203
|
setCreateOpen(false);
|
195
204
|
}, [setCreateOpen]);
|
205
|
+
var onCreateSuccess = useCallback(function (newValue) {
|
206
|
+
onChange(newValue);
|
207
|
+
setCreateOpen(false);
|
208
|
+
setInputTextValue('');
|
209
|
+
}, [onChange]);
|
196
210
|
return /*#__PURE__*/React.createElement("div", {
|
197
211
|
className: classNames(['position-relative', _defineProperty({}, className, className != null)])
|
198
212
|
}, /*#__PURE__*/React.createElement("div", {
|
@@ -200,7 +214,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
200
214
|
}, /*#__PURE__*/React.createElement("div", {
|
201
215
|
className: "col-auto flex-grow-1"
|
202
216
|
}, /*#__PURE__*/React.createElement(Select, {
|
203
|
-
className: classNames(['py-1', 'shadow-none', (
|
217
|
+
className: classNames(['py-1', 'shadow-none', (_ref8 = {}, _defineProperty(_ref8, disabled, disabled), _defineProperty(_ref8, 'is-invalid', errors !== null), _defineProperty(_ref8, inputClassName, inputClassName !== null), _ref8)]),
|
204
218
|
disabled: disabled,
|
205
219
|
name: name,
|
206
220
|
value: finalValue,
|
@@ -223,6 +237,22 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
223
237
|
theme: "primary",
|
224
238
|
icon: "plus-lg",
|
225
239
|
onClick: createOpen ? onCloseCreate : onOpenCreate
|
240
|
+
})) : null, createOpen ? /*#__PURE__*/React.createElement(Dialog, {
|
241
|
+
title: /*#__PURE__*/React.createElement(FormattedMessage, {
|
242
|
+
values: resourceValues,
|
243
|
+
id: "6viUpq",
|
244
|
+
defaultMessage: [{
|
245
|
+
"type": 0,
|
246
|
+
"value": "Create "
|
247
|
+
}, {
|
248
|
+
"type": 1,
|
249
|
+
"value": "a_singular"
|
250
|
+
}]
|
251
|
+
}),
|
252
|
+
onClickClose: onCloseCreate
|
253
|
+
}, /*#__PURE__*/React.createElement(ResourceForm, {
|
254
|
+
resource: resource,
|
255
|
+
onSuccess: onCreateSuccess
|
226
256
|
})) : null));
|
227
257
|
};
|
228
258
|
ResourceItemField.propTypes = propTypes;
|
package/lib/index.js
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
5
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
6
7
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
7
8
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
@@ -18,9 +19,13 @@ var utils = require('@panneau/core/utils');
|
|
18
19
|
var data = require('@panneau/data');
|
19
20
|
var Button = require('@panneau/element-button');
|
20
21
|
var Select = require('@panneau/element-select');
|
22
|
+
var ResourceForm = require('@panneau/form-resource');
|
23
|
+
var intl = require('@panneau/intl');
|
24
|
+
var Dialog = require('@panneau/modal-dialog');
|
21
25
|
|
22
26
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
23
27
|
|
28
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
24
29
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
25
30
|
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
26
31
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
@@ -32,8 +37,8 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
32
37
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
33
38
|
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
34
39
|
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
35
|
-
|
36
|
-
|
40
|
+
var ResourceForm__default = /*#__PURE__*/_interopDefaultLegacy(ResourceForm);
|
41
|
+
var Dialog__default = /*#__PURE__*/_interopDefaultLegacy(Dialog);
|
37
42
|
|
38
43
|
var propTypes = {
|
39
44
|
name: PropTypes__default["default"].string,
|
@@ -91,7 +96,7 @@ var defaultProps = {
|
|
91
96
|
onChange: null
|
92
97
|
};
|
93
98
|
var ResourceItemField = function ResourceItemField(_ref) {
|
94
|
-
var
|
99
|
+
var _ref8;
|
95
100
|
var name = _ref.name,
|
96
101
|
value = _ref.value,
|
97
102
|
errors = _ref.errors,
|
@@ -113,7 +118,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
113
118
|
className = _ref.className,
|
114
119
|
inputClassName = _ref.inputClassName,
|
115
120
|
onChange = _ref.onChange;
|
116
|
-
var intl = reactIntl.useIntl();
|
121
|
+
var intl$1 = reactIntl.useIntl();
|
117
122
|
// const [initialValue] = useState(value);
|
118
123
|
var _useState = React.useState(initialQuery),
|
119
124
|
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
@@ -143,9 +148,9 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
143
148
|
_useState12 = _slicedToArray__default["default"](_useState11, 2),
|
144
149
|
inputTextValue = _useState12[0],
|
145
150
|
setInputTextValue = _useState12[1];
|
146
|
-
var
|
147
|
-
|
148
|
-
var
|
151
|
+
var resource = contexts.usePanneauResource(resourceId);
|
152
|
+
var resourceValues = intl.useResourceValues(resource);
|
153
|
+
var queryResource = React.useMemo(function () {
|
149
154
|
return {
|
150
155
|
id: resourceId
|
151
156
|
};
|
@@ -153,10 +158,17 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
153
158
|
var finalQuery = React.useMemo(function () {
|
154
159
|
return _objectSpread__default["default"](_objectSpread__default["default"]({}, query), !isEmpty__default["default"](inputTextValue) ? _defineProperty__default["default"]({}, searchParamName, inputTextValue) : null);
|
155
160
|
}, [inputTextValue]);
|
156
|
-
var resourceItems = data.useResourceItems(
|
161
|
+
var resourceItems = data.useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
|
157
162
|
var _ref3 = resourceItems || {},
|
158
163
|
_ref3$items = _ref3.items,
|
159
|
-
|
164
|
+
responseItems = _ref3$items === void 0 ? null : _ref3$items;
|
165
|
+
var _ref4 = value || {},
|
166
|
+
_ref4$id = _ref4.id,
|
167
|
+
valueId = _ref4$id === void 0 ? null : _ref4$id;
|
168
|
+
var filteredItems = responseItems !== null && valueId !== null ? responseItems.filter(function (it) {
|
169
|
+
return it !== null && it.id ? it.id !== valueId : true;
|
170
|
+
}) : responseItems || [];
|
171
|
+
var items = [].concat(_toConsumableArray__default["default"](filteredItems), _toConsumableArray__default["default"](value !== null ? value : []));
|
160
172
|
var getItemLabel = React.useCallback(function (it, path) {
|
161
173
|
var id = get__default["default"](it, 'id', null);
|
162
174
|
if (itemLabelWithId) {
|
@@ -186,16 +198,16 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
186
198
|
var onValueChange = React.useCallback(function (newId) {
|
187
199
|
if (onChange === null) return;
|
188
200
|
if (multiple) {
|
189
|
-
var newValue = items.filter(function (
|
190
|
-
var
|
191
|
-
id =
|
201
|
+
var newValue = items.filter(function (_ref5) {
|
202
|
+
var _ref5$id = _ref5.id,
|
203
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
192
204
|
return newId.indexOf(id) !== -1;
|
193
205
|
}) || [];
|
194
206
|
onChange(newValue);
|
195
207
|
} else {
|
196
|
-
var _newValue = items.filter(function (
|
197
|
-
var
|
198
|
-
id =
|
208
|
+
var _newValue = items.filter(function (_ref6) {
|
209
|
+
var _ref6$id = _ref6.id,
|
210
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
199
211
|
return id === newId;
|
200
212
|
}) || [];
|
201
213
|
if (_newValue !== null && _newValue.length > 0) {
|
@@ -211,6 +223,11 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
211
223
|
var onCloseCreate = React.useCallback(function () {
|
212
224
|
setCreateOpen(false);
|
213
225
|
}, [setCreateOpen]);
|
226
|
+
var onCreateSuccess = React.useCallback(function (newValue) {
|
227
|
+
onChange(newValue);
|
228
|
+
setCreateOpen(false);
|
229
|
+
setInputTextValue('');
|
230
|
+
}, [onChange]);
|
214
231
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
215
232
|
className: classNames__default["default"](['position-relative', _defineProperty__default["default"]({}, className, className != null)])
|
216
233
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
@@ -218,14 +235,14 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
218
235
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
219
236
|
className: "col-auto flex-grow-1"
|
220
237
|
}, /*#__PURE__*/React__default["default"].createElement(Select__default["default"], {
|
221
|
-
className: classNames__default["default"](['py-1', 'shadow-none', (
|
238
|
+
className: classNames__default["default"](['py-1', 'shadow-none', (_ref8 = {}, _defineProperty__default["default"](_ref8, disabled, disabled), _defineProperty__default["default"](_ref8, 'is-invalid', errors !== null), _defineProperty__default["default"](_ref8, inputClassName, inputClassName !== null), _ref8)]),
|
222
239
|
disabled: disabled,
|
223
240
|
name: name,
|
224
241
|
value: finalValue,
|
225
242
|
options: options,
|
226
243
|
isClearable: true,
|
227
244
|
isSearchable: true,
|
228
|
-
placeholder: utils.isMessage(placeholder) ? intl.formatMessage(placeholder) : /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
245
|
+
placeholder: utils.isMessage(placeholder) ? intl$1.formatMessage(placeholder) : /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
229
246
|
id: "oc3YLT",
|
230
247
|
defaultMessage: [{
|
231
248
|
"type": 0,
|
@@ -241,6 +258,22 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
241
258
|
theme: "primary",
|
242
259
|
icon: "plus-lg",
|
243
260
|
onClick: createOpen ? onCloseCreate : onOpenCreate
|
261
|
+
})) : null, createOpen ? /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
|
262
|
+
title: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
263
|
+
values: resourceValues,
|
264
|
+
id: "6viUpq",
|
265
|
+
defaultMessage: [{
|
266
|
+
"type": 0,
|
267
|
+
"value": "Create "
|
268
|
+
}, {
|
269
|
+
"type": 1,
|
270
|
+
"value": "a_singular"
|
271
|
+
}]
|
272
|
+
}),
|
273
|
+
onClickClose: onCloseCreate
|
274
|
+
}, /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], {
|
275
|
+
resource: resource,
|
276
|
+
onSuccess: onCreateSuccess
|
244
277
|
})) : null));
|
245
278
|
};
|
246
279
|
ResourceItemField.propTypes = propTypes;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@panneau/field-resource-item",
|
3
|
-
"version": "2.0.
|
3
|
+
"version": "2.0.65",
|
4
4
|
"description": "An item mapping a resource",
|
5
5
|
"keywords": [
|
6
6
|
"javascript"
|
@@ -47,8 +47,11 @@
|
|
47
47
|
"@babel/runtime": "^7.12.5",
|
48
48
|
"@panneau/core": "^2.0.58",
|
49
49
|
"@panneau/data": "^2.0.58",
|
50
|
-
"@panneau/element-button": "^2.0.
|
50
|
+
"@panneau/element-button": "^2.0.59",
|
51
51
|
"@panneau/element-select": "^2.0.58",
|
52
|
+
"@panneau/form-resource": "^2.0.58",
|
53
|
+
"@panneau/intl": "^2.0.58",
|
54
|
+
"@panneau/modal-dialog": "^2.0.65",
|
52
55
|
"classnames": "^2.2.6",
|
53
56
|
"lodash": "^4.17.21",
|
54
57
|
"prop-types": "^15.7.2",
|
@@ -57,5 +60,5 @@
|
|
57
60
|
"publishConfig": {
|
58
61
|
"access": "public"
|
59
62
|
},
|
60
|
-
"gitHead": "
|
63
|
+
"gitHead": "296e9ef82abdc2af9ffd2910a65e2630a630bfd4"
|
61
64
|
}
|