@steroidsjs/core 3.0.0-beta.81 → 3.0.0-beta.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/docs-autogen-result.json +398 -43
  2. package/en.json +24 -2
  3. package/hooks/index.d.ts +2 -1
  4. package/hooks/index.js +3 -1
  5. package/hooks/useAbsolutePositioning.d.ts +56 -7
  6. package/hooks/useAbsolutePositioning.js +39 -131
  7. package/hooks/useApplication.js +2 -0
  8. package/hooks/useDataSelect.js +3 -0
  9. package/hooks/useList.d.ts +10 -4
  10. package/hooks/useList.js +59 -14
  11. package/hooks/useSaveCursorPosition.d.ts +6 -0
  12. package/hooks/useSaveCursorPosition.js +29 -0
  13. package/package.json +1 -1
  14. package/ui/content/Chart/Chart.d.ts +37 -0
  15. package/ui/content/Chart/Chart.js +19 -0
  16. package/ui/content/Chart/index.d.ts +2 -0
  17. package/ui/content/Chart/index.js +7 -0
  18. package/ui/content/DropDown/DropDown.d.ts +1 -1
  19. package/ui/content/DropDown/DropDown.js +1 -1
  20. package/ui/content/index.d.ts +2 -1
  21. package/ui/content/index.js +3 -1
  22. package/ui/form/CheckboxListField/CheckboxListField.d.ts +1 -1
  23. package/ui/form/CheckboxListField/CheckboxListField.js +1 -1
  24. package/ui/form/DateField/useDateRange.d.ts +2 -1
  25. package/ui/form/DateField/useDateRange.js +23 -0
  26. package/ui/form/DateRangeField/DateRangeField.js +3 -1
  27. package/ui/form/DateTimeRangeField/DateTimeRangeField.js +3 -1
  28. package/ui/form/Field/fieldWrapper.d.ts +6 -5
  29. package/ui/form/InputField/InputField.d.ts +1 -2
  30. package/ui/form/InputField/InputField.js +9 -4
  31. package/ui/form/NumberField/NumberField.d.ts +6 -2
  32. package/ui/form/NumberField/NumberField.js +32 -4
  33. package/ui/form/NumberField/hooks/useInputTypeNumber.d.ts +10 -0
  34. package/ui/form/NumberField/hooks/useInputTypeNumber.js +45 -0
  35. package/ui/form/PasswordField/PasswordField.js +3 -2
  36. package/ui/form/RadioListField/RadioListField.js +1 -1
  37. package/ui/form/TextField/TextField.js +4 -3
  38. package/ui/layout/Sidebar/Sidebar.d.ts +0 -5
  39. package/ui/layout/Sidebar/Sidebar.js +1 -4
  40. package/ui/layout/Tooltip/Tooltip.d.ts +3 -7
  41. package/ui/layout/Tooltip/Tooltip.js +17 -49
  42. package/ui/list/Grid/Grid.js +2 -1
  43. package/ui/list/TreeTable/TreeTable.d.ts +35 -0
  44. package/ui/list/TreeTable/TreeTable.js +69 -0
  45. package/ui/list/TreeTable/index.d.ts +2 -0
  46. package/ui/list/TreeTable/index.js +7 -0
  47. package/ui/nav/Tree/Tree.js +4 -4
  48. package/utils/calculateComponentAbsolutePosition.d.ts +6 -0
  49. package/{ui/layout/Tooltip/calculate.js → utils/calculateComponentAbsolutePosition.js} +64 -58
  50. package/utils/calendar.js +2 -0
  51. package/utils/list.d.ts +1 -0
  52. package/utils/list.js +5 -0
  53. package/ui/layout/Tooltip/calculate.d.ts +0 -6
@@ -69,7 +69,8 @@ function Grid(props) {
69
69
  items: props.items,
70
70
  initialItems: props.initialItems,
71
71
  initialTotal: props.initialTotal,
72
- autoFetchOnFormChanges: props.autoFetchOnFormChanges
72
+ autoFetchOnFormChanges: props.autoFetchOnFormChanges,
73
+ hasTreeItems: props.hasTreeItems
73
74
  }), list = _a.list, model = _a.model, searchModel = _a.searchModel, paginationPosition = _a.paginationPosition, paginationSizePosition = _a.paginationSizePosition, layoutNamesPosition = _a.layoutNamesPosition, renderList = _a.renderList, renderEmpty = _a.renderEmpty, renderPagination = _a.renderPagination, renderPaginationSize = _a.renderPaginationSize, renderLayoutNames = _a.renderLayoutNames, renderSearchForm = _a.renderSearchForm, onFetch = _a.onFetch, onSort = _a.onSort;
