@panneau/core 1.0.3-alpha.0 → 1.0.3-alpha.4
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/contexts.js +318 -358
- package/es/hooks.js +201 -319
- package/es/index.js +114 -215
- package/es/utils.js +75 -77
- package/lib/contexts.js +322 -357
- package/lib/hooks.js +200 -318
- package/lib/index.js +114 -215
- package/lib/utils.js +76 -76
- package/package.json +2 -2
package/es/utils.js
CHANGED
|
@@ -13,6 +13,7 @@ import isArray from 'lodash/isArray';
|
|
|
13
13
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
14
14
|
import get from 'lodash/get';
|
|
15
15
|
import capitalize from 'lodash/capitalize';
|
|
16
|
+
import EventEmitter from 'wolfy87-eventemitter';
|
|
16
17
|
import slugify from 'slugify';
|
|
17
18
|
|
|
18
19
|
var convertStyleToString = function convertStyleToString(style) {
|
|
@@ -25,17 +26,14 @@ var createNullableOnChange = function createNullableOnChange() {
|
|
|
25
26
|
var onChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
26
27
|
return function (newValue) {
|
|
27
28
|
var nullableValue = newValue;
|
|
28
|
-
|
|
29
29
|
if (isObject(newValue)) {
|
|
30
30
|
var allNull = Object.keys(newValue).reduce(function (acc, key) {
|
|
31
31
|
return acc && newValue[key] === null;
|
|
32
32
|
}, true);
|
|
33
|
-
|
|
34
33
|
if (allNull) {
|
|
35
34
|
nullableValue = null;
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
|
-
|
|
39
37
|
if (onChange !== null) {
|
|
40
38
|
onChange(nullableValue);
|
|
41
39
|
}
|
|
@@ -49,7 +47,6 @@ var createUseEvent = function createUseEvent(eventsManager) {
|
|
|
49
47
|
if (enabled && eventsManager !== null) {
|
|
50
48
|
eventsManager.subscribe(event, callback);
|
|
51
49
|
}
|
|
52
|
-
|
|
53
50
|
return function () {
|
|
54
51
|
if (enabled && eventsManager !== null) {
|
|
55
52
|
eventsManager.unsubscribe(event, callback);
|
|
@@ -61,25 +58,21 @@ var createUseEvent = function createUseEvent(eventsManager) {
|
|
|
61
58
|
|
|
62
59
|
var flattenComponents = function flattenComponents(components) {
|
|
63
60
|
var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
64
|
-
|
|
65
61
|
if (components === null) {
|
|
66
62
|
return null;
|
|
67
63
|
}
|
|
68
|
-
|
|
69
64
|
return Object.keys(components).reduce(function (newMap, key) {
|
|
70
65
|
return ReactIs.isValidElementType(components[key]) ? _objectSpread(_objectSpread({}, newMap), {}, _defineProperty({}, prefix !== null ? "".concat(prefix, ".").concat(key) : key, components[key])) : _objectSpread(_objectSpread({}, newMap), flattenComponents(components[key], key));
|
|
71
66
|
}, {});
|
|
72
67
|
};
|
|
73
68
|
|
|
74
69
|
var _excluded$1 = ["component"];
|
|
75
|
-
|
|
76
70
|
var getComponent = function getComponent(component) {
|
|
77
71
|
var _ref = isObject(component) ? component : {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
72
|
+
component: component
|
|
73
|
+
};
|
|
74
|
+
_ref.component;
|
|
75
|
+
var props = _objectWithoutProperties(_ref, _excluded$1);
|
|
83
76
|
return {
|
|
84
77
|
name: component,
|
|
85
78
|
props: props
|
|
@@ -90,22 +83,19 @@ var _excluded = ["field"];
|
|
|
90
83
|
var getColumnFromField = function getColumnFromField(field) {
|
|
91
84
|
if (field === null) {
|
|
92
85
|
return null;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
86
|
+
}
|
|
87
|
+
// eslint-disable-next-line camelcase
|
|
96
88
|
var name = field.name,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
89
|
+
_field$components = field.components,
|
|
90
|
+
_field$components2 = _field$components === void 0 ? {} : _field$components,
|
|
91
|
+
_field$components2$di = _field$components2.display,
|
|
92
|
+
display = _field$components2$di === void 0 ? null : _field$components2$di,
|
|
93
|
+
label = field.label;
|
|
103
94
|
var _getComponent = getComponent(display),
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
95
|
+
_getComponent$name = _getComponent.name,
|
|
96
|
+
componentName = _getComponent$name === void 0 ? null : _getComponent$name,
|
|
97
|
+
_getComponent$props = _getComponent.props,
|
|
98
|
+
componentProps = _getComponent$props === void 0 ? null : _getComponent$props;
|
|
109
99
|
return _objectSpread(_objectSpread({}, componentProps), {}, {
|
|
110
100
|
id: name,
|
|
111
101
|
label: label,
|
|
@@ -118,12 +108,11 @@ var getColumnsWithFields = function getColumnsWithFields(resource, columns) {
|
|
|
118
108
|
var fields = resource.fields;
|
|
119
109
|
var newColumns = columns !== null ? columns.map(function (column) {
|
|
120
110
|
var _ref = isString(column) ? {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
111
|
+
field: column
|
|
112
|
+
} : column,
|
|
113
|
+
_ref$field = _ref.field,
|
|
114
|
+
fieldName = _ref$field === void 0 ? null : _ref$field,
|
|
115
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
127
116
|
return _objectSpread(_objectSpread({}, fieldName !== null ? getColumnFromField(fields.find(function (it) {
|
|
128
117
|
return it.name === fieldName;
|
|
129
118
|
}) || null) : null), otherProps);
|
|
@@ -137,18 +126,14 @@ var getComponentFromName = function getComponentFromName() {
|
|
|
137
126
|
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
138
127
|
var components = arguments.length > 1 ? arguments[1] : undefined;
|
|
139
128
|
var defaultComponent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
140
|
-
|
|
141
129
|
if (components === null || name === null) {
|
|
142
130
|
return defaultComponent;
|
|
143
131
|
}
|
|
144
|
-
|
|
145
132
|
var pascalName = pascalCase(name);
|
|
146
133
|
var component = components[pascalName] || components[name] || defaultComponent;
|
|
147
|
-
|
|
148
134
|
if (!component) {
|
|
149
135
|
console.warn('Could not find component from name', name, pascalName, components);
|
|
150
136
|
}
|
|
151
|
-
|
|
152
137
|
return component;
|
|
153
138
|
};
|
|
154
139
|
|
|
@@ -156,11 +141,9 @@ var getDefinitionFromId = function getDefinitionFromId() {
|
|
|
156
141
|
var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
157
142
|
var items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
158
143
|
var defaultObject = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
159
|
-
|
|
160
144
|
if (items === null || id === null || isArray(items) && items.length === 0) {
|
|
161
145
|
return defaultObject;
|
|
162
146
|
}
|
|
163
|
-
|
|
164
147
|
var pascalId = pascalCase(id);
|
|
165
148
|
return items.find(function (i) {
|
|
166
149
|
return i.id === pascalId;
|
|
@@ -171,9 +154,9 @@ var getDefinitionFromId = function getDefinitionFromId() {
|
|
|
171
154
|
|
|
172
155
|
var getDisplayName = function getDisplayName(_ref) {
|
|
173
156
|
var _ref$displayName = _ref.displayName,
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
157
|
+
displayName = _ref$displayName === void 0 ? null : _ref$displayName,
|
|
158
|
+
_ref$name = _ref.name,
|
|
159
|
+
name = _ref$name === void 0 ? null : _ref$name;
|
|
177
160
|
return displayName || name || 'Component';
|
|
178
161
|
};
|
|
179
162
|
|
|
@@ -182,16 +165,13 @@ var getFieldByName = function getFieldByName(fields, name) {
|
|
|
182
165
|
if (foundField !== null) {
|
|
183
166
|
return foundField;
|
|
184
167
|
}
|
|
185
|
-
|
|
186
168
|
var _it$name = it.name,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
169
|
+
fieldName = _it$name === void 0 ? null : _it$name,
|
|
170
|
+
_it$fields = it.fields,
|
|
171
|
+
subFields = _it$fields === void 0 ? [] : _it$fields;
|
|
191
172
|
if (name !== null && fieldName === name) {
|
|
192
173
|
return it;
|
|
193
174
|
}
|
|
194
|
-
|
|
195
175
|
return getFieldByName(subFields, name);
|
|
196
176
|
}, null);
|
|
197
177
|
};
|
|
@@ -201,30 +181,26 @@ var getFieldFromPath = function getFieldFromPath(path, fields, fieldManager) {
|
|
|
201
181
|
if (foundField === null) {
|
|
202
182
|
return null;
|
|
203
183
|
}
|
|
204
|
-
|
|
205
184
|
var _foundField$type = foundField.type,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
185
|
+
type = _foundField$type === void 0 ? null : _foundField$type,
|
|
186
|
+
_foundField$fields = foundField.fields,
|
|
187
|
+
fieldFields = _foundField$fields === void 0 ? null : _foundField$fields,
|
|
188
|
+
_foundField$field = foundField.field,
|
|
189
|
+
field = _foundField$field === void 0 ? null : _foundField$field;
|
|
211
190
|
var finalType = field !== null ? field.type || type : type;
|
|
212
|
-
|
|
213
191
|
var _ref = finalType !== null ? fieldManager.getDefinition(finalType) : foundField,
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
192
|
+
_ref$fields = _ref.fields,
|
|
193
|
+
subFields = _ref$fields === void 0 ? null : _ref$fields,
|
|
194
|
+
_ref$settings = _ref.settings,
|
|
195
|
+
settings = _ref$settings === void 0 ? null : _ref$settings,
|
|
196
|
+
_ref$itemsField = _ref.itemsField,
|
|
197
|
+
itemsField = _ref$itemsField === void 0 ? null : _ref$itemsField;
|
|
221
198
|
if (itemsField !== null && key.match(/^[0-9]+$/)) {
|
|
222
199
|
return _objectSpread(_objectSpread({}, itemsField), {}, {
|
|
223
200
|
name: path.join('/'),
|
|
224
201
|
listItems: true
|
|
225
202
|
});
|
|
226
203
|
}
|
|
227
|
-
|
|
228
204
|
return getFieldByName([].concat(_toConsumableArray(fieldFields || []), _toConsumableArray(subFields || []), _toConsumableArray(settings || [])), key);
|
|
229
205
|
}, {
|
|
230
206
|
fields: fields
|
|
@@ -233,11 +209,9 @@ var getFieldFromPath = function getFieldFromPath(path, fields, fieldManager) {
|
|
|
233
209
|
|
|
234
210
|
var getFileName = function getFileName() {
|
|
235
211
|
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
236
|
-
|
|
237
212
|
if (url === null || typeof url.match === 'undefined') {
|
|
238
213
|
return null;
|
|
239
214
|
}
|
|
240
|
-
|
|
241
215
|
return url.match(/([^/]+)(\?.*)?$/)[1] || url;
|
|
242
216
|
};
|
|
243
217
|
|
|
@@ -252,22 +226,19 @@ var getSelectOptions = function getSelectOptions(options) {
|
|
|
252
226
|
return options.map(function (it) {
|
|
253
227
|
if (isObject(it)) {
|
|
254
228
|
var _it$label = it.label,
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
229
|
+
label = _it$label === void 0 ? null : _it$label,
|
|
230
|
+
value = it.value;
|
|
258
231
|
if (label === null) {
|
|
259
232
|
return {
|
|
260
233
|
value: value,
|
|
261
234
|
label: capitalize("".concat(value))
|
|
262
235
|
};
|
|
263
236
|
}
|
|
264
|
-
|
|
265
237
|
return {
|
|
266
238
|
value: value,
|
|
267
239
|
label: "".concat(label)
|
|
268
240
|
};
|
|
269
241
|
}
|
|
270
|
-
|
|
271
242
|
return {
|
|
272
243
|
value: it,
|
|
273
244
|
label: capitalize("".concat(it))
|
|
@@ -279,33 +250,62 @@ var isMessage = function isMessage(message) {
|
|
|
279
250
|
return isObject(message) && typeof message.defaultMessage !== 'undefined';
|
|
280
251
|
};
|
|
281
252
|
|
|
253
|
+
/**
|
|
254
|
+
* Locale loader
|
|
255
|
+
*/
|
|
256
|
+
var loaders = {};
|
|
257
|
+
var events = new EventEmitter();
|
|
258
|
+
function loadPackage(name, loader) {
|
|
259
|
+
if (typeof loaders[name] === 'undefined') {
|
|
260
|
+
loaders[name] = {
|
|
261
|
+
loader: loader().then(function (response) {
|
|
262
|
+
loaders[name].loader = null;
|
|
263
|
+
loaders[name].loaded = true;
|
|
264
|
+
loaders[name].resource = response;
|
|
265
|
+
events.emit("loaded:".concat(name), response);
|
|
266
|
+
return response;
|
|
267
|
+
}),
|
|
268
|
+
loaded: false,
|
|
269
|
+
resource: null
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
return new Promise(function (resolve) {
|
|
273
|
+
var _ref = loaders[name] || {},
|
|
274
|
+
_ref$loaded = _ref.loaded,
|
|
275
|
+
loaded = _ref$loaded === void 0 ? false : _ref$loaded,
|
|
276
|
+
resource = _ref.resource;
|
|
277
|
+
if (loaded === true) {
|
|
278
|
+
resolve(resource);
|
|
279
|
+
} else {
|
|
280
|
+
events.once("loaded:".concat(name), function (response) {
|
|
281
|
+
resolve(response);
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
|
|
282
287
|
var setValue = function setValue(value, keyParts, fieldValue) {
|
|
283
288
|
var key = keyParts.shift();
|
|
284
289
|
var isArray = key.match(/^[0-9]+$/) !== null;
|
|
285
|
-
|
|
286
290
|
if (value !== null || fieldValue !== null) {
|
|
287
291
|
if (isArray) {
|
|
288
292
|
var index = parseInt(key, 10);
|
|
289
293
|
var newArrayValue = fieldValue !== null ? [].concat(_toConsumableArray(value.slice(0, index)), [keyParts.length > 0 ? setValue(value !== null ? value[index] || null : null, keyParts, fieldValue) : fieldValue], _toConsumableArray(value.slice(index + 1))) : [].concat(_toConsumableArray(value.slice(0, index)), _toConsumableArray(value.slice(index + 1)));
|
|
290
294
|
return newArrayValue.length > 0 ? newArrayValue : null;
|
|
291
295
|
}
|
|
292
|
-
|
|
293
296
|
return _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, key, keyParts.length > 0 ? setValue(value !== null ? value[key] || null : null, keyParts, fieldValue) : fieldValue));
|
|
294
297
|
}
|
|
295
|
-
|
|
296
298
|
return null;
|
|
297
299
|
};
|
|
298
300
|
|
|
299
301
|
var slug = function slug(str) {
|
|
300
302
|
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
301
303
|
var toSlug;
|
|
302
|
-
|
|
303
304
|
if (separator === '-') {
|
|
304
305
|
toSlug = paramCase(str);
|
|
305
306
|
} else {
|
|
306
307
|
toSlug = snakeCase$1(str);
|
|
307
308
|
}
|
|
308
|
-
|
|
309
309
|
return slugify(toSlug, {
|
|
310
310
|
lower: true
|
|
311
311
|
});
|
|
@@ -317,13 +317,11 @@ var validateFields = function validateFields(fields, value) {
|
|
|
317
317
|
if (field.type === 'fields' && field.fields) {
|
|
318
318
|
return validateFields(field.fields, value);
|
|
319
319
|
}
|
|
320
|
-
|
|
321
320
|
var val = value && value[field.name] ? value[field.name] : false;
|
|
322
321
|
return !(field.required && !val);
|
|
323
322
|
}
|
|
324
|
-
|
|
325
323
|
return acc;
|
|
326
324
|
}, true);
|
|
327
325
|
};
|
|
328
326
|
|
|
329
|
-
export { convertStyleToString, createNullableOnChange, createUseEvent, flattenComponents, getColumnsWithFields, getComponent, getComponentFromName, getDefinitionFromId, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getPathValue, getSelectOptions, isMessage, setValue as setFieldValue, slug, validateFields };
|
|
327
|
+
export { convertStyleToString, createNullableOnChange, createUseEvent, flattenComponents, getColumnsWithFields, getComponent, getComponentFromName, getDefinitionFromId, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getPathValue, getSelectOptions, isMessage, loadPackage, setValue as setFieldValue, slug, validateFields };
|