@panneau/field-resource-item 2.0.59 → 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 +43 -16
- package/lib/index.js +47 -18
- package/package.json +5 -2
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,6 +15,8 @@ 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';
|
18
|
+
import ResourceForm from '@panneau/form-resource';
|
19
|
+
import { useResourceValues } from '@panneau/intl';
|
17
20
|
import Dialog from '@panneau/modal-dialog';
|
18
21
|
|
19
22
|
var propTypes = {
|
@@ -72,7 +75,7 @@ var defaultProps = {
|
|
72
75
|
onChange: null
|
73
76
|
};
|
74
77
|
var ResourceItemField = function ResourceItemField(_ref) {
|
75
|
-
var
|
78
|
+
var _ref8;
|
76
79
|
var name = _ref.name,
|
77
80
|
value = _ref.value,
|
78
81
|
errors = _ref.errors,
|
@@ -124,9 +127,9 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
124
127
|
_useState12 = _slicedToArray(_useState11, 2),
|
125
128
|
inputTextValue = _useState12[0],
|
126
129
|
setInputTextValue = _useState12[1];
|
127
|
-
var
|
128
|
-
|
129
|
-
var
|
130
|
+
var resource = usePanneauResource(resourceId);
|
131
|
+
var resourceValues = useResourceValues(resource);
|
132
|
+
var queryResource = useMemo(function () {
|
130
133
|
return {
|
131
134
|
id: resourceId
|
132
135
|
};
|
@@ -134,10 +137,17 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
134
137
|
var finalQuery = useMemo(function () {
|
135
138
|
return _objectSpread(_objectSpread({}, query), !isEmpty(inputTextValue) ? _defineProperty({}, searchParamName, inputTextValue) : null);
|
136
139
|
}, [inputTextValue]);
|
137
|
-
var resourceItems = useResourceItems(
|
140
|
+
var resourceItems = useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
|
138
141
|
var _ref3 = resourceItems || {},
|
139
142
|
_ref3$items = _ref3.items,
|
140
|
-
|
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 : []));
|
141
151
|
var getItemLabel = useCallback(function (it, path) {
|
142
152
|
var id = get(it, 'id', null);
|
143
153
|
if (itemLabelWithId) {
|
@@ -167,16 +177,16 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
167
177
|
var onValueChange = useCallback(function (newId) {
|
168
178
|
if (onChange === null) return;
|
169
179
|
if (multiple) {
|
170
|
-
var newValue = items.filter(function (
|
171
|
-
var
|
172
|
-
id =
|
180
|
+
var newValue = items.filter(function (_ref5) {
|
181
|
+
var _ref5$id = _ref5.id,
|
182
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
173
183
|
return newId.indexOf(id) !== -1;
|
174
184
|
}) || [];
|
175
185
|
onChange(newValue);
|
176
186
|
} else {
|
177
|
-
var _newValue = items.filter(function (
|
178
|
-
var
|
179
|
-
id =
|
187
|
+
var _newValue = items.filter(function (_ref6) {
|
188
|
+
var _ref6$id = _ref6.id,
|
189
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
180
190
|
return id === newId;
|
181
191
|
}) || [];
|
182
192
|
if (_newValue !== null && _newValue.length > 0) {
|
@@ -192,6 +202,11 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
192
202
|
var onCloseCreate = useCallback(function () {
|
193
203
|
setCreateOpen(false);
|
194
204
|
}, [setCreateOpen]);
|
205
|
+
var onCreateSuccess = useCallback(function (newValue) {
|
206
|
+
onChange(newValue);
|
207
|
+
setCreateOpen(false);
|
208
|
+
setInputTextValue('');
|
209
|
+
}, [onChange]);
|
195
210
|
return /*#__PURE__*/React.createElement("div", {
|
196
211
|
className: classNames(['position-relative', _defineProperty({}, className, className != null)])
|
197
212
|
}, /*#__PURE__*/React.createElement("div", {
|
@@ -199,7 +214,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
199
214
|
}, /*#__PURE__*/React.createElement("div", {
|
200
215
|
className: "col-auto flex-grow-1"
|
201
216
|
}, /*#__PURE__*/React.createElement(Select, {
|
202
|
-
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)]),
|
203
218
|
disabled: disabled,
|
204
219
|
name: name,
|
205
220
|
value: finalValue,
|
@@ -223,10 +238,22 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
223
238
|
icon: "plus-lg",
|
224
239
|
onClick: createOpen ? onCloseCreate : onOpenCreate
|
225
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
|
+
}),
|
226
252
|
onClickClose: onCloseCreate
|
227
|
-
}, /*#__PURE__*/React.createElement(
|
228
|
-
|
229
|
-
|
253
|
+
}, /*#__PURE__*/React.createElement(ResourceForm, {
|
254
|
+
resource: resource,
|
255
|
+
onSuccess: onCreateSuccess
|
256
|
+
})) : null));
|
230
257
|
};
|
231
258
|
ResourceItemField.propTypes = propTypes;
|
232
259
|
ResourceItemField.defaultProps = defaultProps;
|
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,10 +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');
|
21
24
|
var Dialog = require('@panneau/modal-dialog');
|
22
25
|
|
23
26
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
24
27
|
|
28
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
25
29
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
26
30
|
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
27
31
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
@@ -33,6 +37,7 @@ var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
33
37
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
34
38
|
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
35
39
|
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
40
|
+
var ResourceForm__default = /*#__PURE__*/_interopDefaultLegacy(ResourceForm);
|
36
41
|
var Dialog__default = /*#__PURE__*/_interopDefaultLegacy(Dialog);
|
37
42
|
|
38
43
|
var propTypes = {
|
@@ -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,
|
@@ -242,10 +259,22 @@ var ResourceItemField = function ResourceItemField(_ref) {
|
|
242
259
|
icon: "plus-lg",
|
243
260
|
onClick: createOpen ? onCloseCreate : onOpenCreate
|
244
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
|
+
}),
|
245
273
|
onClickClose: onCloseCreate
|
246
|
-
}, /*#__PURE__*/React__default["default"].createElement("
|
247
|
-
|
248
|
-
|
274
|
+
}, /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], {
|
275
|
+
resource: resource,
|
276
|
+
onSuccess: onCreateSuccess
|
277
|
+
})) : null));
|
249
278
|
};
|
250
279
|
ResourceItemField.propTypes = propTypes;
|
251
280
|
ResourceItemField.defaultProps = defaultProps;
|
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"
|
@@ -49,6 +49,9 @@
|
|
49
49
|
"@panneau/data": "^2.0.58",
|
50
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
|
}
|