@semcore/core 1.11.13 → 1.12.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/CHANGELOG.md +6 -0
- package/lib/cjs/enhancement/staticChildren.js +19 -6
- package/lib/cjs/enhancement/staticChildren.js.map +1 -1
- package/lib/cjs/index.js +83 -36
- package/lib/cjs/index.js.map +1 -1
- package/lib/es6/enhancement/staticChildren.js +16 -7
- package/lib/es6/enhancement/staticChildren.js.map +1 -1
- package/lib/es6/index.js +76 -33
- package/lib/es6/index.js.map +1 -1
- package/lib/types/enhancement/staticChildren.d.ts +4 -1
- package/lib/types/index.d.ts +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [1.12.0] - 2022-10-04
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Changed approach to children index calculation with React parallel rendering.
|
|
10
|
+
|
|
5
11
|
## [1.11.13] - 2022-10-04
|
|
6
12
|
|
|
7
13
|
### Changed
|
|
@@ -5,7 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = exports.STATIC_COMPONENT = void 0;
|
|
8
|
+
exports["default"] = exports.STATIC_COMPONENT = exports.ROOT_COMPONENT = void 0;
|
|
9
|
+
exports.getterMethodName = getterMethodName;
|
|
10
|
+
exports.getterMethodNameByDisplayName = getterMethodNameByDisplayName;
|
|
9
11
|
|
|
10
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
13
|
|
|
@@ -36,7 +38,8 @@ function getterMethodName(name) {
|
|
|
36
38
|
return "get".concat(name, "Props");
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
function getterMethodNameByDisplayName(
|
|
41
|
+
function getterMethodNameByDisplayName() {
|
|
42
|
+
var displayName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
40
43
|
var displayNames = displayName.split('.');
|
|
41
44
|
var name = displayNames.slice(-(displayNames.length - 1)).join('');
|
|
42
45
|
return getterMethodName(name);
|
|
@@ -60,6 +63,8 @@ function flatGetterMethodNames(childComponents, parentName) {
|
|
|
60
63
|
|
|
61
64
|
var STATIC_COMPONENT = Symbol('STATIC_COMPONENT');
|
|
62
65
|
exports.STATIC_COMPONENT = STATIC_COMPONENT;
|
|
66
|
+
var ROOT_COMPONENT = Symbol('ROOT_COMPONENT');
|
|
67
|
+
exports.ROOT_COMPONENT = ROOT_COMPONENT;
|
|
63
68
|
var SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');
|
|
64
69
|
|
|
65
70
|
function Enhancement(childComponents, createComponent, options) {
|
|
@@ -86,15 +91,15 @@ function Enhancement(childComponents, createComponent, options) {
|
|
|
86
91
|
acc[name] = function () {
|
|
87
92
|
var childrenProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
88
93
|
var getterProps = getterMethod.call(_this, childrenProps, acc[name].index);
|
|
89
|
-
acc[name].index++;
|
|
90
94
|
return (0, _assignProps["default"])(childrenProps, getterProps);
|
|
91
95
|
};
|
|
92
96
|
|
|
93
|
-
acc[name].index =
|
|
97
|
+
acc[name].index = -1;
|
|
98
|
+
acc[name].cache = new Set();
|
|
94
99
|
return acc;
|
|
95
100
|
}, {}));
|
|
96
101
|
},
|
|
97
|
-
"static": function _static(WrapperComponent) {
|
|
102
|
+
"static": function _static(WrapperComponent, Component) {
|
|
98
103
|
if (Object.keys(childComponents).length && !WrapperComponent.displayName) {
|
|
99
104
|
throw new Error('"displayName" is not defined');
|
|
100
105
|
}
|
|
@@ -117,6 +122,7 @@ function Enhancement(childComponents, createComponent, options) {
|
|
|
117
122
|
|
|
118
123
|
value.displayName = WrapperComponent.displayName + '.' + name;
|
|
119
124
|
value[STATIC_COMPONENT] = true;
|
|
125
|
+
value[ROOT_COMPONENT] = Component[ROOT_COMPONENT] || Component;
|
|
120
126
|
acc[name] = createComponent(value, childComponents, options); // @ts-ignore
|
|
121
127
|
|
|
122
128
|
value.displayName = prevDisplayName;
|
|
@@ -136,6 +142,11 @@ function Enhancement(childComponents, createComponent, options) {
|
|
|
136
142
|
var getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];
|
|
137
143
|
|
|
138
144
|
if (getterMethod) {
|
|
145
|
+
if (!getterMethod.cache.has(this)) {
|
|
146
|
+
getterMethod.cache.add(this);
|
|
147
|
+
getterMethod.index++;
|
|
148
|
+
}
|
|
149
|
+
|
|
139
150
|
return getterMethod(props);
|
|
140
151
|
}
|
|
141
152
|
|
|
@@ -146,7 +157,9 @@ function Enhancement(childComponents, createComponent, options) {
|
|
|
146
157
|
|
|
147
158
|
getterMethodNames.forEach(function (name) {
|
|
148
159
|
if (_this2[name] === undefined) return;
|
|
149
|
-
_this2[name].index =
|
|
160
|
+
_this2[name].index = -1;
|
|
161
|
+
|
|
162
|
+
_this2[name].cache.clear();
|
|
150
163
|
});
|
|
151
164
|
return _render;
|
|
152
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticChildren.js","names":["assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","getterMethodName","name","getterMethodNameByDisplayName","displayName","displayNames","split","slice","length","join","flatGetterMethodNames","childComponents","parentName","entries","acc","value","Array","isArray","push","STATIC_COMPONENT","Symbol","SELF_GETTER_METHOD","Enhancement","createComponent","options","getterMethodNames","condition","Component","Boolean","init","props","WrapperComponent","getterMethods","pick","selfGetterMethod","logger","warn","getterMethod","childrenProps","getterProps","call","index","assignProps","Error","prevStaticComponent","prevDisplayName","context","wrapperProps","useContext","render","forEach","undefined"],"sources":["../../../src/enhancement/staticChildren.tsx"],"sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n// @ts-ignore\nimport logger from '@semcore/utils/lib/logger';\n\nfunction assign(target, source) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nfunction getterMethodName(name) {\n return `get${name}Props`;\n}\n\nfunction getterMethodNameByDisplayName(displayName) {\n const displayNames = displayName.split('.');\n const name = displayNames.slice(-(displayNames.length - 1)).join('');\n return getterMethodName(name);\n}\n\nfunction flatGetterMethodNames(childComponents, parentName?: string) {\n return Object.entries(childComponents).reduce<string[]>((acc, [name, value]) => {\n if (Array.isArray(value)) {\n acc = [...acc, ...flatGetterMethodNames(value[1], name)];\n }\n name = parentName ? `${parentName}${name}` : name;\n acc.push(getterMethodName(name));\n return acc;\n }, []);\n}\n\nexport const STATIC_COMPONENT = Symbol('STATIC_COMPONENT');\nconst SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');\n\nfunction Enhancement(childComponents, createComponent, options) {\n const getterMethodNames = flatGetterMethodNames(childComponents);\n return {\n condition: function (Component) {\n return Boolean(Component[STATIC_COMPONENT] || Object.keys(childComponents).length);\n },\n init: function (props, WrapperComponent) {\n const getterMethods = pick(this, getterMethodNames);\n this[SELF_GETTER_METHOD] = () => {\n const selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n logger.warn(\n true,\n `Getter \\`${selfGetterMethod}\\` can't be fired as it is a getter of static component`,\n props['data-ui-name'] || WrapperComponent.displayName,\n );\n };\n assign(\n this,\n getterMethodNames.reduce((acc, name) => {\n const getterMethod = getterMethods[name];\n if (!getterMethod) return acc;\n acc[name] = (childrenProps = {}) => {\n const getterProps = getterMethod.call(this, childrenProps, acc[name].index);\n acc[name].index++;\n return assignProps(childrenProps, getterProps);\n };\n acc[name].index = 0;\n return acc;\n }, {}),\n );\n },\n static: function (WrapperComponent) {\n if (Object.keys(childComponents).length && !WrapperComponent.displayName) {\n throw new Error('\"displayName\" is not defined');\n }\n return Object.entries(childComponents).reduce((acc, [name, value]) => {\n let childComponents = {};\n\n if (Array.isArray(value)) {\n childComponents = value[1];\n value = value[0];\n }\n\n const prevStaticComponent = value[STATIC_COMPONENT];\n // @ts-ignore\n const prevDisplayName = value.displayName;\n // @ts-ignore\n value.displayName = WrapperComponent.displayName + '.' + name;\n value[STATIC_COMPONENT] = true;\n acc[name] = createComponent(value, childComponents, options);\n // @ts-ignore\n value.displayName = prevDisplayName;\n value[STATIC_COMPONENT] = prevStaticComponent;\n return acc;\n }, {});\n },\n context: function (context /*, WrapperComponent*/) {\n // const getterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n\n return {\n ...context,\n // [getterMethod]: this[SELF_GETTER_METHOD],\n ...pick(this, getterMethodNames),\n };\n },\n wrapperProps: function (props, WrapperComponent) {\n if (!WrapperComponent[STATIC_COMPONENT]) return props;\n\n const context = useContext(options.context);\n const getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];\n if (getterMethod) {\n return getterMethod(props);\n }\n return props;\n },\n render: function (render) {\n getterMethodNames.forEach((name) => {\n if (this[name] === undefined) return;\n this[name].index = 0;\n });\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"staticChildren.js","names":["assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","getterMethodName","name","getterMethodNameByDisplayName","displayName","displayNames","split","slice","length","join","flatGetterMethodNames","childComponents","parentName","entries","acc","value","Array","isArray","push","STATIC_COMPONENT","Symbol","ROOT_COMPONENT","SELF_GETTER_METHOD","Enhancement","createComponent","options","getterMethodNames","condition","Component","Boolean","init","props","WrapperComponent","getterMethods","pick","selfGetterMethod","logger","warn","getterMethod","childrenProps","getterProps","call","index","assignProps","cache","Set","Error","prevStaticComponent","prevDisplayName","context","wrapperProps","useContext","has","add","render","forEach","undefined","clear"],"sources":["../../../src/enhancement/staticChildren.tsx"],"sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n// @ts-ignore\nimport logger from '@semcore/utils/lib/logger';\n\nfunction assign(target, source) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nexport function getterMethodName(name) {\n return `get${name}Props`;\n}\n\nexport function getterMethodNameByDisplayName(displayName = '') {\n const displayNames = displayName.split('.');\n const name = displayNames.slice(-(displayNames.length - 1)).join('');\n return getterMethodName(name);\n}\n\nfunction flatGetterMethodNames(childComponents, parentName?: string) {\n return Object.entries(childComponents).reduce<string[]>((acc, [name, value]) => {\n if (Array.isArray(value)) {\n acc = [...acc, ...flatGetterMethodNames(value[1], name)];\n }\n name = parentName ? `${parentName}${name}` : name;\n acc.push(getterMethodName(name));\n return acc;\n }, []);\n}\n\nexport const STATIC_COMPONENT = Symbol('STATIC_COMPONENT');\nexport const ROOT_COMPONENT = Symbol('ROOT_COMPONENT');\nconst SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');\n\nfunction Enhancement(childComponents, createComponent, options) {\n const getterMethodNames = flatGetterMethodNames(childComponents);\n return {\n condition: function (Component) {\n return Boolean(Component[STATIC_COMPONENT] || Object.keys(childComponents).length);\n },\n init: function (props, WrapperComponent) {\n const getterMethods = pick(this, getterMethodNames);\n this[SELF_GETTER_METHOD] = () => {\n const selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n logger.warn(\n true,\n `Getter \\`${selfGetterMethod}\\` can't be fired as it is a getter of static component`,\n props['data-ui-name'] || WrapperComponent.displayName,\n );\n };\n assign(\n this,\n getterMethodNames.reduce((acc, name) => {\n const getterMethod = getterMethods[name];\n if (!getterMethod) return acc;\n acc[name] = (childrenProps = {}) => {\n const getterProps = getterMethod.call(this, childrenProps, acc[name].index);\n return assignProps(childrenProps, getterProps);\n };\n acc[name].index = -1;\n acc[name].cache = new Set();\n return acc;\n }, {}),\n );\n },\n static: function (WrapperComponent, Component) {\n if (Object.keys(childComponents).length && !WrapperComponent.displayName) {\n throw new Error('\"displayName\" is not defined');\n }\n return Object.entries(childComponents).reduce((acc, [name, value]) => {\n let childComponents = {};\n\n if (Array.isArray(value)) {\n childComponents = value[1];\n value = value[0];\n }\n\n const prevStaticComponent = value[STATIC_COMPONENT];\n // @ts-ignore\n const prevDisplayName = value.displayName;\n // @ts-ignore\n value.displayName = WrapperComponent.displayName + '.' + name;\n value[STATIC_COMPONENT] = true;\n value[ROOT_COMPONENT] = Component[ROOT_COMPONENT] || Component;\n acc[name] = createComponent(value, childComponents, options);\n // @ts-ignore\n value.displayName = prevDisplayName;\n value[STATIC_COMPONENT] = prevStaticComponent;\n return acc;\n }, {});\n },\n context: function (context /*, WrapperComponent*/) {\n // const getterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n return {\n ...context,\n // [getterMethod]: this[SELF_GETTER_METHOD],\n ...pick(this, getterMethodNames),\n };\n },\n wrapperProps: function (props, WrapperComponent) {\n if (!WrapperComponent[STATIC_COMPONENT]) return props;\n const context = useContext(options.context);\n const getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];\n if (getterMethod) {\n if (!getterMethod.cache.has(this)) {\n getterMethod.cache.add(this);\n getterMethod.index++;\n }\n return getterMethod(props);\n }\n return props;\n },\n render: function (render) {\n getterMethodNames.forEach((name) => {\n if (this[name] === undefined) return;\n this[name].index = -1;\n this[name].cache.clear();\n });\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -17,6 +17,7 @@ var _exportNames = {
|
|
|
17
17
|
register: true,
|
|
18
18
|
CHILDREN_COMPONENT: true,
|
|
19
19
|
STATIC_COMPONENT: true,
|
|
20
|
+
ROOT_COMPONENT: true,
|
|
20
21
|
INHERITED_NAME: true
|
|
21
22
|
};
|
|
22
23
|
Object.defineProperty(exports, "CHILDREN_COMPONENT", {
|
|
@@ -32,6 +33,12 @@ Object.defineProperty(exports, "INHERITED_NAME", {
|
|
|
32
33
|
return _inheritedName.INHERITED_NAME;
|
|
33
34
|
}
|
|
34
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "ROOT_COMPONENT", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _staticChildren.ROOT_COMPONENT;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
35
42
|
Object.defineProperty(exports, "STATIC_COMPONENT", {
|
|
36
43
|
enumerable: true,
|
|
37
44
|
get: function get() {
|
|
@@ -50,22 +57,22 @@ Object.defineProperty(exports, "register", {
|
|
|
50
57
|
|
|
51
58
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
52
59
|
|
|
53
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
54
|
-
|
|
55
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
56
|
-
|
|
57
60
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
58
61
|
|
|
59
62
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
60
63
|
|
|
64
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
65
|
+
|
|
66
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
67
|
+
|
|
68
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
69
|
+
|
|
61
70
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
62
71
|
|
|
63
72
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
64
73
|
|
|
65
74
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
66
75
|
|
|
67
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
68
|
-
|
|
69
76
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
70
77
|
|
|
71
78
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
@@ -74,7 +81,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
74
81
|
|
|
75
82
|
var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
|
|
76
83
|
|
|
77
|
-
var
|
|
84
|
+
var _ref4 = require("@semcore/utils/lib/ref");
|
|
78
85
|
|
|
79
86
|
var _useEnhancedEffect = _interopRequireDefault(require("@semcore/utils/lib/use/useEnhancedEffect"));
|
|
80
87
|
|
|
@@ -144,7 +151,8 @@ Object.keys(_styled).forEach(function (key) {
|
|
|
144
151
|
});
|
|
145
152
|
});
|
|
146
153
|
var _excluded = ["forwardRef"],
|
|
147
|
-
_excluded2 = ["
|
|
154
|
+
_excluded2 = ["forwardRef", "__WRAPPER_PROPS_BIND__"],
|
|
155
|
+
_excluded3 = ["ref"];
|
|
148
156
|
|
|
149
157
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
150
158
|
|
|
@@ -194,25 +202,64 @@ function createGetField(enhancements, Component, isFunction) {
|
|
|
194
202
|
}
|
|
195
203
|
|
|
196
204
|
function createForwardWrapper(Component, wrapperProps, statics, isFunction) {
|
|
197
|
-
|
|
198
|
-
var
|
|
205
|
+
var RootComponent = Component[_staticChildren.ROOT_COMPONENT];
|
|
206
|
+
var getterMethodName = (0, _staticChildren.getterMethodNameByDisplayName)(Component === null || Component === void 0 ? void 0 : Component.displayName);
|
|
207
|
+
var getterMethod = RootComponent !== null && RootComponent !== void 0 && RootComponent.prototype ? RootComponent.prototype[getterMethodName] : undefined;
|
|
208
|
+
var useGetterIndex = (getterMethod === null || getterMethod === void 0 ? void 0 : getterMethod.length) >= 2;
|
|
209
|
+
|
|
210
|
+
function WrapperForwardRefWithBind(_ref, ref) {
|
|
199
211
|
var _ref$forwardRef = _ref.forwardRef,
|
|
200
212
|
forwardRef = _ref$forwardRef === void 0 ? null : _ref$forwardRef,
|
|
201
213
|
other = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
214
|
+
return /*#__PURE__*/_react["default"].createElement(BindingWrapper, (0, _extends2["default"])({}, other, {
|
|
215
|
+
forwardRef: (0, _ref4.useForkRef)(ref, forwardRef)
|
|
216
|
+
}));
|
|
217
|
+
}
|
|
202
218
|
|
|
203
|
-
|
|
204
|
-
var
|
|
219
|
+
function WrapperForwardRef(_ref2, ref) {
|
|
220
|
+
var _ref2$forwardRef = _ref2.forwardRef,
|
|
221
|
+
forwardRef = _ref2$forwardRef === void 0 ? null : _ref2$forwardRef,
|
|
222
|
+
__WRAPPER_PROPS_BIND__ = _ref2.__WRAPPER_PROPS_BIND__,
|
|
223
|
+
other = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
|
|
224
|
+
|
|
225
|
+
var _reduce = (__WRAPPER_PROPS_BIND__ || wrapperProps).reduce(function (acc, enhancement) {
|
|
205
226
|
return enhancement(acc, WrapperComponent, isFunction);
|
|
206
227
|
}, other),
|
|
207
|
-
|
|
208
|
-
enhancementRef =
|
|
209
|
-
props = (0, _objectWithoutProperties2["default"])(
|
|
210
|
-
|
|
228
|
+
_reduce$ref = _reduce.ref,
|
|
229
|
+
enhancementRef = _reduce$ref === void 0 ? null : _reduce$ref,
|
|
230
|
+
props = (0, _objectWithoutProperties2["default"])(_reduce, _excluded3);
|
|
211
231
|
|
|
212
232
|
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, {
|
|
213
|
-
forwardRef: (0,
|
|
233
|
+
forwardRef: (0, _ref4.useForkRef)(enhancementRef, ref, forwardRef)
|
|
214
234
|
}));
|
|
215
|
-
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
var BindingWrapper = /*#__PURE__*/function (_React$Component) {
|
|
238
|
+
(0, _inherits2["default"])(BindingWrapper, _React$Component);
|
|
239
|
+
|
|
240
|
+
var _super = _createSuper(BindingWrapper);
|
|
241
|
+
|
|
242
|
+
function BindingWrapper() {
|
|
243
|
+
(0, _classCallCheck2["default"])(this, BindingWrapper);
|
|
244
|
+
return _super.apply(this, arguments);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
(0, _createClass2["default"])(BindingWrapper, [{
|
|
248
|
+
key: "render",
|
|
249
|
+
value: function render() {
|
|
250
|
+
var _this = this;
|
|
251
|
+
|
|
252
|
+
return /*#__PURE__*/_react["default"].createElement(WrapperForwardRef, (0, _extends2["default"])({}, this.props, {
|
|
253
|
+
__WRAPPER_PROPS_BIND__: wrapperProps.map(function (fn) {
|
|
254
|
+
return fn.bind(_this);
|
|
255
|
+
})
|
|
256
|
+
}));
|
|
257
|
+
}
|
|
258
|
+
}]);
|
|
259
|
+
return BindingWrapper;
|
|
260
|
+
}(_react["default"].Component);
|
|
261
|
+
|
|
262
|
+
var WrapperComponent = /*#__PURE__*/_react["default"].forwardRef(useGetterIndex ? WrapperForwardRefWithBind : WrapperForwardRef);
|
|
216
263
|
|
|
217
264
|
(0, _hoistNonReactStatics["default"])(WrapperComponent, Component);
|
|
218
265
|
WrapperComponent.displayName = Component.displayName; // TODO: defaultProps is only empty
|
|
@@ -220,7 +267,7 @@ function createForwardWrapper(Component, wrapperProps, statics, isFunction) {
|
|
|
220
267
|
WrapperComponent.defaultProps = Component.defaultProps; // STATIC
|
|
221
268
|
|
|
222
269
|
statics.forEach(function (enhancement) {
|
|
223
|
-
return Object.assign(WrapperComponent, enhancement(WrapperComponent, isFunction));
|
|
270
|
+
return Object.assign(WrapperComponent, enhancement(WrapperComponent, Component, isFunction));
|
|
224
271
|
});
|
|
225
272
|
return WrapperComponent;
|
|
226
273
|
}
|
|
@@ -237,28 +284,28 @@ function wrapClass(OriginComponent, enhancements, Context) {
|
|
|
237
284
|
var Component = /*#__PURE__*/function (_OriginComponent2) {
|
|
238
285
|
(0, _inherits2["default"])(Component, _OriginComponent2);
|
|
239
286
|
|
|
240
|
-
var
|
|
287
|
+
var _super2 = _createSuper(Component);
|
|
241
288
|
|
|
242
289
|
function Component(props, context) {
|
|
243
|
-
var
|
|
290
|
+
var _this2;
|
|
244
291
|
|
|
245
292
|
(0, _classCallCheck2["default"])(this, Component);
|
|
246
|
-
|
|
293
|
+
_this2 = _super2.call(this, props, context); // INITS
|
|
247
294
|
|
|
248
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(
|
|
249
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(
|
|
250
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(
|
|
295
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), CORE_AS_PROPS, null);
|
|
296
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), CORE_INSTANCE, WrapperComponent);
|
|
297
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), CORE_INIT, false);
|
|
251
298
|
inits.forEach(function (enhancement) {
|
|
252
|
-
return enhancement.call((0, _assertThisInitialized2["default"])(
|
|
299
|
+
return enhancement.call((0, _assertThisInitialized2["default"])(_this2), props, WrapperComponent, false);
|
|
253
300
|
});
|
|
254
|
-
|
|
255
|
-
return
|
|
301
|
+
_this2[CORE_INIT] = true;
|
|
302
|
+
return _this2;
|
|
256
303
|
}
|
|
257
304
|
|
|
258
305
|
(0, _createClass2["default"])(Component, [{
|
|
259
306
|
key: "asProps",
|
|
260
307
|
get: function get() {
|
|
261
|
-
var
|
|
308
|
+
var _this3 = this;
|
|
262
309
|
|
|
263
310
|
// TODO if not production
|
|
264
311
|
if (!this[CORE_INIT]) {
|
|
@@ -268,7 +315,7 @@ function wrapClass(OriginComponent, enhancements, Context) {
|
|
|
268
315
|
if (!this[CORE_AS_PROPS]) {
|
|
269
316
|
// PROPS
|
|
270
317
|
this[CORE_AS_PROPS] = props.reduce(function (acc, enhancement) {
|
|
271
|
-
return enhancement.call(
|
|
318
|
+
return enhancement.call(_this3, acc, WrapperComponent, false);
|
|
272
319
|
}, this.props);
|
|
273
320
|
}
|
|
274
321
|
|
|
@@ -277,18 +324,18 @@ function wrapClass(OriginComponent, enhancements, Context) {
|
|
|
277
324
|
}, {
|
|
278
325
|
key: "setContext",
|
|
279
326
|
value: function setContext() {
|
|
280
|
-
var
|
|
327
|
+
var _this4 = this;
|
|
281
328
|
|
|
282
329
|
var contextProps = (0, _get2["default"])((0, _getPrototypeOf2["default"])(Component.prototype), "setContext", this) ? (0, _get2["default"])((0, _getPrototypeOf2["default"])(Component.prototype), "setContext", this).call(this) : {}; // CONTEXT
|
|
283
330
|
|
|
284
331
|
return contexts.reduce(function (acc, enhancement) {
|
|
285
|
-
return enhancement.call(
|
|
332
|
+
return enhancement.call(_this4, acc, WrapperComponent, false);
|
|
286
333
|
}, contextProps);
|
|
287
334
|
}
|
|
288
335
|
}, {
|
|
289
336
|
key: "render",
|
|
290
337
|
value: function render() {
|
|
291
|
-
var
|
|
338
|
+
var _this5 = this;
|
|
292
339
|
|
|
293
340
|
this[CORE_AS_PROPS] = null; // TODO if not production
|
|
294
341
|
|
|
@@ -300,7 +347,7 @@ function wrapClass(OriginComponent, enhancements, Context) {
|
|
|
300
347
|
var ctx = this.setContext(); // RENDER
|
|
301
348
|
|
|
302
349
|
var render = renders.reduce(function (acc, enhancement) {
|
|
303
|
-
return enhancement.call(
|
|
350
|
+
return enhancement.call(_this5, acc, asProps, WrapperComponent, false);
|
|
304
351
|
}, (0, _get2["default"])((0, _getPrototypeOf2["default"])(Component.prototype), "render", this).call(this));
|
|
305
352
|
|
|
306
353
|
if (!WrapperComponent[_staticChildren.STATIC_COMPONENT] && !isEmptyObject(ctx)) {
|
|
@@ -370,8 +417,8 @@ function wrapFunction(OriginComponent, enhancements, Context) {
|
|
|
370
417
|
}
|
|
371
418
|
|
|
372
419
|
function wrapCore(OriginComponent, enhancements, Context) {
|
|
373
|
-
var Component = function Component(
|
|
374
|
-
var Root =
|
|
420
|
+
var Component = function Component(_ref3) {
|
|
421
|
+
var Root = _ref3.Root;
|
|
375
422
|
return /*#__PURE__*/_react["default"].createElement(Root, {
|
|
376
423
|
render: OriginComponent
|
|
377
424
|
});
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["CORE_COMPONENT","Symbol","CORE_INSTANCE","CORE_AS_PROPS","CORE_INIT","CONTEXT_COMPONENT","CREATE_COMPONENT","PARENT_COMPONENTS","isEmptyObject","obj","Object","getOwnPropertyNames","length","getOwnPropertySymbols","getPrototypeOf","prototype","createGetField","enhancements","Component","isFunction","getField","key","filter","enhancement","condition","reduce","acc","item","push","createForwardWrapper","wrapperProps","statics","WrapperComponent","React","forwardRef","ref","other","enhancementRef","props","useForkRef","hoistNonReactStatics","displayName","defaultProps","forEach","assign","wrapClass","OriginComponent","Context","inits","renders","contexts","context","call","Error","contextProps","asProps","ctx","setContext","render","STATIC_COMPONENT","wrapFunction","memo","FunctionMemoComponent","selfRef","useRef","firstRender","useEnhancedEffect","current","wrapCore","Root","createComposeComponent","PureComponent","isPrototypeOf","assignProps","p1","p2","_assignProps","createComponent","childComponents","options","createContext","parent","parents","Array","isArray","wholeFamily","map","f","bindHandlerEnhancement","childrenEnhancement","rootEnhancement","uncontrolledPropsEnhancement","staticChildrenEnhancement","functionDefaultPropsEnhancement","inheritedNameEnhancement","dataNameEnhancement","enhanceEnhancement","styleEnhancement","hoistPropsEnhancement","_OriginComponent","_childComponents","_options","createBaseComponent"],"sources":["../../src/index.tsx"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes, useRef } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport _assignProps from '@semcore/utils/lib/assignProps';\n\nimport { Component, PropsWithRenderFnChildren } from './Component';\nimport register from './register';\n\nimport childrenEnhancement, { CHILDREN_COMPONENT } from './enhancement/Children';\nimport rootEnhancement from './enhancement/Root';\nimport uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';\nimport functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';\nimport staticChildrenEnhancement, { STATIC_COMPONENT } from './enhancement/staticChildren';\nimport inheritedNameEnhancement, { INHERITED_NAME } from './enhancement/inheritedName';\nimport hoistPropsEnhancement from './enhancement/hoistProps';\nimport dataNameEnhancement from './enhancement/dataName';\nimport enhanceEnhancement from './enhancement/enhance';\nimport styleEnhancement from './enhancement/style';\nimport bindHandlerEnhancement from './enhancement/bindHandler';\n\nconst CORE_COMPONENT = Symbol('CORE_COMPONENT');\nconst CORE_INSTANCE = Symbol('CORE_INSTANCE');\nconst CORE_AS_PROPS = Symbol('CORE_AS_PROPS');\nconst CORE_INIT = Symbol('CORE_INIT');\nconst CONTEXT_COMPONENT = Symbol('CONTEXT_COMPONENT');\nconst CREATE_COMPONENT = Symbol('CREATE_COMPONENT');\nconst PARENT_COMPONENTS = Symbol('PARENT_COMPONENTS');\n\nfunction isEmptyObject(obj) {\n return (\n Object.getOwnPropertyNames(obj).length === 0 &&\n Object.getOwnPropertySymbols && // For IE 11\n Object.getOwnPropertySymbols(obj).length === 0 &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n}\n\nfunction createGetField(enhancements, Component, isFunction) {\n return function getField(key) {\n return enhancements\n .filter((enhancement) => {\n if (!enhancement.condition) {\n return true;\n }\n return enhancement.condition(Component, isFunction);\n })\n .reduce((acc, item) => {\n if (item[key]) {\n acc.push(item[key]);\n }\n return acc;\n }, []);\n };\n}\n\nfunction createForwardWrapper(Component, wrapperProps, statics, isFunction) {\n // @ts-ignore\n const WrapperComponent = React.forwardRef(function ({ forwardRef = null, ...other }, ref) {\n // WRAPPER PROPS\n const { ref: enhancementRef = null, ...props } = wrapperProps.reduce(\n (acc, enhancement) => enhancement(acc, WrapperComponent, isFunction),\n other,\n );\n // @ts-ignore\n return <Component {...props} forwardRef={useForkRef(enhancementRef, ref, forwardRef)} />;\n });\n\n hoistNonReactStatics(WrapperComponent, Component);\n\n WrapperComponent.displayName = Component.displayName;\n // TODO: defaultProps is only empty\n WrapperComponent.defaultProps = Component.defaultProps;\n // STATIC\n statics.forEach((enhancement) =>\n Object.assign(WrapperComponent, enhancement(WrapperComponent, isFunction)),\n );\n\n return WrapperComponent;\n}\n\nfunction wrapClass(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, false);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n class Component extends OriginComponent {\n [CORE_AS_PROPS] = null;\n [CORE_INSTANCE] = WrapperComponent;\n [CORE_INIT] = false;\n\n constructor(props, context) {\n super(props, context);\n // INITS\n inits.forEach((enhancement) => enhancement.call(this, props, WrapperComponent, false));\n this[CORE_INIT] = true;\n }\n\n get asProps() {\n // TODO if not production\n if (!this[CORE_INIT]) {\n throw new Error('Can not call asProps in constructor');\n }\n if (!this[CORE_AS_PROPS]) {\n // PROPS\n this[CORE_AS_PROPS] = props.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n this.props,\n );\n }\n return this[CORE_AS_PROPS];\n }\n\n setContext() {\n const contextProps = super.setContext ? super.setContext() : {};\n // CONTEXT\n return contexts.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n contextProps,\n );\n }\n\n render() {\n this[CORE_AS_PROPS] = null;\n // TODO if not production\n if (!super.render) {\n throw new Error('Component `render` method is not defined');\n }\n const asProps = this.asProps;\n const ctx = this.setContext();\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(this, acc, asProps, WrapperComponent, false),\n super.render(),\n );\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n }\n }\n\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, false);\n return WrapperComponent;\n}\n\nfunction wrapFunction(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, true);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n const Component = React.memo(function FunctionMemoComponent(other) {\n const selfRef = useRef({});\n const firstRender = useRef(true);\n useEnhancedEffect(() => {\n firstRender.current = false;\n }, []);\n if (firstRender.current) {\n // INITS\n inits.forEach((enhancement) =>\n enhancement.call(selfRef.current, other, WrapperComponent, true),\n );\n }\n // PROPS\n const asProps = props.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n other,\n );\n // CONTEXT\n const ctx = contexts.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n {},\n );\n\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, asProps, WrapperComponent, true),\n <OriginComponent {...asProps} />,\n );\n\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n });\n Object.assign(Component, OriginComponent);\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, true);\n return WrapperComponent;\n}\n\nfunction wrapCore(OriginComponent, enhancements, Context) {\n const Component = function ({ Root }) {\n return <Root render={OriginComponent} />;\n };\n hoistNonReactStatics(Component, OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = OriginComponent.defaultProps;\n return wrapFunction(Component, enhancements, Context);\n}\n\nfunction createComposeComponent(OriginComponent, Context, enhancements): any {\n if (\n React.PureComponent.isPrototypeOf(OriginComponent) ||\n React.Component.isPrototypeOf(OriginComponent)\n ) {\n if (OriginComponent.prototype instanceof Component) {\n return wrapClass(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must inherit from our component');\n }\n } else if (typeof OriginComponent === 'function') {\n return wrapFunction(OriginComponent, enhancements, Context);\n } else if (OriginComponent[CORE_COMPONENT]) {\n return wrapCore(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must be a React component');\n }\n}\n\nexport type PropsAndRef<T, Ctx, UCProps> = PropsWithRenderFnChildren<T, Ctx, UCProps> &\n RefAttributes<unknown>;\nexport type ForwardRefComponent<T, Ctx, UCProps> = ForwardRefExoticComponent<\n PropsAndRef<T, Ctx, UCProps>\n>;\ntype ComponentOrProps<T, Context, UCProps> = T extends [infer ParentProps, infer ChildProps]\n ? ComponentType<ParentProps, ChildProps, Context, UCProps>\n : ForwardRefComponent<T, Context, UCProps>;\n\nexport type ComponentType<\n ComponentProps,\n ChildComponentProps = {},\n ContextType = {},\n UCProps = {},\n FNType = null,\n> = (FNType extends null\n ? ForwardRefComponent<ComponentProps, ContextType, UCProps>\n : FNType & { displayName: string }) & {\n [K in keyof ChildComponentProps]: ComponentOrProps<ChildComponentProps[K], ContextType, UCProps>;\n} & {\n [CORE_COMPONENT]: boolean;\n [CREATE_COMPONENT]: () => ComponentType<\n ComponentProps,\n ChildComponentProps,\n ContextType,\n UCProps\n >;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ninterface ClassWithUncontrolledProps<Props> {\n uncontrolledProps(): unknown;\n}\n\nfunction assignProps(p1, p2) {\n return _assignProps(p2, p1);\n}\n\nfunction createComponent<ComponentProps, ChildComponentProps = {}, ContextType = {}, FNType = null>(\n OriginComponent,\n childComponents = {},\n options: {\n context?: React.Context<ContextType>;\n parent?: ComponentType<unknown> | ComponentType<unknown>[];\n enhancements?: [any];\n } = {},\n): ComponentType<\n ComponentProps extends Component<infer Props> ? Props : ComponentProps,\n ChildComponentProps,\n ContextType,\n ComponentProps extends ClassWithUncontrolledProps<any>\n ? ReturnType<ComponentProps['uncontrolledProps']>\n : { [key: string]: (arg: unknown) => void },\n FNType\n> {\n const {\n context = React.createContext<ContextType>({} as ContextType),\n parent = [],\n enhancements = [],\n } = options;\n let parents = Array.isArray(parent) ? parent : [parent];\n if (parents.length) {\n const wholeFamily = parents.reduce((acc, parent) => {\n if (parent[PARENT_COMPONENTS]) {\n acc = [...parent[PARENT_COMPONENTS], ...acc];\n }\n return acc;\n }, parents);\n OriginComponent[PARENT_COMPONENTS] = wholeFamily;\n parents = wholeFamily;\n }\n if (OriginComponent[CORE_COMPONENT]) {\n parents.push(OriginComponent);\n }\n const Component = createComposeComponent(OriginComponent, context, [\n // @ts-ignore\n ...enhancements.map((f) => f(context, parents, createComponent, childComponents)),\n bindHandlerEnhancement(),\n childrenEnhancement(context, parents),\n // root must be under the children\n rootEnhancement(),\n uncontrolledPropsEnhancement(),\n staticChildrenEnhancement(childComponents, createComponent, {\n context,\n parent,\n enhancements,\n }),\n // functionDefaultProps must be under the staticChild\n functionDefaultPropsEnhancement(),\n // inheritedName must be under the staticChild\n inheritedNameEnhancement(),\n // dataName must be under the staticChild\n dataNameEnhancement(),\n // enhanceEnhancement must be under the functionDefaultPropsEnhancement\n enhanceEnhancement(),\n styleEnhancement(childComponents, context),\n // must be the last one so any properties can be raised\n hoistPropsEnhancement(childComponents, context),\n ]);\n Component[CONTEXT_COMPONENT] = context;\n Component[CREATE_COMPONENT] = function (\n _OriginComponent = OriginComponent,\n _childComponents = childComponents,\n _options = options,\n ) {\n return createComponent(_OriginComponent, _childComponents, _options);\n };\n Component[CORE_COMPONENT] = true;\n return Component;\n}\n\nfunction createBaseComponent<ComponentProps>(OriginComponent): ComponentType<ComponentProps> {\n let Component = null;\n if (\n !React.PureComponent.isPrototypeOf(OriginComponent) &&\n !React.Component.isPrototypeOf(OriginComponent) &&\n typeof OriginComponent === 'function'\n ) {\n Component = React.forwardRef(OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = {\n 'data-ui-name': OriginComponent.displayName,\n ...OriginComponent.defaultProps,\n };\n Component[CORE_COMPONENT] = true;\n } else {\n throw new Error('createBaseComponent accepts only functional component');\n }\n return Component;\n}\n\nexport * from './Component';\nexport * from './styled';\nexport * from './register';\nexport {\n createBaseComponent,\n register,\n CREATE_COMPONENT,\n CORE_INSTANCE,\n CONTEXT_COMPONENT,\n CHILDREN_COMPONENT,\n INHERITED_NAME,\n CORE_COMPONENT,\n STATIC_COMPONENT,\n assignProps,\n};\nexport default createComponent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["CORE_COMPONENT","Symbol","CORE_INSTANCE","CORE_AS_PROPS","CORE_INIT","CONTEXT_COMPONENT","CREATE_COMPONENT","PARENT_COMPONENTS","isEmptyObject","obj","Object","getOwnPropertyNames","length","getOwnPropertySymbols","getPrototypeOf","prototype","createGetField","enhancements","Component","isFunction","getField","key","filter","enhancement","condition","reduce","acc","item","push","createForwardWrapper","wrapperProps","statics","RootComponent","ROOT_COMPONENT","getterMethodName","getterMethodNameByDisplayName","displayName","getterMethod","undefined","useGetterIndex","WrapperForwardRefWithBind","ref","forwardRef","other","useForkRef","WrapperForwardRef","__WRAPPER_PROPS_BIND__","WrapperComponent","enhancementRef","props","BindingWrapper","map","fn","bind","React","hoistNonReactStatics","defaultProps","forEach","assign","wrapClass","OriginComponent","Context","inits","renders","contexts","context","call","Error","contextProps","asProps","ctx","setContext","render","STATIC_COMPONENT","wrapFunction","memo","FunctionMemoComponent","selfRef","useRef","firstRender","useEnhancedEffect","current","wrapCore","Root","createComposeComponent","PureComponent","isPrototypeOf","assignProps","p1","p2","_assignProps","createComponent","childComponents","options","createContext","parent","parents","Array","isArray","wholeFamily","f","bindHandlerEnhancement","childrenEnhancement","rootEnhancement","uncontrolledPropsEnhancement","staticChildrenEnhancement","functionDefaultPropsEnhancement","inheritedNameEnhancement","dataNameEnhancement","enhanceEnhancement","styleEnhancement","hoistPropsEnhancement","_OriginComponent","_childComponents","_options","createBaseComponent"],"sources":["../../src/index.tsx"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes, useRef } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport _assignProps from '@semcore/utils/lib/assignProps';\n\nimport { Component, PropsWithRenderFnChildren } from './Component';\nimport register from './register';\n\nimport childrenEnhancement, { CHILDREN_COMPONENT } from './enhancement/Children';\nimport rootEnhancement from './enhancement/Root';\nimport uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';\nimport functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';\nimport staticChildrenEnhancement, {\n STATIC_COMPONENT,\n ROOT_COMPONENT,\n getterMethodNameByDisplayName,\n} from './enhancement/staticChildren';\nimport inheritedNameEnhancement, { INHERITED_NAME } from './enhancement/inheritedName';\nimport hoistPropsEnhancement from './enhancement/hoistProps';\nimport dataNameEnhancement from './enhancement/dataName';\nimport enhanceEnhancement from './enhancement/enhance';\nimport styleEnhancement from './enhancement/style';\nimport bindHandlerEnhancement from './enhancement/bindHandler';\n\nconst CORE_COMPONENT = Symbol('CORE_COMPONENT');\nconst CORE_INSTANCE = Symbol('CORE_INSTANCE');\nconst CORE_AS_PROPS = Symbol('CORE_AS_PROPS');\nconst CORE_INIT = Symbol('CORE_INIT');\nconst CONTEXT_COMPONENT = Symbol('CONTEXT_COMPONENT');\nconst CREATE_COMPONENT = Symbol('CREATE_COMPONENT');\nconst PARENT_COMPONENTS = Symbol('PARENT_COMPONENTS');\n\nfunction isEmptyObject(obj) {\n return (\n Object.getOwnPropertyNames(obj).length === 0 &&\n Object.getOwnPropertySymbols && // For IE 11\n Object.getOwnPropertySymbols(obj).length === 0 &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n}\n\nfunction createGetField(enhancements, Component, isFunction) {\n return function getField(key) {\n return enhancements\n .filter((enhancement) => {\n if (!enhancement.condition) {\n return true;\n }\n return enhancement.condition(Component, isFunction);\n })\n .reduce((acc, item) => {\n if (item[key]) {\n acc.push(item[key]);\n }\n return acc;\n }, []);\n };\n}\n\nfunction createForwardWrapper(Component, wrapperProps, statics, isFunction) {\n const RootComponent = Component[ROOT_COMPONENT];\n const getterMethodName = getterMethodNameByDisplayName(Component?.displayName);\n const getterMethod = RootComponent?.prototype\n ? RootComponent.prototype[getterMethodName]\n : undefined;\n const useGetterIndex = getterMethod?.length >= 2;\n\n function WrapperForwardRefWithBind({ forwardRef = null, ...other }, ref) {\n return <BindingWrapper {...other} forwardRef={useForkRef(ref, forwardRef)} />;\n }\n\n function WrapperForwardRef({ forwardRef = null, __WRAPPER_PROPS_BIND__, ...other }, ref) {\n const { ref: enhancementRef = null, ...props } = (\n __WRAPPER_PROPS_BIND__ || wrapperProps\n ).reduce((acc, enhancement) => enhancement(acc, WrapperComponent, isFunction), other);\n return <Component {...props} forwardRef={useForkRef(enhancementRef, ref, forwardRef)} />;\n }\n\n class BindingWrapper extends React.Component<any> {\n render() {\n return (\n <WrapperForwardRef\n {...this.props}\n __WRAPPER_PROPS_BIND__={wrapperProps.map((fn) => fn.bind(this))}\n />\n );\n }\n }\n\n const WrapperComponent = React.forwardRef(\n useGetterIndex ? WrapperForwardRefWithBind : WrapperForwardRef,\n );\n\n hoistNonReactStatics(WrapperComponent, Component);\n\n WrapperComponent.displayName = Component.displayName;\n // TODO: defaultProps is only empty\n WrapperComponent.defaultProps = Component.defaultProps;\n // STATIC\n statics.forEach((enhancement) =>\n Object.assign(WrapperComponent, enhancement(WrapperComponent, Component, isFunction)),\n );\n\n return WrapperComponent;\n}\n\nfunction wrapClass(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, false);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n class Component extends OriginComponent {\n [CORE_AS_PROPS] = null;\n [CORE_INSTANCE] = WrapperComponent;\n [CORE_INIT] = false;\n\n constructor(props, context) {\n super(props, context);\n // INITS\n inits.forEach((enhancement) => enhancement.call(this, props, WrapperComponent, false));\n this[CORE_INIT] = true;\n }\n\n get asProps() {\n // TODO if not production\n if (!this[CORE_INIT]) {\n throw new Error('Can not call asProps in constructor');\n }\n if (!this[CORE_AS_PROPS]) {\n // PROPS\n this[CORE_AS_PROPS] = props.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n this.props,\n );\n }\n return this[CORE_AS_PROPS];\n }\n\n setContext() {\n const contextProps = super.setContext ? super.setContext() : {};\n // CONTEXT\n return contexts.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n contextProps,\n );\n }\n\n render() {\n this[CORE_AS_PROPS] = null;\n // TODO if not production\n if (!super.render) {\n throw new Error('Component `render` method is not defined');\n }\n const asProps = this.asProps;\n const ctx = this.setContext();\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(this, acc, asProps, WrapperComponent, false),\n super.render(),\n );\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n }\n }\n\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, false);\n return WrapperComponent;\n}\n\nfunction wrapFunction(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, true);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n const Component = React.memo(function FunctionMemoComponent(other) {\n const selfRef = useRef({});\n const firstRender = useRef(true);\n useEnhancedEffect(() => {\n firstRender.current = false;\n }, []);\n if (firstRender.current) {\n // INITS\n inits.forEach((enhancement) =>\n enhancement.call(selfRef.current, other, WrapperComponent, true),\n );\n }\n // PROPS\n const asProps = props.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n other,\n );\n // CONTEXT\n const ctx = contexts.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n {},\n );\n\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, asProps, WrapperComponent, true),\n <OriginComponent {...asProps} />,\n );\n\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n });\n Object.assign(Component, OriginComponent);\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, true);\n return WrapperComponent;\n}\n\nfunction wrapCore(OriginComponent, enhancements, Context) {\n const Component = function ({ Root }) {\n return <Root render={OriginComponent} />;\n };\n hoistNonReactStatics(Component, OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = OriginComponent.defaultProps;\n return wrapFunction(Component, enhancements, Context);\n}\n\nfunction createComposeComponent(OriginComponent, Context, enhancements): any {\n if (\n React.PureComponent.isPrototypeOf(OriginComponent) ||\n React.Component.isPrototypeOf(OriginComponent)\n ) {\n if (OriginComponent.prototype instanceof Component) {\n return wrapClass(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must inherit from our component');\n }\n } else if (typeof OriginComponent === 'function') {\n return wrapFunction(OriginComponent, enhancements, Context);\n } else if (OriginComponent[CORE_COMPONENT]) {\n return wrapCore(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must be a React component');\n }\n}\n\nexport type PropsAndRef<T, Ctx, UCProps> = PropsWithRenderFnChildren<T, Ctx, UCProps> &\n RefAttributes<unknown>;\nexport type ForwardRefComponent<T, Ctx, UCProps> = ForwardRefExoticComponent<\n PropsAndRef<T, Ctx, UCProps>\n>;\ntype ComponentOrProps<T, Context, UCProps> = T extends [infer ParentProps, infer ChildProps]\n ? ComponentType<ParentProps, ChildProps, Context, UCProps>\n : ForwardRefComponent<T, Context, UCProps>;\n\nexport type ComponentType<\n ComponentProps,\n ChildComponentProps = {},\n ContextType = {},\n UCProps = {},\n FNType = null,\n> = (FNType extends null\n ? ForwardRefComponent<ComponentProps, ContextType, UCProps>\n : FNType & { displayName: string }) & {\n [K in keyof ChildComponentProps]: ComponentOrProps<ChildComponentProps[K], ContextType, UCProps>;\n} & {\n [CORE_COMPONENT]: boolean;\n [CREATE_COMPONENT]: () => ComponentType<\n ComponentProps,\n ChildComponentProps,\n ContextType,\n UCProps\n >;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ninterface ClassWithUncontrolledProps<Props> {\n uncontrolledProps(): unknown;\n}\n\nfunction assignProps(p1, p2) {\n return _assignProps(p2, p1);\n}\n\nfunction createComponent<ComponentProps, ChildComponentProps = {}, ContextType = {}, FNType = null>(\n OriginComponent,\n childComponents = {},\n options: {\n context?: React.Context<ContextType>;\n parent?: ComponentType<unknown> | ComponentType<unknown>[];\n enhancements?: [any];\n } = {},\n): ComponentType<\n ComponentProps extends Component<infer Props> ? Props : ComponentProps,\n ChildComponentProps,\n ContextType,\n ComponentProps extends ClassWithUncontrolledProps<any>\n ? ReturnType<ComponentProps['uncontrolledProps']>\n : { [key: string]: (arg: unknown) => void },\n FNType\n> {\n const {\n context = React.createContext<ContextType>({} as ContextType),\n parent = [],\n enhancements = [],\n } = options;\n let parents = Array.isArray(parent) ? parent : [parent];\n if (parents.length) {\n const wholeFamily = parents.reduce((acc, parent) => {\n if (parent[PARENT_COMPONENTS]) {\n acc = [...parent[PARENT_COMPONENTS], ...acc];\n }\n return acc;\n }, parents);\n OriginComponent[PARENT_COMPONENTS] = wholeFamily;\n parents = wholeFamily;\n }\n if (OriginComponent[CORE_COMPONENT]) {\n parents.push(OriginComponent);\n }\n const Component = createComposeComponent(OriginComponent, context, [\n // @ts-ignore\n ...enhancements.map((f) => f(context, parents, createComponent, childComponents)),\n bindHandlerEnhancement(),\n childrenEnhancement(context, parents),\n // root must be under the children\n rootEnhancement(),\n uncontrolledPropsEnhancement(),\n staticChildrenEnhancement(childComponents, createComponent, {\n context,\n parent,\n enhancements,\n }),\n // functionDefaultProps must be under the staticChild\n functionDefaultPropsEnhancement(),\n // inheritedName must be under the staticChild\n inheritedNameEnhancement(),\n // dataName must be under the staticChild\n dataNameEnhancement(),\n // enhanceEnhancement must be under the functionDefaultPropsEnhancement\n enhanceEnhancement(),\n styleEnhancement(childComponents, context),\n // must be the last one so any properties can be raised\n hoistPropsEnhancement(childComponents, context),\n ]);\n Component[CONTEXT_COMPONENT] = context;\n Component[CREATE_COMPONENT] = function (\n _OriginComponent = OriginComponent,\n _childComponents = childComponents,\n _options = options,\n ) {\n return createComponent(_OriginComponent, _childComponents, _options);\n };\n Component[CORE_COMPONENT] = true;\n return Component;\n}\n\nfunction createBaseComponent<ComponentProps>(OriginComponent): ComponentType<ComponentProps> {\n let Component = null;\n if (\n !React.PureComponent.isPrototypeOf(OriginComponent) &&\n !React.Component.isPrototypeOf(OriginComponent) &&\n typeof OriginComponent === 'function'\n ) {\n Component = React.forwardRef(OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = {\n 'data-ui-name': OriginComponent.displayName,\n ...OriginComponent.defaultProps,\n };\n Component[CORE_COMPONENT] = true;\n } else {\n throw new Error('createBaseComponent accepts only functional component');\n }\n return Component;\n}\n\nexport * from './Component';\nexport * from './styled';\nexport * from './register';\nexport {\n createBaseComponent,\n register,\n CREATE_COMPONENT,\n CORE_INSTANCE,\n CONTEXT_COMPONENT,\n CHILDREN_COMPONENT,\n INHERITED_NAME,\n CORE_COMPONENT,\n STATIC_COMPONENT,\n ROOT_COMPONENT,\n assignProps,\n};\nexport default createComponent;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AA8XA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AA7XA;;AA+XA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AA7XA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AA8WA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;AA5WA,IAAMA,cAAc,GAAGC,MAAM,CAAC,gBAAD,CAA7B;;AACA,IAAMC,aAAa,GAAGD,MAAM,CAAC,eAAD,CAA5B;;AACA,IAAME,aAAa,GAAGF,MAAM,CAAC,eAAD,CAA5B;AACA,IAAMG,SAAS,GAAGH,MAAM,CAAC,WAAD,CAAxB;AACA,IAAMI,iBAAiB,GAAGJ,MAAM,CAAC,mBAAD,CAAhC;;AACA,IAAMK,gBAAgB,GAAGL,MAAM,CAAC,kBAAD,CAA/B;;AACA,IAAMM,iBAAiB,GAAGN,MAAM,CAAC,mBAAD,CAAhC;;AAEA,SAASO,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,OACEC,MAAM,CAACC,mBAAP,CAA2BF,GAA3B,EAAgCG,MAAhC,KAA2C,CAA3C,IACAF,MAAM,CAACG,qBADP,IACgC;EAChCH,MAAM,CAACG,qBAAP,CAA6BJ,GAA7B,EAAkCG,MAAlC,KAA6C,CAF7C,IAGAF,MAAM,CAACI,cAAP,CAAsBL,GAAtB,MAA+BC,MAAM,CAACK,SAJxC;AAMD;;AAED,SAASC,cAAT,CAAwBC,YAAxB,EAAsCC,SAAtC,EAAiDC,UAAjD,EAA6D;EAC3D,OAAO,SAASC,QAAT,CAAkBC,GAAlB,EAAuB;IAC5B,OAAOJ,YAAY,CAChBK,MADI,CACG,UAACC,WAAD,EAAiB;MACvB,IAAI,CAACA,WAAW,CAACC,SAAjB,EAA4B;QAC1B,OAAO,IAAP;MACD;;MACD,OAAOD,WAAW,CAACC,SAAZ,CAAsBN,SAAtB,EAAiCC,UAAjC,CAAP;IACD,CANI,EAOJM,MAPI,CAOG,UAACC,GAAD,EAAMC,IAAN,EAAe;MACrB,IAAIA,IAAI,CAACN,GAAD,CAAR,EAAe;QACbK,GAAG,CAACE,IAAJ,CAASD,IAAI,CAACN,GAAD,CAAb;MACD;;MACD,OAAOK,GAAP;IACD,CAZI,EAYF,EAZE,CAAP;EAaD,CAdD;AAeD;;AAED,SAASG,oBAAT,CAA8BX,SAA9B,EAAyCY,YAAzC,EAAuDC,OAAvD,EAAgEZ,UAAhE,EAA4E;EAC1E,IAAMa,aAAa,GAAGd,SAAS,CAACe,8BAAD,CAA/B;EACA,IAAMC,gBAAgB,GAAG,IAAAC,6CAAA,EAA8BjB,SAA9B,aAA8BA,SAA9B,uBAA8BA,SAAS,CAAEkB,WAAzC,CAAzB;EACA,IAAMC,YAAY,GAAGL,aAAa,SAAb,IAAAA,aAAa,WAAb,IAAAA,aAAa,CAAEjB,SAAf,GACjBiB,aAAa,CAACjB,SAAd,CAAwBmB,gBAAxB,CADiB,GAEjBI,SAFJ;EAGA,IAAMC,cAAc,GAAG,CAAAF,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEzB,MAAd,KAAwB,CAA/C;;EAEA,SAAS4B,yBAAT,OAAoEC,GAApE,EAAyE;IAAA,2BAApCC,UAAoC;IAAA,IAApCA,UAAoC,gCAAvB,IAAuB;IAAA,IAAdC,KAAc;IACvE,oBAAO,gCAAC,cAAD,gCAAoBA,KAApB;MAA2B,UAAU,EAAE,IAAAC,gBAAA,EAAWH,GAAX,EAAgBC,UAAhB;IAAvC,GAAP;EACD;;EAED,SAASG,iBAAT,QAAoFJ,GAApF,EAAyF;IAAA,6BAA5DC,UAA4D;IAAA,IAA5DA,UAA4D,iCAA/C,IAA+C;IAAA,IAAzCI,sBAAyC,SAAzCA,sBAAyC;IAAA,IAAdH,KAAc;;IACvF,cAAiD,CAC/CG,sBAAsB,IAAIhB,YADqB,EAE/CL,MAF+C,CAExC,UAACC,GAAD,EAAMH,WAAN;MAAA,OAAsBA,WAAW,CAACG,GAAD,EAAMqB,gBAAN,EAAwB5B,UAAxB,CAAjC;IAAA,CAFwC,EAE8BwB,KAF9B,CAAjD;IAAA,0BAAQF,GAAR;IAAA,IAAaO,cAAb,4BAA8B,IAA9B;IAAA,IAAuCC,KAAvC;;IAGA,oBAAO,gCAAC,SAAD,gCAAeA,KAAf;MAAsB,UAAU,EAAE,IAAAL,gBAAA,EAAWI,cAAX,EAA2BP,GAA3B,EAAgCC,UAAhC;IAAlC,GAAP;EACD;;EAjByE,IAmBpEQ,cAnBoE;IAAA;;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA,OAoBxE,kBAAS;QAAA;;QACP,oBACE,gCAAC,iBAAD,gCACM,KAAKD,KADX;UAEE,sBAAsB,EAAEnB,YAAY,CAACqB,GAAb,CAAiB,UAACC,EAAD;YAAA,OAAQA,EAAE,CAACC,IAAH,CAAQ,KAAR,CAAR;UAAA,CAAjB;QAF1B,GADF;MAMD;IA3BuE;IAAA;EAAA,EAmB7CC,iBAAA,CAAMpC,SAnBuC;;EA8B1E,IAAM6B,gBAAgB,gBAAGO,iBAAA,CAAMZ,UAAN,CACvBH,cAAc,GAAGC,yBAAH,GAA+BK,iBADtB,CAAzB;;EAIA,IAAAU,gCAAA,EAAqBR,gBAArB,EAAuC7B,SAAvC;EAEA6B,gBAAgB,CAACX,WAAjB,GAA+BlB,SAAS,CAACkB,WAAzC,CApC0E,CAqC1E;;EACAW,gBAAgB,CAACS,YAAjB,GAAgCtC,SAAS,CAACsC,YAA1C,CAtC0E,CAuC1E;;EACAzB,OAAO,CAAC0B,OAAR,CAAgB,UAAClC,WAAD;IAAA,OACdb,MAAM,CAACgD,MAAP,CAAcX,gBAAd,EAAgCxB,WAAW,CAACwB,gBAAD,EAAmB7B,SAAnB,EAA8BC,UAA9B,CAA3C,CADc;EAAA,CAAhB;EAIA,OAAO4B,gBAAP;AACD;;AAED,SAASY,SAAT,CAAmBC,eAAnB,EAAoC3C,YAApC,EAAkD4C,OAAlD,EAA2D;EACzD,IAAMzC,QAAQ,GAAGJ,cAAc,CAACC,YAAD,EAAe2C,eAAf,EAAgC,KAAhC,CAA/B;EAEA,IAAME,KAAK,GAAG1C,QAAQ,CAAC,MAAD,CAAtB;EACA,IAAM6B,KAAK,GAAG7B,QAAQ,CAAC,SAAD,CAAtB;EACA,IAAM2C,OAAO,GAAG3C,QAAQ,CAAC,QAAD,CAAxB;EACA,IAAMW,OAAO,GAAGX,QAAQ,CAAC,QAAD,CAAxB;EACA,IAAMU,YAAY,GAAGV,QAAQ,CAAC,cAAD,CAA7B;EACA,IAAM4C,QAAQ,GAAG5C,QAAQ,CAAC,SAAD,CAAzB;;EARyD,IAUnDF,SAVmD;IAAA;;IAAA;;IAevD,mBAAY+B,KAAZ,EAAmBgB,OAAnB,EAA4B;MAAA;;MAAA;MAC1B,4BAAMhB,KAAN,EAAagB,OAAb,EAD0B,CAE1B;;MAF0B,kFAJ3B9D,aAI2B,EAJV,IAIU;MAAA,kFAH3BD,aAG2B,EAHV6C,gBAGU;MAAA,kFAF3B3C,SAE2B,EAFd,KAEc;MAG1B0D,KAAK,CAACL,OAAN,CAAc,UAAClC,WAAD;QAAA,OAAiBA,WAAW,CAAC2C,IAAZ,kDAAuBjB,KAAvB,EAA8BF,gBAA9B,EAAgD,KAAhD,CAAjB;MAAA,CAAd;MACA,OAAK3C,SAAL,IAAkB,IAAlB;MAJ0B;IAK3B;;IApBsD;MAAA;MAAA,KAsBvD,eAAc;QAAA;;QACZ;QACA,IAAI,CAAC,KAAKA,SAAL,CAAL,EAAsB;UACpB,MAAM,IAAI+D,KAAJ,CAAU,qCAAV,CAAN;QACD;;QACD,IAAI,CAAC,KAAKhE,aAAL,CAAL,EAA0B;UACxB;UACA,KAAKA,aAAL,IAAsB8C,KAAK,CAACxB,MAAN,CACpB,UAACC,GAAD,EAAMH,WAAN;YAAA,OAAsBA,WAAW,CAAC2C,IAAZ,CAAiB,MAAjB,EAAuBxC,GAAvB,EAA4BqB,gBAA5B,EAA8C,KAA9C,CAAtB;UAAA,CADoB,EAEpB,KAAKE,KAFe,CAAtB;QAID;;QACD,OAAO,KAAK9C,aAAL,CAAP;MACD;IAnCsD;MAAA;MAAA,OAqCvD,sBAAa;QAAA;;QACX,IAAMiE,YAAY,GAAG,iNAAwC,EAA7D,CADW,CAEX;;QACA,OAAOJ,QAAQ,CAACvC,MAAT,CACL,UAACC,GAAD,EAAMH,WAAN;UAAA,OAAsBA,WAAW,CAAC2C,IAAZ,CAAiB,MAAjB,EAAuBxC,GAAvB,EAA4BqB,gBAA5B,EAA8C,KAA9C,CAAtB;QAAA,CADK,EAELqB,YAFK,CAAP;MAID;IA5CsD;MAAA;MAAA,OA8CvD,kBAAS;QAAA;;QACP,KAAKjE,aAAL,IAAsB,IAAtB,CADO,CAEP;;QACA,IAAI,6FAAJ,EAAmB;UACjB,MAAM,IAAIgE,KAAJ,CAAU,0CAAV,CAAN;QACD;;QACD,IAAME,OAAO,GAAG,KAAKA,OAArB;QACA,IAAMC,GAAG,GAAG,KAAKC,UAAL,EAAZ,CAPO,CAQP;;QACA,IAAMC,MAAM,GAAGT,OAAO,CAACtC,MAAR,CACb,UAACC,GAAD,EAAMH,WAAN;UAAA,OAAsBA,WAAW,CAAC2C,IAAZ,CAAiB,MAAjB,EAAuBxC,GAAvB,EAA4B2C,OAA5B,EAAqCtB,gBAArC,EAAuD,KAAvD,CAAtB;QAAA,CADa,0GAAf;;QAIA,IAAI,CAACA,gBAAgB,CAAC0B,gCAAD,CAAjB,IAAuC,CAACjE,aAAa,CAAC8D,GAAD,CAAzD,EAAgE;UAC9D,oBAAO,gCAAC,OAAD,CAAS,QAAT;YAAkB,KAAK,kCAAOD,OAAP,GAAmBC,GAAnB;UAAvB,GAAkDE,MAAlD,CAAP;QACD,CAFD,MAEO;UACL,OAAOA,MAAP;QACD;MACF;IAhEsD;IAAA;EAAA,EAUjCZ,eAViC;;EAmEzD,IAAMb,gBAAgB,GAAGlB,oBAAoB,CAACX,SAAD,EAAYY,YAAZ,EAA0BC,OAA1B,EAAmC,KAAnC,CAA7C;EACA,OAAOgB,gBAAP;AACD;;AAED,SAAS2B,YAAT,CAAsBd,eAAtB,EAAuC3C,YAAvC,EAAqD4C,OAArD,EAA8D;EAC5D,IAAMzC,QAAQ,GAAGJ,cAAc,CAACC,YAAD,EAAe2C,eAAf,EAAgC,IAAhC,CAA/B;EAEA,IAAME,KAAK,GAAG1C,QAAQ,CAAC,MAAD,CAAtB;EACA,IAAM6B,KAAK,GAAG7B,QAAQ,CAAC,SAAD,CAAtB;EACA,IAAM2C,OAAO,GAAG3C,QAAQ,CAAC,QAAD,CAAxB;EACA,IAAMW,OAAO,GAAGX,QAAQ,CAAC,QAAD,CAAxB;EACA,IAAMU,YAAY,GAAGV,QAAQ,CAAC,cAAD,CAA7B;EACA,IAAM4C,QAAQ,GAAG5C,QAAQ,CAAC,SAAD,CAAzB;;EAEA,IAAMF,SAAS,gBAAGoC,iBAAA,CAAMqB,IAAN,CAAW,SAASC,qBAAT,CAA+BjC,KAA/B,EAAsC;IACjE,IAAMkC,OAAO,GAAG,IAAAC,aAAA,EAAO,EAAP,CAAhB;IACA,IAAMC,WAAW,GAAG,IAAAD,aAAA,EAAO,IAAP,CAApB;IACA,IAAAE,6BAAA,EAAkB,YAAM;MACtBD,WAAW,CAACE,OAAZ,GAAsB,KAAtB;IACD,CAFD,EAEG,EAFH;;IAGA,IAAIF,WAAW,CAACE,OAAhB,EAAyB;MACvB;MACAnB,KAAK,CAACL,OAAN,CAAc,UAAClC,WAAD;QAAA,OACZA,WAAW,CAAC2C,IAAZ,CAAiBW,OAAO,CAACI,OAAzB,EAAkCtC,KAAlC,EAAyCI,gBAAzC,EAA2D,IAA3D,CADY;MAAA,CAAd;IAGD,CAXgE,CAYjE;;;IACA,IAAMsB,OAAO,GAAGpB,KAAK,CAACxB,MAAN,CACd,UAACC,GAAD,EAAMH,WAAN;MAAA,OAAsBA,WAAW,CAAC2C,IAAZ,CAAiBW,OAAO,CAACI,OAAzB,EAAkCvD,GAAlC,EAAuCqB,gBAAvC,EAAyD,IAAzD,CAAtB;IAAA,CADc,EAEdJ,KAFc,CAAhB,CAbiE,CAiBjE;;IACA,IAAM2B,GAAG,GAAGN,QAAQ,CAACvC,MAAT,CACV,UAACC,GAAD,EAAMH,WAAN;MAAA,OAAsBA,WAAW,CAAC2C,IAAZ,CAAiBW,OAAO,CAACI,OAAzB,EAAkCvD,GAAlC,EAAuCqB,gBAAvC,EAAyD,IAAzD,CAAtB;IAAA,CADU,EAEV,EAFU,CAAZ,CAlBiE,CAuBjE;;IACA,IAAMyB,MAAM,GAAGT,OAAO,CAACtC,MAAR,CACb,UAACC,GAAD,EAAMH,WAAN;MAAA,OAAsBA,WAAW,CAAC2C,IAAZ,CAAiBW,OAAO,CAACI,OAAzB,EAAkCvD,GAAlC,EAAuC2C,OAAvC,EAAgDtB,gBAAhD,EAAkE,IAAlE,CAAtB;IAAA,CADa,eAEb,gCAAC,eAAD,EAAqBsB,OAArB,CAFa,CAAf;;IAKA,IAAI,CAACtB,gBAAgB,CAAC0B,gCAAD,CAAjB,IAAuC,CAACjE,aAAa,CAAC8D,GAAD,CAAzD,EAAgE;MAC9D,oBAAO,gCAAC,OAAD,CAAS,QAAT;QAAkB,KAAK,kCAAOD,OAAP,GAAmBC,GAAnB;MAAvB,GAAkDE,MAAlD,CAAP;IACD,CAFD,MAEO;MACL,OAAOA,MAAP;IACD;EACF,CAlCiB,CAAlB;;EAmCA9D,MAAM,CAACgD,MAAP,CAAcxC,SAAd,EAAyB0C,eAAzB;EACA,IAAMb,gBAAgB,GAAGlB,oBAAoB,CAACX,SAAD,EAAYY,YAAZ,EAA0BC,OAA1B,EAAmC,IAAnC,CAA7C;EACA,OAAOgB,gBAAP;AACD;;AAED,SAASmC,QAAT,CAAkBtB,eAAlB,EAAmC3C,YAAnC,EAAiD4C,OAAjD,EAA0D;EACxD,IAAM3C,SAAS,GAAG,SAAZA,SAAY,QAAoB;IAAA,IAARiE,IAAQ,SAARA,IAAQ;IACpC,oBAAO,gCAAC,IAAD;MAAM,MAAM,EAAEvB;IAAd,EAAP;EACD,CAFD;;EAGA,IAAAL,gCAAA,EAAqBrC,SAArB,EAAgC0C,eAAhC;EACA1C,SAAS,CAACkB,WAAV,GAAwBwB,eAAe,CAACxB,WAAxC;EACAlB,SAAS,CAACsC,YAAV,GAAyBI,eAAe,CAACJ,YAAzC;EACA,OAAOkB,YAAY,CAACxD,SAAD,EAAYD,YAAZ,EAA0B4C,OAA1B,CAAnB;AACD;;AAED,SAASuB,sBAAT,CAAgCxB,eAAhC,EAAiDC,OAAjD,EAA0D5C,YAA1D,EAA6E;EAC3E,IACEqC,iBAAA,CAAM+B,aAAN,CAAoBC,aAApB,CAAkC1B,eAAlC,KACAN,iBAAA,CAAMpC,SAAN,CAAgBoE,aAAhB,CAA8B1B,eAA9B,CAFF,EAGE;IACA,IAAIA,eAAe,CAAC7C,SAAhB,YAAqCG,oBAAzC,EAAoD;MAClD,OAAOyC,SAAS,CAACC,eAAD,EAAkB3C,YAAlB,EAAgC4C,OAAhC,CAAhB;IACD,CAFD,MAEO;MACL,MAAM,IAAIM,KAAJ,CAAU,iCAAV,CAAN;IACD;EACF,CATD,MASO,IAAI,OAAOP,eAAP,KAA2B,UAA/B,EAA2C;IAChD,OAAOc,YAAY,CAACd,eAAD,EAAkB3C,YAAlB,EAAgC4C,OAAhC,CAAnB;EACD,CAFM,MAEA,IAAID,eAAe,CAAC5D,cAAD,CAAnB,EAAqC;IAC1C,OAAOkF,QAAQ,CAACtB,eAAD,EAAkB3C,YAAlB,EAAgC4C,OAAhC,CAAf;EACD,CAFM,MAEA;IACL,MAAM,IAAIM,KAAJ,CAAU,2BAAV,CAAN;EACD;AACF;;AAoCD,SAASoB,WAAT,CAAqBC,EAArB,EAAyBC,EAAzB,EAA6B;EAC3B,OAAO,IAAAC,wBAAA,EAAaD,EAAb,EAAiBD,EAAjB,CAAP;AACD;;AAED,SAASG,eAAT,CACE/B,eADF,EAgBE;EAAA,IAdAgC,eAcA,uEAdkB,EAclB;EAAA,IAbAC,OAaA,uEATI,EASJ;EACA,uBAIIA,OAJJ,CACE5B,OADF;EAAA,IACEA,OADF,8CACYX,iBAAA,CAAMwC,aAAN,CAAiC,EAAjC,CADZ;EAAA,sBAIID,OAJJ,CAEEE,MAFF;EAAA,IAEEA,MAFF,gCAEW,EAFX;EAAA,4BAIIF,OAJJ,CAGE5E,YAHF;EAAA,IAGEA,YAHF,sCAGiB,EAHjB;EAKA,IAAI+E,OAAO,GAAGC,KAAK,CAACC,OAAN,CAAcH,MAAd,IAAwBA,MAAxB,GAAiC,CAACA,MAAD,CAA/C;;EACA,IAAIC,OAAO,CAACpF,MAAZ,EAAoB;IAClB,IAAMuF,WAAW,GAAGH,OAAO,CAACvE,MAAR,CAAe,UAACC,GAAD,EAAMqE,MAAN,EAAiB;MAClD,IAAIA,MAAM,CAACxF,iBAAD,CAAV,EAA+B;QAC7BmB,GAAG,iDAAOqE,MAAM,CAACxF,iBAAD,CAAb,uCAAqCmB,GAArC,EAAH;MACD;;MACD,OAAOA,GAAP;IACD,CALmB,EAKjBsE,OALiB,CAApB;IAMApC,eAAe,CAACrD,iBAAD,CAAf,GAAqC4F,WAArC;IACAH,OAAO,GAAGG,WAAV;EACD;;EACD,IAAIvC,eAAe,CAAC5D,cAAD,CAAnB,EAAqC;IACnCgG,OAAO,CAACpE,IAAR,CAAagC,eAAb;EACD;;EACD,IAAM1C,SAAS,GAAGkE,sBAAsB,CAACxB,eAAD,EAAkBK,OAAlB,gDAEnChD,YAAY,CAACkC,GAAb,CAAiB,UAACiD,CAAD;IAAA,OAAOA,CAAC,CAACnC,OAAD,EAAU+B,OAAV,EAAmBL,eAAnB,EAAoCC,eAApC,CAAR;EAAA,CAAjB,CAFmC,IAGtC,IAAAS,uBAAA,GAHsC,EAItC,IAAAC,oBAAA,EAAoBrC,OAApB,EAA6B+B,OAA7B,CAJsC,EAKtC;EACA,IAAAO,gBAAA,GANsC,EAOtC,IAAAC,6BAAA,GAPsC,EAQtC,IAAAC,0BAAA,EAA0Bb,eAA1B,EAA2CD,eAA3C,EAA4D;IAC1D1B,OAAO,EAAPA,OAD0D;IAE1D8B,MAAM,EAANA,MAF0D;IAG1D9E,YAAY,EAAZA;EAH0D,CAA5D,CARsC,EAatC;EACA,IAAAyF,gCAAA,GAdsC,EAetC;EACA,IAAAC,yBAAA,GAhBsC,EAiBtC;EACA,IAAAC,oBAAA,GAlBsC,EAmBtC;EACA,IAAAC,mBAAA,GApBsC,EAqBtC,IAAAC,iBAAA,EAAiBlB,eAAjB,EAAkC3B,OAAlC,CArBsC,EAsBtC;EACA,IAAA8C,sBAAA,EAAsBnB,eAAtB,EAAuC3B,OAAvC,CAvBsC,GAAxC;EAyBA/C,SAAS,CAACb,iBAAD,CAAT,GAA+B4D,OAA/B;;EACA/C,SAAS,CAACZ,gBAAD,CAAT,GAA8B,YAI5B;IAAA,IAHA0G,gBAGA,uEAHmBpD,eAGnB;;IAAA,IAFAqD,gBAEA,uEAFmBrB,eAEnB;;IAAA,IADAsB,QACA,uEADWrB,OACX;;IACA,OAAOF,eAAe,CAACqB,gBAAD,EAAmBC,gBAAnB,EAAqCC,QAArC,CAAtB;EACD,CAND;;EAOAhG,SAAS,CAAClB,cAAD,CAAT,GAA4B,IAA5B;EACA,OAAOkB,SAAP;AACD;;AAED,SAASiG,mBAAT,CAA6CvD,eAA7C,EAA6F;EAC3F,IAAI1C,SAAS,GAAG,IAAhB;;EACA,IACE,CAACoC,iBAAA,CAAM+B,aAAN,CAAoBC,aAApB,CAAkC1B,eAAlC,CAAD,IACA,CAACN,iBAAA,CAAMpC,SAAN,CAAgBoE,aAAhB,CAA8B1B,eAA9B,CADD,IAEA,OAAOA,eAAP,KAA2B,UAH7B,EAIE;IACA1C,SAAS,gBAAGoC,iBAAA,CAAMZ,UAAN,CAAiBkB,eAAjB,CAAZ;IACA1C,SAAS,CAACkB,WAAV,GAAwBwB,eAAe,CAACxB,WAAxC;IACAlB,SAAS,CAACsC,YAAV;MACE,gBAAgBI,eAAe,CAACxB;IADlC,GAEKwB,eAAe,CAACJ,YAFrB;IAIAtC,SAAS,CAAClB,cAAD,CAAT,GAA4B,IAA5B;EACD,CAZD,MAYO;IACL,MAAM,IAAImE,KAAJ,CAAU,uDAAV,CAAN;EACD;;EACD,OAAOjD,SAAP;AACD;;eAkBcyE,e"}
|
|
@@ -21,11 +21,11 @@ function assign(target, source) {
|
|
|
21
21
|
}, {}));
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function getterMethodName(name) {
|
|
24
|
+
export function getterMethodName(name) {
|
|
25
25
|
return "get".concat(name, "Props");
|
|
26
26
|
}
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
export function getterMethodNameByDisplayName() {
|
|
28
|
+
var displayName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
29
29
|
var displayNames = displayName.split('.');
|
|
30
30
|
var name = displayNames.slice(-(displayNames.length - 1)).join('');
|
|
31
31
|
return getterMethodName(name);
|
|
@@ -48,6 +48,7 @@ function flatGetterMethodNames(childComponents, parentName) {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
export var STATIC_COMPONENT = Symbol('STATIC_COMPONENT');
|
|
51
|
+
export var ROOT_COMPONENT = Symbol('ROOT_COMPONENT');
|
|
51
52
|
var SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');
|
|
52
53
|
|
|
53
54
|
function Enhancement(childComponents, createComponent, options) {
|
|
@@ -73,15 +74,15 @@ function Enhancement(childComponents, createComponent, options) {
|
|
|
73
74
|
acc[name] = function () {
|
|
74
75
|
var childrenProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
76
|
var getterProps = getterMethod.call(_this, childrenProps, acc[name].index);
|
|
76
|
-
acc[name].index++;
|
|
77
77
|
return assignProps(childrenProps, getterProps);
|
|
78
78
|
};
|
|
79
79
|
|
|
80
|
-
acc[name].index =
|
|
80
|
+
acc[name].index = -1;
|
|
81
|
+
acc[name].cache = new Set();
|
|
81
82
|
return acc;
|
|
82
83
|
}, {}));
|
|
83
84
|
},
|
|
84
|
-
"static": function _static(WrapperComponent) {
|
|
85
|
+
"static": function _static(WrapperComponent, Component) {
|
|
85
86
|
if (Object.keys(childComponents).length && !WrapperComponent.displayName) {
|
|
86
87
|
throw new Error('"displayName" is not defined');
|
|
87
88
|
}
|
|
@@ -104,6 +105,7 @@ function Enhancement(childComponents, createComponent, options) {
|
|
|
104
105
|
|
|
105
106
|
value.displayName = WrapperComponent.displayName + '.' + name;
|
|
106
107
|
value[STATIC_COMPONENT] = true;
|
|
108
|
+
value[ROOT_COMPONENT] = Component[ROOT_COMPONENT] || Component;
|
|
107
109
|
acc[name] = createComponent(value, childComponents, options); // @ts-ignore
|
|
108
110
|
|
|
109
111
|
value.displayName = prevDisplayName;
|
|
@@ -123,6 +125,11 @@ function Enhancement(childComponents, createComponent, options) {
|
|
|
123
125
|
var getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];
|
|
124
126
|
|
|
125
127
|
if (getterMethod) {
|
|
128
|
+
if (!getterMethod.cache.has(this)) {
|
|
129
|
+
getterMethod.cache.add(this);
|
|
130
|
+
getterMethod.index++;
|
|
131
|
+
}
|
|
132
|
+
|
|
126
133
|
return getterMethod(props);
|
|
127
134
|
}
|
|
128
135
|
|
|
@@ -133,7 +140,9 @@ function Enhancement(childComponents, createComponent, options) {
|
|
|
133
140
|
|
|
134
141
|
getterMethodNames.forEach(function (name) {
|
|
135
142
|
if (_this2[name] === undefined) return;
|
|
136
|
-
_this2[name].index =
|
|
143
|
+
_this2[name].index = -1;
|
|
144
|
+
|
|
145
|
+
_this2[name].cache.clear();
|
|
137
146
|
});
|
|
138
147
|
return _render;
|
|
139
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticChildren.js","names":["useContext","assignProps","pick","logger","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","getterMethodName","name","getterMethodNameByDisplayName","displayName","displayNames","split","slice","length","join","flatGetterMethodNames","childComponents","parentName","entries","acc","value","Array","isArray","push","STATIC_COMPONENT","Symbol","SELF_GETTER_METHOD","Enhancement","createComponent","options","getterMethodNames","condition","Component","Boolean","init","props","WrapperComponent","getterMethods","selfGetterMethod","warn","getterMethod","childrenProps","getterProps","call","index","Error","prevStaticComponent","prevDisplayName","context","wrapperProps","render","forEach","undefined"],"sources":["../../../src/enhancement/staticChildren.tsx"],"sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n// @ts-ignore\nimport logger from '@semcore/utils/lib/logger';\n\nfunction assign(target, source) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nfunction getterMethodName(name) {\n return `get${name}Props`;\n}\n\nfunction getterMethodNameByDisplayName(displayName) {\n const displayNames = displayName.split('.');\n const name = displayNames.slice(-(displayNames.length - 1)).join('');\n return getterMethodName(name);\n}\n\nfunction flatGetterMethodNames(childComponents, parentName?: string) {\n return Object.entries(childComponents).reduce<string[]>((acc, [name, value]) => {\n if (Array.isArray(value)) {\n acc = [...acc, ...flatGetterMethodNames(value[1], name)];\n }\n name = parentName ? `${parentName}${name}` : name;\n acc.push(getterMethodName(name));\n return acc;\n }, []);\n}\n\nexport const STATIC_COMPONENT = Symbol('STATIC_COMPONENT');\nconst SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');\n\nfunction Enhancement(childComponents, createComponent, options) {\n const getterMethodNames = flatGetterMethodNames(childComponents);\n return {\n condition: function (Component) {\n return Boolean(Component[STATIC_COMPONENT] || Object.keys(childComponents).length);\n },\n init: function (props, WrapperComponent) {\n const getterMethods = pick(this, getterMethodNames);\n this[SELF_GETTER_METHOD] = () => {\n const selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n logger.warn(\n true,\n `Getter \\`${selfGetterMethod}\\` can't be fired as it is a getter of static component`,\n props['data-ui-name'] || WrapperComponent.displayName,\n );\n };\n assign(\n this,\n getterMethodNames.reduce((acc, name) => {\n const getterMethod = getterMethods[name];\n if (!getterMethod) return acc;\n acc[name] = (childrenProps = {}) => {\n const getterProps = getterMethod.call(this, childrenProps, acc[name].index);\n acc[name].index++;\n return assignProps(childrenProps, getterProps);\n };\n acc[name].index = 0;\n return acc;\n }, {}),\n );\n },\n static: function (WrapperComponent) {\n if (Object.keys(childComponents).length && !WrapperComponent.displayName) {\n throw new Error('\"displayName\" is not defined');\n }\n return Object.entries(childComponents).reduce((acc, [name, value]) => {\n let childComponents = {};\n\n if (Array.isArray(value)) {\n childComponents = value[1];\n value = value[0];\n }\n\n const prevStaticComponent = value[STATIC_COMPONENT];\n // @ts-ignore\n const prevDisplayName = value.displayName;\n // @ts-ignore\n value.displayName = WrapperComponent.displayName + '.' + name;\n value[STATIC_COMPONENT] = true;\n acc[name] = createComponent(value, childComponents, options);\n // @ts-ignore\n value.displayName = prevDisplayName;\n value[STATIC_COMPONENT] = prevStaticComponent;\n return acc;\n }, {});\n },\n context: function (context /*, WrapperComponent*/) {\n // const getterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n\n return {\n ...context,\n // [getterMethod]: this[SELF_GETTER_METHOD],\n ...pick(this, getterMethodNames),\n };\n },\n wrapperProps: function (props, WrapperComponent) {\n if (!WrapperComponent[STATIC_COMPONENT]) return props;\n\n const context = useContext(options.context);\n const getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];\n if (getterMethod) {\n return getterMethod(props);\n }\n return props;\n },\n render: function (render) {\n getterMethodNames.forEach((name) => {\n if (this[name] === undefined) return;\n this[name].index = 0;\n });\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"staticChildren.js","names":["useContext","assignProps","pick","logger","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","getterMethodName","name","getterMethodNameByDisplayName","displayName","displayNames","split","slice","length","join","flatGetterMethodNames","childComponents","parentName","entries","acc","value","Array","isArray","push","STATIC_COMPONENT","Symbol","ROOT_COMPONENT","SELF_GETTER_METHOD","Enhancement","createComponent","options","getterMethodNames","condition","Component","Boolean","init","props","WrapperComponent","getterMethods","selfGetterMethod","warn","getterMethod","childrenProps","getterProps","call","index","cache","Set","Error","prevStaticComponent","prevDisplayName","context","wrapperProps","has","add","render","forEach","undefined","clear"],"sources":["../../../src/enhancement/staticChildren.tsx"],"sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n// @ts-ignore\nimport logger from '@semcore/utils/lib/logger';\n\nfunction assign(target, source) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nexport function getterMethodName(name) {\n return `get${name}Props`;\n}\n\nexport function getterMethodNameByDisplayName(displayName = '') {\n const displayNames = displayName.split('.');\n const name = displayNames.slice(-(displayNames.length - 1)).join('');\n return getterMethodName(name);\n}\n\nfunction flatGetterMethodNames(childComponents, parentName?: string) {\n return Object.entries(childComponents).reduce<string[]>((acc, [name, value]) => {\n if (Array.isArray(value)) {\n acc = [...acc, ...flatGetterMethodNames(value[1], name)];\n }\n name = parentName ? `${parentName}${name}` : name;\n acc.push(getterMethodName(name));\n return acc;\n }, []);\n}\n\nexport const STATIC_COMPONENT = Symbol('STATIC_COMPONENT');\nexport const ROOT_COMPONENT = Symbol('ROOT_COMPONENT');\nconst SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');\n\nfunction Enhancement(childComponents, createComponent, options) {\n const getterMethodNames = flatGetterMethodNames(childComponents);\n return {\n condition: function (Component) {\n return Boolean(Component[STATIC_COMPONENT] || Object.keys(childComponents).length);\n },\n init: function (props, WrapperComponent) {\n const getterMethods = pick(this, getterMethodNames);\n this[SELF_GETTER_METHOD] = () => {\n const selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n logger.warn(\n true,\n `Getter \\`${selfGetterMethod}\\` can't be fired as it is a getter of static component`,\n props['data-ui-name'] || WrapperComponent.displayName,\n );\n };\n assign(\n this,\n getterMethodNames.reduce((acc, name) => {\n const getterMethod = getterMethods[name];\n if (!getterMethod) return acc;\n acc[name] = (childrenProps = {}) => {\n const getterProps = getterMethod.call(this, childrenProps, acc[name].index);\n return assignProps(childrenProps, getterProps);\n };\n acc[name].index = -1;\n acc[name].cache = new Set();\n return acc;\n }, {}),\n );\n },\n static: function (WrapperComponent, Component) {\n if (Object.keys(childComponents).length && !WrapperComponent.displayName) {\n throw new Error('\"displayName\" is not defined');\n }\n return Object.entries(childComponents).reduce((acc, [name, value]) => {\n let childComponents = {};\n\n if (Array.isArray(value)) {\n childComponents = value[1];\n value = value[0];\n }\n\n const prevStaticComponent = value[STATIC_COMPONENT];\n // @ts-ignore\n const prevDisplayName = value.displayName;\n // @ts-ignore\n value.displayName = WrapperComponent.displayName + '.' + name;\n value[STATIC_COMPONENT] = true;\n value[ROOT_COMPONENT] = Component[ROOT_COMPONENT] || Component;\n acc[name] = createComponent(value, childComponents, options);\n // @ts-ignore\n value.displayName = prevDisplayName;\n value[STATIC_COMPONENT] = prevStaticComponent;\n return acc;\n }, {});\n },\n context: function (context /*, WrapperComponent*/) {\n // const getterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n return {\n ...context,\n // [getterMethod]: this[SELF_GETTER_METHOD],\n ...pick(this, getterMethodNames),\n };\n },\n wrapperProps: function (props, WrapperComponent) {\n if (!WrapperComponent[STATIC_COMPONENT]) return props;\n const context = useContext(options.context);\n const getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];\n if (getterMethod) {\n if (!getterMethod.cache.has(this)) {\n getterMethod.cache.add(this);\n getterMethod.index++;\n }\n return getterMethod(props);\n }\n return props;\n },\n render: function (render) {\n getterMethodNames.forEach((name) => {\n if (this[name] === undefined) return;\n this[name].index = -1;\n this[name].cache.clear();\n });\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}
|
package/lib/es6/index.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
2
|
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
5
3
|
import _get from "@babel/runtime/helpers/get";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
6
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
7
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
8
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
8
9
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
9
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
10
|
import _extends from "@babel/runtime/helpers/extends";
|
|
11
11
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
12
12
|
var _excluded = ["forwardRef"],
|
|
13
|
-
_excluded2 = ["
|
|
13
|
+
_excluded2 = ["forwardRef", "__WRAPPER_PROPS_BIND__"],
|
|
14
|
+
_excluded3 = ["ref"];
|
|
14
15
|
|
|
15
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
17
|
|
|
@@ -34,7 +35,7 @@ import childrenEnhancement, { CHILDREN_COMPONENT } from './enhancement/Children'
|
|
|
34
35
|
import rootEnhancement from './enhancement/Root';
|
|
35
36
|
import uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';
|
|
36
37
|
import functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';
|
|
37
|
-
import staticChildrenEnhancement, { STATIC_COMPONENT } from './enhancement/staticChildren';
|
|
38
|
+
import staticChildrenEnhancement, { STATIC_COMPONENT, ROOT_COMPONENT, getterMethodNameByDisplayName } from './enhancement/staticChildren';
|
|
38
39
|
import inheritedNameEnhancement, { INHERITED_NAME } from './enhancement/inheritedName';
|
|
39
40
|
import hoistPropsEnhancement from './enhancement/hoistProps';
|
|
40
41
|
import dataNameEnhancement from './enhancement/dataName';
|
|
@@ -73,32 +74,74 @@ function createGetField(enhancements, Component, isFunction) {
|
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
function createForwardWrapper(Component, wrapperProps, statics, isFunction) {
|
|
76
|
-
|
|
77
|
-
var
|
|
77
|
+
var RootComponent = Component[ROOT_COMPONENT];
|
|
78
|
+
var getterMethodName = getterMethodNameByDisplayName(Component === null || Component === void 0 ? void 0 : Component.displayName);
|
|
79
|
+
var getterMethod = RootComponent !== null && RootComponent !== void 0 && RootComponent.prototype ? RootComponent.prototype[getterMethodName] : undefined;
|
|
80
|
+
var useGetterIndex = (getterMethod === null || getterMethod === void 0 ? void 0 : getterMethod.length) >= 2;
|
|
81
|
+
|
|
82
|
+
function WrapperForwardRefWithBind(_ref, ref) {
|
|
78
83
|
var _ref$forwardRef = _ref.forwardRef,
|
|
79
84
|
forwardRef = _ref$forwardRef === void 0 ? null : _ref$forwardRef,
|
|
80
85
|
other = _objectWithoutProperties(_ref, _excluded);
|
|
81
86
|
|
|
82
|
-
|
|
83
|
-
|
|
87
|
+
return /*#__PURE__*/React.createElement(BindingWrapper, _extends({}, other, {
|
|
88
|
+
forwardRef: useForkRef(ref, forwardRef)
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function WrapperForwardRef(_ref2, ref) {
|
|
93
|
+
var _ref2$forwardRef = _ref2.forwardRef,
|
|
94
|
+
forwardRef = _ref2$forwardRef === void 0 ? null : _ref2$forwardRef,
|
|
95
|
+
__WRAPPER_PROPS_BIND__ = _ref2.__WRAPPER_PROPS_BIND__,
|
|
96
|
+
other = _objectWithoutProperties(_ref2, _excluded2);
|
|
97
|
+
|
|
98
|
+
var _reduce = (__WRAPPER_PROPS_BIND__ || wrapperProps).reduce(function (acc, enhancement) {
|
|
84
99
|
return enhancement(acc, WrapperComponent, isFunction);
|
|
85
100
|
}, other),
|
|
86
|
-
|
|
87
|
-
enhancementRef =
|
|
88
|
-
props = _objectWithoutProperties(
|
|
89
|
-
|
|
101
|
+
_reduce$ref = _reduce.ref,
|
|
102
|
+
enhancementRef = _reduce$ref === void 0 ? null : _reduce$ref,
|
|
103
|
+
props = _objectWithoutProperties(_reduce, _excluded3);
|
|
90
104
|
|
|
91
105
|
return /*#__PURE__*/React.createElement(Component, _extends({}, props, {
|
|
92
106
|
forwardRef: useForkRef(enhancementRef, ref, forwardRef)
|
|
93
107
|
}));
|
|
94
|
-
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
var BindingWrapper = /*#__PURE__*/function (_React$Component) {
|
|
111
|
+
_inherits(BindingWrapper, _React$Component);
|
|
112
|
+
|
|
113
|
+
var _super = _createSuper(BindingWrapper);
|
|
114
|
+
|
|
115
|
+
function BindingWrapper() {
|
|
116
|
+
_classCallCheck(this, BindingWrapper);
|
|
117
|
+
|
|
118
|
+
return _super.apply(this, arguments);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
_createClass(BindingWrapper, [{
|
|
122
|
+
key: "render",
|
|
123
|
+
value: function render() {
|
|
124
|
+
var _this = this;
|
|
125
|
+
|
|
126
|
+
return /*#__PURE__*/React.createElement(WrapperForwardRef, _extends({}, this.props, {
|
|
127
|
+
__WRAPPER_PROPS_BIND__: wrapperProps.map(function (fn) {
|
|
128
|
+
return fn.bind(_this);
|
|
129
|
+
})
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
}]);
|
|
133
|
+
|
|
134
|
+
return BindingWrapper;
|
|
135
|
+
}(React.Component);
|
|
136
|
+
|
|
137
|
+
var WrapperComponent = /*#__PURE__*/React.forwardRef(useGetterIndex ? WrapperForwardRefWithBind : WrapperForwardRef);
|
|
95
138
|
hoistNonReactStatics(WrapperComponent, Component);
|
|
96
139
|
WrapperComponent.displayName = Component.displayName; // TODO: defaultProps is only empty
|
|
97
140
|
|
|
98
141
|
WrapperComponent.defaultProps = Component.defaultProps; // STATIC
|
|
99
142
|
|
|
100
143
|
statics.forEach(function (enhancement) {
|
|
101
|
-
return Object.assign(WrapperComponent, enhancement(WrapperComponent, isFunction));
|
|
144
|
+
return Object.assign(WrapperComponent, enhancement(WrapperComponent, Component, isFunction));
|
|
102
145
|
});
|
|
103
146
|
return WrapperComponent;
|
|
104
147
|
}
|
|
@@ -115,32 +158,32 @@ function wrapClass(OriginComponent, enhancements, Context) {
|
|
|
115
158
|
var Component = /*#__PURE__*/function (_OriginComponent2) {
|
|
116
159
|
_inherits(Component, _OriginComponent2);
|
|
117
160
|
|
|
118
|
-
var
|
|
161
|
+
var _super2 = _createSuper(Component);
|
|
119
162
|
|
|
120
163
|
function Component(props, context) {
|
|
121
|
-
var
|
|
164
|
+
var _this2;
|
|
122
165
|
|
|
123
166
|
_classCallCheck(this, Component);
|
|
124
167
|
|
|
125
|
-
|
|
168
|
+
_this2 = _super2.call(this, props, context); // INITS
|
|
126
169
|
|
|
127
|
-
_defineProperty(_assertThisInitialized(
|
|
170
|
+
_defineProperty(_assertThisInitialized(_this2), CORE_AS_PROPS, null);
|
|
128
171
|
|
|
129
|
-
_defineProperty(_assertThisInitialized(
|
|
172
|
+
_defineProperty(_assertThisInitialized(_this2), CORE_INSTANCE, WrapperComponent);
|
|
130
173
|
|
|
131
|
-
_defineProperty(_assertThisInitialized(
|
|
174
|
+
_defineProperty(_assertThisInitialized(_this2), CORE_INIT, false);
|
|
132
175
|
|
|
133
176
|
inits.forEach(function (enhancement) {
|
|
134
|
-
return enhancement.call(_assertThisInitialized(
|
|
177
|
+
return enhancement.call(_assertThisInitialized(_this2), props, WrapperComponent, false);
|
|
135
178
|
});
|
|
136
|
-
|
|
137
|
-
return
|
|
179
|
+
_this2[CORE_INIT] = true;
|
|
180
|
+
return _this2;
|
|
138
181
|
}
|
|
139
182
|
|
|
140
183
|
_createClass(Component, [{
|
|
141
184
|
key: "asProps",
|
|
142
185
|
get: function get() {
|
|
143
|
-
var
|
|
186
|
+
var _this3 = this;
|
|
144
187
|
|
|
145
188
|
// TODO if not production
|
|
146
189
|
if (!this[CORE_INIT]) {
|
|
@@ -150,7 +193,7 @@ function wrapClass(OriginComponent, enhancements, Context) {
|
|
|
150
193
|
if (!this[CORE_AS_PROPS]) {
|
|
151
194
|
// PROPS
|
|
152
195
|
this[CORE_AS_PROPS] = props.reduce(function (acc, enhancement) {
|
|
153
|
-
return enhancement.call(
|
|
196
|
+
return enhancement.call(_this3, acc, WrapperComponent, false);
|
|
154
197
|
}, this.props);
|
|
155
198
|
}
|
|
156
199
|
|
|
@@ -159,18 +202,18 @@ function wrapClass(OriginComponent, enhancements, Context) {
|
|
|
159
202
|
}, {
|
|
160
203
|
key: "setContext",
|
|
161
204
|
value: function setContext() {
|
|
162
|
-
var
|
|
205
|
+
var _this4 = this;
|
|
163
206
|
|
|
164
207
|
var contextProps = _get(_getPrototypeOf(Component.prototype), "setContext", this) ? _get(_getPrototypeOf(Component.prototype), "setContext", this).call(this) : {}; // CONTEXT
|
|
165
208
|
|
|
166
209
|
return contexts.reduce(function (acc, enhancement) {
|
|
167
|
-
return enhancement.call(
|
|
210
|
+
return enhancement.call(_this4, acc, WrapperComponent, false);
|
|
168
211
|
}, contextProps);
|
|
169
212
|
}
|
|
170
213
|
}, {
|
|
171
214
|
key: "render",
|
|
172
215
|
value: function render() {
|
|
173
|
-
var
|
|
216
|
+
var _this5 = this;
|
|
174
217
|
|
|
175
218
|
this[CORE_AS_PROPS] = null; // TODO if not production
|
|
176
219
|
|
|
@@ -182,7 +225,7 @@ function wrapClass(OriginComponent, enhancements, Context) {
|
|
|
182
225
|
var ctx = this.setContext(); // RENDER
|
|
183
226
|
|
|
184
227
|
var render = renders.reduce(function (acc, enhancement) {
|
|
185
|
-
return enhancement.call(
|
|
228
|
+
return enhancement.call(_this5, acc, asProps, WrapperComponent, false);
|
|
186
229
|
}, _get(_getPrototypeOf(Component.prototype), "render", this).call(this));
|
|
187
230
|
|
|
188
231
|
if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {
|
|
@@ -251,8 +294,8 @@ function wrapFunction(OriginComponent, enhancements, Context) {
|
|
|
251
294
|
}
|
|
252
295
|
|
|
253
296
|
function wrapCore(OriginComponent, enhancements, Context) {
|
|
254
|
-
var Component = function Component(
|
|
255
|
-
var Root =
|
|
297
|
+
var Component = function Component(_ref3) {
|
|
298
|
+
var Root = _ref3.Root;
|
|
256
299
|
return /*#__PURE__*/React.createElement(Root, {
|
|
257
300
|
render: OriginComponent
|
|
258
301
|
});
|
|
@@ -360,6 +403,6 @@ function createBaseComponent(OriginComponent) {
|
|
|
360
403
|
export * from './Component';
|
|
361
404
|
export * from './styled';
|
|
362
405
|
export * from './register';
|
|
363
|
-
export { createBaseComponent, register, CREATE_COMPONENT, CORE_INSTANCE, CONTEXT_COMPONENT, CHILDREN_COMPONENT, INHERITED_NAME, CORE_COMPONENT, STATIC_COMPONENT, assignProps };
|
|
406
|
+
export { createBaseComponent, register, CREATE_COMPONENT, CORE_INSTANCE, CONTEXT_COMPONENT, CHILDREN_COMPONENT, INHERITED_NAME, CORE_COMPONENT, STATIC_COMPONENT, ROOT_COMPONENT, assignProps };
|
|
364
407
|
export default createComponent;
|
|
365
408
|
//# sourceMappingURL=index.js.map
|
package/lib/es6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useRef","hoistNonReactStatics","useForkRef","useEnhancedEffect","_assignProps","Component","register","childrenEnhancement","CHILDREN_COMPONENT","rootEnhancement","uncontrolledPropsEnhancement","functionDefaultPropsEnhancement","staticChildrenEnhancement","STATIC_COMPONENT","inheritedNameEnhancement","INHERITED_NAME","hoistPropsEnhancement","dataNameEnhancement","enhanceEnhancement","styleEnhancement","bindHandlerEnhancement","CORE_COMPONENT","Symbol","CORE_INSTANCE","CORE_AS_PROPS","CORE_INIT","CONTEXT_COMPONENT","CREATE_COMPONENT","PARENT_COMPONENTS","isEmptyObject","obj","Object","getOwnPropertyNames","length","getOwnPropertySymbols","getPrototypeOf","prototype","createGetField","enhancements","isFunction","getField","key","filter","enhancement","condition","reduce","acc","item","push","createForwardWrapper","wrapperProps","statics","WrapperComponent","forwardRef","ref","other","enhancementRef","props","displayName","defaultProps","forEach","assign","wrapClass","OriginComponent","Context","inits","renders","contexts","context","call","Error","contextProps","asProps","ctx","setContext","render","wrapFunction","memo","FunctionMemoComponent","selfRef","firstRender","current","wrapCore","Root","createComposeComponent","PureComponent","isPrototypeOf","assignProps","p1","p2","createComponent","childComponents","options","createContext","parent","parents","Array","isArray","wholeFamily","map","f","_OriginComponent","_childComponents","_options","createBaseComponent"],"sources":["../../src/index.tsx"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes, useRef } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport _assignProps from '@semcore/utils/lib/assignProps';\n\nimport { Component, PropsWithRenderFnChildren } from './Component';\nimport register from './register';\n\nimport childrenEnhancement, { CHILDREN_COMPONENT } from './enhancement/Children';\nimport rootEnhancement from './enhancement/Root';\nimport uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';\nimport functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';\nimport staticChildrenEnhancement, { STATIC_COMPONENT } from './enhancement/staticChildren';\nimport inheritedNameEnhancement, { INHERITED_NAME } from './enhancement/inheritedName';\nimport hoistPropsEnhancement from './enhancement/hoistProps';\nimport dataNameEnhancement from './enhancement/dataName';\nimport enhanceEnhancement from './enhancement/enhance';\nimport styleEnhancement from './enhancement/style';\nimport bindHandlerEnhancement from './enhancement/bindHandler';\n\nconst CORE_COMPONENT = Symbol('CORE_COMPONENT');\nconst CORE_INSTANCE = Symbol('CORE_INSTANCE');\nconst CORE_AS_PROPS = Symbol('CORE_AS_PROPS');\nconst CORE_INIT = Symbol('CORE_INIT');\nconst CONTEXT_COMPONENT = Symbol('CONTEXT_COMPONENT');\nconst CREATE_COMPONENT = Symbol('CREATE_COMPONENT');\nconst PARENT_COMPONENTS = Symbol('PARENT_COMPONENTS');\n\nfunction isEmptyObject(obj) {\n return (\n Object.getOwnPropertyNames(obj).length === 0 &&\n Object.getOwnPropertySymbols && // For IE 11\n Object.getOwnPropertySymbols(obj).length === 0 &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n}\n\nfunction createGetField(enhancements, Component, isFunction) {\n return function getField(key) {\n return enhancements\n .filter((enhancement) => {\n if (!enhancement.condition) {\n return true;\n }\n return enhancement.condition(Component, isFunction);\n })\n .reduce((acc, item) => {\n if (item[key]) {\n acc.push(item[key]);\n }\n return acc;\n }, []);\n };\n}\n\nfunction createForwardWrapper(Component, wrapperProps, statics, isFunction) {\n // @ts-ignore\n const WrapperComponent = React.forwardRef(function ({ forwardRef = null, ...other }, ref) {\n // WRAPPER PROPS\n const { ref: enhancementRef = null, ...props } = wrapperProps.reduce(\n (acc, enhancement) => enhancement(acc, WrapperComponent, isFunction),\n other,\n );\n // @ts-ignore\n return <Component {...props} forwardRef={useForkRef(enhancementRef, ref, forwardRef)} />;\n });\n\n hoistNonReactStatics(WrapperComponent, Component);\n\n WrapperComponent.displayName = Component.displayName;\n // TODO: defaultProps is only empty\n WrapperComponent.defaultProps = Component.defaultProps;\n // STATIC\n statics.forEach((enhancement) =>\n Object.assign(WrapperComponent, enhancement(WrapperComponent, isFunction)),\n );\n\n return WrapperComponent;\n}\n\nfunction wrapClass(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, false);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n class Component extends OriginComponent {\n [CORE_AS_PROPS] = null;\n [CORE_INSTANCE] = WrapperComponent;\n [CORE_INIT] = false;\n\n constructor(props, context) {\n super(props, context);\n // INITS\n inits.forEach((enhancement) => enhancement.call(this, props, WrapperComponent, false));\n this[CORE_INIT] = true;\n }\n\n get asProps() {\n // TODO if not production\n if (!this[CORE_INIT]) {\n throw new Error('Can not call asProps in constructor');\n }\n if (!this[CORE_AS_PROPS]) {\n // PROPS\n this[CORE_AS_PROPS] = props.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n this.props,\n );\n }\n return this[CORE_AS_PROPS];\n }\n\n setContext() {\n const contextProps = super.setContext ? super.setContext() : {};\n // CONTEXT\n return contexts.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n contextProps,\n );\n }\n\n render() {\n this[CORE_AS_PROPS] = null;\n // TODO if not production\n if (!super.render) {\n throw new Error('Component `render` method is not defined');\n }\n const asProps = this.asProps;\n const ctx = this.setContext();\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(this, acc, asProps, WrapperComponent, false),\n super.render(),\n );\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n }\n }\n\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, false);\n return WrapperComponent;\n}\n\nfunction wrapFunction(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, true);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n const Component = React.memo(function FunctionMemoComponent(other) {\n const selfRef = useRef({});\n const firstRender = useRef(true);\n useEnhancedEffect(() => {\n firstRender.current = false;\n }, []);\n if (firstRender.current) {\n // INITS\n inits.forEach((enhancement) =>\n enhancement.call(selfRef.current, other, WrapperComponent, true),\n );\n }\n // PROPS\n const asProps = props.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n other,\n );\n // CONTEXT\n const ctx = contexts.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n {},\n );\n\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, asProps, WrapperComponent, true),\n <OriginComponent {...asProps} />,\n );\n\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n });\n Object.assign(Component, OriginComponent);\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, true);\n return WrapperComponent;\n}\n\nfunction wrapCore(OriginComponent, enhancements, Context) {\n const Component = function ({ Root }) {\n return <Root render={OriginComponent} />;\n };\n hoistNonReactStatics(Component, OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = OriginComponent.defaultProps;\n return wrapFunction(Component, enhancements, Context);\n}\n\nfunction createComposeComponent(OriginComponent, Context, enhancements): any {\n if (\n React.PureComponent.isPrototypeOf(OriginComponent) ||\n React.Component.isPrototypeOf(OriginComponent)\n ) {\n if (OriginComponent.prototype instanceof Component) {\n return wrapClass(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must inherit from our component');\n }\n } else if (typeof OriginComponent === 'function') {\n return wrapFunction(OriginComponent, enhancements, Context);\n } else if (OriginComponent[CORE_COMPONENT]) {\n return wrapCore(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must be a React component');\n }\n}\n\nexport type PropsAndRef<T, Ctx, UCProps> = PropsWithRenderFnChildren<T, Ctx, UCProps> &\n RefAttributes<unknown>;\nexport type ForwardRefComponent<T, Ctx, UCProps> = ForwardRefExoticComponent<\n PropsAndRef<T, Ctx, UCProps>\n>;\ntype ComponentOrProps<T, Context, UCProps> = T extends [infer ParentProps, infer ChildProps]\n ? ComponentType<ParentProps, ChildProps, Context, UCProps>\n : ForwardRefComponent<T, Context, UCProps>;\n\nexport type ComponentType<\n ComponentProps,\n ChildComponentProps = {},\n ContextType = {},\n UCProps = {},\n FNType = null,\n> = (FNType extends null\n ? ForwardRefComponent<ComponentProps, ContextType, UCProps>\n : FNType & { displayName: string }) & {\n [K in keyof ChildComponentProps]: ComponentOrProps<ChildComponentProps[K], ContextType, UCProps>;\n} & {\n [CORE_COMPONENT]: boolean;\n [CREATE_COMPONENT]: () => ComponentType<\n ComponentProps,\n ChildComponentProps,\n ContextType,\n UCProps\n >;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ninterface ClassWithUncontrolledProps<Props> {\n uncontrolledProps(): unknown;\n}\n\nfunction assignProps(p1, p2) {\n return _assignProps(p2, p1);\n}\n\nfunction createComponent<ComponentProps, ChildComponentProps = {}, ContextType = {}, FNType = null>(\n OriginComponent,\n childComponents = {},\n options: {\n context?: React.Context<ContextType>;\n parent?: ComponentType<unknown> | ComponentType<unknown>[];\n enhancements?: [any];\n } = {},\n): ComponentType<\n ComponentProps extends Component<infer Props> ? Props : ComponentProps,\n ChildComponentProps,\n ContextType,\n ComponentProps extends ClassWithUncontrolledProps<any>\n ? ReturnType<ComponentProps['uncontrolledProps']>\n : { [key: string]: (arg: unknown) => void },\n FNType\n> {\n const {\n context = React.createContext<ContextType>({} as ContextType),\n parent = [],\n enhancements = [],\n } = options;\n let parents = Array.isArray(parent) ? parent : [parent];\n if (parents.length) {\n const wholeFamily = parents.reduce((acc, parent) => {\n if (parent[PARENT_COMPONENTS]) {\n acc = [...parent[PARENT_COMPONENTS], ...acc];\n }\n return acc;\n }, parents);\n OriginComponent[PARENT_COMPONENTS] = wholeFamily;\n parents = wholeFamily;\n }\n if (OriginComponent[CORE_COMPONENT]) {\n parents.push(OriginComponent);\n }\n const Component = createComposeComponent(OriginComponent, context, [\n // @ts-ignore\n ...enhancements.map((f) => f(context, parents, createComponent, childComponents)),\n bindHandlerEnhancement(),\n childrenEnhancement(context, parents),\n // root must be under the children\n rootEnhancement(),\n uncontrolledPropsEnhancement(),\n staticChildrenEnhancement(childComponents, createComponent, {\n context,\n parent,\n enhancements,\n }),\n // functionDefaultProps must be under the staticChild\n functionDefaultPropsEnhancement(),\n // inheritedName must be under the staticChild\n inheritedNameEnhancement(),\n // dataName must be under the staticChild\n dataNameEnhancement(),\n // enhanceEnhancement must be under the functionDefaultPropsEnhancement\n enhanceEnhancement(),\n styleEnhancement(childComponents, context),\n // must be the last one so any properties can be raised\n hoistPropsEnhancement(childComponents, context),\n ]);\n Component[CONTEXT_COMPONENT] = context;\n Component[CREATE_COMPONENT] = function (\n _OriginComponent = OriginComponent,\n _childComponents = childComponents,\n _options = options,\n ) {\n return createComponent(_OriginComponent, _childComponents, _options);\n };\n Component[CORE_COMPONENT] = true;\n return Component;\n}\n\nfunction createBaseComponent<ComponentProps>(OriginComponent): ComponentType<ComponentProps> {\n let Component = null;\n if (\n !React.PureComponent.isPrototypeOf(OriginComponent) &&\n !React.Component.isPrototypeOf(OriginComponent) &&\n typeof OriginComponent === 'function'\n ) {\n Component = React.forwardRef(OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = {\n 'data-ui-name': OriginComponent.displayName,\n ...OriginComponent.defaultProps,\n };\n Component[CORE_COMPONENT] = true;\n } else {\n throw new Error('createBaseComponent accepts only functional component');\n }\n return Component;\n}\n\nexport * from './Component';\nexport * from './styled';\nexport * from './register';\nexport {\n createBaseComponent,\n register,\n CREATE_COMPONENT,\n CORE_INSTANCE,\n CONTEXT_COMPONENT,\n CHILDREN_COMPONENT,\n INHERITED_NAME,\n CORE_COMPONENT,\n STATIC_COMPONENT,\n assignProps,\n};\nexport default createComponent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useRef","hoistNonReactStatics","useForkRef","useEnhancedEffect","_assignProps","Component","register","childrenEnhancement","CHILDREN_COMPONENT","rootEnhancement","uncontrolledPropsEnhancement","functionDefaultPropsEnhancement","staticChildrenEnhancement","STATIC_COMPONENT","ROOT_COMPONENT","getterMethodNameByDisplayName","inheritedNameEnhancement","INHERITED_NAME","hoistPropsEnhancement","dataNameEnhancement","enhanceEnhancement","styleEnhancement","bindHandlerEnhancement","CORE_COMPONENT","Symbol","CORE_INSTANCE","CORE_AS_PROPS","CORE_INIT","CONTEXT_COMPONENT","CREATE_COMPONENT","PARENT_COMPONENTS","isEmptyObject","obj","Object","getOwnPropertyNames","length","getOwnPropertySymbols","getPrototypeOf","prototype","createGetField","enhancements","isFunction","getField","key","filter","enhancement","condition","reduce","acc","item","push","createForwardWrapper","wrapperProps","statics","RootComponent","getterMethodName","displayName","getterMethod","undefined","useGetterIndex","WrapperForwardRefWithBind","ref","forwardRef","other","WrapperForwardRef","__WRAPPER_PROPS_BIND__","WrapperComponent","enhancementRef","props","BindingWrapper","map","fn","bind","defaultProps","forEach","assign","wrapClass","OriginComponent","Context","inits","renders","contexts","context","call","Error","contextProps","asProps","ctx","setContext","render","wrapFunction","memo","FunctionMemoComponent","selfRef","firstRender","current","wrapCore","Root","createComposeComponent","PureComponent","isPrototypeOf","assignProps","p1","p2","createComponent","childComponents","options","createContext","parent","parents","Array","isArray","wholeFamily","f","_OriginComponent","_childComponents","_options","createBaseComponent"],"sources":["../../src/index.tsx"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes, useRef } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport _assignProps from '@semcore/utils/lib/assignProps';\n\nimport { Component, PropsWithRenderFnChildren } from './Component';\nimport register from './register';\n\nimport childrenEnhancement, { CHILDREN_COMPONENT } from './enhancement/Children';\nimport rootEnhancement from './enhancement/Root';\nimport uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';\nimport functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';\nimport staticChildrenEnhancement, {\n STATIC_COMPONENT,\n ROOT_COMPONENT,\n getterMethodNameByDisplayName,\n} from './enhancement/staticChildren';\nimport inheritedNameEnhancement, { INHERITED_NAME } from './enhancement/inheritedName';\nimport hoistPropsEnhancement from './enhancement/hoistProps';\nimport dataNameEnhancement from './enhancement/dataName';\nimport enhanceEnhancement from './enhancement/enhance';\nimport styleEnhancement from './enhancement/style';\nimport bindHandlerEnhancement from './enhancement/bindHandler';\n\nconst CORE_COMPONENT = Symbol('CORE_COMPONENT');\nconst CORE_INSTANCE = Symbol('CORE_INSTANCE');\nconst CORE_AS_PROPS = Symbol('CORE_AS_PROPS');\nconst CORE_INIT = Symbol('CORE_INIT');\nconst CONTEXT_COMPONENT = Symbol('CONTEXT_COMPONENT');\nconst CREATE_COMPONENT = Symbol('CREATE_COMPONENT');\nconst PARENT_COMPONENTS = Symbol('PARENT_COMPONENTS');\n\nfunction isEmptyObject(obj) {\n return (\n Object.getOwnPropertyNames(obj).length === 0 &&\n Object.getOwnPropertySymbols && // For IE 11\n Object.getOwnPropertySymbols(obj).length === 0 &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n}\n\nfunction createGetField(enhancements, Component, isFunction) {\n return function getField(key) {\n return enhancements\n .filter((enhancement) => {\n if (!enhancement.condition) {\n return true;\n }\n return enhancement.condition(Component, isFunction);\n })\n .reduce((acc, item) => {\n if (item[key]) {\n acc.push(item[key]);\n }\n return acc;\n }, []);\n };\n}\n\nfunction createForwardWrapper(Component, wrapperProps, statics, isFunction) {\n const RootComponent = Component[ROOT_COMPONENT];\n const getterMethodName = getterMethodNameByDisplayName(Component?.displayName);\n const getterMethod = RootComponent?.prototype\n ? RootComponent.prototype[getterMethodName]\n : undefined;\n const useGetterIndex = getterMethod?.length >= 2;\n\n function WrapperForwardRefWithBind({ forwardRef = null, ...other }, ref) {\n return <BindingWrapper {...other} forwardRef={useForkRef(ref, forwardRef)} />;\n }\n\n function WrapperForwardRef({ forwardRef = null, __WRAPPER_PROPS_BIND__, ...other }, ref) {\n const { ref: enhancementRef = null, ...props } = (\n __WRAPPER_PROPS_BIND__ || wrapperProps\n ).reduce((acc, enhancement) => enhancement(acc, WrapperComponent, isFunction), other);\n return <Component {...props} forwardRef={useForkRef(enhancementRef, ref, forwardRef)} />;\n }\n\n class BindingWrapper extends React.Component<any> {\n render() {\n return (\n <WrapperForwardRef\n {...this.props}\n __WRAPPER_PROPS_BIND__={wrapperProps.map((fn) => fn.bind(this))}\n />\n );\n }\n }\n\n const WrapperComponent = React.forwardRef(\n useGetterIndex ? WrapperForwardRefWithBind : WrapperForwardRef,\n );\n\n hoistNonReactStatics(WrapperComponent, Component);\n\n WrapperComponent.displayName = Component.displayName;\n // TODO: defaultProps is only empty\n WrapperComponent.defaultProps = Component.defaultProps;\n // STATIC\n statics.forEach((enhancement) =>\n Object.assign(WrapperComponent, enhancement(WrapperComponent, Component, isFunction)),\n );\n\n return WrapperComponent;\n}\n\nfunction wrapClass(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, false);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n class Component extends OriginComponent {\n [CORE_AS_PROPS] = null;\n [CORE_INSTANCE] = WrapperComponent;\n [CORE_INIT] = false;\n\n constructor(props, context) {\n super(props, context);\n // INITS\n inits.forEach((enhancement) => enhancement.call(this, props, WrapperComponent, false));\n this[CORE_INIT] = true;\n }\n\n get asProps() {\n // TODO if not production\n if (!this[CORE_INIT]) {\n throw new Error('Can not call asProps in constructor');\n }\n if (!this[CORE_AS_PROPS]) {\n // PROPS\n this[CORE_AS_PROPS] = props.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n this.props,\n );\n }\n return this[CORE_AS_PROPS];\n }\n\n setContext() {\n const contextProps = super.setContext ? super.setContext() : {};\n // CONTEXT\n return contexts.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n contextProps,\n );\n }\n\n render() {\n this[CORE_AS_PROPS] = null;\n // TODO if not production\n if (!super.render) {\n throw new Error('Component `render` method is not defined');\n }\n const asProps = this.asProps;\n const ctx = this.setContext();\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(this, acc, asProps, WrapperComponent, false),\n super.render(),\n );\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n }\n }\n\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, false);\n return WrapperComponent;\n}\n\nfunction wrapFunction(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, true);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n const Component = React.memo(function FunctionMemoComponent(other) {\n const selfRef = useRef({});\n const firstRender = useRef(true);\n useEnhancedEffect(() => {\n firstRender.current = false;\n }, []);\n if (firstRender.current) {\n // INITS\n inits.forEach((enhancement) =>\n enhancement.call(selfRef.current, other, WrapperComponent, true),\n );\n }\n // PROPS\n const asProps = props.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n other,\n );\n // CONTEXT\n const ctx = contexts.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n {},\n );\n\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, asProps, WrapperComponent, true),\n <OriginComponent {...asProps} />,\n );\n\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n });\n Object.assign(Component, OriginComponent);\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, true);\n return WrapperComponent;\n}\n\nfunction wrapCore(OriginComponent, enhancements, Context) {\n const Component = function ({ Root }) {\n return <Root render={OriginComponent} />;\n };\n hoistNonReactStatics(Component, OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = OriginComponent.defaultProps;\n return wrapFunction(Component, enhancements, Context);\n}\n\nfunction createComposeComponent(OriginComponent, Context, enhancements): any {\n if (\n React.PureComponent.isPrototypeOf(OriginComponent) ||\n React.Component.isPrototypeOf(OriginComponent)\n ) {\n if (OriginComponent.prototype instanceof Component) {\n return wrapClass(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must inherit from our component');\n }\n } else if (typeof OriginComponent === 'function') {\n return wrapFunction(OriginComponent, enhancements, Context);\n } else if (OriginComponent[CORE_COMPONENT]) {\n return wrapCore(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must be a React component');\n }\n}\n\nexport type PropsAndRef<T, Ctx, UCProps> = PropsWithRenderFnChildren<T, Ctx, UCProps> &\n RefAttributes<unknown>;\nexport type ForwardRefComponent<T, Ctx, UCProps> = ForwardRefExoticComponent<\n PropsAndRef<T, Ctx, UCProps>\n>;\ntype ComponentOrProps<T, Context, UCProps> = T extends [infer ParentProps, infer ChildProps]\n ? ComponentType<ParentProps, ChildProps, Context, UCProps>\n : ForwardRefComponent<T, Context, UCProps>;\n\nexport type ComponentType<\n ComponentProps,\n ChildComponentProps = {},\n ContextType = {},\n UCProps = {},\n FNType = null,\n> = (FNType extends null\n ? ForwardRefComponent<ComponentProps, ContextType, UCProps>\n : FNType & { displayName: string }) & {\n [K in keyof ChildComponentProps]: ComponentOrProps<ChildComponentProps[K], ContextType, UCProps>;\n} & {\n [CORE_COMPONENT]: boolean;\n [CREATE_COMPONENT]: () => ComponentType<\n ComponentProps,\n ChildComponentProps,\n ContextType,\n UCProps\n >;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ninterface ClassWithUncontrolledProps<Props> {\n uncontrolledProps(): unknown;\n}\n\nfunction assignProps(p1, p2) {\n return _assignProps(p2, p1);\n}\n\nfunction createComponent<ComponentProps, ChildComponentProps = {}, ContextType = {}, FNType = null>(\n OriginComponent,\n childComponents = {},\n options: {\n context?: React.Context<ContextType>;\n parent?: ComponentType<unknown> | ComponentType<unknown>[];\n enhancements?: [any];\n } = {},\n): ComponentType<\n ComponentProps extends Component<infer Props> ? Props : ComponentProps,\n ChildComponentProps,\n ContextType,\n ComponentProps extends ClassWithUncontrolledProps<any>\n ? ReturnType<ComponentProps['uncontrolledProps']>\n : { [key: string]: (arg: unknown) => void },\n FNType\n> {\n const {\n context = React.createContext<ContextType>({} as ContextType),\n parent = [],\n enhancements = [],\n } = options;\n let parents = Array.isArray(parent) ? parent : [parent];\n if (parents.length) {\n const wholeFamily = parents.reduce((acc, parent) => {\n if (parent[PARENT_COMPONENTS]) {\n acc = [...parent[PARENT_COMPONENTS], ...acc];\n }\n return acc;\n }, parents);\n OriginComponent[PARENT_COMPONENTS] = wholeFamily;\n parents = wholeFamily;\n }\n if (OriginComponent[CORE_COMPONENT]) {\n parents.push(OriginComponent);\n }\n const Component = createComposeComponent(OriginComponent, context, [\n // @ts-ignore\n ...enhancements.map((f) => f(context, parents, createComponent, childComponents)),\n bindHandlerEnhancement(),\n childrenEnhancement(context, parents),\n // root must be under the children\n rootEnhancement(),\n uncontrolledPropsEnhancement(),\n staticChildrenEnhancement(childComponents, createComponent, {\n context,\n parent,\n enhancements,\n }),\n // functionDefaultProps must be under the staticChild\n functionDefaultPropsEnhancement(),\n // inheritedName must be under the staticChild\n inheritedNameEnhancement(),\n // dataName must be under the staticChild\n dataNameEnhancement(),\n // enhanceEnhancement must be under the functionDefaultPropsEnhancement\n enhanceEnhancement(),\n styleEnhancement(childComponents, context),\n // must be the last one so any properties can be raised\n hoistPropsEnhancement(childComponents, context),\n ]);\n Component[CONTEXT_COMPONENT] = context;\n Component[CREATE_COMPONENT] = function (\n _OriginComponent = OriginComponent,\n _childComponents = childComponents,\n _options = options,\n ) {\n return createComponent(_OriginComponent, _childComponents, _options);\n };\n Component[CORE_COMPONENT] = true;\n return Component;\n}\n\nfunction createBaseComponent<ComponentProps>(OriginComponent): ComponentType<ComponentProps> {\n let Component = null;\n if (\n !React.PureComponent.isPrototypeOf(OriginComponent) &&\n !React.Component.isPrototypeOf(OriginComponent) &&\n typeof OriginComponent === 'function'\n ) {\n Component = React.forwardRef(OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = {\n 'data-ui-name': OriginComponent.displayName,\n ...OriginComponent.defaultProps,\n };\n Component[CORE_COMPONENT] = true;\n } else {\n throw new Error('createBaseComponent accepts only functional component');\n }\n return Component;\n}\n\nexport * from './Component';\nexport * from './styled';\nexport * from './register';\nexport {\n createBaseComponent,\n register,\n CREATE_COMPONENT,\n CORE_INSTANCE,\n CONTEXT_COMPONENT,\n CHILDREN_COMPONENT,\n INHERITED_NAME,\n CORE_COMPONENT,\n STATIC_COMPONENT,\n ROOT_COMPONENT,\n assignProps,\n};\nexport default createComponent;\n"],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
export declare function getterMethodName(name: any): string;
|
|
2
|
+
export declare function getterMethodNameByDisplayName(displayName?: string): string;
|
|
1
3
|
export declare const STATIC_COMPONENT: unique symbol;
|
|
4
|
+
export declare const ROOT_COMPONENT: unique symbol;
|
|
2
5
|
declare function Enhancement(childComponents: any, createComponent: any, options: any): {
|
|
3
6
|
condition: (Component: any) => boolean;
|
|
4
7
|
init: (props: any, WrapperComponent: any) => void;
|
|
5
|
-
static: (WrapperComponent: any) => {};
|
|
8
|
+
static: (WrapperComponent: any, Component: any) => {};
|
|
6
9
|
context: (context: any) => any;
|
|
7
10
|
wrapperProps: (props: any, WrapperComponent: any) => any;
|
|
8
11
|
render: (render: any) => any;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import React, { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
|
2
2
|
import { Component, PropsWithRenderFnChildren } from './Component';
|
|
3
3
|
import register from './register';
|
|
4
4
|
import { CHILDREN_COMPONENT } from './enhancement/Children';
|
|
5
|
-
import { STATIC_COMPONENT } from './enhancement/staticChildren';
|
|
5
|
+
import { STATIC_COMPONENT, ROOT_COMPONENT } from './enhancement/staticChildren';
|
|
6
6
|
import { INHERITED_NAME } from './enhancement/inheritedName';
|
|
7
7
|
declare const CORE_COMPONENT: unique symbol;
|
|
8
8
|
declare const CORE_INSTANCE: unique symbol;
|
|
@@ -34,5 +34,5 @@ declare function createBaseComponent<ComponentProps>(OriginComponent: any): Comp
|
|
|
34
34
|
export * from './Component';
|
|
35
35
|
export * from './styled';
|
|
36
36
|
export * from './register';
|
|
37
|
-
export { createBaseComponent, register, CREATE_COMPONENT, CORE_INSTANCE, CONTEXT_COMPONENT, CHILDREN_COMPONENT, INHERITED_NAME, CORE_COMPONENT, STATIC_COMPONENT, assignProps, };
|
|
37
|
+
export { createBaseComponent, register, CREATE_COMPONENT, CORE_INSTANCE, CONTEXT_COMPONENT, CHILDREN_COMPONENT, INHERITED_NAME, CORE_COMPONENT, STATIC_COMPONENT, ROOT_COMPONENT, assignProps, };
|
|
38
38
|
export default createComponent;
|