未验证 提交 f04f4078 编写于 作者: J Jan Faracik 提交者: GitHub

[JENKINS-65124] Update weather icons (#7208)

Co-authored-by: NDaniel Beck <1831569+daniel-beck@users.noreply.github.com>
Co-authored-by: NTim Jacomb <21194782+timja@users.noreply.github.com>
上级 90cfc942
......@@ -582,6 +582,11 @@ public class IconSet {
translations.put("icon-folder", "symbol-folder");
translations.put("icon-gear", "symbol-settings");
translations.put("icon-gear2", "symbol-settings");
translations.put("icon-health-00to19", "symbol-weather-icon-health-00to19");
translations.put("icon-health-20to39", "symbol-weather-icon-health-20to39");
translations.put("icon-health-40to59", "symbol-weather-icon-health-40to59");
translations.put("icon-health-60to79", "symbol-weather-icon-health-60to79");
translations.put("icon-health-80plus", "symbol-weather-icon-health-80plus");
translations.put("icon-help", "symbol-help-circle");
translations.put("icon-keys", "symbol-key");
translations.put("icon-monitor", "symbol-terminal");
......
......@@ -26,82 +26,138 @@ THE SOFTWARE.
<!-- show the icon legend -->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:s="/lib/form">
<l:layout>
<st:include page="sidepanel.jelly" />
<l:layout title="${%Icon legend}">
<l:app-bar title="${title}" />
<st:include page="sidepanel.jelly"/>
<l:main-panel>
<table cellpadding="5" id="legend-table">
<tr><td>
<h2>${%Status}</h2>
<dl class="app-icon-legend">
<dt>
<l:icon class="icon-blue icon-xlg"/>
</dt>
<dd>
${%blue}
</dd>
<dt>
<l:icon class="icon-blue-anime icon-xlg"/>
</dt>
<dd>
${%blue_anime}
</dd>
<dt>
<l:icon class="icon-yellow icon-xlg"/>
</dt>
<dd>
${%yellow}
</dd>
<dt>
<l:icon class="icon-yellow-anime icon-xlg"/>
</dt>
<dd>
${%yellow_anime}
</dd>
<dt>
<l:icon class="icon-red icon-xlg"/>
</dt>
<dd>
${%red}
</dd>
<dt>
<l:icon class="icon-red-anime icon-xlg"/>
</dt>
<dd>
${%red_anime}
</dd>
<dt>
<l:icon class="icon-nobuilt icon-xlg"/>
</dt>
<dd>
${%lightgrey}
</td></tr>
<tr><td>
</dd>
<dt>
<l:icon class="icon-nobuilt-anime icon-xlg"/>
</dt>
<dd>
${%lightgrey_anime}
</td></tr>
</dd>
<tr><td>
<dt>
<l:icon class="icon-disabled icon-xlg"/>
</dt>
<dd>
${%grey}
</td></tr>
<tr><td>
</dd>
<dt>
<l:icon class="icon-disabled-anime icon-xlg"/>
</dt>
<dd>
${%grey_anime}
</td></tr>
</dd>
<tr><td>
<dt>
<l:icon class="icon-aborted icon-xlg"/>
</dt>
<dd>
${%darkgrey}
</td></tr>
<tr><td>
</dd>
<dt>
<l:icon class="icon-aborted-anime icon-xlg"/>
</dt>
<dd>
${%darkgrey_anime}
</td></tr>
</dd>
</dl>
<tr><td>
<l:icon class="icon-blue icon-xlg"/>
${%blue}
</td></tr>
<tr><td>
<l:icon class="icon-blue-anime icon-xlg"/>
${%blue_anime}
</td></tr>
<tr><td>
<l:icon class="icon-yellow icon-xlg"/>
${%yellow}
</td></tr>
<tr><td>
<l:icon class="icon-yellow-anime icon-xlg"/>
${%yellow_anime}
</td></tr>
<tr><td>
<l:icon class="icon-red icon-xlg"/>
${%red}
</td></tr>
<tr><td>
<l:icon class="icon-red-anime icon-xlg"/>
${%red_anime}
</td></tr>
<tr><td>
<l:icon class="icon-health-80plus icon-xlg"/>
<h2>${%Project Health}</h2>
<dl class="app-icon-legend">
<dt>
<l:icon src="symbol-weather-icon-health-80plus" />
</dt>
<dd>
${%health-81plus}
</td></tr>
<tr><td>
<l:icon class="icon-health-60to79 icon-xlg"/>
</dd>
<dt>
<l:icon src="symbol-weather-icon-health-60to79" />
</dt>
<dd>
${%health-61to80}
</td></tr>
<tr><td>
<l:icon class="icon-health-40to59 icon-xlg"/>
</dd>
<dt>
<l:icon src="symbol-weather-icon-health-40to59" />
</dt>
<dd>
${%health-41to60}
</td></tr>
<tr><td>
<l:icon class="icon-health-20to39 icon-xlg"/>
</dd>
<dt>
<l:icon src="symbol-weather-icon-health-20to39" />
</dt>
<dd>
${%health-21to40}
</td></tr>
<tr><td>
<l:icon class="icon-health-00to19 icon-xlg"/>
</dd>
<dt>
<l:icon src="symbol-weather-icon-health-00to19" />
</dt>
<dd>
${%health-00to20}
</td></tr>
</table>
</dd>
</dl>
</l:main-panel>
</l:layout>
</j:jelly>
......@@ -33,9 +33,8 @@ yellow=The last build was successful but unstable. \
yellow_anime=The last build was successful but unstable. A new build is in progress.
red=The last build failed.
red_anime=The last build failed. A new build is in progress.
health-81plus=Project health is over 80%. You can hover the mouse over the project’s icon for a more detailed explanation.
health-61to80=Project health is over 60% and up to 80%. You can hover the mouse over the project’s icon for a more detailed explanation.
health-41to60=Project health is over 40% and up to 60%. You can hover the mouse over the project’s icon for a more detailed explanation.
health-21to40=Project health is over 20% and up to 40%. You can hover the mouse over the project’s icon for a more detailed explanation.
health-00to20=Project health is 20% or less. You can hover the mouse over the project’s icon for a more detailed explanation.
health-81plus=Project health is over 80%
health-61to80=Project health is over 60% and up to 80%
health-41to60=Project health is over 40% and up to 60%
health-21to40=Project health is over 20% and up to 40%
health-00to20=Project health is 20% or less
......@@ -31,60 +31,52 @@ THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:x="jelly:xml" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<j:set var="healthReports" value="${job.buildHealthReports}"/>
<j:new var="emptyHealthReport" className="hudson.model.HealthReport"/>
<j:set var="buildHealth" value="${empty(healthReports) ? emptyHealthReport : healthReports[0]}"/>
<j:if test="${td}"><j:set var="useTdElement" value="x"/></j:if>
<x:element name="${useTdElement!=null?'td':'div'}">
<x:attribute name="data">${buildHealth.score}</x:attribute>
<x:attribute name="class">jenkins-table__cell--tight jenkins-table__icon healthReport</x:attribute>
<j:if test="${buildHealth!=null}">
<div class="jenkins-table__cell__button-wrapper">
<j:if test="${iconSizeClass == null}">
<j:choose>
<j:when test="${iconSize == null}">
<j:set var="iconSizeClass" value="icon-sm"/>
</j:when>
<j:otherwise>
<j:set var="iconSizeClass" value="${icons.toNormalizedIconSizeClass(iconSize)}"/>
</j:otherwise>
</j:choose>
</j:if>
<j:choose>
<j:when test="${!empty(healthReports)}">
<a class="build-health-link jenkins-table__button" href="${empty(link)?'#':link}" style="${attrs.style}">
<l:svgIcon href="${resURL}/images/${icons.getIconByClassSpec(buildHealth.iconClassName + ' icon-md').url}" ariaHidden="true"/>
</a>
</j:when>
<j:otherwise>
<l:svgIcon href="${resURL}/images/${icons.getIconByClassSpec(buildHealth.iconClassName + ' icon-md').url}"/>
</j:otherwise>
</j:choose>
</div>
</j:if>
<j:if test="${!empty(healthReports)}">
<div class="jenkins-tooltip healthReportDetails">
<table class="jenkins-table">
<thead>
<tr>
<th align="left">W</th>
<th align="left">${%Description}</th>
<th align="right">%</th>
</tr>
</thead>
<tbody>
<j:forEach var="rpt" items="${healthReports}">
<tr>
<td align="left">
<l:icon class="${rpt.iconClassName} icon-sm" />
</td>
<td align="left">${rpt.localizableDescription}</td>
<td align="right">${rpt.score}</td>
</tr>
</j:forEach>
</tbody>
</table>
</div>
</j:if>
</x:element>
<j:set var="healthReports" value="${job.buildHealthReports}"/>
<j:new var="emptyHealthReport" className="hudson.model.HealthReport"/>
<j:set var="buildHealth" value="${empty(healthReports) ? emptyHealthReport : healthReports[0]}"/>
<j:if test="${td}"><j:set var="useTdElement" value="x"/></j:if>
<x:element name="${useTdElement!=null?'td':'div'}">
<x:attribute name="data">${buildHealth.score}</x:attribute>
<x:attribute name="class">jenkins-table__cell--tight jenkins-table__icon healthReport</x:attribute>
<j:if test="${buildHealth!=null}">
<div class="jenkins-table__cell__button-wrapper">
<j:choose>
<j:when test="${!empty(healthReports)}">
<a class="build-health-link jenkins-table__button" href="${empty(link)?'#':link}" style="${attrs.style}">
<l:icon src="symbol-weather-${buildHealth.iconClassName}" />
</a>
</j:when>
<j:otherwise>
<l:icon src="symbol-weather-${buildHealth.iconClassName}" tooltip="${buildHealth.score}%" />
</j:otherwise>
</j:choose>
</div>
</j:if>
<j:if test="${!empty(healthReports)}">
<div class="jenkins-tooltip healthReportDetails">
<table class="jenkins-table">
<thead>
<tr>
<th class="jenkins-!-padding-left-0" align="center">W</th>
<th align="left">${%Description}</th>
<th align="right">%</th>
</tr>
</thead>
<tbody>
<j:forEach var="rpt" items="${healthReports}">
<tr>
<td align="left" class="jenkins-table__cell--tight jenkins-table__icon">
<div class="jenkins-table__cell__button-wrapper">
<l:icon src="symbol-weather-${buildHealth.iconClassName}" />
</div>
</td>
<td align="left">${rpt.localizableDescription}</td>
<td align="right">${rpt.score}</td>
</tr>
</j:forEach>
</tbody>
</table>
</div>
</j:if>
</x:element>
</j:jelly>
......@@ -346,7 +346,7 @@
pink: #fb0f45;
purple: #af52de;
red: #e6001f;
yellow: #fc0;
yellow: #ffb31a;
}
@semantics: {
......
......@@ -1421,11 +1421,6 @@ td.matrix-cell {
text-align: center;
}
/* ========================= legend.jelly ================== */
table#legend-table td {
vertical-align: middle;
}
/* ========================= select.jelly ================== */
select.select-ajax-pending {
padding-left: 1.5em;
......
......@@ -85,11 +85,6 @@
.status-icon-color(var(--primary));
}
[class*="icon-health-"] {
color: var(--weather-icon-color);
fill: var(--weather-icon-color);
}
.build-status-icon__wrapper {
display: inline-flex;
position: relative;
......
......@@ -63,7 +63,7 @@
padding: var(--table-padding) 0 var(--table-padding)
var(--table-padding);
font-weight: 500;
height: 50px;
height: 3rem;
&:first-of-type {
padding-left: calc(var(--table-padding) * 2);
......@@ -152,8 +152,8 @@
svg,
.build-status-icon__wrapper,
img {
width: 24px !important;
height: 24px !important;
width: 1.5rem !important;
height: 1.5rem !important;
}
}
......@@ -170,8 +170,8 @@
svg,
.build-status-icon__wrapper,
img {
width: 20px !important;
height: 20px !important;
width: 1.3rem !important;
height: 1.3rem !important;
}
}
}
......@@ -189,8 +189,8 @@
svg,
.build-status-icon__wrapper,
img {
width: 16px !important;
height: 16px !important;
width: 1rem !important;
height: 1rem !important;
}
}
}
......
.app-icon-legend {
display: grid;
grid-template-columns: auto 1fr;
gap: calc(var(--section-padding) / 2);
align-items: center;
margin: 0;
padding: 0;
&:not(:last-of-type) {
margin-bottom: var(--section-padding);
}
dt {
display: flex;
align-items: center;
justify-items: center;
svg {
width: 3rem;
height: 3rem;
}
}
dd {
margin: 0;
padding: 0;
font-weight: 500;
}
}
......@@ -37,6 +37,7 @@
@import url("./modules/tooltips");
@import url("./pages/about");
@import url("./pages/dashboard");
@import url("./pages/icon-legend");
@import url("./pages/manage-jenkins");
@import url("./pages/plugin-manager");
@import url("./pages/setupWizardFirstUser");
......
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg" stroke-width="36px" stroke-linecap="round" stroke-linejoin="round">
<path d="M208 304L192 400H240V480L320 368H272L288 304" stroke="var(--yellow)" />
<path d="M404.33 152.89H392.2C384.71 84.85 326.14 32 256 32C227.819 31.9729 200.322 40.6756 177.289 56.9116C154.255 73.1476 136.817 96.1198 127.37 122.67H122.8C72.86 122.67 32 163.47 32 213.33C32 263.2 72.86 304 122.8 304H404.33C446 304 480 270 480 228.44C480 186.89 446 152.89 404.33 152.89Z" stroke="var(--text-color-secondary)" />
<path d="M120 352L96 400M136 432L120 464M400 352L376 400M416 432L400 464" stroke="var(--cyan)"/>
</svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" stroke="var(--text-color-secondary)" stroke-width="36px">
<path fill="transparent" d="M114.61,162.85A16.07,16.07,0,0,0,128,149.6C140.09,76.17,193.63,32,256,32c57.93,0,96.62,37.75,112.2,77.74a15.84,15.84,0,0,0,12.2,9.87c50,8.15,91.6,41.54,91.6,99.59C472,278.6,423.4,320,364,320H130c-49.5,0-90-24.7-90-79.2C40,192.33,78.67,168.58,114.61,162.85Z"/>
<line x1="144" y1="384" x2="112" y2="432" stroke="var(--cyan)" stroke-linecap="round" />
<line x1="224" y1="384" x2="160" y2="480" stroke="var(--cyan)" stroke-linecap="round" />
<line x1="304" y1="384" x2="272" y2="432" stroke="var(--cyan)" stroke-linecap="round" />
<line x1="384" y1="384" x2="320" y2="480" stroke="var(--cyan)" stroke-linecap="round" />
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M100.18 241.19a15.93 15.93 0 0013.37-13.25C126.6 145.59 186.34 96 256 96c64.69 0 107.79 42.36 124.92 87a16.11 16.11 0 0012.53 10.18C449.36 202.06 496 239.21 496 304c0 66-54 112-120 112H116c-55 0-100-27.44-100-88 0-54.43 43.89-80.81 84.18-86.81z" fill="none" stroke="var(--text-color-secondary)" stroke-linejoin="round" stroke-width="36px"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" stroke="var(--text-color-secondary)" stroke-width="36px">
<path d="M384.8,271.4a80,80,0,1,0-123.55-92" fill="transparent" stroke="var(--yellow)" />
<path d="M90.61,306.85A16.07,16.07,0,0,0,104,293.6C116.09,220.17,169.63,176,232,176c57.93,0,96.62,37.75,112.2,77.74a15.84,15.84,0,0,0,12.2,9.87c50,8.15,91.6,41.54,91.6,99.59C448,422.6,399.4,464,340,464H106c-49.5,0-90-24.7-90-79.2C16,336.33,54.67,312.58,90.61,306.85Z" fill="transparent" />
<line x1="464" y1="208" x2="496" y2="208" stroke="var(--yellow)" stroke-linecap="round" />
<line x1="336" y1="48" x2="336" y2="80" stroke="var(--yellow)" stroke-linecap="round" />
<line x1="222.86" y1="94.86" x2="245.49" y2="117.49" stroke="var(--yellow)" stroke-linecap="round" />
<line x1="449.14" y1="94.86" x2="426.51" y2="117.49" stroke="var(--yellow)" stroke-linecap="round" />
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><line x1="256" y1="48" x2="256" y2="96" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/><line x1="256" y1="416" x2="256" y2="464" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/><line x1="403.08" y1="108.92" x2="369.14" y2="142.86" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/><line x1="142.86" y1="369.14" x2="108.92" y2="403.08" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/><line x1="464" y1="256" x2="416" y2="256" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/><line x1="96" y1="256" x2="48" y2="256" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/><line x1="403.08" y1="403.08" x2="369.14" y2="369.14" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/><line x1="142.86" y1="142.86" x2="108.92" y2="108.92" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/><circle cx="256" cy="256" r="80" style="fill:none;stroke:var(--yellow);stroke-linecap:round;stroke-miterlimit:10;stroke-width:36px"/></svg>
<svg width="0" height="0" class="hidden">
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38 38" stroke="currentColor" id="build-status-static">
<g fill="none" fill-rule="evenodd">
<g transform="translate(1 1)" stroke-width="4">
<g transform="translate(1 1)" stroke-width="3">
<circle stroke-opacity="1" cx="18" cy="18" r="16"/>
</g>
</g>
......@@ -9,30 +9,25 @@
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" stroke="currentColor" id="build-status-in-progress">
<g fill="none" fill-rule="evenodd">
<g transform="translate(1 1)" stroke-width="4">
<g transform="translate(1 1)" stroke-width="3">
<circle stroke-opacity=".4" cx="19" cy="19" r="18"/>
<path d="M37 19c0-9.94-8.06-18-18-18" />
</g>
</g>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="last-failed">
<g id="Group" transform="translate(8.000000, 8.000000)" stroke-width="3" stroke="currentColor">
<path d="M8,0 L0,8 L8,0 Z"></path>
<path d="M8,0 L0,8 L8,0 Z" transform="translate(4.000000, 4.000000) scale(-1, 1) translate(-4.000000, -4.000000) "></path>
</g>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="-6 -6 36 36" id="last-failed">
<path d="M7.09376 5.34704L7.10878 5.36181L12 10.253L16.8912 5.36181C17.3736 4.8794 18.1558 4.8794 18.6382 5.36181C19.1156 5.83925 19.1206 6.61027 18.653 7.09376L18.6382 7.10878L13.747 12L18.6382 16.8912C19.1206 17.3736 19.1206 18.1558 18.6382 18.6382C18.1608 19.1156 17.3897 19.1206 16.9062 18.653L16.8912 18.6382L12 13.747L7.10878 18.6382C6.62637 19.1206 5.84422 19.1206 5.36181 18.6382C4.88437 18.1608 4.87945 17.3897 5.34704 16.9062L5.36181 16.8912L10.253 12L5.36181 7.10878C4.8794 6.62637 4.8794 5.84422 5.36181 5.36181C5.83428 4.88934 6.59424 4.8796 7.07856 5.33258L7.09376 5.34704Z" fill="currentColor" />
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="last-successful">
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="-9 -9 42 42" id="last-successful">
<title>last-build-successful</title>
<path d="M10.843 16.894L6.6 12.65l2.121-2.121 2.121 2.121 4.951-4.95 2.122 2.121-7.072 7.073z"></path>
<path d="M19.5 6L9 18L4.5 13.5" fill="transparent" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
</symbol>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="last-unstable">
<g stroke="currentColor" stroke-width="1">
<circle cx="12" cy="16.5" r="1"/>
<path d="M11 6.5h2v6h-2z"/>
</g>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-6 -6 36 36" id="last-unstable">
<path d="M12 3.75C11.5941 3.75 11.2228 4.095 11.25 4.5L11.625 14.625C11.625 14.7245 11.6645 14.8198 11.7348 14.8902C11.8052 14.9605 11.9005 15 12 15C12.0995 15 12.1948 14.9605 12.2652 14.8902C12.3355 14.8198 12.375 14.7245 12.375 14.625L12.75 4.5C12.7772 4.095 12.4059 3.75 12 3.75Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 20.25C12.4142 20.25 12.75 19.9142 12.75 19.5C12.75 19.0858 12.4142 18.75 12 18.75C11.5858 18.75 11.25 19.0858 11.25 19.5C11.25 19.9142 11.5858 20.25 12 20.25Z" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="last-aborted">
......@@ -43,17 +38,16 @@
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" id="last-disabled">
<g stroke="currentColor" stroke-width="3" fill="none" fill-rule="evenodd">
<g stroke="currentColor" stroke-width="2" fill="none" fill-rule="evenodd">
<path d="M18.4085057,9.72715652 L9.75138867,18.3842736 L18.4085057,9.72715652 Z" transform="translate(14.079947, 14.055715) rotate(-5.000000) translate(-14.079947, -14.055715) "></path>
</g>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="never-built">
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<!-- <circle id="Oval" stroke="currentColor" stroke-width="3" fill-rule="nonzero" cx="12" cy="12" r="10.5"></circle> -->
<circle id="Oval-Copy-10" fill="currentColor" cx="7.35714286" cy="12.0371429" r="1.85714286"></circle>
<circle id="Oval-Copy-11" fill="currentColor" cx="16.6428571" cy="12.0371429" r="1.85714286"></circle>
<circle id="Oval-Copy-12" fill="currentColor" cx="12" cy="12.0371429" r="1.85714286"></circle>
<circle id="Oval-Copy-10" fill="currentColor" cx="7.35714286" cy="12.0371429" r="1.5"></circle>
<circle id="Oval-Copy-11" fill="currentColor" cx="16.6428571" cy="12.0371429" r="1.5"></circle>
<circle id="Oval-Copy-12" fill="currentColor" cx="12" cy="12.0371429" r="1.5"></circle>
</g>
</symbol>
</svg>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册