decap-cms-widget-list 2.11.0-beta.0

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/src/index.js ADDED
@@ -0,0 +1,19 @@
1
+ import DecapCmsWidgetObject from 'decap-cms-widget-object';
2
+
3
+ import controlComponent from './ListControl';
4
+ import schema from './schema';
5
+
6
+ const previewComponent = DecapCmsWidgetObject.previewComponent;
7
+
8
+ function Widget(opts = {}) {
9
+ return {
10
+ name: 'list',
11
+ controlComponent,
12
+ previewComponent,
13
+ schema,
14
+ ...opts,
15
+ };
16
+ }
17
+
18
+ export const DecapCmsWidgetList = { Widget, controlComponent, previewComponent };
19
+ export default DecapCmsWidgetList;
package/src/schema.js ADDED
@@ -0,0 +1,12 @@
1
+ export default {
2
+ properties: {
3
+ allow_add: { type: 'boolean' },
4
+ collapsed: { type: 'boolean' },
5
+ summary: { type: 'string' },
6
+ minimize_collapsed: { type: 'boolean' },
7
+ label_singular: { type: 'string' },
8
+ i18n: { type: 'boolean' },
9
+ min: { type: 'number' },
10
+ max: { type: 'number' },
11
+ },
12
+ };
@@ -0,0 +1,35 @@
1
+ export const TYPES_KEY = 'types';
2
+ export const TYPE_KEY = 'typeKey';
3
+ export const DEFAULT_TYPE_KEY = 'type';
4
+
5
+ export function getTypedFieldForValue(field, value) {
6
+ const typeKey = resolveFieldKeyType(field);
7
+ const types = field.get(TYPES_KEY);
8
+ const valueType = value.get(typeKey);
9
+ return types.find(type => type.get('name') === valueType);
10
+ }
11
+
12
+ export function resolveFunctionForTypedField(field) {
13
+ const typeKey = resolveFieldKeyType(field);
14
+ const types = field.get(TYPES_KEY);
15
+ return value => {
16
+ const valueType = value.get(typeKey);
17
+ return types.find(type => type.get('name') === valueType);
18
+ };
19
+ }
20
+
21
+ export function resolveFieldKeyType(field) {
22
+ return field.get(TYPE_KEY, DEFAULT_TYPE_KEY);
23
+ }
24
+
25
+ export function getErrorMessageForTypedFieldAndValue(field, value) {
26
+ const keyType = resolveFieldKeyType(field);
27
+ const type = value.get(keyType);
28
+ let errorMessage;
29
+ if (!type) {
30
+ errorMessage = `Error: item has no '${keyType}' property`;
31
+ } else {
32
+ errorMessage = `Error: item has illegal '${keyType}' property: '${type}'`;
33
+ }
34
+ return errorMessage;
35
+ }
@@ -0,0 +1,3 @@
1
+ const { getConfig } = require('../../scripts/webpack.js');
2
+
3
+ module.exports = getConfig();