@semcore/core 1.11.5 → 1.11.8
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 +18 -0
- package/README.md +67 -0
- package/lib/cjs/enhancement/Children.js +1 -1
- package/lib/cjs/enhancement/Children.js.map +1 -1
- package/lib/cjs/enhancement/Root.js +1 -1
- package/lib/cjs/enhancement/Root.js.map +1 -1
- package/lib/cjs/enhancement/hoistProps.js +3 -3
- package/lib/cjs/enhancement/hoistProps.js.map +1 -1
- package/lib/cjs/enhancement/style.js +1 -1
- package/lib/cjs/enhancement/style.js.map +1 -1
- package/lib/cjs/enhancement/uncontrolledProps.js +2 -2
- package/lib/cjs/enhancement/uncontrolledProps.js.map +1 -1
- package/lib/es6/enhancement/Children.js +1 -1
- package/lib/es6/enhancement/Children.js.map +1 -1
- package/lib/es6/enhancement/Root.js +1 -1
- package/lib/es6/enhancement/Root.js.map +1 -1
- package/lib/es6/enhancement/hoistProps.js +3 -3
- package/lib/es6/enhancement/hoistProps.js.map +1 -1
- package/lib/es6/enhancement/style.js +1 -1
- package/lib/es6/enhancement/style.js.map +1 -1
- package/lib/es6/enhancement/uncontrolledProps.js +2 -2
- package/lib/es6/enhancement/uncontrolledProps.js.map +1 -1
- package/package.json +2 -2
- package/src/enhancement/Children.tsx +14 -13
- package/src/enhancement/Root.tsx +1 -1
- package/src/enhancement/hoistProps.tsx +3 -3
- package/src/enhancement/style.tsx +1 -1
- package/src/enhancement/uncontrolledProps.tsx +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [1.11.8] - 2022-07-07
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/utils` [3.33.0 ~> 3.34.0]).
|
|
10
|
+
|
|
11
|
+
## [1.11.7] - 2022-06-02
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Version patch update due to children dependencies update (`@semcore/utils` [3.32.2 ~> 3.33.0]).
|
|
16
|
+
|
|
17
|
+
## [1.11.6] - 2022-05-31
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Version patch update due to children dependencies update (`@semcore/utils` [3.32.1 ~> 3.32.2]).
|
|
22
|
+
|
|
5
23
|
## [1.11.5] - 2022-05-19
|
|
6
24
|
|
|
7
25
|
### Changed
|
package/README.md
CHANGED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# @semcore/core
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/@semcore/core)
|
|
4
|
+
[](https://www.npmjs.com/package/@semcore/core)
|
|
5
|
+
[](https://github.com/semrush/intergalactic/blob/master/LICENSE)
|
|
6
|
+
|
|
7
|
+
> This component is part of the Intergalactic design system
|
|
8
|
+
|
|
9
|
+
[//]: # '### 📖 [Component documentation](https://developer.semrush.com/intergalactic/components/core/)'
|
|
10
|
+
|
|
11
|
+
### 🏠 [Design system](https://developer.semrush.com/intergalactic/)
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
npm install @semcore/ui
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```jsx
|
|
22
|
+
import createComponent, { Root, sstyled } from '@semcore/ui/core';
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
<details>
|
|
26
|
+
<summary>Alternative installation and use</summary>
|
|
27
|
+
|
|
28
|
+
**We do not recommend this usage path due to possible dependency and update issues.**
|
|
29
|
+
|
|
30
|
+
### Install
|
|
31
|
+
|
|
32
|
+
You can only install one package from the design system
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
npm install @semcore/core @semcore/core
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`@semcore/core` - _is the basic package by which we create our components, and it contains all of the common logic
|
|
39
|
+
of the components that is discussed below. There should only be one version of the package in the project._
|
|
40
|
+
|
|
41
|
+
### Usage
|
|
42
|
+
|
|
43
|
+
You can use the package the same way but without `/ui/` in the import path.
|
|
44
|
+
|
|
45
|
+
</details>
|
|
46
|
+
|
|
47
|
+
```jsx
|
|
48
|
+
import createComponent, { Root, sstyled } from '@semcore/core';
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 👤 Author
|
|
52
|
+
|
|
53
|
+
[UI-kit team](https://github.com/semrush/intergalactic/blob/master/MAINTAINERS) and [others ❤️](https://github.com/semrush/intergalactic/graphs/contributors)
|
|
54
|
+
|
|
55
|
+
## 🤝 Contributing
|
|
56
|
+
|
|
57
|
+
Contributions, issues and feature requests are welcome!
|
|
58
|
+
|
|
59
|
+
Feel free to check [issues page](https://github.com/semrush/intergalactic/issues). You can also take a look at the [contributing guide](https://github.com/semrush/intergalactic/blob/master/CONTRIBUTING.md).
|
|
60
|
+
|
|
61
|
+
## Show your support
|
|
62
|
+
|
|
63
|
+
Give a ⭐️ if this project helped you!
|
|
64
|
+
|
|
65
|
+
## 📝 License
|
|
66
|
+
|
|
67
|
+
This project is [MIT](https://github.com/semrush/intergalactic/blob/master/LICENSE) licensed.
|
|
@@ -137,7 +137,7 @@ function Enhancement(Context, parent) {
|
|
|
137
137
|
this[CHILDREN_SELF] = createChildren(Context, contexts);
|
|
138
138
|
},
|
|
139
139
|
asProps: function asProps(props) {
|
|
140
|
-
// TODO:
|
|
140
|
+
// TODO: learn the reason what it was used for (by lsroman)
|
|
141
141
|
// this[CHILDREN_SELF].origin = _Children ? _Children.origin : children;
|
|
142
142
|
this[CHILDREN_SELF].origin = props.children;
|
|
143
143
|
this[CHILDREN_SELF].props = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/Children.tsx"],"names":["CHILDREN_COMPONENT","Symbol","CHILDREN_SELF","GETTER_REG","splitPropsAndGetters","props","Object","entries","reduce","acc","key","value","exec","getters","getterToArray","getter","Array","isArray","mergeObjects","a","b","core","keys","assignGettersChain","createChildren","Context","contexts","Children","children","origin","ctx","handlers","propsAndGetters","assign","mergedGetters","undefined","Enhancement","parent","init","map","component","CONTEXT_COMPONENT","filter","Boolean","asProps"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;;AAEO,IAAMA,kBAAkB,GAAGC,MAAM,CAAC,oBAAD,CAAjC;;AACP,IAAMC,aAAa,GAAGD,MAAM,CAAC,eAAD,CAA5B;AAEA,IAAME,UAAU,GAAG,iBAAnB;;AAEA,SAASC,oBAAT,CAA8BC,KAA9B,EAAqC;AACnC,SAAOC,MAAM,CAACC,OAAP,CAAeF,KAAf,EAAsBG,MAAtB,CACL,UAACC,GAAD,QAAuB;AAAA;AAAA,QAAhBC,GAAgB;AAAA,QAAXC,KAAW;;AACrB,QAAIR,UAAU,CAACS,IAAX,CAAgBF,GAAhB,MAAyB,IAA7B,EAAmC;AACjCD,MAAAA,GAAG,CAACJ,KAAJ,CAAUK,GAAV,IAAiBC,KAAjB;AACD,KAFD,MAEO;AACLF,MAAAA,GAAG,CAACI,OAAJ,CAAYH,GAAZ,IAAmBC,KAAnB;AACD;;AACD,WAAOF,GAAP;AACD,GARI,EASL;AAAEJ,IAAAA,KAAK,EAAE,EAAT;AAAaQ,IAAAA,OAAO,EAAE;AAAtB,GATK,CAAP;AAWD;;AAED,SAASC,aAAT,CAAuBC,MAAvB,EAA+B;AAC7B,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcF,MAAd,CAAL,EAA4B;AAC1B,WAAO,OAAOA,MAAP,KAAkB,UAAlB,GAA+B,CAACA,MAAD,CAA/B,GAA0C,EAAjD;AACD;;AACD,SAAOA,MAAP;AACD;;AAED,SAASG,YAAT,GAAsC;AAAA,MAAhBC,CAAgB,uEAAZ,EAAY;AAAA,MAARC,CAAQ,uEAAJ,EAAI;;AACpC,MAAMC,IAAI,mCAAQF,CAAR,GAAcC,CAAd,CAAV;;AACA,SAAOd,MAAM,CAACgB,IAAP,CAAYD,IAAZ,EAAkBb,MAAlB,CAAyB,UAACC,GAAD,EAAMC,GAAN,EAAc;AAC5CS,IAAAA,CAAC,CAACT,GAAD,CAAD,GAASI,aAAa,CAACK,CAAC,CAACT,GAAD,CAAF,CAAtB;AACAU,IAAAA,CAAC,CAACV,GAAD,CAAD,GAASI,aAAa,CAACM,CAAC,CAACV,GAAD,CAAF,CAAtB;AACAD,IAAAA,GAAG,CAACC,GAAD,CAAH,iDAAeS,CAAC,CAACT,GAAD,CAAhB,uCAA0BU,CAAC,CAACV,GAAD,CAA3B;AACA,WAAOD,GAAP;AACD,GALM,EAKJ,EALI,CAAP;AAMD;;AAED,SAASc,kBAAT,CAA4BV,OAA5B,EAAsD;AACpD,SAAO,YAAsB;AAAA,QAAZR,KAAY,uEAAJ,EAAI;AAC3B,WAAOQ,OAAO,CAACL,MAAR,CAAe,UAACC,GAAD,EAAMM,MAAN,EAAiB;AACrC,aAAOA,MAAM,CAACN,GAAD,CAAb;AACD,KAFM,EAEJJ,KAFI,CAAP;AAGD,GAJD;AAKD;;AAED,SAASmB,cAAT,CAAwBC,OAAxB,EAAiCC,QAAjC,EAA2C;AACzC,MAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAY;AAC3B,QAAMC,QAAQ,GAAGD,QAAQ,CAACE,MAA1B;;AACA,QAAI,OAAOD,QAAP,KAAoB,UAAxB,EAAoC;AAClC,
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/Children.tsx"],"names":["CHILDREN_COMPONENT","Symbol","CHILDREN_SELF","GETTER_REG","splitPropsAndGetters","props","Object","entries","reduce","acc","key","value","exec","getters","getterToArray","getter","Array","isArray","mergeObjects","a","b","core","keys","assignGettersChain","createChildren","Context","contexts","Children","children","origin","ctx","handlers","propsAndGetters","assign","mergedGetters","undefined","Enhancement","parent","init","map","component","CONTEXT_COMPONENT","filter","Boolean","asProps"],"mappings":"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","sourcesContent":["import { useContext } from 'react';\nimport { CONTEXT_COMPONENT } from '../index';\n\nexport const CHILDREN_COMPONENT = Symbol('CHILDREN_COMPONENT');\nconst CHILDREN_SELF = Symbol('CHILDREN_SELF');\n\nconst GETTER_REG = /^get[\\w]+Props$/;\n\nfunction splitPropsAndGetters(props) {\n return Object.entries(props).reduce(\n (acc, [key, value]) => {\n if (GETTER_REG.exec(key) === null) {\n acc.props[key] = value;\n } else {\n acc.getters[key] = value;\n }\n return acc;\n },\n { props: {}, getters: {} },\n );\n}\n\nfunction getterToArray(getter) {\n if (!Array.isArray(getter)) {\n return typeof getter === 'function' ? [getter] : [];\n }\n return getter;\n}\n\nfunction mergeObjects(a = {}, b = {}) {\n const core = { ...a, ...b };\n return Object.keys(core).reduce((acc, key) => {\n a[key] = getterToArray(a[key]);\n b[key] = getterToArray(b[key]);\n acc[key] = [...a[key], ...b[key]];\n return acc;\n }, {});\n}\n\nfunction assignGettersChain(getters: Array<Function>) {\n return function (props = {}) {\n return getters.reduce((acc, getter) => {\n return getter(acc);\n }, props);\n };\n}\n\nfunction createChildren(Context, contexts) {\n const Children = function () {\n const children = Children.origin;\n if (typeof children === 'function') {\n const {\n handlers = {},\n getters = {},\n ...props\n } = [...contexts, Context].reduce((acc, ctx) => {\n const { handlers, ...propsAndGetters } = useContext(ctx);\n const { props, getters } = splitPropsAndGetters(propsAndGetters);\n return Object.assign({}, acc, {\n handlers: Object.assign({}, acc.handlers, handlers),\n getters: mergeObjects(acc.getters, getters),\n ...props,\n });\n }, Children.props);\n\n const mergedGetters = Object.entries(getters).reduce((acc, [key, value]) => {\n acc[key] = assignGettersChain(value as []);\n return acc;\n }, {});\n\n return children({ ...props, ...mergedGetters }, handlers);\n } else if (children === undefined) {\n return null;\n }\n return children;\n };\n Children.origin = null;\n Children.props = {};\n Children[CHILDREN_COMPONENT] = true;\n return Children;\n}\n\nfunction Enhancement(Context, parent) {\n return {\n init: function () {\n const contexts = (Array.isArray(parent) ? parent : [parent])\n .map((component) => component[CONTEXT_COMPONENT])\n .filter(Boolean);\n this[CHILDREN_SELF] = createChildren(Context, contexts);\n },\n asProps: function (props) {\n // TODO: learn the reason what it was used for (by lsroman)\n // this[CHILDREN_SELF].origin = _Children ? _Children.origin : children;\n this[CHILDREN_SELF].origin = props.children;\n this[CHILDREN_SELF].props = props;\n return {\n ...props,\n Children: this[CHILDREN_SELF],\n };\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"Children.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/Root.tsx"],"names":["createRootRender","Root","React","forwardRef","ref","Tag","render","source","props","_Root","styles","children","Children","clearProps","Object","entries","reduce","name","value","undefined","child","origin","other","Error","Enhancement","init","asProps","WrapperComponent","isFunction"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;;;;;;;;AAEA,SAASA,gBAAT,GAA4B;AAC1B;AACA,MAAMC,IAAI,GAAGC,kBAAMC,UAAN,CAAiB,gBAAsCC,GAAtC,EAA2C;AAAA,QAAvBC,GAAuB,QAA/BC,MAA+B;AAAA,QAAfC,MAAe;AACvE,sBAWIN,IAAI,CAACO,KAXT;AAAA,QAEQC,KAFR,eAEER,IAFF;AAAA,QAIES,MAJF,eAIEA,MAJF;AAAA,QAMEC,QANF,eAMEA,QANF;AAAA,QAOEC,QAPF,eAOEA,QAPF;AAAA,4CAQET,UARF;AAAA,QAQEA,UARF,sCAQe,IARf;AAAA,QASKK,KATL;AAaA,QAAMK,UAAU,GAAGC,MAAM,CAACC,OAAP,CAAeP,KAAf,EAAsBQ,MAAtB,CAA6B,UAACR,KAAD,SAA0B;AAAA;AAAA,UAAjBS,IAAiB;AAAA,UAAXC,KAAW;;AACxE,UAAIA,KAAK,KAAKC,SAAd,EAAyB;AACvBX,QAAAA,KAAK,CAACS,IAAD,CAAL,GAAcC,KAAd;AACD;;AACD,aAAOV,KAAP;AACD,KALkB,EAKhB,EALgB,CAAnB;AAOA,QAAMY,KAAK,GAAG,EAAd,CArBuE,CAsBvE;;AACA,QAAI,OAAOR,QAAQ,CAACS,MAAhB,KAA2B,WAA/B,EAA4C;AAC1C;AACAD,MAAAA,KAAK,CAACT,QAAN,gBAAiB,gCAAC,QAAD,OAAjB;AACD;;AAED,QAAMW,KAAK,GAAG,6DAEPT,UAFO;AAGVT,MAAAA,GAAG,EAAE,sBAAWD,UAAX,EAAuBC,GAAvB;AAHK,wCAMPgB,KANO,GAOPb,MAPO,EAAd;;AAUA,QAAI,CAACF,GAAL,EAAU;AACR,YAAM,IAAIkB,KAAJ,CAAU,uCAAV,CAAN;AACD;;AACD,wBAAO,gCAAC,GAAD,EAASD,KAAT,CAAP;AACD,GA1CY,CAAb,CAF0B,CA6C1B;;;AACArB,EAAAA,IAAI,CAACO,KAAL,GAAa,EAAb;AACA,SAAOP,IAAP;AACD;;AAED,SAASuB,WAAT,GAAuB;AACrB,SAAO;AACLC,IAAAA,IAAI,EAAE,gBAAY;AAChB,WAAKxB,IAAL,GAAYD,gBAAgB,EAA5B;AACD,KAHI;AAIL0B,IAAAA,OAAO,EAAE,iBAAUlB,KAAV,EAAiBmB,gBAAjB,EAAmCC,UAAnC,EAA+C;AACtD,UAAIA,UAAJ,EAAgB;AACd,+CACKpB,KADL;AAEEP,UAAAA,IAAI,EAAE,KAAKA;AAFb;AAID;;AACD,aAAOO,KAAP;AACD,KAZI;AAaLF,IAAAA,MAAM,EAAE,gBAAUA,OAAV,EAAkBE,KAAlB,EAAyB;AAC/B,WAAKP,IAAL,CAAUO,KAAV,GAAkBA,KAAlB;AACA,aAAOF,OAAP;AACD;AAhBI,GAAP;AAkBD;;eAEckB,W","sourcesContent":["import React from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n\nfunction createRootRender() {\n // @ts-ignore\n const Root = React.forwardRef(function ({ render: Tag, ...source }, ref) {\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Root: _Root,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n styles,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children,\n Children,\n forwardRef = null,\n ...props\n // @ts-ignore\n } = Root.props;\n\n const clearProps = Object.entries(props).reduce((props, [name, value]) => {\n if (value !== undefined) {\n props[name] = value;\n }\n return props;\n }, {});\n\n const child = {};\n // TODO:
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/Root.tsx"],"names":["createRootRender","Root","React","forwardRef","ref","Tag","render","source","props","_Root","styles","children","Children","clearProps","Object","entries","reduce","name","value","undefined","child","origin","other","Error","Enhancement","init","asProps","WrapperComponent","isFunction"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;;;;;;;;AAEA,SAASA,gBAAT,GAA4B;AAC1B;AACA,MAAMC,IAAI,GAAGC,kBAAMC,UAAN,CAAiB,gBAAsCC,GAAtC,EAA2C;AAAA,QAAvBC,GAAuB,QAA/BC,MAA+B;AAAA,QAAfC,MAAe;AACvE,sBAWIN,IAAI,CAACO,KAXT;AAAA,QAEQC,KAFR,eAEER,IAFF;AAAA,QAIES,MAJF,eAIEA,MAJF;AAAA,QAMEC,QANF,eAMEA,QANF;AAAA,QAOEC,QAPF,eAOEA,QAPF;AAAA,4CAQET,UARF;AAAA,QAQEA,UARF,sCAQe,IARf;AAAA,QASKK,KATL;AAaA,QAAMK,UAAU,GAAGC,MAAM,CAACC,OAAP,CAAeP,KAAf,EAAsBQ,MAAtB,CAA6B,UAACR,KAAD,SAA0B;AAAA;AAAA,UAAjBS,IAAiB;AAAA,UAAXC,KAAW;;AACxE,UAAIA,KAAK,KAAKC,SAAd,EAAyB;AACvBX,QAAAA,KAAK,CAACS,IAAD,CAAL,GAAcC,KAAd;AACD;;AACD,aAAOV,KAAP;AACD,KALkB,EAKhB,EALgB,CAAnB;AAOA,QAAMY,KAAK,GAAG,EAAd,CArBuE,CAsBvE;;AACA,QAAI,OAAOR,QAAQ,CAACS,MAAhB,KAA2B,WAA/B,EAA4C;AAC1C;AACAD,MAAAA,KAAK,CAACT,QAAN,gBAAiB,gCAAC,QAAD,OAAjB;AACD;;AAED,QAAMW,KAAK,GAAG,6DAEPT,UAFO;AAGVT,MAAAA,GAAG,EAAE,sBAAWD,UAAX,EAAuBC,GAAvB;AAHK,wCAMPgB,KANO,GAOPb,MAPO,EAAd;;AAUA,QAAI,CAACF,GAAL,EAAU;AACR,YAAM,IAAIkB,KAAJ,CAAU,uCAAV,CAAN;AACD;;AACD,wBAAO,gCAAC,GAAD,EAASD,KAAT,CAAP;AACD,GA1CY,CAAb,CAF0B,CA6C1B;;;AACArB,EAAAA,IAAI,CAACO,KAAL,GAAa,EAAb;AACA,SAAOP,IAAP;AACD;;AAED,SAASuB,WAAT,GAAuB;AACrB,SAAO;AACLC,IAAAA,IAAI,EAAE,gBAAY;AAChB,WAAKxB,IAAL,GAAYD,gBAAgB,EAA5B;AACD,KAHI;AAIL0B,IAAAA,OAAO,EAAE,iBAAUlB,KAAV,EAAiBmB,gBAAjB,EAAmCC,UAAnC,EAA+C;AACtD,UAAIA,UAAJ,EAAgB;AACd,+CACKpB,KADL;AAEEP,UAAAA,IAAI,EAAE,KAAKA;AAFb;AAID;;AACD,aAAOO,KAAP;AACD,KAZI;AAaLF,IAAAA,MAAM,EAAE,gBAAUA,OAAV,EAAkBE,KAAlB,EAAyB;AAC/B,WAAKP,IAAL,CAAUO,KAAV,GAAkBA,KAAlB;AACA,aAAOF,OAAP;AACD;AAhBI,GAAP;AAkBD;;eAEckB,W","sourcesContent":["import React from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n\nfunction createRootRender() {\n // @ts-ignore\n const Root = React.forwardRef(function ({ render: Tag, ...source }, ref) {\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Root: _Root,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n styles,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children,\n Children,\n forwardRef = null,\n ...props\n // @ts-ignore\n } = Root.props;\n\n const clearProps = Object.entries(props).reduce((props, [name, value]) => {\n if (value !== undefined) {\n props[name] = value;\n }\n return props;\n }, {});\n\n const child = {};\n // TODO: need to find better check solution (by lsroman)\n if (typeof Children.origin !== 'undefined') {\n // @ts-ignore\n child.children = <Children />;\n }\n\n const other = assignProps(\n {\n ...clearProps,\n ref: useForkRef(forwardRef, ref),\n },\n {\n ...child,\n ...source,\n },\n );\n if (!Tag) {\n throw new Error('`render` prop of Root is not provided');\n }\n return <Tag {...other} />;\n });\n // @ts-ignore\n Root.props = {};\n return Root;\n}\n\nfunction Enhancement() {\n return {\n init: function () {\n this.Root = createRootRender();\n },\n asProps: function (props, WrapperComponent, isFunction) {\n if (isFunction) {\n return {\n ...props,\n Root: this.Root,\n };\n }\n return props;\n },\n render: function (render, props) {\n this.Root.props = props;\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"Root.js"}
|
|
@@ -53,7 +53,7 @@ function Enhancement(childComponents, Context) {
|
|
|
53
53
|
var _this = this;
|
|
54
54
|
|
|
55
55
|
if (isFunction) {
|
|
56
|
-
// TODO:
|
|
56
|
+
// TODO: might breake rules of hooks (by lsroman)
|
|
57
57
|
this[HOIST_SELF] = (0, _react.useState)({});
|
|
58
58
|
} else {
|
|
59
59
|
this[HOIST_SELF] = [{}, function (obj) {
|
|
@@ -69,12 +69,12 @@ function Enhancement(childComponents, Context) {
|
|
|
69
69
|
};
|
|
70
70
|
},
|
|
71
71
|
context: function context(_context) {
|
|
72
|
-
// TODO:
|
|
72
|
+
// TODO: need to optimizte container initialization (by lsroman)
|
|
73
73
|
// WrapperComponent.hoistProps
|
|
74
74
|
return _objectSpread(_objectSpread({}, _context), {}, (0, _defineProperty2["default"])({}, HOIST_CONTEXT, this[HOIST_SET]));
|
|
75
75
|
},
|
|
76
76
|
asProps: function asProps(props) {
|
|
77
|
-
// TODO
|
|
77
|
+
// TODO: need to check for no props overwriting (by lsroman)
|
|
78
78
|
return (0, _assignProps["default"])(this[HOIST_SELF][0], props);
|
|
79
79
|
},
|
|
80
80
|
wrapperProps: function wrapperProps(props, WrapperComponent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/hoistProps.tsx"],"names":["HOIST_CONTEXT","Symbol","HOIST_SELF","HOIST_SET","flatChildComponent","childComponents","Object","values","reduce","acc","Component","Array","isArray","push","Enhancement","Context","condition","some","Boolean","hoistProps","length","init","props","WrapperComponent","isFunction","obj","forceUpdate","context","asProps","wrapperProps","renameProps","propName","split","name","rename","entries","keys","value"],"mappings":"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","sourcesContent":["import { useContext, useState } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n\nexport const HOIST_CONTEXT = Symbol('HOIST_CONTEXT');\nconst HOIST_SELF = Symbol('HOIST_SELF');\nconst HOIST_SET = Symbol('HOIST_SET');\n\nfunction flatChildComponent(childComponents) {\n return Object.values(childComponents).reduce<unknown[]>((acc, Component) => {\n if (Array.isArray(Component)) {\n acc = [...acc, Component[0], ...flatChildComponent(Component[1])];\n } else {\n acc.push(Component);\n }\n return acc;\n }, []);\n}\n\nfunction Enhancement(childComponents, Context) {\n return {\n condition: function (Component) {\n return [Component, ...flatChildComponent(childComponents)].some((Component) =>\n Boolean(Component.hoistProps && Component.hoistProps.length),\n );\n },\n init: function (props, WrapperComponent, isFunction) {\n if (isFunction) {\n // TODO:
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/hoistProps.tsx"],"names":["HOIST_CONTEXT","Symbol","HOIST_SELF","HOIST_SET","flatChildComponent","childComponents","Object","values","reduce","acc","Component","Array","isArray","push","Enhancement","Context","condition","some","Boolean","hoistProps","length","init","props","WrapperComponent","isFunction","obj","forceUpdate","context","asProps","wrapperProps","renameProps","propName","split","name","rename","entries","keys","value"],"mappings":"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","sourcesContent":["import { useContext, useState } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n\nexport const HOIST_CONTEXT = Symbol('HOIST_CONTEXT');\nconst HOIST_SELF = Symbol('HOIST_SELF');\nconst HOIST_SET = Symbol('HOIST_SET');\n\nfunction flatChildComponent(childComponents) {\n return Object.values(childComponents).reduce<unknown[]>((acc, Component) => {\n if (Array.isArray(Component)) {\n acc = [...acc, Component[0], ...flatChildComponent(Component[1])];\n } else {\n acc.push(Component);\n }\n return acc;\n }, []);\n}\n\nfunction Enhancement(childComponents, Context) {\n return {\n condition: function (Component) {\n return [Component, ...flatChildComponent(childComponents)].some((Component) =>\n Boolean(Component.hoistProps && Component.hoistProps.length),\n );\n },\n init: function (props, WrapperComponent, isFunction) {\n if (isFunction) {\n // TODO: might breake rules of hooks (by lsroman)\n this[HOIST_SELF] = useState({});\n } else {\n this[HOIST_SELF] = [\n {},\n (obj) => {\n this[HOIST_SELF][0] = obj;\n this.forceUpdate();\n },\n ];\n }\n // For optimization render\n this[HOIST_SET] = (obj) => {\n this[HOIST_SELF][1](obj);\n };\n },\n context: function (context) {\n // TODO: need to optimizte container initialization (by lsroman)\n // WrapperComponent.hoistProps\n return {\n ...context,\n [HOIST_CONTEXT]: this[HOIST_SET],\n };\n },\n asProps: function (props) {\n // TODO: need to check for no props overwriting (by lsroman)\n return assignProps(this[HOIST_SELF][0], props);\n },\n wrapperProps: function (props, WrapperComponent) {\n if (WrapperComponent.hoistProps && WrapperComponent.hoistProps.length) {\n const context = useContext(Context);\n const renameProps = WrapperComponent.hoistProps.reduce((acc, propName) => {\n const [name, rename] = propName.split(':');\n acc[name] = rename || name;\n return acc;\n }, {});\n const hoistProps = Object.entries(pick(props, Object.keys(renameProps))).reduce(\n (acc, [name, value]) => {\n acc[renameProps[name]] = value;\n return acc;\n },\n {},\n );\n\n useEnhancedEffect(() => {\n if (context[HOIST_CONTEXT]) {\n context[HOIST_CONTEXT](hoistProps);\n }\n }, Object.values(hoistProps));\n }\n return props;\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"hoistProps.js"}
|
|
@@ -39,7 +39,7 @@ function Enhancement(childComponents, Context) {
|
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
context: function context(_context) {
|
|
42
|
-
//
|
|
42
|
+
// Optimization: if has no children there is no need to create new context (by lsroman)
|
|
43
43
|
if (!this[STYLES_SELF] || !Object.keys(childComponents).length) {
|
|
44
44
|
return _context;
|
|
45
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/style.tsx"],"names":["STYLES_CONTEXT","Symbol","STYLES_SELF","Enhancement","childComponents","Context","condition","Component","Boolean","style","STATIC_COMPONENT","init","props","WrapperComponent","sstyled","merge","_styles","context","Object","keys","length","asProps","styles","wrapperProps"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;;;;AAEO,IAAMA,cAAc,GAAGC,MAAM,CAAC,gBAAD,CAA7B;;AACP,IAAMC,WAAW,GAAGD,MAAM,CAAC,aAAD,CAA1B;;AAEA,SAASE,WAAT,CAAqBC,eAArB,EAAsCC,OAAtC,EAA+C;AAC7C,SAAO;AACLC,IAAAA,SAAS,EAAE,mBAAUC,SAAV,EAAqB;AAC9B,aAAOC,OAAO,CAACD,SAAS,CAACE,KAAV,IAAmBF,SAAS,CAACG,gCAAD,CAA7B,CAAd;AACD,KAHI;AAILC,IAAAA,IAAI,EAAE,cAAUC,KAAV,EAAiBC,gBAAjB,EAAmC;AACvC,UAAIA,gBAAgB,CAACJ,KAArB,EAA4B;AAC1B,aAAKP,WAAL,IAAoBY,gBAAQC,KAAR,CAAcF,gBAAgB,CAACJ,KAA/B,EAAsCG,KAAK,CAACI,OAA5C,CAApB;AACD;AACF,KARI;AASLC,IAAAA,OAAO,EAAE,iBAAUA,QAAV,EAAmB;AAC1B;AACA,UAAI,CAAC,KAAKf,WAAL,CAAD,IAAsB,CAACgB,MAAM,CAACC,IAAP,CAAYf,eAAZ,EAA6BgB,MAAxD,EAAgE;AAC9D,eAAOH,QAAP;AACD;;AACD,6CACKA,QADL,4CAEGjB,cAFH,EAEoB,KAAKE,WAAL,CAFpB;AAID,KAlBI;AAmBL;AACAmB,IAAAA,OAAO,EAAE,uBAAyC;AAAA,UAA7BL,OAA6B,QAA7BA,OAA6B;AAAA,UAApBM,MAAoB,QAApBA,MAAoB;AAAA,UAATV,KAAS;AAChD,6CACKA,KADL;AAEEU,QAAAA,MAAM,EAAEA,MAAM,IAAI,KAAKpB,WAAL;AAFpB;AAID,KAzBI;AA0BLqB,IAAAA,YAAY,EAAE,6BAAgC;AAAA,UAApBD,MAAoB,SAApBA,MAAoB;AAAA,UAATV,KAAS;AAC5C,UAAMK,OAAO,GAAG,uBAAWZ,OAAX,CAAhB;AACA,6CACKO,KADL;AAEEI,QAAAA,OAAO,EAAEM,MAFX;AAGEA,QAAAA,MAAM,EAAEL,OAAO,CAACjB,cAAD;AAHjB;AAKD;AAjCI,GAAP;AAmCD;;eAEcG,W","sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport { sstyled } from '../styled';\nimport { STATIC_COMPONENT } from './staticChildren';\n\nexport const STYLES_CONTEXT = Symbol('STYLES_CONTEXT');\nconst STYLES_SELF = Symbol('STYLES_SELF');\n\nfunction Enhancement(childComponents, Context) {\n return {\n condition: function (Component) {\n return Boolean(Component.style || Component[STATIC_COMPONENT]);\n },\n init: function (props, WrapperComponent) {\n if (WrapperComponent.style) {\n this[STYLES_SELF] = sstyled.merge(WrapperComponent.style, props._styles);\n }\n },\n context: function (context) {\n //
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/style.tsx"],"names":["STYLES_CONTEXT","Symbol","STYLES_SELF","Enhancement","childComponents","Context","condition","Component","Boolean","style","STATIC_COMPONENT","init","props","WrapperComponent","sstyled","merge","_styles","context","Object","keys","length","asProps","styles","wrapperProps"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;;;;AAEO,IAAMA,cAAc,GAAGC,MAAM,CAAC,gBAAD,CAA7B;;AACP,IAAMC,WAAW,GAAGD,MAAM,CAAC,aAAD,CAA1B;;AAEA,SAASE,WAAT,CAAqBC,eAArB,EAAsCC,OAAtC,EAA+C;AAC7C,SAAO;AACLC,IAAAA,SAAS,EAAE,mBAAUC,SAAV,EAAqB;AAC9B,aAAOC,OAAO,CAACD,SAAS,CAACE,KAAV,IAAmBF,SAAS,CAACG,gCAAD,CAA7B,CAAd;AACD,KAHI;AAILC,IAAAA,IAAI,EAAE,cAAUC,KAAV,EAAiBC,gBAAjB,EAAmC;AACvC,UAAIA,gBAAgB,CAACJ,KAArB,EAA4B;AAC1B,aAAKP,WAAL,IAAoBY,gBAAQC,KAAR,CAAcF,gBAAgB,CAACJ,KAA/B,EAAsCG,KAAK,CAACI,OAA5C,CAApB;AACD;AACF,KARI;AASLC,IAAAA,OAAO,EAAE,iBAAUA,QAAV,EAAmB;AAC1B;AACA,UAAI,CAAC,KAAKf,WAAL,CAAD,IAAsB,CAACgB,MAAM,CAACC,IAAP,CAAYf,eAAZ,EAA6BgB,MAAxD,EAAgE;AAC9D,eAAOH,QAAP;AACD;;AACD,6CACKA,QADL,4CAEGjB,cAFH,EAEoB,KAAKE,WAAL,CAFpB;AAID,KAlBI;AAmBL;AACAmB,IAAAA,OAAO,EAAE,uBAAyC;AAAA,UAA7BL,OAA6B,QAA7BA,OAA6B;AAAA,UAApBM,MAAoB,QAApBA,MAAoB;AAAA,UAATV,KAAS;AAChD,6CACKA,KADL;AAEEU,QAAAA,MAAM,EAAEA,MAAM,IAAI,KAAKpB,WAAL;AAFpB;AAID,KAzBI;AA0BLqB,IAAAA,YAAY,EAAE,6BAAgC;AAAA,UAApBD,MAAoB,SAApBA,MAAoB;AAAA,UAATV,KAAS;AAC5C,UAAMK,OAAO,GAAG,uBAAWZ,OAAX,CAAhB;AACA,6CACKO,KADL;AAEEI,QAAAA,OAAO,EAAEM,MAFX;AAGEA,QAAAA,MAAM,EAAEL,OAAO,CAACjB,cAAD;AAHjB;AAKD;AAjCI,GAAP;AAmCD;;eAEcG,W","sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport { sstyled } from '../styled';\nimport { STATIC_COMPONENT } from './staticChildren';\n\nexport const STYLES_CONTEXT = Symbol('STYLES_CONTEXT');\nconst STYLES_SELF = Symbol('STYLES_SELF');\n\nfunction Enhancement(childComponents, Context) {\n return {\n condition: function (Component) {\n return Boolean(Component.style || Component[STATIC_COMPONENT]);\n },\n init: function (props, WrapperComponent) {\n if (WrapperComponent.style) {\n this[STYLES_SELF] = sstyled.merge(WrapperComponent.style, props._styles);\n }\n },\n context: function (context) {\n // Optimization: if has no children there is no need to create new context (by lsroman)\n if (!this[STYLES_SELF] || !Object.keys(childComponents).length) {\n return context;\n }\n return {\n ...context,\n [STYLES_CONTEXT]: this[STYLES_SELF],\n };\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n asProps: function ({ _styles, styles, ...props }) {\n return {\n ...props,\n styles: styles || this[STYLES_SELF],\n };\n },\n wrapperProps: function ({ styles, ...props }) {\n const context = useContext(Context);\n return {\n ...props,\n _styles: styles,\n styles: context[STYLES_CONTEXT],\n };\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"style.js"}
|
|
@@ -109,7 +109,7 @@ function uncontrolledUniversal(props, config, uncontrolledProp) {
|
|
|
109
109
|
var _uncontrolledProp = uncontrolledProp(propName, propValue, propDefaultValue, propHandler, chainHandler),
|
|
110
110
|
_uncontrolledProp2 = (0, _slicedToArray2["default"])(_uncontrolledProp, 2),
|
|
111
111
|
value = _uncontrolledProp2[0],
|
|
112
|
-
handler = _uncontrolledProp2[1]; // TODO:
|
|
112
|
+
handler = _uncontrolledProp2[1]; // TODO: need to warn about recursion (by lsroman)
|
|
113
113
|
|
|
114
114
|
|
|
115
115
|
handlerProps[propName] = handler;
|
|
@@ -158,7 +158,7 @@ function Enhancement() {
|
|
|
158
158
|
});
|
|
159
159
|
},
|
|
160
160
|
asProps: function asProps(props) {
|
|
161
|
-
// TODO
|
|
161
|
+
// TODO: need to omit unneccessary props (by lsroman)
|
|
162
162
|
var _uncontrolled3 = uncontrolled(this, props, this.uncontrolledProps()),
|
|
163
163
|
_uncontrolled4 = (0, _slicedToArray2["default"])(_uncontrolled3, 1),
|
|
164
164
|
uncontrolledProps = _uncontrolled4[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/uncontrolledProps.tsx"],"names":["assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","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"],"mappings":"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","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:
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/uncontrolledProps.tsx"],"names":["assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","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"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;;;;;;;;;AAEA,SAASA,MAAT,CAAgBC,MAAhB,EAAwBC,MAAxB,EAAgC;AAC9B,SAAOC,MAAM,CAACC,gBAAP,CACLH,MADK,EAELE,MAAM,CAACE,IAAP,CAAYH,MAAZ,EAAoBI,MAApB,CAA2B,UAACC,WAAD,EAAcC,GAAd,EAAsB;AAC/CD,IAAAA,WAAW,CAACC,GAAD,CAAX,GAAmBL,MAAM,CAACM,wBAAP,CAAgCP,MAAhC,EAAwCM,GAAxC,CAAnB;AACA,WAAOD,WAAP;AACD,GAHD,EAGG,EAHH,CAFK,CAAP;AAOD;;AAED,SAASG,WAAT,CAAqBC,IAArB,EAA2B;AACzB,SAAO,YAAY,uCAAsBA,IAAtB,CAAnB;AACD;;AAED,SAASC,WAAT,CAAqBD,IAArB,EAA2B;AACzB,MAAIA,IAAI,KAAK,OAAb,EAAsBA,IAAI,GAAG,EAAP;AACtB,MAAIA,IAAI,KAAK,SAAb,EAAwBA,IAAI,GAAG,EAAP;AACxB,qBAAY,uCAAsBA,IAAtB,CAAZ;AACD;;AAED,SAASE,YAAT,CAAsBC,SAAtB,EAAiC;AAC/B,SAAOA,SAAS,KAAKC,SAArB;AACD;;AAED,SAASC,gBAAT,CAA0BC,IAA1B,EAAgCC,QAAhC,EAA0CJ,SAA1C,EAAqDK,gBAArD,EAAuEC,WAAvE,EAAoFC,YAApF,EAAkG;AAChG,WAASC,QAAT,GAAoB;AAClB,WAAOT,YAAY,CAACC,SAAD,CAAZ,GACHA,SADG,GAEHI,QAAQ,IAAID,IAAI,CAACM,KAAjB,GACAN,IAAI,CAACM,KAAL,CAAWL,QAAX,CADA,GAEAC,gBAJJ;AAKD;;AAED,SAAO,CACLG,QAAQ,EADH,EAEL,UAACE,KAAD,EAAoB;AAClB,QAAMC,QAAQ,GAAGH,QAAQ,EAAzB;AACA,QAAIG,QAAQ,KAAKD,KAAjB,EAAwB,OAAO,KAAP;AACxB,QAAI,CAACX,YAAY,CAACC,SAAD,CAAjB,EAA8BG,IAAI,CAACS,QAAL,sCAAiBR,QAAjB,EAA4BM,KAA5B;;AAHZ,sCAATG,IAAS;AAATA,MAAAA,IAAS;AAAA;;AAIlB,WAAOC,iDAAqBR,WAArB,6CAAqCC,YAArC,mBAAmDG,KAAnD,SAA6DG,IAA7D,EAAP;AACD,GAPI,CAAP;AASD;;AAED,SAASE,qBAAT,CAA+BC,KAA/B,EAAsCC,MAAtC,EAA8Cf,gBAA9C,EAAgE;AAC9D,MAAMgB,YAAY,GAAG,EAArB;AACA,MAAMC,iBAAiB,GAAG9B,MAAM,CAACE,IAAP,CAAY0B,MAAZ,EAAoBzB,MAApB,CAA2B,UAAC4B,MAAD,EAAShB,QAAT,EAAsB;AAAA;;AACzE,QAAMiB,WAAW,GAAGvB,WAAW,CAACM,QAAD,CAA/B;AACA,QAAMkB,eAAe,GAAG1B,WAAW,CAACQ,QAAD,CAAnC;AACA,QACqBC,gBADrB,GAKIe,MALJ,CACGE,eADH;AAAA,QAEctB,SAFd,GAKIoB,MALJ,CAEGhB,QAFH;AAAA,QAGiBE,WAHjB,GAKIc,MALJ,CAGGC,WAHH;AAAA,QAIKE,KAJL,6CAKIH,MALJ,GACGE,eADH,EAEGlB,QAFH,EAGGiB,WAHH;;AAOA,QAAIhB,gBAAgB,KAAKJ,SAAzB,EAAoC;AAClC;AACAuB,MAAAA,OAAO,CAACC,IAAR,CAAaH,eAAb,EAA8B,qCAA9B;AACD,KAbwE,CAezE;AACA;AACA;;;AAEA,QAAII,MAAM,GAAGT,MAAM,CAACb,QAAD,CAAnB;AACA,QAAIG,YAAY,GAAG,EAAnB;;AAEA,QAAIoB,KAAK,CAACC,OAAN,CAAcF,MAAd,CAAJ;AAAA,oBAAuDA,MAAvD;;AAAA;;AAA4BA,MAAAA,MAA5B;AAAuCnB,MAAAA,YAAvC;AAAA;;AACAmB,IAAAA,MAAM,GAAGA,MAAM,IAAK,UAACG,CAAD;AAAA,aAAOA,CAAP;AAAA,KAApB;;AAEA,4BAAyB3B,gBAAgB,CACvCE,QADuC,EAEvCJ,SAFuC,EAGvCK,gBAHuC,EAIvCC,WAJuC,EAKvCC,YALuC,CAAzC;AAAA;AAAA,QAAOG,KAAP;AAAA,QAAcoB,OAAd,yBAzByE,CAgCzE;;;AACAZ,IAAAA,YAAY,CAACd,QAAD,CAAZ,GAAyB0B,OAAzB;AAEA,2CACKP,KADL,8EAEGnB,QAFH,EAEcM,KAFd,oDAGGW,WAHH,EAGiB,UAACU,YAAD,EAA2B;AAAA,yCAATlB,IAAS;AAATA,QAAAA,IAAS;AAAA;;AACxC,UAAMO,MAAM,IAAIM,MAAM,MAAN,UAAOK,YAAP,SAAwBlB,IAAxB,EAAJ,SAAsCA,IAAtC,CAAZ;;AACA,UAAIkB,YAAY,IAAIA,YAAY,CAAC5C,MAAjC,EAAyC;AACvCiC,QAAAA,MAAM,CAACY,IAAP,CAAYD,YAAZ;AACD;;AACD,aAAOD,OAAO,MAAP,6CAAWV,MAAX,EAAP;AACD,KATH;AAWD,GA9CyB,EA8CvBJ,KA9CuB,CAA1B;AA+CA,SAAO,CAACG,iBAAD,EAAoBD,YAApB,CAAP;AACD;;AAED,SAASe,YAAT,CAAsB9B,IAAtB,EAA4Ba,KAA5B,EAAmCC,MAAnC,EAA2C;AACzC,SAAOF,qBAAqB,CAACC,KAAD,EAAQC,MAAR,EAAgBf,gBAAgB,CAACgC,IAAjB,CAAsBjC,SAAtB,EAAiCE,IAAjC,CAAhB,CAA5B;AACD;;AAED,SAASgC,WAAT,GAAuB;AACrB,SAAO;AACLC,IAAAA,SAAS,EAAE,mBAAUC,SAAV,EAAqB;AAC9B,aAAOC,OAAO,CAACD,SAAS,CAACE,SAAV,CAAoBpB,iBAArB,CAAd;AACD,KAHI;AAILqB,IAAAA,IAAI,EAAE,gBAAY;AAChB,WAAK/B,KAAL,GAAa,KAAKA,KAAL,IAAc,EAA3B;AACAvB,MAAAA,MAAM,CAAC,IAAD,EAAO;AACX,YAAIuD,QAAJ,GAAe;AACb,8BAAiCR,YAAY,CAAC,IAAD,EAAO,KAAKjB,KAAZ,EAAmB,KAAKG,iBAAL,EAAnB,CAA7C;AAAA;AAAA,cAASuB,oBAAT;;AACA,iBAAOA,oBAAP;AACD;;AAJU,OAAP,CAAN;AAMD,KAZI;AAaLC,IAAAA,OAAO,EAAE,iBAAUA,QAAV,EAAmB;AAC1B,6CACKA,QADL;AAEEF,QAAAA,QAAQ,EAAE,KAAKA;AAFjB;AAID,KAlBI;AAmBLG,IAAAA,OAAO,EAAE,iBAAU5B,KAAV,EAAiB;AACxB;AACA,2BAA4BiB,YAAY,CAAC,IAAD,EAAOjB,KAAP,EAAc,KAAKG,iBAAL,EAAd,CAAxC;AAAA;AAAA,UAAOA,iBAAP;;AACA,aAAOA,iBAAP;AACD;AAvBI,GAAP;AAyBD;;eAEcgB,W","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"],"file":"uncontrolledProps.js"}
|
|
@@ -121,7 +121,7 @@ function Enhancement(Context, parent) {
|
|
|
121
121
|
this[CHILDREN_SELF] = createChildren(Context, contexts);
|
|
122
122
|
},
|
|
123
123
|
asProps: function asProps(props) {
|
|
124
|
-
// TODO:
|
|
124
|
+
// TODO: learn the reason what it was used for (by lsroman)
|
|
125
125
|
// this[CHILDREN_SELF].origin = _Children ? _Children.origin : children;
|
|
126
126
|
this[CHILDREN_SELF].origin = props.children;
|
|
127
127
|
this[CHILDREN_SELF].props = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/Children.tsx"],"names":["useContext","CONTEXT_COMPONENT","CHILDREN_COMPONENT","Symbol","CHILDREN_SELF","GETTER_REG","splitPropsAndGetters","props","Object","entries","reduce","acc","key","value","exec","getters","getterToArray","getter","Array","isArray","mergeObjects","a","b","core","keys","assignGettersChain","createChildren","Context","contexts","Children","children","origin","ctx","handlers","propsAndGetters","assign","mergedGetters","undefined","Enhancement","parent","init","map","component","filter","Boolean","asProps"],"mappings":";;;;;;;;;;;AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,iBAAT,QAAkC,UAAlC;AAEA,OAAO,IAAMC,kBAAkB,GAAGC,MAAM,CAAC,oBAAD,CAAjC;AACP,IAAMC,aAAa,GAAGD,MAAM,CAAC,eAAD,CAA5B;AAEA,IAAME,UAAU,GAAG,iBAAnB;;AAEA,SAASC,oBAAT,CAA8BC,KAA9B,EAAqC;AACnC,SAAOC,MAAM,CAACC,OAAP,CAAeF,KAAf,EAAsBG,MAAtB,CACL,UAACC,GAAD,QAAuB;AAAA;AAAA,QAAhBC,GAAgB;AAAA,QAAXC,KAAW;;AACrB,QAAIR,UAAU,CAACS,IAAX,CAAgBF,GAAhB,MAAyB,IAA7B,EAAmC;AACjCD,MAAAA,GAAG,CAACJ,KAAJ,CAAUK,GAAV,IAAiBC,KAAjB;AACD,KAFD,MAEO;AACLF,MAAAA,GAAG,CAACI,OAAJ,CAAYH,GAAZ,IAAmBC,KAAnB;AACD;;AACD,WAAOF,GAAP;AACD,GARI,EASL;AAAEJ,IAAAA,KAAK,EAAE,EAAT;AAAaQ,IAAAA,OAAO,EAAE;AAAtB,GATK,CAAP;AAWD;;AAED,SAASC,aAAT,CAAuBC,MAAvB,EAA+B;AAC7B,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcF,MAAd,CAAL,EAA4B;AAC1B,WAAO,OAAOA,MAAP,KAAkB,UAAlB,GAA+B,CAACA,MAAD,CAA/B,GAA0C,EAAjD;AACD;;AACD,SAAOA,MAAP;AACD;;AAED,SAASG,YAAT,GAAsC;AAAA,MAAhBC,CAAgB,uEAAZ,EAAY;AAAA,MAARC,CAAQ,uEAAJ,EAAI;;AACpC,MAAMC,IAAI,mCAAQF,CAAR,GAAcC,CAAd,CAAV;;AACA,SAAOd,MAAM,CAACgB,IAAP,CAAYD,IAAZ,EAAkBb,MAAlB,CAAyB,UAACC,GAAD,EAAMC,GAAN,EAAc;AAC5CS,IAAAA,CAAC,CAACT,GAAD,CAAD,GAASI,aAAa,CAACK,CAAC,CAACT,GAAD,CAAF,CAAtB;AACAU,IAAAA,CAAC,CAACV,GAAD,CAAD,GAASI,aAAa,CAACM,CAAC,CAACV,GAAD,CAAF,CAAtB;AACAD,IAAAA,GAAG,CAACC,GAAD,CAAH,gCAAeS,CAAC,CAACT,GAAD,CAAhB,sBAA0BU,CAAC,CAACV,GAAD,CAA3B;AACA,WAAOD,GAAP;AACD,GALM,EAKJ,EALI,CAAP;AAMD;;AAED,SAASc,kBAAT,CAA4BV,OAA5B,EAAsD;AACpD,SAAO,YAAsB;AAAA,QAAZR,KAAY,uEAAJ,EAAI;AAC3B,WAAOQ,OAAO,CAACL,MAAR,CAAe,UAACC,GAAD,EAAMM,MAAN,EAAiB;AACrC,aAAOA,MAAM,CAACN,GAAD,CAAb;AACD,KAFM,EAEJJ,KAFI,CAAP;AAGD,GAJD;AAKD;;AAED,SAASmB,cAAT,CAAwBC,OAAxB,EAAiCC,QAAjC,EAA2C;AACzC,MAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAY;AAC3B,QAAMC,QAAQ,GAAGD,QAAQ,CAACE,MAA1B;;AACA,QAAI,OAAOD,QAAP,KAAoB,UAAxB,EAAoC;AAClC,
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/Children.tsx"],"names":["useContext","CONTEXT_COMPONENT","CHILDREN_COMPONENT","Symbol","CHILDREN_SELF","GETTER_REG","splitPropsAndGetters","props","Object","entries","reduce","acc","key","value","exec","getters","getterToArray","getter","Array","isArray","mergeObjects","a","b","core","keys","assignGettersChain","createChildren","Context","contexts","Children","children","origin","ctx","handlers","propsAndGetters","assign","mergedGetters","undefined","Enhancement","parent","init","map","component","filter","Boolean","asProps"],"mappings":"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","sourcesContent":["import { useContext } from 'react';\nimport { CONTEXT_COMPONENT } from '../index';\n\nexport const CHILDREN_COMPONENT = Symbol('CHILDREN_COMPONENT');\nconst CHILDREN_SELF = Symbol('CHILDREN_SELF');\n\nconst GETTER_REG = /^get[\\w]+Props$/;\n\nfunction splitPropsAndGetters(props) {\n return Object.entries(props).reduce(\n (acc, [key, value]) => {\n if (GETTER_REG.exec(key) === null) {\n acc.props[key] = value;\n } else {\n acc.getters[key] = value;\n }\n return acc;\n },\n { props: {}, getters: {} },\n );\n}\n\nfunction getterToArray(getter) {\n if (!Array.isArray(getter)) {\n return typeof getter === 'function' ? [getter] : [];\n }\n return getter;\n}\n\nfunction mergeObjects(a = {}, b = {}) {\n const core = { ...a, ...b };\n return Object.keys(core).reduce((acc, key) => {\n a[key] = getterToArray(a[key]);\n b[key] = getterToArray(b[key]);\n acc[key] = [...a[key], ...b[key]];\n return acc;\n }, {});\n}\n\nfunction assignGettersChain(getters: Array<Function>) {\n return function (props = {}) {\n return getters.reduce((acc, getter) => {\n return getter(acc);\n }, props);\n };\n}\n\nfunction createChildren(Context, contexts) {\n const Children = function () {\n const children = Children.origin;\n if (typeof children === 'function') {\n const {\n handlers = {},\n getters = {},\n ...props\n } = [...contexts, Context].reduce((acc, ctx) => {\n const { handlers, ...propsAndGetters } = useContext(ctx);\n const { props, getters } = splitPropsAndGetters(propsAndGetters);\n return Object.assign({}, acc, {\n handlers: Object.assign({}, acc.handlers, handlers),\n getters: mergeObjects(acc.getters, getters),\n ...props,\n });\n }, Children.props);\n\n const mergedGetters = Object.entries(getters).reduce((acc, [key, value]) => {\n acc[key] = assignGettersChain(value as []);\n return acc;\n }, {});\n\n return children({ ...props, ...mergedGetters }, handlers);\n } else if (children === undefined) {\n return null;\n }\n return children;\n };\n Children.origin = null;\n Children.props = {};\n Children[CHILDREN_COMPONENT] = true;\n return Children;\n}\n\nfunction Enhancement(Context, parent) {\n return {\n init: function () {\n const contexts = (Array.isArray(parent) ? parent : [parent])\n .map((component) => component[CONTEXT_COMPONENT])\n .filter(Boolean);\n this[CHILDREN_SELF] = createChildren(Context, contexts);\n },\n asProps: function (props) {\n // TODO: learn the reason what it was used for (by lsroman)\n // this[CHILDREN_SELF].origin = _Children ? _Children.origin : children;\n this[CHILDREN_SELF].origin = props.children;\n this[CHILDREN_SELF].props = props;\n return {\n ...props,\n Children: this[CHILDREN_SELF],\n };\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"Children.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/Root.tsx"],"names":["React","assignProps","useForkRef","createRootRender","Root","forwardRef","ref","Tag","render","source","props","_Root","styles","children","Children","clearProps","Object","entries","reduce","name","value","undefined","child","origin","other","Error","Enhancement","init","asProps","WrapperComponent","isFunction"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB,C,CACA;;AACA,OAAOC,WAAP,MAAwB,gCAAxB,C,CACA;;AACA,SAASC,UAAT,QAA2B,wBAA3B;;AAEA,SAASC,gBAAT,GAA4B;AAC1B;AACA,MAAMC,IAAI,GAAGJ,KAAK,CAACK,UAAN,CAAiB,gBAAsCC,GAAtC,EAA2C;AAAA,QAAvBC,GAAuB,QAA/BC,MAA+B;AAAA,QAAfC,MAAe;;AACvE,sBAWIL,IAAI,CAACM,KAXT;AAAA,QAEQC,KAFR,eAEEP,IAFF;AAAA,QAIEQ,MAJF,eAIEA,MAJF;AAAA,QAMEC,QANF,eAMEA,QANF;AAAA,QAOEC,QAPF,eAOEA,QAPF;AAAA,4CAQET,UARF;AAAA,QAQEA,UARF,sCAQe,IARf;AAAA,QASKK,KATL;;AAaA,QAAMK,UAAU,GAAGC,MAAM,CAACC,OAAP,CAAeP,KAAf,EAAsBQ,MAAtB,CAA6B,UAACR,KAAD,SAA0B;AAAA;AAAA,UAAjBS,IAAiB;AAAA,UAAXC,KAAW;;AACxE,UAAIA,KAAK,KAAKC,SAAd,EAAyB;AACvBX,QAAAA,KAAK,CAACS,IAAD,CAAL,GAAcC,KAAd;AACD;;AACD,aAAOV,KAAP;AACD,KALkB,EAKhB,EALgB,CAAnB;AAOA,QAAMY,KAAK,GAAG,EAAd,CArBuE,CAsBvE;;AACA,QAAI,OAAOR,QAAQ,CAACS,MAAhB,KAA2B,WAA/B,EAA4C;AAC1C;AACAD,MAAAA,KAAK,CAACT,QAAN,gBAAiB,oBAAC,QAAD,OAAjB;AACD;;AAED,QAAMW,KAAK,GAAGvB,WAAW,iCAElBc,UAFkB;AAGrBT,MAAAA,GAAG,EAAEJ,UAAU,CAACG,UAAD,EAAaC,GAAb;AAHM,wCAMlBgB,KANkB,GAOlBb,MAPkB,EAAzB;;AAUA,QAAI,CAACF,GAAL,EAAU;AACR,YAAM,IAAIkB,KAAJ,CAAU,uCAAV,CAAN;AACD;;AACD,wBAAO,oBAAC,GAAD,EAASD,KAAT,CAAP;AACD,GA1CY,CAAb,CAF0B,CA6C1B;;AACApB,EAAAA,IAAI,CAACM,KAAL,GAAa,EAAb;AACA,SAAON,IAAP;AACD;;AAED,SAASsB,WAAT,GAAuB;AACrB,SAAO;AACLC,IAAAA,IAAI,EAAE,gBAAY;AAChB,WAAKvB,IAAL,GAAYD,gBAAgB,EAA5B;AACD,KAHI;AAILyB,IAAAA,OAAO,EAAE,iBAAUlB,KAAV,EAAiBmB,gBAAjB,EAAmCC,UAAnC,EAA+C;AACtD,UAAIA,UAAJ,EAAgB;AACd,+CACKpB,KADL;AAEEN,UAAAA,IAAI,EAAE,KAAKA;AAFb;AAID;;AACD,aAAOM,KAAP;AACD,KAZI;AAaLF,IAAAA,MAAM,EAAE,gBAAUA,OAAV,EAAkBE,KAAlB,EAAyB;AAC/B,WAAKN,IAAL,CAAUM,KAAV,GAAkBA,KAAlB;AACA,aAAOF,OAAP;AACD;AAhBI,GAAP;AAkBD;;AAED,eAAekB,WAAf","sourcesContent":["import React from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n\nfunction createRootRender() {\n // @ts-ignore\n const Root = React.forwardRef(function ({ render: Tag, ...source }, ref) {\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Root: _Root,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n styles,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children,\n Children,\n forwardRef = null,\n ...props\n // @ts-ignore\n } = Root.props;\n\n const clearProps = Object.entries(props).reduce((props, [name, value]) => {\n if (value !== undefined) {\n props[name] = value;\n }\n return props;\n }, {});\n\n const child = {};\n // TODO:
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/Root.tsx"],"names":["React","assignProps","useForkRef","createRootRender","Root","forwardRef","ref","Tag","render","source","props","_Root","styles","children","Children","clearProps","Object","entries","reduce","name","value","undefined","child","origin","other","Error","Enhancement","init","asProps","WrapperComponent","isFunction"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB,C,CACA;;AACA,OAAOC,WAAP,MAAwB,gCAAxB,C,CACA;;AACA,SAASC,UAAT,QAA2B,wBAA3B;;AAEA,SAASC,gBAAT,GAA4B;AAC1B;AACA,MAAMC,IAAI,GAAGJ,KAAK,CAACK,UAAN,CAAiB,gBAAsCC,GAAtC,EAA2C;AAAA,QAAvBC,GAAuB,QAA/BC,MAA+B;AAAA,QAAfC,MAAe;;AACvE,sBAWIL,IAAI,CAACM,KAXT;AAAA,QAEQC,KAFR,eAEEP,IAFF;AAAA,QAIEQ,MAJF,eAIEA,MAJF;AAAA,QAMEC,QANF,eAMEA,QANF;AAAA,QAOEC,QAPF,eAOEA,QAPF;AAAA,4CAQET,UARF;AAAA,QAQEA,UARF,sCAQe,IARf;AAAA,QASKK,KATL;;AAaA,QAAMK,UAAU,GAAGC,MAAM,CAACC,OAAP,CAAeP,KAAf,EAAsBQ,MAAtB,CAA6B,UAACR,KAAD,SAA0B;AAAA;AAAA,UAAjBS,IAAiB;AAAA,UAAXC,KAAW;;AACxE,UAAIA,KAAK,KAAKC,SAAd,EAAyB;AACvBX,QAAAA,KAAK,CAACS,IAAD,CAAL,GAAcC,KAAd;AACD;;AACD,aAAOV,KAAP;AACD,KALkB,EAKhB,EALgB,CAAnB;AAOA,QAAMY,KAAK,GAAG,EAAd,CArBuE,CAsBvE;;AACA,QAAI,OAAOR,QAAQ,CAACS,MAAhB,KAA2B,WAA/B,EAA4C;AAC1C;AACAD,MAAAA,KAAK,CAACT,QAAN,gBAAiB,oBAAC,QAAD,OAAjB;AACD;;AAED,QAAMW,KAAK,GAAGvB,WAAW,iCAElBc,UAFkB;AAGrBT,MAAAA,GAAG,EAAEJ,UAAU,CAACG,UAAD,EAAaC,GAAb;AAHM,wCAMlBgB,KANkB,GAOlBb,MAPkB,EAAzB;;AAUA,QAAI,CAACF,GAAL,EAAU;AACR,YAAM,IAAIkB,KAAJ,CAAU,uCAAV,CAAN;AACD;;AACD,wBAAO,oBAAC,GAAD,EAASD,KAAT,CAAP;AACD,GA1CY,CAAb,CAF0B,CA6C1B;;AACApB,EAAAA,IAAI,CAACM,KAAL,GAAa,EAAb;AACA,SAAON,IAAP;AACD;;AAED,SAASsB,WAAT,GAAuB;AACrB,SAAO;AACLC,IAAAA,IAAI,EAAE,gBAAY;AAChB,WAAKvB,IAAL,GAAYD,gBAAgB,EAA5B;AACD,KAHI;AAILyB,IAAAA,OAAO,EAAE,iBAAUlB,KAAV,EAAiBmB,gBAAjB,EAAmCC,UAAnC,EAA+C;AACtD,UAAIA,UAAJ,EAAgB;AACd,+CACKpB,KADL;AAEEN,UAAAA,IAAI,EAAE,KAAKA;AAFb;AAID;;AACD,aAAOM,KAAP;AACD,KAZI;AAaLF,IAAAA,MAAM,EAAE,gBAAUA,OAAV,EAAkBE,KAAlB,EAAyB;AAC/B,WAAKN,IAAL,CAAUM,KAAV,GAAkBA,KAAlB;AACA,aAAOF,OAAP;AACD;AAhBI,GAAP;AAkBD;;AAED,eAAekB,WAAf","sourcesContent":["import React from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n\nfunction createRootRender() {\n // @ts-ignore\n const Root = React.forwardRef(function ({ render: Tag, ...source }, ref) {\n const {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Root: _Root,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n styles,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n children,\n Children,\n forwardRef = null,\n ...props\n // @ts-ignore\n } = Root.props;\n\n const clearProps = Object.entries(props).reduce((props, [name, value]) => {\n if (value !== undefined) {\n props[name] = value;\n }\n return props;\n }, {});\n\n const child = {};\n // TODO: need to find better check solution (by lsroman)\n if (typeof Children.origin !== 'undefined') {\n // @ts-ignore\n child.children = <Children />;\n }\n\n const other = assignProps(\n {\n ...clearProps,\n ref: useForkRef(forwardRef, ref),\n },\n {\n ...child,\n ...source,\n },\n );\n if (!Tag) {\n throw new Error('`render` prop of Root is not provided');\n }\n return <Tag {...other} />;\n });\n // @ts-ignore\n Root.props = {};\n return Root;\n}\n\nfunction Enhancement() {\n return {\n init: function () {\n this.Root = createRootRender();\n },\n asProps: function (props, WrapperComponent, isFunction) {\n if (isFunction) {\n return {\n ...props,\n Root: this.Root,\n };\n }\n return props;\n },\n render: function (render, props) {\n this.Root.props = props;\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"Root.js"}
|
|
@@ -40,7 +40,7 @@ function Enhancement(childComponents, Context) {
|
|
|
40
40
|
var _this = this;
|
|
41
41
|
|
|
42
42
|
if (isFunction) {
|
|
43
|
-
// TODO:
|
|
43
|
+
// TODO: might breake rules of hooks (by lsroman)
|
|
44
44
|
this[HOIST_SELF] = useState({});
|
|
45
45
|
} else {
|
|
46
46
|
this[HOIST_SELF] = [{}, function (obj) {
|
|
@@ -56,12 +56,12 @@ function Enhancement(childComponents, Context) {
|
|
|
56
56
|
};
|
|
57
57
|
},
|
|
58
58
|
context: function context(_context) {
|
|
59
|
-
// TODO:
|
|
59
|
+
// TODO: need to optimizte container initialization (by lsroman)
|
|
60
60
|
// WrapperComponent.hoistProps
|
|
61
61
|
return _objectSpread(_objectSpread({}, _context), {}, _defineProperty({}, HOIST_CONTEXT, this[HOIST_SET]));
|
|
62
62
|
},
|
|
63
63
|
asProps: function asProps(props) {
|
|
64
|
-
// TODO
|
|
64
|
+
// TODO: need to check for no props overwriting (by lsroman)
|
|
65
65
|
return assignProps(this[HOIST_SELF][0], props);
|
|
66
66
|
},
|
|
67
67
|
wrapperProps: function wrapperProps(props, WrapperComponent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/hoistProps.tsx"],"names":["useContext","useState","assignProps","useEnhancedEffect","pick","HOIST_CONTEXT","Symbol","HOIST_SELF","HOIST_SET","flatChildComponent","childComponents","Object","values","reduce","acc","Component","Array","isArray","push","Enhancement","Context","condition","some","Boolean","hoistProps","length","init","props","WrapperComponent","isFunction","obj","forceUpdate","context","asProps","wrapperProps","renameProps","propName","split","name","rename","entries","keys","value"],"mappings":"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","sourcesContent":["import { useContext, useState } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n\nexport const HOIST_CONTEXT = Symbol('HOIST_CONTEXT');\nconst HOIST_SELF = Symbol('HOIST_SELF');\nconst HOIST_SET = Symbol('HOIST_SET');\n\nfunction flatChildComponent(childComponents) {\n return Object.values(childComponents).reduce<unknown[]>((acc, Component) => {\n if (Array.isArray(Component)) {\n acc = [...acc, Component[0], ...flatChildComponent(Component[1])];\n } else {\n acc.push(Component);\n }\n return acc;\n }, []);\n}\n\nfunction Enhancement(childComponents, Context) {\n return {\n condition: function (Component) {\n return [Component, ...flatChildComponent(childComponents)].some((Component) =>\n Boolean(Component.hoistProps && Component.hoistProps.length),\n );\n },\n init: function (props, WrapperComponent, isFunction) {\n if (isFunction) {\n // TODO:
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/hoistProps.tsx"],"names":["useContext","useState","assignProps","useEnhancedEffect","pick","HOIST_CONTEXT","Symbol","HOIST_SELF","HOIST_SET","flatChildComponent","childComponents","Object","values","reduce","acc","Component","Array","isArray","push","Enhancement","Context","condition","some","Boolean","hoistProps","length","init","props","WrapperComponent","isFunction","obj","forceUpdate","context","asProps","wrapperProps","renameProps","propName","split","name","rename","entries","keys","value"],"mappings":"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","sourcesContent":["import { useContext, useState } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n\nexport const HOIST_CONTEXT = Symbol('HOIST_CONTEXT');\nconst HOIST_SELF = Symbol('HOIST_SELF');\nconst HOIST_SET = Symbol('HOIST_SET');\n\nfunction flatChildComponent(childComponents) {\n return Object.values(childComponents).reduce<unknown[]>((acc, Component) => {\n if (Array.isArray(Component)) {\n acc = [...acc, Component[0], ...flatChildComponent(Component[1])];\n } else {\n acc.push(Component);\n }\n return acc;\n }, []);\n}\n\nfunction Enhancement(childComponents, Context) {\n return {\n condition: function (Component) {\n return [Component, ...flatChildComponent(childComponents)].some((Component) =>\n Boolean(Component.hoistProps && Component.hoistProps.length),\n );\n },\n init: function (props, WrapperComponent, isFunction) {\n if (isFunction) {\n // TODO: might breake rules of hooks (by lsroman)\n this[HOIST_SELF] = useState({});\n } else {\n this[HOIST_SELF] = [\n {},\n (obj) => {\n this[HOIST_SELF][0] = obj;\n this.forceUpdate();\n },\n ];\n }\n // For optimization render\n this[HOIST_SET] = (obj) => {\n this[HOIST_SELF][1](obj);\n };\n },\n context: function (context) {\n // TODO: need to optimizte container initialization (by lsroman)\n // WrapperComponent.hoistProps\n return {\n ...context,\n [HOIST_CONTEXT]: this[HOIST_SET],\n };\n },\n asProps: function (props) {\n // TODO: need to check for no props overwriting (by lsroman)\n return assignProps(this[HOIST_SELF][0], props);\n },\n wrapperProps: function (props, WrapperComponent) {\n if (WrapperComponent.hoistProps && WrapperComponent.hoistProps.length) {\n const context = useContext(Context);\n const renameProps = WrapperComponent.hoistProps.reduce((acc, propName) => {\n const [name, rename] = propName.split(':');\n acc[name] = rename || name;\n return acc;\n }, {});\n const hoistProps = Object.entries(pick(props, Object.keys(renameProps))).reduce(\n (acc, [name, value]) => {\n acc[renameProps[name]] = value;\n return acc;\n },\n {},\n );\n\n useEnhancedEffect(() => {\n if (context[HOIST_CONTEXT]) {\n context[HOIST_CONTEXT](hoistProps);\n }\n }, Object.values(hoistProps));\n }\n return props;\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"hoistProps.js"}
|
|
@@ -25,7 +25,7 @@ function Enhancement(childComponents, Context) {
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
context: function context(_context) {
|
|
28
|
-
//
|
|
28
|
+
// Optimization: if has no children there is no need to create new context (by lsroman)
|
|
29
29
|
if (!this[STYLES_SELF] || !Object.keys(childComponents).length) {
|
|
30
30
|
return _context;
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/style.tsx"],"names":["useContext","sstyled","STATIC_COMPONENT","STYLES_CONTEXT","Symbol","STYLES_SELF","Enhancement","childComponents","Context","condition","Component","Boolean","style","init","props","WrapperComponent","merge","_styles","context","Object","keys","length","asProps","styles","wrapperProps"],"mappings":";;;;;;;;;AAAA,SAASA,UAAT,QAA2B,OAA3B,C,CACA;;AACA,SAASC,OAAT,QAAwB,WAAxB;AACA,SAASC,gBAAT,QAAiC,kBAAjC;AAEA,OAAO,IAAMC,cAAc,GAAGC,MAAM,CAAC,gBAAD,CAA7B;AACP,IAAMC,WAAW,GAAGD,MAAM,CAAC,aAAD,CAA1B;;AAEA,SAASE,WAAT,CAAqBC,eAArB,EAAsCC,OAAtC,EAA+C;AAC7C,SAAO;AACLC,IAAAA,SAAS,EAAE,mBAAUC,SAAV,EAAqB;AAC9B,aAAOC,OAAO,CAACD,SAAS,CAACE,KAAV,IAAmBF,SAAS,CAACR,gBAAD,CAA7B,CAAd;AACD,KAHI;AAILW,IAAAA,IAAI,EAAE,cAAUC,KAAV,EAAiBC,gBAAjB,EAAmC;AACvC,UAAIA,gBAAgB,CAACH,KAArB,EAA4B;AAC1B,aAAKP,WAAL,IAAoBJ,OAAO,CAACe,KAAR,CAAcD,gBAAgB,CAACH,KAA/B,EAAsCE,KAAK,CAACG,OAA5C,CAApB;AACD;AACF,KARI;AASLC,IAAAA,OAAO,EAAE,iBAAUA,QAAV,EAAmB;AAC1B;AACA,UAAI,CAAC,KAAKb,WAAL,CAAD,IAAsB,CAACc,MAAM,CAACC,IAAP,CAAYb,eAAZ,EAA6Bc,MAAxD,EAAgE;AAC9D,eAAOH,QAAP;AACD;;AACD,6CACKA,QADL,2BAEGf,cAFH,EAEoB,KAAKE,WAAL,CAFpB;AAID,KAlBI;AAmBL;AACAiB,IAAAA,OAAO,EAAE,uBAAyC;AAAA,UAA7BL,OAA6B,QAA7BA,OAA6B;AAAA,UAApBM,MAAoB,QAApBA,MAAoB;AAAA,UAATT,KAAS;;AAChD,6CACKA,KADL;AAEES,QAAAA,MAAM,EAAEA,MAAM,IAAI,KAAKlB,WAAL;AAFpB;AAID,KAzBI;AA0BLmB,IAAAA,YAAY,EAAE,6BAAgC;AAAA,UAApBD,MAAoB,SAApBA,MAAoB;AAAA,UAATT,KAAS;;AAC5C,UAAMI,OAAO,GAAGlB,UAAU,CAACQ,OAAD,CAA1B;AACA,6CACKM,KADL;AAEEG,QAAAA,OAAO,EAAEM,MAFX;AAGEA,QAAAA,MAAM,EAAEL,OAAO,CAACf,cAAD;AAHjB;AAKD;AAjCI,GAAP;AAmCD;;AAED,eAAeG,WAAf","sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport { sstyled } from '../styled';\nimport { STATIC_COMPONENT } from './staticChildren';\n\nexport const STYLES_CONTEXT = Symbol('STYLES_CONTEXT');\nconst STYLES_SELF = Symbol('STYLES_SELF');\n\nfunction Enhancement(childComponents, Context) {\n return {\n condition: function (Component) {\n return Boolean(Component.style || Component[STATIC_COMPONENT]);\n },\n init: function (props, WrapperComponent) {\n if (WrapperComponent.style) {\n this[STYLES_SELF] = sstyled.merge(WrapperComponent.style, props._styles);\n }\n },\n context: function (context) {\n //
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/style.tsx"],"names":["useContext","sstyled","STATIC_COMPONENT","STYLES_CONTEXT","Symbol","STYLES_SELF","Enhancement","childComponents","Context","condition","Component","Boolean","style","init","props","WrapperComponent","merge","_styles","context","Object","keys","length","asProps","styles","wrapperProps"],"mappings":";;;;;;;;;AAAA,SAASA,UAAT,QAA2B,OAA3B,C,CACA;;AACA,SAASC,OAAT,QAAwB,WAAxB;AACA,SAASC,gBAAT,QAAiC,kBAAjC;AAEA,OAAO,IAAMC,cAAc,GAAGC,MAAM,CAAC,gBAAD,CAA7B;AACP,IAAMC,WAAW,GAAGD,MAAM,CAAC,aAAD,CAA1B;;AAEA,SAASE,WAAT,CAAqBC,eAArB,EAAsCC,OAAtC,EAA+C;AAC7C,SAAO;AACLC,IAAAA,SAAS,EAAE,mBAAUC,SAAV,EAAqB;AAC9B,aAAOC,OAAO,CAACD,SAAS,CAACE,KAAV,IAAmBF,SAAS,CAACR,gBAAD,CAA7B,CAAd;AACD,KAHI;AAILW,IAAAA,IAAI,EAAE,cAAUC,KAAV,EAAiBC,gBAAjB,EAAmC;AACvC,UAAIA,gBAAgB,CAACH,KAArB,EAA4B;AAC1B,aAAKP,WAAL,IAAoBJ,OAAO,CAACe,KAAR,CAAcD,gBAAgB,CAACH,KAA/B,EAAsCE,KAAK,CAACG,OAA5C,CAApB;AACD;AACF,KARI;AASLC,IAAAA,OAAO,EAAE,iBAAUA,QAAV,EAAmB;AAC1B;AACA,UAAI,CAAC,KAAKb,WAAL,CAAD,IAAsB,CAACc,MAAM,CAACC,IAAP,CAAYb,eAAZ,EAA6Bc,MAAxD,EAAgE;AAC9D,eAAOH,QAAP;AACD;;AACD,6CACKA,QADL,2BAEGf,cAFH,EAEoB,KAAKE,WAAL,CAFpB;AAID,KAlBI;AAmBL;AACAiB,IAAAA,OAAO,EAAE,uBAAyC;AAAA,UAA7BL,OAA6B,QAA7BA,OAA6B;AAAA,UAApBM,MAAoB,QAApBA,MAAoB;AAAA,UAATT,KAAS;;AAChD,6CACKA,KADL;AAEES,QAAAA,MAAM,EAAEA,MAAM,IAAI,KAAKlB,WAAL;AAFpB;AAID,KAzBI;AA0BLmB,IAAAA,YAAY,EAAE,6BAAgC;AAAA,UAApBD,MAAoB,SAApBA,MAAoB;AAAA,UAATT,KAAS;;AAC5C,UAAMI,OAAO,GAAGlB,UAAU,CAACQ,OAAD,CAA1B;AACA,6CACKM,KADL;AAEEG,QAAAA,OAAO,EAAEM,MAFX;AAGEA,QAAAA,MAAM,EAAEL,OAAO,CAACf,cAAD;AAHjB;AAKD;AAjCI,GAAP;AAmCD;;AAED,eAAeG,WAAf","sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport { sstyled } from '../styled';\nimport { STATIC_COMPONENT } from './staticChildren';\n\nexport const STYLES_CONTEXT = Symbol('STYLES_CONTEXT');\nconst STYLES_SELF = Symbol('STYLES_SELF');\n\nfunction Enhancement(childComponents, Context) {\n return {\n condition: function (Component) {\n return Boolean(Component.style || Component[STATIC_COMPONENT]);\n },\n init: function (props, WrapperComponent) {\n if (WrapperComponent.style) {\n this[STYLES_SELF] = sstyled.merge(WrapperComponent.style, props._styles);\n }\n },\n context: function (context) {\n // Optimization: if has no children there is no need to create new context (by lsroman)\n if (!this[STYLES_SELF] || !Object.keys(childComponents).length) {\n return context;\n }\n return {\n ...context,\n [STYLES_CONTEXT]: this[STYLES_SELF],\n };\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n asProps: function ({ _styles, styles, ...props }) {\n return {\n ...props,\n styles: styles || this[STYLES_SELF],\n };\n },\n wrapperProps: function ({ styles, ...props }) {\n const context = useContext(Context);\n return {\n ...props,\n _styles: styles,\n styles: context[STYLES_CONTEXT],\n };\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"style.js"}
|
|
@@ -97,7 +97,7 @@ function uncontrolledUniversal(props, config, uncontrolledProp) {
|
|
|
97
97
|
var _uncontrolledProp = uncontrolledProp(propName, propValue, propDefaultValue, propHandler, chainHandler),
|
|
98
98
|
_uncontrolledProp2 = _slicedToArray(_uncontrolledProp, 2),
|
|
99
99
|
value = _uncontrolledProp2[0],
|
|
100
|
-
handler = _uncontrolledProp2[1]; // TODO:
|
|
100
|
+
handler = _uncontrolledProp2[1]; // TODO: need to warn about recursion (by lsroman)
|
|
101
101
|
|
|
102
102
|
|
|
103
103
|
handlerProps[propName] = handler;
|
|
@@ -146,7 +146,7 @@ function Enhancement() {
|
|
|
146
146
|
});
|
|
147
147
|
},
|
|
148
148
|
asProps: function asProps(props) {
|
|
149
|
-
// TODO
|
|
149
|
+
// TODO: need to omit unneccessary props (by lsroman)
|
|
150
150
|
var _uncontrolled3 = uncontrolled(this, props, this.uncontrolledProps()),
|
|
151
151
|
_uncontrolled4 = _slicedToArray(_uncontrolled3, 1),
|
|
152
152
|
uncontrolledProps = _uncontrolled4[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/enhancement/uncontrolledProps.tsx"],"names":["callAllEventHandlers","capitalizeFirstLetter","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","handlerProp","isControlled","propValue","undefined","uncontrolledProp","self","propName","propDefaultValue","propHandler","chainHandler","getValue","state","value","oldValue","setState","args","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"],"mappings":"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","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:
|
|
1
|
+
{"version":3,"sources":["../../../src/enhancement/uncontrolledProps.tsx"],"names":["callAllEventHandlers","capitalizeFirstLetter","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","defaultProp","prop","handlerProp","isControlled","propValue","undefined","uncontrolledProp","self","propName","propDefaultValue","propHandler","chainHandler","getValue","state","value","oldValue","setState","args","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"],"mappings":"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","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"],"file":"uncontrolledProps.js"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/core",
|
|
3
3
|
"description": "SEMRush Core Component",
|
|
4
|
-
"version": "1.11.
|
|
4
|
+
"version": "1.11.8",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
8
8
|
"sideEffects": false,
|
|
9
|
-
"author": "
|
|
9
|
+
"author": "UI-kit team <ui-kit-team@semrush.com>",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "build",
|
|
@@ -49,18 +49,19 @@ function createChildren(Context, contexts) {
|
|
|
49
49
|
const Children = function () {
|
|
50
50
|
const children = Children.origin;
|
|
51
51
|
if (typeof children === 'function') {
|
|
52
|
-
const {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
})
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
52
|
+
const {
|
|
53
|
+
handlers = {},
|
|
54
|
+
getters = {},
|
|
55
|
+
...props
|
|
56
|
+
} = [...contexts, Context].reduce((acc, ctx) => {
|
|
57
|
+
const { handlers, ...propsAndGetters } = useContext(ctx);
|
|
58
|
+
const { props, getters } = splitPropsAndGetters(propsAndGetters);
|
|
59
|
+
return Object.assign({}, acc, {
|
|
60
|
+
handlers: Object.assign({}, acc.handlers, handlers),
|
|
61
|
+
getters: mergeObjects(acc.getters, getters),
|
|
62
|
+
...props,
|
|
63
|
+
});
|
|
64
|
+
}, Children.props);
|
|
64
65
|
|
|
65
66
|
const mergedGetters = Object.entries(getters).reduce((acc, [key, value]) => {
|
|
66
67
|
acc[key] = assignGettersChain(value as []);
|
|
@@ -88,7 +89,7 @@ function Enhancement(Context, parent) {
|
|
|
88
89
|
this[CHILDREN_SELF] = createChildren(Context, contexts);
|
|
89
90
|
},
|
|
90
91
|
asProps: function (props) {
|
|
91
|
-
// TODO:
|
|
92
|
+
// TODO: learn the reason what it was used for (by lsroman)
|
|
92
93
|
// this[CHILDREN_SELF].origin = _Children ? _Children.origin : children;
|
|
93
94
|
this[CHILDREN_SELF].origin = props.children;
|
|
94
95
|
this[CHILDREN_SELF].props = props;
|
package/src/enhancement/Root.tsx
CHANGED
|
@@ -28,7 +28,7 @@ function createRootRender() {
|
|
|
28
28
|
}, {});
|
|
29
29
|
|
|
30
30
|
const child = {};
|
|
31
|
-
// TODO:
|
|
31
|
+
// TODO: need to find better check solution (by lsroman)
|
|
32
32
|
if (typeof Children.origin !== 'undefined') {
|
|
33
33
|
// @ts-ignore
|
|
34
34
|
child.children = <Children />;
|
|
@@ -30,7 +30,7 @@ function Enhancement(childComponents, Context) {
|
|
|
30
30
|
},
|
|
31
31
|
init: function (props, WrapperComponent, isFunction) {
|
|
32
32
|
if (isFunction) {
|
|
33
|
-
// TODO:
|
|
33
|
+
// TODO: might breake rules of hooks (by lsroman)
|
|
34
34
|
this[HOIST_SELF] = useState({});
|
|
35
35
|
} else {
|
|
36
36
|
this[HOIST_SELF] = [
|
|
@@ -47,7 +47,7 @@ function Enhancement(childComponents, Context) {
|
|
|
47
47
|
};
|
|
48
48
|
},
|
|
49
49
|
context: function (context) {
|
|
50
|
-
// TODO:
|
|
50
|
+
// TODO: need to optimizte container initialization (by lsroman)
|
|
51
51
|
// WrapperComponent.hoistProps
|
|
52
52
|
return {
|
|
53
53
|
...context,
|
|
@@ -55,7 +55,7 @@ function Enhancement(childComponents, Context) {
|
|
|
55
55
|
};
|
|
56
56
|
},
|
|
57
57
|
asProps: function (props) {
|
|
58
|
-
// TODO
|
|
58
|
+
// TODO: need to check for no props overwriting (by lsroman)
|
|
59
59
|
return assignProps(this[HOIST_SELF][0], props);
|
|
60
60
|
},
|
|
61
61
|
wrapperProps: function (props, WrapperComponent) {
|
|
@@ -17,7 +17,7 @@ function Enhancement(childComponents, Context) {
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
context: function (context) {
|
|
20
|
-
//
|
|
20
|
+
// Optimization: if has no children there is no need to create new context (by lsroman)
|
|
21
21
|
if (!this[STYLES_SELF] || !Object.keys(childComponents).length) {
|
|
22
22
|
return context;
|
|
23
23
|
}
|
|
@@ -81,7 +81,7 @@ function uncontrolledUniversal(props, config, uncontrolledProp) {
|
|
|
81
81
|
propHandler,
|
|
82
82
|
chainHandler,
|
|
83
83
|
);
|
|
84
|
-
// TODO:
|
|
84
|
+
// TODO: need to warn about recursion (by lsroman)
|
|
85
85
|
handlerProps[propName] = handler;
|
|
86
86
|
|
|
87
87
|
return {
|
|
@@ -124,7 +124,7 @@ function Enhancement() {
|
|
|
124
124
|
};
|
|
125
125
|
},
|
|
126
126
|
asProps: function (props) {
|
|
127
|
-
// TODO
|
|
127
|
+
// TODO: need to omit unneccessary props (by lsroman)
|
|
128
128
|
const [uncontrolledProps] = uncontrolled(this, props, this.uncontrolledProps());
|
|
129
129
|
return uncontrolledProps;
|
|
130
130
|
},
|