@semcore/core 1.11.1 → 1.11.4

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 (47) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/cjs/Component.js +3 -2
  3. package/lib/cjs/Component.js.map +1 -1
  4. package/lib/cjs/enhancement/Children.js +7 -4
  5. package/lib/cjs/enhancement/Children.js.map +1 -1
  6. package/lib/cjs/enhancement/Root.js +8 -5
  7. package/lib/cjs/enhancement/Root.js.map +1 -1
  8. package/lib/cjs/enhancement/dataName.js +2 -2
  9. package/lib/cjs/enhancement/hoistProps.js +2 -2
  10. package/lib/cjs/enhancement/hoistProps.js.map +1 -1
  11. package/lib/cjs/enhancement/staticChildren.js +3 -3
  12. package/lib/cjs/enhancement/staticChildren.js.map +1 -1
  13. package/lib/cjs/enhancement/style.js +7 -4
  14. package/lib/cjs/enhancement/style.js.map +1 -1
  15. package/lib/cjs/enhancement/uncontrolledProps.js +2 -2
  16. package/lib/cjs/enhancement/uncontrolledProps.js.map +1 -1
  17. package/lib/cjs/index.js +25 -25
  18. package/lib/cjs/index.js.map +1 -1
  19. package/lib/cjs/styled/index.js +11 -7
  20. package/lib/cjs/styled/sstyled.js +2 -2
  21. package/lib/cjs/styled/sstyled.js.map +1 -1
  22. package/lib/es6/Component.js +1 -1
  23. package/lib/es6/Component.js.map +1 -1
  24. package/lib/es6/enhancement/Children.js +6 -4
  25. package/lib/es6/enhancement/Children.js.map +1 -1
  26. package/lib/es6/enhancement/Root.js +7 -5
  27. package/lib/es6/enhancement/Root.js.map +1 -1
  28. package/lib/es6/enhancement/dataName.js +2 -2
  29. package/lib/es6/enhancement/hoistProps.js +2 -2
  30. package/lib/es6/enhancement/hoistProps.js.map +1 -1
  31. package/lib/es6/enhancement/staticChildren.js +3 -3
  32. package/lib/es6/enhancement/staticChildren.js.map +1 -1
  33. package/lib/es6/enhancement/style.js +6 -4
  34. package/lib/es6/enhancement/style.js.map +1 -1
  35. package/lib/es6/enhancement/uncontrolledProps.js +2 -2
  36. package/lib/es6/enhancement/uncontrolledProps.js.map +1 -1
  37. package/lib/es6/index.js +9 -7
  38. package/lib/es6/index.js.map +1 -1
  39. package/lib/es6/styled/sstyled.js +2 -2
  40. package/lib/es6/styled/sstyled.js.map +1 -1
  41. package/lib/types/Component.d.ts +7 -1
  42. package/lib/types/index.d.ts +2 -2
  43. package/package.json +8 -2
  44. package/src/Component.tsx +18 -5
  45. package/src/enhancement/Root.tsx +1 -1
  46. package/src/enhancement/staticChildren.tsx +1 -1
  47. package/src/index.tsx +15 -20
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.4] - 2022-03-14
6
+
7
+ ### Changed
8
+
9
+ - Version patch update due to children dependencies update (`@semcore/utils` [3.31.2 ~> 3.31.2]).
10
+
11
+ ## [1.11.3] - 2022-02-24
12
+
13
+ ### Added
14
+
15
+ - Added repository field to package.json file.
16
+
17
+ ## [1.11.2] - 2021-8-26
18
+
19
+ ### Changed
20
+
21
+ - Add 'sideEffect=false' for more optimal build via webpack
22
+
5
23
  ## [1.11.1] - 2021-05-11
6
24
 
7
25
  ### Changed
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.Component = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
@@ -60,5 +60,6 @@ var RootComponent = /*#__PURE__*/function (_PureComponent) {
60
60
  return RootComponent;
61
61
  }(_react.PureComponent);
62
62
 
