@jetbrains/ring-ui 4.1.27 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/components/alert/alert.test.js +2 -2
  3. package/components/alert-service/alert-service.js +1 -1
  4. package/components/analytics/analytics__ga-plugin.js +1 -0
  5. package/components/auth-dialog-service/auth-dialog-service.js +1 -1
  6. package/components/confirm-service/confirm-service.js +1 -1
  7. package/components/confirm-service/confirm-service.test.js +1 -1
  8. package/components/global/angular-component-factory.js +1 -1
  9. package/components/global/react-render-adapter.js +36 -0
  10. package/components/global/rerender-hoc.js +5 -2
  11. package/components/login-dialog/service.js +2 -1
  12. package/components/select-ng/select-ng.js +16 -5
  13. package/components/select-ng/select-ng__lazy.js +11 -6
  14. package/components/select-ng/select-ng__lazy.test.js +3 -1
  15. package/components/table/smart-table.js +6 -3
  16. package/components/table/table.examples.js +3 -1
  17. package/components/tooltip-ng/tooltip-ng.js +13 -10
  18. package/components/user-agreement/service.js +1 -1
  19. package/dist/alert-service/alert-service.js +2 -1
  20. package/dist/analytics/analytics__ga-plugin.js +1 -0
  21. package/dist/auth/auth.js +1 -0
  22. package/dist/auth/auth__core.js +1 -0
  23. package/dist/auth/down-notification.js +1 -0
  24. package/dist/auth/iframe-flow.js +2 -1
  25. package/dist/auth/landing.js +1 -0
  26. package/dist/auth/storage.js +1 -0
  27. package/dist/auth-dialog-service/auth-dialog-service.js +3 -2
  28. package/dist/auth-ng/auth-ng.js +1 -0
  29. package/dist/avatar-editor-ng/avatar-editor-ng.js +1 -0
  30. package/dist/avatar-ng/avatar-ng.js +1 -0
  31. package/dist/badge-ng/badge-ng.js +1 -0
  32. package/dist/confirm-ng/confirm-ng.js +2 -1
  33. package/dist/confirm-service/confirm-service.js +3 -2
  34. package/dist/data-list-ng/data-list-ng.js +1 -0
  35. package/dist/global/angular-component-factory.js +2 -1
  36. package/dist/global/react-render-adapter.js +41 -0
  37. package/dist/global/rerender-hoc.js +5 -2
  38. package/dist/header/header.js +1 -0
  39. package/dist/header/smart-profile.js +1 -0
  40. package/dist/header/smart-services.js +1 -0
  41. package/dist/login-dialog/service.js +3 -2
  42. package/dist/pager/pager.js +2 -0
  43. package/dist/pager-ng/pager-ng.js +2 -0
  44. package/dist/permissions-ng/permissions-ng.js +1 -0
  45. package/dist/progress-bar-ng/progress-bar-ng.js +1 -0
  46. package/dist/query-assist/query-assist.js +2 -0
  47. package/dist/query-assist-ng/query-assist-ng.js +2 -0
  48. package/dist/select/select.js +2 -0
  49. package/dist/select-ng/select-ng.js +20 -6
  50. package/dist/select-ng/select-ng__lazy.js +11 -8
  51. package/dist/storage/storage.js +1 -0
  52. package/dist/storage/storage__local.js +1 -0
  53. package/dist/table/smart-table.js +10 -6
  54. package/dist/table-legacy-ng/table-legacy-ng.js +2 -0
  55. package/dist/table-legacy-ng/table-legacy-ng__pager.js +2 -0
  56. package/dist/table-ng/smart-table-ng.js +1 -0
  57. package/dist/table-ng/table-ng.js +1 -0
  58. package/dist/tags-input/tags-input.js +2 -0
  59. package/dist/tags-input-ng/tags-input-ng.js +2 -0
  60. package/dist/toggle-ng/toggle-ng.js +1 -0
  61. package/dist/tooltip-ng/tooltip-ng.js +11 -7
  62. package/dist/user-agreement/service.js +2 -1
  63. package/dist/user-card-ng/user-card-ng.js +1 -0
  64. package/package.json +26 -26
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [4.2.0]
2
+
3
+ ### React 18 support
4
+
5
+ To enable the new root API, add the following code before any rendering:
6
+ ```js
7
+ import * as client from 'react-dom/client'
8
+ import {setClient} from '@jetbrains/ring-ui/components/global/react-render-adapter'
9
+
10
+ setClient(client)
11
+ ```
12
+
1
13
  ## [4.1.0]
2
14
 
3
15
  ### Pre-built version
@@ -41,11 +41,11 @@ describe('Alert', () => {
41
41
  should.not.exist(screen.queryByRole('button', {name: 'close alert'}));
42
42
  });
43
43
 
