@prom-ui/core 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/Avatar/cjs/index.development.js +17 -6
  2. package/Avatar/cjs/index.development.v2.js +17 -6
  3. package/Avatar/cjs/index.production.js +1 -1
  4. package/Avatar/cjs/index.production.v2.js +1 -1
  5. package/Avatar/cjs/style.development.css +1 -1
  6. package/Avatar/cjs/style.development.v2.css +1 -1
  7. package/Avatar/cjs/style.production.css +1 -1
  8. package/Avatar/cjs/style.production.v2.css +1 -1
  9. package/Avatar/index.d.ts +2 -0
  10. package/Avatar/package.json +1 -1
  11. package/Backdrop/package.json +1 -1
  12. package/Body/package.json +1 -1
  13. package/BodyContext/package.json +1 -1
  14. package/BodyProvider/package.json +1 -1
  15. package/BodyScrollLock/package.json +1 -1
  16. package/Box/package.json +1 -1
  17. package/Button/package.json +1 -1
  18. package/ButtonPageUp/package.json +1 -1
  19. package/Checkbox/package.json +1 -1
  20. package/Flex/package.json +1 -1
  21. package/Grid/package.json +1 -1
  22. package/Icon/package.json +1 -1
  23. package/Image/package.json +1 -1
  24. package/ImageEmoji/package.json +1 -1
  25. package/Input/package.json +1 -1
  26. package/InputField/package.json +1 -1
  27. package/KeyPress/package.json +1 -1
  28. package/Line/package.json +1 -1
  29. package/Link/package.json +1 -1
  30. package/List/package.json +1 -1
  31. package/Media/package.json +1 -1
  32. package/Modal/cjs/index.development.js +231 -0
  33. package/Modal/cjs/index.development.v2.js +231 -0
  34. package/Modal/cjs/index.production.js +1 -0
  35. package/Modal/cjs/index.production.v2.js +1 -0
  36. package/Modal/cjs/style.development.css +1 -0
  37. package/Modal/cjs/style.development.v2.css +1 -0
  38. package/Modal/cjs/style.production.css +1 -0
  39. package/Modal/cjs/style.production.v2.css +1 -0
  40. package/Modal/index.d.ts +28 -0
  41. package/Modal/index.js +7 -0
  42. package/Modal/index.v2.js +7 -0
  43. package/Modal/package.json +13 -0
  44. package/OutsideClick/package.json +1 -1
  45. package/Overlay/package.json +1 -1
  46. package/PhotoGallery/cjs/index.development.js +89 -18
  47. package/PhotoGallery/cjs/index.development.v2.js +89 -18
  48. package/PhotoGallery/cjs/index.production.js +1 -1
  49. package/PhotoGallery/cjs/index.production.v2.js +1 -1
  50. package/PhotoGallery/components/Header.d.ts +2 -0
  51. package/PhotoGallery/components/MainPhotos.d.ts +2 -1
  52. package/PhotoGallery/components/MainPhotosImage.d.ts +2 -0
  53. package/PhotoGallery/components/PreviewPhotos.d.ts +2 -1
  54. package/PhotoGallery/index.d.ts +3 -0
  55. package/PhotoGallery/package.json +1 -1
  56. package/Picture/package.json +1 -1
  57. package/Portal/package.json +1 -1
  58. package/QRCode/package.json +1 -1
  59. package/Rating/package.json +1 -1
  60. package/RatingSelect/package.json +1 -1
  61. package/SafeQuery/package.json +1 -1
  62. package/Scroll/package.json +1 -1
  63. package/ScrollControls/package.json +1 -1
  64. package/SimpleSlider/package.json +1 -1
  65. package/Skeleton/package.json +1 -1
  66. package/Spinner/package.json +1 -1
  67. package/Text/package.json +1 -1
  68. package/TextEmoji/package.json +1 -1
  69. package/Tooltip/package.json +1 -1
  70. package/Tumbler/package.json +1 -1
  71. package/package.json +2 -2
  72. package/useBodyTTag/package.json +1 -1
  73. package/useBrowserLayoutEffect/package.json +1 -1
  74. package/useDebounce/package.json +1 -1
  75. package/useForwardRef/package.json +1 -1
  76. package/useId/package.json +1 -1
  77. package/useIsMounted/package.json +1 -1
  78. package/useKeyPress/package.json +1 -1
  79. package/useMedia/package.json +1 -1
  80. package/useOutsideClick/package.json +1 -1
  81. package/usePortal/package.json +1 -1
  82. package/useScrollPosition/package.json +1 -1
