cx 26.0.14 → 26.1.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/build/ui/VDOM.d.ts +1 -20
- package/build/ui/VDOM.js +1 -3
- package/build/ui/Widget.d.ts +1 -1
- package/build/ui/app/startAppLoop.js +2 -10
- package/build/widgets/form/Checkbox.d.ts +0 -1
- package/build/widgets/form/Checkbox.js +1 -0
- package/build/widgets/form/ColorField.d.ts +0 -1
- package/build/widgets/form/ColorField.js +2 -2
- package/build/widgets/form/DateTimeField.d.ts +0 -2
- package/build/widgets/form/DateTimeField.js +1 -0
- package/build/widgets/form/DateTimePicker.d.ts +0 -2
- package/build/widgets/form/DateTimePicker.js +1 -0
- package/build/widgets/form/Radio.d.ts +0 -1
- package/build/widgets/form/Slider.js +9 -1
- package/build/widgets/form/Switch.d.ts +0 -1
- package/build/widgets/form/Switch.js +1 -1
- package/build/widgets/form/Wheel.d.ts +0 -1
- package/build/widgets/grid/Grid.d.ts +0 -2
- package/build/widgets/grid/GridCellEditor.js +3 -1
- package/build/widgets/overlay/Overlay.d.ts +3 -0
- package/build/widgets/overlay/Overlay.js +3 -2
- package/dist/manifest.js +816 -816
- package/dist/ui.js +3 -10
- package/dist/widgets.js +18 -6
- package/package.json +9 -8
- package/src/charts/Chart.ts +108 -108
- package/src/data/ArrayElementView.ts +90 -90
- package/src/data/AugmentedViewBase.ts +88 -88
- package/src/data/Binding.ts +104 -104
- package/src/data/ExposedRecordView.ts +95 -95
- package/src/data/ExposedValueView.ts +89 -89
- package/src/data/Expression.spec.ts +229 -229
- package/src/data/Expression.ts +233 -233
- package/src/data/Grouper.spec.ts +57 -57
- package/src/data/Grouper.ts +158 -158
- package/src/data/NestedDataView.ts +43 -43
- package/src/data/ReadOnlyDataView.ts +39 -39
- package/src/data/Ref.ts +104 -104
- package/src/data/Selector.ts +10 -10
- package/src/data/Store.ts +52 -52
- package/src/data/StoreProxy.ts +19 -19
- package/src/data/StoreRef.ts +66 -66
- package/src/data/StringTemplate.spec.ts +132 -132
- package/src/data/StringTemplate.ts +93 -93
- package/src/data/StructuredSelector.spec.ts +113 -113
- package/src/data/StructuredSelector.ts +146 -146
- package/src/data/SubscribableView.ts +63 -63
- package/src/data/ZoomIntoPropertyView.spec.ts +64 -64
- package/src/data/ZoomIntoPropertyView.ts +45 -45
- package/src/data/computable.spec.ts +87 -87
- package/src/data/createStructuredSelector.ts +62 -62
- package/src/data/getAccessor.spec.ts +11 -11
- package/src/data/getAccessor.ts +74 -74
- package/src/data/getSelector.spec.ts +43 -43
- package/src/data/getSelector.ts +66 -66
- package/src/data/ops/filter.spec.ts +35 -35
- package/src/data/ops/filter.ts +9 -9
- package/src/data/ops/merge.ts +13 -13
- package/src/data/ops/removeTreeNodes.spec.ts +37 -37
- package/src/data/ops/updateArray.spec.ts +69 -69
- package/src/data/test-types.ts +7 -7
- package/src/hooks/useTrigger.ts +26 -26
- package/src/index.scss +6 -6
- package/src/jsx-dev-runtime.ts +4 -4
- package/src/svg/BoundedObject.ts +101 -101
- package/src/svg/util/Rect.ts +105 -105
- package/src/ui/CSSHelper.ts +17 -17
- package/src/ui/Culture.ts +159 -159
- package/src/ui/DataProxy.ts +55 -55
- package/src/ui/FocusManager.ts +171 -171
- package/src/ui/Instance.ts +866 -866
- package/src/ui/Prop.ts +140 -140
- package/src/ui/RenderingContext.ts +99 -99
- package/src/ui/Rescope.ts +49 -49
- package/src/ui/StructuredInstanceDataAccessor.ts +32 -32
- package/src/ui/VDOM.ts +1 -34
- package/src/ui/adapter/ArrayAdapter.spec.ts +55 -55
- package/src/ui/adapter/TreeAdapter.spec.ts +76 -76
- package/src/ui/adapter/TreeAdapter.ts +185 -185
- package/src/ui/app/History.ts +133 -133
- package/src/ui/app/Url.spec.ts +50 -50
- package/src/ui/app/startAppLoop.tsx +5 -9
- package/src/ui/app/startHotAppLoop.ts +41 -41
- package/src/ui/layout/Content.ts +30 -30
- package/src/ui/layout/FirstVisibleChildLayout.ts +60 -60
- package/src/util/Console.ts +13 -13
- package/src/util/Format.spec.ts +69 -69
- package/src/util/Format.ts +267 -267
- package/src/util/addEventListenerWithOptions.ts +41 -41
- package/src/util/browserSupportsPassiveEventHandlers.ts +20 -20
- package/src/util/color/rgbToHsl.ts +35 -35
- package/src/util/getActiveElement.ts +4 -4
- package/src/util/hasKey.ts +18 -18
- package/src/util/index.ts +55 -55
- package/src/util/innerTextTrim.ts +10 -10
- package/src/util/isArray.ts +3 -3
- package/src/util/isDataRecord.ts +5 -5
- package/src/util/isDefined.ts +3 -3
- package/src/util/isString.ts +3 -3
- package/src/widgets/DocumentTitle.ts +95 -95
- package/src/widgets/Sandbox.ts +103 -103
- package/src/widgets/autoFocus.ts +9 -9
- package/src/widgets/cx.ts +63 -63
- package/src/widgets/form/Checkbox.tsx +0 -1
- package/src/widgets/form/ColorField.tsx +15 -12
- package/src/widgets/form/DateTimeField.tsx +0 -2
- package/src/widgets/form/DateTimePicker.tsx +0 -2
- package/src/widgets/form/Radio.tsx +0 -1
- package/src/widgets/form/Slider.tsx +12 -4
- package/src/widgets/form/Switch.tsx +2 -3
- package/src/widgets/form/Wheel.tsx +0 -1
- package/src/widgets/grid/Grid.tsx +0 -1
- package/src/widgets/grid/GridCell.ts +143 -143
- package/src/widgets/grid/GridCellEditor.tsx +7 -1
- package/src/widgets/icons/calendar.tsx +17 -17
- package/src/widgets/icons/check.tsx +13 -13
- package/src/widgets/icons/clear.tsx +15 -15
- package/src/widgets/icons/close.tsx +20 -20
- package/src/widgets/icons/cx.tsx +38 -38
- package/src/widgets/icons/drop-down.tsx +15 -15
- package/src/widgets/icons/file.tsx +13 -13
- package/src/widgets/icons/folder-open.tsx +15 -15
- package/src/widgets/icons/folder.tsx +13 -13
- package/src/widgets/icons/forward.tsx +22 -22
- package/src/widgets/icons/loading.tsx +24 -24
- package/src/widgets/icons/menu.tsx +17 -17
- package/src/widgets/icons/pixel-picker.tsx +18 -18
- package/src/widgets/icons/search.tsx +13 -13
- package/src/widgets/icons/sort-asc.tsx +14 -14
- package/src/widgets/icons/square.tsx +18 -18
- package/src/widgets/nav/Route.ts +142 -142
- package/src/widgets/overlay/Dropdown.tsx +762 -762
- package/src/widgets/overlay/MsgBox.tsx +141 -141
- package/src/widgets/overlay/Overlay.tsx +5 -1
- package/src/widgets/overlay/Toast.ts +111 -111
- package/src/widgets/overlay/Window.tsx +299 -299
- package/src/widgets/overlay/alerts.ts +46 -46
- package/src/widgets/overlay/captureMouse.ts +195 -195
- package/src/widgets/overlay/createHotPromiseWindowFactory.ts +71 -71
- package/src/widgets/overlay/index.d.ts +11 -11
- package/src/widgets/overlay/index.ts +11 -11
- package/src/widgets/overlay/tooltip-ops.ts +173 -173
- package/build/data/ArrayElementView.spec.d.ts +0 -1
- package/build/data/ArrayElementView.spec.js +0 -81
- package/build/data/Binding.spec.d.ts +0 -1
- package/build/data/Binding.spec.js +0 -61
- package/build/data/Expression.spec.d.ts +0 -1
- package/build/data/Expression.spec.js +0 -196
- package/build/data/Grouper.spec.d.ts +0 -1
- package/build/data/Grouper.spec.js +0 -48
- package/build/data/Ref.spec.d.ts +0 -1
- package/build/data/Ref.spec.js +0 -72
- package/build/data/Store.spec.d.ts +0 -1
- package/build/data/Store.spec.js +0 -19
- package/build/data/StoreRef.spec.d.ts +0 -1
- package/build/data/StoreRef.spec.js +0 -22
- package/build/data/StringTemplate.spec.d.ts +0 -1
- package/build/data/StringTemplate.spec.js +0 -112
- package/build/data/StructuredSelector.spec.d.ts +0 -1
- package/build/data/StructuredSelector.spec.js +0 -102
- package/build/data/View.spec.d.ts +0 -1
- package/build/data/View.spec.js +0 -44
- package/build/data/ZoomIntoPropertyView.spec.d.ts +0 -1
- package/build/data/ZoomIntoPropertyView.spec.js +0 -54
- package/build/data/comparer.spec.d.ts +0 -1
- package/build/data/comparer.spec.js +0 -50
- package/build/data/computable.spec.d.ts +0 -1
- package/build/data/computable.spec.js +0 -56
- package/build/data/createAccessorModelProxy.spec.d.ts +0 -1
- package/build/data/createAccessorModelProxy.spec.js +0 -30
- package/build/data/createStructuredSelector.spec.d.ts +0 -1
- package/build/data/createStructuredSelector.spec.js +0 -42
- package/build/data/diff/diffs.spec.d.ts +0 -1
- package/build/data/diff/diffs.spec.js +0 -45
- package/build/data/getAccessor.spec.d.ts +0 -1
- package/build/data/getAccessor.spec.js +0 -10
- package/build/data/getSelector.spec.d.ts +0 -1
- package/build/data/getSelector.spec.js +0 -36
- package/build/data/ops/append.spec.d.ts +0 -1
- package/build/data/ops/append.spec.js +0 -24
- package/build/data/ops/filter.spec.d.ts +0 -1
- package/build/data/ops/filter.spec.js +0 -25
- package/build/data/ops/findTreeNode.spec.d.ts +0 -1
- package/build/data/ops/findTreeNode.spec.js +0 -20
- package/build/data/ops/merge.spec.d.ts +0 -1
- package/build/data/ops/merge.spec.js +0 -23
- package/build/data/ops/removeTreeNodes.spec.d.ts +0 -1
- package/build/data/ops/removeTreeNodes.spec.js +0 -35
- package/build/data/ops/updateArray.spec.d.ts +0 -1
- package/build/data/ops/updateArray.spec.js +0 -33
- package/build/data/ops/updateTree.spec.d.ts +0 -1
- package/build/data/ops/updateTree.spec.js +0 -44
- package/build/hooks/invokeCallback.spec.d.ts +0 -1
- package/build/hooks/invokeCallback.spec.js +0 -44
- package/build/hooks/resolveCallback.spec.d.ts +0 -1
- package/build/hooks/resolveCallback.spec.js +0 -35
- package/build/hooks/store.spec.d.ts +0 -1
- package/build/hooks/store.spec.js +0 -48
- package/build/hooks/useTrigger.spec.d.ts +0 -1
- package/build/hooks/useTrigger.spec.js +0 -59
- package/build/ui/Controller.spec.d.ts +0 -1
- package/build/ui/Controller.spec.js +0 -247
- package/build/ui/Cx.spec.d.ts +0 -1
- package/build/ui/Cx.spec.js +0 -153
- package/build/ui/DataProxy.spec.d.ts +0 -1
- package/build/ui/DataProxy.spec.js +0 -208
- package/build/ui/IsolatedScope.spec.d.ts +0 -1
- package/build/ui/IsolatedScope.spec.js +0 -42
- package/build/ui/PureContainer.spec.d.ts +0 -1
- package/build/ui/PureContainer.spec.js +0 -149
- package/build/ui/Repeater.spec.d.ts +0 -1
- package/build/ui/Repeater.spec.js +0 -109
- package/build/ui/Rescope.spec.d.ts +0 -1
- package/build/ui/Rescope.spec.js +0 -134
- package/build/ui/Restate.spec.d.ts +0 -1
- package/build/ui/Restate.spec.js +0 -257
- package/build/ui/adapter/ArrayAdapter.spec.d.ts +0 -1
- package/build/ui/adapter/ArrayAdapter.spec.js +0 -44
- package/build/ui/adapter/TreeAdapter.spec.d.ts +0 -1
- package/build/ui/adapter/TreeAdapter.spec.js +0 -71
- package/build/ui/app/Url.spec.d.ts +0 -1
- package/build/ui/app/Url.spec.js +0 -43
- package/build/ui/createFunctionalComponent.spec.d.ts +0 -1
- package/build/ui/createFunctionalComponent.spec.js +0 -272
- package/build/ui/layout/ContentPlaceholder.spec.d.ts +0 -1
- package/build/ui/layout/ContentPlaceholder.spec.js +0 -333
- package/build/ui/layout/FirstVisibleChildLayout.spec.d.ts +0 -1
- package/build/ui/layout/FirstVisibleChildLayout.spec.js +0 -101
- package/build/util/Format.spec.d.ts +0 -1
- package/build/util/Format.spec.js +0 -58
- package/build/util/TraversalStack.spec.d.ts +0 -1
- package/build/util/TraversalStack.spec.js +0 -43
- package/build/util/date/upperBoundCheck.spec.d.ts +0 -1
- package/build/util/date/upperBoundCheck.spec.js +0 -22
- package/build/util/getSearchQueryPredicate.spec.d.ts +0 -1
- package/build/util/getSearchQueryPredicate.spec.js +0 -33
- package/build/util/isValidIdentifierName.spec.d.ts +0 -1
- package/build/util/isValidIdentifierName.spec.js +0 -28
- package/build/util/routeAppend.spec.d.ts +0 -1
- package/build/util/routeAppend.spec.js +0 -14
- package/build/widgets/AccessorBindings.spec.d.ts +0 -1
- package/build/widgets/AccessorBindings.spec.js +0 -40
- package/build/widgets/HtmlElement.spec.d.ts +0 -1
- package/build/widgets/HtmlElement.spec.js +0 -38
- package/build/widgets/form/ValidationGroup.spec.d.ts +0 -1
- package/build/widgets/form/ValidationGroup.spec.js +0 -62
- package/build/widgets/nav/Route.spec.d.ts +0 -1
- package/build/widgets/nav/Route.spec.js +0 -15
- package/dist/manifest.d.ts +0 -1443
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import {debug, deprecatedFlag} from '../../util/Debug';
|
|
2
|
-
import {isString} from '../../util/isString';
|
|
3
|
-
|
|
4
|
-
export type AlertOptions = string | { message?: string; [key: string]: any };
|
|
5
|
-
|
|
6
|
-
interface AlertImpl {
|
|
7
|
-
alert(options: AlertOptions): Promise<void>;
|
|
8
|
-
yesNo(options: AlertOptions): Promise<string>;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function getMessage(options: AlertOptions): string | null {
|
|
12
|
-
debug(deprecatedFlag, "Call enableMsgBoxes() on startup to use Cx based message boxes. Message boxes are not auto enabled anymore to reduce the bundle size for apps that do not use them. ");
|
|
13
|
-
if (!options)
|
|
14
|
-
return null;
|
|
15
|
-
if (isString(options))
|
|
16
|
-
return options;
|
|
17
|
-
if (options && typeof options === 'object' && options.message)
|
|
18
|
-
return options.message;
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
let impl: AlertImpl = {
|
|
23
|
-
yesNo: function (options: AlertOptions): Promise<string> {
|
|
24
|
-
let result = window.confirm(getMessage(options) || '');
|
|
25
|
-
return Promise.resolve(result ? 'yes' : 'no');
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
alert: function (options: AlertOptions): Promise<void> {
|
|
29
|
-
window.alert(getMessage(options) || '');
|
|
30
|
-
return Promise.resolve();
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export function alert(options: AlertOptions): Promise<void> {
|
|
35
|
-
return impl.alert(options);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function yesNo(options: AlertOptions): Promise<string> {
|
|
39
|
-
return impl.yesNo(options);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export function registerAlertImpl(x: AlertImpl): void {
|
|
43
|
-
impl = x;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
1
|
+
import {debug, deprecatedFlag} from '../../util/Debug';
|
|
2
|
+
import {isString} from '../../util/isString';
|
|
3
|
+
|
|
4
|
+
export type AlertOptions = string | { message?: string; [key: string]: any };
|
|
5
|
+
|
|
6
|
+
interface AlertImpl {
|
|
7
|
+
alert(options: AlertOptions): Promise<void>;
|
|
8
|
+
yesNo(options: AlertOptions): Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function getMessage(options: AlertOptions): string | null {
|
|
12
|
+
debug(deprecatedFlag, "Call enableMsgBoxes() on startup to use Cx based message boxes. Message boxes are not auto enabled anymore to reduce the bundle size for apps that do not use them. ");
|
|
13
|
+
if (!options)
|
|
14
|
+
return null;
|
|
15
|
+
if (isString(options))
|
|
16
|
+
return options;
|
|
17
|
+
if (options && typeof options === 'object' && options.message)
|
|
18
|
+
return options.message;
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
let impl: AlertImpl = {
|
|
23
|
+
yesNo: function (options: AlertOptions): Promise<string> {
|
|
24
|
+
let result = window.confirm(getMessage(options) || '');
|
|
25
|
+
return Promise.resolve(result ? 'yes' : 'no');
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
alert: function (options: AlertOptions): Promise<void> {
|
|
29
|
+
window.alert(getMessage(options) || '');
|
|
30
|
+
return Promise.resolve();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export function alert(options: AlertOptions): Promise<void> {
|
|
35
|
+
return impl.alert(options);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function yesNo(options: AlertOptions): Promise<string> {
|
|
39
|
+
return impl.yesNo(options);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function registerAlertImpl(x: AlertImpl): void {
|
|
43
|
+
impl = x;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
@@ -1,195 +1,195 @@
|
|
|
1
|
-
import { batchUpdates } from "../../ui/batchUpdates";
|
|
2
|
-
import { getParentFrameBoundingClientRect } from "../../util/getParentFrameBoundingClientRect";
|
|
3
|
-
|
|
4
|
-
/** Cursor position with client coordinates */
|
|
5
|
-
export interface CursorPosition {
|
|
6
|
-
clientX: number;
|
|
7
|
-
clientY: number;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Configuration options for mouse capture
|
|
12
|
-
*/
|
|
13
|
-
interface CaptureMouseOptions {
|
|
14
|
-
/** Callback function called on mouse move events */
|
|
15
|
-
onMouseMove?: (e: MouseEvent, captureData?: any) => void;
|
|
16
|
-
/** Callback function called on mouse up events */
|
|
17
|
-
onMouseUp?: (e: MouseEvent, captureData?: any) => void;
|
|
18
|
-
/** Callback function called on double click events */
|
|
19
|
-
onDblClick?: (e: MouseEvent) => void;
|
|
20
|
-
/** Additional data passed to callbacks */
|
|
21
|
-
captureData?: any;
|
|
22
|
-
/** CSS cursor style for the capture surface */
|
|
23
|
-
cursor?: string;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Captures mouse events globally by creating a transparent overlay
|
|
28
|
-
* @param e - The initial mouse event that triggered the capture
|
|
29
|
-
* @param options - Configuration options for the capture behavior
|
|
30
|
-
*/
|
|
31
|
-
export function captureMouse2(
|
|
32
|
-
e: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent,
|
|
33
|
-
options: CaptureMouseOptions,
|
|
34
|
-
): void {
|
|
35
|
-
let surface = document.createElement("div");
|
|
36
|
-
surface.className = "cxb-mousecapture";
|
|
37
|
-
surface.style.cursor = options.cursor || getComputedStyle(e.currentTarget as Element).cursor;
|
|
38
|
-
|
|
39
|
-
document.body.appendChild(surface);
|
|
40
|
-
|
|
41
|
-
// In case when the event originates from an iframe,
|
|
42
|
-
// we use that document as events do not bubble up.
|
|
43
|
-
let parentDocument = (e.target as Element)?.ownerDocument;
|
|
44
|
-
let eventOptions = { capture: true };
|
|
45
|
-
|
|
46
|
-
let active = true;
|
|
47
|
-
parentDocument.addEventListener("mousemove", move, eventOptions);
|
|
48
|
-
parentDocument.addEventListener("mouseup", end, eventOptions);
|
|
49
|
-
if (options.onDblClick) parentDocument.addEventListener("dblclick", doubleClick, eventOptions);
|
|
50
|
-
|
|
51
|
-
function tear() {
|
|
52
|
-
if (surface == null) return;
|
|
53
|
-
parentDocument.removeEventListener("mousemove", move, eventOptions);
|
|
54
|
-
parentDocument.removeEventListener("mouseup", end, eventOptions);
|
|
55
|
-
if (options.onDblClick) parentDocument.removeEventListener("dblclick", doubleClick, eventOptions);
|
|
56
|
-
document.body.removeChild(surface);
|
|
57
|
-
surface = null as any;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function doubleClick(e: Event) {
|
|
61
|
-
try {
|
|
62
|
-
options.onDblClick && options.onDblClick(e as MouseEvent);
|
|
63
|
-
} finally {
|
|
64
|
-
tear();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
e.stopPropagation();
|
|
69
|
-
|
|
70
|
-
function move(e: Event) {
|
|
71
|
-
if (!active) {
|
|
72
|
-
tear();
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
//if mouse moves double clicking is off
|
|
77
|
-
options.onDblClick = undefined;
|
|
78
|
-
|
|
79
|
-
batchUpdates(() => {
|
|
80
|
-
if (options.onMouseMove) options.onMouseMove(e as MouseEvent, options.captureData);
|
|
81
|
-
e.stopPropagation();
|
|
82
|
-
e.preventDefault(); //disable text selection
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function end(e: Event) {
|
|
87
|
-
active = false;
|
|
88
|
-
batchUpdates(() => {
|
|
89
|
-
// if (surface.releaseCapture)
|
|
90
|
-
// surface.releaseCapture();
|
|
91
|
-
|
|
92
|
-
if (!options.onDblClick) surface.style.display = "none";
|
|
93
|
-
try {
|
|
94
|
-
if (options.onMouseUp) options.onMouseUp(e as MouseEvent, options.captureData);
|
|
95
|
-
} finally {
|
|
96
|
-
if (options.onDblClick) {
|
|
97
|
-
//keep the surface a little longer to detect double clicks
|
|
98
|
-
setTimeout(tear, 1500);
|
|
99
|
-
} else tear();
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Captures mouse or touch events, automatically detecting the event type
|
|
107
|
-
* @param e - The initial mouse or touch event that triggered the capture
|
|
108
|
-
* @param options - Configuration options for the capture behavior
|
|
109
|
-
*/
|
|
110
|
-
export function captureMouseOrTouch2(
|
|
111
|
-
e: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent,
|
|
112
|
-
options: CaptureMouseOptions,
|
|
113
|
-
): void {
|
|
114
|
-
if (e.type.indexOf("touch") == 0) {
|
|
115
|
-
let el = e.currentTarget as HTMLElement;
|
|
116
|
-
|
|
117
|
-
let move = (e: TouchEvent) => {
|
|
118
|
-
batchUpdates(() => {
|
|
119
|
-
if (options.onMouseMove) options.onMouseMove(e as any, options.captureData);
|
|
120
|
-
e.preventDefault();
|
|
121
|
-
});
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
let end = (e: TouchEvent) => {
|
|
125
|
-
batchUpdates(() => {
|
|
126
|
-
el.removeEventListener("touchmove", move);
|
|
127
|
-
el.removeEventListener("touchend", end);
|
|
128
|
-
|
|
129
|
-
if (options.onMouseUp) options.onMouseUp(e as any);
|
|
130
|
-
|
|
131
|
-
e.preventDefault();
|
|
132
|
-
});
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
el.addEventListener("touchmove", move);
|
|
136
|
-
el.addEventListener("touchend", end);
|
|
137
|
-
|
|
138
|
-
e.stopPropagation();
|
|
139
|
-
} else captureMouse2(e, options);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Legacy function for capturing mouse events with individual parameters
|
|
144
|
-
* @param e - The initial mouse event that triggered the capture
|
|
145
|
-
* @param onMouseMove - Callback function called on mouse move events
|
|
146
|
-
* @param onMouseUp - Callback function called on mouse up events
|
|
147
|
-
* @param captureData - Additional data passed to callbacks
|
|
148
|
-
* @param cursor - CSS cursor style for the capture surface
|
|
149
|
-
*/
|
|
150
|
-
export function captureMouse(
|
|
151
|
-
e: React.MouseEvent,
|
|
152
|
-
onMouseMove?: (e: MouseEvent | TouchEvent, captureData?: any) => void,
|
|
153
|
-
onMouseUp?: (e: MouseEvent | TouchEvent, captureData?: any) => void,
|
|
154
|
-
captureData?: any,
|
|
155
|
-
cursor?: string,
|
|
156
|
-
): void {
|
|
157
|
-
captureMouse2(e, {
|
|
158
|
-
onMouseMove,
|
|
159
|
-
onMouseUp,
|
|
160
|
-
captureData,
|
|
161
|
-
cursor,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Legacy function for capturing mouse or touch events with individual parameters
|
|
167
|
-
* @param e - The initial mouse or touch event that triggered the capture
|
|
168
|
-
* @param onMouseMove - Callback function called on mouse/touch move events
|
|
169
|
-
* @param onMouseUp - Callback function called on mouse/touch up events
|
|
170
|
-
* @param captureData - Additional data passed to callbacks
|
|
171
|
-
* @param cursor - CSS cursor style for the capture surface
|
|
172
|
-
*/
|
|
173
|
-
export function captureMouseOrTouch(
|
|
174
|
-
e: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent,
|
|
175
|
-
onMouseMove?: (e: MouseEvent, captureData?: any) => void,
|
|
176
|
-
onMouseUp?: (e: MouseEvent, captureData?: any) => void,
|
|
177
|
-
captureData?: any,
|
|
178
|
-
cursor?: string,
|
|
179
|
-
): void {
|
|
180
|
-
captureMouseOrTouch2(e, { onMouseMove, onMouseUp, captureData, cursor });
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Gets the cursor position relative to the parent frame
|
|
185
|
-
* @param e - Mouse or touch event (React or native)
|
|
186
|
-
* @returns Object with clientX and clientY coordinates adjusted for parent frame offset
|
|
187
|
-
*/
|
|
188
|
-
export function getCursorPos(e: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent): CursorPosition {
|
|
189
|
-
let p = (e as TouchEvent).touches?.[0] || (e as MouseEvent);
|
|
190
|
-
let offset = getParentFrameBoundingClientRect(e.target as Element);
|
|
191
|
-
return {
|
|
192
|
-
clientX: p.clientX + offset.left,
|
|
193
|
-
clientY: p.clientY + offset.top,
|
|
194
|
-
};
|
|
195
|
-
}
|
|
1
|
+
import { batchUpdates } from "../../ui/batchUpdates";
|
|
2
|
+
import { getParentFrameBoundingClientRect } from "../../util/getParentFrameBoundingClientRect";
|
|
3
|
+
|
|
4
|
+
/** Cursor position with client coordinates */
|
|
5
|
+
export interface CursorPosition {
|
|
6
|
+
clientX: number;
|
|
7
|
+
clientY: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Configuration options for mouse capture
|
|
12
|
+
*/
|
|
13
|
+
interface CaptureMouseOptions {
|
|
14
|
+
/** Callback function called on mouse move events */
|
|
15
|
+
onMouseMove?: (e: MouseEvent, captureData?: any) => void;
|
|
16
|
+
/** Callback function called on mouse up events */
|
|
17
|
+
onMouseUp?: (e: MouseEvent, captureData?: any) => void;
|
|
18
|
+
/** Callback function called on double click events */
|
|
19
|
+
onDblClick?: (e: MouseEvent) => void;
|
|
20
|
+
/** Additional data passed to callbacks */
|
|
21
|
+
captureData?: any;
|
|
22
|
+
/** CSS cursor style for the capture surface */
|
|
23
|
+
cursor?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Captures mouse events globally by creating a transparent overlay
|
|
28
|
+
* @param e - The initial mouse event that triggered the capture
|
|
29
|
+
* @param options - Configuration options for the capture behavior
|
|
30
|
+
*/
|
|
31
|
+
export function captureMouse2(
|
|
32
|
+
e: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent,
|
|
33
|
+
options: CaptureMouseOptions,
|
|
34
|
+
): void {
|
|
35
|
+
let surface = document.createElement("div");
|
|
36
|
+
surface.className = "cxb-mousecapture";
|
|
37
|
+
surface.style.cursor = options.cursor || getComputedStyle(e.currentTarget as Element).cursor;
|
|
38
|
+
|
|
39
|
+
document.body.appendChild(surface);
|
|
40
|
+
|
|
41
|
+
// In case when the event originates from an iframe,
|
|
42
|
+
// we use that document as events do not bubble up.
|
|
43
|
+
let parentDocument = (e.target as Element)?.ownerDocument;
|
|
44
|
+
let eventOptions = { capture: true };
|
|
45
|
+
|
|
46
|
+
let active = true;
|
|
47
|
+
parentDocument.addEventListener("mousemove", move, eventOptions);
|
|
48
|
+
parentDocument.addEventListener("mouseup", end, eventOptions);
|
|
49
|
+
if (options.onDblClick) parentDocument.addEventListener("dblclick", doubleClick, eventOptions);
|
|
50
|
+
|
|
51
|
+
function tear() {
|
|
52
|
+
if (surface == null) return;
|
|
53
|
+
parentDocument.removeEventListener("mousemove", move, eventOptions);
|
|
54
|
+
parentDocument.removeEventListener("mouseup", end, eventOptions);
|
|
55
|
+
if (options.onDblClick) parentDocument.removeEventListener("dblclick", doubleClick, eventOptions);
|
|
56
|
+
document.body.removeChild(surface);
|
|
57
|
+
surface = null as any;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function doubleClick(e: Event) {
|
|
61
|
+
try {
|
|
62
|
+
options.onDblClick && options.onDblClick(e as MouseEvent);
|
|
63
|
+
} finally {
|
|
64
|
+
tear();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
e.stopPropagation();
|
|
69
|
+
|
|
70
|
+
function move(e: Event) {
|
|
71
|
+
if (!active) {
|
|
72
|
+
tear();
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//if mouse moves double clicking is off
|
|
77
|
+
options.onDblClick = undefined;
|
|
78
|
+
|
|
79
|
+
batchUpdates(() => {
|
|
80
|
+
if (options.onMouseMove) options.onMouseMove(e as MouseEvent, options.captureData);
|
|
81
|
+
e.stopPropagation();
|
|
82
|
+
e.preventDefault(); //disable text selection
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function end(e: Event) {
|
|
87
|
+
active = false;
|
|
88
|
+
batchUpdates(() => {
|
|
89
|
+
// if (surface.releaseCapture)
|
|
90
|
+
// surface.releaseCapture();
|
|
91
|
+
|
|
92
|
+
if (!options.onDblClick) surface.style.display = "none";
|
|
93
|
+
try {
|
|
94
|
+
if (options.onMouseUp) options.onMouseUp(e as MouseEvent, options.captureData);
|
|
95
|
+
} finally {
|
|
96
|
+
if (options.onDblClick) {
|
|
97
|
+
//keep the surface a little longer to detect double clicks
|
|
98
|
+
setTimeout(tear, 1500);
|
|
99
|
+
} else tear();
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Captures mouse or touch events, automatically detecting the event type
|
|
107
|
+
* @param e - The initial mouse or touch event that triggered the capture
|
|
108
|
+
* @param options - Configuration options for the capture behavior
|
|
109
|
+
*/
|
|
110
|
+
export function captureMouseOrTouch2(
|
|
111
|
+
e: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent,
|
|
112
|
+
options: CaptureMouseOptions,
|
|
113
|
+
): void {
|
|
114
|
+
if (e.type.indexOf("touch") == 0) {
|
|
115
|
+
let el = e.currentTarget as HTMLElement;
|
|
116
|
+
|
|
117
|
+
let move = (e: TouchEvent) => {
|
|
118
|
+
batchUpdates(() => {
|
|
119
|
+
if (options.onMouseMove) options.onMouseMove(e as any, options.captureData);
|
|
120
|
+
e.preventDefault();
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
let end = (e: TouchEvent) => {
|
|
125
|
+
batchUpdates(() => {
|
|
126
|
+
el.removeEventListener("touchmove", move);
|
|
127
|
+
el.removeEventListener("touchend", end);
|
|
128
|
+
|
|
129
|
+
if (options.onMouseUp) options.onMouseUp(e as any);
|
|
130
|
+
|
|
131
|
+
e.preventDefault();
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
el.addEventListener("touchmove", move);
|
|
136
|
+
el.addEventListener("touchend", end);
|
|
137
|
+
|
|
138
|
+
e.stopPropagation();
|
|
139
|
+
} else captureMouse2(e, options);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Legacy function for capturing mouse events with individual parameters
|
|
144
|
+
* @param e - The initial mouse event that triggered the capture
|
|
145
|
+
* @param onMouseMove - Callback function called on mouse move events
|
|
146
|
+
* @param onMouseUp - Callback function called on mouse up events
|
|
147
|
+
* @param captureData - Additional data passed to callbacks
|
|
148
|
+
* @param cursor - CSS cursor style for the capture surface
|
|
149
|
+
*/
|
|
150
|
+
export function captureMouse(
|
|
151
|
+
e: React.MouseEvent,
|
|
152
|
+
onMouseMove?: (e: MouseEvent | TouchEvent, captureData?: any) => void,
|
|
153
|
+
onMouseUp?: (e: MouseEvent | TouchEvent, captureData?: any) => void,
|
|
154
|
+
captureData?: any,
|
|
155
|
+
cursor?: string,
|
|
156
|
+
): void {
|
|
157
|
+
captureMouse2(e, {
|
|
158
|
+
onMouseMove,
|
|
159
|
+
onMouseUp,
|
|
160
|
+
captureData,
|
|
161
|
+
cursor,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Legacy function for capturing mouse or touch events with individual parameters
|
|
167
|
+
* @param e - The initial mouse or touch event that triggered the capture
|
|
168
|
+
* @param onMouseMove - Callback function called on mouse/touch move events
|
|
169
|
+
* @param onMouseUp - Callback function called on mouse/touch up events
|
|
170
|
+
* @param captureData - Additional data passed to callbacks
|
|
171
|
+
* @param cursor - CSS cursor style for the capture surface
|
|
172
|
+
*/
|
|
173
|
+
export function captureMouseOrTouch(
|
|
174
|
+
e: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent,
|
|
175
|
+
onMouseMove?: (e: MouseEvent, captureData?: any) => void,
|
|
176
|
+
onMouseUp?: (e: MouseEvent, captureData?: any) => void,
|
|
177
|
+
captureData?: any,
|
|
178
|
+
cursor?: string,
|
|
179
|
+
): void {
|
|
180
|
+
captureMouseOrTouch2(e, { onMouseMove, onMouseUp, captureData, cursor });
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Gets the cursor position relative to the parent frame
|
|
185
|
+
* @param e - Mouse or touch event (React or native)
|
|
186
|
+
* @returns Object with clientX and clientY coordinates adjusted for parent frame offset
|
|
187
|
+
*/
|
|
188
|
+
export function getCursorPos(e: React.MouseEvent | React.TouchEvent | MouseEvent | TouchEvent): CursorPosition {
|
|
189
|
+
let p = (e as TouchEvent).touches?.[0] || (e as MouseEvent);
|
|
190
|
+
let offset = getParentFrameBoundingClientRect(e.target as Element);
|
|
191
|
+
return {
|
|
192
|
+
clientX: p.clientX + offset.left,
|
|
193
|
+
clientY: p.clientY + offset.top,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
import { Store } from "../../data/Store";
|
|
2
|
-
import { HotModule } from "../../ui/app/startHotAppLoop";
|
|
3
|
-
import { SubscriberList } from "../../util/SubscriberList";
|
|
4
|
-
import { Window } from "./Window";
|
|
5
|
-
import { View } from "../../data/View";
|
|
6
|
-
import { Instance } from "../../ui/Instance";
|
|
7
|
-
import { Overlay } from "./Overlay";
|
|
8
|
-
|
|
9
|
-
export interface HotPromiseWindowFactoryOptions {
|
|
10
|
-
parent?: Instance;
|
|
11
|
-
store?: View;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export function createHotPromiseWindowFactoryWithProps<Props, R = any>(
|
|
15
|
-
module: HotModule,
|
|
16
|
-
factory: (props: Props) => (resolve: (value: R | PromiseLike<R>) => void, reject: (reason?: any) => void) => Overlay,
|
|
17
|
-
): (props: Props, options?: HotPromiseWindowFactoryOptions) => Promise<R> {
|
|
18
|
-
let subscriberList: SubscriberList | undefined;
|
|
19
|
-
if (module.hot) {
|
|
20
|
-
if (module.hot.data?.subscriberList) subscriberList = module.hot.data.subscriberList;
|
|
21
|
-
if (!subscriberList) subscriberList = new SubscriberList();
|
|
22
|
-
|
|
23
|
-
module.hot.dispose((data: any) => {
|
|
24
|
-
data.subscriberList = subscriberList;
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
module.hot.accept();
|
|
28
|
-
|
|
29
|
-
if (!subscriberList.isEmpty()) subscriberList.notify(factory);
|
|
30
|
-
|
|
31
|
-
subscriberList.subscribe((updatedFactory) => {
|
|
32
|
-
factory = updatedFactory;
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return (props: Props, options?: HotPromiseWindowFactoryOptions): Promise<R> => {
|
|
37
|
-
let store = options?.parent ?? options?.store ?? new Store();
|
|
38
|
-
let reloading = false;
|
|
39
|
-
return new Promise<R>((resolve, reject) => {
|
|
40
|
-
let dismiss: (() => void) | undefined;
|
|
41
|
-
let unsubscribe: (() => void) | undefined;
|
|
42
|
-
function rerun() {
|
|
43
|
-
dismiss?.();
|
|
44
|
-
let window = Window.create(factory(props)(resolve, reject) as any) as any;
|
|
45
|
-
window.overlayWillDismiss = () => {
|
|
46
|
-
if (!reloading && unsubscribe) unsubscribe();
|
|
47
|
-
};
|
|
48
|
-
dismiss = window.open(store);
|
|
49
|
-
}
|
|
50
|
-
unsubscribe = subscriberList?.subscribe((updatedFactory: any) => {
|
|
51
|
-
factory = updatedFactory;
|
|
52
|
-
setTimeout(() => {
|
|
53
|
-
// timeout is required for proper module initialization
|
|
54
|
-
// sometimes elements are defined in the lower part of the module and if the function is run immediately, it will fail
|
|
55
|
-
reloading = true;
|
|
56
|
-
rerun();
|
|
57
|
-
reloading = false;
|
|
58
|
-
}, 10);
|
|
59
|
-
});
|
|
60
|
-
rerun();
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export function createHotPromiseWindowFactory<R = any>(
|
|
66
|
-
module: HotModule,
|
|
67
|
-
factory: (resolve: (value: R | PromiseLike<R>) => void, reject: (reason?: any) => void) => Overlay,
|
|
68
|
-
): (options?: HotPromiseWindowFactoryOptions) => Promise<R> {
|
|
69
|
-
let result = createHotPromiseWindowFactoryWithProps(module, () => factory);
|
|
70
|
-
return (options?: HotPromiseWindowFactoryOptions) => result(null, options);
|
|
71
|
-
}
|
|
1
|
+
import { Store } from "../../data/Store";
|
|
2
|
+
import { HotModule } from "../../ui/app/startHotAppLoop";
|
|
3
|
+
import { SubscriberList } from "../../util/SubscriberList";
|
|
4
|
+
import { Window } from "./Window";
|
|
5
|
+
import { View } from "../../data/View";
|
|
6
|
+
import { Instance } from "../../ui/Instance";
|
|
7
|
+
import { Overlay } from "./Overlay";
|
|
8
|
+
|
|
9
|
+
export interface HotPromiseWindowFactoryOptions {
|
|
10
|
+
parent?: Instance;
|
|
11
|
+
store?: View;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function createHotPromiseWindowFactoryWithProps<Props, R = any>(
|
|
15
|
+
module: HotModule,
|
|
16
|
+
factory: (props: Props) => (resolve: (value: R | PromiseLike<R>) => void, reject: (reason?: any) => void) => Overlay,
|
|
17
|
+
): (props: Props, options?: HotPromiseWindowFactoryOptions) => Promise<R> {
|
|
18
|
+
let subscriberList: SubscriberList | undefined;
|
|
19
|
+
if (module.hot) {
|
|
20
|
+
if (module.hot.data?.subscriberList) subscriberList = module.hot.data.subscriberList;
|
|
21
|
+
if (!subscriberList) subscriberList = new SubscriberList();
|
|
22
|
+
|
|
23
|
+
module.hot.dispose((data: any) => {
|
|
24
|
+
data.subscriberList = subscriberList;
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
module.hot.accept();
|
|
28
|
+
|
|
29
|
+
if (!subscriberList.isEmpty()) subscriberList.notify(factory);
|
|
30
|
+
|
|
31
|
+
subscriberList.subscribe((updatedFactory) => {
|
|
32
|
+
factory = updatedFactory;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return (props: Props, options?: HotPromiseWindowFactoryOptions): Promise<R> => {
|
|
37
|
+
let store = options?.parent ?? options?.store ?? new Store();
|
|
38
|
+
let reloading = false;
|
|
39
|
+
return new Promise<R>((resolve, reject) => {
|
|
40
|
+
let dismiss: (() => void) | undefined;
|
|
41
|
+
let unsubscribe: (() => void) | undefined;
|
|
42
|
+
function rerun() {
|
|
43
|
+
dismiss?.();
|
|
44
|
+
let window = Window.create(factory(props)(resolve, reject) as any) as any;
|
|
45
|
+
window.overlayWillDismiss = () => {
|
|
46
|
+
if (!reloading && unsubscribe) unsubscribe();
|
|
47
|
+
};
|
|
48
|
+
dismiss = window.open(store);
|
|
49
|
+
}
|
|
50
|
+
unsubscribe = subscriberList?.subscribe((updatedFactory: any) => {
|
|
51
|
+
factory = updatedFactory;
|
|
52
|
+
setTimeout(() => {
|
|
53
|
+
// timeout is required for proper module initialization
|
|
54
|
+
// sometimes elements are defined in the lower part of the module and if the function is run immediately, it will fail
|
|
55
|
+
reloading = true;
|
|
56
|
+
rerun();
|
|
57
|
+
reloading = false;
|
|
58
|
+
}, 10);
|
|
59
|
+
});
|
|
60
|
+
rerun();
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function createHotPromiseWindowFactory<R = any>(
|
|
66
|
+
module: HotModule,
|
|
67
|
+
factory: (resolve: (value: R | PromiseLike<R>) => void, reject: (reason?: any) => void) => Overlay,
|
|
68
|
+
): (options?: HotPromiseWindowFactoryOptions) => Promise<R> {
|
|
69
|
+
let result = createHotPromiseWindowFactoryWithProps(module, () => factory);
|
|
70
|
+
return (options?: HotPromiseWindowFactoryOptions) => result(null, options);
|
|
71
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export * from "./Overlay";
|
|
2
|
-
export * from "./Dropdown";
|
|
3
|
-
export * from "./tooltip-ops";
|
|
4
|
-
export * from "./Tooltip";
|
|
5
|
-
export * from "./Window";
|
|
6
|
-
export * from "./MsgBox";
|
|
7
|
-
export * from "./Toast";
|
|
8
|
-
export * from "./captureMouse";
|
|
9
|
-
export * from "./ContextMenu";
|
|
10
|
-
export * from "./FlyweightTooltipTracker";
|
|
11
|
-
export * from "./createHotPromiseWindowFactory";
|
|
1
|
+
export * from "./Overlay";
|
|
2
|
+
export * from "./Dropdown";
|
|
3
|
+
export * from "./tooltip-ops";
|
|
4
|
+
export * from "./Tooltip";
|
|
5
|
+
export * from "./Window";
|
|
6
|
+
export * from "./MsgBox";
|
|
7
|
+
export * from "./Toast";
|
|
8
|
+
export * from "./captureMouse";
|
|
9
|
+
export * from "./ContextMenu";
|
|
10
|
+
export * from "./FlyweightTooltipTracker";
|
|
11
|
+
export * from "./createHotPromiseWindowFactory";
|