44
- it('should call onCloseRequest on click by close button', () => {
44
+ it('should call onCloseRequest on click by close button', async () => {
45
45
  const closeSpy = sandbox.spy();
46
46
  render(<Alert onCloseRequest={closeSpy}>{'Test element'}</Alert>);
47
47
  const closeElement = screen.queryByRole('button', {name: 'close alert'});
48
- userEvent.click(closeElement);
48
+ await userEvent.click(closeElement);
49
49
  closeSpy.should.have.been.called;
50
50
  });
51
51
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import {render} from 'react-dom';
3
2
 
3
+ import {render} from '../global/react-render-adapter';
4
4
  import getUID from '../global/get-uid';
5
5
 
6
6
  import Alert, {ANIMATION_TIME, Container as AlertContainer} from '../alert/alert';
@@ -36,6 +36,7 @@ export default class AnalyticsGAPlugin {
36
36
  }
37
37
 
38
38
  ga('set', 'anonymizeIp', true);
39
+ ga('set', 'location', domain || '/');
39
40
  ga('set', 'allowAdFeatures', false);
40
41
  }
41
42
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import {render} from 'react-dom';
3
2
 
3
+ import {render} from '../global/react-render-adapter';
4
4
  import AuthDialog from '../auth-dialog/auth-dialog';
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import {render} from 'react-dom';
3
2
 
3
+ import {render} from '../global/react-render-adapter';
4
4
  import Confirm from '../confirm/confirm';
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  import {Simulate} from 'react-dom/test-utils';
2
- import {unmountComponentAtNode} from 'react-dom';
3
2
 
3
+ import {unmountComponentAtNode} from '../global/react-render-adapter';
4
4
  import islandStyles from '../island/island.css';
5
5
 
6
6
  import confirm, {containerElement} from './confirm-service';
@@ -1,8 +1,8 @@
1
1
  import angular from 'angular';
2
2
 
3
3
  import React from 'react';
4
- import {render, unmountComponentAtNode} from 'react-dom';
5
4
 
5
+ import {render, unmountComponentAtNode} from './react-render-adapter';
6
6
  import RingAngularComponent from './ring-angular-component';
7
7
 
8
8
  import DomRenderer from './react-dom-renderer';
@@ -0,0 +1,36 @@
1
+ // Allows overriding ReactDOM.render when using React 18:
2
+ // import * as client from 'react-dom/client'
3
+ // import {setClient} from '@jetbrains/ring-ui/components/global/react-render-adapter'
4
+ //
5
+ // setClient(client)
6
+ import {
7
+ render as legacyRender,
8
+ unmountComponentAtNode as legacyUnmountComponentAtNode,
9
+ hydrate as legacyHydrate
10
+ } from 'react-dom';
11
+
12
+ /* eslint-disable import/no-mutable-exports */
13
+ export let render = legacyRender;
14
+ export let unmountComponentAtNode = legacyUnmountComponentAtNode;
15
+ export let hydrate = legacyHydrate;
16
+ /* eslint-enable */
17
+
18
+ export function setClient({createRoot, hydrateRoot}) {
19
+ const roots = new WeakMap();
20
+
21
+ render = (element, container) => {
22
+ let root = roots.get(container);
23
+ if (root == null) {
24
+ root = createRoot(container);
25
+ roots.set(container, root);
26
+ }
27
+ root.render(element);
28
+ };
29
+
30
+ unmountComponentAtNode = container => roots.get(container)?.unmount();
31
+
32
+ hydrate = (element, container) => {
33
+ const root = hydrateRoot(container, element);
34
+ roots.set(container, root);
35
+ };
36
+ }
@@ -1,5 +1,7 @@
1
1
  import {createElement} from 'react';
2
- import {render} from 'react-dom';
2
+
3
+ import {render} from './react-render-adapter';
4
+ import composeRefs from './composeRefs';
3
5
 
4
6
  /**
5
7
  * Wraps a component to add a "rerender" method
@@ -28,8 +30,9 @@ export default function rerenderHOC(ComposedComponent, {captureNode} = {captureN
28
30
  }
29
31
 
30
32
  this._propsCache = Object.assign({}, this.props, this._propsCache, props);
33
+ this._propsCache.ref = composeRefs(this._propsCache.ref, callback);
31
34
 
32
- return render(createElement(this.constructor, this._propsCache), container, callback);
35
+ render(createElement(this.constructor, this._propsCache), container);
33
36
  }
34
37
  };
35
38
  }
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import {render, unmountComponentAtNode} from 'react-dom';
2
+
3
+ import {render, unmountComponentAtNode} from '../global/react-render-adapter';
3
4
 
4
5
  import LoginDialog from './login-dialog';
5
6
 
@@ -1,8 +1,8 @@
1
1
  import angular from 'angular';
2
2
 
3
3
  import React from 'react';
4
- import {render, unmountComponentAtNode} from 'react-dom';
5
4
 
5
+ import {render, unmountComponentAtNode} from '../global/react-render-adapter';
6
6
  import getEventKey from '../global/get-event-key';
7
7
  import Select, {RerenderableSelect} from '../select/select';
8
8
  import MessageBundle from '../message-bundle-ng/message-bundle-ng';
@@ -375,9 +375,15 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
375
375
  return sizes[ctrl.size] || sizes.FULL;
376
376
  }
377
377
 
378
+ function selectRef(instance) {
379
+ if (instance != null) {
380
+ ctrl.selectInstance = instance;
381
+ }
382
+ }
383
+
378
384
  function reRenderSelect(props) {
379
- if (ctrl.selectInstance.node) {
380
- ctrl.selectInstance.rerender(props);
385
+ if (ctrl.selectInstance?.node) {
386
+ ctrl.selectInstance.rerender({...props, ref: selectRef});
381
387
  }
382
388
  }
383
389
 
@@ -516,9 +522,14 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
516
522
  ctrl.config = angular.extend({}, ctrl.defaultConfig, ctrl.config || {});
517
523
 
518
524
  if (getType() === 'suggest' || getType() === 'input') {
519
- ctrl.selectInstance = render(<RerenderableSelect {...ctrl.config}/>, container);
525
+ render(
526
+ <RerenderableSelect
527
+ ref={selectRef}
528
+ {...ctrl.config}
529
+ />,
530
+ container);
520
531
  } else {
521
- ctrl.selectInstance = new SelectLazy(container, ctrl.config, ctrl, getType());
532
+ ctrl.selectInstance = new SelectLazy(container, ctrl.config, ctrl, getType(), selectRef);
522
533
  }
523
534
 
524
535
  // Preserve existing contents of the directive
@@ -1,17 +1,18 @@
1
1
  import angular from 'angular';
2
2
 
3
- import {render, hydrate} from 'react-dom';
4
3
  import React from 'react';
5
4
 
5
+ import {render, hydrate} from '../global/react-render-adapter';
6
6
  import {RerenderableSelect} from '../select/select';
7
7
 
8
8
  class SelectLazy {
9
- constructor(container, props, ctrl, type) {
9
+ constructor(container, props, ctrl, type, selectRef) {
10
10
  this.container = container;
11
11
  this.ctrl = ctrl;
12
12
  this.props = props || {};
13
13
  this.type = type;
14
14
  this.node = container;
15
+ this.selectRef = selectRef;
15
16
  this._popup = {
16
17
  isVisible: angular.noop
17
18
  };
@@ -46,7 +47,12 @@ class SelectLazy {
46
47
  }
47
48
 
48
49
  render(props) {
49
- this.reactSelect = <RerenderableSelect {...Object.assign({}, this.props, props || {})}/>;
50
+ this.reactSelect = (
51
+ <RerenderableSelect
52
+ ref={this.selectRef}
53
+ {...Object.assign({}, this.props, props || {})}
54
+ />
55
+ );
50
56
  this.props = this.reactSelect.props;
51
57
 
52
58
  if (this.type !== 'dropdown') {
@@ -58,10 +64,9 @@ class SelectLazy {
58
64
  _clickHandler() {
59
65
  this.detachEvents();
60
66
  if (this.type === 'dropdown') {
61
- this.ctrl.selectInstance = render(this.reactSelect, this.container);
62
- this.ctrl.selectInstance._openPopupIfClosed();
67
+ render(this.reactSelect, this.container);
63
68
  } else {
64
- this.ctrl.selectInstance = hydrate(this.reactSelect, this.container);
69
+ hydrate(this.reactSelect, this.container);
65
70
  }
66
71
  }
67
72
  }
@@ -67,7 +67,9 @@ describe('Select Lazy', () => {
67
67
 
68
68
 
69
69
  function renderLazySelect(type = 'button') {
70
- const lazySelect = new SelectLazy(containerNode, {}, ctrl, type);
70
+ const lazySelect = new SelectLazy(containerNode, {}, ctrl, type, instance => {
71
+ ctrl.selectInstance = instance;
72
+ });
71
73
  lazySelect.render();
72
74
  return lazySelect;
73
75
  }
@@ -29,10 +29,13 @@ class SmartTable extends PureComponent {
29
29
  };
30
30
 
31
31
  UNSAFE_componentWillReceiveProps(nextProps) {
32
- const {data, isItemSelectable} = nextProps;
33
- if (this.props.data !== data || this.props.isItemSelectable !== isItemSelectable) {
34
- const selection = new Selection({data, isItemSelectable});
32
+ const {data, isItemSelectable, selection} = nextProps;
33
+ if (this.props.remoteSelection && this.props.selection !== selection) {
35
34
  this.setState({selection});
35
+ } else if (this.props.data !== data || this.props.isItemSelectable !== isItemSelectable) {
36
+ this.setState({
37
+ selection: new Selection({data, isItemSelectable})
38
+ });
36
39
  }
37
40
  }
38
41
 
@@ -236,7 +236,9 @@ basic.argTypes = {
236
236
  },
237
237
  caption: {
238
238
  control: {disable: true}
239
- }
239
+ },
240
+ onSelect: {},
241
+ onReorder: {}
240
242
  };
241
243
  basic.storyName = 'basic';
242
244
 
@@ -1,9 +1,9 @@
1
1
  import angular from 'angular';
2
2
 
3
3
  import {createElement} from 'react';
4
- import {render} from 'react-dom';
5
4
  import classNames from 'classnames';
6
5
 
6
+ import {render} from '../global/react-render-adapter';
7
7
  import Popup from '../popup/popup';
8
8
 
9
9
  import './tooltip-ng.css';
@@ -58,15 +58,18 @@ name.factory('RgTooltipPopup', function RgTooltipPopupDirective() {
58
58
  trapFocus: false
59
59
  };
60
60
 
61
- this.renderPopup = props => {
62
- this.popup = render(
63
- createElement(Popup, {
64
- ...this.defaultProps,
65
- ...props
66
- }, this.text),
67
- this.wrapperElement
68
- );
69
- };
61
+ this.renderPopup = props => render(
62
+ createElement(Popup, {
63
+ ...this.defaultProps,
64
+ ...props,
65
+ ref: instance => {
66
+ if (instance != null) {
67
+ this.popup = instance;
68
+ }
69
+ }
70
+ }, this.text),
71
+ this.wrapperElement
72
+ );
70
73
 
71
74
  this.displayTooltip = customClass => {
72
75
  const text = textGetter();
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import {render, unmountComponentAtNode} from 'react-dom';
3
2
 
3
+ import {render, unmountComponentAtNode} from '../global/react-render-adapter';
4
4
  import Storage from '../storage/storage';
5
5
  import alertService from '../alert-service/alert-service';
6
6
  import Link from '../link/link';
@@ -1,10 +1,11 @@
1
1
  import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import 'core-js/modules/web.dom-collections.iterator.js';
3
3
  import React from 'react';
4
- import { render } from 'react-dom';
4
+ import { render } from '../global/react-render-adapter.js';
5
5
  import getUID from '../global/get-uid.js';
6
6
  import Alert, { ANIMATION_TIME } from '../alert/alert.js';
7
7
  import Alerts from '../alert/container.js';
8
+ import 'react-dom';
8
9
  import 'classnames';
9
10
  import 'prop-types';
10
11
  import '@jetbrains/icons/exception';
@@ -46,6 +46,7 @@ class AnalyticsGAPlugin {
46
46
  }
47
47
 
48
48
  ga('set', 'anonymizeIp', true);
49
+ ga('set', 'location', domain || '/');
49
50
  ga('set', 'allowAdFeatures', false);
50
51
  }
51
52
 
package/dist/auth/auth.js CHANGED
@@ -11,6 +11,7 @@ import 'react';
11
11
  import 'prop-types';
12
12
  import '../alert-service/alert-service.js';
13
13
  import 'core-js/modules/web.dom-collections.iterator.js';
14
+ import '../global/react-render-adapter.js';
14
15
  import 'react-dom';
15
16
  import '../global/get-uid.js';
16
17
  import '../alert/alert.js';
@@ -15,6 +15,7 @@ import '../storage/storage.js';
15
15
  import '../storage/storage__local.js';
16
16
  import '../alert-service/alert-service.js';
17
17
  import 'react';
18
+ import '../global/react-render-adapter.js';
18
19
  import 'react-dom';
19
20
  import '../global/get-uid.js';
20
21
  import '../alert/alert.js';
@@ -6,6 +6,7 @@ import Link from '../link/link.js';
6
6
  import Group from '../group/group.js';
7
7
  import '../_helpers/_rollupPluginBabelHelpers.js';
8
8
  import 'core-js/modules/web.dom-collections.iterator.js';
9
+ import '../global/react-render-adapter.js';
9
10
  import 'react-dom';
10
11
  import '../global/get-uid.js';
11
12
  import '../alert/container.js';
@@ -3,9 +3,10 @@ import React from 'react';
3
3
  import showAuthDialog from '../login-dialog/service.js';
4
4
  import Link from '../link/link.js';
5
5
  import AuthResponseParser from './response-parser.js';
6
+ import '../global/react-render-adapter.js';
7
+ import 'core-js/modules/web.dom-collections.iterator.js';
6
8
  import 'react-dom';
7
9
  import '../login-dialog/login-dialog.js';
8
- import 'core-js/modules/web.dom-collections.iterator.js';
9
10
  import 'prop-types';
10
11
  import '../dialog/dialog.js';
11
12
  import 'classnames';
@@ -14,6 +14,7 @@ import './down-notification.js';
14
14
  import 'react';
15
15
  import 'prop-types';
16
16
  import '../alert-service/alert-service.js';
17
+ import '../global/react-render-adapter.js';
17
18
  import 'react-dom';
18
19
  import '../global/get-uid.js';
19
20
  import '../alert/alert.js';
@@ -4,6 +4,7 @@ import '../storage/storage__local.js';
4
4
  import '../alert-service/alert-service.js';
5
5
  import '../_helpers/_rollupPluginBabelHelpers.js';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/get-uid.js';
9
10
  import '../alert/alert.js';
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { render } from 'react-dom';
2
+ import { render } from '../global/react-render-adapter.js';
3
3
  import AuthDialog from '../auth-dialog/auth-dialog.js';
4
- import '../_helpers/_rollupPluginBabelHelpers.js';
5
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
+ import 'react-dom';
6
+ import '../_helpers/_rollupPluginBabelHelpers.js';
6
7
  import 'core-js/modules/es.string.replace.js';
7
8
  import 'prop-types';
8
9
  import 'classnames';
@@ -12,6 +12,7 @@ import 'react';
12
12
  import 'prop-types';
13
13
  import '../alert-service/alert-service.js';
14
14
  import 'core-js/modules/web.dom-collections.iterator.js';
15
+ import '../global/react-render-adapter.js';
15
16
  import 'react-dom';
16
17
  import '../global/get-uid.js';
17
18
  import '../alert/alert.js';
@@ -7,6 +7,7 @@ import template from './avatar-editor-ng__template.js';
7
7
  import '../_helpers/_rollupPluginBabelHelpers.js';
8
8
  import 'core-js/modules/web.dom-collections.iterator.js';
9
9
  import 'react';
10
+ import '../global/react-render-adapter.js';
10
11
  import 'react-dom';
11
12
  import '../global/get-uid.js';
12
13
  import '../alert/alert.js';
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -2,10 +2,11 @@ import angular from 'angular';
2
2
  import confirm from '../confirm-service/confirm-service.js';
3
3
  import MessageBundle from '../message-bundle-ng/message-bundle-ng.js';
4
4
  import 'react';
5
+ import '../global/react-render-adapter.js';
6
+ import 'core-js/modules/web.dom-collections.iterator.js';
5
7
  import 'react-dom';
6
8
  import '../confirm/confirm.js';
7
9
  import '../_helpers/_rollupPluginBabelHelpers.js';
8
- import 'core-js/modules/web.dom-collections.iterator.js';
9
10
  import 'prop-types';
10
11
  import '../dialog/dialog.js';
11
12
  import 'classnames';
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { render } from 'react-dom';
2
+ import { render } from '../global/react-render-adapter.js';
3
3
  import Confirm from '../confirm/confirm.js';
4
- import '../_helpers/_rollupPluginBabelHelpers.js';
5
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
+ import 'react-dom';
6
+ import '../_helpers/_rollupPluginBabelHelpers.js';
6
7
  import 'prop-types';
7
8
  import '../dialog/dialog.js';
8
9
  import 'classnames';
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -2,9 +2,10 @@ import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import 'core-js/modules/web.dom-collections.iterator.js';
3
3
  import angular from 'angular';
4
4
  import React from 'react';
5
- import { unmountComponentAtNode, render } from 'react-dom';
5
+ import { unmountComponentAtNode, render } from './react-render-adapter.js';
6
6
  import RingAngularComponent from './ring-angular-component.js';
7
7
  import Renderer from './react-dom-renderer.js';
8
+ import 'react-dom';
8
9
  import 'prop-types';
9
10
 
10
11
  function getAngularComponentName(name) {
@@ -0,0 +1,41 @@
1
+ import 'core-js/modules/web.dom-collections.iterator.js';
2
+ import { render as render$1, unmountComponentAtNode as unmountComponentAtNode$1, hydrate as hydrate$1 } from 'react-dom';
3
+
4
+ /* eslint-disable import/no-mutable-exports */
5
+
6
+ let render = render$1;
7
+ let unmountComponentAtNode = unmountComponentAtNode$1;
8
+ let hydrate = hydrate$1;
9
+ /* eslint-enable */
10
+
11
+ function setClient(_ref) {
12
+ let {
13
+ createRoot,
14
+ hydrateRoot
15
+ } = _ref;
16
+ const roots = new WeakMap();
17
+
18
+ render = (element, container) => {
19
+ let root = roots.get(container);
20
+
21
+ if (root == null) {
22
+ root = createRoot(container);
23
+ roots.set(container, root);
24
+ }
25
+
26
+ root.render(element);
27
+ };
28
+
29
+ unmountComponentAtNode = container => {
30
+ var _roots$get;
31
+
32
+ return (_roots$get = roots.get(container)) === null || _roots$get === void 0 ? void 0 : _roots$get.unmount();
33
+ };
34
+
35
+ hydrate = (element, container) => {
36
+ const root = hydrateRoot(container, element);
37
+ roots.set(container, root);
38
+ };
39
+ }
40
+
41
+ export { hydrate, render, setClient, unmountComponentAtNode };
@@ -1,7 +1,9 @@
1
1
  import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import 'core-js/modules/web.dom-collections.iterator.js';
3
3
  import { createElement } from 'react';
4
- import { render } from 'react-dom';
4
+ import { render } from './react-render-adapter.js';
5
+ import composeRefs from './composeRefs.js';
6
+ import 'react-dom';
5
7
 
6
8
  /**
7
9
  * Wraps a component to add a "rerender" method
@@ -43,7 +45,8 @@ function rerenderHOC(ComposedComponent) {
43
45
  }
44
46
 
45
47
  this._propsCache = Object.assign({}, this.props, this._propsCache, props);
46
- return render( /*#__PURE__*/createElement(this.constructor, this._propsCache), container, callback);
48
+ this._propsCache.ref = composeRefs(this._propsCache.ref, callback);
49
+ render( /*#__PURE__*/createElement(this.constructor, this._propsCache), container);
47
50
  }
