mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
remove popover overflow logic
Remove popover height overflow calculation to avoid conflict between browsers in case that this is not useful anymore (avoid card overflow)
This commit is contained in:
parent
08d504579f
commit
fc935c197c
6 changed files with 9 additions and 396 deletions
|
|
@ -29,6 +29,7 @@ def reports_filters(reasons: Optional[list] = None, countries: Optional[list] =
|
|||
"value": "",
|
||||
"inpType": "input",
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
"fieldSize": "sm",
|
||||
"popovers": [
|
||||
{
|
||||
"iconName": "info",
|
||||
|
|
@ -53,6 +54,7 @@ def reports_filters(reasons: Optional[list] = None, countries: Optional[list] =
|
|||
"inpType": "select",
|
||||
"onlyDown": True,
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
"fieldSize": "sm",
|
||||
"popovers": [
|
||||
{
|
||||
"iconName": "info",
|
||||
|
|
@ -77,6 +79,7 @@ def reports_filters(reasons: Optional[list] = None, countries: Optional[list] =
|
|||
"inpType": "select",
|
||||
"onlyDown": True,
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
"fieldSize": "sm",
|
||||
"popovers": [
|
||||
{
|
||||
"iconName": "info",
|
||||
|
|
@ -101,6 +104,7 @@ def reports_filters(reasons: Optional[list] = None, countries: Optional[list] =
|
|||
"inpType": "select",
|
||||
"onlyDown": True,
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
"fieldSize": "sm",
|
||||
"popovers": [
|
||||
{
|
||||
"iconName": "info",
|
||||
|
|
@ -125,6 +129,7 @@ def reports_filters(reasons: Optional[list] = None, countries: Optional[list] =
|
|||
"inpType": "select",
|
||||
"onlyDown": True,
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
"fieldSize": "sm",
|
||||
"popovers": [
|
||||
{
|
||||
"iconName": "info",
|
||||
|
|
|
|||
|
|
@ -1,356 +0,0 @@
|
|||
import json
|
||||
|
||||
no_reports = []
|
||||
|
||||
details = {
|
||||
"top_reason": "antibot",
|
||||
"top_code": "400",
|
||||
"total_reports": "200",
|
||||
}
|
||||
|
||||
reports = [
|
||||
{
|
||||
"url": "/admin/login?id=etc/passwd",
|
||||
"ip": "172.21.0.1",
|
||||
"reason": "modsecurity",
|
||||
"country": "local",
|
||||
"status": 403,
|
||||
"method": "GET",
|
||||
"date": "25/06/2024 07:40:23",
|
||||
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
|
||||
"data": {"fesfesfsefesfesfesfesfesfesfesfesfesfsefes": "fesfs"},
|
||||
},
|
||||
{
|
||||
"url": "/admin/login?id=e",
|
||||
"ip": "111111",
|
||||
"reason": " antibot",
|
||||
"country": "fr",
|
||||
"status": 403,
|
||||
"method": "POST",
|
||||
"date": "25/06/2024 07:40:23",
|
||||
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
|
||||
"data": {},
|
||||
},
|
||||
{
|
||||
"url": "/admin/login?id=e",
|
||||
"ip": "111111",
|
||||
"reason": " antibot",
|
||||
"country": "fr",
|
||||
"status": 403,
|
||||
"method": "POST",
|
||||
"date": "25/06/2024 07:40:23",
|
||||
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
|
||||
"data": {},
|
||||
},
|
||||
{
|
||||
"url": "/admin/login?id=e",
|
||||
"ip": "111111",
|
||||
"reason": " antibot",
|
||||
"country": "fr",
|
||||
"status": 403,
|
||||
"method": "POST",
|
||||
"date": "25/06/2024 07:40:23",
|
||||
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
|
||||
"data": {},
|
||||
},
|
||||
{
|
||||
"url": "/admin/login?id=e",
|
||||
"ip": "111111",
|
||||
"reason": " antibot",
|
||||
"country": "fr",
|
||||
"status": 403,
|
||||
"method": "POST",
|
||||
"date": "25/06/2024 07:40:23",
|
||||
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
|
||||
"data": {},
|
||||
},
|
||||
{
|
||||
"url": "/admin/login?id=e",
|
||||
"ip": "111111",
|
||||
"reason": " antibot",
|
||||
"country": "fr",
|
||||
"status": 403,
|
||||
"method": "POST",
|
||||
"date": "25/06/2024 07:40:23",
|
||||
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
|
||||
"data": {},
|
||||
},
|
||||
]
|
||||
|
||||
# Reorder reports to get in order "date", "ip", "country", "method", "url", "code", "user_agent", "reason", "data"
|
||||
for report in reports:
|
||||
report["date"] = report.pop("date")
|
||||
report["ip"] = report.pop("ip")
|
||||
report["country"] = report.pop("country")
|
||||
report["method"] = report.pop("method")
|
||||
report["url"] = report.pop("url")
|
||||
report["code"] = report.pop("status")
|
||||
report["user_agent"] = report.pop("user_agent")
|
||||
report["reason"] = report.pop("reason")
|
||||
report["raw_data"] = report.pop("data")
|
||||
|
||||
|
||||
def get_reports_filter(reports):
|
||||
|
||||
if len(reports) <= 5:
|
||||
return []
|
||||
|
||||
total_countries = ["all"]
|
||||
total_methods = ["all"]
|
||||
total_status = ["all"]
|
||||
total_reasons = ["all"]
|
||||
|
||||
for report in reports:
|
||||
if report.get("country") and report.get("country") not in total_countries:
|
||||
total_countries.append(report.get("country"))
|
||||
|
||||
if report.get("method") and report.get("method") not in total_methods:
|
||||
total_methods.append(report.get("method"))
|
||||
|
||||
if report.get("status") and report.get("status") not in total_status:
|
||||
total_status.append(str(report.get("status")))
|
||||
|
||||
if report.get("reason") and report.get("reason") not in total_reasons:
|
||||
total_reasons.append(report.get("reason"))
|
||||
|
||||
filters = []
|
||||
|
||||
filters.append(
|
||||
{
|
||||
"filter": "table",
|
||||
"filterName": "keyword",
|
||||
"type": "keyword",
|
||||
"value": "",
|
||||
"keys": ["url", "ip", "date", "user_agent", "raw_data"],
|
||||
"field": {
|
||||
"id": "reports-keyword",
|
||||
"value": "",
|
||||
"type": "text",
|
||||
"name": "reports-keyword",
|
||||
"label": "reports_search",
|
||||
"placeholder": "inp_keyword",
|
||||
"isClipboard": False,
|
||||
"popovers": [
|
||||
{
|
||||
"text": "reports_search_desc",
|
||||
"iconName": "info",
|
||||
},
|
||||
],
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
if len(total_countries) > 2:
|
||||
filters.append(
|
||||
{
|
||||
"filter": "table",
|
||||
"filterName": "country",
|
||||
"type": "select",
|
||||
"value": "all",
|
||||
"keys": ["country"],
|
||||
"field": {
|
||||
"id": "reports-country",
|
||||
"value": "all",
|
||||
"values": total_countries,
|
||||
"name": "reports-country",
|
||||
"onlyDown": True,
|
||||
"label": "reports_country",
|
||||
"popovers": [
|
||||
{
|
||||
"text": "reports_country_desc",
|
||||
"iconName": "info",
|
||||
},
|
||||
],
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
if len(total_methods) > 2:
|
||||
filters.append(
|
||||
{
|
||||
"filter": "table",
|
||||
"filterName": "method",
|
||||
"type": "select",
|
||||
"value": "all",
|
||||
"keys": ["method"],
|
||||
"field": {
|
||||
"id": "reports-method",
|
||||
"value": "all",
|
||||
"values": total_methods,
|
||||
"name": "reports-method",
|
||||
"onlyDown": True,
|
||||
"label": "reports_method",
|
||||
"popovers": [
|
||||
{
|
||||
"text": "reports_method_desc",
|
||||
"iconName": "info",
|
||||
},
|
||||
],
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
if len(total_status) > 2:
|
||||
filters.append(
|
||||
{
|
||||
"filter": "table",
|
||||
"filterName": "status",
|
||||
"type": "select",
|
||||
"value": "all",
|
||||
"keys": ["status"],
|
||||
"field": {
|
||||
"id": "reports-status",
|
||||
"value": "all",
|
||||
"values": total_status,
|
||||
"name": "reports-status",
|
||||
"onlyDown": True,
|
||||
"label": "reports_status",
|
||||
"popovers": [
|
||||
{
|
||||
"text": "reports_status_desc",
|
||||
"iconName": "info",
|
||||
},
|
||||
],
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
if len(total_reasons) > 2:
|
||||
filters.append(
|
||||
{
|
||||
"filter": "table",
|
||||
"filterName": "reason",
|
||||
"type": "select",
|
||||
"value": "all",
|
||||
"keys": ["reason"],
|
||||
"field": {
|
||||
"id": "reports-reason",
|
||||
"value": "all",
|
||||
"values": total_reasons,
|
||||
"name": "reports-reason",
|
||||
"onlyDown": True,
|
||||
"label": "reports_reason",
|
||||
"popovers": [
|
||||
{
|
||||
"text": "reports_reason_desc",
|
||||
"iconName": "info",
|
||||
},
|
||||
],
|
||||
"columns": {"pc": 3, "tablet": 4, "mobile": 12},
|
||||
},
|
||||
},
|
||||
)
|
||||
return filters
|
||||
|
||||
|
||||
def get_reports_list(reports):
|
||||
data = []
|
||||
# loop on each dict
|
||||
for report in reports:
|
||||
item = []
|
||||
for k, v in report.items():
|
||||
item.append(
|
||||
{
|
||||
k: json.dumps(v) if isinstance(v, dict) else str(v),
|
||||
"type": "Text",
|
||||
"data": {
|
||||
"text": json.dumps(v) if isinstance(v, dict) else str(v),
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
data.append(item)
|
||||
|
||||
return data
|
||||
|
||||
|
||||
def get_reports_details(details):
|
||||
return {
|
||||
"type": "card",
|
||||
"containerColumns": {"pc": 4, "tablet": 6, "mobile": 12},
|
||||
"widgets": [
|
||||
{
|
||||
"type": "Title",
|
||||
"data": {"title": "dashboard_details"},
|
||||
},
|
||||
{
|
||||
"type": "ListPairs",
|
||||
"data": {
|
||||
"pairs": [
|
||||
{"key": "reports_total", "value": details.get("total_reports")},
|
||||
{"key": "reports_top_status", "value": details.get("top_code")},
|
||||
{
|
||||
"key": "reports_top_reason",
|
||||
"value": details.get("top_reason"),
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def reports_builder(reports, details=None):
|
||||
|
||||
if not reports:
|
||||
return [
|
||||
{
|
||||
"type": "void",
|
||||
"widgets": [
|
||||
{"type": "MessageUnmatch", "data": {"text": "reports_not_found"}}
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
details = get_reports_details(details)
|
||||
|
||||
filters = get_reports_filter(reports)
|
||||
reports_list = get_reports_list(reports)
|
||||
|
||||
reports_table = {
|
||||
"type": "card",
|
||||
"containerColumns": {"pc": 12, "tablet": 12, "mobile": 12},
|
||||
"widgets": [
|
||||
{
|
||||
"type": "Title",
|
||||
"data": {"title": "reports_title"},
|
||||
},
|
||||
{
|
||||
"type": "Table",
|
||||
"data": {
|
||||
"title": "reports_table_title",
|
||||
"minWidth": "xxl",
|
||||
"header": [
|
||||
"reports_table_date",
|
||||
"reports_table_ip",
|
||||
"reports_table_country",
|
||||
"reports_table_method",
|
||||
"reports_table_url",
|
||||
"reports_table_status_code",
|
||||
"reports_table_cache_user_agent",
|
||||
"reports_table_reason",
|
||||
"reports_table_data",
|
||||
],
|
||||
"positions": [1, 1, 1, 1, 2, 1, 2, 1, 2],
|
||||
"items": reports_list,
|
||||
"filters": filters,
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
builder = [details, reports_table]
|
||||
|
||||
return builder
|
||||
|
||||
|
||||
# output = reports_builder(reports)
|
||||
output = reports_builder(reports, details)
|
||||
|
||||
# store on a file
|
||||
with open("reports.json", "w") as f:
|
||||
json.dump(output, f, indent=4)
|
||||
|
|
@ -91,42 +91,6 @@ function showPopover() {
|
|||
window.innerWidth - popoverBtnRect.left - popoverBtnRect.width / 1.5
|
||||
}px`;
|
||||
|
||||
// We need to take care of parent padding and margin that will affect dropdown position but aren't calculate in rect
|
||||
const parents = [];
|
||||
const firstParent = popoverBtn.value.parentElement;
|
||||
const firstParentY = firstParent.getBoundingClientRect().y || 0;
|
||||
let isParent = popoverBtn.value.parentElement ? true : false;
|
||||
if (isParent) parents.push(firstParent);
|
||||
|
||||
while (isParent) {
|
||||
parents.push(parents[parents.length - 1].parentElement);
|
||||
isParent = parents[parents.length - 1].parentElement ? true : false;
|
||||
}
|
||||
|
||||
let noRectParentHeight = 0;
|
||||
for (let i = 0; i < parents.length; i++) {
|
||||
try {
|
||||
noRectParentHeight += +window
|
||||
.getComputedStyle(parents[i], null)
|
||||
.getPropertyValue("padding-top")
|
||||
.replace("px", "");
|
||||
} catch (e) {}
|
||||
|
||||
try {
|
||||
noRectParentHeight += +window
|
||||
.getComputedStyle(parents[i], null)
|
||||
.getPropertyValue("margin-top")
|
||||
.replace("px", "");
|
||||
} catch (e) {}
|
||||
}
|
||||
popoverContainer.value.style.top = `${
|
||||
firstParentY +
|
||||
window.scrollY -
|
||||
noRectParentHeight -
|
||||
popoverBtnRect.height -
|
||||
80
|
||||
}px`;
|
||||
|
||||
// Show popover
|
||||
setTimeout(() => {
|
||||
popover.isOpen = popover.isHover ? true : false;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
></div>
|
||||
<div
|
||||
class="hidden"
|
||||
data-server-builder='W3sidHlwZSI6ICJjYXJkIiwgIndpZGdldHMiOiBbeyJ0eXBlIjogIlRpdGxlIiwgImRhdGEiOiB7InRpdGxlIjogInJlcG9ydHNfdGl0bGUifX0sIHsidHlwZSI6ICJTdWJ0aXRsZSIsICJkYXRhIjogeyJzdWJ0aXRsZSI6ICJyZXBvcnRzX3N1YnRpdGxlIn19LCB7InR5cGUiOiAiVGFidWxhdG9yIiwgImRhdGEiOiB7ImlkIjogInRhYmxlLWNvcmUtcGx1Z2lucyIsICJjb2x1bW5zIjogW3sidGl0bGUiOiAiRGF0ZSIsICJmaWVsZCI6ICJkYXRlIiwgImZvcm1hdHRlciI6ICJmaWVsZHMiLCAibWluV2lkdGgiOiAyNTB9LCB7InRpdGxlIjogIklQIiwgImZpZWxkIjogImlwIiwgImZvcm1hdHRlciI6ICJ0ZXh0In0sIHsidGl0bGUiOiAiQ291bnRyeSIsICJmaWVsZCI6ICJjb3VudHJ5IiwgImZvcm1hdHRlciI6ICJ0ZXh0In0sIHsidGl0bGUiOiAiU2VydmVyIG5hbWUiLCAiZmllbGQiOiAic2VydmVyX25hbWUiLCAiZm9ybWF0dGVyIjogInRleHQifSwgeyJ0aXRsZSI6ICJNZXRob2QiLCAiZmllbGQiOiAibWV0aG9kIiwgImZvcm1hdHRlciI6ICJ0ZXh0In0sIHsidGl0bGUiOiAiVVJMIiwgImZpZWxkIjogInVybCIsICJmb3JtYXR0ZXIiOiAidGV4dCJ9LCB7InRpdGxlIjogIkNvZGUiLCAiZmllbGQiOiAiY29kZSIsICJmb3JtYXR0ZXIiOiAidGV4dCJ9LCB7InRpdGxlIjogIlVzZXIgYWdlbnQiLCAiZmllbGQiOiAidXNlcl9hZ2VudCIsICJmb3JtYXR0ZXIiOiAidGV4dCJ9LCB7InRpdGxlIjogIlJlYXNvbiIsICJmaWVsZCI6ICJyZWFzb24iLCAiZm9ybWF0dGVyIjogInRleHQifSwgeyJ0aXRsZSI6ICJEYXRhIiwgImZpZWxkIjogImRhdGEiLCAiZm9ybWF0dGVyIjogInRleHQifV0sICJpdGVtcyI6IFt7ImRhdGUiOiB7InNldHRpbmciOiB7ImxhYmVsIjogInJlcG9ydHNfZGF0ZSIsICJuYW1lIjogImRhdGVwaWNrZXItZGF0ZS0wIiwgImlkIjogImRhdGVwaWNrZXItZGF0ZS0wIiwgInZhbHVlIjogMTcyMzQ5MTczOTk1NCwgImhpZGVMYWJlbCI6IHRydWUsICJkaXNhYmxlZCI6IHRydWUsICJpbnBUeXBlIjogImRhdGVwaWNrZXIifX0sICJzZXJ2ZXJfbmFtZSI6IHsidGV4dCI6ICJsb2NhbGhvc3QifSwgImlwIjogeyJ0ZXh0IjogIjEyNy4wLjAuMSJ9LCAiY291bnRyeSI6IHsidGV4dCI6ICJFTiJ9LCAibWV0aG9kIjogeyJ0ZXh0IjogIlBPU1QifSwgInVybCI6IHsidGV4dCI6ICIvYWRtaW4ifSwgImNvZGUiOiB7InRleHQiOiAiNDAwIn0sICJ1c2VyX2FnZW50IjogeyJ0ZXh0IjogIk1vemlsbGEvNS4wIn0sICJyZWFzb24iOiB7InRleHQiOiAiYW50aWJvdCJ9LCAiZGF0YSI6IHsidGV4dCI6ICJsb3JlIGlwc3VtIGFkIHZpdGFtIGFldGVybmFtIn19LCB7ImRhdGUiOiB7InNldHRpbmciOiB7ImxhYmVsIjogInJlcG9ydHNfZGF0ZSIsICJuYW1lIjogImRhdGVwaWNrZXItZGF0ZS0xIiwgImlkIjogImRhdGVwaWNrZXItZGF0ZS0xIiwgInZhbHVlIjogMTcyMzQ5MTczODAwMCwgImhpZGVMYWJlbCI6IHRydWUsICJkaXNhYmxlZCI6IHRydWUsICJpbnBUeXBlIjogImRhdGVwaWNrZXIifX0sICJzZXJ2ZXJfbmFtZSI6IHsidGV4dCI6ICJsb2NhbGhvc3QifSwgImlwIjogeyJ0ZXh0IjogIjEyNy4wLjAuMiJ9LCAiY291bnRyeSI6IHsidGV4dCI6ICJFTiJ9LCAibWV0aG9kIjogeyJ0ZXh0IjogIkdFVCJ9LCAidXJsIjogeyJ0ZXh0IjogIi9ldGM/In0sICJjb2RlIjogeyJ0ZXh0IjogIjMwMCJ9LCAidXNlcl9hZ2VudCI6IHsidGV4dCI6ICJNb3ppbGxhLzAuMSJ9LCAicmVhc29uIjogeyJ0ZXh0IjogInVua25vd24ifSwgImRhdGEiOiB7InRleHQiOiAiIn19XSwgImZpbHRlcnMiOiBbeyJ0eXBlIjogImxpa2UiLCAiZmllbGRzIjogWyJpcCIsICJ1cmwiLCAidXNlcl9hZ2VudCIsICJkYXRhIl0sICJzZXR0aW5nIjogeyJpZCI6ICJpbnB1dC1zZWFyY2gtbWlzYyIsICJuYW1lIjogImlucHV0LXNlYXJjaC1taXNjIiwgImxhYmVsIjogInJlcG9ydHNfc2VhcmNoX21pc2MiLCAidmFsdWUiOiAiIiwgImlucFR5cGUiOiAiaW5wdXQiLCAiY29sdW1ucyI6IHsicGMiOiAzLCAidGFibGV0IjogNCwgIm1vYmlsZSI6IDEyfSwgInBvcG92ZXJzIjogW3siaWNvbk5hbWUiOiAiaW5mbyIsICJ0ZXh0IjogInJlcG9ydHNfc2VhcmNoX21pc2NfZGVzYyJ9XX19LCB7InR5cGUiOiAiPSIsICJmaWVsZHMiOiBbInJlYXNvbiJdLCAic2V0dGluZyI6IHsiaWQiOiAic2VsZWN0LXJlYXNvbiIsICJuYW1lIjogInNlbGVjdC1yZWFzb24iLCAibGFiZWwiOiAicmVwb3J0c19zZWxlY3RfcmVhc29uIiwgInZhbHVlIjogImFsbCIsICJ2YWx1ZXMiOiBbImFsbCIsICJ1bmtub3duIiwgImFudGlib3QiXSwgImlucFR5cGUiOiAic2VsZWN0IiwgIm9ubHlEb3duIjogdHJ1ZSwgImNvbHVtbnMiOiB7InBjIjogMywgInRhYmxldCI6IDQsICJtb2JpbGUiOiAxMn0sICJwb3BvdmVycyI6IFt7Imljb25OYW1lIjogImluZm8iLCAidGV4dCI6ICJyZXBvcnRzX3NlbGVjdF9yZWFzb25fZGVzYyJ9XX19LCB7InR5cGUiOiAiPSIsICJmaWVsZHMiOiBbIm1ldGhvZCJdLCAic2V0dGluZyI6IHsiaWQiOiAic2VsZWN0LW1ldGhvZCIsICJuYW1lIjogInNlbGVjdC1tZXRob2QiLCAibGFiZWwiOiAicmVwb3J0c19zZWxlY3RfbWV0aG9kIiwgInZhbHVlIjogImFsbCIsICJ2YWx1ZXMiOiBbImFsbCIsICJQT1NUIiwgIkdFVCJdLCAiaW5wVHlwZSI6ICJzZWxlY3QiLCAib25seURvd24iOiB0cnVlLCAiY29sdW1ucyI6IHsicGMiOiAzLCAidGFibGV0IjogNCwgIm1vYmlsZSI6IDEyfSwgInBvcG92ZXJzIjogW3siaWNvbk5hbWUiOiAiaW5mbyIsICJ0ZXh0IjogInJlcG9ydHNfc2VsZWN0X21ldGhvZF9kZXNjIn1dfX0sIHsidHlwZSI6ICI9IiwgImZpZWxkcyI6IFsiY29kZSJdLCAic2V0dGluZyI6IHsiaWQiOiAic2VsZWN0LWNvZGUiLCAibmFtZSI6ICJzZWxlY3QtY29kZSIsICJsYWJlbCI6ICJyZXBvcnRzX3NlbGVjdF9jb2RlIiwgInZhbHVlIjogImFsbCIsICJ2YWx1ZXMiOiBbImFsbCIsICI0MDAiLCAiMzAwIl0sICJpbnBUeXBlIjogInNlbGVjdCIsICJvbmx5RG93biI6IHRydWUsICJjb2x1bW5zIjogeyJwYyI6IDMsICJ0YWJsZXQiOiA0LCAibW9iaWxlIjogMTJ9LCAicG9wb3ZlcnMiOiBbeyJpY29uTmFtZSI6ICJpbmZvIiwgInRleHQiOiAicmVwb3J0c19zZWxlY3RfY29kZV9kZXNjIn1dfX1dfX1dfV0='
|
||||
data-server-builder='W3sidHlwZSI6ICJjYXJkIiwgIndpZGdldHMiOiBbeyJ0eXBlIjogIlRpdGxlIiwgImRhdGEiOiB7InRpdGxlIjogInJlcG9ydHNfdGl0bGUifX0sIHsidHlwZSI6ICJTdWJ0aXRsZSIsICJkYXRhIjogeyJzdWJ0aXRsZSI6ICJyZXBvcnRzX3N1YnRpdGxlIn19LCB7InR5cGUiOiAiVGFidWxhdG9yIiwgImRhdGEiOiB7ImlkIjogInRhYmxlLWNvcmUtcGx1Z2lucyIsICJjb2x1bW5zIjogW3sidGl0bGUiOiAiRGF0ZSIsICJmaWVsZCI6ICJkYXRlIiwgImZvcm1hdHRlciI6ICJmaWVsZHMiLCAibWluV2lkdGgiOiAyNTB9LCB7InRpdGxlIjogIklQIiwgImZpZWxkIjogImlwIiwgImZvcm1hdHRlciI6ICJ0ZXh0In0sIHsidGl0bGUiOiAiQ291bnRyeSIsICJmaWVsZCI6ICJjb3VudHJ5IiwgImZvcm1hdHRlciI6ICJ0ZXh0In0sIHsidGl0bGUiOiAiU2VydmVyIG5hbWUiLCAiZmllbGQiOiAic2VydmVyX25hbWUiLCAiZm9ybWF0dGVyIjogInRleHQifSwgeyJ0aXRsZSI6ICJNZXRob2QiLCAiZmllbGQiOiAibWV0aG9kIiwgImZvcm1hdHRlciI6ICJ0ZXh0In0sIHsidGl0bGUiOiAiVVJMIiwgImZpZWxkIjogInVybCIsICJmb3JtYXR0ZXIiOiAidGV4dCJ9LCB7InRpdGxlIjogIkNvZGUiLCAiZmllbGQiOiAiY29kZSIsICJmb3JtYXR0ZXIiOiAidGV4dCJ9LCB7InRpdGxlIjogIlVzZXIgYWdlbnQiLCAiZmllbGQiOiAidXNlcl9hZ2VudCIsICJmb3JtYXR0ZXIiOiAidGV4dCJ9LCB7InRpdGxlIjogIlJlYXNvbiIsICJmaWVsZCI6ICJyZWFzb24iLCAiZm9ybWF0dGVyIjogInRleHQifSwgeyJ0aXRsZSI6ICJEYXRhIiwgImZpZWxkIjogImRhdGEiLCAiZm9ybWF0dGVyIjogInRleHQifV0sICJpdGVtcyI6IFt7ImRhdGUiOiB7InNldHRpbmciOiB7ImxhYmVsIjogInJlcG9ydHNfZGF0ZSIsICJuYW1lIjogImRhdGVwaWNrZXItZGF0ZS0wIiwgImlkIjogImRhdGVwaWNrZXItZGF0ZS0wIiwgInZhbHVlIjogMTcyMzQ5MTczOTk1NCwgImhpZGVMYWJlbCI6IHRydWUsICJkaXNhYmxlZCI6IHRydWUsICJpbnBUeXBlIjogImRhdGVwaWNrZXIifX0sICJzZXJ2ZXJfbmFtZSI6IHsidGV4dCI6ICJsb2NhbGhvc3QifSwgImlwIjogeyJ0ZXh0IjogIjEyNy4wLjAuMSJ9LCAiY291bnRyeSI6IHsidGV4dCI6ICJFTiJ9LCAibWV0aG9kIjogeyJ0ZXh0IjogIlBPU1QifSwgInVybCI6IHsidGV4dCI6ICIvYWRtaW4ifSwgImNvZGUiOiB7InRleHQiOiAiNDAwIn0sICJ1c2VyX2FnZW50IjogeyJ0ZXh0IjogIk1vemlsbGEvNS4wIn0sICJyZWFzb24iOiB7InRleHQiOiAiYW50aWJvdCJ9LCAiZGF0YSI6IHsidGV4dCI6ICJsb3JlIGlwc3VtIGFkIHZpdGFtIGFldGVybmFtIn19LCB7ImRhdGUiOiB7InNldHRpbmciOiB7ImxhYmVsIjogInJlcG9ydHNfZGF0ZSIsICJuYW1lIjogImRhdGVwaWNrZXItZGF0ZS0xIiwgImlkIjogImRhdGVwaWNrZXItZGF0ZS0xIiwgInZhbHVlIjogMTcyMzQ5MTczODAwMCwgImhpZGVMYWJlbCI6IHRydWUsICJkaXNhYmxlZCI6IHRydWUsICJpbnBUeXBlIjogImRhdGVwaWNrZXIifX0sICJzZXJ2ZXJfbmFtZSI6IHsidGV4dCI6ICJsb2NhbGhvc3QifSwgImlwIjogeyJ0ZXh0IjogIjEyNy4wLjAuMiJ9LCAiY291bnRyeSI6IHsidGV4dCI6ICJFTiJ9LCAibWV0aG9kIjogeyJ0ZXh0IjogIkdFVCJ9LCAidXJsIjogeyJ0ZXh0IjogIi9ldGM/In0sICJjb2RlIjogeyJ0ZXh0IjogIjMwMCJ9LCAidXNlcl9hZ2VudCI6IHsidGV4dCI6ICJNb3ppbGxhLzAuMSJ9LCAicmVhc29uIjogeyJ0ZXh0IjogInVua25vd24ifSwgImRhdGEiOiB7InRleHQiOiAiIn19XSwgImZpbHRlcnMiOiBbeyJ0eXBlIjogImxpa2UiLCAiZmllbGRzIjogWyJpcCIsICJ1cmwiLCAidXNlcl9hZ2VudCIsICJkYXRhIl0sICJzZXR0aW5nIjogeyJpZCI6ICJpbnB1dC1zZWFyY2gtbWlzYyIsICJuYW1lIjogImlucHV0LXNlYXJjaC1taXNjIiwgImxhYmVsIjogInJlcG9ydHNfc2VhcmNoX21pc2MiLCAidmFsdWUiOiAiIiwgImlucFR5cGUiOiAiaW5wdXQiLCAiY29sdW1ucyI6IHsicGMiOiAzLCAidGFibGV0IjogNCwgIm1vYmlsZSI6IDEyfSwgImZpZWxkU2l6ZSI6ICJzbSIsICJwb3BvdmVycyI6IFt7Imljb25OYW1lIjogImluZm8iLCAidGV4dCI6ICJyZXBvcnRzX3NlYXJjaF9taXNjX2Rlc2MifV19fSwgeyJ0eXBlIjogIj0iLCAiZmllbGRzIjogWyJyZWFzb24iXSwgInNldHRpbmciOiB7ImlkIjogInNlbGVjdC1yZWFzb24iLCAibmFtZSI6ICJzZWxlY3QtcmVhc29uIiwgImxhYmVsIjogInJlcG9ydHNfc2VsZWN0X3JlYXNvbiIsICJ2YWx1ZSI6ICJhbGwiLCAidmFsdWVzIjogWyJhbGwiLCAidW5rbm93biIsICJhbnRpYm90Il0sICJpbnBUeXBlIjogInNlbGVjdCIsICJvbmx5RG93biI6IHRydWUsICJjb2x1bW5zIjogeyJwYyI6IDMsICJ0YWJsZXQiOiA0LCAibW9iaWxlIjogMTJ9LCAiZmllbGRTaXplIjogInNtIiwgInBvcG92ZXJzIjogW3siaWNvbk5hbWUiOiAiaW5mbyIsICJ0ZXh0IjogInJlcG9ydHNfc2VsZWN0X3JlYXNvbl9kZXNjIn1dfX0sIHsidHlwZSI6ICI9IiwgImZpZWxkcyI6IFsibWV0aG9kIl0sICJzZXR0aW5nIjogeyJpZCI6ICJzZWxlY3QtbWV0aG9kIiwgIm5hbWUiOiAic2VsZWN0LW1ldGhvZCIsICJsYWJlbCI6ICJyZXBvcnRzX3NlbGVjdF9tZXRob2QiLCAidmFsdWUiOiAiYWxsIiwgInZhbHVlcyI6IFsiYWxsIiwgIkdFVCIsICJQT1NUIl0sICJpbnBUeXBlIjogInNlbGVjdCIsICJvbmx5RG93biI6IHRydWUsICJjb2x1bW5zIjogeyJwYyI6IDMsICJ0YWJsZXQiOiA0LCAibW9iaWxlIjogMTJ9LCAiZmllbGRTaXplIjogInNtIiwgInBvcG92ZXJzIjogW3siaWNvbk5hbWUiOiAiaW5mbyIsICJ0ZXh0IjogInJlcG9ydHNfc2VsZWN0X21ldGhvZF9kZXNjIn1dfX0sIHsidHlwZSI6ICI9IiwgImZpZWxkcyI6IFsiY29kZSJdLCAic2V0dGluZyI6IHsiaWQiOiAic2VsZWN0LWNvZGUiLCAibmFtZSI6ICJzZWxlY3QtY29kZSIsICJsYWJlbCI6ICJyZXBvcnRzX3NlbGVjdF9jb2RlIiwgInZhbHVlIjogImFsbCIsICJ2YWx1ZXMiOiBbImFsbCIsICIzMDAiLCAiNDAwIl0sICJpbnBUeXBlIjogInNlbGVjdCIsICJvbmx5RG93biI6IHRydWUsICJjb2x1bW5zIjogeyJwYyI6IDMsICJ0YWJsZXQiOiA0LCAibW9iaWxlIjogMTJ9LCAiZmllbGRTaXplIjogInNtIiwgInBvcG92ZXJzIjogW3siaWNvbk5hbWUiOiAiaW5mbyIsICJ0ZXh0IjogInJlcG9ydHNfc2VsZWN0X2NvZGVfZGVzYyJ9XX19XX19XX1d'
|
||||
></div>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="reports.js"></script>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1087,8 +1087,8 @@ export default {
|
|||
...theme("spacing"),
|
||||
"size-inherit": "inherit",
|
||||
"3xs": ["0.5rem", { lineHeight: "1rem" }],
|
||||
xxs: ["0.65rem", { lineHeight: "1rem" }],
|
||||
xs: ["0.825rem", { lineHeight: "1rem" }],
|
||||
xxs: ["0.825rem", { lineHeight: "1rem" }],
|
||||
xs: ["0.85rem", { lineHeight: "1rem" }],
|
||||
sm: ["0.875rem", { lineHeight: "1.5rem" }],
|
||||
base: ["1rem", { lineHeight: "1.5rem" }],
|
||||
lg: ["1.125rem", { lineHeight: "1.75rem" }],
|
||||
|
|
|
|||
Loading…
Reference in a new issue