Object reference moved to entity

This commit is contained in:
barsdeveloper
2021-11-16 21:14:03 +01:00
parent 39e26bc0c2
commit 7ec75e1ce8
13 changed files with 346 additions and 269 deletions

View File

@@ -1,9 +1,9 @@
.ueb-draggable,
.ueb-node {
/* Indicate the element draggable */
cursor : move;
cursor: move;
/* It will be positioned absolutely */
position : absolute;
position: absolute;
/* Doesn't allow to select the content inside */
user-select: none;
}
}

View File

@@ -1,50 +1,49 @@
@font-face {
font-family: 'Roboto';
font-style : light;
src :
url('../font/roboto-light.woff2') format('woff2'),
url('../font/roboto-light.woff') format('woff');
font-family: "Roboto";
font-style: light;
src: url("../font/roboto-light.woff2") format("woff2"),
url("../font/roboto-light.woff") format("woff");
}
@font-face {
font-family: 'Roboto';
font-style : regular;
src :
url('../font/roboto-regular.woff2') format('woff2'),
url('../font/roboto-regular.woff') format('woff');
font-family: "Roboto";
font-style: regular;
src: url("../font/roboto-regular.woff2") format("woff2"),
url("../font/roboto-regular.woff") format("woff");
}
:root {
--ueb-fron-size : 13px;
--ueb-viewport-height : 30rem;
--ueb-viewport-width : 100%;
--ueb-grid-size : 16px;
--ueb-grid-line-width : 2px;
--ueb-grid-line-color : #353535;
--ueb-grid-set : 8;
--ueb-grid-set-line-color : #161616;
--ueb-fron-size: 13px;
--ueb-viewport-height: 30rem;
--ueb-viewport-width: 100%;
--ueb-grid-size: 16px;
--ueb-grid-line-width: 2px;
--ueb-grid-line-color: #353535;
--ueb-grid-set: 8;
--ueb-grid-set-line-color: #161616;
--ueb-grid-axis-line-color: black;
--ueb-grid-snap : 16px;
--ueb-node-radius : 7px;
--ueb-grid-snap: 16px;
--ueb-node-radius: 7px;
}
u-blueprint {
display : block;
position : relative;
font-family: Roboto, Noto, Oxygen, Ubuntu, 'Open Sans', 'Helvetica Neue', sans-serif;
font-size : var(--ueb-fron-size);
display: block;
position: relative;
font-family: Roboto, Noto, Oxygen, Ubuntu, "Open Sans", "Helvetica Neue",
sans-serif;
font-size: var(--ueb-fron-size);
user-select: none;
}
.ueb-viewport-header {
display : flex;
position : absolute;
top : 0;
right : 0;
left : 0;
height : 1.5em;
display: flex;
position: absolute;
top: 0;
right: 0;
left: 0;
height: 1.5em;
background: rgba(0, 0, 0, 0.5);
z-index : 1;
z-index: 1;
}
.ueb-viewport-zoom {
@@ -52,10 +51,10 @@ u-blueprint {
}
.ueb-viewport-body {
position : relative;
height : var(--ueb-viewport-height);
width : var(--ueb-viewport-width);
overflow : hidden;
position: relative;
height: var(--ueb-viewport-height);
width: var(--ueb-viewport-width);
overflow: hidden;
scrollbar-width: 0;
}
@@ -64,147 +63,166 @@ u-blueprint[data-focused="true"] .ueb-viewport-body {
}
.ueb-grid {
--ueb-grid-line-actual-width: calc(var(--ueb-grid-line-width) / var(--ueb-scale));
position : absolute;
min-width : 100%;
min-height : 100%;
width : calc((100% + var(--ueb-additional-x) * 1px) / var(--ueb-scale));
height : calc((100% + var(--ueb-additional-y) * 1px) / var(--ueb-scale));
background-color : #262626;
background-image :
/* Axis lines */
linear-gradient(var(--ueb-grid-axis-line-color), var(--ueb-grid-axis-line-color)),
linear-gradient(var(--ueb-grid-axis-line-color), var(--ueb-grid-axis-line-color)),
--ueb-grid-line-actual-width: calc(
var(--ueb-grid-line-width) / var(--ueb-scale)
);
position: absolute;
min-width: 100%;
min-height: 100%;
width: calc((100% + var(--ueb-additional-x) * 1px) / var(--ueb-scale));
height: calc((100% + var(--ueb-additional-y) * 1px) / var(--ueb-scale));
background-color: #262626;
background-image:
/* Axis lines */ linear-gradient(
var(--ueb-grid-axis-line-color),
var(--ueb-grid-axis-line-color)
),
linear-gradient(
var(--ueb-grid-axis-line-color),
var(--ueb-grid-axis-line-color)
),
/* Dark bigger grid */
linear-gradient(to right,
linear-gradient(
to right,
var(--ueb-grid-set-line-color),
var(--ueb-grid-set-line-color) var(--ueb-grid-line-actual-width),
transparent var(--ueb-grid-line-actual-width),
transparent
),
linear-gradient(
to bottom,
var(--ueb-grid-set-line-color),
var(--ueb-grid-set-line-color) var(--ueb-grid-line-actual-width),
transparent var(--ueb-grid-line-actual-width),
transparent),
linear-gradient(to bottom,
var(--ueb-grid-set-line-color),
var(--ueb-grid-set-line-color) var(--ueb-grid-line-actual-width),
transparent var(--ueb-grid-line-actual-width),
transparent),
transparent
),
/* Light grid */
linear-gradient(to right,
linear-gradient(
to right,
var(--ueb-grid-line-color),
var(--ueb-grid-line-color) var(--ueb-grid-line-actual-width),
transparent var(--ueb-grid-line-actual-width),
transparent
),
linear-gradient(
to bottom,
var(--ueb-grid-line-color),
var(--ueb-grid-line-color) var(--ueb-grid-line-actual-width),
transparent var(--ueb-grid-line-actual-width),
transparent),
linear-gradient(to bottom,
var(--ueb-grid-line-color),
var(--ueb-grid-line-color)var(--ueb-grid-line-actual-width),
transparent var(--ueb-grid-line-actual-width),
transparent);
transparent
);
background-size:
/* Axis lines */
100% var(--ueb-grid-line-actual-width),
/* Axis lines */ 100%
var(--ueb-grid-line-actual-width),
var(--ueb-grid-line-actual-width) 100%,
/* Dark bigger grid */
calc(var(--ueb-grid-set) * var(--ueb-grid-actual-size)) calc(var(--ueb-grid-set) * var(--ueb-grid-actual-size)),
calc(var(--ueb-grid-set) * var(--ueb-grid-actual-size)) calc(var(--ueb-grid-set) * var(--ueb-grid-actual-size)),
/* Light grid */
var(--ueb-grid-actual-size) var(--ueb-grid-actual-size),
calc(var(--ueb-grid-set) * var(--ueb-grid-actual-size))
calc(var(--ueb-grid-set) * var(--ueb-grid-actual-size)),
calc(var(--ueb-grid-set) * var(--ueb-grid-actual-size))
calc(var(--ueb-grid-set) * var(--ueb-grid-actual-size)),
/* Light grid */ var(--ueb-grid-actual-size) var(--ueb-grid-actual-size),
var(--ueb-grid-actual-size) var(--ueb-grid-actual-size);
background-position: calc(var(--ueb-translate-x) * 1px) calc(var(--ueb-translate-y) * 1px);
background-repeat : repeat-x, repeat-y, repeat, repeat, repeat, repeat;
transform : scale(var(--ueb-scale), var(--ueb-scale));
transform-origin : 0 0;
overflow : hidden;
background-position: calc(var(--ueb-translate-x) * 1px)
calc(var(--ueb-translate-y) * 1px);
background-repeat: repeat-x, repeat-y, repeat, repeat, repeat, repeat;
transform: scale(var(--ueb-scale), var(--ueb-scale));
transform-origin: 0 0;
overflow: hidden;
}
.ueb-zoom--.ueb,
.ueb {
/* 16/16 */
--ueb-scale : 1;
--ueb-scale: 1;
--ueb-grid-actual-size: var(--ueb-grid-size);
}
.ueb-zoom--1.ueb {
/* 14/16 */
--ueb-scale: 0.875
--ueb-scale: 0.875;
}
.ueb-zoom--2.ueb {
/* 12/16 */
--ueb-scale: 0.75
--ueb-scale: 0.75;
}
.ueb-zoom--3.ueb {
/* 10.8/16 */
--ueb-scale: 0.675
--ueb-scale: 0.675;
}
.ueb-zoom--4.ueb {
/* 8/16 */
--ueb-scale : 0.5;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 2)
--ueb-scale: 0.5;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 2);
}
.ueb-zoom--5.ueb {
/* 6/16 */
--ueb-scale : 0.375;
--ueb-scale: 0.375;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 2);
}
.ueb-zoom--6.ueb {
--ueb-scale : 0.333333;
--ueb-scale: 0.333333;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3);
}
.ueb-zoom--7.ueb {
--ueb-scale : 0.3;
--ueb-scale: 0.3;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3);
}
.ueb-zoom--8.ueb {
--ueb-scale : 0.266666;
--ueb-scale: 0.266666;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3);
}
.ueb-zoom--9.ueb {
--ueb-scale : 0.233333;
--ueb-scale: 0.233333;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3);
}
.ueb-zoom--10.ueb {
/* 12/16 */
--ueb-scale : 0.2;
--ueb-scale: 0.2;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3);
}
.ueb-zoom--11.ueb {
/* 12/16 */
--ueb-scale : 0.166666;
--ueb-scale: 0.166666;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 6);
}
.ueb-zoom--12.ueb {
/* 12/16 */
--ueb-scale : 0.133333;
--ueb-scale: 0.133333;
--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 6);
}
.ueb-grid-content {
position : relative;
width : 0;
height : 0;
transform: translateX(calc(var(--ueb-translate-x) * 1px)) translateY(calc(var(--ueb-translate-y) * 1px))
position: relative;
width: 0;
height: 0;
transform: translateX(calc(var(--ueb-translate-x) * 1px))
translateY(calc(var(--ueb-translate-y) * 1px));
}
.ueb-node {
display : block;
position : absolute;
transform : translateX(calc(var(--ueb-position-x) * 1px)) translateY(calc(var(--ueb-position-y) * 1px));
display: block;
position: absolute;
transform: translateX(calc(var(--ueb-position-x) * 1px))
translateY(calc(var(--ueb-position-y) * 1px));
border-radius: var(--ueb-node-radius);
box-shadow : 0 0 1px 0 black, 1px 4px 6px 0 rgba(0, 0, 0, 0.3);
will-change : transform;
box-shadow: 0 0 1px 0 black, 1px 4px 6px 0 rgba(0, 0, 0, 0.3);
will-change: transform;
}
.ueb-node-border {
margin : -3px;
padding : 3px;
margin: -3px;
padding: 3px;
border-radius: calc(var(--ueb-node-radius) * 1.4);
}
@@ -212,45 +230,53 @@ u-blueprint[data-focused="true"] .ueb-viewport-body {
z-index: 1;
}
.ueb-selected>.ueb-node-border {
background-image:
linear-gradient(to right, #f1b000 0%, #f1b000 100%),
.ueb-selected > .ueb-node-border {
background-image: linear-gradient(to right, #f1b000 0%, #f1b000 100%),
linear-gradient(to bottom, #f1b000 0%, #cc6700 100%),
linear-gradient(to right, #cc6700 0%, #cc6700 100%),
linear-gradient(to bottom, #f1b000 0%, #cc6700 100%);
background-size : 100% 7px, 7px 100%, 100% 7px, 7px 100%;
background-size: 100% 7px, 7px 100%, 100% 7px, 7px 100%;
background-position: top, right, bottom, left;
background-repeat : repeat-x, repeat-y, repeat-x, repeat-y;
background-repeat: repeat-x, repeat-y, repeat-x, repeat-y;
}
.ueb-node-content {
padding : 1px;
box-shadow : inset 0 0 2px 0 black;
padding: 1px;
box-shadow: inset 0 0 2px 0 black;
border-radius: var(--ueb-node-radius);
background : rgba(0, 0, 0, 0.7);
overflow : hidden;
background: rgba(0, 0, 0, 0.7);
overflow: hidden;
}
.ueb-node-header {
padding : 0.2em 0.7em;
box-shadow : inset 0 1px 2px 0 #313631, inset 0 2px 0 0 #92c381;
padding: 0.2em 0.7em;
box-shadow: inset 0 1px 2px 0 #313631, inset 0 2px 0 0 #92c381;
border-radius: var(--ueb-node-radius) var(--ueb-node-radius) 0 0;
background : linear-gradient(170deg, #5f815a 0%, #5f815a 50%, transparent 100%);
color : #c0c0c0;
font-weight : 600;
white-space : nowrap;
background: linear-gradient(
170deg,
#5f815a 0%,
#5f815a 50%,
transparent 100%
);
color: #c0c0c0;
font-weight: 600;
white-space: nowrap;
}
.ueb-node-name {
background: radial-gradient(closest-side, rgba(0, 0, 0, 0.5) 0%, transparent 90%);
margin : -0.1em -1.6em;
padding : 0.1em 1.6em;
background: radial-gradient(
closest-side,
rgba(0, 0, 0, 0.5) 0%,
transparent 90%
);
margin: -0.1em -1.6em;
padding: 0.1em 1.6em;
}
.ueb-node-body {
display : flex;
padding : 0.6em 0.8em;
color : white;
display: flex;
padding: 6px 0;
color: white;
font-weight: 100;
white-space: nowrap;
}
@@ -259,24 +285,30 @@ u-blueprint[data-focused="true"] .ueb-viewport-body {
margin-right: auto;
}
.ueb-node-input,
.ueb-node-output {
padding: 4px 8px;
cursor: pointer;
}
.ueb-node-value-icon {
display : inline-block;
position : relative;
width : 0.85em;
height : 0.85em;
display: inline-block;
position: relative;
width: 0.85em;
height: 0.85em;
vertical-align: baseline;
margin : 0 0.4em -1px 0.3em;
margin: 0 0.4em -1px 0.3em;
}
.ueb-node-value-icon::before {
content : "";
display : block;
position : absolute;
top : 0;
right : 0;
bottom : 0;
left : 0;
border : 2px solid var(--ueb-node-value-color);
content: "";
display: block;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
border: 2px solid var(--ueb-node-value-color);
border-radius: 50%;
}
@@ -285,116 +317,129 @@ u-blueprint[data-focused="true"] .ueb-viewport-body {
}
.ueb-node-value-icon::after {
content : "";
display : block;
position : absolute;
top : calc(50% - 0.3em);
left : calc(100% + 1px);
width : 0;
height : 0;
border-top : 0.3em solid transparent;
content: "";
display: block;
position: absolute;
top: calc(50% - 0.3em);
left: calc(100% + 1px);
width: 0;
height: 0;
border-top: 0.3em solid transparent;
border-bottom: 0.3em solid transparent;
border-left : 0.3em solid var(--ueb-node-value-color);
border-left: 0.3em solid var(--ueb-node-value-color);
}
.ueb-selector {
display : block;
position : absolute;
display: block;
position: absolute;
visibility: hidden;
top : 0;
left : 0;
width : 0;
height : 0;
top: 0;
left: 0;
width: 0;
height: 0;
background-image:
/* Top */
repeating-linear-gradient(90deg,
/* Top */ repeating-linear-gradient(
90deg,
transparent,
transparent calc(1px / var(--ueb-scale)),
white calc(2px / var(--ueb-scale)),
white calc(7px / var(--ueb-scale)),
transparent calc(7px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))),
repeating-linear-gradient(90deg,
transparent calc(11px / var(--ueb-scale))
),
repeating-linear-gradient(
90deg,
black,
black calc(8px / var(--ueb-scale)),
transparent calc(9px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))),
transparent calc(11px / var(--ueb-scale))
),
/* Bottom */
repeating-linear-gradient(90deg,
transparent,
transparent calc(1px / var(--ueb-scale)),
white calc(2px / var(--ueb-scale)),
white calc(7px / var(--ueb-scale)),
transparent calc(7px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))),
repeating-linear-gradient(90deg,
repeating-linear-gradient(
90deg,
transparent,
transparent calc(1px / var(--ueb-scale)),
white calc(2px / var(--ueb-scale)),
white calc(7px / var(--ueb-scale)),
transparent calc(7px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))
),
repeating-linear-gradient(
90deg,
black,
black calc(8px / var(--ueb-scale)),
transparent calc(9px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))),
transparent calc(11px / var(--ueb-scale))
),
/* Left */
repeating-linear-gradient(180deg,
transparent,
transparent calc(1px / var(--ueb-scale)),
white calc(1px / var(--ueb-scale)),
white calc(7px / var(--ueb-scale)),
transparent calc(7px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))),
repeating-linear-gradient(180deg,
repeating-linear-gradient(
180deg,
transparent,
transparent calc(1px / var(--ueb-scale)),
white calc(1px / var(--ueb-scale)),
white calc(7px / var(--ueb-scale)),
transparent calc(7px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))
),
repeating-linear-gradient(
180deg,
black,
black calc(8px / var(--ueb-scale)),
transparent calc(9px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))),
transparent calc(11px / var(--ueb-scale))
),
/* Right */
repeating-linear-gradient(0deg,
transparent,
transparent calc(1px / var(--ueb-scale)),
white calc(2px / var(--ueb-scale)),
white calc(7px / var(--ueb-scale)),
transparent calc(7px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))),
repeating-linear-gradient(0deg,
repeating-linear-gradient(
0deg,
transparent,
transparent calc(1px / var(--ueb-scale)),
white calc(2px / var(--ueb-scale)),
white calc(7px / var(--ueb-scale)),
transparent calc(7px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale))
),
repeating-linear-gradient(
0deg,
black,
black calc(8px / var(--ueb-scale)),
transparent calc(9px / var(--ueb-scale)),
transparent calc(11px / var(--ueb-scale)));
transparent calc(11px / var(--ueb-scale))
);
background-size:
/* Top */
100% calc(1px / var(--ueb-scale)),
/* Top */ 100% calc(1px / var(--ueb-scale)),
100% calc(3px / var(--ueb-scale)),
/* Bottom */
100% calc(1px / var(--ueb-scale)),
/* Bottom */ 100% calc(1px / var(--ueb-scale)),
100% calc(3px / var(--ueb-scale)),
/* Left */
calc(1px / var(--ueb-scale)) 100%,
/* Left */ calc(1px / var(--ueb-scale)) 100%,
calc(3px / var(--ueb-scale)) 100%,
/* Right */
calc(1px / var(--ueb-scale)) 100%,
/* Right */ calc(1px / var(--ueb-scale)) 100%,
calc(3px / var(--ueb-scale)) 100%;
background-position:
/* Top */
0 calc(1px / var(--ueb-scale)),
0 0,
/* Bottom */
0 calc(100% - 1px / var(--ueb-scale)),
0 100%,
/* Left */
calc(1px / var(--ueb-scale)) 0,
0 0,
/* Right */
calc(100% - 1px / var(--ueb-scale)) 0,
100% 0;
/* Top */ 0 calc(1px / var(--ueb-scale)), 0 0,
/* Bottom */ 0 calc(100% - 1px / var(--ueb-scale)), 0 100%,
/* Left */ calc(1px / var(--ueb-scale)) 0, 0 0,
/* Right */ calc(100% - 1px / var(--ueb-scale)) 0, 100% 0;
background-repeat: no-repeat;
}
.ueb-selector>* {
.ueb-selector > * {
visibility: visible;
}
.ueb-selector[data-selecting="true"] {
visibility: visible;
top : min(var(--ueb-select-from-y) * 1px, var(--ueb-select-to-y) * 1px);
left : min(var(--ueb-select-from-x) * 1px, var(--ueb-select-to-x) * 1px);
width : calc(max(var(--ueb-select-from-x) - var(--ueb-select-to-x), var(--ueb-select-to-x) - var(--ueb-select-from-x)) * 1px);
height : calc(max(var(--ueb-select-from-y) - var(--ueb-select-to-y), var(--ueb-select-to-y) - var(--ueb-select-from-y)) * 1px);
}
top: min(var(--ueb-select-from-y) * 1px, var(--ueb-select-to-y) * 1px);
left: min(var(--ueb-select-from-x) * 1px, var(--ueb-select-to-x) * 1px);
width: calc(
max(
var(--ueb-select-from-x) - var(--ueb-select-to-x),
var(--ueb-select-to-x) - var(--ueb-select-from-x)
) * 1px
);
height: calc(
max(
var(--ueb-select-from-y) - var(--ueb-select-to-y),
var(--ueb-select-to-y) - var(--ueb-select-from-y)
) * 1px
);
}