48
51
 
49
52
  };
@@ -75,6 +75,7 @@ import '../auth/response-parser.js';
75
75
  import 'es6-error';
76
76
  import '../auth/down-notification.js';
77
77
  import '../alert-service/alert-service.js';
78
+ import '../global/react-render-adapter.js';
78
79
  import '../alert/alert.js';
79
80
  import '@jetbrains/icons/exception';
80
81
  import '@jetbrains/icons/warning';
@@ -43,6 +43,7 @@ import '../link/clickableLink.js';
43
43
  import '../_helpers/link.js';
44
44
  import '../group/group.js';
45
45
  import '../_helpers/group.js';
46
+ import '../global/react-render-adapter.js';
46
47
  import '../global/listeners.js';
47
48
  import '../http/http.js';
48
49
  import '../global/promise-with-timeout.js';
@@ -13,6 +13,7 @@ import 'es6-error';
13
13
  import '../global/url.js';
14
14
  import '../auth/down-notification.js';
15
15
  import '../alert-service/alert-service.js';
16
+ import '../global/react-render-adapter.js';
16
17
  import 'react-dom';
17
18
  import '../global/get-uid.js';
18
19
  import '../alert/alert.js';
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { unmountComponentAtNode, render } from 'react-dom';
2
+ import { unmountComponentAtNode, render } from '../global/react-render-adapter.js';
3
3
  import LoginDialog from './login-dialog.js';
