@adaptabletools/adaptable 13.1.1-canary.0 → 13.1.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.
- package/base.css +561 -1971
- package/base.css.map +1 -1
- package/bundle.cjs.js +224 -224
- package/index.css +196 -847
- package/index.css.map +1 -1
- package/package.json +2 -2
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableOptions/ActionOptions.d.ts +4 -1
- package/src/AdaptableOptions/GeneralOptions.d.ts +6 -0
- package/src/Api/IPushPullApi.d.ts +1 -1
- package/src/Api/Implementation/FormatColumnApiImpl.js +3 -3
- package/src/Api/Implementation/InternalApiImpl.d.ts +4 -0
- package/src/Api/Implementation/InternalApiImpl.js +7 -0
- package/src/Api/InternalApi.d.ts +4 -0
- package/src/PredefinedConfig/SystemState.d.ts +7 -0
- package/src/Redux/ActionsReducers/QuickSearchRedux.d.ts +1 -1
- package/src/Redux/ActionsReducers/QuickSearchRedux.js +1 -1
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +8 -0
- package/src/Redux/ActionsReducers/SystemRedux.js +32 -2
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +0 -4
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +8 -10
- package/src/Utilities/Helpers/FormatHelper.d.ts +1 -1
- package/src/Utilities/Helpers/FormatHelper.js +7 -1
- package/src/Utilities/Services/LicenseService/index.js +1 -1
- package/src/View/Components/Charting/ChartingViewPanel.js +9 -7
- package/src/View/Components/Charting/ShowChartButton.js +6 -6
- package/src/View/Components/FilterForm/QuickFilterForm.js +2 -2
- package/src/View/Components/RangesComponent.js +1 -1
- package/src/View/Dashboard/Dashboard.js +3 -2
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +2 -2
- package/src/agGrid/Adaptable.d.ts +10 -1
- package/src/agGrid/Adaptable.js +74 -6
- package/src/components/ColorPicker/ColorPicker.js +1 -1
- package/src/components/Datepicker/index.d.ts +1 -1
- package/src/components/Datepicker/index.js +1 -1
- package/src/components/DropdownButton/index.js +2 -2
- package/src/components/OverlayTrigger/Overlay.d.ts +1 -4
- package/src/components/OverlayTrigger/Overlay.js +3 -40
- package/src/components/OverlayTrigger/index.d.ts +4 -4
- package/src/components/OverlayTrigger/index.js +71 -50
- package/src/components/SimpleButton/index.d.ts +0 -2
- package/src/components/SimpleButton/index.js +2 -2
- package/src/components/Tooltip/index.d.ts +1 -3
- package/src/components/Tooltip/index.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +7 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/src/components/OverlayTrigger/getOverlayStyle.d.ts +0 -13
- package/src/components/OverlayTrigger/getOverlayStyle.js +0 -56
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getConstrainRect = void 0;
|
|
3
|
+
exports.getConstrainRect = exports.getConstrainElement = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const batchUpdate_1 = tslib_1.__importDefault(require("../utils/batchUpdate"));
|
|
8
|
-
const getAvailableSizeInfo_1 = tslib_1.__importDefault(require("../utils/getAvailableSizeInfo"));
|
|
9
|
-
const react_dom_1 = require("react-dom");
|
|
10
8
|
const selectParent_1 = tslib_1.__importDefault(require("../utils/selectParent"));
|
|
11
9
|
const useProperty_1 = tslib_1.__importDefault(require("../utils/useProperty"));
|
|
12
10
|
const Overlay_1 = tslib_1.__importDefault(require("./Overlay"));
|
|
13
|
-
const getOverlayStyle_1 = tslib_1.__importDefault(require("./getOverlayStyle"));
|
|
14
11
|
const join_1 = tslib_1.__importDefault(require("../utils/join"));
|
|
15
12
|
const usePrevious_1 = tslib_1.__importDefault(require("../utils/usePrevious"));
|
|
16
13
|
const utils_1 = require("./utils");
|
|
@@ -18,7 +15,9 @@ const LoggingHelper_1 = require("../../Utilities/Helpers/LoggingHelper");
|
|
|
18
15
|
const useAgGridClassName_1 = tslib_1.__importDefault(require("./useAgGridClassName"));
|
|
19
16
|
const contains_1 = tslib_1.__importDefault(require("../utils/contains"));
|
|
20
17
|
const UIHelper_1 = require("../../View/UIHelper");
|
|
21
|
-
const
|
|
18
|
+
const InfiniteTable_1 = require("../InfiniteTable");
|
|
19
|
+
const AdaptableContext_1 = require("../../View/AdaptableContext");
|
|
20
|
+
const getConstrainElement = (target, constrainTo) => {
|
|
22
21
|
let el = null;
|
|
23
22
|
if (typeof constrainTo === 'string') {
|
|
24
23
|
el = (0, selectParent_1.default)(constrainTo, target);
|
|
@@ -26,6 +25,11 @@ const getConstrainRect = (target, constrainTo) => {
|
|
|
26
25
|
if (typeof constrainTo === 'function') {
|
|
27
26
|
el = constrainTo(target);
|
|
28
27
|
}
|
|
28
|
+
return el;
|
|
29
|
+
};
|
|
30
|
+
exports.getConstrainElement = getConstrainElement;
|
|
31
|
+
const getConstrainRect = (target, constrainTo) => {
|
|
32
|
+
let el = (0, exports.getConstrainElement)(target, constrainTo);
|
|
29
33
|
if (el && el.tagName) {
|
|
30
34
|
return (0, utils_1.getRect)(el);
|
|
31
35
|
}
|
|
@@ -41,10 +45,25 @@ const ensurePortalElement = () => {
|
|
|
41
45
|
return;
|
|
42
46
|
}
|
|
43
47
|
portalElement = document.createElement('div');
|
|
48
|
+
portalElement.style.position = 'absolute';
|
|
49
|
+
portalElement.style.zIndex = '999999';
|
|
50
|
+
portalElement.style.top = '0px';
|
|
51
|
+
portalElement.style.left = '0px';
|
|
44
52
|
document.body.appendChild(portalElement);
|
|
45
53
|
};
|
|
46
54
|
const OverlayTrigger = React.forwardRef((props, ref) => {
|
|
47
|
-
|
|
55
|
+
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
56
|
+
let { visible: _, showTriangle, showEvent, hideEvent, render, targetOffset, preventPortalEventPropagation = false, defaultZIndex, anchor, hideDelay = 0, opacityTransitionDuration, onVisibleChange, alignPosition = [
|
|
57
|
+
// overlay - target
|
|
58
|
+
['TopLeft', 'BottomLeft'],
|
|
59
|
+
['TopRight', 'BottomRight'],
|
|
60
|
+
['TopRight', 'BottomCenter'],
|
|
61
|
+
['TopRight', 'BottomLeft'],
|
|
62
|
+
['TopRight', 'BottomLeft'],
|
|
63
|
+
], constrainTo, target: targetProp } = props, domProps = tslib_1.__rest(props, ["visible", "showTriangle", "showEvent", "hideEvent", "render", "targetOffset", "preventPortalEventPropagation", "defaultZIndex", "anchor", "hideDelay", "opacityTransitionDuration", "onVisibleChange", "alignPosition", "constrainTo", "target"]);
|
|
64
|
+
const { showOverlay, clearAll: clearAllOverlays, hideOverlay, portal, } = (0, InfiniteTable_1.useOverlay)({
|
|
65
|
+
portalContainer: portalElement,
|
|
66
|
+
});
|
|
48
67
|
const domRef = (0, react_1.useRef)(null);
|
|
49
68
|
const targetRef = (0, react_1.useRef)(null);
|
|
50
69
|
const overlayRef = (0, react_1.useRef)(null);
|
|
@@ -64,8 +83,6 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
|
|
|
64
83
|
}
|
|
65
84
|
doSetVisible(true);
|
|
66
85
|
}, []);
|
|
67
|
-
const [targetRect, setTargetRect] = (0, react_1.useState)(null);
|
|
68
|
-
const [sizeInfo, setSizeInfo] = (0, react_1.useState)(null);
|
|
69
86
|
const prevVisible = (0, usePrevious_1.default)(visible, false);
|
|
70
87
|
ensurePortalElement();
|
|
71
88
|
const onShow = React.useCallback((event) => {
|
|
@@ -78,14 +95,6 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
|
|
|
78
95
|
}
|
|
79
96
|
(0, batchUpdate_1.default)(() => {
|
|
80
97
|
setVisible(true);
|
|
81
|
-
const target = targetRef.current;
|
|
82
|
-
const targetRect = target.getBoundingClientRect();
|
|
83
|
-
const sizeInfo = (0, getAvailableSizeInfo_1.default)({
|
|
84
|
-
targetRect,
|
|
85
|
-
constrainRect: (0, exports.getConstrainRect)(target, constrainTo),
|
|
86
|
-
});
|
|
87
|
-
setTargetRect(targetRect);
|
|
88
|
-
setSizeInfo(sizeInfo);
|
|
89
98
|
}).commit();
|
|
90
99
|
}, [constrainTo, preventPortalEventPropagation]);
|
|
91
100
|
const onHide = React.useCallback((_event) => {
|
|
@@ -105,6 +114,7 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
|
|
|
105
114
|
}
|
|
106
115
|
}
|
|
107
116
|
}, [ref]);
|
|
117
|
+
const previousVisible = (0, usePrevious_1.default)(visible, visible);
|
|
108
118
|
(0, react_1.useEffect)(() => {
|
|
109
119
|
let target = domRef.current.previousSibling;
|
|
110
120
|
if (targetProp) {
|
|
@@ -133,41 +143,52 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
|
|
|
133
143
|
}
|
|
134
144
|
};
|
|
135
145
|
}, [props.visible, showEvent, hideEvent, onShow, onHide]);
|
|
136
|
-
|
|
146
|
+
React.useEffect(() => {
|
|
147
|
+
var _a, _b;
|
|
148
|
+
const target = targetRef.current;
|
|
149
|
+
if (!target) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if ((prevVisible && !visible) || visible) {
|
|
153
|
+
const overlayContent = (React.createElement(Overlay_1.default, Object.assign({}, domProps, { ref: (node) => {
|
|
154
|
+
if (overlayRef.current && overlayRef.current != node) {
|
|
155
|
+
overlayRef.current.removeEventListener(showEvent, onShow);
|
|
156
|
+
overlayRef.current.removeEventListener(hideEvent, onHide);
|
|
157
|
+
}
|
|
158
|
+
overlayRef.current = node;
|
|
159
|
+
if (node) {
|
|
160
|
+
node.addEventListener(showEvent, onShow);
|
|
161
|
+
node.addEventListener(hideEvent, onHide);
|
|
162
|
+
}
|
|
163
|
+
}, className: (0, join_1.default)('ab-Overlay', showTriangle ? 'ab-Overlay--show-triangle' : '', agGridClassName, domProps.className), style: { transition: `opacity ${opacityTransitionDuration}` }, visible: visible, onTransitionEnd: () => {
|
|
164
|
+
if (!visible) {
|
|
165
|
+
clearAllOverlays();
|
|
166
|
+
hideOverlay('overlay-trigger');
|
|
167
|
+
}
|
|
168
|
+
} }), props.render()));
|
|
169
|
+
let preparedConstrinTo;
|
|
170
|
+
if (constrainTo) {
|
|
171
|
+
preparedConstrinTo = (0, exports.getConstrainElement)(targetRef.current, constrainTo);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
preparedConstrinTo = adaptable === null || adaptable === void 0 ? void 0 : adaptable.getAgGridContainerElement();
|
|
175
|
+
}
|
|
176
|
+
// show only if visible or if it was visible and now it is invisible
|
|
177
|
+
const showOverlayOptions = {
|
|
178
|
+
id: 'overlay-trigger',
|
|
179
|
+
alignPosition,
|
|
180
|
+
constrainTo: (_b = (_a = preparedConstrinTo === null || preparedConstrinTo === void 0 ? void 0 : preparedConstrinTo.getBoundingClientRect) === null || _a === void 0 ? void 0 : _a.call(preparedConstrinTo)) !== null && _b !== void 0 ? _b : true,
|
|
181
|
+
alignTo: target.getBoundingClientRect(),
|
|
182
|
+
};
|
|
183
|
+
showOverlay(() => overlayContent, showOverlayOptions);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
clearAllOverlays();
|
|
187
|
+
}
|
|
188
|
+
}, [visible, props.render]);
|
|
137
189
|
const agGridClassName = (0, useAgGridClassName_1.default)([visible]);
|
|
138
|
-
if (targetRect) {
|
|
139
|
-
const overlayTarget = targetRef.current;
|
|
140
|
-
alignHorizontal =
|
|
141
|
-
alignHorizontal ||
|
|
142
|
-
getComputedStyle(overlayTarget)
|
|
143
|
-
.getPropertyValue('--ab-overlay-horizontal-align')
|
|
144
|
-
.trim();
|
|
145
|
-
let overlayStyle = (0, getOverlayStyle_1.default)({
|
|
146
|
-
constrainRect: (0, exports.getConstrainRect)(overlayTarget, constrainTo),
|
|
147
|
-
targetRect,
|
|
148
|
-
targetOffset,
|
|
149
|
-
anchor,
|
|
150
|
-
alignHorizontal,
|
|
151
|
-
});
|
|
152
|
-
overlayStyle.transition = `opacity ${opacityTransitionDuration}`;
|
|
153
|
-
overlayStyle.overflow = `visible`;
|
|
154
|
-
overlayStyle.zIndex = defaultZIndex;
|
|
155
|
-
overlayStyle = Object.assign(Object.assign({}, overlayStyle), props.style);
|
|
156
|
-
const position = anchor === 'vertical' ? sizeInfo.verticalPosition : sizeInfo.horizontalPosition;
|
|
157
|
-
overlay = (0, react_dom_1.createPortal)(React.createElement(Overlay_1.default, Object.assign({}, domProps, { ref: (node) => {
|
|
158
|
-
if (overlayRef.current && overlayRef.current != node) {
|
|
159
|
-
overlayRef.current.removeEventListener(showEvent, onShow);
|
|
160
|
-
overlayRef.current.removeEventListener(hideEvent, onHide);
|
|
161
|
-
}
|
|
162
|
-
overlayRef.current = node;
|
|
163
|
-
if (node) {
|
|
164
|
-
node.addEventListener(showEvent, onShow);
|
|
165
|
-
node.addEventListener(hideEvent, onHide);
|
|
166
|
-
}
|
|
167
|
-
}, className: (0, join_1.default)('ab-Overlay', `ab-Overlay--position-${position}`, showTriangle ? 'ab-Overlay--show-triangle' : '', agGridClassName, domProps.className), visible: visible, style: overlayStyle, anchor: anchor, position: position, getConstrainRect: () => (0, exports.getConstrainRect)(targetRef.current) }), props.render()), portalElement);
|
|
168
|
-
}
|
|
169
190
|
return (React.createElement(React.Fragment, null,
|
|
170
|
-
props.children,
|
|
191
|
+
React.Children.only(props.children),
|
|
171
192
|
React.createElement("div", { "data-name": "OverlayTrigger", "data-visible": visible, ref: domRef, style: {
|
|
172
193
|
visibility: 'hidden',
|
|
173
194
|
flex: 'none',
|
|
@@ -176,7 +197,7 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
|
|
|
176
197
|
pointerEvents: 'none',
|
|
177
198
|
display: 'inline-flex',
|
|
178
199
|
} }),
|
|
179
|
-
|
|
200
|
+
portal));
|
|
180
201
|
});
|
|
181
202
|
OverlayTrigger.defaultProps = {
|
|
182
203
|
showEvent: 'mouseenter',
|
|
@@ -2,7 +2,6 @@ import * as React from 'react';
|
|
|
2
2
|
import { ButtonProps } from 'rebass';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
4
|
import { AccessLevel } from '../../PredefinedConfig/Common/Entitlement';
|
|
5
|
-
import { OverlayProps } from '../OverlayTrigger/Overlay';
|
|
6
5
|
import { AdaptableIcon } from '../../PredefinedConfig/Common/AdaptableIcon';
|
|
7
6
|
export declare const baseClassName = "ab-SimpleButton";
|
|
8
7
|
export interface SimpleButtonProps extends Omit<ButtonProps, 'ref'> {
|
|
@@ -14,7 +13,6 @@ export interface SimpleButtonProps extends Omit<ButtonProps, 'ref'> {
|
|
|
14
13
|
iconPosition?: 'start' | 'end';
|
|
15
14
|
disabled?: boolean;
|
|
16
15
|
accessLevel?: AccessLevel;
|
|
17
|
-
tooltipAnchor?: OverlayProps['anchor'];
|
|
18
16
|
}
|
|
19
17
|
declare const SimpleButton: React.ForwardRefExoticComponent<SimpleButtonProps & {
|
|
20
18
|
children?: React.ReactNode;
|
|
@@ -12,7 +12,7 @@ const AdaptableIconComponent_1 = require("../AdaptableIconComponent");
|
|
|
12
12
|
exports.baseClassName = 'ab-SimpleButton';
|
|
13
13
|
const SimpleButton = React.forwardRef((props, theRef) => {
|
|
14
14
|
var _a, _b;
|
|
15
|
-
let { children, disabled, variant = 'outlined', tone = 'neutral', iconPosition = 'start', iconSize, className, icon, tooltip,
|
|
15
|
+
let { children, disabled, variant = 'outlined', tone = 'neutral', iconPosition = 'start', iconSize, className, icon, tooltip, accessLevel: accessLevel, type } = props, buttonProps = tslib_1.__rest(props, ["children", "disabled", "variant", "tone", "iconPosition", "iconSize", "className", "icon", "tooltip", "accessLevel", "type"]);
|
|
16
16
|
let adaptableInternalIcon;
|
|
17
17
|
if ((0, AdaptableIconComponent_1.isAdaptableInternalIcon)(icon)) {
|
|
18
18
|
adaptableInternalIcon = icon;
|
|
@@ -77,7 +77,7 @@ const SimpleButton = React.forwardRef((props, theRef) => {
|
|
|
77
77
|
? (_b = (_a = theme_1.default[buttonProps.fontWeight]) !== null && _a !== void 0 ? _a : buttonProps.fontWeight) !== null && _b !== void 0 ? _b : 'normal'
|
|
78
78
|
: 'normal';
|
|
79
79
|
const btn = (React.createElement(rebass_1.Button, Object.assign({}, buttonProps, { disabled: disabled, className: (0, join_1.default)(className, exports.baseClassName, disabled ? `${exports.baseClassName}--disabled` : '', fontWeight ? `${exports.baseClassName}--font-weight=${fontWeight}` : '', `${exports.baseClassName}--variant-${variant}`, `${exports.baseClassName}--tone-${tone}`), ref: theRef }), children));
|
|
80
|
-
return tooltip ?
|
|
80
|
+
return tooltip ? React.createElement(Tooltip_1.default, { label: tooltip }, btn) : btn;
|
|
81
81
|
});
|
|
82
82
|
SimpleButton.defaultProps = {
|
|
83
83
|
px: null,
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
declare const Tooltip: ({ label, children, anchor, }: {
|
|
2
|
+
declare const Tooltip: ({ label, children }: {
|
|
4
3
|
label?: React.ReactNode;
|
|
5
4
|
children: React.ReactNode;
|
|
6
|
-
anchor?: OverlayProps['anchor'];
|
|
7
5
|
}) => JSX.Element;
|
|
8
6
|
export default Tooltip;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const React = tslib_1.__importStar(require("react"));
|
|
5
5
|
const OverlayTrigger_1 = tslib_1.__importDefault(require("../OverlayTrigger"));
|
|
6
|
-
const Tooltip = ({ label, children
|
|
7
|
-
return (React.createElement(OverlayTrigger_1.default, {
|
|
6
|
+
const Tooltip = ({ label, children }) => {
|
|
7
|
+
return (React.createElement(OverlayTrigger_1.default, { defaultZIndex: 2000000, className: "ab-Tooltip", render: () => label }, children));
|
|
8
8
|
};
|
|
9
9
|
exports.default = Tooltip;
|
|
@@ -111,6 +111,13 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
111
111
|
name: string;
|
|
112
112
|
kind: string;
|
|
113
113
|
description: string;
|
|
114
|
+
properties: {
|
|
115
|
+
name: string;
|
|
116
|
+
kind: string;
|
|
117
|
+
description: string;
|
|
118
|
+
uiLabel: string;
|
|
119
|
+
reference: string;
|
|
120
|
+
}[];
|
|
114
121
|
};
|
|
115
122
|
ActionRowButtonType: {
|
|
116
123
|
name: string;
|