@semcore/core 1.14.6 → 1.14.7

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/lib/cjs/Component.js +0 -16
  3. package/lib/cjs/Component.js.map +1 -1
  4. package/lib/cjs/enhancement/Children.js +17 -42
  5. package/lib/cjs/enhancement/Children.js.map +1 -1
  6. package/lib/cjs/enhancement/Root.js +15 -33
  7. package/lib/cjs/enhancement/Root.js.map +1 -1
  8. package/lib/cjs/enhancement/bindHandler.js +0 -11
  9. package/lib/cjs/enhancement/bindHandler.js.map +1 -1
  10. package/lib/cjs/enhancement/dataName.js +0 -4
  11. package/lib/cjs/enhancement/dataName.js.map +1 -1
  12. package/lib/cjs/enhancement/enhance.js +0 -2
  13. package/lib/cjs/enhancement/enhance.js.map +1 -1
  14. package/lib/cjs/enhancement/functionDefaultProps.js +0 -5
  15. package/lib/cjs/enhancement/functionDefaultProps.js.map +1 -1
  16. package/lib/cjs/enhancement/hoistProps.js +10 -27
  17. package/lib/cjs/enhancement/hoistProps.js.map +1 -1
  18. package/lib/cjs/enhancement/inheritedName.js +0 -6
  19. package/lib/cjs/enhancement/inheritedName.js.map +1 -1
  20. package/lib/cjs/enhancement/staticChildren.js +14 -45
  21. package/lib/cjs/enhancement/staticChildren.js.map +1 -1
  22. package/lib/cjs/enhancement/style.js +4 -16
  23. package/lib/cjs/enhancement/style.js.map +1 -1
  24. package/lib/cjs/enhancement/uncontrolledProps.js +16 -49
  25. package/lib/cjs/enhancement/uncontrolledProps.js.map +1 -1
  26. package/lib/cjs/index.js +49 -134
  27. package/lib/cjs/index.js.map +1 -1
  28. package/lib/cjs/register.js +0 -9
  29. package/lib/cjs/register.js.map +1 -1
  30. package/lib/cjs/styled/index.js +0 -5
  31. package/lib/cjs/styled/index.js.map +1 -1
  32. package/lib/cjs/styled/sstyled.js +16 -55
  33. package/lib/cjs/styled/sstyled.js.map +1 -1
  34. package/lib/es6/Component.js +0 -11
  35. package/lib/es6/Component.js.map +1 -1
  36. package/lib/es6/enhancement/Children.js +17 -36
  37. package/lib/es6/enhancement/Children.js.map +1 -1
  38. package/lib/es6/enhancement/Root.js +19 -30
  39. package/lib/es6/enhancement/Root.js.map +1 -1
  40. package/lib/es6/enhancement/bindHandler.js +0 -10
  41. package/lib/es6/enhancement/bindHandler.js.map +1 -1
  42. package/lib/es6/enhancement/dataName.js +0 -2
  43. package/lib/es6/enhancement/dataName.js.map +1 -1
  44. package/lib/es6/enhancement/enhance.js +0 -1
  45. package/lib/es6/enhancement/enhance.js.map +1 -1
  46. package/lib/es6/enhancement/functionDefaultProps.js +0 -4
  47. package/lib/es6/enhancement/functionDefaultProps.js.map +1 -1
  48. package/lib/es6/enhancement/hoistProps.js +13 -23
  49. package/lib/es6/enhancement/hoistProps.js.map +1 -1
  50. package/lib/es6/enhancement/inheritedName.js +0 -2
  51. package/lib/es6/enhancement/inheritedName.js.map +1 -1
  52. package/lib/es6/enhancement/staticChildren.js +17 -41
  53. package/lib/es6/enhancement/staticChildren.js.map +1 -1
  54. package/lib/es6/enhancement/style.js +6 -12
  55. package/lib/es6/enhancement/style.js.map +1 -1
  56. package/lib/es6/enhancement/uncontrolledProps.js +16 -42
  57. package/lib/es6/enhancement/uncontrolledProps.js.map +1 -1
  58. package/lib/es6/index.js +55 -110
  59. package/lib/es6/index.js.map +1 -1
  60. package/lib/es6/register.js +0 -5
  61. package/lib/es6/register.js.map +1 -1
  62. package/lib/es6/styled/index.js.map +1 -1
  63. package/lib/es6/styled/sstyled.js +14 -49
  64. package/lib/es6/styled/sstyled.js.map +1 -1
  65. package/package.json +1 -1