4
- import '../_helpers/_rollupPluginBabelHelpers.js';
5
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
+ import 'react-dom';
6
+ import '../_helpers/_rollupPluginBabelHelpers.js';
6
7
  import 'prop-types';
7
8
  import '../dialog/dialog.js';
8
9
  import 'classnames';
@@ -71,6 +71,8 @@ import '../list/consts.js';
71
71
  import '../input/input.js';
72
72
  import '../_helpers/input.js';
73
73
  import '../global/rerender-hoc.js';
74
+ import '../global/react-render-adapter.js';
75
+ import '../global/composeRefs.js';
74
76
  import '../global/fuzzy-highlight.js';
75
77
  import '../select/select__popup.js';
76
78
  import '@jetbrains/icons/search';
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -76,6 +77,7 @@ import '../list/consts.js';
76
77
  import '../input/input.js';
77
78
  import '../_helpers/input.js';
78
79
  import '../global/rerender-hoc.js';
80
+ import '../global/composeRefs.js';
79
81
  import '../global/fuzzy-highlight.js';
80
82
  import '../select/select__popup.js';
81
83
  import '@jetbrains/icons/search';
@@ -14,6 +14,7 @@ import 'react';
14
14
  import 'prop-types';
15
15
  import '../alert-service/alert-service.js';
