@steroidsjs/core 3.0.0-beta.39 → 3.0.0-beta.40
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/docs-autogen-result.json +779 -258
- package/hooks/useDataProvider.d.ts +27 -26
- package/hooks/useList.d.ts +2 -2
- package/index.d.ts +1 -1
- package/package.json +1 -1
- package/ui/content/Accordion/Accordion.d.ts +5 -3
- package/ui/content/Accordion/AccordionItem.d.ts +3 -3
- package/ui/content/CopyToClipboard/CopyToClipboard.d.ts +42 -6
- package/ui/content/CopyToClipboard/CopyToClipboard.js +26 -59
- package/ui/content/Menu/Menu.d.ts +3 -3
- package/ui/content/index.d.ts +2 -1
- package/ui/content/index.js +3 -1
- package/ui/form/DropDownField/DropDownField.d.ts +2 -2
- package/ui/form/ImageField/ImageField.d.ts +3 -3
- package/ui/layout/Tooltip/Tooltip.d.ts +5 -5
- package/ui/layout/Tooltip/calculate.d.ts +3 -3
|
@@ -24,6 +24,32 @@ export type DataProviderItems = string | ({
|
|
|
24
24
|
label: string | any;
|
|
25
25
|
[key: string]: any;
|
|
26
26
|
})[];
|
|
27
|
+
export interface IDataProvider {
|
|
28
|
+
/**
|
|
29
|
+
* Уникальный (глобально) идентификатор, под которых будут храниться
|
|
30
|
+
* подгруженные данные в redux (при включенном флаге useRedux). Если
|
|
31
|
+
* не задан - данные будут храниться в локальном стейте
|
|
32
|
+
*/
|
|
33
|
+
reduxId?: string;
|
|
34
|
+
/**
|
|
35
|
+
* URL для подгрузки новой коллекции данных
|
|
36
|
+
* @example '/api/v1/search'
|
|
37
|
+
*/
|
|
38
|
+
action?: string | IApiMethod;
|
|
39
|
+
/**
|
|
40
|
+
* Параметры запроса
|
|
41
|
+
* @example {pageSize: 3}
|
|
42
|
+
*/
|
|
43
|
+
params?: Record<string, unknown>;
|
|
44
|
+
/**
|
|
45
|
+
* Обработчик, который вызывается для подгрузки данных.
|
|
46
|
+
* Если обработчик не передан, то по умолчанию отправится post-запрос.
|
|
47
|
+
* @param {string} action
|
|
48
|
+
* @param {Object} params
|
|
49
|
+
* @return {Promise<Array> | Array}
|
|
50
|
+
*/
|
|
51
|
+
onSearch?: (action: string, params: Record<string, unknown>) => Array<unknown> | Promise<Array<unknown>>;
|
|
52
|
+
}
|
|
27
53
|
export interface IDataProviderConfig {
|
|
28
54
|
/**
|
|
29
55
|
* Коллекция элементов
|
|
@@ -34,32 +60,7 @@ export interface IDataProviderConfig {
|
|
|
34
60
|
* Конфигурация для подгрузки данных извне.
|
|
35
61
|
* Если dataProvider не передан, то поиск данных по запросу происходит локально.
|
|
36
62
|
*/
|
|
37
|
-
dataProvider?:
|
|
38
|
-
/**
|
|
39
|
-
* Уникальный (глобально) идентификатор, под которых будут храниться
|
|
40
|
-
* подгруженные данные в redux (при включенном флаге useRedux). Если
|
|
41
|
-
* не задан - данные будут храниться в локальном стейте
|
|
42
|
-
*/
|
|
43
|
-
reduxId?: string;
|
|
44
|
-
/**
|
|
45
|
-
* URL для подгрузки новой коллекции данных
|
|
46
|
-
* @example '/api/v1/search'
|
|
47
|
-
*/
|
|
48
|
-
action?: string | IApiMethod;
|
|
49
|
-
/**
|
|
50
|
-
* Параметры запроса
|
|
51
|
-
* @example {pageSize: 3}
|
|
52
|
-
*/
|
|
53
|
-
params?: Record<string, unknown>;
|
|
54
|
-
/**
|
|
55
|
-
* Обработчик, который вызывается для подгрузки данных.
|
|
56
|
-
* Если обработчик не передан, то по умолчанию отправится post-запрос.
|
|
57
|
-
* @param {string} action
|
|
58
|
-
* @param {Object} params
|
|
59
|
-
* @return {Promise<Array> | Array}
|
|
60
|
-
*/
|
|
61
|
-
onSearch?: (action: string, params: Record<string, unknown>) => Array<unknown> | Promise<Array<unknown>>;
|
|
62
|
-
};
|
|
63
|
+
dataProvider?: IDataProvider;
|
|
63
64
|
/**
|
|
64
65
|
* Текст запроса
|
|
65
66
|
* @example 'some text'
|
package/hooks/useList.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { IEmptyProps } from '../ui/list/Empty/Empty';
|
|
|
8
8
|
import { IFormProps } from '../ui/form/Form/Form';
|
|
9
9
|
import { Model } from '../components/MetaComponent';
|
|
10
10
|
export type ListControlPosition = 'top' | 'bottom' | 'both' | string;
|
|
11
|
-
export interface
|
|
11
|
+
export interface ISortConfig {
|
|
12
12
|
/**
|
|
13
13
|
* Включить сортировку
|
|
14
14
|
* @example false
|
|
@@ -61,7 +61,7 @@ export interface IListConfig {
|
|
|
61
61
|
* Подключение сортировки
|
|
62
62
|
* @example {enable: true, defaultSort: 'startDate'}
|
|
63
63
|
*/
|
|
64
|
-
sort?: boolean |
|
|
64
|
+
sort?: boolean | ISortConfig;
|
|
65
65
|
/**
|
|
66
66
|
* Варианты расположения элементов коллекции
|
|
67
67
|
* @example {items: [{id: 'list', label: 'List'}, {id: 'grid', label: 'Grid'}]}
|
package/index.d.ts
CHANGED
|
@@ -77,7 +77,7 @@ declare type CustomStyle = React.CSSProperties;
|
|
|
77
77
|
* Переопределение view React компонента для кастомизации отображения
|
|
78
78
|
* @example MyCustomView
|
|
79
79
|
*/
|
|
80
|
-
declare type CustomView = React.ReactNode | React.
|
|
80
|
+
declare type CustomView = React.ReactNode | ((props: React.ComponentProps<any>) => JSX.Element);
|
|
81
81
|
|
|
82
82
|
/**
|
|
83
83
|
* Кастомная иконка
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ export interface IAccordionIcon {
|
|
|
3
3
|
open: React.ReactElement | string;
|
|
4
4
|
close: React.ReactElement | string;
|
|
5
5
|
}
|
|
6
|
-
export interface
|
|
6
|
+
export interface IAccordionProps {
|
|
7
7
|
view?: CustomView;
|
|
8
8
|
style?: CustomStyle;
|
|
9
9
|
children?: any;
|
|
@@ -55,11 +55,13 @@ export interface IAccordionCommonProps {
|
|
|
55
55
|
*/
|
|
56
56
|
showIcon?: boolean;
|
|
57
57
|
}
|
|
58
|
-
export interface
|
|
58
|
+
export interface IAccordionViewProps extends IAccordionProps {
|
|
59
59
|
toggleAccordion?: (number: any) => void;
|
|
60
60
|
toggleCollapse?: (number: any) => void;
|
|
61
61
|
childIndex?: number;
|
|
62
62
|
isShowMore?: boolean;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
export type IAccordionItemProps = IAccordionProps;
|
|
65
|
+
export type IAccordionItemViewProps = IAccordionViewProps;
|
|
66
|
+
declare function Accordion(props: IAccordionProps): JSX.Element;
|
|
65
67
|
export default Accordion;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare function AccordionItem(props:
|
|
1
|
+
import { IAccordionItemProps } from './Accordion';
|
|
2
|
+
declare function AccordionItem(props: IAccordionItemProps): any;
|
|
3
3
|
declare namespace AccordionItem {
|
|
4
|
-
var defaultProps:
|
|
4
|
+
var defaultProps: import("./Accordion").IAccordionViewProps;
|
|
5
5
|
}
|
|
6
6
|
export default AccordionItem;
|
|
@@ -1,13 +1,49 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IShowNotificationParameters } from '../../../actions/notifications';
|
|
3
|
+
export interface ICopyToClipboardProps extends IUiComponent {
|
|
4
|
+
/**
|
|
5
|
+
* Значение, которое будет использоваться при копировании
|
|
6
|
+
* @example value: 'Steroids.js'
|
|
7
|
+
*/
|
|
2
8
|
value: string;
|
|
9
|
+
/**
|
|
10
|
+
* Флаг, который отвечает за выключение функции копирования
|
|
11
|
+
* @example disabled: false
|
|
12
|
+
*/
|
|
3
13
|
disabled?: boolean;
|
|
4
14
|
notification?: string | {
|
|
5
15
|
message?: string;
|
|
6
16
|
level?: string;
|
|
7
|
-
|
|
17
|
+
params?: IShowNotificationParameters;
|
|
8
18
|
};
|
|
9
|
-
|
|
10
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Позволяет включить или выключить отображение иконки
|
|
21
|
+
* @example showCopyIcon: false
|
|
22
|
+
*/
|
|
23
|
+
showCopyIcon?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Иконка
|
|
26
|
+
* @example calendar-day
|
|
27
|
+
*/
|
|
28
|
+
icon?: string | React.ReactElement;
|
|
29
|
+
/**
|
|
30
|
+
* Дочерний элемент
|
|
31
|
+
* @example <h1>This message will be copied!</h1>
|
|
32
|
+
*/
|
|
33
|
+
children?: React.ReactNode;
|
|
34
|
+
/**
|
|
35
|
+
* Callback функция, которая вызывается при копировании
|
|
36
|
+
* @example {}
|
|
37
|
+
*/
|
|
38
|
+
onCopy?: VoidFunction;
|
|
11
39
|
}
|
|
12
|
-
export
|
|
13
|
-
|
|
40
|
+
export interface ICopyToClipboardViewProps extends ICopyToClipboardProps {
|
|
41
|
+
onClick: () => void;
|
|
42
|
+
}
|
|
43
|
+
declare function CopyToClipboard(props: ICopyToClipboardProps): any;
|
|
44
|
+
declare namespace CopyToClipboard {
|
|
45
|
+
var defaultProps: {
|
|
46
|
+
showCopyIcon: boolean;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export default CopyToClipboard;
|
|
@@ -10,29 +10,6 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
-
if (mod && mod.__esModule) return mod;
|
|
31
|
-
var result = {};
|
|
32
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
-
__setModuleDefault(result, mod);
|
|
34
|
-
return result;
|
|
35
|
-
};
|
|
36
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
37
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
38
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -69,60 +46,50 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
69
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
70
47
|
}
|
|
71
48
|
};
|
|
72
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
73
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
74
|
-
};
|
|
75
49
|
exports.__esModule = true;
|
|
76
|
-
|
|
77
|
-
var
|
|
50
|
+
/* eslint-disable no-unused-expressions */
|
|
51
|
+
var react_1 = require("react");
|
|
52
|
+
var hooks_1 = require("../../../hooks");
|
|
78
53
|
var notifications_1 = require("../../../actions/notifications");
|
|
54
|
+
var DEFAULT_NOTIFICATION_LEVEL = 'info';
|
|
79
55
|
function CopyToClipboard(props) {
|
|
80
56
|
var _this = this;
|
|
81
|
-
var
|
|
57
|
+
var components = (0, hooks_1.useComponents)();
|
|
82
58
|
var _a = (0, react_1.useState)(false), isCopied = _a[0], setIsCopied = _a[1];
|
|
83
|
-
var dispatch = (0,
|
|
59
|
+
var dispatch = (0, hooks_1.useDispatch)();
|
|
60
|
+
var notification = props.notification;
|
|
84
61
|
var onClick = (0, react_1.useCallback)(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
85
|
-
var el, notification;
|
|
86
62
|
return __generator(this, function (_a) {
|
|
87
63
|
switch (_a.label) {
|
|
88
64
|
case 0:
|
|
89
|
-
if (
|
|
65
|
+
if (props.disabled) {
|
|
66
|
+
return [2 /*return*/];
|
|
67
|
+
}
|
|
68
|
+
if (!!isCopied) return [3 /*break*/, 3];
|
|
90
69
|
if (!navigator.clipboard) return [3 /*break*/, 2];
|
|
91
70
|
return [4 /*yield*/, navigator.clipboard.writeText(props.value)];
|
|
92
71
|
case 1:
|
|
93
72
|
_a.sent();
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
el = inputRef.current;
|
|
97
|
-
if (el) {
|
|
98
|
-
el.focus();
|
|
99
|
-
el.select();
|
|
73
|
+
if (props.onCopy) {
|
|
74
|
+
props.onCopy();
|
|
100
75
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
76
|
+
_a.label = 2;
|
|
77
|
+
case 2:
|
|
78
|
+
if (notification) {
|
|
79
|
+
typeof notification === 'string'
|
|
80
|
+
? dispatch((0, notifications_1.showNotification)(notification, DEFAULT_NOTIFICATION_LEVEL))
|
|
81
|
+
: dispatch((0, notifications_1.showNotification)(notification.message, notification.level || DEFAULT_NOTIFICATION_LEVEL, notification.params));
|
|
107
82
|
}
|
|
108
83
|
setIsCopied(true);
|
|
109
84
|
setTimeout(function () { return setIsCopied(false); }, 1000);
|
|
110
|
-
_a.label =
|
|
111
|
-
case
|
|
85
|
+
_a.label = 3;
|
|
86
|
+
case 3: return [2 /*return*/];
|
|
112
87
|
}
|
|
113
88
|
});
|
|
114
|
-
}); }, [dispatch, isCopied,
|
|
115
|
-
|
|
116
|
-
return props.children;
|
|
117
|
-
}
|
|
118
|
-
return (react_1["default"].createElement("span", { className: props.className, onClick: onClick, "aria-hidden": 'true' },
|
|
119
|
-
props.children,
|
|
120
|
-
react_1["default"].createElement("input", { ref: inputRef, defaultValue: props.value, style: {
|
|
121
|
-
position: 'absolute',
|
|
122
|
-
height: 1,
|
|
123
|
-
width: 1,
|
|
124
|
-
top: 0,
|
|
125
|
-
opacity: 0
|
|
126
|
-
} })));
|
|
89
|
+
}); }, [dispatch, isCopied, notification, props]);
|
|
90
|
+
return components.ui.renderView(props.view || 'content.CopyToClipboardView', __assign(__assign({}, props), { onClick: onClick }));
|
|
127
91
|
}
|
|
92
|
+
CopyToClipboard.defaultProps = {
|
|
93
|
+
showCopyIcon: true
|
|
94
|
+
};
|
|
128
95
|
exports["default"] = CopyToClipboard;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IDropDownProps } from '../DropDown/DropDown';
|
|
3
|
-
export interface
|
|
3
|
+
export interface IMenuItem {
|
|
4
4
|
/**
|
|
5
5
|
* Заголовок элемента меню
|
|
6
6
|
*/
|
|
@@ -22,7 +22,7 @@ export interface IMenuProps {
|
|
|
22
22
|
/**
|
|
23
23
|
* Элементы меню
|
|
24
24
|
*/
|
|
25
|
-
items:
|
|
25
|
+
items: IMenuItem[];
|
|
26
26
|
/**
|
|
27
27
|
* Кастомная иконка, по клику на которую открывается меню
|
|
28
28
|
*/
|
|
@@ -34,7 +34,7 @@ export interface IMenuProps {
|
|
|
34
34
|
/**
|
|
35
35
|
* Пропсы для DropDown
|
|
36
36
|
*/
|
|
37
|
-
dropDownProps?:
|
|
37
|
+
dropDownProps?: IDropDownProps;
|
|
38
38
|
/**
|
|
39
39
|
* Переопределение view React элемента меню для кастомизации отображения
|
|
40
40
|
*/
|
package/ui/content/index.d.ts
CHANGED
|
@@ -7,4 +7,5 @@ import Badge from './Badge';
|
|
|
7
7
|
import { Detail, DetailItem } from './Detail';
|
|
8
8
|
import Icon from './Icon';
|
|
9
9
|
import Menu from './Menu';
|
|
10
|
-
|
|
10
|
+
import CopyToClipboard from './CopyToClipboard';
|
|
11
|
+
export { Avatar, AvatarGroup, Accordion, AccordionItem, Alert, Card, DropDown, Badge, Detail, DetailItem, Icon, Menu, CopyToClipboard, };
|
package/ui/content/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports.Menu = exports.Icon = exports.DetailItem = exports.Detail = exports.Badge = exports.DropDown = exports.Card = exports.Alert = exports.AccordionItem = exports.Accordion = exports.AvatarGroup = exports.Avatar = void 0;
|
|
6
|
+
exports.CopyToClipboard = exports.Menu = exports.Icon = exports.DetailItem = exports.Detail = exports.Badge = exports.DropDown = exports.Card = exports.Alert = exports.AccordionItem = exports.Accordion = exports.AvatarGroup = exports.Avatar = void 0;
|
|
7
7
|
var Avatar_1 = require("./Avatar");
|
|
8
8
|
exports.Avatar = Avatar_1.Avatar;
|
|
9
9
|
exports.AvatarGroup = Avatar_1.AvatarGroup;
|
|
@@ -25,3 +25,5 @@ var Icon_1 = __importDefault(require("./Icon"));
|
|
|
25
25
|
exports.Icon = Icon_1["default"];
|
|
26
26
|
var Menu_1 = __importDefault(require("./Menu"));
|
|
27
27
|
exports.Menu = Menu_1["default"];
|
|
28
|
+
var CopyToClipboard_1 = __importDefault(require("./CopyToClipboard"));
|
|
29
|
+
exports.CopyToClipboard = CopyToClipboard_1["default"];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { IAccordionItemViewProps } from 'src/ui/content/Accordion/Accordion';
|
|
3
3
|
import { DataProviderItems, IDataProviderConfig } from '../../../hooks/useDataProvider';
|
|
4
4
|
import { IDataSelectConfig } from '../../../hooks/useDataSelect';
|
|
5
5
|
import { IFieldWrapperInputProps } from '../../form/Field/fieldWrapper';
|
|
@@ -16,7 +16,7 @@ export interface IDropDownFieldItem {
|
|
|
16
16
|
contentType?: ContentType | string;
|
|
17
17
|
contentSrc?: string | React.ReactElement;
|
|
18
18
|
}
|
|
19
|
-
export interface IDropDownFieldItemViewProps extends
|
|
19
|
+
export interface IDropDownFieldItemViewProps extends IAccordionItemViewProps, Pick<IDropDownFieldProps, 'itemsContent'> {
|
|
20
20
|
item: IDropDownFieldItem;
|
|
21
21
|
size: Size;
|
|
22
22
|
type: ItemSwitchType;
|
|
@@ -2,7 +2,7 @@ import ReactCropProps, { Crop } from 'react-image-crop';
|
|
|
2
2
|
import { IModalProps } from '../../modal/Modal/Modal';
|
|
3
3
|
import { IFileInput } from '../../../hooks/useFile';
|
|
4
4
|
import { IFieldWrapperInputProps } from '../Field/fieldWrapper';
|
|
5
|
-
export interface
|
|
5
|
+
export interface ICropConfig {
|
|
6
6
|
/**
|
|
7
7
|
* Изначальные параметры обрезки изображения
|
|
8
8
|
* @example {unit: 'px', aspect: 1, x: 0, y: 0, width: 200, height: 200}
|
|
@@ -41,7 +41,7 @@ export interface IImageFieldProps extends IFieldWrapperInputProps, Omit<IFileInp
|
|
|
41
41
|
/**
|
|
42
42
|
* Параметры обрезки
|
|
43
43
|
*/
|
|
44
|
-
crop?:
|
|
44
|
+
crop?: ICropConfig;
|
|
45
45
|
/**
|
|
46
46
|
* Название кнопки
|
|
47
47
|
* @example 'Загрузить'
|
|
@@ -49,7 +49,7 @@ export interface IImageFieldProps extends IFieldWrapperInputProps, Omit<IFileInp
|
|
|
49
49
|
label?: string;
|
|
50
50
|
[key: string]: any;
|
|
51
51
|
}
|
|
52
|
-
export interface ICropOutputProps extends
|
|
52
|
+
export interface ICropOutputProps extends ICropConfig {
|
|
53
53
|
onSubmit: (crop: Crop, imageId: any) => void;
|
|
54
54
|
}
|
|
55
55
|
export interface IImageFieldModalViewProps extends IModalProps {
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* @example 'top'
|
|
5
5
|
*/
|
|
6
6
|
type TooltipPosition = 'top' | 'topLeft' | 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom' | string;
|
|
7
|
-
export interface
|
|
7
|
+
export interface ITooltipArrowPosition {
|
|
8
8
|
left?: number | string;
|
|
9
9
|
right?: number | string;
|
|
10
10
|
top?: number | string;
|
|
11
11
|
bottom?: number | string;
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
13
|
+
export interface ITooltipStylePosition {
|
|
14
14
|
left: 'unset' | number;
|
|
15
15
|
right: 'unset' | number;
|
|
16
16
|
top: 'unset' | number;
|
|
@@ -47,12 +47,12 @@ export interface ITooltipProps {
|
|
|
47
47
|
/**
|
|
48
48
|
* Стили для абсолютного позиционирования подсказки
|
|
49
49
|
*/
|
|
50
|
-
style?:
|
|
50
|
+
style?: ITooltipStylePosition;
|
|
51
51
|
/**
|
|
52
52
|
* Стили для позиционирования стрелки
|
|
53
53
|
* @example {left: 10}
|
|
54
54
|
*/
|
|
55
|
-
arrowPosition?:
|
|
55
|
+
arrowPosition?: ITooltipArrowPosition;
|
|
56
56
|
/**
|
|
57
57
|
* Рассчет позиции подсказки
|
|
58
58
|
*/
|
|
@@ -63,7 +63,7 @@ export interface ITooltipViewProps extends ITooltipProps {
|
|
|
63
63
|
isTooltipVisible: boolean;
|
|
64
64
|
content: string | any;
|
|
65
65
|
position: TooltipPosition;
|
|
66
|
-
style:
|
|
66
|
+
style: ITooltipStylePosition;
|
|
67
67
|
}
|
|
68
68
|
declare function Tooltip(props: ITooltipProps): JSX.Element;
|
|
69
69
|
declare namespace Tooltip {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ITooltipArrowPosition, ITooltipStylePosition } from '../Tooltip/Tooltip';
|
|
2
2
|
export default function calculate(gap: any, position: any, parentRef: any, tooltipSize: any, arrowSize: any): {
|
|
3
|
-
style:
|
|
3
|
+
style: ITooltipStylePosition;
|
|
4
4
|
position: any;
|
|
5
|
-
arrowPosition:
|
|
5
|
+
arrowPosition: ITooltipArrowPosition;
|
|
6
6
|
};
|