diff --git a/src/scss/widget/tree.scss b/src/scss/widget/tree.scss
index 632c472b3d..e3aa1fcf4e 100644
--- a/src/scss/widget/tree.scss
+++ b/src/scss/widget/tree.scss
@@ -22,7 +22,7 @@
.iconObject { flex-shrink: 0; flex-basis: 20px; margin-right: 6px; }
- .arrowWrap { width: 24px; height: 24px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; cursor: default; }
+ .arrowWrap { width: 24px; height: 24px; position: absolute; z-index: 2; left: -2px; top: -2px; opacity: 0; cursor: default; display: flex; align-items: center; justify-content: center; }
.arrowWrap:hover {
.icon.arrow { background-color: var(--color-shape-highlight-medium); }
}
@@ -34,7 +34,7 @@
.clickable {
flex-grow: 1; display: flex; flex-direction: row; width: calc(100% - 30px); align-items: center; justify-content: space-between;
- line-height: 20px;
+ line-height: 20px; position: relative;
}
.name { flex-grow: 1; @include text-overflow-nw; }
@@ -62,8 +62,17 @@
.item.isOpen {
.icon.arrow { transform: rotate(0deg); }
}
+
+ .item.withArrow {
+ .arrowWrap,
+ .iconObject { transition: opacity 0.15s ease-in; }
+ }
+ .item.withArrow:hover, .item.withArrow.isOpen {
+ .arrowWrap { opacity: 1; }
+ .iconObject { opacity: 0; }
+ }
}
.widget.widgetTree.isClosed {
.contentWrapper { height: 8px; }
-}
\ No newline at end of file
+}
diff --git a/src/ts/component/widget/index.tsx b/src/ts/component/widget/index.tsx
index b12370b969..4bf1682390 100644
--- a/src/ts/component/widget/index.tsx
+++ b/src/ts/component/widget/index.tsx
@@ -684,8 +684,8 @@ const WidgetIndex = observer(forwardRef<{}, Props>((props, ref) => {
break;
};
- case I.WidgetLayout.List:
case I.WidgetLayout.Compact:
+ case I.WidgetLayout.List:
case I.WidgetLayout.View: {
cn.push('widgetView');
content = ;
diff --git a/src/ts/component/widget/tree/item.tsx b/src/ts/component/widget/tree/item.tsx
index 04971bb032..59e76f4812 100644
--- a/src/ts/component/widget/tree/item.tsx
+++ b/src/ts/component/widget/tree/item.tsx
@@ -67,14 +67,10 @@ const TreeItem = observer(forwardRef<{}, Props>((props, ref) => {
let more = null;
let inner = null;
- if (U.Object.isSetLayout(layout) || (U.Object.isCollectionLayout(layout) && !numChildren)) {
- arrow = ;
- } else
if (numChildren > 0) {
+ cn.push('withArrow');
onArrowClick = onToggleHandler;
arrow = ;
- } else {
- arrow = ;
};
if (arrow) {
@@ -147,4 +143,4 @@ const TreeItem = observer(forwardRef<{}, Props>((props, ref) => {
}));
-export default TreeItem;
\ No newline at end of file
+export default TreeItem;
diff --git a/src/ts/component/widget/view/index.tsx b/src/ts/component/widget/view/index.tsx
index 7d9ceff256..24678da7fa 100644
--- a/src/ts/component/widget/view/index.tsx
+++ b/src/ts/component/widget/view/index.tsx
@@ -119,11 +119,8 @@ const WidgetView = observer(forwardRef((p
};
const getLimitHandler = (): number => {
- let limit = getLimit(parent.content);
- if ((layout == I.WidgetLayout.View) && (viewType == I.ViewType.Calendar)) {
- limit = 1000;
- };
- return limit;
+ const view = getView();
+ return (layout == I.WidgetLayout.View) && (view.type == I.ViewType.Calendar) ? 1000 : getLimit(parent.content);
};
const onChangeView = (viewId: string) => {
diff --git a/src/ts/lib/util/menu.ts b/src/ts/lib/util/menu.ts
index 83f041b04a..7e034bb770 100644
--- a/src/ts/lib/util/menu.ts
+++ b/src/ts/lib/util/menu.ts
@@ -417,6 +417,7 @@ class UtilMenu {
if (treeSkipLayouts.includes(layout)) {
options = options.filter(it => it != I.WidgetLayout.Tree);
};
+
if (!isSet) {
options = options.filter(it => ![ I.WidgetLayout.List, I.WidgetLayout.Compact ].includes(it));
} else {