16
16
  import 'core-js/modules/web.dom-collections.iterator.js';
17
+ import '../global/react-render-adapter.js';
17
18
  import 'react-dom';
18
19
  import '../global/get-uid.js';
19
20
  import '../alert/alert.js';
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -71,6 +71,8 @@ import 'conic-gradient';
71
71
  import '../global/supports-css.js';
72
72
  import '../global/inject-styles.js';
73
73
  import '../global/radial-gradient-mask.js';
74
+ import '../global/react-render-adapter.js';
75
+ import '../global/composeRefs.js';
74
76
  import '@jetbrains/icons/chevron-10px';
75
77
  import '../_helpers/button__classes.js';
76
78
 
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -74,6 +75,7 @@ import '../global/supports-css.js';
74
75
  import '../global/inject-styles.js';
75
76
  import '../global/radial-gradient-mask.js';
76
77
  import '../global/rerender-hoc.js';
78
+ import '../global/composeRefs.js';
77
79
  import '../button/button.js';
78
80
  import '@jetbrains/icons/chevron-10px';
79
81
  import '../_helpers/button__classes.js';
@@ -65,6 +65,8 @@ import '../list/list__separator.js';
65
65
  import '../list/list__hint.js';
66
66
  import '../list/consts.js';
67
67
  import '../_helpers/input.js';
68
+ import '../global/react-render-adapter.js';
69
+ import '../global/composeRefs.js';
68
70
  import '@jetbrains/icons/search';
69
71
  import '../loader-inline/loader-inline.js';
70
72
  import '../_helpers/inject-styles.js';
@@ -1,13 +1,14 @@
1
+ import { a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
1
2
  import angular from 'angular';
2
3
  import React from 'react';
3
- import { unmountComponentAtNode, render } from 'react-dom';
4
+ import { unmountComponentAtNode, render } from '../global/react-render-adapter.js';
4
5
  import getEventKey from '../global/get-event-key.js';
5
6
  import Select, { RerenderableSelect } from '../select/select.js';
6
7
  import MessageBundle from '../message-bundle-ng/message-bundle-ng.js';
7
8
  import SelectNgOptions from './select-ng__options.js';
8
9
  import SelectLazy from './select-ng__lazy.js';
9
- import '../_helpers/_rollupPluginBabelHelpers.js';
10
10
  import 'core-js/modules/web.dom-collections.iterator.js';
11
+ import 'react-dom';
11
12
  import 'core-js/modules/es.string.replace.js';
12
13
  import 'classnames';
13
14
  import 'prop-types';
@@ -68,6 +69,7 @@ import '../list/consts.js';
68
69
  import '../input/input.js';
69
70
  import '../_helpers/input.js';
70
71
  import '../global/rerender-hoc.js';
72
+ import '../global/composeRefs.js';
71
73
  import '../global/fuzzy-highlight.js';
72
74
  import '../select/select__popup.js';
73
75
  import '@jetbrains/icons/search';
@@ -439,9 +441,19 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
439
441
  return sizes[ctrl.size] || sizes.FULL;
440
442
  }