@@ -1,135 +1,106 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
15
-
16
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
-
18
12
  var _toPropertyKey2 = _interopRequireDefault(require("@babel/runtime/helpers/toPropertyKey"));
19
-
20
13
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
21
-
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
15
  var _assignProps = require("@semcore/utils/lib/assignProps");
25
-
26
16
  var _capitalizeFirstLetter = _interopRequireDefault(require("@semcore/utils/lib/capitalizeFirstLetter"));
27
-
28
17
  // @ts-ignore
18
+
29
19
  // @ts-ignore
20
+
30
21
  function assign(target, source) {
31
22
  return Object.defineProperties(target, Object.keys(source).reduce(function (descriptors, key) {
32
23
  descriptors[key] = Object.getOwnPropertyDescriptor(source, key);
33
24
  return descriptors;
34
25
  }, {}));
35
26
  }
36
-
37
27
  function defaultProp(prop) {
38
28
  return 'default' + (0, _capitalizeFirstLetter["default"])(prop);
39
29
  }
40
-
41
30
  function handlerProp(prop) {
42
31
  if (prop === 'value') prop = '';
43
32
  if (prop === 'checked') prop = '';
44
33
  return "on".concat((0, _capitalizeFirstLetter["default"])(prop), "Change");
45
34
  }
46
-
47
35
  function isControlled(propValue) {
48
36
  return propValue !== undefined;
49
37
  }
50
-
51
38
  function uncontrolledProp(self, propName, propValue, propDefaultValue, propHandler, chainHandler) {
52
39
  function getValue() {
53
40
  return isControlled(propValue) ? propValue : propName in self.state ? self.state[propName] : propDefaultValue;
54
41
  }
55
-
56
42
  return [getValue(), function (value) {
57
43
  var oldValue = getValue();
58
44
  if (oldValue === value) return false;
59
45
  if (!isControlled(propValue)) self.setState((0, _defineProperty2["default"])({}, propName, value));
60
-
61
46
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
62
47
  args[_key - 1] = arguments[_key];
63
48
  }
64
-
65
49
  return _assignProps.callAllEventHandlers.apply(void 0, [propHandler].concat((0, _toConsumableArray2["default"])(chainHandler))).apply(void 0, [value].concat(args));
66
50
  }];
67
51
  }
68
-
69
52
  function uncontrolledUniversal(props, config, uncontrolledProp) {
70
53
  var handlerProps = {};
71
54
  var uncontrolledProps = Object.keys(config).reduce(function (result, propName) {
72
55
  var _objectSpread2;
73
-
74
56
  var handlerName = handlerProp(propName);
75
57
  var defaultPropName = defaultProp(propName);
76
58
  var propDefaultValue = result[defaultPropName],
77
- propValue = result[propName],
78
- propHandler = result[handlerName],
79
- other = (0, _objectWithoutProperties2["default"])(result, [defaultPropName, propName, handlerName].map(_toPropertyKey2["default"]));
80
-
59
+ propValue = result[propName],
60
+ propHandler = result[handlerName],
61
+ other = (0, _objectWithoutProperties2["default"])(result, [defaultPropName, propName, handlerName].map(_toPropertyKey2["default"]));
81
62
  if (propDefaultValue === undefined) {
82
63
  // eslint-disable-next-line no-console
83
64
  console.warn(defaultPropName, 'must be installed in "defaultProps"');
84
- } // if (typeof propDefaultValue === 'function' && propDefaultValue.defaultInit) {
65
+ }
66
+
67
+ // if (typeof propDefaultValue === 'function' && propDefaultValue.defaultInit) {
85
68
  // propDefaultValue = propDefaultValue(result);
86
69
  // }
87
70
 
88
-
89
71
  var setter = config[propName];
90
72
  var chainHandler = [];
91
-
92
73
  if (Array.isArray(setter)) {
93
74
  var _setter = setter;
94
-
95
75
  var _setter2 = (0, _toArray2["default"])(_setter);
96
-
97
76
  setter = _setter2[0];
98
77
  chainHandler = _setter2.slice(1);
99
78
  }
100
-
101
79
  setter = setter || function (v) {
102
80
  return v;
103
81
  };
104
-
105
82
  var _uncontrolledProp = uncontrolledProp(propName, propValue, propDefaultValue, propHandler, chainHandler),
106
- _uncontrolledProp2 = (0, _slicedToArray2["default"])(_uncontrolledProp, 2),
107
- value = _uncontrolledProp2[0],
108
- handler = _uncontrolledProp2[1]; // TODO: need to warn about recursion (by lsroman)
109
-
110
-
83
+ _uncontrolledProp2 = (0, _slicedToArray2["default"])(_uncontrolledProp, 2),
84
+ value = _uncontrolledProp2[0],
85
+ handler = _uncontrolledProp2[1];
86
+ // TODO: need to warn about recursion (by lsroman)
111
87
  handlerProps[propName] = handler;
112
88
  return (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, other), {}, (_objectSpread2 = {}, (0, _defineProperty2["default"])(_objectSpread2, propName, value), (0, _defineProperty2["default"])(_objectSpread2, handlerName, function (eventOrValue) {
113
89
  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
114
90
  args[_key2 - 1] = arguments[_key2];
115
91
  }
116
-
117
92
  var result = [setter.apply(void 0, [eventOrValue].concat(args))].concat(args);
118
-
119
93
  if (eventOrValue && eventOrValue.target) {
120
94
  result.push(eventOrValue);
121
95
  }
122
-
123
96
  return handler.apply(void 0, (0, _toConsumableArray2["default"])(result));
124
97
  }), _objectSpread2));
125
98
  }, props);
126
99
  return [uncontrolledProps, handlerProps];
127
100
  }
128
-
129
101
  function uncontrolled(self, props, config) {
130
102
  return uncontrolledUniversal(props, config, uncontrolledProp.bind(undefined, self));
131
103
  }
132
-
133
104
  function Enhancement() {
134
105
  return {
135
106
  condition: function condition(Component) {
@@ -140,12 +111,10 @@ function Enhancement() {
140
111
  assign(this, {
141
112
  get handlers() {
142
113
  var _uncontrolled = uncontrolled(this, this.props, this.uncontrolledProps()),
143
- _uncontrolled2 = (0, _slicedToArray2["default"])(_uncontrolled, 2),
144
- uncontrolledHandlers = _uncontrolled2[1];
145
-
114
+ _uncontrolled2 = (0, _slicedToArray2["default"])(_uncontrolled, 2),
115
+ uncontrolledHandlers = _uncontrolled2[1];
146
116
  return uncontrolledHandlers;
147
117
  }
148
-
149
118
  });
150
119
  },
151
120
  context: function context(_context) {
@@ -156,14 +125,12 @@ function Enhancement() {
156
125
  asProps: function asProps(props) {
157
126
  // TODO: need to omit unneccessary props (by lsroman)
158
127
  var _uncontrolled3 = uncontrolled(this, props, this.uncontrolledProps()),
159
- _uncontrolled4 = (0, _slicedToArray2["default"])(_uncontrolled3, 1),
160
- uncontrolledProps = _uncontrolled4[0];
161
-
128
+ _uncontrolled4 = (0, _slicedToArray2["default"])(_uncontrolled3, 1),
129
+ uncontrolledProps = _uncontrolled4[0];
162
130
  return uncontrolledProps;
163
131
  }
164
132
  };
165
133
  }
166
-
167
134
  var _default = Enhancement;
168
135
  exports["default"] = _default;
169
136
  //# sourceMappingURL=uncontrolledProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uncontrolledProps.js","names":["assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","capitalizeFirstLetter","handlerProp","isControlled","propValue","undefined","uncontrolledProp","self","propName","propDefaultValue","propHandler","chainHandler","getValue","state","value","oldValue","setState","args","callAllEventHandlers","uncontrolledUniversal","props","config","handlerProps","uncontrolledProps","result","handlerName","defaultPropName","other","console","warn","setter","Array","isArray","v","handler","eventOrValue","push","uncontrolled","bind","Enhancement","condition","Component","Boolean","prototype","init","handlers","uncontrolledHandlers","context","asProps"],"sources":["../../../src/enhancement/uncontrolledProps.tsx"],"sourcesContent":["// @ts-ignore\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport capitalizeFirstLetter from '@semcore/utils/lib/capitalizeFirstLetter';\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 defaultProp(prop) {\n return 'default' + capitalizeFirstLetter(prop);\n}\n\nfunction handlerProp(prop) {\n if (prop === 'value') prop = '';\n if (prop === 'checked') prop = '';\n return `on${capitalizeFirstLetter(prop)}Change`;\n}\n\nfunction isControlled(propValue) {\n return propValue !== undefined;\n}\n\nfunction uncontrolledProp(self, propName, propValue, propDefaultValue, propHandler, chainHandler) {\n function getValue() {\n return isControlled(propValue)\n ? propValue\n : propName in self.state\n ? self.state[propName]\n : propDefaultValue;\n }\n\n return [\n getValue(),\n (value, ...args) => {\n const oldValue = getValue();\n if (oldValue === value) return false;\n if (!isControlled(propValue)) self.setState({ [propName]: value });\n return callAllEventHandlers(propHandler, ...chainHandler)(value, ...args);\n },\n ];\n}\n\nfunction uncontrolledUniversal(props, config, uncontrolledProp) {\n const handlerProps = {};\n const uncontrolledProps = Object.keys(config).reduce((result, propName) => {\n const handlerName = handlerProp(propName);\n const defaultPropName = defaultProp(propName);\n const {\n [defaultPropName]: propDefaultValue,\n [propName]: propValue,\n [handlerName]: propHandler,\n ...other\n } = result;\n\n if (propDefaultValue === undefined) {\n // eslint-disable-next-line no-console\n console.warn(defaultPropName, 'must be installed in \"defaultProps\"');\n }\n\n // if (typeof propDefaultValue === 'function' && propDefaultValue.defaultInit) {\n // propDefaultValue = propDefaultValue(result);\n // }\n\n let setter = config[propName];\n let chainHandler = [];\n\n if (Array.isArray(setter)) [setter, ...chainHandler] = setter;\n setter = setter || ((v) => v);\n\n const [value, handler] = uncontrolledProp(\n propName,\n propValue,\n propDefaultValue,\n propHandler,\n chainHandler,\n );\n // TODO: need to warn about recursion (by lsroman)\n handlerProps[propName] = handler;\n\n return {\n ...other,\n [propName]: value,\n [handlerName]: (eventOrValue, ...args) => {\n const result = [setter(eventOrValue, ...args), ...args];\n if (eventOrValue && eventOrValue.target) {\n result.push(eventOrValue);\n }\n return handler(...result);\n },\n };\n }, props);\n return [uncontrolledProps, handlerProps];\n}\n\nfunction uncontrolled(self, props, config) {\n return uncontrolledUniversal(props, config, uncontrolledProp.bind(undefined, self));\n}\n\nfunction Enhancement() {\n return {\n condition: function (Component) {\n return Boolean(Component.prototype.uncontrolledProps);\n },\n init: function () {\n this.state = this.state || {};\n assign(this, {\n get handlers() {\n const [, uncontrolledHandlers] = uncontrolled(this, this.props, this.uncontrolledProps());\n return uncontrolledHandlers;\n },\n });\n },\n context: function (context) {\n return {\n ...context,\n handlers: this.handlers,\n };\n },\n asProps: function (props) {\n // TODO: need to omit unneccessary props (by lsroman)\n const [uncontrolledProps] = uncontrolled(this, props, this.uncontrolledProps());\n return uncontrolledProps;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}
1
+ {"version":3,"file":"uncontrolledProps.js","names":["_assignProps","require","_capitalizeFirstLetter","_interopRequireDefault","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","capitalizeFirstLetter","handlerProp","concat","isControlled","propValue","undefined","uncontrolledProp","self","propName","propDefaultValue","propHandler","chainHandler","getValue","state","value","oldValue","setState","_defineProperty2","_len","arguments","length","args","Array","_key","callAllEventHandlers","apply","_toConsumableArray2","uncontrolledUniversal","props","config","handlerProps","uncontrolledProps","result","_objectSpread2","handlerName","defaultPropName","other","_objectWithoutProperties2","map","_toPropertyKey2","console","warn","setter","isArray","_setter","_setter2","_toArray2","slice","v","_uncontrolledProp","_uncontrolledProp2","_slicedToArray2","handler","_objectSpread3","eventOrValue","_len2","_key2","push","uncontrolled","bind","Enhancement","condition","Component","Boolean","prototype","init","handlers","_uncontrolled","_uncontrolled2","uncontrolledHandlers","context","asProps","_uncontrolled3","_uncontrolled4","_default","exports"],"sources":["../../../src/enhancement/uncontrolledProps.tsx"],"sourcesContent":["// @ts-ignore\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport capitalizeFirstLetter from '@semcore/utils/lib/capitalizeFirstLetter';\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 defaultProp(prop) {\n return 'default' + capitalizeFirstLetter(prop);\n}\n\nfunction handlerProp(prop) {\n if (prop === 'value') prop = '';\n if (prop === 'checked') prop = '';\n return `on${capitalizeFirstLetter(prop)}Change`;\n}\n\nfunction isControlled(propValue) {\n return propValue !== undefined;\n}\n\nfunction uncontrolledProp(self, propName, propValue, propDefaultValue, propHandler, chainHandler) {\n function getValue() {\n return isControlled(propValue)\n ? propValue\n : propName in self.state\n ? self.state[propName]\n : propDefaultValue;\n }\n\n return [\n getValue(),\n (value, ...args) => {\n const oldValue = getValue();\n if (oldValue === value) return false;\n if (!isControlled(propValue)) self.setState({ [propName]: value });\n return callAllEventHandlers(propHandler, ...chainHandler)(value, ...args);\n },\n ];\n}\n\nfunction uncontrolledUniversal(props, config, uncontrolledProp) {\n const handlerProps = {};\n const uncontrolledProps = Object.keys(config).reduce((result, propName) => {\n const handlerName = handlerProp(propName);\n const defaultPropName = defaultProp(propName);\n const {\n [defaultPropName]: propDefaultValue,\n [propName]: propValue,\n [handlerName]: propHandler,\n ...other\n } = result;\n\n if (propDefaultValue === undefined) {\n // eslint-disable-next-line no-console\n console.warn(defaultPropName, 'must be installed in \"defaultProps\"');\n }\n\n // if (typeof propDefaultValue === 'function' && propDefaultValue.defaultInit) {\n // propDefaultValue = propDefaultValue(result);\n // }\n\n let setter = config[propName];\n let chainHandler = [];\n\n if (Array.isArray(setter)) [setter, ...chainHandler] = setter;\n setter = setter || ((v) => v);\n\n const [value, handler] = uncontrolledProp(\n propName,\n propValue,\n propDefaultValue,\n propHandler,\n chainHandler,\n );\n // TODO: need to warn about recursion (by lsroman)\n handlerProps[propName] = handler;\n\n return {\n ...other,\n [propName]: value,\n [handlerName]: (eventOrValue, ...args) => {\n const result = [setter(eventOrValue, ...args), ...args];\n if (eventOrValue && eventOrValue.target) {\n result.push(eventOrValue);\n }\n return handler(...result);\n },\n };\n }, props);\n return [uncontrolledProps, handlerProps];\n}\n\nfunction uncontrolled(self, props, config) {\n return uncontrolledUniversal(props, config, uncontrolledProp.bind(undefined, self));\n}\n\nfunction Enhancement() {\n return {\n condition: function (Component) {\n return Boolean(Component.prototype.uncontrolledProps);\n },\n init: function () {\n this.state = this.state || {};\n assign(this, {\n get handlers() {\n const [, uncontrolledHandlers] = uncontrolled(this, this.props, this.uncontrolledProps());\n return uncontrolledHandlers;\n },\n });\n },\n context: function (context) {\n return {\n ...context,\n handlers: this.handlers,\n };\n },\n asProps: function (props) {\n // TODO: need to omit unneccessary props (by lsroman)\n const [uncontrolledProps] = uncontrolled(this, props, this.uncontrolledProps());\n return uncontrolledProps;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}