@@ -0,0 +1,231 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var reactTransitionGroup = require('react-transition-group');
7
+ var classNames = require('classnames');
8
+ var Backdrop = require('@prom-ui/core/Backdrop');
9
+ var Button = require('@prom-ui/core/Button');
10
+ var Icon = require('@prom-ui/core/Icon');
11
+ var KeyPress = require('@prom-ui/core/KeyPress');
12
+ var Portal = require('@prom-ui/core/Portal');
13
+ var useBodyTTag = require('@prom-ui/core/useBodyTTag');
14
+ var Close = require('@prom-ui/icons/Close');
15
+
16
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
17
+
18
+ function _interopNamespaceCompat(e) {
19
+ if (e && typeof e === 'object' && 'default' in e) return e;
20
+ var n = Object.create(null);
21
+ if (e) {
22
+ Object.keys(e).forEach(function (k) {
23
+ if (k !== 'default') {
24
+ var d = Object.getOwnPropertyDescriptor(e, k);
25
+ Object.defineProperty(n, k, d.get ? d : {
26
+ enumerable: true,
27
+ get: function () { return e[k]; }
28
+ });
29
+ }
30
+ });
31
+ }
32
+ n.default = e;
33
+ return Object.freeze(n);
34
+ }
35
+
36
+ var React__namespace = /*#__PURE__*/_interopNamespaceCompat(React);
37
+ var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
38
+
39
+ function ownKeys(object, enumerableOnly) {
40
+ var keys = Object.keys(object);
41
+ if (Object.getOwnPropertySymbols) {
42
+ var symbols = Object.getOwnPropertySymbols(object);
43
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
44
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
45
+ })), keys.push.apply(keys, symbols);
46
+ }
47
+ return keys;
48
+ }
49
+ function _objectSpread2(target) {
50
+ for (var i = 1; i < arguments.length; i++) {
51
+ var source = null != arguments[i] ? arguments[i] : {};
52
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
53
+ _defineProperty(target, key, source[key]);
54
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
55
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
56
+ });
57
+ }
58
+ return target;
59
+ }
60
+ function _defineProperty(obj, key, value) {
61
+ key = _toPropertyKey(key);
62
+ if (key in obj) {
63
+ Object.defineProperty(obj, key, {
64
+ value: value,
65
+ enumerable: true,
66
+ configurable: true,
67
+ writable: true
68
+ });
69
+ } else {
70
+ obj[key] = value;
71
+ }
72
+ return obj;
73
+ }
74
+ function _extends() {
75
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
76
+ for (var i = 1; i < arguments.length; i++) {
77
+ var source = arguments[i];
78
+ for (var key in source) {
79
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
80
+ target[key] = source[key];
81
+ }
82
+ }
83
+ }
84
+ return target;
85
+ };
86
+ return _extends.apply(this, arguments);
87
+ }
88
+ function _objectWithoutPropertiesLoose(source, excluded) {
89
+ if (source == null) return {};
90
+ var target = {};
91
+ var sourceKeys = Object.keys(source);
92
+ var key, i;
93
+ for (i = 0; i < sourceKeys.length; i++) {
94
+ key = sourceKeys[i];
95
+ if (excluded.indexOf(key) >= 0) continue;
96
+ target[key] = source[key];
97
+ }
98
+ return target;
99
+ }
100
+ function _objectWithoutProperties(source, excluded) {
101
+ if (source == null) return {};
102
+ var target = _objectWithoutPropertiesLoose(source, excluded);
103
+ var key, i;
104
+ if (Object.getOwnPropertySymbols) {
105
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
106
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
107
+ key = sourceSymbolKeys[i];
108
+ if (excluded.indexOf(key) >= 0) continue;
109
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
110
+ target[key] = source[key];
111
+ }
112
+ }
113
+ return target;
114
+ }
115
+ function _taggedTemplateLiteral(strings, raw) {
116
+ if (!raw) {
117
+ raw = strings.slice(0);
118
+ }
119
+ return Object.freeze(Object.defineProperties(strings, {
120
+ raw: {
121
+ value: Object.freeze(raw)
122
+ }
123
+ }));
124
+ }
125
+ function _toPrimitive(input, hint) {
126
+ if (typeof input !== "object" || input === null) return input;
127
+ var prim = input[Symbol.toPrimitive];
128
+ if (prim !== undefined) {
129
+ var res = prim.call(input, hint || "default");
130
+ if (typeof res !== "object") return res;
131
+ throw new TypeError("@@toPrimitive must return a primitive value.");
132
+ }
133
+ return (hint === "string" ? String : Number)(input);
134
+ }
135
+ function _toPropertyKey(arg) {
136
+ var key = _toPrimitive(arg, "string");
137
+ return typeof key === "symbol" ? key : String(key);
138
+ }
139
+
140
+ var css = {"root":"Modal__root___9vQ1b","closeButton":"Modal__closeButton___5HA1l","rootContent":"Modal__rootContent___OXp7s","enter":"Modal__enter___JQ0Kx","exit":"Modal__exit___llwRD","enterActive":"Modal__enterActive___p-g77","exitActive":"Modal__exitActive___mioMB"};
141
+
142
+ var _templateObject;
143
+ var _excluded = ["isOpen", "isRenderPortal", "isBodyScrollLock", "isShowCloseButton", "zIndex", "width", "height", "padding", "onClose", "className", "style", "children"];
144
+ var Modal = function Modal(_ref) {
145
+ var _ref$isOpen = _ref.isOpen,
146
+ isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
147
+ _ref$isRenderPortal = _ref.isRenderPortal,
148
+ isRenderPortal = _ref$isRenderPortal === void 0 ? true : _ref$isRenderPortal,
149
+ _ref$isBodyScrollLock = _ref.isBodyScrollLock,
150
+ isBodyScrollLock = _ref$isBodyScrollLock === void 0 ? true : _ref$isBodyScrollLock,
151
+ _ref$isShowCloseButto = _ref.isShowCloseButton,
152
+ isShowCloseButton = _ref$isShowCloseButto === void 0 ? true : _ref$isShowCloseButto,
153
+ _ref$zIndex = _ref.zIndex,
154
+ zIndex = _ref$zIndex === void 0 ? 5000 : _ref$zIndex,
155
+ _ref$width = _ref.width,
156
+ width = _ref$width === void 0 ? 'auto' : _ref$width,
157
+ _ref$height = _ref.height,
158
+ height = _ref$height === void 0 ? 'auto' : _ref$height,
159
+ _ref$padding = _ref.padding,
160
+ padding = _ref$padding === void 0 ? 36 : _ref$padding,
161
+ onClose = _ref.onClose,
162
+ className = _ref.className,
163
+ style = _ref.style,
164
+ children = _ref.children,
165
+ props = _objectWithoutProperties(_ref, _excluded);
166
+ var _useBodyTTag = useBodyTTag.useBodyTTag(),
167
+ t = _useBodyTTag.t;
168
+ var onClickOutside = function onClickOutside(e) {
169
+ if (e.target === e.currentTarget) {
170
+ onClose(e);
171
+ }
172
+ };
173
+ return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Backdrop.Backdrop, {
174
+ isOpen: isOpen,
175
+ zIndex: zIndex,
176
+ isRenderPortal: isRenderPortal,
177
+ isBodyScrollLock: isBodyScrollLock
178
+ }), /*#__PURE__*/React__namespace.createElement(reactTransitionGroup.CSSTransition, {
179
+ "in": isOpen,
180
+ timeout: 240,
181
+ classNames: css,
182
+ unmountOnExit: true
183
+ }, /*#__PURE__*/React__namespace.createElement(Portal.Portal, {
184
+ isActive: isRenderPortal
185
+ }, /*#__PURE__*/React__namespace.createElement(KeyPress.KeyPress, {
186
+ code: "Escape",
187
+ onKeyDown: onClose
188
+ }), /*#__PURE__*/React__namespace.createElement("div", {
189
+ className: css.root,
190
+ role: "dialog",
191
+ "aria-modal": true,
192
+ "aria-labelledby": undefined,
193
+ style: {
194
+ zIndex: zIndex
195
+ },
196
+ onClick: onClickOutside,
197
+ "data-qaid": 'modal' ,
198
+ "data-testid": 'modal'
199
+ }, /*#__PURE__*/React__namespace.createElement("div", _extends({
200
+ className: classNames__default.default(css.rootContent, className),
201
+ style: _objectSpread2({
202
+ width: width,
203
+ height: height,
204
+ padding: padding
205
+ }, style)
206
+ }, props, {
207
+ "data-qaid": "modal_content",
208
+ "data-testid": "modal_content"
209
+ }), children, isShowCloseButton && /*#__PURE__*/React__namespace.createElement("div", {
210
+ className: css.closeButton
211
+ }, /*#__PURE__*/React__namespace.createElement(Button.Button, {
212
+ "button-theme": "black-inherit",
213
+ "button-padding": "xxs",
214
+ type: "button",
215
+ onClick: onClose,
216
+ "aria-label": t(_templateObject || (_templateObject = _taggedTemplateLiteral(["\u0417\u0430\u043A\u0440\u044B\u0442\u044C"]))),
217
+ "data-qaid": "modal_close_button",
218
+ "data-testid": "modal_close_button"
219
+ }, /*#__PURE__*/React__namespace.createElement(Icon.Icon, {
220
+ "icon-as": Close.SvgClose,
221
+ style: {
222
+ width: 24,
223
+ height: 24
224
+ }
225
+ }))))))));
226
+ };
227
+ Modal.displayName = 'Modal';
228
+
229
+ exports.Modal = Modal;
230
+
231
+ require('./style.development.v2.css');
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react-transition-group"),r=require("classnames"),o=require("@prom-ui/core/Backdrop"),n=require("@prom-ui/core/Button"),i=require("@prom-ui/core/Icon"),a=require("@prom-ui/core/KeyPress"),c=require("@prom-ui/core/Portal"),l=require("@prom-ui/core/useBodyTTag"),u=require("@prom-ui/icons/Close");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function d(e){if(e&&"object"==typeof e&&"default"in e)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var p=d(e),f=s(r);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function y(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},O.apply(this,arguments)}function v(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var g,j={root:"LXzJW",closeButton:"IfZSD",rootContent:"p62nO",enter:"CYsVE",exit:"-sfQK",enterActive:"Q3lip",exitActive:"_2XLH4"},h=["isOpen","isRenderPortal","isBodyScrollLock","isShowCloseButton","zIndex","width","height","padding","onClose","className","style","children"],P=function(e){var r,s,d=e.isOpen,b=void 0!==d&&d,y=e.isRenderPortal,P=void 0===y||y,w=e.isBodyScrollLock,E=void 0===w||w,S=e.isShowCloseButton,q=void 0===S||S,x=e.zIndex,B=void 0===x?5e3:x,C=e.width,k=void 0===C?"auto":C,_=e.height,z=void 0===_?"auto":_,I=e.padding,N=void 0===I?36:I,D=e.onClose,T=e.className,L=e.style,K=e.children,A=v(e,h),M=l.useBodyTTag().t;return p.createElement(p.Fragment,null,p.createElement(o.Backdrop,{isOpen:b,zIndex:B,isRenderPortal:P,isBodyScrollLock:E}),p.createElement(t.CSSTransition,{in:b,timeout:240,classNames:j,unmountOnExit:!0},p.createElement(c.Portal,{isActive:P},p.createElement(a.KeyPress,{code:"Escape",onKeyDown:D}),p.createElement("div",{className:j.root,role:"dialog","aria-modal":!0,"aria-labelledby":void 0,style:{zIndex:B},onClick:function(e){e.target===e.currentTarget&&D(e)},"data-qaid":"modal","data-testid":"modal"},p.createElement("div",O({className:f.default(j.rootContent,T),style:m({width:k,height:z,padding:N},L)},A,{"data-qaid":"modal_content","data-testid":"modal_content"}),K,q&&p.createElement("div",{className:j.closeButton},p.createElement(n.Button,{"button-theme":"black-inherit","button-padding":"xxs",type:"button",onClick:D,"aria-label":M(g||(r=["Закрыть"],s||(s=r.slice(0)),g=Object.freeze(Object.defineProperties(r,{raw:{value:Object.freeze(s)}})))),"data-qaid":"modal_close_button","data-testid":"modal_close_button"},p.createElement(i.Icon,{"icon-as":u.SvgClose,style:{width:24,height:24}}))))))))};P.displayName="Modal",exports.Modal=P,require("./style.production.css");
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react-transition-group"),r=require("classnames"),o=require("@prom-ui/core/Backdrop"),n=require("@prom-ui/core/Button"),i=require("@prom-ui/core/Icon"),a=require("@prom-ui/core/KeyPress"),c=require("@prom-ui/core/Portal"),l=require("@prom-ui/core/useBodyTTag"),u=require("@prom-ui/icons/Close");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function d(e){if(e&&"object"==typeof e&&"default"in e)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var p=d(e),f=s(r);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){y(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function y(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},v.apply(this,arguments)}function O(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var g,j={root:"_9vQ1b",closeButton:"_5HA1l",rootContent:"OXp7s",enter:"JQ0Kx",exit:"llwRD",enterActive:"p-g77",exitActive:"mioMB"},h=["isOpen","isRenderPortal","isBodyScrollLock","isShowCloseButton","zIndex","width","height","padding","onClose","className","style","children"],P=function(e){var r,s,d=e.isOpen,b=void 0!==d&&d,y=e.isRenderPortal,P=void 0===y||y,w=e.isBodyScrollLock,E=void 0===w||w,S=e.isShowCloseButton,q=void 0===S||S,x=e.zIndex,B=void 0===x?5e3:x,k=e.width,C=void 0===k?"auto":k,_=e.height,N=void 0===_?"auto":_,z=e.padding,D=void 0===z?36:z,I=e.onClose,T=e.className,A=e.style,K=e.children,M=O(e,h),R=l.useBodyTTag().t;return p.createElement(p.Fragment,null,p.createElement(o.Backdrop,{isOpen:b,zIndex:B,isRenderPortal:P,isBodyScrollLock:E}),p.createElement(t.CSSTransition,{in:b,timeout:240,classNames:j,unmountOnExit:!0},p.createElement(c.Portal,{isActive:P},p.createElement(a.KeyPress,{code:"Escape",onKeyDown:I}),p.createElement("div",{className:j.root,role:"dialog","aria-modal":!0,"aria-labelledby":void 0,style:{zIndex:B},onClick:function(e){e.target===e.currentTarget&&I(e)},"data-qaid":"modal","data-testid":"modal"},p.createElement("div",v({className:f.default(j.rootContent,T),style:m({width:C,height:N,padding:D},A)},M,{"data-qaid":"modal_content","data-testid":"modal_content"}),K,q&&p.createElement("div",{className:j.closeButton},p.createElement(n.Button,{"button-theme":"black-inherit","button-padding":"xxs",type:"button",onClick:I,"aria-label":R(g||(r=["Закрыть"],s||(s=r.slice(0)),g=Object.freeze(Object.defineProperties(r,{raw:{value:Object.freeze(s)}})))),"data-qaid":"modal_close_button","data-testid":"modal_close_button"},p.createElement(i.Icon,{"icon-as":u.SvgClose,style:{width:24,height:24}}))))))))};P.displayName="Modal",exports.Modal=P,require("./style.production.v2.css");
@@ -0,0 +1 @@
1
+ .Modal__root___LXzJW{position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;text-align:center;white-space:nowrap;padding:36px;box-sizing:border-box}.Modal__root___LXzJW:before{content:"";display:inline-block;width:0;height:100%;font-size:0;vertical-align:middle}.Modal__closeButton___IfZSD{position:absolute;right:12px;top:12px}.Modal__rootContent___p62nO{position:relative;vertical-align:middle;text-align:left;white-space:normal;box-sizing:border-box;min-width:0;min-height:0;max-width:100%;display:inline-block;background:var(--white);border-radius:var(--pds-round-m);box-shadow:0 3px 6px 0 rgba(0,0,0,.1)}.Modal__rootContent___p62nO:before,.Modal__rootContent___p62nO:after{content:"";display:table}.Modal__rootContent___p62nO:after{clear:both}.Modal__enter___CYsVE .Modal__rootContent___p62nO,.Modal__exit___-sfQK .Modal__rootContent___p62nO{pointer-events:auto}.Modal__enterActive___Q3lip .Modal__rootContent___p62nO,.Modal__exitActive___2XLH4 .Modal__rootContent___p62nO{pointer-events:none;transition:transform 240ms cubic-bezier(0,0,.2,1) 0ms,opacity 240ms cubic-bezier(0,0,.2,1) 0ms}.Modal__enter___CYsVE .Modal__rootContent___p62nO{transform:translate(0,16px);opacity:0}.Modal__enterActive___Q3lip .Modal__rootContent___p62nO{transform:translate(0,0);opacity:1}.Modal__exit___-sfQK .Modal__rootContent___p62nO{transform:translate(0,0);opacity:1}.Modal__exitActive___2XLH4 .Modal__rootContent___p62nO{transform:translate(0,16px);opacity:0}
@@ -0,0 +1 @@
1
+ .Modal__root___9vQ1b{position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;text-align:center;white-space:nowrap;padding:36px;box-sizing:border-box}.Modal__root___9vQ1b:before{content:"";display:inline-block;width:0;height:100%;font-size:0;vertical-align:middle}.Modal__closeButton___5HA1l{position:absolute;right:12px;top:12px}.Modal__rootContent___OXp7s{position:relative;vertical-align:middle;text-align:left;white-space:normal;box-sizing:border-box;min-width:0;min-height:0;max-width:100%;display:inline-block;background:var(--white);border-radius:var(--pds-round-m);box-shadow:0 3px 6px 0 rgba(0,0,0,.1)}.Modal__rootContent___OXp7s:before,.Modal__rootContent___OXp7s:after{content:"";display:table}.Modal__rootContent___OXp7s:after{clear:both}.Modal__enter___JQ0Kx .Modal__rootContent___OXp7s,.Modal__exit___llwRD .Modal__rootContent___OXp7s{pointer-events:auto}.Modal__enterActive___p-g77 .Modal__rootContent___OXp7s,.Modal__exitActive___mioMB .Modal__rootContent___OXp7s{pointer-events:none;transition:transform 240ms cubic-bezier(0,0,.2,1) 0ms,opacity 240ms cubic-bezier(0,0,.2,1) 0ms}.Modal__enter___JQ0Kx .Modal__rootContent___OXp7s{transform:translate(0,16px);opacity:0}.Modal__enterActive___p-g77 .Modal__rootContent___OXp7s{transform:translate(0,0);opacity:1}.Modal__exit___llwRD .Modal__rootContent___OXp7s{transform:translate(0,0);opacity:1}.Modal__exitActive___mioMB .Modal__rootContent___OXp7s{transform:translate(0,16px);opacity:0}
@@ -0,0 +1 @@
1
+ .LXzJW{position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;text-align:center;white-space:nowrap;padding:36px;box-sizing:border-box}.LXzJW:before{content:"";display:inline-block;width:0;height:100%;font-size:0;vertical-align:middle}.IfZSD{position:absolute;right:12px;top:12px}.p62nO{position:relative;vertical-align:middle;text-align:left;white-space:normal;box-sizing:border-box;min-width:0;min-height:0;max-width:100%;display:inline-block;background:var(--white);border-radius:var(--pds-round-m);box-shadow:0 3px 6px 0 rgba(0,0,0,.1)}.p62nO:before,.p62nO:after{content:"";display:table}.p62nO:after{clear:both}.CYsVE .p62nO,.-sfQK .p62nO{pointer-events:auto}.Q3lip .p62nO,._2XLH4 .p62nO{pointer-events:none;transition:transform 240ms cubic-bezier(0,0,.2,1) 0ms,opacity 240ms cubic-bezier(0,0,.2,1) 0ms}.CYsVE .p62nO{transform:translate(0,16px);opacity:0}.Q3lip .p62nO{transform:translate(0,0);opacity:1}.-sfQK .p62nO{transform:translate(0,0);opacity:1}._2XLH4 .p62nO{transform:translate(0,16px);opacity:0}
@@ -0,0 +1 @@
1
+ ._9vQ1b{position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;text-align:center;white-space:nowrap;padding:36px;box-sizing:border-box}._9vQ1b:before{content:"";display:inline-block;width:0;height:100%;font-size:0;vertical-align:middle}._5HA1l{position:absolute;right:12px;top:12px}.OXp7s{position:relative;vertical-align:middle;text-align:left;white-space:normal;box-sizing:border-box;min-width:0;min-height:0;max-width:100%;display:inline-block;background:var(--white);border-radius:var(--pds-round-m);box-shadow:0 3px 6px 0 rgba(0,0,0,.1)}.OXp7s:before,.OXp7s:after{content:"";display:table}.OXp7s:after{clear:both}.JQ0Kx .OXp7s,.llwRD .OXp7s{pointer-events:auto}.p-g77 .OXp7s,.mioMB .OXp7s{pointer-events:none;transition:transform 240ms cubic-bezier(0,0,.2,1) 0ms,opacity 240ms cubic-bezier(0,0,.2,1) 0ms}.JQ0Kx .OXp7s{transform:translate(0,16px);opacity:0}.p-g77 .OXp7s{transform:translate(0,0);opacity:1}.llwRD .OXp7s{transform:translate(0,0);opacity:1}.mioMB .OXp7s{transform:translate(0,16px);opacity:0}
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ export type ModalProps = React.ComponentPropsWithoutRef<'div'> & {
3
+ /** Состояние, открыто или нет */
4
+ isOpen: boolean;
5
+ /** Отображение кнопки закрытия (крестик) */
6
+ isShowCloseButton?: boolean;
7
+ /** Рендер в конец `<body>` */
8
+ isRenderPortal?: boolean;
9
+ /** Запрещает прокрутку `<body>` */
10
+ isBodyScrollLock?: boolean;
11
+ /** Ширина */
12
+ width?: string | number;
13
+ /** Высота */
14
+ height?: string | number;
15
+ /** Внутренние отступы */
16
+ padding?: string | number;
17
+ /** Размещением по z-оси */
18
+ zIndex?: number;
19
+ /** Handle для закрытия попапа */
20
+ onClose: (e: any) => void;
21
+ /** @ignore */
22
+ className?: string;
23
+ /** @ignore */
24
+ ['data-qaid']?: string;
25
+ /** @ignore */
26
+ ['data-testid']?: string;
27
+ };
28
+ export declare const Modal: React.FC<ModalProps>;
package/Modal/index.js ADDED
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/index.production.js');
5
+ } else {
6
+ module.exports = require('./cjs/index.development.js');
7
+ }
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === 'production') {
4
+ module.exports = require('./cjs/index.production.v2.js');
5
+ } else {
6
+ module.exports = require('./cjs/index.development.v2.js');
7
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "@prom-ui/core/Modal",
3
+ "version": "1.9.0",
4
+ "main": "index.js",
5
+ "types": "index.d.ts",
6
+ "sideEffects": [
7
+ "*.css"
8
+ ],
9
+ "dependencies": {
10
+ "classnames": "^2.3.1",
11
+ "react-transition-group": "^4.4.2"
12
+ }
13
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prom-ui/core/OutsideClick",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prom-ui/core/Overlay",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -972,7 +972,8 @@ var css = {"scrolling":"PhotoGallery__scrolling___BeLzR","root":"PhotoGallery__r
972
972
 
973
973
  var MainPhotosImage = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
974
974
  var src = _ref.src,
975
- videoSrc = _ref.videoSrc;
975
+ videoSrc = _ref.videoSrc,
976
+ triggerInteraction = _ref.triggerInteraction;
976
977
  var videoIframeRef = React__namespace.useRef(null);
977
978
  var pinchZoomRef = React__namespace.useRef(null);
978
979
  var imgRef = React__namespace.useRef(null);
@@ -988,7 +989,13 @@ var MainPhotosImage = /*#__PURE__*/React__namespace.forwardRef(function (_ref, r
988
989
  pinchZoomRef.current = new PinchZoom(imgRef.current, {
989
990
  draggableUnzoomed: false,
990
991
  animationDuration: 200,
991
- setOffsetsOnce: false
992
+ setOffsetsOnce: false,
993
+ onDoubleTap: function onDoubleTap(target) {
994
+ // @ts-ignore
995
+ if ((target === null || target === void 0 ? void 0 : target.zoomFactor) === 1) {
996
+ triggerInteraction('maybeZoomImage');
997
+ }
998
+ }
992
999
  });
993
1000
  }
994
1001
  });
@@ -997,6 +1004,17 @@ var MainPhotosImage = /*#__PURE__*/React__namespace.forwardRef(function (_ref, r
997
1004
  (_pinchZoomRef$current2 = pinchZoomRef.current) === null || _pinchZoomRef$current2 === void 0 ? void 0 : _pinchZoomRef$current2.destroy();
998
1005
  };
999
1006
  }, [videoSrc]);