74
75
  var renderLabel = (0, react_1.useCallback)(function (column) {
75
76
  if (column.headerView) {
@@ -0,0 +1,35 @@
1
+ /// <reference types="react" />
2
+ import { IColumnViewProps, IGridColumn, IGridProps } from '../Grid/Grid';
3
+ export interface ITreeColumnViewProps extends IColumnViewProps {
4
+ item: {
5
+ onTreeItemClick?: (uniqueId: string, item: {
6
+ [key: string]: any;
7
+ }) => void;
8
+ [key: string]: any;
9
+ };
10
+ }
11
+ export interface ITreeTableItem {
12
+ /**
13
+ * Идентификатор узла
14
+ */
15
+ id?: string | number;
16
+ /**
17
+ * Вложенные элементы
18
+ * @example items: [{id: 3, name: 'Ivan'}]
19
+ */
20
+ items?: any[];
21
+ /**
22
+ * Уникальный идентификатор,
23
+ * используется для сохранения состояния открыта или закрыта ячейка
24
+ */
25
+ uniqueId?: string;
26
+ }
27
+ export interface ITreeTableProps extends Omit<IGridProps, 'items'> {
28
+ /**
29
+ * Элементы коллекции
30
+ * @example [{id: 1, name: 'Jane'}, {id: 2, name: 'John', items: [...]}]
31
+ */
32
+ items?: ITreeTableItem[];
33
+ }
34
+ export declare const addTreeColumnFieldsToFirstColumn: (columns: IGridColumn[]) => IGridColumn[];
35
+ export default function TreeTable(props: ITreeTableProps): JSX.Element;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ exports.__esModule = true;
49
+ exports.addTreeColumnFieldsToFirstColumn = void 0;
50
+ var React = __importStar(require("react"));
51
+ var react_1 = require("react");
52
+ var merge_1 = __importDefault(require("lodash-es/merge"));
53
+ var Grid_1 = __importDefault(require("../Grid"));
54
+ var TREE_COLUMN_VIEW_FIELDS = {
55
+ valueView: 'TreeColumnView',
56
+ headerClassName: 'TreeColumnHeader'
57
+ };
58
+ var addTreeColumnFieldsToFirstColumn = function (columns) {
59
+ var newColumns = __spreadArray([], columns, true);
60
+ // Add tree view to the first column
61
+ (0, merge_1["default"])(newColumns[0], TREE_COLUMN_VIEW_FIELDS);
62
+ return newColumns;
63
+ };
64
+ exports.addTreeColumnFieldsToFirstColumn = addTreeColumnFieldsToFirstColumn;
65
+ function TreeTable(props) {
66
+ var columns = (0, react_1.useMemo)(function () { return (0, exports.addTreeColumnFieldsToFirstColumn)(props.columns); }, [props.columns]);
67
+ return (React.createElement(Grid_1["default"], __assign({}, props, { columns: columns, items: props.items, itemsIndexing: false, hasTreeItems: true })));
68
+ }
69
+ exports["default"] = TreeTable;
@@ -0,0 +1,2 @@
1
+ import TreeTable from './TreeTable';
2
+ export default TreeTable;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ exports.__esModule = true;
6
+ var TreeTable_1 = __importDefault(require("./TreeTable"));
7
+ exports["default"] = TreeTable_1["default"];
@@ -43,9 +43,9 @@ var omit_1 = __importDefault(require("lodash-es/omit"));
43
43
  var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
44
44
  var keys_1 = __importDefault(require("lodash-es/keys"));
45
45
  var react_1 = require("react");
46
+ var list_1 = require("../../../utils/list");
46
47
  var hooks_1 = require("../../../hooks");
47
48
  var router_1 = require("../../../reducers/router");
48
- var resolveId = function (item, index, parentId) { return (parentId ? parentId + '.' : '') + String(item.id || index); };
49
49
  function Tree(props) {
50
50
  var components = (0, hooks_1.useComponents)();
51
51
  var STORAGE_KEY_PREFIX = 'tree_';
@@ -90,7 +90,7 @@ function Tree(props) {
90
90
  return null;
91
91
  }
92
92
  (sourceItems || []).forEach(function (item, index) {
93
- var uniqId = resolveId(item, index, parentId);
93
+ var uniqId = (0, list_1.getTreeItemUniqId)(item, index, parentId);
94
94
  if (!foundItem && (item.id === itemId || uniqId === itemId)) {
95
95
  foundItem = __assign(__assign({}, item), { uniqId: uniqId, level: level });
96
96
  }
@@ -105,7 +105,7 @@ function Tree(props) {
105
105
  if (level === void 0) { level = 1; }
106
106
  var opened = {};
107
107
  (sourceItems || []).forEach(function (item, index) {
108
- var uniqId = resolveId(item, index, parentId);
108
+ var uniqId = (0, list_1.getTreeItemUniqId)(item, index, parentId);
109
109
  if (props.autoOpenLevels >= level) {
110
110
  opened[uniqId] = true;
111
111
  }
@@ -159,7 +159,7 @@ function Tree(props) {
159
159
  return [];
160
160
  }
161
161
  (sourceItems || []).forEach(function (item, index) {
162
- var uniqId = resolveId(item, index, parentId);
162
+ var uniqId = (0, list_1.getTreeItemUniqId)(item, index, parentId);
163
163
  var isOpened = props.alwaysOpened || !!openedItems[uniqId];
164
164
  var hasItems = item[props.itemsKey] && item[props.itemsKey].length > 0;
165
165
  if (props.level && (level === props.level - 1)) {
@@ -0,0 +1,6 @@
1
+ import { IComponentArrowPosition, IComponentStylePosition } from '../hooks/useAbsolutePositioning';
2
+ export default function calculateComponentAbsolutePosition(gap: any, position: any, parentRef: any, componentSize: any, arrowSize?: any, hasAutoPositioning?: boolean): {
3
+ style: IComponentStylePosition;
4
+ position: any;
5
+ arrowPosition: IComponentArrowPosition;
6
+ };
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  exports.__esModule = true;
3
- function calculate(gap, position, parentRef, tooltipSize, arrowSize) {
3
+ var useAbsolutePositioning_1 = require("../hooks/useAbsolutePositioning");
4
+ function calculateComponentAbsolutePosition(gap, position, parentRef, componentSize, arrowSize, hasAutoPositioning) {
5
+ if (arrowSize === void 0) { arrowSize = null; }
6
+ if (hasAutoPositioning === void 0) { hasAutoPositioning = true; }
4
7
  if (process.env.IS_SSR) {
5
8
  return null;
6
9
  }
@@ -11,54 +14,57 @@ function calculate(gap, position, parentRef, tooltipSize, arrowSize) {
11
14
  parentDimensions.top += window.scrollY;
12
15
  // eslint-disable-next-line default-case
13
16
  switch (position) {
14
- case 'top':
15
- case 'topLeft':
16
- case 'topRight':
17
+ case useAbsolutePositioning_1.Position.TOP:
18
+ case useAbsolutePositioning_1.Position.TOP_LEFT:
19
+ case useAbsolutePositioning_1.Position.TOP_RIGHT:
17
20
  // Проверка - выходит ли tooltip за верхний край страницы?
18
21
  // Если да - меняем позицию на bottom
19
- if ((parentDimensions.top - window.scrollY) <= Math.round(tooltipSize.height + gap)) {
22
+ if (hasAutoPositioning
23
+ && ((parentDimensions.top - window.scrollY) <= Math.round(componentSize.height + gap))) {
20
24
  style.top = parentDimensions.top + parentDimensions.height;
21
- position = position.replace('top', 'bottom');
25
+ position = position.replace(useAbsolutePositioning_1.Position.TOP, useAbsolutePositioning_1.Position.BOTTOM);
22
26
  }
23
27
  else {
24
- style.top = parentDimensions.top - tooltipSize.height;
28
+ style.top = parentDimensions.top - componentSize.height;
25
29
  }
26
30
  break;
27
- case 'bottom':
28
- case 'bottomLeft':
29
- case 'bottomRight':
31
+ case useAbsolutePositioning_1.Position.BOTTOM:
32
+ case useAbsolutePositioning_1.Position.BOTTOM_LEFT:
33
+ case useAbsolutePositioning_1.Position.BOTTOM_RIGHT:
30
34
  /// Проверка - выходит ли tooltip за нижний край страницы?
31
35
  // Если да - меняем позицию на top
32
- if ((window.innerHeight - (parentDimensions.top + parentDimensions.height - window.scrollY))
33
- <= Math.round(tooltipSize.height + gap)) {
34
- style.top = parentDimensions.top - tooltipSize.height;
35
- position = position.replace('bottom', 'top');
36
+ if (hasAutoPositioning
37
+ && ((window.innerHeight - (parentDimensions.top + parentDimensions.height - window.scrollY))
38
+ <= Math.round(componentSize.height + gap))) {
39
+ style.top = parentDimensions.top - componentSize.height;
40
+ position = position.replace(useAbsolutePositioning_1.Position.BOTTOM, useAbsolutePositioning_1.Position.TOP);
36
41
  }
37
42
  else {
38
43
  style.top = parentDimensions.top + parentDimensions.height;
39
44
  }
40
45
  break;
41
- case 'left':
42
- case 'leftTop':
43
- case 'leftBottom':
46
+ case useAbsolutePositioning_1.Position.LEFT:
47
+ case useAbsolutePositioning_1.Position.LEFT_TOP:
48
+ case useAbsolutePositioning_1.Position.LEFT_BOTTOM:
44
49
  // Проверка - выходит ли tooltip за левый край страницы?
45
50
  // Если да - меняем позицию на right
46
- if (parentDimensions.left <= Math.round(tooltipSize.width + gap)) {
51
+ if (hasAutoPositioning && (parentDimensions.left <= Math.round(componentSize.width + gap))) {
47
52
  style.left = parentDimensions.right;
48
- position = position.replace('left', 'right');
53
+ position = position.replace(useAbsolutePositioning_1.Position.LEFT, useAbsolutePositioning_1.Position.RIGHT);
49
54
  }
50
55
  else {
51
- style.left = parentDimensions.left - tooltipSize.width;
56
+ style.left = parentDimensions.left - componentSize.width;
52
57
  }
53
58
  break;
54
- case 'right':
55
- case 'rightTop':
56
- case 'rightBottom':
59
+ case useAbsolutePositioning_1.Position.RIGHT:
60
+ case useAbsolutePositioning_1.Position.RIGHT_TOP:
61
+ case useAbsolutePositioning_1.Position.RIGHT_BOTTOM:
57
62
  // Проверка - выходит ли tooltip за правый край страницы?
58
63
  // Если да - меняем позицию на left
59
- if (document.body.clientWidth - parentDimensions.right <= Math.round(tooltipSize.width + gap)) {
60
- style.left = parentDimensions.left - tooltipSize.width;
61
- position = position.replace('right', 'left');
64
+ if (hasAutoPositioning
65
+ && (document.body.clientWidth - parentDimensions.right <= Math.round(componentSize.width + gap))) {
66
+ style.left = parentDimensions.left - componentSize.width;
67
+ position = position.replace(useAbsolutePositioning_1.Position.RIGHT, useAbsolutePositioning_1.Position.LEFT);
62
68
  }
63
69
  else {
64
70
  style.left = parentDimensions.right;
@@ -67,45 +73,45 @@ function calculate(gap, position, parentRef, tooltipSize, arrowSize) {
67
73
  }
68
74
  // eslint-disable-next-line default-case
69
75
  switch (position) {
70
- case 'top':
71
- case 'bottom':
76
+ case useAbsolutePositioning_1.Position.TOP:
77
+ case useAbsolutePositioning_1.Position.BOTTOM:
72
78
  // Выравнивание по середине
73
- style.left = (parentDimensions.left + (parentDimensions.width / 2)) - (tooltipSize.width / 2);
79
+ style.left = (parentDimensions.left + (parentDimensions.width / 2)) - (componentSize.width / 2);
74
80
  break;
75
- case 'topLeft':
76
- case 'bottomLeft':
81
+ case useAbsolutePositioning_1.Position.TOP_LEFT:
82
+ case useAbsolutePositioning_1.Position.BOTTOM_LEFT:
77
83
  // Ширина tooltip больше родителя - стрелка на середину родителя
78
84
  style.left = parentDimensions.left;
79
- if (parentDimensions.width < tooltipSize.width) {
85
+ if (arrowSize && (parentDimensions.width < componentSize.width)) {
80
86
  arrowPosition = { left: parentDimensions.width / 2 };
81
87
  }
82
88
  break;
83
- case 'topRight':
84
- case 'bottomRight':
89
+ case useAbsolutePositioning_1.Position.TOP_RIGHT:
90
+ case useAbsolutePositioning_1.Position.BOTTOM_RIGHT:
85
91
  // Ширина tooltip больше родителя - стрелка на середину родителя
86
- style.left = parentDimensions.right - tooltipSize.width;
87
- if (parentDimensions.width < tooltipSize.width) {
92
+ style.left = parentDimensions.right - componentSize.width;
93
+ if (arrowSize && (parentDimensions.width < componentSize.width)) {
88
94
  arrowPosition = {
89
95
  left: null,
90
96
  right: (parentDimensions.width / 2) - (arrowSize.width / 2)
91
97
  };
92
98
  }
93
99
  break;
94
- case 'left':
95
- case 'right':
96
- style.top = (parentDimensions.top + (parentDimensions.height / 2)) - (tooltipSize.height / 2);
100
+ case useAbsolutePositioning_1.Position.LEFT:
101
+ case useAbsolutePositioning_1.Position.RIGHT:
102
+ style.top = (parentDimensions.top + (parentDimensions.height / 2)) - (componentSize.height / 2);
97
103
  break;
98
- case 'leftTop':
99
- case 'rightTop':
104
+ case useAbsolutePositioning_1.Position.LEFT_TOP:
105
+ case useAbsolutePositioning_1.Position.RIGHT_TOP:
100
106
  style.top = parentDimensions.top;
101
- if (parentDimensions.height < (tooltipSize.height)) {
107
+ if (arrowSize && (parentDimensions.height < componentSize.height)) {
102
108
  arrowPosition = { top: parentDimensions.height / 2 };
103
109
  }
104
110
  break;
105
- case 'leftBottom':
106
- case 'rightBottom':
107
- style.top = parentDimensions.top + parentDimensions.height - tooltipSize.height;
108
- if (parentDimensions.height < tooltipSize.height) {
111
+ case useAbsolutePositioning_1.Position.LEFT_BOTTOM:
112
+ case useAbsolutePositioning_1.Position.RIGHT_BOTTOM:
113
+ style.top = parentDimensions.top + parentDimensions.height - componentSize.height;
114
+ if (arrowSize && (parentDimensions.height < componentSize.height)) {
109
115
  arrowPosition = {
110
116
  bottom: (parentDimensions.height / 2) - (arrowSize.height / 2)
111
117
  };
@@ -115,20 +121,20 @@ function calculate(gap, position, parentRef, tooltipSize, arrowSize) {
115
121
  // Проверка - при позиционировании top/bottom tooltip не выходит за пределы страницы по горизонтали
116
122
  if (position.includes('top') || position.includes('bottom')) {
117
123
  if (!position.includes('Left')
118
- && (style.left < 0 || parentDimensions.left <= Math.round((tooltipSize.width - parentDimensions.width) + gap))) {
124
+ && (style.left < 0 || parentDimensions.left <= Math.round((componentSize.width - parentDimensions.width) + gap))) {
119
125
  style.right = null;
120
126
  position = position.replace('Right', 'Left');
121
127
  // Если ширина tooltip больше ширины родителя - выставить стрелку на середину родителя
122
- if (parentDimensions.left < tooltipSize.width) {
128
+ if (parentDimensions.left < componentSize.width) {
123
129
  arrowPosition = { left: parentDimensions.width / 2 };
124
130
  }
125
131
  style.left = parentDimensions.left;
126
132
  }
127
- if (!position.includes('Right')
133
+ else if (!position.includes('Right')
128
134
  && (document.body.clientWidth - parentDimensions.right
129
- <= Math.round((tooltipSize.width - parentDimensions.width) + gap))) {
135
+ <= Math.round((componentSize.width - parentDimensions.width) + gap))) {
130
136
  position = position.replace('Left', 'Right');
131
- if (parentDimensions.width < tooltipSize.width) {
137
+ if (arrowSize && (parentDimensions.width < componentSize.width)) {
132
138
  arrowPosition = {
133
139
  left: null,
134
140
  right: (parentDimensions.width / 2) - (arrowSize.width / 2)
@@ -141,25 +147,25 @@ function calculate(gap, position, parentRef, tooltipSize, arrowSize) {
141
147
  // Проверка - при позиционировании left/right tooltip не выходит за пределы страницы по вертикали
142
148
  if (position.includes('left') || position.includes('right')) {
143
149
  if (!position.includes('Top')
144
- && parentDimensions.top - window.scrollY <= Math.round((tooltipSize.height - parentDimensions.height) + gap)) {
150
+ && parentDimensions.top - window.scrollY <= Math.round((componentSize.height - parentDimensions.height) + gap)) {
145
151
  position = position.replace('Bottom', 'Top');
146
- if (parentDimensions.height < tooltipSize.height) {
152
+ if (parentDimensions.height < componentSize.height) {
147
153
  arrowPosition = { top: parentDimensions.height / 2 };
148
154
  }
149
155
  style.top = parentDimensions.top;
150
156
  }
151
- if (!position.includes('Bottom')
157
+ else if (!position.includes('Bottom')
152
158
  && (window.innerHeight - (parentDimensions.top + parentDimensions.height - window.scrollY)
153
- <= Math.round((tooltipSize.height - parentDimensions.height) + gap))) {
159
+ <= Math.round((componentSize.height - parentDimensions.height) + gap))) {
154
160
  position = position.replace('Top', 'Bottom');
155
- if (parentDimensions.height < tooltipSize.height) {
161
+ if (arrowSize && (parentDimensions.height < componentSize.height)) {
156
162
  arrowPosition = {
157
163
  bottom: (parentDimensions.height / 2) - (arrowSize.height / 2)
158
164
  };
159
165
  }
160
- style.top = parentDimensions.top + parentDimensions.height - tooltipSize.height;
166
+ style.top = parentDimensions.top + parentDimensions.height - componentSize.height;
161
167
  }
162
168
  }
163
169
  return { style: style, position: position, arrowPosition: arrowPosition };
164
170
  }
165
- exports["default"] = calculate;
171
+ exports["default"] = calculateComponentAbsolutePosition;
package/utils/calendar.js CHANGED
@@ -8,7 +8,9 @@ exports.convertDate = void 0;
8
8
  /* eslint-disable import/prefer-default-export */
9
9
  var dayjs_1 = __importDefault(require("dayjs"));
10
10
  var utc_1 = __importDefault(require("dayjs/plugin/utc"));
11
+ var customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
11
12
  dayjs_1["default"].extend(utc_1["default"]);
13
+ dayjs_1["default"].extend(customParseFormat_1["default"]);
12
14
  var convertDate = function (date, fromFormats, toFormat, isUtc, dateInUtc) {
13
15
  if (toFormat === void 0) { toFormat = null; }
14
16
  if (isUtc === void 0) { isUtc = false; }
@@ -0,0 +1 @@
1
+ export declare const getTreeItemUniqId: (item: any, index: any, parentId: any) => string;
package/utils/list.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.getTreeItemUniqId = void 0;
4
+ var getTreeItemUniqId = function (item, index, parentId) { return (parentId || '0') + '.' + String(item.id || index); };
5
+ exports.getTreeItemUniqId = getTreeItemUniqId;
@@ -1,6 +0,0 @@
1
- import { ITooltipArrowPosition, ITooltipStylePosition } from '../Tooltip/Tooltip';
2
- export default function calculate(gap: any, position: any, parentRef: any, tooltipSize: any, arrowSize: any): {
3
- style: ITooltipStylePosition;
4
- position: any;
5
- arrowPosition: ITooltipArrowPosition;
6
- };