@gorilla-engine-sdk/ge-dialogs-lib 0.5.7
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/LICENSE.md +64 -0
- package/README.md +376 -0
- package/dist/Dialogs.d.ts +8 -0
- package/dist/Dialogs.js +51 -0
- package/dist/DialogsStyleState.d.ts +127 -0
- package/dist/DialogsStyleState.js +97 -0
- package/dist/ErrorBoundary.d.ts +13 -0
- package/dist/ErrorBoundary.js +58 -0
- package/dist/dialogsDefaultStyle.d.ts +2 -0
- package/dist/dialogsDefaultStyle.js +87 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +32 -0
- package/dist/modals/MessageModal.d.ts +7 -0
- package/dist/modals/MessageModal.js +55 -0
- package/dist/modals/ModalContext.d.ts +18 -0
- package/dist/modals/ModalContext.js +52 -0
- package/dist/modals/ModalProvider.d.ts +25 -0
- package/dist/modals/ModalProvider.js +75 -0
- package/dist/modals/ModalRoot.d.ts +30 -0
- package/dist/modals/ModalRoot.js +64 -0
- package/dist/modals/components/FooterButtons.d.ts +15 -0
- package/dist/modals/components/FooterButtons.js +59 -0
- package/dist/modals/components/Modal.d.ts +27 -0
- package/dist/modals/components/Modal.js +124 -0
- package/dist/modals/useModal.d.ts +12 -0
- package/dist/modals/useModal.js +55 -0
- package/dist/notifications/DefaultNotification.d.ts +10 -0
- package/dist/notifications/DefaultNotification.js +87 -0
- package/dist/notifications/NotificationContext.d.ts +18 -0
- package/dist/notifications/NotificationContext.js +52 -0
- package/dist/notifications/NotificationProvider.d.ts +17 -0
- package/dist/notifications/NotificationProvider.js +73 -0
- package/dist/notifications/NotificationRoot.d.ts +30 -0
- package/dist/notifications/NotificationRoot.js +71 -0
- package/dist/notifications/useNotification.d.ts +19 -0
- package/dist/notifications/useNotification.js +98 -0
- package/dist/tooltips/DefaultToolTip.d.ts +9 -0
- package/dist/tooltips/DefaultToolTip.js +119 -0
- package/dist/tooltips/ToolTipContext.d.ts +18 -0
- package/dist/tooltips/ToolTipContext.js +52 -0
- package/dist/tooltips/ToolTipProvider.d.ts +25 -0
- package/dist/tooltips/ToolTipProvider.js +92 -0
- package/dist/tooltips/ToolTipRoot.d.ts +30 -0
- package/dist/tooltips/ToolTipRoot.js +61 -0
- package/dist/tooltips/useToolTip.d.ts +14 -0
- package/dist/tooltips/useToolTip.js +102 -0
- package/package.json +44 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.NotificationProvider = void 0;
|
|
37
|
+
const react_1 = require("react");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const NotificationContext_1 = require("./NotificationContext");
|
|
40
|
+
const NotificationRoot_1 = require("./NotificationRoot");
|
|
41
|
+
const DialogsStyleState_1 = require("../DialogsStyleState");
|
|
42
|
+
const __1 = require("..");
|
|
43
|
+
/**
|
|
44
|
+
* Notification Provider
|
|
45
|
+
*
|
|
46
|
+
* Provides Notification context and renders NotificationRoot.
|
|
47
|
+
*/
|
|
48
|
+
const NotificationProvider = ({ styleState, children, }) => {
|
|
49
|
+
const [Notifications, setNotifications] = (0, react_1.useState)({});
|
|
50
|
+
const state = (0, DialogsStyleState_1.useDialogsStylesState)();
|
|
51
|
+
const showNotification = (0, react_1.useCallback)((key, Notification) => setNotifications((Notifications) => ({
|
|
52
|
+
...Notifications,
|
|
53
|
+
[key]: Notification,
|
|
54
|
+
})), []);
|
|
55
|
+
const hideNotification = (0, react_1.useCallback)((key) => setNotifications((Notifications) => {
|
|
56
|
+
if (!Notifications[key]) {
|
|
57
|
+
return Notifications;
|
|
58
|
+
}
|
|
59
|
+
const newNotifications = { ...Notifications };
|
|
60
|
+
delete newNotifications[key];
|
|
61
|
+
return newNotifications;
|
|
62
|
+
}), []);
|
|
63
|
+
const contextValue = (0, react_1.useMemo)(() => ({ showNotification, hideNotification, styleState }), []);
|
|
64
|
+
React.useEffect(() => {
|
|
65
|
+
console.debug(`${__1.GE_DIALOGS_LIB} NotificationProvider: useEffect []`);
|
|
66
|
+
}, []);
|
|
67
|
+
return (React.createElement(NotificationContext_1.NotificationContext.Provider, { value: contextValue },
|
|
68
|
+
React.createElement("geLabel", { width: state.pluginWidth, height: state.pluginHeight, interceptsMouseClicks: false }, children),
|
|
69
|
+
React.createElement("geLabel", { width: state.pluginWidth, height: state.pluginHeight, interceptsMouseClicks: false },
|
|
70
|
+
React.createElement(NotificationRoot_1.NotificationRoot, { Notifications: Notifications }))));
|
|
71
|
+
};
|
|
72
|
+
exports.NotificationProvider = NotificationProvider;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Qcm92aWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQXVEO0FBQ3ZELDZDQUErQjtBQUMvQiwrREFBOEU7QUFDOUUseURBQXNEO0FBQ3RELDREQUE2RDtBQUM3RCwwQkFBb0M7QUFhcEM7Ozs7R0FJRztBQUNJLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxFQUNuQyxVQUFVLEVBQ1YsUUFBUSxHQUNrQixFQUFFLEVBQUU7SUFDOUIsTUFBTSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFFaEQsRUFBRSxDQUFDLENBQUM7SUFFTixNQUFNLEtBQUssR0FBRyxJQUFBLHlDQUFxQixHQUFFLENBQUM7SUFFdEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLG1CQUFXLEVBQ2xDLENBQUMsR0FBVyxFQUFFLFlBQThCLEVBQUUsRUFBRSxDQUM5QyxnQkFBZ0IsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxHQUFHLGFBQWE7UUFDaEIsQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZO0tBQ3BCLENBQUMsQ0FBQyxFQUNMLEVBQUUsQ0FDSCxDQUFDO0lBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLG1CQUFXLEVBQ2xDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDZCxnQkFBZ0IsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDOUMsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUMsQ0FBQyxFQUNKLEVBQUUsQ0FDSCxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsSUFBQSxlQUFPLEVBQzFCLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUMxRCxFQUFFLENBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxrQkFBYyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE9BQU8sQ0FDTCxvQkFBQyx5Q0FBbUIsQ0FBQyxRQUFRLElBQUMsS0FBSyxFQUFFLFlBQVk7UUFDL0MsaUNBQ0UsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsWUFBWSxFQUMxQixxQkFBcUIsRUFBRSxLQUFLLElBRTNCLFFBQVEsQ0FDRDtRQUNWLGlDQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxFQUN4QixNQUFNLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFDMUIscUJBQXFCLEVBQUUsS0FBSztZQUU1QixvQkFBQyxtQ0FBZ0IsSUFBQyxhQUFhLEVBQUUsYUFBYSxHQUFJLENBQzFDLENBQ21CLENBQ2hDLENBQUM7QUFDSixDQUFDLENBQUM7QUEzRFcsUUFBQSxvQkFBb0Isd0JBMkQvQiJ9
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { NotificationType } from "./NotificationContext";
|
|
3
|
+
/**
|
|
4
|
+
* Notification Root Props
|
|
5
|
+
*/
|
|
6
|
+
interface NotificationRootProps {
|
|
7
|
+
/**
|
|
8
|
+
* Map of Notification instances associated by unique ids
|
|
9
|
+
*/
|
|
10
|
+
Notifications: Record<string, NotificationType>;
|
|
11
|
+
/**
|
|
12
|
+
* Container component for Notifications
|
|
13
|
+
*
|
|
14
|
+
* Notifications will be rendered as children of this component. React.Fragment is
|
|
15
|
+
* used by defualt, specifying a different component can change the way Notifications
|
|
16
|
+
* are rendered across the whole application.
|
|
17
|
+
*/
|
|
18
|
+
component?: React.ComponentType<any>;
|
|
19
|
+
/**
|
|
20
|
+
* Specifies the root element to render Notifications into
|
|
21
|
+
*/
|
|
22
|
+
container?: Element;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Notification Root
|
|
26
|
+
*
|
|
27
|
+
* Renders Notifications using react portal.
|
|
28
|
+
*/
|
|
29
|
+
export declare const NotificationRoot: React.MemoExoticComponent<({ Notifications, component: RootComponent, }: NotificationRootProps) => React.JSX.Element>;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.NotificationRoot = void 0;
|
|
37
|
+
const react_1 = require("react");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const DialogsStyleState_1 = require("../DialogsStyleState");
|
|
40
|
+
const __1 = require("..");
|
|
41
|
+
/**
|
|
42
|
+
* Component responsible for rendering the Notification.
|
|
43
|
+
*
|
|
44
|
+
* The identity of `Component` may change dependeing on the inputs passed to
|
|
45
|
+
* `useNotification`. If we simply rendered `<Component />` then the Notification would be
|
|
46
|
+
* susceptible to rerenders whenever one of the inputs change.
|
|
47
|
+
*/
|
|
48
|
+
const NotificationRenderer = (0, react_1.memo)(({ component, width, height, ...rest }) => {
|
|
49
|
+
console.log(`${__1.GE_DIALOGS_LIB} NotificationRenderer w: ${width} h: ${height}`);
|
|
50
|
+
const c = component(rest);
|
|
51
|
+
const comp = React.cloneElement(c, rest);
|
|
52
|
+
return React.createElement(React.Fragment, null, comp);
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* Notification Root
|
|
56
|
+
*
|
|
57
|
+
* Renders Notifications using react portal.
|
|
58
|
+
*/
|
|
59
|
+
exports.NotificationRoot = (0, react_1.memo)(({ Notifications, component: RootComponent = React.Fragment, }) => {
|
|
60
|
+
//const [mountNode, setMountNode] = useState<Element | undefined>(undefined);
|
|
61
|
+
const stylesState = (0, DialogsStyleState_1.useDialogsStylesState)();
|
|
62
|
+
return (React.createElement(RootComponent, null, Object.keys(Notifications).map((key, index) => {
|
|
63
|
+
const args = {};
|
|
64
|
+
if (stylesState.stackNotifications) {
|
|
65
|
+
args["x"] = 100;
|
|
66
|
+
args["y"] = index * 50 + 10;
|
|
67
|
+
}
|
|
68
|
+
return (React.createElement(NotificationRenderer, { key: key, component: Notifications[key], width: stylesState.pluginWidth, height: stylesState.pluginHeight, ...args }));
|
|
69
|
+
})));
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uUm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblJvb3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlDQUFrRDtBQUNsRCw2Q0FBK0I7QUFFL0IsNERBQWdGO0FBQ2hGLDBCQUFvQztBQXNDcEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLFlBQUksRUFDL0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUE2QixFQUFFLEVBQUU7SUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FDVCxHQUFHLGtCQUFjLDRCQUE0QixLQUFLLE9BQU8sTUFBTSxFQUFFLENBQ2xFLENBQUM7SUFFRixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUE0QixFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXBFLE9BQU8sMENBQUcsSUFBSSxDQUFJLENBQUM7QUFDckIsQ0FBQyxDQUNGLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBRyxJQUFBLFlBQUksRUFDbEMsQ0FBQyxFQUNDLGFBQWEsRUFDYixTQUFTLEVBQUUsYUFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQ25CLEVBQUUsRUFBRTtJQUMxQiw2RUFBNkU7SUFDN0UsTUFBTSxXQUFXLEdBQXNCLElBQUEseUNBQXFCLEdBQUUsQ0FBQztJQUUvRCxPQUFPLENBQ0wsb0JBQUMsYUFBYSxRQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzdDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLENBQ0wsb0JBQUMsb0JBQW9CLElBQ25CLEdBQUcsRUFBRSxHQUFHLEVBQ1IsU0FBUyxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFDN0IsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQzlCLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxLQUM1QixJQUFJLEdBQ1IsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ1ksQ0FDakIsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NotificationsStyle } from '../DialogsStyleState';
|
|
2
|
+
/**
|
|
3
|
+
* Callback types provided for descriptive type-hints
|
|
4
|
+
*/
|
|
5
|
+
type ShowNotificationConfig = {
|
|
6
|
+
message: string;
|
|
7
|
+
notificationStyle?: NotificationsStyle;
|
|
8
|
+
key?: string | number;
|
|
9
|
+
};
|
|
10
|
+
type ShowNotification = (config: ShowNotificationConfig) => void;
|
|
11
|
+
type HideNotification = (extKey?: string) => void;
|
|
12
|
+
/**
|
|
13
|
+
* React hook for showing Notification windows
|
|
14
|
+
*/
|
|
15
|
+
export type UseNotificationProps = {
|
|
16
|
+
notificationStyle?: NotificationsStyle;
|
|
17
|
+
};
|
|
18
|
+
export declare const useNotification: (props?: UseNotificationProps) => [ShowNotification, HideNotification];
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.useNotification = void 0;
|
|
40
|
+
const React = __importStar(require("react"));
|
|
41
|
+
const react_1 = require("react");
|
|
42
|
+
const NotificationContext_1 = require("./NotificationContext");
|
|
43
|
+
const DefaultNotification_1 = __importDefault(require("./DefaultNotification"));
|
|
44
|
+
const DialogsStyleState_1 = require("../DialogsStyleState");
|
|
45
|
+
const dialogsDefaultStyle_1 = require("../dialogsDefaultStyle");
|
|
46
|
+
/**
|
|
47
|
+
* Utility function to generate unique number per component instance
|
|
48
|
+
*/
|
|
49
|
+
const generateNotificationKey = (() => {
|
|
50
|
+
let count = 0;
|
|
51
|
+
return () => `${++count}`;
|
|
52
|
+
})();
|
|
53
|
+
/**
|
|
54
|
+
* Check whether the argument is a stateless component.
|
|
55
|
+
*
|
|
56
|
+
* We take advantage of the stateless nature of functional components to be
|
|
57
|
+
* inline the rendering of the Notification component as part of another immutable
|
|
58
|
+
* component.
|
|
59
|
+
*
|
|
60
|
+
* This is necessary for allowing the Notification to update based on the inputs passed
|
|
61
|
+
* as the second argument to useNotification without unmounting the previous version of
|
|
62
|
+
* the Notification component.
|
|
63
|
+
*/
|
|
64
|
+
const isFunctionalComponent = (Component) => {
|
|
65
|
+
const prototype = Component.prototype;
|
|
66
|
+
return !prototype || !prototype.isReactComponent;
|
|
67
|
+
};
|
|
68
|
+
let hideNotificationInterval = {};
|
|
69
|
+
const useNotification = (props) => {
|
|
70
|
+
const key = (0, react_1.useMemo)(generateNotificationKey, []);
|
|
71
|
+
const stylesState = (0, DialogsStyleState_1.useDialogsStylesState)();
|
|
72
|
+
const context = (0, react_1.useContext)(NotificationContext_1.NotificationContext);
|
|
73
|
+
const duration = (0, react_1.useMemo)(() => {
|
|
74
|
+
const notificationStyle = stylesState.notification ?? dialogsDefaultStyle_1.dialogsDefaultStyle.notification;
|
|
75
|
+
return notificationStyle.duration ? notificationStyle.duration : 2500;
|
|
76
|
+
}, [stylesState.notification]);
|
|
77
|
+
const showNotification = (config) => {
|
|
78
|
+
const k = Date.now().toString(); //config.key ? Date.now().toString() : key;
|
|
79
|
+
if (hideNotificationInterval[k]) {
|
|
80
|
+
clearInterval(hideNotificationInterval[k]);
|
|
81
|
+
delete hideNotificationInterval[k];
|
|
82
|
+
}
|
|
83
|
+
const c = () => (React.createElement(DefaultNotification_1.default, { message: config.message, notificationStyle: config.notificationStyle ? config.notificationStyle : props?.notificationStyle }));
|
|
84
|
+
context.showNotification(k, c);
|
|
85
|
+
hideNotificationInterval[k] = setInterval(() => {
|
|
86
|
+
clearInterval(hideNotificationInterval[k]);
|
|
87
|
+
//if (config.key) hideNotification(k);
|
|
88
|
+
//else hideNotification();
|
|
89
|
+
hideNotification(k);
|
|
90
|
+
}, duration);
|
|
91
|
+
};
|
|
92
|
+
const hideNotification = (extKey) => {
|
|
93
|
+
context.hideNotification(extKey ? extKey : key);
|
|
94
|
+
};
|
|
95
|
+
return [showNotification, hideNotification];
|
|
96
|
+
};
|
|
97
|
+
exports.useNotification = useNotification;
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25vdGlmaWNhdGlvbnMvdXNlTm90aWZpY2F0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFFL0IsaUNBQThGO0FBQzlGLCtEQUE4RTtBQUM5RSxnRkFBd0Q7QUFDeEQsNERBQW9HO0FBQ3BHLGdFQUE2RDtBQWE3RDs7R0FFRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7SUFDcEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRWQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDNUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVMOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsU0FBbUIsRUFBRSxFQUFFO0lBQ3BELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFFdEMsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNuRCxDQUFDLENBQUM7QUFhRixJQUFJLHdCQUF3QixHQUFXLEVBQUUsQ0FBQztBQUVuQyxNQUFNLGVBQWUsR0FBRyxDQUM3QixLQUE0QixFQUNVLEVBQUU7SUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBQSxlQUFPLEVBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFakQsTUFBTSxXQUFXLEdBQXNCLElBQUEseUNBQXFCLEdBQUUsQ0FBQztJQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFBLGtCQUFVLEVBQUMseUNBQW1CLENBQUMsQ0FBQztJQUVoRCxNQUFNLFFBQVEsR0FBRyxJQUFBLGVBQU8sRUFBQyxHQUFHLEVBQUU7UUFDNUIsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsWUFBWSxJQUFJLHlDQUFtQixDQUFDLFlBQWEsQ0FBQztRQUN4RixPQUFPLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFFL0IsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQThCLEVBQUUsRUFBRTtRQUMxRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQywyQ0FBMkM7UUFDNUUsSUFBSSx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE9BQU8sd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFxQixHQUFHLEVBQUUsQ0FBQyxDQUNoQyxvQkFBQyw2QkFBbUIsSUFDbEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQ3ZCLGlCQUFpQixFQUNmLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEdBRWhGLENBQ0gsQ0FBQztRQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFL0Isd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUM3QyxhQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxzQ0FBc0M7WUFDdEMsMEJBQTBCO1lBQzFCLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtRQUMzQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQztBQTFDVyxRQUFBLGVBQWUsbUJBMEMxQiJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ToolTipsStyle } from '../DialogsStyleState';
|
|
3
|
+
type DefaultToolTipProps = {
|
|
4
|
+
component: any;
|
|
5
|
+
id: string;
|
|
6
|
+
toolTipStyle?: ToolTipsStyle;
|
|
7
|
+
};
|
|
8
|
+
declare function DefaultToolTip(props: DefaultToolTipProps): React.JSX.Element;
|
|
9
|
+
export default DefaultToolTip;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const React = __importStar(require("react"));
|
|
37
|
+
const react_1 = require("react");
|
|
38
|
+
const ErrorBoundary_1 = require("../ErrorBoundary");
|
|
39
|
+
const DialogsStyleState_1 = require("../DialogsStyleState");
|
|
40
|
+
const dialogsDefaultStyle_1 = require("../dialogsDefaultStyle");
|
|
41
|
+
function DefaultToolTip(props) {
|
|
42
|
+
const stylesState = (0, DialogsStyleState_1.useDialogsStylesState)();
|
|
43
|
+
const toolTipStyle = React.useMemo(() => props.toolTipStyle ?? stylesState.toolTip ?? dialogsDefaultStyle_1.dialogsDefaultStyle.toolTip, [props.toolTipStyle, stylesState.toolTip]);
|
|
44
|
+
const [compProps] = (0, react_1.useState)(getAbsoultCoordinates(props.component));
|
|
45
|
+
const defaultWidth = 150;
|
|
46
|
+
const [width, setWidth] = (0, react_1.useState)(defaultWidth);
|
|
47
|
+
const [height, setHeight] = (0, react_1.useState)(toolTipStyle.container.height ? toolTipStyle.container.height : 40);
|
|
48
|
+
const [visible, setVisible] = (0, react_1.useState)(false);
|
|
49
|
+
const [xPos, setXPos] = (0, react_1.useState)(0);
|
|
50
|
+
const [yPos, setYPos] = (0, react_1.useState)(0);
|
|
51
|
+
/*const xPos =
|
|
52
|
+
*/
|
|
53
|
+
(0, react_1.useEffect)(() => {
|
|
54
|
+
let mounted = true;
|
|
55
|
+
const calcText = async () => {
|
|
56
|
+
const textWidth = await GorillaEngine.calculateTextWidth(props.id, '', 13, 0);
|
|
57
|
+
return textWidth;
|
|
58
|
+
};
|
|
59
|
+
calcText().then((textWidth) => {
|
|
60
|
+
const w = textWidth + 40;
|
|
61
|
+
setWidth(w);
|
|
62
|
+
calculateXPos(w);
|
|
63
|
+
calculateYPos();
|
|
64
|
+
setVisible(true);
|
|
65
|
+
});
|
|
66
|
+
return () => {
|
|
67
|
+
mounted = false;
|
|
68
|
+
};
|
|
69
|
+
}, []);
|
|
70
|
+
const calculateXPos = (ttWidth) => {
|
|
71
|
+
let pos = compProps.width > ttWidth
|
|
72
|
+
? Math.round(compProps.x + (compProps.width - ttWidth) / 2)
|
|
73
|
+
: Math.round(compProps.x - (ttWidth - compProps.width) / 2);
|
|
74
|
+
if (pos < 0) {
|
|
75
|
+
pos = 10;
|
|
76
|
+
}
|
|
77
|
+
if (pos + ttWidth > compProps.viewPortWidth) {
|
|
78
|
+
pos = compProps.viewPortWidth - ttWidth - 10;
|
|
79
|
+
}
|
|
80
|
+
setXPos(pos);
|
|
81
|
+
};
|
|
82
|
+
const calculateYPos = () => {
|
|
83
|
+
let pos = compProps.y + compProps.height + 5;
|
|
84
|
+
if (pos + height > stylesState.pluginHeight) {
|
|
85
|
+
pos = compProps.y - height - 5;
|
|
86
|
+
}
|
|
87
|
+
setYPos(pos);
|
|
88
|
+
};
|
|
89
|
+
return (React.createElement(React.Fragment, null,
|
|
90
|
+
React.createElement(ErrorBoundary_1.ErrorBoundary, null,
|
|
91
|
+
React.createElement("geLabel", { x: xPos, y: yPos, width: width, height: height, visible: visible, ...toolTipStyle.container },
|
|
92
|
+
React.createElement("geLabel", { ...toolTipStyle.label, x: 0, y: 0, width: width, height: height, text: props.id })))));
|
|
93
|
+
}
|
|
94
|
+
exports.default = DefaultToolTip;
|
|
95
|
+
const getAbsoultCoordinates = (component) => {
|
|
96
|
+
const comp = component._nativeHandle ? component._nativeHandle : component;
|
|
97
|
+
const coordinates = {
|
|
98
|
+
x: 0,
|
|
99
|
+
y: 0,
|
|
100
|
+
width: comp.width,
|
|
101
|
+
height: comp.height,
|
|
102
|
+
viewPortWidth: 0,
|
|
103
|
+
viewPortHeight: 0,
|
|
104
|
+
};
|
|
105
|
+
const iterateUp = (c) => {
|
|
106
|
+
coordinates.x += c.x ? c.x : 0;
|
|
107
|
+
coordinates.y += c.y ? c.y : 0;
|
|
108
|
+
if (c.parent) {
|
|
109
|
+
iterateUp(c.parent);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
coordinates.viewPortWidth = c.width;
|
|
113
|
+
coordinates.viewPortHeight = c.height;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
iterateUp(comp);
|
|
117
|
+
return coordinates;
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFRvb2xUaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHRpcHMvRGVmYXVsdFRvb2xUaXAudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQStCO0FBRS9CLGlDQUE0QztBQUM1QyxvREFBaUQ7QUFDakQsNERBQStGO0FBQy9GLGdFQUE2RDtBQVE3RCxTQUFTLGNBQWMsQ0FBQyxLQUEwQjtJQUNoRCxNQUFNLFdBQVcsR0FBc0IsSUFBQSx5Q0FBcUIsR0FBRSxDQUFDO0lBQy9ELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQ2hDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksV0FBVyxDQUFDLE9BQU8sSUFBSSx5Q0FBbUIsQ0FBQyxPQUFRLEVBQy9FLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQzFDLENBQUM7SUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXJFLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztJQUV6QixNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFDbEMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ25FLENBQUM7SUFDRixNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxN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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* ToolTips are represented as react components
|
|
4
|
+
*
|
|
5
|
+
* This is what gets passed to useToolTip as the first argument.
|
|
6
|
+
*/
|
|
7
|
+
export type ToolTipType = React.FunctionComponent<any>;
|
|
8
|
+
/**
|
|
9
|
+
* The shape of the ToolTip context
|
|
10
|
+
*/
|
|
11
|
+
export interface ToolTipContextType {
|
|
12
|
+
showToolTip(key: string, component: ToolTipType): void;
|
|
13
|
+
hideToolTip(key: string): void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* ToolTip Context Object
|
|
17
|
+
*/
|
|
18
|
+
export declare const ToolTipContext: React.Context<ToolTipContextType>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ToolTipContext = void 0;
|
|
37
|
+
const React = __importStar(require("react"));
|
|
38
|
+
/**
|
|
39
|
+
* Throw error when ToolTipContext is used outside of context provider
|
|
40
|
+
*/
|
|
41
|
+
const invariantViolation = () => {
|
|
42
|
+
throw new Error("Attempted to call useToolTip outside of ToolTip context. Make sure your app is rendered inside ToolTipProvider.");
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* ToolTip Context Object
|
|
46
|
+
*/
|
|
47
|
+
exports.ToolTipContext = React.createContext({
|
|
48
|
+
showToolTip: invariantViolation,
|
|
49
|
+
hideToolTip: invariantViolation,
|
|
50
|
+
});
|
|
51
|
+
exports.ToolTipContext.displayName = "ToolTipContext";
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbFRpcENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHRpcHMvVG9vbFRpcENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQStCO0FBaUIvQjs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFO0lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUhBQWlILENBQ2xILENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQXFCO0lBQ3BFLFdBQVcsRUFBRSxrQkFBa0I7SUFDL0IsV0FBVyxFQUFFLGtCQUFrQjtDQUNoQyxDQUFDLENBQUM7QUFDSCxzQkFBYyxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* ToolTip Provider Props
|
|
4
|
+
*/
|
|
5
|
+
export interface ToolTipProviderProps {
|
|
6
|
+
styleState: any;
|
|
7
|
+
/**
|
|
8
|
+
* Specifies the root element to render ToolTips into
|
|
9
|
+
*/
|
|
10
|
+
container?: Element;
|
|
11
|
+
/**
|
|
12
|
+
* Container component for ToolTip nodes
|
|
13
|
+
*/
|
|
14
|
+
rootComponent?: React.ComponentType<any>;
|
|
15
|
+
/**
|
|
16
|
+
* Subtree that will receive ToolTip context
|
|
17
|
+
*/
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* ToolTip Provider
|
|
22
|
+
*
|
|
23
|
+
* Provides ToolTip context and renders ToolTipRoot.
|
|
24
|
+
*/
|
|
25
|
+
export declare const ToolTipProvider: ({ styleState, container, rootComponent, children, }: ToolTipProviderProps) => React.JSX.Element;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ToolTipProvider = void 0;
|
|
37
|
+
const react_1 = require("react");
|
|
38
|
+
const React = __importStar(require("react"));
|
|
39
|
+
const ToolTipContext_1 = require("./ToolTipContext");
|
|
40
|
+
const ToolTipRoot_1 = require("./ToolTipRoot");
|
|
41
|
+
const DialogsStyleState_1 = require("../DialogsStyleState");
|
|
42
|
+
const __1 = require("..");
|
|
43
|
+
/**
|
|
44
|
+
* ToolTip Provider
|
|
45
|
+
*
|
|
46
|
+
* Provides ToolTip context and renders ToolTipRoot.
|
|
47
|
+
*/
|
|
48
|
+
const ToolTipProvider = ({ styleState, container, rootComponent, children, }) => {
|
|
49
|
+
if (container && !(container instanceof HTMLElement)) {
|
|
50
|
+
throw new Error(`Container must specify DOM element to mount ToolTip root into.
|
|
51
|
+
This behavior has changed in 3.0.0. Please use \`rootComponent\` prop instead.
|
|
52
|
+
See: https://github.com/mpontus/react-ToolTip-hook/issues/18`);
|
|
53
|
+
}
|
|
54
|
+
const [ToolTips, setToolTips] = (0, react_1.useState)({});
|
|
55
|
+
const state = (0, DialogsStyleState_1.useDialogsStylesState)();
|
|
56
|
+
const showToolTip = (0, react_1.useCallback)((key, ToolTip) => setToolTips((ToolTips) => ({
|
|
57
|
+
...ToolTips,
|
|
58
|
+
[key]: ToolTip,
|
|
59
|
+
})), []);
|
|
60
|
+
const hideToolTip = (0, react_1.useCallback)((key) => setToolTips((ToolTips) => {
|
|
61
|
+
if (!ToolTips[key]) {
|
|
62
|
+
return ToolTips;
|
|
63
|
+
}
|
|
64
|
+
const newToolTips = { ...ToolTips };
|
|
65
|
+
delete newToolTips[key];
|
|
66
|
+
return newToolTips;
|
|
67
|
+
}), []);
|
|
68
|
+
const contextValue = (0, react_1.useMemo)(() => ({ showToolTip, hideToolTip, styleState }), []);
|
|
69
|
+
React.useEffect(() => {
|
|
70
|
+
console.debug(`${__1.GE_DIALOGS_LIB} ToolTipProvider: useEffect []`);
|
|
71
|
+
}, []);
|
|
72
|
+
return (React.createElement(ToolTipContext_1.ToolTipContext.Provider, { value: contextValue },
|
|
73
|
+
React.createElement("geLabel", { width: state.pluginWidth, height: state.pluginHeight }, children),
|
|
74
|
+
React.createElement(ToolTipRoot_1.ToolTipRoot, { ToolTips: ToolTips, component: rootComponent, container: container })));
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
* return (
|
|
78
|
+
<ToolTipContext.Provider value={contextValue}>
|
|
79
|
+
<React.Fragment>
|
|
80
|
+
{children}
|
|
81
|
+
<ToolTipRoot
|
|
82
|
+
ToolTips={ToolTips}
|
|
83
|
+
component={rootComponent}
|
|
84
|
+
container={container}
|
|
85
|
+
/>
|
|
86
|
+
</React.Fragment>
|
|
87
|
+
</ToolTipContext.Provider>
|
|
88
|
+
)
|
|
89
|
+
*/
|
|
90
|
+
};
|
|
91
|
+
exports.ToolTipProvider = ToolTipProvider;
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbFRpcFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2x0aXBzL1Rvb2xUaXBQcm92aWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQXVEO0FBQ3ZELDZDQUErQjtBQUMvQixxREFBK0Q7QUFDL0QsK0NBQTRDO0FBQzVDLDREQUE2RDtBQUM3RCwwQkFBb0M7QUF1QnBDOzs7O0dBSUc7QUFDSSxNQUFNLGVBQWUsR0FBRyxDQUFDLEVBQzlCLFVBQVUsRUFDVixTQUFTLEVBQ1QsYUFBYSxFQUNiLFFBQVEsR0FDYSxFQUFFLEVBQUU7SUFDekIsSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLFNBQVMsWUFBWSxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUM7O2lFQUU2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUE4QixFQUFFLENBQUMsQ0FBQztJQUUxRSxNQUFNLEtBQUssR0FBRyxJQUFBLHlDQUFxQixHQUFFLENBQUM7SUFFdEMsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQkFBVyxFQUM3QixDQUFDLEdBQVcsRUFBRSxPQUFvQixFQUFFLEVBQUUsQ0FDcEMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLEdBQUcsUUFBUTtRQUNYLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTztLQUNmLENBQUMsQ0FBQyxFQUNMLEVBQUUsQ0FDSCxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQkFBVyxFQUM3QixDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ2QsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDcEMsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQyxDQUFDLEVBQ0osRUFBRSxDQUNILENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxJQUFBLGVBQU8sRUFDMUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFDaEQsRUFBRSxDQUNILENBQUM7SUFFRixLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsa0JBQWMsZ0NBQWdDLENBQUMsQ0FBQztJQUNuRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLENBQ0wsb0JBQUMsK0JBQWMsQ0FBQyxRQUFRLElBQUMsS0FBSyxFQUFFLFlBQVk7UUFDMUMsaUNBQVMsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQzFELFFBQVEsQ0FDRDtRQUNWLG9CQUFDLHlCQUFXLElBQ1YsUUFBUSxFQUFFLFFBQVEsRUFDbEIsU0FBUyxFQUFFLGFBQWEsRUFDeEIsU0FBUyxFQUFFLFNBQVMsR0FDcEIsQ0FDc0IsQ0FDM0IsQ0FBQztJQUVGOzs7Ozs7Ozs7Ozs7OztPQWNHO0FBQ0wsQ0FBQyxDQUFDO0FBMUVXLFFBQUEsZUFBZSxtQkEwRTFCIn0=
|