Browse Source

Replaced the position absolutes with flex instead

pull/5422/head
MAPS Marketing 3 years ago
parent
commit
3efc31f004
  1. 46
      src/navigator/view/ItemView.ts
  2. 69
      src/styles/scss/_gjs_layers.scss

46
src/navigator/view/ItemView.ts

@ -42,11 +42,12 @@ export default class ItemView extends View {
const { hidable } = config; const { hidable } = config;
const count = module.getComponents(model).length; const count = module.getComponents(model).length;
const addClass = !count ? this.clsNoChild : ''; const addClass = !count ? this.clsNoChild : '';
const clsItem = `${pfx}layer-item ${ppfx}one-bg`;
const clsTitle = `${this.clsTitle} ${addClass}`; const clsTitle = `${this.clsTitle} ${addClass}`;
const clsTitleC = `${this.clsTitleC} ${ppfx}one-bg`; const clsTitleC = `${this.clsTitleC}`;
const clsInput = `${this.inputNameCls} ${clsNoEdit} ${ppfx}no-app`; const clsInput = `${this.inputNameCls} ${clsNoEdit} ${ppfx}no-app`;
const level = opt.level + 1; const level = opt.level + 1;
const gut = `${30 + level * 10}px`; const gut = `${10 + level * 10}px`;
const name = model.getName(); const name = model.getName();
const icon = model.getIcon(); const icon = model.getIcon();
const clsBase = `${pfx}layer`; const clsBase = `${pfx}layer`;
@ -54,26 +55,33 @@ export default class ItemView extends View {
const { move, eye, eyeOff, chevron } = icons!; const { move, eye, eyeOff, chevron } = icons!;
return ` return `
${ <div class="${clsItem}">
hidable <div class="${pfx}layer-item-left">
? `<i class="${pfx}layer-vis" data-toggle-visible> ${
<i class="${pfx}layer-vis-on">${eye}</i> hidable
<i class="${pfx}layer-vis-off">${eyeOff}</i> ? `<i class="${pfx}layer-vis" data-toggle-visible>
</i>` <i class="${pfx}layer-vis-on">${eye}</i>
: '' <i class="${pfx}layer-vis-off">${eyeOff}</i>
} </i>`
<div class="${clsTitleC}"> : ''
<div class="${clsTitle}" style="padding-left: ${gut}" data-toggle-select> }
<div class="${pfx}layer-title-inn" title="${name}"> <div class="${clsTitleC}">
<i class="${this.clsCaret}" data-toggle-open>${chevron}</i> <div class="${clsTitle}" style="padding-left: ${gut}" data-toggle-select>
${icon ? `<span class="${clsBase}__icon">${icon}</span>` : ''} <div class="${pfx}layer-title-inn" title="${name}">
<span class="${clsInput}" data-name>${name}</span> <i class="${this.clsCaret}" data-toggle-open>${chevron}</i>
${icon ? `<span class="${clsBase}__icon">${icon}</span>` : ''}
<span class="${clsInput}" data-name>${name}</span>
</div>
</div>
</div> </div>
</div> </div>
<div class="${pfx}layer-item-right">
${count ? `<div class="${this.clsCount}" data-count>${count || ''}</div>` : ''}
<div class="${this.clsMove}" data-toggle-move>${move || ''}</div>
</div>
</div> </div>
<div class="${this.clsCount}" data-count>${count || ''}</div> <div class="${this.clsChildren}"></div>
<div class="${this.clsMove}" data-toggle-move>${move || ''}</div> `;
<div class="${this.clsChildren}"></div>`;
} }
public get em(): EditorModel { public get em(): EditorModel {

69
src/styles/scss/_gjs_layers.scss

@ -1,5 +1,4 @@
$layerIconSize: 15px !default; $layerIconSize: 15px !default;
$layerNameSpacing: 5px !default;
.#{$nv-prefix} { .#{$nv-prefix} {
&selected-parent { &selected-parent {
@ -18,26 +17,39 @@ $layerNameSpacing: 5px !default;
font-size: $fontSizeS; font-size: $fontSizeS;
display: grid; display: grid;
&-hidden { &-item {
@include opacity(0.55); display: flex;
align-items: center;
justify-content: space-between;
padding: 5px 10px;
&-left,
&-right {
display: flex;
align-items: center;
gap: 10px;
}
&-left {
width: 100%;
}
} }
&-count { &-hidden {
position: absolute; @include opacity(0.55);
right: 27px;
top: 9px;
} }
&-vis { &-vis {
left: 0;
top: 0;
padding: 7px 5px 7px 10px;
position: absolute;
box-sizing: content-box; box-sizing: content-box;
cursor: pointer; cursor: pointer;
width: 13px;
z-index: 1; z-index: 1;
&-on,
&-off {
display: flex;
width: 13px;
}
&-off { &-off {
display: none; display: none;
} }
@ -54,35 +66,36 @@ $layerNameSpacing: 5px !default;
&-caret { &-caret {
width: 15px; width: 15px;
padding: 2px;
cursor: pointer; cursor: pointer;
position: absolute;
box-sizing: content-box; box-sizing: content-box;
left: -15px;
top: 0;
transform: rotate(90deg); transform: rotate(90deg);
@include opacity(0.7); @include opacity(0.7);
&:hover { &:hover {
@include opacity(1); @include opacity(1);
} }
}
&.#{$nv-prefix}layer-open { &.open > &-item &-caret {
transform: rotate(180deg); transform: rotate(180deg);
}
} }
&-title { &-title {
@extend .#{$app-prefix}category-title; @extend .#{$app-prefix}category-title;
padding: 3px 10px 5px 30px; padding: 0;
display: flex; display: flex;
align-items: center; align-items: center;
background-color: transparent !important;
&-inn { &-inn {
align-items: center; align-items: center;
position: relative; position: relative;
display: flex; display: flex;
gap: 5px;
}
&-c {
width: 100%; width: 100%;
} }
} }
@ -100,13 +113,10 @@ $layerNameSpacing: 5px !default;
} }
&-name { &-name {
padding: $layerNameSpacing 0;
display: inline-block; display: inline-block;
box-sizing: content-box; box-sizing: content-box;
overflow: hidden;
white-space: nowrap;
margin: 0 30px 0 $layerNameSpacing;
max-width: 170px; max-width: 170px;
height: auto;
@extend .#{$app-prefix}no-user-select; @extend .#{$app-prefix}no-user-select;
&--no-edit { &--no-edit {
@ -127,26 +137,21 @@ $layerNameSpacing: 5px !default;
} }
&-move { &-move {
padding: 9px 7px;
position: absolute;
width: 13px; width: 13px;
box-sizing: content-box; box-sizing: content-box;
cursor: move; cursor: move;
right: 0;
top: 0;
} }
&.#{$nv-prefix}hovered .#{$nv-prefix}layer-title { &.#{$nv-prefix}hovered .#{$nv-prefix}layer-item {
background-color: rgba(255, 255, 255, 0.015); background-color: rgba(255, 255, 255, 0.15);
} }
&.#{$nv-prefix}selected .#{$nv-prefix}layer-title { &.#{$nv-prefix}selected .#{$nv-prefix}layer-item {
background-color: rgba(255, 255, 255, 0.1); background-color: rgba(255, 255, 255, 0.3);
} }
} }
} }
.#{$app-prefix}layers { .#{$app-prefix}layers {
position: relative; position: relative;
height: 100%; height: 100%;

Loading…
Cancel
Save