@webiny/react-properties 0.0.0-unstable.40876133bb → 0.0.0-unstable.496cf268ac
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/Properties.d.ts → Properties.d.ts} +7 -1
- package/Properties.js +47 -55
- package/Properties.js.map +1 -1
- package/index.js +0 -4
- package/index.js.map +1 -1
- package/package.json +7 -6
- package/{src/utils.d.ts → utils.d.ts} +1 -1
- package/utils.js +3 -13
- package/utils.js.map +1 -1
- package/__tests__/cases/dashboard/App.d.ts +0 -23
- package/__tests__/cases/dashboard/dashboard.test.d.ts +0 -1
- package/__tests__/cases/pbEditorSettings/PbEditorSettingsView.d.ts +0 -21
- package/__tests__/cases/pbEditorSettings/createConfigurableView.d.ts +0 -9
- package/__tests__/cases/pbEditorSettings/pbEditorSettings.test.d.ts +0 -1
- package/__tests__/properties.test.d.ts +0 -1
- package/__tests__/setupEnv.d.ts +0 -1
- package/__tests__/utils.d.ts +0 -2
- /package/{src/index.d.ts → index.d.ts} +0 -0
|
@@ -3,7 +3,7 @@ export interface Property {
|
|
|
3
3
|
id: string;
|
|
4
4
|
parent: string;
|
|
5
5
|
name: string;
|
|
6
|
-
value
|
|
6
|
+
value?: unknown;
|
|
7
7
|
array?: boolean;
|
|
8
8
|
}
|
|
9
9
|
interface AddPropertyOptions {
|
|
@@ -32,7 +32,13 @@ interface PropertyProps {
|
|
|
32
32
|
before?: string;
|
|
33
33
|
replace?: string;
|
|
34
34
|
remove?: boolean;
|
|
35
|
+
parent?: string;
|
|
36
|
+
root?: boolean;
|
|
35
37
|
}
|
|
36
38
|
export declare function useParentProperty(): Property | undefined;
|
|
39
|
+
interface AncestorMatch {
|
|
40
|
+
[key: string]: string | boolean | number | null | undefined;
|
|
41
|
+
}
|
|
42
|
+
export declare function useAncestor(params: AncestorMatch): Property | undefined;
|
|
37
43
|
export declare const Property: React.FC<PropertyProps>;
|
|
38
44
|
export {};
|
package/Properties.js
CHANGED
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.Property = exports.Properties = void 0;
|
|
9
|
+
exports.useAncestor = useAncestor;
|
|
11
10
|
exports.useParentProperty = useParentProperty;
|
|
12
11
|
exports.useProperties = useProperties;
|
|
13
|
-
|
|
14
12
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
15
|
-
|
|
16
13
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
|
-
|
|
18
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
|
-
|
|
20
15
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
-
|
|
22
16
|
var _utils = require("./utils");
|
|
23
|
-
|
|
24
17
|
function removeByParent(id, properties) {
|
|
25
18
|
return properties.filter(function (prop) {
|
|
26
19
|
return prop.parent === id;
|
|
@@ -30,18 +23,14 @@ function removeByParent(id, properties) {
|
|
|
30
23
|
}));
|
|
31
24
|
}, properties);
|
|
32
25
|
}
|
|
33
|
-
|
|
34
26
|
var PropertiesContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
35
|
-
|
|
36
27
|
var Properties = function Properties(_ref) {
|
|
37
28
|
var onChange = _ref.onChange,
|
|
38
|
-
|
|
39
|
-
|
|
29
|
+
children = _ref.children;
|
|
40
30
|
var _useState = (0, _react.useState)([]),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
32
|
+
properties = _useState2[0],
|
|
33
|
+
setProperties = _useState2[1];
|
|
45
34
|
(0, _react.useEffect)(function () {
|
|
46
35
|
if (onChange) {
|
|
47
36
|
onChange(properties);
|
|
@@ -60,31 +49,25 @@ var Properties = function Properties(_ref) {
|
|
|
60
49
|
var index = properties.findIndex(function (prop) {
|
|
61
50
|
return prop.id === property.id;
|
|
62
51
|
});
|
|
63
|
-
|
|
64
52
|
if (index > -1) {
|
|
65
53
|
return [].concat((0, _toConsumableArray2.default)(properties.slice(0, index)), [(0, _objectSpread2.default)((0, _objectSpread2.default)({}, properties[index]), property)], (0, _toConsumableArray2.default)(properties.slice(index + 1)));
|
|
66
54
|
}
|
|
67
|
-
|
|
68
55
|
if (options.after) {
|
|
69
56
|
var _index = properties.findIndex(function (prop) {
|
|
70
57
|
return prop.id === options.after;
|
|
71
58
|
});
|
|
72
|
-
|
|
73
59
|
if (_index > -1) {
|
|
74
60
|
return [].concat((0, _toConsumableArray2.default)(properties.slice(0, _index + 1)), [property], (0, _toConsumableArray2.default)(properties.slice(_index + 1)));
|
|
75
61
|
}
|
|
76
62
|
}
|
|
77
|
-
|
|
78
63
|
if (options.before) {
|
|
79
64
|
var _index2 = properties.findIndex(function (prop) {
|
|
80
65
|
return prop.id === options.before;
|
|
81
66
|
});
|
|
82
|
-
|
|
83
67
|
if (_index2 > -1) {
|
|
84
68
|
return [].concat((0, _toConsumableArray2.default)(properties.slice(0, _index2)), [property], (0, _toConsumableArray2.default)(properties.slice(_index2)));
|
|
85
69
|
}
|
|
86
70
|
}
|
|
87
|
-
|
|
88
71
|
return [].concat((0, _toConsumableArray2.default)(properties), [property]);
|
|
89
72
|
});
|
|
90
73
|
},
|
|
@@ -100,12 +83,10 @@ var Properties = function Properties(_ref) {
|
|
|
100
83
|
var toReplace = properties.findIndex(function (prop) {
|
|
101
84
|
return prop.id === id;
|
|
102
85
|
});
|
|
103
|
-
|
|
104
86
|
if (toReplace > -1) {
|
|
105
87
|
// Replace the property and remove all remaining child properties.
|
|
106
88
|
return removeByParent(id, [].concat((0, _toConsumableArray2.default)(properties.slice(0, toReplace)), [property], (0, _toConsumableArray2.default)(properties.slice(toReplace + 1))));
|
|
107
89
|
}
|
|
108
|
-
|
|
109
90
|
return properties;
|
|
110
91
|
});
|
|
111
92
|
}
|
|
@@ -115,58 +96,74 @@ var Properties = function Properties(_ref) {
|
|
|
115
96
|
value: context
|
|
116
97
|
}, children);
|
|
117
98
|
};
|
|
118
|
-
|
|
119
99
|
exports.Properties = Properties;
|
|
120
|
-
|
|
121
100
|
function useProperties() {
|
|
122
101
|
var properties = (0, _react.useContext)(PropertiesContext);
|
|
123
|
-
|
|
124
102
|
if (!properties) {
|
|
125
103
|
throw Error("Properties context provider is missing!");
|
|
126
104
|
}
|
|
127
|
-
|
|
128
105
|
return properties;
|
|
129
106
|
}
|
|
130
|
-
|
|
131
107
|
var PropertyContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
132
|
-
|
|
133
108
|
function useParentProperty() {
|
|
134
109
|
return (0, _react.useContext)(PropertyContext);
|
|
135
110
|
}
|
|
136
|
-
|
|
111
|
+
function useAncestor(params) {
|
|
112
|
+
var property = useParentProperty();
|
|
113
|
+
var _useProperties = useProperties(),
|
|
114
|
+
properties = _useProperties.properties;
|
|
115
|
+
var matchOrGetAncestor = function matchOrGetAncestor(property, params) {
|
|
116
|
+
var matchedProps = properties.filter(function (prop) {
|
|
117
|
+
return prop.parent === property.id;
|
|
118
|
+
}).filter(function (prop) {
|
|
119
|
+
return prop.name in params && prop.value === params[prop.name];
|
|
120
|
+
});
|
|
121
|
+
if (matchedProps.length === Object.keys(params).length) {
|
|
122
|
+
return property;
|
|
123
|
+
}
|
|
124
|
+
var newParent = property.parent ? properties.find(function (prop) {
|
|
125
|
+
return prop.id === property.parent;
|
|
126
|
+
}) : undefined;
|
|
127
|
+
return newParent ? matchOrGetAncestor(newParent, params) : undefined;
|
|
128
|
+
};
|
|
129
|
+
return property ? matchOrGetAncestor(property, params) : undefined;
|
|
130
|
+
}
|
|
137
131
|
var Property = function Property(_ref2) {
|
|
138
132
|
var id = _ref2.id,
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
133
|
+
name = _ref2.name,
|
|
134
|
+
value = _ref2.value,
|
|
135
|
+
children = _ref2.children,
|
|
136
|
+
_ref2$after = _ref2.after,
|
|
137
|
+
after = _ref2$after === void 0 ? undefined : _ref2$after,
|
|
138
|
+
_ref2$before = _ref2.before,
|
|
139
|
+
before = _ref2$before === void 0 ? undefined : _ref2$before,
|
|
140
|
+
_ref2$replace = _ref2.replace,
|
|
141
|
+
replace = _ref2$replace === void 0 ? undefined : _ref2$replace,
|
|
142
|
+
_ref2$remove = _ref2.remove,
|
|
143
|
+
remove = _ref2$remove === void 0 ? false : _ref2$remove,
|
|
144
|
+
_ref2$array = _ref2.array,
|
|
145
|
+
array = _ref2$array === void 0 ? false : _ref2$array,
|
|
146
|
+
_ref2$root = _ref2.root,
|
|
147
|
+
root = _ref2$root === void 0 ? false : _ref2$root,
|
|
148
|
+
_ref2$parent = _ref2.parent,
|
|
149
|
+
parent = _ref2$parent === void 0 ? undefined : _ref2$parent;
|
|
152
150
|
var uniqueId = (0, _react.useMemo)(function () {
|
|
153
151
|
return id || (0, _utils.getUniqueId)();
|
|
154
152
|
}, []);
|
|
155
|
-
var
|
|
153
|
+
var parentProperty = useParentProperty();
|
|
156
154
|
var properties = useProperties();
|
|
157
|
-
|
|
158
155
|
if (!properties) {
|
|
159
156
|
throw Error("<Properties> provider is missing higher in the hierarchy!");
|
|
160
157
|
}
|
|
161
|
-
|
|
162
158
|
var addProperty = properties.addProperty,
|
|
163
|
-
|
|
164
|
-
|
|
159
|
+
removeProperty = properties.removeProperty,
|
|
160
|
+
replaceProperty = properties.replaceProperty;
|
|
161
|
+
var parentId = parent ? parent : root ? "" : (parentProperty === null || parentProperty === void 0 ? void 0 : parentProperty.id) || "";
|
|
165
162
|
var property = {
|
|
166
163
|
id: uniqueId,
|
|
167
164
|
name: name,
|
|
168
165
|
value: value,
|
|
169
|
-
parent:
|
|
166
|
+
parent: parentId,
|
|
170
167
|
array: array
|
|
171
168
|
};
|
|
172
169
|
(0, _react.useEffect)(function () {
|
|
@@ -174,12 +171,10 @@ var Property = function Property(_ref2) {
|
|
|
174
171
|
removeProperty(uniqueId);
|
|
175
172
|
return;
|
|
176
173
|
}
|
|
177
|
-
|
|
178
174
|
if (replace) {
|
|
179
175
|
replaceProperty(replace, property);
|
|
180
176
|
return;
|
|
181
177
|
}
|
|
182
|
-
|
|
183
178
|
addProperty(property, {
|
|
184
179
|
after: after,
|
|
185
180
|
before: before
|
|
@@ -188,14 +183,11 @@ var Property = function Property(_ref2) {
|
|
|
188
183
|
removeProperty(uniqueId);
|
|
189
184
|
};
|
|
190
185
|
}, []);
|
|
191
|
-
|
|
192
186
|
if (children) {
|
|
193
187
|
return /*#__PURE__*/_react.default.createElement(PropertyContext.Provider, {
|
|
194
188
|
value: property
|
|
195
189
|
}, children);
|
|
196
190
|
}
|
|
197
|
-
|
|
198
191
|
return null;
|
|
199
192
|
};
|
|
200
|
-
|
|
201
193
|
exports.Property = Property;
|
package/Properties.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["removeByParent","id","properties","filter","prop","parent","reduce","acc","item","PropertiesContext","createContext","undefined","Properties","onChange","children","useState","setProperties","useEffect","context","useMemo","getObject","toObject","addProperty","property","options","index","findIndex","slice","after","before","removeProperty","replaceProperty","toReplace","useProperties","useContext","Error","PropertyContext","useParentProperty","Property","name","value","replace","remove","array","uniqueId","getUniqueId"],"sources":["Properties.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport { getUniqueId, toObject } from \"./utils\";\n\nexport interface Property {\n id: string;\n parent: string;\n name: string;\n value: unknown;\n array?: boolean;\n}\n\nfunction removeByParent(id: string, properties: Property[]): Property[] {\n return properties\n .filter(prop => prop.parent === id)\n .reduce((acc, item) => {\n return removeByParent(\n item.id,\n acc.filter(prop => prop.id !== item.id)\n );\n }, properties);\n}\n\ninterface AddPropertyOptions {\n after?: string;\n before?: string;\n}\n\ninterface PropertiesContext {\n properties: Property[];\n getObject<T = unknown>(): T;\n addProperty(property: Property, options?: AddPropertyOptions): void;\n removeProperty(id: string): void;\n replaceProperty(id: string, property: Property): void;\n}\n\nconst PropertiesContext = createContext<PropertiesContext | undefined>(undefined);\n\ninterface PropertiesProps {\n onChange?(properties: Property[]): void;\n}\n\nexport const Properties: React.FC<PropertiesProps> = ({ onChange, children }) => {\n const [properties, setProperties] = useState<Property[]>([]);\n\n useEffect(() => {\n if (onChange) {\n onChange(properties);\n }\n }, [properties]);\n\n const context: PropertiesContext = useMemo(\n () => ({\n properties,\n getObject<T>() {\n return toObject(properties) as T;\n },\n addProperty(property, options = {}) {\n setProperties(properties => {\n // If a property with this ID already exists, merge the two properties.\n const index = properties.findIndex(prop => prop.id === property.id);\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...properties[index], ...property },\n ...properties.slice(index + 1)\n ];\n }\n\n if (options.after) {\n const index = properties.findIndex(prop => prop.id === options.after);\n if (index > -1) {\n return [\n ...properties.slice(0, index + 1),\n property,\n ...properties.slice(index + 1)\n ];\n }\n }\n\n if (options.before) {\n const index = properties.findIndex(prop => prop.id === options.before);\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n property,\n ...properties.slice(index)\n ];\n }\n }\n\n return [...properties, property];\n });\n },\n removeProperty(id) {\n setProperties(properties => {\n return removeByParent(\n id,\n properties.filter(prop => prop.id !== id)\n );\n });\n },\n replaceProperty(id, property) {\n setProperties(properties => {\n const toReplace = properties.findIndex(prop => prop.id === id);\n\n if (toReplace > -1) {\n // Replace the property and remove all remaining child properties.\n return removeByParent(id, [\n ...properties.slice(0, toReplace),\n property,\n ...properties.slice(toReplace + 1)\n ]);\n }\n return properties;\n });\n }\n }),\n [properties]\n );\n\n return <PropertiesContext.Provider value={context}>{children}</PropertiesContext.Provider>;\n};\n\nexport function useProperties() {\n const properties = useContext(PropertiesContext);\n if (!properties) {\n throw Error(\"Properties context provider is missing!\");\n }\n\n return properties;\n}\n\ninterface PropertyProps {\n id?: string;\n name: string;\n value?: unknown;\n array?: boolean;\n after?: string;\n before?: string;\n replace?: string;\n remove?: boolean;\n}\n\nconst PropertyContext = createContext<Property | undefined>(undefined);\n\nexport function useParentProperty() {\n return useContext(PropertyContext);\n}\n\nexport const Property: React.FC<PropertyProps> = ({\n id,\n name,\n value,\n children,\n after = undefined,\n before = undefined,\n replace = undefined,\n remove = false,\n array = false\n}) => {\n const uniqueId = useMemo(() => id || getUniqueId(), []);\n const parent = useParentProperty();\n const properties = useProperties();\n\n if (!properties) {\n throw Error(\"<Properties> provider is missing higher in the hierarchy!\");\n }\n\n const { addProperty, removeProperty, replaceProperty } = properties;\n const property = { id: uniqueId, name, value, parent: parent ? parent.id : \"\", array };\n\n useEffect(() => {\n if (remove) {\n removeProperty(uniqueId);\n return;\n }\n\n if (replace) {\n replaceProperty(replace, property);\n return;\n }\n\n addProperty(property, { after, before });\n\n return () => {\n removeProperty(uniqueId);\n };\n }, []);\n\n if (children) {\n return <PropertyContext.Provider value={property}>{children}</PropertyContext.Provider>;\n }\n\n return null;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["removeByParent","id","properties","filter","prop","parent","reduce","acc","item","PropertiesContext","createContext","undefined","Properties","onChange","children","useState","setProperties","useEffect","context","useMemo","getObject","toObject","addProperty","property","options","index","findIndex","slice","after","before","removeProperty","replaceProperty","toReplace","useProperties","useContext","Error","PropertyContext","useParentProperty","useAncestor","params","matchOrGetAncestor","matchedProps","name","value","length","Object","keys","newParent","find","Property","replace","remove","array","root","uniqueId","getUniqueId","parentProperty","parentId"],"sources":["Properties.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport { getUniqueId, toObject } from \"./utils\";\n\nexport interface Property {\n id: string;\n parent: string;\n name: string;\n value?: unknown;\n array?: boolean;\n}\n\nfunction removeByParent(id: string, properties: Property[]): Property[] {\n return properties\n .filter(prop => prop.parent === id)\n .reduce((acc, item) => {\n return removeByParent(\n item.id,\n acc.filter(prop => prop.id !== item.id)\n );\n }, properties);\n}\n\ninterface AddPropertyOptions {\n after?: string;\n before?: string;\n}\n\ninterface PropertiesContext {\n properties: Property[];\n getObject<T = unknown>(): T;\n addProperty(property: Property, options?: AddPropertyOptions): void;\n removeProperty(id: string): void;\n replaceProperty(id: string, property: Property): void;\n}\n\nconst PropertiesContext = createContext<PropertiesContext | undefined>(undefined);\n\ninterface PropertiesProps {\n onChange?(properties: Property[]): void;\n}\n\nexport const Properties: React.FC<PropertiesProps> = ({ onChange, children }) => {\n const [properties, setProperties] = useState<Property[]>([]);\n\n useEffect(() => {\n if (onChange) {\n onChange(properties);\n }\n }, [properties]);\n\n const context: PropertiesContext = useMemo(\n () => ({\n properties,\n getObject<T>() {\n return toObject(properties) as T;\n },\n addProperty(property, options = {}) {\n setProperties(properties => {\n // If a property with this ID already exists, merge the two properties.\n const index = properties.findIndex(prop => prop.id === property.id);\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...properties[index], ...property },\n ...properties.slice(index + 1)\n ];\n }\n\n if (options.after) {\n const index = properties.findIndex(prop => prop.id === options.after);\n if (index > -1) {\n return [\n ...properties.slice(0, index + 1),\n property,\n ...properties.slice(index + 1)\n ];\n }\n }\n\n if (options.before) {\n const index = properties.findIndex(prop => prop.id === options.before);\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n property,\n ...properties.slice(index)\n ];\n }\n }\n\n return [...properties, property];\n });\n },\n removeProperty(id) {\n setProperties(properties => {\n return removeByParent(\n id,\n properties.filter(prop => prop.id !== id)\n );\n });\n },\n replaceProperty(id, property) {\n setProperties(properties => {\n const toReplace = properties.findIndex(prop => prop.id === id);\n\n if (toReplace > -1) {\n // Replace the property and remove all remaining child properties.\n return removeByParent(id, [\n ...properties.slice(0, toReplace),\n property,\n ...properties.slice(toReplace + 1)\n ]);\n }\n return properties;\n });\n }\n }),\n [properties]\n );\n\n return <PropertiesContext.Provider value={context}>{children}</PropertiesContext.Provider>;\n};\n\nexport function useProperties() {\n const properties = useContext(PropertiesContext);\n if (!properties) {\n throw Error(\"Properties context provider is missing!\");\n }\n\n return properties;\n}\n\ninterface PropertyProps {\n id?: string;\n name: string;\n value?: unknown;\n array?: boolean;\n after?: string;\n before?: string;\n replace?: string;\n remove?: boolean;\n parent?: string;\n root?: boolean;\n}\n\nconst PropertyContext = createContext<Property | undefined>(undefined);\n\nexport function useParentProperty() {\n return useContext(PropertyContext);\n}\n\ninterface AncestorMatch {\n [key: string]: string | boolean | number | null | undefined;\n}\n\nexport function useAncestor(params: AncestorMatch) {\n const property = useParentProperty();\n const { properties } = useProperties();\n\n const matchOrGetAncestor = (\n property: Property,\n params: AncestorMatch\n ): Property | undefined => {\n const matchedProps = properties\n .filter(prop => prop.parent === property.id)\n .filter(prop => prop.name in params && prop.value === params[prop.name]);\n\n if (matchedProps.length === Object.keys(params).length) {\n return property;\n }\n\n const newParent = property.parent\n ? properties.find(prop => prop.id === property.parent)\n : undefined;\n\n return newParent ? matchOrGetAncestor(newParent, params) : undefined;\n };\n\n return property ? matchOrGetAncestor(property, params) : undefined;\n}\n\nexport const Property: React.FC<PropertyProps> = ({\n id,\n name,\n value,\n children,\n after = undefined,\n before = undefined,\n replace = undefined,\n remove = false,\n array = false,\n root = false,\n parent = undefined\n}) => {\n const uniqueId = useMemo(() => id || getUniqueId(), []);\n const parentProperty = useParentProperty();\n const properties = useProperties();\n\n if (!properties) {\n throw Error(\"<Properties> provider is missing higher in the hierarchy!\");\n }\n\n const { addProperty, removeProperty, replaceProperty } = properties;\n const parentId = parent ? parent : root ? \"\" : parentProperty?.id || \"\";\n const property = { id: uniqueId, name, value, parent: parentId, array };\n\n useEffect(() => {\n if (remove) {\n removeProperty(uniqueId);\n return;\n }\n\n if (replace) {\n replaceProperty(replace, property);\n return;\n }\n\n addProperty(property, { after, before });\n\n return () => {\n removeProperty(uniqueId);\n };\n }, []);\n\n if (children) {\n return <PropertyContext.Provider value={property}>{children}</PropertyContext.Provider>;\n }\n\n return null;\n};\n"],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _utils = require("./utils");
|
|
8
|
-
|
|
9
7
|
Object.keys(_utils).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _utils[key]) return;
|
|
@@ -16,9 +14,7 @@ Object.keys(_utils).forEach(function (key) {
|
|
|
16
14
|
}
|
|
17
15
|
});
|
|
18
16
|
});
|
|
19
|
-
|
|
20
17
|
var _Properties = require("./Properties");
|
|
21
|
-
|
|
22
18
|
Object.keys(_Properties).forEach(function (key) {
|
|
23
19
|
if (key === "default" || key === "__esModule") return;
|
|
24
20
|
if (key in exports && exports[key] === _Properties[key]) return;
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./utils\";\nexport * from \"./Properties\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./utils\";\nexport * from \"./Properties\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/react-properties",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.496cf268ac",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,16 +10,17 @@
|
|
|
10
10
|
"author": "Webiny Ltd",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@babel/runtime": "7.
|
|
13
|
+
"@babel/runtime": "7.20.13",
|
|
14
14
|
"@types/react": "17.0.39",
|
|
15
15
|
"nanoid": "3.3.4",
|
|
16
16
|
"react": "17.0.2"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@testing-library/react": "^12.1.5",
|
|
20
|
-
"@webiny/cli": "^0.0.0-unstable.
|
|
21
|
-
"@webiny/project-utils": "^0.0.0-unstable.
|
|
22
|
-
"@webiny/react-composition": "^0.0.0-unstable.
|
|
20
|
+
"@webiny/cli": "^0.0.0-unstable.496cf268ac",
|
|
21
|
+
"@webiny/project-utils": "^0.0.0-unstable.496cf268ac",
|
|
22
|
+
"@webiny/react-composition": "^0.0.0-unstable.496cf268ac",
|
|
23
|
+
"prettier": "^2.3.2"
|
|
23
24
|
},
|
|
24
25
|
"publishConfig": {
|
|
25
26
|
"access": "public",
|
|
@@ -29,5 +30,5 @@
|
|
|
29
30
|
"build": "yarn webiny run build",
|
|
30
31
|
"watch": "yarn webiny run watch"
|
|
31
32
|
},
|
|
32
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "496cf268acd5b092c860b62d75c7d765c9472043"
|
|
33
34
|
}
|
package/utils.js
CHANGED
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.getUniqueId = getUniqueId;
|
|
9
8
|
exports.toObject = toObject;
|
|
10
|
-
|
|
11
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
-
|
|
13
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
|
|
15
11
|
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
16
|
-
|
|
17
12
|
var _nanoid = require("nanoid");
|
|
18
|
-
|
|
19
|
-
var nanoid = (0, _nanoid.customAlphabet)("1234567890abcdef", 6);
|
|
20
|
-
|
|
13
|
+
var nanoid = (0, _nanoid.customAlphabet)("1234567890abcdef");
|
|
21
14
|
function buildRoots(roots, properties) {
|
|
22
15
|
var obj = roots.reduce(function (acc, item) {
|
|
23
16
|
var isArray = item.array === true || roots.filter(function (r) {
|
|
@@ -27,12 +20,10 @@ function buildRoots(roots, properties) {
|
|
|
27
20
|
}, {});
|
|
28
21
|
roots.forEach(function (root) {
|
|
29
22
|
var isArray = root.array === true || Array.isArray(obj[root.name]);
|
|
30
|
-
|
|
31
23
|
if (root.value !== undefined) {
|
|
32
24
|
obj[root.name] = isArray ? [].concat((0, _toConsumableArray2.default)(obj[root.name]), [root.value]) : root.value;
|
|
33
25
|
return;
|
|
34
26
|
}
|
|
35
|
-
|
|
36
27
|
var nextRoots = properties.filter(function (p) {
|
|
37
28
|
return p.parent === root.id;
|
|
38
29
|
});
|
|
@@ -41,14 +32,13 @@ function buildRoots(roots, properties) {
|
|
|
41
32
|
});
|
|
42
33
|
return obj;
|
|
43
34
|
}
|
|
44
|
-
|
|
45
35
|
function toObject(properties) {
|
|
46
36
|
var roots = properties.filter(function (prop) {
|
|
47
37
|
return prop.parent === "";
|
|
48
38
|
});
|
|
49
39
|
return buildRoots(roots, properties);
|
|
50
40
|
}
|
|
51
|
-
|
|
52
41
|
function getUniqueId() {
|
|
53
|
-
|
|
42
|
+
var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 12;
|
|
43
|
+
return nanoid(length);
|
|
54
44
|
}
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","customAlphabet","buildRoots","roots","properties","obj","reduce","acc","item","isArray","array","filter","r","name","length","forEach","root","Array","value","undefined","nextRoots","p","parent","id","toObject","prop","getUniqueId"],"sources":["utils.ts"],"sourcesContent":["import { customAlphabet } from \"nanoid\";\nconst nanoid = customAlphabet(\"1234567890abcdef\"
|
|
1
|
+
{"version":3,"names":["nanoid","customAlphabet","buildRoots","roots","properties","obj","reduce","acc","item","isArray","array","filter","r","name","length","forEach","root","Array","value","undefined","nextRoots","p","parent","id","toObject","prop","getUniqueId"],"sources":["utils.ts"],"sourcesContent":["import { customAlphabet } from \"nanoid\";\nconst nanoid = customAlphabet(\"1234567890abcdef\");\nimport { Property } from \"./Properties\";\n\nfunction buildRoots(roots: Property[], properties: Property[]) {\n const obj: Record<string, unknown> = roots.reduce((acc, item) => {\n const isArray = item.array === true || roots.filter(r => r.name === item.name).length > 1;\n return { ...acc, [item.name]: isArray ? [] : {} };\n }, {});\n\n roots.forEach(root => {\n const isArray = root.array === true || Array.isArray(obj[root.name]);\n if (root.value !== undefined) {\n obj[root.name] = isArray ? [...(obj[root.name] as Array<any>), root.value] : root.value;\n return;\n }\n\n const nextRoots = properties.filter(p => p.parent === root.id);\n const value = buildRoots(nextRoots, properties);\n obj[root.name] = isArray ? [...(obj[root.name] as Property[]), value] : value;\n });\n\n return obj;\n}\n\nexport function toObject<T = unknown>(properties: Property[]): T {\n const roots = properties.filter(prop => prop.parent === \"\");\n return buildRoots(roots, properties) as T;\n}\n\nexport function getUniqueId(length = 12) {\n return nanoid(length);\n}\n"],"mappings":";;;;;;;;;;;AAAA;AACA,IAAMA,MAAM,GAAG,IAAAC,sBAAc,EAAC,kBAAkB,CAAC;AAGjD,SAASC,UAAU,CAACC,KAAiB,EAAEC,UAAsB,EAAE;EAC3D,IAAMC,GAA4B,GAAGF,KAAK,CAACG,MAAM,CAAC,UAACC,GAAG,EAAEC,IAAI,EAAK;IAC7D,IAAMC,OAAO,GAAGD,IAAI,CAACE,KAAK,KAAK,IAAI,IAAIP,KAAK,CAACQ,MAAM,CAAC,UAAAC,CAAC;MAAA,OAAIA,CAAC,CAACC,IAAI,KAAKL,IAAI,CAACK,IAAI;IAAA,EAAC,CAACC,MAAM,GAAG,CAAC;IACzF,mEAAYP,GAAG,yCAAGC,IAAI,CAACK,IAAI,EAAGJ,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;EACnD,CAAC,EAAE,CAAC,CAAC,CAAC;EAENN,KAAK,CAACY,OAAO,CAAC,UAAAC,IAAI,EAAI;IAClB,IAAMP,OAAO,GAAGO,IAAI,CAACN,KAAK,KAAK,IAAI,IAAIO,KAAK,CAACR,OAAO,CAACJ,GAAG,CAACW,IAAI,CAACH,IAAI,CAAC,CAAC;IACpE,IAAIG,IAAI,CAACE,KAAK,KAAKC,SAAS,EAAE;MAC1Bd,GAAG,CAACW,IAAI,CAACH,IAAI,CAAC,GAAGJ,OAAO,8CAAQJ,GAAG,CAACW,IAAI,CAACH,IAAI,CAAC,IAAiBG,IAAI,CAACE,KAAK,KAAIF,IAAI,CAACE,KAAK;MACvF;IACJ;IAEA,IAAME,SAAS,GAAGhB,UAAU,CAACO,MAAM,CAAC,UAAAU,CAAC;MAAA,OAAIA,CAAC,CAACC,MAAM,KAAKN,IAAI,CAACO,EAAE;IAAA,EAAC;IAC9D,IAAML,KAAK,GAAGhB,UAAU,CAACkB,SAAS,EAAEhB,UAAU,CAAC;IAC/CC,GAAG,CAACW,IAAI,CAACH,IAAI,CAAC,GAAGJ,OAAO,8CAAQJ,GAAG,CAACW,IAAI,CAACH,IAAI,CAAC,IAAiBK,KAAK,KAAIA,KAAK;EACjF,CAAC,CAAC;EAEF,OAAOb,GAAG;AACd;AAEO,SAASmB,QAAQ,CAAcpB,UAAsB,EAAK;EAC7D,IAAMD,KAAK,GAAGC,UAAU,CAACO,MAAM,CAAC,UAAAc,IAAI;IAAA,OAAIA,IAAI,CAACH,MAAM,KAAK,EAAE;EAAA,EAAC;EAC3D,OAAOpB,UAAU,CAACC,KAAK,EAAEC,UAAU,CAAC;AACxC;AAEO,SAASsB,WAAW,GAAc;EAAA,IAAbZ,MAAM,uEAAG,EAAE;EACnC,OAAOd,MAAM,CAACc,MAAM,CAAC;AACzB"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { Property } from "../../../src/index";
|
|
3
|
-
interface AddWidgetProps {
|
|
4
|
-
name: string;
|
|
5
|
-
type: string;
|
|
6
|
-
}
|
|
7
|
-
declare const AddWidget: <T extends Record<string, unknown>>(props: T & AddWidgetProps) => JSX.Element;
|
|
8
|
-
export interface CardWidget extends Record<string, unknown> {
|
|
9
|
-
title: string;
|
|
10
|
-
description: string;
|
|
11
|
-
button: React.ReactElement;
|
|
12
|
-
}
|
|
13
|
-
interface DashboardConfig extends React.FC<unknown> {
|
|
14
|
-
AddWidget: typeof AddWidget;
|
|
15
|
-
DashboardRenderer: typeof DashboardRenderer;
|
|
16
|
-
}
|
|
17
|
-
export declare const DashboardConfig: DashboardConfig;
|
|
18
|
-
declare const DashboardRenderer: import("@webiny/react-composition").ComposableFC<unknown>;
|
|
19
|
-
interface DashboardViewProps {
|
|
20
|
-
onProperties(properties: Property[]): void;
|
|
21
|
-
}
|
|
22
|
-
export declare const App: React.FC<DashboardViewProps>;
|
|
23
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface SettingsGroupProps {
|
|
3
|
-
name: string;
|
|
4
|
-
title?: string;
|
|
5
|
-
icon?: string;
|
|
6
|
-
remove?: boolean;
|
|
7
|
-
replace?: string;
|
|
8
|
-
}
|
|
9
|
-
interface FormFieldProps extends Record<string, unknown> {
|
|
10
|
-
name: string;
|
|
11
|
-
component?: string;
|
|
12
|
-
after?: string;
|
|
13
|
-
remove?: boolean;
|
|
14
|
-
replace?: string;
|
|
15
|
-
}
|
|
16
|
-
declare const PageSettingsView: React.FC<import("./createConfigurableView").ViewProps>;
|
|
17
|
-
declare const PageSettingsConfig: React.FC<{}> & {
|
|
18
|
-
FormField: React.FC<FormFieldProps>;
|
|
19
|
-
SettingsGroup: React.FC<SettingsGroupProps>;
|
|
20
|
-
};
|
|
21
|
-
export { PageSettingsView, PageSettingsConfig };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { Property } from "../../../src/index";
|
|
3
|
-
export interface ViewProps {
|
|
4
|
-
onProperties?(properties: Property[]): void;
|
|
5
|
-
}
|
|
6
|
-
export declare function createConfigurableView(name: string): {
|
|
7
|
-
View: React.FC<ViewProps>;
|
|
8
|
-
Config: React.FC<{}>;
|
|
9
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/__tests__/setupEnv.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare const randomFillSync: any;
|
package/__tests__/utils.d.ts
DELETED
|
File without changes
|