1007
+ React__namespace.useEffect(function () {
1008
+ var onBlur = function onBlur() {
1009
+ if (isVideo && document.activeElement && document.activeElement.nodeName.toLowerCase() === 'iframe' && videoIframeRef.current && videoIframeRef.current === document.activeElement) {
1010
+ triggerInteraction('maybePlayVideo');
1011
+ }
1012
+ };
1013
+ window.addEventListener('blur', onBlur);
1014
+ return function () {
1015
+ window.removeEventListener('blur', onBlur);
1016
+ };
1017
+ }, [videoSrc]);
1000
1018
  React__namespace.useImperativeHandle(ref, function () {
1001
1019
  return {
1002
1020
  reset: reset
@@ -1032,7 +1050,9 @@ var MainPhotosImage = /*#__PURE__*/React__namespace.forwardRef(function (_ref, r
1032
1050
 
1033
1051
  var MainPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
1034
1052
  var items = _ref.items,
1035
- onChange = _ref.onChange;
1053
+ onChange = _ref.onChange,
1054
+ triggerInteraction = _ref.triggerInteraction;
1055
+ var touchScreenX = React__namespace.useRef(null);
1036
1056
  var mainPhotoRefs = React__namespace.useRef([]);
1037
1057
  var scrollIndex = React__namespace.useRef(0);
1038
1058
  var localScrollRef = React__namespace.useRef(null);
@@ -1064,16 +1084,39 @@ var MainPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
1064
1084
  destroyMainPhoto();
1065
1085
  }
1066
1086
  };
1087
+ var onTouchStart = function onTouchStart(e) {
1088
+ var currentTouchScreenX = e.changedTouches[0].screenX;
1089
+ touchScreenX.current = currentTouchScreenX;
1090
+ };
1091
+ var onTouchEnd = function onTouchEnd(e) {
1092
+ var currentTouchScreenX = e.changedTouches[0].screenX;
1093
+ if (touchScreenX.current) {
1094
+ if (touchScreenX.current > currentTouchScreenX) {
1095
+ triggerInteraction('maybeSwipeLeft');
1096
+ } else if (touchScreenX.current < currentTouchScreenX) {
1097
+ triggerInteraction('maybeSwipeRight');
1098
+ }
1099
+ touchScreenX.current = null;
1100
+ }
1101
+ };
1067
1102
  return /*#__PURE__*/React__namespace.createElement(ScrollControls.ScrollControls, {
1068
1103
  ref: localScrollRef,
1069
1104
  className: css.mainPhotoScrollControls,
1070
1105
  showOnHover: true,
1071
- hideOnDisabled: true
1106
+ hideOnDisabled: true,
1107
+ onClickPrev: function onClickPrev() {
1108
+ return triggerInteraction('clickPrevButton');
1109
+ },
1110
+ onClickNext: function onClickNext() {
1111
+ return triggerInteraction('clickNextButton');
1112
+ }
1072
1113
  }, function (scrollRef) {
1073
1114
  return /*#__PURE__*/React__namespace.createElement("div", {
1074
1115
  ref: scrollRef,
1075
1116
  className: css.mainPhoto,
1076
- onScroll: onScroll
1117
+ onScroll: onScroll,
1118
+ onTouchStart: onTouchStart,
1119
+ onTouchEnd: onTouchEnd
1077
1120
  }, items.map(function (_ref2, index) {
1078
1121
  var type = _ref2.type,
1079
1122
  src = _ref2.src;
@@ -1090,7 +1133,8 @@ var MainPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
1090
1133
  return mainPhotoRefs.current[index] = el;
1091
1134
  },
1092
1135
  src: previewSrc,
1093
- videoSrc: videoSrc
1136
+ videoSrc: videoSrc,
1137
+ triggerInteraction: triggerInteraction
1094
1138
  }));
1095
1139
  }));
1096
1140
  });
