diff --git a/src/components/layouts/NodeBook.vue b/src/components/layouts/NodeBook.vue index 1152ed5..347a901 100644 --- a/src/components/layouts/NodeBook.vue +++ b/src/components/layouts/NodeBook.vue @@ -3,14 +3,14 @@ class="node-book" >
-1) { + const childId = childIndex !== undefined ? ids.childId : this.nodes[parentIndex].children[lastChildIndex].id + console.log(childId) + this.$refs['child-' + childId][0].onScroll({}, true) + } this.$emit('select-node', ids) } }, @@ -110,9 +121,7 @@ export default { .node-book { min-height: 100%; - @include media-breakpoint-down($layout-bp-down) { - background-color: $white; - } + background-color: rgba($white, .5); @include media-breakpoint-up($layout-bp) { height: 100%; @@ -135,98 +144,79 @@ export default { top: calc(var(--h) * var(--nth)); height: calc(100% - (var(--h) * var(--nth))); + ::v-deep > .node-view { + border-top: $line; + } + &-parent > .node-view { border-right: $line; } - &-parent > .node-view { - border-top: $line; - } - - &:not(.node-book-stack-item-parent):first-child { - border-top: $line; - } - - - // BLURS - &-parent:not(.active) { - &::before, - &::after { - content: ''; - pointer-events: none; - position: absolute; - z-index: 1; - display: block; - top: $border-width; - height: calc(var(--h) - #{$border-width}); - background-color: rgba($white, .5); - } - &::before { - width: calc(50% - #{$border-width}); - left: 0; - } - &::after { - width: 50%; - left: 50%; - } - } - - &-parent.active { - background-color: rgba($white, .5); - } - &:not(.active) { - .node-view { + ::v-deep > .node-view { cursor: pointer; - } + overflow-y: hidden; - ::v-deep { - .node-view { - // overflow-y: hidden; + &:not(:hover) { + .node-view-header-wrapper { + opacity: .5; + } + } + .node-view-body-wrapper, + .node-view-footer-wrapper { + opacity: .5; + pointer-events: none; + } - &-header { - z-index: 0; + .node-view-header { + z-index: 0; + padding-top: $node-view-spacer-y * .75; + padding-bottom: $node-view-spacer-y * .75; + } + + .node-view-header-ref { + h4 { + font-size: 1.2rem; + } + + .edition { + font-size: 0.8rem; + display: none; + } + + .btn-url { + width: 20px; + height: 20px; } } .node-view-child-list { display: none; } + + @each $color, $value in $theme-colors { + &-#{$color} { + background-color: lighten($value, 15%); + + .node-view-header, + .node-view-footer { + background-color: lighten($value, 15%); + } + } + } + + &:hover { + .node-view-header { + z-index: 100; + border-bottom: $line !important; + padding-bottom: calc(#{$node-view-spacer-y * .75} - 2px); + + h4 { + margin-bottom: 0; + } + } + } } - // ::v-deep .node-view:not(:hover) { - // .node-view-header { - // padding-top: $node-view-spacer-sm-y; - // padding-bottom: $node-view-spacer-sm-y; - // } - // - // h4 { - // font-size: 2rem; - // > * { - // display: inline !important; - // } - // .edition { - // display: none !important; - // } - // display: block; - // display: -webkit-box; - // -webkit-line-clamp: 1; - // -webkit-box-orient: vertical; - // text-overflow: ellipsis; - // overflow: hidden; - // max-height: 1.5em; - // } - // - // .node-view-header-prod h4 { - // font-size: 1rem; - // } - // } - // - // &:hover { - // ::v-deep .node-view:hover .node-view-header { - // z-index: calc(var(--count) + 10); - // border-bottom: $line; - // } - // } } &.splitted { diff --git a/src/components/nodes/NodeView.vue b/src/components/nodes/NodeView.vue index f2ddf18..ca8001c 100644 --- a/src/components/nodes/NodeView.vue +++ b/src/components/nodes/NodeView.vue @@ -2,16 +2,18 @@
- + { + this.h = h - this.$refs.header.$el.getBoundingClientRect().height + }) } - } + + if (fix) { + setTimeout(() => { + if (this.scrollValue > 0 && target.scrollTop === 0) { + target.scrollTop = this.scrollValue + } + }, 50) + } + }, }, mounted () { @@ -180,7 +194,11 @@ export default { padding: $node-view-spacer-sm-y $node-view-spacer-sm-x 0; @include media-breakpoint-up($size-bp) { - padding: $node-view-spacer-y $node-view-spacer-x 0; + padding: $node-view-spacer-y $node-view-spacer-x $node-view-spacer-y * .75; + + h4 { + margin-bottom: 0; + } } @include media-breakpoint-up($layout-bp) { @@ -189,21 +207,32 @@ export default { z-index: 1; &-ref.scrolling { - h4 { font-size: 1.2rem; } + .edition { font-size: 0.8rem; } + + .btn-url { + width: 20px; + height: 20px; + } } } } &-view &-body { @include media-breakpoint-up($layout-bp) { - &-ref.scrolling { - padding-top: 4rem; + max-height: 100%; + + &.scrolling { + clip-path: inset(var(--scroll-top) 0px 0px 0px); + + &.node-view-body-ref { + padding-top: var(--h-height); + } } } } diff --git a/src/components/nodes/NodeViewHeaderProd.vue b/src/components/nodes/NodeViewHeaderProd.vue index 38bbad7..aa45656 100644 --- a/src/components/nodes/NodeViewHeaderProd.vue +++ b/src/components/nodes/NodeViewHeaderProd.vue @@ -13,7 +13,7 @@
- +
@@ -47,12 +47,6 @@ export default { } }, - data () { - return { - offset: 0 - } - }, - methods: { trim, toCommaList, @@ -60,12 +54,6 @@ export default { onClose () { this.$parent.$emit('close-node', this.node.id) } - }, - - mounted () { - const parentContH = this.$el.parentElement.offsetWidth - const parentH = this.$el.parentElement.parentElement.offsetWidth - this.offset = (parentH - parentContH) * -1 } } @@ -115,8 +103,9 @@ export default { position: relative; display: flex; float: right; + @include media-breakpoint-up($layout-bp) { - right: var(--offset); + right: -13px; } } } diff --git a/src/components/nodes/NodeViewHeaderRef.vue b/src/components/nodes/NodeViewHeaderRef.vue index aa1d892..fa964d2 100644 --- a/src/components/nodes/NodeViewHeaderRef.vue +++ b/src/components/nodes/NodeViewHeaderRef.vue @@ -3,7 +3,7 @@ class="node-view-header-ref" :class="'node-view-header-' + mode" >
-