diff --git a/.gitignore b/.gitignore index 1fed039..0256069 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ node_modules __pycache__ -package.json pnpm-lock.yaml benchmark-download.js diff --git a/README.md b/README.md index af5c7c8..052e2a1 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,16 @@ Creates a top-level **System Info** tab in Automatic WebUI with  +## Benchmark + +- Allows to run standardized benchmark and optionally submit data to cloud logger [[details]](pages/README.md) + + + +- *Note: Record is appended if any of the system properties change else benchmark data replaces existing matching record* + +- All results can be [viewed online](https://vladmandic.github.io/sd-extension-system-info/pages/benchmark.html) + ## Models - Models (with hash) diff --git a/benchmark.jpg b/benchmark.jpg new file mode 100644 index 0000000..dd93137 Binary files /dev/null and b/benchmark.jpg differ diff --git a/pages/benchmark-raw.json b/pages/benchmark-raw.json index 29348bd..9ab365b 100644 --- a/pages/benchmark-raw.json +++ b/pages/benchmark-raw.json @@ -1,5 +1,5 @@ { - "max_id": "1564658460619108355", + "max_id": "1564688567958171650", "events": [ { "id": "1564370541899603981", @@ -1092,6 +1092,20 @@ "hostname": "kalia", "severity": "Info", "facility": "User" + }, + { + "id": "1564688567958171650", + "source_ip": "37.79.4.194", + "program": "SDBENCHMARK", + "message": "False 2023-02-20 11:56:43.428913|7.2 / 8.1 / 8.84|updated:2023-02-19 hash:fc3e9e5d url:https://github.com/vladmandic/automatic/tree/master|host:wsl arch:x86_64 cpu:x86_64 system:Linux release:5.15.90.1-microsoft-standard-WSL2 python:3.10.6|torch:2.0.0.dev20230211+cu118 autocast half xformers:0.0.17+12c076d.d20230211 accelerate:0.16.0 transformers:4.26.1|device:NVIDIA GeForce RTX 3060 (1) (sm_90) (8, 6) cuda:11.8 cudnn:8700 12GB|xformers none|sd-v15-runwayml.ckpt [cc6cb27103]|vlado||88abf4|4bb7e0 ", + "received_at": "2023-02-21T09:00:47-05:00", + "generated_at": "2023-02-21T14:00:46-05:00", + "display_received_at": "Feb 21 09:00:47", + "source_id": 13745391437, + "source_name": "SIPOVEC-PC", + "hostname": "SIPOVEC-PC", + "severity": "Info", + "facility": "User" } ] } \ No newline at end of file diff --git a/pages/benchmark.css b/pages/benchmark.css new file mode 100644 index 0000000..0965563 --- /dev/null +++ b/pages/benchmark.css @@ -0,0 +1,583 @@ +.gridjs-head button, .gridjs-footer button { + cursor: pointer; + background-color: transparent; + background-image: none; + padding: 0; + margin: 0; + border: none; + outline: none; } + +.gridjs-temp { + position: relative; } + +.gridjs-head { + width: 100%; + margin-bottom: 5px; + padding: 5px 1px; } + .gridjs-head::after { + content: ''; + display: block; + clear: both; } + +.gridjs-head:empty { + padding: 0; + border: none; } + +.gridjs-container { + overflow: hidden; + display: inline-block; + padding: 2px; + color: #000; + position: relative; + z-index: 0; } + +.gridjs-footer { + display: block; + position: relative; + width: 100%; + z-index: 5; + padding: 12px 24px; + border-top: 1px solid #e5e7eb; + background-color: #fff; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.26); + border-radius: 0 0 8px 8px; + border-bottom-width: 1px; + border-color: #e5e7eb; } + +.gridjs-footer:empty { + padding: 0; + border: none; } + +input.gridjs-input { + outline: none; + background-color: #fff; + border: 1px solid #d2d6dc; + border-radius: 5px; + padding: 10px 13px; + font-size: 14px; + line-height: 1.45; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + input.gridjs-input:focus { + box-shadow: 0 0 0 3px rgba(149, 189, 243, 0.5); + border-color: #9bc2f7; } + +.gridjs-pagination { + color: #3d4044; } + .gridjs-pagination::after { + content: ''; + display: block; + clear: both; } + .gridjs-pagination .gridjs-summary { + float: left; + margin-top: 5px; } + .gridjs-pagination .gridjs-pages { + float: right; } + .gridjs-pagination .gridjs-pages button { + padding: 5px 14px; + border: 1px solid #d2d6dc; + background-color: #fff; + border-right: none; + outline: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .gridjs-pagination .gridjs-pages button:focus { + box-shadow: 0 0 0 2px rgba(149, 189, 243, 0.5); } + .gridjs-pagination .gridjs-pages button:hover { + background-color: #f7f7f7; + color: #3c4257; + outline: none; } + .gridjs-pagination .gridjs-pages button:disabled, + .gridjs-pagination .gridjs-pages button[disabled], + .gridjs-pagination .gridjs-pages button:hover:disabled { + cursor: default; + background-color: #fff; + color: #6b7280; } + .gridjs-pagination .gridjs-pages button.gridjs-spread { + cursor: default; + box-shadow: none; + background-color: #fff; } + .gridjs-pagination .gridjs-pages button.gridjs-currentPage { + background-color: #f7f7f7; + font-weight: bold; } + .gridjs-pagination .gridjs-pages button:last-child { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; + border-right: 1px solid #d2d6dc; } + .gridjs-pagination .gridjs-pages button:first-child { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; } + +button.gridjs-sort { + float: right; + height: 24px; + width: 13px; + background-color: transparent; + background-repeat: no-repeat; + background-position-x: center; + cursor: pointer; + padding: 0; + margin: 0; + border: none; + outline: none; + background-size: contain; } + button.gridjs-sort-neutral { + opacity: 0.3; + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI0MDEuOTk4cHgiIGhlaWdodD0iNDAxLjk5OHB4IiB2aWV3Qm94PSIwIDAgNDAxLjk5OCA0MDEuOTk4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDEuOTk4IDQwMS45OTg7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnPgoJCTxwYXRoIGQ9Ik03My4wOTIsMTY0LjQ1MmgyNTUuODEzYzQuOTQ5LDAsOS4yMzMtMS44MDcsMTIuODQ4LTUuNDI0YzMuNjEzLTMuNjE2LDUuNDI3LTcuODk4LDUuNDI3LTEyLjg0NwoJCQljMC00Ljk0OS0xLjgxMy05LjIyOS01LjQyNy0xMi44NUwyMTMuODQ2LDUuNDI0QzIxMC4yMzIsMS44MTIsMjA1Ljk1MSwwLDIwMC45OTksMHMtOS4yMzMsMS44MTItMTIuODUsNS40MjRMNjAuMjQyLDEzMy4zMzEKCQkJYy0zLjYxNywzLjYxNy01LjQyNCw3LjkwMS01LjQyNCwxMi44NWMwLDQuOTQ4LDEuODA3LDkuMjMxLDUuNDI0LDEyLjg0N0M2My44NjMsMTYyLjY0NSw2OC4xNDQsMTY0LjQ1Miw3My4wOTIsMTY0LjQ1MnoiLz4KCQk8cGF0aCBkPSJNMzI4LjkwNSwyMzcuNTQ5SDczLjA5MmMtNC45NTIsMC05LjIzMywxLjgwOC0xMi44NSw1LjQyMWMtMy42MTcsMy42MTctNS40MjQsNy44OTgtNS40MjQsMTIuODQ3CgkJCWMwLDQuOTQ5LDEuODA3LDkuMjMzLDUuNDI0LDEyLjg0OEwxODguMTQ5LDM5Ni41N2MzLjYyMSwzLjYxNyw3LjkwMiw1LjQyOCwxMi44NSw1LjQyOHM5LjIzMy0xLjgxMSwxMi44NDctNS40MjhsMTI3LjkwNy0xMjcuOTA2CgkJCWMzLjYxMy0zLjYxNCw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDhjMC00Ljk0OC0xLjgxMy05LjIyOS01LjQyNy0xMi44NDdDMzM4LjEzOSwyMzkuMzUzLDMzMy44NTQsMjM3LjU0OSwzMjguOTA1LDIzNy41NDl6Ii8+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+"); + background-position-y: center; } + button.gridjs-sort-asc { + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIyOTIuMzYycHgiIGhlaWdodD0iMjkyLjM2MXB4IiB2aWV3Qm94PSIwIDAgMjkyLjM2MiAyOTIuMzYxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTIuMzYyIDI5Mi4zNjE7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yODYuOTM1LDE5Ny4yODdMMTU5LjAyOCw2OS4zODFjLTMuNjEzLTMuNjE3LTcuODk1LTUuNDI0LTEyLjg0Ny01LjQyNHMtOS4yMzMsMS44MDctMTIuODUsNS40MjRMNS40MjQsMTk3LjI4NwoJCUMxLjgwNywyMDAuOTA0LDAsMjA1LjE4NiwwLDIxMC4xMzRzMS44MDcsOS4yMzMsNS40MjQsMTIuODQ3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI1LDEyLjg1LDUuNDI1aDI1NS44MTMKCQljNC45NDksMCw5LjIzMy0xLjgwOCwxMi44NDgtNS40MjVjMy42MTMtMy42MTMsNS40MjctNy44OTgsNS40MjctMTIuODQ3UzI5MC41NDgsMjAwLjkwNCwyODYuOTM1LDE5Ny4yODd6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+"); + background-position-y: 35%; + background-size: 10px; } + button.gridjs-sort-desc { + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIyOTIuMzYycHgiIGhlaWdodD0iMjkyLjM2MnB4IiB2aWV3Qm94PSIwIDAgMjkyLjM2MiAyOTIuMzYyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTIuMzYyIDI5Mi4zNjI7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yODYuOTM1LDY5LjM3N2MtMy42MTQtMy42MTctNy44OTgtNS40MjQtMTIuODQ4LTUuNDI0SDE4LjI3NGMtNC45NTIsMC05LjIzMywxLjgwNy0xMi44NSw1LjQyNAoJCUMxLjgwNyw3Mi45OTgsMCw3Ny4yNzksMCw4Mi4yMjhjMCw0Ljk0OCwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDdsMTI3LjkwNywxMjcuOTA3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI4LDEyLjg1LDUuNDI4CgkJczkuMjMzLTEuODExLDEyLjg0Ny01LjQyOEwyODYuOTM1LDk1LjA3NGMzLjYxMy0zLjYxNyw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDdDMjkyLjM2Miw3Ny4yNzksMjkwLjU0OCw3Mi45OTgsMjg2LjkzNSw2OS4zNzd6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+"); + background-position-y: 65%; + background-size: 10px; } + +button.gridjs-sort:focus { + outline: none; } + +table.gridjs-table { + max-width: 100%; + border-collapse: collapse; + text-align: left; + display: table; + margin: 0; + padding: 0; + overflow: auto; + table-layout: fixed; } + +.gridjs-tbody { + background-color: #fff; } + +td.gridjs-td { + border: 1px solid #e5e7eb; + padding: 12px 24px; + background-color: #fff; + box-sizing: content-box; } + +td.gridjs-td:first-child { + border-left: none; } + +td.gridjs-td:last-child { + border-right: none; } + +td.gridjs-message { + text-align: center; } + +th.gridjs-th { + position: relative; + color: #6b7280; + background-color: #f9fafb; + border: 1px solid #e5e7eb; + border-top: none; + padding: 14px 24px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + box-sizing: border-box; + white-space: nowrap; + outline: none; + vertical-align: middle; } + th.gridjs-th .gridjs-th-content { + text-overflow: ellipsis; + overflow: hidden; + width: 100%; + float: left; } + th.gridjs-th-sort { + cursor: pointer; } + th.gridjs-th-sort .gridjs-th-content { + width: calc(100% - 15px); } + th.gridjs-th-sort:hover { + background-color: #e5e7eb; } + th.gridjs-th-sort:focus { + background-color: #e5e7eb; } + th.gridjs-th-fixed { + position: sticky; + box-shadow: 0 1px 0 0 #e5e7eb; } + @supports (-moz-appearance: none) { + th.gridjs-th-fixed { + box-shadow: 0 0 0 1px #e5e7eb; } } + +th.gridjs-th:first-child { + border-left: none; } + +th.gridjs-th:last-child { + border-right: none; } + +.gridjs-tr { + border: none; } + .gridjs-tr-selected td { + background-color: #ebf5ff; } + +.gridjs-tr:last-child td { + border-bottom: 0; } + +.gridjs *, +.gridjs :after, +.gridjs :before { + box-sizing: border-box; } + +.gridjs-wrapper { + position: relative; + z-index: 1; + overflow: auto; + width: 100%; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.26); + border-radius: 8px 8px 0 0; + display: block; + border-top-width: 1px; + border-color: #e5e7eb; } + +.gridjs-wrapper:nth-last-of-type(2) { + border-radius: 8px; + border-bottom-width: 1px; } + +.gridjs-search { + float: left; } + .gridjs-search-input { + width: 250px; } + +.gridjs-loading-bar { + z-index: 10; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: #fff; + opacity: 0.5; } + .gridjs-loading-bar::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + transform: translateX(-100%); + background-image: linear-gradient(90deg, rgba(204, 204, 204, 0) 0, rgba(204, 204, 204, 0.2) 20%, rgba(204, 204, 204, 0.5) 60%, rgba(204, 204, 204, 0)); + -webkit-animation: shimmer 2s infinite; + animation: shimmer 2s infinite; + content: ''; } + +@-webkit-keyframes shimmer { + 100% { + transform: translateX(100%); } } + +@keyframes shimmer { + 100% { + transform: translateX(100%); } } + +.gridjs-td .gridjs-checkbox { + display: block; + margin: auto; + cursor: pointer; } + +.gridjs-resizable { + position: absolute; + top: 0; + bottom: 0; + right: 0; + width: 5px; } + .gridjs-resizable:hover { + cursor: ew-resize; + background-color: #9bc2f7; } + +/*# sourceMappingURL=mermaid.css.map */ + +@media (prefers-color-scheme: dark) { + .gridjs-head button, .gridjs-footer button { + cursor: pointer; + background-color: transparent; + background-image: none; + padding: 0; + margin: 0; + border: none; + outline: none; } + + .gridjs-temp { + position: relative; } + + .gridjs-head { + width: 100%; + margin-bottom: 5px; + padding: 5px 1px; } + .gridjs-head::after { + content: ''; + display: block; + clear: both; } + + .gridjs-head:empty { + padding: 0; + border: none; } + + .gridjs-container { + overflow: hidden; + display: inline-block; + padding: 2px; + color: #fff; + position: relative; + z-index: 0; } + + .gridjs-footer { + display: block; + position: relative; + width: 100%; + z-index: 5; + padding: 12px 24px; + border-top: 1px solid #1a1814; + background-color: #000; + box-shadow: 0 1px 3px 0 rgba(255,255,255, 0.1), 0 1px 2px 0 rgba(255,255,255, 0.26); + border-radius: 0 0 8px 8px; + border-bottom-width: 1px; + border-color: #1a1814; } + + .gridjs-footer:empty { + padding: 0; + border: none; } + + input.gridjs-input { + outline: none; + background-color: #000; + border: 1px solid #2d2923; + border-radius: 5px; + padding: 10px 13px; + font-size: 14px; + line-height: 1.45; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + input.gridjs-input:focus { + box-shadow: 0 0 0 3px rgba(106,66,12, 0.5); + border-color: #643d08; } + + .gridjs-pagination { + color: #c2bfbb; } + .gridjs-pagination::after { + content: ''; + display: block; + clear: both; } + .gridjs-pagination .gridjs-summary { + float: left; + margin-top: 5px; } + .gridjs-pagination .gridjs-pages { + float: right; } + .gridjs-pagination .gridjs-pages button { + padding: 5px 14px; + border: 1px solid #2d2923; + background-color: #000; + border-right: none; + outline: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .gridjs-pagination .gridjs-pages button:focus { + box-shadow: 0 0 0 2px rgba(106,66,12, 0.5); } + .gridjs-pagination .gridjs-pages button:hover { + background-color: #080808; + color: #c3bda8; + outline: none; } + .gridjs-pagination .gridjs-pages button:disabled, + .gridjs-pagination .gridjs-pages button[disabled], + .gridjs-pagination .gridjs-pages button:hover:disabled { + cursor: default; + background-color: #000; + color: #948d7f; } + .gridjs-pagination .gridjs-pages button.gridjs-spread { + cursor: default; + box-shadow: none; + background-color: #000; } + .gridjs-pagination .gridjs-pages button.gridjs-currentPage { + background-color: #080808; + font-weight: bold; } + .gridjs-pagination .gridjs-pages button:last-child { + border-bottom-right-radius: 6px; + border-top-right-radius: 6px; + border-right: 1px solid #2d2923; } + .gridjs-pagination .gridjs-pages button:first-child { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; } + + button.gridjs-sort { + float: right; + height: 24px; + width: 13px; + background-color: transparent; + background-repeat: no-repeat; + background-position-x: center; + cursor: pointer; + padding: 0; + margin: 0; + border: none; + outline: none; + background-size: contain; } + button.gridjs-sort-neutral { + opacity: 0.3; + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSI0MDEuOTk4cHgiIGhlaWdodD0iNDAxLjk5OHB4IiB2aWV3Qm94PSIwIDAgNDAxLjk5OCA0MDEuOTk4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDEuOTk4IDQwMS45OTg7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxnPgoJCTxwYXRoIGQ9Ik03My4wOTIsMTY0LjQ1MmgyNTUuODEzYzQuOTQ5LDAsOS4yMzMtMS44MDcsMTIuODQ4LTUuNDI0YzMuNjEzLTMuNjE2LDUuNDI3LTcuODk4LDUuNDI3LTEyLjg0NwoJCQljMC00Ljk0OS0xLjgxMy05LjIyOS01LjQyNy0xMi44NUwyMTMuODQ2LDUuNDI0QzIxMC4yMzIsMS44MTIsMjA1Ljk1MSwwLDIwMC45OTksMHMtOS4yMzMsMS44MTItMTIuODUsNS40MjRMNjAuMjQyLDEzMy4zMzEKCQkJYy0zLjYxNywzLjYxNy01LjQyNCw3LjkwMS01LjQyNCwxMi44NWMwLDQuOTQ4LDEuODA3LDkuMjMxLDUuNDI0LDEyLjg0N0M2My44NjMsMTYyLjY0NSw2OC4xNDQsMTY0LjQ1Miw3My4wOTIsMTY0LjQ1MnoiLz4KCQk8cGF0aCBkPSJNMzI4LjkwNSwyMzcuNTQ5SDczLjA5MmMtNC45NTIsMC05LjIzMywxLjgwOC0xMi44NSw1LjQyMWMtMy42MTcsMy42MTctNS40MjQsNy44OTgtNS40MjQsMTIuODQ3CgkJCWMwLDQuOTQ5LDEuODA3LDkuMjMzLDUuNDI0LDEyLjg0OEwxODguMTQ5LDM5Ni41N2MzLjYyMSwzLjYxNyw3LjkwMiw1LjQyOCwxMi44NSw1LjQyOHM5LjIzMy0xLjgxMSwxMi44NDctNS40MjhsMTI3LjkwNy0xMjcuOTA2CgkJCWMzLjYxMy0zLjYxNCw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDhjMC00Ljk0OC0xLjgxMy05LjIyOS01LjQyNy0xMi44NDdDMzM4LjEzOSwyMzkuMzUzLDMzMy44NTQsMjM3LjU0OSwzMjguOTA1LDIzNy41NDl6Ii8+Cgk8L2c+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+"); + background-position-y: center; filter: invert(100%);} + button.gridjs-sort-asc { + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIyOTIuMzYycHgiIGhlaWdodD0iMjkyLjM2MXB4IiB2aWV3Qm94PSIwIDAgMjkyLjM2MiAyOTIuMzYxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTIuMzYyIDI5Mi4zNjE7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yODYuOTM1LDE5Ny4yODdMMTU5LjAyOCw2OS4zODFjLTMuNjEzLTMuNjE3LTcuODk1LTUuNDI0LTEyLjg0Ny01LjQyNHMtOS4yMzMsMS44MDctMTIuODUsNS40MjRMNS40MjQsMTk3LjI4NwoJCUMxLjgwNywyMDAuOTA0LDAsMjA1LjE4NiwwLDIxMC4xMzRzMS44MDcsOS4yMzMsNS40MjQsMTIuODQ3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI1LDEyLjg1LDUuNDI1aDI1NS44MTMKCQljNC45NDksMCw5LjIzMy0xLjgwOCwxMi44NDgtNS40MjVjMy42MTMtMy42MTMsNS40MjctNy44OTgsNS40MjctMTIuODQ3UzI5MC41NDgsMjAwLjkwNCwyODYuOTM1LDE5Ny4yODd6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+"); + background-position-y: 35%; + background-size: 10px; filter: invert(100%);} + button.gridjs-sort-desc { + background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIyOTIuMzYycHgiIGhlaWdodD0iMjkyLjM2MnB4IiB2aWV3Qm94PSIwIDAgMjkyLjM2MiAyOTIuMzYyIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyOTIuMzYyIDI5Mi4zNjI7IgoJIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxwYXRoIGQ9Ik0yODYuOTM1LDY5LjM3N2MtMy42MTQtMy42MTctNy44OTgtNS40MjQtMTIuODQ4LTUuNDI0SDE4LjI3NGMtNC45NTIsMC05LjIzMywxLjgwNy0xMi44NSw1LjQyNAoJCUMxLjgwNyw3Mi45OTgsMCw3Ny4yNzksMCw4Mi4yMjhjMCw0Ljk0OCwxLjgwNyw5LjIyOSw1LjQyNCwxMi44NDdsMTI3LjkwNywxMjcuOTA3YzMuNjIxLDMuNjE3LDcuOTAyLDUuNDI4LDEyLjg1LDUuNDI4CgkJczkuMjMzLTEuODExLDEyLjg0Ny01LjQyOEwyODYuOTM1LDk1LjA3NGMzLjYxMy0zLjYxNyw1LjQyNy03Ljg5OCw1LjQyNy0xMi44NDdDMjkyLjM2Miw3Ny4yNzksMjkwLjU0OCw3Mi45OTgsMjg2LjkzNSw2OS4zNzd6Ii8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+"); + background-position-y: 65%; + background-size: 10px; filter: invert(100%);} + + button.gridjs-sort:focus { + outline: none; } + + table.gridjs-table { + max-width: 100%; + border-collapse: collapse; + text-align: left; + display: table; + margin: 0; + padding: 0; + overflow: auto; + table-layout: fixed; } + + .gridjs-tbody { + background-color: #000; } + + td.gridjs-td { + border: 1px solid #1a1814; + padding: 12px 24px; + background-color: #000; + box-sizing: content-box; } + + td.gridjs-td:first-child { + border-left: none; } + + td.gridjs-td:last-child { + border-right: none; } + + td.gridjs-message { + text-align: center; } + + th.gridjs-th { + position: relative; + color: #6b7280; + background-color: #060504; + border: 1px solid #1a1814; + border-top: none; + padding: 14px 24px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + box-sizing: border-box; + white-space: nowrap; + outline: none; + vertical-align: middle; } + th.gridjs-th .gridjs-th-content { + text-overflow: ellipsis; + overflow: hidden; + width: 100%; + float: left; } + th.gridjs-th-sort { + cursor: pointer; } + th.gridjs-th-sort .gridjs-th-content { + width: calc(100% - 15px); } + th.gridjs-th-sort:hover { + background-color: #1a1814; } + th.gridjs-th-sort:focus { + background-color: #1a1814; } + th.gridjs-th-fixed { + position: sticky; + box-shadow: 0 1px 0 0 #1a1814; } + @supports (-moz-appearance: none) { + th.gridjs-th-fixed { + box-shadow: 0 0 0 1px #1a1814; } } + + th.gridjs-th:first-child { + border-left: none; } + + th.gridjs-th:last-child { + border-right: none; } + + .gridjs-tr { + border: none; } + .gridjs-tr-selected td { + background-color: #140a00; } + + .gridjs-tr:last-child td { + border-bottom: 0; } + + .gridjs *, + .gridjs :after, + .gridjs :before { + box-sizing: border-box; } + + .gridjs-wrapper { + position: relative; + z-index: 1; + overflow: auto; + width: 100%; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + box-shadow: 0 1px 3px 0 rgba(255,255,255, 0.1), 0 1px 2px 0 rgba(255,255,255, 0.26); + border-radius: 8px 8px 0 0; + display: block; + border-top-width: 1px; + border-color: #1a1814; } + + .gridjs-wrapper:nth-last-of-type(2) { + border-radius: 8px; + border-bottom-width: 1px; } + + .gridjs-search { + float: left; } + .gridjs-search-input { + width: 250px; } + + .gridjs-loading-bar { + z-index: 10; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: #000; + opacity: 0.5; } + .gridjs-loading-bar::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + transform: translateX(-100%); + background-image: linear-gradient(90deg, rgba(51,51,51, 0) 0, rgba(51,51,51, 0.2) 20%, rgba(51,51,51, 0.5) 60%, rgba(51,51,51, 0)); + -webkit-animation: shimmer 2s infinite; + animation: shimmer 2s infinite; + content: ''; } + + @-webkit-keyframes shimmer { + 100% { + transform: translateX(100%); } } + + @keyframes shimmer { + 100% { + transform: translateX(100%); } } + + .gridjs-td .gridjs-checkbox { + display: block; + margin: auto; + cursor: pointer; } + + .gridjs-resizable { + position: absolute; + top: 0; + bottom: 0; + right: 0; + width: 5px; } + .gridjs-resizable:hover { + cursor: ew-resize; + background-color: #643d08; } + } diff --git a/pages/benchmark.html b/pages/benchmark.html index c9c5e91..d450814 100644 --- a/pages/benchmark.html +++ b/pages/benchmark.html @@ -11,14 +11,104 @@ - + +
+