@semcore/core 1.15.8 → 2.0.0-beta.1

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 (63) hide show
  1. package/CHANGELOG.md +8 -2
  2. package/lib/cjs/Component.js +10 -2
  3. package/lib/cjs/Component.js.map +1 -1
  4. package/lib/cjs/enhancement/Children.js +7 -7
  5. package/lib/cjs/enhancement/Children.js.map +1 -1
  6. package/lib/cjs/enhancement/Root.js.map +1 -1
  7. package/lib/cjs/enhancement/bindHandler.js.map +1 -1
  8. package/lib/cjs/enhancement/dataName.js.map +1 -1
  9. package/lib/cjs/enhancement/enhance.js.map +1 -1
  10. package/lib/cjs/enhancement/functionDefaultProps.js.map +1 -1
  11. package/lib/cjs/enhancement/hoistProps.js.map +1 -1
  12. package/lib/cjs/enhancement/i18n.js.map +1 -1
  13. package/lib/cjs/enhancement/inheritedName.js.map +1 -1
  14. package/lib/cjs/enhancement/staticChildren.js +1 -1
  15. package/lib/cjs/enhancement/staticChildren.js.map +1 -1
  16. package/lib/cjs/enhancement/style.js.map +1 -1
  17. package/lib/cjs/enhancement/uncontrolledProps.js.map +1 -1
  18. package/lib/cjs/index.js +1 -0
  19. package/lib/cjs/index.js.map +1 -1
  20. package/lib/cjs/register.js.map +1 -1
  21. package/lib/cjs/reshadow.d.js +2 -0
  22. package/lib/cjs/reshadow.d.js.map +1 -0
  23. package/lib/cjs/styled/index.js.map +1 -1
  24. package/lib/cjs/styled/sstyled.js +2 -0
  25. package/lib/cjs/styled/sstyled.js.map +1 -1
  26. package/lib/es6/Component.js +9 -1
  27. package/lib/es6/Component.js.map +1 -1
  28. package/lib/es6/enhancement/Children.js +7 -7
  29. package/lib/es6/enhancement/Children.js.map +1 -1
  30. package/lib/es6/enhancement/Root.js.map +1 -1
  31. package/lib/es6/enhancement/bindHandler.js.map +1 -1
  32. package/lib/es6/enhancement/dataName.js.map +1 -1
  33. package/lib/es6/enhancement/enhance.js.map +1 -1
  34. package/lib/es6/enhancement/functionDefaultProps.js.map +1 -1
  35. package/lib/es6/enhancement/hoistProps.js.map +1 -1
  36. package/lib/es6/enhancement/i18n.js.map +1 -1
  37. package/lib/es6/enhancement/inheritedName.js.map +1 -1
  38. package/lib/es6/enhancement/staticChildren.js +1 -1
  39. package/lib/es6/enhancement/staticChildren.js.map +1 -1
  40. package/lib/es6/enhancement/style.js.map +1 -1
  41. package/lib/es6/enhancement/uncontrolledProps.js.map +1 -1
  42. package/lib/es6/index.js +1 -0
  43. package/lib/es6/index.js.map +1 -1
  44. package/lib/es6/register.js.map +1 -1
  45. package/lib/es6/reshadow.d.js +2 -0
  46. package/lib/es6/reshadow.d.js.map +1 -0
  47. package/lib/es6/styled/index.js +5 -0
  48. package/lib/es6/styled/index.js.map +1 -1
  49. package/lib/es6/styled/sstyled.js +1 -0
  50. package/lib/es6/styled/sstyled.js.map +1 -1
  51. package/lib/types/Component.d.ts +82 -16
  52. package/lib/types/enhancement/Children.d.ts +3 -3
  53. package/lib/types/enhancement/Root.d.ts +3 -3
  54. package/lib/types/enhancement/bindHandler.d.ts +2 -2
  55. package/lib/types/enhancement/hoistProps.d.ts +3 -3
  56. package/lib/types/enhancement/staticChildren.d.ts +5 -5
  57. package/lib/types/enhancement/style.d.ts +4 -16
  58. package/lib/types/enhancement/uncontrolledProps.d.ts +3 -3
  59. package/lib/types/index.d.ts +8 -5
  60. package/lib/types/register.d.ts +3 -3
  61. package/lib/types/styled/index.d.ts +9 -5
  62. package/lib/types/styled/sstyled.d.ts +1 -1
  63. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"staticChildren.js","names":["useContext","assignProps","pick","logger","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","getterMethodName","name","concat","getterMethodNameByDisplayName","displayName","arguments","length","undefined","displayNames","split","slice","join","flatGetterMethodNames","childComponents","parentName","entries","acc","_ref","_ref2","_slicedToArray","value","Array","isArray","_toConsumableArray","push","STATIC_COMPONENT","Symbol","ROOT_COMPONENT","SELF_GETTER_METHOD","Enhancement","createComponent","options","getterMethodNames","condition","Component","Boolean","init","props","WrapperComponent","_this","getterMethods","selfGetterMethod","warn","getterMethod","childrenProps","getterProps","call","index","cache","Set","_static","Error","_ref3","_ref4","prevStaticComponent","prevDisplayName","context","_objectSpread","wrapperProps","has","add","render","_this2","forEach","clear"],"sources":["../../../src/enhancement/staticChildren.tsx"],"sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n// @ts-ignore\nimport logger from '@semcore/utils/lib/logger';\n\nfunction assign(target, source) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nexport function getterMethodName(name) {\n return `get${name}Props`;\n}\n\nexport function getterMethodNameByDisplayName(displayName = '') {\n const displayNames = displayName.split('.');\n const name = displayNames.slice(-(displayNames.length - 1)).join('');\n return getterMethodName(name);\n}\n\nfunction flatGetterMethodNames(childComponents, parentName?: string) {\n return Object.entries(childComponents).reduce<string[]>((acc, [name, value]) => {\n if (Array.isArray(value)) {\n acc = [...acc, ...flatGetterMethodNames(value[1], name)];\n }\n name = parentName ? `${parentName}${name}` : name;\n acc.push(getterMethodName(name));\n return acc;\n }, []);\n}\n\nexport const STATIC_COMPONENT = Symbol('STATIC_COMPONENT');\nexport const ROOT_COMPONENT = Symbol('ROOT_COMPONENT');\nconst SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');\n\nfunction Enhancement(childComponents, createComponent, options) {\n const getterMethodNames = flatGetterMethodNames(childComponents);\n return {\n condition: function (Component) {\n return Boolean(Component[STATIC_COMPONENT] || Object.keys(childComponents).length);\n },\n init: function (props, WrapperComponent) {\n const getterMethods = pick(this, getterMethodNames);\n this[SELF_GETTER_METHOD] = () => {\n const selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n logger.warn(\n true,\n `Getter \\`${selfGetterMethod}\\` can't be fired as it is a getter of static component`,\n props['data-ui-name'] || WrapperComponent.displayName,\n );\n };\n assign(\n this,\n getterMethodNames.reduce((acc, name) => {\n const getterMethod = getterMethods[name];\n if (!getterMethod) return acc;\n acc[name] = (childrenProps = {}) => {\n const getterProps = getterMethod.call(this, childrenProps, acc[name].index);\n return assignProps(childrenProps, getterProps);\n };\n acc[name].index = -1;\n acc[name].cache = new Set();\n return acc;\n }, {}),\n );\n },\n static: function (WrapperComponent, Component) {\n if (Object.keys(childComponents).length && !WrapperComponent.displayName) {\n throw new Error('\"displayName\" is not defined');\n }\n return Object.entries(childComponents).reduce((acc, [name, value]) => {\n let childComponents = {};\n\n if (Array.isArray(value)) {\n childComponents = value[1];\n value = value[0];\n }\n\n const prevStaticComponent = value[STATIC_COMPONENT];\n // @ts-ignore\n const prevDisplayName = value.displayName;\n // @ts-ignore\n value.displayName = `${WrapperComponent.displayName}.${name}`;\n value[STATIC_COMPONENT] = true;\n value[ROOT_COMPONENT] = Component[ROOT_COMPONENT] || Component;\n acc[name] = createComponent(value, childComponents, options);\n // @ts-ignore\n value.displayName = prevDisplayName;\n value[STATIC_COMPONENT] = prevStaticComponent;\n return acc;\n }, {});\n },\n context: function (context /*, WrapperComponent*/) {\n // const getterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n return {\n ...context,\n // [getterMethod]: this[SELF_GETTER_METHOD],\n ...pick(this, getterMethodNames),\n };\n },\n wrapperProps: function (props, WrapperComponent) {\n if (!WrapperComponent[STATIC_COMPONENT]) return props;\n const context = useContext(options.context);\n const getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];\n if (getterMethod) {\n if (!getterMethod.cache.has(this)) {\n getterMethod.cache.add(this);\n getterMethod.index++;\n if (this) this.index = getterMethod.index;\n }\n if (this) getterMethod.index = this.index;\n return getterMethod(props);\n }\n return props;\n },\n render: function (render) {\n getterMethodNames.forEach((name) => {\n if (this[name] === undefined) return;\n this[name].index = -1;\n this[name].cache.clear();\n });\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}
