Explorar el Código

Closes #8323: Display connector images for power port & outlet types

Add an optional image to Choice and render it beside each option in static
select fields (both the dropdown and the selected value), on ChoiceAttr detail
panels (via get_FOO_image()), and on the cable termination panels. Include
generated line drawings for power port and power outlet types, along with the
script used to generate them.
Jeremy Stretch hace 16 horas
padre
commit
e7e7761958
Se han modificado 100 ficheros con 650 adiciones y 196 borrados
  1. 2 0
      docs/plugins/development/forms.md
  2. 225 185
      netbox/dcim/choices.py
  3. 13 2
      netbox/dcim/forms/bulk_create.py
  4. 5 4
      netbox/dcim/forms/filtersets.py
  5. 6 0
      netbox/dcim/models/device_components.py
  6. 13 0
      netbox/dcim/tests/test_models.py
  7. 17 3
      netbox/netbox/tests/test_ui.py
  8. 6 2
      netbox/netbox/ui/attrs.py
  9. 0 0
      netbox/project-static/dist/netbox.css
  10. 0 0
      netbox/project-static/dist/netbox.js
  11. 0 0
      netbox/project-static/dist/netbox.js.map
  12. 4 0
      netbox/project-static/img/connectors/power-outlet/CS6360C.svg
  13. 4 0
      netbox/project-static/img/connectors/power-outlet/CS6364C.svg
  14. 4 0
      netbox/project-static/img/connectors/power-outlet/CS8164C.svg
  15. 4 0
      netbox/project-static/img/connectors/power-outlet/CS8264C.svg
  16. 4 0
      netbox/project-static/img/connectors/power-outlet/CS8364C.svg
  17. 4 0
      netbox/project-static/img/connectors/power-outlet/CS8464C.svg
  18. 5 0
      netbox/project-static/img/connectors/power-outlet/eaton-c39.svg
  19. 4 0
      netbox/project-static/img/connectors/power-outlet/hdot-cx.svg
  20. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-2p-e-4h.svg
  21. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-2p-e-6h.svg
  22. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-2p-e-9h.svg
  23. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-3p-e-4h.svg
  24. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-3p-e-6h.svg
  25. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-3p-e-9h.svg
  26. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-3p-n-e-4h.svg
  27. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-3p-n-e-6h.svg
  28. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-3p-n-e-9h.svg
  29. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-p-n-e-4h.svg
  30. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-p-n-e-6h.svg
  31. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60309-p-n-e-9h.svg
  32. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60320-c13.svg
  33. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60320-c15.svg
  34. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60320-c17.svg
  35. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60320-c19.svg
  36. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60320-c21.svg
  37. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60320-c5.svg
  38. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60320-c7.svg
  39. 4 0
      netbox/project-static/img/connectors/power-outlet/iec-60906-1.svg
  40. 5 0
      netbox/project-static/img/connectors/power-outlet/ita-e.svg
  41. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-f.svg
  42. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-g.svg
  43. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-h.svg
  44. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-i.svg
  45. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-j.svg
  46. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-k.svg
  47. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-l.svg
  48. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-m.svg
  49. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-n.svg
  50. 4 0
      netbox/project-static/img/connectors/power-outlet/ita-o.svg
  51. 4 0
      netbox/project-static/img/connectors/power-outlet/molex-micro-fit-1x2.svg
  52. 4 0
      netbox/project-static/img/connectors/power-outlet/molex-micro-fit-2x2.svg
  53. 4 0
      netbox/project-static/img/connectors/power-outlet/molex-micro-fit-2x3.svg
  54. 4 0
      netbox/project-static/img/connectors/power-outlet/molex-micro-fit-2x4.svg
  55. 4 0
      netbox/project-static/img/connectors/power-outlet/nbr-14136-10a.svg
  56. 4 0
      netbox/project-static/img/connectors/power-outlet/nbr-14136-20a.svg
  57. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-1-15r.svg
  58. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-10-30r.svg
  59. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-10-50r.svg
  60. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-14-20r.svg
  61. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-14-30r.svg
  62. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-14-50r.svg
  63. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-14-60r.svg
  64. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-15-15r.svg
  65. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-15-20r.svg
  66. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-15-30r.svg
  67. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-15-50r.svg
  68. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-15-60r.svg
  69. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-5-15r.svg
  70. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-5-20r.svg
  71. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-5-30r.svg
  72. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-5-50r.svg
  73. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-6-15r.svg
  74. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-6-20r.svg
  75. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-6-30r.svg
  76. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-6-50r.svg
  77. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l1-15r.svg
  78. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l10-30r.svg
  79. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l14-20r.svg
  80. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l14-30r.svg
  81. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l15-20r.svg
  82. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l15-30r.svg
  83. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l21-20r.svg
  84. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l21-30r.svg
  85. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l22-20r.svg
  86. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l22-30r.svg
  87. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l5-15r.svg
  88. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l5-20r.svg
  89. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l5-30r.svg
  90. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l6-15r.svg
  91. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l6-20r.svg
  92. 4 0
      netbox/project-static/img/connectors/power-outlet/nema-l6-30r.svg
  93. 5 0
      netbox/project-static/img/connectors/power-outlet/neutrik-powercon-20a.svg
  94. 5 0
      netbox/project-static/img/connectors/power-outlet/neutrik-powercon-32a.svg
  95. 5 0
      netbox/project-static/img/connectors/power-outlet/neutrik-powercon-true1-top.svg
  96. 5 0
      netbox/project-static/img/connectors/power-outlet/neutrik-powercon-true1.svg
  97. 5 0
      netbox/project-static/img/connectors/power-outlet/saf-d-grid.svg
  98. 4 0
      netbox/project-static/img/connectors/power-outlet/usb-a.svg
  99. 4 0
      netbox/project-static/img/connectors/power-outlet/usb-c.svg
  100. 4 0
      netbox/project-static/img/connectors/power-outlet/usb-micro-b.svg

+ 2 - 0
docs/plugins/development/forms.md