@@ -1099,7 +1143,8 @@ var MainPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
1099
1143
  var PreviewPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref) {
1100
1144
  var items = _ref.items,
1101
1145
  selectedIndex = _ref.selectedIndex,
1102
- onChange = _ref.onChange;
1146
+ onChange = _ref.onChange,
1147
+ triggerInteraction = _ref.triggerInteraction;
1103
1148
  var localScrollRef = React__namespace.useRef(null);
1104
1149
  var scrollToIndex = function scrollToIndex(index) {
1105
1150
  var _localScrollRef$curre;
@@ -1125,6 +1170,7 @@ var PreviewPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref
1125
1170
  src = _ref2.src;
1126
1171
  var isVideo = type === 'video';
1127
1172
  var previewSrc = isVideo ? getVideoPreviewImage(src) : src;
1173
+ var iteractionEventName = isVideo ? 'clickPreviewVideo' : 'clickPreviewImage';
1128
1174
  return /*#__PURE__*/React__namespace.createElement("div", {
1129
1175
  key: index,
1130
1176
  className: css.previewItem,
@@ -1134,7 +1180,8 @@ var PreviewPhotos = /*#__PURE__*/React__namespace.forwardRef(function (_ref, ref
1134
1180
  className: css.previewButton,
1135
1181
  type: "button",
1136
1182
  onClick: function onClick() {
1137
- return _onClick(index);
1183
+ triggerInteraction(iteractionEventName);
1184
+ _onClick(index);
1138
1185
  },
1139
1186
  disabled: selectedIndex === index,
1140
1187
  "data-qaid": "photo_gallery_preview_button",
@@ -1165,7 +1212,8 @@ var Header = function Header(_ref) {
1165
1212
  var title = _ref.title,
1166
1213
  onClose = _ref.onClose,
1167
1214
  selectedIndex = _ref.selectedIndex,
1168
- itemsLength = _ref.itemsLength;
1215
+ itemsLength = _ref.itemsLength,
1216
+ triggerInteraction = _ref.triggerInteraction;
1169
1217
  var _useBodyTTag = useBodyTTag.useBodyTTag(),
1170
1218
  t = _useBodyTTag.t;
1171
1219
  var visibleSelectedIndex = selectedIndex + 1;
@@ -1182,7 +1230,10 @@ var Header = function Header(_ref) {
1182
1230
  "button-padding": "xxs",
1183
1231
  "button-theme": "black-inherit",
1184
1232
  type: "button",
1185
- onClick: onClose,
1233
+ onClick: function onClick() {
1234
+ triggerInteraction('clickCloseButton');
1235
+ onClose();
1236
+ },
1186
1237
  "data-qaid": "photo_gallery_close_button",
1187
1238
  "data-testid": "photo_gallery_close_button"
1188
1239
  }, /*#__PURE__*/React__namespace.createElement(Icon.Icon, {
@@ -1203,7 +1254,8 @@ var PhotoGallery = function PhotoGallery(_ref) {
1203
1254
  _ref$zIndex = _ref.zIndex,
1204
1255
  zIndex = _ref$zIndex === void 0 ? 5000 : _ref$zIndex,
1205
1256
  onClose = _ref.onClose,
1206
- onChange = _ref.onChange;
1257
+ onChange = _ref.onChange,
1258
+ onInteraction = _ref.onInteraction;
1207
1259
  var refIsAllowChangePreviewPhoto = React__namespace.useRef(true);
1208
1260
  var refMainPhotos = React__namespace.useRef(null);
1209
1261
  var refPreviewPhotos = React__namespace.useRef(null);
@@ -1211,6 +1263,11 @@ var PhotoGallery = function PhotoGallery(_ref) {
1211
1263
  _React$useState2 = _slicedToArray(_React$useState, 2),
1212
1264
  selectedIndex = _React$useState2[0],
1213
1265
  setSelectedIndex = _React$useState2[1];
1266
+ var triggerInteraction = function triggerInteraction(eventName) {
1267
+ if (typeof onInteraction === 'function') {
1268
+ onInteraction(eventName);
1269
+ }
1270
+ };
1214
1271
  React__namespace.useEffect(function () {
1215
1272
  if (isOpen && typeof onChange === 'function') {
1216
1273
  onChange(selectedIndex);
@@ -1269,10 +1326,12 @@ var PhotoGallery = function PhotoGallery(_ref) {
1269
1326
  };
1270
1327
  var onPrevPhoto = function onPrevPhoto() {
1271
1328
  if (selectedIndex === 0) return;
1329
+ triggerInteraction('keyPressPrev');
1272
1330
  onChangePreviewPhoto(selectedIndex - 1);
1273
1331
  };
1274
1332
  var onNextPhoto = function onNextPhoto() {
1275
1333
  if (selectedIndex === items.length - 1) return;
1334
+ triggerInteraction('keyPressNext');
1276
1335
  onChangePreviewPhoto(selectedIndex + 1);
1277
1336
  };
1278
1337
  var onCloseHandle = function onCloseHandle() {
@@ -1288,9 +1347,15 @@ var PhotoGallery = function PhotoGallery(_ref) {
1288
1347
  timeout: 240,
1289
1348
  classNames: css,
1290
1349
  unmountOnExit: true
1291
- // onEnter={onOpen}
1292
- // onEntered={onOpened}
1293
- // onExited={onClosed}
1350
+ // onEnter={() => triggerInteraction('open')}
1351
+ // onExit={() => triggerInteraction('close')}
1352
+ ,
1353
+ onEntered: function onEntered() {
1354
+ return triggerInteraction('opened');
1355
+ },
1356
+ onExited: function onExited() {
1357
+ return triggerInteraction('closed');
1358
+ }
1294
1359
  }, /*#__PURE__*/React__namespace.createElement(Portal.Portal, null, /*#__PURE__*/React__namespace.createElement("div", {
1295
1360
  className: css.root,
1296
1361
  "data-qaid": "photo_gallery",
@@ -1300,7 +1365,10 @@ var PhotoGallery = function PhotoGallery(_ref) {
1300
1365
  }
1301
1366
  }, /*#__PURE__*/React__namespace.createElement(KeyPress.KeyPress, {
1302
1367
  code: "Escape",
1303
- onKeyUp: onCloseHandle
1368
+ onKeyUp: function onKeyUp() {
1369
+ triggerInteraction('keyPressClose');
1370
+ onCloseHandle();
1371
+ }
1304
1372
  }), /*#__PURE__*/React__namespace.createElement(KeyPress.KeyPress, {
1305
1373
  code: "ArrowLeft",
1306
1374
  onKeyUp: onPrevPhoto
@@ -1315,7 +1383,8 @@ var PhotoGallery = function PhotoGallery(_ref) {
1315
1383
  title: title,
1316
1384
  selectedIndex: selectedIndex,
1317
1385
  itemsLength: items.length,
1318
- onClose: onCloseHandle
1386
+ onClose: onCloseHandle,
1387
+ triggerInteraction: triggerInteraction
1319
1388
  })), /*#__PURE__*/React__namespace.createElement("div", {
1320
1389
  className: css.layoutContent
1321
1390
  }, /*#__PURE__*/React__namespace.createElement("section", {
@@ -1323,14 +1392,16 @@ var PhotoGallery = function PhotoGallery(_ref) {
1323
1392
  }, /*#__PURE__*/React__namespace.createElement(MainPhotos, {
1324
1393
  ref: refMainPhotos,
1325
1394
  items: items,
1326
- onChange: onChangeMainPhoto
1395
+ onChange: onChangeMainPhoto,
1396
+ triggerInteraction: triggerInteraction
1327
1397
  })), items.length > 1 && /*#__PURE__*/React__namespace.createElement("aside", {
1328
1398
  className: css.layoutAside
1329
1399
  }, /*#__PURE__*/React__namespace.createElement(PreviewPhotos, {
1330
1400
  ref: refPreviewPhotos,
1331
1401
  items: items,
1332
1402
  selectedIndex: selectedIndex,
1333
- onChange: onChangePreviewPhoto
1403
+ onChange: onChangePreviewPhoto,
1404
+ triggerInteraction: triggerInteraction
1334
1405
  }))))))));
1335
1406
  };
1336
1407