@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.
Files changed (52) hide show
  1. package/base.css +561 -1971
  2. package/base.css.map +1 -1
  3. package/bundle.cjs.js +224 -224
  4. package/index.css +196 -847
  5. package/index.css.map +1 -1
  6. package/package.json +2 -2
  7. package/publishTimestamp.d.ts +1 -1
  8. package/publishTimestamp.js +1 -1
  9. package/src/AdaptableOptions/ActionOptions.d.ts +4 -1
  10. package/src/AdaptableOptions/GeneralOptions.d.ts +6 -0
  11. package/src/Api/IPushPullApi.d.ts +1 -1
  12. package/src/Api/Implementation/FormatColumnApiImpl.js +3 -3
  13. package/src/Api/Implementation/InternalApiImpl.d.ts +4 -0
  14. package/src/Api/Implementation/InternalApiImpl.js +7 -0
  15. package/src/Api/InternalApi.d.ts +4 -0
  16. package/src/PredefinedConfig/SystemState.d.ts +7 -0
  17. package/src/Redux/ActionsReducers/QuickSearchRedux.d.ts +1 -1
  18. package/src/Redux/ActionsReducers/QuickSearchRedux.js +1 -1
  19. package/src/Redux/ActionsReducers/SystemRedux.d.ts +8 -0
  20. package/src/Redux/ActionsReducers/SystemRedux.js +32 -2
  21. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
  22. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +0 -4
  23. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +8 -10
  24. package/src/Utilities/Helpers/FormatHelper.d.ts +1 -1
  25. package/src/Utilities/Helpers/FormatHelper.js +7 -1
  26. package/src/Utilities/Services/LicenseService/index.js +1 -1
  27. package/src/View/Components/Charting/ChartingViewPanel.js +9 -7
  28. package/src/View/Components/Charting/ShowChartButton.js +6 -6
  29. package/src/View/Components/FilterForm/QuickFilterForm.js +2 -2
  30. package/src/View/Components/RangesComponent.js +1 -1
  31. package/src/View/Dashboard/Dashboard.js +3 -2
  32. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +2 -2
  33. package/src/agGrid/Adaptable.d.ts +10 -1
  34. package/src/agGrid/Adaptable.js +74 -6
  35. package/src/components/ColorPicker/ColorPicker.js +1 -1
  36. package/src/components/Datepicker/index.d.ts +1 -1
  37. package/src/components/Datepicker/index.js +1 -1
  38. package/src/components/DropdownButton/index.js +2 -2
  39. package/src/components/OverlayTrigger/Overlay.d.ts +1 -4
  40. package/src/components/OverlayTrigger/Overlay.js +3 -40
  41. package/src/components/OverlayTrigger/index.d.ts +4 -4
  42. package/src/components/OverlayTrigger/index.js +71 -50
  43. package/src/components/SimpleButton/index.d.ts +0 -2
  44. package/src/components/SimpleButton/index.js +2 -2
  45. package/src/components/Tooltip/index.d.ts +1 -3
  46. package/src/components/Tooltip/index.js +2 -2
  47. package/src/metamodel/adaptable.metamodel.d.ts +7 -0
  48. package/src/metamodel/adaptable.metamodel.js +1 -1
  49. package/version.d.ts +1 -1
  50. package/version.js +1 -1
  51. package/src/components/OverlayTrigger/getOverlayStyle.d.ts +0 -13
  52. 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 getConstrainRect = (target, constrainTo) => {
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
- let { visible: _, showTriangle, showEvent, hideEvent, render, targetOffset, preventPortalEventPropagation = false, defaultZIndex, anchor, hideDelay = 0, opacityTransitionDuration, onVisibleChange, alignHorizontal, constrainTo, target: targetProp } = props, domProps = tslib_1.__rest(props, ["visible", "showTriangle", "showEvent", "hideEvent", "render", "targetOffset", "preventPortalEventPropagation", "defaultZIndex", "anchor", "hideDelay", "opacityTransitionDuration", "onVisibleChange", "alignHorizontal", "constrainTo", "target"]);
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
- let overlay;
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
- overlay));
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, tooltipAnchor, accessLevel: accessLevel, type } = props, buttonProps = tslib_1.__rest(props, ["children", "disabled", "variant", "tone", "iconPosition", "iconSize", "className", "icon", "tooltip", "tooltipAnchor", "accessLevel", "type"]);
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 ? (React.createElement(Tooltip_1.default, { anchor: tooltipAnchor, label: tooltip }, btn)) : (btn);
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
- import { OverlayProps } from '../OverlayTrigger/Overlay';
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, anchor, }) => {
7
- return (React.createElement(OverlayTrigger_1.default, { anchor: anchor, defaultZIndex: 2000000, className: "ab-Tooltip", render: () => label }, children));
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;