@jetbrains/ring-ui 5.0.0-beta.18 → 5.0.0-beta.19
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.
- package/CHANGELOG.md +13 -0
- package/components/alert/alert.css +1 -1
- package/components/alert-service/alert-service.js +1 -1
- package/components/analytics/analytics__ga-plugin.d.ts +1 -1
- package/components/analytics/analytics__ga-plugin.js +11 -3
- package/components/auth/auth__core.js +5 -1
- package/components/auth-dialog-service/auth-dialog-service.js +1 -1
- package/components/button/button.d.ts +2 -1
- package/components/confirm-service/confirm-service.js +1 -1
- package/components/data-list/data-list.d.ts +4 -8
- package/components/date-picker/date-picker.css +1 -0
- package/components/date-picker/date-popup.js +0 -1
- package/components/dialog/dialog.d.ts +1 -1
- package/components/dropdown/dropdown.d.ts +2 -2
- package/components/global/angular-component-factory.js +1 -1
- package/components/global/promise-with-timeout.d.ts +2 -1
- package/components/global/promise-with-timeout.js +5 -2
- package/components/global/react-render-adapter.d.ts +29 -0
- package/components/global/react-render-adapter.js +36 -0
- package/components/global/rerender-hoc.d.ts +5 -9
- package/components/global/rerender-hoc.js +4 -2
- package/components/global/variables.css +0 -1
- package/components/global/variables.d.ts +0 -1
- package/components/global/variables_dark.css +0 -1
- package/components/header/profile.d.ts +3 -3
- package/components/island/adaptive-island-hoc.d.ts +4 -8
- package/components/island/content.d.ts +33 -2
- package/components/island/content.js +5 -4
- package/components/island/island.d.ts +4 -8
- package/components/link/clickableLink.d.ts +1 -1
- package/components/link/link.d.ts +14 -22
- package/components/list/consts.d.ts +3 -1
- package/components/list/list.d.ts +2 -0
- package/components/list/list.js +12 -13
- package/components/login-dialog/service.js +1 -1
- package/components/message/message.css +9 -24
- package/components/message/message.js +25 -12
- package/components/popup/popup.d.ts +6 -1
- package/components/popup/popup.js +4 -2
- package/components/popup/position.d.ts +1 -1
- package/components/popup/position.js +2 -2
- package/components/popup-menu/popup-menu.d.ts +1 -0
- package/components/query-assist/query-assist.d.ts +4 -8
- package/components/radio/radio.d.ts +1 -1
- package/components/select/select.css +3 -0
- package/components/select/select.d.ts +5 -8
- package/components/select/select.js +9 -4
- package/components/select-ng/select-ng.js +16 -5
- package/components/select-ng/select-ng__lazy.js +13 -8
- package/components/select-ng/select-ng__lazy.test.js +3 -1
- package/components/shortcuts/shortcuts-hoc.d.ts +4 -8
- package/components/shortcuts/shortcuts.d.ts +1 -1
- package/components/tab-trap/tab-trap.d.ts +1 -1
- package/components/table/disable-hover-hoc.d.ts +4 -8
- package/components/table/header.d.ts +8 -1
- package/components/table/smart-table.d.ts +1 -0
- package/components/table/smart-table.js +7 -3
- package/components/table/table.d.ts +4 -8
- package/components/tabs/collapsible-more.js +2 -2
- package/components/tabs/collapsible-tabs.d.ts +2 -2
- package/components/tabs/collapsible-tabs.js +1 -1
- package/components/tabs/custom-item.d.ts +1 -1
- package/components/tabs/dumb-tabs.d.ts +1 -1
- package/components/tabs/tab-link.d.ts +1 -1
- package/components/tabs/tab.d.ts +1 -1
- package/components/tag/tag.js +0 -1
- package/components/tags-input/tags-input.d.ts +4 -8
- package/components/tags-list/tags-list.d.ts +1 -1
- package/components/tooltip-ng/tooltip-ng.js +13 -10
- package/components/user-agreement/service.d.ts +14 -62
- package/components/user-agreement/service.js +1 -1
- package/dist/_helpers/anchor.js +1 -1
- package/dist/_helpers/badge.js +1 -1
- package/dist/_helpers/button-group.js +1 -1
- package/dist/_helpers/button-set.js +1 -1
- package/dist/_helpers/button-toolbar.js +1 -1
- package/dist/_helpers/button__classes.js +2 -2
- package/dist/_helpers/card.js +1 -1
- package/dist/_helpers/checkbox.js +1 -1
- package/dist/_helpers/date-picker.js +1 -1
- package/dist/_helpers/dialog__body-scroll-preventer.js +3 -2
- package/dist/_helpers/error-message.js +1 -1
- package/dist/_helpers/footer.js +1 -1
- package/dist/_helpers/grid.js +1 -1
- package/dist/_helpers/group.js +1 -1
- package/dist/_helpers/header.js +1 -1
- package/dist/_helpers/icon.js +1 -1
- package/dist/_helpers/input.js +1 -1
- package/dist/_helpers/island.js +1 -1
- package/dist/_helpers/link.js +1 -1
- package/dist/_helpers/list.js +1 -1
- package/dist/_helpers/loader-inline.js +1 -1
- package/dist/_helpers/loader-screen.js +1 -1
- package/dist/_helpers/panel.js +1 -1
- package/dist/_helpers/query-assist__suggestions.js +1 -1
- package/dist/_helpers/radio.js +1 -1
- package/dist/_helpers/select__filter.js +2 -1
- package/dist/_helpers/services-link.js +2 -2
- package/dist/_helpers/sidebar.js +3 -2
- package/dist/_helpers/table.js +1 -1
- package/dist/_helpers/tabs.js +1 -1
- package/dist/_helpers/theme.js +2 -1
- package/dist/_helpers/title.js +2 -1
- package/dist/alert/alert.js +3 -1
- package/dist/alert/container.js +1 -1
- package/dist/alert-service/alert-service.js +4 -1
- package/dist/analytics/analytics.js +4 -3
- package/dist/analytics/analytics__custom-plugin.js +2 -1
- package/dist/analytics/analytics__fus-plugin.js +1 -0
- package/dist/analytics/analytics__ga-plugin.d.ts +1 -1
- package/dist/analytics/analytics__ga-plugin.js +15 -7
- package/dist/analytics/analytics__plugin-utils.js +4 -3
- package/dist/analytics-ng/analytics-ng.js +3 -2
- package/dist/auth/auth.js +3 -0
- package/dist/auth/auth__core.js +19 -12
- package/dist/auth/background-flow.js +2 -1
- package/dist/auth/down-notification.js +4 -1
- package/dist/auth/iframe-flow.js +3 -0
- package/dist/auth/landing.js +7 -4
- package/dist/auth/request-builder.js +1 -0
- package/dist/auth/response-parser.js +1 -0
- package/dist/auth/storage.js +3 -0
- package/dist/auth/token-validator.js +2 -0
- package/dist/auth/window-flow.js +2 -1
- package/dist/auth-dialog/auth-dialog.js +4 -2
- package/dist/auth-dialog-service/auth-dialog-service.js +4 -1
- package/dist/auth-ng/auth-ng.js +4 -1
- package/dist/autofocus-ng/autofocus-ng.js +1 -0
- package/dist/avatar/avatar-example-datauri.js +1 -23
- package/dist/avatar/avatar.js +5 -3
- package/dist/avatar/fallback-avatar.js +4 -3
- package/dist/avatar-editor-ng/avatar-editor-ng.js +3 -0
- package/dist/avatar-editor-ng/avatar-editor-ng__template.js +1 -28
- package/dist/avatar-ng/avatar-ng.js +3 -0
- package/dist/badge/badge.js +1 -0
- package/dist/badge-ng/badge-ng.js +2 -0
- package/dist/breadcrumb-ng/breadcrumb-ng.js +4 -28
- package/dist/button/button.d.ts +2 -1
- package/dist/button/button.js +2 -0
- package/dist/button-group-ng/button-group-ng.js +2 -1
- package/dist/button-ng/button-ng.js +5 -11
- package/dist/button-set-ng/button-set-ng.js +1 -1
- package/dist/button-toolbar-ng/button-toolbar-ng.js +1 -0
- package/dist/caret/caret.js +2 -0
- package/dist/checkbox/checkbox.js +2 -0
- package/dist/checkbox-ng/checkbox-ng.js +3 -20
- package/dist/code/code.js +4 -3
- package/dist/confirm/confirm.js +3 -1
- package/dist/confirm-ng/confirm-ng.js +3 -0
- package/dist/confirm-service/confirm-service.js +4 -1
- package/dist/content-layout/content-layout.js +1 -0
- package/dist/content-layout/sidebar.js +1 -0
- package/dist/data-list/data-list.d.ts +4 -8
- package/dist/data-list/data-list.js +2 -0
- package/dist/data-list/data-list.mock.js +1 -0
- package/dist/data-list/item.js +2 -0
- package/dist/data-list/selection.js +1 -0
- package/dist/data-list/title.js +2 -0
- package/dist/data-list-ng/data-list-ng.js +3 -0
- package/dist/date-picker/consts.js +1 -1
- package/dist/date-picker/date-input.js +3 -1
- package/dist/date-picker/date-picker.js +9 -7
- package/dist/date-picker/date-popup.js +3 -2
- package/dist/date-picker/day.js +1 -0
- package/dist/date-picker/month-names.js +1 -0
- package/dist/date-picker/month-slider.js +1 -0
- package/dist/date-picker/month.js +1 -0
- package/dist/date-picker/months.js +1 -0
- package/dist/date-picker/years.js +1 -0
- package/dist/dialog/dialog.d.ts +1 -1
- package/dist/dialog/dialog.js +2 -0
- package/dist/dialog/dialog__body-scroll-preventer.js +1 -0
- package/dist/dialog-ng/dialog-ng.js +7 -4
- package/dist/dialog-ng/dialog-ng__template.js +1 -70
- package/dist/docked-panel-ng/docked-panel-ng.js +2 -1
- package/dist/dropdown/anchor.js +2 -0
- package/dist/dropdown/dropdown.d.ts +2 -2
- package/dist/dropdown/dropdown.js +2 -0
- package/dist/dropdown-menu/dropdown-menu.js +3 -1
- package/dist/error-bubble/error-bubble.js +3 -1
- package/dist/error-message/error-message.js +3 -1
- package/dist/error-message-ng/error-message-ng.js +3 -21
- package/dist/footer/footer.js +1 -0
- package/dist/footer-ng/footer-ng.js +3 -14
- package/dist/form-ng/form-ng.js +2 -4
- package/dist/global/angular-component-factory.js +8 -6
- package/dist/global/create-stateful-context.js +3 -2
- package/dist/global/data-tests.js +2 -0
- package/dist/global/dom.js +1 -0
- package/dist/global/focus-sensor-hoc.js +1 -0
- package/dist/global/fuzzy-highlight.js +1 -1
- package/dist/global/inject-styles.js +5 -7
- package/dist/global/listeners.js +1 -0
- package/dist/global/memoize.js +2 -0
- package/dist/global/normalize-indent.js +2 -0
- package/dist/global/promise-with-timeout.d.ts +2 -1
- package/dist/global/promise-with-timeout.js +6 -2
- package/dist/global/react-dom-renderer.js +1 -0
- package/dist/global/react-render-adapter.d.ts +29 -0
- package/dist/global/react-render-adapter.js +41 -0
- package/dist/global/rerender-hoc.d.ts +5 -9
- package/dist/global/rerender-hoc.js +7 -3
- package/dist/global/theme.js +2 -0
- package/dist/global/trivial-template-tag.js +2 -0
- package/dist/global/url.js +3 -1
- package/dist/global/variables.d.ts +0 -1
- package/dist/grid/col.js +2 -1
- package/dist/grid/grid.js +1 -0
- package/dist/grid/row.js +1 -1
- package/dist/group-ng/group-ng.js +1 -1
- package/dist/header/header.js +3 -0
- package/dist/header/logo.js +2 -0
- package/dist/header/profile.d.ts +3 -3
- package/dist/header/profile.js +2 -0
- package/dist/header/services-link.js +1 -0
- package/dist/header/services.js +2 -0
- package/dist/header/smart-profile.js +5 -2
- package/dist/header/smart-services.js +4 -1
- package/dist/header/tray-icon.js +2 -0
- package/dist/heading/heading.js +3 -3
- package/dist/http/http.js +4 -2
- package/dist/http/http.mock.js +2 -0
- package/dist/hub-source/hub-source.js +1 -1
- package/dist/hub-source/hub-source__user.js +4 -2
- package/dist/hub-source/hub-source__users-groups.js +3 -2
- package/dist/icon/icon.js +3 -3
- package/dist/icon/icon__svg.js +2 -0
- package/dist/icon/index.js +2 -0
- package/dist/icon-ng/icon-ng.js +7 -5
- package/dist/input/input.js +4 -2
- package/dist/input-ng/input-ng.js +6 -59
- package/dist/island/adaptive-island-hoc.d.ts +4 -8
- package/dist/island/adaptive-island-hoc.js +4 -3
- package/dist/island/content.d.ts +33 -2
- package/dist/island/content.js +8 -4
- package/dist/island/header.js +3 -2
- package/dist/island/island.d.ts +4 -8
- package/dist/island/island.js +1 -0
- package/dist/island-ng/island-content-ng.js +2 -16
- package/dist/island-ng/island-header-ng.js +2 -8
- package/dist/island-ng/island-ng-class-fixer.js +2 -0
- package/dist/island-ng/island-ng.js +2 -8
- package/dist/link/clickableLink.d.ts +1 -1
- package/dist/link/clickableLink.js +1 -0
- package/dist/link/link.d.ts +14 -22
- package/dist/link/link.js +4 -3
- package/dist/link-ng/link-ng.js +1 -4
- package/dist/list/consts.d.ts +3 -1
- package/dist/list/list.d.ts +2 -0
- package/dist/list/list.js +29 -22
- package/dist/list/list__custom.js +1 -0
- package/dist/list/list__item.js +5 -3
- package/dist/list/list__link.js +1 -0
- package/dist/list/list__users-groups-source.js +3 -1
- package/dist/loader/loader.js +1 -0
- package/dist/loader/loader__core.js +5 -4
- package/dist/loader-inline/loader-inline.js +1 -0
- package/dist/loader-inline-ng/loader-inline-ng.js +1 -1
- package/dist/loader-ng/loader-ng.js +1 -0
- package/dist/loader-screen/loader-screen.js +1 -0
- package/dist/loader-screen-ng/loader-screen-ng.js +2 -6
- package/dist/login-dialog/login-dialog.js +3 -1
- package/dist/login-dialog/service.js +4 -1
- package/dist/markdown/code.js +1 -0
- package/dist/markdown/link.js +1 -0
- package/dist/markdown/markdown.js +2 -1
- package/dist/message/message.js +37 -31
- package/dist/old-browsers-message/old-browsers-message.js +2 -1
- package/dist/old-browsers-message/old-browsers-message__stop.js +1 -0
- package/dist/old-browsers-message/white-list.js +1 -0
- package/dist/pager/pager.js +5 -2
- package/dist/pager-ng/pager-ng.js +3 -0
- package/dist/panel-ng/panel-ng.js +1 -0
- package/dist/permissions/permissions.js +1 -1
- package/dist/permissions-ng/permissions-ng.js +4 -1
- package/dist/place-under-ng/place-under-ng.js +3 -2
- package/dist/popup/popup.d.ts +6 -1
- package/dist/popup/popup.js +11 -5
- package/dist/popup/position.d.ts +1 -1
- package/dist/popup/position.js +3 -2
- package/dist/popup-menu/popup-menu.d.ts +1 -0
- package/dist/popup-menu/popup-menu.js +2 -0
- package/dist/progress-bar/progress-bar.js +3 -2
- package/dist/progress-bar-ng/progress-bar-ng.js +2 -0
- package/dist/promised-click-ng/promised-click-ng.js +2 -0
- package/dist/proxy-attrs/proxy-attrs.js +5 -3
- package/dist/query-assist/query-assist.d.ts +4 -8
- package/dist/query-assist/query-assist.js +6 -2
- package/dist/query-assist/query-assist__suggestions.js +2 -0
- package/dist/query-assist-ng/query-assist-ng.js +4 -0
- package/dist/radio/radio.d.ts +1 -1
- package/dist/radio/radio.js +1 -0
- package/dist/radio/radio__item.js +1 -0
- package/dist/radio-ng/radio-ng.js +2 -18
- package/dist/save-field-ng/save-field-ng.js +3 -1
- package/dist/save-field-ng/save-field-ng__template.js +1 -32
- package/dist/select/select.d.ts +5 -8
- package/dist/select/select.js +20 -11
- package/dist/select/select__filter.js +2 -0
- package/dist/select/select__popup.js +3 -1
- package/dist/select-ng/select-ng.js +21 -6
- package/dist/select-ng/select-ng__lazy.js +18 -10
- package/dist/select-ng/select-ng__options.js +2 -2
- package/dist/shortcuts/shortcuts-hoc.d.ts +4 -8
- package/dist/shortcuts/shortcuts-hoc.js +4 -3
- package/dist/shortcuts/shortcuts.d.ts +1 -1
- package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +3 -0
- package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +1 -48
- package/dist/shortcuts-ng/shortcuts-ng.js +4 -3
- package/dist/sidebar-ng/sidebar-ng.js +2 -0
- package/dist/sidebar-ng/sidebar-ng__button-template.js +1 -18
- package/dist/sidebar-ng/sidebar-ng__template.js +1 -10
- package/dist/storage/storage.js +3 -0
- package/dist/storage/storage__fallback.js +4 -3
- package/dist/storage/storage__local.js +3 -0
- package/dist/style.css +1 -1
- package/dist/tab-trap/tab-trap.d.ts +1 -1
- package/dist/tab-trap/tab-trap.js +2 -1
- package/dist/table/cell.js +1 -0
- package/dist/table/disable-hover-hoc.d.ts +4 -8
- package/dist/table/disable-hover-hoc.js +4 -3
- package/dist/table/header-cell.js +2 -0
- package/dist/table/header.d.ts +8 -1
- package/dist/table/header.js +2 -0
- package/dist/table/multitable.js +1 -0
- package/dist/table/row-with-focus-sensor.js +2 -0
- package/dist/table/row.js +3 -1
- package/dist/table/selection-adapter.js +2 -0
- package/dist/table/selection-shortcuts-hoc.js +1 -0
- package/dist/table/selection.js +1 -0
- package/dist/table/smart-table.d.ts +1 -0
- package/dist/table/smart-table.js +12 -6
- package/dist/table/table.d.ts +4 -8
- package/dist/table/table.js +2 -0
- package/dist/table-legacy-ng/table-legacy-ng.js +11 -45
- package/dist/table-legacy-ng/table-legacy-ng__pager.js +4 -7
- package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +2 -1
- package/dist/table-ng/smart-table-ng.js +3 -0
- package/dist/table-ng/table-ng.js +3 -0
- package/dist/tabs/collapsible-more.js +3 -1
- package/dist/tabs/collapsible-tab.js +1 -0
- package/dist/tabs/collapsible-tabs.d.ts +2 -2
- package/dist/tabs/collapsible-tabs.js +2 -0
- package/dist/tabs/custom-item.d.ts +1 -1
- package/dist/tabs/dumb-tabs.d.ts +1 -1
- package/dist/tabs/dumb-tabs.js +2 -0
- package/dist/tabs/smart-tabs.js +2 -0
- package/dist/tabs/tab-link.d.ts +1 -1
- package/dist/tabs/tab-link.js +1 -0
- package/dist/tabs/tab.d.ts +1 -1
- package/dist/tabs/tab.js +1 -0
- package/dist/tabs/tabs.js +2 -0
- package/dist/tabs-ng/tabs-ng.js +1 -0
- package/dist/tabs-ng/tabs-ng__template.js +1 -38
- package/dist/tag/tag.js +3 -2
- package/dist/tags-input/tags-input.d.ts +4 -8
- package/dist/tags-input/tags-input.js +4 -1
- package/dist/tags-input-ng/tags-input-ng.js +3 -0
- package/dist/tags-list/tags-list.d.ts +1 -1
- package/dist/tags-list/tags-list.js +2 -0
- package/dist/template-ng/template-ng.js +1 -0
- package/dist/text/text.js +1 -1
- package/dist/theme-ng/theme-ng.js +1 -0
- package/dist/toggle/toggle.js +2 -1
- package/dist/toggle-ng/toggle-ng.js +2 -0
- package/dist/tooltip/tooltip.js +3 -1
- package/dist/tooltip-ng/tooltip-ng.js +12 -6
- package/dist/user-agreement/service.d.ts +14 -62
- package/dist/user-agreement/service.js +4 -1
- package/dist/user-agreement/toolbox.eula.js +1 -160
- package/dist/user-agreement/user-agreement.js +3 -1
- package/dist/user-card/card.js +2 -0
- package/dist/user-card/smart-user-card-tooltip.js +2 -0
- package/dist/user-card/tooltip.js +2 -0
- package/dist/user-card/user-card.js +2 -0
- package/dist/user-card-ng/user-card-ng.js +3 -0
- package/package.json +64 -64
package/CHANGELOG.md
CHANGED
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
You can also pass `Theme.AUTO` to use the user-defined system theme.
|
|
40
40
|
The only exceptions are the components that provide dark context by default: Alert, Header, Message. Those still accept a `theme` prop.
|
|
41
41
|
- `--ring-dark-*` CSS custom properties are removed, `--ring-dark-text-color` is renamed to `--ring-white-text-color`
|
|
42
|
+
- `--ring-message-background-color` is removed in favor of `--ring-popup-background-color`
|
|
42
43
|
- The codebase has migrated to TypeScript
|
|
43
44
|
- `react-markdown` has been updated to v7, which affects the props of `Markdown` component. The most notable change is replacing `source` with `children`:
|
|
44
45
|
```js
|
|
@@ -52,6 +53,18 @@
|
|
|
52
53
|
- Removed `core-js@2` support
|
|
53
54
|
- Removed `webpack@4` support
|
|
54
55
|
|
|
56
|
+
## [4.2.0]
|
|
57
|
+
|
|
58
|
+
### React 18 support
|
|
59
|
+
|
|
60
|
+
To enable the new root API, add the following code before any rendering:
|
|
61
|
+
```js
|
|
62
|
+
import * as client from 'react-dom/client'
|
|
63
|
+
import {setClient} from '@jetbrains/ring-ui/components/global/react-render-adapter'
|
|
64
|
+
|
|
65
|
+
setClient(client)
|
|
66
|
+
```
|
|
67
|
+
|
|
55
68
|
## [4.1.0]
|
|
56
69
|
|
|
57
70
|
### Pre-built version
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
pointer-events: auto;
|
|
25
25
|
|
|
26
26
|
border-radius: var(--ring-border-radius);
|
|
27
|
-
background-color: var(--ring-
|
|
27
|
+
background-color: var(--ring-popup-background-color);
|
|
28
28
|
box-shadow: var(--ring-popup-shadow);
|
|
29
29
|
|
|
30
30
|
font-size: var(--ring-font-size);
|
|
@@ -10,7 +10,7 @@ declare global {
|
|
|
10
10
|
* @constructor
|
|
11
11
|
*/
|
|
12
12
|
export default class AnalyticsGAPlugin implements AnalyticsPlugin {
|
|
13
|
-
constructor(gaId?: string | undefined, isDevelopment?: boolean | undefined, domain?: string);
|
|
13
|
+
constructor(gaId?: string | undefined, isDevelopment?: boolean | undefined, domain?: string, cookielessUserIdentifier?: string | undefined);
|
|
14
14
|
trackEvent(category: string, action: string): void;
|
|
15
15
|
trackPageView(path: string): void;
|
|
16
16
|
get serializeAdditionalInfo(): boolean;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @constructor
|
|
5
5
|
*/
|
|
6
6
|
export default class AnalyticsGAPlugin {
|
|
7
|
-
constructor(gaId, isDevelopment, domain) {
|
|
7
|
+
constructor(gaId, isDevelopment, domain, cookielessUserIdentifier) {
|
|
8
8
|
if (!gaId && !isDevelopment) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
@@ -25,8 +25,16 @@ export default class AnalyticsGAPlugin {
|
|
|
25
25
|
*/
|
|
26
26
|
const key = gaId || 'UA-57284711-1';
|
|
27
27
|
/* global ga */
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
if (cookielessUserIdentifier) {
|
|
29
|
+
ga('create', key, {
|
|
30
|
+
storage: 'none',
|
|
31
|
+
clientId: cookielessUserIdentifier
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
const gaCookieParams = domain ? { cookieDomain: domain } : {};
|
|
36
|
+
ga('create', key, (!gaId ? { cookieDomain: 'none' } : gaCookieParams));
|
|
37
|
+
}
|
|
30
38
|
ga('set', 'anonymizeIp', true);
|
|
31
39
|
ga('set', 'allowAdFeatures', false);
|
|
32
40
|
}
|
|
@@ -727,9 +727,13 @@ export default class Auth {
|
|
|
727
727
|
return await (stateId && this._storage?.getState(stateId)) || {};
|
|
728
728
|
}
|
|
729
729
|
_checkBackendsAreUp() {
|
|
730
|
+
const abortCtrl = new AbortController();
|
|
730
731
|
const { backendCheckTimeout } = this.config;
|
|
731
732
|
return Promise.all([
|
|
732
|
-
promiseWithTimeout(this.http.fetch('settings/public?fields=id'
|
|
733
|
+
promiseWithTimeout(this.http.fetch('settings/public?fields=id', { signal: abortCtrl.signal }), backendCheckTimeout, {
|
|
734
|
+
error: new Error('The authorization server is taking too long to respond. Please try again later.'),
|
|
735
|
+
onTimeout: () => abortCtrl.abort()
|
|
736
|
+
}),
|
|
733
737
|
this.config.checkBackendIsUp()
|
|
734
738
|
]).catch(err => {
|
|
735
739
|
if (err instanceof TypeError) {
|
|
@@ -3,7 +3,7 @@ import React, { PureComponent, ButtonHTMLAttributes } from 'react';
|
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { IconType, Size } from '../icon/icon';
|
|
5
5
|
import { ClickableLinkProps } from '../link/clickableLink';
|
|
6
|
-
import { ControlsHeight } from '../global/controls-height';
|
|
6
|
+
import { ControlsHeight, ControlsHeightContext } from '../global/controls-height';
|
|
7
7
|
export interface ButtonBaseProps {
|
|
8
8
|
height?: ControlsHeight | undefined;
|
|
9
9
|
active?: boolean | null | undefined;
|
|
@@ -58,6 +58,7 @@ export declare class Button extends PureComponent<ButtonProps> {
|
|
|
58
58
|
};
|
|
59
59
|
static IconSize: typeof Size;
|
|
60
60
|
static contextType: React.Context<ControlsHeight>;
|
|
61
|
+
context: React.ContextType<typeof ControlsHeightContext>;
|
|
61
62
|
buttonRef: React.RefObject<HTMLButtonElement>;
|
|
62
63
|
render(): JSX.Element;
|
|
63
64
|
}
|
|
@@ -31,12 +31,10 @@ export default class DataListContainer<T extends SelectionItem> extends Componen
|
|
|
31
31
|
onMouseMove: () => void;
|
|
32
32
|
onKeyDown: (e: KeyboardEvent) => void;
|
|
33
33
|
render(): JSX.Element;
|
|
34
|
-
context:
|
|
34
|
+
context: unknown;
|
|
35
35
|
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<import("../table/disable-hover-hoc").DisableHoverProps<import("../table/selection-shortcuts-hoc").SelectionShortcutsProps<T, FocusableProps<T>>>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
36
36
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
37
|
-
readonly props: Readonly<import("../table/disable-hover-hoc").DisableHoverProps<import("../table/selection-shortcuts-hoc").SelectionShortcutsProps<T, FocusableProps<T
|
|
38
|
-
children?: React.ReactNode;
|
|
39
|
-
}>;
|
|
37
|
+
readonly props: Readonly<import("../table/disable-hover-hoc").DisableHoverProps<import("../table/selection-shortcuts-hoc").SelectionShortcutsProps<T, FocusableProps<T>>>>;
|
|
40
38
|
refs: {
|
|
41
39
|
[key: string]: React.ReactInstance;
|
|
42
40
|
};
|
|
@@ -60,12 +58,10 @@ export default class DataListContainer<T extends SelectionItem> extends Componen
|
|
|
60
58
|
onMouseMove: () => void;
|
|
61
59
|
onKeyDown: (e: KeyboardEvent) => void;
|
|
62
60
|
render(): JSX.Element;
|
|
63
|
-
context:
|
|
61
|
+
context: unknown;
|
|
64
62
|
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<import("../table/disable-hover-hoc").DisableHoverProps<import("../table/selection-shortcuts-hoc").SelectionShortcutsProps<T, FocusableProps<T>>>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
65
63
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
66
|
-
readonly props: Readonly<import("../table/disable-hover-hoc").DisableHoverProps<import("../table/selection-shortcuts-hoc").SelectionShortcutsProps<T, FocusableProps<T
|
|
67
|
-
children?: React.ReactNode;
|
|
68
|
-
}>;
|
|
64
|
+
readonly props: Readonly<import("../table/disable-hover-hoc").DisableHoverProps<import("../table/selection-shortcuts-hoc").SelectionShortcutsProps<T, FocusableProps<T>>>>;
|
|
69
65
|
refs: {
|
|
70
66
|
[key: string]: React.ReactInstance;
|
|
71
67
|
};
|
|
@@ -24,7 +24,7 @@ export default class Dialog extends PureComponent<DialogProps> {
|
|
|
24
24
|
label: PropTypes.Requireable<string>;
|
|
25
25
|
className: PropTypes.Requireable<string>;
|
|
26
26
|
contentClassName: PropTypes.Requireable<string>;
|
|
27
|
-
children: PropTypes.Requireable<string | number | boolean |
|
|
27
|
+
children: PropTypes.Requireable<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
|
|
28
28
|
show: PropTypes.Validator<boolean>;
|
|
29
29
|
showCloseButton: PropTypes.Requireable<boolean>;
|
|
30
30
|
closeButtonInside: PropTypes.Requireable<boolean>;
|
|
@@ -6,7 +6,7 @@ export interface AnchorProps {
|
|
|
6
6
|
active: boolean;
|
|
7
7
|
pinned: boolean;
|
|
8
8
|
}
|
|
9
|
-
export interface DropdownProps extends HTMLAttributes<HTMLElement> {
|
|
9
|
+
export interface DropdownProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
|
|
10
10
|
anchor: ReactElement | readonly ReactElement[] | string | ((props: AnchorProps) => ReactNode);
|
|
11
11
|
children: ReactElement<PopupAttrs> | ((props: Omit<PopupAttrs, 'children'>) => ReactNode);
|
|
12
12
|
initShown: boolean;
|
|
@@ -32,7 +32,7 @@ export default class Dropdown extends Component<DropdownProps, DropdownState> {
|
|
|
32
32
|
* Can be string, React element, or a function accepting an object with {active, pinned} properties and returning a React element
|
|
33
33
|
* React element should render some interactive HTML element like `button` or `a`
|
|
34
34
|
*/
|
|
35
|
-
anchor: PropTypes.Validator<string | number | boolean |
|
|
35
|
+
anchor: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray | ((...args: any[]) => any)>;
|
|
36
36
|
children: PropTypes.Validator<PropTypes.ReactElementLike | ((...args: any[]) => any)>;
|
|
37
37
|
initShown: PropTypes.Requireable<boolean>;
|
|
38
38
|
className: PropTypes.Requireable<string>;
|
|
@@ -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';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export interface PromiseWithTimeoutConfig {
|
|
2
2
|
error?: Error | null | undefined;
|
|
3
|
+
onTimeout?: () => void | undefined;
|
|
3
4
|
}
|
|
4
|
-
export default function promiseWithTimeout<T>(promise: Promise<T>, timeout: number, { error }: PromiseWithTimeoutConfig): Promise<unknown>;
|
|
5
|
+
export default function promiseWithTimeout<T>(promise: Promise<T>, timeout: number, { error, onTimeout }: PromiseWithTimeoutConfig): Promise<unknown>;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
// Useful for using fetch with timeout
|
|
2
2
|
// https://github.com/github/fetch/issues/175#issuecomment-284787564
|
|
3
|
-
export default function promiseWithTimeout(promise, timeout, { error }) {
|
|
3
|
+
export default function promiseWithTimeout(promise, timeout, { error, onTimeout = () => { } }) {
|
|
4
4
|
return new Promise((resolve, reject) => {
|
|
5
|
-
setTimeout(() =>
|
|
5
|
+
setTimeout(() => {
|
|
6
|
+
onTimeout();
|
|
7
|
+
reject(error || new Error('Timeout'));
|
|
8
|
+
}, timeout);
|
|
6
9
|
promise.then(resolve, reject);
|
|
7
10
|
});
|
|
8
11
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ReactChild, ReactElement, ReactNode } from 'react';
|
|
2
|
+
import { unmountComponentAtNode as legacyUnmountComponentAtNode } from 'react-dom';
|
|
3
|
+
export declare let render: (element: ReactElement, container: Element | DocumentFragment) => void;
|
|
4
|
+
export declare let unmountComponentAtNode: typeof legacyUnmountComponentAtNode;
|
|
5
|
+
export declare let hydrate: (element: ReactElement, container: Element | Document) => void;
|
|
6
|
+
interface Root {
|
|
7
|
+
render(children: ReactChild | Iterable<ReactNode>): void;
|
|
8
|
+
unmount(): void;
|
|
9
|
+
}
|
|
10
|
+
interface RootOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Prefix for `useId`.
|
|
13
|
+
*/
|
|
14
|
+
identifierPrefix?: string;
|
|
15
|
+
onRecoverableError?: (error: unknown) => void;
|
|
16
|
+
}
|
|
17
|
+
interface HydrationOptions {
|
|
18
|
+
/**
|
|
19
|
+
* Prefix for `useId`.
|
|
20
|
+
*/
|
|
21
|
+
identifierPrefix?: string;
|
|
22
|
+
onRecoverableError?: (error: unknown) => void;
|
|
23
|
+
}
|
|
24
|
+
interface Client {
|
|
25
|
+
createRoot(container: Element | DocumentFragment, options?: RootOptions): Root;
|
|
26
|
+
hydrateRoot(container: Element | Document, initialChildren: ReactChild | Iterable<ReactNode>, options?: HydrationOptions): Root;
|
|
27
|
+
}
|
|
28
|
+
export declare function setClient({ createRoot, hydrateRoot }: Client): void;
|
|
29
|
+
export {};
|
|
@@ -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,4 +1,4 @@
|
|
|
1
|
-
import { Component } from 'react';
|
|
1
|
+
import { Component, RefAttributes } from 'react';
|
|
2
2
|
export interface RerenderableComponent<P, S> extends Component<P, S> {
|
|
3
3
|
node?: HTMLElement | null;
|
|
4
4
|
}
|
|
@@ -13,18 +13,14 @@ export interface RerenderableComponentClass<P, S> {
|
|
|
13
13
|
*/
|
|
14
14
|
export default function rerenderHOC<P, S>(ComposedComponent: RerenderableComponentClass<P, S>): {
|
|
15
15
|
new (props: P): {
|
|
16
|
-
_propsCache:
|
|
17
|
-
|
|
18
|
-
}>;
|
|
19
|
-
rerender(props?: Partial<P>, callback?: (() => void) | undefined): void | Element | Component<P, any, any>;
|
|
16
|
+
_propsCache: P & RefAttributes<unknown>;
|
|
17
|
+
rerender(props?: Partial<P>, callback?: (() => void) | undefined): void;
|
|
20
18
|
node?: HTMLElement | null | undefined;
|
|
21
|
-
context:
|
|
19
|
+
context: unknown;
|
|
22
20
|
setState<K extends keyof S>(state: S | ((prevState: Readonly<S>, props: Readonly<P>) => S | Pick<S, K> | null) | Pick<S, K> | null, callback?: (() => void) | undefined): void;
|
|
23
21
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
24
22
|
render(): import("react").ReactNode;
|
|
25
|
-
readonly props: Readonly<P
|
|
26
|
-
children?: import("react").ReactNode;
|
|
27
|
-
}>;
|
|
23
|
+
readonly props: Readonly<P>;
|
|
28
24
|
state: Readonly<S>;
|
|
29
25
|
refs: {
|
|
30
26
|
[key: string]: import("react").ReactInstance;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createElement } from 'react';
|
|
2
|
-
import { render } from 'react-
|
|
2
|
+
import { render } from './react-render-adapter';
|
|
3
|
+
import composeRefs from './composeRefs';
|
|
3
4
|
/**
|
|
4
5
|
* Wraps a component to add a "rerender" method
|
|
5
6
|
* @param ComposedComponent
|
|
@@ -20,7 +21,8 @@ export default function rerenderHOC(ComposedComponent) {
|
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
this._propsCache = Object.assign({}, this.props, this._propsCache, props);
|
|
23
|
-
|
|
24
|
+
this._propsCache.ref = composeRefs(this._propsCache.ref, callback);
|
|
25
|
+
render(createElement(this.constructor, this._propsCache), container);
|
|
24
26
|
}
|
|
25
27
|
};
|
|
26
28
|
}
|
|
@@ -51,7 +51,6 @@
|
|
|
51
51
|
--ring-sidebar-background-color: #f7f9fa;
|
|
52
52
|
--ring-selected-background-color: #d4edff;
|
|
53
53
|
--ring-hover-background-color: #ebf6ff;
|
|
54
|
-
--ring-message-background-color: #111314;
|
|
55
54
|
--ring-navigation-background-color: #fff;
|
|
56
55
|
--ring-tag-background-color: #e6ecf2;
|
|
57
56
|
--ring-tag-hover-background-color: #d3dae0;
|
|
@@ -41,7 +41,6 @@ export interface RingCSSProperties {
|
|
|
41
41
|
'--ring-sidebar-background-color'?: Property.BackgroundColor;
|
|
42
42
|
'--ring-selected-background-color'?: Property.BackgroundColor;
|
|
43
43
|
'--ring-hover-background-color'?: Property.BackgroundColor;
|
|
44
|
-
'--ring-message-background-color'?: Property.BackgroundColor;
|
|
45
44
|
'--ring-navigation-background-color'?: Property.BackgroundColor;
|
|
46
45
|
'--ring-tag-background-color'?: Property.BackgroundColor;
|
|
47
46
|
'--ring-tag-hover-background-color'?: Property.BackgroundColor;
|
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
--ring-sidebar-background-color: #28343d;
|
|
41
41
|
--ring-selected-background-color: #062640;
|
|
42
42
|
--ring-hover-background-color: #0b1a26;
|
|
43
|
-
--ring-message-background-color: var(--ring-popup-background-color);
|
|
44
43
|
--ring-navigation-background-color: #111314;
|
|
45
44
|
--ring-tag-background-color: #3e4d59;
|
|
46
45
|
--ring-tag-hover-background-color: #333e47;
|
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import { Size } from '../avatar/avatar';
|
|
4
4
|
import { ListDataItem } from '../list/consts';
|
|
5
5
|
import { AuthUser } from '../auth/auth';
|
|
6
|
-
import {
|
|
6
|
+
import { ClickableLinkProps } from '../link/clickableLink';
|
|
7
7
|
export interface ProfileTranslations {
|
|
8
8
|
applyChangedUser?: string | null | undefined;
|
|
9
9
|
login?: string | null | undefined;
|
|
@@ -24,7 +24,7 @@ export interface ProfileProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSe
|
|
|
24
24
|
onLogout?: (() => void) | null | undefined;
|
|
25
25
|
onSwitchUser?: (() => void) | null | undefined;
|
|
26
26
|
profileUrl?: string | undefined;
|
|
27
|
-
LinkComponent?: ComponentType<
|
|
27
|
+
LinkComponent?: ComponentType<ClickableLinkProps> | null | undefined;
|
|
28
28
|
user?: AuthUser | null | undefined | void;
|
|
29
29
|
round?: boolean | null | undefined;
|
|
30
30
|
showLogIn?: boolean | null | undefined;
|
|
@@ -68,6 +68,6 @@ export default class Profile extends PureComponent<ProfileProps> {
|
|
|
68
68
|
};
|
|
69
69
|
static defaultProps: ProfileProps;
|
|
70
70
|
static Size: typeof Size;
|
|
71
|
-
render(): React.
|
|
71
|
+
render(): string | number | boolean | JSX.Element | React.ReactFragment | null | undefined;
|
|
72
72
|
}
|
|
73
73
|
export declare type ProfileAttrs = JSX.LibraryManagedAttributes<typeof Profile, ProfileProps>;
|
|
@@ -9,12 +9,10 @@ export default function adaptiveIslandHOC<P>(ComposedComponent: ComponentType<P>
|
|
|
9
9
|
};
|
|
10
10
|
onContentScroll: ({ scrollTop, scrollHeight, clientHeight }: Element) => void;
|
|
11
11
|
render(): JSX.Element;
|
|
12
|
-
context:
|
|
12
|
+
context: unknown;
|
|
13
13
|
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<P>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
14
14
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
15
|
-
readonly props: Readonly<P
|
|
16
|
-
children?: React.ReactNode;
|
|
17
|
-
}>;
|
|
15
|
+
readonly props: Readonly<P>;
|
|
18
16
|
refs: {
|
|
19
17
|
[key: string]: React.ReactInstance;
|
|
20
18
|
};
|
|
@@ -37,12 +35,10 @@ export default function adaptiveIslandHOC<P>(ComposedComponent: ComponentType<P>
|
|
|
37
35
|
};
|
|
38
36
|
onContentScroll: ({ scrollTop, scrollHeight, clientHeight }: Element) => void;
|
|
39
37
|
render(): JSX.Element;
|
|
40
|
-
context:
|
|
38
|
+
context: unknown;
|
|
41
39
|
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<P>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
42
40
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
43
|
-
readonly props: Readonly<P
|
|
44
|
-
children?: React.ReactNode;
|
|
45
|
-
}>;
|
|
41
|
+
readonly props: Readonly<P>;
|
|
46
42
|
refs: {
|
|
47
43
|
[key: string]: React.ReactInstance;
|
|
48
44
|
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'react';
|
|
1
|
+
import React, { Component, HTMLAttributes } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import createResizeDetector from 'element-resize-detector';
|
|
2
4
|
export interface IslandContentProps extends Omit<HTMLAttributes<HTMLElement>, 'onScroll'> {
|
|
3
5
|
fade?: boolean | null | undefined;
|
|
4
6
|
onScrollToBottom?: (() => void) | null | undefined;
|
|
@@ -8,5 +10,34 @@ export interface IslandContentInnerProps extends IslandContentProps {
|
|
|
8
10
|
onScroll: (node: HTMLElement) => void;
|
|
9
11
|
bottomBorder: boolean;
|
|
10
12
|
}
|
|
11
|
-
declare
|
|
13
|
+
declare class Content extends Component<IslandContentInnerProps> {
|
|
14
|
+
static propTypes: {
|
|
15
|
+
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
16
|
+
className: PropTypes.Requireable<string>;
|
|
17
|
+
scrollableWrapperClassName: PropTypes.Requireable<string>;
|
|
18
|
+
fade: PropTypes.Requireable<boolean>;
|
|
19
|
+
bottomBorder: PropTypes.Requireable<boolean>;
|
|
20
|
+
onScroll: PropTypes.Requireable<(...args: any[]) => any>;
|
|
21
|
+
onScrollToBottom: PropTypes.Requireable<(...args: any[]) => any>;
|
|
22
|
+
};
|
|
23
|
+
static defaultProps: {
|
|
24
|
+
fade: boolean;
|
|
25
|
+
bottomBorder: boolean;
|
|
26
|
+
onScroll: () => void;
|
|
27
|
+
onScrollToBottom: () => void;
|
|
28
|
+
};
|
|
29
|
+
state: {
|
|
30
|
+
scrolledToTop: boolean;
|
|
31
|
+
scrolledToBottom: boolean;
|
|
32
|
+
};
|
|
33
|
+
componentWillUnmount(): void;
|
|
34
|
+
resizeDetector: createResizeDetector.Erd;
|
|
35
|
+
wrapperNode?: HTMLElement | null;
|
|
36
|
+
setWrapper: (node: HTMLElement | null) => void;
|
|
37
|
+
calculateScrollPosition: () => void;
|
|
38
|
+
scrollableNode?: HTMLElement | null;
|
|
39
|
+
setScrollableNodeAndCalculatePosition: (node: HTMLElement | null) => void;
|
|
40
|
+
render(): JSX.Element;
|
|
41
|
+
}
|
|
42
|
+
declare const ContentWrapper: React.ForwardRefExoticComponent<IslandContentProps & React.RefAttributes<Content>>;
|
|
12
43
|
export default ContentWrapper;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { Component } from 'react';
|
|
1
|
+
import React, { forwardRef, Component } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import createResizeDetector from 'element-resize-detector';
|
|
@@ -90,10 +90,11 @@ class Content extends Component {
|
|
|
90
90
|
</div>);
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
const ContentWrapper = (props) => (<ScrollHandlerContext.Consumer>
|
|
93
|
+
const ContentWrapper = forwardRef((props, ref) => (<ScrollHandlerContext.Consumer>
|
|
94
94
|
{onScroll => {
|
|
95
95
|
const addProps = onScroll != null ? { onScroll, bottomBorder: true } : {};
|
|
96
|
-
return <Content {...props} {...addProps}/>;
|
|
96
|
+
return <Content {...props} {...addProps} ref={ref}/>;
|
|
97
97
|
}}
|
|
98
|
-
</ScrollHandlerContext.Consumer>);
|
|
98
|
+
</ScrollHandlerContext.Consumer>));
|
|
99
|
+
ContentWrapper.displayName = 'ContentWrapper';
|
|
99
100
|
export default ContentWrapper;
|
|
@@ -25,12 +25,10 @@ export declare const AdaptiveIsland: {
|
|
|
25
25
|
};
|
|
26
26
|
onContentScroll: ({ scrollTop, scrollHeight, clientHeight }: Element) => void;
|
|
27
27
|
render(): JSX.Element;
|
|
28
|
-
context:
|
|
28
|
+
context: unknown;
|
|
29
29
|
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IslandProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
30
30
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
31
|
-
readonly props: Readonly<IslandProps
|
|
32
|
-
children?: React.ReactNode;
|
|
33
|
-
}>;
|
|
31
|
+
readonly props: Readonly<IslandProps>;
|
|
34
32
|
refs: {
|
|
35
33
|
[key: string]: React.ReactInstance;
|
|
36
34
|
};
|
|
@@ -53,12 +51,10 @@ export declare const AdaptiveIsland: {
|
|
|
53
51
|
};
|
|
54
52
|
onContentScroll: ({ scrollTop, scrollHeight, clientHeight }: Element) => void;
|
|
55
53
|
render(): JSX.Element;
|
|
56
|
-
context:
|
|
54
|
+
context: unknown;
|
|
57
55
|
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IslandProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
|
58
56
|
forceUpdate(callback?: (() => void) | undefined): void;
|
|
59
|
-
readonly props: Readonly<IslandProps
|
|
60
|
-
children?: React.ReactNode;
|
|
61
|
-
}>;
|
|
57
|
+
readonly props: Readonly<IslandProps>;
|
|
62
58
|
refs: {
|
|
63
59
|
[key: string]: React.ReactInstance;
|
|
64
60
|
};
|
|
@@ -13,7 +13,7 @@ export default class ClickableLink extends PureComponent<ClickableLinkProps> {
|
|
|
13
13
|
onConditionalClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
14
14
|
activeClassName: PropTypes.Requireable<string>;
|
|
15
15
|
href: PropTypes.Validator<string>;
|
|
16
|
-
children: PropTypes.Validator<string | number | boolean |
|
|
16
|
+
children: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
|
|
17
17
|
};
|
|
18
18
|
onClick: (e: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
19
19
|
render(): JSX.Element;
|