@skbkontur/react-ui 3.9.2 → 3.9.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 (81) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/Button/Button.d.ts +3 -0
  3. package/cjs/components/Button/Button.js +8 -1
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Checkbox/Checkbox.d.ts +0 -1
  6. package/cjs/components/Checkbox/Checkbox.js +21 -18
  7. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  8. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +2 -1
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +29 -1
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/Gapped/Gapped.d.ts +1 -0
  12. package/cjs/components/Gapped/Gapped.js +14 -9
  13. package/cjs/components/Gapped/Gapped.js.map +1 -1
  14. package/cjs/components/Input/Input.d.ts +4 -0
  15. package/cjs/components/Input/Input.js +9 -0
  16. package/cjs/components/Input/Input.js.map +1 -1
  17. package/cjs/components/Loader/Loader.js +2 -1
  18. package/cjs/components/Loader/Loader.js.map +1 -1
  19. package/cjs/components/Radio/Radio.js +4 -1
  20. package/cjs/components/Radio/Radio.js.map +1 -1
  21. package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -10
  22. package/cjs/components/RadioGroup/RadioGroup.js +10 -11
  23. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  24. package/cjs/components/Select/Select.js +3 -2
  25. package/cjs/components/Select/Select.js.map +1 -1
  26. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  27. package/cjs/components/SidePage/SidePage.js +3 -1
  28. package/cjs/components/SidePage/SidePage.js.map +1 -1
  29. package/cjs/internal/Popup/Popup.js +5 -1
  30. package/cjs/internal/Popup/Popup.js.map +1 -1
  31. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  32. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +20 -0
  33. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  34. package/cjs/lib/getDisplayName.d.ts +3 -0
  35. package/cjs/lib/getDisplayName.js +9 -0
  36. package/cjs/lib/getDisplayName.js.map +1 -0
  37. package/cjs/lib/withClassWrapper.d.ts +71 -0
  38. package/cjs/lib/withClassWrapper.js +59 -0
  39. package/cjs/lib/withClassWrapper.js.map +1 -0
  40. package/components/Button/Button/Button.js +10 -0
  41. package/components/Button/Button/Button.js.map +1 -1
  42. package/components/Button/Button.d.ts +3 -0
  43. package/components/Checkbox/Checkbox/Checkbox.js +18 -20
  44. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  45. package/components/Checkbox/Checkbox.d.ts +0 -1
  46. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +34 -1
  47. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  48. package/components/CurrencyInput/CurrencyInput.d.ts +2 -1
  49. package/components/Gapped/Gapped/Gapped.js +9 -10
  50. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  51. package/components/Gapped/Gapped.d.ts +1 -0
  52. package/components/Input/Input/Input.js +8 -0
  53. package/components/Input/Input/Input.js.map +1 -1
  54. package/components/Input/Input.d.ts +4 -0
  55. package/components/Loader/Loader/Loader.js +3 -2
  56. package/components/Loader/Loader/Loader.js.map +1 -1
  57. package/components/Radio/Radio/Radio.js +4 -1
  58. package/components/Radio/Radio/Radio.js.map +1 -1
  59. package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -0
  60. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  61. package/components/RadioGroup/RadioGroup.d.ts +9 -10
  62. package/components/Select/Select/Select.js +6 -1
  63. package/components/Select/Select/Select.js.map +1 -1
  64. package/components/SidePage/SidePage/SidePage.js +2 -0
  65. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  66. package/components/SidePage/SidePage.d.ts +1 -0
  67. package/internal/Popup/Popup/Popup.js +6 -1
  68. package/internal/Popup/Popup/Popup.js.map +1 -1
  69. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +19 -0
  70. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  71. package/lib/events/fixFirefoxModifiedClickOnLabel/package.json +6 -0
  72. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  73. package/lib/getDisplayName/getDisplayName.js +3 -0
  74. package/lib/getDisplayName/getDisplayName.js.map +1 -0
  75. package/lib/getDisplayName/package.json +6 -0
  76. package/lib/getDisplayName.d.ts +3 -0
  77. package/lib/withClassWrapper/package.json +6 -0
  78. package/lib/withClassWrapper/withClassWrapper.js +70 -0
  79. package/lib/withClassWrapper/withClassWrapper.js.map +1 -0
  80. package/lib/withClassWrapper.d.ts +71 -0
  81. package/package.json +4 -2
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { ReactUIComponentWithRef } from './forwardRefAndName';
3
+ export declare function getDisplayName<P>(RC: React.ComponentType<P> | React.FunctionComponent<P> | ReactUIComponentWithRef<any, P>): string;
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../cjs/lib/withClassWrapper.js",
3
+ "module": "withClassWrapper",
4
+ "types": "../withClassWrapper.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,70 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
+ import React from 'react';
4
+ import { getDisplayName } from "../getDisplayName";
5
+
6
+ var removePostfix = function removePostfix(word, postfixRegex) {
7
+ var regexContent = postfixRegex.source.replace(/\$$/, '');
8
+ var isCorrectPostfix = postfixRegex.test(word);
9
+
10
+ if (!isCorrectPostfix) {
11
+ throw new Error("Component's displayName property must end with '" + regexContent + "' in order to be wrapped in withClassWrapper HOC");
12
+ }
13
+
14
+ return word.replace(postfixRegex, '');
15
+ };
16
+ /**
17
+ * HOC for moving from Class to Functional components.
18
+ *
19
+ * Used to remove distinctions between Class and Functional refs.
20
+ *
21
+ * @param RFC Functional component wrapped in forwardRefAndName.
22
+ * @returns Class component that wraps Functional component.
23
+ */
24
+
25
+
26
+ export function withClassWrapper(RFC) {
27
+ var _class, _temp;
28
+
29
+ var fullName = getDisplayName(RFC);
30
+ var nameWithoutPostfix = removePostfix(fullName, /FC$/);
31
+ return _temp = _class = /*#__PURE__*/function (_React$Component) {
32
+ _inheritsLoose(ClassWrapper, _React$Component);
33
+
34
+ function ClassWrapper() {
35
+ var _this;
36
+
37
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
38
+ args[_key] = arguments[_key];
39
+ }
40
+
41
+ _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
42
+ _this.instancePropertiesRef = /*#__PURE__*/React.createRef();
43
+ return _this;
44
+ }
45
+
46
+ var _proto = ClassWrapper.prototype;
47
+
48
+ _proto.componentDidMount = function componentDidMount() {
49
+ if (this.instancePropertiesRef.current) {
50
+ Object.defineProperties(this, Object.getOwnPropertyDescriptors(this.instancePropertiesRef.current));
51
+ }
52
+ };
53
+
54
+ _proto.render = function render() {
55
+ return (
56
+ /*#__PURE__*/
57
+ // TypeScript is not able to understand
58
+ // that both types (class one and functional one)
59
+ // have ref at the build stage.
60
+ // @ts-ignore
61
+ React.createElement(ClassWrapper.FC, _extends({
62
+ // Returns methods defined in useImperativeHandle.
63
+ instanceRef: this.instancePropertiesRef
64
+ }, this.props))
65
+ );
66
+ };
67
+
68
+ return ClassWrapper;
69
+ }(React.Component), _class.__KONTUR_REACT_UI__ = nameWithoutPostfix, _class.displayName = nameWithoutPostfix, _class.FC = RFC, _temp;
70
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["withClassWrapper.tsx"],"names":["React","getDisplayName","removePostfix","word","postfixRegex","regexContent","source","replace","isCorrectPostfix","test","Error","withClassWrapper","RFC","fullName","nameWithoutPostfix","instancePropertiesRef","createRef","componentDidMount","current","Object","defineProperties","getOwnPropertyDescriptors","render","props","Component","__KONTUR_REACT_UI__","displayName","FC"],"mappings":"gIAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAGA,SAASC,cAAT,QAA+B,kBAA/B;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,IAAD,EAAeC,YAAf,EAAwC;AAC5D,MAAMC,YAAY,GAAGD,YAAY,CAACE,MAAb,CAAoBC,OAApB,CAA4B,KAA5B,EAAmC,EAAnC,CAArB;;AAEA,MAAMC,gBAAgB,GAAGJ,YAAY,CAACK,IAAb,CAAkBN,IAAlB,CAAzB;AACA,MAAI,CAACK,gBAAL,EAAuB;AACrB,UAAM,IAAIE,KAAJ;AAC+CL,IAAAA,YAD/C,sDAAN;;AAGD;;AAED,SAAOF,IAAI,CAACI,OAAL,CAAaH,YAAb,EAA2B,EAA3B,CAAP;AACD,CAXD;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,gBAAT,CAAgCC,GAAhC,EAAoE;AACzE,MAAMC,QAAQ,GAAGZ,cAAc,CAACW,GAAD,CAA/B;AACA,MAAME,kBAAkB,GAAGZ,aAAa,CAACW,QAAD,EAAW,KAAX,CAAxC;;AAEA;AACSE,MAAAA,qBADT,gBACiCf,KAAK,CAACgB,SAAN,EADjC;;AAGEC,IAAAA,iBAHF,GAGE,6BAAoB;AAClB,UAAI,KAAKF,qBAAL,CAA2BG,OAA/B,EAAwC;AACtCC,QAAAA,MAAM,CAACC,gBAAP,CAAwB,IAAxB,EAA8BD,MAAM,CAACE,yBAAP,CAAiC,KAAKN,qBAAL,CAA2BG,OAA5D,CAA9B;AACD;AACF,KAPH;;;;;;;AAcEI,IAAAA,MAdF,GAcE,kBAAS;AACP;AACE;AACA;AACA;AACA;AACA,4BAAC,YAAD,CAAc,EAAd;AACE;AACA,UAAA,WAAW,EAAE,KAAKP,qBAFpB;AAGM,aAAKQ,KAHX,EALF;;;AAWD,KA1BH,uBAAkCvB,KAAK,CAACwB,SAAxC,UASgBC,mBAThB,GASsCX,kBATtC,SAUgBY,WAVhB,GAU8BZ,kBAV9B,SAYgBa,EAZhB,GAYqBf,GAZrB;;AA4BD","sourcesContent":["import React from 'react';\n\nimport { ReactUIComponentWithRef } from './forwardRefAndName';\nimport { getDisplayName } from './getDisplayName';\n\nconst removePostfix = (word: string, postfixRegex: RegExp) => {\n const regexContent = postfixRegex.source.replace(/\\$$/, '');\n\n const isCorrectPostfix = postfixRegex.test(word);\n if (!isCorrectPostfix) {\n throw new Error(\n `Component's displayName property must end with '${regexContent}' in order to be wrapped in withClassWrapper HOC`,\n );\n }\n\n return word.replace(postfixRegex, '');\n};\n\n/**\n * HOC for moving from Class to Functional components.\n *\n * Used to remove distinctions between Class and Functional refs.\n *\n * @param RFC Functional component wrapped in forwardRefAndName.\n * @returns Class component that wraps Functional component.\n */\nexport function withClassWrapper<T, P>(RFC: ReactUIComponentWithRef<T, P>) {\n const fullName = getDisplayName(RFC);\n const nameWithoutPostfix = removePostfix(fullName, /FC$/);\n\n return class ClassWrapper extends React.Component<P> {\n public instancePropertiesRef = React.createRef<T>();\n\n componentDidMount() {\n if (this.instancePropertiesRef.current) {\n Object.defineProperties(this, Object.getOwnPropertyDescriptors(this.instancePropertiesRef.current));\n }\n }\n\n public static __KONTUR_REACT_UI__ = nameWithoutPostfix;\n public static displayName = nameWithoutPostfix;\n\n public static FC = RFC;\n\n render() {\n return (\n // TypeScript is not able to understand\n // that both types (class one and functional one)\n // have ref at the build stage.\n // @ts-ignore\n <ClassWrapper.FC\n // Returns methods defined in useImperativeHandle.\n instanceRef={this.instancePropertiesRef}\n {...this.props}\n />\n );\n }\n };\n}\n\nexport interface InstanceRefType<T> {\n instanceRef: React.MutableRefObject<T>;\n}\n"]}
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import { ReactUIComponentWithRef } from './forwardRefAndName';
3
+ /**
4
+ * HOC for moving from Class to Functional components.
5
+ *
6
+ * Used to remove distinctions between Class and Functional refs.
7
+ *
8
+ * @param RFC Functional component wrapped in forwardRefAndName.
9
+ * @returns Class component that wraps Functional component.
10
+ */
11
+ export declare function withClassWrapper<T, P>(RFC: ReactUIComponentWithRef<T, P>): {
12
+ new (props: P | Readonly<P>): {
13
+ instancePropertiesRef: React.RefObject<T>;
14
+ componentDidMount(): void;
15
+ render(): JSX.Element;
16
+ context: any;
17
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<P>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
18
+ forceUpdate(callback?: (() => void) | undefined): void;
19
+ readonly props: Readonly<P> & Readonly<{
20
+ children?: React.ReactNode;
21
+ }>;
22
+ state: Readonly<{}>;
23
+ refs: {
24
+ [key: string]: React.ReactInstance;
25
+ };
26
+ shouldComponentUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): boolean;
27
+ componentWillUnmount?(): void;
28
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
29
+ getSnapshotBeforeUpdate?(prevProps: Readonly<P>, prevState: Readonly<{}>): any;
30
+ componentDidUpdate?(prevProps: Readonly<P>, prevState: Readonly<{}>, snapshot?: any): void;
31
+ componentWillMount?(): void;
32
+ UNSAFE_componentWillMount?(): void;
33
+ componentWillReceiveProps?(nextProps: Readonly<P>, nextContext: any): void;
34
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<P>, nextContext: any): void;
35
+ componentWillUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): void;
36
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): void;
37
+ };
38
+ new (props: P, context: any): {
39
+ instancePropertiesRef: React.RefObject<T>;
40
+ componentDidMount(): void;
41
+ render(): JSX.Element;
42
+ context: any;
43
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<P>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
44
+ forceUpdate(callback?: (() => void) | undefined): void;
45
+ readonly props: Readonly<P> & Readonly<{
46
+ children?: React.ReactNode;
47
+ }>;
48
+ state: Readonly<{}>;
49
+ refs: {
50
+ [key: string]: React.ReactInstance;
51
+ };
52
+ shouldComponentUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): boolean;
53
+ componentWillUnmount?(): void;
54
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
55
+ getSnapshotBeforeUpdate?(prevProps: Readonly<P>, prevState: Readonly<{}>): any;
56
+ componentDidUpdate?(prevProps: Readonly<P>, prevState: Readonly<{}>, snapshot?: any): void;
57
+ componentWillMount?(): void;
58
+ UNSAFE_componentWillMount?(): void;
59
+ componentWillReceiveProps?(nextProps: Readonly<P>, nextContext: any): void;
60
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<P>, nextContext: any): void;
61
+ componentWillUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): void;
62
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<P>, nextState: Readonly<{}>, nextContext: any): void;
63
+ };
64
+ __KONTUR_REACT_UI__: string;
65
+ displayName: string;
66
+ FC: ReactUIComponentWithRef<T, P>;
67
+ contextType?: React.Context<any> | undefined;
68
+ };
69
+ export interface InstanceRefType<T> {
70
+ instanceRef: React.MutableRefObject<T>;
71
+ }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "3.9.2",
3
+ "version": "3.9.4",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",
7
7
  "sideEffects": false,
8
- "homepage": "https://tech.skbkontur.ru/react-ui/3.9.2/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/3.9.4/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"
@@ -94,6 +94,7 @@
94
94
  "@types/react-transition-group": "^4.2.3",
95
95
  "@types/shallowequal": "^1.1.1",
96
96
  "@types/warning": "^3.0.0",
97
+ "axios": "^0.24.0",
97
98
  "babel-jest": "^26.6.3",
98
99
  "babel-loader": "^8.2.2",
99
100
  "chalk": "4.1.0",
@@ -102,6 +103,7 @@
102
103
  "creevey": "0.7.31",
103
104
  "cross-env": "^7.0.3",
104
105
  "css-loader": "5.2.0",
106
+ "dotenv": "^10.0.0",
105
107
  "dts-css-modules-loader": "1.2.1",
106
108
  "enzyme": "^3.11.0",
107
109
  "enzyme-adapter-react-16": "^1.15.6",