Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
cleanup UI, HTML template
Browse files- client/dist/main.css +2 -2
- client/dist/main.js +0 -0
- client/dist/vendor.js +196 -196
- client/src/css/AttentionConnectorControls.scss +18 -18
- client/src/css/SentenceInput.scss +6 -5
- client/src/css/main.scss +2 -2
- client/src/package-lock.json +11 -30
- client/src/ts/vis/attentionVis.ts +2 -192
- client/src/ts/vis/staticLayout.ts +226 -0
- environment.yml +3 -1
client/dist/main.css
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;src:local("IBM Plex Sans Light"),local("IBMPlexSans-Light"),url(7eeb10384e8e1ef96c87f7074cf2ef59.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:local("IBM Plex Sans Regular"),local("IBMPlexSans-Regular"),url(05ca9c06114e79436ea9b5c8d4a7869c.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:local("IBM Plex Sans SemiBold"),local("IBMPlexSans-SemiBold"),url(a849e7649e2005ab4aecfa50d96120e1.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:local("IBM Plex Sans Bold"),local("IBMPlexSans-Bold"),url(4171e41154ba857f85c536f167d581ba.ttf) format("truetype")}
|
2 |
-
body{background-color:#fff;font-family:IBM Plex Sans,sans-serif;font-weight:400}.sticky{position:fixed}.noscroll{overflow:hidden}.vpartial{max-height:90vh}.scrolling{overflow:auto;max-height:98%}.btn .btn-xs{padding:.25rem .4rem;font-size:.875rem;line-height:.5;border-radius:.2rem}button{-webkit-transition-duration:.4s;transition-duration:.4s;background:transparent;padding:5px;border-radius:5px;background-color:#d3d3d3}button.selected,button:active :focus{background-color:#98b7d9}#loader{border:5px solid #f3f3f3;border-radius:50%;border-top:5px solid #3498db;width:100px;height:100px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite;position:absolute;left:50%;top:20%;display:none}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}svg{vertical-align:top}select{font-size:9pt;font-weight:600;background-color:transparent;padding:8px 6px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border:0;outline:0}.navbar{position:absolute;top:0;left:0;width:100%;height:50px;background-color:#faebd7}.navbarContent{margin:10px 20px}.navbarContent span{padding-left:10px}.navbarContent button{margin-left:10px}.navbarTitle{font-size:12pt;font-weight:700}.main_frame{position:fixed;top:55px;overflow-x:hidden;overflow-y:auto}.floating_content{padding:10px;height:94%}.container{width:100%;height:95%;text-align:center;display:inline-block;margin:5px auto}#bottom-margin{height:100px}.content{max-width:960px;margin:auto}.whitespace{height:8vh}#sentence-input{margin-bottom:0;margin-right:0;
|
3 |
|
4 |
-
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9mb250cy9wbGV4X3NhbnMuY3NzIiwid2VicGFjazovLy8uL2Nzcy9jc3MvYmFzZS5zY3NzIiwid2VicGFjazovLy8uL2Nzcy9jc3MvU2VudGVuY2VJbnB1dC5zY3NzIiwid2VicGFjazovLy8uL2Nzcy9jc3MvQXR0ZW50aW9uQ29ubmVjdG9yQ29udHJvbHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jc3MvY3NzL21haW4uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxXQUNFLDBCQUNBLGtCQUNBLGdCQUNBLDRHQUEySCxDQUc3SCxXQUNFLDBCQUNBLGtCQUNBLGdCQUNBLGdIQUFpSSxDQUduSSxXQUNFLDBCQUNBLGtCQUNBLGdCQUNBLGtIQUFvSSxDQUd0SSxXQUNFLDBCQUNBLGtCQUNBLGdCQUNBLDBHQUF3SCxDQUN6SCxnRDtBQzNCRCxLQUNFLHNCQUNBLHFDQUNBLGVBQWdCLENBR2xCLFFBQ0UsY0FBZSxDQUdqQixVQUNFLGVBQWdCLENBR2xCLFVBQ0UsZUFBZ0IsQ0FHbEIsV0FDRSxjQUNBLGNBQWUsQ0FHakIsYUFFSSxxQkFDQSxrQkFDQSxlQUNBLG1CQUFxQixDQUl6QixPQUNFLGdDQUNBLHdCQUNBLHVCQUNBLFlBQ0Esa0JBQ0Esd0JBQTJCLENBTzdCLHFDQUNFLHdCQUF5QixDQUczQixRQUNFLHlCQUNBLGtCQUNBLDZCQUNBLFlBQ0EsYUFDQSwwQ0FDQSxrQ0FDQSxrQkFDQSxTQUNBLFFBQ0EsWUFBYSxDQUlmLHdCQUNFLEdBQ0UsOEJBQStCLENBRWpDLEdBQ0UsK0JBQWlDLEVBSXJDLGdCQUNFLEdBQ0Usc0JBQXVCLENBRXpCLEdBQ0UsdUJBQXlCLEVBSTdCLElBQ0Usa0JBQW1CLENBR3JCLE9BQ0UsY0FDQSxnQkFHQSw2QkFLQSxnQkFNQSw4QkFDQSwyQkFDQSxzQkFDQSxrQkFDQSxTQUNBLFNBQVUsQ0FFWixRQUNFLGtCQUNBLE1BQ0EsT0FDQSxXQUNBLFlBQ0Esd0JBQThCLENBSWhDLGVBQ0UsZ0JBQWlCLENBU2xCLG9CQU5HLGlCQUFrQixDQUNuQixzQkFHQyxnQkFBaUIsQ0FJckIsYUFDRSxlQUVBLGVBQWlCLENBR25CLFlBQ0UsZUFDQSxTQUdBLGtCQUNBLGVBQWdCLENBR2xCLGtCQUNFLGFBQ0EsVUFBVyxDQUdiLFdBQ0UsV0FDQSxXQUNBLGtCQUNBLHFCQUNBLGVBQWdCLENBR2xCLGVBQ0UsWUFBYSxDQUdmLFNBQ0UsZ0JBQ0EsV0FBWSxDQUdkLFlBQ0UsVUFBVyxDQ3hLYixnQkFDSSxnQkFDQSxlQUNBLGlCQUNBLFVBQVcsQ0F3QmQscUJBckJPLGFBQ0EsbUJBQ0EsaUJBQ0EsNkJBQ0Esa0JBQW1CLENBZ0J0QixpQ0FiTyxXQUFZLENBUWYsdUNBSk8sVUFDQSxnQkFDQSxlQUFnQixDQUNuQiwwQkFJRCxXQUFZLENDMUJ4QixtQkFDQyxlQUNELENBRUEscUJBQ0MsWUFDRyxrQkFBbUIsQ0FHdkIsb0JBQ0MsYUFDQSwrQkFBa0MsQ0FHbkMsaUJBQ0Msb0JBQ0Esa0JBQ0EsaUJBQ0EsZUFDQSxZQUNBLGtCQUNBLFNBQVUsQ0FHWCxRQUNDLHdCQUNBLFdBQ0EsWUFDQSxrQkFDQSxtQkFDQSxhQUNBLFdBQ0EsdUJBQ0Esc0JBQXVCLENBR3hCLGNBQ0MsU0FBVSxDQUdYLDhCQUNDLHdCQUNBLGdCQUNBLFdBQ0EsWUFDQSxrQkFDQSxnQkFDQSxjQUFlLENBR2hCLGlCQUNDLG9CQUNBLGtCQUNBLGlCQUNBLGNBQWUsQ0FHaEIsY0FDQyxpQkFBa0IsQ0FHbkIsZUFDQyxhQUNBLG1CQUNBLGlCQUNBLHVCQUNBLGdCQUVBLGNBQ0EsV0FDQSxrQkFBbUIsQ0ErQm5CLCtCQTVCQyxRQUNBLHFCQUNBLGtCQUFtQixDQUNuQiw0QkFHQSxRQUNBLGlCQUNBLGtCQUFtQixDQUNuQiw0QkFJQSxRQUNBLGtCQUFtQixDQUNuQiw2QkFHQSxRQUNBLGdCQUNBLGtCQUFtQixDQUNuQixnQ0FHQSxRQUNBLGtCQUFtQixDQUtyQixVQUNDLG1CQUFxQixDQUd0QixPQUNDLGFBQWMsQ0FHZixXQUNDLFVBRUEsYUFBYyxDQUdmLGNBQ0Msb0JBQXNCLENBR3ZCLFlBQ0MsU0FBVSxDQUdYLGdCQUdDLHdCQUE4QixDQUkvQixRQUNDLGtCQUNBLHFCQUNBLFdBQ0EsV0FBWSxDQVFaLGNBSkMsVUFDQSxRQUNBLFFBQVMsQ0FLWCxjQUVDLGVBQ0EsTUFDQSxPQUNBLFFBQ0EsU0FDQSxxQkFBc0IsQ0FldEIsbUNBckJBLGtCQU9BLHVCQUNBLGNBQWUsQ0FZZCxxQkFSQSxXQUNBLFlBQ0EsV0FDQSxTQUNBLFdBQ0EscUJBQXVCLENBTXpCLDRCQUNDLHdCQUF5QixDQUcxQiwwQkFDQywwQkFBMkIsQ0FHNUIsbUNBQ0MsbUNBQ0EsK0JBQ0EsMEJBQTJCLENBSTVCLG9CQUNDLGtCQUFtQixDQUdwQiwyQkFDQyxpQkFBa0IsQ0FHbkIsa0JBQ0MsZ0JBQ0Esa0JBQW1CLENDN0xwQixLQUNFLDBCQUNBLGlCQUNBLGtCQUNBLFVBQ0EsZ0JBQWlCLENBR25CLGVBQ0UseUJBQ0EsaUJBQ0EsaUJBQWtCLENBTW5CLHNCQUhHLFdBQ0Esd0JBQXlCLENBSTdCLFdBQ0UsV0FDQSxhQUNBLDREQUNBLGNBQ0EsZ0JBQWlCLENBR25CLFdBQ0UsV0FBWSxDQUdkLE1BQ0UsZUFBZ0IsQ0FHbEIsUUFDRSxXQUNBLHlCQUNBLFlBQ0EsaUJBQWtCLENBNEJuQixxQkF6QkcsWUFDQSxxQkFDQSxpQkFDQSxlQUNBLGlCQUFrQixDQUNuQixxQkFFQyxjQUNBLFlBQ0EscUJBQ0EsWUFDQSxrQkFDQSxlQUFnQixDQUVqQixvQkFJQyxrQkFDQSxxQkFDQSxlQUNBLGdCQUNBLGVBQ0EsaUJBQWtCLENBSXRCLGFBQ0UsOEJBQW1DLENBR3JDLGdCQUNFLGlCQUFrQixDQUdwQiw4QkFDRSxxQkFDQSxpQkFBa0IsQ0FHcEIsdUNBR0ksb0JBQXFCLENBSXpCLFlBQ0UsZ0JBQ0EsY0FDQSxjQUFlLENBR2pCLE1BQ0UsY0FBZSxDQUdqQix3Q0FFSSxvQkFDQSxjQUNBLGtCQUNBLGtCQUNBLG9DQUNBLGNBQWUsQ0FLaEIsMENBSEcsc0JBQXVCLENBTTdCLG1CQUNJLDhCQUNBLGVBQWdCLENBR3BCLGtCQUNJLDhCQUNBLGdCQUFpQixDQUdyQixZQUNFLHVCQUNBLDZCQUNBLGdDQUNBLHVCQUF3QixDIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJQk0gUGxleCBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IGxvY2FsKCdJQk0gUGxleCBTYW5zIExpZ2h0JyksIGxvY2FsKCdJQk1QbGV4U2Fucy1MaWdodCcpLCB1cmwoSUJNX1BsZXhfU2Fucy9JQk1QbGV4U2Fucy1MaWdodC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSUJNIFBsZXggU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiBsb2NhbCgnSUJNIFBsZXggU2FucyBSZWd1bGFyJyksIGxvY2FsKCdJQk1QbGV4U2Fucy1SZWd1bGFyJyksIHVybChJQk1fUGxleF9TYW5zL0lCTVBsZXhTYW5zLVJlZ3VsYXIudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0lCTSBQbGV4IFNhbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHNyYzogbG9jYWwoJ0lCTSBQbGV4IFNhbnMgU2VtaUJvbGQnKSwgbG9jYWwoJ0lCTVBsZXhTYW5zLVNlbWlCb2xkJyksIHVybChJQk1fUGxleF9TYW5zL0lCTVBsZXhTYW5zLVNlbWlCb2xkLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJQk0gUGxleCBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IGxvY2FsKCdJQk0gUGxleCBTYW5zIEJvbGQnKSwgbG9jYWwoJ0lCTVBsZXhTYW5zLUJvbGQnKSwgdXJsKElCTV9QbGV4X1NhbnMvSUJNUGxleFNhbnMtQm9sZC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cbiIsImJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7XG4gIGZvbnQtZmFtaWx5OiAnSUJNIFBsZXggU2FucycsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5zdGlja3kge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cbi5ub3Njcm9sbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi52cGFydGlhbCB7XG4gIG1heC1oZWlnaHQ6IDkwdmg7XG59XG5cbi5zY3JvbGxpbmcge1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LWhlaWdodDogOTglO1xufVxuXG4uYnRuIHtcbiAgLmJ0bi14cyB7XG4gICAgcGFkZGluZyAgOiAuMjVyZW0gLjRyZW07XG4gICAgZm9udC1zaXplICA6IC44NzVyZW07XG4gICAgbGluZS1oZWlnaHQgIDogLjU7XG4gICAgYm9yZGVyLXJhZGl1cyA6IC4ycmVtO1xuICB9XG59XG5cbmJ1dHRvbiB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40czsgLyogU2FmYXJpICovXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNHM7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xuXG4gICYuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5OGI3ZDk7XG4gIH1cbn1cblxuYnV0dG9uOmFjdGl2ZSA6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOThiN2Q5O1xufVxuXG4jbG9hZGVyIHtcbiAgYm9yZGVyOiA1cHggc29saWQgI2YzZjNmMztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXItdG9wOiA1cHggc29saWQgIzM0OThkYjtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7IC8qIFNhZmFyaSAqL1xuICBhbmltYXRpb246IHNwaW4gMnMgbGluZWFyIGluZmluaXRlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAyMCU7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFNhZmFyaSAqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuc3ZnIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuc2VsZWN0IHtcbiAgZm9udC1zaXplOiA5cHQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgLy9iYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEwcHgnIGhlaWdodD0nMTBweCc+PHBvbHlsaW5lIHBvaW50cz0nMCwwIDEwLDAgNSwxMCcvPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC8vYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgLy9iYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCA1cHggdG9wIDlweDtcbiAgLy9iYWNrZ3JvdW5kLXNpemU6IDdweCA3cHg7XG4gIC8vcGFkZGluZzogNXB4IDE1cHggNXB4IDVweDtcbiAgcGFkZGluZzogOHB4IDZweDtcbiAgLy93aWR0aDogYXV0bztcbiAgLy9mb250LXNpemU6MTZweDtcbiAgLy9mb250LXdlaWdodDogYm9sZDtcbiAgLy90ZXh0LWFsaWduOmNlbnRlcjtcbiAgLy90ZXh0LXNoYWRvdzowIC0xcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG59XG4ubmF2YmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGFudGlxdWV3aGl0ZTtcbiAgLy9wYWRkaW5nOiAxMHB4IDEwcHggMTBweCAzMHB4O1xufVxuXG4ubmF2YmFyQ29udGVudCB7XG4gIG1hcmdpbjogMTBweCAyMHB4O1xuXG4gIHNwYW4ge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgfVxuXG4gIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbn1cblxuLm5hdmJhclRpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB0O1xuICAvL21hcmdpbjogNXB0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm1haW5fZnJhbWUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTVweDtcbiAgLy9tYXJnaW46IDBweCA1MHB4IDBweCA1MHB4O1xuICAvL2JhY2tncm91bmQ6ICNmZmZmZmY7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmZsb2F0aW5nX2NvbnRlbnQge1xuICBwYWRkaW5nOiAxMHB4O1xuICBoZWlnaHQ6IDk0JTtcbn1cblxuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDk1JTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogNXB4IGF1dG87XG59XG5cbiNib3R0b20tbWFyZ2luIHtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cblxuLmNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDk2MHB4O1xuICBtYXJnaW46IGF1dG87XG59XG5cbi53aGl0ZXNwYWNlIHtcbiAgaGVpZ2h0OiA4dmg7XG59IiwiXG4jc2VudGVuY2UtaW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLmZvcm0tZ3JvdXAge1xuICAgICAgICAgICAgZmxleC1ncm93OiAzO1xuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgLy8gZmxleC1ncm93OiAzO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDUlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmlucHV0LWRlc2NyaXB0aW9uIHtcblx0Zm9udC13ZWlnaHQ6IDgwMFxufVxuXG4jY29ubmVjdG9yLWNvbnRhaW5lciB7XG5cdG1hcmdpbjogNDBweCA0MHB4IDQwcHggNDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY29ubmVjdG9yLWNvbnRyb2xzIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwLjVmciAwLjVmcjtcbn1cblxuLnNsaWRlLWNvbnRhaW5lciB7XG5cdGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuXHRncmlkLWNvbHVtbi1lbmQ6IDI7XG5cdGdyaWQtcm93LXN0YXJ0OiAxO1xuXHRncmlkLXJvdy1lbmQ6IDI7XG5cdG1hcmdpbjogYXV0bztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR3aWR0aDogNzUlOyBcbn1cblxuLnNsaWRlciB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0d2lkdGg6IDEwcHg7XG5cdGhlaWdodDogMTBweDtcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRiYWNrZ3JvdW5kOiAjZDNkM2QzO1xuXHRvdXRsaW5lOiBub25lO1xuXHRvcGFjaXR5OiAwLjc7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogLjJzO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycztcbn1cblxuLnNsaWRlcjpob3ZlciB7XG5cdG9wYWNpdHk6IDE7XG59XG5cbi5zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRhcHBlYXJhbmNlOiBub25lO1xuXHR3aWR0aDogMTVweDtcblx0aGVpZ2h0OiAxNXB4O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJhY2tncm91bmQ6ICM2NjY2NjY7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2xheWVyLXNlbGVjdGlvbiB7XG5cdGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuXHRncmlkLWNvbHVtbi1lbmQ6IDI7XG5cdGdyaWQtcm93LXN0YXJ0OiAyO1xuXHRncmlkLXJvdy1lbmQ6IDM7XG5cbn1cbi5sYXllci1zZWxlY3Qge1xuXHRtYXJnaW4tYm90dG9tOiAyZW07XG59XG5cbiNhdG4tY29udGFpbmVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogdG9wO1xuXG5cdG1hcmdpbjogMCBhdXRvO1xuXHR3aWR0aDogMTAwJTtcblx0dmVydGljYWwtYWxpZ246IHRvcDtcblxuXHQjbGVmdC1hdHQtaGVhZHMge1xuXHRcdG9yZGVyOjE7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cblxuXHQjbGVmdC10b2tlbnMge1xuXHRcdG9yZGVyOiAyO1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cblxuXG5cdCNhdG4tZGlzcGxheSB7XG5cdFx0b3JkZXI6IDM7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cdCNyaWdodC10b2tlbnMge1xuXHRcdG9yZGVyOiA0O1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cdCNyaWdodC1hdHQtaGVhZHMge1xuXHRcdG9yZGVyOiA1O1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cblx0XG59XG5cbi5hdHQtcmVjdCB7XG5cdHRyYW5zaXRpb246IGZpbGwgMC4xcztcbn1cblxuLnRva2VuIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5hdG4tY3VydmUge1xuXHRmaWxsOiBub25lO1xuXHQvLyBzdHJva2Utd2lkdGg6IDM7XG5cdHN0cm9rZTogcHVycGxlO1xufVxuXG4ubWFza2VkLXRva2VuIHtcblx0Y29sb3I6IHJnYmEoMCwwLDAsMC4yKVxufVxuXG4udW5zZWxlY3RlZCB7XG5cdGZpbGw6IGdyYXk7XG59XG5cbi5zZWxlY3RlZC10b2tlbiB7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogM3B4O1xuXHRib3JkZXItY29sb3I6IHJnYigxNTMsIDE5NiwgMCk7XG59XG5cbi8qIFRoZSBzd2l0Y2ggLSB0aGUgYm94IGFyb3VuZCB0aGUgc2xpZGVyICovXG4uc3dpdGNoIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiA2MHB4O1xuXHRoZWlnaHQ6IDM0cHg7XG5cbi8qIEhpZGUgZGVmYXVsdCBIVE1MIGNoZWNrYm94ICovXG5cdGlucHV0IHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGhlaWdodDogMDtcblx0fVxufVxuXG4vKiBUaGUgc2xpZGVyICovXG4uc2hvcnQtc2xpZGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0YmFja2dyb3VuZC1jb2xvcjogI2NjYztcblx0LXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XG5cdHRyYW5zaXRpb246IC40cztcblxuXHQmOmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0aGVpZ2h0OiAyNnB4O1xuXHRcdHdpZHRoOiAyNnB4O1xuXHRcdGxlZnQ6IDRweDtcblx0XHRib3R0b206IDRweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHQtd2Via2l0LXRyYW5zaXRpb246IC40cztcblx0XHR0cmFuc2l0aW9uOiAuNHM7XG5cdH1cbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zaG9ydC1zbGlkZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufVxuXG5pbnB1dDpmb2N1cyArIC5zaG9ydC1zbGlkZXIge1xuXHRib3gtc2hhZG93OiAwIDAgMXB4ICMyMTk2RjM7XG59XG5cbmlucHV0OmNoZWNrZWQgKyAuc2hvcnQtc2xpZGVyOmJlZm9yZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xuXHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG59XG5cbi8qIFJvdW5kZWQgc2xpZGVycyAqL1xuLnNob3J0LXNsaWRlci5yb3VuZCB7XG5cdGJvcmRlci1yYWRpdXM6IDM0cHg7XG59XG5cbi5zaG9ydC1zbGlkZXIucm91bmQ6YmVmb3JlIHtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4jc2VsZWN0LWFsbC1oZWFkc3sgXG5cdG1hcmdpbi10b3A6IDIwcHg7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG59IiwiQGltcG9ydCBcInBhbGV0dGUuc2Nzc1wiO1xuLy9AaW1wb3J0IFwiTGF0b0xpZ2h0LnNjc3NcIjtcbkBpbXBvcnQgXCIuLi9mb250cy9wbGV4X3NhbnMuY3NzXCI7XG5AaW1wb3J0IFwiYmFzZVwiO1xuQGltcG9ydCBcIlNlbnRlbmNlSW5wdXRcIjtcbkBpbXBvcnQgXCJBdHRlbnRpb25Db25uZWN0b3JDb250cm9sc1wiO1xuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6ICdJQk0gUGxleCBTYW5zJztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgd2lkdGg6IDgwJTtcbiAgbWF4LXdpZHRoOiAxNTAwcHg7XG59XG5cbi5sYXllckNoZWNrYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmV5O1xuICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xuXG4gICYuYWN0aXZle1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2YzcwNjc7XG4gIH1cbn1cblxuLm1haW4tZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDAuMThmciAwLjJmciAwLjJmciAwLjA0ZnIgMC4yZnIgMC4yZnIgMC4xOGZyO1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWF4LWhlaWdodDogMTAwdmg7XG59XG5cbiN2aXMtYnJlYWsge1xuICBoZWlnaHQ6IDE1cHg7XG59XG5cbmxhYmVsIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuI2hlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gIC5oZWFkZXItbG9nb3tcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAuaGVhZGVyLWluZm97XG4gICAgZm9udC1zaXplOiA5cHQ7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OnJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIC8vbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG5cblxuICAjaGVhZGVydGV4dHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDMwJTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG59XG5cbi5oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTUyLCA4MywgMjE2LCAwLjgpO1xufVxuXG4jc2VsZWN0ZWQtaGVhZHMge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbiNjb3JwdXMtc2VsZWN0aW9uLWRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbiNjb3JwdXMtcXVlcnlpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC5idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4jdXNhZ2UtaW5mbyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGNvbG9yOiByZ2IoODcsIDg3LCA4Nyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnRpY2sge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbiNjb25uZWN0b3ItY29udGFpbmVyIHtcbiAgLm1hdC1ob3Zlci1kaXNwbGF5e1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjkzKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcCB7XG4gICAgICBtYXJnaW46IDRweCAxcHggMXB4IDRweDtcbiAgICAgIC8vIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLnJpZ2h0LXRva2VuLWhvdmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAxcHggOHB4IDhweCA4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxlZnQtdG9rZW4taG92ZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAxcHggOHB4IDhweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm5leHQtdG9rZW4ge1xuICBjb2xvcjogcmdiYSgyMjgsIDEsIDEsIDAuOCk7XG4gIC1tb3otYm94LXNoYWRvdzogMCAwIDNweCAjY2NjO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAzcHggI2NjYztcbiAgYm94LXNoYWRvdzogMCAwIDNweCAjY2NjO1xufSJdLCJzb3VyY2VSb290IjoiIn0=*/
|
|
|
1 |
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;src:local("IBM Plex Sans Light"),local("IBMPlexSans-Light"),url(7eeb10384e8e1ef96c87f7074cf2ef59.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;src:local("IBM Plex Sans Regular"),local("IBMPlexSans-Regular"),url(05ca9c06114e79436ea9b5c8d4a7869c.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;src:local("IBM Plex Sans SemiBold"),local("IBMPlexSans-SemiBold"),url(a849e7649e2005ab4aecfa50d96120e1.ttf) format("truetype")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;src:local("IBM Plex Sans Bold"),local("IBMPlexSans-Bold"),url(4171e41154ba857f85c536f167d581ba.ttf) format("truetype")}
|
2 |
+
body{background-color:#fff;font-family:IBM Plex Sans,sans-serif;font-weight:400}.sticky{position:fixed}.noscroll{overflow:hidden}.vpartial{max-height:90vh}.scrolling{overflow:auto;max-height:98%}.btn .btn-xs{padding:.25rem .4rem;font-size:.875rem;line-height:.5;border-radius:.2rem}button{-webkit-transition-duration:.4s;transition-duration:.4s;background:transparent;padding:5px;border-radius:5px;background-color:#d3d3d3}button.selected,button:active :focus{background-color:#98b7d9}#loader{border:5px solid #f3f3f3;border-radius:50%;border-top:5px solid #3498db;width:100px;height:100px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite;position:absolute;left:50%;top:20%;display:none}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}svg{vertical-align:top}select{font-size:9pt;font-weight:600;background-color:transparent;padding:8px 6px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border:0;outline:0}.navbar{position:absolute;top:0;left:0;width:100%;height:50px;background-color:#faebd7}.navbarContent{margin:10px 20px}.navbarContent span{padding-left:10px}.navbarContent button{margin-left:10px}.navbarTitle{font-size:12pt;font-weight:700}.main_frame{position:fixed;top:55px;overflow-x:hidden;overflow-y:auto}.floating_content{padding:10px;height:94%}.container{width:100%;height:95%;text-align:center;display:inline-block;margin:5px auto}#bottom-margin{height:100px}.content{max-width:960px;margin:auto}.whitespace{height:8vh}#sentence-input{margin-bottom:0;margin-right:0;width:100%}#sentence-input form{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-evenly;align-items:center}#sentence-input form .form-group{flex-grow:3}#sentence-input form .form-group input{width:100%}#sentence-input form .btn{flex-grow:1}.input-description{font-weight:800}#connector-container{align-items:center}.connector-controls{display:grid;grid-template-columns:.5fr .5fr}.slider{-webkit-appearance:none;width:10px;height:10px;border-radius:5px;background:#d3d3d3;outline:none;opacity:.7;-webkit-transition:.2s;transition:opacity .2s}.slider:hover{opacity:1}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:15px;height:15px;border-radius:50%;background:#666;cursor:pointer}#layer-selection{grid-column-start:1;grid-column-end:2;grid-row-start:2;grid-row-end:3}.layer-select{margin-bottom:2em}#atn-container{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:top;margin:0 auto;width:100%;vertical-align:top}#atn-container #left-att-heads{order:1;display:inline-block;vertical-align:top}#atn-container #left-tokens{order:2;text-align:right;vertical-align:top}#atn-container #atn-display{order:3;vertical-align:top}#atn-container #right-tokens{order:4;text-align:left;vertical-align:top}#atn-container #right-att-heads{order:5;vertical-align:top}.att-rect{transition:fill .1s}.token{display:block}.atn-curve{fill:none;stroke:purple}.masked-token{color:rgba(0,0,0,.2)}.unselected{fill:gray}.selected-token{border:3px solid #99c400}.switch{position:relative;display:inline-block;width:46px;height:20px}.switch input{opacity:0;width:0;height:0}.short-slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc}.short-slider,.short-slider:before{position:absolute;-webkit-transition:.4s;transition:.4s}.short-slider:before{content:"";height:13px;width:13px;left:4px;bottom:4px;background-color:#fff}input:checked+.short-slider{background-color:#2196f3}input:focus+.short-slider{box-shadow:0 0 1px #2196f3}input:checked+.short-slider:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translateX(26px)}.short-slider.round{border-radius:17px}.short-slider.round:before{border-radius:50%}#select-all-heads{margin-top:20px;margin-bottom:20px}body{font-family:IBM Plex Sans;margin-left:auto;margin-right:auto;width:80%;max-width:1500px}.layerCheckbox{background-color:#d3d3d3;padding-left:8px;padding-right:8px}.layerCheckbox.active{color:#fff;background-color:#6c7067}.main-grid{width:100%;display:grid;grid-template-columns:.18fr .2fr .2fr .04fr .2fr .2fr .18fr;overflow:auto;max-height:100vh}#vis-break{height:15px}#header{width:100%;background-color:#d3d3d3;height:40px;margin-bottom:5px}#header .header-logo{height:20px;display:inline-block;margin-left:10px;margin-top:5px;margin-bottom:5px}#header .header-info{font-size:9pt;height:30px;display:inline-block;float:right;margin-right:10px;margin-top:10px}#header #headertext{text-align:center;display:inline-block;font-size:18px;margin-left:30%;margin-top:5px;margin-bottom:5px}.highlighted{background:rgba(152,83,216,.8)}#selected-heads{margin-bottom:1em}#corpus-selection-description{display:inline-block;margin-right:15px}#corpus-querying,#corpus-querying .btn{display:inline-block}#usage-info{margin-top:10px;color:#575757;font-size:14px}.tick{font-size:18px}#connector-container .mat-hover-display{pointer-events:none;display:block;position:absolute;visibility:hidden;background-color:hsla(0,0%,78%,.93);font-size:14px}#connector-container .mat-hover-display p{margin:4px 1px 1px 4px}.right-token-hover{border-radius:1px 8px 8px 8px;text-align:left}.left-token-hover{border-radius:8px 1px 8px 8px;text-align:right}.next-token{color:rgba(228,1,1,.8);-moz-box-shadow:0 0 3px #ccc;-webkit-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc}
|
3 |
|
4 |
+
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9mb250cy9wbGV4X3NhbnMuY3NzIiwid2VicGFjazovLy8uL2Nzcy9jc3MvYmFzZS5zY3NzIiwid2VicGFjazovLy8uL2Nzcy9jc3MvU2VudGVuY2VJbnB1dC5zY3NzIiwid2VicGFjazovLy8uL2Nzcy9jc3MvQXR0ZW50aW9uQ29ubmVjdG9yQ29udHJvbHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9jc3MvY3NzL21haW4uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxXQUNFLDBCQUNBLGtCQUNBLGdCQUNBLDRHQUEySCxDQUc3SCxXQUNFLDBCQUNBLGtCQUNBLGdCQUNBLGdIQUFpSSxDQUduSSxXQUNFLDBCQUNBLGtCQUNBLGdCQUNBLGtIQUFvSSxDQUd0SSxXQUNFLDBCQUNBLGtCQUNBLGdCQUNBLDBHQUF3SCxDQUN6SCxnRDtBQzNCRCxLQUNFLHNCQUNBLHFDQUNBLGVBQWdCLENBR2xCLFFBQ0UsY0FBZSxDQUdqQixVQUNFLGVBQWdCLENBR2xCLFVBQ0UsZUFBZ0IsQ0FHbEIsV0FDRSxjQUNBLGNBQWUsQ0FHakIsYUFFSSxxQkFDQSxrQkFDQSxlQUNBLG1CQUFxQixDQUl6QixPQUNFLGdDQUNBLHdCQUNBLHVCQUNBLFlBQ0Esa0JBQ0Esd0JBQTJCLENBTzdCLHFDQUNFLHdCQUF5QixDQUczQixRQUNFLHlCQUNBLGtCQUNBLDZCQUNBLFlBQ0EsYUFDQSwwQ0FDQSxrQ0FDQSxrQkFDQSxTQUNBLFFBQ0EsWUFBYSxDQUlmLHdCQUNFLEdBQ0UsOEJBQStCLENBRWpDLEdBQ0UsK0JBQWlDLEVBSXJDLGdCQUNFLEdBQ0Usc0JBQXVCLENBRXpCLEdBQ0UsdUJBQXlCLEVBSTdCLElBQ0Usa0JBQW1CLENBR3JCLE9BQ0UsY0FDQSxnQkFHQSw2QkFLQSxnQkFNQSw4QkFDQSwyQkFDQSxzQkFDQSxrQkFDQSxTQUNBLFNBQVUsQ0FFWixRQUNFLGtCQUNBLE1BQ0EsT0FDQSxXQUNBLFlBQ0Esd0JBQThCLENBSWhDLGVBQ0UsZ0JBQWlC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dGVudCI6WyIvKiBjeXJpbGxpYy1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0lCTSBQbGV4IFNhbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogbG9jYWwoJ0lCTSBQbGV4IFNhbnMgTGlnaHQnKSwgbG9jYWwoJ0lCTVBsZXhTYW5zLUxpZ2h0JyksIHVybChJQk1fUGxleF9TYW5zL0lCTVBsZXhTYW5zLUxpZ2h0LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJQk0gUGxleCBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IGxvY2FsKCdJQk0gUGxleCBTYW5zIFJlZ3VsYXInKSwgbG9jYWwoJ0lCTVBsZXhTYW5zLVJlZ3VsYXInKSwgdXJsKElCTV9QbGV4X1NhbnMvSUJNUGxleFNhbnMtUmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSUJNIFBsZXggU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgc3JjOiBsb2NhbCgnSUJNIFBsZXggU2FucyBTZW1pQm9sZCcpLCBsb2NhbCgnSUJNUGxleFNhbnMtU2VtaUJvbGQnKSwgdXJsKElCTV9QbGV4X1NhbnMvSUJNUGxleFNhbnMtU2VtaUJvbGQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0lCTSBQbGV4IFNhbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogbG9jYWwoJ0lCTSBQbGV4IFNhbnMgQm9sZCcpLCBsb2NhbCgnSUJNUGxleFNhbnMtQm9sZCcpLCB1cmwoSUJNX1BsZXhfU2Fucy9JQk1QbGV4U2Fucy1Cb2xkLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuIiwiYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgZm9udC1mYW1pbHk6ICdJQk0gUGxleCBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLm5vc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZwYXJ0aWFsIHtcbiAgbWF4LWhlaWdodDogOTB2aDtcbn1cblxuLnNjcm9sbGluZyB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiA5OCU7XG59XG5cbi5idG4ge1xuICAuYnRuLXhzIHtcbiAgICBwYWRkaW5nICA6IC4yNXJlbSAuNHJlbTtcbiAgICBmb250LXNpemUgIDogLjg3NXJlbTtcbiAgICBsaW5lLWhlaWdodCAgOiAuNTtcbiAgICBib3JkZXItcmFkaXVzIDogLjJyZW07XG4gIH1cbn1cblxuYnV0dG9uIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjRzOyAvKiBTYWZhcmkgKi9cbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40cztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG5cbiAgJi5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk4YjdkOTtcbiAgfVxufVxuXG5idXR0b246YWN0aXZlIDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5OGI3ZDk7XG59XG5cbiNsb2FkZXIge1xuICBib3JkZXI6IDVweCBzb2xpZCAjZjNmM2YzO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMzQ5OGRiO1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTsgLyogU2FmYXJpICovXG4gIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDIwJTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogU2FmYXJpICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG5zdmcge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG5zZWxlY3Qge1xuICBmb250LXNpemU6IDlwdDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAvL2JhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTBweCcgaGVpZ2h0PScxMHB4Jz48cG9seWxpbmUgcG9pbnRzPScwLDAgMTAsMCA1LDEwJy8+PC9zdmc+XCIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLy9iYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAvL2JhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDVweCB0b3AgOXB4O1xuICAvL2JhY2tncm91bmQtc2l6ZTogN3B4IDdweDtcbiAgLy9wYWRkaW5nOiA1cHggMTVweCA1cHggNXB4O1xuICBwYWRkaW5nOiA4cHggNnB4O1xuICAvL3dpZHRoOiBhdXRvO1xuICAvL2ZvbnQtc2l6ZToxNnB4O1xuICAvL2ZvbnQtd2VpZ2h0OiBib2xkO1xuICAvL3RleHQtYWxpZ246Y2VudGVyO1xuICAvL3RleHQtc2hhZG93OjAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbn1cbi5uYXZiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogYW50aXF1ZXdoaXRlO1xuICAvL3BhZGRpbmc6IDEwcHggMTBweCAxMHB4IDMwcHg7XG59XG5cbi5uYXZiYXJDb250ZW50IHtcbiAgbWFyZ2luOiAxMHB4IDIwcHg7XG5cbiAgc3BhbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxufVxuXG4ubmF2YmFyVGl0bGUge1xuICBmb250LXNpemU6IDEycHQ7XG4gIC8vbWFyZ2luOiA1cHQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubWFpbl9mcmFtZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA1NXB4O1xuICAvL21hcmdpbjogMHB4IDUwcHggMHB4IDUwcHg7XG4gIC8vYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uZmxvYXRpbmdfY29udGVudCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGhlaWdodDogOTQlO1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogOTUlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiA1cHggYXV0bztcbn1cblxuI2JvdHRvbS1tYXJnaW4ge1xuICBoZWlnaHQ6IDEwMHB4O1xufVxuXG4uY29udGVudCB7XG4gIG1heC13aWR0aDogOTYwcHg7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLndoaXRlc3BhY2Uge1xuICBoZWlnaHQ6IDh2aDtcbn0iLCJcbiNzZW50ZW5jZS1pbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgIC8vbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cblxuICAgIGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLmZvcm0tZ3JvdXAge1xuICAgICAgICAgICAgZmxleC1ncm93OiAzO1xuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgLy8gZmxleC1ncm93OiAzO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIC8vbWF4LXdpZHRoOiA3MDBweDtcbiAgICAgICAgICAgICAgICAvL21hcmdpbi1yaWdodDogNSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnRuIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5pbnB1dC1kZXNjcmlwdGlvbiB7XG5cdGZvbnQtd2VpZ2h0OiA4MDBcbn1cblxuI2Nvbm5lY3Rvci1jb250YWluZXIge1xuXHQvL21hcmdpbjogNDBweCA0MHB4IDQwcHggNDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY29ubmVjdG9yLWNvbnRyb2xzIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwLjVmciAwLjVmcjtcbn1cblxuLy8uc2xpZGUtY29udGFpbmVyIHtcbi8vXHRncmlkLWNvbHVtbi1zdGFydDogMTtcbi8vXHRncmlkLWNvbHVtbi1lbmQ6IDI7XG4vL1x0Z3JpZC1yb3ctc3RhcnQ6IDE7XG4vL1x0Z3JpZC1yb3ctZW5kOiAyO1xuLy9cdG1hcmdpbjogYXV0bztcbi8vXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG4vL1x0d2lkdGg6IDc1JTtcbi8vfVxuXG4uc2xpZGVyIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHR3aWR0aDogMTBweDtcblx0aGVpZ2h0OiAxMHB4O1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdGJhY2tncm91bmQ6ICNkM2QzZDM7XG5cdG91dGxpbmU6IG5vbmU7XG5cdG9wYWNpdHk6IDAuNztcblx0LXdlYmtpdC10cmFuc2l0aW9uOiAuMnM7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgLjJzO1xufVxuXG4uc2xpZGVyOmhvdmVyIHtcblx0b3BhY2l0eTogMTtcbn1cblxuLnNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdGFwcGVhcmFuY2U6IG5vbmU7XG5cdHdpZHRoOiAxNXB4O1xuXHRoZWlnaHQ6IDE1cHg7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0YmFja2dyb3VuZDogIzY2NjY2Njtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuXG4jbGF5ZXItc2VsZWN0aW9uIHtcblx0Z3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG5cdGdyaWQtY29sdW1uLWVuZDogMjtcblx0Z3JpZC1yb3ctc3RhcnQ6IDI7XG5cdGdyaWQtcm93LWVuZDogMztcblxufVxuLmxheWVyLXNlbGVjdCB7XG5cdG1hcmdpbi1ib3R0b206IDJlbTtcbn1cblxuI2F0bi1jb250YWluZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiB0b3A7XG5cblx0bWFyZ2luOiAwIGF1dG87XG5cdHdpZHRoOiAxMDAlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cdCNsZWZ0LWF0dC1oZWFkcyB7XG5cdFx0b3JkZXI6MTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cdCNsZWZ0LXRva2VucyB7XG5cdFx0b3JkZXI6IDI7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG5cblx0I2F0bi1kaXNwbGF5IHtcblx0XHRvcmRlcjogMztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR9XG5cblx0I3JpZ2h0LXRva2VucyB7XG5cdFx0b3JkZXI6IDQ7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR9XG5cblx0I3JpZ2h0LWF0dC1oZWFkcyB7XG5cdFx0b3JkZXI6IDU7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxuXG59XG5cbi5hdHQtcmVjdCB7XG5cdHRyYW5zaXRpb246IGZpbGwgMC4xcztcbn1cblxuLnRva2VuIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5hdG4tY3VydmUge1xuXHRmaWxsOiBub25lO1xuXHQvLyBzdHJva2Utd2lkdGg6IDM7XG5cdHN0cm9rZTogcHVycGxlO1xufVxuXG4ubWFza2VkLXRva2VuIHtcblx0Y29sb3I6IHJnYmEoMCwwLDAsMC4yKVxufVxuXG4udW5zZWxlY3RlZCB7XG5cdGZpbGw6IGdyYXk7XG59XG5cbi5zZWxlY3RlZC10b2tlbiB7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci13aWR0aDogM3B4O1xuXHRib3JkZXItY29sb3I6IHJnYigxNTMsIDE5NiwgMCk7XG59XG5cbi8qIFRoZSBzd2l0Y2ggLSB0aGUgYm94IGFyb3VuZCB0aGUgc2xpZGVyICovXG4uc3dpdGNoIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiA0NnB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cbi8qIEhpZGUgZGVmYXVsdCBIVE1MIGNoZWNrYm94ICovXG5cdGlucHV0IHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGhlaWdodDogMDtcblx0fVxufVxuXG4vKiBUaGUgc2xpZGVyICovXG4uc2hvcnQtc2xpZGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0YmFja2dyb3VuZC1jb2xvcjogI2NjYztcblx0LXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XG5cdHRyYW5zaXRpb246IC40cztcblxuXHQmOmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0aGVpZ2h0OiAxM3B4O1xuXHRcdHdpZHRoOiAxM3B4O1xuXHRcdGxlZnQ6IDRweDtcblx0XHRib3R0b206IDRweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHQtd2Via2l0LXRyYW5zaXRpb246IC40cztcblx0XHR0cmFuc2l0aW9uOiAuNHM7XG5cdH1cbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zaG9ydC1zbGlkZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzO1xufVxuXG5pbnB1dDpmb2N1cyArIC5zaG9ydC1zbGlkZXIge1xuXHRib3gtc2hhZG93OiAwIDAgMXB4ICMyMTk2RjM7XG59XG5cbmlucHV0OmNoZWNrZWQgKyAuc2hvcnQtc2xpZGVyOmJlZm9yZSB7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xuXHQtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG59XG5cbi8qIFJvdW5kZWQgc2xpZGVycyAqL1xuLnNob3J0LXNsaWRlci5yb3VuZCB7XG5cdGJvcmRlci1yYWRpdXM6IDE3cHg7XG59XG5cbi5zaG9ydC1zbGlkZXIucm91bmQ6YmVmb3JlIHtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4jc2VsZWN0LWFsbC1oZWFkc3tcblx0bWFyZ2luLXRvcDogMjBweDtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbiIsIkBpbXBvcnQgXCJwYWxldHRlLnNjc3NcIjtcbi8vQGltcG9ydCBcIkxhdG9MaWdodC5zY3NzXCI7XG5AaW1wb3J0IFwiLi4vZm9udHMvcGxleF9zYW5zLmNzc1wiO1xuQGltcG9ydCBcImJhc2VcIjtcbkBpbXBvcnQgXCJTZW50ZW5jZUlucHV0XCI7XG5AaW1wb3J0IFwiQXR0ZW50aW9uQ29ubmVjdG9yQ29udHJvbHNcIjtcblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAnSUJNIFBsZXggU2Fucyc7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHdpZHRoOiA4MCU7XG4gIG1heC13aWR0aDogMTUwMHB4O1xufVxuXG4ubGF5ZXJDaGVja2JveCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JleTtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcblxuICAmLmFjdGl2ZXtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmM3MDY3O1xuICB9XG59XG5cbi5tYWluLWdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAwLjE4ZnIgMC4yZnIgMC4yZnIgMC4wNGZyIDAuMmZyIDAuMmZyIDAuMThmcjtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xufVxuXG4jdmlzLWJyZWFrIHtcbiAgaGVpZ2h0OiAxNXB4O1xufVxuXG5sYWJlbCB7XG4gIC8vbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuI2hlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG4gIGhlaWdodDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gIC5oZWFkZXItbG9nb3tcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAuaGVhZGVyLWluZm97XG4gICAgZm9udC1zaXplOiA5cHQ7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OnJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIC8vbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG5cblxuICAjaGVhZGVydGV4dHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDMwJTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICB9XG59XG5cbi5oaWdobGlnaHRlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTUyLCA4MywgMjE2LCAwLjgpO1xufVxuXG4jc2VsZWN0ZWQtaGVhZHMge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbiNjb3JwdXMtc2VsZWN0aW9uLWRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG59XG5cbiNjb3JwdXMtcXVlcnlpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC5idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG4jdXNhZ2UtaW5mbyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGNvbG9yOiByZ2IoODcsIDg3LCA4Nyk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnRpY2sge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbiNjb25uZWN0b3ItY29udGFpbmVyIHtcbiAgLm1hdC1ob3Zlci1kaXNwbGF5e1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjkzKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgcCB7XG4gICAgICBtYXJnaW46IDRweCAxcHggMXB4IDRweDtcbiAgICAgIC8vIG1hcmdpbjogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLnJpZ2h0LXRva2VuLWhvdmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAxcHggOHB4IDhweCA4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxlZnQtdG9rZW4taG92ZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAxcHggOHB4IDhweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm5leHQtdG9rZW4ge1xuICBjb2xvcjogcmdiYSgyMjgsIDEsIDEsIDAuOCk7XG4gIC1tb3otYm94LXNoYWRvdzogMCAwIDNweCAjY2NjO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAzcHggI2NjYztcbiAgYm94LXNoYWRvdzogMCAwIDNweCAjY2NjO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/
|
client/dist/main.js
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
client/dist/vendor.js
CHANGED
@@ -78567,202 +78567,202 @@ __webpack_require__.r(__webpack_exports__);
|
|
78567 |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
|
78568 |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
|
78569 |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
|
78570 |
-
/*! *****************************************************************************
|
78571 |
-
Copyright (c) Microsoft Corporation. All rights reserved.
|
78572 |
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
78573 |
-
this file except in compliance with the License. You may obtain a copy of the
|
78574 |
-
License at http://www.apache.org/licenses/LICENSE-2.0
|
78575 |
-
|
78576 |
-
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
78577 |
-
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
78578 |
-
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
78579 |
-
MERCHANTABLITY OR NON-INFRINGEMENT.
|
78580 |
-
|
78581 |
-
See the Apache Version 2.0 License for specific language governing permissions
|
78582 |
-
and limitations under the License.
|
78583 |
-
***************************************************************************** */
|
78584 |
-
/* global Reflect, Promise */
|
78585 |
-
|
78586 |
-
var extendStatics = function(d, b) {
|
78587 |
-
extendStatics = Object.setPrototypeOf ||
|
78588 |
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
78589 |
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
78590 |
-
return extendStatics(d, b);
|
78591 |
-
};
|
78592 |
-
|
78593 |
-
function __extends(d, b) {
|
78594 |
-
extendStatics(d, b);
|
78595 |
-
function __() { this.constructor = d; }
|
78596 |
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
78597 |
-
}
|
78598 |
-
|
78599 |
-
var __assign = function() {
|
78600 |
-
__assign = Object.assign || function __assign(t) {
|
78601 |
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
78602 |
-
s = arguments[i];
|
78603 |
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
78604 |
-
}
|
78605 |
-
return t;
|
78606 |
-
}
|
78607 |
-
return __assign.apply(this, arguments);
|
78608 |
-
}
|
78609 |
-
|
78610 |
-
function __rest(s, e) {
|
78611 |
-
var t = {};
|
78612 |
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
78613 |
-
t[p] = s[p];
|
78614 |
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
78615 |
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
78616 |
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
78617 |
-
t[p[i]] = s[p[i]];
|
78618 |
-
}
|
78619 |
-
return t;
|
78620 |
-
}
|
78621 |
-
|
78622 |
-
function __decorate(decorators, target, key, desc) {
|
78623 |
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
78624 |
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
78625 |
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
78626 |
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
78627 |
-
}
|
78628 |
-
|
78629 |
-
function __param(paramIndex, decorator) {
|
78630 |
-
return function (target, key) { decorator(target, key, paramIndex); }
|
78631 |
-
}
|
78632 |
-
|
78633 |
-
function __metadata(metadataKey, metadataValue) {
|
78634 |
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
78635 |
-
}
|
78636 |
-
|
78637 |
-
function __awaiter(thisArg, _arguments, P, generator) {
|
78638 |
-
return new (P || (P = Promise))(function (resolve, reject) {
|
78639 |
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
78640 |
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
78641 |
-
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
78642 |
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
78643 |
-
});
|
78644 |
-
}
|
78645 |
-
|
78646 |
-
function __generator(thisArg, body) {
|
78647 |
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
78648 |
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
78649 |
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
78650 |
-
function step(op) {
|
78651 |
-
if (f) throw new TypeError("Generator is already executing.");
|
78652 |
-
while (_) try {
|
78653 |
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
78654 |
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
78655 |
-
switch (op[0]) {
|
78656 |
-
case 0: case 1: t = op; break;
|
78657 |
-
case 4: _.label++; return { value: op[1], done: false };
|
78658 |
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
78659 |
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
78660 |
-
default:
|
78661 |
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
78662 |
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
78663 |
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
78664 |
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
78665 |
-
if (t[2]) _.ops.pop();
|
78666 |
-
_.trys.pop(); continue;
|
78667 |
-
}
|
78668 |
-
op = body.call(thisArg, _);
|
78669 |
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
78670 |
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
78671 |
-
}
|
78672 |
-
}
|
78673 |
-
|
78674 |
-
function __exportStar(m, exports) {
|
78675 |
-
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
78676 |
-
}
|
78677 |
-
|
78678 |
-
function __values(o) {
|
78679 |
-
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
78680 |
-
if (m) return m.call(o);
|
78681 |
-
return {
|
78682 |
-
next: function () {
|
78683 |
-
if (o && i >= o.length) o = void 0;
|
78684 |
-
return { value: o && o[i++], done: !o };
|
78685 |
-
}
|
78686 |
-
};
|
78687 |
-
}
|
78688 |
-
|
78689 |
-
function __read(o, n) {
|
78690 |
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
78691 |
-
if (!m) return o;
|
78692 |
-
var i = m.call(o), r, ar = [], e;
|
78693 |
-
try {
|
78694 |
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
78695 |
-
}
|
78696 |
-
catch (error) { e = { error: error }; }
|
78697 |
-
finally {
|
78698 |
-
try {
|
78699 |
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
78700 |
-
}
|
78701 |
-
finally { if (e) throw e.error; }
|
78702 |
-
}
|
78703 |
-
return ar;
|
78704 |
-
}
|
78705 |
-
|
78706 |
-
function __spread() {
|
78707 |
-
for (var ar = [], i = 0; i < arguments.length; i++)
|
78708 |
-
ar = ar.concat(__read(arguments[i]));
|
78709 |
-
return ar;
|
78710 |
-
}
|
78711 |
-
|
78712 |
-
function __spreadArrays() {
|
78713 |
-
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
78714 |
-
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
78715 |
-
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
78716 |
-
r[k] = a[j];
|
78717 |
-
return r;
|
78718 |
-
};
|
78719 |
-
|
78720 |
-
function __await(v) {
|
78721 |
-
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
78722 |
-
}
|
78723 |
-
|
78724 |
-
function __asyncGenerator(thisArg, _arguments, generator) {
|
78725 |
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
78726 |
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
78727 |
-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
78728 |
-
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
78729 |
-
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
78730 |
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
78731 |
-
function fulfill(value) { resume("next", value); }
|
78732 |
-
function reject(value) { resume("throw", value); }
|
78733 |
-
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
78734 |
-
}
|
78735 |
-
|
78736 |
-
function __asyncDelegator(o) {
|
78737 |
-
var i, p;
|
78738 |
-
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
78739 |
-
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
|
78740 |
-
}
|
78741 |
-
|
78742 |
-
function __asyncValues(o) {
|
78743 |
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
78744 |
-
var m = o[Symbol.asyncIterator], i;
|
78745 |
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
78746 |
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
78747 |
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
78748 |
-
}
|
78749 |
-
|
78750 |
-
function __makeTemplateObject(cooked, raw) {
|
78751 |
-
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
78752 |
-
return cooked;
|
78753 |
-
};
|
78754 |
-
|
78755 |
-
function __importStar(mod) {
|
78756 |
-
if (mod && mod.__esModule) return mod;
|
78757 |
-
var result = {};
|
78758 |
-
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
78759 |
-
result.default = mod;
|
78760 |
-
return result;
|
78761 |
-
}
|
78762 |
-
|
78763 |
-
function __importDefault(mod) {
|
78764 |
-
return (mod && mod.__esModule) ? mod : { default: mod };
|
78765 |
-
}
|
78766 |
|
78767 |
|
78768 |
/***/ }),
|
|
|
78567 |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
|
78568 |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
|
78569 |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
|
78570 |
+
/*! *****************************************************************************
|
78571 |
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
78572 |
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
78573 |
+
this file except in compliance with the License. You may obtain a copy of the
|
78574 |
+
License at http://www.apache.org/licenses/LICENSE-2.0
|
78575 |
+
|
78576 |
+
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
78577 |
+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
78578 |
+
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
78579 |
+
MERCHANTABLITY OR NON-INFRINGEMENT.
|
78580 |
+
|
78581 |
+
See the Apache Version 2.0 License for specific language governing permissions
|
78582 |
+
and limitations under the License.
|
78583 |
+
***************************************************************************** */
|
78584 |
+
/* global Reflect, Promise */
|
78585 |
+
|
78586 |
+
var extendStatics = function(d, b) {
|
78587 |
+
extendStatics = Object.setPrototypeOf ||
|
78588 |
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
78589 |
+
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
78590 |
+
return extendStatics(d, b);
|
78591 |
+
};
|
78592 |
+
|
78593 |
+
function __extends(d, b) {
|
78594 |
+
extendStatics(d, b);
|
78595 |
+
function __() { this.constructor = d; }
|
78596 |
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
78597 |
+
}
|
78598 |
+
|
78599 |
+
var __assign = function() {
|
78600 |
+
__assign = Object.assign || function __assign(t) {
|
78601 |
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
78602 |
+
s = arguments[i];
|
78603 |
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
78604 |
+
}
|
78605 |
+
return t;
|
78606 |
+
}
|
78607 |
+
return __assign.apply(this, arguments);
|
78608 |
+
}
|
78609 |
+
|
78610 |
+
function __rest(s, e) {
|
78611 |
+
var t = {};
|
78612 |
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
78613 |
+
t[p] = s[p];
|
78614 |
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
78615 |
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
78616 |
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
78617 |
+
t[p[i]] = s[p[i]];
|
78618 |
+
}
|
78619 |
+
return t;
|
78620 |
+
}
|
78621 |
+
|
78622 |
+
function __decorate(decorators, target, key, desc) {
|
78623 |
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
78624 |
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
78625 |
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
78626 |
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
78627 |
+
}
|
78628 |
+
|
78629 |
+
function __param(paramIndex, decorator) {
|
78630 |
+
return function (target, key) { decorator(target, key, paramIndex); }
|
78631 |
+
}
|
78632 |
+
|
78633 |
+
function __metadata(metadataKey, metadataValue) {
|
78634 |
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
|
78635 |
+
}
|
78636 |
+
|
78637 |
+
function __awaiter(thisArg, _arguments, P, generator) {
|
78638 |
+
return new (P || (P = Promise))(function (resolve, reject) {
|
78639 |
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
78640 |
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
78641 |
+
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
78642 |
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
78643 |
+
});
|
78644 |
+
}
|
78645 |
+
|
78646 |
+
function __generator(thisArg, body) {
|
78647 |
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
78648 |
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
78649 |
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
78650 |
+
function step(op) {
|
78651 |
+
if (f) throw new TypeError("Generator is already executing.");
|
78652 |
+
while (_) try {
|
78653 |
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
78654 |
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
78655 |
+
switch (op[0]) {
|
78656 |
+
case 0: case 1: t = op; break;
|
78657 |
+
case 4: _.label++; return { value: op[1], done: false };
|
78658 |
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
78659 |
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
78660 |
+
default:
|
78661 |
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
78662 |
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
78663 |
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
78664 |
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
78665 |
+
if (t[2]) _.ops.pop();
|
78666 |
+
_.trys.pop(); continue;
|
78667 |
+
}
|
78668 |
+
op = body.call(thisArg, _);
|
78669 |
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
78670 |
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
78671 |
+
}
|
78672 |
+
}
|
78673 |
+
|
78674 |
+
function __exportStar(m, exports) {
|
78675 |
+
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
78676 |
+
}
|
78677 |
+
|
78678 |
+
function __values(o) {
|
78679 |
+
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
78680 |
+
if (m) return m.call(o);
|
78681 |
+
return {
|
78682 |
+
next: function () {
|
78683 |
+
if (o && i >= o.length) o = void 0;
|
78684 |
+
return { value: o && o[i++], done: !o };
|
78685 |
+
}
|
78686 |
+
};
|
78687 |
+
}
|
78688 |
+
|
78689 |
+
function __read(o, n) {
|
78690 |
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
78691 |
+
if (!m) return o;
|
78692 |
+
var i = m.call(o), r, ar = [], e;
|
78693 |
+
try {
|
78694 |
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
78695 |
+
}
|
78696 |
+
catch (error) { e = { error: error }; }
|
78697 |
+
finally {
|
78698 |
+
try {
|
78699 |
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
78700 |
+
}
|
78701 |
+
finally { if (e) throw e.error; }
|
78702 |
+
}
|
78703 |
+
return ar;
|
78704 |
+
}
|
78705 |
+
|
78706 |
+
function __spread() {
|
78707 |
+
for (var ar = [], i = 0; i < arguments.length; i++)
|
78708 |
+
ar = ar.concat(__read(arguments[i]));
|
78709 |
+
return ar;
|
78710 |
+
}
|
78711 |
+
|
78712 |
+
function __spreadArrays() {
|
78713 |
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
78714 |
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
78715 |
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
78716 |
+
r[k] = a[j];
|
78717 |
+
return r;
|
78718 |
+
};
|
78719 |
+
|
78720 |
+
function __await(v) {
|
78721 |
+
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
78722 |
+
}
|
78723 |
+
|
78724 |
+
function __asyncGenerator(thisArg, _arguments, generator) {
|
78725 |
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
78726 |
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
78727 |
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
78728 |
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
78729 |
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
78730 |
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
78731 |
+
function fulfill(value) { resume("next", value); }
|
78732 |
+
function reject(value) { resume("throw", value); }
|
78733 |
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
78734 |
+
}
|
78735 |
+
|
78736 |
+
function __asyncDelegator(o) {
|
78737 |
+
var i, p;
|
78738 |
+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
78739 |
+
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
|
78740 |
+
}
|
78741 |
+
|
78742 |
+
function __asyncValues(o) {
|
78743 |
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
78744 |
+
var m = o[Symbol.asyncIterator], i;
|
78745 |
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
78746 |
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
78747 |
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
78748 |
+
}
|
78749 |
+
|
78750 |
+
function __makeTemplateObject(cooked, raw) {
|
78751 |
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
78752 |
+
return cooked;
|
78753 |
+
};
|
78754 |
+
|
78755 |
+
function __importStar(mod) {
|
78756 |
+
if (mod && mod.__esModule) return mod;
|
78757 |
+
var result = {};
|
78758 |
+
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
78759 |
+
result.default = mod;
|
78760 |
+
return result;
|
78761 |
+
}
|
78762 |
+
|
78763 |
+
function __importDefault(mod) {
|
78764 |
+
return (mod && mod.__esModule) ? mod : { default: mod };
|
78765 |
+
}
|
78766 |
|
78767 |
|
78768 |
/***/ }),
|
client/src/css/AttentionConnectorControls.scss
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
}
|
4 |
|
5 |
#connector-container {
|
6 |
-
margin: 40px 40px 40px 40px;
|
7 |
align-items: center;
|
8 |
}
|
9 |
|
@@ -12,15 +12,15 @@
|
|
12 |
grid-template-columns: 0.5fr 0.5fr;
|
13 |
}
|
14 |
|
15 |
-
|
16 |
-
grid-column-start: 1;
|
17 |
-
grid-column-end: 2;
|
18 |
-
grid-row-start: 1;
|
19 |
-
grid-row-end: 2;
|
20 |
-
margin: auto;
|
21 |
-
text-align: center;
|
22 |
-
width: 75%;
|
23 |
-
}
|
24 |
|
25 |
.slider {
|
26 |
-webkit-appearance: none;
|
@@ -98,7 +98,7 @@
|
|
98 |
order: 5;
|
99 |
vertical-align: top;
|
100 |
}
|
101 |
-
|
102 |
}
|
103 |
|
104 |
.att-rect {
|
@@ -133,8 +133,8 @@
|
|
133 |
.switch {
|
134 |
position: relative;
|
135 |
display: inline-block;
|
136 |
-
width:
|
137 |
-
height:
|
138 |
|
139 |
/* Hide default HTML checkbox */
|
140 |
input {
|
@@ -159,8 +159,8 @@
|
|
159 |
&:before {
|
160 |
position: absolute;
|
161 |
content: "";
|
162 |
-
height:
|
163 |
-
width:
|
164 |
left: 4px;
|
165 |
bottom: 4px;
|
166 |
background-color: white;
|
@@ -185,14 +185,14 @@ input:checked + .short-slider:before {
|
|
185 |
|
186 |
/* Rounded sliders */
|
187 |
.short-slider.round {
|
188 |
-
border-radius:
|
189 |
}
|
190 |
|
191 |
.short-slider.round:before {
|
192 |
border-radius: 50%;
|
193 |
}
|
194 |
|
195 |
-
#select-all-heads{
|
196 |
margin-top: 20px;
|
197 |
margin-bottom: 20px;
|
198 |
-
}
|
|
|
3 |
}
|
4 |
|
5 |
#connector-container {
|
6 |
+
//margin: 40px 40px 40px 40px;
|
7 |
align-items: center;
|
8 |
}
|
9 |
|
|
|
12 |
grid-template-columns: 0.5fr 0.5fr;
|
13 |
}
|
14 |
|
15 |
+
//.slide-container {
|
16 |
+
// grid-column-start: 1;
|
17 |
+
// grid-column-end: 2;
|
18 |
+
// grid-row-start: 1;
|
19 |
+
// grid-row-end: 2;
|
20 |
+
// margin: auto;
|
21 |
+
// text-align: center;
|
22 |
+
// width: 75%;
|
23 |
+
//}
|
24 |
|
25 |
.slider {
|
26 |
-webkit-appearance: none;
|
|
|
98 |
order: 5;
|
99 |
vertical-align: top;
|
100 |
}
|
101 |
+
|
102 |
}
|
103 |
|
104 |
.att-rect {
|
|
|
133 |
.switch {
|
134 |
position: relative;
|
135 |
display: inline-block;
|
136 |
+
width: 46px;
|
137 |
+
height: 20px;
|
138 |
|
139 |
/* Hide default HTML checkbox */
|
140 |
input {
|
|
|
159 |
&:before {
|
160 |
position: absolute;
|
161 |
content: "";
|
162 |
+
height: 13px;
|
163 |
+
width: 13px;
|
164 |
left: 4px;
|
165 |
bottom: 4px;
|
166 |
background-color: white;
|
|
|
185 |
|
186 |
/* Rounded sliders */
|
187 |
.short-slider.round {
|
188 |
+
border-radius: 17px;
|
189 |
}
|
190 |
|
191 |
.short-slider.round:before {
|
192 |
border-radius: 50%;
|
193 |
}
|
194 |
|
195 |
+
#select-all-heads{
|
196 |
margin-top: 20px;
|
197 |
margin-bottom: 20px;
|
198 |
+
}
|
client/src/css/SentenceInput.scss
CHANGED
@@ -2,9 +2,10 @@
|
|
2 |
#sentence-input {
|
3 |
margin-bottom: 0px;
|
4 |
margin-right: 0px;
|
5 |
-
margin-left: 10px;
|
6 |
width: 100%;
|
7 |
|
|
|
8 |
form {
|
9 |
display: flex;
|
10 |
flex-direction: row;
|
@@ -17,9 +18,9 @@
|
|
17 |
|
18 |
input {
|
19 |
// flex-grow: 3;
|
20 |
-
width:
|
21 |
-
max-width: 700px;
|
22 |
-
margin-right: 5%;
|
23 |
}
|
24 |
}
|
25 |
|
@@ -27,4 +28,4 @@
|
|
27 |
flex-grow: 1;
|
28 |
}
|
29 |
}
|
30 |
-
}
|
|
|
2 |
#sentence-input {
|
3 |
margin-bottom: 0px;
|
4 |
margin-right: 0px;
|
5 |
+
//margin-left: 10px;
|
6 |
width: 100%;
|
7 |
|
8 |
+
|
9 |
form {
|
10 |
display: flex;
|
11 |
flex-direction: row;
|
|
|
18 |
|
19 |
input {
|
20 |
// flex-grow: 3;
|
21 |
+
width: 100%;
|
22 |
+
//max-width: 700px;
|
23 |
+
//margin-right: 5%;
|
24 |
}
|
25 |
}
|
26 |
|
|
|
28 |
flex-grow: 1;
|
29 |
}
|
30 |
}
|
31 |
+
}
|
client/src/css/main.scss
CHANGED
@@ -37,7 +37,7 @@ body {
|
|
37 |
}
|
38 |
|
39 |
label {
|
40 |
-
margin-left: 5px;
|
41 |
}
|
42 |
|
43 |
#header {
|
@@ -134,4 +134,4 @@ label {
|
|
134 |
-moz-box-shadow: 0 0 3px #ccc;
|
135 |
-webkit-box-shadow: 0 0 3px #ccc;
|
136 |
box-shadow: 0 0 3px #ccc;
|
137 |
-
}
|
|
|
37 |
}
|
38 |
|
39 |
label {
|
40 |
+
//margin-left: 5px;
|
41 |
}
|
42 |
|
43 |
#header {
|
|
|
134 |
-moz-box-shadow: 0 0 3px #ccc;
|
135 |
-webkit-box-shadow: 0 0 3px #ccc;
|
136 |
box-shadow: 0 0 3px #ccc;
|
137 |
+
}
|
client/src/package-lock.json
CHANGED
@@ -6385,8 +6385,7 @@
|
|
6385 |
"ansi-regex": {
|
6386 |
"version": "2.1.1",
|
6387 |
"bundled": true,
|
6388 |
-
"dev": true
|
6389 |
-
"optional": true
|
6390 |
},
|
6391 |
"aproba": {
|
6392 |
"version": "1.2.0",
|
@@ -6407,14 +6406,12 @@
|
|
6407 |
"balanced-match": {
|
6408 |
"version": "1.0.0",
|
6409 |
"bundled": true,
|
6410 |
-
"dev": true
|
6411 |
-
"optional": true
|
6412 |
},
|
6413 |
"brace-expansion": {
|
6414 |
"version": "1.1.11",
|
6415 |
"bundled": true,
|
6416 |
"dev": true,
|
6417 |
-
"optional": true,
|
6418 |
"requires": {
|
6419 |
"balanced-match": "^1.0.0",
|
6420 |
"concat-map": "0.0.1"
|
@@ -6429,20 +6426,17 @@
|
|
6429 |
"code-point-at": {
|
6430 |
"version": "1.1.0",
|
6431 |
"bundled": true,
|
6432 |
-
"dev": true
|
6433 |
-
"optional": true
|
6434 |
},
|
6435 |
"concat-map": {
|
6436 |
"version": "0.0.1",
|
6437 |
"bundled": true,
|
6438 |
-
"dev": true
|
6439 |
-
"optional": true
|
6440 |
},
|
6441 |
"console-control-strings": {
|
6442 |
"version": "1.1.0",
|
6443 |
"bundled": true,
|
6444 |
-
"dev": true
|
6445 |
-
"optional": true
|
6446 |
},
|
6447 |
"core-util-is": {
|
6448 |
"version": "1.0.2",
|
@@ -6559,8 +6553,7 @@
|
|
6559 |
"inherits": {
|
6560 |
"version": "2.0.3",
|
6561 |
"bundled": true,
|
6562 |
-
"dev": true
|
6563 |
-
"optional": true
|
6564 |
},
|
6565 |
"ini": {
|
6566 |
"version": "1.3.5",
|
@@ -6572,7 +6565,6 @@
|
|
6572 |
"version": "1.0.0",
|
6573 |
"bundled": true,
|
6574 |
"dev": true,
|
6575 |
-
"optional": true,
|
6576 |
"requires": {
|
6577 |
"number-is-nan": "^1.0.0"
|
6578 |
}
|
@@ -6587,7 +6579,6 @@
|
|
6587 |
"version": "3.0.4",
|
6588 |
"bundled": true,
|
6589 |
"dev": true,
|
6590 |
-
"optional": true,
|
6591 |
"requires": {
|
6592 |
"brace-expansion": "^1.1.7"
|
6593 |
}
|
@@ -6595,14 +6586,12 @@
|
|
6595 |
"minimist": {
|
6596 |
"version": "0.0.8",
|
6597 |
"bundled": true,
|
6598 |
-
"dev": true
|
6599 |
-
"optional": true
|
6600 |
},
|
6601 |
"minipass": {
|
6602 |
"version": "2.3.5",
|
6603 |
"bundled": true,
|
6604 |
"dev": true,
|
6605 |
-
"optional": true,
|
6606 |
"requires": {
|
6607 |
"safe-buffer": "^5.1.2",
|
6608 |
"yallist": "^3.0.0"
|
@@ -6621,7 +6610,6 @@
|
|
6621 |
"version": "0.5.1",
|
6622 |
"bundled": true,
|
6623 |
"dev": true,
|
6624 |
-
"optional": true,
|
6625 |
"requires": {
|
6626 |
"minimist": "0.0.8"
|
6627 |
}
|
@@ -6709,8 +6697,7 @@
|
|
6709 |
"number-is-nan": {
|
6710 |
"version": "1.0.1",
|
6711 |
"bundled": true,
|
6712 |
-
"dev": true
|
6713 |
-
"optional": true
|
6714 |
},
|
6715 |
"object-assign": {
|
6716 |
"version": "4.1.1",
|
@@ -6722,7 +6709,6 @@
|
|
6722 |
"version": "1.4.0",
|
6723 |
"bundled": true,
|
6724 |
"dev": true,
|
6725 |
-
"optional": true,
|
6726 |
"requires": {
|
6727 |
"wrappy": "1"
|
6728 |
}
|
@@ -6808,8 +6794,7 @@
|
|
6808 |
"safe-buffer": {
|
6809 |
"version": "5.1.2",
|
6810 |
"bundled": true,
|
6811 |
-
"dev": true
|
6812 |
-
"optional": true
|
6813 |
},
|
6814 |
"safer-buffer": {
|
6815 |
"version": "2.1.2",
|
@@ -6845,7 +6830,6 @@
|
|
6845 |
"version": "1.0.2",
|
6846 |
"bundled": true,
|
6847 |
"dev": true,
|
6848 |
-
"optional": true,
|
6849 |
"requires": {
|
6850 |
"code-point-at": "^1.0.0",
|
6851 |
"is-fullwidth-code-point": "^1.0.0",
|
@@ -6865,7 +6849,6 @@
|
|
6865 |
"version": "3.0.1",
|
6866 |
"bundled": true,
|
6867 |
"dev": true,
|
6868 |
-
"optional": true,
|
6869 |
"requires": {
|
6870 |
"ansi-regex": "^2.0.0"
|
6871 |
}
|
@@ -6909,14 +6892,12 @@
|
|
6909 |
"wrappy": {
|
6910 |
"version": "1.0.2",
|
6911 |
"bundled": true,
|
6912 |
-
"dev": true
|
6913 |
-
"optional": true
|
6914 |
},
|
6915 |
"yallist": {
|
6916 |
"version": "3.0.3",
|
6917 |
"bundled": true,
|
6918 |
-
"dev": true
|
6919 |
-
"optional": true
|
6920 |
}
|
6921 |
}
|
6922 |
},
|
|
|
6385 |
"ansi-regex": {
|
6386 |
"version": "2.1.1",
|
6387 |
"bundled": true,
|
6388 |
+
"dev": true
|
|
|
6389 |
},
|
6390 |
"aproba": {
|
6391 |
"version": "1.2.0",
|
|
|
6406 |
"balanced-match": {
|
6407 |
"version": "1.0.0",
|
6408 |
"bundled": true,
|
6409 |
+
"dev": true
|
|
|
6410 |
},
|
6411 |
"brace-expansion": {
|
6412 |
"version": "1.1.11",
|
6413 |
"bundled": true,
|
6414 |
"dev": true,
|
|
|
6415 |
"requires": {
|
6416 |
"balanced-match": "^1.0.0",
|
6417 |
"concat-map": "0.0.1"
|
|
|
6426 |
"code-point-at": {
|
6427 |
"version": "1.1.0",
|
6428 |
"bundled": true,
|
6429 |
+
"dev": true
|
|
|
6430 |
},
|
6431 |
"concat-map": {
|
6432 |
"version": "0.0.1",
|
6433 |
"bundled": true,
|
6434 |
+
"dev": true
|
|
|
6435 |
},
|
6436 |
"console-control-strings": {
|
6437 |
"version": "1.1.0",
|
6438 |
"bundled": true,
|
6439 |
+
"dev": true
|
|
|
6440 |
},
|
6441 |
"core-util-is": {
|
6442 |
"version": "1.0.2",
|
|
|
6553 |
"inherits": {
|
6554 |
"version": "2.0.3",
|
6555 |
"bundled": true,
|
6556 |
+
"dev": true
|
|
|
6557 |
},
|
6558 |
"ini": {
|
6559 |
"version": "1.3.5",
|
|
|
6565 |
"version": "1.0.0",
|
6566 |
"bundled": true,
|
6567 |
"dev": true,
|
|
|
6568 |
"requires": {
|
6569 |
"number-is-nan": "^1.0.0"
|
6570 |
}
|
|
|
6579 |
"version": "3.0.4",
|
6580 |
"bundled": true,
|
6581 |
"dev": true,
|
|
|
6582 |
"requires": {
|
6583 |
"brace-expansion": "^1.1.7"
|
6584 |
}
|
|
|
6586 |
"minimist": {
|
6587 |
"version": "0.0.8",
|
6588 |
"bundled": true,
|
6589 |
+
"dev": true
|
|
|
6590 |
},
|
6591 |
"minipass": {
|
6592 |
"version": "2.3.5",
|
6593 |
"bundled": true,
|
6594 |
"dev": true,
|
|
|
6595 |
"requires": {
|
6596 |
"safe-buffer": "^5.1.2",
|
6597 |
"yallist": "^3.0.0"
|
|
|
6610 |
"version": "0.5.1",
|
6611 |
"bundled": true,
|
6612 |
"dev": true,
|
|
|
6613 |
"requires": {
|
6614 |
"minimist": "0.0.8"
|
6615 |
}
|
|
|
6697 |
"number-is-nan": {
|
6698 |
"version": "1.0.1",
|
6699 |
"bundled": true,
|
6700 |
+
"dev": true
|
|
|
6701 |
},
|
6702 |
"object-assign": {
|
6703 |
"version": "4.1.1",
|
|
|
6709 |
"version": "1.4.0",
|
6710 |
"bundled": true,
|
6711 |
"dev": true,
|
|
|
6712 |
"requires": {
|
6713 |
"wrappy": "1"
|
6714 |
}
|
|
|
6794 |
"safe-buffer": {
|
6795 |
"version": "5.1.2",
|
6796 |
"bundled": true,
|
6797 |
+
"dev": true
|
|
|
6798 |
},
|
6799 |
"safer-buffer": {
|
6800 |
"version": "2.1.2",
|
|
|
6830 |
"version": "1.0.2",
|
6831 |
"bundled": true,
|
6832 |
"dev": true,
|
|
|
6833 |
"requires": {
|
6834 |
"code-point-at": "^1.0.0",
|
6835 |
"is-fullwidth-code-point": "^1.0.0",
|
|
|
6849 |
"version": "3.0.1",
|
6850 |
"bundled": true,
|
6851 |
"dev": true,
|
|
|
6852 |
"requires": {
|
6853 |
"ansi-regex": "^2.0.0"
|
6854 |
}
|
|
|
6892 |
"wrappy": {
|
6893 |
"version": "1.0.2",
|
6894 |
"bundled": true,
|
6895 |
+
"dev": true
|
|
|
6896 |
},
|
6897 |
"yallist": {
|
6898 |
"version": "3.0.3",
|
6899 |
"bundled": true,
|
6900 |
+
"dev": true
|
|
|
6901 |
}
|
6902 |
}
|
6903 |
},
|
client/src/ts/vis/attentionVis.ts
CHANGED
@@ -20,6 +20,7 @@ import { D3Sel, Sel } from '../etc/Util';
|
|
20 |
import { from, fromEvent } from 'rxjs'
|
21 |
import { switchMap, map, tap } from 'rxjs/operators'
|
22 |
import { BaseType } from "d3";
|
|
|
23 |
|
24 |
|
25 |
function isNullToken(tok: tp.TokenEvent) {
|
@@ -67,197 +68,6 @@ function setSelDisabled(attr: boolean, sel: D3Sel) {
|
|
67 |
sel.attr('disabled', val)
|
68 |
}
|
69 |
|
70 |
-
function createStaticSkeleton(base: D3Sel) {
|
71 |
-
|
72 |
-
/**
|
73 |
-
* Top level sections
|
74 |
-
*/
|
75 |
-
const sentenceInput = base.append('div')
|
76 |
-
.attr("id", "sentence-input")
|
77 |
-
|
78 |
-
const connectorContainer = base.append('div')
|
79 |
-
.attr('id', 'connector-container')
|
80 |
-
|
81 |
-
const atnControls = connectorContainer.append('div')
|
82 |
-
.attr("id", "connector-controls")
|
83 |
-
|
84 |
-
const atnContainer = connectorContainer.append('div')
|
85 |
-
.attr("id", "atn-container")
|
86 |
-
.classed("text-center", true)
|
87 |
-
|
88 |
-
/**
|
89 |
-
* Sentence Input
|
90 |
-
*/
|
91 |
-
|
92 |
-
const formGroup = sentenceInput.append('form')
|
93 |
-
.append('div').classed('form-group', true)
|
94 |
-
|
95 |
-
formGroup.append('label')
|
96 |
-
.attr('for', "form-sentence-a")
|
97 |
-
.text(' Input Sentence ')
|
98 |
-
|
99 |
-
const sentenceA = formGroup.append('input')
|
100 |
-
.attr('id', 'form-sentence-a')
|
101 |
-
.attr('type', 'text')
|
102 |
-
.attr('name', 'sent-a-input')
|
103 |
-
|
104 |
-
sentenceInput.append('div')
|
105 |
-
.classed('padding', true)
|
106 |
-
|
107 |
-
const formButton = sentenceInput.append('button')
|
108 |
-
.attr('class', 'btn btn-primary')
|
109 |
-
.attr('id', "update-sentence")
|
110 |
-
.attr('type', 'button')
|
111 |
-
|
112 |
-
formButton.text("Update")
|
113 |
-
|
114 |
-
/**
|
115 |
-
* Connector Controls
|
116 |
-
*/
|
117 |
-
const leftControlHalf = atnControls.append('div')
|
118 |
-
.classed('left-control-half', true)
|
119 |
-
|
120 |
-
const rightControlHalf = atnControls.append('div')
|
121 |
-
.attr('class', 'right-control-half head-control')
|
122 |
-
|
123 |
-
const modelSelection = leftControlHalf.append('div')
|
124 |
-
.attr('id', 'model-selection')
|
125 |
-
|
126 |
-
modelSelection.append('label')
|
127 |
-
.attr('for', 'model-options').text('Select model')
|
128 |
-
|
129 |
-
const modelSelector = modelSelection.append('select')
|
130 |
-
.attr('id', 'model-option-selector')
|
131 |
-
.attr('name', 'model-options')
|
132 |
-
|
133 |
-
const slideContainer = leftControlHalf.append('div')
|
134 |
-
.classed('slide-container', true)
|
135 |
-
|
136 |
-
slideContainer.append('label')
|
137 |
-
.attr('for', 'my-range')
|
138 |
-
.html("Display top <span id=\"my-range-value\">...</span>% of attention")
|
139 |
-
|
140 |
-
const threshSlider = slideContainer.append('input')
|
141 |
-
.attr('type', 'range')
|
142 |
-
.attr('min', '0')
|
143 |
-
.attr('max', '100')
|
144 |
-
.attr('value', '70')
|
145 |
-
.classed('slider', true)
|
146 |
-
.attr('id', 'my-range')
|
147 |
-
|
148 |
-
const layerSelection = leftControlHalf.append('div')
|
149 |
-
.attr('id', 'layer-selection')
|
150 |
-
|
151 |
-
layerSelection.append('div')
|
152 |
-
.classed('input-description', true)
|
153 |
-
.text("Layer: ")
|
154 |
-
|
155 |
-
const layerCheckboxes = layerSelection.append('div')
|
156 |
-
.attr('class', 'layer-select btn-group btn-group-toggle')
|
157 |
-
.attr('data-toggle', 'buttons')
|
158 |
-
.attr('id', 'layer-select')
|
159 |
-
|
160 |
-
const clsToggle = leftControlHalf.append('div')
|
161 |
-
.attr('id', 'cls-toggle')
|
162 |
-
|
163 |
-
clsToggle.append('div')
|
164 |
-
.attr('class', 'input-description')
|
165 |
-
.text("Hide Special Tokens")
|
166 |
-
|
167 |
-
const clsSwitch = clsToggle.append('label')
|
168 |
-
.attr('class', 'switch')
|
169 |
-
|
170 |
-
clsSwitch.append('input').attr('type', 'checkbox')
|
171 |
-
.attr('checked', 'checked')
|
172 |
-
|
173 |
-
clsSwitch.append('span')
|
174 |
-
.attr('class', 'short-slider round')
|
175 |
-
|
176 |
-
const selectedHeadDiv = rightControlHalf.append('div')
|
177 |
-
.attr('id', 'selected-head-display')
|
178 |
-
|
179 |
-
selectedHeadDiv.append('div')
|
180 |
-
.classed('input-description', true)
|
181 |
-
.text('Selected heads:')
|
182 |
-
|
183 |
-
const selectedHeads = selectedHeadDiv.append('div').attr('id', 'selected-heads')
|
184 |
-
|
185 |
-
const headButtons = rightControlHalf.append('div')
|
186 |
-
.classed('select-input', true)
|
187 |
-
.attr('id', 'head-all-or-none')
|
188 |
-
|
189 |
-
const headSelectAll = headButtons.append('button').attr('id', 'select-all-heads').text("Select all heads")
|
190 |
-
const headSelectNone = headButtons.append('button').attr('id', 'select-no-heads').text("Unselect all heads")
|
191 |
-
|
192 |
-
const infoContainer = rightControlHalf.append('div')
|
193 |
-
.attr('id', 'usage-info')
|
194 |
-
|
195 |
-
infoContainer.append('p').html("You focus on one token by <b>click</b>.<br /> You can mask any token by <b>double click</b>.")
|
196 |
-
infoContainer.append('p').html("You can select and de-select a head by a <b>click</b> on the heatmap columns")
|
197 |
-
|
198 |
-
connectorContainer.append('div').attr('id', 'vis-break')
|
199 |
-
|
200 |
-
/**
|
201 |
-
* For main attention vis
|
202 |
-
*/
|
203 |
-
|
204 |
-
const headInfoBox = atnContainer.append('div')
|
205 |
-
.attr('id', "head-info-box")
|
206 |
-
.classed('mat-hover-display', true)
|
207 |
-
.classed('text-center', true)
|
208 |
-
.style('width', String(70) + 'px')
|
209 |
-
.style('height', String(30) + 'px')
|
210 |
-
.style('visibillity', 'hidden')
|
211 |
-
|
212 |
-
const headBoxLeft = atnContainer.append('svg')
|
213 |
-
.attr('id', 'left-att-heads')
|
214 |
-
|
215 |
-
const tokensLeft = atnContainer.append('div')
|
216 |
-
.attr("id", "left-tokens")
|
217 |
-
|
218 |
-
const atnDisplay = atnContainer.append('svg')
|
219 |
-
.attr("id", "atn-display")
|
220 |
-
|
221 |
-
const tokensRight = atnContainer.append('div')
|
222 |
-
.attr("id", "right-tokens")
|
223 |
-
|
224 |
-
const headBoxRight = atnContainer.append('svg')
|
225 |
-
.attr('id', 'right-att-heads')
|
226 |
-
|
227 |
-
/**
|
228 |
-
* Return an object that provides handles to the important parts here
|
229 |
-
*/
|
230 |
-
|
231 |
-
const pctSpan = base.select("#my-range-value")
|
232 |
-
|
233 |
-
const sels = {
|
234 |
-
body: d3.select('body'),
|
235 |
-
atnContainer: atnContainer,
|
236 |
-
atnDisplay: atnDisplay,
|
237 |
-
atnHeads: {
|
238 |
-
left: headBoxLeft,
|
239 |
-
right: headBoxRight,
|
240 |
-
headInfo: headInfoBox
|
241 |
-
},
|
242 |
-
form: {
|
243 |
-
sentenceA: sentenceA,
|
244 |
-
button: formButton
|
245 |
-
},
|
246 |
-
tokens: {
|
247 |
-
left: tokensLeft,
|
248 |
-
right: tokensRight
|
249 |
-
},
|
250 |
-
modelSelector: modelSelector,
|
251 |
-
clsToggle: clsToggle,
|
252 |
-
layerCheckboxes: layerCheckboxes,
|
253 |
-
selectedHeads: selectedHeads,
|
254 |
-
headSelectAll: headSelectAll,
|
255 |
-
headSelectNone: headSelectNone,
|
256 |
-
threshSlider: threshSlider,
|
257 |
-
}
|
258 |
-
return sels
|
259 |
-
}
|
260 |
-
|
261 |
export class MainGraphic {
|
262 |
base: D3Sel
|
263 |
api: API
|
@@ -269,7 +79,7 @@ export class MainGraphic {
|
|
269 |
eventHandler: SimpleEventHandler // Orchestrates events raised from components
|
270 |
|
271 |
/**
|
272 |
-
*
|
273 |
* @param base 'div' html element into which everything below will be rendered
|
274 |
*/
|
275 |
constructor(baseDiv: Element) {
|
|
|
20 |
import { from, fromEvent } from 'rxjs'
|
21 |
import { switchMap, map, tap } from 'rxjs/operators'
|
22 |
import { BaseType } from "d3";
|
23 |
+
import {createStaticSkeleton} from "./staticLayout";
|
24 |
|
25 |
|
26 |
function isNullToken(tok: tp.TokenEvent) {
|
|
|
68 |
sel.attr('disabled', val)
|
69 |
}
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
export class MainGraphic {
|
72 |
base: D3Sel
|
73 |
api: API
|
|
|
79 |
eventHandler: SimpleEventHandler // Orchestrates events raised from components
|
80 |
|
81 |
/**
|
82 |
+
*
|
83 |
* @param base 'div' html element into which everything below will be rendered
|
84 |
*/
|
85 |
constructor(baseDiv: Element) {
|
client/src/ts/vis/staticLayout.ts
ADDED
@@ -0,0 +1,226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import {D3Sel} from "../etc/Util";
|
2 |
+
import * as d3 from "d3";
|
3 |
+
|
4 |
+
export function createStaticSkeleton(base: D3Sel) {
|
5 |
+
|
6 |
+
// ---- TEMPLATE -----
|
7 |
+
// language=HTML
|
8 |
+
function template() {
|
9 |
+
return `
|
10 |
+
<!-- <div id="attention-vis">-->
|
11 |
+
<div>
|
12 |
+
<div id="model-selection">
|
13 |
+
<label for="model-options"
|
14 |
+
style="width:150px;margin-bottom: 5px;">Select
|
15 |
+
model</label><select id="model-option-selector"
|
16 |
+
name="model-options">
|
17 |
+
|
18 |
+
</select>
|
19 |
+
</div>
|
20 |
+
</div>
|
21 |
+
<div id="sentence-input">
|
22 |
+
<form>
|
23 |
+
<div class="form-group">
|
24 |
+
<label for="form-sentence-a"
|
25 |
+
style="width: 150px; display: inline-block;vertical-align: middle;">Input
|
26 |
+
Sentence</label>
|
27 |
+
<input id="form-sentence-a" type="text"
|
28 |
+
name="sent-a-input"
|
29 |
+
placeholder="Enter new sentence to analyze"
|
30 |
+
value="The girl ran to a local pub to escape the din of her city."
|
31 |
+
style="width: calc(100% - 240px); display: inline-block;vertical-align: middle;"
|
32 |
+
>
|
33 |
+
<button class="btn btn-primary" id="update-sentence"
|
34 |
+
type="button"
|
35 |
+
style="width:70px;display: inline-block;padding: 3px 3px;">
|
36 |
+
Update
|
37 |
+
</button>
|
38 |
+
</div>
|
39 |
+
</form>
|
40 |
+
<!-- <div class="padding"></div>-->
|
41 |
+
|
42 |
+
</div>
|
43 |
+
|
44 |
+
<div>
|
45 |
+
<div style="display: inline-block; width:150px;"><b>Filters</b>
|
46 |
+
</div>
|
47 |
+
<div id="cls-toggle" style="display: inline-block;">
|
48 |
+
<!-- <div class="input-description">-->
|
49 |
+
Hide Special Tokens
|
50 |
+
<!-- </div>-->
|
51 |
+
<label class="switch" style="vertical-align: middle;">
|
52 |
+
<input type="checkbox" checked="checked">
|
53 |
+
<span class="short-slider round"></span>
|
54 |
+
</label>
|
55 |
+
</div>
|
56 |
+
<div style="margin-left: 25px;display: inline-block;">
|
57 |
+
Show top <span id="my-range-value">70</span>% of att:
|
58 |
+
</div>
|
59 |
+
|
60 |
+
<div class="slide-container"
|
61 |
+
style="display: inline-block;margin-left: 5px;width:calc(100% - 550px);">
|
62 |
+
<!-- <label for="my-range">-->
|
63 |
+
|
64 |
+
<!-- </label>-->
|
65 |
+
<input
|
66 |
+
type="range" min="0" max="100" value="70"
|
67 |
+
class="slider" id="my-range"
|
68 |
+
style="vertical-align: middle;display: inline-block;">
|
69 |
+
</div>
|
70 |
+
</div>
|
71 |
+
|
72 |
+
<div id="layer-selection" style="margin-top: 10px;">
|
73 |
+
<div class="input-description"
|
74 |
+
style="display: inline-block; width: 150px;vertical-align: top;">
|
75 |
+
Layer
|
76 |
+
</div>
|
77 |
+
<div class="layer-select btn-group btn-group-toggle"
|
78 |
+
data-toggle="buttons" id="layer-select"
|
79 |
+
style="vertical-align: top;">
|
80 |
+
|
81 |
+
</div>
|
82 |
+
</div>
|
83 |
+
|
84 |
+
<div id="selected-head-display">
|
85 |
+
<div class="input-description" style="display: inline-block; width: 150px;vertical-align: top;">
|
86 |
+
Selected heads:
|
87 |
+
</div>
|
88 |
+
<div id="selected-heads" style="display:inline-block;vertical-align: top;">
|
89 |
+
|
90 |
+
</div>
|
91 |
+
</div>
|
92 |
+
|
93 |
+
<div id="connector-container">
|
94 |
+
<div id="connector-controls">
|
95 |
+
<div class="left-control-half">
|
96 |
+
|
97 |
+
|
98 |
+
<!-- <div id="layer-selection">-->
|
99 |
+
<!-- <div class="input-description">-->
|
100 |
+
<!-- Layer:-->
|
101 |
+
<!-- </div>-->
|
102 |
+
<!-- <div class="layer-select btn-group btn-group-toggle"-->
|
103 |
+
<!-- data-toggle="buttons" id="layer-select">-->
|
104 |
+
|
105 |
+
<!-- </div>-->
|
106 |
+
<!-- </div>-->
|
107 |
+
|
108 |
+
</div>
|
109 |
+
<div class="right-control-half head-control">
|
110 |
+
<!-- <div id="selected-head-display">-->
|
111 |
+
<!-- <div class="input-description">-->
|
112 |
+
<!-- Selected heads:-->
|
113 |
+
<!-- </div>-->
|
114 |
+
<!-- <div id="selected-heads">-->
|
115 |
+
|
116 |
+
<!-- </div>-->
|
117 |
+
<!-- </div>-->
|
118 |
+
<div class="select-input" id="head-all-or-none">
|
119 |
+
<button id="select-all-heads">Select all heads
|
120 |
+
</button>
|
121 |
+
<button id="select-no-heads">Unselect all heads
|
122 |
+
</button>
|
123 |
+
</div>
|
124 |
+
<div id="usage-info">
|
125 |
+
<p>
|
126 |
+
You focus on one token by <b>click</b>.
|
127 |
+
You can mask any token by <b>double click</b>.
|
128 |
+
</p>
|
129 |
+
<p>
|
130 |
+
You can select and de-select a head by a
|
131 |
+
<b>click</b>
|
132 |
+
on the heatmap columns
|
133 |
+
</p>
|
134 |
+
</div>
|
135 |
+
</div>
|
136 |
+
</div>
|
137 |
+
<div id="atn-container" class="text-center">
|
138 |
+
<div id="head-info-box"
|
139 |
+
class="mat-hover-display text-center"
|
140 |
+
style="width: 70px; height: 30px; visibility: hidden; left: 929px; top: 670px; border-radius: 8px 8px 8px 1px;">
|
141 |
+
</div>
|
142 |
+
<svg id="left-att-heads" width="182" height="442"></svg>
|
143 |
+
<div id="left-tokens"></div>
|
144 |
+
<svg id="atn-display" height="442" width="200"></svg>
|
145 |
+
<div id="right-tokens"></div>
|
146 |
+
<svg id="right-att-heads" width="182" height="442"></svg>
|
147 |
+
</div>
|
148 |
+
<div id="vis-break"></div>
|
149 |
+
</div>
|
150 |
+
<!-- </div>-->
|
151 |
+
`
|
152 |
+
}
|
153 |
+
|
154 |
+
base.html(template);
|
155 |
+
|
156 |
+
// ---- TEMPLATE.end -----
|
157 |
+
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Top level sections
|
161 |
+
*/
|
162 |
+
const sentenceInput = base.select("#sentence-input");
|
163 |
+
const connectorContainer = base.select('#connector-container');
|
164 |
+
const atnControls = base.select('#connector-controls');
|
165 |
+
const atnContainer = base.select('#atn-container');
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Sentence Input
|
169 |
+
*/
|
170 |
+
|
171 |
+
const sentenceA = base.select('#form-sentence-a');
|
172 |
+
const formButton = base.select('#update-sentence');
|
173 |
+
|
174 |
+
/**
|
175 |
+
* Connector Controls
|
176 |
+
*/
|
177 |
+
|
178 |
+
const modelSelector = base.select('#model-option-selector')
|
179 |
+
const threshSlider = base.select('#my-range');
|
180 |
+
const layerCheckboxes = base.select('#layer-select');
|
181 |
+
const clsToggle = base.select('#cls-toggle');
|
182 |
+
const selectedHeads = base.select('#selected-heads');
|
183 |
+
const headSelectAll = base.select('#select-all-heads');
|
184 |
+
const headSelectNone = base.select('#select-no-heads');
|
185 |
+
|
186 |
+
/**
|
187 |
+
* For main attention vis
|
188 |
+
*/
|
189 |
+
|
190 |
+
const headInfoBox = base.select('#head-info-box');
|
191 |
+
const headBoxLeft = base.select('#left-att-heads');
|
192 |
+
const tokensLeft = base.select('#left-tokens');
|
193 |
+
const atnDisplay = base.select('#atn-display');
|
194 |
+
const tokensRight = base.select('#right-tokens');
|
195 |
+
const headBoxRight = base.select('#right-att-heads');
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Return an object that provides handles to the important parts here
|
199 |
+
*/
|
200 |
+
|
201 |
+
return {
|
202 |
+
body: d3.select('body'),
|
203 |
+
atnContainer: atnContainer,
|
204 |
+
atnDisplay: atnDisplay,
|
205 |
+
atnHeads: {
|
206 |
+
left: headBoxLeft,
|
207 |
+
right: headBoxRight,
|
208 |
+
headInfo: headInfoBox
|
209 |
+
},
|
210 |
+
form: {
|
211 |
+
sentenceA: sentenceA,
|
212 |
+
button: formButton
|
213 |
+
},
|
214 |
+
tokens: {
|
215 |
+
left: tokensLeft,
|
216 |
+
right: tokensRight
|
217 |
+
},
|
218 |
+
modelSelector: modelSelector,
|
219 |
+
clsToggle: clsToggle,
|
220 |
+
layerCheckboxes: layerCheckboxes,
|
221 |
+
selectedHeads: selectedHeads,
|
222 |
+
headSelectAll: headSelectAll,
|
223 |
+
headSelectNone: headSelectNone,
|
224 |
+
threshSlider: threshSlider,
|
225 |
+
}
|
226 |
+
}
|
environment.yml
CHANGED
@@ -8,6 +8,7 @@ dependencies:
|
|
8 |
- pip>=19.0.3
|
9 |
- python=3.7
|
10 |
- connexion=1.5.3
|
|
|
11 |
- boto3
|
12 |
- regex
|
13 |
- flask-cors
|
@@ -15,4 +16,5 @@ dependencies:
|
|
15 |
- numpy
|
16 |
- pytorch
|
17 |
- torchvision
|
18 |
-
-
|
|
|
|
8 |
- pip>=19.0.3
|
9 |
- python=3.7
|
10 |
- connexion=1.5.3
|
11 |
+
- Werkzeug=0.16.1
|
12 |
- boto3
|
13 |
- regex
|
14 |
- flask-cors
|
|
|
16 |
- numpy
|
17 |
- pytorch
|
18 |
- torchvision
|
19 |
+
- pip:
|
20 |
+
- transformers==2.4.1
|