From 303cc5b71e44d3ff586945650b2f7020833c4ff5 Mon Sep 17 00:00:00 2001 From: barsdeveloper Date: Mon, 27 Dec 2021 01:45:44 +0100 Subject: [PATCH] Moving fonts to dist, grabbing cursor on scrolling --- css/ueblueprint-node-value-type-color.css.map | 1 - css/ueblueprint-style.css | 1 - css/ueblueprint-style.css.map | 1 - .../ueblueprint-node-value-type-color.css | 0 .../ueblueprint-node-value-type-color.css.map | 1 + dist/css/ueblueprint-style.css | 1 + dist/css/ueblueprint-style.css.map | 1 + dist/font/roboto-bold.woff | Bin 0 -> 25304 bytes dist/font/roboto-bold.woff2 | Bin 0 -> 19140 bytes dist/font/roboto-light.woff | Bin 0 -> 27180 bytes dist/font/roboto-light.woff2 | Bin 0 -> 20628 bytes dist/font/roboto-regular.woff | Bin 0 -> 25040 bytes dist/font/roboto-regular.woff2 | Bin 0 -> 18996 bytes dist/ueblueprint.js | 129 ++++++++++++------ index.html | 4 +- js/Blueprint.js | 69 ++++++---- js/Configuration.js | 5 +- js/graph/GraphElement.js | 4 + js/input/DragMove.js | 5 +- js/input/DragScroll.js | 8 ++ js/input/Paste.js | 12 +- js/template/BlueprintTemplate.js | 25 +++- js/template/SelectorTemplate.js | 4 +- package.json | 3 +- rollup.config.js | 9 ++ scss/ueblueprint-style.css | 12 +- 26 files changed, 202 insertions(+), 93 deletions(-) delete mode 100644 css/ueblueprint-node-value-type-color.css.map delete mode 100644 css/ueblueprint-style.css delete mode 100644 css/ueblueprint-style.css.map rename {css => dist/css}/ueblueprint-node-value-type-color.css (100%) create mode 100644 dist/css/ueblueprint-node-value-type-color.css.map create mode 100644 dist/css/ueblueprint-style.css create mode 100644 dist/css/ueblueprint-style.css.map create mode 100644 dist/font/roboto-bold.woff create mode 100644 dist/font/roboto-bold.woff2 create mode 100644 dist/font/roboto-light.woff create mode 100644 dist/font/roboto-light.woff2 create mode 100644 dist/font/roboto-regular.woff create mode 100644 dist/font/roboto-regular.woff2 diff --git a/css/ueblueprint-node-value-type-color.css.map b/css/ueblueprint-node-value-type-color.css.map deleted file mode 100644 index 4f41a79..0000000 --- a/css/ueblueprint-node-value-type-color.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../scss/ueblueprint-node-value-type-color.scss"],"names":[],"mappings":"AAAA,KAEI,8BAGJ,wBAEI,gCAGJ,wBAEI,gCAGJ,sBAEI,gCAGJ,uBAEI,gCAGJ,wBAEI,gCAGJ,uBAEI,gCACA,0GAGJ,qBAEI,gCAGJ,gCAEI","file":"ueblueprint-node-value-type-color.css"} \ No newline at end of file diff --git a/css/ueblueprint-style.css b/css/ueblueprint-style.css deleted file mode 100644 index eec447d..0000000 --- a/css/ueblueprint-style.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{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")}: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-grid-axis-line-color: black;--ueb-grid-snap: 16px;--ueb-node-radius: 8px}ueb-blueprint{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;background:rgba(0, 0, 0, 0.5);z-index:1}.ueb-viewport-zoom{color:#4d4d4db7}.ueb-viewport-body{position:relative;height:var(--ueb-viewport-height);width:var(--ueb-viewport-width);overflow:hidden;scrollbar-width:0}ueb-blueprint[data-focused=true] .ueb-viewport-body{overflow:scroll}.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: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)),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 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);background-size:100% var(--ueb-grid-line-actual-width),var(--ueb-grid-line-actual-width) 100%,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)),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}.ueb-zoom--.ueb,.ueb{--ueb-scale: 1;--ueb-grid-actual-size: var(--ueb-grid-size)}.ueb-zoom--1.ueb{--ueb-scale: 0.875}.ueb-zoom--2.ueb{--ueb-scale: 0.75}.ueb-zoom--3.ueb{--ueb-scale: 0.675}.ueb-zoom--4.ueb{--ueb-scale: 0.5;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 2)}.ueb-zoom--5.ueb{--ueb-scale: 0.375;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 2)}.ueb-zoom--6.ueb{--ueb-scale: 0.333333;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--7.ueb{--ueb-scale: 0.3;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--8.ueb{--ueb-scale: 0.266666;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--9.ueb{--ueb-scale: 0.233333;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--10.ueb{--ueb-scale: 0.2;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--11.ueb{--ueb-scale: 0.166666;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 6)}.ueb-zoom--12.ueb{--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))}ueb-node{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}ueb-selector[data-selecting=false]~ueb-node{cursor:move}.ueb-node-border{margin:-3px;padding:3px;border-radius:calc(var(--ueb-node-radius)*1.4)}.ueb-selected{z-index:1}.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-position:top,right,bottom,left;background-repeat:repeat-x,repeat-y,repeat-x,repeat-y;outline:3px solid #cc6700;outline-offset:-7px}.ueb-node-content{position:relative;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}.ueb-node-header{padding:.2em .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:silver;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:.1em 1.6em}.ueb-node-body{display:flex;padding:6px 0;color:white;font-weight:100;white-space:nowrap}.ueb-node-inputs{margin-right:auto;padding-left:8px}.ueb-node-outputs{padding-right:8px}ueb-pin{display:block;padding:1px 2px}ueb-selector[data-selecting=false]~ueb-node ueb-pin:hover{background:var(--ueb-node-value-background)}ueb-selector[data-selecting=false]~ueb-node ueb-pin .ueb-node-value-icon{cursor:crosshair}.ueb-node-value-icon{display:inline-block;position:relative;width:.85em;height:.85em;vertical-align:baseline;margin:0 .4em -1px .1em}.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);border-radius:50%}.ueb-node-value-fill::before{background:var(--ueb-node-value-color)}.ueb-node-value-icon::after{content:"";display:block;position:absolute;top:calc(50% - .3em);left:calc(100% + 1px);width:0;height:0;border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid var(--ueb-node-value-color)}.ueb-selector{display:block;position:absolute;visibility:hidden;top:0;left:0;width:0;height:0;background-image: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))),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))),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))),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)));background-size:100% calc(1px/var(--ueb-scale)),100% calc(3px/var(--ueb-scale)),100% calc(1px/var(--ueb-scale)),100% calc(3px/var(--ueb-scale)),calc(1px/var(--ueb-scale)) 100%,calc(3px/var(--ueb-scale)) 100%,calc(1px/var(--ueb-scale)) 100%,calc(3px/var(--ueb-scale)) 100%;background-position:0 calc(1px/var(--ueb-scale)),0 0,0 calc(100% - 1px/var(--ueb-scale)),0 100%,calc(1px/var(--ueb-scale)) 0,0 0,calc(100% - 1px/var(--ueb-scale)) 0,100% 0;background-repeat:no-repeat}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)}/*# sourceMappingURL=ueblueprint-style.css.map */ diff --git a/css/ueblueprint-style.css.map b/css/ueblueprint-style.css.map deleted file mode 100644 index 80438df..0000000 --- a/css/ueblueprint-style.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../scss/ueblueprint-style.css"],"names":[],"mappings":"AAAA,WACI,qBACA,iBACA,IACI,kGAIR,WACI,qBACA,mBACA,IACI,sGAIR,MACI,sBACA,6BACA,2BACA,sBACA,2BACA,+BACA,kBACA,mCACA,kCACA,sBACA,uBAGJ,cACI,cACA,kBACA,8EACA,+BACA,iBAGJ,qBACI,aACA,kBACA,MACA,QACA,OACA,aACA,8BACA,UAGJ,mBACI,gBAGJ,mBACI,kBACA,kCACA,gCACA,gBACA,kBAGJ,oDACI,gBAGJ,UACI,kFACA,kBACA,eACA,gBACA,kEACA,mEACA,yBACA,iBAEI,s3BA0BJ,gBAEI,sZAQJ,sFACA,gEACA,oDACA,qBACA,gBAGJ,qBAGI,eACA,6CAGJ,iBAEI,mBAGJ,iBAEI,kBAGJ,iBAEI,mBAGJ,iBAEI,iBACA,uDAGJ,iBAEI,mBACA,uDAGJ,iBACI,sBACA,uDAGJ,iBACI,iBACA,uDAGJ,iBACI,sBACA,uDAGJ,iBACI,sBACA,uDAGJ,kBAEI,iBACA,uDAGJ,kBAEI,sBACA,uDAGJ,kBAEI,sBACA,uDAGJ,kBACI,kBACA,QACA,SACA,wGAGJ,SACI,cACA,kBACA,sGACA,qCACA,4DACA,sBAGJ,4CACI,YAGJ,iBACI,YACA,YACA,+CAGJ,cACI,UAGJ,+BACI,iBACI,kNAIJ,oDACA,0CACA,sDACA,0BACA,oBAGJ,kBACI,kBACA,YACA,iCACA,qCACA,8BACA,gBAGJ,iBACI,kBACA,6DACA,gEACA,8EACA,aACA,gBACA,mBAGJ,eACI,iFACA,qBACA,mBAGJ,eACI,aACA,cACA,YACA,gBACA,mBAGJ,iBACI,kBACA,iBAGJ,kBACI,kBAGJ,QACI,cACA,gBAGJ,0DACI,4CAGJ,yEACI,iBAGJ,qBACI,qBACA,kBACA,YACA,aACA,wBACA,wBAGJ,6BACI,WACA,cACA,kBACA,MACA,QACA,SACA,OACA,6CACA,kBAGJ,6BACI,uCAGJ,4BACI,WACA,cACA,kBACA,qBACA,sBACA,QACA,SACA,kCACA,qCACA,mDAGJ,cACI,cACA,kBACA,kBACA,MACA,OACA,QACA,SACA,iBAEI,wlDAmDJ,gBAEI,gQAWJ,oBAEI,wJAOJ,4BAGJ,eACI,mBAGJ,kCACI,mBACA,iEACA,kEACA,yHACA","file":"ueblueprint-style.css"} \ No newline at end of file diff --git a/css/ueblueprint-node-value-type-color.css b/dist/css/ueblueprint-node-value-type-color.css similarity index 100% rename from css/ueblueprint-node-value-type-color.css rename to dist/css/ueblueprint-node-value-type-color.css diff --git a/dist/css/ueblueprint-node-value-type-color.css.map b/dist/css/ueblueprint-node-value-type-color.css.map new file mode 100644 index 0000000..ae98ccd --- /dev/null +++ b/dist/css/ueblueprint-node-value-type-color.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../scss/ueblueprint-node-value-type-color.scss"],"names":[],"mappings":"AAAA,KAEI,8BAGJ,wBAEI,gCAGJ,wBAEI,gCAGJ,sBAEI,gCAGJ,uBAEI,gCAGJ,wBAEI,gCAGJ,uBAEI,gCACA,0GAGJ,qBAEI,gCAGJ,gCAEI","file":"ueblueprint-node-value-type-color.css"} \ No newline at end of file diff --git a/dist/css/ueblueprint-style.css b/dist/css/ueblueprint-style.css new file mode 100644 index 0000000..6cb7f3e --- /dev/null +++ b/dist/css/ueblueprint-style.css @@ -0,0 +1 @@ +@font-face{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")}: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-grid-axis-line-color: black;--ueb-grid-snap: 16px;--ueb-node-radius: 8px}ueb-blueprint{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;background:rgba(0, 0, 0, 0.5);z-index:1}.ueb-viewport-zoom{color:#4d4d4db7}.ueb-viewport-body{position:relative;height:var(--ueb-viewport-height);width:var(--ueb-viewport-width);overflow:hidden;scrollbar-width:0}ueb-blueprint[data-focused=true] .ueb-viewport-body{overflow:scroll}.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: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)),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 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);background-size:100% var(--ueb-grid-line-actual-width),var(--ueb-grid-line-actual-width) 100%,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)),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}.ueb-grid[data-drag-scrolling=true]{cursor:grabbing}.ueb-zoom--.ueb,.ueb{--ueb-scale: 1;--ueb-grid-actual-size: var(--ueb-grid-size)}.ueb-zoom--1.ueb{--ueb-scale: 0.875}.ueb-zoom--2.ueb{--ueb-scale: 0.75}.ueb-zoom--3.ueb{--ueb-scale: 0.675}.ueb-zoom--4.ueb{--ueb-scale: 0.5;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 2)}.ueb-zoom--5.ueb{--ueb-scale: 0.375;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 2)}.ueb-zoom--6.ueb{--ueb-scale: 0.333333;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--7.ueb{--ueb-scale: 0.3;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--8.ueb{--ueb-scale: 0.266666;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--9.ueb{--ueb-scale: 0.233333;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--10.ueb{--ueb-scale: 0.2;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 3)}.ueb-zoom--11.ueb{--ueb-scale: 0.166666;--ueb-grid-actual-size: calc(var(--ueb-grid-size) * 6)}.ueb-zoom--12.ueb{--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))}ueb-node{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}.ueb-grid[data-drag-scrolling=false] ueb-selector[data-selecting=false]~ueb-node{cursor:move}.ueb-node-border{margin:-3px;padding:3px;border-radius:calc(var(--ueb-node-radius)*1.4)}.ueb-selected{z-index:1}.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-position:top,right,bottom,left;background-repeat:repeat-x,repeat-y,repeat-x,repeat-y;outline:3px solid #cc6700;outline-offset:-6px}.ueb-node-content{position:relative;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}.ueb-node-header{padding:.2em .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:silver;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:.1em 1.6em}.ueb-node-body{display:flex;padding:6px 0;color:white;font-weight:100;white-space:nowrap}.ueb-node-inputs{margin-right:auto;padding-left:8px}.ueb-node-outputs{padding-right:8px}ueb-pin{display:block;padding:1px 2px}.ueb-grid[data-drag-scrolling=false]{cursor:default}ueb-selector[data-selecting=false]~ueb-node ueb-pin:hover{background:var(--ueb-node-value-background)}.ueb-grid[data-drag-scrolling=false] ueb-selector[data-selecting=false]~ueb-node ueb-pin .ueb-node-value-icon{cursor:crosshair}.ueb-node-value-icon{display:inline-block;position:relative;width:.85em;height:.85em;vertical-align:baseline;margin:0 .4em -1px .1em}.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);border-radius:50%}.ueb-node-value-fill::before{background:var(--ueb-node-value-color)}.ueb-node-value-icon::after{content:"";display:block;position:absolute;top:calc(50% - .3em);left:calc(100% + 1px);width:0;height:0;border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid var(--ueb-node-value-color)}.ueb-selector{display:block;position:absolute;visibility:hidden;top:0;left:0;width:0;height:0;background-image: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))),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))),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))),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)));background-size:100% calc(1px/var(--ueb-scale)),100% calc(3px/var(--ueb-scale)),100% calc(1px/var(--ueb-scale)),100% calc(3px/var(--ueb-scale)),calc(1px/var(--ueb-scale)) 100%,calc(3px/var(--ueb-scale)) 100%,calc(1px/var(--ueb-scale)) 100%,calc(3px/var(--ueb-scale)) 100%;background-position:0 calc(1px/var(--ueb-scale)),0 0,0 calc(100% - 1px/var(--ueb-scale)),0 100%,calc(1px/var(--ueb-scale)) 0,0 0,calc(100% - 1px/var(--ueb-scale)) 0,100% 0;background-repeat:no-repeat}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)}/*# sourceMappingURL=ueblueprint-style.css.map */ diff --git a/dist/css/ueblueprint-style.css.map b/dist/css/ueblueprint-style.css.map new file mode 100644 index 0000000..114b740 --- /dev/null +++ b/dist/css/ueblueprint-style.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../scss/ueblueprint-style.css"],"names":[],"mappings":"AAAA,WACI,qBACA,iBACA,IACI,kGAIR,WACI,qBACA,mBACA,IACI,sGAIR,MACI,sBACA,6BACA,2BACA,sBACA,2BACA,+BACA,kBACA,mCACA,kCACA,sBACA,uBAGJ,cACI,cACA,kBACA,8EACA,+BACA,iBAGJ,qBACI,aACA,kBACA,MACA,QACA,OACA,aACA,8BACA,UAGJ,mBACI,gBAGJ,mBACI,kBACA,kCACA,gCACA,gBACA,kBAGJ,oDACI,gBAGJ,UACI,kFACA,kBACA,eACA,gBACA,kEACA,mEACA,yBACA,iBAEI,s3BA0BJ,gBAEI,sZAQJ,sFACA,gEACA,oDACA,qBACA,gBAGJ,oCACI,gBAGJ,qBAGI,eACA,6CAGJ,iBAEI,mBAGJ,iBAEI,kBAGJ,iBAEI,mBAGJ,iBAEI,iBACA,uDAGJ,iBAEI,mBACA,uDAGJ,iBACI,sBACA,uDAGJ,iBACI,iBACA,uDAGJ,iBACI,sBACA,uDAGJ,iBACI,sBACA,uDAGJ,kBAEI,iBACA,uDAGJ,kBAEI,sBACA,uDAGJ,kBAEI,sBACA,uDAGJ,kBACI,kBACA,QACA,SACA,wGAGJ,SACI,cACA,kBACA,sGACA,qCACA,4DACA,sBAGJ,iFACI,YAGJ,iBACI,YACA,YACA,+CAGJ,cACI,UAGJ,+BACI,iBACI,kNAIJ,oDACA,0CACA,sDACA,0BACA,oBAGJ,kBACI,kBACA,YACA,iCACA,qCACA,8BACA,gBAGJ,iBACI,kBACA,6DACA,gEACA,8EACA,aACA,gBACA,mBAGJ,eACI,iFACA,qBACA,mBAGJ,eACI,aACA,cACA,YACA,gBACA,mBAGJ,iBACI,kBACA,iBAGJ,kBACI,kBAGJ,QACI,cACA,gBAGJ,qCACI,eAGJ,0DACI,4CAGJ,8GACI,iBAGJ,qBACI,qBACA,kBACA,YACA,aACA,wBACA,wBAGJ,6BACI,WACA,cACA,kBACA,MACA,QACA,SACA,OACA,6CACA,kBAGJ,6BACI,uCAGJ,4BACI,WACA,cACA,kBACA,qBACA,sBACA,QACA,SACA,kCACA,qCACA,mDAGJ,cACI,cACA,kBACA,kBACA,MACA,OACA,QACA,SACA,iBAEI,wlDAmDJ,gBAEI,gQAWJ,oBAEI,wJAOJ,4BAGJ,eACI,mBAGJ,kCACI,mBACA,iEACA,kEACA,yHACA","file":"ueblueprint-style.css"} \ No newline at end of file diff --git a/dist/font/roboto-bold.woff b/dist/font/roboto-bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..c9b02e5d1e9e107b62f87589127a8ed05a49a9aa GIT binary patch literal 25304 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ಶ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 TraaJAH^=ArOD}17&HHo&S$NSz literal 0 HcmV?d00001 diff --git a/dist/font/roboto-light.woff b/dist/font/roboto-light.woff new file mode 100644 index 0000000000000000000000000000000000000000..13c73ff8da49649b0598d5659e4875e5e23ae8a4 GIT binary patch literal 27180 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⪙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 literal 0 HcmV?d00001 diff --git a/dist/font/roboto-light.woff2 b/dist/font/roboto-light.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..358c6deb50746f31e133ef89b6315f2eb45303a4 GIT binary patch literal 20628 zcmV(_K-9l?Pew8T0RR9108o?w6951J0KM!008k_V0wWRt00000000000000000000 z0000#Mn+Uk92zzorG6ZP8U|nhgK`K$34~=42nvFzAcBWa0X7081BXNlgJb{%AO(j! z2Zk&Rg91NyWnyLq8)vEq*tV2@c01tjP5XSN3Z|Pok=qga{t(QK35^%M9kjel5ylRp@7P8Wo$(P3tb_TSP&qG^g4|fE$R?{7#XVJ? zT>X4;dwi|q59Vn#VcZwIa8h|fNA&X6m1~b5_YBCdqRocM@UTgTzs;o%+u9>{A^OScG#5lFCl=*}R_ zJ?C4Rz3rF(;!C)fW;UTLc-nV7u9cyq(;fIS9j+l2*G;QNOzt6Qk3~Adcu;}5Wp%;5%~Ylrd4GEdAcmg z1d@rmhiVCeEPwac*Z3Sqn_{{_UW-ftH$M~@OD(%Wo&76Yk_Bjii4wl#C`a^*!#cme z%`H#uz0>}E$(H0UjbzJSYs;-=-WjDSwa@^Z0GJcN17OFsu`FQerun}UCIhzzW)Q+5 zjJtMCNM`YL0D!^j!?kj9=aLr&$-N_1uW&MR`+!ANP2disD+pCixOiwp|Nk}L^qkkS zx&>RF5(vlWM8fC&_lYJiP@sGONajp}`dF=zunvG@5$eCs`&uR}IAzAg`VJh#Vg&j$X=TZ0a zJmymN#}NHODDuu5gY?WrdR z)W*h31x`MIv#;Jk}8n6`Bvf8C!1!)JK8!UWlr!!pfE-SDyUh*Haxjb?J7cdh3%u{RRk(88>0lRL#~$ zbLK77V!gLqyQS!n$0sPLmfY745IB+ws+Ewl^?+r)cD_Edswa2|%ws5D7HhL%85=g5X3W}$vmdw;*zUv!sCiT_1QIlpZT4&Hs4Uq#UO-$`MTxB`edoJJ#&9C{> zJEf2G8z88Mr0v+VzZKJtAdZ|00$XPiu!G$q6T9FQXzI5Fbn=+bAv zkP%a6%$;K4w6iRoXT_QgS8m*4c=6@~3nx&J5Mi=p%aJQjzCuNcl_*uIT8&zD>hbjH zH$Y(2m~j&(OdCaFU}{dDrxdT-XZO0V`KTOC0C08~DpW@@!I$Yfr& zde&^K$^byx6He{|;9l&x5*!{f z4(XM2F8_vMJMf6|Ta+RhkD}z(dIgU|wH-3iW`!y)z%GZkUijcm3r{ca?8e0}7XHk* z;FVpssXgr`T=N-EZ|mr@?xpW(i1tID4BKQ}zIDoVzY{!Rd6ypMD;#}ZF*bXx(!Jd_ z!^%vVtajU=VymZ0;;SwE$oNChljcj?Eaj3C(seRh=>n;z!h%H|Znya@b~>twe)86( z|I)zcO-tOtQvR)X^iwrJtGrNcmur9GZn?uO{;R_5d=}I~R=G7PxCYP^AgX- zd5^7^j;<(c4YcT$lJDk<_0YAe)!7JLHy)dgq6sB#Yrc5knRivgId_diUAGakO4H_z zt@VKSmwpG6&wV6v*K1?Wf3HFvWi)~&Ir}Jyup2i|GW%h|R25D$nQTxKRO$UTpxnCr z7e!MS9%K71BhDh0~%7fY1YV`XI*uK!za11VovF7&B024xm$@=qyM&2cj%N!+B71 z0c2T$IBSsM2yjk-;0#J!L6|#%eejQA#^?jemjD3^3IahyFvtr55ur^=%aRYGut_;Z zN(rg-2C7yM)TEUto@!DY-xYAZO)BXlAZ)Zrm@!kJ7D2=kAS@G+PaHTEyC7PhKx|3H zBadl;Fc%NWBY94h3=vHUkt%@`2XTxDL^g6%Dw*^W4G?FDv|!B_LyAqyAUT;fx&onz zfFdC%f^krO0FXaO3a}OutZ4;KN*su$YzR&uQgINCWFI0JgP;N+A*clGtOY^}MBn#- zCXhT*Me>X)QbYg(2?PxE@C?BmcZ!I!tjTiZOr<4|I-@~-9ccrk%^annbn<8Pv)41$ zgvTmdWY4(JDIT8&VjrV>4Eu$zZcB|LBV<|94RzNb^G%vS>~pFk5-{1%+t;Z%T{!A+py!=Oiv#2@Oo+e(s#mgT34pdY7C`&bojl~Q2~(vF4lvPX z$s0wQs)a7peNoM?pH(Lb{L&i*dHBuvns?DpHtA1dPeID0Dnlnv!+)h3aZo8(*g#MU z6e)rBpW+rFu<^(+2gFuWbbkY>-9cq9`{y9#33(a-SOVanqcF~ZEy&9MCix#=eo%8> z0)S5f$X&-!h#w@&*bcC{xa7MG?>=C2Ft-7=h6E!G&`3!03-Wr~Z;zKKa($Ge0@X;N z1?$L;RsU*uHNBd9NW1E^85uWYa3fTdk2)G zle3Gf8`|CDBF59p+sD@r>yHZv3vBeJNTX5T~~Vh`vwF zZ@;s*|8QqomH}UX`V0Wv`u-yz=br4+qVkH%Wi_=x_2Vr~z{+b004&@F0CL5sMA9rA z9sv;+?o2^{S#CA`74 z`{jvUdAu+dG?vB$6<=IwhzZfr8P_k~s*OPPuoSeNa`xFZmwZf^-mQ-nd+vVC4R1ou z>;BE(y%9^H21lo3|H2W=xTb|PD>(4H09o z#c>BxL^P~8U{D4&kKnMgm7iy^B(SpCGy-xk43#Ay!_l%Vf$Y$B!C2#GK5ci8SavCi zrM~^GRLdH?1s<>*`-VZluUgWk*(arfx03q`+~};a1U)WLbMUZ)qX@3T+Dxr4_|}gp zEdxxJ4Doz_JXv6cZCtFb4JP=^ky8rXkjJyWBRdihJe+cE=Jw`!<@E-z4O{!31bR|B z!rSnauAc*ayq#=;z|kHv1CR;5+Bdc{E(0JVhx2+eAQIp>k=s<+P2!nVP~Mmo0_&r3 z1cpAMe1`B(yzwO>vXFQ)f%QDln+0PB(6BNvr9<5BFvzk(HU@Rtr{W!}ioMFBzwZ-trG{6jlyaRJ3SiU`TO==3tFgR+?>* z6EAaKqq=5jSvpf9^lUgcw(c1r8PcX;hzp6z9SV{eq7|`uBoJBD3e<24(bGys3rIQK z*9mE1ZzLLuOmdDai#JhjW4v%7xJ2K;*umr!gZTml5(L z>0l~~0I)`g7Y`;Vg8(pgV0S7RYdFu*m&@|KW7W3Age=f!j#0`IzG3Vgg!r*TkiOf* z4BJi!XSB92kKMMz1b1UyGO7>)g5A72lv82C$L168@9Iw-Z^&7OoYzH*(uyR)`7i@* z5II@XT)+30y;Y4D!BOu-@Qe(d1qx2q2E6@uRPPM}Vc$P}l&N*_F)3@uMQluUpmKV1 zbgyM(T9opB*rvMs=Xq2ogJ6%EvKG!te0txSDZMt|`#it@>Fq_YGh%0g~_{yHf;PD(5cr|!tVm!-8!o6{;gE9-Q-9=eDcZ!Zj3=~oP z%zUgYclkzeC}!mxW_fm&v3Q9$z1zsI+Z7}j*|o)8_Sy3em+ChNo;ljxz?I5x()HHY zIdnRfjU~8l_mSb@zf-;&Gd)F2Gzqsi1ee&J^)1oCbI*gtrEPK+1KAZ^qc7suUxj# ze-f1Aiq^B-&bREOh`mF}~YQ0^qZ(d38Z^5xBs{<6|DXj0etwoJWo$x z=#pT!gjq6A8V+0@0!7gGawdq$44Y*P1zfz+)cO2fLg-a{N+7 zuc+t|hwX6nT}x@Xq3v!Cb9$_{6OyYNUDV)1tqY|r0yAK5>x)cmZ@-tW!39tx2qITEB8pvDfOmiHe+MCTAOi*a;cdG@o+y;Gn(P!<9B` z#?Dx#uqcx@dt?Y~Ld$2OvVx=_p>#2h zNuyh-n(`z!@2EyhVaWfjh(}zJa^{SW1**q+p0b9**WPOdBy3{{jk`@)qT;xU4py#|CeBytH3mdEAh~9CwQ8Dqx-mc7R z=Bo<{qUg}A+#mkj474_;7lAXQhlVyLAeH7}7WygW8kBJbfi zq?ps$S6x5Q9haPn;*cgs4(D2!)aH?VBIJGg?mY5N*u~!Sld2vuDm|HfKAg8u>!^e0h%xI&NHB z&Zke&um;N1WyfJZ`00~seh59=ll52FxOsEelyGA;-&$Xgw`AvWHN-th@H*Vu8shcJg&J*C35PuEQ@q^(MmKJ zcn}_Z4Dc%iF#!)-S7Zi&en~+{InhaTiI2C3ljh`1AD^hxV`(1JhE-P-et{I3{`6YA zKAP-yh)xX@zMNLj4Nj{I82Vh--7?lbk5ZBij$~tR>qQjH#=l(>Jk?l6mcUy>ytKj} zSZ^_xT6{s3i8mC{caoGw%4j(dDZRVCqZM^rnB7|saH>TR) zi*x7U?N#PHG$BErWcyNDA&=YlWfTGir;-UO&Bae)+txQzo|q)Q13(-BAnwCDXlD-W z^`tW6>&mdDTX>bSf2rP5x4c8j6D_qh2HyUuHdfyEb?gmL?4Kn*dCt&j3zwer0aD{3 zwS*!~SI;7nvEZG2TQX3fEjkK{`GmeAUT9!n=$n2oFpM@Hj^D6=&g^!4h5(;7>E#^K zGN~@#b>J}gW8EUSQHqu>Pwec~Tz;4`neeF{`N%)o>wr{;U$YkHbK}}~EpkQ)_N>>n z1OZ@RPh)185OXPCNU`S_2&R5Sr@rTTjLZb``b102i}=aL3H5O3aB5qmBpr8J(2)L$ zSA8z~lI-%D3u%*AN6?gQS$asVbg1|__z3z-QkkUd!o-Tr=*cSVqx=b%jJQTN&i1{M&x^LglR z&4d055<^!+;>D-jDk65q2U_4y(c)KlTs^CPWT3TJP?bb0E*Q3Yf*PK$Z78`oT>VRJztVX8>VJtpeDb&iCfZ^*Tl)&z?F^D4pO_9UzTu7 zJLRSQ#(g2@D*fs%d)M1?2bTy*uVZkp7o=#II^ZARwM(3|7cjRRuVH2k)j7IO5>(yO z5;80Y!1(E@oqNv=q1tehCueu=KR+3#_p=ky($w}ZaBvS>|88sL{RF>RioRyk-j2!v zLUk-a2(Alf{K1J?+l;-m`sn%yA^CIDP|4C)d|KdpBTiAsn15bNb5Z%wWMy<%COdzw zue$C^V^!IB%?O*oA=Wr!lD!HW8Y&6~+p<}7`ovl!XZh*fNpi+Oyitx${%G37*JqoT z?h%<2^>!3{Lx=Yn8&C01qu5cBky57S0k{r!oODG;b#Z;e(rEL*TCGpAk;D0571YEw zjd%VWmeER3L>36pp(g0R^aEC2agDm-Lb6iTy(rXMCKl=oFw}||7DJA6w zV8D7lJ^!h`pl7e^O3$_OxWz0@qAzUBl+cUPQ@|wazA@D%bGW5*$%Yhz)Is{ltJ|D6 zcZcYg2BQqPhE+2u6MsIue(R413>%s8wx-%iUP10$uR#qbwWBUCySqLmxrd*X+tHi^ zHyz1>M18E<}#Nzw^)_)f;(Y2 zVUT3Lln^E(q~i#-K3MF$vb@qm4V%nKrUwtRK!#=U()^i=M?$T*nZ-*?BnmsnS?k6Tt+h%<^6I2kmgQeAoA~{L%qx-OqkvFl*PG9?ld*|> zigvPE?Oe*-!Tmh~F{*K_xj1{EzMesJt$}prWft~j3>eeWDbw>gx_`B_zZL#nVV`?E zI&}Gs7BKk7Gu?&xg)xOuuJUu~Z?9VpT5_}l(Vkk_kV0#t;e6IYgT69vLYyf1Qp)I8 z>hEIuj{s$}yPIQ>|5j}zH9Gw|bw0kOO!7a+>dEyDwk2_62FLvWdo2D;c{NG3X}gWT z`Cc8;!>9duvmm!A*321c8JAA_;~%R4F??4yj901~Rn*AIFwNlZ5^?)Y`)zK`a8h#E zT8{ZijqQz9`MslH{cqe)*FJn-yZv;}CiQMXTd|srs1vuCJp%aE>`@ZOw_3QMpoh{9m5yKh61C zkomr~Jj2Q%cl~WnOfvlcqrvu#*E;Z8$or$$Ha_VfE)+evx6icy0i|#u5Vmj=iCI!QXafcsC+4Tcm{k^nXNAWidM4bvb8K! z?j?k-RVGXO${u@caaWF@9wVote(Ju-Q)wO9WW@)SO!-s6I>p+>@}t4b_0#X}?k<#< z2UP@>?<~B%ThU7A(e=Qb$}%;msG5Ul5z?Hi!cj591)chN$AY|#wb0p#Cz-UK01y=p zgqr|->n6bha#+c*$-NmeH*cMBw+N^^Kl3PSw=JE`fTNoUPmG@#tASzoFjctUi;`)X zXoCplM)2y}2b_eWj65zcC4dE_f12zYxi$o8`Mm*&7Ec3V5muOa|LFSJURF^+7K_T7 ziZ=}Xa904XB`4PbLN8eU^nu5-dq)7-Klin#p2l^+%Hb;h8_z2EZ(iSRe^nLNMAxSV z1VMC~Y2UAB76@M6LR^VQB=hT1S_Q9fXB@Yt5gK7pL$v+d;`talHM>XL_uI?e>pVdx7)61>W4L>UbC6e_&M4{&}}3W$6Xtwf#@U zv76tTLd#L-++0s*%pB(L<#4_vNu)@?>N*y3vd5N!p|4iM2Q%6`1y%Ot!VzNUBBGP% z+5d(Ax5{3{MTtrO^+$)L2gcW*XbxGCI{Ch%ize4V% zYUA!3(&X!=Ua1og?K>AX6c+Q3{f)Dcb5w>OoUzKD0ZJ0{3sONrt8n~0dlkq_&B>;> zr0S;ZQ0jH!pre)%Bc$kx^>+3bQ5N6Eck&AF!3_?T8`y^rbBc@z1J>t-)dOCOadMkV zoPe!%I;DB-aKo~;77&`H3024U?9cCL0y6b|l_uSm0`ABR6)#@S%qj@XL8!fs@wnrJiu+f0^V>g0ok!ii zJcDX{!Ki!i&AOgU>_XfJgn>2TlZ|N$TYbSmH6H&lYmbNF_uHqxx+%MNpJ;zJu@Af= zy@KpcbUx`Yb1#{=+%lQvnsFfjV`mj|;xv|+98J2+pGkA(oEmBN(?8)Ko(Ob@A}VS}wI^@Btls)ynD2N6_OD zd7BI6QqNe=#}scW39EULE(%M6y|(`Qq&uW= zb(J7lXV6nvs*q~g*v#SYJk99lcX|667mAnP(N@^m&rkiBmw)NQZq7fCa?(Gr?Bgquk6$OQ=jA>#_Yd0)!-iQW zSqEW*HiP`lnT^6fSw9gzWA9k+wDHy~uzsso&^(bBi*^WVat{dUC18v2k?{p&O&^nh zd}{N*^LHK{JlE<;S%BKJy@Y_O$(( zOgiGKu9ss-v)lUV09BgUr8wX4Oh(V?_l{BGjQ9#+BCh{~kphkyIHEP+_PcSnep|}c z`nb2lGRJ;d{b{T(4SG6UUtU6O4|{qq_qQ5r4tDa@2ilJh4z?L-^z*N14mTOf-^cY` zy{*&UTpjWFJ|(54FffbTN~KWA%!q1Ui{8ksP7yvghR<%vzu@B$guxL|&J-a+TY5I9 zv?$9WP{o(_!OJ%)n{g?DN=#`w6=%8Mnf8L41eHT3kR?+jlgSbZASb{nC#$8gl*|Ht zAAB`yLoFvcEKihL842Caj1FLsZ>-+$e59XeA{b~k)EMmUtX}YTBcj#m|H>PZxLE~O zjw+|A)d;&>DZ%t}mxu}dtEG&w| zpZad+@0a1@XNU6fx3j_dyL)XAY6LVvIw5_4HbC9Lo8yCE9o^K1!aoW*1bhP9@5yz6 zpPB19b8@t^HO9@uFBt0_4Z}y0FOV=ket~YbMcd9^z8Aq@$MaS`&KPuv^Eq;8J%^QA z$|9U`4MHil7?u+nlG4*#k}DA%x29!EU&f>z*9ePHOAeZE zldBADh{`cRjNZXnQ6%A%f@8uCe+AbJOqZ4SPd8?z`le1&Fd0=7OV1)j#AUET;^Q+` zB{L|<#Coy1{o4;fz-}YyT?jDAgHs>pKI*agCuNJ%{z&mpnIKQ(MPt>H zp0nUOS-^`RDDO_A*Z?0+yx8sB$qg=681!4aTt+zH$yR7bJgJi{I7!F;_&$O5Id;k%*Ss?R7m3epXg8jh|)Sn+DGo6vWSy%AeHHB zYLBcNGBEyi1}hXwi}!LXp`JB)bOwq#lG{#VdV`o#NvqZXDE7mMqN2v_kXC-C$#M*h zit&g|4kS8?PmOYOKVfTo!pzR*M+uo6SKqM%?$uu}0F!fQ#VxI9nM z{se&>J)YA4@TkU6&^|jwy$;Rs9d$n1alS#d^h5<{DjvglU7UNS9(Xi8U1{S&sQ`Q( zI4;^B(dvqmU`Gf&JRcI!gR6s+#BYvf2-d*VN#-)%4Y0SDk+0NEvz;(fTsAn+$}*nI zPrM-dR(cU6uK!;Q%|X|MU=q?}aau^?qLmD0G-5i^42ou*JtXEo9ta19;QtblaQTV| zzb8v+Yh!s7zLzKGO|k+7p+pSU{o+Ne=Oz$?t!=@>J(Lhk065v@koVB>xICZINxb|n zYY32Sgnww`8KIGlq?~&rqe%`xVzu7Yhs;YetLQNb#k&UQ)ZOwZj2LWbq-stH-MRC3 zshWkhh_~Sd)E!;rxjKEnyJos0|D0+FDpeU{dd7=5U5L%~D7!Vp^BFdYMMhqzIcc9* zo*I6^k2aDOkcAH8?t2Gw83DgRj|FgtZW=huOKk4ThCpTbHf*{tFCIfk&QAR9%Y;-! zknf}B?wf<_5z60`zx$>kj*FPn5Mlp}tn}63NOC_# zpL{N2iXOlC_!D@a@>YFq=4sDZ9>dtTB;!fJGWA@jW!ST*{Lb-Cc79koEiqs`a8B=^ z+-|losn>?CS=%fq&KO*{(l;Nb57VuPSv?F7cDgwgGpaxcIIC!a#zUN$*DNtZ3l0U@u#TXzbAd4gBaf2Sjtp9-=lOB;mji z-c!63&#EjZx7loMOpnkNJ0&=%7$OC;_AccBSp&~rk-pVi9zO3;ti$>lZ1-gzr(<^979<6o6)Jf z2+!Wv1>!u|wE;G@SGE!!5|oT0y>0{P7Y>J^X@Ra?ADmA3Ga%Wi8qoU`e>NoJ5)*%; zAX!si;1vyL0yQlB_55TFxO_I7jHA)d!cOHHtmov*kyz?aU=tyEt*rD1`KhfZ{n(KF zKM`l!{{knxTssQ5^kZ<0QtZ7Ct`$0D^hx-+T1u(}9AQTFFBtyn=#aa(30TJnZU}zo zc}=Czop4-;P{&_&UnMkZ%;wTiDqri6aAWxf?<>c_%ifVolDkE?wftxLcaG=bEAjh( zPr|omENKw-_fXwevU;)Q4c!d`!_l#lzn}No*IC)&_NQ{|&>D88=ilLu;H*5+(N{ON zp`WeVo^%ZMG_~;0to>Q#i2mo`j1Ke(;VpTfC5_)V+3h1#Q(mOtUlA%)_tHk(!s!r#9fBOPt&4c9$sh}5S0zr#vcbT#Nd9lTiaz3jD z*ybVNYjf@+v;oAaoZa_J0(4&)@L=~wdL0KK_E|O%cNz!A7%kullPPJ7v=2gutNqxlu3;9r9gtL84*xh%Gh=U*6Wb#*`!OVXEuMs?5q7MHLWD?(Y zqf7u4EYAedH3}@jhDraIk`jOn6~lMWYGF_ImIX|uY;4*2%GqNH|rZ@kd~ zI=;fRxuX?Y$Kv`12>S;V%k^2+>D=fOs#&~7e?T=rN?p}R*`fT9vV|y6Tn)!a9JSa( zL=lo_W#-URc>4PP?-mAEOWC^r{H|T+4U{y@&-lfLWDHZTuz6t$#V{Y2AzrNfiYj&z z%1PjlLnSK^su;RNi(*Yj`g9pGk+C%WcFYQD-LVk{|Ih4?cl#OWr{OFfme4kWa`qq? zq=(Cl+3Xs4+Efu6sI|X0`U$0$^iajmrR4CNCO{KF5`8`&%b`8F7i?im@~eBOl32N_ zf;e+vw@s2r^47T6&SZ5Frzr&*VX1&_eWXK1#VWb(Sd{Idtl#6w#f*Z-#gMJR`sYK@Oa-O+Fj0+ z@Dp^~OcYj*b?YpPY8FyT@nG z1R3R$k6S0@(#!D?Z$P2zTW8mzpnxk++tCk*o}tnu+lun4VP;7<$u@}YiP_6tB{Ze_ z=njRJsPnLQ4c2ry!RRLA-ju^JDrt55_iG#C=Y-w)JOH@l+P>j$r~gK`H97$4{g(uk z?mv?1JGarbZWZ`voYiqI0Qug^$Umn5ibRr@Fd5)#MFICMVZSsfZc}uL;)|4Et_qQ{ z`Zi^aZ@dDOi-)TCJ`r@t4?+(Kh6=k=1&~BBx$%P#z~RtHTLMgZf|xjC{|Segxm0*6 znV3KZ!6-yTDp#6mRq$musnSrTLD*GLSLthej<$plDNhh9OHth+g2GFXW+(?pT2h(< zbs7QNEcUW!oU~v;^acy9wO#8|oWM8I-=#!-^TjXq+M#{#>*pqcnv?^AjQKK2g@yF0 zjC&VUj&)gpB5|$5h#?X-G_00$*<9|f0$I=u0Ej2xa<|F}R#0JSCz_8NE58n--~0dt z%^P6=Xg--m?alM(BLN|B9&M7O)shsPMxqjoOXqRWw7Ehk0u-GHm=aq^5^q_MjH(5t zwQsDPBCEr41O!7238Ye?Ot#bxu8Fx}*Ko1kSyK=jo`Jz+pa&|C(c*9T{`h~yoSXZe z{`Y^zt^b+)KA`)>zOUL$>vq=XpOf;TKbTlkekYTDsvOql9N=tcQ7bu+kZOt=KMSci zb=aR#ph{|?H7#A4lS)vlqJ_$4XZGC88SWOe#lRGrm0hC~s)mURs5O`1yB)~sgc#X` zFgT8F4P3O=spT2a3am_$duLZw;VtEwc9%t=nd{~9yQ3yO(yCat4-R{^Dk?#9R-v^; z=exZ}hftM5If2RlfIjzh>OZp&rQN*q?(JtX{s`U2rT!7M^U1}1_YuE}qE@SSn%~yw zCh`5aMG_qxus|?s>$yBDB~y@9JOUZ_0}1z&JX-;ib5_e#an+Pst4cXnd!F%C70K90 zR}8{(g*DdfZdP>&_LaJ&=!_-N6e#yakyP1ZSCcDcQKi)^09TUhX30?JUBfs{aTyVk ziZ&a)2kuyx5V_)+#Yvok(h&zOnzeY=X;>p62B#=arI#|KIs`IQN?jo!!LkDKhDD^| zT*`^ZyyFZpD6-HbMXDo10CcXsQV_VQ-?6&LkR`zj}FKv3OA*80Q5%@BFI=-45Fiq z0UT;#xN)L1lqb8cK+>!sJDv>2-{dGEXNS+TBqh5TX;*<_bwmY(q5V8yl{9t$iXe_x zr!ZE7LZ-0dcpBuqIIABb4jI(8u1+=^s(QpV$|V(DZ*_TjU_Gm}=v4+ITE8&H83rH< z#aIBcPtc0QSztLALdyDvO5f3RkJNf;2TWXL_{67x&S>g4?oxKM z(oBhx6|i&z9)Yb5#~2=gHT8N9vP@an2Dh4G1(sy2#hNm?)~Uf$%L1$-6-25*?t4{c z3oP(X6K}WuCWz*I5)Z%wCF>eT^|(KludMur@KHzR;>#653WYH%`D$3KSN`@d$~2@@_!sQ=ki^;$znm1x|GR z5tU4>iDeED)4+r~lnuW=eP_&c0CM}@fTHyNz4#x<8>>~W?t5`XOW7{jc2@AT2ywXc`DezTscM48Vd@VT_-D??Ev5p% zF+c#&M9L&cqG-w%foh*ayeL6V)QT+0d}Yqd3ZLEs>|<>@LF}dt4X&`N9>iB&49fdV z0k{YwhLYl@1(p#bT0$v-HBZJN$@F+&uyRTf1QY}jguo$7YR|I|mBA3+N$|&jbrHct z(pzEW0)!?Ox)4C2;``?Ej)LfkkfAiYYAH(b;*wBDK#!G!X{a^Bf!@I2#qOE{*zp{D z)(lALZ%Q}7wl}6e>!A)nO2w*jHS8!gmdpe`6Wp2mF>{8Fx|7$BDlDnXqDpuZft;oKIAn&3D{H?5h)`w=pb#K^{f#i z$`C3THnbMJ&RL~3=4g>e4KddrgWwQ~pr)%u$g4Uhs~@y5s3uZOxm{+Ur*Hgm5>i@m z!R*2Ms$OQbst8S*(8AF|y%P$+S*x1})-M*daI_lN{MP`hSi%J|5g;jtV54VOC{Urt zj~;Zy51O};(35~=7QqcI$&6<)^BHoMZ~-S^&D&^=Q#?C@RqO1j-~u@WhkLJOL*bdx z76dDsHWeK;kYU~aTtzl^6{(B|oGLSRROm-2fM*ma`DcU$xMpce^sRVNzznyL>7hO) zLh}AVw|c@FW}t~C)sSjH97vk#H(bMCwAG{ zd)kHIsyY-D*Yru6WX6xWx&S2Rv<(crCN5|GCsgAUdJgR;J7Y5x4LmV5z?71HOhOhC z*hSuWjokox{@hL=bQl<9K$Dg-w2e(-WHhKRt&4GvhDRqyxDv~&Zgkqg+wdlJ60|d$ zNOcO{GHlc(OKb-hMRN5_WbnkY`Kro-E#Z=ueGq-?t6bPPwznIg0@ZEYgY3d#Xm1oM zI}Qh)S!BgOPuLjr60!n}KGF9`4$uCsB2-fiv}v72;`H&d6wc8p8vF9Pj(Q+*Ab^X( zvLboGsX!tP7+E1^P$|GgxM3z42TEq6%bV;Bi{RhMdm`)Ec7sy0(J(lEnBP6V{`b;P zee;hPkY+cS2k$?B`KnZ~QZ{6x>`eap@SVHht}%e_!u!STKNH<3``b^n;7)T8+dm1A z+%b@Jh zU55>sAaQb<%E^nW=ryWPTEu`TaH2^>jMy-qN{N+9q7DplG%ouLuw1{1sVGp{AR%y= z1K&tM3WP>Ipi_>SSjLnC419>_xv~hWSk_x8(;q?+fsH{YTn`3cg&L`kT36=RD*`GgD{7}Eh1MZWGQQeUvanf!Hm8y- z%glbu4)E{b0K~?j{!7zu%VgGtfUz!xl}<-@w`G{}-Y!n^DA6$&oOp{fHQqG&_qlsa9$P?5C(v;HwD`#24@ zXTLQs>wq8qz|>&WGe`STD#N#UFLa|Il%T;; zH2{q$jjBqVOm~M=FM%wH(X`S!#-NwD(-X>@F9i8bY)+45HG^V@DKu>eqxXvg`Ip22 zn9pl2Nk{?uwV#a+V>iA04X8O3s+B~6z?$TszMUyCesKHvYXZnolRo$^d)wGQy>8$6 zSRUX|o&dhwtzuY|D`Phg3BkW02ph`&%GOBrNblAx|Bv>UtHB=v<5a>r24Tm+XBA_wgjxO5_ zCfHD5rHw%qzLn<8vrPzny+PLz6KT34?FL8~pAdmgqg?14!Lj0JL?m2kV?A^i@h)-~ z>D{(QNAlr`Ll}bdQOaR0HJaf0eNcHJ-2=}aT!oj(1NrV=E(*L+-sF@0f}%mYoSdp> zYi=Ij+dIj0?!cXElD0_~>qM^w*yMoTotCO_B`=$bws9jmAA>*uc%~sj66U(8${P&B_OATQP|!J7zxAQq~?JmE@ZsI*248bPk8_!Qkaw1WbZbRE)5ar;3(>mRK!nkua|U+p|8D3xwNfo0fpI24h^Oe~m2~lg2&^sVA_cFa-%2IA=g~ z#|~mIH8g5T>w@y6lA<+^T$f{e(=MvrEV2QmohPudc3NYEKVe^;POWd#t;>n3~Y*%SO>#tbTRbMNo;@ z+SE>!24!PRYDEz!tKy&s8Y9ds^IGS**ba!NO}8pMPg$eIPB}wl@{(?QbevxLS^om5 zKQLReAKmXk*!s9;H&2P85i7Gn2smSsF6-rh>~rjS2yn6b=;YAaUzIfZ#$j2(fypf` z*~!VsaiTuXK?fE(OEiHbcmk+Wrus2@%^X-NCU8!)s|5s?Yn;4I6ZdzmkPy%$V#rm& zOwVgQXwQhQry*ECgbSTyQJy~&eTgG2GbTya&3(c@T8=sr-IF(R?=XP~Q>Y~r>olym zxpaRdv5iR+|~eMv{#DqrWMEnT}$ zSLl5{yH3QdImPzAW>2`Maq)~3yThDn+S(hPoL=RAO#V4R0|)t`9KB-ETUaP*sTVOO;n2~Zm~X(1@_7MFn)dV2rR zRPh065SH)U`sEgPo9wsl_*~AYA+nWpi_E3i^$?ahAbf!f9>T|tV?6js4{_ETBpMsH_oS?4w3P*aRBxS+ z^V=5-+}5b_7K?%M5;Lwp+@3o>+hV&>w^hSat3juQL%nrMu}%m}gsNkYi1L`(KfX zcXhM-wWPky`=6b2+1lh`?alp<(dzrVobm5tJNd8niaJK_C4C@g$@7yQIC}m)@pXTv z&U#u_d;a+L*FB;(kX`Z{Jmb8f)@OLr=7#&xcr}*vopO5496enV#5H)Qiae>WbpJqZ z4BZ^$J?Qld^kL3DAg`)v8^5gwST9dE$7?I{`a6n0YZA{-)H*Xge^JBXYv6oxzg4>Z zsG7qgzT3CYPU5ze;2-GY_0lYxob_&079f6$z?zNFZgpOn@-j^zt_urc3SO`vV*5QtLzrj72gEt)iR zDT$)Gn1t8cJuBJ+FBW>C<>MfSQ6ohm;^}5rJ%LKc_3iycQ9Ii4m;&XZ2*>pl()zb4 zZIv@MW?P{`q?5DU-IQ|PsatLwD4`DvL#~0xQENQ>rrGqCn3K}+YO-Y08oPk5_%+bM zu7jBd3%M1yV_*$M9UMiWjdE+|?KF{TD@MWiY_r<YaU;>(p-Mfi9V&s{lmrEoJ?9m&9sW8(PEKxt{OW zkPJS!htmR$kh6PqxyW<4&%q1{ga{`>XlcL^Vh(#ov`_>yl#}H5fK%@<$WS}UR zw(GJe$}0JGm0S7fw!2HXq18Sxyu;e823jbo{)SyNhozc1FfF3fLiY3eNG)ig@Hg4i z~Fx#H$?iv4T+`lFi`KP%aRo z?#-=ynq{fMvXvB?F9<-#LWV>?Xyo`V?5&g|zf6(OMWNc6k`lg9x6L*_otwA`u^82sw5^wES1Y}FhD}{0wON55=nlIH(n{=}-#tow*A@$<4=1E_*bp2qF^1j_ zXvG0uRtiADvGyTg75)1GdCFUwtPxB?eJSp9U?wi^k^o7s)tL_Ey8Ly<*jBB|nrBG#j< zA^bX;OyJ((XTvlOnuPIq`8NSdQ|7cfEJu^}){E`Y=uGli;0=3^fJK#a1V#C1G0kAB z>+!pkljd}9UyN=wVv$B#3;EM-P;VX6tQtp{?9p>at+bi%sHRhF_r$NJy4525WtQun3%DuRn|#xon>TXPy*OVTHEjr=-Qf`c;9~ zBx6V93MC za~Vz_K4533XLt7xuU_Zdvmm~`{Wlx@|F%%H{$O)ES@8d9;bV4tHl?42{|!JO5dUaE z=0uQ|8=-=EMfAn*>QH&qDhKQgiJA4-8BT0hobjoEv}k*SAIX|hSnKBzt8}IjP$bEM z2ZJ5-=a@GMuC>6F?UA5DLEQlsvzV^-HpY2^uJkdNT4tC>@Du}5iWjyI?A+jrB5M&|VkKkhAgjj6 z-D+?ca{R%O4xOA^h}xDdM#xEOwkP)EX6@j?-B)^4_#n}|;n522z-XU+GyjzuZPWR- zLyd`x^w#TnQS6*#^vZ!@pygXGBq*`_3-H7J4U_OyR=Cd9V6USg%-ZyNsIg`3s(sjP zZ{kx97{#N`sa=BobE}Gg(I4OkfoybaEIV=}UqDGwZfi<;G!_YiW~NB+G`L+B2j(?j z*c+B@caB=4%nvd?N0ft zVNngSIzt1@|E~u#t}+MxKjqBrdcFDNBeT{2GNJr)yMcOOe?@$HR%1a;vsIjBd=e*q zY>UpjsNsjz(iOB4$nHZuW4Og7=bJUNc&4zI*N@pMYqzEQ~u@yEoa*Fo8?r# zh@1DOM>jG5Hk=)>DPTVIwdMmyW(XJZn$tNmv5*9~nAO5i8()3@6TW3r@~>Xq z*XWK9tov=IeTt@jSHD)nA*Kn+BI69DvOm_ZC`c4mas`b((J4wfu4>A8gdQe$LW$~$ z8v13Nbi!56L&4=Z`QF+V#>rVgS8jl^I|0M@nofB(B-1BsS!QneI*&Favk1!_B8%{o<*x1++; z#)m#Z91bsz`FiDOn#}t+FqdU6*Ptb;nVd6(e;t~@kx#Ow=`Qt9&5e%HqfmM$V0IWl zG2cue-UP%>dP!dc;s$_=0P-8?JJeK7;*JGDxVmjt5x}7Ni)g_dnj?b&$B)Ui<56LS z@jW|vG3De6oe;FAC}VST!{dPV_*-2jp(c*k2&dieJDEa`4Ly_*wm%<=%KmN+{LBfW zH<~Al zOn8eGIWkNGl6#;mC@~pJj0o@y;Ni1}j3wA~977ZcJ$J?=-rO1I3$Z=J*6_ z(3rW$5j#pmOTa}#!X8NwTa%dyFN2S!aX=9kGj=peM0SdFvW#V-$so%m8jpxBUUC8? z7J6cmkO!fN&)JECAAV*coH=e*1Y%ZTG*cYQKB7qCFuI8dp4T-ID*>6Q7(Q{E)M+?E6OtBfN9oX|*IQxsV~#Us!Zh!IlYJKAGlrZqeizK{ZP~Hs0L76L zXDN5B=@ zm!&cgF;}8iz7ZMR%^!%ZKM+;iIy5^9gkLXaqXN4N>`{hLod0RR91w=>m; literal 0 HcmV?d00001 diff --git a/dist/font/roboto-regular.woff b/dist/font/roboto-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..6da01409e31a46f2a62e10944ac4b748015286e6 GIT binary patch literal 25040 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 literal 0 HcmV?d00001 diff --git a/dist/ueblueprint.js b/dist/ueblueprint.js index 5a3f06a..d0781fa 100644 --- a/dist/ueblueprint.js +++ b/dist/ueblueprint.js @@ -318,6 +318,10 @@ class GraphElement extends HTMLElement { this.template = template; } + getTemplate() { + return this.template + } + connectedCallback() { this.blueprint = this.closest("ueb-blueprint"); this.template.apply(this); @@ -380,7 +384,7 @@ class SelectorTemplate extends Template { apply(selector) { super.apply(selector); selector.classList.add("ueb-selector"); - selector.dataset.selecting = "false"; + this.applyFinishSelecting(selector); } /** @@ -410,7 +414,7 @@ class SelectorTemplate extends Template { * Applies the style relative to selection finishing. * @param {GraphSelector} selector Selector element */ - applyFinishSelecting(selector, finalPosition) { + applyFinishSelecting(selector) { selector.dataset.selecting = "false"; } } @@ -506,7 +510,7 @@ class BlueprintTemplate extends Template { /** * Applies the style to the element. - * @param {Blueprint} brueprint The blueprint element + * @param {Blueprint} blueprint The blueprint element */ apply(blueprint) { super.apply(blueprint); @@ -518,11 +522,12 @@ class BlueprintTemplate extends Template { blueprint.nodesContainerElement = blueprint.querySelector("[data-nodes]"); blueprint.selectorElement = new GraphSelector(); blueprint.nodesContainerElement.append(blueprint.selectorElement, ...blueprint.nodes); + this.applyEndDragScrolling(blueprint); } /** * Applies the style to the element. - * @param {Blueprint} brueprint The blueprint element + * @param {Blueprint} blueprint The blueprint element */ applyZoom(blueprint, newZoom) { blueprint.classList.remove("ueb-zoom-" + sanitizeText$1(blueprint.zoom)); @@ -531,7 +536,7 @@ class BlueprintTemplate extends Template { /** * Applies the style to the element. - * @param {Blueprint} brueprint The blueprint element + * @param {Blueprint} blueprint The blueprint element */ applyExpand(blueprint) { blueprint.gridElement.style.setProperty("--ueb-additional-x", sanitizeText$1(blueprint.additional[0])); @@ -540,12 +545,28 @@ class BlueprintTemplate extends Template { /** * Applies the style to the element. - * @param {Blueprint} brueprint The blueprint element + * @param {Blueprint} blueprint The blueprint element */ applyTranlate(blueprint) { blueprint.gridElement.style.setProperty("--ueb-translate-x", sanitizeText$1(blueprint.translateValue[0])); blueprint.gridElement.style.setProperty("--ueb-translate-y", sanitizeText$1(blueprint.translateValue[1])); } + + /** + * Applies the style to the element. + * @param {Blueprint} blueprint The blueprint element + */ + applyStartDragScrolling(blueprint) { + blueprint.gridElement.dataset.dragScrolling = true; + } + + /** + * Applies the style to the element. + * @param {Blueprint} blueprint The blueprint element + */ + applyEndDragScrolling(blueprint) { + blueprint.gridElement.dataset.dragScrolling = false; + } } class Context { @@ -1442,9 +1463,17 @@ class MouseClickDrag extends Pointing { class DragScroll extends MouseClickDrag { + startDrag() { + this.blueprint.template.applyStartDragScrolling(this.blueprint); + } + dragTo(location, movement) { this.blueprint.scrollDelta([-movement[0], -movement[1]]); } + + endDrag() { + this.blueprint.template.applyEndDragScrolling(this.blueprint); + } } class KeyboardShortcut extends Context { @@ -1499,6 +1528,9 @@ class KeyboardShortcut extends Context { class Configuration { static deleteNodesKeyboardKey = "Delete" + static expandGridSize = 400 + static gridSize = 16 + static gridSnap = 16 } class KeyvoardCanc extends KeyboardShortcut { @@ -1887,10 +1919,7 @@ class DragMove extends MouseClickDrag { startDrag() { if (isNaN(this.stepSize) || this.stepSize <= 0) { - this.stepSize = parseInt(getComputedStyle(this.target).getPropertyValue("--ueb-grid-snap")); - if (isNaN(this.stepSize) || this.stepSize <= 0) { - this.stepSize = 1; - } + this.stepSize = this.blueprint.gridSnap; } // Get the current mouse position this.mousePosition = this.stepSize != 1 ? this.snapToGrid(this.clickedPosition) : this.clickedPosition; @@ -2055,14 +2084,18 @@ class Paste extends Context { } pasted(value) { - let top = Number.MAX_SAFE_INTEGER; - let left = Number.MAX_SAFE_INTEGER; + let top = 0; + let left = 0; + let count = 0; let nodes = this.serializer.readMultiple(value).map(entity => { let node = new GraphNode(entity); - top = Math.min(top, node.location[1]); - left = Math.min(left, node.location[0]); + top += node.location[1]; + left += node.location[0]; + ++count; return node }); + top /= count; + left /= count; if (nodes.length > 0) { this.blueprint.unselectAll(); } @@ -2193,11 +2226,15 @@ class Blueprint extends GraphElement { super({}, new BlueprintTemplate()); /** @type {BlueprintTemplate} */ this.template; + /** @type {number} */ + this.gridSize = Configuration.gridSize; + /** @type {number} */ + this.gridSnap = Configuration.gridSnap; /** @type {GraphNode[]}" */ this.nodes = []; /** @type {GraphLink[]}" */ this.links = []; - this.expandGridSize = 400; + this.expandGridSize = Configuration.expandGridSize; /** @type {number[]} */ this.additional = /*[2 * this.expandGridSize, 2 * this.expandGridSize]*/[0, 0]; /** @type {number[]} */ @@ -2238,6 +2275,30 @@ class Blueprint extends GraphElement { }; } + /** + * Expand the grid, considers the absolute value of params + * @param {number} x - Horizontal expansion value + * @param {number} y - Vertical expansion value + */ + #expand(x, y) { + x = Math.round(Math.abs(x)); + y = Math.round(Math.abs(y)); + this.additional = [this.additional[0] + x, this.additional[1] + y]; + this.template.applyExpand(this); + } + + /** + * Moves the content of the grid according to the coordinates + * @param {number} x - Horizontal translation value + * @param {number} y - Vertical translation value + */ + #translate(x, y) { + x = Math.round(x); + y = Math.round(y); + this.translateValue = [this.translateValue[0] + x, this.translateValue[1] + y]; + this.template.applyTranlate(this); + } + connectedCallback() { super.connectedCallback(); @@ -2246,17 +2307,18 @@ class Blueprint extends GraphElement { this.cancObject = new KeyvoardCanc(this.getGridDOMElement(), this); this.zoomObject = new Zoom(this.getGridDOMElement(), this, { - looseTarget: true + looseTarget: true, }); this.selectObject = new Select(this.getGridDOMElement(), this, { clickButton: 0, + exitAnyButton: true, moveEverywhere: true, - exitAnyButton: true }); this.dragObject = new DragScroll(this.getGridDOMElement(), this, { clickButton: 2, + exitAnyButton: false, + looseTarget: true, moveEverywhere: true, - exitAnyButton: false }); this.unfocusObject = new Unfocus(this.getGridDOMElement(), this); @@ -2364,28 +2426,11 @@ class Blueprint extends GraphElement { ] } - /** - * Expand the grid, considers the absolute value of params - * @param {number} x - Horizontal expansion value - * @param {number} y - Vertical expansion value - */ - _expand(x, y) { - x = Math.round(Math.abs(x)); - y = Math.round(Math.abs(y)); - this.additional = [this.additional[0] + x, this.additional[1] + y]; - this.template.applyExpand(this); - } - - /** - * Moves the content of the grid according to the coordinates - * @param {number} x - Horizontal translation value - * @param {number} y - Vertical translation value - */ - _translate(x, y) { - x = Math.round(x); - y = Math.round(y); - this.translateValue = [this.translateValue[0] + x, this.translateValue[1] + y]; - this.template.applyTranlate(this); + snapToGrid(location) { + return [ + this.gridSnap * Math.round(location[0] / this.gridSnap), + this.gridSnap * Math.round(location[1] / this.gridSnap) + ] } /** @@ -2398,9 +2443,9 @@ class Blueprint extends GraphElement { let scaledX = x / scale; let scaledY = y / scale; // First expand the grid to contain the additional space - this._expand(scaledX, scaledY); + this.#expand(scaledX, scaledY); // If the expansion is towards the left or top, then scroll back to give the illusion that the content is in the same position and translate it accordingly - this._translate(scaledX < 0 ? -scaledX : 0, scaledY < 0 ? -scaledY : 0); + this.#translate(scaledX < 0 ? -scaledX : 0, scaledY < 0 ? -scaledY : 0); if (x < 0) { this.viewportElement.scrollLeft -= x; } diff --git a/index.html b/index.html index 2b7cf56..e434c66 100755 --- a/index.html +++ b/index.html @@ -7,8 +7,8 @@ - - + + diff --git a/js/Blueprint.js b/js/Blueprint.js index 4d3f6ce..d937759 100755 --- a/js/Blueprint.js +++ b/js/Blueprint.js @@ -12,6 +12,7 @@ import Utility from "./Utility" import Zoom from "./input/Zoom" import GraphNode from "./graph/GraphNode" import GraphLink from "./graph/GraphLink" +import Configuration from "./Configuration" export default class Blueprint extends GraphElement { @@ -19,11 +20,15 @@ export default class Blueprint extends GraphElement { super({}, new BlueprintTemplate()) /** @type {BlueprintTemplate} */ this.template + /** @type {number} */ + this.gridSize = Configuration.gridSize + /** @type {number} */ + this.gridSnap = Configuration.gridSnap /** @type {GraphNode[]}" */ this.nodes = [] /** @type {GraphLink[]}" */ this.links = [] - this.expandGridSize = 400 + this.expandGridSize = Configuration.expandGridSize /** @type {number[]} */ this.additional = /*[2 * this.expandGridSize, 2 * this.expandGridSize]*/[0, 0] /** @type {number[]} */ @@ -64,6 +69,30 @@ export default class Blueprint extends GraphElement { } } + /** + * Expand the grid, considers the absolute value of params + * @param {number} x - Horizontal expansion value + * @param {number} y - Vertical expansion value + */ + #expand(x, y) { + x = Math.round(Math.abs(x)) + y = Math.round(Math.abs(y)) + this.additional = [this.additional[0] + x, this.additional[1] + y] + this.template.applyExpand(this) + } + + /** + * Moves the content of the grid according to the coordinates + * @param {number} x - Horizontal translation value + * @param {number} y - Vertical translation value + */ + #translate(x, y) { + x = Math.round(x) + y = Math.round(y) + this.translateValue = [this.translateValue[0] + x, this.translateValue[1] + y] + this.template.applyTranlate(this) + } + connectedCallback() { super.connectedCallback() @@ -72,17 +101,18 @@ export default class Blueprint extends GraphElement { this.cancObject = new KeyboardCanc(this.getGridDOMElement(), this) this.zoomObject = new Zoom(this.getGridDOMElement(), this, { - looseTarget: true + looseTarget: true, }) this.selectObject = new Select(this.getGridDOMElement(), this, { clickButton: 0, + exitAnyButton: true, moveEverywhere: true, - exitAnyButton: true }) this.dragObject = new DragScroll(this.getGridDOMElement(), this, { clickButton: 2, + exitAnyButton: false, + looseTarget: true, moveEverywhere: true, - exitAnyButton: false }) this.unfocusObject = new Unfocus(this.getGridDOMElement(), this) @@ -190,28 +220,11 @@ export default class Blueprint extends GraphElement { ] } - /** - * Expand the grid, considers the absolute value of params - * @param {number} x - Horizontal expansion value - * @param {number} y - Vertical expansion value - */ - _expand(x, y) { - x = Math.round(Math.abs(x)) - y = Math.round(Math.abs(y)) - this.additional = [this.additional[0] + x, this.additional[1] + y] - this.template.applyExpand(this) - } - - /** - * Moves the content of the grid according to the coordinates - * @param {number} x - Horizontal translation value - * @param {number} y - Vertical translation value - */ - _translate(x, y) { - x = Math.round(x) - y = Math.round(y) - this.translateValue = [this.translateValue[0] + x, this.translateValue[1] + y] - this.template.applyTranlate(this) + snapToGrid(location) { + return [ + this.gridSnap * Math.round(location[0] / this.gridSnap), + this.gridSnap * Math.round(location[1] / this.gridSnap) + ] } /** @@ -224,9 +237,9 @@ export default class Blueprint extends GraphElement { let scaledX = x / scale let scaledY = y / scale // First expand the grid to contain the additional space - this._expand(scaledX, scaledY) + this.#expand(scaledX, scaledY) // If the expansion is towards the left or top, then scroll back to give the illusion that the content is in the same position and translate it accordingly - this._translate(scaledX < 0 ? -scaledX : 0, scaledY < 0 ? -scaledY : 0) + this.#translate(scaledX < 0 ? -scaledX : 0, scaledY < 0 ? -scaledY : 0) if (x < 0) { this.viewportElement.scrollLeft -= x } diff --git a/js/Configuration.js b/js/Configuration.js index 10d2219..d5153aa 100644 --- a/js/Configuration.js +++ b/js/Configuration.js @@ -1,4 +1,7 @@ export default class Configuration { static deleteNodesKeyboardKey = "Delete" -} \ No newline at end of file + static expandGridSize = 400 + static gridSize = 16 + static gridSnap = 16 +} diff --git a/js/graph/GraphElement.js b/js/graph/GraphElement.js index b322f9e..e86e801 100755 --- a/js/graph/GraphElement.js +++ b/js/graph/GraphElement.js @@ -14,6 +14,10 @@ export default class GraphElement extends HTMLElement { this.template = template } + getTemplate() { + return this.template + } + connectedCallback() { this.blueprint = this.closest("ueb-blueprint") this.template.apply(this) diff --git a/js/input/DragMove.js b/js/input/DragMove.js index c3b278b..a66cc62 100755 --- a/js/input/DragMove.js +++ b/js/input/DragMove.js @@ -17,10 +17,7 @@ export default class DragMove extends MouseClickDrag { startDrag() { if (isNaN(this.stepSize) || this.stepSize <= 0) { - this.stepSize = parseInt(getComputedStyle(this.target).getPropertyValue("--ueb-grid-snap")) - if (isNaN(this.stepSize) || this.stepSize <= 0) { - this.stepSize = 1 - } + this.stepSize = this.blueprint.gridSnap } // Get the current mouse position this.mousePosition = this.stepSize != 1 ? this.snapToGrid(this.clickedPosition) : this.clickedPosition diff --git a/js/input/DragScroll.js b/js/input/DragScroll.js index 0358692..8811e66 100755 --- a/js/input/DragScroll.js +++ b/js/input/DragScroll.js @@ -2,7 +2,15 @@ import MouseClickDrag from "./MouseClickDrag" export default class DragScroll extends MouseClickDrag { + startDrag() { + this.blueprint.template.applyStartDragScrolling(this.blueprint) + } + dragTo(location, movement) { this.blueprint.scrollDelta([-movement[0], -movement[1]]) } + + endDrag() { + this.blueprint.template.applyEndDragScrolling(this.blueprint) + } } diff --git a/js/input/Paste.js b/js/input/Paste.js index 0589104..7559a1d 100644 --- a/js/input/Paste.js +++ b/js/input/Paste.js @@ -21,14 +21,18 @@ export default class Paste extends Context { } pasted(value) { - let top = Number.MAX_SAFE_INTEGER - let left = Number.MAX_SAFE_INTEGER + let top = 0 + let left = 0 + let count = 0 let nodes = this.serializer.readMultiple(value).map(entity => { let node = new GraphNode(entity) - top = Math.min(top, node.location[1]) - left = Math.min(left, node.location[0]) + top += node.location[1] + left += node.location[0] + ++count return node }) + top /= count + left /= count if (nodes.length > 0) { this.blueprint.unselectAll() } diff --git a/js/template/BlueprintTemplate.js b/js/template/BlueprintTemplate.js index 4120642..40ff9fe 100755 --- a/js/template/BlueprintTemplate.js +++ b/js/template/BlueprintTemplate.js @@ -55,7 +55,7 @@ export default class BlueprintTemplate extends Template { /** * Applies the style to the element. - * @param {Blueprint} brueprint The blueprint element + * @param {Blueprint} blueprint The blueprint element */ apply(blueprint) { super.apply(blueprint) @@ -67,11 +67,12 @@ export default class BlueprintTemplate extends Template { blueprint.nodesContainerElement = blueprint.querySelector("[data-nodes]") blueprint.selectorElement = new GraphSelector() blueprint.nodesContainerElement.append(blueprint.selectorElement, ...blueprint.nodes) + this.applyEndDragScrolling(blueprint) } /** * Applies the style to the element. - * @param {Blueprint} brueprint The blueprint element + * @param {Blueprint} blueprint The blueprint element */ applyZoom(blueprint, newZoom) { blueprint.classList.remove("ueb-zoom-" + sanitizeText(blueprint.zoom)) @@ -80,7 +81,7 @@ export default class BlueprintTemplate extends Template { /** * Applies the style to the element. - * @param {Blueprint} brueprint The blueprint element + * @param {Blueprint} blueprint The blueprint element */ applyExpand(blueprint) { blueprint.gridElement.style.setProperty("--ueb-additional-x", sanitizeText(blueprint.additional[0])) @@ -89,10 +90,26 @@ export default class BlueprintTemplate extends Template { /** * Applies the style to the element. - * @param {Blueprint} brueprint The blueprint element + * @param {Blueprint} blueprint The blueprint element */ applyTranlate(blueprint) { blueprint.gridElement.style.setProperty("--ueb-translate-x", sanitizeText(blueprint.translateValue[0])) blueprint.gridElement.style.setProperty("--ueb-translate-y", sanitizeText(blueprint.translateValue[1])) } + + /** + * Applies the style to the element. + * @param {Blueprint} blueprint The blueprint element + */ + applyStartDragScrolling(blueprint) { + blueprint.gridElement.dataset.dragScrolling = true + } + + /** + * Applies the style to the element. + * @param {Blueprint} blueprint The blueprint element + */ + applyEndDragScrolling(blueprint) { + blueprint.gridElement.dataset.dragScrolling = false + } } diff --git a/js/template/SelectorTemplate.js b/js/template/SelectorTemplate.js index 4bdd34e..5430e8c 100644 --- a/js/template/SelectorTemplate.js +++ b/js/template/SelectorTemplate.js @@ -13,7 +13,7 @@ export default class SelectorTemplate extends Template { apply(selector) { super.apply(selector) selector.classList.add("ueb-selector") - selector.dataset.selecting = "false" + this.applyFinishSelecting(selector) } /** @@ -43,7 +43,7 @@ export default class SelectorTemplate extends Template { * Applies the style relative to selection finishing. * @param {GraphSelector} selector Selector element */ - applyFinishSelecting(selector, finalPosition) { + applyFinishSelecting(selector) { selector.dataset.selecting = "false" } } diff --git a/package.json b/package.json index 53b9438..2433244 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Unreal Engine's Blueprint visualisation library", "main": "ueblueprint.js", "scripts": { - "build": "rollup --config && sass scss:css --style=compressed" + "build": "rollup --config && sass scss:dist/css --style=compressed" }, "repository": { "type": "git", @@ -25,6 +25,7 @@ "@rollup/plugin-commonjs": "^21.0.0", "@rollup/plugin-node-resolve": "^13.0.5", "rollup": "^2.58.0", + "rollup-plugin-copy": "^3.4.0", "rollup-plugin-minify-html-template-literals": "^1.2.0", "rollup-plugin-terser": "^7.0.2", "sass": "^1.45.1", diff --git a/rollup.config.js b/rollup.config.js index 091aa48..b0129ba 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -2,6 +2,7 @@ import { nodeResolve } from '@rollup/plugin-node-resolve' import minifyHTML from 'rollup-plugin-minify-html-template-literals' import commonjs from '@rollup/plugin-commonjs' import { terser } from 'rollup-plugin-terser' +import copy from 'rollup-plugin-copy' export default { input: 'js/export.js', @@ -14,5 +15,13 @@ export default { //minifyHTML(), commonjs(), //terser() + copy({ + targets: [ + { + src: ["font/*"], + dest: "dist/font" + } + ] + }) ] } \ No newline at end of file diff --git a/scss/ueblueprint-style.css b/scss/ueblueprint-style.css index d79d31a..ad0a6b9 100644 --- a/scss/ueblueprint-style.css +++ b/scss/ueblueprint-style.css @@ -116,6 +116,10 @@ ueb-blueprint[data-focused="true"] .ueb-viewport-body { overflow : hidden; } +.ueb-grid[data-drag-scrolling="true"] { + cursor: grabbing; +} + .ueb-zoom--.ueb, .ueb { /* 16/16 */ @@ -204,7 +208,7 @@ ueb-node { will-change : transform; } -ueb-selector[data-selecting="false"]~ueb-node { +.ueb-grid[data-drag-scrolling="false"] ueb-selector[data-selecting="false"]~ueb-node { cursor: move; } @@ -278,11 +282,15 @@ ueb-pin { padding: 1px 2px; } +.ueb-grid[data-drag-scrolling="false"] { + cursor: default; +} + ueb-selector[data-selecting="false"]~ueb-node ueb-pin:hover { background: var(--ueb-node-value-background); } -ueb-selector[data-selecting="false"]~ueb-node ueb-pin .ueb-node-value-icon { +.ueb-grid[data-drag-scrolling="false"] ueb-selector[data-selecting="false"]~ueb-node ueb-pin .ueb-node-value-icon { cursor: crosshair; }