441
443
 
444
+ function selectRef(instance) {
445
+ if (instance != null) {
446
+ ctrl.selectInstance = instance;
447
+ }
448
+ }
449
+
442
450
  function reRenderSelect(props) {
443
- if (ctrl.selectInstance.node) {
444
- ctrl.selectInstance.rerender(props);
451
+ var _ctrl$selectInstance;
452
+
453
+ if ((_ctrl$selectInstance = ctrl.selectInstance) !== null && _ctrl$selectInstance !== void 0 && _ctrl$selectInstance.node) {
454
+ ctrl.selectInstance.rerender({ ...props,
455
+ ref: selectRef
456
+ });
445
457
  }
446
458
  }
447
459
  /**
@@ -588,9 +600,11 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
588
600
  ctrl.config = angular.extend({}, ctrl.defaultConfig, ctrl.config || {});
589
601
 
590
602
  if (getType() === 'suggest' || getType() === 'input') {
591
- ctrl.selectInstance = render( /*#__PURE__*/React.createElement(RerenderableSelect, ctrl.config), container);
603
+ render( /*#__PURE__*/React.createElement(RerenderableSelect, _extends({
604
+ ref: selectRef
605
+ }, ctrl.config)), container);
592
606
  } else {
593
- ctrl.selectInstance = new SelectLazy(container, ctrl.config, ctrl, getType());
607
+ ctrl.selectInstance = new SelectLazy(container, ctrl.config, ctrl, getType(), selectRef);
594
608
  } // Preserve existing contents of the directive
595
609
 
596
610
 
@@ -1,9 +1,10 @@
1
- import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
1
+ import { _ as _defineProperty, a as _extends } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import angular from 'angular';
3
- import { render, hydrate } from 'react-dom';
4
3
  import React from 'react';
4
+ import { render, hydrate } from '../global/react-render-adapter.js';
5
5
  import { RerenderableSelect } from '../select/select.js';
6
6
  import 'core-js/modules/web.dom-collections.iterator.js';
7
+ import 'react-dom';
7
8
  import 'core-js/modules/es.string.replace.js';
8
9
  import 'classnames';
9
10
  import 'prop-types';
@@ -65,6 +66,7 @@ import '../list/consts.js';
65
66
  import '../input/input.js';
66
67
  import '../_helpers/input.js';
67
68
  import '../global/rerender-hoc.js';
69
+ import '../global/composeRefs.js';
68
70
  import '../global/fuzzy-highlight.js';
69
71
  import '../select/select__popup.js';
70
72
  import '@jetbrains/icons/search';
@@ -83,7 +85,7 @@ import '../text/text.js';
83
85
  import '../_helpers/select__filter.js';
84
86
 