@@ -218,6 +218,8 @@ These fields render a standard HTML `<select>` element (as opposed to the API-ba
 
 
 For choice set-backed fields, descriptions are defined per choice using a `Choice` object in the `ChoiceSet` and are rendered automatically. Pass `show_descriptions=False` to suppress them for a particular field.
 For choice set-backed fields, descriptions are defined per choice using a `Choice` object in the `ChoiceSet` and are rendered automatically. Pass `show_descriptions=False` to suppress them for a particular field.
 
 
+A `Choice` may also define an `image`: the path to a static file (such as a small line drawing) displayed beside the option's label.
+
 ```python
 ```python
 from utilities.choices import Choice, ChoiceSet
 from utilities.choices import Choice, ChoiceSet
 from utilities.forms.fields import ChoiceField
 from utilities.forms.fields import ChoiceField

+ 225 - 185
netbox/dcim/choices.py

@@ -500,129 +500,149 @@ class PowerPortTypeChoices(ChoiceSet):
 
 
     CHOICES = (
     CHOICES = (
         ('IEC 60320', (
         ('IEC 60320', (
-            Choice(TYPE_IEC_C6, 'C6'),
-            Choice(TYPE_IEC_C8, 'C8'),
-            Choice(TYPE_IEC_C14, 'C14'),
-            Choice(TYPE_IEC_C16, 'C16'),
-            Choice(TYPE_IEC_C18, 'C18'),
-            Choice(TYPE_IEC_C20, 'C20'),
-            Choice(TYPE_IEC_C22, 'C22'),
+            Choice(TYPE_IEC_C6, 'C6', image='connectors/power-port/iec-60320-c6.svg'),
+            Choice(TYPE_IEC_C8, 'C8', image='connectors/power-port/iec-60320-c8.svg'),
+            Choice(TYPE_IEC_C14, 'C14', image='connectors/power-port/iec-60320-c14.svg'),
+            Choice(TYPE_IEC_C16, 'C16', image='connectors/power-port/iec-60320-c16.svg'),
+            Choice(TYPE_IEC_C18, 'C18', image='connectors/power-port/iec-60320-c18.svg'),
+            Choice(TYPE_IEC_C20, 'C20', image='connectors/power-port/iec-60320-c20.svg'),
+            Choice(TYPE_IEC_C22, 'C22', image='connectors/power-port/iec-60320-c22.svg'),
         )),
         )),
         ('IEC 60309', (
         ('IEC 60309', (
-            Choice(TYPE_IEC_PNE4H, 'P+N+E 4H'),
-            Choice(TYPE_IEC_PNE6H, 'P+N+E 6H'),
-            Choice(TYPE_IEC_PNE9H, 'P+N+E 9H'),
-            Choice(TYPE_IEC_2PE4H, '2P+E 4H'),
-            Choice(TYPE_IEC_2PE6H, '2P+E 6H'),
-            Choice(TYPE_IEC_2PE9H, '2P+E 9H'),
-            Choice(TYPE_IEC_3PE4H, '3P+E 4H'),
-            Choice(TYPE_IEC_3PE6H, '3P+E 6H'),
-            Choice(TYPE_IEC_3PE9H, '3P+E 9H'),
-            Choice(TYPE_IEC_3PNE4H, '3P+N+E 4H'),
-            Choice(TYPE_IEC_3PNE6H, '3P+N+E 6H'),
-            Choice(TYPE_IEC_3PNE9H, '3P+N+E 9H'),
+            Choice(TYPE_IEC_PNE4H, 'P+N+E 4H', image='connectors/power-port/iec-60309-p-n-e-4h.svg'),
+            Choice(TYPE_IEC_PNE6H, 'P+N+E 6H', image='connectors/power-port/iec-60309-p-n-e-6h.svg'),
+            Choice(TYPE_IEC_PNE9H, 'P+N+E 9H', image='connectors/power-port/iec-60309-p-n-e-9h.svg'),
+            Choice(TYPE_IEC_2PE4H, '2P+E 4H', image='connectors/power-port/iec-60309-2p-e-4h.svg'),
+            Choice(TYPE_IEC_2PE6H, '2P+E 6H', image='connectors/power-port/iec-60309-2p-e-6h.svg'),
+            Choice(TYPE_IEC_2PE9H, '2P+E 9H', image='connectors/power-port/iec-60309-2p-e-9h.svg'),
+            Choice(TYPE_IEC_3PE4H, '3P+E 4H', image='connectors/power-port/iec-60309-3p-e-4h.svg'),
+            Choice(TYPE_IEC_3PE6H, '3P+E 6H', image='connectors/power-port/iec-60309-3p-e-6h.svg'),
+            Choice(TYPE_IEC_3PE9H, '3P+E 9H', image='connectors/power-port/iec-60309-3p-e-9h.svg'),
+            Choice(TYPE_IEC_3PNE4H, '3P+N+E 4H', image='connectors/power-port/iec-60309-3p-n-e-4h.svg'),
+            Choice(TYPE_IEC_3PNE6H, '3P+N+E 6H', image='connectors/power-port/iec-60309-3p-n-e-6h.svg'),
+            Choice(TYPE_IEC_3PNE9H, '3P+N+E 9H', image='connectors/power-port/iec-60309-3p-n-e-9h.svg'),
         )),
         )),
         ('IEC 60906-1', (
         ('IEC 60906-1', (
-            Choice(TYPE_IEC_60906_1, 'IEC 60906-1'),
-            Choice(TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
-            Choice(TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
+            Choice(TYPE_IEC_60906_1, 'IEC 60906-1', image='connectors/power-port/iec-60906-1.svg'),
+            Choice(TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)', image='connectors/power-port/nbr-14136-10a.svg'),
+            Choice(TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)', image='connectors/power-port/nbr-14136-20a.svg'),
         )),
         )),
         (_('NEMA (Non-locking)'), (
         (_('NEMA (Non-locking)'), (
-            Choice(TYPE_NEMA_115P, 'NEMA 1-15P'),
-            Choice(TYPE_NEMA_515P, 'NEMA 5-15P'),
-            Choice(TYPE_NEMA_520P, 'NEMA 5-20P'),
-            Choice(TYPE_NEMA_530P, 'NEMA 5-30P'),
-            Choice(TYPE_NEMA_550P, 'NEMA 5-50P'),
-            Choice(TYPE_NEMA_615P, 'NEMA 6-15P'),
-            Choice(TYPE_NEMA_620P, 'NEMA 6-20P'),
-            Choice(TYPE_NEMA_630P, 'NEMA 6-30P'),
-            Choice(TYPE_NEMA_650P, 'NEMA 6-50P'),
-            Choice(TYPE_NEMA_1030P, 'NEMA 10-30P'),
-            Choice(TYPE_NEMA_1050P, 'NEMA 10-50P'),
-            Choice(TYPE_NEMA_1420P, 'NEMA 14-20P'),
-            Choice(TYPE_NEMA_1430P, 'NEMA 14-30P'),
-            Choice(TYPE_NEMA_1450P, 'NEMA 14-50P'),
-            Choice(TYPE_NEMA_1460P, 'NEMA 14-60P'),
-            Choice(TYPE_NEMA_1515P, 'NEMA 15-15P'),
-            Choice(TYPE_NEMA_1520P, 'NEMA 15-20P'),
-            Choice(TYPE_NEMA_1530P, 'NEMA 15-30P'),
-            Choice(TYPE_NEMA_1550P, 'NEMA 15-50P'),
-            Choice(TYPE_NEMA_1560P, 'NEMA 15-60P'),
+            Choice(TYPE_NEMA_115P, 'NEMA 1-15P', image='connectors/power-port/nema-1-15p.svg'),
+            Choice(TYPE_NEMA_515P, 'NEMA 5-15P', image='connectors/power-port/nema-5-15p.svg'),
+            Choice(TYPE_NEMA_520P, 'NEMA 5-20P', image='connectors/power-port/nema-5-20p.svg'),
+            Choice(TYPE_NEMA_530P, 'NEMA 5-30P', image='connectors/power-port/nema-5-30p.svg'),
+            Choice(TYPE_NEMA_550P, 'NEMA 5-50P', image='connectors/power-port/nema-5-50p.svg'),
+            Choice(TYPE_NEMA_615P, 'NEMA 6-15P', image='connectors/power-port/nema-6-15p.svg'),
+            Choice(TYPE_NEMA_620P, 'NEMA 6-20P', image='connectors/power-port/nema-6-20p.svg'),
+            Choice(TYPE_NEMA_630P, 'NEMA 6-30P', image='connectors/power-port/nema-6-30p.svg'),
+            Choice(TYPE_NEMA_650P, 'NEMA 6-50P', image='connectors/power-port/nema-6-50p.svg'),
+            Choice(TYPE_NEMA_1030P, 'NEMA 10-30P', image='connectors/power-port/nema-10-30p.svg'),
+            Choice(TYPE_NEMA_1050P, 'NEMA 10-50P', image='connectors/power-port/nema-10-50p.svg'),
+            Choice(TYPE_NEMA_1420P, 'NEMA 14-20P', image='connectors/power-port/nema-14-20p.svg'),
+            Choice(TYPE_NEMA_1430P, 'NEMA 14-30P', image='connectors/power-port/nema-14-30p.svg'),
+            Choice(TYPE_NEMA_1450P, 'NEMA 14-50P', image='connectors/power-port/nema-14-50p.svg'),
+            Choice(TYPE_NEMA_1460P, 'NEMA 14-60P', image='connectors/power-port/nema-14-60p.svg'),
+            Choice(TYPE_NEMA_1515P, 'NEMA 15-15P', image='connectors/power-port/nema-15-15p.svg'),
+            Choice(TYPE_NEMA_1520P, 'NEMA 15-20P', image='connectors/power-port/nema-15-20p.svg'),
+            Choice(TYPE_NEMA_1530P, 'NEMA 15-30P', image='connectors/power-port/nema-15-30p.svg'),
+            Choice(TYPE_NEMA_1550P, 'NEMA 15-50P', image='connectors/power-port/nema-15-50p.svg'),
+            Choice(TYPE_NEMA_1560P, 'NEMA 15-60P', image='connectors/power-port/nema-15-60p.svg'),
         )),
         )),
         (_('NEMA (Locking)'), (
         (_('NEMA (Locking)'), (
-            Choice(TYPE_NEMA_L115P, 'NEMA L1-15P'),
-            Choice(TYPE_NEMA_L515P, 'NEMA L5-15P'),
-            Choice(TYPE_NEMA_L520P, 'NEMA L5-20P'),
-            Choice(TYPE_NEMA_L530P, 'NEMA L5-30P'),
+            Choice(TYPE_NEMA_L115P, 'NEMA L1-15P', image='connectors/power-port/nema-l1-15p.svg'),
+            Choice(TYPE_NEMA_L515P, 'NEMA L5-15P', image='connectors/power-port/nema-l5-15p.svg'),
+            Choice(TYPE_NEMA_L520P, 'NEMA L5-20P', image='connectors/power-port/nema-l5-20p.svg'),
+            Choice(TYPE_NEMA_L530P, 'NEMA L5-30P', image='connectors/power-port/nema-l5-30p.svg'),
             Choice(TYPE_NEMA_L550P, 'NEMA L5-50P'),
             Choice(TYPE_NEMA_L550P, 'NEMA L5-50P'),
-            Choice(TYPE_NEMA_L615P, 'NEMA L6-15P'),
-            Choice(TYPE_NEMA_L620P, 'NEMA L6-20P'),
-            Choice(TYPE_NEMA_L630P, 'NEMA L6-30P'),
+            Choice(TYPE_NEMA_L615P, 'NEMA L6-15P', image='connectors/power-port/nema-l6-15p.svg'),
+            Choice(TYPE_NEMA_L620P, 'NEMA L6-20P', image='connectors/power-port/nema-l6-20p.svg'),
+            Choice(TYPE_NEMA_L630P, 'NEMA L6-30P', image='connectors/power-port/nema-l6-30p.svg'),
             Choice(TYPE_NEMA_L650P, 'NEMA L6-50P'),
             Choice(TYPE_NEMA_L650P, 'NEMA L6-50P'),
-            Choice(TYPE_NEMA_L1030P, 'NEMA L10-30P'),
-            Choice(TYPE_NEMA_L1420P, 'NEMA L14-20P'),
-            Choice(TYPE_NEMA_L1430P, 'NEMA L14-30P'),
+            Choice(TYPE_NEMA_L1030P, 'NEMA L10-30P', image='connectors/power-port/nema-l10-30p.svg'),
+            Choice(TYPE_NEMA_L1420P, 'NEMA L14-20P', image='connectors/power-port/nema-l14-20p.svg'),
+            Choice(TYPE_NEMA_L1430P, 'NEMA L14-30P', image='connectors/power-port/nema-l14-30p.svg'),
             Choice(TYPE_NEMA_L1450P, 'NEMA L14-50P'),
             Choice(TYPE_NEMA_L1450P, 'NEMA L14-50P'),
             Choice(TYPE_NEMA_L1460P, 'NEMA L14-60P'),
             Choice(TYPE_NEMA_L1460P, 'NEMA L14-60P'),
-            Choice(TYPE_NEMA_L1520P, 'NEMA L15-20P'),
-            Choice(TYPE_NEMA_L1530P, 'NEMA L15-30P'),
+            Choice(TYPE_NEMA_L1520P, 'NEMA L15-20P', image='connectors/power-port/nema-l15-20p.svg'),
+            Choice(TYPE_NEMA_L1530P, 'NEMA L15-30P', image='connectors/power-port/nema-l15-30p.svg'),
             Choice(TYPE_NEMA_L1550P, 'NEMA L15-50P'),
             Choice(TYPE_NEMA_L1550P, 'NEMA L15-50P'),
             Choice(TYPE_NEMA_L1560P, 'NEMA L15-60P'),
             Choice(TYPE_NEMA_L1560P, 'NEMA L15-60P'),
-            Choice(TYPE_NEMA_L2120P, 'NEMA L21-20P'),
-            Choice(TYPE_NEMA_L2130P, 'NEMA L21-30P'),
-            Choice(TYPE_NEMA_L2220P, 'NEMA L22-20P'),
-            Choice(TYPE_NEMA_L2230P, 'NEMA L22-30P'),
+            Choice(TYPE_NEMA_L2120P, 'NEMA L21-20P', image='connectors/power-port/nema-l21-20p.svg'),
+            Choice(TYPE_NEMA_L2130P, 'NEMA L21-30P', image='connectors/power-port/nema-l21-30p.svg'),
+            Choice(TYPE_NEMA_L2220P, 'NEMA L22-20P', image='connectors/power-port/nema-l22-20p.svg'),
+            Choice(TYPE_NEMA_L2230P, 'NEMA L22-30P', image='connectors/power-port/nema-l22-30p.svg'),
         )),
         )),
         (_('California Style'), (
         (_('California Style'), (
-            Choice(TYPE_CS6361C, 'CS6361C'),
-            Choice(TYPE_CS6365C, 'CS6365C'),
-            Choice(TYPE_CS8165C, 'CS8165C'),
-            Choice(TYPE_CS8265C, 'CS8265C'),
-            Choice(TYPE_CS8365C, 'CS8365C'),
-            Choice(TYPE_CS8465C, 'CS8465C'),
+            Choice(TYPE_CS6361C, 'CS6361C', image='connectors/power-port/cs6361c.svg'),
+            Choice(TYPE_CS6365C, 'CS6365C', image='connectors/power-port/cs6365c.svg'),
+            Choice(TYPE_CS8165C, 'CS8165C', image='connectors/power-port/cs8165c.svg'),
+            Choice(TYPE_CS8265C, 'CS8265C', image='connectors/power-port/cs8265c.svg'),
+            Choice(TYPE_CS8365C, 'CS8365C', image='connectors/power-port/cs8365c.svg'),
+            Choice(TYPE_CS8465C, 'CS8465C', image='connectors/power-port/cs8465c.svg'),
         )),
         )),
         (_('International/ITA'), (
         (_('International/ITA'), (
-            Choice(TYPE_ITA_C, 'ITA Type C (CEE 7/16)'),
-            Choice(TYPE_ITA_E, 'ITA Type E (CEE 7/6)'),
-            Choice(TYPE_ITA_F, 'ITA Type F (CEE 7/4)'),
-            Choice(TYPE_ITA_EF, 'ITA Type E/F (CEE 7/7)'),
-            Choice(TYPE_ITA_G, 'ITA Type G (BS 1363)'),
-            Choice(TYPE_ITA_H, 'ITA Type H'),
-            Choice(TYPE_ITA_I, 'ITA Type I'),
-            Choice(TYPE_ITA_J, 'ITA Type J'),
-            Choice(TYPE_ITA_K, 'ITA Type K'),
-            Choice(TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
-            Choice(TYPE_ITA_M, 'ITA Type M (BS 546)'),
-            Choice(TYPE_ITA_N, 'ITA Type N'),
-            Choice(TYPE_ITA_O, 'ITA Type O'),
+            Choice(TYPE_ITA_C, 'ITA Type C (CEE 7/16)', image='connectors/power-port/ita-c.svg'),
+            Choice(TYPE_ITA_E, 'ITA Type E (CEE 7/6)', image='connectors/power-port/ita-e.svg'),
+            Choice(TYPE_ITA_F, 'ITA Type F (CEE 7/4)', image='connectors/power-port/ita-f.svg'),
+            Choice(TYPE_ITA_EF, 'ITA Type E/F (CEE 7/7)', image='connectors/power-port/ita-ef.svg'),
+            Choice(TYPE_ITA_G, 'ITA Type G (BS 1363)', image='connectors/power-port/ita-g.svg'),
+            Choice(TYPE_ITA_H, 'ITA Type H', image='connectors/power-port/ita-h.svg'),
+            Choice(TYPE_ITA_I, 'ITA Type I', image='connectors/power-port/ita-i.svg'),
+            Choice(TYPE_ITA_J, 'ITA Type J', image='connectors/power-port/ita-j.svg'),
+            Choice(TYPE_ITA_K, 'ITA Type K', image='connectors/power-port/ita-k.svg'),
+            Choice(TYPE_ITA_L, 'ITA Type L (CEI 23-50)', image='connectors/power-port/ita-l.svg'),
+            Choice(TYPE_ITA_M, 'ITA Type M (BS 546)', image='connectors/power-port/ita-m.svg'),
+            Choice(TYPE_ITA_N, 'ITA Type N', image='connectors/power-port/ita-n.svg'),
+            Choice(TYPE_ITA_O, 'ITA Type O', image='connectors/power-port/ita-o.svg'),
         )),
         )),
         ('USB', (
         ('USB', (
-            Choice(TYPE_USB_A, 'USB Type A'),
-            Choice(TYPE_USB_B, 'USB Type B'),
-            Choice(TYPE_USB_C, 'USB Type C'),
-            Choice(TYPE_USB_MINI_A, 'USB Mini A'),
-            Choice(TYPE_USB_MINI_B, 'USB Mini B'),
-            Choice(TYPE_USB_MICRO_A, 'USB Micro A'),
-            Choice(TYPE_USB_MICRO_B, 'USB Micro B'),
-            Choice(TYPE_USB_MICRO_AB, 'USB Micro AB'),
-            Choice(TYPE_USB_3_B, 'USB 3.0 Type B'),
-            Choice(TYPE_USB_3_MICROB, 'USB 3.0 Micro B'),
+            Choice(TYPE_USB_A, 'USB Type A', image='connectors/power-port/usb-a.svg'),
+            Choice(TYPE_USB_B, 'USB Type B', image='connectors/power-port/usb-b.svg'),
+            Choice(TYPE_USB_C, 'USB Type C', image='connectors/power-port/usb-c.svg'),
+            Choice(TYPE_USB_MINI_A, 'USB Mini A', image='connectors/power-port/usb-mini-a.svg'),
+            Choice(TYPE_USB_MINI_B, 'USB Mini B', image='connectors/power-port/usb-mini-b.svg'),
+            Choice(TYPE_USB_MICRO_A, 'USB Micro A', image='connectors/power-port/usb-micro-a.svg'),
+            Choice(TYPE_USB_MICRO_B, 'USB Micro B', image='connectors/power-port/usb-micro-b.svg'),
+            Choice(TYPE_USB_MICRO_AB, 'USB Micro AB', image='connectors/power-port/usb-micro-ab.svg'),
+            Choice(TYPE_USB_3_B, 'USB 3.0 Type B', image='connectors/power-port/usb-3-b.svg'),
+            Choice(TYPE_USB_3_MICROB, 'USB 3.0 Micro B', image='connectors/power-port/usb-3-micro-b.svg'),
         )),
         )),
         ('Molex', (
         ('Molex', (
-            Choice(TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2'),
-            Choice(TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2'),
-            Choice(TYPE_MOLEX_MICRO_FIT_2X3, 'Molex Micro-Fit 2x3'),
-            Choice(TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4'),
+            Choice(
+                TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2', image='connectors/power-port/molex-micro-fit-1x2.svg'
+            ),
+            Choice(
+                TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2', image='connectors/power-port/molex-micro-fit-2x2.svg'
+            ),
+            Choice(
+                TYPE_MOLEX_MICRO_FIT_2X3, 'Molex Micro-Fit 2x3', image='connectors/power-port/molex-micro-fit-2x3.svg'
+            ),
+            Choice(
+                TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4', image='connectors/power-port/molex-micro-fit-2x4.svg'
+            ),
         )),
         )),
         ('DC', (
         ('DC', (
             Choice(TYPE_DC, 'DC Terminal'),
             Choice(TYPE_DC, 'DC Terminal'),
         )),
         )),
         (_('Proprietary'), (
         (_('Proprietary'), (
-            Choice(TYPE_SAF_D_GRID, 'Saf-D-Grid'),
-            Choice(TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
-            Choice(TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
-            Choice(TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1'),
-            Choice(TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
+            Choice(TYPE_SAF_D_GRID, 'Saf-D-Grid', image='connectors/power-port/saf-d-grid.svg'),
+            Choice(
+                TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)',
+                image='connectors/power-port/neutrik-powercon-20.svg',
+            ),
+            Choice(
+                TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)',
+                image='connectors/power-port/neutrik-powercon-32.svg',
+            ),
+            Choice(
+                TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1',
+                image='connectors/power-port/neutrik-powercon-true1.svg',
+            ),
+            Choice(
+                TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP',
+                image='connectors/power-port/neutrik-powercon-true1-top.svg',
+            ),
             Choice(TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
             Choice(TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
         )),
         )),
         (_('Other'), (
         (_('Other'), (
@@ -753,123 +773,143 @@ class PowerOutletTypeChoices(ChoiceSet):
 
 
     CHOICES = (
     CHOICES = (
         ('IEC 60320', (
         ('IEC 60320', (
-            Choice(TYPE_IEC_C5, 'C5'),
-            Choice(TYPE_IEC_C7, 'C7'),
-            Choice(TYPE_IEC_C13, 'C13'),
-            Choice(TYPE_IEC_C15, 'C15'),
-            Choice(TYPE_IEC_C17, 'C17'),
-            Choice(TYPE_IEC_C19, 'C19'),
-            Choice(TYPE_IEC_C21, 'C21'),
+            Choice(TYPE_IEC_C5, 'C5', image='connectors/power-outlet/iec-60320-c5.svg'),
+            Choice(TYPE_IEC_C7, 'C7', image='connectors/power-outlet/iec-60320-c7.svg'),
+            Choice(TYPE_IEC_C13, 'C13', image='connectors/power-outlet/iec-60320-c13.svg'),
+            Choice(TYPE_IEC_C15, 'C15', image='connectors/power-outlet/iec-60320-c15.svg'),
+            Choice(TYPE_IEC_C17, 'C17', image='connectors/power-outlet/iec-60320-c17.svg'),
+            Choice(TYPE_IEC_C19, 'C19', image='connectors/power-outlet/iec-60320-c19.svg'),
+            Choice(TYPE_IEC_C21, 'C21', image='connectors/power-outlet/iec-60320-c21.svg'),
         )),
         )),
         ('IEC 60309', (
         ('IEC 60309', (
-            Choice(TYPE_IEC_PNE4H, 'P+N+E 4H'),
-            Choice(TYPE_IEC_PNE6H, 'P+N+E 6H'),
-            Choice(TYPE_IEC_PNE9H, 'P+N+E 9H'),
-            Choice(TYPE_IEC_2PE4H, '2P+E 4H'),
-            Choice(TYPE_IEC_2PE6H, '2P+E 6H'),
-            Choice(TYPE_IEC_2PE9H, '2P+E 9H'),
-            Choice(TYPE_IEC_3PE4H, '3P+E 4H'),
-            Choice(TYPE_IEC_3PE6H, '3P+E 6H'),
-            Choice(TYPE_IEC_3PE9H, '3P+E 9H'),
-            Choice(TYPE_IEC_3PNE4H, '3P+N+E 4H'),
-            Choice(TYPE_IEC_3PNE6H, '3P+N+E 6H'),
-            Choice(TYPE_IEC_3PNE9H, '3P+N+E 9H'),
+            Choice(TYPE_IEC_PNE4H, 'P+N+E 4H', image='connectors/power-outlet/iec-60309-p-n-e-4h.svg'),
+            Choice(TYPE_IEC_PNE6H, 'P+N+E 6H', image='connectors/power-outlet/iec-60309-p-n-e-6h.svg'),
+            Choice(TYPE_IEC_PNE9H, 'P+N+E 9H', image='connectors/power-outlet/iec-60309-p-n-e-9h.svg'),
+            Choice(TYPE_IEC_2PE4H, '2P+E 4H', image='connectors/power-outlet/iec-60309-2p-e-4h.svg'),
+            Choice(TYPE_IEC_2PE6H, '2P+E 6H', image='connectors/power-outlet/iec-60309-2p-e-6h.svg'),
+            Choice(TYPE_IEC_2PE9H, '2P+E 9H', image='connectors/power-outlet/iec-60309-2p-e-9h.svg'),
+            Choice(TYPE_IEC_3PE4H, '3P+E 4H', image='connectors/power-outlet/iec-60309-3p-e-4h.svg'),
+            Choice(TYPE_IEC_3PE6H, '3P+E 6H', image='connectors/power-outlet/iec-60309-3p-e-6h.svg'),
+            Choice(TYPE_IEC_3PE9H, '3P+E 9H', image='connectors/power-outlet/iec-60309-3p-e-9h.svg'),
+            Choice(TYPE_IEC_3PNE4H, '3P+N+E 4H', image='connectors/power-outlet/iec-60309-3p-n-e-4h.svg'),
+            Choice(TYPE_IEC_3PNE6H, '3P+N+E 6H', image='connectors/power-outlet/iec-60309-3p-n-e-6h.svg'),
+            Choice(TYPE_IEC_3PNE9H, '3P+N+E 9H', image='connectors/power-outlet/iec-60309-3p-n-e-9h.svg'),
         )),
         )),
         ('IEC 60906-1', (
         ('IEC 60906-1', (
-            Choice(TYPE_IEC_60906_1, 'IEC 60906-1'),
-            Choice(TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
-            Choice(TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
+            Choice(TYPE_IEC_60906_1, 'IEC 60906-1', image='connectors/power-outlet/iec-60906-1.svg'),
+            Choice(TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)', image='connectors/power-outlet/nbr-14136-10a.svg'),
+            Choice(TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)', image='connectors/power-outlet/nbr-14136-20a.svg'),
         )),
         )),
         (_('NEMA (Non-locking)'), (
         (_('NEMA (Non-locking)'), (
-            Choice(TYPE_NEMA_115R, 'NEMA 1-15R'),
-            Choice(TYPE_NEMA_515R, 'NEMA 5-15R'),
-            Choice(TYPE_NEMA_520R, 'NEMA 5-20R'),
-            Choice(TYPE_NEMA_530R, 'NEMA 5-30R'),
-            Choice(TYPE_NEMA_550R, 'NEMA 5-50R'),
-            Choice(TYPE_NEMA_615R, 'NEMA 6-15R'),
-            Choice(TYPE_NEMA_620R, 'NEMA 6-20R'),
-            Choice(TYPE_NEMA_630R, 'NEMA 6-30R'),
-            Choice(TYPE_NEMA_650R, 'NEMA 6-50R'),
-            Choice(TYPE_NEMA_1030R, 'NEMA 10-30R'),
-            Choice(TYPE_NEMA_1050R, 'NEMA 10-50R'),
-            Choice(TYPE_NEMA_1420R, 'NEMA 14-20R'),
-            Choice(TYPE_NEMA_1430R, 'NEMA 14-30R'),
-            Choice(TYPE_NEMA_1450R, 'NEMA 14-50R'),
-            Choice(TYPE_NEMA_1460R, 'NEMA 14-60R'),
-            Choice(TYPE_NEMA_1515R, 'NEMA 15-15R'),
-            Choice(TYPE_NEMA_1520R, 'NEMA 15-20R'),
-            Choice(TYPE_NEMA_1530R, 'NEMA 15-30R'),
-            Choice(TYPE_NEMA_1550R, 'NEMA 15-50R'),
-            Choice(TYPE_NEMA_1560R, 'NEMA 15-60R'),
+            Choice(TYPE_NEMA_115R, 'NEMA 1-15R', image='connectors/power-outlet/nema-1-15r.svg'),
+            Choice(TYPE_NEMA_515R, 'NEMA 5-15R', image='connectors/power-outlet/nema-5-15r.svg'),
+            Choice(TYPE_NEMA_520R, 'NEMA 5-20R', image='connectors/power-outlet/nema-5-20r.svg'),
+            Choice(TYPE_NEMA_530R, 'NEMA 5-30R', image='connectors/power-outlet/nema-5-30r.svg'),
+            Choice(TYPE_NEMA_550R, 'NEMA 5-50R', image='connectors/power-outlet/nema-5-50r.svg'),
+            Choice(TYPE_NEMA_615R, 'NEMA 6-15R', image='connectors/power-outlet/nema-6-15r.svg'),
+            Choice(TYPE_NEMA_620R, 'NEMA 6-20R', image='connectors/power-outlet/nema-6-20r.svg'),
+            Choice(TYPE_NEMA_630R, 'NEMA 6-30R', image='connectors/power-outlet/nema-6-30r.svg'),
+            Choice(TYPE_NEMA_650R, 'NEMA 6-50R', image='connectors/power-outlet/nema-6-50r.svg'),
+            Choice(TYPE_NEMA_1030R, 'NEMA 10-30R', image='connectors/power-outlet/nema-10-30r.svg'),
+            Choice(TYPE_NEMA_1050R, 'NEMA 10-50R', image='connectors/power-outlet/nema-10-50r.svg'),
+            Choice(TYPE_NEMA_1420R, 'NEMA 14-20R', image='connectors/power-outlet/nema-14-20r.svg'),
+            Choice(TYPE_NEMA_1430R, 'NEMA 14-30R', image='connectors/power-outlet/nema-14-30r.svg'),
+            Choice(TYPE_NEMA_1450R, 'NEMA 14-50R', image='connectors/power-outlet/nema-14-50r.svg'),
+            Choice(TYPE_NEMA_1460R, 'NEMA 14-60R', image='connectors/power-outlet/nema-14-60r.svg'),
+            Choice(TYPE_NEMA_1515R, 'NEMA 15-15R', image='connectors/power-outlet/nema-15-15r.svg'),
+            Choice(TYPE_NEMA_1520R, 'NEMA 15-20R', image='connectors/power-outlet/nema-15-20r.svg'),
+            Choice(TYPE_NEMA_1530R, 'NEMA 15-30R', image='connectors/power-outlet/nema-15-30r.svg'),
+            Choice(TYPE_NEMA_1550R, 'NEMA 15-50R', image='connectors/power-outlet/nema-15-50r.svg'),
+            Choice(TYPE_NEMA_1560R, 'NEMA 15-60R', image='connectors/power-outlet/nema-15-60r.svg'),
         )),
         )),
         (_('NEMA (Locking)'), (
         (_('NEMA (Locking)'), (
-            Choice(TYPE_NEMA_L115R, 'NEMA L1-15R'),
-            Choice(TYPE_NEMA_L515R, 'NEMA L5-15R'),
-            Choice(TYPE_NEMA_L520R, 'NEMA L5-20R'),
-            Choice(TYPE_NEMA_L530R, 'NEMA L5-30R'),
+            Choice(TYPE_NEMA_L115R, 'NEMA L1-15R', image='connectors/power-outlet/nema-l1-15r.svg'),
+            Choice(TYPE_NEMA_L515R, 'NEMA L5-15R', image='connectors/power-outlet/nema-l5-15r.svg'),
+            Choice(TYPE_NEMA_L520R, 'NEMA L5-20R', image='connectors/power-outlet/nema-l5-20r.svg'),
+            Choice(TYPE_NEMA_L530R, 'NEMA L5-30R', image='connectors/power-outlet/nema-l5-30r.svg'),
             Choice(TYPE_NEMA_L550R, 'NEMA L5-50R'),
             Choice(TYPE_NEMA_L550R, 'NEMA L5-50R'),
-            Choice(TYPE_NEMA_L615R, 'NEMA L6-15R'),
-            Choice(TYPE_NEMA_L620R, 'NEMA L6-20R'),
-            Choice(TYPE_NEMA_L630R, 'NEMA L6-30R'),
+            Choice(TYPE_NEMA_L615R, 'NEMA L6-15R', image='connectors/power-outlet/nema-l6-15r.svg'),
+            Choice(TYPE_NEMA_L620R, 'NEMA L6-20R', image='connectors/power-outlet/nema-l6-20r.svg'),
+            Choice(TYPE_NEMA_L630R, 'NEMA L6-30R', image='connectors/power-outlet/nema-l6-30r.svg'),
             Choice(TYPE_NEMA_L650R, 'NEMA L6-50R'),
             Choice(TYPE_NEMA_L650R, 'NEMA L6-50R'),
-            Choice(TYPE_NEMA_L1030R, 'NEMA L10-30R'),
-            Choice(TYPE_NEMA_L1420R, 'NEMA L14-20R'),
-            Choice(TYPE_NEMA_L1430R, 'NEMA L14-30R'),
+            Choice(TYPE_NEMA_L1030R, 'NEMA L10-30R', image='connectors/power-outlet/nema-l10-30r.svg'),
+            Choice(TYPE_NEMA_L1420R, 'NEMA L14-20R', image='connectors/power-outlet/nema-l14-20r.svg'),
+            Choice(TYPE_NEMA_L1430R, 'NEMA L14-30R', image='connectors/power-outlet/nema-l14-30r.svg'),
             Choice(TYPE_NEMA_L1450R, 'NEMA L14-50R'),
             Choice(TYPE_NEMA_L1450R, 'NEMA L14-50R'),
             Choice(TYPE_NEMA_L1460R, 'NEMA L14-60R'),
             Choice(TYPE_NEMA_L1460R, 'NEMA L14-60R'),
-            Choice(TYPE_NEMA_L1520R, 'NEMA L15-20R'),
-            Choice(TYPE_NEMA_L1530R, 'NEMA L15-30R'),
+            Choice(TYPE_NEMA_L1520R, 'NEMA L15-20R', image='connectors/power-outlet/nema-l15-20r.svg'),
+            Choice(TYPE_NEMA_L1530R, 'NEMA L15-30R', image='connectors/power-outlet/nema-l15-30r.svg'),
             Choice(TYPE_NEMA_L1550R, 'NEMA L15-50R'),
             Choice(TYPE_NEMA_L1550R, 'NEMA L15-50R'),
             Choice(TYPE_NEMA_L1560R, 'NEMA L15-60R'),
             Choice(TYPE_NEMA_L1560R, 'NEMA L15-60R'),
-            Choice(TYPE_NEMA_L2120R, 'NEMA L21-20R'),
-            Choice(TYPE_NEMA_L2130R, 'NEMA L21-30R'),
-            Choice(TYPE_NEMA_L2220R, 'NEMA L22-20R'),
-            Choice(TYPE_NEMA_L2230R, 'NEMA L22-30R'),
+            Choice(TYPE_NEMA_L2120R, 'NEMA L21-20R', image='connectors/power-outlet/nema-l21-20r.svg'),
+            Choice(TYPE_NEMA_L2130R, 'NEMA L21-30R', image='connectors/power-outlet/nema-l21-30r.svg'),
+            Choice(TYPE_NEMA_L2220R, 'NEMA L22-20R', image='connectors/power-outlet/nema-l22-20r.svg'),
+            Choice(TYPE_NEMA_L2230R, 'NEMA L22-30R', image='connectors/power-outlet/nema-l22-30r.svg'),
         )),
         )),
         (_('California Style'), (
         (_('California Style'), (
-            Choice(TYPE_CS6360C, 'CS6360C'),
-            Choice(TYPE_CS6364C, 'CS6364C'),
-            Choice(TYPE_CS8164C, 'CS8164C'),
-            Choice(TYPE_CS8264C, 'CS8264C'),
-            Choice(TYPE_CS8364C, 'CS8364C'),
-            Choice(TYPE_CS8464C, 'CS8464C'),
+            Choice(TYPE_CS6360C, 'CS6360C', image='connectors/power-outlet/CS6360C.svg'),
+            Choice(TYPE_CS6364C, 'CS6364C', image='connectors/power-outlet/CS6364C.svg'),
+            Choice(TYPE_CS8164C, 'CS8164C', image='connectors/power-outlet/CS8164C.svg'),
+            Choice(TYPE_CS8264C, 'CS8264C', image='connectors/power-outlet/CS8264C.svg'),
+            Choice(TYPE_CS8364C, 'CS8364C', image='connectors/power-outlet/CS8364C.svg'),
+            Choice(TYPE_CS8464C, 'CS8464C', image='connectors/power-outlet/CS8464C.svg'),
         )),
         )),
         (_('ITA/International'), (
         (_('ITA/International'), (
-            Choice(TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
-            Choice(TYPE_ITA_F, 'ITA Type F (CEE 7/3)'),
-            Choice(TYPE_ITA_G, 'ITA Type G (BS 1363)'),
-            Choice(TYPE_ITA_H, 'ITA Type H'),
-            Choice(TYPE_ITA_I, 'ITA Type I'),
-            Choice(TYPE_ITA_J, 'ITA Type J'),
-            Choice(TYPE_ITA_K, 'ITA Type K'),
-            Choice(TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
-            Choice(TYPE_ITA_M, 'ITA Type M (BS 546)'),
-            Choice(TYPE_ITA_N, 'ITA Type N'),
-            Choice(TYPE_ITA_O, 'ITA Type O'),
+            Choice(TYPE_ITA_E, 'ITA Type E (CEE 7/5)', image='connectors/power-outlet/ita-e.svg'),
+            Choice(TYPE_ITA_F, 'ITA Type F (CEE 7/3)', image='connectors/power-outlet/ita-f.svg'),
+            Choice(TYPE_ITA_G, 'ITA Type G (BS 1363)', image='connectors/power-outlet/ita-g.svg'),
+            Choice(TYPE_ITA_H, 'ITA Type H', image='connectors/power-outlet/ita-h.svg'),
+            Choice(TYPE_ITA_I, 'ITA Type I', image='connectors/power-outlet/ita-i.svg'),
+            Choice(TYPE_ITA_J, 'ITA Type J', image='connectors/power-outlet/ita-j.svg'),
+            Choice(TYPE_ITA_K, 'ITA Type K', image='connectors/power-outlet/ita-k.svg'),
+            Choice(TYPE_ITA_L, 'ITA Type L (CEI 23-50)', image='connectors/power-outlet/ita-l.svg'),
+            Choice(TYPE_ITA_M, 'ITA Type M (BS 546)', image='connectors/power-outlet/ita-m.svg'),
+            Choice(TYPE_ITA_N, 'ITA Type N', image='connectors/power-outlet/ita-n.svg'),
+            Choice(TYPE_ITA_O, 'ITA Type O', image='connectors/power-outlet/ita-o.svg'),
             Choice(TYPE_ITA_MULTISTANDARD, 'ITA Multistandard'),
             Choice(TYPE_ITA_MULTISTANDARD, 'ITA Multistandard'),
         )),
         )),
         ('USB', (
         ('USB', (
-            Choice(TYPE_USB_A, 'USB Type A'),
-            Choice(TYPE_USB_MICROB, 'USB Micro B'),
-            Choice(TYPE_USB_C, 'USB Type C'),
+            Choice(TYPE_USB_A, 'USB Type A', image='connectors/power-outlet/usb-a.svg'),
+            Choice(TYPE_USB_MICROB, 'USB Micro B', image='connectors/power-outlet/usb-micro-b.svg'),
+            Choice(TYPE_USB_C, 'USB Type C', image='connectors/power-outlet/usb-c.svg'),
         )),
         )),
         ('Molex', (
         ('Molex', (
-            Choice(TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2'),
-            Choice(TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2'),
-            Choice(TYPE_MOLEX_MICRO_FIT_2X3, 'Molex Micro-Fit 2x3'),
-            Choice(TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4'),
+            Choice(
+                TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2', image='connectors/power-outlet/molex-micro-fit-1x2.svg'
+            ),
+            Choice(
+                TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2', image='connectors/power-outlet/molex-micro-fit-2x2.svg'
+            ),
+            Choice(
+                TYPE_MOLEX_MICRO_FIT_2X3, 'Molex Micro-Fit 2x3', image='connectors/power-outlet/molex-micro-fit-2x3.svg'
+            ),
+            Choice(
+                TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4', image='connectors/power-outlet/molex-micro-fit-2x4.svg'
+            ),
         )),
         )),
         ('DC', (
         ('DC', (
             Choice(TYPE_DC, 'DC Terminal'),
             Choice(TYPE_DC, 'DC Terminal'),
         )),
         )),
         (_('Proprietary'), (
         (_('Proprietary'), (
-            Choice(TYPE_EATON_C39, 'Eaton C39'),
-            Choice(TYPE_HDOT_CX, 'HDOT Cx'),
-            Choice(TYPE_SAF_D_GRID, 'Saf-D-Grid'),
-            Choice(TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
-            Choice(TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
-            Choice(TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1'),
-            Choice(TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
+            Choice(TYPE_EATON_C39, 'Eaton C39', image='connectors/power-outlet/eaton-c39.svg'),
+            Choice(TYPE_HDOT_CX, 'HDOT Cx', image='connectors/power-outlet/hdot-cx.svg'),
+            Choice(TYPE_SAF_D_GRID, 'Saf-D-Grid', image='connectors/power-outlet/saf-d-grid.svg'),
+            Choice(
+                TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)',
+                image='connectors/power-outlet/neutrik-powercon-20a.svg',
+            ),
+            Choice(
+                TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)',
+                image='connectors/power-outlet/neutrik-powercon-32a.svg',
+            ),
+            Choice(
+                TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1',
+                image='connectors/power-outlet/neutrik-powercon-true1.svg',
+            ),
+            Choice(
+                TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP',
+                image='connectors/power-outlet/neutrik-powercon-true1-top.svg',
+            ),
             Choice(TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
             Choice(TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
         )),
         )),
         (_('Other'), (
         (_('Other'), (

+ 13 - 2
netbox/dcim/forms/bulk_create.py

@@ -1,11 +1,12 @@
 from django import forms
 from django import forms
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 
 
+from dcim.choices import PowerOutletTypeChoices, PowerPortTypeChoices
 from dcim.models import *
 from dcim.models import *
 from extras.models import Tag
 from extras.models import Tag
 from netbox.forms.mixins import ChangelogMessageMixin, CustomFieldsMixin
 from netbox.forms.mixins import ChangelogMessageMixin, CustomFieldsMixin
-from utilities.forms import form_from_model
-from utilities.forms.fields import DynamicModelMultipleChoiceField, ExpandableNameField
+from utilities.forms import add_blank_choice, form_from_model
+from utilities.forms.fields import DynamicModelMultipleChoiceField, ExpandableNameField, TypedChoiceField
 from utilities.forms.mixins import BackgroundJobMixin
 from utilities.forms.mixins import BackgroundJobMixin
 
 
 from .object_create import ComponentCreateForm
 from .object_create import ComponentCreateForm
@@ -69,6 +70,11 @@ class PowerPortBulkCreateForm(
     DeviceBulkAddComponentForm
     DeviceBulkAddComponentForm
 ):
 ):
     model = PowerPort
     model = PowerPort
+    type = TypedChoiceField(
+        label=_('Type'),
+        choices=add_blank_choice(PowerPortTypeChoices),
+        required=False,
+    )
     field_order = ('name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'tags')
     field_order = ('name', 'label', 'type', 'maximum_draw', 'allocated_draw', 'description', 'tags')
 
 
 
 
@@ -77,6 +83,11 @@ class PowerOutletBulkCreateForm(
     DeviceBulkAddComponentForm
     DeviceBulkAddComponentForm
 ):
 ):
     model = PowerOutlet
     model = PowerOutlet
+    type = TypedChoiceField(
+        label=_('Type'),
+        choices=add_blank_choice(PowerOutletTypeChoices),
+        required=False,
+    )
     field_order = (
     field_order = (
         'name', 'label', 'type', 'status', 'color', 'feed_leg', 'mark_connected',
         'name', 'label', 'type', 'status', 'color', 'feed_leg', 'mark_connected',
         'description', 'tags',
         'description', 'tags',

+ 5 - 4
netbox/dcim/forms/filtersets.py

@@ -22,6 +22,7 @@ from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm, add_blank_ch
 from utilities.forms.fields import (
 from utilities.forms.fields import (
     ColorField,
     ColorField,
     DynamicModelMultipleChoiceField,
     DynamicModelMultipleChoiceField,
+    MultipleChoiceField,
     PositiveBigIntegerField,
     PositiveBigIntegerField,
     TagFilterField,
     TagFilterField,
 )
 )
@@ -1797,7 +1798,7 @@ class PowerPortFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
         FieldSet('cabled', 'connected', 'occupied', name=_('Connection')),
         FieldSet('cabled', 'connected', 'occupied', name=_('Connection')),
         FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
         FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
     )
     )
-    type = forms.MultipleChoiceField(
+    type = MultipleChoiceField(
         label=_('Type'),
         label=_('Type'),
         choices=PowerPortTypeChoices,
         choices=PowerPortTypeChoices,
         required=False
         required=False
@@ -1812,7 +1813,7 @@ class PowerPortTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
         FieldSet('name', 'label', 'type', name=_('Attributes')),
         FieldSet('name', 'label', 'type', name=_('Attributes')),
         FieldSet('device_type_id', 'module_type_id', name=_('Device')),
         FieldSet('device_type_id', 'module_type_id', name=_('Device')),
     )
     )
-    type = forms.MultipleChoiceField(
+    type = MultipleChoiceField(
         label=_('Type'),
         label=_('Type'),
         choices=PowerPortTypeChoices,
         choices=PowerPortTypeChoices,
         required=False
         required=False
@@ -1832,7 +1833,7 @@ class PowerOutletFilterForm(PathEndpointFilterForm, DeviceComponentFilterForm):
         FieldSet('cabled', 'connected', 'occupied', name=_('Connection')),
         FieldSet('cabled', 'connected', 'occupied', name=_('Connection')),
         FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
         FieldSet('owner_group_id', 'owner_id', name=_('Ownership')),
     )
     )
-    type = forms.MultipleChoiceField(
+    type = MultipleChoiceField(
         label=_('Type'),
         label=_('Type'),
         choices=PowerOutletTypeChoices,
         choices=PowerOutletTypeChoices,
         required=False
         required=False
@@ -1856,7 +1857,7 @@ class PowerOutletTemplateFilterForm(ModularDeviceComponentTemplateFilterForm):
         FieldSet('name', 'label', 'type', name=_('Attributes')),
         FieldSet('name', 'label', 'type', name=_('Attributes')),
         FieldSet('device_type_id', 'module_type_id', name=_('Device')),
         FieldSet('device_type_id', 'module_type_id', name=_('Device')),
     )
     )
-    type = forms.MultipleChoiceField(
+    type = MultipleChoiceField(
         label=_('Type'),
         label=_('Type'),
         choices=PowerOutletTypeChoices,
         choices=PowerOutletTypeChoices,
         required=False
         required=False

+ 6 - 0
netbox/dcim/models/device_components.py

@@ -545,6 +545,9 @@ class PowerPort(ModularComponentModel, CabledObjectModel, PathEndpoint, Tracking
                     ).format(maximum_draw=self.maximum_draw)
                     ).format(maximum_draw=self.maximum_draw)
                 })
                 })
 
 
+    def get_type_image(self):
+        return PowerPortTypeChoices.images.get(self.type)
+
     def get_downstream_powerports(self, leg=None):
     def get_downstream_powerports(self, leg=None):
         """
         """
         Return a queryset of all PowerPorts connected via cable to a child PowerOutlet. For example, in the topology
         Return a queryset of all PowerPorts connected via cable to a child PowerOutlet. For example, in the topology
@@ -693,6 +696,9 @@ class PowerOutlet(ModularComponentModel, CabledObjectModel, PathEndpoint, Tracki
     def get_status_color(self):
     def get_status_color(self):
         return PowerOutletStatusChoices.colors.get(self.status)
         return PowerOutletStatusChoices.colors.get(self.status)
 
 
+    def get_type_image(self):
+        return PowerOutletTypeChoices.images.get(self.type)
+
 
 
 #
 #
 # Cooling components
 # Cooling components

+ 13 - 0
netbox/dcim/tests/test_models.py

@@ -4132,6 +4132,19 @@ class SiteSignalTestCase(TestCase):
         site.save()
         site.save()
 
 
 
 
+class PowerTypeImageTestCase(TestCase):
+
+    def test_get_type_image(self):
+        for model, choices, value in (
+            (PowerPort, PowerPortTypeChoices, PowerPortTypeChoices.TYPE_IEC_C14),
+            (PowerOutlet, PowerOutletTypeChoices, PowerOutletTypeChoices.TYPE_IEC_C13),
+        ):
+            with self.subTest(model=model.__name__):
+                self.assertEqual(model(type=value).get_type_image(), choices.images[value])
+                self.assertIsNone(model(type=choices.TYPE_OTHER).get_type_image())
+                self.assertIsNone(model(type=None).get_type_image())
+
+
 class PowerPortDrawTestCase(TestCase):
 class PowerPortDrawTestCase(TestCase):
     """
     """
     Tests for PowerPort.get_power_draw() power aggregation logic.
     Tests for PowerPort.get_power_draw() power aggregation logic.

+ 17 - 3
netbox/netbox/tests/test_ui.py

@@ -91,7 +91,7 @@ class ChoiceAttrTestCase(TestCase):
         )
         )
         self.assertEqual(
         self.assertEqual(
             attr.get_context(self.termination, 'role', attr.get_value(self.termination), {}),
             attr.get_context(self.termination, 'role', attr.get_value(self.termination), {}),
-            {'bg_color': self.termination.get_role_color()},
+            {'bg_color': self.termination.get_role_color(), 'image': None},
         )
         )
 
 
     def test_choice_attr_related_accessor(self):
     def test_choice_attr_related_accessor(self):
@@ -103,7 +103,7 @@ class ChoiceAttrTestCase(TestCase):
         )
         )
         self.assertEqual(
         self.assertEqual(
             attr.get_context(self.termination, 'interface.type', attr.get_value(self.termination), {}),
             attr.get_context(self.termination, 'interface.type', attr.get_value(self.termination), {}),
-            {'bg_color': None},
+            {'bg_color': None, 'image': None},
         )
         )
 
 
     def test_choice_attr_related_accessor_with_color(self):
     def test_choice_attr_related_accessor_with_color(self):
@@ -117,9 +117,23 @@ class ChoiceAttrTestCase(TestCase):
             attr.get_context(
             attr.get_context(
                 self.termination, 'virtual_circuit.status', attr.get_value(self.termination), {}
                 self.termination, 'virtual_circuit.status', attr.get_value(self.termination), {}
             ),
             ),
-            {'bg_color': self.termination.virtual_circuit.get_status_color()},
+            {'bg_color': self.termination.virtual_circuit.get_status_color(), 'image': None},
         )
         )
 
 
+    def test_choice_attr_with_image(self):
+        attr = attrs.ChoiceAttr('type')
+        obj = SimpleNamespace(
+            type='foo',
+            get_type_display=lambda: 'Foo',
+            get_type_image=lambda: 'foo.svg',
+        )
+
+        self.assertEqual(
+            attr.get_context(obj, 'type', attr.get_value(obj), {}),
+            {'bg_color': None, 'image': 'foo.svg'},
+        )
+        self.assertIn('foo.svg', attr.render(obj, {'name': 'type'}))
+
 
 
 class RelatedObjectListAttrTestCase(TestCase):
 class RelatedObjectListAttrTestCase(TestCase):
     """
     """

+ 6 - 2
netbox/netbox/ui/attrs.py

@@ -193,7 +193,8 @@ class ChoiceAttr(ObjectAttribute):
     to retrieve the human-friendly choice label. For example, accessor="interface.type"
     to retrieve the human-friendly choice label. For example, accessor="interface.type"
     will call interface.get_type_display().
     will call interface.get_type_display().
     If a get_FOO_color() method exists on that object, it will be used to render a
     If a get_FOO_color() method exists on that object, it will be used to render a
-    background color for the attribute value.
+    background color for the attribute value. Likewise, if a get_FOO_image() method exists,
+    the static image it returns will be displayed beside the value.
     """
     """
     template_name = 'ui/attrs/choice.html'
     template_name = 'ui/attrs/choice.html'
 
 
@@ -218,13 +219,16 @@ class ChoiceAttr(ObjectAttribute):
     def get_context(self, obj, attr, value, context):
     def get_context(self, obj, attr, value, context):
         target, field_name = self._resolve_target(obj)
         target, field_name = self._resolve_target(obj)
         if target is None:
         if target is None:
-            return {'bg_color': None}
+            return {'bg_color': None, 'image': None}
 
 
         get_color = getattr(target, f'get_{field_name}_color', None)
         get_color = getattr(target, f'get_{field_name}_color', None)
         bg_color = get_color() if callable(get_color) else None
         bg_color = get_color() if callable(get_color) else None
+        get_image = getattr(target, f'get_{field_name}_image', None)
+        image = get_image() if callable(get_image) else None
 
 
         return {
         return {
             'bg_color': bg_color,
             'bg_color': bg_color,
+            'image': image,
         }
         }
 
 
 
 

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
netbox/project-static/dist/netbox.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
netbox/project-static/dist/netbox.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
netbox/project-static/dist/netbox.js.map


+ 4 - 0
netbox/project-static/img/connectors/power-outlet/CS6360C.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M33.49 14.98A17.08 17.08 0 0 1 46.16 22.45L42.21 25.11A12.32 12.32 0 0 0 33.07 19.73Z"/><path d="M47.22 39.75A17.08 17.08 0 0 1 30.51 49.02L30.93 44.27A12.32 12.32 0 0 0 42.98 37.59Z"/><path d="M16.28 38.67A17.08 17.08 0 0 1 17.21 23.46L21.33 25.84A12.32 12.32 0 0 0 20.66 36.81Z"/><path d="M12.15 40.42A21.56 21.56 0 0 1 10.65 35L15.36 34.34A16.8 16.8 0 0 0 16.54 38.56Z"/><circle cx="32" cy="32" r="3.92"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/CS6364C.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M30.63 7.15A24.89 24.89 0 0 1 31.06 7.13A3.11 3.11 0 1 1 37.25 7.67A24.89 24.89 0 0 1 43.62 9.99A3.11 3.11 0 1 1 48.71 13.55A24.89 24.89 0 0 1 56.89 31.57L55.14 31.6A23.15 23.15 0 0 1 41.78 52.98L42.52 54.56A24.89 24.89 0 0 1 24.38 55.69A3.11 3.11 0 1 1 18.75 53.07A24.89 24.89 0 0 1 12.7 47.72A3.11 3.11 0 1 1 9.41 42.45A24.89 24.89 0 0 1 30.63 7.15Z"/></g>
+<g fill="#000"><path d="M31.74 16.82A15.18 15.18 0 0 1 45.01 24.18L41.39 26.36A10.95 10.95 0 0 0 31.81 21.05Z"/><path d="M31.71 15.33A16.68 16.68 0 0 1 40.08 17.42L39.24 18.94A14.93 14.93 0 0 0 31.74 17.07Z"/><path d="M44.28 40.92A15.18 15.18 0 0 1 33.32 47.12L32.95 42.91A10.95 10.95 0 0 0 40.86 38.44Z"/><path d="M18.99 39.82A15.18 15.18 0 0 1 18.13 25.82L22 27.55A10.95 10.95 0 0 0 22.61 37.64Z"/><path d="M16.85 41.1A17.67 17.67 0 0 1 14.37 33.23L17.1 33.04A14.93 14.93 0 0 0 19.2 39.69Z"/><circle cx="32" cy="32" r="3.48"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/CS8164C.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M31.93 7.11A24.89 24.89 0 0 1 32.36 7.11A3.11 3.11 0 1 1 38.51 7.98A24.89 24.89 0 0 1 56.85 30.7L55.11 30.79A23.15 23.15 0 0 1 39.92 53.75L40.51 55.39A24.89 24.89 0 0 1 31.2 56.88A3.11 3.11 0 1 1 25.07 55.9A24.89 24.89 0 0 1 16.39 51.39A3.11 3.11 0 1 1 12.08 46.92A24.89 24.89 0 0 1 16.96 12.17A3.11 3.11 0 1 1 22.34 9.06A24.89 24.89 0 0 1 31.93 7.11Z"/></g>
+<g fill="#000"><path d="M32.26 16.82A15.18 15.18 0 0 1 44.88 23.95L41.29 26.2A10.95 10.95 0 0 0 32.19 21.05Z"/><path d="M32.29 15.33A16.68 16.68 0 0 1 40.34 17.56L39.47 19.07A14.93 14.93 0 0 0 32.26 17.07Z"/><path d="M44.13 41.14A15.18 15.18 0 0 1 31.74 47.18L31.81 42.95A10.95 10.95 0 0 0 40.75 38.59Z"/><path d="M20.37 41.76A15.18 15.18 0 0 1 18.24 25.58L22.07 27.37A10.95 10.95 0 0 0 23.61 39.04Z"/><path d="M18.46 43.36A17.67 17.67 0 0 1 14.5 34.46L17.21 34.08A14.93 14.93 0 0 0 20.56 41.6Z"/><circle cx="32" cy="32" r="3.48"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/CS8264C.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M34.67 15.13A17.08 17.08 0 0 1 46.79 23.46L42.67 25.84A12.32 12.32 0 0 0 33.93 19.83Z"/><path d="M46.94 40.28A17.08 17.08 0 0 1 29.62 48.91L30.29 44.2A12.32 12.32 0 0 0 42.78 37.97Z"/><path d="M16.28 38.67A17.08 17.08 0 0 1 17.21 23.46L21.33 25.84A12.32 12.32 0 0 0 20.66 36.81Z"/><path d="M12.15 40.42A21.56 21.56 0 0 1 10.65 35L15.36 34.34A16.8 16.8 0 0 0 16.54 38.56Z"/><circle cx="32" cy="32" r="3.92"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/CS8364C.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M34.1 7.2A24.89 24.89 0 0 1 34.53 7.24A3.11 3.11 0 1 1 40.58 8.64A24.89 24.89 0 0 1 45.86 11.33A3.11 3.11 0 1 1 50.54 15.4A24.89 24.89 0 0 1 56.89 32L55.15 32A23.15 23.15 0 0 1 40.67 53.46L41.32 55.08A24.89 24.89 0 0 1 24.79 55.82A3.11 3.11 0 1 1 19.12 53.3A24.89 24.89 0 0 1 13.85 49.03A3.11 3.11 0 1 1 10.2 44A24.89 24.89 0 0 1 34.1 7.2Z"/></g>
+<g fill="#000"><path d="M32.79 16.84A15.18 15.18 0 0 1 46.36 27.06L42.35 28.43A10.95 10.95 0 0 0 32.57 21.06Z"/><path d="M32.59 20.82A11.2 11.2 0 0 1 35.46 21.35L34.15 25.37A6.97 6.97 0 0 0 32.36 25.04Z"/><path d="M44.44 40.71A15.18 15.18 0 0 1 33.06 47.15L32.76 42.92A10.95 10.95 0 0 0 40.97 38.28Z"/><path d="M20.04 41.35A15.18 15.18 0 0 1 18.72 24.64L22.42 26.69A10.95 10.95 0 0 0 23.37 38.74Z"/><path d="M23.17 38.9A11.2 11.2 0 0 1 21.69 36.38L25.36 34.82A7.22 7.22 0 0 0 26.31 36.44Z"/><circle cx="32" cy="32" r="3.48"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/CS8464C.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M33.79 15.01A17.08 17.08 0 0 1 46.32 22.7L42.33 25.29A12.32 12.32 0 0 0 33.29 19.75Z"/><path d="M47.72 38.67A17.08 17.08 0 0 1 29.62 48.91L30.29 44.2A12.32 12.32 0 0 0 43.34 36.81Z"/><path d="M18.01 41.8A17.08 17.08 0 0 1 17.06 23.72L21.22 26.03A12.32 12.32 0 0 0 21.91 39.07Z"/><path d="M21.68 39.23A12.6 12.6 0 0 1 20.16 36.31L23.84 34.97A8.68 8.68 0 0 0 24.89 36.98Z"/><circle cx="32" cy="32" r="3.92"/></g>
+</svg>

+ 5 - 0
netbox/project-static/img/connectors/power-outlet/eaton-c39.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M9.6 10L54.4 10A5.6 5.6 0 0 1 60 15.6L60 48.4A5.6 5.6 0 0 1 54.4 54L9.6 54A5.6 5.6 0 0 1 4 48.4L4 15.6A5.6 5.6 0 0 1 9.6 10Z"/></g>
+<g fill="none" stroke="#000" stroke-width="2" stroke-linejoin="round"><path d="M22.8 20.8L41.2 20.8L41.2 28.8L49.6 28.8L49.6 43.2L35.84 43.2L35.84 36.8L28.16 36.8L28.16 43.2L14.4 43.2L14.4 28.8L22.8 28.8Z"/></g>
+<g fill="#000"><path d="M26.4 23.6L37.6 23.6L37.6 27.6L26.4 27.6Z"/><path d="M30 24.8L34 24.8L34 32.8L30 32.8Z"/><path d="M16.8 36.4L26.4 36.4L26.4 40.4L16.8 40.4Z"/><path d="M18.8 31.2L22.8 31.2L22.8 39.2L18.8 39.2Z"/><path d="M37.6 36.4L47.2 36.4L47.2 40.4L37.6 40.4Z"/><path d="M41.2 31.2L45.2 31.2L45.2 39.2L41.2 39.2Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/hdot-cx.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M16.08 13.83A3.65 3.65 0 0 1 18.66 12.77L45.34 12.77A3.65 3.65 0 0 1 47.92 13.83L58.93 24.84A3.65 3.65 0 0 1 60 27.43L60 43.93A7.3 7.3 0 0 1 52.7 51.23L11.3 51.23A7.3 7.3 0 0 1 4 43.93L4 27.43A3.65 3.65 0 0 1 5.07 24.84Z"/></g>
+<g fill="#000"><path d="M23.48 19.22L40.52 19.22L40.52 25.3L23.48 25.3Z"/><path d="M28.96 21.04L35.04 21.04L35.04 33.22L28.96 33.22Z"/><path d="M8.87 38.7L23.48 38.7L23.48 44.78L8.87 44.78Z"/><path d="M11.91 30.78L18 30.78L18 42.96L11.91 42.96Z"/><path d="M40.52 38.7L55.13 38.7L55.13 44.78L40.52 44.78Z"/><path d="M46 30.78L52.09 30.78L52.09 42.96L46 42.96Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-2p-e-4h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M27.58 59.65A28 28 0 1 1 36.42 59.65A4.42 4.42 0 0 1 27.58 59.65Z"/></g>
+<g fill="#000"><circle cx="41.58" cy="37.53" r="5.06"/><circle cx="22.42" cy="37.53" r="3.79"/><circle cx="32" cy="20.94" r="3.79"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-2p-e-6h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M27.58 59.65A28 28 0 1 1 36.42 59.65A4.42 4.42 0 0 1 27.58 59.65Z"/></g>
+<g fill="#000"><circle cx="32" cy="43.06" r="5.06"/><circle cx="22.42" cy="26.47" r="3.79"/><circle cx="41.58" cy="26.47" r="3.79"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-2p-e-9h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M27.58 59.65A28 28 0 1 1 36.42 59.65A4.42 4.42 0 0 1 27.58 59.65Z"/></g>
+<g fill="#000"><circle cx="20.94" cy="32" r="5.06"/><circle cx="37.53" cy="22.42" r="3.79"/><circle cx="37.53" cy="41.58" r="3.79"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-3p-e-4h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M28.13 59.73A28 28 0 1 1 35.87 59.73A3.89 3.89 0 1 1 28.13 59.73Z"/></g>
+<g fill="#000"><circle cx="42.34" cy="37.97" r="4.44"/><circle cx="26.03" cy="42.34" r="3.33"/><circle cx="21.66" cy="26.03" r="3.33"/><circle cx="37.97" cy="21.66" r="3.33"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-3p-e-6h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M28.13 59.73A28 28 0 1 1 35.87 59.73A3.89 3.89 0 1 1 28.13 59.73Z"/></g>
+<g fill="#000"><circle cx="32" cy="43.94" r="4.44"/><circle cx="20.06" cy="32" r="3.33"/><circle cx="32" cy="20.06" r="3.33"/><circle cx="43.94" cy="32" r="3.33"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-3p-e-9h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M28.13 59.73A28 28 0 1 1 35.87 59.73A3.89 3.89 0 1 1 28.13 59.73Z"/></g>
+<g fill="#000"><circle cx="20.06" cy="32" r="4.44"/><circle cx="32" cy="20.06" r="3.33"/><circle cx="43.94" cy="32" r="3.33"/><circle cx="32" cy="43.94" r="3.33"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-3p-n-e-4h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M28.65 59.8A28 28 0 1 1 35.35 59.8A3.42 3.42 0 1 1 28.65 59.8Z"/></g>
+<g fill="#000"><circle cx="43.21" cy="38.47" r="3.91"/><circle cx="29.31" cy="44.67" r="2.93"/><circle cx="19.12" cy="33.35" r="2.93"/><circle cx="26.73" cy="20.17" r="2.93"/><circle cx="41.62" cy="23.34" r="2.93"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-3p-n-e-6h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M28.65 59.8A28 28 0 1 1 35.35 59.8A3.42 3.42 0 1 1 28.65 59.8Z"/></g>
+<g fill="#000"><circle cx="32" cy="44.95" r="3.91"/><circle cx="19.68" cy="36" r="2.93"/><circle cx="24.39" cy="21.52" r="2.93"/><circle cx="39.61" cy="21.52" r="2.93"/><circle cx="44.32" cy="36" r="2.93"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-3p-n-e-9h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M28.65 59.8A28 28 0 1 1 35.35 59.8A3.42 3.42 0 1 1 28.65 59.8Z"/></g>
+<g fill="#000"><circle cx="19.05" cy="32" r="3.91"/><circle cx="28" cy="19.68" r="2.93"/><circle cx="42.48" cy="24.39" r="2.93"/><circle cx="42.48" cy="39.61" r="2.93"/><circle cx="28" cy="44.32" r="2.93"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-p-n-e-4h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M27.58 59.65A28 28 0 1 1 36.42 59.65A4.42 4.42 0 0 1 27.58 59.65Z"/></g>
+<g fill="#000"><circle cx="41.58" cy="37.53" r="5.06"/><circle cx="22.42" cy="37.53" r="3.79"/><circle cx="32" cy="20.94" r="3.79"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-p-n-e-6h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M27.58 59.65A28 28 0 1 1 36.42 59.65A4.42 4.42 0 0 1 27.58 59.65Z"/></g>
+<g fill="#000"><circle cx="32" cy="43.06" r="5.06"/><circle cx="22.42" cy="26.47" r="3.79"/><circle cx="41.58" cy="26.47" r="3.79"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60309-p-n-e-9h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M27.58 59.65A28 28 0 1 1 36.42 59.65A4.42 4.42 0 0 1 27.58 59.65Z"/></g>
+<g fill="#000"><circle cx="20.94" cy="32" r="5.06"/><circle cx="37.53" cy="22.42" r="3.79"/><circle cx="37.53" cy="41.58" r="3.79"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60320-c13.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M16.08 13.83A3.65 3.65 0 0 1 18.66 12.77L45.34 12.77A3.65 3.65 0 0 1 47.92 13.83L58.93 24.84A3.65 3.65 0 0 1 60 27.43L60 43.93A7.3 7.3 0 0 1 52.7 51.23L11.3 51.23A7.3 7.3 0 0 1 4 43.93L4 27.43A3.65 3.65 0 0 1 5.07 24.84Z"/></g>
+<g fill="#000"><path d="M11.91 30.78L18 30.78L18 42.96L11.91 42.96Z"/><path d="M46 30.78L52.09 30.78L52.09 42.96L46 42.96Z"/><path d="M28.96 21.04L35.04 21.04L35.04 33.22L28.96 33.22Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60320-c15.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M16.08 13.83A3.65 3.65 0 0 1 18.66 12.77L45.34 12.77A3.65 3.65 0 0 1 47.92 13.83L58.93 24.84A3.65 3.65 0 0 1 60 27.43L60 43.93A7.3 7.3 0 0 1 52.7 51.23L40.03 51.23A1.95 1.95 0 0 1 38.09 49.29L38.09 45.39L37.88 43.82L37.27 42.35L36.3 41.09L35.04 40.12L33.58 39.51L32 39.3L30.42 39.51L28.96 40.12L27.7 41.09L26.73 42.35L26.12 43.82L25.91 45.39L25.91 49.29A1.95 1.95 0 0 1 23.97 51.23L11.3 51.23A7.3 7.3 0 0 1 4 43.93L4 27.43A3.65 3.65 0 0 1 5.07 24.84Z"/></g>
+<g fill="#000"><path d="M11.91 30.78L18 30.78L18 42.96L11.91 42.96Z"/><path d="M46 30.78L52.09 30.78L52.09 42.96L46 42.96Z"/><path d="M28.96 21.04L35.04 21.04L35.04 33.22L28.96 33.22Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60320-c17.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M16.08 13.83A3.65 3.65 0 0 1 18.66 12.77L45.34 12.77A3.65 3.65 0 0 1 47.92 13.83L58.93 24.84A3.65 3.65 0 0 1 60 27.43L60 43.93A7.3 7.3 0 0 1 52.7 51.23L11.3 51.23A7.3 7.3 0 0 1 4 43.93L4 27.43A3.65 3.65 0 0 1 5.07 24.84Z"/></g>
+<g fill="#000"><path d="M11.91 30.78L18 30.78L18 42.96L11.91 42.96Z"/><path d="M46 30.78L52.09 30.78L52.09 42.96L46 42.96Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60320-c19.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M10 12L54 12A6 6 0 0 1 60 18L60 46A6 6 0 0 1 54 52L10 52A6 6 0 0 1 4 46L4 18A6 6 0 0 1 10 12Z"/></g>
+<g fill="#000"><path d="M25 21.5L39 21.5L39 26.5L25 26.5Z"/><path d="M13 37.5L25 37.5L25 42.5L13 42.5Z"/><path d="M39 37.5L51 37.5L51 42.5L39 42.5Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60320-c21.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M17.12 12.88A3 3 0 0 1 19.24 12L44.76 12A3 3 0 0 1 46.88 12.88L59.12 25.12A3 3 0 0 1 60 27.24L60 46A6 6 0 0 1 54 52L10 52A6 6 0 0 1 4 46L4 27.24A3 3 0 0 1 4.88 25.12Z"/></g>
+<g fill="#000"><path d="M25 21.5L39 21.5L39 26.5L25 26.5Z"/><path d="M13 37.5L25 37.5L25 42.5L13 42.5Z"/><path d="M39 37.5L51 37.5L51 42.5L39 42.5Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60320-c5.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M18.1 27.44A14 14 0 1 1 45.9 27.44A12.44 12.44 0 1 1 35.12 39.43A14 14 0 0 1 28.88 39.43A12.44 12.44 0 1 1 18.1 27.44Z"/></g>
+<g fill="#000"><circle cx="32" cy="25.78" r="5.91"/><circle cx="16.44" cy="39.78" r="4.51"/><circle cx="47.56" cy="39.78" r="4.51"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60320-c7.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M32 25.58A14.74 14.74 0 1 1 32 38.42A14.74 14.74 0 1 1 32 25.58Z"/></g>
+<g fill="#000"><circle cx="16.16" cy="32" r="5.34"/><circle cx="47.84" cy="32" r="5.34"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/iec-60906-1.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M15.69 19.28A2.37 2.37 0 0 1 17.36 18.59L46.64 18.59A2.37 2.37 0 0 1 48.31 19.28L59.35 30.33A2.37 2.37 0 0 1 59.35 33.67L48.31 44.72A2.37 2.37 0 0 1 46.64 45.41L17.36 45.41A2.37 2.37 0 0 1 15.69 44.72L4.65 33.67A2.37 2.37 0 0 1 4.65 30.33Z"/></g>
+<g fill="#000"><circle cx="17.01" cy="32" r="3.79"/><circle cx="46.99" cy="32" r="3.79"/><circle cx="32" cy="27.27" r="3.79"/></g>
+</svg>

+ 5 - 0
netbox/project-static/img/connectors/power-outlet/ita-e.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="none" stroke="#000" stroke-width="2" stroke-linejoin="round"><circle cx="32" cy="18" r="5.32"/></g>
+<g fill="#000"><circle cx="18.7" cy="32" r="3.85"/><circle cx="45.3" cy="32" r="3.85"/><circle cx="32" cy="18" r="3.36"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-f.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><circle cx="18.7" cy="32" r="3.85"/><circle cx="45.3" cy="32" r="3.85"/><path d="M27.8 5.12L36.2 5.12L36.2 8.48L27.8 8.48Z"/><path d="M27.8 55.52L36.2 55.52L36.2 58.88L27.8 58.88Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-g.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M9.83 4L54.17 4A5.83 5.83 0 0 1 60 9.83L60 54.17A5.83 5.83 0 0 1 54.17 60L9.83 60A5.83 5.83 0 0 1 4 54.17L4 9.83A5.83 5.83 0 0 1 9.83 4Z"/></g>
+<g fill="#000"><path d="M29.38 14.09L34.62 14.09L34.62 24.01L29.38 24.01Z"/><path d="M14.97 42.33L23.13 42.33L23.13 47.58L14.97 47.58Z"/><path d="M40.87 42.33L49.03 42.33L49.03 47.58L40.87 47.58Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-h.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><circle cx="18" cy="25" r="3.83"/><circle cx="46" cy="25" r="3.83"/><circle cx="32" cy="39" r="3.83"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-i.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M9.89 4L54.11 4A5.89 5.89 0 0 1 60 9.89L60 54.11A5.89 5.89 0 0 1 54.11 60L9.89 60A5.89 5.89 0 0 1 4 54.11L4 9.89A5.89 5.89 0 0 1 9.89 4Z"/></g>
+<g fill="#000"><path d="M23.07 16.11L25.87 17.73L20.72 26.67L17.91 25.05Z"/><path d="M38.13 17.73L40.93 16.11L46.09 25.05L43.28 26.67Z"/><path d="M30.38 37.31L33.62 37.31L33.62 47.62L30.38 47.62Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-j.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M17.6 17.81A4.67 4.67 0 0 1 20.9 16.44L43.1 16.44A4.67 4.67 0 0 1 46.4 17.81L59.59 31A1.4 1.4 0 0 1 60 31.99L60 32.01A1.4 1.4 0 0 1 59.59 33L46.4 46.19A4.67 4.67 0 0 1 43.1 47.56L20.9 47.56A4.67 4.67 0 0 1 17.6 46.19L4.41 33A1.4 1.4 0 0 1 4 32.01L4 31.99A1.4 1.4 0 0 1 4.41 31Z"/></g>
+<g fill="#000"><circle cx="17.22" cy="32" r="3.5"/><circle cx="46.78" cy="32" r="3.5"/><circle cx="32" cy="39.78" r="3.5"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-k.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><circle cx="18.7" cy="24.3" r="3.71"/><circle cx="45.3" cy="24.3" r="3.71"/><path d="M27.57 41.45L36.43 41.45A4.55 4.55 0 1 1 27.57 41.45Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-l.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M23.09 4L40.91 4A5.09 5.09 0 0 1 46 9.09L46 54.91A5.09 5.09 0 0 1 40.91 60L23.09 60A5.09 5.09 0 0 1 18 54.91L18 9.09A5.09 5.09 0 0 1 23.09 4Z"/></g>
+<g fill="#000"><circle cx="32" cy="32" r="2.86"/><circle cx="32" cy="19.91" r="2.86"/><circle cx="32" cy="15.45" r="3.5"/><circle cx="32" cy="44.09" r="2.86"/><circle cx="32" cy="48.55" r="3.5"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-m.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M10.22 4L53.78 4A6.22 6.22 0 0 1 60 10.22L60 53.78A6.22 6.22 0 0 1 53.78 60L10.22 60A6.22 6.22 0 0 1 4 53.78L4 10.22A6.22 6.22 0 0 1 10.22 4Z"/></g>
+<g fill="#000"><circle cx="18.83" cy="46.83" r="3.94"/><circle cx="45.17" cy="46.83" r="3.94"/><circle cx="32" cy="17.17" r="4.77"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-n.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M15.69 19.28A2.37 2.37 0 0 1 17.36 18.59L46.64 18.59A2.37 2.37 0 0 1 48.31 19.28L59.35 30.33A2.37 2.37 0 0 1 59.35 33.67L48.31 44.72A2.37 2.37 0 0 1 46.64 45.41L17.36 45.41A2.37 2.37 0 0 1 15.69 44.72L4.65 33.67A2.37 2.37 0 0 1 4.65 30.33Z"/></g>
+<g fill="#000"><circle cx="17.01" cy="32" r="3.79"/><circle cx="46.99" cy="32" r="3.79"/><circle cx="32" cy="27.27" r="3.79"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/ita-o.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><circle cx="18.36" cy="40.54" r="3.81"/><circle cx="45.64" cy="40.54" r="3.81"/><circle cx="32" cy="23.46" r="3.81"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/molex-micro-fit-1x2.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M7.03 24.43L56.97 24.43A3.03 3.03 0 0 1 60 27.46L60 54.7A3.03 3.03 0 0 1 56.97 57.73L7.03 57.73A3.03 3.03 0 0 1 4 54.7L4 27.46A3.03 3.03 0 0 1 7.03 24.43Z"/><path d="M19.14 6.27L44.86 6.27A2.27 2.27 0 0 1 47.14 8.54L47.14 22.16A2.27 2.27 0 0 1 44.86 24.43L19.14 24.43A2.27 2.27 0 0 1 16.86 22.16L16.86 8.54A2.27 2.27 0 0 1 19.14 6.27Z"/></g>
+<g fill="#000"><path d="M13.84 33.14L27.46 33.14A1.14 1.14 0 0 1 28.59 34.27L28.59 47.89A1.14 1.14 0 0 1 27.46 49.03L13.84 49.03A1.14 1.14 0 0 1 12.7 47.89L12.7 34.27A1.14 1.14 0 0 1 13.84 33.14Z"/><path d="M42.22 33.14L44.49 33.14A6.81 6.81 0 0 1 51.3 39.95L51.3 42.22A6.81 6.81 0 0 1 44.49 49.03L42.22 49.03A6.81 6.81 0 0 1 35.41 42.22L35.41 39.95A6.81 6.81 0 0 1 42.22 33.14Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/molex-micro-fit-2x2.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M13.14 17.71L50.86 17.71A2.29 2.29 0 0 1 53.14 20L53.14 57.71A2.29 2.29 0 0 1 50.86 60L13.14 60A2.29 2.29 0 0 1 10.86 57.71L10.86 20A2.29 2.29 0 0 1 13.14 17.71Z"/><path d="M22.29 4L41.71 4A1.71 1.71 0 0 1 43.43 5.71L43.43 16A1.71 1.71 0 0 1 41.71 17.71L22.29 17.71A1.71 1.71 0 0 1 20.57 16L20.57 5.71A1.71 1.71 0 0 1 22.29 4Z"/></g>
+<g fill="#000"><path d="M18.29 24.29L28.57 24.29A0.86 0.86 0 0 1 29.43 25.14L29.43 35.43A0.86 0.86 0 0 1 28.57 36.29L18.29 36.29A0.86 0.86 0 0 1 17.43 35.43L17.43 25.14A0.86 0.86 0 0 1 18.29 24.29Z"/><path d="M39.71 24.29L41.43 24.29A5.14 5.14 0 0 1 46.57 29.43L46.57 31.14A5.14 5.14 0 0 1 41.43 36.29L39.71 36.29A5.14 5.14 0 0 1 34.57 31.14L34.57 29.43A5.14 5.14 0 0 1 39.71 24.29Z"/><path d="M22.57 41.43L24.29 41.43A5.14 5.14 0 0 1 29.43 46.57L29.43 48.29A5.14 5.14 0 0 1 24.29 53.43L22.57 53.43A5.14 5.14 0 0 1 17.43 48.29L17.43 46.57A5.14 5.14 0 0 1 22.57 41.43Z"/><path d="M35.43 41.43L45.71 41.43A0.86 0.86 0 0 1 46.57 42.29L46.57 52.57A0.86 0.86 0 0 1 45.71 53.43L35.43 53.43A0.86 0.86 0 0 1 34.57 52.57L34.57 42.29A0.86 0.86 0 0 1 35.43 41.43Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/molex-micro-fit-2x3.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M6.15 18.54L57.85 18.54A2.15 2.15 0 0 1 60 20.69L60 56.23A2.15 2.15 0 0 1 57.85 58.38L6.15 58.38A2.15 2.15 0 0 1 4 56.23L4 20.69A2.15 2.15 0 0 1 6.15 18.54Z"/><path d="M22.85 5.62L41.15 5.62A1.62 1.62 0 0 1 42.77 7.23L42.77 16.92A1.62 1.62 0 0 1 41.15 18.54L22.85 18.54A1.62 1.62 0 0 1 21.23 16.92L21.23 7.23A1.62 1.62 0 0 1 22.85 5.62Z"/></g>
+<g fill="#000"><path d="M11 24.73L20.69 24.73A0.81 0.81 0 0 1 21.5 25.54L21.5 35.23A0.81 0.81 0 0 1 20.69 36.04L11 36.04A0.81 0.81 0 0 1 10.19 35.23L10.19 25.54A0.81 0.81 0 0 1 11 24.73Z"/><path d="M31.19 24.73L32.81 24.73A4.85 4.85 0 0 1 37.65 29.58L37.65 31.19A4.85 4.85 0 0 1 32.81 36.04L31.19 36.04A4.85 4.85 0 0 1 26.35 31.19L26.35 29.58A4.85 4.85 0 0 1 31.19 24.73Z"/><path d="M43.31 24.73L53 24.73A0.81 0.81 0 0 1 53.81 25.54L53.81 35.23A0.81 0.81 0 0 1 53 36.04L43.31 36.04A0.81 0.81 0 0 1 42.5 35.23L42.5 25.54A0.81 0.81 0 0 1 43.31 24.73Z"/><path d="M15.04 40.88L16.65 40.88A4.85 4.85 0 0 1 21.5 45.73L21.5 47.35A4.85 4.85 0 0 1 16.65 52.19L15.04 52.19A4.85 4.85 0 0 1 10.19 47.35L10.19 45.73A4.85 4.85 0 0 1 15.04 40.88Z"/><path d="M27.15 40.88L36.85 40.88A0.81 0.81 0 0 1 37.65 41.69L37.65 51.38A0.81 0.81 0 0 1 36.85 52.19L27.15 52.19A0.81 0.81 0 0 1 26.35 51.38L26.35 41.69A0.81 0.81 0 0 1 27.15 40.88Z"/><path d="M47.35 40.88L48.96 40.88A4.85 4.85 0 0 1 53.81 45.73L53.81 47.35A4.85 4.85 0 0 1 48.96 52.19L47.35 52.19A4.85 4.85 0 0 1 42.5 47.35L42.5 45.73A4.85 4.85 0 0 1 47.35 40.88Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/molex-micro-fit-2x4.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M5.67 21.55L58.33 21.55A1.67 1.67 0 0 1 60 23.22L60 50.81A1.67 1.67 0 0 1 58.33 52.48L5.67 52.48A1.67 1.67 0 0 1 4 50.81L4 23.22A1.67 1.67 0 0 1 5.67 21.55Z"/><path d="M24.9 11.52L39.1 11.52A1.25 1.25 0 0 1 40.36 12.78L40.36 20.3A1.25 1.25 0 0 1 39.1 21.55L24.9 21.55A1.25 1.25 0 0 1 23.64 20.3L23.64 12.78A1.25 1.25 0 0 1 24.9 11.52Z"/></g>
+<g fill="#000"><path d="M9.43 26.36L16.96 26.36A0.63 0.63 0 0 1 17.58 26.99L17.58 34.51A0.63 0.63 0 0 1 16.96 35.13L9.43 35.13A0.63 0.63 0 0 1 8.81 34.51L8.81 26.99A0.63 0.63 0 0 1 9.43 26.36Z"/><path d="M25.1 26.36L26.36 26.36A3.76 3.76 0 0 1 30.12 30.12L30.12 31.37A3.76 3.76 0 0 1 26.36 35.13L25.1 35.13A3.76 3.76 0 0 1 21.34 31.37L21.34 30.12A3.76 3.76 0 0 1 25.1 26.36Z"/><path d="M34.51 26.36L42.03 26.36A0.63 0.63 0 0 1 42.66 26.99L42.66 34.51A0.63 0.63 0 0 1 42.03 35.13L34.51 35.13A0.63 0.63 0 0 1 33.88 34.51L33.88 26.99A0.63 0.63 0 0 1 34.51 26.36Z"/><path d="M50.18 26.36L51.43 26.36A3.76 3.76 0 0 1 55.19 30.12L55.19 31.37A3.76 3.76 0 0 1 51.43 35.13L50.18 35.13A3.76 3.76 0 0 1 46.42 31.37L46.42 30.12A3.76 3.76 0 0 1 50.18 26.36Z"/><path d="M12.57 38.9L13.82 38.9A3.76 3.76 0 0 1 17.58 42.66L17.58 43.91A3.76 3.76 0 0 1 13.82 47.67L12.57 47.67A3.76 3.76 0 0 1 8.81 43.91L8.81 42.66A3.76 3.76 0 0 1 12.57 38.9Z"/><path d="M21.97 38.9L29.49 38.9A0.63 0.63 0 0 1 30.12 39.52L30.12 47.04A0.63 0.63 0 0 1 29.49 47.67L21.97 47.67A0.63 0.63 0 0 1 21.34 47.04L21.34 39.52A0.63 0.63 0 0 1 21.97 38.9Z"/><path d="M37.64 38.9L38.9 38.9A3.76 3.76 0 0 1 42.66 42.66L42.66 43.91A3.76 3.76 0 0 1 38.9 47.67L37.64 47.67A3.76 3.76 0 0 1 33.88 43.91L33.88 42.66A3.76 3.76 0 0 1 37.64 38.9Z"/><path d="M47.04 38.9L54.57 38.9A0.63 0.63 0 0 1 55.19 39.52L55.19 47.04A0.63 0.63 0 0 1 54.57 47.67L47.04 47.67A0.63 0.63 0 0 1 46.42 47.04L46.42 39.52A0.63 0.63 0 0 1 47.04 38.9Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nbr-14136-10a.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M15.69 19.28A2.37 2.37 0 0 1 17.36 18.59L46.64 18.59A2.37 2.37 0 0 1 48.31 19.28L59.35 30.33A2.37 2.37 0 0 1 59.35 33.67L48.31 44.72A2.37 2.37 0 0 1 46.64 45.41L17.36 45.41A2.37 2.37 0 0 1 15.69 44.72L4.65 33.67A2.37 2.37 0 0 1 4.65 30.33Z"/></g>
+<g fill="#000"><circle cx="17.01" cy="32" r="3.47"/><circle cx="46.99" cy="32" r="3.47"/><circle cx="32" cy="27.27" r="3.47"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nbr-14136-20a.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M15.69 19.28A2.37 2.37 0 0 1 17.36 18.59L46.64 18.59A2.37 2.37 0 0 1 48.31 19.28L59.35 30.33A2.37 2.37 0 0 1 59.35 33.67L48.31 44.72A2.37 2.37 0 0 1 46.64 45.41L17.36 45.41A2.37 2.37 0 0 1 15.69 44.72L4.65 33.67A2.37 2.37 0 0 1 4.65 30.33Z"/></g>
+<g fill="#000"><circle cx="17.01" cy="32" r="4.1"/><circle cx="46.99" cy="32" r="4.1"/><circle cx="32" cy="27.27" r="4.1"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-1-15r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M40.54 21.36L44.74 21.36L44.74 42.64L40.54 42.64Z"/><path d="M19.26 25.28L23.46 25.28L23.46 38.72L19.26 38.72Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-10-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M27.66 11.28L31.86 11.28L31.86 23.6L27.66 23.6Z"/><path d="M29.76 19.54L39.84 19.54L39.84 23.74L29.76 23.74Z"/><path d="M44.6 31.89L48.24 33.99L41.24 46.11L37.6 44.01Z"/><path d="M16.32 33.43L19.96 31.33L26.96 43.45L23.32 45.55Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-10-50r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M30.18 9.88L34.38 9.88L34.38 28.36L30.18 28.36Z"/><path d="M44.6 31.89L48.24 33.99L41.24 46.11L37.6 44.01Z"/><path d="M16.32 33.43L19.96 31.33L26.96 43.45L23.32 45.55Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-14-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M45.3 23.74L49.5 23.74L49.5 36.9L45.3 36.9Z"/><path d="M14.5 23.74L18.7 23.74L18.7 36.9L14.5 36.9Z"/><path d="M25.42 42.5L38.58 42.5L38.58 46.7L25.42 46.7Z"/><path d="M27.8 10.44L36.2 10.44L36.2 14.36A4.2 4.2 0 0 1 27.8 14.36Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-14-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M44.74 21.78L48.94 21.78L48.94 39.98L44.74 39.98Z"/><path d="M15.62 21.78L19.82 21.78L19.82 39.98L15.62 39.98Z"/><path d="M33.68 39.56L37.88 39.56L37.88 53L33.68 53Z"/><path d="M26.4 40.26L35.78 40.26L35.78 44.46L26.4 44.46Z"/><path d="M27.8 10.44L36.2 10.44L36.2 14.36A4.2 4.2 0 0 1 27.8 14.36Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-14-50r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M44.74 21.64L48.94 21.64L48.94 40.12L44.74 40.12Z"/><path d="M15.06 21.64L19.26 21.64L19.26 40.12L15.06 40.12Z"/><path d="M30.18 37.04L34.38 37.04L34.38 55.52L30.18 55.52Z"/><path d="M27.8 10.44L36.2 10.44L36.2 14.36A4.2 4.2 0 0 1 27.8 14.36Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-14-60r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M44.74 21.64L48.94 21.64L48.94 40.12L44.74 40.12Z"/><path d="M15.06 21.64L19.26 21.64L19.26 40.12L15.06 40.12Z"/><path d="M23.74 45.58L41.94 45.58L41.94 49.78L23.74 49.78Z"/><path d="M27.8 10.44L36.2 10.44L36.2 14.36A4.2 4.2 0 0 1 27.8 14.36Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-15-15r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M13.66 25.28L17.86 25.28L17.86 38.72L13.66 38.72Z"/><path d="M40.68 29.9L54.12 29.9L54.12 34.1L40.68 34.1Z"/><path d="M25.28 46.14L38.72 46.14L38.72 50.34L25.28 50.34Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-15-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M13.94 22.76L18.14 22.76L18.14 41.24L13.94 41.24Z"/><path d="M35.64 29.9L53.56 29.9L53.56 34.1L35.64 34.1Z"/><path d="M23.04 46.42L40.96 46.42L40.96 50.62L23.04 50.62Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-15-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M10.86 29.9L24.02 29.9L24.02 34.1L10.86 34.1Z"/><path d="M40.82 29.9L53.98 29.9L53.98 34.1L40.82 34.1Z"/><path d="M25.42 46.14L38.58 46.14L38.58 50.34L25.42 50.34Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-15-50r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M46.7 25.28L50.9 25.28L50.9 38.72L46.7 38.72Z"/><path d="M11.14 29.9L24.3 29.9L24.3 34.1L11.14 34.1Z"/><path d="M25.42 46.14L38.58 46.14L38.58 50.34L25.42 50.34Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-15-60r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M15.34 21.64L19.54 21.64L19.54 40.12L15.34 40.12Z"/><path d="M35.5 29.9L53.7 29.9L53.7 34.1L35.5 34.1Z"/><path d="M23.74 45.58L41.94 45.58L41.94 49.78L23.74 49.78Z"/><path d="M27.8 10.44L36.2 10.44L36.2 14.36A4.2 4.2 0 0 1 27.8 14.36Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-5-15r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M40.54 24.72L44.74 24.72L44.74 46L40.54 46Z"/><path d="M19.26 28.78L23.46 28.78L23.46 41.94L19.26 41.94Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-5-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M38.02 25.56L42.22 25.56L42.22 45.16L38.02 45.16Z"/><path d="M40.12 32.7L53 32.7L53 36.9L40.12 36.9Z"/><path d="M19.26 28.78L23.46 28.78L23.46 41.94L19.26 41.94Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-5-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M40.4 28.5L44.6 28.5L44.6 41.66L40.4 41.66Z"/><path d="M34.8 29.34L42.5 29.34L42.5 33.54L34.8 33.54Z"/><path d="M19.26 28.78L23.46 28.78L23.46 41.94L19.26 41.94Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-5-50r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M40.54 25.84L44.74 25.84L44.74 47.12L40.54 47.12Z"/><path d="M13.94 28.92L18.14 28.92L18.14 42.36L13.94 42.36Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-6-15r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M37.32 36.34L50.76 36.34L50.76 40.54L37.32 40.54Z"/><path d="M13.24 36.34L26.68 36.34L26.68 40.54L13.24 40.54Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-6-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M36.9 24.72L41.1 24.72L41.1 45.72L36.9 45.72Z"/><path d="M39 33.54L54.12 33.54L54.12 37.74L39 37.74Z"/><path d="M13.66 34.1L26.82 34.1L26.82 38.3L13.66 38.3Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-6-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M37.46 33.82L50.62 33.82L50.62 38.02L37.46 38.02Z"/><path d="M13.38 33.82L26.54 33.82L26.54 38.02L13.38 38.02Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-6-50r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M17.02 26.12L21.22 26.12L21.22 47.4L17.02 47.4Z"/><path d="M43.34 28.64L47.54 28.64L47.54 42.08L43.34 42.08Z"/><path d="M27.8 11.84L36.2 11.84L36.2 15.76A4.2 4.2 0 0 1 27.8 15.76Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l1-15r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M22.19 15.68A19.04 19.04 0 0 1 41.81 15.68L39.64 19.28A14.84 14.84 0 0 0 24.36 19.28Z"/><path d="M41.88 46.11A17.22 17.22 0 0 1 22.37 46.28L24.72 42.79A13.02 13.02 0 0 0 39.47 42.67Z"/><path d="M43.88 48.97A20.72 20.72 0 0 1 39.09 51.47L37.79 47.92A16.94 16.94 0 0 0 41.72 45.88Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l10-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M32 10.86A21.14 21.14 0 0 1 46.42 16.54L43.55 19.61A16.94 16.94 0 0 0 32 15.06Z"/><path d="M50.49 42.25A21.14 21.14 0 0 1 38.53 52.11L37.23 48.11A16.94 16.94 0 0 0 46.82 40.21Z"/><path d="M14.07 43.2A21.14 21.14 0 0 1 11.78 25.82L15.8 27.05A16.94 16.94 0 0 0 17.63 40.98Z"/><path d="M17.4 41.13A17.22 17.22 0 0 1 15.53 37.03L19.68 35.77A12.88 12.88 0 0 0 21.08 38.83Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l14-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M23.45 16.57A17.64 17.64 0 0 1 39.73 16.15L37.89 19.92A13.44 13.44 0 0 0 25.48 20.25Z"/><path d="M48.36 25.39A17.64 17.64 0 0 1 48.36 38.61L44.46 37.03A13.44 13.44 0 0 0 44.46 26.97Z"/><path d="M40.28 47.58A17.64 17.64 0 0 1 23.72 47.58L25.69 43.87A13.44 13.44 0 0 0 38.31 43.87Z"/><path d="M17.04 41.35A17.64 17.64 0 0 1 16.42 23.72L20.13 25.69A13.44 13.44 0 0 0 20.6 39.12Z"/><path d="M12.08 27.4A20.44 20.44 0 0 1 13.95 22.4L16.67 23.85A17.36 17.36 0 0 0 15.08 28.09Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l14-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M23.45 16.57A17.64 17.64 0 0 1 39.73 16.15L37.89 19.92A13.44 13.44 0 0 0 25.48 20.25Z"/><path d="M48.47 25.68A17.64 17.64 0 0 1 48.87 37.16L44.85 35.93A13.44 13.44 0 0 0 44.55 27.18Z"/><path d="M40.28 47.58A17.64 17.64 0 0 1 23.72 47.58L25.69 43.87A13.44 13.44 0 0 0 38.31 43.87Z"/><path d="M17.04 41.35A17.64 17.64 0 0 1 16.42 23.72L20.13 25.69A13.44 13.44 0 0 0 20.6 39.12Z"/><path d="M18.63 28.91A13.72 13.72 0 0 1 19.89 25.56L23.35 27.4A9.8 9.8 0 0 0 22.45 29.8Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l15-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M23.18 16.72A17.64 17.64 0 0 1 35.97 14.81L35.02 18.9A13.44 13.44 0 0 0 25.28 20.36Z"/><path d="M47.99 24.55A17.64 17.64 0 0 1 46.62 41.86L43.14 39.52A13.44 13.44 0 0 0 44.18 26.32Z"/><path d="M40.28 47.58A17.64 17.64 0 0 1 23.72 47.58L25.69 43.87A13.44 13.44 0 0 0 38.31 43.87Z"/><path d="M16.42 40.28A17.64 17.64 0 0 1 16.28 23.99L20.02 25.9A13.44 13.44 0 0 0 20.13 38.31Z"/><path d="M12.01 27.75A20.44 20.44 0 0 1 13.79 22.72L16.53 24.12A17.36 17.36 0 0 0 15.02 28.39Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l15-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M23.18 16.72A17.64 17.64 0 0 1 35.97 14.81L35.02 18.9A13.44 13.44 0 0 0 25.28 20.36Z"/><path d="M47.99 24.55A17.64 17.64 0 0 1 46.62 41.86L43.14 39.52A13.44 13.44 0 0 0 44.18 26.32Z"/><path d="M40.28 47.58A17.64 17.64 0 0 1 23.72 47.58L25.69 43.87A13.44 13.44 0 0 0 38.31 43.87Z"/><path d="M16.42 40.28A17.64 17.64 0 0 1 16.28 23.99L20.02 25.9A13.44 13.44 0 0 0 20.13 38.31Z"/><path d="M18.58 29.15A13.72 13.72 0 0 1 19.78 25.77L23.27 27.55A9.8 9.8 0 0 0 22.41 29.96Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l21-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M22.39 17.21A17.64 17.64 0 0 1 38.32 15.53L36.82 19.45A13.44 13.44 0 0 0 24.68 20.73Z"/><path d="M48.24 25.11A17.64 17.64 0 0 1 49.04 36.57L44.98 35.48A13.44 13.44 0 0 0 44.37 26.75Z"/><path d="M41.61 46.79A17.64 17.64 0 0 1 25.68 48.47L27.18 44.55A13.44 13.44 0 0 0 39.32 43.27Z"/><path d="M18.03 41.07A16.66 16.66 0 0 1 17.16 24.44L20.9 26.34A12.46 12.46 0 0 0 21.55 38.79Z"/><path d="M14.62 43.28A20.72 20.72 0 0 1 12.29 38.4L16.42 37.06A16.38 16.38 0 0 0 18.26 40.92Z"/><circle cx="32" cy="32" r="2.8"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l21-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M22.39 17.21A17.64 17.64 0 0 1 38.32 15.53L36.82 19.45A13.44 13.44 0 0 0 24.68 20.73Z"/><path d="M48.24 25.11A17.64 17.64 0 0 1 49.04 36.57L44.98 35.48A13.44 13.44 0 0 0 44.37 26.75Z"/><path d="M41.61 46.79A17.64 17.64 0 0 1 25.68 48.47L27.18 44.55A13.44 13.44 0 0 0 39.32 43.27Z"/><path d="M18.03 41.07A16.66 16.66 0 0 1 17.16 24.44L20.9 26.34A12.46 12.46 0 0 0 21.55 38.79Z"/><path d="M21.32 38.94A12.74 12.74 0 0 1 19.88 35.94L23.21 34.86A9.24 9.24 0 0 0 24.25 37.03Z"/><circle cx="32" cy="32" r="2.8"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l22-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M25.11 15.76A17.64 17.64 0 0 1 36.27 14.88L35.25 18.96A13.44 13.44 0 0 0 26.75 19.63Z"/><path d="M46.96 22.65A17.64 17.64 0 0 1 47.85 39.73L44.08 37.89A13.44 13.44 0 0 0 43.4 24.88Z"/><path d="M40.55 47.43A17.64 17.64 0 0 1 23.99 47.72L25.9 43.98A13.44 13.44 0 0 0 38.52 43.75Z"/><path d="M18.03 41.07A16.66 16.66 0 0 1 17.16 24.44L20.9 26.34A12.46 12.46 0 0 0 21.55 38.79Z"/><path d="M14.62 43.28A20.72 20.72 0 0 1 12.29 38.4L16.42 37.06A16.38 16.38 0 0 0 18.26 40.92Z"/><circle cx="32" cy="32" r="2.8"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l22-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M25.11 15.76A17.64 17.64 0 0 1 36.27 14.88L35.25 18.96A13.44 13.44 0 0 0 26.75 19.63Z"/><path d="M46.96 22.65A17.64 17.64 0 0 1 47.85 39.73L44.08 37.89A13.44 13.44 0 0 0 43.4 24.88Z"/><path d="M40.55 47.43A17.64 17.64 0 0 1 23.99 47.72L25.9 43.98A13.44 13.44 0 0 0 38.52 43.75Z"/><path d="M18.03 41.07A16.66 16.66 0 0 1 17.16 24.44L20.9 26.34A12.46 12.46 0 0 0 21.55 38.79Z"/><path d="M21.32 38.94A12.74 12.74 0 0 1 19.88 35.94L23.21 34.86A9.24 9.24 0 0 0 24.25 37.03Z"/><circle cx="32" cy="32" r="2.8"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l5-15r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M36.63 15.85A16.8 16.8 0 0 1 48.74 30.54L44.55 30.9A12.6 12.6 0 0 0 35.47 19.89Z"/><path d="M44.49 46.37A19.04 19.04 0 0 1 25.49 49.89L26.92 45.95A14.84 14.84 0 0 0 41.74 43.2Z"/><path d="M14.91 36.9A17.78 17.78 0 0 1 19.87 19L22.74 22.07A13.58 13.58 0 0 0 18.95 35.74Z"/><path d="M18.68 35.82A13.86 13.86 0 0 1 18.14 32.24L21.92 32.18A10.08 10.08 0 0 0 22.31 34.78Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l5-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M35.06 14.63A17.64 17.64 0 0 1 44.25 19.31L41.34 22.33A13.44 13.44 0 0 0 34.33 18.76Z"/><path d="M47.85 39.73A17.64 17.64 0 0 1 31.69 49.64L31.77 45.44A13.44 13.44 0 0 0 44.08 37.89Z"/><path d="M17.73 42.37A17.64 17.64 0 0 1 16.57 23.45L20.25 25.48A13.44 13.44 0 0 0 21.13 39.9Z"/><path d="M18.69 28.68A13.72 13.72 0 0 1 20 25.35L23.67 27.38A9.52 9.52 0 0 0 22.76 29.7Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l5-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M34.15 14.49A17.64 17.64 0 0 1 44.47 19.53L41.5 22.5A13.44 13.44 0 0 0 33.64 18.66Z"/><path d="M46.96 41.35A17.64 17.64 0 0 1 33.84 49.54L33.4 45.37A13.44 13.44 0 0 0 43.4 39.12Z"/><path d="M17.73 42.37A17.64 17.64 0 0 1 16.72 23.18L20.36 25.28A13.44 13.44 0 0 0 21.13 39.9Z"/><path d="M18.75 28.45A13.72 13.72 0 0 1 20.12 25.14L23.76 27.24A9.52 9.52 0 0 0 22.8 29.54Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l6-15r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M36.46 15.37A17.22 17.22 0 0 1 49.13 30.2L44.95 30.64A13.02 13.02 0 0 0 35.37 19.42Z"/><path d="M43.99 45.32A17.92 17.92 0 0 1 25.29 48.62L26.86 44.72A13.72 13.72 0 0 0 41.18 42.2Z"/><path d="M15.26 37.12A17.5 17.5 0 0 1 20.99 18.4L23.63 21.66A13.3 13.3 0 0 0 19.28 35.89Z"/><path d="M15.01 19.66A21 21 0 0 1 18.78 15.68L21.16 18.62A17.22 17.22 0 0 0 18.07 21.88Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l6-20r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M32 14.36A17.64 17.64 0 0 1 46.09 21.38L42.73 23.91A13.44 13.44 0 0 0 32 18.56Z"/><path d="M46.27 42.37A17.64 17.64 0 0 1 35.67 49.25L34.79 45.15A13.44 13.44 0 0 0 42.87 39.9Z"/><path d="M17.55 42.12A17.64 17.64 0 0 1 16.42 23.72L20.13 25.69A13.44 13.44 0 0 0 20.99 39.71Z"/><path d="M18.63 28.91A13.72 13.72 0 0 1 19.89 25.56L23.59 27.53A9.52 9.52 0 0 0 22.72 29.86Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/nema-l6-30r.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><circle cx="32" cy="32" r="28"/></g>
+<g fill="#000"><path d="M32 14.36A17.64 17.64 0 0 1 46.09 21.38L42.73 23.91A13.44 13.44 0 0 0 32 18.56Z"/><path d="M46.27 42.37A17.64 17.64 0 0 1 35.67 49.25L34.79 45.15A13.44 13.44 0 0 0 42.87 39.9Z"/><path d="M17.55 42.12A17.64 17.64 0 0 1 16.42 23.72L20.13 25.69A13.44 13.44 0 0 0 20.99 39.71Z"/><path d="M18.63 28.91A13.72 13.72 0 0 1 19.89 25.56L23.59 27.53A9.52 9.52 0 0 0 22.72 29.86Z"/></g>
+</svg>

+ 5 - 0
netbox/project-static/img/connectors/power-outlet/neutrik-powercon-20a.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M49.16 4L14.84 4A6.32 6.32 0 0 0 8.52 10.32L8.52 53.68A6.32 6.32 0 0 0 14.84 60L49.16 60A6.32 6.32 0 0 0 55.48 53.68L55.48 10.32A6.32 6.32 0 0 0 49.16 4Z"/></g>
+<g fill="none" stroke="#000" stroke-width="2" stroke-linejoin="round"><circle cx="49.16" cy="10.32" r="3.07"/><circle cx="14.84" cy="53.68" r="3.07"/><circle cx="32" cy="32" r="21.32"/><circle cx="32" cy="32" r="11.56"/></g>
+<g fill="#000"><path d="M37.06 13.12L26.94 13.12L26.94 16.55L37.06 16.55Z"/><path d="M50.43 28.57L47.54 28.57L47.54 35.43L50.43 35.43Z"/><path d="M27.91 27.91A5.78 5.78 0 1 0 36.09 27.91L35.07 28.93A4.34 4.34 0 1 1 28.93 28.93Z"/><path d="M40.05 24.97L39.03 23.95L35.45 27.53L36.47 28.55Z"/><path d="M26.76 25.74L25.74 26.76L27.53 28.55L28.55 27.53Z"/><path d="M21.52 27.11A11.56 11.56 0 0 0 21.52 36.89L23 36.2A9.94 9.94 0 0 1 23 27.8Z"/><path d="M42.48 36.89A11.56 11.56 0 0 0 42.48 27.11L41 27.8A9.94 9.94 0 0 1 41 36.2Z"/></g>
+</svg>

+ 5 - 0
netbox/project-static/img/connectors/power-outlet/neutrik-powercon-32a.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M13.08 4L50.92 4A5.3 5.3 0 0 1 56.22 9.3L56.22 54.7A5.3 5.3 0 0 1 50.92 60L13.08 60A5.3 5.3 0 0 1 7.78 54.7L7.78 9.3A5.3 5.3 0 0 1 13.08 4Z"/></g>
+<g fill="none" stroke="#000" stroke-width="2" stroke-linejoin="round"><circle cx="13.08" cy="9.3" r="2.57"/><circle cx="50.92" cy="54.7" r="2.57"/><circle cx="32" cy="32" r="22.4"/><circle cx="32" cy="32" r="15.89"/><circle cx="32" cy="32" r="7.04"/></g>
+<g fill="#000"><path d="M26.76 11A21.64 21.64 0 0 1 37.24 11L36.72 13.06A19.52 19.52 0 0 0 27.28 13.06Z"/><path d="M29.35 48.42L34.65 48.42L34.65 51.3L29.35 51.3Z"/><path d="M28.29 25.42L33.14 25.42L33.14 26.78L28.29 26.78Z"/><path d="M38.58 28.29L38.58 33.14L37.22 33.14L37.22 28.29Z"/><path d="M35.71 38.58L30.86 38.58L30.86 37.22L35.71 37.22Z"/><path d="M25.42 35.71L25.42 30.86L26.78 30.86L26.78 35.71Z"/></g>
+</svg>

+ 5 - 0
netbox/project-static/img/connectors/power-outlet/neutrik-powercon-true1-top.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M12.7 4L51.3 4A8.7 8.7 0 0 1 60 12.7L60 51.3A8.7 8.7 0 0 1 51.3 60L12.7 60A8.7 8.7 0 0 1 4 51.3L4 12.7A8.7 8.7 0 0 1 12.7 4Z"/></g>
+<g fill="none" stroke="#000" stroke-width="2" stroke-linejoin="round"><circle cx="32" cy="32" r="22.46"/><circle cx="32" cy="32" r="4.19"/><circle cx="12.7" cy="12.7" r="2.72"/><circle cx="12.7" cy="51.3" r="2.72"/><circle cx="51.3" cy="12.7" r="2.72"/><circle cx="51.3" cy="51.3" r="2.72"/></g>
+<g fill="#000"><path d="M24.48 37.26A9.18 9.18 0 0 1 27.83 23.82L28.8 25.73A7.04 7.04 0 0 0 26.23 36.04Z"/><path d="M40.32 35.88A9.18 9.18 0 0 1 27 39.69L28.17 37.9A7.04 7.04 0 0 0 38.38 34.98Z"/><path d="M31.2 22.86A9.18 9.18 0 0 1 41.16 32.48L39.03 32.37A7.04 7.04 0 0 0 31.39 24.99Z"/></g>
+</svg>

+ 5 - 0
netbox/project-static/img/connectors/power-outlet/neutrik-powercon-true1.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M12.7 4L51.3 4A8.7 8.7 0 0 1 60 12.7L60 51.3A8.7 8.7 0 0 1 51.3 60L12.7 60A8.7 8.7 0 0 1 4 51.3L4 12.7A8.7 8.7 0 0 1 12.7 4Z"/></g>
+<g fill="none" stroke="#000" stroke-width="2" stroke-linejoin="round"><circle cx="32" cy="32" r="22.46"/><circle cx="32" cy="32" r="4.19"/><circle cx="12.7" cy="12.7" r="2.72"/><circle cx="12.7" cy="51.3" r="2.72"/><circle cx="51.3" cy="12.7" r="2.72"/><circle cx="51.3" cy="51.3" r="2.72"/></g>
+<g fill="#000"><path d="M24.48 37.26A9.18 9.18 0 0 1 27.83 23.82L28.8 25.73A7.04 7.04 0 0 0 26.23 36.04Z"/><path d="M40.32 35.88A9.18 9.18 0 0 1 27 39.69L28.17 37.9A7.04 7.04 0 0 0 38.38 34.98Z"/><path d="M31.2 22.86A9.18 9.18 0 0 1 41.16 32.48L39.03 32.37A7.04 7.04 0 0 0 31.39 24.99Z"/></g>
+</svg>

+ 5 - 0
netbox/project-static/img/connectors/power-outlet/saf-d-grid.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M7.35 11.8L56.65 11.8A3.35 3.35 0 0 1 60 15.15L60 48.85A3.35 3.35 0 0 1 56.65 52.2L7.35 52.2A3.35 3.35 0 0 1 4 48.85L4 15.15A3.35 3.35 0 0 1 7.35 11.8Z"/></g>
+<g fill="none" stroke="#000" stroke-width="2" stroke-linejoin="round"><path d="M16.67 18.25A1.68 1.68 0 0 1 18.24 17.16L45.76 17.16A1.68 1.68 0 0 1 47.33 18.25L51.85 30.38A1.68 1.68 0 0 1 51.95 30.96L51.95 43.49A3.35 3.35 0 0 1 48.6 46.84L15.4 46.84A3.35 3.35 0 0 1 12.05 43.49L12.05 30.96A1.68 1.68 0 0 1 12.15 30.38Z"/></g>
+<g fill="#000"><path d="M28.31 27.81L35.69 27.81L35.69 30.16L28.31 30.16Z"/><path d="M16.74 35.86L24.12 35.86L24.12 38.2L16.74 38.2Z"/><path d="M39.88 35.86L47.26 35.86L47.26 38.2L39.88 38.2Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/usb-a.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M5.4 21.5L58.6 21.5A1.4 1.4 0 0 1 60 22.9L60 41.1A1.4 1.4 0 0 1 58.6 42.5L5.4 42.5A1.4 1.4 0 0 1 4 41.1L4 22.9A1.4 1.4 0 0 1 5.4 21.5Z"/></g>
+<g fill="#000"><path d="M8.67 23.6L55.33 23.6L55.33 32.47L8.67 32.47Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/usb-c.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M12.67 23.33L51.33 23.33A8.67 8.67 0 0 1 60 32L60 32A8.67 8.67 0 0 1 51.33 40.67L12.67 40.67A8.67 8.67 0 0 1 4 32L4 32A8.67 8.67 0 0 1 12.67 23.33Z"/></g>
+<g fill="#000"><path d="M11 29.67L53 29.67A1 1 0 0 1 54 30.67L54 33.33A1 1 0 0 1 53 34.33L11 34.33A1 1 0 0 1 10 33.33L10 30.67A1 1 0 0 1 11 29.67Z"/></g>
+</svg>

+ 4 - 0
netbox/project-static/img/connectors/power-outlet/usb-micro-b.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
+<g fill="none" stroke="#000" stroke-width="3" stroke-linejoin="round"><path d="M60 24.49L60 33.83L54.32 39.51L9.68 39.51L4 33.83L4 24.49Z"/></g>
+<g fill="#000"><path d="M11.71 26.52L52.29 26.52L52.29 30.17L11.71 30.17Z"/></g>
+</svg>

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio