@semcore/core 16.6.0-prerelease.3 → 16.6.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.
Files changed (157) hide show
  1. package/lib/core-types/Component.d.ts +33 -79
  2. package/lib/core-types/Component.js +14 -46
  3. package/lib/core-types/Component.js.map +1 -1
  4. package/lib/core-types/Component.mjs +11 -7
  5. package/lib/core-types/Component.mjs.map +1 -1
  6. package/lib/core-types/symbols.mjs +9 -9
  7. package/lib/coreFactory.d.ts +6 -23
  8. package/lib/coreFactory.js +53 -22
  9. package/lib/coreFactory.js.map +1 -1
  10. package/lib/coreFactory.mjs +54 -35
  11. package/lib/coreFactory.mjs.map +1 -1
  12. package/lib/decorators/propsObserver.d.ts +11 -0
  13. package/lib/decorators/propsObserver.js +77 -0
  14. package/lib/decorators/propsObserver.js.map +1 -0
  15. package/lib/decorators/propsObserver.mjs +70 -0
  16. package/lib/decorators/propsObserver.mjs.map +1 -0
  17. package/lib/decorators/reactive.d.ts +11 -0
  18. package/lib/decorators/reactive.js +51 -0
  19. package/lib/decorators/reactive.js.map +1 -0
  20. package/lib/decorators/reactive.mjs +45 -0
  21. package/lib/decorators/reactive.mjs.map +1 -0
  22. package/lib/enhancement/Children.mjs +1 -1
  23. package/lib/enhancement/staticChildren.mjs +3 -3
  24. package/lib/enhancement/style.mjs +2 -2
  25. package/lib/enhancement/uncontrolledProps.js +2 -1
  26. package/lib/enhancement/uncontrolledProps.js.map +1 -1
  27. package/lib/enhancement/uncontrolledProps.mjs +2 -1
  28. package/lib/enhancement/uncontrolledProps.mjs.map +1 -1
  29. package/lib/esm/core-types/Component.mjs +11 -7
  30. package/lib/esm/core-types/symbols.mjs +9 -9
  31. package/lib/esm/coreFactory.mjs +54 -35
  32. package/lib/esm/enhancement/Children.mjs +1 -1
  33. package/lib/esm/enhancement/staticChildren.mjs +3 -3
  34. package/lib/esm/enhancement/style.mjs +2 -2
  35. package/lib/esm/enhancement/uncontrolledProps.mjs +2 -1
  36. package/lib/esm/styled/sstyled.mjs +1 -1
  37. package/lib/esm/utils/enhances/WithI18n.mjs +1 -46
  38. package/lib/esm/utils/ref.mjs +0 -14
  39. package/lib/index.d.ts +3 -3
  40. package/lib/index.js.map +1 -1
  41. package/lib/index.mjs.map +1 -1
  42. package/lib/styled/index.d.ts +1 -5
  43. package/lib/styled/index.js.map +1 -1
  44. package/lib/styled/index.mjs.map +1 -1
  45. package/lib/styled/sstyled.mjs +1 -1
  46. package/lib/utils/enhances/WithCSS.d.ts +2 -30
  47. package/lib/utils/enhances/WithCSS.js +4 -57
  48. package/lib/utils/enhances/WithCSS.js.map +1 -1
  49. package/lib/utils/enhances/WithCSS.mjs +2 -53
  50. package/lib/utils/enhances/WithCSS.mjs.map +1 -1
  51. package/lib/utils/enhances/WithI18n.d.ts +1 -30
  52. package/lib/utils/enhances/WithI18n.js +1 -57
  53. package/lib/utils/enhances/WithI18n.js.map +1 -1
  54. package/lib/utils/enhances/WithI18n.mjs +1 -46
  55. package/lib/utils/enhances/WithI18n.mjs.map +1 -1
  56. package/lib/utils/enhances/animatedSizeEnhance.d.ts +0 -4
  57. package/lib/utils/enhances/animatedSizeEnhance.js +0 -2
  58. package/lib/utils/enhances/animatedSizeEnhance.js.map +1 -1
  59. package/lib/utils/enhances/animatedSizeEnhance.mjs +0 -3
  60. package/lib/utils/enhances/animatedSizeEnhance.mjs.map +1 -1
  61. package/lib/utils/enhances/i18nEnhance.d.ts +0 -4
  62. package/lib/utils/enhances/i18nEnhance.js +0 -2
  63. package/lib/utils/enhances/i18nEnhance.js.map +1 -1
  64. package/lib/utils/enhances/i18nEnhance.mjs.map +1 -1
  65. package/lib/utils/eventEmitter.d.ts +10 -6
  66. package/lib/utils/eventEmitter.js +55 -27
  67. package/lib/utils/eventEmitter.js.map +1 -1
  68. package/lib/utils/eventEmitter.mjs +55 -27
  69. package/lib/utils/eventEmitter.mjs.map +1 -1
  70. package/lib/utils/getDisplayName.mjs +3 -5
  71. package/lib/utils/indentStyles.d.ts +3 -0
  72. package/lib/utils/indentStyles.js +45 -0
  73. package/lib/utils/indentStyles.js.map +1 -0
  74. package/lib/utils/indentStyles.mjs +36 -0
  75. package/lib/utils/indentStyles.mjs.map +1 -0
  76. package/lib/utils/injectStyle.js +1 -1
  77. package/lib/utils/injectStyle.js.map +1 -1
  78. package/lib/utils/injectStyle.mjs +1 -1
  79. package/lib/utils/injectStyle.mjs.map +1 -1
  80. package/lib/utils/ref.d.ts +1 -3
  81. package/lib/utils/ref.js +0 -14
  82. package/lib/utils/ref.js.map +1 -1
  83. package/lib/utils/ref.mjs +0 -14
  84. package/lib/utils/ref.mjs.map +1 -1
  85. package/lib/utils/uniqueID.d.ts +0 -4
  86. package/lib/utils/uniqueID.js +1 -3
  87. package/lib/utils/uniqueID.js.map +1 -1
  88. package/lib/utils/uniqueID.mjs +1 -4
  89. package/lib/utils/uniqueID.mjs.map +1 -1
  90. package/lib/utils/use/useColorResolver.js +1 -1
  91. package/lib/utils/use/useColorResolver.js.map +1 -1
  92. package/lib/utils/use/useColorResolver.mjs +1 -1
  93. package/lib/utils/use/useColorResolver.mjs.map +1 -1
  94. package/lib/utils/use/useEnhancedEffect.d.ts +1 -1
  95. package/lib/utils/zIndexStacking.d.ts +3 -1
  96. package/lib/utils/zIndexStacking.js.map +1 -1
  97. package/lib/utils/zIndexStacking.mjs.map +1 -1
  98. package/package.json +2 -2
  99. package/lib/enhancement/bindHandler.d.ts +0 -5
  100. package/lib/enhancement/bindHandler.js +0 -53
  101. package/lib/enhancement/bindHandler.js.map +0 -1
  102. package/lib/enhancement/bindHandler.mjs +0 -48
  103. package/lib/enhancement/bindHandler.mjs.map +0 -1
  104. package/lib/enhancement/hoistProps.d.ts +0 -10
  105. package/lib/enhancement/hoistProps.js +0 -95
  106. package/lib/enhancement/hoistProps.js.map +0 -1
  107. package/lib/enhancement/hoistProps.mjs +0 -78
  108. package/lib/enhancement/hoistProps.mjs.map +0 -1
  109. package/lib/esm/enhancement/bindHandler.mjs +0 -48
  110. package/lib/esm/enhancement/hoistProps.mjs +0 -78
  111. package/lib/esm/utils/createHoc.mjs +0 -42
  112. package/lib/esm/utils/getDisplayName.mjs +0 -6
  113. package/lib/utils/ScreenReaderOnly.d.ts +0 -8
  114. package/lib/utils/ScreenReaderOnly.js +0 -30
  115. package/lib/utils/ScreenReaderOnly.js.map +0 -1
  116. package/lib/utils/ScreenReaderOnly.mjs +0 -24
  117. package/lib/utils/ScreenReaderOnly.mjs.map +0 -1
  118. package/lib/utils/createHoc.d.ts +0 -3
  119. package/lib/utils/createHoc.js +0 -52
  120. package/lib/utils/createHoc.js.map +0 -1
  121. package/lib/utils/createHoc.mjs +0 -42
  122. package/lib/utils/createHoc.mjs.map +0 -1
  123. package/lib/utils/enhances/WithAutoFocus.d.ts +0 -14
  124. package/lib/utils/enhances/WithAutoFocus.js +0 -72
  125. package/lib/utils/enhances/WithAutoFocus.js.map +0 -1
  126. package/lib/utils/enhances/WithAutoFocus.mjs +0 -66
  127. package/lib/utils/enhances/WithAutoFocus.mjs.map +0 -1
  128. package/lib/utils/enhances/WithKeyboardFocus.d.ts +0 -46
  129. package/lib/utils/enhances/WithKeyboardFocus.js +0 -94
  130. package/lib/utils/enhances/WithKeyboardFocus.js.map +0 -1
  131. package/lib/utils/enhances/WithKeyboardFocus.mjs +0 -88
  132. package/lib/utils/enhances/WithKeyboardFocus.mjs.map +0 -1
  133. package/lib/utils/enhances/WithRef.d.ts +0 -3
  134. package/lib/utils/enhances/WithRef.js +0 -25
  135. package/lib/utils/enhances/WithRef.js.map +0 -1
  136. package/lib/utils/enhances/WithRef.mjs +0 -18
  137. package/lib/utils/enhances/WithRef.mjs.map +0 -1
  138. package/lib/utils/enhances/autoFocusEnhance.d.ts +0 -10
  139. package/lib/utils/enhances/autoFocusEnhance.js +0 -45
  140. package/lib/utils/enhances/autoFocusEnhance.js.map +0 -1
  141. package/lib/utils/enhances/autoFocusEnhance.mjs +0 -38
  142. package/lib/utils/enhances/autoFocusEnhance.mjs.map +0 -1
  143. package/lib/utils/enhances/keyboardFocusEnhance.d.ts +0 -27
  144. package/lib/utils/enhances/keyboardFocusEnhance.js +0 -63
  145. package/lib/utils/enhances/keyboardFocusEnhance.js.map +0 -1
  146. package/lib/utils/enhances/keyboardFocusEnhance.mjs +0 -57
  147. package/lib/utils/enhances/keyboardFocusEnhance.mjs.map +0 -1
  148. package/lib/utils/if.d.ts +0 -11
  149. package/lib/utils/if.js +0 -15
  150. package/lib/utils/if.js.map +0 -1
  151. package/lib/utils/if.mjs +0 -9
  152. package/lib/utils/if.mjs.map +0 -1
  153. package/lib/utils/use/useCss.d.ts +0 -4
  154. package/lib/utils/use/useCss.js +0 -19
  155. package/lib/utils/use/useCss.js.map +0 -1
  156. package/lib/utils/use/useCss.mjs +0 -12
  157. package/lib/utils/use/useCss.mjs.map +0 -1
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
14
+ var _superPropGet3 = _interopRequireDefault(require("@babel/runtime/helpers/superPropGet"));
15
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ function propsObserver(propsToWatch) {
18
+ return function (Class) {
19
+ return /*#__PURE__*/function (_Class2) {
20
+ function _class() {
21
+ var _this;
22
+ (0, _classCallCheck2["default"])(this, _class);
23
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
24
+ args[_key] = arguments[_key];
25
+ }
26
+ _this = (0, _callSuper2["default"])(this, _class, [].concat(args));
27
+ (0, _defineProperty2["default"])(_this, "__observableProps", {});
28
+ if (!_this.props) return (0, _possibleConstructorReturn2["default"])(_this);
29
+ var observablePropKeys = propsToWatch.length === 0 ? Object.keys(_this.props) : (0, _toConsumableArray2["default"])(propsToWatch);
30
+ observablePropKeys.forEach(function (key) {
31
+ _this.__observableProps[key] = _this.props[key];
32
+ });
33
+ return _this;
34
+ }
35
+ (0, _inherits2["default"])(_class, _Class2);
36
+ return (0, _createClass2["default"])(_class, [{
37
+ key: "onPropsChange",
38
+ value: function onPropsChange(_) {
39
+ var _this2 = this;
40
+ var shouldEmitChanges = false;
41
+ var changedProps = {};
42
+ Object.entries(this.__observableProps).forEach(function (_ref) {
43
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
44
+ key = _ref2[0],
45
+ value = _ref2[1];
46
+ var arePropsEqual = Object.is(value, _this2.props[key]);
47
+ if (!arePropsEqual) {
48
+ _this2.__observableProps[key] = _this2.props[key];
49
+ changedProps[key] = _this2.props[key];
50
+ shouldEmitChanges = true;
51
+ }
52
+ });
53
+ if (!shouldEmitChanges) return;
54
+ (0, _superPropGet3["default"])(_class, "onPropsChange", this, 3)([changedProps]);
55
+ }
56
+ }, {
57
+ key: "componentWillUnmount",
58
+ value: function componentWillUnmount() {
59
+ var _superPropGet2,
60
+ _this3 = this;
61
+ (_superPropGet2 = (0, _superPropGet3["default"])(_class, "componentWillUnmount", this, 3)) === null || _superPropGet2 === void 0 || _superPropGet2([]);
62
+ Object.keys(this.__observableProps).forEach(function (key) {
63
+ _this3.__observableProps[key] = undefined;
64
+ });
65
+ }
66
+ }, {
67
+ key: "render",
68
+ value: function render() {
69
+ this.onPropsChange();
70
+ return (0, _superPropGet3["default"])(_class, "render", this, 3)([]);
71
+ }
72
+ }]);
73
+ }(Class);
74
+ };
75
+ }
76
+ var _default = exports["default"] = propsObserver;
77
+ //# sourceMappingURL=propsObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propsObserver.js","names":["propsObserver","propsToWatch","Class","_Class2","_class","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","props","_possibleConstructorReturn2","observablePropKeys","Object","keys","_toConsumableArray2","forEach","key","__observableProps","_inherits2","_createClass2","value","onPropsChange","_","_this2","shouldEmitChanges","changedProps","entries","_ref","_ref2","_slicedToArray2","arePropsEqual","is","_superPropGet3","componentWillUnmount","_superPropGet2","_this3","undefined","render","_default","exports"],"sources":["../../src/decorators/propsObserver.ts"],"sourcesContent":["type WatchedProps<Props> = { [key in keyof Props]?: unknown };\n\ntype Constructor<Props> = new (...args: any[]) => {\n props: Props;\n onPropsChange(changedProps: WatchedProps<Props>): void;\n render(): React.ReactNode;\n componentWillUnmount?(): void;\n};\n\nfunction propsObserver<\n P extends Record<string, any>,\n C extends Constructor<P>,\n>(propsToWatch: Array<keyof P>) {\n return function (Class: C): C & Constructor<P> {\n return class extends Class {\n __observableProps: WatchedProps<P> = {};\n\n constructor(...args: any[]) {\n super(...args);\n\n if (!this.props) return;\n\n const observablePropKeys = propsToWatch.length === 0 ? Object.keys(this.props) : [...propsToWatch];\n\n observablePropKeys.forEach((key) => {\n this.__observableProps[key] = this.props[key];\n });\n }\n\n onPropsChange(_?: WatchedProps<P>) {\n let shouldEmitChanges = false;\n const changedProps: WatchedProps<P> = {};\n\n Object.entries(this.__observableProps).forEach(([key, value]: [key: keyof P, value: unknown]) => {\n const arePropsEqual = Object.is(value, this.props[key]);\n\n if (!arePropsEqual) {\n this.__observableProps[key] = this.props[key];\n changedProps[key] = this.props[key];\n\n shouldEmitChanges = true;\n }\n });\n\n if (!shouldEmitChanges) return;\n\n super.onPropsChange(changedProps);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount?.();\n\n Object.keys(this.__observableProps).forEach((key: keyof P) => {\n this.__observableProps[key] = undefined;\n });\n }\n\n render() {\n this.onPropsChange();\n\n return super.render();\n }\n };\n };\n}\n\nexport default propsObserver;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
+ import _callSuper from "@babel/runtime/helpers/esm/callSuper";
7
+ import _superPropGet from "@babel/runtime/helpers/esm/superPropGet";
8
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
9
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
10
+ function propsObserver(propsToWatch) {
11
+ return function (Class) {
12
+ return /*#__PURE__*/function (_Class2) {
13
+ function _class() {
14
+ var _this;
15
+ _classCallCheck(this, _class);
16
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
17
+ args[_key] = arguments[_key];
18
+ }
19
+ _this = _callSuper(this, _class, [].concat(args));
20
+ _defineProperty(_this, "__observableProps", {});
21
+ if (!_this.props) return _possibleConstructorReturn(_this);
22
+ var observablePropKeys = propsToWatch.length === 0 ? Object.keys(_this.props) : _toConsumableArray(propsToWatch);
23
+ observablePropKeys.forEach(function (key) {
24
+ _this.__observableProps[key] = _this.props[key];
25
+ });
26
+ return _this;
27
+ }
28
+ _inherits(_class, _Class2);
29
+ return _createClass(_class, [{
30
+ key: "onPropsChange",
31
+ value: function onPropsChange(_) {
32
+ var _this2 = this;
33
+ var shouldEmitChanges = false;
34
+ var changedProps = {};
35
+ Object.entries(this.__observableProps).forEach(function (_ref) {
36
+ var _ref2 = _slicedToArray(_ref, 2),
37
+ key = _ref2[0],
38
+ value = _ref2[1];
39
+ var arePropsEqual = Object.is(value, _this2.props[key]);
40
+ if (!arePropsEqual) {
41
+ _this2.__observableProps[key] = _this2.props[key];
42
+ changedProps[key] = _this2.props[key];
43
+ shouldEmitChanges = true;
44
+ }
45
+ });
46
+ if (!shouldEmitChanges) return;
47
+ _superPropGet(_class, "onPropsChange", this, 3)([changedProps]);
48
+ }
49
+ }, {
50
+ key: "componentWillUnmount",
51
+ value: function componentWillUnmount() {
52
+ var _superPropGet2,
53
+ _this3 = this;
54
+ (_superPropGet2 = _superPropGet(_class, "componentWillUnmount", this, 3)) === null || _superPropGet2 === void 0 || _superPropGet2([]);
55
+ Object.keys(this.__observableProps).forEach(function (key) {
56
+ _this3.__observableProps[key] = undefined;
57
+ });
58
+ }
59
+ }, {
60
+ key: "render",
61
+ value: function render() {
62
+ this.onPropsChange();
63
+ return _superPropGet(_class, "render", this, 3)([]);
64
+ }
65
+ }]);
66
+ }(Class);
67
+ };
68
+ }
69
+ export default propsObserver;
70
+ //# sourceMappingURL=propsObserver.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propsObserver.mjs","names":["propsObserver","propsToWatch","Class","_Class2","_class","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","props","_possibleConstructorReturn","observablePropKeys","Object","keys","_toConsumableArray","forEach","key","__observableProps","_inherits","_createClass","value","onPropsChange","_","_this2","shouldEmitChanges","changedProps","entries","_ref","_ref2","_slicedToArray","arePropsEqual","is","_superPropGet","componentWillUnmount","_superPropGet2","_this3","undefined","render"],"sources":["../../src/decorators/propsObserver.ts"],"sourcesContent":["type WatchedProps<Props> = { [key in keyof Props]?: unknown };\n\ntype Constructor<Props> = new (...args: any[]) => {\n props: Props;\n onPropsChange(changedProps: WatchedProps<Props>): void;\n render(): React.ReactNode;\n componentWillUnmount?(): void;\n};\n\nfunction propsObserver<\n P extends Record<string, any>,\n C extends Constructor<P>,\n>(propsToWatch: Array<keyof P>) {\n return function (Class: C): C & Constructor<P> {\n return class extends Class {\n __observableProps: WatchedProps<P> = {};\n\n constructor(...args: any[]) {\n super(...args);\n\n if (!this.props) return;\n\n const observablePropKeys = propsToWatch.length === 0 ? Object.keys(this.props) : [...propsToWatch];\n\n observablePropKeys.forEach((key) => {\n this.__observableProps[key] = this.props[key];\n });\n }\n\n onPropsChange(_?: WatchedProps<P>) {\n let shouldEmitChanges = false;\n const changedProps: WatchedProps<P> = {};\n\n Object.entries(this.__observableProps).forEach(([key, value]: [key: keyof P, value: unknown]) => {\n const arePropsEqual = Object.is(value, this.props[key]);\n\n if (!arePropsEqual) {\n this.__observableProps[key] = this.props[key];\n changedProps[key] = this.props[key];\n\n shouldEmitChanges = true;\n }\n });\n\n if (!shouldEmitChanges) return;\n\n super.onPropsChange(changedProps);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount?.();\n\n Object.keys(this.__observableProps).forEach((key: keyof P) => {\n this.__observableProps[key] = undefined;\n });\n }\n\n render() {\n this.onPropsChange();\n\n return super.render();\n }\n };\n };\n}\n\nexport default propsObserver;\n"],"mappings":";;;;;;;;;AASA,SAASA,aAAaA,CAGpBC,YAA4B,EAAE;EAC9B,OAAO,UAAUC,KAAQ,EAAsB;IAC7C,8BAAAC,OAAA;MAGE,SAAAC,OAAA,EAA4B;QAAA,IAAAC,KAAA;QAAAC,eAAA,OAAAF,MAAA;QAAA,SAAAG,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAbC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;UAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;QAAA;QACjBP,KAAA,GAAAQ,UAAA,OAAAT,MAAA,KAAAU,MAAA,CAASJ,IAAI;QAAEK,eAAA,CAAAV,KAAA,uBAHoB,CAAC,CAAC;QAKrC,IAAI,CAACA,KAAA,CAAKW,KAAK,EAAE,OAAAC,0BAAA,CAAAZ,KAAA;QAEjB,IAAMa,kBAAkB,GAAGjB,YAAY,CAACQ,MAAM,KAAK,CAAC,GAAGU,MAAM,CAACC,IAAI,CAACf,KAAA,CAAKW,KAAK,CAAC,GAAAK,kBAAA,CAAOpB,YAAY,CAAC;QAElGiB,kBAAkB,CAACI,OAAO,CAAC,UAACC,GAAG,EAAK;UAClClB,KAAA,CAAKmB,iBAAiB,CAACD,GAAG,CAAC,GAAGlB,KAAA,CAAKW,KAAK,CAACO,GAAG,CAAC;QAC/C,CAAC,CAAC;QAAC,OAAAlB,KAAA;MACL;MAACoB,SAAA,CAAArB,MAAA,EAAAD,OAAA;MAAA,OAAAuB,YAAA,CAAAtB,MAAA;QAAAmB,GAAA;QAAAI,KAAA,EAED,SAAAC,aAAaA,CAACC,CAAmB,EAAE;UAAA,IAAAC,MAAA;UACjC,IAAIC,iBAAiB,GAAG,KAAK;UAC7B,IAAMC,YAA6B,GAAG,CAAC,CAAC;UAExCb,MAAM,CAACc,OAAO,CAAC,IAAI,CAACT,iBAAiB,CAAC,CAACF,OAAO,CAAC,UAAAY,IAAA,EAAkD;YAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA;cAAhDX,GAAG,GAAAY,KAAA;cAAER,KAAK,GAAAQ,KAAA;YACzD,IAAME,aAAa,GAAGlB,MAAM,CAACmB,EAAE,CAACX,KAAK,EAAEG,MAAI,CAACd,KAAK,CAACO,GAAG,CAAC,CAAC;YAEvD,IAAI,CAACc,aAAa,EAAE;cAClBP,MAAI,CAACN,iBAAiB,CAACD,GAAG,CAAC,GAAGO,MAAI,CAACd,KAAK,CAACO,GAAG,CAAC;cAC7CS,YAAY,CAACT,GAAG,CAAC,GAAGO,MAAI,CAACd,KAAK,CAACO,GAAG,CAAC;cAEnCQ,iBAAiB,GAAG,IAAI;YAC1B;UACF,CAAC,CAAC;UAEF,IAAI,CAACA,iBAAiB,EAAE;UAExBQ,aAAA,CAAAnC,MAAA,6BAAoB4B,YAAY;QAClC;MAAC;QAAAT,GAAA;QAAAI,KAAA,EAED,SAAAa,oBAAoBA,CAAA,EAAG;UAAA,IAAAC,cAAA;YAAAC,MAAA;UACrB,CAAAD,cAAA,GAAAF,aAAA,CAAAnC,MAAA,gDAAAqC,cAAA,eAAAA,cAAA;UAEAtB,MAAM,CAACC,IAAI,CAAC,IAAI,CAACI,iBAAiB,CAAC,CAACF,OAAO,CAAC,UAACC,GAAY,EAAK;YAC5DmB,MAAI,CAAClB,iBAAiB,CAACD,GAAG,CAAC,GAAGoB,SAAS;UACzC,CAAC,CAAC;QACJ;MAAC;QAAApB,GAAA;QAAAI,KAAA,EAED,SAAAiB,MAAMA,CAAA,EAAG;UACP,IAAI,CAAChB,aAAa,CAAC,CAAC;UAEpB,OAAAW,aAAA,CAAAnC,MAAA;QACF;MAAC;IAAA,EA/CkBF,KAAK;EAiD5B,CAAC;AACH;AAEA,eAAeF,aAAa","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ type Primitive = string | number | boolean | symbol | bigint | null | undefined;
2
+ type IsReadonly<This, Property extends keyof This> = (<F>() => F extends {
3
+ [P in Property]: This[Property];
4
+ } ? 1 : 2) extends (<F>() => F extends {
5
+ -readonly [P in Property]: This[Property];
6
+ } ? 1 : 2) ? false : true;
7
+ type Callback<This> = (this: This, field: string | symbol, newValue: unknown) => void;
8
+ type ReturnType<This, Property extends keyof This = keyof This> = IsReadonly<This, Property> extends true ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void : This[Property] extends Primitive ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void : never;
9
+ declare function reactive<This, Property extends keyof This, Value = This[Property]>(cb: Value extends Primitive ? Callback<This> : never): ReturnType<This>;
10
+ declare function reactive<This, Property extends keyof This, Value = This[Property]>(watchedFields: Value extends Primitive ? never : Array<keyof Value>, cb: Callback<This>): ReturnType<This>;
11
+ export default reactive;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var isPrimitiveValue = function isPrimitiveValue(value) {
8
+ return value !== Object(value);
9
+ };
10
+ function reactive(watchedFieldsOrCb, cb) {
11
+ return function (_, ctx) {
12
+ var addInitializer = ctx.addInitializer,
13
+ name = ctx.name;
14
+ addInitializer(function () {
15
+ var thisRoot = this;
16
+ var isPrimitive = isPrimitiveValue(this[name]);
17
+ var callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb;
18
+ var fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;
19
+ if (isPrimitive) {
20
+ var value = this[name];
21
+ Object.defineProperty(this, name, {
22
+ get: function get() {
23
+ return value;
24
+ },
25
+ set: function set(newValue) {
26
+ var oldValue = value;
27
+ value = newValue;
28
+ if (oldValue !== newValue) {
29
+ callback.call(thisRoot, name, newValue);
30
+ }
31
+ },
32
+ enumerable: true,
33
+ configurable: true
34
+ });
35
+ } else {
36
+ // @ts-ignore
37
+ this[name] = new Proxy(this[name], {
38
+ set: function set(target, p, newValue) {
39
+ target[p] = newValue;
40
+ if ((fields === null || fields === void 0 ? void 0 : fields.length) === 0 || fields !== null && fields !== void 0 && fields.includes(p)) {
41
+ callback.call(thisRoot, p, newValue);
42
+ }
43
+ return true;
44
+ }
45
+ });
46
+ }
47
+ });
48
+ };
49
+ }
50
+ var _default = exports["default"] = reactive;
51
+ //# sourceMappingURL=reactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.js","names":["isPrimitiveValue","value","Object","reactive","watchedFieldsOrCb","cb","_","ctx","addInitializer","name","thisRoot","isPrimitive","callback","fields","Array","isArray","defineProperty","get","set","newValue","oldValue","call","enumerable","configurable","Proxy","target","p","length","includes","_default","exports"],"sources":["../../src/decorators/reactive.ts"],"sourcesContent":["type Primitive = string | number | boolean | symbol | bigint | null | undefined;\ntype IsReadonly<This, Property extends keyof This> =\n (<F>() => F extends { [P in Property]: This[Property] } ? 1 : 2) extends\n (<F>() => F extends { -readonly [P in Property]: This[Property] } ? 1 : 2)\n ? false\n : true;\ntype Callback<This> = (this: This, field: string | symbol, newValue: unknown) => void;\ntype ReturnType<\n This,\n Property extends keyof This = keyof This,\n> = IsReadonly<This, Property> extends true\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : This[Property] extends Primitive\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : never;\n\nconst isPrimitiveValue = (value: unknown) => value !== Object(value);\n\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(cb: Value extends Primitive ? Callback<This> : never): ReturnType<This>;\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(watchedFields: Value extends Primitive ? never : Array<keyof Value>, cb: Callback<This>): ReturnType<This>;\n\nfunction reactive<\n This,\n Property extends keyof This,\n>(watchedFieldsOrCb: Array<keyof This[Property]> | Callback<This>, cb?: Callback<This>) {\n return function (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) {\n const { addInitializer, name } = ctx;\n\n addInitializer(function (this: This) {\n const thisRoot = this;\n\n const isPrimitive = isPrimitiveValue(this[name as Property]);\n\n const callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb!;\n const fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;\n\n if (isPrimitive) {\n let value = this[name as Property];\n\n Object.defineProperty(this, name, {\n get() {\n return value;\n },\n set(newValue) {\n const oldValue = value;\n\n value = newValue;\n\n if (oldValue !== newValue) {\n callback.call(thisRoot, name, newValue);\n }\n },\n enumerable: true,\n configurable: true,\n });\n } else {\n // @ts-ignore\n this[name] = new Proxy(this[name], {\n set(target, p, newValue) {\n target[p] = newValue;\n\n if (fields?.length === 0 || fields?.includes(p as keyof This[Property])) {\n callback.call(thisRoot, p, newValue);\n }\n\n return true;\n },\n });\n }\n });\n };\n}\n\nexport default reactive;\n"],"mappings":";;;;;;AAgBA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAc;EAAA,OAAKA,KAAK,KAAKC,MAAM,CAACD,KAAK,CAAC;AAAA;AAapE,SAASE,QAAQA,CAGfC,iBAA+D,EAAEC,EAAmB,EAAE;EACtF,OAAO,UAAUC,CAAY,EAAEC,GAAqD,EAAE;IACpF,IAAQC,cAAc,GAAWD,GAAG,CAA5BC,cAAc;MAAEC,IAAI,GAAKF,GAAG,CAAZE,IAAI;IAE5BD,cAAc,CAAC,YAAsB;MACnC,IAAME,QAAQ,GAAG,IAAI;MAErB,IAAMC,WAAW,GAAGX,gBAAgB,CAAC,IAAI,CAACS,IAAI,CAAa,CAAC;MAE5D,IAAMG,QAAQ,GAAG,OAAOR,iBAAiB,KAAK,UAAU,GAAGA,iBAAiB,GAAGC,EAAG;MAClF,IAAMQ,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACX,iBAAiB,CAAC,GAAGA,iBAAiB,GAAG,IAAI;MAE1E,IAAIO,WAAW,EAAE;QACf,IAAIV,KAAK,GAAG,IAAI,CAACQ,IAAI,CAAa;QAElCP,MAAM,CAACc,cAAc,CAAC,IAAI,EAAEP,IAAI,EAAE;UAChCQ,GAAG,WAAHA,GAAGA,CAAA,EAAG;YACJ,OAAOhB,KAAK;UACd,CAAC;UACDiB,GAAG,WAAHA,GAAGA,CAACC,QAAQ,EAAE;YACZ,IAAMC,QAAQ,GAAGnB,KAAK;YAEtBA,KAAK,GAAGkB,QAAQ;YAEhB,IAAIC,QAAQ,KAAKD,QAAQ,EAAE;cACzBP,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAED,IAAI,EAAEU,QAAQ,CAAC;YACzC;UACF,CAAC;UACDG,UAAU,EAAE,IAAI;UAChBC,YAAY,EAAE;QAChB,CAAC,CAAC;MACJ,CAAC,MAAM;QACL;QACA,IAAI,CAACd,IAAI,CAAC,GAAG,IAAIe,KAAK,CAAC,IAAI,CAACf,IAAI,CAAC,EAAE;UACjCS,GAAG,WAAHA,GAAGA,CAACO,MAAM,EAAEC,CAAC,EAAEP,QAAQ,EAAE;YACvBM,MAAM,CAACC,CAAC,CAAC,GAAGP,QAAQ;YAEpB,IAAI,CAAAN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,MAAM,MAAK,CAAC,IAAId,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEe,QAAQ,CAACF,CAAyB,CAAC,EAAE;cACvEd,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAEgB,CAAC,EAAEP,QAAQ,CAAC;YACtC;YAEA,OAAO,IAAI;UACb;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;AACH;AAAC,IAAAU,QAAA,GAAAC,OAAA,cAEc3B,QAAQ","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ var isPrimitiveValue = function isPrimitiveValue(value) {
2
+ return value !== Object(value);
3
+ };
4
+ function reactive(watchedFieldsOrCb, cb) {
5
+ return function (_, ctx) {
6
+ var addInitializer = ctx.addInitializer,
7
+ name = ctx.name;
8
+ addInitializer(function () {
9
+ var thisRoot = this;
10
+ var isPrimitive = isPrimitiveValue(this[name]);
11
+ var callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb;
12
+ var fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;
13
+ if (isPrimitive) {
14
+ var value = this[name];
15
+ Object.defineProperty(this, name, {
16
+ get: function get() {
17
+ return value;
18
+ },
19
+ set: function set(newValue) {
20
+ var oldValue = value;
21
+ value = newValue;
22
+ if (oldValue !== newValue) {
23
+ callback.call(thisRoot, name, newValue);
24
+ }
25
+ },
26
+ enumerable: true,
27
+ configurable: true
28
+ });
29
+ } else {
30
+ // @ts-ignore
31
+ this[name] = new Proxy(this[name], {
32
+ set: function set(target, p, newValue) {
33
+ target[p] = newValue;
34
+ if ((fields === null || fields === void 0 ? void 0 : fields.length) === 0 || fields !== null && fields !== void 0 && fields.includes(p)) {
35
+ callback.call(thisRoot, p, newValue);
36
+ }
37
+ return true;
38
+ }
39
+ });
40
+ }
41
+ });
42
+ };
43
+ }
44
+ export default reactive;
45
+ //# sourceMappingURL=reactive.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive.mjs","names":["isPrimitiveValue","value","Object","reactive","watchedFieldsOrCb","cb","_","ctx","addInitializer","name","thisRoot","isPrimitive","callback","fields","Array","isArray","defineProperty","get","set","newValue","oldValue","call","enumerable","configurable","Proxy","target","p","length","includes"],"sources":["../../src/decorators/reactive.ts"],"sourcesContent":["type Primitive = string | number | boolean | symbol | bigint | null | undefined;\ntype IsReadonly<This, Property extends keyof This> =\n (<F>() => F extends { [P in Property]: This[Property] } ? 1 : 2) extends\n (<F>() => F extends { -readonly [P in Property]: This[Property] } ? 1 : 2)\n ? false\n : true;\ntype Callback<This> = (this: This, field: string | symbol, newValue: unknown) => void;\ntype ReturnType<\n This,\n Property extends keyof This = keyof This,\n> = IsReadonly<This, Property> extends true\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : This[Property] extends Primitive\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : never;\n\nconst isPrimitiveValue = (value: unknown) => value !== Object(value);\n\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(cb: Value extends Primitive ? Callback<This> : never): ReturnType<This>;\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(watchedFields: Value extends Primitive ? never : Array<keyof Value>, cb: Callback<This>): ReturnType<This>;\n\nfunction reactive<\n This,\n Property extends keyof This,\n>(watchedFieldsOrCb: Array<keyof This[Property]> | Callback<This>, cb?: Callback<This>) {\n return function (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) {\n const { addInitializer, name } = ctx;\n\n addInitializer(function (this: This) {\n const thisRoot = this;\n\n const isPrimitive = isPrimitiveValue(this[name as Property]);\n\n const callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb!;\n const fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;\n\n if (isPrimitive) {\n let value = this[name as Property];\n\n Object.defineProperty(this, name, {\n get() {\n return value;\n },\n set(newValue) {\n const oldValue = value;\n\n value = newValue;\n\n if (oldValue !== newValue) {\n callback.call(thisRoot, name, newValue);\n }\n },\n enumerable: true,\n configurable: true,\n });\n } else {\n // @ts-ignore\n this[name] = new Proxy(this[name], {\n set(target, p, newValue) {\n target[p] = newValue;\n\n if (fields?.length === 0 || fields?.includes(p as keyof This[Property])) {\n callback.call(thisRoot, p, newValue);\n }\n\n return true;\n },\n });\n }\n });\n };\n}\n\nexport default reactive;\n"],"mappings":"AAgBA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAc;EAAA,OAAKA,KAAK,KAAKC,MAAM,CAACD,KAAK,CAAC;AAAA;AAapE,SAASE,QAAQA,CAGfC,iBAA+D,EAAEC,EAAmB,EAAE;EACtF,OAAO,UAAUC,CAAY,EAAEC,GAAqD,EAAE;IACpF,IAAQC,cAAc,GAAWD,GAAG,CAA5BC,cAAc;MAAEC,IAAI,GAAKF,GAAG,CAAZE,IAAI;IAE5BD,cAAc,CAAC,YAAsB;MACnC,IAAME,QAAQ,GAAG,IAAI;MAErB,IAAMC,WAAW,GAAGX,gBAAgB,CAAC,IAAI,CAACS,IAAI,CAAa,CAAC;MAE5D,IAAMG,QAAQ,GAAG,OAAOR,iBAAiB,KAAK,UAAU,GAAGA,iBAAiB,GAAGC,EAAG;MAClF,IAAMQ,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACX,iBAAiB,CAAC,GAAGA,iBAAiB,GAAG,IAAI;MAE1E,IAAIO,WAAW,EAAE;QACf,IAAIV,KAAK,GAAG,IAAI,CAACQ,IAAI,CAAa;QAElCP,MAAM,CAACc,cAAc,CAAC,IAAI,EAAEP,IAAI,EAAE;UAChCQ,GAAG,WAAHA,GAAGA,CAAA,EAAG;YACJ,OAAOhB,KAAK;UACd,CAAC;UACDiB,GAAG,WAAHA,GAAGA,CAACC,QAAQ,EAAE;YACZ,IAAMC,QAAQ,GAAGnB,KAAK;YAEtBA,KAAK,GAAGkB,QAAQ;YAEhB,IAAIC,QAAQ,KAAKD,QAAQ,EAAE;cACzBP,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAED,IAAI,EAAEU,QAAQ,CAAC;YACzC;UACF,CAAC;UACDG,UAAU,EAAE,IAAI;UAChBC,YAAY,EAAE;QAChB,CAAC,CAAC;MACJ,CAAC,MAAM;QACL;QACA,IAAI,CAACd,IAAI,CAAC,GAAG,IAAIe,KAAK,CAAC,IAAI,CAACf,IAAI,CAAC,EAAE;UACjCS,GAAG,WAAHA,GAAGA,CAACO,MAAM,EAAEC,CAAC,EAAEP,QAAQ,EAAE;YACvBM,MAAM,CAACC,CAAC,CAAC,GAAGP,QAAQ;YAEpB,IAAI,CAAAN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,MAAM,MAAK,CAAC,IAAId,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEe,QAAQ,CAACF,CAAyB,CAAC,EAAE;cACvEd,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAEgB,CAAC,EAAEP,QAAQ,CAAC;YACtC;YAEA,OAAO,IAAI;UACb;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;AACH;AAEA,eAAehB,QAAQ","ignoreList":[]}
@@ -5,7 +5,7 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
5
  import React from "react";
6
6
  import { CHILDREN_COMPONENT, CONTEXT_COMPONENT } from "../core-types/symbols.mjs";
7
7
  var _excluded = ["handlers", "getters"], _excluded2 = ["handlers"];
8
- var CHILDREN_SELF = Symbol("CHILDREN_SELF");
8
+ var CHILDREN_SELF = /* @__PURE__ */ Symbol("CHILDREN_SELF");
9
9
  var GETTER_REG = /^get[\w]+Props$/;
10
10
  function splitPropsAndGetters(props) {
11
11
  return Object.entries(props).reduce(function(acc, _ref) {
@@ -31,9 +31,9 @@ function flatGetterMethodNames(childComponents, parentName) {
31
31
  return acc;
32
32
  }, []);
33
33
  }
34
- var STATIC_COMPONENT = Symbol("STATIC_COMPONENT");
35
- var ROOT_COMPONENT = Symbol("ROOT_COMPONENT");
36
- var SELF_GETTER_METHOD = Symbol("SELF_GETTER_METHOD");
34
+ var STATIC_COMPONENT = /* @__PURE__ */ Symbol("STATIC_COMPONENT");
35
+ var ROOT_COMPONENT = /* @__PURE__ */ Symbol("ROOT_COMPONENT");
36
+ var SELF_GETTER_METHOD = /* @__PURE__ */ Symbol("SELF_GETTER_METHOD");
37
37
  function Enhancement(childComponents, createComponent, options) {
38
38
  var getterMethodNames = flatGetterMethodNames(childComponents);
39
39
  return {
@@ -6,8 +6,8 @@ import { STATIC_COMPONENT } from "./staticChildren.mjs";
6
6
  import "../styled/index.mjs";
7
7
  import { sstyled } from "../styled/sstyled.mjs";
8
8
  var _excluded = ["_styles", "styles"], _excluded2 = ["styles"];
9
- var STYLES_CONTEXT = Symbol("STYLES_CONTEXT");
10
- var STYLES_SELF = Symbol("STYLES_SELF");
9
+ var STYLES_CONTEXT = /* @__PURE__ */ Symbol("STYLES_CONTEXT");
10
+ var STYLES_SELF = /* @__PURE__ */ Symbol("STYLES_SELF");
11
11
  function Enhancement(childComponents, Context) {
12
12
  return {
13
13
  condition: function condition(Component) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = void 0;
8
8
  var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _arrayLikeToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/arrayLikeToArray"));
10
11
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
11
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
13
  var _toPropertyKey2 = _interopRequireDefault(require("@babel/runtime/helpers/toPropertyKey"));
@@ -69,7 +70,7 @@ function uncontrolledUniversal(props, config, uncontrolledProp) {
69
70
  var _setter = setter;
70
71
  var _setter2 = (0, _toArray2["default"])(_setter);
71
72
  setter = _setter2[0];
72
- chainHandler = _setter2.slice(1);
73
+ chainHandler = (0, _arrayLikeToArray2["default"])(_setter2).slice(1);
73
74
  }
74
75
  setter = setter || function (v) {
75
76
  return v;
@@ -1 +1 @@
1
- {"version":3,"file":"uncontrolledProps.js","names":["_assignProps","require","_capitalizeFirstLetter","_interopRequireDefault","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","concat","capitalizeFirstLetter","handlerProp","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","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":["import { callAllEventHandlers } from '../utils/assignProps';\nimport capitalizeFirstLetter from '../utils/capitalizeFirstLetter';\n\nfunction assign(target: any, source: any) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors: any, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nfunction defaultProp(prop: any) {\n return `default${capitalizeFirstLetter(prop)}`;\n}\n\nfunction handlerProp(prop: any) {\n if (prop === 'value') prop = '';\n if (prop === 'checked') prop = '';\n return `on${capitalizeFirstLetter(prop)}Change`;\n}\n\nfunction isControlled(propValue: any) {\n return propValue !== undefined;\n}\n\nfunction uncontrolledProp(\n self: any,\n propName: any,\n propValue: any,\n propDefaultValue: any,\n propHandler: any,\n chainHandler: any,\n) {\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: any, ...args: any[]) => {\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: any, config: any, uncontrolledProp: any) {\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: any) => 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 as any)[propName] = handler;\n\n return {\n ...other,\n [propName]: value,\n [handlerName]: (eventOrValue: any, ...args: any[]) => {\n const result = [setter(eventOrValue, ...args), ...args];\n if (eventOrValue?.target) {\n result.push(eventOrValue);\n }\n return handler(...result);\n },\n };\n }, props);\n return [uncontrolledProps, handlerProps];\n}\n\nfunction uncontrolled(self: any, props: any, config: any) {\n return uncontrolledUniversal(props, config, uncontrolledProp.bind(undefined, self));\n}\n\nfunction Enhancement() {\n return {\n condition: function (Component: any) {\n return Boolean(Component.prototype.uncontrolledProps);\n },\n init: function (this: any) {\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 (this: any, context: any) {\n return {\n ...context,\n handlers: this.handlers,\n };\n },\n asProps: function (this: any, props: any) {\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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","ignoreList":[]}
1
+ {"version":3,"file":"uncontrolledProps.js","names":["_assignProps","require","_capitalizeFirstLetter","_interopRequireDefault","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","concat","capitalizeFirstLetter","handlerProp","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","handlerName","defaultPropName","other","_objectWithoutProperties2","map","_toPropertyKey2","console","warn","setter","isArray","_setter","_setter2","_toArray2","_arrayLikeToArray2","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":["import { callAllEventHandlers } from '../utils/assignProps';\nimport capitalizeFirstLetter from '../utils/capitalizeFirstLetter';\n\nfunction assign(target: any, source: any) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors: any, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nfunction defaultProp(prop: any) {\n return `default${capitalizeFirstLetter(prop)}`;\n}\n\nfunction handlerProp(prop: any) {\n if (prop === 'value') prop = '';\n if (prop === 'checked') prop = '';\n return `on${capitalizeFirstLetter(prop)}Change`;\n}\n\nfunction isControlled(propValue: any) {\n return propValue !== undefined;\n}\n\nfunction uncontrolledProp(\n self: any,\n propName: any,\n propValue: any,\n propDefaultValue: any,\n propHandler: any,\n chainHandler: any,\n) {\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: any, ...args: any[]) => {\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: any, config: any, uncontrolledProp: any) {\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: any) => 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 as any)[propName] = handler;\n\n return {\n ...other,\n [propName]: value,\n [handlerName]: (eventOrValue: any, ...args: any[]) => {\n const result = [setter(eventOrValue, ...args), ...args];\n if (eventOrValue?.target) {\n result.push(eventOrValue);\n }\n return handler(...result);\n },\n };\n }, props);\n return [uncontrolledProps, handlerProps];\n}\n\nfunction uncontrolled(self: any, props: any, config: any) {\n return uncontrolledUniversal(props, config, uncontrolledProp.bind(undefined, self));\n}\n\nfunction Enhancement() {\n return {\n condition: function (Component: any) {\n return Boolean(Component.prototype.uncontrolledProps);\n },\n init: function (this: any) {\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 (this: any, context: any) {\n return {\n ...context,\n handlers: this.handlers,\n };\n },\n asProps: function (this: any, props: any) {\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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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import _arrayLikeToArray from "@babel/runtime/helpers/esm/arrayLikeToArray";
3
4
  import _toArray from "@babel/runtime/helpers/esm/toArray";
4
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
6
  import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
@@ -53,7 +54,7 @@ function uncontrolledUniversal(props, config, uncontrolledProp2) {
53
54
  var _setter = setter;
54
55
  var _setter2 = _toArray(_setter);
55
56
  setter = _setter2[0];
56
- chainHandler = _setter2.slice(1);
57
+ chainHandler = _arrayLikeToArray(_setter2).slice(1);
57
58
  }
58
59
  setter = setter || function(v) {
59
60
  return v;
@@ -1 +1 @@
1
- {"version":3,"file":"uncontrolledProps.mjs","names":["callAllEventHandlers","capitalizeFirstLetter","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","concat","handlerProp","isControlled","propValue","undefined","uncontrolledProp","self","propName","propDefaultValue","propHandler","chainHandler","getValue","state","value","oldValue","setState","_defineProperty","_len","arguments","length","args","Array","_key","apply","_toConsumableArray","uncontrolledUniversal","props","config","handlerProps","uncontrolledProps","result","handlerName","defaultPropName","other","_objectWithoutProperties","map","_toPropertyKey","console","warn","setter","isArray","_setter","_setter2","_toArray","slice","v","_uncontrolledProp","_uncontrolledProp2","_slicedToArray","handler","_objectSpread","eventOrValue","_len2","_key2","push","uncontrolled","bind","Enhancement","condition","Component","Boolean","prototype","init","handlers","_uncontrolled","_uncontrolled2","uncontrolledHandlers","context","asProps","_uncontrolled3","_uncontrolled4"],"sources":["../../src/enhancement/uncontrolledProps.tsx"],"sourcesContent":["import { callAllEventHandlers } from '../utils/assignProps';\nimport capitalizeFirstLetter from '../utils/capitalizeFirstLetter';\n\nfunction assign(target: any, source: any) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors: any, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nfunction defaultProp(prop: any) {\n return `default${capitalizeFirstLetter(prop)}`;\n}\n\nfunction handlerProp(prop: any) {\n if (prop === 'value') prop = '';\n if (prop === 'checked') prop = '';\n return `on${capitalizeFirstLetter(prop)}Change`;\n}\n\nfunction isControlled(propValue: any) {\n return propValue !== undefined;\n}\n\nfunction uncontrolledProp(\n self: any,\n propName: any,\n propValue: any,\n propDefaultValue: any,\n propHandler: any,\n chainHandler: any,\n) {\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: any, ...args: any[]) => {\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: any, config: any, uncontrolledProp: any) {\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: any) => 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 as any)[propName] = handler;\n\n return {\n ...other,\n [propName]: value,\n [handlerName]: (eventOrValue: any, ...args: any[]) => {\n const result = [setter(eventOrValue, ...args), ...args];\n if (eventOrValue?.target) {\n result.push(eventOrValue);\n }\n return handler(...result);\n },\n };\n }, props);\n return [uncontrolledProps, handlerProps];\n}\n\nfunction uncontrolled(self: any, props: any, config: any) {\n return uncontrolledUniversal(props, config, uncontrolledProp.bind(undefined, self));\n}\n\nfunction Enhancement() {\n return {\n condition: function (Component: any) {\n return Boolean(Component.prototype.uncontrolledProps);\n },\n init: function (this: any) {\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 (this: any, context: any) {\n return {\n ...context,\n handlers: this.handlers,\n };\n },\n asProps: function (this: any, props: any) {\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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","ignoreList":[]}
1
+ {"version":3,"file":"uncontrolledProps.mjs","names":["callAllEventHandlers","capitalizeFirstLetter","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","concat","handlerProp","isControlled","propValue","undefined","uncontrolledProp","self","propName","propDefaultValue","propHandler","chainHandler","getValue","state","value","oldValue","setState","_defineProperty","_len","arguments","length","args","Array","_key","apply","_toConsumableArray","uncontrolledUniversal","props","config","handlerProps","uncontrolledProps","result","handlerName","defaultPropName","other","_objectWithoutProperties","map","_toPropertyKey","console","warn","setter","isArray","_setter","_setter2","_toArray","_arrayLikeToArray","slice","v","_uncontrolledProp","_uncontrolledProp2","_slicedToArray","handler","_objectSpread","eventOrValue","_len2","_key2","push","uncontrolled","bind","Enhancement","condition","Component","Boolean","prototype","init","handlers","_uncontrolled","_uncontrolled2","uncontrolledHandlers","context","asProps","_uncontrolled3","_uncontrolled4"],"sources":["../../src/enhancement/uncontrolledProps.tsx"],"sourcesContent":["import { callAllEventHandlers } from '../utils/assignProps';\nimport capitalizeFirstLetter from '../utils/capitalizeFirstLetter';\n\nfunction assign(target: any, source: any) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors: any, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nfunction defaultProp(prop: any) {\n return `default${capitalizeFirstLetter(prop)}`;\n}\n\nfunction handlerProp(prop: any) {\n if (prop === 'value') prop = '';\n if (prop === 'checked') prop = '';\n return `on${capitalizeFirstLetter(prop)}Change`;\n}\n\nfunction isControlled(propValue: any) {\n return propValue !== undefined;\n}\n\nfunction uncontrolledProp(\n self: any,\n propName: any,\n propValue: any,\n propDefaultValue: any,\n propHandler: any,\n chainHandler: any,\n) {\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: any, ...args: any[]) => {\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: any, config: any, uncontrolledProp: any) {\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: any) => 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 as any)[propName] = handler;\n\n return {\n ...other,\n [propName]: value,\n [handlerName]: (eventOrValue: any, ...args: any[]) => {\n const result = [setter(eventOrValue, ...args), ...args];\n if (eventOrValue?.target) {\n result.push(eventOrValue);\n }\n return handler(...result);\n },\n };\n }, props);\n return [uncontrolledProps, handlerProps];\n}\n\nfunction uncontrolled(self: any, props: any, config: any) {\n return uncontrolledUniversal(props, config, uncontrolledProp.bind(undefined, self));\n}\n\nfunction Enhancement() {\n return {\n condition: function (Component: any) {\n return Boolean(Component.prototype.uncontrolledProps);\n },\n init: function (this: any) {\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 (this: any, context: any) {\n return {\n ...context,\n handlers: this.handlers,\n };\n },\n asProps: function (this: any, props: any) {\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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","ignoreList":[]}
@@ -5,20 +5,25 @@ import _inherits from "@babel/runtime/helpers/esm/inherits";
5
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
6
  import { PureComponent } from "react";
7
7
  var Root = void 0;
8
- var RootComponent = /* @__PURE__ */ (function(_PureComponent) {
9
- function RootComponent2() {
8
+ var Component = /* @__PURE__ */ (function(_PureComponent) {
9
+ function Component2() {
10
10
  var _this;
11
11
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
12
12
  args[_key] = arguments[_key];
13
13
  }
14
- _classCallCheck(this, RootComponent2);
15
- _this = _callSuper(this, RootComponent2, [].concat(args));
14
+ _classCallCheck(this, Component2);
15
+ _this = _callSuper(this, Component2, [].concat(args));
16
16
  _defineProperty(_this, "Root", void 0);
17
17
  _defineProperty(_this, "isControlled", false);
18
18
  return _this;
19
19
  }
20
- _inherits(RootComponent2, _PureComponent);
21
- return _createClass(RootComponent2, [{
20
+ _inherits(Component2, _PureComponent);
21
+ return _createClass(Component2, [{
22
+ key: "uncontrolledProps",
23
+ value: function uncontrolledProps() {
24
+ return {};
25
+ }
26
+ }, {
22
27
  key: "handlers",
23
28
  get: function get() {
24
29
  return {};
@@ -30,7 +35,6 @@ var RootComponent = /* @__PURE__ */ (function(_PureComponent) {
30
35
  }
31
36
  }]);
32
37
  })(PureComponent);
33
- var Component = RootComponent;
34
38
  var Intergalactic;
35
39
  var wrapIntergalacticComponent = function wrapIntergalacticComponent2(wrapper) {
36
40
  return wrapper;
@@ -1,12 +1,12 @@
1
- var CORE_COMPONENT = Symbol("CORE_COMPONENT");
2
- var CORE_INSTANCE = Symbol("CORE_INSTANCE");
3
- var CORE_AS_PROPS = Symbol("CORE_AS_PROPS");
4
- var CORE_INIT = Symbol("CORE_INIT");
5
- var CONTEXT_COMPONENT = Symbol("CONTEXT_COMPONENT");
6
- var CREATE_COMPONENT = Symbol("CREATE_COMPONENT");
7
- var PARENT_COMPONENTS = Symbol("PARENT_COMPONENTS");
8
- var CHILDREN_COMPONENT = Symbol("CHILDREN_COMPONENT");
9
- var INHERITED_NAME = Symbol("INHERITED_NAME");
1
+ var CORE_COMPONENT = /* @__PURE__ */ Symbol("CORE_COMPONENT");
2
+ var CORE_INSTANCE = /* @__PURE__ */ Symbol("CORE_INSTANCE");
3
+ var CORE_AS_PROPS = /* @__PURE__ */ Symbol("CORE_AS_PROPS");
4
+ var CORE_INIT = /* @__PURE__ */ Symbol("CORE_INIT");
5
+ var CONTEXT_COMPONENT = /* @__PURE__ */ Symbol("CONTEXT_COMPONENT");
6
+ var CREATE_COMPONENT = /* @__PURE__ */ Symbol("CREATE_COMPONENT");
7
+ var PARENT_COMPONENTS = /* @__PURE__ */ Symbol("PARENT_COMPONENTS");
8
+ var CHILDREN_COMPONENT = /* @__PURE__ */ Symbol("CHILDREN_COMPONENT");
9
+ var INHERITED_NAME = /* @__PURE__ */ Symbol("INHERITED_NAME");
10
10
  export {
11
11
  CHILDREN_COMPONENT,
12
12
  CONTEXT_COMPONENT,