1
+ {"version":3,"file":"staticChildren.js","names":["useContext","assignProps","pick","logger","assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","getterMethodName","name","concat","getterMethodNameByDisplayName","displayName","arguments","length","undefined","displayNames","split","slice","join","flatGetterMethodNames","childComponents","parentName","entries","acc","_ref","_ref2","_slicedToArray","value","Array","isArray","_toConsumableArray","push","STATIC_COMPONENT","Symbol","ROOT_COMPONENT","SELF_GETTER_METHOD","Enhancement","createComponent","options","getterMethodNames","condition","Component","Boolean","init","props","WrapperComponent","_this","getterMethods","selfGetterMethod","warn","getterMethod","childrenProps","getterProps","call","index","cache","Set","_static","Error","_ref3","_ref4","prevStaticComponent","prevDisplayName","context","_objectSpread","wrapperProps","has","add","render","_this2","forEach","clear"],"sources":["../../../src/enhancement/staticChildren.tsx"],"sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n// @ts-ignore\nimport logger from '@semcore/utils/lib/logger';\n\nfunction assign(target: 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\nexport function getterMethodName(name: string) {\n return `get${name}Props`;\n}\n\nexport function getterMethodNameByDisplayName(displayName = '') {\n const displayNames = displayName.split('.');\n const name = displayNames.slice(-(displayNames.length - 1)).join('');\n return getterMethodName(name);\n}\n\nfunction flatGetterMethodNames(childComponents: any, parentName?: string) {\n return Object.entries(childComponents).reduce<string[]>((acc, [name, value]) => {\n if (Array.isArray(value)) {\n acc = [...acc, ...flatGetterMethodNames(value[1], name)];\n }\n name = parentName ? `${parentName}${name}` : name;\n acc.push(getterMethodName(name));\n return acc;\n }, []);\n}\n\nexport const STATIC_COMPONENT = Symbol('STATIC_COMPONENT');\nexport const ROOT_COMPONENT = Symbol('ROOT_COMPONENT');\nconst SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');\n\nfunction Enhancement(childComponents: any, createComponent: any, options: any) {\n const getterMethodNames = flatGetterMethodNames(childComponents);\n return {\n condition: function (Component: any) {\n return Boolean(Component[STATIC_COMPONENT] || Object.keys(childComponents).length);\n },\n init: function (this: any, props: any, WrapperComponent: any) {\n const getterMethods: any = pick(this, getterMethodNames);\n this[SELF_GETTER_METHOD] = () => {\n const selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n logger.warn(\n true,\n `Getter \\`${selfGetterMethod}\\` can't be fired as it is a getter of static component`,\n props['data-ui-name'] || WrapperComponent.displayName,\n );\n };\n assign(\n this,\n getterMethodNames.reduce((acc: any, name) => {\n const getterMethod = getterMethods[name];\n if (!getterMethod) return acc;\n acc[name] = (childrenProps = {}) => {\n const getterProps = getterMethod.call(this, childrenProps, acc[name].index);\n return assignProps(childrenProps, getterProps);\n };\n acc[name].index = -1;\n acc[name].cache = new Set();\n return acc;\n }, {}),\n );\n },\n static: function (WrapperComponent: any, Component: any) {\n if (Object.keys(childComponents).length && !WrapperComponent.displayName) {\n throw new Error('\"displayName\" is not defined');\n }\n return Object.entries(childComponents).reduce((acc: any, [name, value]: any) => {\n let childComponents = {};\n\n if (Array.isArray(value)) {\n childComponents = value[1];\n value = value[0];\n }\n\n const prevStaticComponent = value[STATIC_COMPONENT];\n // @ts-ignore\n const prevDisplayName = value.displayName;\n // @ts-ignore\n value.displayName = `${WrapperComponent.displayName}.${name}`;\n value[STATIC_COMPONENT] = true;\n value[ROOT_COMPONENT] = Component[ROOT_COMPONENT] || Component;\n acc[name] = createComponent(value, childComponents, options);\n // @ts-ignore\n value.displayName = prevDisplayName;\n value[STATIC_COMPONENT] = prevStaticComponent;\n return acc;\n }, {});\n },\n context: function (context: any /*, WrapperComponent*/) {\n // const getterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n return {\n ...context,\n // [getterMethod]: this[SELF_GETTER_METHOD],\n ...pick(this, getterMethodNames as any),\n };\n },\n wrapperProps: function (this: any, props: any, WrapperComponent: any) {\n if (!WrapperComponent[STATIC_COMPONENT]) return props;\n const context: any = useContext(options.context);\n const getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];\n if (getterMethod) {\n if (!getterMethod.cache.has(this)) {\n getterMethod.cache.add(this);\n getterMethod.index++;\n if (this) this.index = getterMethod.index;\n }\n if (this) getterMethod.index = this.index;\n return getterMethod(props);\n }\n return props;\n },\n render: function (this: any, render: any) {\n getterMethodNames.forEach((name) => {\n if (this[name] === undefined) return;\n this[name].index = -1;\n this[name].cache.clear();\n });\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","names":["useContext","sstyled","STATIC_COMPONENT","STYLES_CONTEXT","Symbol","STYLES_SELF","Enhancement","childComponents","Context","condition","Component","Boolean","style","init","props","WrapperComponent","styles","merge","_styles","context","Object","keys","length","_objectSpread","_defineProperty","asProps","_ref","_objectWithoutProperties","_excluded","wrapperProps","_ref2","_excluded2"],"sources":["../../../src/enhancement/style.tsx"],"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 (props.styles) {\n this[STYLES_SELF] = props.styles;\n }\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\n asProps: function ({ _styles, styles, ...props }) {\n return {\n ...props,\n 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"],"mappings":";;;;;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC;AACA,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,gBAAgB,QAAQ,kBAAkB;AAEnD,OAAO,IAAMC,cAAc,GAAGC,MAAM,CAAC,gBAAgB,CAAC;AACtD,IAAMC,WAAW,GAAGD,MAAM,CAAC,aAAa,CAAC;AAEzC,SAASE,WAAWA,CAACC,eAAe,EAAEC,OAAO,EAAE;EAC7C,OAAO;IACLC,SAAS,EAAE,SAAAA,UAAUC,SAAS,EAAE;MAC9B,OAAOC,OAAO,CAACD,SAAS,CAACE,KAAK,IAAIF,SAAS,CAACR,gBAAgB,CAAC,CAAC;IAChE,CAAC;IACDW,IAAI,EAAE,SAAAA,KAAUC,KAAK,EAAEC,gBAAgB,EAAE;MACvC,IAAID,KAAK,CAACE,MAAM,EAAE;QAChB,IAAI,CAACX,WAAW,CAAC,GAAGS,KAAK,CAACE,MAAM;MAClC;MACA,IAAID,gBAAgB,CAACH,KAAK,EAAE;QAC1B,IAAI,CAACP,WAAW,CAAC,GAAGJ,OAAO,CAACgB,KAAK,CAACF,gBAAgB,CAACH,KAAK,EAAEE,KAAK,CAACI,OAAO,CAAC;MAC1E;IACF,CAAC;IACDC,OAAO,EAAE,SAAAA,QAAUA,QAAO,EAAE;MAC1B;MACA,IAAI,CAAC,IAAI,CAACd,WAAW,CAAC,IAAI,CAACe,MAAM,CAACC,IAAI,CAACd,eAAe,CAAC,CAACe,MAAM,EAAE;QAC9D,OAAOH,QAAO;MAChB;MACA,OAAAI,aAAA,CAAAA,aAAA,KACKJ,QAAO,OAAAK,eAAA,KACTrB,cAAc,EAAG,IAAI,CAACE,WAAW,CAAC;IAEvC,CAAC;IAEDoB,OAAO,EAAE,SAAAA,QAAAC,IAAA,EAAyC;MAAA,IAA7BR,OAAO,GAAAQ,IAAA,CAAPR,OAAO;QAAEF,MAAM,GAAAU,IAAA,CAANV,MAAM;QAAKF,KAAK,GAAAa,wBAAA,CAAAD,IAAA,EAAAE,SAAA;MAC5C,OAAAL,aAAA,CAAAA,aAAA,KACKT,KAAK;QACRE,MAAM,EAAE,IAAI,CAACX,WAAW;MAAC;IAE7B,CAAC;IACDwB,YAAY,EAAE,SAAAA,aAAAC,KAAA,EAAgC;MAAA,IAApBd,MAAM,GAAAc,KAAA,CAANd,MAAM;QAAKF,KAAK,GAAAa,wBAAA,CAAAG,KAAA,EAAAC,UAAA;MACxC,IAAMZ,OAAO,GAAGnB,UAAU,CAACQ,OAAO,CAAC;MACnC,OAAAe,aAAA,CAAAA,aAAA,KACKT,KAAK;QACRI,OAAO,EAAEF,MAAM;QACfA,MAAM,EAAEG,OAAO,CAAChB,cAAc;MAAC;IAEnC;EACF,CAAC;AACH;AAEA,eAAeG,WAAW"}
1
+ {"version":3,"file":"style.js","names":["useContext","sstyled","STATIC_COMPONENT","STYLES_CONTEXT","Symbol","STYLES_SELF","Enhancement","childComponents","Context","condition","Component","Boolean","style","init","props","WrapperComponent","styles","merge","_styles","context","Object","keys","length","_objectSpread","_defineProperty","asProps","_ref","_objectWithoutProperties","_excluded","wrapperProps","_ref2","_excluded2"],"sources":["../../../src/enhancement/style.tsx"],"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: any, Context: any) {\n return {\n condition: function (Component: any) {\n return Boolean(Component.style || Component[STATIC_COMPONENT]);\n },\n init: function (this: any, props: any, WrapperComponent: any) {\n if (props.styles) {\n this[STYLES_SELF] = props.styles;\n }\n if (WrapperComponent.style) {\n this[STYLES_SELF] = sstyled.merge(WrapperComponent.style, props._styles);\n }\n },\n context: function (this: any, context: any): any {\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\n asProps: function (this: any, { _styles, styles, ...props }: any) {\n return {\n ...props,\n styles: this[STYLES_SELF],\n };\n },\n wrapperProps: function (this: any, { styles, ...props }: any) {\n const context: any = useContext(Context);\n return {\n ...props,\n _styles: styles,\n styles: context[STYLES_CONTEXT],\n };\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":";;;;;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC;AACA,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,gBAAgB,QAAQ,kBAAkB;AAEnD,OAAO,IAAMC,cAAc,GAAGC,MAAM,CAAC,gBAAgB,CAAC;AACtD,IAAMC,WAAW,GAAGD,MAAM,CAAC,aAAa,CAAC;AAEzC,SAASE,WAAWA,CAACC,eAAoB,EAAEC,OAAY,EAAE;EACvD,OAAO;IACLC,SAAS,EAAE,SAAAA,UAAUC,SAAc,EAAE;MACnC,OAAOC,OAAO,CAACD,SAAS,CAACE,KAAK,IAAIF,SAAS,CAACR,gBAAgB,CAAC,CAAC;IAChE,CAAC;IACDW,IAAI,EAAE,SAAAA,KAAqBC,KAAU,EAAEC,gBAAqB,EAAE;MAC5D,IAAID,KAAK,CAACE,MAAM,EAAE;QAChB,IAAI,CAACX,WAAW,CAAC,GAAGS,KAAK,CAACE,MAAM;MAClC;MACA,IAAID,gBAAgB,CAACH,KAAK,EAAE;QAC1B,IAAI,CAACP,WAAW,CAAC,GAAGJ,OAAO,CAACgB,KAAK,CAACF,gBAAgB,CAACH,KAAK,EAAEE,KAAK,CAACI,OAAO,CAAC;MAC1E;IACF,CAAC;IACDC,OAAO,EAAE,SAAAA,QAAqBA,QAAY,EAAO;MAC/C;MACA,IAAI,CAAC,IAAI,CAACd,WAAW,CAAC,IAAI,CAACe,MAAM,CAACC,IAAI,CAACd,eAAe,CAAC,CAACe,MAAM,EAAE;QAC9D,OAAOH,QAAO;MAChB;MACA,OAAAI,aAAA,CAAAA,aAAA,KACKJ,QAAO,OAAAK,eAAA,KACTrB,cAAc,EAAG,IAAI,CAACE,WAAW,CAAC;IAEvC,CAAC;IAEDoB,OAAO,EAAE,SAAAA,QAAAC,IAAA,EAAyD;MAAA,IAAlCR,OAAO,GAAAQ,IAAA,CAAPR,OAAO;QAAEF,MAAM,GAAAU,IAAA,CAANV,MAAM;QAAKF,KAAK,GAAAa,wBAAA,CAAAD,IAAA,EAAAE,SAAA;MACvD,OAAAL,aAAA,CAAAA,aAAA,KACKT,KAAK;QACRE,MAAM,EAAE,IAAI,CAACX,WAAW;MAAC;IAE7B,CAAC;IACDwB,YAAY,EAAE,SAAAA,aAAAC,KAAA,EAAgD;MAAA,IAAzBd,MAAM,GAAAc,KAAA,CAANd,MAAM;QAAKF,KAAK,GAAAa,wBAAA,CAAAG,KAAA,EAAAC,UAAA;MACnD,IAAMZ,OAAY,GAAGnB,UAAU,CAACQ,OAAO,CAAC;MACxC,OAAAe,aAAA,CAAAA,aAAA,KACKT,KAAK;QACRI,OAAO,EAAEF,MAAM;QACfA,MAAM,EAAEG,OAAO,CAAChB,cAAc;MAAC;IAEnC;EACF,CAAC;AACH;AAEA,eAAeG,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"uncontrolledProps.js","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","_objectSpread2","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":["// @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 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?.target) {\n result.push(eventOrValue);\n }\n return handler(...result);\n },\n };\n }, props);\n return [uncontrolledProps, handlerProps];\n}\n\nfunction uncontrolled(self, props, config) {\n return uncontrolledUniversal(props, config, uncontrolledProp.bind(undefined, self));\n}\n\nfunction Enhancement() {\n return {\n condition: function (Component) {\n return Boolean(Component.prototype.uncontrolledProps);\n },\n init: function () {\n this.state = this.state || {};\n assign(this, {\n get handlers() {\n const [, uncontrolledHandlers] = uncontrolled(this, this.props, this.uncontrolledProps());\n return uncontrolledHandlers;\n },\n });\n },\n context: function (context) {\n return {\n ...context,\n handlers: this.handlers,\n };\n },\n asProps: function (props) {\n // TODO: need to omit unneccessary props (by lsroman)\n const [uncontrolledProps] = uncontrolled(this, props, this.uncontrolledProps());\n return uncontrolledProps;\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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"}
1
+ {"version":3,"file":"uncontrolledProps.js","names":["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","_objectSpread2","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":["// @ts-ignore\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport capitalizeFirstLetter from '@semcore/utils/lib/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 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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"}
package/lib/es6/index.js CHANGED
@@ -325,6 +325,7 @@ function createComponent(OriginComponent) {
325
325
  // must be the last one so any properties can be raised
326
326
  hoistPropsEnhancement(childComponents, context)]));
327
327
  Component[CONTEXT_COMPONENT] = context;
328
+ Component._______childrenComponents = childComponents;
328
329
  Component[CREATE_COMPONENT] = function () {
329
330
  var _OriginComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : OriginComponent;
330
331
  var _childComponents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : childComponents;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useRef","hoistNonReactStatics","useForkRef","useEnhancedEffect","_assignProps","Component","register","childrenEnhancement","CHILDREN_COMPONENT","rootEnhancement","uncontrolledPropsEnhancement","functionDefaultPropsEnhancement","staticChildrenEnhancement","STATIC_COMPONENT","ROOT_COMPONENT","getterMethodNameByDisplayName","inheritedNameEnhancement","INHERITED_NAME","hoistPropsEnhancement","dataNameEnhancement","enhanceEnhancement","styleEnhancement","bindHandlerEnhancement","i18nAppLocaleEnhance","CORE_COMPONENT","Symbol","CORE_INSTANCE","CORE_AS_PROPS","CORE_INIT","CONTEXT_COMPONENT","CREATE_COMPONENT","PARENT_COMPONENTS","isEmptyObject","obj","Object","getOwnPropertyNames","length","getOwnPropertySymbols","getPrototypeOf","prototype","createGetField","enhancements","isFunction","getField","key","filter","enhancement","condition","reduce","acc","item","push","createForwardWrapper","wrapperProps","statics","RootComponent","getterMethodName","displayName","getterMethod","undefined","useGetterIndex","WrapperForwardRefWithBind","_ref","ref","_ref$forwardRef","forwardRef","other","_objectWithoutProperties","_excluded","createElement","BindingWrapper","_extends","WrapperForwardRef","_ref2","_ref2$forwardRef","__WRAPPER_PROPS_BIND__","_excluded2","_reduce","WrapperComponent","_reduce$ref","enhancementRef","props","_excluded3","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","_createClass","value","render","_this2","map","fn","bind","defaultProps","forEach","assign","wrapClass","OriginComponent","Context","inits","renders","contexts","_OriginComponent2","_super2","context","_this3","get","_this4","Error","setContext","_this5","contextProps","_get","_getPrototypeOf","_this6","asProps","ctx","Provider","_objectSpread","wrapFunction","memo","FunctionMemoComponent","selfRef","firstRender","current","wrapCore","_ref3","Root","createComposeComponent","PureComponent","isPrototypeOf","assignProps","p1","p2","createComponent","childComponents","options","_options$context","createContext","_options$parent","parent","_options$enhancements","parents","isArray","wholeFamily","_toConsumableArray","f","_OriginComponent","_childComponents","_options","createBaseComponent"],"sources":["../../src/index.tsx"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes, useRef } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport _assignProps from '@semcore/utils/lib/assignProps';\n\nimport { Component, PropsWithRenderFnChildren } from './Component';\nimport register from './register';\n\nimport childrenEnhancement, { CHILDREN_COMPONENT } from './enhancement/Children';\nimport rootEnhancement from './enhancement/Root';\nimport uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';\nimport functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';\nimport staticChildrenEnhancement, {\n STATIC_COMPONENT,\n ROOT_COMPONENT,\n getterMethodNameByDisplayName,\n} from './enhancement/staticChildren';\nimport inheritedNameEnhancement, { INHERITED_NAME } from './enhancement/inheritedName';\nimport hoistPropsEnhancement from './enhancement/hoistProps';\nimport dataNameEnhancement from './enhancement/dataName';\nimport enhanceEnhancement from './enhancement/enhance';\nimport styleEnhancement from './enhancement/style';\nimport bindHandlerEnhancement from './enhancement/bindHandler';\nimport i18nAppLocaleEnhance from './enhancement/i18n';\n\nconst CORE_COMPONENT = Symbol('CORE_COMPONENT');\nconst CORE_INSTANCE = Symbol('CORE_INSTANCE');\nconst CORE_AS_PROPS = Symbol('CORE_AS_PROPS');\nconst CORE_INIT = Symbol('CORE_INIT');\nconst CONTEXT_COMPONENT = Symbol('CONTEXT_COMPONENT');\nconst CREATE_COMPONENT = Symbol('CREATE_COMPONENT');\nconst PARENT_COMPONENTS = Symbol('PARENT_COMPONENTS');\n\nfunction isEmptyObject(obj) {\n return (\n Object.getOwnPropertyNames(obj).length === 0 &&\n Object.getOwnPropertySymbols && // For IE 11\n Object.getOwnPropertySymbols(obj).length === 0 &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n}\n\nfunction createGetField(enhancements, Component, isFunction) {\n return function getField(key) {\n return enhancements\n .filter((enhancement) => {\n if (!enhancement.condition) {\n return true;\n }\n return enhancement.condition(Component, isFunction);\n })\n .reduce((acc, item) => {\n if (item[key]) {\n acc.push(item[key]);\n }\n return acc;\n }, []);\n };\n}\n\nfunction createForwardWrapper(Component, wrapperProps, statics, isFunction) {\n const RootComponent = Component[ROOT_COMPONENT];\n const getterMethodName = getterMethodNameByDisplayName(Component?.displayName);\n const getterMethod = RootComponent?.prototype\n ? RootComponent.prototype[getterMethodName]\n : undefined;\n const useGetterIndex = getterMethod?.length >= 2;\n\n function WrapperForwardRefWithBind({ forwardRef = null, ...other }, ref) {\n return <BindingWrapper {...other} forwardRef={useForkRef(ref, forwardRef)} />;\n }\n\n function WrapperForwardRef({ forwardRef = null, __WRAPPER_PROPS_BIND__, ...other }, ref) {\n const { ref: enhancementRef = null, ...props } = (\n __WRAPPER_PROPS_BIND__ || wrapperProps\n ).reduce((acc, enhancement) => enhancement(acc, WrapperComponent, isFunction), other);\n return <Component {...props} forwardRef={useForkRef(enhancementRef, ref, forwardRef)} />;\n }\n\n class BindingWrapper extends React.Component<any> {\n index = -1;\n render() {\n return (\n <WrapperForwardRef\n {...this.props}\n __WRAPPER_PROPS_BIND__={wrapperProps.map((fn) => fn.bind(this))}\n />\n );\n }\n }\n\n const WrapperComponent = React.forwardRef(\n useGetterIndex ? WrapperForwardRefWithBind : WrapperForwardRef,\n );\n\n hoistNonReactStatics(WrapperComponent, Component);\n\n WrapperComponent.displayName = Component.displayName;\n // TODO: defaultProps is only empty\n WrapperComponent.defaultProps = Component.defaultProps;\n // STATIC\n statics.forEach((enhancement) =>\n Object.assign(WrapperComponent, enhancement(WrapperComponent, Component, isFunction)),\n );\n\n return WrapperComponent;\n}\n\nfunction wrapClass(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, false);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n class Component extends OriginComponent {\n [CORE_AS_PROPS] = null;\n [CORE_INSTANCE] = WrapperComponent;\n [CORE_INIT] = false;\n\n constructor(props, context) {\n super(props, context);\n // INITS\n inits.forEach((enhancement) => enhancement.call(this, props, WrapperComponent, false));\n this[CORE_INIT] = true;\n }\n\n get asProps() {\n // TODO if not production\n if (!this[CORE_INIT]) {\n throw new Error('Can not call asProps in constructor');\n }\n if (!this[CORE_AS_PROPS]) {\n // PROPS\n this[CORE_AS_PROPS] = props.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n this.props,\n );\n }\n return this[CORE_AS_PROPS];\n }\n\n setContext() {\n const contextProps = super.setContext ? super.setContext() : {};\n // CONTEXT\n return contexts.reduce(\n (acc, enhancement) => enhancement.call(this, acc, WrapperComponent, false),\n contextProps,\n );\n }\n\n render() {\n this[CORE_AS_PROPS] = null;\n // TODO if not production\n if (!super.render) {\n throw new Error('Component `render` method is not defined');\n }\n const asProps = this.asProps;\n const ctx = this.setContext();\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(this, acc, asProps, WrapperComponent, false),\n super.render(),\n );\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n }\n }\n\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, false);\n return WrapperComponent;\n}\n\nfunction wrapFunction(OriginComponent, enhancements, Context) {\n const getField = createGetField(enhancements, OriginComponent, true);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n const Component = React.memo(function FunctionMemoComponent(other) {\n const selfRef = useRef({});\n const firstRender = useRef(true);\n useEnhancedEffect(() => {\n firstRender.current = false;\n }, []);\n if (firstRender.current) {\n // INITS\n inits.forEach((enhancement) =>\n enhancement.call(selfRef.current, other, WrapperComponent, true),\n );\n }\n // PROPS\n const asProps = props.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n other,\n );\n // CONTEXT\n const ctx = contexts.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, WrapperComponent, true),\n {},\n );\n\n // RENDER\n const render = renders.reduce(\n (acc, enhancement) => enhancement.call(selfRef.current, acc, asProps, WrapperComponent, true),\n <OriginComponent {...asProps} />,\n );\n\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n });\n Object.assign(Component, OriginComponent);\n const WrapperComponent = createForwardWrapper(Component, wrapperProps, statics, true);\n return WrapperComponent;\n}\n\nfunction wrapCore(OriginComponent, enhancements, Context) {\n const Component = function ({ Root }) {\n return <Root render={OriginComponent} />;\n };\n hoistNonReactStatics(Component, OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = OriginComponent.defaultProps;\n return wrapFunction(Component, enhancements, Context);\n}\n\nfunction createComposeComponent(OriginComponent, Context, enhancements): any {\n if (\n React.PureComponent.isPrototypeOf(OriginComponent) ||\n React.Component.isPrototypeOf(OriginComponent)\n ) {\n if (OriginComponent.prototype instanceof Component) {\n return wrapClass(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must inherit from our component');\n }\n } else if (typeof OriginComponent === 'function') {\n return wrapFunction(OriginComponent, enhancements, Context);\n } else if (OriginComponent[CORE_COMPONENT]) {\n return wrapCore(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must be a React component');\n }\n}\n\nexport type PropsAndRef<T, Ctx, UCProps> = PropsWithRenderFnChildren<T, Ctx, UCProps> &\n RefAttributes<unknown>;\nexport type ForwardRefComponent<T, Ctx, UCProps> = ForwardRefExoticComponent<\n PropsAndRef<T, Ctx, UCProps>\n>;\ntype ComponentOrProps<T, Context, UCProps> = T extends [infer ParentProps, infer ChildProps]\n ? ComponentType<ParentProps, ChildProps, Context, UCProps>\n : ForwardRefComponent<T, Context, UCProps>;\n\nexport type ComponentType<\n ComponentProps,\n ChildComponentProps = {},\n ContextType = {},\n UCProps = {},\n FNType = null,\n> = (FNType extends null\n ? ForwardRefComponent<ComponentProps, ContextType, UCProps>\n : FNType & { displayName: string }) & {\n [K in keyof ChildComponentProps]: ComponentOrProps<ChildComponentProps[K], ContextType, UCProps>;\n} & {\n [CORE_COMPONENT]: boolean;\n [CREATE_COMPONENT]: () => ComponentType<\n ComponentProps,\n ChildComponentProps,\n ContextType,\n UCProps\n >;\n};\n\ninterface ClassWithUncontrolledProps<Props> {\n uncontrolledProps(): unknown;\n}\n\nfunction assignProps(p1, p2) {\n return _assignProps(p2, p1);\n}\n\nfunction createComponent<ComponentProps, ChildComponentProps = {}, ContextType = {}, FNType = null>(\n OriginComponent,\n childComponents = {},\n options: {\n context?: React.Context<ContextType>;\n parent?: ComponentType<unknown> | ComponentType<unknown>[];\n enhancements?: [any];\n } = {},\n): ComponentType<\n ComponentProps extends Component<infer Props> ? Props : ComponentProps,\n ChildComponentProps,\n ContextType,\n ComponentProps extends ClassWithUncontrolledProps<any>\n ? ReturnType<ComponentProps['uncontrolledProps']>\n : { [key: string]: (arg: unknown) => void },\n FNType\n> {\n const {\n context = React.createContext<ContextType>({} as ContextType),\n parent = [],\n enhancements = [],\n } = options;\n let parents = Array.isArray(parent) ? parent : [parent];\n if (parents.length) {\n const wholeFamily = parents.reduce((acc, parent) => {\n if (parent[PARENT_COMPONENTS]) {\n acc = [...parent[PARENT_COMPONENTS], ...acc];\n }\n return acc;\n }, parents);\n OriginComponent[PARENT_COMPONENTS] = wholeFamily;\n parents = wholeFamily;\n }\n if (OriginComponent[CORE_COMPONENT]) {\n parents.push(OriginComponent);\n }\n const Component = createComposeComponent(OriginComponent, context, [\n // @ts-ignore\n ...enhancements.map((f) => f(context, parents, createComponent, childComponents)),\n i18nAppLocaleEnhance(),\n bindHandlerEnhancement(),\n childrenEnhancement(context, parents),\n // root must be under the children\n rootEnhancement(),\n uncontrolledPropsEnhancement(),\n staticChildrenEnhancement(childComponents, createComponent, {\n context,\n parent,\n enhancements,\n }),\n // functionDefaultProps must be under the staticChild\n functionDefaultPropsEnhancement(),\n // inheritedName must be under the staticChild\n inheritedNameEnhancement(),\n // dataName must be under the staticChild\n dataNameEnhancement(),\n // enhanceEnhancement must be under the functionDefaultPropsEnhancement\n enhanceEnhancement(),\n styleEnhancement(childComponents, context),\n // must be the last one so any properties can be raised\n hoistPropsEnhancement(childComponents, context),\n ]);\n Component[CONTEXT_COMPONENT] = context;\n Component[CREATE_COMPONENT] = function (\n _OriginComponent = OriginComponent,\n _childComponents = childComponents,\n _options = options,\n ) {\n return createComponent(_OriginComponent, _childComponents, _options);\n };\n Component[CORE_COMPONENT] = true;\n return Component;\n}\n\nfunction createBaseComponent<ComponentProps>(OriginComponent): ComponentType<ComponentProps> {\n let Component = null;\n if (\n !React.PureComponent.isPrototypeOf(OriginComponent) &&\n !React.Component.isPrototypeOf(OriginComponent) &&\n typeof OriginComponent === 'function'\n ) {\n Component = React.forwardRef(OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = {\n 'data-ui-name': OriginComponent.displayName,\n ...OriginComponent.defaultProps,\n };\n Component[CORE_COMPONENT] = true;\n } else {\n throw new Error('createBaseComponent accepts only functional component');\n }\n return Component;\n}\n\nexport * from './Component';\nexport * from './styled';\nexport * from './register';\nexport {\n createBaseComponent,\n register,\n CREATE_COMPONENT,\n CORE_INSTANCE,\n CONTEXT_COMPONENT,\n CHILDREN_COMPONENT,\n INHERITED_NAME,\n CORE_COMPONENT,\n STATIC_COMPONENT,\n ROOT_COMPONENT,\n assignProps,\n};\nexport default createComponent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useRef","hoistNonReactStatics","useForkRef","useEnhancedEffect","_assignProps","Component","register","childrenEnhancement","CHILDREN_COMPONENT","rootEnhancement","uncontrolledPropsEnhancement","functionDefaultPropsEnhancement","staticChildrenEnhancement","STATIC_COMPONENT","ROOT_COMPONENT","getterMethodNameByDisplayName","inheritedNameEnhancement","INHERITED_NAME","hoistPropsEnhancement","dataNameEnhancement","enhanceEnhancement","styleEnhancement","bindHandlerEnhancement","i18nAppLocaleEnhance","CORE_COMPONENT","Symbol","CORE_INSTANCE","CORE_AS_PROPS","CORE_INIT","CONTEXT_COMPONENT","CREATE_COMPONENT","PARENT_COMPONENTS","isEmptyObject","obj","Object","getOwnPropertyNames","length","getOwnPropertySymbols","getPrototypeOf","prototype","createGetField","enhancements","isFunction","getField","key","filter","enhancement","condition","reduce","acc","item","push","createForwardWrapper","wrapperProps","statics","RootComponent","getterMethodName","displayName","getterMethod","undefined","useGetterIndex","WrapperForwardRefWithBind","_ref","ref","_ref$forwardRef","forwardRef","other","_objectWithoutProperties","_excluded","createElement","BindingWrapper","_extends","WrapperForwardRef","_ref2","_ref2$forwardRef","__WRAPPER_PROPS_BIND__","_excluded2","_reduce","WrapperComponent","_reduce$ref","enhancementRef","props","_excluded3","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","_createClass","value","render","_this2","map","fn","bind","defaultProps","forEach","assign","wrapClass","OriginComponent","Context","inits","renders","contexts","_OriginComponent2","_super2","context","_this3","get","_this4","Error","setContext","_this5","contextProps","_get","_getPrototypeOf","_this6","asProps","ctx","Provider","_objectSpread","wrapFunction","memo","FunctionMemoComponent","selfRef","firstRender","current","wrapCore","_ref3","Root","createComposeComponent","PureComponent","isPrototypeOf","assignProps","p1","p2","createComponent","childComponents","options","_options$context","createContext","_options$parent","parent","_options$enhancements","parents","isArray","wholeFamily","_toConsumableArray","f","_______childrenComponents","_OriginComponent","_childComponents","_options","createBaseComponent"],"sources":["../../src/index.tsx"],"sourcesContent":["import React, { ForwardRefExoticComponent, RefAttributes, useRef } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n// @ts-ignore\nimport { useForkRef } from '@semcore/utils/lib/ref';\n// @ts-ignore\nimport useEnhancedEffect from '@semcore/utils/lib/use/useEnhancedEffect';\n// @ts-ignore\nimport _assignProps from '@semcore/utils/lib/assignProps';\n\nimport { Component, PropsWithRenderFnChildren } from './Component';\nimport register from './register';\n\nimport childrenEnhancement, { CHILDREN_COMPONENT } from './enhancement/Children';\nimport rootEnhancement from './enhancement/Root';\nimport uncontrolledPropsEnhancement from './enhancement/uncontrolledProps';\nimport functionDefaultPropsEnhancement from './enhancement/functionDefaultProps';\nimport staticChildrenEnhancement, {\n STATIC_COMPONENT,\n ROOT_COMPONENT,\n getterMethodNameByDisplayName,\n} from './enhancement/staticChildren';\nimport inheritedNameEnhancement, { INHERITED_NAME } from './enhancement/inheritedName';\nimport hoistPropsEnhancement from './enhancement/hoistProps';\nimport dataNameEnhancement from './enhancement/dataName';\nimport enhanceEnhancement from './enhancement/enhance';\nimport styleEnhancement from './enhancement/style';\nimport bindHandlerEnhancement from './enhancement/bindHandler';\nimport i18nAppLocaleEnhance from './enhancement/i18n';\n\nconst CORE_COMPONENT = Symbol('CORE_COMPONENT');\nconst CORE_INSTANCE = Symbol('CORE_INSTANCE');\nconst CORE_AS_PROPS = Symbol('CORE_AS_PROPS');\nconst CORE_INIT = Symbol('CORE_INIT');\nconst CONTEXT_COMPONENT = Symbol('CONTEXT_COMPONENT');\nconst CREATE_COMPONENT = Symbol('CREATE_COMPONENT');\nconst PARENT_COMPONENTS = Symbol('PARENT_COMPONENTS');\n\nfunction isEmptyObject(obj: any) {\n return (\n Object.getOwnPropertyNames(obj).length === 0 &&\n Object.getOwnPropertySymbols && // For IE 11\n Object.getOwnPropertySymbols(obj).length === 0 &&\n Object.getPrototypeOf(obj) === Object.prototype\n );\n}\n\nfunction createGetField(enhancements: any, Component: any, isFunction: boolean) {\n return function getField(key: string) {\n return enhancements\n .filter((enhancement: any) => {\n if (!enhancement.condition) {\n return true;\n }\n return enhancement.condition(Component, isFunction);\n })\n .reduce((acc: any, item: any) => {\n if (item[key]) {\n acc.push(item[key]);\n }\n return acc;\n }, []);\n };\n}\n\nfunction createForwardWrapper(Component: any, wrapperProps: any, statics: any, isFunction: any) {\n const RootComponent = Component[ROOT_COMPONENT];\n const getterMethodName = getterMethodNameByDisplayName(Component?.displayName);\n const getterMethod = RootComponent?.prototype\n ? RootComponent.prototype[getterMethodName]\n : undefined;\n const useGetterIndex = getterMethod?.length >= 2;\n\n function WrapperForwardRefWithBind({ forwardRef = null, ...other }, ref: any) {\n return <BindingWrapper {...other} forwardRef={useForkRef(ref, forwardRef)} />;\n }\n\n function WrapperForwardRef(\n { forwardRef = null, __WRAPPER_PROPS_BIND__, ...other }: any,\n ref: any,\n ) {\n const { ref: enhancementRef = null, ...props } = (\n __WRAPPER_PROPS_BIND__ || wrapperProps\n ).reduce((acc: any, enhancement: any) => enhancement(acc, WrapperComponent, isFunction), other);\n return <Component {...props} forwardRef={useForkRef(enhancementRef, ref, forwardRef)} />;\n }\n\n class BindingWrapper extends React.Component<any> {\n index = -1;\n render() {\n return (\n <WrapperForwardRef\n {...this.props}\n __WRAPPER_PROPS_BIND__={wrapperProps.map((fn: any) => fn.bind(this))}\n />\n );\n }\n }\n\n const WrapperComponent = React.forwardRef(\n useGetterIndex ? WrapperForwardRefWithBind : WrapperForwardRef,\n );\n\n hoistNonReactStatics(WrapperComponent, Component);\n\n WrapperComponent.displayName = Component.displayName;\n // TODO: defaultProps is only empty\n WrapperComponent.defaultProps = Component.defaultProps;\n // STATIC\n statics.forEach((enhancement: any) =>\n Object.assign(WrapperComponent, enhancement(WrapperComponent, Component, isFunction)),\n );\n\n return WrapperComponent;\n}\n\nfunction wrapClass(OriginComponent: any, enhancements: any, Context: any) {\n const getField = createGetField(enhancements, OriginComponent, false);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n class Component extends OriginComponent {\n [CORE_AS_PROPS] = null;\n [CORE_INSTANCE] = WrapperComponent;\n [CORE_INIT] = false;\n\n constructor(props: any, context: any) {\n super(props, context);\n // INITS\n inits.forEach((enhancement: any) => enhancement.call(this, props, WrapperComponent, false));\n this[CORE_INIT] = true;\n }\n\n get asProps() {\n // TODO if not production\n if (!this[CORE_INIT]) {\n throw new Error('Can not call asProps in constructor');\n }\n if (!this[CORE_AS_PROPS]) {\n // PROPS\n this[CORE_AS_PROPS] = props.reduce(\n (acc: any, enhancement: any) => enhancement.call(this, acc, WrapperComponent, false),\n this.props,\n );\n }\n return this[CORE_AS_PROPS];\n }\n\n setContext() {\n const contextProps = super.setContext ? super.setContext() : {};\n // CONTEXT\n return contexts.reduce(\n (acc: any, enhancement: any) => enhancement.call(this, acc, WrapperComponent, false),\n contextProps,\n );\n }\n\n render() {\n this[CORE_AS_PROPS] = null;\n // TODO if not production\n if (!super.render) {\n throw new Error('Component `render` method is not defined');\n }\n const asProps: any = this.asProps;\n const ctx = this.setContext();\n // RENDER\n const render = renders.reduce(\n (acc: any, enhancement: any) =>\n enhancement.call(this, acc, asProps, WrapperComponent, false),\n super.render(),\n );\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n }\n }\n\n const WrapperComponent: any = createForwardWrapper(Component, wrapperProps, statics, false);\n return WrapperComponent;\n}\n\nfunction wrapFunction(OriginComponent: any, enhancements: any, Context: any) {\n const getField = createGetField(enhancements, OriginComponent, true);\n\n const inits = getField('init');\n const props = getField('asProps');\n const renders = getField('render');\n const statics = getField('static');\n const wrapperProps = getField('wrapperProps');\n const contexts = getField('context');\n\n const Component = React.memo(function FunctionMemoComponent(other) {\n const selfRef = useRef({});\n const firstRender = useRef(true);\n useEnhancedEffect(() => {\n firstRender.current = false;\n }, []);\n if (firstRender.current) {\n // INITS\n inits.forEach((enhancement: any) =>\n enhancement.call(selfRef.current, other, WrapperComponent, true),\n );\n }\n // PROPS\n const asProps = props.reduce(\n (acc: any, enhancement: any) =>\n enhancement.call(selfRef.current, acc, WrapperComponent, true),\n other,\n );\n // CONTEXT\n const ctx = contexts.reduce(\n (acc: any, enhancement: any) =>\n enhancement.call(selfRef.current, acc, WrapperComponent, true),\n {},\n );\n\n // RENDER\n const render = renders.reduce(\n (acc: any, enhancement: any) =>\n enhancement.call(selfRef.current, acc, asProps, WrapperComponent, true),\n <OriginComponent {...asProps} />,\n );\n\n if (!WrapperComponent[STATIC_COMPONENT] && !isEmptyObject(ctx)) {\n return <Context.Provider value={{ ...asProps, ...ctx }}>{render}</Context.Provider>;\n } else {\n return render;\n }\n });\n Object.assign(Component, OriginComponent);\n const WrapperComponent: any = createForwardWrapper(Component, wrapperProps, statics, true);\n return WrapperComponent;\n}\n\nfunction wrapCore(OriginComponent: any, enhancements: any, Context: any) {\n const Component = function ({ Root }: any) {\n return <Root render={OriginComponent} />;\n };\n hoistNonReactStatics(Component, OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = OriginComponent.defaultProps;\n return wrapFunction(Component, enhancements, Context);\n}\n\nfunction createComposeComponent(OriginComponent: any, Context: any, enhancements: any): any {\n if (\n React.PureComponent.isPrototypeOf(OriginComponent) ||\n React.Component.isPrototypeOf(OriginComponent)\n ) {\n if (OriginComponent.prototype instanceof Component) {\n return wrapClass(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must inherit from our component');\n }\n } else if (typeof OriginComponent === 'function') {\n return wrapFunction(OriginComponent, enhancements, Context);\n } else if (OriginComponent[CORE_COMPONENT]) {\n return wrapCore(OriginComponent, enhancements, Context);\n } else {\n throw new Error('Must be a React component');\n }\n}\n\nexport type PropsAndRef<T, Ctx, UCProps> = PropsWithRenderFnChildren<T, Ctx, UCProps> &\n RefAttributes<unknown>;\nexport type ForwardRefComponent<T, Ctx, UCProps> = ForwardRefExoticComponent<\n PropsAndRef<T, Ctx, UCProps>\n>;\ntype ComponentOrProps<T, Context, UCProps> = T extends [infer ParentProps, infer ChildProps]\n ? ComponentType<ParentProps, ChildProps, Context, UCProps>\n : ForwardRefComponent<T, Context, UCProps>;\n\nexport type ComponentType<\n ComponentProps,\n ChildComponentProps = {},\n ContextType = {},\n UCProps = {},\n FNType = null,\n> = (FNType extends null\n ? ForwardRefComponent<ComponentProps, ContextType, UCProps>\n : FNType & { displayName: string }) & {\n [K in keyof ChildComponentProps]: ComponentOrProps<ChildComponentProps[K], ContextType, UCProps>;\n} & {\n [CORE_COMPONENT]: boolean;\n [CREATE_COMPONENT]: () => ComponentType<\n ComponentProps,\n ChildComponentProps,\n ContextType,\n UCProps\n >;\n};\n\ninterface ClassWithUncontrolledProps<Props> {\n uncontrolledProps(): unknown;\n}\n\nfunction assignProps(p1: any, p2: any) {\n return _assignProps(p2, p1);\n}\n\nfunction createComponent<ComponentProps, ChildComponentProps = {}, ContextType = {}, FNType = null>(\n OriginComponent: any,\n childComponents: any = {},\n options: {\n context?: React.Context<ContextType>;\n parent?: ComponentType<unknown> | ComponentType<unknown>[];\n enhancements?: [any];\n } = {},\n): ComponentType<\n ComponentProps extends Component<infer Props> ? Props : ComponentProps,\n ChildComponentProps,\n ContextType,\n ComponentProps extends ClassWithUncontrolledProps<any>\n ? ReturnType<ComponentProps['uncontrolledProps']>\n : { [key: string]: (arg: unknown) => void },\n FNType\n> {\n const {\n context = React.createContext<ContextType>({} as ContextType),\n parent = [],\n enhancements = [],\n } = options;\n let parents = Array.isArray(parent) ? parent : [parent];\n if (parents.length) {\n const wholeFamily = parents.reduce((acc: any, parent: any) => {\n if (parent[PARENT_COMPONENTS]) {\n acc = [...parent[PARENT_COMPONENTS], ...acc];\n }\n return acc;\n }, parents);\n OriginComponent[PARENT_COMPONENTS] = wholeFamily;\n parents = wholeFamily;\n }\n if (OriginComponent[CORE_COMPONENT]) {\n parents.push(OriginComponent);\n }\n const Component = createComposeComponent(OriginComponent, context, [\n // @ts-ignore\n ...enhancements.map((f) => f(context, parents, createComponent, childComponents)),\n i18nAppLocaleEnhance(),\n bindHandlerEnhancement(),\n childrenEnhancement(context, parents),\n // root must be under the children\n rootEnhancement(),\n uncontrolledPropsEnhancement(),\n staticChildrenEnhancement(childComponents, createComponent, {\n context,\n parent,\n enhancements,\n }),\n // functionDefaultProps must be under the staticChild\n functionDefaultPropsEnhancement(),\n // inheritedName must be under the staticChild\n inheritedNameEnhancement(),\n // dataName must be under the staticChild\n dataNameEnhancement(),\n // enhanceEnhancement must be under the functionDefaultPropsEnhancement\n enhanceEnhancement(),\n styleEnhancement(childComponents, context),\n // must be the last one so any properties can be raised\n hoistPropsEnhancement(childComponents, context),\n ]);\n Component[CONTEXT_COMPONENT] = context;\n Component._______childrenComponents = childComponents;\n Component[CREATE_COMPONENT] = function (\n _OriginComponent = OriginComponent,\n _childComponents = childComponents,\n _options = options,\n ) {\n return createComponent(_OriginComponent, _childComponents, _options);\n };\n Component[CORE_COMPONENT] = true;\n return Component;\n}\n\nfunction createBaseComponent<ComponentProps>(OriginComponent: any): ComponentType<ComponentProps> {\n let Component = null;\n if (\n !React.PureComponent.isPrototypeOf(OriginComponent) &&\n !React.Component.isPrototypeOf(OriginComponent) &&\n typeof OriginComponent === 'function'\n ) {\n Component = React.forwardRef(OriginComponent);\n Component.displayName = OriginComponent.displayName;\n Component.defaultProps = {\n 'data-ui-name': OriginComponent.displayName,\n ...OriginComponent.defaultProps,\n };\n (Component as any)[CORE_COMPONENT] = true;\n } else {\n throw new Error('createBaseComponent accepts only functional component');\n }\n return Component as any;\n}\n\nexport type UnknownProperties = {\n [key: string]: unknown;\n};\n\nexport * from './Component';\nexport * from './styled';\nexport * from './register';\nexport {\n createBaseComponent,\n register,\n CREATE_COMPONENT,\n CORE_INSTANCE,\n CONTEXT_COMPONENT,\n CHILDREN_COMPONENT,\n INHERITED_NAME,\n CORE_COMPONENT,\n STATIC_COMPONENT,\n ROOT_COMPONENT,\n assignProps,\n};\nexport default createComponent;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","names":["Register","_classCallCheck","_defineProperty","_createClass","key","value","get","name","defaultValue","data","set"],"sources":["../../src/register.tsx"],"sourcesContent":["class Register {\n data = {};\n\n get<D>(name, defaultValue?: D): D {\n if (name in this.data) {\n return this.data[name];\n } else {\n return this.set(name, defaultValue);\n }\n }\n\n set<D>(name, value: D): D {\n this.data[name] = value;\n return this.data[name];\n }\n}\n\nexport { Register };\nexport default new Register();\n"],"mappings":";;;IAAMA,QAAQ;EAAA,SAAAA,SAAA;IAAAC,eAAA,OAAAD,QAAA;IAAAE,eAAA,eACL,CAAC,CAAC;EAAA;EAAAC,YAAA,CAAAH,QAAA;IAAAI,GAAA;IAAAC,KAAA,EAET,SAAAC,IAAOC,IAAI,EAAEC,YAAgB,EAAK;MAChC,IAAID,IAAI,IAAI,IAAI,CAACE,IAAI,EAAE;QACrB,OAAO,IAAI,CAACA,IAAI,CAACF,IAAI,CAAC;MACxB,CAAC,MAAM;QACL,OAAO,IAAI,CAACG,GAAG,CAACH,IAAI,EAAEC,YAAY,CAAC;MACrC;IACF;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAK,IAAOH,IAAI,EAAEF,KAAQ,EAAK;MACxB,IAAI,CAACI,IAAI,CAACF,IAAI,CAAC,GAAGF,KAAK;MACvB,OAAO,IAAI,CAACI,IAAI,CAACF,IAAI,CAAC;IACxB;EAAC;EAAA,OAAAP,QAAA;AAAA;AAGH,SAASA,QAAQ;AACjB,eAAe,IAAIA,QAAQ,EAAE"}
1
+ {"version":3,"file":"register.js","names":["Register","_classCallCheck","_defineProperty","_createClass","key","value","get","name","defaultValue","data","set"],"sources":["../../src/register.tsx"],"sourcesContent":["class Register {\n data: any = {};\n\n get<D>(name: string, defaultValue?: D): D {\n if (name in this.data) {\n return this.data[name];\n } else {\n return this.set(name, defaultValue) as any;\n }\n }\n\n set<D>(name: string, value: D): D {\n this.data[name] = value;\n return this.data[name];\n }\n}\n\nexport { Register };\nexport default new Register();\n"],"mappings":";;;IAAMA,QAAQ;EAAA,SAAAA,SAAA;IAAAC,eAAA,OAAAD,QAAA;IAAAE,eAAA,eACA,CAAC,CAAC;EAAA;EAAAC,YAAA,CAAAH,QAAA;IAAAI,GAAA;IAAAC,KAAA,EAEd,SAAAC,IAAOC,IAAY,EAAEC,YAAgB,EAAK;MACxC,IAAID,IAAI,IAAI,IAAI,CAACE,IAAI,EAAE;QACrB,OAAO,IAAI,CAACA,IAAI,CAACF,IAAI,CAAC;MACxB,CAAC,MAAM;QACL,OAAO,IAAI,CAACG,GAAG,CAACH,IAAI,EAAEC,YAAY,CAAC;MACrC;IACF;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAAK,IAAOH,IAAY,EAAEF,KAAQ,EAAK;MAChC,IAAI,CAACI,IAAI,CAACF,IAAI,CAAC,GAAGF,KAAK;MACvB,OAAO,IAAI,CAACI,IAAI,CAACF,IAAI,CAAC;IACxB;EAAC;EAAA,OAAAP,QAAA;AAAA;AAGH,SAASA,QAAQ;AACjB,eAAe,IAAIA,QAAQ,EAAE"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=reshadow.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reshadow.d.js","names":[],"sources":["../../src/reshadow.d.ts"],"sourcesContent":["declare module 'hoist-non-react-statics' {\n const hoistNonReactStatics: any;\n export default hoistNonReactStatics;\n}\n"],"mappings":""}
@@ -1,5 +1,10 @@
1
+ /** @deprecated */
2
+
3
+ /** @ts-ignore */
1
4
  export { default as styled } from '@reshadow/core';
5
+ /** @ts-ignore */
2
6
  export { use, css } from '@reshadow/core';
7
+ /** @ts-ignore */
3
8
  export * from '@reshadow/core';
4
9
  export * from './sstyled';
5
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","styled","use","css"],"sources":["../../../src/styled/index.tsx"],"sourcesContent":["export interface IStyledProps {\n /** @ignore */\n styles?: { [key: string]: string };\n}\nexport { default as styled } from '@reshadow/core';\nexport { use, css } from '@reshadow/core';\nexport * from '@reshadow/core';\n\nexport * from './sstyled';\n"],"mappings":"AAIA,SAASA,OAAO,IAAIC,MAAM,QAAQ,gBAAgB;AAClD,SAASC,GAAG,EAAEC,GAAG,QAAQ,gBAAgB;AACzC,cAAc,gBAAgB;AAE9B,cAAc,WAAW"}
1
+ {"version":3,"file":"index.js","names":["default","styled","use","css"],"sources":["../../../src/styled/index.tsx"],"sourcesContent":["import { UnknownProperties } from '..';\n\nexport type StyledProps = {\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n styles?: React.DetailedHTMLProps<React.StyleHTMLAttributes<HTMLStyleElement>, HTMLStyleElement>;\n};\n\n/** @deprecated */\nexport interface IStyledProps extends StyledProps, UnknownProperties {}\n/** @ts-ignore */\nexport { default as styled } from '@reshadow/core';\n/** @ts-ignore */\nexport { use, css } from '@reshadow/core';\n/** @ts-ignore */\nexport * from '@reshadow/core';\n\nexport * from './sstyled';\n"],"mappings":"AAOA;;AAEA;AACA,SAASA,OAAO,IAAIC,MAAM,QAAQ,gBAAgB;AAClD;AACA,SAASC,GAAG,EAAEC,GAAG,QAAQ,gBAAgB;AACzC;AACA,cAAc,gBAAgB;AAE9B,cAAc,WAAW"}
@@ -2,6 +2,7 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _cn from 'classnames';
4
4
  import { ReactNode } from 'react';
5
+ /** @ts-ignore */
5
6
  import { getStyles as reshadowGetStyles } from '@reshadow/core';
6
7
  var RESHADOW_ID = '__reshadow__';
7
8
  var isSSR = !(typeof window !== 'undefined' && window.document && window.document.createElement);
@@ -1 +1 @@
1
- {"version":3,"file":"sstyled.js","names":["cn","ReactNode","getStyles","reshadowGetStyles","RESHADOW_ID","isSSR","window","document","createElement","serverMap","map","css","serverStyles","id","concat","insert","code","hash","container","getElementById","head","appendChild","addEventListener","type","innerHTML","merge","s1","arguments","length","undefined","s2","Object","entries","reduce","acc","_ref","_ref2","_slicedToArray","key","value","startsWith","assign","getClassAndVars","styles","name","props","getPropValue","_props","_ref3","_ref4","substring","_key$split","split","_key$split2","mod","modValue","propValue","Boolean","reshadowToShadow","obj","style","_ref5","_ref6","n","replace","sstyled","_getClassAndVars","_getClassAndVars2","classes","extraProps","keys","className","_objectSpread","Error","SHADOW_STYLES","Symbol"],"sources":["../../../src/styled/sstyled.tsx"],"sourcesContent":["import cn from 'classnames';\nimport { ReactNode } from 'react';\nimport { getStyles as reshadowGetStyles } from '@reshadow/core';\n\nconst RESHADOW_ID = '__reshadow__';\n\nconst isSSR = !(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nconst serverMap = reshadowGetStyles().map;\n\nconst getStyles = () => ({\n map: serverMap,\n get css() {\n let serverStyles = '';\n for (const id in serverMap) {\n serverStyles += `<style type='text/css' id='${id}'>${serverMap[id]}</style>`;\n }\n return serverStyles;\n },\n});\n\nfunction insert(code, hash) {\n const id = 'reshadow-'.concat(hash);\n\n if (isSSR) {\n serverMap[id] = code;\n return;\n }\n\n let container = document.getElementById(RESHADOW_ID);\n\n if (!container) {\n container = document.createElement('object');\n container.id = RESHADOW_ID;\n\n if (document.head) {\n document.head.appendChild(container);\n } else {\n document.addEventListener('DOMContentLoaded', function () {\n document.head.appendChild(container);\n });\n }\n }\n\n let css = document.getElementById(id);\n\n if (!css) {\n css = document.createElement('style');\n css.id = id;\n // @ts-ignore\n css.type = 'text/css';\n container.appendChild(css);\n }\n\n css.innerHTML = code;\n}\n\nfunction merge(s1 = {}, s2 = {}) {\n return Object.entries(s2).reduce((acc, [key, value]) => {\n if (key.startsWith('@') || key.startsWith('--')) {\n acc[key] = value;\n } else {\n acc[key] = cn(acc[key], value);\n }\n return acc;\n }, Object.assign({}, s1));\n}\n\nfunction getClassAndVars(styles, name, props) {\n function getPropValue(key, props) {\n return props[`use:${key}`] ?? props[key];\n }\n\n return Object.entries(styles).reduce(\n (acc, [key, value]) => {\n if (key.startsWith('--')) {\n // @ts-ignore\n acc[1][value] = getPropValue(key.substring(2), props);\n } else if (name === key) {\n // @ts-ignore\n acc[0][value] = true;\n } else {\n const [mod, modValue] = key.split('=');\n const propValue = getPropValue(mod, props);\n if (modValue === undefined) {\n // @ts-ignore\n acc[0][value] = Boolean(propValue ?? false);\n } else {\n // @ts-ignore\n // rome-ignore lint/suspicious/noDoubleEquals: <explanation>\n acc[0][value] = propValue == modValue;\n }\n }\n return acc;\n },\n [{}, {}],\n );\n}\n\nfunction reshadowToShadow(obj) {\n return Object.entries(obj).reduce((style, [name, value]) => {\n let n = name;\n if (name.startsWith('__')) {\n n = name.replace(/^__/, '');\n } else if (name.startsWith('_')) {\n n = name.replace(/^_/, '').replace('_', '=');\n }\n style[n] = value;\n return style;\n }, {});\n}\n\nfunction sstyled(styles = {}): ((ReactNode) => ReactNode) & {\n cn(name: string, props: any): any;\n} {\n // @ts-ignore\n return {\n cn(name, props) {\n const [classes, style] = getClassAndVars(reshadowToShadow(styles), name, props);\n const extraProps = {};\n\n if (Object.keys(classes).length) {\n // @ts-ignore\n extraProps.className = cn(props.className, classes);\n }\n\n if (Object.keys(style).length) {\n // @ts-ignore\n extraProps.style = Object.assign(style, props.style);\n }\n return {\n ...props,\n ...extraProps,\n };\n },\n };\n}\n\nsstyled.css = function (css): { [key: string]: string } {\n throw new Error('Enable babel plugin');\n};\nsstyled.insert = insert;\nsstyled.merge = merge;\nsstyled.getStyles = getStyles;\nsstyled.SHADOW_STYLES = Symbol('SHADOW_STYLES');\n\nexport { sstyled };\n"],"mappings":"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"}
1
+ {"version":3,"file":"sstyled.js","names":["cn","ReactNode","getStyles","reshadowGetStyles","RESHADOW_ID","isSSR","window","document","createElement","serverMap","map","css","serverStyles","id","concat","insert","code","hash","container","getElementById","head","appendChild","addEventListener","type","innerHTML","merge","s1","arguments","length","undefined","s2","Object","entries","reduce","acc","_ref","_ref2","_slicedToArray","key","value","startsWith","assign","getClassAndVars","styles","name","props","getPropValue","_props","_ref3","_ref4","substring","_key$split","split","_key$split2","mod","modValue","propValue","Boolean","reshadowToShadow","obj","style","_ref5","_ref6","n","replace","sstyled","_getClassAndVars","_getClassAndVars2","classes","extraProps","keys","className","_objectSpread","Error","SHADOW_STYLES","Symbol"],"sources":["../../../src/styled/sstyled.tsx"],"sourcesContent":["import cn from 'classnames';\nimport { ReactNode } from 'react';\n/** @ts-ignore */\nimport { getStyles as reshadowGetStyles } from '@reshadow/core';\n\nconst RESHADOW_ID = '__reshadow__';\n\nconst isSSR = !(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nconst serverMap = reshadowGetStyles().map;\n\nconst getStyles = () => ({\n map: serverMap,\n get css() {\n let serverStyles = '';\n for (const id in serverMap) {\n serverStyles += `<style type='text/css' id='${id}'>${serverMap[id]}</style>`;\n }\n return serverStyles;\n },\n});\n\nfunction insert(code: any, hash: any) {\n const id = 'reshadow-'.concat(hash);\n\n if (isSSR) {\n serverMap[id] = code;\n return;\n }\n\n let container = document.getElementById(RESHADOW_ID);\n\n if (!container) {\n container = document.createElement('object');\n container.id = RESHADOW_ID;\n\n if (document.head) {\n document.head.appendChild(container);\n } else {\n document.addEventListener('DOMContentLoaded', function () {\n document.head.appendChild(container as any);\n });\n }\n }\n\n let css = document.getElementById(id);\n\n if (!css) {\n css = document.createElement('style');\n css.id = id;\n // @ts-ignore\n css.type = 'text/css';\n container.appendChild(css);\n }\n\n css.innerHTML = code;\n}\n\nfunction merge(s1 = {}, s2 = {}) {\n return Object.entries(s2).reduce((acc: any, [key, value]: any) => {\n if (key.startsWith('@') || key.startsWith('--')) {\n acc[key] = value;\n } else {\n acc[key] = cn(acc[key], value);\n }\n return acc;\n }, Object.assign({}, s1));\n}\n\nfunction getClassAndVars(styles: any, name: any, props: any) {\n function getPropValue(key: any, props: any) {\n return props[`use:${key}`] ?? props[key];\n }\n\n return Object.entries(styles).reduce(\n (acc, [key, value]) => {\n if (key.startsWith('--')) {\n // @ts-ignore\n acc[1][value] = getPropValue(key.substring(2), props);\n } else if (name === key) {\n // @ts-ignore\n acc[0][value] = true;\n } else {\n const [mod, modValue] = key.split('=');\n const propValue = getPropValue(mod, props);\n if (modValue === undefined) {\n // @ts-ignore\n acc[0][value] = Boolean(propValue ?? false);\n } else {\n // @ts-ignore\n // rome-ignore lint/suspicious/noDoubleEquals: <explanation>\n acc[0][value] = propValue == modValue;\n }\n }\n return acc;\n },\n [{}, {}],\n );\n}\n\nfunction reshadowToShadow(obj: any) {\n return Object.entries(obj).reduce((style: any, [name, value]) => {\n let n = name;\n if (name.startsWith('__')) {\n n = name.replace(/^__/, '');\n } else if (name.startsWith('_')) {\n n = name.replace(/^_/, '').replace('_', '=');\n }\n style[n] = value;\n return style;\n }, {});\n}\n\nfunction sstyled(styles = {}): ((ReactNode: any) => ReactNode) & {\n cn(name: string, props: any): any;\n} {\n // @ts-ignore\n return {\n cn(name, props) {\n const [classes, style] = getClassAndVars(reshadowToShadow(styles), name, props);\n const extraProps = {};\n\n if (Object.keys(classes).length) {\n // @ts-ignore\n extraProps.className = cn(props.className, classes);\n }\n\n if (Object.keys(style).length) {\n // @ts-ignore\n extraProps.style = Object.assign(style, props.style);\n }\n return {\n ...props,\n ...extraProps,\n };\n },\n };\n}\n\nsstyled.css = function (css: any): { [key: string]: string } {\n throw new Error('Enable babel plugin');\n};\nsstyled.insert = insert;\nsstyled.merge = merge;\nsstyled.getStyles = getStyles;\nsstyled.SHADOW_STYLES = Symbol('SHADOW_STYLES');\n\nexport { sstyled };\n"],"mappings":"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"}
@@ -1,65 +1,131 @@
1
1
  import React, { AllHTMLAttributes, ForwardRefExoticComponent, PureComponent, ReactNode, RefObject } from 'react';
2
2
  import { IStyledProps } from './styled';
3
- declare type KnownKeys<T> = {
3
+ /** @deprecated */
4
+ type KnownKeys<T> = {
4
5
  [K in keyof T]: string extends K ? never : number extends K ? never : K;
5
6
  } extends {
6
7
  [_ in keyof T]: infer U;
7
8
  } ? U : never;
8
- export declare type HandlersType<UCProps> = {
9
+ /** @deprecated */
10
+ export type HandlersType<UCProps> = {
9
11
  [K in keyof UCProps]?: <T = unknown>(arg: T) => void;
10
12
  };
11
- export declare type ChildrenType<Props = {}, Ctx = {}, UCProps = {}> = ((props: Props & Ctx, handlers: HandlersType<UCProps>) => ReactNode) | ReactNode;
12
- export declare type RootComponentHandler = (...args: any[]) => void | false;
13
+ /** @deprecated */
14
+ export type ChildrenType<Props = {}, Ctx = {}, UCProps = {}> = ((props: Props & Ctx, handlers: HandlersType<UCProps>) => ReactNode) | ReactNode;
15
+ /** @deprecated */
16
+ export type RootComponentHandler = (...args: any[]) => void | false;
17
+ /** @deprecated */
13
18
  export interface IRootComponentHandlers {
14
19
  [key: string]: RootComponentHandler;
15
20
  }
21
+ /** @deprecated */
16
22
  export interface IRootComponentProps<Props = {}, Ctx = {}> {
17
23
  forwardRef?: RefObject<any>;
18
24
  Children?: any;
19
25
  children?: ChildrenType<Props, Ctx>;
20
26
  styles?: IStyledProps['styles'];
21
27
  }
22
- export declare type IComponentProps<Props = {}, Ctx = {}> = Props & IRootComponentProps<Props, Ctx>;
23
- export declare type IFunctionProps<Props = {}, Ctx = {}> = IComponentProps<Props, Ctx> & Omit<AllHTMLAttributes<any>, keyof IComponentProps<Props, Ctx>> & {
28
+ /** @deprecated */
29
+ export type IComponentProps<Props = {}, Ctx = {}> = Props & IRootComponentProps<Props, Ctx>;
30
+ /** @deprecated */
31
+ export type IFunctionProps<Props = {}, Ctx = {}> = IComponentProps<Props, Ctx> & Omit<AllHTMLAttributes<any>, keyof IComponentProps<Props, Ctx>> & {
24
32
  Root?: Root;
25
33
  };
26
- export declare type PropsWithRenderFnChildren<Props = {}, Ctx = {}, UCProps = {}> = Omit<Pick<Props, KnownKeys<Props>>, 'children'> & {
34
+ /** @deprecated */
35
+ export type PropsWithRenderFnChildren<Props = {}, Ctx = {}, UCProps = {}> = Omit<Pick<Props, KnownKeys<Props>>, 'children'> & {
27
36
  children?: ChildrenType<Props, Ctx, UCProps>;
28
37
  [key: string]: unknown;
29
38
  };
30
- export declare type CProps<Props, Ctx = {}, UCProps = {}> = Props & {
39
+ /** @deprecated */
40
+ export type CProps<Props, Ctx = {}, UCProps = {}> = Props & {
31
41
  children?: ((props: Props & Ctx, handlers: UCProps) => React.ReactNode) | React.ReactNode;
32
42
  };
33
- export declare type ReturnEl = React.ReactElement | null;
43
+ /** @deprecated */
44
+ export type ReturnEl = React.ReactElement | null;
34
45
  export interface IRootNodeProps {
35
46
  render: React.ElementType | string;
36
47
  tag?: React.ElementType | string;
37
48
  [key: string]: any;
38
49
  }
39
- declare type Root = ForwardRefExoticComponent<IRootNodeProps>;
50
+ type Root = ForwardRefExoticComponent<IRootNodeProps>;
40
51
  /**
41
52
  * @deprecated since version ^1.8.0
42
53
  */
43
- export declare type PropGetter<T extends (...args: any) => any> = <P>(props?: P) => ReturnType<T> & P;
54
+ export type PropGetter<T extends (...args: any) => any> = <P>(props?: P) => ReturnType<T> & P;
44
55
  /**
45
56
  * @deprecated since version ^1.8.0
46
57
  */
47
- export declare type PropGetterReturn<T extends (...args: any) => any> = Partial<ReturnType<T>>;
48
- export declare type PropGetterFn = <T extends {}>(props?: T) => T & {
58
+ /** @deprecated */
59
+ export type PropGetterReturn<T extends (...args: any) => any> = Partial<ReturnType<T>>;
60
+ /** @deprecated */
61
+ export type PropGetterFn = <T extends {}>(props?: T) => T & {
49
62
  [key: string]: unknown;
50
63
  };
51
- export declare type Merge<Props, HTMLProps> = Props & Omit<HTMLProps, keyof Props>;
52
- export declare type MergeGetters<G1 extends (...args: any) => any, G2 extends (...args: any) => any> = <P>(props?: P) => Merge<ReturnType<G1>, ReturnType<G2>> & P;
64
+ /** @deprecated */
65
+ export type Merge<Props, HTMLProps> = Props & Omit<HTMLProps, keyof Props>;
66
+ /** @deprecated */
67
+ export type MergeGetters<G1 extends (...args: any) => any, G2 extends (...args: any) => any> = <P>(props?: P) => Merge<ReturnType<G1>, ReturnType<G2>> & P;
53
68
  declare const Root: Root;
54
69
  export { Root };
70
+ /** @deprecated */
55
71
  declare abstract class RootComponent<Props = {}, Context = {}, State = {}> extends PureComponent<Props & IRootComponentProps<Props, Context>, State> {
56
72
  get handlers(): Readonly<IRootComponentHandlers>;
57
73
  get asProps(): Readonly<Merge<Props & IRootComponentProps<Props, Context>, React.AllHTMLAttributes<any>>>;
58
74
  Root: Root;
59
75
  }
60
76
  export declare const Component: typeof RootComponent;
61
- export declare type Component<Props = {}, Context = {}, State = {}, Handlers extends IRootComponentHandlers = IRootComponentHandlers> = React.ComponentClass<Props, State> & {
77
+ /** @deprecated */
78
+ export type Component<Props = {}, Context = {}, State = {}, Handlers extends IRootComponentHandlers = IRootComponentHandlers> = React.ComponentClass<Props, State> & {
62
79
  handlers: Readonly<Handlers>;
63
80
  asProps: Readonly<Merge<Props & IRootComponentProps<Props, Context>, AllHTMLAttributes<any>>>;
64
81
  Root: Root;
65
82
  };
83
+ export declare namespace Intergalactic {
84
+ type ReactFCProps<C extends React.FC> = C extends React.FC<infer Props> ? Omit<Props, 'tag'> : {};
85
+ type ReactComponentProps<C extends React.ComponentClass> = C extends React.ComponentClass<infer Props> ? Omit<Props, 'tag'> : never;
86
+ type ReactFCLike = (props: any) => any;
87
+ type ReactFCLikeProps<C extends ReactFCLike> = C extends (props: infer Props) => any ? Props : {};
88
+ type ComponentChildren<Props, Context, RenderingResult = InternalTypings.ReturnResult, AdditionalContext extends any[] = never[]> = ((props: MergeProps<Context, Props>, ...args: AdditionalContext) => RenderingResult) | InternalTypings.ReturnResult;
89
+ type ComponentBasicProps<Tag extends InternalTypings.ComponentTag> = {
90
+ ref?: React.Ref<InternalTypings.ComponentHtmlElement<Tag> | null>;
91
+ /** @private DO NOT USE IT. Low-level api that prevents specified props from being applied as DOM attribute. */
92
+ __excludeProps?: string[];
93
+ };
94
+ type MergeProps<HighPriorityProps, LowPriorityProps> = Omit<LowPriorityProps, keyof HighPriorityProps> & HighPriorityProps;
95
+ /** @private */
96
+ export namespace InternalTypings {
97
+ export type ComponentPropsNesting<Tag extends InternalTypings.ComponentTag> = Omit<(Tag extends React.FC ? ReactFCProps<Tag> : Tag extends React.ComponentClass ? ReactComponentProps<Tag> : Tag extends ReactFCLike ? ReactFCLikeProps<Tag> : Tag extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[Tag] : {}) & (Tag extends {
98
+ __nestedProps: infer NestedProps;
99
+ } ? NestedProps : {}), 'children' | 'tag'>;
100
+ export type ReturnResult = React.ReactElement | React.ReactNode | React.ReactNode[] | string | null;
101
+ export type ComponentTag = keyof JSX.IntrinsicElements | React.ComponentClass | React.FC | ReactFCLike;
102
+ export type ComponentProps<Tag extends ComponentTag, Props, Context = never, AdditionalContext extends any[] = never[]> = {
103
+ tag?: Tag;
104
+ children?: ComponentChildren<Omit<Props, 'children'> & {
105
+ children: React.ReactNode;
106
+ }, Context, ReturnResult, AdditionalContext>;
107
+ } & ComponentBasicProps<Tag> & MergeProps<Omit<Props, 'tag' | 'children'>, ComponentPropsNesting<Tag>>;
108
+ export type PropsRenderingResultComponentProps<Tag extends ComponentTag, Props, Context = {}, AdditionalContext extends any[] = never[]> = {
109
+ tag?: Tag;
110
+ children?: ComponentChildren<Omit<Props, 'children'> & {
111
+ children: React.ReactNode;
112
+ }, Context, Partial<Omit<MergeProps<Props, ComponentPropsNesting<Tag>>, 'children' | 'tag' | 'ref'> & {
113
+ children?: React.ReactNode;
114
+ }>, AdditionalContext>;
115
+ } & ComponentBasicProps<Tag> & MergeProps<Omit<Props, 'tag' | 'children'>, ComponentPropsNesting<Tag>>;
116
+ export type ComponentRenderingResults = React.ReactElement;
117
+ export type ComponentAdditive<BaseTag extends ComponentTag> = {
118
+ __nestedProps: ComponentPropsNesting<BaseTag>;
119
+ };
120
+ type InferJsxIntrinsicElement<T extends React.DetailedHTMLProps<any, any>> = T extends React.DetailedHTMLProps<infer _, infer Element> ? Element : HTMLElement;
121
+ type InferElementFromRef<T> = T extends React.Ref<infer Element> ? Element : never;
122
+ type InferRefElementFromProps<T> = 'ref' extends keyof T ? InferElementFromRef<T['ref']> : HTMLElement;
123
+ export type ComponentHtmlElement<Tag extends ComponentTag> = Tag extends keyof JSX.IntrinsicElements ? InferJsxIntrinsicElement<JSX.IntrinsicElements[Tag]> : Tag extends {
124
+ __nestedProps: infer NestedProps;
125
+ } ? InferRefElementFromProps<NestedProps> : HTMLElement;
126
+ export {};
127
+ }
128
+ export type Component<BaseTag extends InternalTypings.ComponentTag = never, BaseProps = {}, Context = {}, AdditionalContext extends any[] = never[]> = (<Tag extends InternalTypings.ComponentTag = BaseTag, Props extends BaseProps = BaseProps>(props: InternalTypings.ComponentProps<Tag, Props, Context, AdditionalContext>) => InternalTypings.ComponentRenderingResults) & InternalTypings.ComponentAdditive<BaseTag>;
129
+ export type Tag = InternalTypings.ComponentTag;
130
+ export {};
131
+ }
@@ -1,6 +1,6 @@
1
1
  export declare const CHILDREN_COMPONENT: unique symbol;
2
- declare function Enhancement(Context: any, parent: any): {
3
- init: () => void;
4
- asProps: (props: any) => any;
2
+ declare function Enhancement(this: any, Context: any, parent: any): {
3
+ init: (this: any) => void;
4
+ asProps: (this: any, props: any) => any;
5
5
  };
6
6
  export default Enhancement;
@@ -1,6 +1,6 @@
1
1
  declare function Enhancement(): {
2
- init: () => void;
3
- asProps: (props: any, WrapperComponent: any, isFunction: any) => any;
4
- render: (render: any, props: any) => any;
2
+ init: (this: any) => void;
3
+ asProps: (this: any, props: any, WrapperComponent: any, isFunction: boolean) => any;
4
+ render: (this: any, render: any, props: any) => any;
5
5
  };
6
6
  export default Enhancement;
@@ -1,5 +1,5 @@
1
1
  declare function Enhancement(): {
2
- condition: (Component: any, isFunction: any) => boolean;
3
- init: () => void;
2
+ condition: (Component: any, isFunction: boolean) => boolean;
3
+ init: (this: any) => void;
4
4
  };
5
5
  export default Enhancement;
@@ -1,9 +1,9 @@
1
1
  export declare const HOIST_CONTEXT: unique symbol;
2
2
  declare function Enhancement(childComponents: any, Context: any): {
3
3
  condition: (Component: any) => boolean;
4
- init: (props: any, WrapperComponent: any, isFunction: any) => void;
5
- context: (context: any) => any;
6
- asProps: (props: any) => any;
4
+ init: (this: any, props: any, WrapperComponent: any, isFunction: boolean) => void;
5
+ context: (this: any, context: any) => any;
6
+ asProps: (this: any, props: any) => any;
7
7
  wrapperProps: (props: any, WrapperComponent: any) => any;
8
8
  };
9
9
  export default Enhancement;