superdesk-ui-framework 3.1.27 → 4.0.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.
- package/app/styles/layout/_editor.scss +1 -1
- package/app-typescript/components/Dropdown.tsx +120 -165
- package/app-typescript/components/Layouts/Panel.tsx +3 -2
- package/app-typescript/components/Menu.tsx +3 -4
- package/app-typescript/components/Modal.tsx +4 -2
- package/app-typescript/components/MultiSelect.tsx +3 -2
- package/app-typescript/components/Popover.tsx +0 -2
- package/app-typescript/components/SelectWithTemplate.tsx +3 -1
- package/app-typescript/components/ShowPopup.tsx +9 -5
- package/app-typescript/components/SubNav.tsx +5 -6
- package/app-typescript/components/TreeMenu.tsx +3 -2
- package/app-typescript/components/TreeSelect/TreeSelect.tsx +3 -2
- package/app-typescript/components/WithPopover.tsx +0 -2
- package/app-typescript/components/_Positioner.tsx +3 -4
- package/app-typescript/components/avatar/avatar-group.tsx +0 -3
- package/app-typescript/index.ts +1 -0
- package/app-typescript/zIndex.tsx +5 -0
- package/dist/components/CreateButton.tsx +2 -2
- package/dist/components/Dropdowns.tsx +4 -483
- package/dist/components/Modal.tsx +0 -12
- package/dist/components/MultiSelect.tsx +0 -2
- package/dist/components/NavButtons.tsx +4 -4
- package/dist/components/Panel.tsx +0 -1
- package/dist/components/Popover.tsx +0 -3
- package/dist/components/SubNav.tsx +9 -10
- package/dist/components/TableList.tsx +1 -1
- package/dist/design-patterns/ThreePaneLayoutPattern.tsx +3 -3
- package/dist/examples.bundle.js +3110 -3478
- package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +2 -3
- package/dist/playgrounds/react-playgrounds/EditorTest.tsx +1 -1
- package/dist/playgrounds/react-playgrounds/Multiedit.tsx +1 -2
- package/dist/playgrounds/react-playgrounds/PageLayoutTest.tsx +1 -1
- package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +2 -2
- package/dist/playgrounds/react-playgrounds/Rundowns.tsx +3 -10
- package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +2 -3
- package/dist/playgrounds/react-playgrounds/TestGround.tsx +0 -4
- package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +2 -3
- package/dist/superdesk-ui.bundle.css +1 -1
- package/dist/superdesk-ui.bundle.js +2406 -2399
- package/dist/vendor.bundle.js +21 -21
- package/examples/pages/components/CreateButton.tsx +2 -2
- package/examples/pages/components/Dropdowns.tsx +4 -483
- package/examples/pages/components/Modal.tsx +0 -12
- package/examples/pages/components/MultiSelect.tsx +0 -2
- package/examples/pages/components/NavButtons.tsx +4 -4
- package/examples/pages/components/Panel.tsx +0 -1
- package/examples/pages/components/Popover.tsx +0 -3
- package/examples/pages/components/SubNav.tsx +9 -10
- package/examples/pages/components/TableList.tsx +1 -1
- package/examples/pages/design-patterns/ThreePaneLayoutPattern.tsx +3 -3
- package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +2 -3
- package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +1 -1
- package/examples/pages/playgrounds/react-playgrounds/Multiedit.tsx +1 -2
- package/examples/pages/playgrounds/react-playgrounds/PageLayoutTest.tsx +1 -1
- package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +2 -2
- package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +3 -10
- package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +2 -3
- package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +0 -4
- package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +2 -3
- package/package.json +1 -1
- package/react/components/Dropdown.d.ts +1 -3
- package/react/components/Dropdown.js +31 -60
- package/react/components/Layouts/Panel.d.ts +1 -1
- package/react/components/Layouts/Panel.js +5 -2
- package/react/components/Menu.d.ts +1 -1
- package/react/components/Menu.js +3 -3
- package/react/components/Modal.d.ts +1 -1
- package/react/components/Modal.js +5 -2
- package/react/components/MultiSelect.d.ts +1 -1
- package/react/components/MultiSelect.js +3 -1
- package/react/components/Popover.d.ts +0 -1
- package/react/components/Popover.js +1 -1
- package/react/components/SelectWithTemplate.d.ts +3 -0
- package/react/components/SelectWithTemplate.js +3 -0
- package/react/components/ShowPopup.d.ts +20 -1
- package/react/components/ShowPopup.js +12 -5
- package/react/components/SubNav.d.ts +0 -1
- package/react/components/SubNav.js +1 -4
- package/react/components/TreeMenu.d.ts +1 -1
- package/react/components/TreeMenu.js +3 -1
- package/react/components/TreeSelect/TreeSelect.d.ts +1 -1
- package/react/components/TreeSelect/TreeSelect.js +3 -1
- package/react/components/WithPopover.d.ts +0 -1
- package/react/components/WithPopover.js +1 -1
- package/react/components/_Positioner.d.ts +0 -1
- package/react/components/_Positioner.js +3 -3
- package/react/components/avatar/avatar-group.d.ts +0 -1
- package/react/components/avatar/avatar-group.js +2 -3
- package/react/index.d.ts +1 -0
- package/react/index.js +4 -1
- package/react/zIndex.d.ts +2 -0
- package/react/zIndex.js +8 -0
@@ -47,6 +47,7 @@ var IconButton_1 = require("../IconButton");
|
|
47
47
|
var Spinner_1 = require("../Spinner");
|
48
48
|
var classnames_1 = __importDefault(require("classnames"));
|
49
49
|
var ButtonGroup_1 = require("../ButtonGroup");
|
50
|
+
var zIndex_1 = require("../../zIndex");
|
50
51
|
var Panel = /** @class */ (function (_super) {
|
51
52
|
__extends(Panel, _super);
|
52
53
|
function Panel() {
|
@@ -80,7 +81,9 @@ exports.default = Panel;
|
|
80
81
|
var PanelHeader = /** @class */ (function (_super) {
|
81
82
|
__extends(PanelHeader, _super);
|
82
83
|
function PanelHeader(props) {
|
83
|
-
|
84
|
+
var _this = _super.call(this, props) || this;
|
85
|
+
_this.zIndex = (0, zIndex_1.getNextZIndex)();
|
86
|
+
return _this;
|
84
87
|
}
|
85
88
|
PanelHeader.prototype.render = function () {
|
86
89
|
var _a;
|
@@ -90,7 +93,7 @@ var PanelHeader = /** @class */ (function (_super) {
|
|
90
93
|
_a['side-panel__header--has-close'] = this.props.onClose,
|
91
94
|
_a), this.props.className);
|
92
95
|
var style = {
|
93
|
-
zIndex: this.
|
96
|
+
zIndex: this.zIndex,
|
94
97
|
};
|
95
98
|
var defaultTheme = darkColors.includes(this.props.color || '') ? 'dark-ui' : null;
|
96
99
|
return (React.createElement("div", { "data-theme": this.props.theme || defaultTheme, className: classes, style: style },
|
@@ -46,11 +46,11 @@ interface IMenuBranch {
|
|
46
46
|
interface IProps {
|
47
47
|
items: Array<IMenuItem>;
|
48
48
|
children: (toggle: (event: SyntheticEvent) => void) => JSX.Element;
|
49
|
-
zIndex?: number;
|
50
49
|
}
|
51
50
|
export declare class Menu extends React.Component<IProps, {}> {
|
52
51
|
private menu;
|
53
52
|
private focusedBefore;
|
53
|
+
private zIndex;
|
54
54
|
constructor(props: IProps);
|
55
55
|
private toPrimeReactInterface;
|
56
56
|
private toggle;
|
package/react/components/Menu.js
CHANGED
@@ -42,7 +42,7 @@ exports.Menu = void 0;
|
|
42
42
|
var React = __importStar(require("react"));
|
43
43
|
var tieredmenu_1 = require("@superdesk/primereact/tieredmenu");
|
44
44
|
var helpers_1 = require("../helpers");
|
45
|
-
var
|
45
|
+
var zIndex_1 = require("../zIndex");
|
46
46
|
function isSeparator(item) {
|
47
47
|
return item['separator'] === true;
|
48
48
|
}
|
@@ -56,6 +56,7 @@ var Menu = /** @class */ (function (_super) {
|
|
56
56
|
__extends(Menu, _super);
|
57
57
|
function Menu(props) {
|
58
58
|
var _this = _super.call(this, props) || this;
|
59
|
+
_this.zIndex = (0, zIndex_1.getNextZIndex)();
|
59
60
|
_this.menu = null;
|
60
61
|
_this.focusedBefore = null;
|
61
62
|
_this.close = _this.close.bind(_this);
|
@@ -107,7 +108,6 @@ var Menu = /** @class */ (function (_super) {
|
|
107
108
|
};
|
108
109
|
Menu.prototype.render = function () {
|
109
110
|
var _this = this;
|
110
|
-
var _a;
|
111
111
|
return (React.createElement(React.Fragment, null,
|
112
112
|
this.props.children(this.toggle),
|
113
113
|
React.createElement("div", { onKeyDown: function (event) {
|
@@ -125,7 +125,7 @@ var Menu = /** @class */ (function (_super) {
|
|
125
125
|
if (firstMenuItem instanceof HTMLElement) {
|
126
126
|
firstMenuItem.focus();
|
127
127
|
}
|
128
|
-
}, "data-test-id": "menu", zIndex:
|
128
|
+
}, "data-test-id": "menu", zIndex: this.zIndex }))));
|
129
129
|
};
|
130
130
|
return Menu;
|
131
131
|
}(React.Component));
|
@@ -4,7 +4,6 @@ interface IProps {
|
|
4
4
|
className?: string;
|
5
5
|
theme?: string;
|
6
6
|
visible?: boolean;
|
7
|
-
zIndex?: number;
|
8
7
|
closeOnEscape?: boolean;
|
9
8
|
contentBg?: 'default' | 'medium' | 'dark';
|
10
9
|
contentPadding?: 'none' | 'small' | 'medium' | 'large';
|
@@ -19,6 +18,7 @@ interface IProps {
|
|
19
18
|
onHide?(): void;
|
20
19
|
}
|
21
20
|
export declare class Modal extends React.Component<IProps, {}> {
|
21
|
+
private zIndex;
|
22
22
|
render(): JSX.Element;
|
23
23
|
}
|
24
24
|
export {};
|
@@ -46,10 +46,13 @@ var React = __importStar(require("react"));
|
|
46
46
|
var dialog_1 = require("@superdesk/primereact/dialog");
|
47
47
|
var classnames_1 = __importDefault(require("classnames"));
|
48
48
|
var lodash_1 = require("lodash");
|
49
|
+
var zIndex_1 = require("./../zIndex");
|
49
50
|
var Modal = /** @class */ (function (_super) {
|
50
51
|
__extends(Modal, _super);
|
51
52
|
function Modal() {
|
52
|
-
|
53
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
54
|
+
_this.zIndex = (0, zIndex_1.getNextZIndex)();
|
55
|
+
return _this;
|
53
56
|
}
|
54
57
|
Modal.prototype.render = function () {
|
55
58
|
var _a;
|
@@ -62,7 +65,7 @@ var Modal = /** @class */ (function (_super) {
|
|
62
65
|
_a["p-dialog-content--padding-".concat(this.props.contentPadding)] = this.props.contentPadding,
|
63
66
|
_a), this.props.className);
|
64
67
|
return (React.createElement("div", { style: { display: 'content' }, "data-theme": this.props.theme !== 'dark' ? null : 'dark-ui', "data-test-id": this.props['data-test-id'] },
|
65
|
-
React.createElement(dialog_1.Dialog, { id: this.props.id, visible: this.props.visible, header: this.props.headerTemplate, footer: this.props.footerTemplate, closeOnEscape: this.props.closeOnEscape, maximized: this.props.maximized, maximizable: this.props.maximizable, contentClassName: classes, onShow: this.props.onShow, onHide: (_b = this.props.onHide) !== null && _b !== void 0 ? _b : lodash_1.noop, zIndex: this.
|
68
|
+
React.createElement(dialog_1.Dialog, { id: this.props.id, visible: this.props.visible, header: this.props.headerTemplate, footer: this.props.footerTemplate, closeOnEscape: this.props.closeOnEscape, maximized: this.props.maximized, maximizable: this.props.maximizable, contentClassName: classes, onShow: this.props.onShow, onHide: (_b = this.props.onHide) !== null && _b !== void 0 ? _b : lodash_1.noop, zIndex: this.zIndex, position: this.props.position, closable: this.props.onHide != null ? true : false }, this.props.children)));
|
66
69
|
};
|
67
70
|
return Modal;
|
68
71
|
}(React.Component));
|
@@ -13,7 +13,6 @@ interface IProps<T> extends IInputWrapper {
|
|
13
13
|
filter?: boolean;
|
14
14
|
showClear?: boolean;
|
15
15
|
showSelectAll?: boolean;
|
16
|
-
zIndex?: number;
|
17
16
|
optionLabel: (option: T) => string;
|
18
17
|
itemTemplate?(item: T): JSX.Element | undefined;
|
19
18
|
selectedItemTemplate?(value: T): JSX.Element | undefined;
|
@@ -26,6 +25,7 @@ interface IState<T> {
|
|
26
25
|
}
|
27
26
|
export declare class MultiSelect<T> extends React.Component<IProps<T>, IState<T>> {
|
28
27
|
private htmlId;
|
28
|
+
private zIndex;
|
29
29
|
constructor(props: IProps<T>);
|
30
30
|
render(): JSX.Element;
|
31
31
|
}
|
@@ -48,11 +48,13 @@ var classnames_1 = __importDefault(require("classnames"));
|
|
48
48
|
var react_id_generator_1 = __importDefault(require("react-id-generator"));
|
49
49
|
var Form_1 = require("./Form");
|
50
50
|
var SelectPreview_1 = require("./SelectPreview");
|
51
|
+
var zIndex_1 = require("../zIndex");
|
51
52
|
var MultiSelect = /** @class */ (function (_super) {
|
52
53
|
__extends(MultiSelect, _super);
|
53
54
|
function MultiSelect(props) {
|
54
55
|
var _this = _super.call(this, props) || this;
|
55
56
|
_this.htmlId = (0, react_id_generator_1.default)();
|
57
|
+
_this.zIndex = (0, zIndex_1.getNextZIndex)();
|
56
58
|
_this.state = {
|
57
59
|
value: _this.props.value != null ? _this.props.value : [],
|
58
60
|
options: [],
|
@@ -74,7 +76,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
74
76
|
React.createElement(multiselect_1.MultiSelect, { panelClassName: classes, value: this.props.value, options: this.props.options, onChange: function (_a) {
|
75
77
|
var value = _a.value;
|
76
78
|
return _this.props.onChange(value);
|
77
|
-
}, display: "chip", zIndex: this.
|
79
|
+
}, display: "chip", zIndex: this.zIndex, filter: this.props.filter, appendTo: document.body, placeholder: this.props.placeholder, optionLabel: function (option) { return _this.props.optionLabel(option); }, emptyFilterMessage: this.props.emptyFilterMessage, filterPlaceholder: this.props.filterPlaceholder, itemTemplate: this.props.itemTemplate, selectedItemTemplate: this.props.selectedItemTemplate, maxSelectedLabels: (_a = this.props.maxSelectedLabels) !== null && _a !== void 0 ? _a : 4, selectedItemsLabel: this.props.selectedItemsLabel, ariaLabelledBy: this.htmlId + 'label', tabIndex: this.props.tabIndex ? this.props.tabIndex : '0', showClear: this.props.showClear, disabled: this.props.disabled, inputId: this.htmlId })));
|
78
80
|
};
|
79
81
|
return MultiSelect;
|
80
82
|
}(React.Component));
|
@@ -49,7 +49,7 @@ var Popover = /** @class */ (function (_super) {
|
|
49
49
|
Popover.prototype.render = function () {
|
50
50
|
var _this = this;
|
51
51
|
var _a, _b;
|
52
|
-
return (React.createElement(_Positioner_1.Positioner, { triggerSelector: this.props.triggerSelector, placement: (_a = this.props.placement) !== null && _a !== void 0 ? _a : 'auto', className: "sd-popover"
|
52
|
+
return (React.createElement(_Positioner_1.Positioner, { triggerSelector: this.props.triggerSelector, placement: (_a = this.props.placement) !== null && _a !== void 0 ? _a : 'auto', className: "sd-popover" },
|
53
53
|
React.createElement("div", { className: "sd-popover__header" },
|
54
54
|
React.createElement("h4", { className: "sd-popover__title", tabIndex: 0, id: 'popoverTitle' }, this.props.title),
|
55
55
|
((_b = this.props.displayCloseButton) !== null && _b !== void 0 ? _b : true) && (React.createElement("button", { className: "icn-btn icn-btn--small sd-popover__close", tabIndex: 0, "aria-label": 'Close dialog', onClick: function () {
|
@@ -26,6 +26,9 @@ interface IState<T> {
|
|
26
26
|
loading: boolean;
|
27
27
|
invalid: boolean;
|
28
28
|
}
|
29
|
+
/**
|
30
|
+
* @deprecated use MultiSelect or TreeSelect
|
31
|
+
*/
|
29
32
|
export declare class SelectWithTemplate<T> extends React.Component<IProps<T>, IState<T>> {
|
30
33
|
componentRef: Dropdown | null;
|
31
34
|
private htmlId;
|
@@ -47,6 +47,9 @@ var dropdown_1 = require("@superdesk/primereact/dropdown");
|
|
47
47
|
var react_id_generator_1 = __importDefault(require("react-id-generator"));
|
48
48
|
var Form_1 = require("./Form");
|
49
49
|
var labelKey = 'label';
|
50
|
+
/**
|
51
|
+
* @deprecated use MultiSelect or TreeSelect
|
52
|
+
*/
|
50
53
|
var SelectWithTemplate = /** @class */ (function (_super) {
|
51
54
|
__extends(SelectWithTemplate, _super);
|
52
55
|
function SelectWithTemplate(props) {
|
@@ -1,10 +1,29 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import { Placement } from '@popperjs/core';
|
3
|
+
interface IPropsPopupPositioner {
|
4
|
+
referenceElement: HTMLElement;
|
5
|
+
placement: Placement;
|
6
|
+
onClose(): void;
|
7
|
+
closeOnHoverEnd?: boolean;
|
8
|
+
}
|
9
|
+
export declare class PopupPositioner extends React.PureComponent<IPropsPopupPositioner> {
|
10
|
+
private wrapperEl;
|
11
|
+
private popper;
|
12
|
+
private zIndex;
|
13
|
+
constructor(props: IPropsPopupPositioner);
|
14
|
+
closeOnClick(event: MouseEvent): void;
|
15
|
+
closeOnScroll(event: Event): void;
|
16
|
+
closeOnMouseLeave(event: MouseEvent): void;
|
17
|
+
componentDidMount(): void;
|
18
|
+
componentWillUnmount(): void;
|
19
|
+
render(): JSX.Element;
|
20
|
+
}
|
3
21
|
/**
|
4
22
|
* The popup will remove itself if click/scroll events are detected outside the popup.
|
5
23
|
*/
|
6
24
|
export declare function showPopup(referenceElement: HTMLElement, placement: Placement, Component: React.ComponentType<{
|
7
25
|
closePopup(): void;
|
8
|
-
}>,
|
26
|
+
}>, closeOnHoverEnd?: boolean, onClose?: () => void): {
|
9
27
|
close: () => void;
|
10
28
|
};
|
29
|
+
export {};
|
@@ -41,16 +41,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
41
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
42
42
|
};
|
43
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
44
|
-
exports.showPopup = void 0;
|
44
|
+
exports.showPopup = exports.PopupPositioner = void 0;
|
45
45
|
var React = __importStar(require("react"));
|
46
46
|
var react_dom_1 = __importDefault(require("react-dom"));
|
47
47
|
var core_1 = require("@popperjs/core");
|
48
48
|
var lodash_1 = require("lodash");
|
49
49
|
var popper_max_size_modifier_1 = __importDefault(require("popper-max-size-modifier"));
|
50
|
+
var zIndex_1 = require("../zIndex");
|
50
51
|
var PopupPositioner = /** @class */ (function (_super) {
|
51
52
|
__extends(PopupPositioner, _super);
|
52
53
|
function PopupPositioner(props) {
|
53
54
|
var _this = _super.call(this, props) || this;
|
55
|
+
_this.zIndex = (0, zIndex_1.getNextZIndex)();
|
54
56
|
_this.closeOnClick = _this.closeOnClick.bind(_this);
|
55
57
|
_this.closeOnScroll = (0, lodash_1.throttle)(_this.closeOnScroll.bind(_this), 200);
|
56
58
|
_this.closeOnMouseLeave = _this.closeOnMouseLeave.bind(_this);
|
@@ -133,17 +135,22 @@ var PopupPositioner = /** @class */ (function (_super) {
|
|
133
135
|
};
|
134
136
|
PopupPositioner.prototype.render = function () {
|
135
137
|
var _this = this;
|
136
|
-
var _a;
|
137
138
|
return (React.createElement("div", { ref: function (el) {
|
138
139
|
_this.wrapperEl = el;
|
139
|
-
}, style: {
|
140
|
+
}, style: {
|
141
|
+
position: 'absolute',
|
142
|
+
left: '-100vw',
|
143
|
+
display: 'flex',
|
144
|
+
zIndex: this.zIndex,
|
145
|
+
} }, this.props.children));
|
140
146
|
};
|
141
147
|
return PopupPositioner;
|
142
148
|
}(React.PureComponent));
|
149
|
+
exports.PopupPositioner = PopupPositioner;
|
143
150
|
/**
|
144
151
|
* The popup will remove itself if click/scroll events are detected outside the popup.
|
145
152
|
*/
|
146
|
-
function showPopup(referenceElement, placement, Component,
|
153
|
+
function showPopup(referenceElement, placement, Component, closeOnHoverEnd, onClose) {
|
147
154
|
var el = document.createElement('div');
|
148
155
|
document.body.appendChild(el);
|
149
156
|
var closeFn = function () {
|
@@ -151,7 +158,7 @@ function showPopup(referenceElement, placement, Component, zIndex, closeOnHoverE
|
|
151
158
|
el.remove();
|
152
159
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
153
160
|
};
|
154
|
-
react_dom_1.default.render((React.createElement(PopupPositioner, { referenceElement: referenceElement, placement: placement, onClose: closeFn,
|
161
|
+
react_dom_1.default.render((React.createElement(PopupPositioner, { referenceElement: referenceElement, placement: placement, onClose: closeFn, closeOnHoverEnd: closeOnHoverEnd || false },
|
155
162
|
React.createElement(Component, { closePopup: closeFn }))), el);
|
156
163
|
return { close: closeFn };
|
157
164
|
}
|
@@ -74,11 +74,8 @@ var SubNav = /** @class */ (function (_super) {
|
|
74
74
|
},
|
75
75
|
_a["subnav--".concat(this.props.color)] = this.props.color || this.props.color !== undefined,
|
76
76
|
_a), this.props.className);
|
77
|
-
var style = {
|
78
|
-
zIndex: 1000 + (this.props.zIndex ? this.props.zIndex : 0),
|
79
|
-
};
|
80
77
|
var defaultTheme = darkColors.includes(this.props.color || '') ? 'dark-ui' : null;
|
81
|
-
return (React.createElement("div", { "data-theme": this.props.theme ? "".concat(this.props.theme, "-ui") : defaultTheme, className: classes
|
78
|
+
return (React.createElement("div", { "data-theme": this.props.theme ? "".concat(this.props.theme, "-ui") : defaultTheme, className: classes }, this.props.children));
|
82
79
|
};
|
83
80
|
return SubNav;
|
84
81
|
}(React.PureComponent));
|
@@ -11,7 +11,6 @@ interface IState<T> {
|
|
11
11
|
buttonTarget: Array<string>;
|
12
12
|
}
|
13
13
|
interface IProps<T> {
|
14
|
-
zIndex?: number;
|
15
14
|
searchPlaceholder?: string;
|
16
15
|
singleLevelSearch?: boolean;
|
17
16
|
'data-test-id'?: string;
|
@@ -40,6 +39,7 @@ export declare class TreeMenu<T> extends React.Component<IProps<T>, IState<T>> {
|
|
40
39
|
private treeMenuRef;
|
41
40
|
private inputRef;
|
42
41
|
private popperInstance;
|
42
|
+
private zIndex;
|
43
43
|
constructor(props: IProps<T>);
|
44
44
|
inputFocus: () => void;
|
45
45
|
listNavigation: () => void;
|
@@ -55,6 +55,7 @@ var TreeSelectItem_1 = require("./TreeSelect/TreeSelectItem");
|
|
55
55
|
var KeyboardNavigation_1 = require("./TreeSelect/KeyboardNavigation");
|
56
56
|
var WithPortal_1 = require("./WithPortal");
|
57
57
|
var helpers_1 = require("../helpers");
|
58
|
+
var zIndex_1 = require("../zIndex");
|
58
59
|
function nodeHasChildren(item) {
|
59
60
|
return item[(0, helpers_1.nameof)('children')] != null;
|
60
61
|
}
|
@@ -77,6 +78,7 @@ var TreeMenu = /** @class */ (function (_super) {
|
|
77
78
|
__extends(TreeMenu, _super);
|
78
79
|
function TreeMenu(props) {
|
79
80
|
var _this = _super.call(this, props) || this;
|
81
|
+
_this.zIndex = (0, zIndex_1.getNextZIndex)();
|
80
82
|
_this.inputFocus = function () {
|
81
83
|
var _a;
|
82
84
|
(_a = _this.inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
@@ -298,7 +300,7 @@ var TreeMenu = /** @class */ (function (_super) {
|
|
298
300
|
React.createElement("div", { ref: this.openDropdownRef }, this.props.children(this.toggle)),
|
299
301
|
React.createElement(WithPortal_1.WithPortal, { active: this.state.openDropdown, "data-test-id": "tree-menu-popover" },
|
300
302
|
React.createElement("div", { ref: this.dropdownRef, className: "autocomplete autocomplete--multi-select autocomplete--fixed-width", style: {
|
301
|
-
zIndex: this.
|
303
|
+
zIndex: this.zIndex,
|
302
304
|
} },
|
303
305
|
React.createElement("div", { className: 'autocomplete__header' },
|
304
306
|
React.createElement("div", { className: "autocomplete__icon", onClick: function () {
|
@@ -28,7 +28,6 @@ interface IPropsBase<T> extends IInputWrapper {
|
|
28
28
|
searchPlaceholder?: string;
|
29
29
|
noResultsFoundMessage?: string;
|
30
30
|
dropdownInitiallyOpen?: boolean;
|
31
|
-
zIndex?: number;
|
32
31
|
sortable?: boolean;
|
33
32
|
'data-test-id'?: string;
|
34
33
|
getLabel(item: T): string;
|
@@ -63,6 +62,7 @@ export declare class TreeSelect<T> extends React.Component<IProps<T>, IState<T>>
|
|
63
62
|
private treeSelectRef;
|
64
63
|
private htmlId;
|
65
64
|
private popperInstance;
|
65
|
+
private zIndex;
|
66
66
|
constructor(props: IProps<T>);
|
67
67
|
inputFocus: () => void;
|
68
68
|
listNavigation: () => void;
|
@@ -77,6 +77,7 @@ var TreeSelectItem_1 = require("./TreeSelectItem");
|
|
77
77
|
var KeyboardNavigation_1 = require("./KeyboardNavigation");
|
78
78
|
var WithPortal_1 = require("../WithPortal");
|
79
79
|
var react_beautiful_dnd_1 = require("react-beautiful-dnd");
|
80
|
+
var zIndex_1 = require("../../zIndex");
|
80
81
|
var reorder = function (list, startIndex, endIndex) {
|
81
82
|
var result = Array.from(list);
|
82
83
|
var removed = result.splice(startIndex, 1)[0];
|
@@ -88,6 +89,7 @@ var TreeSelect = /** @class */ (function (_super) {
|
|
88
89
|
function TreeSelect(props) {
|
89
90
|
var _this = _super.call(this, props) || this;
|
90
91
|
_this.htmlId = (0, react_id_generator_1.default)();
|
92
|
+
_this.zIndex = (0, zIndex_1.getNextZIndex)();
|
91
93
|
_this.inputFocus = function () {
|
92
94
|
var _a;
|
93
95
|
(_a = _this.inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
@@ -626,7 +628,7 @@ var TreeSelect = /** @class */ (function (_super) {
|
|
626
628
|
React.createElement(WithPortal_1.WithPortal, { active: this.state.openDropdown, "data-test-id": "tree-select-popover" },
|
627
629
|
React.createElement("div", { className: "autocomplete autocomplete--multi-select"
|
628
630
|
+ (this.props.width === 'medium' ? ' autocomplete--fixed-width' : ''), style: {
|
629
|
-
zIndex: this.
|
631
|
+
zIndex: this.zIndex,
|
630
632
|
width: (_b = this.treeSelectRef.current) === null || _b === void 0 ? void 0 : _b.offsetWidth,
|
631
633
|
}, ref: this.dropdownRef },
|
632
634
|
React.createElement("div", { className: 'autocomplete__header' },
|
@@ -55,7 +55,7 @@ var WithPopover = /** @class */ (function (_super) {
|
|
55
55
|
this.closePopup = undefined;
|
56
56
|
}
|
57
57
|
else {
|
58
|
-
this.closePopup = (0, ShowPopup_1.showPopup)(referenceElement, this.props.placement, this.props.component, this.props.
|
58
|
+
this.closePopup = (0, ShowPopup_1.showPopup)(referenceElement, this.props.placement, this.props.component, this.props.closeOnHoverEnd, function () {
|
59
59
|
var _a, _b;
|
60
60
|
_this.closePopup = undefined;
|
61
61
|
(_b = (_a = _this.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);
|
@@ -53,6 +53,7 @@ exports.Positioner = void 0;
|
|
53
53
|
var React = __importStar(require("react"));
|
54
54
|
var ReactDOM = __importStar(require("react-dom"));
|
55
55
|
var _popper = __importStar(require("popper.js"));
|
56
|
+
var zIndex_1 = require("../zIndex");
|
56
57
|
var Popper = _popper.default;
|
57
58
|
var eventCloseOthers = 'superdesk-ui-framework.positioner.closeOthers';
|
58
59
|
var padding = 5;
|
@@ -60,6 +61,7 @@ var PopperWrapper = /** @class */ (function (_super) {
|
|
60
61
|
__extends(PopperWrapper, _super);
|
61
62
|
function PopperWrapper(props) {
|
62
63
|
var _this = _super.call(this, props) || this;
|
64
|
+
_this.zIndex = (0, zIndex_1.getNextZIndex)();
|
63
65
|
_this.wrapper = document.createElement('div'); // avoid setting to null
|
64
66
|
_this.closeDropdownOnOutsideClickBound = function (event) {
|
65
67
|
_this.props.closeDropdownOnOutsideClick(_this.wrapper, event);
|
@@ -74,9 +76,7 @@ var PopperWrapper = /** @class */ (function (_super) {
|
|
74
76
|
_this.props.handleCloseOthers(event);
|
75
77
|
});
|
76
78
|
var dropdownElement = this.wrapper;
|
77
|
-
|
78
|
-
dropdownElement.style.zIndex = this.props.zIndex.toString();
|
79
|
-
}
|
79
|
+
dropdownElement.style.zIndex = this.zIndex.toString();
|
80
80
|
var rect = this.props.triggerElement.getBoundingClientRect();
|
81
81
|
var viewportHeight = document.documentElement.clientHeight;
|
82
82
|
var viewportWidth = document.documentElement.clientWidth;
|
@@ -71,8 +71,7 @@ var AvatarGroup = /** @class */ (function (_super) {
|
|
71
71
|
}
|
72
72
|
AvatarGroup.prototype.render = function () {
|
73
73
|
var _this = this;
|
74
|
-
var _a;
|
75
|
-
var _b = this.props, size = _b.size, items = _b.items;
|
74
|
+
var _a = this.props, size = _a.size, items = _a.items;
|
76
75
|
var someIconsHaveExtraElements = items.filter(isAvatar).some(function (_a) {
|
77
76
|
var icon = _a.icon, administratorIndicator = _a.administratorIndicator;
|
78
77
|
return icon != null || administratorIndicator != null;
|
@@ -104,7 +103,7 @@ var AvatarGroup = /** @class */ (function (_super) {
|
|
104
103
|
}
|
105
104
|
};
|
106
105
|
var someHaveDisplayName = this.props.items.some(function (item) { return isAvatar(item) && item.displayName.length > 0; });
|
107
|
-
return (React.createElement(WithPopover_1.WithPopover, {
|
106
|
+
return (React.createElement(WithPopover_1.WithPopover, { placement: 'bottom-end', component: function () { return (React.createElement("div", { className: "avatar-popup" }, _this.props.items.map(function (item, index) {
|
108
107
|
return (someHaveDisplayName
|
109
108
|
? React.createElement(common_1.Spacer, { h: true, alignItems: 'center', gap: '16', noGrow: true, key: index },
|
110
109
|
isAvatar(item)
|
package/react/index.d.ts
CHANGED
@@ -92,6 +92,7 @@ export { ContentListItem } from './components/Lists/ContentList';
|
|
92
92
|
export { MultiSelect } from './components/MultiSelect';
|
93
93
|
export { ResizablePanels } from './components/ResizablePanels';
|
94
94
|
export { WithPopover } from './components/WithPopover';
|
95
|
+
export { PopupPositioner, showPopup } from './components/ShowPopup';
|
95
96
|
export { Spacer, SpacerBlock } from '@superdesk/common';
|
96
97
|
export { ResizeObserverComponent } from './components/ResizeObserverComponent';
|
97
98
|
export { DragHandleDots } from './components/DragHandleDots';
|
package/react/index.js
CHANGED
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
19
19
|
exports.Divider = exports.Icon = exports.Prop = exports.PropsList = exports.StrechBar = exports.SlidingToolbar = exports.SubNavDivider = exports.SubNav = exports.LeftMenu = exports.TabList = exports.Tab = exports.NavButton = exports.CheckButtonGroup = exports.CheckGroup = exports.CheckboxButton = exports.RadioButtonGroup = exports.Checkbox = exports.RadioGroup = exports.Loader = exports.ButtonGroup = exports.SwitchGroup = exports.Switch = exports.FormLabel = exports.TimePickerV2 = exports.TimePicker = exports.DatePickerISO = exports.DatePicker = exports.getDurationString = exports.DurationInput = exports.Tooltip = exports.IconLabel = exports.IconButton = exports.Rotate = exports.AvatarPlaceholder = exports.Avatar = exports.AvatarGroup = exports.AvatarContentImage = exports.AvatarContentText = exports.AvatarWrapper = exports.Alert = exports.Badge = exports.Label = exports.Popover = exports.WithPagination = exports.SelectWithTemplate = exports.Option = exports.Select = exports.Input = exports.Button = exports.HelloWorld = void 0;
|
20
20
|
exports.Time = exports.Text = exports.LoadingOverlay = exports.Spinner = exports.ListItemLoader = exports.Skeleton = exports.IllustrationButton = exports.SvgIconIllustration = exports.WithSizeObserver = exports.SearchBar = exports.CreateButton = exports.DropZone = exports.ThemeSelector = exports.IconPicker = exports.SelectGrid = exports.ToggleBox = exports.Menu = exports.toasted = exports.GridItemCheckWrapper = exports.GridItemTopActions = exports.GridItemFooterActions = exports.GridItemFooterBlock = exports.GridItemSlug = exports.GridItemText = exports.GridItemTitle = exports.GridItemTime = exports.GridItemContentBlock = exports.GridItemFooter = exports.GridItemMedia = exports.GridItemContent = exports.GridItem = exports.GridList = exports.Modal = exports.Carousel = exports.DonutChart = exports.Autocomplete = exports.EmptyState = exports.Tabs = exports.TabContent = exports.TabPanel = exports.TabLabel = exports.TagInput = exports.Tag = exports.Dropdown = exports.DropdownDivider = exports.DropdownLabel = exports.DropdownItem = exports.DropdownFirst = exports.HeadingText = exports.ContentDivider = void 0;
|
21
|
-
exports.DragHandle = exports.DragHandleDots = exports.ResizeObserverComponent = exports.SpacerBlock = exports.Spacer = exports.WithPopover = exports.ResizablePanels = exports.MultiSelect = exports.ContentListItem = exports.TableListItem = exports.TableList = exports.TreeMenu = exports.TreeSelect = exports.BottomNav = exports.Heading = void 0;
|
21
|
+
exports.DragHandle = exports.DragHandleDots = exports.ResizeObserverComponent = exports.SpacerBlock = exports.Spacer = exports.showPopup = exports.PopupPositioner = exports.WithPopover = exports.ResizablePanels = exports.MultiSelect = exports.ContentListItem = exports.TableListItem = exports.TableList = exports.TreeMenu = exports.TreeSelect = exports.BottomNav = exports.Heading = void 0;
|
22
22
|
var HelloWorld_1 = require("./components/HelloWorld");
|
23
23
|
Object.defineProperty(exports, "HelloWorld", { enumerable: true, get: function () { return HelloWorld_1.HelloWorld; } });
|
24
24
|
var Button_1 = require("./components/Button");
|
@@ -222,6 +222,9 @@ var ResizablePanels_1 = require("./components/ResizablePanels");
|
|
222
222
|
Object.defineProperty(exports, "ResizablePanels", { enumerable: true, get: function () { return ResizablePanels_1.ResizablePanels; } });
|
223
223
|
var WithPopover_1 = require("./components/WithPopover");
|
224
224
|
Object.defineProperty(exports, "WithPopover", { enumerable: true, get: function () { return WithPopover_1.WithPopover; } });
|
225
|
+
var ShowPopup_1 = require("./components/ShowPopup");
|
226
|
+
Object.defineProperty(exports, "PopupPositioner", { enumerable: true, get: function () { return ShowPopup_1.PopupPositioner; } });
|
227
|
+
Object.defineProperty(exports, "showPopup", { enumerable: true, get: function () { return ShowPopup_1.showPopup; } });
|
225
228
|
var common_1 = require("@superdesk/common");
|
226
229
|
Object.defineProperty(exports, "Spacer", { enumerable: true, get: function () { return common_1.Spacer; } });
|
227
230
|
Object.defineProperty(exports, "SpacerBlock", { enumerable: true, get: function () { return common_1.SpacerBlock; } });
|
package/react/zIndex.js
ADDED