@panneau/field-resource-item 2.0.66 → 2.0.68
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 +51 -21
- package/lib/index.js +52 -21
- package/package.json +7 -5
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';
|
@@ -43,6 +44,7 @@ var propTypes = {
|
|
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,
|
@@ -68,6 +70,7 @@ var defaultProps = {
|
|
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,
|
@@ -75,7 +78,7 @@ var defaultProps = {
|
|
75
78
|
onChange: null
|
76
79
|
};
|
77
80
|
var ResourceItemField = function ResourceItemField(_ref) {
|
78
|
-
var
|
81
|
+
var _ref9;
|
79
82
|
var name = _ref.name,
|
80
83
|
value = _ref.value,
|
81
84
|
errors = _ref.errors,
|
@@ -92,6 +95,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
92
95
|
itemLabelWithId = _ref.itemLabelWithId,
|
93
96
|
placeholder = _ref.placeholder,
|
94
97
|
canCreate = _ref.canCreate,
|
98
|
+
createInPlace = _ref.createInPlace,
|
95
99
|
multiple = _ref.multiple,
|
96
100
|
disabled = _ref.disabled,
|
97
101
|
className = _ref.className,
|
@@ -135,19 +139,26 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
135
139
|
};
|
136
140
|
}, [resourceId]);
|
137
141
|
var finalQuery = useMemo(function () {
|
138
|
-
return _objectSpread(_objectSpread({}, query), !isEmpty(inputTextValue) ? _defineProperty({}, searchParamName, inputTextValue) : null)
|
142
|
+
return _objectSpread(_objectSpread(_objectSpread({}, query), !isEmpty(inputTextValue) ? _defineProperty({}, searchParamName, inputTextValue) : null), {}, {
|
143
|
+
paginated: false // TODO: implement this hahahaha
|
144
|
+
});
|
139
145
|
}, [inputTextValue]);
|
146
|
+
|
147
|
+
// console.log('resource', resourceId, resource);
|
148
|
+
// console.log('value', value);
|
149
|
+
|
140
150
|
var resourceItems = useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
|
141
151
|
var _ref3 = resourceItems || {},
|
142
|
-
_ref3$
|
143
|
-
responseItems = _ref3$
|
152
|
+
_ref3$items = _ref3.items,
|
153
|
+
responseItems = _ref3$items === void 0 ? null : _ref3$items;
|
144
154
|
var _ref4 = value || {},
|
145
155
|
_ref4$id = _ref4.id,
|
146
156
|
valueId = _ref4$id === void 0 ? null : _ref4$id;
|
147
157
|
var filteredItems = responseItems !== null && valueId !== null ? responseItems.filter(function (it) {
|
148
158
|
return it !== null && it.id ? it.id !== valueId : true;
|
149
159
|
}) : responseItems || [];
|
150
|
-
var
|
160
|
+
var arrayedValue = multiple ? value : [value];
|
161
|
+
var items = [].concat(_toConsumableArray(filteredItems), _toConsumableArray(value !== null ? arrayedValue : []));
|
151
162
|
var getItemLabel = useCallback(function (it, path) {
|
152
163
|
var id = get(it, 'id', null);
|
153
164
|
if (itemLabelWithId) {
|
@@ -168,25 +179,32 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
168
179
|
var options = (items || []).map(function (it) {
|
169
180
|
return parseItem(it);
|
170
181
|
});
|
171
|
-
var
|
182
|
+
var partialValue = multiple && isArray(value) ? value.map(function (it) {
|
172
183
|
return parseItem(it);
|
173
|
-
}) : value;
|
184
|
+
}) : value || null;
|
185
|
+
var finalValue = multiple && isArray(partialValue) ? partialValue.map(function (_ref5) {
|
186
|
+
var _ref5$id = _ref5.id,
|
187
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
188
|
+
return id;
|
189
|
+
}) : value === null || value === void 0 ? void 0 : value.id;
|
190
|
+
// console.log('ultimate', options, finalValue);
|
191
|
+
|
174
192
|
var onInputChange = useCallback(function (textValue) {
|
175
193
|
setInputTextValue(textValue);
|
176
194
|
}, []);
|
177
195
|
var onValueChange = useCallback(function (newId) {
|
178
196
|
if (onChange === null) return;
|
179
197
|
if (multiple) {
|
180
|
-
var newValue = items.filter(function (
|
181
|
-
var
|
182
|
-
id =
|
198
|
+
var newValue = items.filter(function (_ref6) {
|
199
|
+
var _ref6$id = _ref6.id,
|
200
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
183
201
|
return newId.indexOf(id) !== -1;
|
184
202
|
}) || [];
|
185
203
|
onChange(newValue);
|
186
204
|
} else {
|
187
|
-
var _newValue = items.filter(function (
|
188
|
-
var
|
189
|
-
id =
|
205
|
+
var _newValue = items.filter(function (_ref7) {
|
206
|
+
var _ref7$id = _ref7.id,
|
207
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
190
208
|
return id === newId;
|
191
209
|
}) || [];
|
192
210
|
if (_newValue !== null && _newValue.length > 0) {
|
@@ -203,18 +221,26 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
203
221
|
setCreateOpen(false);
|
204
222
|
}, [setCreateOpen]);
|
205
223
|
var onCreateSuccess = useCallback(function (newValue) {
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
224
|
+
// console.log('newValue', newValue);
|
225
|
+
if (multiple) {
|
226
|
+
onChange(value !== null && isArray(value) ? [].concat(_toConsumableArray(value), [newValue]) : [newValue]);
|
227
|
+
} else {
|
228
|
+
onChange(newValue);
|
229
|
+
}
|
230
|
+
setTimeout(function () {
|
231
|
+
setCreateOpen(false);
|
232
|
+
}, 1000);
|
233
|
+
}, [onChange, multiple, value]);
|
210
234
|
return /*#__PURE__*/React.createElement("div", {
|
211
235
|
className: classNames(['position-relative', _defineProperty({}, className, className != null)])
|
212
|
-
}, /*#__PURE__*/React.createElement(
|
236
|
+
}, value !== null && !multiple ? /*#__PURE__*/React.createElement(ResourceCard, {
|
237
|
+
item: value
|
238
|
+
}) : /*#__PURE__*/React.createElement("div", {
|
213
239
|
className: classNames(['row', 'align-items-center'])
|
214
240
|
}, /*#__PURE__*/React.createElement("div", {
|
215
241
|
className: "col-auto flex-grow-1"
|
216
242
|
}, /*#__PURE__*/React.createElement(Select, {
|
217
|
-
className: classNames(['py-1', 'shadow-none', (
|
243
|
+
className: classNames(['py-1', 'shadow-none', (_ref9 = {}, _defineProperty(_ref9, disabled, disabled), _defineProperty(_ref9, 'is-invalid', errors !== null), _defineProperty(_ref9, inputClassName, inputClassName !== null), _ref9)]),
|
218
244
|
disabled: disabled,
|
219
245
|
name: name,
|
220
246
|
value: finalValue,
|
@@ -236,8 +262,12 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
236
262
|
}, /*#__PURE__*/React.createElement(Button, {
|
237
263
|
theme: "primary",
|
238
264
|
icon: "plus-lg",
|
239
|
-
onClick: createOpen ? onCloseCreate : onOpenCreate
|
240
|
-
|
265
|
+
onClick: createOpen ? onCloseCreate : onOpenCreate,
|
266
|
+
outline: true
|
267
|
+
})) : null, createOpen ? createInPlace ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ResourceForm, {
|
268
|
+
resource: resource,
|
269
|
+
onSuccess: onCreateSuccess
|
270
|
+
})) : /*#__PURE__*/React.createElement(Dialog, {
|
241
271
|
title: /*#__PURE__*/React.createElement(FormattedMessage, {
|
242
272
|
values: resourceValues,
|
243
273
|
id: "6viUpq",
|
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);
|
@@ -64,6 +66,7 @@ var propTypes = {
|
|
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,
|
@@ -89,6 +92,7 @@ var defaultProps = {
|
|
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,
|
@@ -96,7 +100,7 @@ var defaultProps = {
|
|
96
100
|
onChange: null
|
97
101
|
};
|
98
102
|
var ResourceItemField = function ResourceItemField(_ref) {
|
99
|
-
var
|
103
|
+
var _ref9;
|
100
104
|
var name = _ref.name,
|
101
105
|
value = _ref.value,
|
102
106
|
errors = _ref.errors,
|
@@ -113,6 +117,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
113
117
|
itemLabelWithId = _ref.itemLabelWithId,
|
114
118
|
placeholder = _ref.placeholder,
|
115
119
|
canCreate = _ref.canCreate,
|
120
|
+
createInPlace = _ref.createInPlace,
|
116
121
|
multiple = _ref.multiple,
|
117
122
|
disabled = _ref.disabled,
|
118
123
|
className = _ref.className,
|
@@ -156,19 +161,26 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
156
161
|
};
|
157
162
|
}, [resourceId]);
|
158
163
|
var finalQuery = React.useMemo(function () {
|
159
|
-
return _objectSpread__default["default"](_objectSpread__default["default"]({}, query), !isEmpty__default["default"](inputTextValue) ? _defineProperty__default["default"]({}, searchParamName, inputTextValue) : null)
|
164
|
+
return _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, query), !isEmpty__default["default"](inputTextValue) ? _defineProperty__default["default"]({}, searchParamName, inputTextValue) : null), {}, {
|
165
|
+
paginated: false // TODO: implement this hahahaha
|
166
|
+
});
|
160
167
|
}, [inputTextValue]);
|
168
|
+
|
169
|
+
// console.log('resource', resourceId, resource);
|
170
|
+
// console.log('value', value);
|
171
|
+
|
161
172
|
var resourceItems = data.useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
|
162
173
|
var _ref3 = resourceItems || {},
|
163
|
-
_ref3$
|
164
|
-
responseItems = _ref3$
|
174
|
+
_ref3$items = _ref3.items,
|
175
|
+
responseItems = _ref3$items === void 0 ? null : _ref3$items;
|
165
176
|
var _ref4 = value || {},
|
166
177
|
_ref4$id = _ref4.id,
|
167
178
|
valueId = _ref4$id === void 0 ? null : _ref4$id;
|
168
179
|
var filteredItems = responseItems !== null && valueId !== null ? responseItems.filter(function (it) {
|
169
180
|
return it !== null && it.id ? it.id !== valueId : true;
|
170
181
|
}) : responseItems || [];
|
171
|
-
var
|
182
|
+
var arrayedValue = multiple ? value : [value];
|
183
|
+
var items = [].concat(_toConsumableArray__default["default"](filteredItems), _toConsumableArray__default["default"](value !== null ? arrayedValue : []));
|
172
184
|
var getItemLabel = React.useCallback(function (it, path) {
|
173
185
|
var id = get__default["default"](it, 'id', null);
|
174
186
|
if (itemLabelWithId) {
|
@@ -189,25 +201,32 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
189
201
|
var options = (items || []).map(function (it) {
|
190
202
|
return parseItem(it);
|
191
203
|
});
|
192
|
-
var
|
204
|
+
var partialValue = multiple && isArray__default["default"](value) ? value.map(function (it) {
|
193
205
|
return parseItem(it);
|
194
|
-
}) : value;
|
206
|
+
}) : value || null;
|
207
|
+
var finalValue = multiple && isArray__default["default"](partialValue) ? partialValue.map(function (_ref5) {
|
208
|
+
var _ref5$id = _ref5.id,
|
209
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
210
|
+
return id;
|
211
|
+
}) : value === null || value === void 0 ? void 0 : value.id;
|
212
|
+
// console.log('ultimate', options, finalValue);
|
213
|
+
|
195
214
|
var onInputChange = React.useCallback(function (textValue) {
|
196
215
|
setInputTextValue(textValue);
|
197
216
|
}, []);
|
198
217
|
var onValueChange = React.useCallback(function (newId) {
|
199
218
|
if (onChange === null) return;
|
200
219
|
if (multiple) {
|
201
|
-
var newValue = items.filter(function (
|
202
|
-
var
|
203
|
-
id =
|
220
|
+
var newValue = items.filter(function (_ref6) {
|
221
|
+
var _ref6$id = _ref6.id,
|
222
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
204
223
|
return newId.indexOf(id) !== -1;
|
205
224
|
}) || [];
|
206
225
|
onChange(newValue);
|
207
226
|
} else {
|
208
|
-
var _newValue = items.filter(function (
|
209
|
-
var
|
210
|
-
id =
|
227
|
+
var _newValue = items.filter(function (_ref7) {
|
228
|
+
var _ref7$id = _ref7.id,
|
229
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
211
230
|
return id === newId;
|
212
231
|
}) || [];
|
213
232
|
if (_newValue !== null && _newValue.length > 0) {
|
@@ -224,18 +243,26 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
224
243
|
setCreateOpen(false);
|
225
244
|
}, [setCreateOpen]);
|
226
245
|
var onCreateSuccess = React.useCallback(function (newValue) {
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
246
|
+
// console.log('newValue', newValue);
|
247
|
+
if (multiple) {
|
248
|
+
onChange(value !== null && isArray__default["default"](value) ? [].concat(_toConsumableArray__default["default"](value), [newValue]) : [newValue]);
|
249
|
+
} else {
|
250
|
+
onChange(newValue);
|
251
|
+
}
|
252
|
+
setTimeout(function () {
|
253
|
+
setCreateOpen(false);
|
254
|
+
}, 1000);
|
255
|
+
}, [onChange, multiple, value]);
|
231
256
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
232
257
|
className: classNames__default["default"](['position-relative', _defineProperty__default["default"]({}, className, className != null)])
|
233
|
-
}, /*#__PURE__*/React__default["default"].createElement("
|
258
|
+
}, value !== null && !multiple ? /*#__PURE__*/React__default["default"].createElement(ResourceCard__default["default"], {
|
259
|
+
item: value
|
260
|
+
}) : /*#__PURE__*/React__default["default"].createElement("div", {
|
234
261
|
className: classNames__default["default"](['row', 'align-items-center'])
|
235
262
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
236
263
|
className: "col-auto flex-grow-1"
|
237
264
|
}, /*#__PURE__*/React__default["default"].createElement(Select__default["default"], {
|
238
|
-
className: classNames__default["default"](['py-1', 'shadow-none', (
|
265
|
+
className: classNames__default["default"](['py-1', 'shadow-none', (_ref9 = {}, _defineProperty__default["default"](_ref9, disabled, disabled), _defineProperty__default["default"](_ref9, 'is-invalid', errors !== null), _defineProperty__default["default"](_ref9, inputClassName, inputClassName !== null), _ref9)]),
|
239
266
|
disabled: disabled,
|
240
267
|
name: name,
|
241
268
|
value: finalValue,
|
@@ -257,8 +284,12 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
257
284
|
}, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
258
285
|
theme: "primary",
|
259
286
|
icon: "plus-lg",
|
260
|
-
onClick: createOpen ? onCloseCreate : onOpenCreate
|
261
|
-
|
287
|
+
onClick: createOpen ? onCloseCreate : onOpenCreate,
|
288
|
+
outline: true
|
289
|
+
})) : null, createOpen ? createInPlace ? /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], {
|
290
|
+
resource: resource,
|
291
|
+
onSuccess: onCreateSuccess
|
292
|
+
})) : /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
|
262
293
|
title: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
263
294
|
values: resourceValues,
|
264
295
|
id: "6viUpq",
|
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.68",
|
4
4
|
"description": "An item mapping a resource",
|
5
5
|
"keywords": [
|
6
6
|
"javascript"
|
@@ -48,10 +48,12 @@
|
|
48
48
|
"@panneau/core": "^2.0.58",
|
49
49
|
"@panneau/data": "^2.0.58",
|
50
50
|
"@panneau/element-button": "^2.0.59",
|
51
|
+
"@panneau/element-modal": "^2.0.58",
|
52
|
+
"@panneau/element-resource-card": "^2.0.68",
|
51
53
|
"@panneau/element-select": "^2.0.58",
|
52
|
-
"@panneau/form-resource": "^2.0.
|
53
|
-
"@panneau/intl": "^2.0.
|
54
|
-
"@panneau/modal-dialog": "^2.0.
|
54
|
+
"@panneau/form-resource": "^2.0.68",
|
55
|
+
"@panneau/intl": "^2.0.68",
|
56
|
+
"@panneau/modal-dialog": "^2.0.68",
|
55
57
|
"classnames": "^2.2.6",
|
56
58
|
"lodash": "^4.17.21",
|
57
59
|
"prop-types": "^15.7.2",
|
@@ -60,5 +62,5 @@
|
|
60
62
|
"publishConfig": {
|
61
63
|
"access": "public"
|
62
64
|
},
|
63
|
-
"gitHead": "
|
65
|
+
"gitHead": "7f91dc52ac77f545d1438dd2d612845bfd445522"
|
64
66
|
}
|