@panneau/core 1.0.3-alpha.1 → 1.0.3-alpha.12
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 +304 -360
- package/es/hooks.js +201 -319
- package/es/index.js +116 -217
- package/es/utils.js +83 -80
- package/lib/contexts.js +305 -360
- package/lib/hooks.js +200 -318
- package/lib/index.js +116 -217
- package/lib/utils.js +84 -79
- package/package.json +3 -3
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,51 +58,44 @@ 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
|
|
86
79
|
};
|
|
87
80
|
};
|
|
88
81
|
|
|
89
|
-
var _excluded = ["field"];
|
|
82
|
+
var _excluded = ["id", "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,15 +108,19 @@ 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
|
-
|
|
127
|
-
|
|
111
|
+
field: column
|
|
112
|
+
} : column,
|
|
113
|
+
_ref$id = _ref.id,
|
|
114
|
+
colId = _ref$id === void 0 ? null : _ref$id,
|
|
115
|
+
_ref$field = _ref.field,
|
|
116
|
+
colField = _ref$field === void 0 ? null : _ref$field,
|
|
117
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
118
|
+
var fieldName = colField || colId;
|
|
119
|
+
return _objectSpread(_objectSpread(_objectSpread({}, fieldName !== null ? getColumnFromField(fields.find(function (it) {
|
|
128
120
|
return it.name === fieldName;
|
|
129
|
-
}) || null) : null), otherProps)
|
|
121
|
+
}) || null) : null), otherProps), {}, {
|
|
122
|
+
id: colId
|
|
123
|
+
});
|
|
130
124
|
}).filter(function (it) {
|
|
131
125
|
return it !== null;
|
|
132
126
|
}) : [];
|
|
@@ -137,18 +131,14 @@ var getComponentFromName = function getComponentFromName() {
|
|
|
137
131
|
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
138
132
|
var components = arguments.length > 1 ? arguments[1] : undefined;
|
|
139
133
|
var defaultComponent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
140
|
-
|
|
141
134
|
if (components === null || name === null) {
|
|
142
135
|
return defaultComponent;
|
|
143
136
|
}
|
|
144
|
-
|
|
145
137
|
var pascalName = pascalCase(name);
|
|
146
138
|
var component = components[pascalName] || components[name] || defaultComponent;
|
|
147
|
-
|
|
148
139
|
if (!component) {
|
|
149
140
|
console.warn('Could not find component from name', name, pascalName, components);
|
|
150
141
|
}
|
|
151
|
-
|
|
152
142
|
return component;
|
|
153
143
|
};
|
|
154
144
|
|
|
@@ -156,11 +146,9 @@ var getDefinitionFromId = function getDefinitionFromId() {
|
|
|
156
146
|
var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
157
147
|
var items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
158
148
|
var defaultObject = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
159
|
-
|
|
160
149
|
if (items === null || id === null || isArray(items) && items.length === 0) {
|
|
161
150
|
return defaultObject;
|
|
162
151
|
}
|
|
163
|
-
|
|
164
152
|
var pascalId = pascalCase(id);
|
|
165
153
|
return items.find(function (i) {
|
|
166
154
|
return i.id === pascalId;
|
|
@@ -171,9 +159,9 @@ var getDefinitionFromId = function getDefinitionFromId() {
|
|
|
171
159
|
|
|
172
160
|
var getDisplayName = function getDisplayName(_ref) {
|
|
173
161
|
var _ref$displayName = _ref.displayName,
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
162
|
+
displayName = _ref$displayName === void 0 ? null : _ref$displayName,
|
|
163
|
+
_ref$name = _ref.name,
|
|
164
|
+
name = _ref$name === void 0 ? null : _ref$name;
|
|
177
165
|
return displayName || name || 'Component';
|
|
178
166
|
};
|
|
179
167
|
|
|
@@ -182,16 +170,13 @@ var getFieldByName = function getFieldByName(fields, name) {
|
|
|
182
170
|
if (foundField !== null) {
|
|
183
171
|
return foundField;
|
|
184
172
|
}
|
|
185
|
-
|
|
186
173
|
var _it$name = it.name,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
174
|
+
fieldName = _it$name === void 0 ? null : _it$name,
|
|
175
|
+
_it$fields = it.fields,
|
|
176
|
+
subFields = _it$fields === void 0 ? [] : _it$fields;
|
|
191
177
|
if (name !== null && fieldName === name) {
|
|
192
178
|
return it;
|
|
193
179
|
}
|
|
194
|
-
|
|
195
180
|
return getFieldByName(subFields, name);
|
|
196
181
|
}, null);
|
|
197
182
|
};
|
|
@@ -201,30 +186,26 @@ var getFieldFromPath = function getFieldFromPath(path, fields, fieldManager) {
|
|
|
201
186
|
if (foundField === null) {
|
|
202
187
|
return null;
|
|
203
188
|
}
|
|
204
|
-
|
|
205
189
|
var _foundField$type = foundField.type,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
190
|
+
type = _foundField$type === void 0 ? null : _foundField$type,
|
|
191
|
+
_foundField$fields = foundField.fields,
|
|
192
|
+
fieldFields = _foundField$fields === void 0 ? null : _foundField$fields,
|
|
193
|
+
_foundField$field = foundField.field,
|
|
194
|
+
field = _foundField$field === void 0 ? null : _foundField$field;
|
|
211
195
|
var finalType = field !== null ? field.type || type : type;
|
|
212
|
-
|
|
213
196
|
var _ref = finalType !== null ? fieldManager.getDefinition(finalType) : foundField,
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
197
|
+
_ref$fields = _ref.fields,
|
|
198
|
+
subFields = _ref$fields === void 0 ? null : _ref$fields,
|
|
199
|
+
_ref$settings = _ref.settings,
|
|
200
|
+
settings = _ref$settings === void 0 ? null : _ref$settings,
|
|
201
|
+
_ref$itemsField = _ref.itemsField,
|
|
202
|
+
itemsField = _ref$itemsField === void 0 ? null : _ref$itemsField;
|
|
221
203
|
if (itemsField !== null && key.match(/^[0-9]+$/)) {
|
|
222
204
|
return _objectSpread(_objectSpread({}, itemsField), {}, {
|
|
223
205
|
name: path.join('/'),
|
|
224
206
|
listItems: true
|
|
225
207
|
});
|
|
226
208
|
}
|
|
227
|
-
|
|
228
209
|
return getFieldByName([].concat(_toConsumableArray(fieldFields || []), _toConsumableArray(subFields || []), _toConsumableArray(settings || [])), key);
|
|
229
210
|
}, {
|
|
230
211
|
fields: fields
|
|
@@ -233,11 +214,9 @@ var getFieldFromPath = function getFieldFromPath(path, fields, fieldManager) {
|
|
|
233
214
|
|
|
234
215
|
var getFileName = function getFileName() {
|
|
235
216
|
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
236
|
-
|
|
237
217
|
if (url === null || typeof url.match === 'undefined') {
|
|
238
218
|
return null;
|
|
239
219
|
}
|
|
240
|
-
|
|
241
220
|
return url.match(/([^/]+)(\?.*)?$/)[1] || url;
|
|
242
221
|
};
|
|
243
222
|
|
|
@@ -252,22 +231,19 @@ var getSelectOptions = function getSelectOptions(options) {
|
|
|
252
231
|
return options.map(function (it) {
|
|
253
232
|
if (isObject(it)) {
|
|
254
233
|
var _it$label = it.label,
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
234
|
+
label = _it$label === void 0 ? null : _it$label,
|
|
235
|
+
value = it.value;
|
|
258
236
|
if (label === null) {
|
|
259
237
|
return {
|
|
260
238
|
value: value,
|
|
261
239
|
label: capitalize("".concat(value))
|
|
262
240
|
};
|
|
263
241
|
}
|
|
264
|
-
|
|
265
242
|
return {
|
|
266
243
|
value: value,
|
|
267
244
|
label: "".concat(label)
|
|
268
245
|
};
|
|
269
246
|
}
|
|
270
|
-
|
|
271
247
|
return {
|
|
272
248
|
value: it,
|
|
273
249
|
label: capitalize("".concat(it))
|
|
@@ -279,33 +255,62 @@ var isMessage = function isMessage(message) {
|
|
|
279
255
|
return isObject(message) && typeof message.defaultMessage !== 'undefined';
|
|
280
256
|
};
|
|
281
257
|
|
|
258
|
+
/**
|
|
259
|
+
* Locale loader
|
|
260
|
+
*/
|
|
261
|
+
var loaders = {};
|
|
262
|
+
var events = new EventEmitter();
|
|
263
|
+
function loadPackage(name, loader) {
|
|
264
|
+
if (typeof loaders[name] === 'undefined') {
|
|
265
|
+
loaders[name] = {
|
|
266
|
+
loader: loader().then(function (response) {
|
|
267
|
+
loaders[name].loader = null;
|
|
268
|
+
loaders[name].loaded = true;
|
|
269
|
+
loaders[name].resource = response;
|
|
270
|
+
events.emit("loaded:".concat(name), response);
|
|
271
|
+
return response;
|
|
272
|
+
}),
|
|
273
|
+
loaded: false,
|
|
274
|
+
resource: null
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
return new Promise(function (resolve) {
|
|
278
|
+
var _ref = loaders[name] || {},
|
|
279
|
+
_ref$loaded = _ref.loaded,
|
|
280
|
+
loaded = _ref$loaded === void 0 ? false : _ref$loaded,
|
|
281
|
+
resource = _ref.resource;
|
|
282
|
+
if (loaded === true) {
|
|
283
|
+
resolve(resource);
|
|
284
|
+
} else {
|
|
285
|
+
events.once("loaded:".concat(name), function (response) {
|
|
286
|
+
resolve(response);
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
|
|
282
292
|
var setValue = function setValue(value, keyParts, fieldValue) {
|
|
283
293
|
var key = keyParts.shift();
|
|
284
294
|
var isArray = key.match(/^[0-9]+$/) !== null;
|
|
285
|
-
|
|
286
295
|
if (value !== null || fieldValue !== null) {
|
|
287
296
|
if (isArray) {
|
|
288
297
|
var index = parseInt(key, 10);
|
|
289
298
|
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
299
|
return newArrayValue.length > 0 ? newArrayValue : null;
|
|
291
300
|
}
|
|
292
|
-
|
|
293
301
|
return _objectSpread(_objectSpread({}, value), {}, _defineProperty({}, key, keyParts.length > 0 ? setValue(value !== null ? value[key] || null : null, keyParts, fieldValue) : fieldValue));
|
|
294
302
|
}
|
|
295
|
-
|
|
296
303
|
return null;
|
|
297
304
|
};
|
|
298
305
|
|
|
299
306
|
var slug = function slug(str) {
|
|
300
307
|
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
301
308
|
var toSlug;
|
|
302
|
-
|
|
303
309
|
if (separator === '-') {
|
|
304
310
|
toSlug = paramCase(str);
|
|
305
311
|
} else {
|
|
306
312
|
toSlug = snakeCase$1(str);
|
|
307
313
|
}
|
|
308
|
-
|
|
309
314
|
return slugify(toSlug, {
|
|
310
315
|
lower: true
|
|
311
316
|
});
|
|
@@ -317,13 +322,11 @@ var validateFields = function validateFields(fields, value) {
|
|
|
317
322
|
if (field.type === 'fields' && field.fields) {
|
|
318
323
|
return validateFields(field.fields, value);
|
|
319
324
|
}
|
|
320
|
-
|
|
321
325
|
var val = value && value[field.name] ? value[field.name] : false;
|
|
322
326
|
return !(field.required && !val);
|
|
323
327
|
}
|
|
324
|
-
|
|
325
328
|
return acc;
|
|
326
329
|
}, true);
|
|
327
330
|
};
|
|
328
331
|
|
|
329
|
-
export { convertStyleToString, createNullableOnChange, createUseEvent, flattenComponents, getColumnsWithFields, getComponent, getComponentFromName, getDefinitionFromId, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getPathValue, getSelectOptions, isMessage, setValue as setFieldValue, slug, validateFields };
|
|
332
|
+
export { convertStyleToString, createNullableOnChange, createUseEvent, flattenComponents, getColumnsWithFields, getComponent, getComponentFromName, getDefinitionFromId, getDisplayName, getFieldByName, getFieldFromPath, getFileName, getPathValue, getSelectOptions, isMessage, loadPackage, setValue as setFieldValue, slug, validateFields };
|