63
- exports["default"] = RootComponent;
63
+ var Component = RootComponent;
64
+ exports.Component = Component;
64
65
  //# sourceMappingURL=Component.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Component.tsx"],"names":["RootComponent","PureComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;IA8E8BA,a;;;;;;;;;;;;;;;;;;;;;SAK5B,eAAiD;AAC/C,aAAO,EAAP;AACD;;;SAED,eAAc;AACZ,aAAO,EAAP;AAGD;;;EATOC,oB","sourcesContent":["import React, {\n AllHTMLAttributes,\n ForwardRefExoticComponent,\n PureComponent,\n ReactNode,\n RefObject,\n} from 'react';\nimport { IStyledProps } from './styled';\n\ntype KnownKeys<T> = {\n [K in keyof T]: string extends K ? never : number extends K ? never : K;\n} extends { [_ in keyof T]: infer U }\n ? U\n : never;\n\nexport type HandlersType<UCProps> = { [K in keyof UCProps]?: <T = unknown>(arg: T) => void };\nexport type ChildrenType<Props = {}, Ctx = {}, UCProps = {}> =\n | ((props: Props & Ctx, handlers: HandlersType<UCProps>) => ReactNode)\n | ReactNode;\n\nexport type RootComponentHandler = (...args: any[]) => void | false;\n\nexport interface IRootComponentHandlers {\n [key: string]: RootComponentHandler;\n}\n\nexport interface IRootComponentProps<Props = {}, Ctx = {}> {\n forwardRef?: RefObject<any>;\n Children?: any;\n children?: ChildrenType<Props, Ctx>;\n styles?: IStyledProps['styles'];\n}\n\nexport type IComponentProps<Props = {}, Ctx = {}> = Props & IRootComponentProps<Props, Ctx>;\n\nexport type IFunctionProps<Props = {}, Ctx = {}> = IComponentProps<Props, Ctx> &\n Omit<AllHTMLAttributes<any>, keyof IComponentProps<Props, Ctx>> & { Root?: Root };\n\nexport type PropsWithRenderFnChildren<Props = {}, Ctx = {}, UCProps = {}> = Omit<\n Pick<Props, KnownKeys<Props>>,\n 'children'\n> & {\n children?: ChildrenType<Props, Ctx, UCProps>;\n [key: string]: unknown;\n};\n\nexport type CProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?: ((props: Props & Ctx, handlers: UCProps) => React.ReactNode) | React.ReactNode;\n};\nexport type ReturnEl = React.ReactElement | null;\n\nexport interface IRootNodeProps {\n render: React.ElementType | string;\n tag?: React.ElementType | string;\n\n [key: string]: any;\n}\n\ntype Root = ForwardRefExoticComponent<IRootNodeProps>;\n\n/**\n * @deprecated since version ^1.8.0\n */\nexport type PropGetter<T extends (...args: any) => any> = <P>(props?: P) => ReturnType<T> & P;\n/**\n * @deprecated since version ^1.8.0\n */\nexport type PropGetterReturn<T extends (...args: any) => any> = Partial<ReturnType<T>>;\nexport type PropGetterFn = <T extends {}>(props?: T) => T & { [key: string]: unknown };\nexport type Merge<Props, HTMLProps> = Props & Omit<HTMLProps, keyof Props>;\nexport type MergeGetters<G1 extends (...args: any) => any, G2 extends (...args: any) => any> = <P>(\n props?: P,\n) => Merge<ReturnType<G1>, ReturnType<G2>> & P;\n\ndeclare const Root: Root;\n\nexport { Root };\n\nexport default abstract class RootComponent<\n Props = {},\n Context = {},\n State = {}\n> extends PureComponent<Props & IRootComponentProps<Props, Context>, State> {\n get handlers(): Readonly<IRootComponentHandlers> {\n return {};\n }\n\n get asProps() {\n return {} as Readonly<\n Merge<Props & IRootComponentProps<Props, Context>, AllHTMLAttributes<any>>\n >;\n }\n\n Root: Root;\n}\n"],"file":"Component.js"}
