@portrayal/juniper-mx80 0.0.0-stage → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +36 -0
- package/README.md +4 -2
- package/mx80.base.bottom.elements.json +1 -0
- package/mx80.base.bottom.svg +49 -0
- package/mx80.base.front.elements.json +1 -0
- package/mx80.base.front.svg +685 -0
- package/mx80.base.left.elements.json +1 -0
- package/mx80.base.left.svg +48 -0
- package/mx80.base.rear.elements.json +1 -0
- package/mx80.base.rear.svg +124 -0
- package/mx80.base.right.elements.json +1 -0
- package/mx80.base.right.svg +53 -0
- package/mx80.base.top.elements.json +1 -0
- package/mx80.base.top.svg +49 -0
- package/mx80.configs.json +898 -0
- package/mx80.mx80.front.elements.json +1 -0
- package/mx80.mx80.front.svg +944 -0
- package/mx80.source.json +1411 -0
- package/package.json +19 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"components":{},"config":"base","configs":["base","mx10","mx40","mx5","mx80"],"device":"mx80","device-version":"4.0.0","elements":[{"box":{"h":88.9,"w":596.0,"x":0.0,"y":0.0},"class":"chassis","id":"chassis-faceplate","parent":null,"path":"chassis"}],"generator":{"tool":"portrayal-render","version":"0.2.0"},"source-sha256":"6eedc04b8f343885592449c677ef4ba6889139f1cf408d150dfc028d29edf053","view":"left","viewBox":[0.0,0.0,596.0,88.9]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="596.0mm" height="88.9mm" viewBox="0 0 596.0 88.9" data-device="mx80" data-view="left" data-weight-note="Table 31 gives 30 lb (13.6 kg) for the modular chassis with fan tray, power supplies and MICs (28 lb, 12.7 kg, for the fixed chassis); not yet carried as a weight figure" data-power-typical-w="310" data-power-envelope="fully-configured" data-power-typical-scope="OUTPUT side, AC and DC alike - modular chassis at high activity with the four fixed XFPs, two MICs and fans at high speed (Tables 14 and 20); AC input 365 W at 85% efficiency" data-max-thermal-output="1705 BTU/hour (500 W) (Table 32; provisioning ceiling - one supply's 500 W maximum output times 3.41, not the 310 W draw)" data-eol="announced" data-eol-announcement="https://support.juniper.net/support/eol/product/m_series/">
|
|
3
|
+
<style>
|
|
4
|
+
[data-path] { cursor: pointer; }
|
|
5
|
+
.state-on { --led-color: #22c55e; }
|
|
6
|
+
.state-up { --led-color: #22c55e; }
|
|
7
|
+
/* link and up are the same fact on an Ethernet lamp; see docs/rj45-family-design.md */
|
|
8
|
+
.state-link { --led-color: #22c55e; }
|
|
9
|
+
.state-activity { --led-color: #86efac; }
|
|
10
|
+
.state-ok { --led-color: #22c55e; }
|
|
11
|
+
.state-fault { --led-color: #ef4444; }
|
|
12
|
+
.state-fail { --led-color: #ef4444; }
|
|
13
|
+
.state-locate { --led-color: #3b82f6; }
|
|
14
|
+
.state-absent { opacity: 0.35; }
|
|
15
|
+
/* A SWITCHED OUTLET WITH NO LAMP is dimmed when it is off, as absent is but
|
|
16
|
+
less (docs/pdu-model-design.md section 3.2): every switched PDU in the
|
|
17
|
+
library has a lamp per outlet, and this is the fallback so the first one
|
|
18
|
+
without does not invent a lamp. An outlet a lamp is bound to by `for:`
|
|
19
|
+
carries data-lamped (mark_lamped) and is never dimmed: its lamp says it. */
|
|
20
|
+
[data-class='inlet'][data-states~='off'].state-off:not([data-lamped]) { opacity: 0.55; }
|
|
21
|
+
/* A state is a colour AND a behaviour. Solid and blinking of the same colour
|
|
22
|
+
are different facts on real hardware: on the S9510-28DC a solid green PWR
|
|
23
|
+
is "system power good" and a blinking green PWR is "power good but BMC
|
|
24
|
+
power fail". A blinking state that renders solid is the same failure as a
|
|
25
|
+
state class nothing paints - it looks modelled and is not.
|
|
26
|
+
blink animates opacity rather than fill, because each skin carries its own
|
|
27
|
+
unlit colour in the fill fallback and a keyframe cannot name it. alternate
|
|
28
|
+
animates fill, because two colours is the whole point, and takes its first
|
|
29
|
+
value from the element's own fill. */
|
|
30
|
+
@keyframes portrayal-blink {
|
|
31
|
+
0%, 49.9% { opacity: 1; }
|
|
32
|
+
50%, 100% { opacity: 0; }
|
|
33
|
+
}
|
|
34
|
+
@keyframes portrayal-alternate {
|
|
35
|
+
0%, 49.9% { fill: var(--led-color, #3a3f44); }
|
|
36
|
+
50%, 100% { fill: var(--led-color-alt, #3a3f44); }
|
|
37
|
+
}
|
|
38
|
+
.portrayal-highlight { filter: drop-shadow(0 0 1.2px #f59e0b) drop-shadow(0 0 0.5px #f59e0b); }
|
|
39
|
+
.portrayal-dim { opacity: 0.25; }
|
|
40
|
+
[data-class='region'].portrayal-highlight { stroke: #f59e0b; stroke-width: 0.7; filter: none; }
|
|
41
|
+
.state-fail[data-class='psu'], .state-fail[data-class='fan'] { filter: drop-shadow(0 0 1.4px #ef4444); }
|
|
42
|
+
</style>
|
|
43
|
+
<metadata>{"device":"Juniper MX80","device-version":"4.0.0","generator":{"tool":"portrayal-render","version":"0.2.0"},"resolved-components":{},"source-sha256":"6eedc04b8f343885592449c677ef4ba6889139f1cf408d150dfc028d29edf053","view":"left"}</metadata>
|
|
44
|
+
<rect id="chassis-faceplate" data-path="chassis" data-class="chassis" data-model="MX80" x="0" y="0" width="596" height="88.9" rx="1.2" fill="#2b2f36" stroke="#22262a" stroke-width="0.5" />
|
|
45
|
+
<g id="--decor" data-class="decor">
|
|
46
|
+
<rect id="plate-0" data-kind="plate" x="0" y="38" width="596" height="12" rx="0.6" fill="#232730" />
|
|
47
|
+
</g>
|
|
48
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"components":{"common/esd-jack@1":"1.0.0","juniper/mx-ground-stud-pair-5-8@1":"1.0.0","juniper/mx-ground-stud@1":"1.0.1","juniper/mx80-rear-cover@1":"1.0.0","std/smb@1":"1.0.0"},"config":"base","configs":["base","mx10","mx40","mx5","mx80"],"device":"mx80","device-version":"4.0.0","elements":[{"box":{"h":88.9,"w":445.0,"x":0.0,"y":0.0},"class":"chassis","id":"chassis-faceplate","parent":null,"path":"chassis"},{"box":{"h":4.83,"w":4.83,"x":65.6,"y":72.6},"class":"cutout","id":"cutout--clk","parent":"clk","path":"cutout:clk"},{"box":{"h":4.83,"w":4.83,"x":102.6,"y":72.6},"class":"cutout","id":"cutout--sync","parent":"sync","path":"cutout:sync"},{"box":{"h":5.5,"w":5.5,"x":392.0,"y":9.0625},"class":"cutout","id":"cutout--ground-stud-0","parent":null,"path":"cutout:ground-stud-0"},{"box":{"h":5.5,"w":5.5,"x":392.0,"y":24.9375},"class":"cutout","id":"cutout--ground-stud-1","parent":null,"path":"cutout:ground-stud-1"},{"box":{"h":4.0,"w":4.0,"x":428.0,"y":8.0},"class":"cutout","id":"cutout--esd-rear","parent":null,"path":"cutout:esd-rear"},{"box":null,"class":"silkscreen","for":["chassis"],"group":"silkscreen","group-role":"marking","parent":"chassis","path":"silk:0"},{"box":null,"class":"silkscreen","for":["chassis"],"group":"silkscreen","group-role":"marking","parent":"chassis","path":"silk:1"},{"box":null,"class":"silkscreen","for":["clk"],"group":"silkscreen","group-role":"marking","parent":"clk","path":"silk:2"},{"box":null,"class":"silkscreen","for":["sync"],"group":"silkscreen","group-role":"marking","parent":"sync","path":"silk:3"},{"box":{"h":8.4,"w":8.4,"x":373.805,"y":17.8},"class":"silkscreen","for":["chassis"],"group":"silkscreen","group-role":"marking","parent":"chassis","path":"silk:4"},{"box":{"h":4.83,"w":4.83,"x":65.6,"y":72.6},"class":"port","connection-points":{"mate":{"at":[2.415,2.415],"dir":"front","face":[68.015,75.015]}},"group":"timing","group-role":"management","id":"clk","media":"coax-smb","parent":null,"path":"clk","ref":"std/smb@1:1.0.0","rel-pos":"0"},{"box":{"h":4.83,"w":4.83,"x":65.6,"y":72.6},"class":"cutout","id":"clk--opening","parent":"clk","path":"clk/opening"},{"box":{"h":4.83,"w":4.83,"x":102.6,"y":72.6},"class":"port","connection-points":{"mate":{"at":[2.415,2.415],"dir":"front","face":[105.015,75.015]}},"group":"timing","group-role":"management","id":"sync","media":"coax-smb","parent":null,"path":"sync","ref":"std/smb@1:1.0.0","rel-pos":"1"},{"box":{"h":4.83,"w":4.83,"x":102.6,"y":72.6},"class":"cutout","id":"sync--opening","parent":"sync","path":"sync/opening"},{"box":{"h":32.0,"w":170.0,"x":48.0,"y":8.0},"class":"bay","group":"service-covers","group-role":"furniture","id":"rear-cover","parent":null,"path":"rear-cover","rel-pos":"0"},{"box":{"h":32.0,"w":170.0,"x":48.0,"y":8.0},"class":"blank","id":"rear-cover--module","parent":"rear-cover","path":"rear-cover/module","ref":"juniper/mx80-rear-cover@1:1.0.0","seat":"rear-cover","states":["absent"]},{"box":{"h":5.8,"w":5.8,"x":427.1,"y":7.1},"class":"ground","for":["chassis"],"group":"esd","group-role":"furniture","id":"esd-rear-jack","media":"esd","parent":"chassis","path":"esd-rear-jack","ref":"common/esd-jack@1:1.0.0","rel-pos":"0"},{"box":{"h":22.675,"w":6.8,"x":391.35,"y":8.4125},"class":"ground","connection-points":{"mate":{"at":[11.4375,3.5],"dir":"front","face":[394.75,19.75]}},"for":["chassis"],"group":"grounding","group-role":"furniture","id":"ground-studs","parent":"chassis","path":"ground-studs","ref":"juniper/mx-ground-stud-pair-5-8@1:1.0.0","rel-pos":"0"},{"box":{"h":6.8,"w":6.8,"x":391.35,"y":8.4125},"class":"ground","connection-points":{"mate":{"at":[3.5,3.5],"dir":"front","face":[394.75,11.8125],"on":"ground-studs--1--stud"}},"id":"ground-studs--1","parent":"ground-studs","path":"ground-studs/1","ref":"juniper/mx-ground-stud@1:1.0.1"},{"box":{"h":6.8,"w":6.8,"x":391.35,"y":24.2875},"class":"ground","connection-points":{"mate":{"at":[3.5,3.5],"dir":"front","face":[394.75,27.6875],"on":"ground-studs--2--stud"}},"id":"ground-studs--2","parent":"ground-studs","path":"ground-studs/2","ref":"juniper/mx-ground-stud@1:1.0.1"}],"generator":{"tool":"portrayal-render","version":"0.2.0"},"source-sha256":"6eedc04b8f343885592449c677ef4ba6889139f1cf408d150dfc028d29edf053","view":"rear","viewBox":[0.0,0.0,445.0,88.9]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="445.0mm" height="88.9mm" viewBox="0 0 445.0 88.9" data-device="mx80" data-view="rear" data-weight-note="Table 31 gives 30 lb (13.6 kg) for the modular chassis with fan tray, power supplies and MICs (28 lb, 12.7 kg, for the fixed chassis); not yet carried as a weight figure" data-power-typical-w="310" data-power-envelope="fully-configured" data-power-typical-scope="OUTPUT side, AC and DC alike - modular chassis at high activity with the four fixed XFPs, two MICs and fans at high speed (Tables 14 and 20); AC input 365 W at 85% efficiency" data-max-thermal-output="1705 BTU/hour (500 W) (Table 32; provisioning ceiling - one supply's 500 W maximum output times 3.41, not the 310 W draw)" data-eol="announced" data-eol-announcement="https://support.juniper.net/support/eol/product/m_series/">
|
|
3
|
+
<style>
|
|
4
|
+
[data-path] { cursor: pointer; }
|
|
5
|
+
.state-on { --led-color: #22c55e; }
|
|
6
|
+
.state-up { --led-color: #22c55e; }
|
|
7
|
+
/* link and up are the same fact on an Ethernet lamp; see docs/rj45-family-design.md */
|
|
8
|
+
.state-link { --led-color: #22c55e; }
|
|
9
|
+
.state-activity { --led-color: #86efac; }
|
|
10
|
+
.state-ok { --led-color: #22c55e; }
|
|
11
|
+
.state-fault { --led-color: #ef4444; }
|
|
12
|
+
.state-fail { --led-color: #ef4444; }
|
|
13
|
+
.state-locate { --led-color: #3b82f6; }
|
|
14
|
+
.state-absent { opacity: 0.35; }
|
|
15
|
+
/* A SWITCHED OUTLET WITH NO LAMP is dimmed when it is off, as absent is but
|
|
16
|
+
less (docs/pdu-model-design.md section 3.2): every switched PDU in the
|
|
17
|
+
library has a lamp per outlet, and this is the fallback so the first one
|
|
18
|
+
without does not invent a lamp. An outlet a lamp is bound to by `for:`
|
|
19
|
+
carries data-lamped (mark_lamped) and is never dimmed: its lamp says it. */
|
|
20
|
+
[data-class='inlet'][data-states~='off'].state-off:not([data-lamped]) { opacity: 0.55; }
|
|
21
|
+
/* A state is a colour AND a behaviour. Solid and blinking of the same colour
|
|
22
|
+
are different facts on real hardware: on the S9510-28DC a solid green PWR
|
|
23
|
+
is "system power good" and a blinking green PWR is "power good but BMC
|
|
24
|
+
power fail". A blinking state that renders solid is the same failure as a
|
|
25
|
+
state class nothing paints - it looks modelled and is not.
|
|
26
|
+
blink animates opacity rather than fill, because each skin carries its own
|
|
27
|
+
unlit colour in the fill fallback and a keyframe cannot name it. alternate
|
|
28
|
+
animates fill, because two colours is the whole point, and takes its first
|
|
29
|
+
value from the element's own fill. */
|
|
30
|
+
@keyframes portrayal-blink {
|
|
31
|
+
0%, 49.9% { opacity: 1; }
|
|
32
|
+
50%, 100% { opacity: 0; }
|
|
33
|
+
}
|
|
34
|
+
@keyframes portrayal-alternate {
|
|
35
|
+
0%, 49.9% { fill: var(--led-color, #3a3f44); }
|
|
36
|
+
50%, 100% { fill: var(--led-color-alt, #3a3f44); }
|
|
37
|
+
}
|
|
38
|
+
.portrayal-highlight { filter: drop-shadow(0 0 1.2px #f59e0b) drop-shadow(0 0 0.5px #f59e0b); }
|
|
39
|
+
.portrayal-dim { opacity: 0.25; }
|
|
40
|
+
[data-class='region'].portrayal-highlight { stroke: #f59e0b; stroke-width: 0.7; filter: none; }
|
|
41
|
+
.state-fail[data-class='psu'], .state-fail[data-class='fan'] { filter: drop-shadow(0 0 1.4px #ef4444); }
|
|
42
|
+
</style>
|
|
43
|
+
<metadata>{"device":"Juniper MX80","device-version":"4.0.0","generator":{"tool":"portrayal-render","version":"0.2.0"},"resolved-components":{"common/esd-jack@1":"1.0.0","juniper/mx-ground-stud-pair-5-8@1":"1.0.0","juniper/mx-ground-stud@1":"1.0.1","juniper/mx80-rear-cover@1":"1.0.0","std/smb@1":"1.0.0"},"source-sha256":"6eedc04b8f343885592449c677ef4ba6889139f1cf408d150dfc028d29edf053","view":"rear"}</metadata>
|
|
44
|
+
<rect id="chassis-faceplate" data-path="chassis" data-class="chassis" data-model="MX80" x="0" y="0" width="445" height="88.9" rx="1.2" fill="#2b2f36" stroke="#22262a" stroke-width="0.5" />
|
|
45
|
+
<g id="--decor" data-class="decor" />
|
|
46
|
+
<g id="--cutouts" data-class="cutouts">
|
|
47
|
+
<ellipse cx="68.015" cy="75.015" rx="2.415" ry="2.415" fill="#101214" id="cutout--clk" data-path="cutout:clk" data-class="cutout" />
|
|
48
|
+
<ellipse cx="105.015" cy="75.015" rx="2.415" ry="2.415" fill="#101214" id="cutout--sync" data-path="cutout:sync" data-class="cutout" />
|
|
49
|
+
<ellipse cx="394.75" cy="11.8125" rx="2.75" ry="2.75" fill="#101214" id="cutout--ground-stud-0" data-path="cutout:ground-stud-0" data-class="cutout" />
|
|
50
|
+
<ellipse cx="394.75" cy="27.6875" rx="2.75" ry="2.75" fill="#101214" id="cutout--ground-stud-1" data-path="cutout:ground-stud-1" data-class="cutout" />
|
|
51
|
+
<ellipse cx="430" cy="10" rx="2" ry="2" fill="#101214" id="cutout--esd-rear" data-path="cutout:esd-rear" data-class="cutout" />
|
|
52
|
+
</g>
|
|
53
|
+
<g id="--silkscreen" data-class="silkscreen">
|
|
54
|
+
<text x="258" y="20" font-family="sans-serif" font-size="3.2" text-anchor="start" fill="#3a3e43" data-path="silk:0" data-class="silkscreen" data-group="silkscreen" data-group-role="marking" data-for="chassis">MPC 0</text>
|
|
55
|
+
<text x="262" y="25" font-family="sans-serif" font-size="2" text-anchor="start" fill="#3a3e43" data-path="silk:1" data-class="silkscreen" data-group="silkscreen" data-group-role="marking" data-for="chassis">MIC 1</text>
|
|
56
|
+
<text x="68" y="68" font-family="sans-serif" font-size="1.8" text-anchor="middle" fill="#3a3e43" data-path="silk:2" data-class="silkscreen" data-group="silkscreen" data-group-role="marking" data-for="clk">CLK</text>
|
|
57
|
+
<text x="105" y="68" font-family="sans-serif" font-size="1.8" text-anchor="middle" fill="#3a3e43" data-path="silk:3" data-class="silkscreen" data-group="silkscreen" data-group-role="marking" data-for="sync">SYNC</text>
|
|
58
|
+
<path d="M 0 -4.2 A 4.2 4.2 0 1 0 0.01 -4.2 Z M -2.4 -1.1 H 2.4 M -1.6 0.5 H 1.6 M -0.7 2.1 H 0.7" fill="none" stroke="#3a3e43" stroke-width="0.6" stroke-linecap="round" stroke-linejoin="round" transform="translate(378 22)" data-path="silk:4" data-class="silkscreen" data-group="silkscreen" data-group-role="marking" data-for="chassis" />
|
|
59
|
+
</g>
|
|
60
|
+
<g id="clk" data-path="clk" data-class="port" data-ref="std/smb@1:1.0.0" data-function="external clock input" data-media="coax-smb" data-rel-pos="0" transform="translate(65.6,72.6)" data-group="timing" data-group-role="management" data-description="the rear CLK and SYNC clock jacks">
|
|
61
|
+
<title>clk</title>
|
|
62
|
+
<circle id="clk--opening" cx="2.415" cy="2.415" r="2.415" fill="#8a7118" data-path="clk/opening" data-class="cutout" />
|
|
63
|
+
<g id="clk--barrel" data-z-cyl="5.0" data-z-color="#c9a227">
|
|
64
|
+
<circle cx="2.415" cy="2.415" r="2.3" fill="#d4af37" stroke="#8a7118" stroke-width="0.22" />
|
|
65
|
+
<circle cx="2.415" cy="2.415" r="1.25" fill="#f0ead6" />
|
|
66
|
+
<circle cx="2.415" cy="2.415" r="0.45" fill="#3a3325" />
|
|
67
|
+
</g>
|
|
68
|
+
<g data-cp="mate" data-cp-at="2.415 2.415" data-cp-dir="front" />
|
|
69
|
+
</g>
|
|
70
|
+
<g id="sync" data-path="sync" data-class="port" data-ref="std/smb@1:1.0.0" data-function="sync" data-media="coax-smb" data-rel-pos="1" transform="translate(102.6,72.6)" data-group="timing" data-group-role="management" data-description="the rear CLK and SYNC clock jacks">
|
|
71
|
+
<title>sync</title>
|
|
72
|
+
<circle id="sync--opening" cx="2.415" cy="2.415" r="2.415" fill="#8a7118" data-path="sync/opening" data-class="cutout" />
|
|
73
|
+
<g id="sync--barrel" data-z-cyl="5.0" data-z-color="#c9a227">
|
|
74
|
+
<circle cx="2.415" cy="2.415" r="2.3" fill="#d4af37" stroke="#8a7118" stroke-width="0.22" />
|
|
75
|
+
<circle cx="2.415" cy="2.415" r="1.25" fill="#f0ead6" />
|
|
76
|
+
<circle cx="2.415" cy="2.415" r="0.45" fill="#3a3325" />
|
|
77
|
+
</g>
|
|
78
|
+
<g data-cp="mate" data-cp-at="2.415 2.415" data-cp-dir="front" />
|
|
79
|
+
</g>
|
|
80
|
+
<g id="rear-cover" data-path="rear-cover" data-class="bay" data-group="service-covers" data-group-role="furniture" data-rel-pos="0">
|
|
81
|
+
<title>rear-cover</title>
|
|
82
|
+
<rect id="rear-cover--opening" x="48" y="8" width="170" height="32" fill="#101214" />
|
|
83
|
+
<g id="rear-cover--module" data-path="rear-cover/module" data-class="blank" data-behaviour="fills" data-ref="juniper/mx80-rear-cover@1:1.0.0" data-model="MX80 rear cover" data-states="absent" transform="translate(133,24) translate(-85,-16)">
|
|
84
|
+
<title>rear-cover--module</title>
|
|
85
|
+
<rect id="rear-cover--module--face" x="0" y="0" width="170" height="32" rx="1.2" fill="#c9ccd0" stroke="#9ba0a6" stroke-width="0.5" />
|
|
86
|
+
<rect x="3.0" y="3.0" width="164.0" height="26.0" rx="0.8" fill="#d7dadd" stroke="#b0b4b8" stroke-width="0.4" />
|
|
87
|
+
<g id="rear-cover--module--rail-top">
|
|
88
|
+
<rect x="3.0" y="3.0" width="164.0" height="3.2" fill="#b0b4b8" />
|
|
89
|
+
</g>
|
|
90
|
+
<g id="rear-cover--module--rail-bottom">
|
|
91
|
+
<rect x="3.0" y="25.8" width="164.0" height="3.2" fill="#b0b4b8" />
|
|
92
|
+
</g>
|
|
93
|
+
</g>
|
|
94
|
+
</g>
|
|
95
|
+
<g id="esd-rear-jack" data-path="esd-rear-jack" data-class="ground" data-behaviour="mounts" data-ref="common/esd-jack@1:1.0.0" data-media="esd" data-rel-pos="0" transform="translate(427.0,7.0)" data-group="esd" data-group-role="furniture" data-description="the wrist-strap ESD point at the rear right (guide Figure 64, ESD Points; the grounding points are Figure 23)" data-for="chassis">
|
|
96
|
+
<title>esd-rear-jack</title>
|
|
97
|
+
<circle id="esd-rear-jack--bezel" cx="3" cy="3" r="2.9" fill="#6e737a" stroke="#4a4e54" stroke-width="0.3" />
|
|
98
|
+
<circle id="esd-rear-jack--bore" cx="3" cy="3" r="2.0" fill="#15181b" stroke="#3a3d42" stroke-width="0.25" />
|
|
99
|
+
<circle id="esd-rear-jack--contact" cx="3" cy="3" r="0.85" fill="#2a2e33" />
|
|
100
|
+
</g>
|
|
101
|
+
<g id="ground-studs" data-path="ground-studs" data-class="ground" data-behaviour="mounts" data-ref="juniper/mx-ground-stud-pair-5-8@1:1.0.0" data-connector="stud-pair-5-8" data-stud-size="10-32" data-rel-pos="0" transform="translate(383.3125,16.25) rotate(90 11.4375 3.5)" data-group="grounding" data-group-role="furniture" data-description="the protective-earthing stud pair under the rear earth symbol (guide Figure 23)" data-for="chassis">
|
|
102
|
+
<title>ground-studs</title>
|
|
103
|
+
<g id="ground-studs--pair" />
|
|
104
|
+
<g id="ground-studs--1" data-path="ground-studs/1" data-class="ground" data-behaviour="mounts" data-ref="juniper/mx-ground-stud@1:1.0.1" data-wall="#4a4f55" data-model="MX earthing stud" transform="translate(0,0)">
|
|
105
|
+
<title>ground-studs--1</title>
|
|
106
|
+
<circle id="ground-studs--1--washer" cx="3.5" cy="3.5" r="3.4" fill="#aeb3b9" stroke="#7d8288" stroke-width="0.3" />
|
|
107
|
+
<g id="ground-studs--1--stud" data-z-cyl="5.0" data-z-lift="3.0" data-z-thread="0.8">
|
|
108
|
+
<circle cx="3.5" cy="3.5" r="2.4" fill="#8a8f95" stroke="#565b60" stroke-width="0.3" />
|
|
109
|
+
<circle cx="3.5" cy="3.5" r="1.1" fill="#6d7278" />
|
|
110
|
+
</g>
|
|
111
|
+
<g data-cp="mate" data-cp-at="3.5 3.5" data-cp-dir="front" data-cp-on="ground-studs--1--stud" />
|
|
112
|
+
</g>
|
|
113
|
+
<g id="ground-studs--2" data-path="ground-studs/2" data-class="ground" data-behaviour="mounts" data-ref="juniper/mx-ground-stud@1:1.0.1" data-wall="#4a4f55" data-model="MX earthing stud" transform="translate(15.875,0)">
|
|
114
|
+
<title>ground-studs--2</title>
|
|
115
|
+
<circle id="ground-studs--2--washer" cx="3.5" cy="3.5" r="3.4" fill="#aeb3b9" stroke="#7d8288" stroke-width="0.3" />
|
|
116
|
+
<g id="ground-studs--2--stud" data-z-cyl="5.0" data-z-lift="3.0" data-z-thread="0.8">
|
|
117
|
+
<circle cx="3.5" cy="3.5" r="2.4" fill="#8a8f95" stroke="#565b60" stroke-width="0.3" />
|
|
118
|
+
<circle cx="3.5" cy="3.5" r="1.1" fill="#6d7278" />
|
|
119
|
+
</g>
|
|
120
|
+
<g data-cp="mate" data-cp-at="3.5 3.5" data-cp-dir="front" data-cp-on="ground-studs--2--stud" />
|
|
121
|
+
</g>
|
|
122
|
+
<g data-cp="mate" data-cp-at="11.4375 3.5" data-cp-dir="front" />
|
|
123
|
+
</g>
|
|
124
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"components":{},"config":"base","configs":["base","mx10","mx40","mx5","mx80"],"device":"mx80","device-version":"4.0.0","elements":[{"box":{"h":88.9,"w":596.0,"x":0.0,"y":0.0},"class":"chassis","id":"chassis-faceplate","parent":null,"path":"chassis"}],"generator":{"tool":"portrayal-render","version":"0.2.0"},"source-sha256":"6eedc04b8f343885592449c677ef4ba6889139f1cf408d150dfc028d29edf053","view":"right","viewBox":[0.0,0.0,596.0,88.9]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="596.0mm" height="88.9mm" viewBox="0 0 596.0 88.9" data-device="mx80" data-view="right" data-weight-note="Table 31 gives 30 lb (13.6 kg) for the modular chassis with fan tray, power supplies and MICs (28 lb, 12.7 kg, for the fixed chassis); not yet carried as a weight figure" data-power-typical-w="310" data-power-envelope="fully-configured" data-power-typical-scope="OUTPUT side, AC and DC alike - modular chassis at high activity with the four fixed XFPs, two MICs and fans at high speed (Tables 14 and 20); AC input 365 W at 85% efficiency" data-max-thermal-output="1705 BTU/hour (500 W) (Table 32; provisioning ceiling - one supply's 500 W maximum output times 3.41, not the 310 W draw)" data-eol="announced" data-eol-announcement="https://support.juniper.net/support/eol/product/m_series/">
|
|
3
|
+
<style>
|
|
4
|
+
[data-path] { cursor: pointer; }
|
|
5
|
+
.state-on { --led-color: #22c55e; }
|
|
6
|
+
.state-up { --led-color: #22c55e; }
|
|
7
|
+
/* link and up are the same fact on an Ethernet lamp; see docs/rj45-family-design.md */
|
|
8
|
+
.state-link { --led-color: #22c55e; }
|
|
9
|
+
.state-activity { --led-color: #86efac; }
|
|
10
|
+
.state-ok { --led-color: #22c55e; }
|
|
11
|
+
.state-fault { --led-color: #ef4444; }
|
|
12
|
+
.state-fail { --led-color: #ef4444; }
|
|
13
|
+
.state-locate { --led-color: #3b82f6; }
|
|
14
|
+
.state-absent { opacity: 0.35; }
|
|
15
|
+
/* A SWITCHED OUTLET WITH NO LAMP is dimmed when it is off, as absent is but
|
|
16
|
+
less (docs/pdu-model-design.md section 3.2): every switched PDU in the
|
|
17
|
+
library has a lamp per outlet, and this is the fallback so the first one
|
|
18
|
+
without does not invent a lamp. An outlet a lamp is bound to by `for:`
|
|
19
|
+
carries data-lamped (mark_lamped) and is never dimmed: its lamp says it. */
|
|
20
|
+
[data-class='inlet'][data-states~='off'].state-off:not([data-lamped]) { opacity: 0.55; }
|
|
21
|
+
/* A state is a colour AND a behaviour. Solid and blinking of the same colour
|
|
22
|
+
are different facts on real hardware: on the S9510-28DC a solid green PWR
|
|
23
|
+
is "system power good" and a blinking green PWR is "power good but BMC
|
|
24
|
+
power fail". A blinking state that renders solid is the same failure as a
|
|
25
|
+
state class nothing paints - it looks modelled and is not.
|
|
26
|
+
blink animates opacity rather than fill, because each skin carries its own
|
|
27
|
+
unlit colour in the fill fallback and a keyframe cannot name it. alternate
|
|
28
|
+
animates fill, because two colours is the whole point, and takes its first
|
|
29
|
+
value from the element's own fill. */
|
|
30
|
+
@keyframes portrayal-blink {
|
|
31
|
+
0%, 49.9% { opacity: 1; }
|
|
32
|
+
50%, 100% { opacity: 0; }
|
|
33
|
+
}
|
|
34
|
+
@keyframes portrayal-alternate {
|
|
35
|
+
0%, 49.9% { fill: var(--led-color, #3a3f44); }
|
|
36
|
+
50%, 100% { fill: var(--led-color-alt, #3a3f44); }
|
|
37
|
+
}
|
|
38
|
+
.portrayal-highlight { filter: drop-shadow(0 0 1.2px #f59e0b) drop-shadow(0 0 0.5px #f59e0b); }
|
|
39
|
+
.portrayal-dim { opacity: 0.25; }
|
|
40
|
+
[data-class='region'].portrayal-highlight { stroke: #f59e0b; stroke-width: 0.7; filter: none; }
|
|
41
|
+
.state-fail[data-class='psu'], .state-fail[data-class='fan'] { filter: drop-shadow(0 0 1.4px #ef4444); }
|
|
42
|
+
</style>
|
|
43
|
+
<metadata>{"device":"Juniper MX80","device-version":"4.0.0","generator":{"tool":"portrayal-render","version":"0.2.0"},"resolved-components":{},"source-sha256":"6eedc04b8f343885592449c677ef4ba6889139f1cf408d150dfc028d29edf053","view":"right"}</metadata>
|
|
44
|
+
<rect id="chassis-faceplate" data-path="chassis" data-class="chassis" data-model="MX80" x="0" y="0" width="596" height="88.9" rx="1.2" fill="#2b2f36" stroke="#22262a" stroke-width="0.5" />
|
|
45
|
+
<defs>
|
|
46
|
+
<pattern id="portrayal-holes" width="5" height="5" patternUnits="userSpaceOnUse">
|
|
47
|
+
<circle cx="2.5" cy="2.5" r="1.1" fill="#3c4046" />
|
|
48
|
+
</pattern>
|
|
49
|
+
</defs>
|
|
50
|
+
<g id="--decor" data-class="decor">
|
|
51
|
+
<rect id="holes-field-0" data-kind="holes-field" x="40" y="8" width="500" height="72" rx="0.6" fill="url(#portrayal-holes)" />
|
|
52
|
+
</g>
|
|
53
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"components":{},"config":"base","configs":["base","mx10","mx40","mx5","mx80"],"device":"mx80","device-version":"4.0.0","elements":[{"box":{"h":596.0,"w":445.0,"x":0.0,"y":0.0},"class":"chassis","id":"chassis-faceplate","parent":null,"path":"chassis"}],"generator":{"tool":"portrayal-render","version":"0.2.0"},"source-sha256":"6eedc04b8f343885592449c677ef4ba6889139f1cf408d150dfc028d29edf053","view":"top","viewBox":[0.0,0.0,445.0,596.0]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="445.0mm" height="596.0mm" viewBox="0 0 445.0 596.0" data-device="mx80" data-view="top" data-weight-note="Table 31 gives 30 lb (13.6 kg) for the modular chassis with fan tray, power supplies and MICs (28 lb, 12.7 kg, for the fixed chassis); not yet carried as a weight figure" data-power-typical-w="310" data-power-envelope="fully-configured" data-power-typical-scope="OUTPUT side, AC and DC alike - modular chassis at high activity with the four fixed XFPs, two MICs and fans at high speed (Tables 14 and 20); AC input 365 W at 85% efficiency" data-max-thermal-output="1705 BTU/hour (500 W) (Table 32; provisioning ceiling - one supply's 500 W maximum output times 3.41, not the 310 W draw)" data-eol="announced" data-eol-announcement="https://support.juniper.net/support/eol/product/m_series/">
|
|
3
|
+
<style>
|
|
4
|
+
[data-path] { cursor: pointer; }
|
|
5
|
+
.state-on { --led-color: #22c55e; }
|
|
6
|
+
.state-up { --led-color: #22c55e; }
|
|
7
|
+
/* link and up are the same fact on an Ethernet lamp; see docs/rj45-family-design.md */
|
|
8
|
+
.state-link { --led-color: #22c55e; }
|
|
9
|
+
.state-activity { --led-color: #86efac; }
|
|
10
|
+
.state-ok { --led-color: #22c55e; }
|
|
11
|
+
.state-fault { --led-color: #ef4444; }
|
|
12
|
+
.state-fail { --led-color: #ef4444; }
|
|
13
|
+
.state-locate { --led-color: #3b82f6; }
|
|
14
|
+
.state-absent { opacity: 0.35; }
|
|
15
|
+
/* A SWITCHED OUTLET WITH NO LAMP is dimmed when it is off, as absent is but
|
|
16
|
+
less (docs/pdu-model-design.md section 3.2): every switched PDU in the
|
|
17
|
+
library has a lamp per outlet, and this is the fallback so the first one
|
|
18
|
+
without does not invent a lamp. An outlet a lamp is bound to by `for:`
|
|
19
|
+
carries data-lamped (mark_lamped) and is never dimmed: its lamp says it. */
|
|
20
|
+
[data-class='inlet'][data-states~='off'].state-off:not([data-lamped]) { opacity: 0.55; }
|
|
21
|
+
/* A state is a colour AND a behaviour. Solid and blinking of the same colour
|
|
22
|
+
are different facts on real hardware: on the S9510-28DC a solid green PWR
|
|
23
|
+
is "system power good" and a blinking green PWR is "power good but BMC
|
|
24
|
+
power fail". A blinking state that renders solid is the same failure as a
|
|
25
|
+
state class nothing paints - it looks modelled and is not.
|
|
26
|
+
blink animates opacity rather than fill, because each skin carries its own
|
|
27
|
+
unlit colour in the fill fallback and a keyframe cannot name it. alternate
|
|
28
|
+
animates fill, because two colours is the whole point, and takes its first
|
|
29
|
+
value from the element's own fill. */
|
|
30
|
+
@keyframes portrayal-blink {
|
|
31
|
+
0%, 49.9% { opacity: 1; }
|
|
32
|
+
50%, 100% { opacity: 0; }
|
|
33
|
+
}
|
|
34
|
+
@keyframes portrayal-alternate {
|
|
35
|
+
0%, 49.9% { fill: var(--led-color, #3a3f44); }
|
|
36
|
+
50%, 100% { fill: var(--led-color-alt, #3a3f44); }
|
|
37
|
+
}
|
|
38
|
+
.portrayal-highlight { filter: drop-shadow(0 0 1.2px #f59e0b) drop-shadow(0 0 0.5px #f59e0b); }
|
|
39
|
+
.portrayal-dim { opacity: 0.25; }
|
|
40
|
+
[data-class='region'].portrayal-highlight { stroke: #f59e0b; stroke-width: 0.7; filter: none; }
|
|
41
|
+
.state-fail[data-class='psu'], .state-fail[data-class='fan'] { filter: drop-shadow(0 0 1.4px #ef4444); }
|
|
42
|
+
</style>
|
|
43
|
+
<metadata>{"device":"Juniper MX80","device-version":"4.0.0","generator":{"tool":"portrayal-render","version":"0.2.0"},"resolved-components":{},"source-sha256":"6eedc04b8f343885592449c677ef4ba6889139f1cf408d150dfc028d29edf053","view":"top"}</metadata>
|
|
44
|
+
<rect id="chassis-faceplate" data-path="chassis" data-class="chassis" data-model="MX80" x="0" y="0" width="445" height="596" rx="1.2" fill="#2b2f36" stroke="#22262a" stroke-width="0.5" />
|
|
45
|
+
<g id="--decor" data-class="decor">
|
|
46
|
+
<rect id="plate-0" data-kind="plate" x="0" y="0" width="5" height="596" rx="0.6" fill="#232730" />
|
|
47
|
+
<rect id="plate-1" data-kind="plate" x="440" y="0" width="5" height="596" rx="0.6" fill="#232730" />
|
|
48
|
+
</g>
|
|
49
|
+
</svg>
|