Browse Source

Merge branch 'mapsmarketing-layers' into dev

pull/5463/head
Artur Arseniev 2 years ago
parent
commit
e03dfc7483
  1. 2
      dist/css/grapes.min.css
  2. 51
      src/navigator/view/ItemView.ts
  3. 79
      src/styles/scss/_gjs_layers.scss
  4. 1
      src/styles/scss/_gjs_variables.scss
  5. 2
      src/styles/scss/main.scss

2
dist/css/grapes.min.css

File diff suppressed because one or more lines are too long

51
src/navigator/view/ItemView.ts

@ -43,10 +43,10 @@ export default class ItemView extends View {
const count = module.getComponents(model).length;
const addClass = !count ? this.clsNoChild : '';
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 level = opt.level + 1;
const gut = `${30 + level * 10}px`;
const level = opt.level || 0;
const gut = `${level * 10}px`;
const name = model.getName();
const icon = model.getIcon();
const clsBase = `${pfx}layer`;
@ -54,26 +54,33 @@ export default class ItemView extends View {
const { move, eye, eyeOff, chevron } = icons!;
return `
${
hidable
? `<i class="${pfx}layer-vis" data-toggle-visible>
<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}">
<i class="${this.clsCaret}" data-toggle-open>${chevron}</i>
${icon ? `<span class="${clsBase}__icon">${icon}</span>` : ''}
<span class="${clsInput}" data-name>${name}</span>
<div class="${pfx}layer-item ${ppfx}one-bg" data-toggle-select>
<div class="${pfx}layer-item-left">
${
hidable
? `<i class="${pfx}layer-vis" data-toggle-visible>
<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}">
<div class="${pfx}layer-title-inn" title="${name}">
<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 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 class="${this.clsCount}" data-count>${count || ''}</div>
<div class="${this.clsMove}" data-toggle-move>${move || ''}</div>
<div class="${this.clsChildren}"></div>`;
<div class="${this.clsChildren}"></div>
`;
}
public get em(): EditorModel {
@ -167,7 +174,7 @@ export default class ItemView extends View {
getVisibilityEl() {
if (!this.eyeEl) {
this.eyeEl = this.$el.children(`.${this.pfx}layer-vis`);
this.eyeEl = this.$el.children('[data-toggle-select]').find('[data-toggle-visible]');
}
return this.eyeEl;
@ -189,7 +196,7 @@ export default class ItemView extends View {
* @return void
* */
toggleVisibility(ev?: MouseEvent) {
ev?.stopPropagation();
ev?.stopImmediatePropagation();
const { module, model } = this;
module.setVisible(model, !module.isVisible(model));
}

79
src/styles/scss/_gjs_layers.scss

@ -1,5 +1,4 @@
$layerIconSize: 15px !default;
$layerNameSpacing: 5px !default;
.#{$nv-prefix} {
&selected-parent {
@ -14,30 +13,46 @@ $layerNameSpacing: 5px !default;
font-weight: lighter;
text-align: left;
position: relative;
background-color: rgba(0, 0, 0, 0.1);
font-size: var(--gjs-font-size);
display: grid;
&-hidden {
@include opacity(0.55);
&-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 5px 10px;
border-bottom: 1px solid var(--gjs-main-dark-color);
background-color: var(--gjs-secondary-dark-color);
gap: var(--gjs-flex-item-gap);
cursor: pointer;
&-left,
&-right {
display: flex;
align-items: center;
gap: var(--gjs-flex-item-gap);
}
&-left {
width: 100%;
}
}
&-count {
position: absolute;
right: 27px;
top: 9px;
&-hidden {
@include opacity(0.55);
}
&-vis {
left: 0;
top: 0;
padding: 7px 5px 7px 10px;
position: absolute;
box-sizing: content-box;
cursor: pointer;
width: 13px;
z-index: 1;
&-on,
&-off {
display: flex;
width: 13px;
}
&-off {
display: none;
}
@ -47,42 +62,45 @@ $layerNameSpacing: 5px !default;
display: none;
}
.#{$nv-prefix}layer-vis-off {
display: block;
display: flex;
}
}
}
&-caret {
width: 15px;
padding: 2px;
cursor: pointer;
position: absolute;
box-sizing: content-box;
left: -15px;
top: 0;
transform: rotate(90deg);
display: flex;
@include opacity(0.7);
&:hover {
@include opacity(1);
}
}
&.#{$nv-prefix}layer-open {
&.open > &-item &-caret {
transform: rotate(180deg);
}
}
&-title {
@extend .#{$app-prefix}category-title;
padding: 3px 10px 5px 30px;
padding: 0;
display: flex;
align-items: center;
background-color: transparent !important;
border-bottom: none;
&-inn {
align-items: center;
position: relative;
display: flex;
gap: var(--gjs-flex-item-gap);
}
&-c {
width: 100%;
}
}
@ -100,13 +118,12 @@ $layerNameSpacing: 5px !default;
}
&-name {
padding: $layerNameSpacing 0;
display: inline-block;
box-sizing: content-box;
overflow: hidden;
white-space: nowrap;
margin: 0 30px 0 $layerNameSpacing;
max-width: 170px;
height: auto;
@extend .#{$app-prefix}no-user-select;
&--no-edit {
@ -123,30 +140,26 @@ $layerNameSpacing: 5px !default;
}
&-no-chld > .#{$nv-prefix}layer-title-inn > .#{$nv-prefix}layer-caret {
display: none;
visibility: hidden;
}
&-move {
padding: 9px 7px;
position: absolute;
display: flex;
width: 13px;
box-sizing: content-box;
cursor: move;
right: 0;
top: 0;
}
&.#{$nv-prefix}hovered .#{$nv-prefix}layer-title {
background-color: rgba(255, 255, 255, 0.015);
&.#{$nv-prefix}hovered .#{$nv-prefix}layer-item {
background-color: var(--gjs-soft-light-color);
}
&.#{$nv-prefix}selected .#{$nv-prefix}layer-title {
background-color: rgba(255, 255, 255, 0.1);
&.#{$nv-prefix}selected .#{$nv-prefix}layer-item {
background-color: var(--gjs-main-light-color);
}
}
}
.#{$app-prefix}layers {
position: relative;
height: 100%;

1
src/styles/scss/_gjs_variables.scss

@ -33,6 +33,7 @@ $mainDkColor: rgba(0, 0, 0, 0.2) !default;/* darken($mainColor, 4%) - #383
$mainDklColor: rgba(0, 0, 0, 0.1) !default;
$mainLhColor: rgba(255, 255, 255, 0.1) !default; /* #515151 */
$mainLhlColor: rgba(255, 255, 255, 0.7) !default;
$softLhColor: rgba(255, 255, 255, 0.015) !default;
$colorBlue: #3b97e3 !default;
$colorRed: #dd3636 !default;
$colorYell: #ffca6f !default;

2
src/styles/scss/main.scss

@ -203,6 +203,7 @@ $colorsAll: (one, var(--gjs-primary-color)),
--gjs-secondary-dark-color: #{$mainDklColor};
--gjs-main-light-color: #{$mainLhColor};
--gjs-secondary-light-color: #{$mainLhlColor};
--gjs-soft-light-color: #{$softLhColor};
--gjs-color-blue: #{$colorBlue};
--gjs-color-red: #{$colorRed};
--gjs-color-yellow: #{$colorYell};
@ -223,6 +224,7 @@ $colorsAll: (one, var(--gjs-primary-color)),
--gjs-font-size: #{$fontSize};
--gjs-placeholder-background-color: #{$placeholderColor};
--gjs-canvas-top: #{$canvasTop};
--gjs-flex-item-gap: 5px;
}
.clear{ clear:both }

Loading…
Cancel
Save