1
+ {"version":3,"sources":["../../src/Component.tsx"],"names":["RootComponent","PureComponent","Component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;IA8EeA,a;;;;;;;;;;;;;;;;;;;;;SAIb,eAAiD;AAC/C,aAAO,EAAP;AACD;;;SAED,eAAc;AACZ,aAAO,EAAP;AAGD;;;EAZwEC,oB;;AAiBpE,IAAMC,SAAS,GAAGF,aAAlB","sourcesContent":["import React, {\n AllHTMLAttributes,\n ForwardRefExoticComponent,\n PureComponent,\n ReactNode,\n RefObject,\n} from 'react';\nimport { IStyledProps } from './styled';\n\ntype KnownKeys<T> = {\n [K in keyof T]: string extends K ? never : number extends K ? never : K;\n} extends { [_ in keyof T]: infer U }\n ? U\n : never;\n\nexport type HandlersType<UCProps> = { [K in keyof UCProps]?: <T = unknown>(arg: T) => void };\nexport type ChildrenType<Props = {}, Ctx = {}, UCProps = {}> =\n | ((props: Props & Ctx, handlers: HandlersType<UCProps>) => ReactNode)\n | ReactNode;\n\nexport type RootComponentHandler = (...args: any[]) => void | false;\n\nexport interface IRootComponentHandlers {\n [key: string]: RootComponentHandler;\n}\n\nexport interface IRootComponentProps<Props = {}, Ctx = {}> {\n forwardRef?: RefObject<any>;\n Children?: any;\n children?: ChildrenType<Props, Ctx>;\n styles?: IStyledProps['styles'];\n}\n\nexport type IComponentProps<Props = {}, Ctx = {}> = Props & IRootComponentProps<Props, Ctx>;\n\nexport type IFunctionProps<Props = {}, Ctx = {}> = IComponentProps<Props, Ctx> &\n Omit<AllHTMLAttributes<any>, keyof IComponentProps<Props, Ctx>> & { Root?: Root };\n\nexport type PropsWithRenderFnChildren<Props = {}, Ctx = {}, UCProps = {}> = Omit<\n Pick<Props, KnownKeys<Props>>,\n 'children'\n> & {\n children?: ChildrenType<Props, Ctx, UCProps>;\n [key: string]: unknown;\n};\n\nexport type CProps<Props, Ctx = {}, UCProps = {}> = Props & {\n children?: ((props: Props & Ctx, handlers: UCProps) => React.ReactNode) | React.ReactNode;\n};\nexport type ReturnEl = React.ReactElement | null;\n\nexport interface IRootNodeProps {\n render: React.ElementType | string;\n tag?: React.ElementType | string;\n\n [key: string]: any;\n}\n\ntype Root = ForwardRefExoticComponent<IRootNodeProps>;\n\n/**\n * @deprecated since version ^1.8.0\n */\nexport type PropGetter<T extends (...args: any) => any> = <P>(props?: P) => ReturnType<T> & P;\n/**\n * @deprecated since version ^1.8.0\n */\nexport type PropGetterReturn<T extends (...args: any) => any> = Partial<ReturnType<T>>;\nexport type PropGetterFn = <T extends {}>(props?: T) => T & { [key: string]: unknown };\nexport type Merge<Props, HTMLProps> = Props & Omit<HTMLProps, keyof Props>;\nexport type MergeGetters<G1 extends (...args: any) => any, G2 extends (...args: any) => any> = <P>(\n props?: P,\n) => Merge<ReturnType<G1>, ReturnType<G2>> & P;\n\ndeclare const Root: Root;\n\nexport { Root };\n\nabstract class RootComponent<Props = {}, Context = {}, State = {}> extends PureComponent<\n Props & IRootComponentProps<Props, Context>,\n State\n> {\n get handlers(): Readonly<IRootComponentHandlers> {\n return {};\n }\n\n get asProps() {\n return {} as Readonly<\n Merge<Props & IRootComponentProps<Props, Context>, AllHTMLAttributes<any>>\n >;\n }\n\n Root: Root;\n}\n\nexport const Component = RootComponent;\nexport type Component<\n Props = {},\n Context = {},\n State = {},\n Handlers extends IRootComponentHandlers = IRootComponentHandlers,\n> = React.ComponentClass<Props, State> & {\n handlers: Readonly<Handlers>;\n\n asProps: Readonly<Merge<Props & IRootComponentProps<Props, Context>, AllHTMLAttributes<any>>>;\n\n Root: Root;\n};\n"],"file":"Component.js"}
@@ -19,9 +19,12 @@ var _react = require("react");
19
19
 
20
20
  var _index = require("../index");
21
21
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
22
+ var _excluded = ["handlers", "getters"],
23
+ _excluded2 = ["handlers"];
23
24
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
+
27
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
28
 
26
29
  var CHILDREN_COMPONENT = Symbol('CHILDREN_COMPONENT');
27
30
  exports.CHILDREN_COMPONENT = CHILDREN_COMPONENT;
@@ -86,7 +89,7 @@ function createChildren(Context, contexts) {
86
89
  var _reduce = [].concat((0, _toConsumableArray2["default"])(contexts), [Context]).reduce(function (acc, ctx) {
87
90
  var _useContext = (0, _react.useContext)(ctx),
88
91
  handlers = _useContext.handlers,
89
- propsAndGetters = (0, _objectWithoutProperties2["default"])(_useContext, ["handlers"]);
92
+ propsAndGetters = (0, _objectWithoutProperties2["default"])(_useContext, _excluded2);
90
93
 
91
94
  var _splitPropsAndGetters = splitPropsAndGetters(propsAndGetters),
92
95
  props = _splitPropsAndGetters.props,
@@ -101,7 +104,7 @@ function createChildren(Context, contexts) {
101
104
  handlers = _reduce$handlers === void 0 ? {} : _reduce$handlers,
102
105
  _reduce$getters = _reduce.getters,
103
106
  getters = _reduce$getters === void 0 ? {} : _reduce$getters,
104
- props = (0, _objectWithoutProperties2["default"])(_reduce, ["handlers", "getters"]);
107
+ props = (0, _objectWithoutProperties2["default"])(_reduce, _excluded);
105
108
 
106
109
  var mergedGetters = Object.entries(getters).reduce(function (acc, _ref3) {
107
110
  var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
@@ -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":"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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 { handlers = {}, getters = {}, ...props } = [...contexts, Context].reduce(\n (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 },\n Children.props,\n );\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: разобраться зачем это надо было\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
+ {"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 { handlers = {}, getters = {}, ...props } = [...contexts, Context].reduce(\n (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 },\n Children.props,\n );\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: разобраться зачем это надо было\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"}
@@ -19,15 +19,18 @@ var _assignProps = _interopRequireDefault(require("@semcore/utils/lib/assignProp
19
19
 
20
20
  var _ref4 = require("@semcore/utils/lib/ref");
21
21
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
22
+ var _excluded = ["render"],
23
+ _excluded2 = ["Root", "styles", "children", "Children", "forwardRef"];
23
24
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
+
27
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
28
 
26
29
  function createRootRender() {
27
30
  // @ts-ignore
28
31
  var Root = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
29
32
  var Tag = _ref.render,
30
- source = (0, _objectWithoutProperties2["default"])(_ref, ["render"]);
33
+ source = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
31
34
  var _Root$props = Root.props,
32
35
  _Root = _Root$props.Root,
33
36
  styles = _Root$props.styles,
@@ -35,7 +38,7 @@ function createRootRender() {
35
38
  Children = _Root$props.Children,
36
39
  _Root$props$forwardRe = _Root$props.forwardRef,
37
40
  forwardRef = _Root$props$forwardRe === void 0 ? null : _Root$props$forwardRe,
38
- props = (0, _objectWithoutProperties2["default"])(_Root$props, ["Root", "styles", "children", "Children", "forwardRef"]);
41
+ props = (0, _objectWithoutProperties2["default"])(_Root$props, _excluded2);
39
42
  var clearProps = Object.entries(props).reduce(function (props, _ref2) {
40
43
  var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
41
44
  name = _ref3[0],
@@ -59,7 +62,7 @@ function createRootRender() {
59
62
  }), _objectSpread(_objectSpread({}, child), source));
60
63
 
61
64
  if (!Tag) {
62
- throw new Error('В Root нужно передать render');
65
+ throw new Error('`render` prop of Root is not provided');
63
66
  }
64
67
 
65
68
  return /*#__PURE__*/_react["default"].createElement(Tag, other);
@@ -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,gBAAGC,kBAAMC,UAAN,CAAiB,gBAAsCC,GAAtC,EAA2C;AAAA,QAAvBC,GAAuB,QAA/BC,MAA+B;AAAA,QAAfC,MAAe;AAAA,sBAYnEN,IAAI,CAACO,KAZ8D;AAAA,QAG/DC,KAH+D,eAGrER,IAHqE;AAAA,QAKrES,MALqE,eAKrEA,MALqE;AAAA,QAOrEC,QAPqE,eAOrEA,QAPqE;AAAA,QAQrEC,QARqE,eAQrEA,QARqE;AAAA,4CASrET,UATqE;AAAA,QASrEA,UATqE,sCASxD,IATwD;AAAA,QAUlEK,KAVkE;AAcvE,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,8BAAV,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: разобраться как то иначе\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('В Root нужно передать render');\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"}
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,gBAAGC,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: разобраться как то иначе\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"}
@@ -9,9 +9,9 @@ exports["default"] = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
13
 
14
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
15
 
16
16
  function Enhancement() {
17
17
  return {
@@ -21,9 +21,9 @@ var _useEnhancedEffect = _interopRequireDefault(require("@semcore/utils/lib/use/
21
21
 
22
22
  var _pick = _interopRequireDefault(require("@semcore/utils/lib/pick"));
23
23
 
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
25
 
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
27
 
28
28
  var HOIST_CONTEXT = Symbol('HOIST_CONTEXT');
29
29
  exports.HOIST_CONTEXT = HOIST_CONTEXT;
@@ -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: use может вызываться не ровное количество раз\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: оптимизировать создание контекста\n // WrapperComponent.hoistProps\n return {\n ...context,\n [HOIST_CONTEXT]: this[HOIST_SET],\n };\n },\n asProps: function (props) {\n // TODO добавить проверку на уникальность филда на руте\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"}
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: use может вызываться не ровное количество раз\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: оптимизировать создание контекста\n // WrapperComponent.hoistProps\n return {\n ...context,\n [HOIST_CONTEXT]: this[HOIST_SET],\n };\n },\n asProps: function (props) {\n // TODO добавить проверку на уникальность филда на руте\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"}
@@ -21,9 +21,9 @@ var _pick = _interopRequireDefault(require("@semcore/utils/lib/pick"));
21
21
 
22
22
  var _logger = _interopRequireDefault(require("@semcore/utils/lib/logger"));
23
23
 
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
25
 
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
27
 
28
28
  function assign(target, source) {
29
29
  return Object.defineProperties(target, Object.keys(source).reduce(function (descriptors, key) {
@@ -76,7 +76,7 @@ function Enhancement(childComponents, createComponent, options) {
76
76
  this[SELF_GETTER_METHOD] = function () {
77
77
  var selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);
78
78
 
79
- _logger["default"].warn(true, "\u041C\u0435\u0442\u043E\u0434 \"".concat(selfGetterMethod, "\" \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0432\u044B\u0437\u0432\u0430\u043D, \u0442\u0430\u043A \u043A\u0430\u043A \u0432\u044B\u0437\u043E\u0432 getter \u0444\u0443\u043D\u043A\u0446\u0438\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u043D\u043E\u0433\u043E \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u0434\u043B\u044F \u043A\u043E\u0442\u043E\u0440\u043E\u0433\u043E \u044D\u0442\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u044F \u043F\u0440\u0435\u0434\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0430 - \u043D\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E"), props['data-ui-name'] || WrapperComponent.displayName);
79
+ _logger["default"].warn(true, "Getter `".concat(selfGetterMethod, "` can't be fired as it is a getter of static component"), props['data-ui-name'] || WrapperComponent.displayName);
80
80
  };
81
81
 
82
82
  assign(this, getterMethodNames.reduce(function (acc, name) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/enhancement/staticChildren.tsx"],"names":["assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","getterMethodName","name","getterMethodNameByDisplayName","displayName","displayNames","split","slice","length","join","flatGetterMethodNames","childComponents","parentName","entries","acc","value","Array","isArray","push","STATIC_COMPONENT","Symbol","SELF_GETTER_METHOD","Enhancement","createComponent","options","getterMethodNames","condition","Component","Boolean","init","props","WrapperComponent","getterMethods","selfGetterMethod","logger","warn","getterMethod","childrenProps","getterProps","call","index","Error","prevStaticComponent","prevDisplayName","context","wrapperProps","render","forEach","undefined"],"mappings":"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","sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n// @ts-ignore\nimport logger from '@semcore/utils/lib/logger';\n\nfunction assign(target, source) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nfunction getterMethodName(name) {\n return `get${name}Props`;\n}\n\nfunction getterMethodNameByDisplayName(displayName) {\n const displayNames = displayName.split('.');\n const name = displayNames.slice(-(displayNames.length - 1)).join('');\n return getterMethodName(name);\n}\n\nfunction flatGetterMethodNames(childComponents, parentName?: string) {\n return Object.entries(childComponents).reduce<string[]>((acc, [name, value]) => {\n if (Array.isArray(value)) {\n acc = [...acc, ...flatGetterMethodNames(value[1], name)];\n }\n name = parentName ? `${parentName}${name}` : name;\n acc.push(getterMethodName(name));\n return acc;\n }, []);\n}\n\nexport const STATIC_COMPONENT = Symbol('STATIC_COMPONENT');\nconst SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');\n\nfunction Enhancement(childComponents, createComponent, options) {\n const getterMethodNames = flatGetterMethodNames(childComponents);\n return {\n condition: function (Component) {\n return Boolean(Component[STATIC_COMPONENT] || Object.keys(childComponents).length);\n },\n init: function (props, WrapperComponent) {\n const getterMethods = pick(this, getterMethodNames);\n this[SELF_GETTER_METHOD] = () => {\n const selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n logger.warn(\n true,\n `Метод \"${selfGetterMethod}\" не может быть вызван, так как вызов getter функции внутри статичного компонента для которого эта функция предназначена - не возможно`,\n props['data-ui-name'] || WrapperComponent.displayName,\n );\n };\n assign(\n this,\n getterMethodNames.reduce((acc, name) => {\n const getterMethod = getterMethods[name];\n if (!getterMethod) return acc;\n acc[name] = (childrenProps = {}) => {\n const getterProps = getterMethod.call(this, childrenProps, acc[name].index);\n acc[name].index++;\n return assignProps(childrenProps, getterProps);\n };\n acc[name].index = 0;\n return acc;\n }, {}),\n );\n },\n static: function (WrapperComponent) {\n if (Object.keys(childComponents).length && !WrapperComponent.displayName) {\n throw new Error('\"displayName\" is not defined');\n }\n return Object.entries(childComponents).reduce((acc, [name, value]) => {\n let childComponents = {};\n\n if (Array.isArray(value)) {\n childComponents = value[1];\n value = value[0];\n }\n\n const prevStaticComponent = value[STATIC_COMPONENT];\n // @ts-ignore\n const prevDisplayName = value.displayName;\n // @ts-ignore\n value.displayName = WrapperComponent.displayName + '.' + name;\n value[STATIC_COMPONENT] = true;\n acc[name] = createComponent(value, childComponents, options);\n // @ts-ignore\n value.displayName = prevDisplayName;\n value[STATIC_COMPONENT] = prevStaticComponent;\n return acc;\n }, {});\n },\n context: function (context /*, WrapperComponent*/) {\n // const getterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n\n return {\n ...context,\n // [getterMethod]: this[SELF_GETTER_METHOD],\n ...pick(this, getterMethodNames),\n };\n },\n wrapperProps: function (props, WrapperComponent) {\n if (!WrapperComponent[STATIC_COMPONENT]) return props;\n\n const context = useContext(options.context);\n const getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];\n if (getterMethod) {\n return getterMethod(props);\n }\n return props;\n },\n render: function (render) {\n getterMethodNames.forEach((name) => {\n if (this[name] === undefined) return;\n this[name].index = 0;\n });\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"staticChildren.js"}
1
+ {"version":3,"sources":["../../../src/enhancement/staticChildren.tsx"],"names":["assign","target","source","Object","defineProperties","keys","reduce","descriptors","key","getOwnPropertyDescriptor","getterMethodName","name","getterMethodNameByDisplayName","displayName","displayNames","split","slice","length","join","flatGetterMethodNames","childComponents","parentName","entries","acc","value","Array","isArray","push","STATIC_COMPONENT","Symbol","SELF_GETTER_METHOD","Enhancement","createComponent","options","getterMethodNames","condition","Component","Boolean","init","props","WrapperComponent","getterMethods","selfGetterMethod","logger","warn","getterMethod","childrenProps","getterProps","call","index","Error","prevStaticComponent","prevDisplayName","context","wrapperProps","render","forEach","undefined"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;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,gBAAT,CAA0BC,IAA1B,EAAgC;AAC9B,sBAAaA,IAAb;AACD;;AAED,SAASC,6BAAT,CAAuCC,WAAvC,EAAoD;AAClD,MAAMC,YAAY,GAAGD,WAAW,CAACE,KAAZ,CAAkB,GAAlB,CAArB;AACA,MAAMJ,IAAI,GAAGG,YAAY,CAACE,KAAb,CAAmB,EAAEF,YAAY,CAACG,MAAb,GAAsB,CAAxB,CAAnB,EAA+CC,IAA/C,CAAoD,EAApD,CAAb;AACA,SAAOR,gBAAgB,CAACC,IAAD,CAAvB;AACD;;AAED,SAASQ,qBAAT,CAA+BC,eAA/B,EAAgDC,UAAhD,EAAqE;AACnE,SAAOlB,MAAM,CAACmB,OAAP,CAAeF,eAAf,EAAgCd,MAAhC,CAAiD,UAACiB,GAAD,QAAwB;AAAA;AAAA,QAAjBZ,IAAiB;AAAA,QAAXa,KAAW;;AAC9E,QAAIC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxBD,MAAAA,GAAG,iDAAOA,GAAP,uCAAeJ,qBAAqB,CAACK,KAAK,CAAC,CAAD,CAAN,EAAWb,IAAX,CAApC,EAAH;AACD;;AACDA,IAAAA,IAAI,GAAGU,UAAU,aAAMA,UAAN,SAAmBV,IAAnB,IAA4BA,IAA7C;AACAY,IAAAA,GAAG,CAACI,IAAJ,CAASjB,gBAAgB,CAACC,IAAD,CAAzB;AACA,WAAOY,GAAP;AACD,GAPM,EAOJ,EAPI,CAAP;AAQD;;AAEM,IAAMK,gBAAgB,GAAGC,MAAM,CAAC,kBAAD,CAA/B;;AACP,IAAMC,kBAAkB,GAAGD,MAAM,CAAC,oBAAD,CAAjC;;AAEA,SAASE,WAAT,CAAqBX,eAArB,EAAsCY,eAAtC,EAAuDC,OAAvD,EAAgE;AAC9D,MAAMC,iBAAiB,GAAGf,qBAAqB,CAACC,eAAD,CAA/C;AACA,SAAO;AACLe,IAAAA,SAAS,EAAE,mBAAUC,SAAV,EAAqB;AAC9B,aAAOC,OAAO,CAACD,SAAS,CAACR,gBAAD,CAAT,IAA+BzB,MAAM,CAACE,IAAP,CAAYe,eAAZ,EAA6BH,MAA7D,CAAd;AACD,KAHI;AAILqB,IAAAA,IAAI,EAAE,cAAUC,KAAV,EAAiBC,gBAAjB,EAAmC;AAAA;;AACvC,UAAMC,aAAa,GAAG,sBAAK,IAAL,EAAWP,iBAAX,CAAtB;;AACA,WAAKJ,kBAAL,IAA2B,YAAM;AAC/B,YAAMY,gBAAgB,GAAG9B,6BAA6B,CAAC4B,gBAAgB,CAAC3B,WAAlB,CAAtD;;AACA8B,2BAAOC,IAAP,CACE,IADF,oBAEcF,gBAFd,6DAGEH,KAAK,CAAC,cAAD,CAAL,IAAyBC,gBAAgB,CAAC3B,WAH5C;AAKD,OAPD;;AAQAb,MAAAA,MAAM,CACJ,IADI,EAEJkC,iBAAiB,CAAC5B,MAAlB,CAAyB,UAACiB,GAAD,EAAMZ,IAAN,EAAe;AACtC,YAAMkC,YAAY,GAAGJ,aAAa,CAAC9B,IAAD,CAAlC;AACA,YAAI,CAACkC,YAAL,EAAmB,OAAOtB,GAAP;;AACnBA,QAAAA,GAAG,CAACZ,IAAD,CAAH,GAAY,YAAwB;AAAA,cAAvBmC,aAAuB,uEAAP,EAAO;AAClC,cAAMC,WAAW,GAAGF,YAAY,CAACG,IAAb,CAAkB,KAAlB,EAAwBF,aAAxB,EAAuCvB,GAAG,CAACZ,IAAD,CAAH,CAAUsC,KAAjD,CAApB;AACA1B,UAAAA,GAAG,CAACZ,IAAD,CAAH,CAAUsC,KAAV;AACA,iBAAO,6BAAYH,aAAZ,EAA2BC,WAA3B,CAAP;AACD,SAJD;;AAKAxB,QAAAA,GAAG,CAACZ,IAAD,CAAH,CAAUsC,KAAV,GAAkB,CAAlB;AACA,eAAO1B,GAAP;AACD,OAVD,EAUG,EAVH,CAFI,CAAN;AAcD,KA5BI;AA6BL,cAAQ,iBAAUiB,gBAAV,EAA4B;AAClC,UAAIrC,MAAM,CAACE,IAAP,CAAYe,eAAZ,EAA6BH,MAA7B,IAAuC,CAACuB,gBAAgB,CAAC3B,WAA7D,EAA0E;AACxE,cAAM,IAAIqC,KAAJ,CAAU,8BAAV,CAAN;AACD;;AACD,aAAO/C,MAAM,CAACmB,OAAP,CAAeF,eAAf,EAAgCd,MAAhC,CAAuC,UAACiB,GAAD,SAAwB;AAAA;AAAA,YAAjBZ,IAAiB;AAAA,YAAXa,KAAW;;AACpE,YAAIJ,eAAe,GAAG,EAAtB;;AAEA,YAAIK,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxBJ,UAAAA,eAAe,GAAGI,KAAK,CAAC,CAAD,CAAvB;AACAA,UAAAA,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAb;AACD;;AAED,YAAM2B,mBAAmB,GAAG3B,KAAK,CAACI,gBAAD,CAAjC,CARoE,CASpE;;AACA,YAAMwB,eAAe,GAAG5B,KAAK,CAACX,WAA9B,CAVoE,CAWpE;;AACAW,QAAAA,KAAK,CAACX,WAAN,GAAoB2B,gBAAgB,CAAC3B,WAAjB,GAA+B,GAA/B,GAAqCF,IAAzD;AACAa,QAAAA,KAAK,CAACI,gBAAD,CAAL,GAA0B,IAA1B;AACAL,QAAAA,GAAG,CAACZ,IAAD,CAAH,GAAYqB,eAAe,CAACR,KAAD,EAAQJ,eAAR,EAAyBa,OAAzB,CAA3B,CAdoE,CAepE;;AACAT,QAAAA,KAAK,CAACX,WAAN,GAAoBuC,eAApB;AACA5B,QAAAA,KAAK,CAACI,gBAAD,CAAL,GAA0BuB,mBAA1B;AACA,eAAO5B,GAAP;AACD,OAnBM,EAmBJ,EAnBI,CAAP;AAoBD,KArDI;AAsDL8B,IAAAA,OAAO,EAAE,iBAAUA;AAAQ;AAAlB,MAA0C;AACjD;AAEA,6CACKA,QADL,GAGK,sBAAK,IAAL,EAAWnB,iBAAX,CAHL;AAKD,KA9DI;AA+DLoB,IAAAA,YAAY,EAAE,sBAAUf,KAAV,EAAiBC,gBAAjB,EAAmC;AAC/C,UAAI,CAACA,gBAAgB,CAACZ,gBAAD,CAArB,EAAyC,OAAOW,KAAP;AAEzC,UAAMc,OAAO,GAAG,uBAAWpB,OAAO,CAACoB,OAAnB,CAAhB;AACA,UAAMR,YAAY,GAAGQ,OAAO,CAACzC,6BAA6B,CAAC4B,gBAAgB,CAAC3B,WAAlB,CAA9B,CAA5B;;AACA,UAAIgC,YAAJ,EAAkB;AAChB,eAAOA,YAAY,CAACN,KAAD,CAAnB;AACD;;AACD,aAAOA,KAAP;AACD,KAxEI;AAyELgB,IAAAA,MAAM,EAAE,gBAAUA,OAAV,EAAkB;AAAA;;AACxBrB,MAAAA,iBAAiB,CAACsB,OAAlB,CAA0B,UAAC7C,IAAD,EAAU;AAClC,YAAI,MAAI,CAACA,IAAD,CAAJ,KAAe8C,SAAnB,EAA8B;AAC9B,QAAA,MAAI,CAAC9C,IAAD,CAAJ,CAAWsC,KAAX,GAAmB,CAAnB;AACD,OAHD;AAIA,aAAOM,OAAP;AACD;AA/EI,GAAP;AAiFD;;eAEcxB,W","sourcesContent":["import { useContext } from 'react';\n// @ts-ignore\nimport assignProps from '@semcore/utils/lib/assignProps';\n// @ts-ignore\nimport pick from '@semcore/utils/lib/pick';\n// @ts-ignore\nimport logger from '@semcore/utils/lib/logger';\n\nfunction assign(target, source) {\n return Object.defineProperties(\n target,\n Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {}),\n );\n}\n\nfunction getterMethodName(name) {\n return `get${name}Props`;\n}\n\nfunction getterMethodNameByDisplayName(displayName) {\n const displayNames = displayName.split('.');\n const name = displayNames.slice(-(displayNames.length - 1)).join('');\n return getterMethodName(name);\n}\n\nfunction flatGetterMethodNames(childComponents, parentName?: string) {\n return Object.entries(childComponents).reduce<string[]>((acc, [name, value]) => {\n if (Array.isArray(value)) {\n acc = [...acc, ...flatGetterMethodNames(value[1], name)];\n }\n name = parentName ? `${parentName}${name}` : name;\n acc.push(getterMethodName(name));\n return acc;\n }, []);\n}\n\nexport const STATIC_COMPONENT = Symbol('STATIC_COMPONENT');\nconst SELF_GETTER_METHOD = Symbol('SELF_GETTER_METHOD');\n\nfunction Enhancement(childComponents, createComponent, options) {\n const getterMethodNames = flatGetterMethodNames(childComponents);\n return {\n condition: function (Component) {\n return Boolean(Component[STATIC_COMPONENT] || Object.keys(childComponents).length);\n },\n init: function (props, WrapperComponent) {\n const getterMethods = pick(this, getterMethodNames);\n this[SELF_GETTER_METHOD] = () => {\n const selfGetterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n logger.warn(\n true,\n `Getter \\`${selfGetterMethod}\\` can't be fired as it is a getter of static component`,\n props['data-ui-name'] || WrapperComponent.displayName,\n );\n };\n assign(\n this,\n getterMethodNames.reduce((acc, name) => {\n const getterMethod = getterMethods[name];\n if (!getterMethod) return acc;\n acc[name] = (childrenProps = {}) => {\n const getterProps = getterMethod.call(this, childrenProps, acc[name].index);\n acc[name].index++;\n return assignProps(childrenProps, getterProps);\n };\n acc[name].index = 0;\n return acc;\n }, {}),\n );\n },\n static: function (WrapperComponent) {\n if (Object.keys(childComponents).length && !WrapperComponent.displayName) {\n throw new Error('\"displayName\" is not defined');\n }\n return Object.entries(childComponents).reduce((acc, [name, value]) => {\n let childComponents = {};\n\n if (Array.isArray(value)) {\n childComponents = value[1];\n value = value[0];\n }\n\n const prevStaticComponent = value[STATIC_COMPONENT];\n // @ts-ignore\n const prevDisplayName = value.displayName;\n // @ts-ignore\n value.displayName = WrapperComponent.displayName + '.' + name;\n value[STATIC_COMPONENT] = true;\n acc[name] = createComponent(value, childComponents, options);\n // @ts-ignore\n value.displayName = prevDisplayName;\n value[STATIC_COMPONENT] = prevStaticComponent;\n return acc;\n }, {});\n },\n context: function (context /*, WrapperComponent*/) {\n // const getterMethod = getterMethodNameByDisplayName(WrapperComponent.displayName);\n\n return {\n ...context,\n // [getterMethod]: this[SELF_GETTER_METHOD],\n ...pick(this, getterMethodNames),\n };\n },\n wrapperProps: function (props, WrapperComponent) {\n if (!WrapperComponent[STATIC_COMPONENT]) return props;\n\n const context = useContext(options.context);\n const getterMethod = context[getterMethodNameByDisplayName(WrapperComponent.displayName)];\n if (getterMethod) {\n return getterMethod(props);\n }\n return props;\n },\n render: function (render) {\n getterMethodNames.forEach((name) => {\n if (this[name] === undefined) return;\n this[name].index = 0;\n });\n return render;\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"staticChildren.js"}
@@ -17,9 +17,12 @@ var _styled = require("../styled");
17
17
 
18
18
  var _staticChildren = require("./staticChildren");
19
19
 
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
20
+ var _excluded = ["_styles", "styles"],
21
+ _excluded2 = ["styles"];
21
22
 
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
26
 
24
27
  var STYLES_CONTEXT = Symbol('STYLES_CONTEXT');
25
28
  exports.STYLES_CONTEXT = STYLES_CONTEXT;
@@ -47,14 +50,14 @@ function Enhancement(childComponents, Context) {
47
50
  asProps: function asProps(_ref) {
48
51
  var _styles = _ref._styles,
49
52
  styles = _ref.styles,
50
- props = (0, _objectWithoutProperties2["default"])(_ref, ["_styles", "styles"]);
53
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
51
54
  return _objectSpread(_objectSpread({}, props), {}, {
52
55
  styles: styles || this[STYLES_SELF]
53
56
  });
54
57
  },
55
58
  wrapperProps: function wrapperProps(_ref2) {
56
59
  var styles = _ref2.styles,
57
- props = (0, _objectWithoutProperties2["default"])(_ref2, ["styles"]);
60
+ props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
58
61
  var context = (0, _react.useContext)(Context);
59
62
  return _objectSpread(_objectSpread({}, props), {}, {
60
63
  _styles: styles,
@@ -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 // для оптимизации, если нет детей, то не надо создавать контекст\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"}
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 // для оптимизации, если нет детей, то не надо создавать контекст\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"}
@@ -23,9 +23,9 @@ var _assignProps = require("@semcore/utils/lib/assignProps");
23
23
 
24
24
  var _capitalizeFirstLetter = _interopRequireDefault(require("@semcore/utils/lib/capitalizeFirstLetter"));
25
25
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
27
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
29
 
30
30
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
31
31
 
@@ -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: предупреждение из-за циклических вызовов\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 возвращать только нужные свойства\n const [uncontrolledProps] = uncontrolled(this, props, this.uncontrolledProps());\n return uncontrolledProps;\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"uncontrolledProps.js"}
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: предупреждение из-за циклических вызовов\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 возвращать только нужные свойства\n const [uncontrolledProps] = uncontrolled(this, props, this.uncontrolledProps());\n return uncontrolledProps;\n },\n };\n}\n\nexport default Enhancement;\n"],"file":"uncontrolledProps.js"}