85
87
  class SelectLazy {
86
- constructor(container, props, ctrl, type) {
88
+ constructor(container, props, ctrl, type, selectRef) {
87
89
  _defineProperty(this, "onClick", () => {
88
90
  this._clickHandler();
89
91
  });
@@ -93,6 +95,7 @@ class SelectLazy {
93
95
  this.props = props || {};
94
96
  this.type = type;
95
97
  this.node = container;
98
+ this.selectRef = selectRef;
96
99
  this._popup = {
97
100
  isVisible: angular.noop
98
101
  };
@@ -129,7 +132,9 @@ class SelectLazy {
129
132
  }
130
133
 
131
134
  render(props) {
132
- this.reactSelect = /*#__PURE__*/React.createElement(RerenderableSelect, Object.assign({}, this.props, props || {}));
135
+ this.reactSelect = /*#__PURE__*/React.createElement(RerenderableSelect, _extends({
136
+ ref: this.selectRef
137
+ }, Object.assign({}, this.props, props || {})));
133
138
  this.props = this.reactSelect.props;
134
139
 
135
140
  if (this.type !== 'dropdown') {
@@ -143,11 +148,9 @@ class SelectLazy {
143
148
  this.detachEvents();
144
149
 
145
150
  if (this.type === 'dropdown') {
146
- this.ctrl.selectInstance = render(this.reactSelect, this.container);
147
-
148
- this.ctrl.selectInstance._openPopupIfClosed();
151
+ render(this.reactSelect, this.container);
149
152
  } else {
150
- this.ctrl.selectInstance = hydrate(this.reactSelect, this.container);
153
+ hydrate(this.reactSelect, this.container);
151
154
  }
152
155
  }
153
156
 
@@ -4,6 +4,7 @@ import 'core-js/modules/web.dom-collections.iterator.js';
4
4
  import '../alert-service/alert-service.js';
5
5
  import '../_helpers/_rollupPluginBabelHelpers.js';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/get-uid.js';
9
10
  import '../alert/alert.js';
@@ -2,6 +2,7 @@ import 'core-js/modules/web.dom-collections.iterator.js';
2
2
  import alertService from '../alert-service/alert-service.js';
3
3
  import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'react';
5
+ import '../global/react-render-adapter.js';
5
6
  import 'react-dom';
6
7
  import '../global/get-uid.js';
7
8
  import '../alert/alert.js';
@@ -85,17 +85,21 @@ class SmartTable extends PureComponent {
85
85
  UNSAFE_componentWillReceiveProps(nextProps) {
86
86
  const {
87
87
  data,
88
- isItemSelectable
88
+ isItemSelectable,
89
+ selection
89
90
  } = nextProps;
90
91
 
91
- if (this.props.data !== data || this.props.isItemSelectable !== isItemSelectable) {
92
- const selection = new Selection({
93
- data,
94
- isItemSelectable
95
- });
92
+ if (this.props.remoteSelection && this.props.selection !== selection) {
96
93
  this.setState({
97
94
  selection
98
95
  });
96
+ } else if (this.props.data !== data || this.props.isItemSelectable !== isItemSelectable) {
97
+ this.setState({
98
+ selection: new Selection({
99
+ data,
100
+ isItemSelectable
101
+ })
102
+ });
99
103
  }
100
104
  }
101
105
 
@@ -23,6 +23,7 @@ import '../global/schedule-raf.js';
23
23
  import '../pager-ng/pager-ng.js';
24
24
  import '../global/angular-component-factory.js';
25
25
  import 'react';
26
+ import '../global/react-render-adapter.js';
26
27
  import 'react-dom';
27
28
  import '../global/react-dom-renderer.js';
28
29
  import 'prop-types';
@@ -88,6 +89,7 @@ import '../list/consts.js';
88
89
  import '../input/input.js';
89
90
  import '../_helpers/input.js';
90
91
  import '../global/rerender-hoc.js';
92
+ import '../global/composeRefs.js';
91
93
  import '../global/fuzzy-highlight.js';
92
94
  import '../select/select__popup.js';
93
95
  import '@jetbrains/icons/search';
@@ -5,6 +5,7 @@ import '../global/angular-component-factory.js';
5
5
  import '../_helpers/_rollupPluginBabelHelpers.js';
6
6
  import 'core-js/modules/web.dom-collections.iterator.js';
7
7
  import 'react';
8
+ import '../global/react-render-adapter.js';
8
9
  import 'react-dom';
9
10
  import '../global/ring-angular-component.js';
10
11
  import '../global/react-dom-renderer.js';
@@ -78,6 +79,7 @@ import '../list/consts.js';
78
79
  import '../input/input.js';
79
80
  import '../_helpers/input.js';
80
81
  import '../global/rerender-hoc.js';
82
+ import '../global/composeRefs.js';
81
83
  import '../global/fuzzy-highlight.js';
82
84
  import '../select/select__popup.js';
83
85
  import '@jetbrains/icons/search';
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -80,6 +80,8 @@ import '../shortcuts/shortcuts-hoc.js';
80
80
  import '../text/text.js';
81
81
  import '../_helpers/select__filter.js';
82
82
  import '../tag/tag.js';
83
+ import '../global/react-render-adapter.js';
84
+ import '../global/composeRefs.js';
83
85
 
84
86
  var modules_5aa8aaf3 = {"tagsInput":"tagsInput_rui_1a67","tagsInputLegacyMode":"tagsInputLegacyMode_rui_1a67","tagsList":"tagsList_rui_1a67","tag":"tag_rui_1a67","tagsInputDisabled":"tagsInputDisabled_rui_1a67","underline":"underline_rui_1a67","tagsInputFocused":"tagsInputFocused_rui_1a67","tagsSelect":"tagsSelect_rui_1a67","focusUnderline":"focusUnderline_rui_1a67"};
85
87
 
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -69,6 +70,7 @@ import '../list/consts.js';
69
70
  import '../input/input.js';
70
71
  import '../_helpers/input.js';
71
72
  import '../global/rerender-hoc.js';
73
+ import '../global/composeRefs.js';
72
74
  import '../global/fuzzy-highlight.js';
73
75
  import '../select/select__popup.js';
74
76
  import '@jetbrains/icons/search';
@@ -4,6 +4,7 @@ import '../_helpers/_rollupPluginBabelHelpers.js';
4
4
  import 'core-js/modules/web.dom-collections.iterator.js';
5
5
  import 'angular';
6
6
  import 'react';
7
+ import '../global/react-render-adapter.js';
7
8
  import 'react-dom';
8
9
  import '../global/ring-angular-component.js';
9
10
  import '../global/react-dom-renderer.js';
@@ -1,10 +1,11 @@
1
1
  import angular from 'angular';
2
2
  import { createElement } from 'react';
3
- import { render } from 'react-dom';
4
3
  import classNames from 'classnames';
4
+ import { render } from '../global/react-render-adapter.js';
5
5
  import Popup from '../popup/popup.js';
6
- import '../_helpers/_rollupPluginBabelHelpers.js';
7
6
  import 'core-js/modules/web.dom-collections.iterator.js';
7
+ import 'react-dom';
8
+ import '../_helpers/_rollupPluginBabelHelpers.js';
8
9
  import 'core-js/modules/es.string.replace.js';
9
10
  import 'prop-types';
10
11
  import '../global/get-uid.js';
@@ -65,11 +66,14 @@ name.factory('RgTooltipPopup', function RgTooltipPopupDirective() {
65
66
  trapFocus: false
66
67
  };
67
68
 
68
- this.renderPopup = props => {
69
- this.popup = render( /*#__PURE__*/createElement(Popup, { ...this.defaultProps,
70
- ...props
71
- }, this.text), this.wrapperElement);
72
- };
69
+ this.renderPopup = props => render( /*#__PURE__*/createElement(Popup, { ...this.defaultProps,
70
+ ...props,
71
+ ref: instance => {
72
+ if (instance != null) {
73
+ this.popup = instance;
74
+ }
75
+ }
76
+ }, this.text), this.wrapperElement);
73
77
 
74
78
  this.displayTooltip = customClass => {
75
79
  const text = textGetter();
@@ -1,13 +1,14 @@
1
1
  import { _ as _defineProperty } from '../_helpers/_rollupPluginBabelHelpers.js';
2
2
  import 'core-js/modules/web.dom-collections.iterator.js';
3
3
  import React from 'react';
4
- import { render, unmountComponentAtNode } from 'react-dom';
4
+ import { render, unmountComponentAtNode } from '../global/react-render-adapter.js';
5
5
  import ActualStorage from '../storage/storage.js';
6
6
  import alertService from '../alert-service/alert-service.js';
7
7
  import Link from '../link/link.js';
8
8
  import Alert from '../alert/alert.js';
9
9
  import Group from '../group/group.js';
10
10
  import UserAgreement from './user-agreement.js';
11
+ import 'react-dom';
11
12
  import '../storage/storage__local.js';
12
13
  import '../global/get-uid.js';
13
14
  import 'classnames';
@@ -5,6 +5,7 @@ import UserCardTooltip from '../user-card/tooltip.js';
5
5
  import '../_helpers/_rollupPluginBabelHelpers.js';
6
6
  import 'core-js/modules/web.dom-collections.iterator.js';
7
7
  import 'react';
8
+ import '../global/react-render-adapter.js';
8
9
  import 'react-dom';
9
10
  import '../global/ring-angular-component.js';
10
11
  import '../global/react-dom-renderer.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetbrains/ring-ui",
3
- "version": "4.1.27",
3
+ "version": "4.2.1",
4
4
  "description": "JetBrains UI library",
5
5
  "author": "JetBrains",
6
6
  "license": "Apache-2.0",
@@ -70,31 +70,31 @@
70
70
  "@babel/cli": "^7.17.6",
71
71
  "@babel/eslint-parser": "^7.17.0",
72
72
  "@jetbrains/eslint-config": "^5.3.2",
73
- "@jetbrains/generator-ring-ui": "^4.1.9",
73
+ "@jetbrains/generator-ring-ui": "^4.1.10",
74
74
  "@jetbrains/stylelint-config": "^3.0.2",
75
75
  "@primer/octicons": "^17.0.0",
76
76
  "@rollup/plugin-babel": "^5.3.1",
77
77
  "@rollup/plugin-replace": "^4.0.0",
78
- "@storybook/addon-a11y": "6.4.19",
79
- "@storybook/addon-docs": "6.4.19",
80
- "@storybook/addon-essentials": "6.4.19",
81
- "@storybook/addon-storyshots": "6.4.3",
82
- "@storybook/addon-storyshots-puppeteer": "6.4.3",
83
- "@storybook/addon-storysource": "6.4.19",
84
- "@storybook/addons": "6.4.19",
85
- "@storybook/builder-webpack5": "6.4.19",
86
- "@storybook/client-api": "6.4.19",
87
- "@storybook/core": "6.4.19",
88
- "@storybook/html": "6.4.19",
89
- "@storybook/manager-webpack5": "^6.4.19",
90
- "@storybook/source-loader": "6.4.19",
91
- "@storybook/theming": "6.4.19",
92
- "@testing-library/react": "^12.1.4",
93
- "@testing-library/user-event": "^13.5.0",
78
+ "@storybook/addon-a11y": "6.5.0-alpha.59",
79
+ "@storybook/addon-docs": "6.5.0-alpha.59",
80
+ "@storybook/addon-essentials": "6.4.20",
81
+ "@storybook/addon-storyshots": "6.5.0-alpha.59",
82
+ "@storybook/addon-storyshots-puppeteer": "6.5.0-alpha.59",
83
+ "@storybook/addon-storysource": "6.5.0-alpha.59",
84
+ "@storybook/addons": "6.5.0-alpha.64",
85
+ "@storybook/builder-webpack5": "6.5.0-alpha.64",
86
+ "@storybook/client-api": "6.5.0-alpha.59",
87
+ "@storybook/core": "6.5.0-alpha.64",
88
+ "@storybook/html": "6.5.0-alpha.59",
89
+ "@storybook/manager-webpack5": "6.5.0-alpha.59",
90
+ "@storybook/source-loader": "6.5.0-alpha.59",
91
+ "@storybook/theming": "6.5.0-alpha.59",
92
+ "@testing-library/react": "^13.0.0",
93
+ "@testing-library/user-event": "^14.1.0",
94
94
  "@wojtekmaj/enzyme-adapter-react-17": "^0.6.7",
95
95
  "angular": "^1.8.2",
96
96
  "angular-mocks": "^1.8.2",
97
- "angular-route": "^1.8.2",
97
+ "angular-route": "^1.8.3",
98
98
  "babel-plugin-react-docgen": "^4.2.1",
99
99
  "babel-plugin-require-context-hook": "^1.0.0",
100
100
  "chai": "^4.3.6",
@@ -132,9 +132,9 @@
132
132
  "pinst": "^3.0.0",
133
133
  "puppeteer": "^13.5.1",
134
134
  "raw-loader": "^4.0.2",
135
- "react": "^17.0.2",
136
- "react-dom": "^17.0.2",
137
- "react-test-renderer": "^17.0.2",
135
+ "react": "^18.0.0",
136
+ "react-dom": "^18.0.0",
137
+ "react-test-renderer": "^18.0.0",
138
138
  "regenerator-runtime": "^0.13.9",
139
139
  "rollup": "^2.70.1",
140
140
  "rollup-plugin-clear": "^2.0.7",
@@ -147,7 +147,7 @@
147
147
  "teamcity-service-messages": "^0.1.12",
148
148
  "terser-webpack-plugin": "^5.3.1",
149
149
  "wallaby-webpack": "^3.9.16",
150
- "webpack": "^5.70.0",
150
+ "webpack": "^5.72.0",
151
151
  "webpack-cli": "^4.9.2",
152
152
  "xmlappend": "^1.0.4",
153
153
  "yo": "^4.3.0"
@@ -156,7 +156,7 @@
156
156
  "core-js": ">=3.0.0",
157
157
  "react": ">=16.8.0",
158
158
  "react-dom": ">=16.8.0",
159
- "webpack": "^5.70.0"
159
+ "webpack": "^5.72.0"
160
160
  },
161
161
  "peerDependenciesMeta": {
162
162
  "webpack": {
@@ -184,7 +184,7 @@
184
184
  "deep-equal": "^2.0.4",
185
185
  "element-resize-detector": "^1.2.4",
186
186
  "es6-error": "^4.1.1",
187
- "eslint-plugin-react-hooks": "^4.3.0",
187
+ "eslint-plugin-react-hooks": "^4.4.0",
188
188
  "extricate-loader": "^3.0.0",
189
189
  "fastdom": "^1.0.10",
190
190
  "file-loader": "^6.2.0",
@@ -221,5 +221,5 @@
221
221
  "node": ">=7.4",
222
222
  "npm": ">=6.0.0"
223
223
  },
224
- "gitHead": "91ee90ef36ff1b781a040d70e62da7eed0e9f960"
224
+ "gitHead": "d2354ec4b296cfa3cae3e988197efbc1f49eedd2"
225
225
  }