@panneau/field-resource-item 2.0.67 → 2.0.69
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 +71 -22
- package/lib/index.js +72 -22
- package/package.json +10 -9
package/es/index.js
CHANGED
@@ -14,6 +14,7 @@ import { usePanneauResource } from '@panneau/core/contexts';
|
|
14
14
|
import { isMessage, getPathValue } from '@panneau/core/utils';
|
15
15
|
import { useResourceItems } from '@panneau/data';
|
16
16
|
import Button from '@panneau/element-button';
|
17
|
+
import ResourceCard from '@panneau/element-resource-card';
|
17
18
|
import Select from '@panneau/element-select';
|
18
19
|
import ResourceForm from '@panneau/form-resource';
|
19
20
|
import { useResourceValues } from '@panneau/intl';
|
@@ -36,13 +37,14 @@ var propTypes = {
|
|
36
37
|
searchParamName: PropTypes.string,
|
37
38
|
getItemLabel: PropTypes.func,
|
38
39
|
getItemDescription: PropTypes.func,
|
39
|
-
|
40
|
+
getItemImage: PropTypes.func,
|
40
41
|
itemLabelPath: PropTypes.string,
|
41
42
|
itemDescriptionPath: PropTypes.string,
|
42
|
-
|
43
|
+
itemImagePath: PropTypes.string,
|
43
44
|
itemLabelWithId: PropTypes.bool,
|
44
45
|
placeholder: PropTypes.string,
|
45
46
|
canCreate: PropTypes.bool,
|
47
|
+
createInPlace: PropTypes.bool,
|
46
48
|
multiple: PropTypes.bool,
|
47
49
|
disabled: PropTypes.bool,
|
48
50
|
className: PropTypes.string,
|
@@ -61,13 +63,14 @@ var defaultProps = {
|
|
61
63
|
searchParamName: 'search',
|
62
64
|
getItemLabel: getPathValue,
|
63
65
|
getItemDescription: getPathValue,
|
64
|
-
|
66
|
+
getItemImage: getPathValue,
|
65
67
|
itemLabelPath: 'label',
|
66
68
|
itemDescriptionPath: null,
|
67
|
-
|
69
|
+
itemImagePath: 'image',
|
68
70
|
itemLabelWithId: false,
|
69
71
|
placeholder: null,
|
70
72
|
canCreate: false,
|
73
|
+
createInPlace: false,
|
71
74
|
multiple: false,
|
72
75
|
disabled: false,
|
73
76
|
className: null,
|
@@ -87,11 +90,14 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
87
90
|
searchParamName = _ref.searchParamName,
|
88
91
|
initialGetItemLabel = _ref.getItemLabel,
|
89
92
|
getItemDescription = _ref.getItemDescription,
|
93
|
+
getItemImage = _ref.getItemImage,
|
90
94
|
itemLabelPath = _ref.itemLabelPath,
|
91
95
|
itemDescriptionPath = _ref.itemDescriptionPath,
|
96
|
+
itemImagePath = _ref.itemImagePath,
|
92
97
|
itemLabelWithId = _ref.itemLabelWithId,
|
93
98
|
placeholder = _ref.placeholder,
|
94
99
|
canCreate = _ref.canCreate,
|
100
|
+
createInPlace = _ref.createInPlace,
|
95
101
|
multiple = _ref.multiple,
|
96
102
|
disabled = _ref.disabled,
|
97
103
|
className = _ref.className,
|
@@ -135,19 +141,20 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
135
141
|
};
|
136
142
|
}, [resourceId]);
|
137
143
|
var finalQuery = useMemo(function () {
|
138
|
-
return _objectSpread(_objectSpread({}, query), !isEmpty(inputTextValue) ? _defineProperty({}, searchParamName, inputTextValue) : null)
|
144
|
+
return _objectSpread(_objectSpread(_objectSpread({}, query), !isEmpty(inputTextValue) ? _defineProperty({}, searchParamName, inputTextValue) : null), {}, {
|
145
|
+
paginated: false // TODO: implement this...
|
146
|
+
});
|
139
147
|
}, [inputTextValue]);
|
148
|
+
|
149
|
+
// console.log('resource', resourceId, resource);
|
150
|
+
|
140
151
|
var resourceItems = useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
|
141
152
|
var _ref3 = resourceItems || {},
|
142
|
-
_ref3$
|
143
|
-
|
144
|
-
var
|
145
|
-
|
146
|
-
|
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 : []));
|
153
|
+
_ref3$items = _ref3.items,
|
154
|
+
partialItems = _ref3$items === void 0 ? null : _ref3$items;
|
155
|
+
var items = (partialItems || []).concat(multiple && isArray(value) ? value : [value]).filter(function (it) {
|
156
|
+
return it !== null;
|
157
|
+
});
|
151
158
|
var getItemLabel = useCallback(function (it, path) {
|
152
159
|
var id = get(it, 'id', null);
|
153
160
|
if (itemLabelWithId) {
|
@@ -165,12 +172,29 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
165
172
|
label: finalLabel
|
166
173
|
};
|
167
174
|
}, [getItemLabel, getItemDescription, itemLabelPath, itemDescriptionPath]);
|
175
|
+
var partialValue = multiple && isArray(value) ? value.map(function (it) {
|
176
|
+
return parseItem(it);
|
177
|
+
}) : value || null;
|
178
|
+
var finalValue = multiple && isArray(partialValue) ? partialValue.map(function (_ref4) {
|
179
|
+
var _ref4$id = _ref4.id,
|
180
|
+
id = _ref4$id === void 0 ? null : _ref4$id;
|
181
|
+
return id;
|
182
|
+
}) : (value === null || value === void 0 ? void 0 : value.id) || null;
|
168
183
|
var options = (items || []).map(function (it) {
|
169
184
|
return parseItem(it);
|
170
185
|
});
|
171
|
-
|
172
|
-
|
173
|
-
|
186
|
+
|
187
|
+
// TODO: filter duplicate IDs blabla
|
188
|
+
// const { id: valueId = null } = value || {};
|
189
|
+
// const filteredItems =
|
190
|
+
// responseItems !== null && valueId !== null
|
191
|
+
// ? responseItems.filter((it) => (it !== null && it.id ? it.id !== valueId : true))
|
192
|
+
// : responseItems || [];
|
193
|
+
// const arrayedValue = multiple ? value : [value];
|
194
|
+
// const items = [...filteredItems, ...(value !== null ? arrayedValue : [])];
|
195
|
+
// console.log(options, items, value, finalValue, onChange);
|
196
|
+
// console.log('ultimate', options, finalValue);
|
197
|
+
|
174
198
|
var onInputChange = useCallback(function (textValue) {
|
175
199
|
setInputTextValue(textValue);
|
176
200
|
}, []);
|
@@ -203,13 +227,33 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
203
227
|
setCreateOpen(false);
|
204
228
|
}, [setCreateOpen]);
|
205
229
|
var onCreateSuccess = useCallback(function (newValue) {
|
206
|
-
onChange
|
230
|
+
if (onChange === null) return;
|
231
|
+
if (multiple) {
|
232
|
+
onChange(value !== null && isArray(value) ? [].concat(_toConsumableArray(value), [newValue]) : [newValue]);
|
233
|
+
} else {
|
234
|
+
onChange(newValue);
|
235
|
+
}
|
207
236
|
setCreateOpen(false);
|
208
|
-
|
237
|
+
}, [onChange, multiple, value, setCreateOpen]);
|
238
|
+
var onClickRemove = useCallback(function () {
|
239
|
+
if (onChange !== null) {
|
240
|
+
onChange(null);
|
241
|
+
}
|
209
242
|
}, [onChange]);
|
210
243
|
return /*#__PURE__*/React.createElement("div", {
|
211
244
|
className: classNames(['position-relative', _defineProperty({}, className, className != null)])
|
212
|
-
}, /*#__PURE__*/React.createElement(
|
245
|
+
}, value !== null && !multiple ? /*#__PURE__*/React.createElement(ResourceCard, {
|
246
|
+
item: value,
|
247
|
+
getItemLabel: initialGetItemLabel,
|
248
|
+
getItemDescription: getItemDescription,
|
249
|
+
getItemImage: getItemImage,
|
250
|
+
itemLabelPath: itemLabelPath,
|
251
|
+
itemDescriptionPath: itemDescriptionPath,
|
252
|
+
itemImagePath: itemImagePath,
|
253
|
+
itemLabelWithId: itemLabelWithId,
|
254
|
+
disable: disabled,
|
255
|
+
onClickRemove: onClickRemove
|
256
|
+
}) : /*#__PURE__*/React.createElement("div", {
|
213
257
|
className: classNames(['row', 'align-items-center'])
|
214
258
|
}, /*#__PURE__*/React.createElement("div", {
|
215
259
|
className: "col-auto flex-grow-1"
|
@@ -236,8 +280,12 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
236
280
|
}, /*#__PURE__*/React.createElement(Button, {
|
237
281
|
theme: "primary",
|
238
282
|
icon: "plus-lg",
|
239
|
-
onClick: createOpen ? onCloseCreate : onOpenCreate
|
240
|
-
|
283
|
+
onClick: createOpen ? onCloseCreate : onOpenCreate,
|
284
|
+
outline: true
|
285
|
+
})) : null, createOpen ? createInPlace ? /*#__PURE__*/React.createElement(ResourceForm, {
|
286
|
+
resource: resource,
|
287
|
+
onSuccess: onCreateSuccess
|
288
|
+
}) : /*#__PURE__*/React.createElement(Dialog, {
|
241
289
|
title: /*#__PURE__*/React.createElement(FormattedMessage, {
|
242
290
|
values: resourceValues,
|
243
291
|
id: "6viUpq",
|
@@ -249,6 +297,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
249
297
|
"value": "a_singular"
|
250
298
|
}]
|
251
299
|
}),
|
300
|
+
size: "lg",
|
252
301
|
onClickClose: onCloseCreate
|
253
302
|
}, /*#__PURE__*/React.createElement(ResourceForm, {
|
254
303
|
resource: resource,
|
package/lib/index.js
CHANGED
@@ -18,6 +18,7 @@ var contexts = require('@panneau/core/contexts');
|
|
18
18
|
var utils = require('@panneau/core/utils');
|
19
19
|
var data = require('@panneau/data');
|
20
20
|
var Button = require('@panneau/element-button');
|
21
|
+
var ResourceCard = require('@panneau/element-resource-card');
|
21
22
|
var Select = require('@panneau/element-select');
|
22
23
|
var ResourceForm = require('@panneau/form-resource');
|
23
24
|
var intl = require('@panneau/intl');
|
@@ -36,6 +37,7 @@ var isEmpty__default = /*#__PURE__*/_interopDefaultLegacy(isEmpty);
|
|
36
37
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
37
38
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
38
39
|
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
40
|
+
var ResourceCard__default = /*#__PURE__*/_interopDefaultLegacy(ResourceCard);
|
39
41
|
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
40
42
|
var ResourceForm__default = /*#__PURE__*/_interopDefaultLegacy(ResourceForm);
|
41
43
|
var Dialog__default = /*#__PURE__*/_interopDefaultLegacy(Dialog);
|
@@ -57,13 +59,14 @@ var propTypes = {
|
|
57
59
|
searchParamName: PropTypes__default["default"].string,
|
58
60
|
getItemLabel: PropTypes__default["default"].func,
|
59
61
|
getItemDescription: PropTypes__default["default"].func,
|
60
|
-
|
62
|
+
getItemImage: PropTypes__default["default"].func,
|
61
63
|
itemLabelPath: PropTypes__default["default"].string,
|
62
64
|
itemDescriptionPath: PropTypes__default["default"].string,
|
63
|
-
|
65
|
+
itemImagePath: PropTypes__default["default"].string,
|
64
66
|
itemLabelWithId: PropTypes__default["default"].bool,
|
65
67
|
placeholder: PropTypes__default["default"].string,
|
66
68
|
canCreate: PropTypes__default["default"].bool,
|
69
|
+
createInPlace: PropTypes__default["default"].bool,
|
67
70
|
multiple: PropTypes__default["default"].bool,
|
68
71
|
disabled: PropTypes__default["default"].bool,
|
69
72
|
className: PropTypes__default["default"].string,
|
@@ -82,13 +85,14 @@ var defaultProps = {
|
|
82
85
|
searchParamName: 'search',
|
83
86
|
getItemLabel: utils.getPathValue,
|
84
87
|
getItemDescription: utils.getPathValue,
|
85
|
-
|
88
|
+
getItemImage: utils.getPathValue,
|
86
89
|
itemLabelPath: 'label',
|
87
90
|
itemDescriptionPath: null,
|
88
|
-
|
91
|
+
itemImagePath: 'image',
|
89
92
|
itemLabelWithId: false,
|
90
93
|
placeholder: null,
|
91
94
|
canCreate: false,
|
95
|
+
createInPlace: false,
|
92
96
|
multiple: false,
|
93
97
|
disabled: false,
|
94
98
|
className: null,
|
@@ -108,11 +112,14 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
108
112
|
searchParamName = _ref.searchParamName,
|
109
113
|
initialGetItemLabel = _ref.getItemLabel,
|
110
114
|
getItemDescription = _ref.getItemDescription,
|
115
|
+
getItemImage = _ref.getItemImage,
|
111
116
|
itemLabelPath = _ref.itemLabelPath,
|
112
117
|
itemDescriptionPath = _ref.itemDescriptionPath,
|
118
|
+
itemImagePath = _ref.itemImagePath,
|
113
119
|
itemLabelWithId = _ref.itemLabelWithId,
|
114
120
|
placeholder = _ref.placeholder,
|
115
121
|
canCreate = _ref.canCreate,
|
122
|
+
createInPlace = _ref.createInPlace,
|
116
123
|
multiple = _ref.multiple,
|
117
124
|
disabled = _ref.disabled,
|
118
125
|
className = _ref.className,
|
@@ -156,19 +163,20 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
156
163
|
};
|
157
164
|
}, [resourceId]);
|
158
165
|
var finalQuery = React.useMemo(function () {
|
159
|
-
return _objectSpread__default["default"](_objectSpread__default["default"]({}, query), !isEmpty__default["default"](inputTextValue) ? _defineProperty__default["default"]({}, searchParamName, inputTextValue) : null)
|
166
|
+
return _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, query), !isEmpty__default["default"](inputTextValue) ? _defineProperty__default["default"]({}, searchParamName, inputTextValue) : null), {}, {
|
167
|
+
paginated: false // TODO: implement this...
|
168
|
+
});
|
160
169
|
}, [inputTextValue]);
|
170
|
+
|
171
|
+
// console.log('resource', resourceId, resource);
|
172
|
+
|
161
173
|
var resourceItems = data.useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
|
162
174
|
var _ref3 = resourceItems || {},
|
163
|
-
_ref3$
|
164
|
-
|
165
|
-
var
|
166
|
-
|
167
|
-
|
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 : []));
|
175
|
+
_ref3$items = _ref3.items,
|
176
|
+
partialItems = _ref3$items === void 0 ? null : _ref3$items;
|
177
|
+
var items = (partialItems || []).concat(multiple && isArray__default["default"](value) ? value : [value]).filter(function (it) {
|
178
|
+
return it !== null;
|
179
|
+
});
|
172
180
|
var getItemLabel = React.useCallback(function (it, path) {
|
173
181
|
var id = get__default["default"](it, 'id', null);
|
174
182
|
if (itemLabelWithId) {
|
@@ -186,12 +194,29 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
186
194
|
label: finalLabel
|
187
195
|
};
|
188
196
|
}, [getItemLabel, getItemDescription, itemLabelPath, itemDescriptionPath]);
|
197
|
+
var partialValue = multiple && isArray__default["default"](value) ? value.map(function (it) {
|
198
|
+
return parseItem(it);
|
199
|
+
}) : value || null;
|
200
|
+
var finalValue = multiple && isArray__default["default"](partialValue) ? partialValue.map(function (_ref4) {
|
201
|
+
var _ref4$id = _ref4.id,
|
202
|
+
id = _ref4$id === void 0 ? null : _ref4$id;
|
203
|
+
return id;
|
204
|
+
}) : (value === null || value === void 0 ? void 0 : value.id) || null;
|
189
205
|
var options = (items || []).map(function (it) {
|
190
206
|
return parseItem(it);
|
191
207
|
});
|
192
|
-
|
193
|
-
|
194
|
-
|
208
|
+
|
209
|
+
// TODO: filter duplicate IDs blabla
|
210
|
+
// const { id: valueId = null } = value || {};
|
211
|
+
// const filteredItems =
|
212
|
+
// responseItems !== null && valueId !== null
|
213
|
+
// ? responseItems.filter((it) => (it !== null && it.id ? it.id !== valueId : true))
|
214
|
+
// : responseItems || [];
|
215
|
+
// const arrayedValue = multiple ? value : [value];
|
216
|
+
// const items = [...filteredItems, ...(value !== null ? arrayedValue : [])];
|
217
|
+
// console.log(options, items, value, finalValue, onChange);
|
218
|
+
// console.log('ultimate', options, finalValue);
|
219
|
+
|
195
220
|
var onInputChange = React.useCallback(function (textValue) {
|
196
221
|
setInputTextValue(textValue);
|
197
222
|
}, []);
|
@@ -224,13 +249,33 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
224
249
|
setCreateOpen(false);
|
225
250
|
}, [setCreateOpen]);
|
226
251
|
var onCreateSuccess = React.useCallback(function (newValue) {
|
227
|
-
onChange
|
252
|
+
if (onChange === null) return;
|
253
|
+
if (multiple) {
|
254
|
+
onChange(value !== null && isArray__default["default"](value) ? [].concat(_toConsumableArray__default["default"](value), [newValue]) : [newValue]);
|
255
|
+
} else {
|
256
|
+
onChange(newValue);
|
257
|
+
}
|
228
258
|
setCreateOpen(false);
|
229
|
-
|
259
|
+
}, [onChange, multiple, value, setCreateOpen]);
|
260
|
+
var onClickRemove = React.useCallback(function () {
|
261
|
+
if (onChange !== null) {
|
262
|
+
onChange(null);
|
263
|
+
}
|
230
264
|
}, [onChange]);
|
231
265
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
232
266
|
className: classNames__default["default"](['position-relative', _defineProperty__default["default"]({}, className, className != null)])
|
233
|
-
}, /*#__PURE__*/React__default["default"].createElement("
|
267
|
+
}, value !== null && !multiple ? /*#__PURE__*/React__default["default"].createElement(ResourceCard__default["default"], {
|
268
|
+
item: value,
|
269
|
+
getItemLabel: initialGetItemLabel,
|
270
|
+
getItemDescription: getItemDescription,
|
271
|
+
getItemImage: getItemImage,
|
272
|
+
itemLabelPath: itemLabelPath,
|
273
|
+
itemDescriptionPath: itemDescriptionPath,
|
274
|
+
itemImagePath: itemImagePath,
|
275
|
+
itemLabelWithId: itemLabelWithId,
|
276
|
+
disable: disabled,
|
277
|
+
onClickRemove: onClickRemove
|
278
|
+
}) : /*#__PURE__*/React__default["default"].createElement("div", {
|
234
279
|
className: classNames__default["default"](['row', 'align-items-center'])
|
235
280
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
236
281
|
className: "col-auto flex-grow-1"
|
@@ -257,8 +302,12 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
257
302
|
}, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
258
303
|
theme: "primary",
|
259
304
|
icon: "plus-lg",
|
260
|
-
onClick: createOpen ? onCloseCreate : onOpenCreate
|
261
|
-
|
305
|
+
onClick: createOpen ? onCloseCreate : onOpenCreate,
|
306
|
+
outline: true
|
307
|
+
})) : null, createOpen ? createInPlace ? /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], {
|
308
|
+
resource: resource,
|
309
|
+
onSuccess: onCreateSuccess
|
310
|
+
}) : /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
|
262
311
|
title: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
263
312
|
values: resourceValues,
|
264
313
|
id: "6viUpq",
|
@@ -270,6 +319,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
270
319
|
"value": "a_singular"
|
271
320
|
}]
|
272
321
|
}),
|
322
|
+
size: "lg",
|
273
323
|
onClickClose: onCloseCreate
|
274
324
|
}, /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], {
|
275
325
|
resource: resource,
|
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.69",
|
4
4
|
"description": "An item mapping a resource",
|
5
5
|
"keywords": [
|
6
6
|
"javascript"
|
@@ -45,13 +45,14 @@
|
|
45
45
|
},
|
46
46
|
"dependencies": {
|
47
47
|
"@babel/runtime": "^7.12.5",
|
48
|
-
"@panneau/core": "^2.0.
|
49
|
-
"@panneau/data": "^2.0.
|
50
|
-
"@panneau/element-button": "^2.0.
|
51
|
-
"@panneau/element-
|
52
|
-
"@panneau/
|
53
|
-
"@panneau/
|
54
|
-
"@panneau/
|
48
|
+
"@panneau/core": "^2.0.69",
|
49
|
+
"@panneau/data": "^2.0.69",
|
50
|
+
"@panneau/element-button": "^2.0.69",
|
51
|
+
"@panneau/element-resource-card": "^2.0.69",
|
52
|
+
"@panneau/element-select": "^2.0.69",
|
53
|
+
"@panneau/form-resource": "^2.0.69",
|
54
|
+
"@panneau/intl": "^2.0.69",
|
55
|
+
"@panneau/modal-dialog": "^2.0.69",
|
55
56
|
"classnames": "^2.2.6",
|
56
57
|
"lodash": "^4.17.21",
|
57
58
|
"prop-types": "^15.7.2",
|
@@ -60,5 +61,5 @@
|
|
60
61
|
"publishConfig": {
|
61
62
|
"access": "public"
|
62
63
|
},
|
63
|
-
"gitHead": "
|
64
|
+
"gitHead": "270c1e84966861e94a390d20ee525c33f7edadb0"
|
64
65
|
}
|