Browse Source

SONARCLOUD-132 New homepage

* Create sticky menu bar
* Add languages section animation
* Add figures section counter animation
* Animate featured projects carrousel
tags/7.5
Grégoire Aubert 5 years ago
parent
commit
3d4819e32d
100 changed files with 2312 additions and 198 deletions
  1. 1
    0
      server/sonar-web/package.json
  2. 1
    1
      server/sonar-web/public/images/languages/abap.svg
  3. 10
    0
      server/sonar-web/public/images/languages/black/abap.svg
  4. 29
    0
      server/sonar-web/public/images/languages/black/c-c-plus-plus.svg
  5. 23
    0
      server/sonar-web/public/images/languages/black/csharp.svg
  6. BIN
      server/sonar-web/public/images/languages/black/flex.png
  7. BIN
      server/sonar-web/public/images/languages/black/flex@2x.png
  8. 44
    0
      server/sonar-web/public/images/languages/black/go.svg
  9. 24
    0
      server/sonar-web/public/images/languages/black/html5.svg
  10. 23
    0
      server/sonar-web/public/images/languages/black/java.svg
  11. 15
    0
      server/sonar-web/public/images/languages/black/js.svg
  12. 24
    0
      server/sonar-web/public/images/languages/black/kotlin.svg
  13. 10
    0
      server/sonar-web/public/images/languages/black/obj-c.svg
  14. 12
    0
      server/sonar-web/public/images/languages/black/php.svg
  15. 10
    0
      server/sonar-web/public/images/languages/black/pl-sql.svg
  16. 29
    0
      server/sonar-web/public/images/languages/black/python.svg
  17. 51
    0
      server/sonar-web/public/images/languages/black/ruby.svg
  18. 24
    0
      server/sonar-web/public/images/languages/black/swift.svg
  19. 10
    0
      server/sonar-web/public/images/languages/black/t-sql.svg
  20. 13
    0
      server/sonar-web/public/images/languages/black/ts.svg
  21. 23
    0
      server/sonar-web/public/images/languages/black/vb.svg
  22. 10
    0
      server/sonar-web/public/images/languages/black/xml.svg
  23. 1
    0
      server/sonar-web/public/images/languages/c-c-plus-plus.svg
  24. 0
    1
      server/sonar-web/public/images/languages/c-plus.svg
  25. 0
    1
      server/sonar-web/public/images/languages/c-sharp.svg
  26. 1
    0
      server/sonar-web/public/images/languages/csharp.svg
  27. BIN
      server/sonar-web/public/images/languages/flex.png
  28. 1
    0
      server/sonar-web/public/images/languages/flex.svg
  29. 1
    1
      server/sonar-web/public/images/languages/go.svg
  30. 1
    1
      server/sonar-web/public/images/languages/html5.svg
  31. 1
    1
      server/sonar-web/public/images/languages/java.svg
  32. 1
    1
      server/sonar-web/public/images/languages/js.svg
  33. 1
    0
      server/sonar-web/public/images/languages/kotlin.svg
  34. 1
    1
      server/sonar-web/public/images/languages/obj-c.svg
  35. 1
    1
      server/sonar-web/public/images/languages/php.svg
  36. 1
    0
      server/sonar-web/public/images/languages/pl-sql.svg
  37. 0
    1
      server/sonar-web/public/images/languages/plsql.svg
  38. 1
    1
      server/sonar-web/public/images/languages/python.svg
  39. 1
    0
      server/sonar-web/public/images/languages/ruby.svg
  40. 1
    1
      server/sonar-web/public/images/languages/swift.svg
  41. 1
    0
      server/sonar-web/public/images/languages/t-sql.svg
  42. 1
    1
      server/sonar-web/public/images/languages/ts.svg
  43. 0
    1
      server/sonar-web/public/images/languages/tsql.svg
  44. 1
    1
      server/sonar-web/public/images/languages/vb.svg
  45. 1
    1
      server/sonar-web/public/images/languages/xml.svg
  46. 1
    0
      server/sonar-web/public/images/sonarcloud-logo-black.svg
  47. 3
    0
      server/sonar-web/public/images/sonarcloud/azure.svg
  48. BIN
      server/sonar-web/public/images/sonarcloud/branch-01.png
  49. BIN
      server/sonar-web/public/images/sonarcloud/branch-01@2x.png
  50. BIN
      server/sonar-web/public/images/sonarcloud/branch-02.png
  51. BIN
      server/sonar-web/public/images/sonarcloud/branch-02@2x.png
  52. BIN
      server/sonar-web/public/images/sonarcloud/branch-03.png
  53. BIN
      server/sonar-web/public/images/sonarcloud/branch-03@2x.png
  54. 3
    0
      server/sonar-web/public/images/sonarcloud/check.svg
  55. 188
    0
      server/sonar-web/public/images/sonarcloud/collab.svg
  56. BIN
      server/sonar-web/public/images/sonarcloud/gears.png
  57. BIN
      server/sonar-web/public/images/sonarcloud/gears@2x.png
  58. BIN
      server/sonar-web/public/images/sonarcloud/home-branch.png
  59. BIN
      server/sonar-web/public/images/sonarcloud/home-branch@2x.png
  60. BIN
      server/sonar-web/public/images/sonarcloud/home-easy-to-use.png
  61. BIN
      server/sonar-web/public/images/sonarcloud/home-easy-to-use@2x.png
  62. 3
    0
      server/sonar-web/public/images/sonarcloud/home-grey-background.svg
  63. BIN
      server/sonar-web/public/images/sonarcloud/home-header-people.png
  64. 7
    0
      server/sonar-web/public/images/sonarcloud/home-header.svg
  65. BIN
      server/sonar-web/public/images/sonarcloud/home-open-transparent.png
  66. BIN
      server/sonar-web/public/images/sonarcloud/home-open-transparent@2x.png
  67. 86
    0
      server/sonar-web/public/images/sonarcloud/ide.svg
  68. 12
    0
      server/sonar-web/public/images/sonarcloud/locs.svg
  69. 3
    0
      server/sonar-web/public/images/sonarcloud/open-source.svg
  70. 9
    0
      server/sonar-web/public/images/sonarcloud/pricing-header.svg
  71. 3
    0
      server/sonar-web/public/images/sonarcloud/pull-request.svg
  72. 1
    0
      server/sonar-web/public/images/sonarcloud/rules.svg
  73. 4
    0
      server/sonar-web/public/images/sonarcloud/scale.svg
  74. BIN
      server/sonar-web/public/images/sonarcloud/sl-notif.png
  75. BIN
      server/sonar-web/public/images/sonarcloud/sl-notif@2x.png
  76. 3
    0
      server/sonar-web/public/images/sonarcloud/sonarcloud-logo-text-only.svg
  77. 9
    28
      server/sonar-web/public/images/sonarcloud/sonarlint-integration.svg
  78. 4
    0
      server/sonar-web/public/images/sonarcloud/sonarlint-logo.svg
  79. BIN
      server/sonar-web/public/images/sonarcloud/sq-homepage.png
  80. BIN
      server/sonar-web/public/images/sonarcloud/sq-homepage@2x.png
  81. 9
    0
      server/sonar-web/public/images/sonarcloud/stop.svg
  82. 31
    0
      server/sonar-web/src/main/js/@types/react-countup.d.ts
  83. 4
    0
      server/sonar-web/src/main/js/app/styles/init/misc.css
  84. 2
    2
      server/sonar-web/src/main/js/app/theme.js
  85. 5
    5
      server/sonar-web/src/main/js/apps/about/sonarcloud/AsAService.tsx
  86. 5
    5
      server/sonar-web/src/main/js/apps/about/sonarcloud/BranchAnalysis.tsx
  87. 3
    3
      server/sonar-web/src/main/js/apps/about/sonarcloud/Contact.tsx
  88. 262
    85
      server/sonar-web/src/main/js/apps/about/sonarcloud/Home.tsx
  89. 44
    42
      server/sonar-web/src/main/js/apps/about/sonarcloud/SQHome.tsx
  90. 5
    5
      server/sonar-web/src/main/js/apps/about/sonarcloud/SonarLintIntegration.tsx
  91. 3
    3
      server/sonar-web/src/main/js/apps/about/sonarcloud/VSTS.tsx
  92. 9
    3
      server/sonar-web/src/main/js/apps/about/sonarcloud/__tests__/Home-test.tsx
  93. 506
    0
      server/sonar-web/src/main/js/apps/about/sonarcloud/__tests__/__snapshots__/Home-test.tsx.snap
  94. 126
    0
      server/sonar-web/src/main/js/apps/about/sonarcloud/components/FeaturedProjects.css
  95. 308
    0
      server/sonar-web/src/main/js/apps/about/sonarcloud/components/FeaturedProjects.tsx
  96. 86
    0
      server/sonar-web/src/main/js/apps/about/sonarcloud/components/Footer.css
  97. 2
    1
      server/sonar-web/src/main/js/apps/about/sonarcloud/components/Footer.tsx
  98. 111
    0
      server/sonar-web/src/main/js/apps/about/sonarcloud/components/Languages.tsx
  99. 48
    0
      server/sonar-web/src/main/js/apps/about/sonarcloud/components/LoginButtons.css
  100. 0
    0
      server/sonar-web/src/main/js/apps/about/sonarcloud/components/LoginButtons.tsx

+ 1
- 0
server/sonar-web/package.json View File

@@ -25,6 +25,7 @@
"mdast-util-toc": "2.1.0",
"prop-types": "15.6.2",
"react": "16.6.0",
"react-countup": "4.0.0",
"react-day-picker": "7.2.4",
"react-dom": "16.6.0",
"react-draggable": "3.0.5",

+ 1
- 1
server/sonar-web/public/images/languages/abap.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#2d3032;}</style></defs><title>abap</title><path id="Tracé_10739" data-name="Tracé 10739" class="cls-1" d="M13.69,34.85H8.3l-1,3.08H4L9.56,23h2.85L18,37.93H14.73ZM9.13,32.36h3.73L11,26.77Zm9.42,5.57V23h5.23a6.88,6.88,0,0,1,4.12,1,3.53,3.53,0,0,1,1.4,3.05A3.3,3.3,0,0,1,28.74,29a3.23,3.23,0,0,1-1.57,1.23A3.13,3.13,0,0,1,29,31.41a3.41,3.41,0,0,1,.66,2.13,4,4,0,0,1-1.37,3.26,6.15,6.15,0,0,1-3.91,1.13Zm3.08-6.5v4h2.63a2.53,2.53,0,0,0,1.7-.52,1.74,1.74,0,0,0,.61-1.43,1.87,1.87,0,0,0-1.63-2.09,2,2,0,0,0-.49,0Zm0-2.18H23.9c1.56,0,2.33-.64,2.33-1.85a1.73,1.73,0,0,0-.59-1.46,3.13,3.13,0,0,0-1.86-.45H21.63Zm17.91,5.6H34.15l-1,3.08H29.85L35.41,23h2.85l5.59,14.93H40.58ZM35,32.36h3.73l-1.87-5.59Zm12.5.31v5.26H44.4V23h5.83a6.86,6.86,0,0,1,3,.61,4.61,4.61,0,0,1,2,1.75,5,5,0,0,1,.69,2.58,4.32,4.32,0,0,1-1.5,3.46,6.24,6.24,0,0,1-4.16,1.27Zm0-2.49h2.75a2.67,2.67,0,0,0,1.86-.58A2.08,2.08,0,0,0,52.73,28a2.32,2.32,0,0,0-2.43-2.47H47.48Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 51.836 14.93"><path data-name="Tracé 11980" d="M9.689 11.854H4.296L3.27 14.93H-.001L5.557 0h2.851l5.588 14.93h-3.271zM5.126 9.362h3.737L6.982 3.774zm9.425 5.568V0h5.229a6.867 6.867 0 0 1 4.122 1.041 3.559 3.559 0 0 1 1.4 3.051 3.373 3.373 0 0 1-.564 1.933 3.258 3.258 0 0 1-1.569 1.225 3.152 3.152 0 0 1 1.81 1.159 3.426 3.426 0 0 1 .661 2.133 3.94 3.94 0 0 1-1.374 3.261 6.186 6.186 0 0 1-3.912 1.127zm3.076-6.5v4.03h2.636a2.543 2.543 0 0 0 1.7-.518 1.776 1.776 0 0 0 .61-1.43 1.875 1.875 0 0 0-2.126-2.082zm0-2.174h2.276q2.328-.041 2.328-1.856a1.715 1.715 0 0 0-.59-1.461 3.1 3.1 0 0 0-1.861-.446h-2.153zm17.914 5.6h-5.393l-1.026 3.074h-3.271L31.409 0h2.854l5.585 14.93h-3.271zm-4.563-2.492h3.732l-1.876-5.59zm12.5.308v5.258h-3.076V0h5.824a6.738 6.738 0 0 1 2.958.615 4.534 4.534 0 0 1 1.964 1.748 4.875 4.875 0 0 1 .687 2.579 4.287 4.287 0 0 1-1.5 3.461 6.257 6.257 0 0 1-4.158 1.266zm0-2.492h2.748a2.7 2.7 0 0 0 1.861-.574 2.088 2.088 0 0 0 .641-1.641 2.463 2.463 0 0 0-.646-1.774 2.413 2.413 0 0 0-1.784-.7h-2.82z" fill="#fff"/></svg>

+ 10
- 0
server/sonar-web/public/images/languages/black/abap.svg View File

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 51.836 14.93">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}
</style>
</defs>
<path id="Tracé_11993" data-name="Tracé 11993" class="cls-1" d="M34.126,15.924H28.733L27.707,19H24.436L29.994,4.07h2.851L38.433,19H35.162Zm-4.563-2.492H33.3L31.419,7.844ZM38.988,19V4.07h5.229a6.867,6.867,0,0,1,4.122,1.041,3.559,3.559,0,0,1,1.4,3.051,3.373,3.373,0,0,1-.564,1.933,3.258,3.258,0,0,1-1.569,1.225,3.152,3.152,0,0,1,1.81,1.159,3.426,3.426,0,0,1,.661,2.133,3.94,3.94,0,0,1-1.374,3.261A6.186,6.186,0,0,1,44.791,19Zm3.076-6.5v4.03H44.7a2.543,2.543,0,0,0,1.7-.518,1.776,1.776,0,0,0,.61-1.43A1.875,1.875,0,0,0,44.884,12.5Zm0-2.174H44.34q2.328-.041,2.328-1.856a1.715,1.715,0,0,0-.59-1.461,3.1,3.1,0,0,0-1.861-.446H42.064Zm17.914,5.6H54.585L53.559,19H50.288L55.846,4.07H58.7L64.285,19H61.014Zm-4.563-2.492h3.732L57.271,7.844Zm12.5.308V19H64.839V4.07h5.824a6.738,6.738,0,0,1,2.958.615,4.534,4.534,0,0,1,1.964,1.748,4.875,4.875,0,0,1,.687,2.579,4.287,4.287,0,0,1-1.5,3.461,6.257,6.257,0,0,1-4.158,1.266Zm0-2.492h2.748a2.7,2.7,0,0,0,1.861-.574,2.088,2.088,0,0,0,.641-1.641,2.463,2.463,0,0,0-.646-1.774,2.413,2.413,0,0,0-1.784-.7h-2.82Z" transform="translate(-24.437 -4.07)"/>
</svg>

+ 29
- 0
server/sonar-web/public/images/languages/black/c-c-plus-plus.svg View File

@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 53.435 60.056">
<defs>
<style>
.cls-1 {
fill: #6b7076;
}

.cls-2 {
fill: #4a4d50;
}

.cls-3 {
fill: #2e3032;
}

.cls-4 {
fill: #fff;
}
</style>
</defs>
<g id="Groupe_7545" data-name="Groupe 7545" transform="translate(-6792.164 -10501.433)">
<path id="Tracé_10199" data-name="Tracé 10199" class="cls-1" d="M53.432,17.924a5.3,5.3,0,0,0-.653-2.668,5.1,5.1,0,0,0-1.933-1.883Q40.175,7.22,29.5,1.076a5.24,5.24,0,0,0-5.679.056C20.99,2.8,6.814,10.924,2.589,13.37A4.934,4.934,0,0,0,0,17.922Q0,30.3,0,42.668a5.326,5.326,0,0,0,.625,2.617A5.084,5.084,0,0,0,2.587,47.22c4.224,2.447,18.4,10.568,21.233,12.238a5.241,5.241,0,0,0,5.68.056q10.667-6.159,21.347-12.3a5.086,5.086,0,0,0,1.962-1.934,5.333,5.333,0,0,0,.624-2.617s0-16.493,0-24.742" transform="translate(6792.164 10501.165)"/>
<path id="Tracé_10200" data-name="Tracé 10200" class="cls-2" d="M29.162,143.509,2.988,158.579a5.084,5.084,0,0,0,1.962,1.935c4.224,2.447,18.4,10.568,21.233,12.238a5.241,5.241,0,0,0,5.68.056q10.667-6.159,21.347-12.3a5.086,5.086,0,0,0,1.962-1.934L29.162,143.509" transform="translate(6789.801 10387.871)"/>
<path id="Tracé_10201" data-name="Tracé 10201" class="cls-2" d="M91.1,147.973a8.834,8.834,0,0,0,15.37-.051l-7.618-4.413L91.1,147.973" transform="translate(6720.109 10387.871)"/>
<path id="Tracé_10202" data-name="Tracé 10202" class="cls-3" d="M154.815,74.627a5.3,5.3,0,0,0-.653-2.668l-25.98,14.959,26.011,15.068a5.333,5.333,0,0,0,.624-2.617s0-16.493,0-24.742" transform="translate(6690.781 10444.462)"/>
<path id="Tracé_10203" data-name="Tracé 10203" class="cls-4" d="M197.6,133.283H195.57v2.033h-2.033v-2.033H191.5v-2.032h2.032v-2.033h2.033v2.033H197.6v2.032m-7.417,0h-2.032v2.033h-2.033v-2.033h-2.033v-2.032h2.033v-2.033h2.033v2.033h2.032v2.032" transform="translate(6646.563 10399.174)"/>
<path id="Tracé_10204" data-name="Tracé 10204" class="cls-4" d="M68.36,81.1A8.836,8.836,0,1,1,68.3,72.33l7.723-4.447a17.745,17.745,0,1,0,.046,17.681L68.36,81.1" transform="translate(6758.221 10454.696)"/>
</g>
</svg>

+ 23
- 0
server/sonar-web/public/images/languages/black/csharp.svg View File

@@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.056 60.056">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}

.cls-2 {
fill: #4a4d50;
}

.cls-3 {
fill: #fff;
}
</style>
</defs>
<g id="Groupe_7543" data-name="Groupe 7543" transform="translate(-7196.293 -10382.932)">
<path id="Tracé_10198" data-name="Tracé 10198" class="cls-1" d="M29.615,0A29.615,29.615,0,1,1,0,29.615,29.615,29.615,0,0,1,29.615,0Z" transform="translate(7197.118 10382.932)"/>
<path id="Tracé_10195" data-name="Tracé 10195" class="cls-2" d="M9.022,9A29.615,29.615,0,1,0,50.835,50.813Z" transform="translate(7197.185 10382.261)"/>
<path id="Tracé_10196" data-name="Tracé 10196" class="cls-3" d="M29.025,41.72a13.679,13.679,0,0,1-6.478,1.37,10.393,10.393,0,0,1-7.968-3.2,11.827,11.827,0,0,1-2.989-8.413,12.392,12.392,0,0,1,3.369-9.042A11.43,11.43,0,0,1,23.528,19a13.7,13.7,0,0,1,5.5.925V22.84a11.106,11.106,0,0,0-5.553-1.4,8.487,8.487,0,0,0-6.478,2.684A10.115,10.115,0,0,0,14.5,31.3a9.625,9.625,0,0,0,2.332,6.793,7.941,7.941,0,0,0,6.127,2.527,11.5,11.5,0,0,0,6.08-1.564Z" transform="translate(7196.255 10381.517)"/>
<path id="Tracé_10197" data-name="Tracé 10197" class="cls-3" d="M51.276,25.934l-.37,1.721H46.648L45.63,32.542H50.2l-.435,1.721H45.288l-1.434,6.478H41.808l1.4-6.478H39.133l-1.37,6.478h-2l1.37-6.478H32.84l.324-1.721h4.313l.99-4.877H33.96l.342-1.721h4.507l1.37-6.543h2.064l-1.37,6.543h4.1l1.4-6.543h2L47,25.943ZM44.64,27.655H40.531l-1.064,4.886h4.128Z" transform="translate(7194.671 10381.485)"/>
</g>
</svg>

BIN
server/sonar-web/public/images/languages/black/flex.png View File


BIN
server/sonar-web/public/images/languages/black/flex@2x.png View File


+ 44
- 0
server/sonar-web/public/images/languages/black/go.svg View File

@@ -0,0 +1,44 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 91.042 34.014">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}
</style>
</defs>
<g id="Groupe_7546" data-name="Groupe 7546" transform="translate(-6892.702 -10514.941)">
<g id="Groupe_7247" data-name="Groupe 7247" transform="translate(6899.396 10523.601)">
<g id="Groupe_7246" data-name="Groupe 7246" transform="translate(0)">
<g id="Groupe_7245" data-name="Groupe 7245">
<path id="Tracé_11502" data-name="Tracé 11502" class="cls-1" d="M39.977,99.04c-.177,0-.222-.089-.133-.222l.931-1.2a.635.635,0,0,1,.488-.222H57.087c.177,0,.222.133.133.266l-.754,1.152a.675.675,0,0,1-.443.266Z" transform="translate(-39.8 -97.4)"/>
</g>
</g>
</g>
<g id="Groupe_7250" data-name="Groupe 7250" transform="translate(6892.702 10527.679)">
<g id="Groupe_7249" data-name="Groupe 7249">
<g id="Groupe_7248" data-name="Groupe 7248">
<path id="Tracé_11503" data-name="Tracé 11503" class="cls-1" d="M24.877,108.24c-.177,0-.222-.089-.133-.222l.931-1.2a.635.635,0,0,1,.488-.222H46.376a.2.2,0,0,1,.222.266l-.355,1.064a.388.388,0,0,1-.4.266Z" transform="translate(-24.7 -106.6)"/>
</g>
</g>
</g>
<g id="Groupe_7253" data-name="Groupe 7253" transform="translate(6903.429 10531.757)">
<g id="Groupe_7252" data-name="Groupe 7252" transform="translate(0 0)">
<g id="Groupe_7251" data-name="Groupe 7251">
<path id="Tracé_11504" data-name="Tracé 11504" class="cls-1" d="M49.077,117.44c-.177,0-.222-.133-.133-.266l.621-1.108a.588.588,0,0,1,.443-.266h8.865c.177,0,.266.133.266.31l-.089,1.064a.333.333,0,0,1-.31.31Z" transform="translate(-48.9 -115.8)"/>
</g>
</g>
</g>
<g id="Groupe_7257" data-name="Groupe 7257" transform="translate(6916.867 10514.941)">
<g id="CXHf1q_3_" transform="translate(0)">
<g id="Groupe_7256" data-name="Groupe 7256">
<g id="Groupe_7254" data-name="Groupe 7254">
<path id="Tracé_11505" data-name="Tracé 11505" class="cls-1" d="M111.966,87.367c-2.793.709-4.7,1.241-7.447,1.95-.665.177-.709.222-1.285-.443a5.934,5.934,0,0,0-2.083-1.684,7.707,7.707,0,0,0-8.023.665,9.427,9.427,0,0,0-4.521,8.422,6.949,6.949,0,0,0,5.984,6.959,8.181,8.181,0,0,0,7.536-2.926c.4-.488.754-1.02,1.2-1.64H94.767c-.931,0-1.152-.576-.842-1.33.576-1.374,1.64-3.679,2.261-4.832a1.2,1.2,0,0,1,1.108-.709h16.135c-.089,1.2-.089,2.394-.266,3.59a18.9,18.9,0,0,1-3.635,8.688,18.465,18.465,0,0,1-12.633,7.536,15.7,15.7,0,0,1-11.924-2.926,13.923,13.923,0,0,1-5.63-9.841A17.4,17.4,0,0,1,83.109,85.86a19.671,19.671,0,0,1,12.412-7.669,15.275,15.275,0,0,1,11.747,2.172,13.9,13.9,0,0,1,5.142,6.25C112.675,87.012,112.5,87.234,111.966,87.367Z" transform="translate(-79.215 -77.866)"/>
</g>
<g id="Groupe_7255" data-name="Groupe 7255" transform="translate(31.597 0.41)">
<path id="Tracé_11506" data-name="Tracé 11506" class="cls-1" d="M166.323,112.4a16.629,16.629,0,0,1-10.816-3.9,13.9,13.9,0,0,1-4.787-8.555,16.921,16.921,0,0,1,3.59-13.387,18.582,18.582,0,0,1,12.411-7.4c4.521-.8,8.777-.355,12.633,2.261A13.8,13.8,0,0,1,185.6,91.3a17.111,17.111,0,0,1-5.1,15.027A20.312,20.312,0,0,1,169.869,112C168.672,112.218,167.475,112.262,166.323,112.4Zm10.55-17.908a12.755,12.755,0,0,0-.133-1.463,7.3,7.3,0,0,0-9.043-5.9,9.683,9.683,0,0,0-7.757,7.713,7.3,7.3,0,0,0,4.078,8.378,8.126,8.126,0,0,0,7.225-.266A9.7,9.7,0,0,0,176.872,94.487Z" transform="translate(-150.496 -78.792)"/>
</g>
</g>
</g>
</g>
</g>
</svg>

+ 24
- 0
server/sonar-web/public/images/languages/black/html5.svg View File

@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40.057 56.531">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}

.cls-2 {
fill: #4a4d50;
}

.cls-3 {
fill: #fff;
}
</style>
</defs>
<g id="Groupe_7549" data-name="Groupe 7549" transform="translate(-6925.663 -10618)">
<path id="Tracé_10304" data-name="Tracé 10304" class="cls-1" d="M108.4,0h2.539V2.517h2.341V0h2.539V7.618H113.28V5.079h-2.319V7.618H108.4m10.776-5.079h-2.241V0h7.033V2.539h-2.252V7.618h-2.539M125.083,0h2.661l1.634,2.683L131.012,0h2.661V7.618h-2.539V3.842l-1.778,2.738-1.778-2.738V7.618h-2.5M134.932,0h2.539V5.1h3.6V7.618h-6.139" transform="translate(6820.995 10618)"/>
<path id="Tracé_10305" data-name="Tracé 10305" class="cls-1" d="M78.244,141.5,74.6,100.6h40.057l-3.644,40.874L94.6,146.023" transform="translate(6851.063 10528.508)"/>
<path id="Tracé_10306" data-name="Tracé 10306" class="cls-2" d="M256,169.589V131h16.374l-3.125,34.89" transform="translate(6689.692 10501.464)"/>
<path id="Tracé_10307" data-name="Tracé 10307" class="cls-3" d="M142,176.3h12.587v5.013H147.5l.464,5.134h6.625v5H143.369m.221,2.517h5.035l.353,4.008,5.609,1.5v5.234l-10.29-2.871" transform="translate(6791.105 10461.165)"/>
<path id="Tracé_10308" data-name="Tracé 10308" class="cls-3" d="M268.365,176.3H255.8v5.013h12.1m-.453,5.134H255.8v5.013h6.183l-.585,6.514-5.6,1.5v5.211l10.268-2.849" transform="translate(6689.87 10461.165)"/>
</g>
</svg>

+ 23
- 0
server/sonar-web/public/images/languages/black/java.svg View File

@@ -0,0 +1,23 @@
<svg id="Groupe_7533" data-name="Groupe 7533" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 39.004 72.543">
<defs>
<style>
.cls-1 {
fill: #2e3032;
fill-rule: evenodd;
}
</style>
</defs>
<path id="Tracé_10176" data-name="Tracé 10176" class="cls-1" d="M97.814,349.592s-1.9,1.106,1.354,1.479a28.484,28.484,0,0,0,10.3-.436,18.015,18.015,0,0,0,2.74,1.336c-9.741,4.173-22.047-.242-14.4-2.38Z" transform="translate(-84.919 -311.112)"/>
<path id="Tracé_10177" data-name="Tracé 10177" class="cls-1" d="M84.688,300.1s-2.132,1.578,1.125,1.915a40.2,40.2,0,0,0,13.3-.638,5.88,5.88,0,0,0,2.046,1.248c-11.776,3.445-24.892.271-16.467-2.525Z" transform="translate(-72.984 -267.071)"/>
<path id="Tracé_10178" data-name="Tracé 10178" class="cls-1" d="M179.7,105.966c2.4,2.764-.63,5.25-.63,5.25s6.094-3.145,3.3-7.086c-2.614-3.673-4.619-5.5,6.233-11.791,0,0-17.034,4.253-8.9,13.628Z" transform="translate(-157.96 -82.174)"/>
<path id="Tracé_10179" data-name="Tracé 10179" class="cls-1" d="M43.326,382.8s1.407,1.16-1.549,2.057c-5.621,1.7-23.4,2.216-28.34.068-1.774-.773,1.554-1.844,2.6-2.07a6.8,6.8,0,0,1,1.715-.193c-1.974-1.39-12.761,2.731-5.479,3.912,19.86,3.219,36.2-1.45,31.051-3.774Z" transform="translate(-8.704 -340.286)"/>
<path id="Tracé_10180" data-name="Tracé 10180" class="cls-1" d="M54.825,248.756s-9.043,2.148-3.2,2.929a67.916,67.916,0,0,0,11.963-.13c3.743-.314,7.5-.986,7.5-.986a15.948,15.948,0,0,0-2.274,1.217c-9.185,2.416-26.925,1.291-21.817-1.179a17.094,17.094,0,0,1,7.83-1.851Z" transform="translate(-41.015 -221.368)"/>
<path id="Tracé_10181" data-name="Tracé 10181" class="cls-1" d="M271.338,254.01c9.336-4.85,5.019-9.511,2.006-8.884a7.061,7.061,0,0,0-1.067.287,1.7,1.7,0,0,1,.8-.615c5.961-2.095,10.544,6.18-1.922,9.457a.829.829,0,0,0,.187-.245Z" transform="translate(-241.305 -217.555)"/>
<path id="Tracé_10182" data-name="Tracé 10182" class="cls-1" d="M128.721,0s5.169,5.172-4.9,13.123c-8.078,6.381-1.842,10.017,0,14.175-4.716-4.255-8.175-8-5.855-11.486C121.366,10.7,130.806,8.215,128.721,0Z" transform="translate(-104.316 0)"/>
<path id="Tracé_10183" data-name="Tracé 10183" class="cls-1" d="M76.926,413.781c8.96.573,22.722-.319,23.047-4.559,0,0-.626,1.607-7.405,2.882a73.621,73.621,0,0,1-22.677.349s1.146.948,7.034,1.327Z" transform="translate(-62.199 -364.178)"/>
<path id="Tracé_10184" data-name="Tracé 10184" class="cls-1" d="M337.22,518.483h-.273v-.153h.735v.153h-.272v.762h-.19v-.762Zm1.467.039h0l-.271.724h-.125l-.269-.724h0v.724h-.18v-.915h.264l.249.648.25-.648h.263v.915h-.175v-.724Z" transform="translate(-299.859 -461.277)"/>
<path id="Tracé_10185" data-name="Tracé 10185" class="cls-1" d="M66.813,525.293a4.07,4.07,0,0,1-2.54,1.144,1.62,1.62,0,0,1-1.762-1.785c0-1.189.663-2.059,3.32-2.059h.982v2.7Zm2.332,2.631V519.78c0-2.082-1.187-3.456-4.049-3.456a10.682,10.682,0,0,0-4.323.938l.342,1.443a10.041,10.041,0,0,1,3.339-.664c1.649,0,2.358.664,2.358,2.037v1.03H65.99c-4,0-5.812,1.553-5.812,3.889,0,2.013,1.191,3.157,3.433,3.157a5.177,5.177,0,0,0,3.522-1.466l.183,1.236Z" transform="translate(-53.554 -459.492)"/>
<path id="Tracé_10186" data-name="Tracé 10186" class="cls-1" d="M160.541,529.607h-2.908l-3.5-11.393h2.54l2.173,7,.483,2.1a43.88,43.88,0,0,0,2.264-9.1h2.471a46.188,46.188,0,0,1-3.521,11.393Z" transform="translate(-137.166 -461.174)"/>
<path id="Tracé_10187" data-name="Tracé 10187" class="cls-1" d="M260.1,525.293a4.083,4.083,0,0,1-2.541,1.144,1.62,1.62,0,0,1-1.762-1.785c0-1.189.665-2.059,3.319-2.059h.984v2.7Zm2.333,2.631V519.78c0-2.082-1.191-3.456-4.049-3.456a10.683,10.683,0,0,0-4.325.938l.343,1.443a10.057,10.057,0,0,1,3.341-.664c1.647,0,2.357.664,2.357,2.037v1.03h-.824c-4.006,0-5.812,1.553-5.812,3.889,0,2.013,1.189,3.157,3.431,3.157a5.184,5.184,0,0,0,3.524-1.466l.184,1.236Z" transform="translate(-225.568 -459.492)"/>
<path id="Tracé_10188" data-name="Tracé 10188" class="cls-1" d="M4.066,498.779a6.122,6.122,0,0,1-2.915,2.174L0,499.6a4.84,4.84,0,0,0,2.019-1.891,7.317,7.317,0,0,0,.436-3.3V481.4H4.934v12.829c0,2.532-.2,3.555-.868,4.552Z" transform="translate(0 -428.41)"/>
</svg>

+ 15
- 0
server/sonar-web/public/images/languages/black/js.svg View File

@@ -0,0 +1,15 @@
<svg id="Unofficial_JavaScript_logo_2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.208 60.207">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}

.cls-2 {
fill: #fff;
}
</style>
</defs>
<rect id="Rectangle_5722" data-name="Rectangle 5722" class="cls-1" width="60.207" height="60.207"/>
<path id="Tracé_10175" data-name="Tracé 10175" class="cls-2" d="M190.471,305.605c1.213,1.98,2.791,3.436,5.581,3.436,2.344,0,3.842-1.172,3.842-2.791,0-1.94-1.539-2.627-4.119-3.756l-1.414-.607c-4.083-1.739-6.795-3.918-6.795-8.524,0-4.243,3.233-7.473,8.286-7.473,3.6,0,6.183,1.252,8.047,4.53l-4.406,2.829c-.97-1.739-2.016-2.425-3.641-2.425a2.462,2.462,0,0,0-2.707,2.425c0,1.7,1.051,2.384,3.479,3.436l1.414.606c4.807,2.061,7.521,4.163,7.521,8.888,0,5.094-4,7.884-9.375,7.884-5.254,0-8.649-2.5-10.31-5.786Zm-19.986.49c.889,1.577,1.7,2.91,3.641,2.91,1.859,0,3.031-.727,3.031-3.555V286.213h5.658v19.314c0,5.858-3.435,8.524-8.448,8.524a8.783,8.783,0,0,1-8.487-5.168Z" transform="translate(-150.027 -258.568)"/>
</svg>

+ 24
- 0
server/sonar-web/public/images/languages/black/kotlin.svg View File

@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.206 41.206">
<defs>
<style>
.cls-1 {
fill: #6b7076;
}

.cls-2 {
fill: #2e3032;
}

.cls-3 {
fill: #4a4d50;
}
</style>
</defs>
<g id="Groupe_7547" data-name="Groupe 7547" transform="translate(-7064.794 -10496.794)">
<g id="Kotlin-logo" transform="translate(7064.794 10496.794)">
<path id="XMLID_2_" class="cls-1" d="M0,50.572,20.672,29.9,41.206,50.572Z" transform="translate(0 -9.366)"/>
<path id="Tracé_11935" data-name="Tracé 11935" class="cls-2" d="M0,0H20.672L0,22.32Z"/>
<path id="Tracé_11936" data-name="Tracé 11936" class="cls-3" d="M20.672,0,0,21.771V41.206L20.672,20.534,41.206,0Z"/>
</g>
</g>
</svg>

+ 10
- 0
server/sonar-web/public/images/languages/black/obj-c.svg View File

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34.547 41.015">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}
</style>
</defs>
<path id="Apple_logo_black" class="cls-1" d="M50.593,35.962a22.3,22.3,0,0,1-2.205,3.965,20.143,20.143,0,0,1-2.841,3.433A5.51,5.51,0,0,1,41.9,44.967a9.15,9.15,0,0,1-3.372-.805,9.676,9.676,0,0,0-3.63-.8,10,10,0,0,0-3.733.8,10.045,10.045,0,0,1-3.226.848A5.188,5.188,0,0,1,24.2,43.359,21.151,21.151,0,0,1,21.231,39.8a24.583,24.583,0,0,1-3.142-6.241,22.851,22.851,0,0,1-1.319-7.438,13.582,13.582,0,0,1,1.784-7.106,10.463,10.463,0,0,1,3.736-3.779,10.049,10.049,0,0,1,5.05-1.425,11.891,11.891,0,0,1,3.906.909,12.557,12.557,0,0,0,3.1.911,18.539,18.539,0,0,0,3.435-1.073,11.356,11.356,0,0,1,4.67-.829,9.915,9.915,0,0,1,7.767,4.089,8.64,8.64,0,0,0-4.582,7.849A8.659,8.659,0,0,0,48.477,32.2a9.343,9.343,0,0,0,2.841,1.863q-.342.991-.724,1.9ZM42.679,4.82a8.75,8.75,0,0,1-2.243,5.739c-1.8,2.107-3.983,3.325-6.347,3.133a6.385,6.385,0,0,1-.048-.777,8.99,8.99,0,0,1,2.38-5.8,9.162,9.162,0,0,1,2.9-2.176A8.643,8.643,0,0,1,42.636,4a7.45,7.45,0,0,1,.043.82Z" transform="translate(-16.77 -3.999)"/>
</svg>

+ 12
- 0
server/sonar-web/public/images/languages/black/php.svg View File

@@ -0,0 +1,12 @@
<svg id="_4c69e694f411fe8138a5242020efdc8d" data-name="4c69e694f411fe8138a5242020efdc8d" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57.583 30.33">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}
</style>
</defs>
<path id="Tracé_10232" data-name="Tracé 10232" class="cls-1" d="M239.078,425.051h-3.032l-1.246,6.41h2.832s3.449.088,3.608-4.154A1.96,1.96,0,0,0,239.078,425.051Z" transform="translate(-221.591 -414.286)"/>
<path id="Tracé_10233" data-name="Tracé 10233" class="cls-1" d="M679.577,425.051h-3.032l-1.246,6.41h2.832s3.449.088,3.608-4.154A1.958,1.958,0,0,0,679.577,425.051Z" transform="translate(-636.208 -414.286)"/>
<path id="Tracé_10234" data-name="Tracé 10234" class="cls-1" d="M38.792,241.9C22.892,241.9,10,248.692,10,257.065s12.892,15.165,28.792,15.165,28.792-6.787,28.792-15.165S54.692,241.9,38.792,241.9ZM25.9,261.455l-3.067-.023-.864,4.031H18.684L21.646,250.3s4.207.053,6.969,0,5.476,1.9,4.207,6.316C31.294,261.889,25.9,261.455,25.9,261.455Zm14.766,0s.787-3.525,1.134-5.97c.141-1,.764-2.715-.881-2.715-1.375-.006-3.431-.012-3.431-.012l-1.733,8.7H32.5l3.032-15.236h3.326l-.834,4.072h3.431s4.548-.358,4.007,3.4-1.551,7.762-1.551,7.762ZM58.7,256.619c-1.516,5.271-6.916,4.836-6.916,4.836l-3.067-.023-.864,4.031H44.568L47.529,250.3s4.207.053,6.969,0S59.968,252.194,58.7,256.619Z" transform="translate(-10 -241.9)"/>
</svg>

+ 10
- 0
server/sonar-web/public/images/languages/black/pl-sql.svg View File

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 65.578 17.801">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}
</style>
</defs>
<path id="Tracé_11994" data-name="Tracé 11994" class="cls-1" d="M21.447,13.74V19H18.37V4.07h5.824a6.738,6.738,0,0,1,2.958.615,4.534,4.534,0,0,1,1.964,1.748A4.875,4.875,0,0,1,29.8,9.013a4.287,4.287,0,0,1-1.5,3.461,6.257,6.257,0,0,1-4.158,1.266Zm0-2.492h2.748a2.7,2.7,0,0,0,1.861-.574A2.088,2.088,0,0,0,26.7,9.033a2.463,2.463,0,0,0-.646-1.774,2.413,2.413,0,0,0-1.784-.7h-2.82Zm12.705,5.281h6.532V19H31.076V4.07h3.076Zm8.194,3.753h-2.2l5.5-16.211h2.2Zm14.008-5.2a1.579,1.579,0,0,0-.615-1.338,8.07,8.07,0,0,0-2.215-.984,15.7,15.7,0,0,1-2.533-1.02,4.138,4.138,0,0,1-2.543-3.7,3.605,3.605,0,0,1,.682-2.158A4.448,4.448,0,0,1,51.088,4.4a7.372,7.372,0,0,1,2.866-.533,6.71,6.71,0,0,1,2.851.579A4.539,4.539,0,0,1,58.748,6.08a4.28,4.28,0,0,1,.692,2.4H56.364a2.013,2.013,0,0,0-.646-1.594A2.655,2.655,0,0,0,53.9,6.316a2.837,2.837,0,0,0-1.753.477,1.5,1.5,0,0,0-.625,1.256,1.44,1.44,0,0,0,.733,1.22,8.283,8.283,0,0,0,2.158.923A9.326,9.326,0,0,1,58.24,12.15a3.9,3.9,0,0,1,1.2,2.912,3.593,3.593,0,0,1-1.466,3.04,6.419,6.419,0,0,1-3.948,1.1,7.623,7.623,0,0,1-3.138-.631,4.965,4.965,0,0,1-2.158-1.728,4.425,4.425,0,0,1-.743-2.543h3.086q0,2.471,2.953,2.471a2.873,2.873,0,0,0,1.712-.446A1.451,1.451,0,0,0,56.353,15.083Zm16.571-3.209a9,9,0,0,1-.677,3.635,6.24,6.24,0,0,1-1.876,2.476l2.481,1.948-1.958,1.733-3.179-2.553a6.728,6.728,0,0,1-1.128.092,6.211,6.211,0,0,1-3.312-.892,5.926,5.926,0,0,1-2.256-2.548,8.755,8.755,0,0,1-.81-3.809v-.738A8.965,8.965,0,0,1,61,7.336,5.917,5.917,0,0,1,63.25,4.762a6.581,6.581,0,0,1,6.634,0A5.917,5.917,0,0,1,72.13,7.336a8.94,8.94,0,0,1,.795,3.871ZM69.807,11.2a6.283,6.283,0,0,0-.841-3.568,2.97,2.97,0,0,0-4.789-.015,6.211,6.211,0,0,0-.851,3.532v.728a6.361,6.361,0,0,0,.841,3.548,2.944,2.944,0,0,0,4.8.046,6.324,6.324,0,0,0,.841-3.543Zm7.609,5.332h6.532V19H74.34V4.07h3.076Z" transform="translate(-18.371 -3.865)"/>
</svg>

+ 29
- 0
server/sonar-web/public/images/languages/black/python.svg View File

@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42.597 51.604">
<defs>
<style>
.cls-1 {
fill: #4a4d50;
}

.cls-2 {
fill: #2e3032;
}

.cls-3 {
opacity: 0.444;
fill: url(#radial-gradient);
}
</style>
<radialGradient id="radial-gradient" cx="58.835" cy="-130.697" r="12.486" gradientTransform="translate(201.505 -205.779) rotate(-90) scale(0.194 1.037)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#b8b8b8" stop-opacity="0.498"/>
<stop offset="1" stop-color="#7f7f7f" stop-opacity="0"/>
</radialGradient>
</defs>
<g id="Groupe_7544" data-name="Groupe 7544" transform="translate(-7321.846 -10384.27)">
<g id="python-logo-generic" transform="translate(7321.846 10384.27)">
<path id="path1948" class="cls-1" d="M26.636,6.4a29.338,29.338,0,0,0-4.91.419c-4.348.768-5.137,2.376-5.137,5.341v3.916H26.864v1.305H12.733a6.415,6.415,0,0,0-6.419,5.209,19.2,19.2,0,0,0,0,10.442c.73,3.042,2.475,5.209,5.461,5.209h3.533V33.545a6.529,6.529,0,0,1,6.419-6.383H31.989a5.176,5.176,0,0,0,5.137-5.221V12.157c0-2.784-2.349-4.876-5.137-5.341A32.047,32.047,0,0,0,26.636,6.4ZM21.08,9.547a1.958,1.958,0,1,1-1.928,1.964A1.949,1.949,0,0,1,21.08,9.547Z" transform="translate(-5.591 -6.397)"/>
<path id="path1950" class="cls-2" d="M56.11,35.054v4.562a6.59,6.59,0,0,1-6.419,6.514H39.429a5.241,5.241,0,0,0-5.137,5.221v9.784c0,2.784,2.421,4.422,5.137,5.221a17.19,17.19,0,0,0,10.263,0c2.587-.749,5.137-2.256,5.137-5.221V57.22H44.566V55.915h15.4c2.986,0,4.1-2.083,5.137-5.209,1.073-3.218,1.027-6.314,0-10.442-.738-2.973-2.147-5.209-5.137-5.209ZM50.338,59.831a1.958,1.958,0,1,1-1.928,1.952A1.939,1.939,0,0,1,50.338,59.831Z" transform="translate(-23.294 -24.073)"/>
<path id="path1894" class="cls-3" d="M36.765,102.791c0,1.475-6.165,2.67-13.769,2.67s-13.769-1.2-13.769-2.67,6.165-2.67,13.769-2.67S36.765,101.316,36.765,102.791Z" transform="translate(-1.607 -53.856)"/>
</g>
</g>
</svg>

+ 51
- 0
server/sonar-web/public/images/languages/black/ruby.svg View File

@@ -0,0 +1,51 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42.118 42.001">
<defs>
<style>
.cls-1 {
fill: #8a8c8f;
}

.cls-1, .cls-2, .cls-3, .cls-4, .cls-5 {
fill-rule: evenodd;
}

.cls-2 {
fill: #2d3032;
}

.cls-3 {
fill: #fff;
}

.cls-4 {
fill: #434447;
}

.cls-5 {
fill: #636567;
}
</style>
</defs>
<g id="Groupe_7548" data-name="Groupe 7548" transform="translate(-7202.253 -10496)">
<g id="Groupe_7541" data-name="Groupe 7541" transform="translate(6622.253 8582)">
<path id="polygon3282" class="cls-1" d="M64.427,59.18,40.38,73.459l31.136-2.113,2.4-31.4Z" transform="translate(548.204 1882.542)"/>
<path id="polygon3293" class="cls-2" d="M150.175,119.121,147.5,100.65l-7.29,9.626Z" transform="translate(469.596 1834.746)"/>
<path id="polygon3304" class="cls-2" d="M71.989,181.839,52.383,180.3,40.87,183.933Z" transform="translate(547.818 1772.028)"/>
<path id="polygon3319" class="cls-1" d="M19.22,137.975l4.9-16.045-10.778,2.3Z" transform="translate(569.496 1817.99)"/>
<path id="polygon3334" class="cls-1" d="M75.734,80.792,71.227,63.14,58.33,75.229Z" transform="translate(534.07 1864.282)"/>
<path id="polygon3349" class="cls-1" d="M135.586,27.427,123.395,17.47,120,28.445Z" transform="translate(485.509 1900.244)"/>
<path id="polygon3362" class="cls-1" d="M123.184.573l-7.17,3.962L111.49.52Z" transform="translate(492.21 1913.59)"/>
<path id="polygon3375" class="cls-1" d="M0,113.624l3-5.478L.574,101.62Z" transform="translate(580 1833.982)"/>
<path id="path3377" class="cls-3" d="M1.94,21.4,4.385,28.33l10.623-2.383L27.135,14.676,30.557,3.805,25.168,0,16.006,3.429c-2.887,2.685-8.488,8-8.69,8.1S3.617,18.241,1.94,21.4Z" transform="translate(578.473 1914)"/>
<path id="path3400" class="cls-4" d="M14.393,12.858c6.256-6.2,14.321-9.868,17.417-6.745s-.187,10.712-6.443,16.913S11.145,33.093,8.052,29.97,8.137,19.059,14.393,12.858Z" transform="translate(574.603 1910.081)"/>
<path id="path3413" class="cls-5" d="M41,137.756l4.86-16.1L62,126.845C56.163,132.317,49.673,136.942,41,137.756Z" transform="translate(547.716 1818.202)"/>
<path id="path3424" class="cls-4" d="M120.56,65.039,124.7,81.451C129.578,76.325,133.952,70.815,136.1,64Z" transform="translate(485.068 1863.605)"/>
<path id="path3435" class="cls-5" d="M148.273,14.326c1.658-5,2.041-12.183-5.778-13.516l-6.416,3.544Z" transform="translate(472.848 1913.362)"/>
<path id="path3437" class="cls-5" d="M0,138.348c.23,8.259,6.188,8.382,8.726,8.454L2.863,133.11Z" transform="translate(580 1809.186)"/>
<path id="path3448" class="cls-5" d="M120.669,65.207c3.746,2.3,11.295,6.926,11.448,7.011.238.134,3.255-5.087,3.939-8.038Z" transform="translate(484.983 1863.463)"/>
<path id="path3459" class="cls-4" d="M63.83,121.66l6.5,12.534a42.008,42.008,0,0,0,9.6-7.34Z" transform="translate(529.739 1818.202)"/>
<path id="path3472" class="cls-4" d="M9.94,133.18,9.02,144.14c1.737,2.372,4.126,2.579,6.632,2.394C13.839,142.021,10.217,133,9.94,133.18Z" transform="translate(572.898 1809.133)"/>
<path id="path3485" class="cls-4" d="M135.9,4.35l12.906,1.811c-.689-2.919-2.8-4.8-6.409-5.391Z" transform="translate(472.989 1913.394)"/>
</g>
</g>
</svg>

+ 24
- 0
server/sonar-web/public/images/languages/black/swift.svg View File

@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 39.267 39.239">
<defs>
<style>
.cls-1 {
fill: #4a4d50;
}

.cls-2 {
fill: #2e3032;
}

.cls-3 {
fill: #fff;
}
</style>
</defs>
<g id="Groupe_7550" data-name="Groupe 7550" transform="translate(-7321.753 -10620)">
<g id="Groupe_6112" data-name="Groupe 6112" transform="translate(7321.753 10620)">
<path id="Tracé_10237" data-name="Tracé 10237" class="cls-1" d="M9.691.1H31.545a8.693,8.693,0,0,1,8.691,8.691V30.644a8.693,8.693,0,0,1-8.691,8.691H9.691A8.693,8.693,0,0,1,1,30.644V8.791A8.693,8.693,0,0,1,9.691.1Z" transform="translate(-0.969 -0.097)"/>
<path id="Tracé_10238" data-name="Tracé 10238" class="cls-2" d="M33.149,32.1s-1.523-2.539-4.064-2.539c-2.454,0-3.9,2.539-8.848,2.539-10.961,0-16.17-9.113-16.21-9.185h0L0,18.583V8.691A8.693,8.693,0,0,1,8.691,0h7.757l5.737,5.818h0c12.956,8.807,8.766,18.5,8.766,18.5S34.631,28.465,33.149,32.1Z"/>
<path id="Tracé_10239" data-name="Tracé 10239" class="cls-3" d="M147.961,186.2c12.953,8.8,8.76,18.5,8.76,18.5s3.683,4.149,2.2,7.788c0,0-1.523-2.539-4.064-2.539-2.454,0-3.9,2.539-8.848,2.539-11,0-16.21-9.185-16.21-9.185,9.911,6.531,16.676,1.9,16.676,1.9-4.471-2.6-13.969-14.985-13.969-14.985,8.279,7.041,11.852,8.888,11.852,8.888-2.138-1.76-8.129-10.37-8.129-10.37,4.793,4.849,14.306,11.6,14.306,11.6C153.257,192.878,147.961,186.2,147.961,186.2Z" transform="translate(-125.742 -180.379)"/>
</g>
</g>
</svg>

+ 10
- 0
server/sonar-web/public/images/languages/black/t-sql.svg View File

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52.923 17.801">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}
</style>
</defs>
<path id="Tracé_11995" data-name="Tracé 11995" class="cls-1" d="M19.226,6.562H14.653V19H11.577V6.562H7.065V4.07H19.226ZM22.919,13.8H17.146V11.412h5.773Zm9.475,1.282a1.579,1.579,0,0,0-.615-1.338,8.07,8.07,0,0,0-2.215-.984,15.7,15.7,0,0,1-2.533-1.02,4.138,4.138,0,0,1-2.543-3.7A3.605,3.605,0,0,1,25.17,5.88,4.448,4.448,0,0,1,27.129,4.4a7.372,7.372,0,0,1,2.866-.533,6.71,6.71,0,0,1,2.851.579A4.539,4.539,0,0,1,34.788,6.08a4.28,4.28,0,0,1,.692,2.4H32.4a2.013,2.013,0,0,0-.646-1.594,2.655,2.655,0,0,0-1.815-.569,2.837,2.837,0,0,0-1.753.477,1.5,1.5,0,0,0-.625,1.256,1.44,1.44,0,0,0,.733,1.22,8.283,8.283,0,0,0,2.158.923,9.326,9.326,0,0,1,3.825,1.958,3.9,3.9,0,0,1,1.2,2.912,3.593,3.593,0,0,1-1.466,3.04,6.419,6.419,0,0,1-3.948,1.1,7.623,7.623,0,0,1-3.138-.631,4.965,4.965,0,0,1-2.158-1.728,4.425,4.425,0,0,1-.743-2.543h3.086q0,2.471,2.953,2.471a2.873,2.873,0,0,0,1.712-.446A1.451,1.451,0,0,0,32.394,15.083Zm16.571-3.209a9,9,0,0,1-.677,3.635,6.24,6.24,0,0,1-1.876,2.476l2.481,1.948-1.958,1.733-3.179-2.553a6.728,6.728,0,0,1-1.128.092,6.211,6.211,0,0,1-3.312-.892,5.926,5.926,0,0,1-2.256-2.548,8.755,8.755,0,0,1-.81-3.809v-.738a8.965,8.965,0,0,1,.795-3.881,5.917,5.917,0,0,1,2.246-2.574,6.581,6.581,0,0,1,6.634,0A5.917,5.917,0,0,1,48.17,7.336a8.94,8.94,0,0,1,.795,3.871ZM45.848,11.2a6.283,6.283,0,0,0-.841-3.568,2.97,2.97,0,0,0-4.789-.015,6.211,6.211,0,0,0-.851,3.532v.728a6.361,6.361,0,0,0,.841,3.548,2.944,2.944,0,0,0,4.8.046,6.324,6.324,0,0,0,.841-3.543Zm7.609,5.332h6.532V19H50.381V4.07h3.076Z" transform="translate(-7.065 -3.865)"/>
</svg>

+ 13
- 0
server/sonar-web/public/images/languages/black/ts.svg View File

@@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.671 24.133">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}
</style>
</defs>
<g id="Groupe_7542" data-name="Groupe 7542" transform="translate(-7035.248 -10407.063)">
<path id="Tracé_10235" data-name="Tracé 10235" class="cls-1" d="M-52.485,419.507h-5.161v15.949h-2.092V419.507H-64.9V417.6h12.369v1.906Z" transform="translate(7100.148 9989.741)"/>
<path id="Tracé_10236" data-name="Tracé 10236" class="cls-1" d="M-30.757,422.394l-5.859,14.787c-1.069,2.65-2.511,3.952-4.417,3.952a5.723,5.723,0,0,1-1.348-.14V439.18a3.958,3.958,0,0,0,1.209.232,2.5,2.5,0,0,0,2.325-1.86l1.023-2.418L-42.8,422.394h2.278l3.441,9.811q.07.209.279.976h.093c.047-.186.139-.511.233-.93l3.627-9.858Zm3.441,10.927h-.047v7.719h-2.046v-18.6h2.046v2.232h.047a4.895,4.895,0,0,1,4.417-2.557,4.672,4.672,0,0,1,3.859,1.72,7.063,7.063,0,0,1,1.395,4.6,7.893,7.893,0,0,1-1.534,5.115,5.249,5.249,0,0,1-4.278,1.906A4.307,4.307,0,0,1-27.316,433.321Zm-.047-5.161v1.767a3.756,3.756,0,0,0,1.023,2.7,3.377,3.377,0,0,0,2.6,1.116,3.431,3.431,0,0,0,2.929-1.442,6.33,6.33,0,0,0,1.069-3.952A5.218,5.218,0,0,0-20.713,425a3.271,3.271,0,0,0-2.65-1.209,3.636,3.636,0,0,0-2.883,1.255A4.492,4.492,0,0,0-27.362,428.16Zm22.32,1.116h-9.021a4.806,4.806,0,0,0,1.162,3.3,3.892,3.892,0,0,0,3.022,1.162A6.1,6.1,0,0,0-5.926,432.3V434.2a7.256,7.256,0,0,1-4.464,1.209,5.307,5.307,0,0,1-4.231-1.72,7.147,7.147,0,0,1-1.534-4.882,6.954,6.954,0,0,1,1.674-4.836,5.346,5.346,0,0,1,4.185-1.86,4.754,4.754,0,0,1,3.859,1.627,6.62,6.62,0,0,1,1.348,4.51v1.023Zm-2.092-1.721a4.116,4.116,0,0,0-.837-2.743,2.92,2.92,0,0,0-2.325-.976,3.3,3.3,0,0,0-2.464,1.023,5.034,5.034,0,0,0-1.255,2.7Zm3.208,6.975v-1.395a7,7,0,0,0,3.906,1.209,4.751,4.751,0,0,0,3.162-.883,2.843,2.843,0,0,0,1.069-2.418,3.044,3.044,0,0,0-.744-2.185A13,13,0,0,0,.3,426.625a11.418,11.418,0,0,1-3.441-2.65,4.4,4.4,0,0,1-.744-2.464A4.2,4.2,0,0,1-2.392,418.3,5.589,5.589,0,0,1,1.514,417a9.714,9.714,0,0,1,3.208.558v1.3a8.311,8.311,0,0,0-3.348-.7,4.292,4.292,0,0,0-2.883.93,2.98,2.98,0,0,0-1.069,2.325,3.044,3.044,0,0,0,.744,2.185,13.229,13.229,0,0,0,3.162,2.185A10.95,10.95,0,0,1,4.676,428.3a4.118,4.118,0,0,1,.837,2.557A4.3,4.3,0,0,1,4.071,434.2a5.648,5.648,0,0,1-4.045,1.3,10,10,0,0,1-2.139-.279,12.45,12.45,0,0,1-1.813-.7Zm20.227.047a6.577,6.577,0,0,1-3.394.883,5.44,5.44,0,0,1-4.185-1.767A6.76,6.76,0,0,1,7.14,429a6.973,6.973,0,0,1,1.813-4.975,6.009,6.009,0,0,1,4.6-1.953,6.77,6.77,0,0,1,2.836.6v1.3a5.692,5.692,0,0,0-3.022-.837,4.6,4.6,0,0,0-3.627,1.628,6.148,6.148,0,0,0-1.395,4.185,6.056,6.056,0,0,0,1.255,4,4.069,4.069,0,0,0,3.348,1.488,5.6,5.6,0,0,0,3.348-1.023v1.162ZM24.019,423.6a2.216,2.216,0,0,0-1.348-.419,2.9,2.9,0,0,0-2.511,1.534,7.862,7.862,0,0,0-1.023,4.417v6H18.021V422.394h1.116v2.836h.046a4.532,4.532,0,0,1,1.395-2.278,3.172,3.172,0,0,1,2.185-.79,3.55,3.55,0,0,1,1.255.233V423.6Zm1.953-4.417a.918.918,0,0,1-.651-.279.946.946,0,0,1-.279-.7.78.78,0,0,1,.279-.651.87.87,0,0,1,.651-.233,1.253,1.253,0,0,1,.7.233.844.844,0,0,1,.279.651.946.946,0,0,1-.279.7A1.025,1.025,0,0,1,25.972,419.185Zm-.558,16V422.44h1.162v12.741Zm5.161-2.279h-.046v8.137H29.367v-18.6h1.162v2.651h.046a5.079,5.079,0,0,1,4.743-2.93,4.678,4.678,0,0,1,3.813,1.674,6.916,6.916,0,0,1,1.348,4.557,7.867,7.867,0,0,1-1.581,5.161,5.008,5.008,0,0,1-4.138,1.953,4.591,4.591,0,0,1-4.185-2.6Zm-.046-4.743v1.627a4.9,4.9,0,0,0,1.209,3.3,3.962,3.962,0,0,0,3.162,1.395,3.71,3.71,0,0,0,3.162-1.674,7.523,7.523,0,0,0,1.209-4.417,6,6,0,0,0-1.116-3.813,3.659,3.659,0,0,0-2.976-1.395,4.2,4.2,0,0,0-3.441,1.488,5.388,5.388,0,0,0-1.209,3.487ZM47.594,435a4.028,4.028,0,0,1-1.674.418c-1.906,0-2.836-1.116-2.836-3.394v-8.556H40.805v-1.07h2.278v-3.3c.186-.047.372-.14.558-.186s.372-.14.558-.186v3.72h3.348v1.069H44.2v8.416a3.3,3.3,0,0,0,.418,1.906,1.654,1.654,0,0,0,1.395.6,3.043,3.043,0,0,0,1.534-.465V435h.047Z" transform="translate(7088.325 9990.063)"/>
</g>
</svg>

+ 23
- 0
server/sonar-web/public/images/languages/black/vb.svg View File

@@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 61.038 61.037">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}

.cls-2 {
fill: #4a4d50;
}

.cls-3 {
fill: #fff;
}
</style>
</defs>
<g id="Groupe_7551" data-name="Groupe 7551" transform="translate(-7054.816 -10716.932)">
<path id="Tracé_11982" data-name="Tracé 11982" class="cls-1" d="M30.1,0A30.1,30.1,0,1,1,0,30.1,30.1,30.1,0,0,1,30.1,0Z" transform="translate(7055.655 10716.932)"/>
<path id="Tracé_10244" data-name="Tracé 10244" class="cls-2" d="M9.184,9a30.1,30.1,0,1,0,42.5,42.5Z" transform="translate(7055.708 10716.397)"/>
<path id="Tracé_10245" data-name="Tracé 10245" class="cls-3" d="M32,19.4,23.262,43.1H20.167l-8.6-23.7h3.095l6.584,18.812a11.165,11.165,0,0,1,.48,2.1h.066a10.346,10.346,0,0,1,.527-2.145l6.7-18.812Z" transform="translate(7054.968 10715.782)"/>
<path id="Tracé_10246" data-name="Tracé 10246" class="cls-3" d="M36.92,43.1V19.4h6.744a7.374,7.374,0,0,1,4.872,1.5,4.863,4.863,0,0,1,1.806,3.922,5.766,5.766,0,0,1-1.119,3.5,5.888,5.888,0,0,1-3.01,2.116v.066a6.029,6.029,0,0,1,3.838,1.806,5.568,5.568,0,0,1,1.439,3.979,6.2,6.2,0,0,1-2.182,4.929,8.127,8.127,0,0,1-5.5,1.881Zm2.822-21.2v7.656h2.822a5.4,5.4,0,0,0,3.565-1.129,3.828,3.828,0,0,0,1.307-3.1q0-3.452-4.543-3.452Zm0,10.149v8.531H43.5a5.644,5.644,0,0,0,3.762-1.157,3.96,3.96,0,0,0,1.345-3.17q0-4.2-5.719-4.2Z" transform="translate(7053.462 10715.78)"/>
</g>
</svg>

+ 10
- 0
server/sonar-web/public/images/languages/black/xml.svg View File

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 67.044 16.212">
<defs>
<style>
.cls-1 {
fill: #2e3032;
}
</style>
</defs>
<path id="Tracé_11996" data-name="Tracé 11996" class="cls-1" d="M20.1,12.663l5.845,2.061V17.6l-8.829-3.743v-2.42L25.948,7.69v2.871ZM33.086,9.218l2.8-5.147h3.538l-4.348,7.4L39.535,19H35.957l-2.871-5.229L30.214,19H26.636l4.46-7.526-4.348-7.4h3.538ZM44.263,4.07,48.1,14.9,51.913,4.07h4.04V19H52.866V14.919l.308-7.044L49.144,19H47.032L43.012,7.885l.308,7.034V19H40.244V4.07ZM60.875,16.529h6.532V19H57.8V4.07h3.076Zm8.194,3.753h-2.2L72.36,4.07h2.2ZM81.19,12.632l-5.958-2.082V7.7l8.931,3.743v2.41l-8.931,3.753V14.745Z" transform="translate(-17.12 -4.07)"/>
</svg>

+ 1
- 0
server/sonar-web/public/images/languages/c-c-plus-plus.svg View File

@@ -0,0 +1 @@
<svg id="c" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 53.435 60.056"><defs><style>.cls-2{fill:#e7e8ea}.cls-4{fill:#2d3032}</style></defs><path id="Tracé_10199" data-name="Tracé 10199" d="M53.432 17.924a5.3 5.3 0 0 0-.653-2.668 5.1 5.1 0 0 0-1.933-1.883Q40.175 7.22 29.5 1.076a5.24 5.24 0 0 0-5.679.056C20.99 2.8 6.814 10.924 2.589 13.37A4.934 4.934 0 0 0 0 17.922v24.746a5.326 5.326 0 0 0 .625 2.617 5.084 5.084 0 0 0 1.962 1.935c4.224 2.447 18.4 10.568 21.233 12.238a5.241 5.241 0 0 0 5.68.056q10.667-6.159 21.347-12.3a5.086 5.086 0 0 0 1.962-1.934 5.333 5.333 0 0 0 .624-2.617V17.921" transform="translate(0 -.268)" fill="#fff"/><path id="Tracé_10200" data-name="Tracé 10200" class="cls-2" d="M29.162 143.509l-26.174 15.07a5.084 5.084 0 0 0 1.962 1.935c4.224 2.447 18.4 10.568 21.233 12.238a5.241 5.241 0 0 0 5.68.056q10.667-6.159 21.347-12.3a5.086 5.086 0 0 0 1.962-1.934l-26.01-15.065" transform="translate(-2.363 -113.562)"/><path id="Tracé_10201" data-name="Tracé 10201" class="cls-2" d="M91.1 147.973a8.834 8.834 0 0 0 15.37-.051l-7.618-4.413-7.752 4.464" transform="translate(-72.054 -113.562)"/><path id="Tracé_10202" data-name="Tracé 10202" d="M154.815 74.627a5.3 5.3 0 0 0-.653-2.668l-25.98 14.959 26.011 15.068a5.333 5.333 0 0 0 .624-2.617V74.627" transform="translate(-101.383 -56.971)" fill="#cfd3d7"/><path id="Tracé_10203" data-name="Tracé 10203" class="cls-4" d="M197.6 133.283h-2.03v2.033h-2.033v-2.033H191.5v-2.032h2.032v-2.033h2.033v2.033h2.035v2.032m-7.417 0h-2.032v2.033h-2.033v-2.033h-2.033v-2.032h2.033v-2.033h2.033v2.033h2.032v2.032" transform="translate(-145.601 -102.259)"/><path id="Tracé_10204" data-name="Tracé 10204" class="cls-4" d="M68.36 81.1a8.836 8.836 0 1 1-.06-8.77l7.723-4.447a17.745 17.745 0 1 0 .046 17.681L68.36 81.1" transform="translate(-33.944 -46.736)"/></svg>

+ 0
- 1
server/sonar-web/public/images/languages/c-plus.svg View File

@@ -1 +0,0 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#464a4d;}.cls-2{fill:#2d3032;}.cls-3{fill:#3a3e40;}.cls-4{fill:#fff;}</style></defs><title>c-plus</title><g id="c"><path id="Tracé_10199" data-name="Tracé 10199" class="cls-1" d="M52.86,19.82a4.61,4.61,0,0,0-.55-2.24A4.27,4.27,0,0,0,50.68,16q-9-5.17-17.92-10.32a4.41,4.41,0,0,0-4.76,0C25.62,7.13,13.72,14,10.17,16A4.15,4.15,0,0,0,8,19.82V40.59a4.41,4.41,0,0,0,.52,2.2,4.24,4.24,0,0,0,1.65,1.63c3.55,2,15.45,8.87,17.83,10.27a4.41,4.41,0,0,0,4.77,0q9-5.17,17.92-10.32a4.32,4.32,0,0,0,1.64-1.62,4.58,4.58,0,0,0,.53-2.2V19.81"/><path id="Tracé_10200" data-name="Tracé 10200" class="cls-2" d="M30.5,30.14l-22,12.65a4.24,4.24,0,0,0,1.65,1.63c3.55,2,15.45,8.87,17.83,10.27a4.41,4.41,0,0,0,4.77.05L50.69,44.41a4.25,4.25,0,0,0,1.64-1.62L30.5,30.14"/><path id="Tracé_10201" data-name="Tracé 10201" class="cls-2" d="M24,33.89a7.42,7.42,0,0,0,10.12,2.76,7.54,7.54,0,0,0,2.78-2.8l-6.4-3.7L24,33.89"/><path id="Tracé_10202" data-name="Tracé 10202" class="cls-3" d="M52.86,19.82a4.61,4.61,0,0,0-.55-2.24L30.5,30.14,52.33,42.79a4.53,4.53,0,0,0,.53-2.2V19.82"/><path id="Tracé_10203" data-name="Tracé 10203" class="cls-4" d="M51.65,31H50v1.71H48.24V31h-1.7v-1.7h1.7V27.63H50v1.71h1.7V31m-6.22,0H43.72v1.71H42V31H40.31v-1.7H42V27.63h1.7v1.71h1.71V31"/><path id="Tracé_10204" data-name="Tracé 10204" class="cls-4" d="M36.89,33.85a7.43,7.43,0,1,1,0-7.36l6.49-3.74a14.9,14.9,0,1,0,0,14.84l-6.48-3.75"/></g></svg>

+ 0
- 1
server/sonar-web/public/images/languages/c-sharp.svg View File

@@ -1 +0,0 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#2d3032;}.cls-2{fill:#464a4d;}.cls-3{fill:#fff;}</style></defs><title>c-sharp</title><g id="csharp"><path id="Tracé_10198" data-name="Tracé 10198" class="cls-1" d="M30.55,5A24.86,24.86,0,1,1,5.69,29.86,24.86,24.86,0,0,1,30.55,5Z"/><path id="Tracé_10195" data-name="Tracé 10195" class="cls-2" d="M13.32,12a24.87,24.87,0,1,0,35.1,35.1Z"/><path id="Tracé_10196" data-name="Tracé 10196" class="cls-3" d="M29.34,38.84A11.64,11.64,0,0,1,23.9,40a8.79,8.79,0,0,1-6.69-2.69,9.91,9.91,0,0,1-2.51-7.06,10.44,10.44,0,0,1,2.83-7.6,9.62,9.62,0,0,1,7.19-2.88,11.56,11.56,0,0,1,4.62.78V23a9.31,9.31,0,0,0-4.67-1.17,7.16,7.16,0,0,0-5.44,2.24,8.57,8.57,0,0,0-2.1,6,8.14,8.14,0,0,0,2,5.7,6.71,6.71,0,0,0,5.15,2.12,9.65,9.65,0,0,0,5.1-1.32Z"/><path id="Tracé_10197" data-name="Tracé 10197" class="cls-3" d="M46.68,25.56,46.37,27H42.8l-.86,4.1h3.84l-.36,1.45H41.66L40.46,38H38.74l1.17-5.44H36.49L35.34,38H33.67l1.15-5.44h-3.6l.27-1.45h3.62L35.94,27H32.15l.28-1.45h3.79l1.15-5.49H39.1L38,25.57h3.44l1.18-5.5h1.68l-1.15,5.5ZM41.11,27H37.67l-.9,4.1h3.47Z"/></g></svg>

+ 1
- 0
server/sonar-web/public/images/languages/csharp.svg View File

@@ -0,0 +1 @@
<svg id="csharp" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.056 60.056"><defs><style>.cls-3{fill:#2d3032}</style></defs><path id="Tracé_10198" data-name="Tracé 10198" d="M29.615 0A29.615 29.615 0 1 1 0 29.615 29.615 29.615 0 0 1 29.615 0z" transform="translate(.825)" fill="#cfd3d7"/><path id="Tracé_10195" data-name="Tracé 10195" d="M9.022 9a29.615 29.615 0 1 0 41.813 41.813z" transform="translate(.892 -.671)" fill="#fff"/><path id="Tracé_10196" data-name="Tracé 10196" class="cls-3" d="M29.025 41.72a13.679 13.679 0 0 1-6.478 1.37 10.393 10.393 0 0 1-7.968-3.2 11.827 11.827 0 0 1-2.989-8.413 12.392 12.392 0 0 1 3.369-9.042A11.43 11.43 0 0 1 23.528 19a13.7 13.7 0 0 1 5.5.925v2.915a11.106 11.106 0 0 0-5.553-1.4 8.487 8.487 0 0 0-6.478 2.684A10.115 10.115 0 0 0 14.5 31.3a9.625 9.625 0 0 0 2.332 6.793 7.941 7.941 0 0 0 6.127 2.527 11.5 11.5 0 0 0 6.08-1.564z" transform="translate(-.037 -1.415)"/><path id="Tracé_10197" data-name="Tracé 10197" class="cls-3" d="M51.276 25.934l-.37 1.721h-4.258l-1.018 4.887h4.57l-.435 1.721h-4.477l-1.434 6.478h-2.046l1.4-6.478h-4.075l-1.37 6.478h-2l1.37-6.478H32.84l.324-1.721h4.313l.99-4.877H33.96l.342-1.721h4.507l1.37-6.543h2.064l-1.37 6.543h4.1l1.4-6.543h2L47 25.943zm-6.636 1.721h-4.109l-1.064 4.886h4.128z" transform="translate(-1.622 -1.446)"/></svg>

BIN
server/sonar-web/public/images/languages/flex.png View File


+ 1
- 0
server/sonar-web/public/images/languages/flex.svg
File diff suppressed because it is too large
View File


+ 1
- 1
server/sonar-web/public/images/languages/go.svg
File diff suppressed because it is too large
View File


+ 1
- 1
server/sonar-web/public/images/languages/html5.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#2d3032;}.cls-2{fill:#464a4d;}.cls-3{fill:#ebebeb;}.cls-4{fill:#fff;}</style></defs><title>html5</title><g id="HTML5_logo_and_wordmark" data-name="HTML5 logo and wordmark"><path id="Tracé_10304" data-name="Tracé 10304" d="M14.37,5h2.29V7.27h2.12V5h2.29v6.88H18.78V9.59h-2.1v2.29H14.37M24.1,7.29h-2V5h6.35V7.29h-2v4.59H24.1M29.44,5h2.4l1.47,2.42L34.79,5h2.4v6.88H34.9V8.47l-1.61,2.47-1.6-2.47v3.41H29.44M38.33,5h2.29V9.61h3.26v2.27H38.33"/><path id="Tracé_10305" data-name="Tracé 10305" class="cls-1" d="M14.29,52,11,15H47.18L43.89,52l-14.83,4.1"/><path id="Tracé_10306" data-name="Tracé 10306" class="cls-2" d="M29.09,52.91V18.06H43.88L41.05,49.57"/><path id="Tracé_10307" data-name="Tracé 10307" class="cls-3" d="M17.72,22.58H29.09v4.53h-6.4l.42,4.63h6v4.52H19m.2,2.27H23.7L24,42.15l5.07,1.36v4.73l-9.29-2.6"/><path id="Tracé_10308" data-name="Tracé 10308" class="cls-4" d="M40.42,22.58H29.07v4.53H40m-.41,4.63H29.07v4.53h5.58l-.53,5.88-5,1.36v4.71l9.27-2.58"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40.058 56.531"><defs><style>.cls-1{fill:#fff}.cls-3{fill:#2d3032}</style></defs><g id="HTML5_logo_and_wordmark"><path id="Tracé_10304" data-name="Tracé 10304" class="cls-1" d="M108.4 0h2.539v2.517h2.341V0h2.539v7.618h-2.539V5.079h-2.319v2.539H108.4m10.776-5.079h-2.241V0h7.033v2.539h-2.252v5.079h-2.539M125.083 0h2.661l1.634 2.683L131.012 0h2.661v7.618h-2.539V3.842l-1.778 2.738-1.778-2.738v3.776h-2.5M134.932 0h2.539v5.1h3.6v2.518h-6.139" transform="translate(-104.668)"/><path id="Tracé_10305" data-name="Tracé 10305" class="cls-1" d="M78.244 141.5L74.6 100.6h40.057l-3.644 40.874-16.413 4.549" transform="translate(-74.6 -89.493)"/><path id="Tracé_10306" data-name="Tracé 10306" d="M256 169.589V131h16.374l-3.125 34.89" transform="translate(-235.971 -116.536)" fill="#cfd3d7"/><path id="Tracé_10307" data-name="Tracé 10307" class="cls-3" d="M142 176.3h12.587v5.013H147.5l.464 5.134h6.625v5h-11.22m.221 2.517h5.035l.353 4.008 5.609 1.5v5.234l-10.29-2.871" transform="translate(-134.558 -156.835)"/><path id="Tracé_10308" data-name="Tracé 10308" class="cls-3" d="M268.365 176.3H255.8v5.013h12.1m-.453 5.134H255.8v5.013h6.183l-.585 6.514-5.6 1.5v5.211l10.268-2.849" transform="translate(-235.793 -156.835)"/></g></svg>

+ 1
- 1
server/sonar-web/public/images/languages/java.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#2d3032;}</style></defs><title>java</title><g id="Groupe_6110" data-name="Groupe 6110"><path id="Tracé_10176" data-name="Tracé 10176" class="cls-1" d="M23.25,31.94s-1.52.88,1.07,1.17a22.57,22.57,0,0,0,8.19-.34,14.52,14.52,0,0,0,2.17,1.06c-7.74,3.31-17.51-.19-11.43-1.89Z"/><path id="Tracé_10177" data-name="Tracé 10177" class="cls-1" d="M22.3,27.61s-1.7,1.25.89,1.52a31.82,31.82,0,0,0,10.57-.51,4.51,4.51,0,0,0,1.62,1c-9.36,2.74-19.78.22-13.08-2Z"/><path id="Tracé_10178" data-name="Tracé 10178" class="cls-1" d="M30.27,20.27c1.91,2.19-.5,4.17-.5,4.17s4.84-2.5,2.62-5.63c-2.08-2.92-3.67-4.37,5-9.37,0,0-13.53,3.38-7.07,10.82Z"/><path id="Tracé_10179" data-name="Tracé 10179" class="cls-1" d="M40.51,35.14s1.12.92-1.23,1.63c-4.47,1.35-18.6,1.76-22.52.06-1.41-.62,1.23-1.47,2.07-1.65A5.16,5.16,0,0,1,20.19,35c-1.57-1.11-10.14,2.17-4.35,3.11,15.78,2.55,28.76-1.16,24.67-3Z"/><path id="Tracé_10180" data-name="Tracé 10180" class="cls-1" d="M24,23.12s-7.18,1.71-2.54,2.33a53.83,53.83,0,0,0,9.5-.1c3-.25,6-.79,6-.79a13.08,13.08,0,0,0-1.81,1c-7.3,1.92-21.39,1-17.33-.94A13.69,13.69,0,0,1,24,23.12Z"/><path id="Tracé_10181" data-name="Tracé 10181" class="cls-1" d="M36.86,30.33c7.42-3.86,4-7.56,1.6-7.06a5.2,5.2,0,0,0-.86.23,1.29,1.29,0,0,1,.64-.49c4.73-1.66,8.37,4.91-1.53,7.51a.7.7,0,0,0,.15-.19Z"/><path id="Tracé_10182" data-name="Tracé 10182" class="cls-1" d="M32.39,1.36s4.11,4.11-3.9,10.43c-6.42,5.07-1.46,8,0,11.26-3.74-3.38-6.49-6.35-4.65-9.12C26.55,9.86,34.05,7.89,32.39,1.36Z"/><path id="Tracé_10183" data-name="Tracé 10183" class="cls-1" d="M24.7,40.77c7.12.46,18.06-.25,18.31-3.62,0,0-.49,1.28-5.88,2.29a58.54,58.54,0,0,1-18,.28s.91.76,5.59,1.05Z"/><path id="Tracé_10184" data-name="Tracé 10184" class="cls-1" d="M42.68,46.81h-.21v-.12h.58v.12h-.21v.61h-.16Zm1.17,0h0l-.21.57h-.1l-.21-.57h0v.57h-.15v-.73h.21l.2.52.2-.52H44v.73h-.14v-.57Z"/><path id="Tracé_10185" data-name="Tracé 10185" class="cls-1" d="M23.53,53.64a3.14,3.14,0,0,1-2,.91,1.29,1.29,0,0,1-1.41-1.16,2.35,2.35,0,0,1,0-.26c0-.94.52-1.63,2.63-1.63h.78v2.14Zm1.86,2.09V49.26c0-1.65-.95-2.74-3.22-2.74a8.46,8.46,0,0,0-3.43.74L19,48.41a8.22,8.22,0,0,1,2.65-.53c1.31,0,1.87.53,1.87,1.62v.82h-.65c-3.19,0-4.62,1.23-4.62,3.09,0,1.6.94,2.51,2.73,2.51a4.12,4.12,0,0,0,2.79-1.17l.15,1Z"/><path id="Tracé_10186" data-name="Tracé 10186" class="cls-1" d="M31.57,55.73H29.26l-2.78-9h2l1.72,5.57.39,1.67a35.35,35.35,0,0,0,1.8-7.24h2a36.68,36.68,0,0,1-2.8,9Z"/><path id="Tracé_10187" data-name="Tracé 10187" class="cls-1" d="M40.44,53.64a3.22,3.22,0,0,1-2,.91A1.28,1.28,0,0,1,37,53.39a1.13,1.13,0,0,1,0-.26c0-.94.53-1.63,2.64-1.63h.78v2.14Zm1.86,2.09V49.26c0-1.65-.95-2.74-3.22-2.74a8.47,8.47,0,0,0-3.44.74l.27,1.15a8.33,8.33,0,0,1,2.65-.53c1.31,0,1.88.53,1.88,1.62v.82h-.66c-3.18,0-4.62,1.23-4.62,3.09,0,1.6,1,2.51,2.73,2.51a4.13,4.13,0,0,0,2.8-1.17l.15,1Z"/><path id="Tracé_10188" data-name="Tracé 10188" class="cls-1" d="M16.23,57.27A4.9,4.9,0,0,1,13.92,59L13,57.92a3.82,3.82,0,0,0,1.61-1.5A6,6,0,0,0,15,53.8V43.47h2V53.66c0,2-.16,2.82-.69,3.62Z"/></g></svg>
<svg id="Groupe_7521" data-name="Groupe 7521" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 39.004 72.543"><defs><style>.cls-1{fill:#fff;fill-rule:evenodd}</style></defs><path id="Tracé_10176" data-name="Tracé 10176" class="cls-1" d="M97.814 349.592s-1.9 1.106 1.354 1.479a28.484 28.484 0 0 0 10.3-.436 18.015 18.015 0 0 0 2.74 1.336c-9.741 4.173-22.047-.242-14.4-2.38z" transform="translate(-84.919 -311.112)"/><path id="Tracé_10177" data-name="Tracé 10177" class="cls-1" d="M84.688 300.1s-2.132 1.578 1.125 1.915a40.2 40.2 0 0 0 13.3-.638 5.88 5.88 0 0 0 2.046 1.248c-11.776 3.445-24.892.271-16.467-2.525z" transform="translate(-72.984 -267.071)"/><path id="Tracé_10178" data-name="Tracé 10178" class="cls-1" d="M179.7 105.966c2.4 2.764-.63 5.25-.63 5.25s6.094-3.145 3.3-7.086c-2.614-3.673-4.619-5.5 6.233-11.791 0 0-17.034 4.253-8.9 13.628z" transform="translate(-157.96 -82.174)"/><path id="Tracé_10179" data-name="Tracé 10179" class="cls-1" d="M43.326 382.8s1.407 1.16-1.549 2.057c-5.621 1.7-23.4 2.216-28.34.068-1.774-.773 1.554-1.844 2.6-2.07a6.8 6.8 0 0 1 1.715-.193c-1.974-1.39-12.761 2.731-5.479 3.912 19.86 3.219 36.2-1.45 31.051-3.774z" transform="translate(-8.704 -340.286)"/><path id="Tracé_10180" data-name="Tracé 10180" class="cls-1" d="M54.825 248.756s-9.043 2.148-3.2 2.929a67.916 67.916 0 0 0 11.963-.13c3.743-.314 7.5-.986 7.5-.986a15.948 15.948 0 0 0-2.274 1.217c-9.185 2.416-26.925 1.291-21.817-1.179a17.094 17.094 0 0 1 7.83-1.851z" transform="translate(-41.015 -221.368)"/><path id="Tracé_10181" data-name="Tracé 10181" class="cls-1" d="M271.338 254.01c9.336-4.85 5.019-9.511 2.006-8.884a7.061 7.061 0 0 0-1.067.287 1.7 1.7 0 0 1 .8-.615c5.961-2.095 10.544 6.18-1.922 9.457a.829.829 0 0 0 .187-.245z" transform="translate(-241.305 -217.555)"/><path id="Tracé_10182" data-name="Tracé 10182" class="cls-1" d="M128.721 0s5.169 5.172-4.9 13.123c-8.078 6.381-1.842 10.017 0 14.175-4.716-4.255-8.175-8-5.855-11.486 3.4-5.112 12.84-7.597 10.755-15.812z" transform="translate(-104.316)"/><path id="Tracé_10183" data-name="Tracé 10183" class="cls-1" d="M76.926 413.781c8.96.573 22.722-.319 23.047-4.559 0 0-.626 1.607-7.405 2.882a73.621 73.621 0 0 1-22.677.349s1.146.948 7.034 1.327z" transform="translate(-62.199 -364.178)"/><path id="Tracé_10184" data-name="Tracé 10184" class="cls-1" d="M337.22 518.483h-.273v-.153h.735v.153h-.272v.762h-.19v-.762zm1.467.039l-.271.724h-.125l-.269-.724v.724h-.18v-.915h.264l.249.648.25-.648h.263v.915h-.175v-.724z" transform="translate(-299.859 -461.277)"/><path id="Tracé_10185" data-name="Tracé 10185" class="cls-1" d="M66.813 525.293a4.07 4.07 0 0 1-2.54 1.144 1.62 1.62 0 0 1-1.762-1.785c0-1.189.663-2.059 3.32-2.059h.982v2.7zm2.332 2.631v-8.144c0-2.082-1.187-3.456-4.049-3.456a10.682 10.682 0 0 0-4.323.938l.342 1.443a10.041 10.041 0 0 1 3.339-.664c1.649 0 2.358.664 2.358 2.037v1.03h-.822c-4 0-5.812 1.553-5.812 3.889 0 2.013 1.191 3.157 3.433 3.157a5.177 5.177 0 0 0 3.522-1.466l.183 1.236z" transform="translate(-53.554 -459.492)"/><path id="Tracé_10186" data-name="Tracé 10186" class="cls-1" d="M160.541 529.607h-2.908l-3.5-11.393h2.54l2.173 7 .483 2.1a43.88 43.88 0 0 0 2.264-9.1h2.471a46.188 46.188 0 0 1-3.521 11.393z" transform="translate(-137.166 -461.174)"/><path id="Tracé_10187" data-name="Tracé 10187" class="cls-1" d="M260.1 525.293a4.083 4.083 0 0 1-2.541 1.144 1.62 1.62 0 0 1-1.762-1.785c0-1.189.665-2.059 3.319-2.059h.984v2.7zm2.333 2.631v-8.144c0-2.082-1.191-3.456-4.049-3.456a10.683 10.683 0 0 0-4.325.938l.343 1.443a10.057 10.057 0 0 1 3.341-.664c1.647 0 2.357.664 2.357 2.037v1.03h-.824c-4.006 0-5.812 1.553-5.812 3.889 0 2.013 1.189 3.157 3.431 3.157a5.184 5.184 0 0 0 3.524-1.466l.184 1.236z" transform="translate(-225.568 -459.492)"/><path id="Tracé_10188" data-name="Tracé 10188" class="cls-1" d="M4.066 498.779a6.122 6.122 0 0 1-2.915 2.174L0 499.6a4.84 4.84 0 0 0 2.019-1.891 7.317 7.317 0 0 0 .436-3.3V481.4h2.479v12.829c0 2.532-.2 3.555-.868 4.552z" transform="translate(0 -428.41)"/></svg>

+ 1
- 1
server/sonar-web/public/images/languages/js.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#2d3032;}.cls-2{fill:#fff;}</style></defs><title>js</title><g id="Unofficial_JavaScript_logo_2" data-name="Unofficial JavaScript logo 2"><rect id="Rectangle_5722" data-name="Rectangle 5722" class="cls-1" x="5" y="5" width="50.54" height="50.54"/><path id="Tracé_10175" data-name="Tracé 10175" class="cls-2" d="M39,44.49a5.17,5.17,0,0,0,4.69,2.88c2,0,3.22-1,3.22-2.34,0-1.63-1.29-2.21-3.46-3.15l-1.18-.51c-3.43-1.46-5.7-3.29-5.7-7.16,0-3.56,2.71-6.27,6.95-6.27a7,7,0,0,1,6.76,3.8l-3.7,2.37a3.22,3.22,0,0,0-3.06-2,2.06,2.06,0,0,0-2.26,1.84,1.28,1.28,0,0,0,0,.19c0,1.43.88,2,2.92,2.88l1.19.51c4,1.73,6.31,3.5,6.31,7.46,0,4.28-3.36,6.62-7.87,6.62s-7.26-2.1-8.66-4.85Zm-16.78.41c.75,1.32,1.43,2.44,3.06,2.44s2.55-.61,2.55-3V28.21h4.75V44.42c0,4.92-2.89,7.16-7.1,7.16a7.38,7.38,0,0,1-7.12-4.34Z"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.207 60.207"><path data-name="Rectangle 5722" fill="#fff" d="M0 0h60.207v60.207H0z"/><path data-name="Tracé 10175" d="M40.444 47.037c1.213 1.98 2.791 3.436 5.581 3.436 2.344 0 3.842-1.172 3.842-2.791 0-1.94-1.539-2.627-4.119-3.756l-1.414-.607c-4.083-1.739-6.795-3.918-6.795-8.524 0-4.243 3.233-7.473 8.286-7.473 3.6 0 6.183 1.252 8.047 4.53l-4.406 2.829c-.97-1.739-2.016-2.425-3.641-2.425a2.462 2.462 0 0 0-2.707 2.425c0 1.7 1.051 2.384 3.479 3.436l1.414.606c4.807 2.061 7.521 4.163 7.521 8.888 0 5.094-4 7.884-9.375 7.884-5.254 0-8.649-2.5-10.31-5.786zm-19.986.49c.889 1.577 1.7 2.91 3.641 2.91 1.859 0 3.031-.727 3.031-3.555V27.645h5.658v19.314c0 5.858-3.435 8.524-8.448 8.524a8.783 8.783 0 0 1-8.487-5.168z" fill="#2d3032"/></svg>

+ 1
- 0
server/sonar-web/public/images/languages/kotlin.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41.206 64.473"><g data-name="Groupe 7528"><path data-name="Tracé 11989" d="M6.46 60.388l-1.043 1.084v2.883H4.292v-8.531h1.125v4.219l3.791-4.219h1.359L7.21 59.591l3.621 4.764H9.483zm4.74.738a3.745 3.745 0 0 1 .366-1.671 2.732 2.732 0 0 1 1.02-1.148 2.775 2.775 0 0 1 1.491-.4 2.674 2.674 0 0 1 2.095.9 3.449 3.449 0 0 1 .8 2.385v.063a3.777 3.777 0 0 1-.354 1.661 2.692 2.692 0 0 1-1.014 1.146 2.807 2.807 0 0 1-1.515.41 2.667 2.667 0 0 1-2.089-.9 3.432 3.432 0 0 1-.8-2.373zm1.09.129a2.712 2.712 0 0 0 .489 1.693 1.658 1.658 0 0 0 2.622-.009 2.966 2.966 0 0 0 .486-1.813 2.708 2.708 0 0 0-.5-1.69 1.574 1.574 0 0 0-1.315-.647 1.557 1.557 0 0 0-1.295.639 2.944 2.944 0 0 0-.487 1.827zm7.512-4.775v1.535h1.184v.84h-1.184v3.93a.878.878 0 0 0 .158.571.666.666 0 0 0 .539.19 2.624 2.624 0 0 0 .516-.07v.879a3.143 3.143 0 0 1-.832.117 1.35 1.35 0 0 1-1.1-.439 1.888 1.888 0 0 1-.369-1.248v-3.93h-1.151v-.84h1.154V56.48zm3.627 7.875h-1.084v-9h1.084zm2.912 0h-1.089v-6.34h1.084zm-1.172-8.021a.647.647 0 0 1 .161-.445.6.6 0 0 1 .478-.182.614.614 0 0 1 .48.182.64.64 0 0 1 .164.445.619.619 0 0 1-.164.439.626.626 0 0 1-.48.176.616.616 0 0 1-.478-.176.626.626 0 0 1-.161-.439zm3.932 1.681l.035.8a2.31 2.31 0 0 1 1.9-.914q2.01 0 2.027 2.268v4.186h-1.086v-4.2a1.459 1.459 0 0 0-.313-1.014 1.256 1.256 0 0 0-.958-.328 1.564 1.564 0 0 0-.926.281 1.91 1.91 0 0 0-.621.738v4.523h-1.084v-6.34z" fill="#fff"/><path d="M0 41.206l20.672-20.672 20.534 20.672z" fill="#cfd3d7"/><path data-name="Tracé 11935" d="M0 0h20.672L0 22.32z" fill="#676a71"/><path data-name="Tracé 11936" d="M20.672 0L0 21.771v19.435l20.672-20.672L41.206 0z" fill="#8a8c8f"/></g></svg>

+ 1
- 1
server/sonar-web/public/images/languages/obj-c.svg
File diff suppressed because it is too large
View File


+ 1
- 1
server/sonar-web/public/images/languages/php.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 63 60"><defs><style>.cls-1{fill:#2d3032;}</style></defs><title>php</title><g id="_4c69e694f411fe8138a5242020efdc8d" data-name=" 4c69e694f411fe8138a5242020efdc8d"><path id="Tracé_10232" data-name="Tracé 10232" class="cls-1" d="M19.49,26.77h-3l-1.25,6.41H18s3.45.08,3.61-4.16A2,2,0,0,0,20,26.78,1.57,1.57,0,0,0,19.49,26.77Z"/><path id="Tracé_10233" data-name="Tracé 10233" class="cls-1" d="M45.37,26.77h-3l-1.25,6.41h2.83s3.45.08,3.61-4.16a2,2,0,0,0-1.62-2.24A1.63,1.63,0,0,0,45.37,26.77Z"/><path id="Tracé_10234" data-name="Tracé 10234" class="cls-1" d="M30.79,16C14.89,16,2,22.79,2,31.17S14.89,46.33,30.79,46.33s28.79-6.79,28.79-15.16S46.69,16,30.79,16ZM17.9,35.56l-3.07,0-.86,4H10.68l3-15.16s4.2.05,7,0,5.48,1.9,4.21,6.32C23.29,36,17.9,35.56,17.9,35.56Zm14.77,0s.78-3.53,1.13-6c.14-1,.76-2.72-.88-2.72H29.49l-1.74,8.7H24.5l3-15.24h3.33L30,24.39h3.44s4.54-.35,4,3.4-1.55,7.77-1.55,7.77Zm18-4.84c-1.52,5.27-6.92,4.84-6.92,4.84l-3.06,0-.87,4H36.57l3-15.16s4.21.05,7,0S52,26.29,50.7,30.72Z"/></g></svg>
<svg id="_4c69e694f411fe8138a5242020efdc8d" data-name="4c69e694f411fe8138a5242020efdc8d" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57.583 30.33"><defs><style>.cls-1{fill:#fff}</style></defs><path id="Tracé_10232" data-name="Tracé 10232" class="cls-1" d="M239.078 425.051h-3.032l-1.246 6.41h2.832s3.449.088 3.608-4.154a1.96 1.96 0 0 0-2.162-2.256z" transform="translate(-221.591 -414.286)"/><path id="Tracé_10233" data-name="Tracé 10233" class="cls-1" d="M679.577 425.051h-3.032l-1.246 6.41h2.832s3.449.088 3.608-4.154a1.958 1.958 0 0 0-2.162-2.256z" transform="translate(-636.208 -414.286)"/><path id="Tracé_10234" data-name="Tracé 10234" class="cls-1" d="M38.792 241.9c-15.9 0-28.792 6.792-28.792 15.165s12.892 15.165 28.792 15.165 28.792-6.787 28.792-15.165S54.692 241.9 38.792 241.9zM25.9 261.455l-3.067-.023-.864 4.031h-3.285l2.962-15.163s4.207.053 6.969 0 5.476 1.9 4.207 6.316c-1.528 5.273-6.922 4.839-6.922 4.839zm14.766 0s.787-3.525 1.134-5.97c.141-1 .764-2.715-.881-2.715-1.375-.006-3.431-.012-3.431-.012l-1.733 8.7H32.5l3.032-15.236h3.326l-.834 4.072h3.431s4.548-.358 4.007 3.4-1.551 7.762-1.551 7.762zm18.034-4.836c-1.516 5.271-6.916 4.836-6.916 4.836l-3.067-.023-.864 4.031h-3.285l2.961-15.163s4.207.053 6.969 0 5.47 1.894 4.202 6.319z" transform="translate(-10 -241.9)"/></svg>

+ 1
- 0
server/sonar-web/public/images/languages/pl-sql.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 65.578 17.801"><path data-name="Tracé 11976" d="M3.077 9.875v5.26H0V.205h5.824A6.738 6.738 0 0 1 8.782.82a4.534 4.534 0 0 1 1.964 1.748 4.875 4.875 0 0 1 .684 2.58 4.287 4.287 0 0 1-1.5 3.461 6.257 6.257 0 0 1-4.158 1.266zm0-2.492h2.748a2.7 2.7 0 0 0 1.861-.574 2.088 2.088 0 0 0 .644-1.641 2.463 2.463 0 0 0-.646-1.774 2.413 2.413 0 0 0-1.784-.7H3.08zm12.705 5.281h6.532v2.471h-9.608V.205h3.076zm8.194 3.753h-2.2l5.5-16.211h2.2zm14.008-5.2a1.579 1.579 0 0 0-.615-1.338 8.07 8.07 0 0 0-2.215-.984 15.7 15.7 0 0 1-2.533-1.02 4.138 4.138 0 0 1-2.543-3.7 3.605 3.605 0 0 1 .682-2.158A4.448 4.448 0 0 1 32.718.535a7.372 7.372 0 0 1 2.866-.533 6.71 6.71 0 0 1 2.851.579 4.539 4.539 0 0 1 1.943 1.634 4.28 4.28 0 0 1 .692 2.4h-3.076a2.013 2.013 0 0 0-.646-1.594 2.655 2.655 0 0 0-1.818-.57 2.837 2.837 0 0 0-1.753.477 1.5 1.5 0 0 0-.625 1.256 1.44 1.44 0 0 0 .733 1.22 8.283 8.283 0 0 0 2.158.923 9.326 9.326 0 0 1 3.827 1.958 3.9 3.9 0 0 1 1.2 2.912 3.593 3.593 0 0 1-1.466 3.04 6.419 6.419 0 0 1-3.948 1.1 7.623 7.623 0 0 1-3.138-.631 4.965 4.965 0 0 1-2.158-1.728 4.425 4.425 0 0 1-.743-2.543h3.086q0 2.471 2.953 2.471a2.873 2.873 0 0 0 1.712-.446 1.451 1.451 0 0 0 .615-1.242zm16.571-3.209a9 9 0 0 1-.677 3.635 6.24 6.24 0 0 1-1.876 2.476l2.481 1.948-1.958 1.733-3.179-2.553a6.728 6.728 0 0 1-1.128.092 6.211 6.211 0 0 1-3.312-.892 5.926 5.926 0 0 1-2.256-2.548 8.755 8.755 0 0 1-.81-3.809v-.738a8.965 8.965 0 0 1 .79-3.881A5.917 5.917 0 0 1 44.88.897a6.581 6.581 0 0 1 6.634 0 5.917 5.917 0 0 1 2.246 2.574 8.94 8.94 0 0 1 .795 3.871zm-3.118-.673a6.283 6.283 0 0 0-.841-3.568 2.97 2.97 0 0 0-4.789-.015 6.211 6.211 0 0 0-.851 3.532v.728a6.361 6.361 0 0 0 .841 3.548 2.944 2.944 0 0 0 4.8.046 6.324 6.324 0 0 0 .841-3.543zm7.609 5.332h6.532v2.468H55.97V.205h3.076z" fill="#fff"/></svg>

+ 0
- 1
server/sonar-web/public/images/languages/plsql.svg View File

@@ -1 +0,0 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 79 60"><defs><style>.cls-1{fill:#2d3032;}</style></defs><title>plsql</title><path id="Tracé_10740" data-name="Tracé 10740" class="cls-1" d="M11.08,32.86v5.26H8V23.19h5.82a6.83,6.83,0,0,1,3,.61,4.63,4.63,0,0,1,2,1.75,4.87,4.87,0,0,1,.68,2.58,4.29,4.29,0,0,1-1.5,3.46,6.24,6.24,0,0,1-4.16,1.27Zm0-2.49h2.75a2.72,2.72,0,0,0,1.86-.58,2.08,2.08,0,0,0,.64-1.64,2.42,2.42,0,0,0-.65-1.77,2.37,2.37,0,0,0-1.78-.7H11.08Zm12.7,5.28h6.53v2.47h-9.6V23.19h3.07ZM32,39.4h-2.2l5.5-16.21h2.2Zm14-5.2a1.59,1.59,0,0,0-.61-1.34,7.87,7.87,0,0,0-2.22-1,16.32,16.32,0,0,1-2.53-1,4.14,4.14,0,0,1-2.54-3.7A3.62,3.62,0,0,1,38.76,25a4.42,4.42,0,0,1,2-1.48A7.19,7.19,0,0,1,43.58,23a6.83,6.83,0,0,1,2.86.57,4.61,4.61,0,0,1,1.94,1.64,4.33,4.33,0,0,1,.69,2.4H46a2,2,0,0,0-.64-1.6,2.71,2.71,0,0,0-1.82-.57,2.85,2.85,0,0,0-1.75.48,1.5,1.5,0,0,0-.63,1.26,1.44,1.44,0,0,0,.74,1.22,8,8,0,0,0,2.15.92,9.45,9.45,0,0,1,3.83,2,3.89,3.89,0,0,1,1.2,2.91,3.58,3.58,0,0,1-1.47,3,6.35,6.35,0,0,1-3.94,1.1,7.7,7.7,0,0,1-3.14-.63A5,5,0,0,1,38.36,36a4.41,4.41,0,0,1-.74-2.54H40.7c0,1.65,1,2.47,3,2.47a2.88,2.88,0,0,0,1.71-.45A1.44,1.44,0,0,0,46,34.2ZM62.56,31a9.27,9.27,0,0,1-.68,3.64A6.18,6.18,0,0,1,60,37.1l2.48,1.95-1.95,1.73-3.18-2.55a7.17,7.17,0,0,1-1.13.09,6.19,6.19,0,0,1-3.31-.89,5.94,5.94,0,0,1-2.26-2.55,8.76,8.76,0,0,1-.81-3.81v-.73a9,9,0,0,1,.79-3.89,5.9,5.9,0,0,1,2.25-2.57,6.56,6.56,0,0,1,6.63,0,5.9,5.9,0,0,1,2.25,2.57,9.09,9.09,0,0,1,.8,3.88Zm-3.12-.67a6.36,6.36,0,0,0-.84-3.57,3,3,0,0,0-4.15-.65,2.78,2.78,0,0,0-.64.64A6.14,6.14,0,0,0,53,30.27V31a6.28,6.28,0,0,0,.84,3.54,2.94,2.94,0,0,0,4.1.74,3.05,3.05,0,0,0,.7-.69,6.36,6.36,0,0,0,.84-3.54Zm7.61,5.33h6.53v2.47H64V23.19h3.08Z"/></svg>

+ 1
- 1
server/sonar-web/public/images/languages/python.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{isolation:isolate;}.cls-2{fill:#2d3032;}.cls-3{fill:#464a4d;}</style></defs><title>python</title><g class="cls-1"><path class="cls-2" d="M16.6,54.3v3.1h-1V49.6h2.9a2.58,2.58,0,0,1,2,.7,2.06,2.06,0,0,1,.7,1.7,2.27,2.27,0,0,1-.7,1.8,3.17,3.17,0,0,1-2,.6H16.6Zm0-.8h1.9a1.7,1.7,0,0,0,1.3-.4,1.71,1.71,0,0,0,0-2.2,1.59,1.59,0,0,0-1.2-.4H16.7v3Z"/><path class="cls-2" d="M24.3,55.9l1.4-4.4h1.1l-2.3,6.7c-.4,1-.9,1.5-1.7,1.5h-.2l-.4-.1v-.8h.3a1.88,1.88,0,0,0,.8-.2c.2-.1.3-.4.5-.7l.2-.6-2.1-5.7H23Z"/><path class="cls-2" d="M29,50.1v1.4h1.1v.8H29v3.6a.75.75,0,0,0,.1.5.76.76,0,0,0,.5.2,1.09,1.09,0,0,0,.5-.1v.8a2.2,2.2,0,0,1-.8.1,1.16,1.16,0,0,1-1-.4,2,2,0,0,1-.3-1.1V52.3H26.9v-.8H28V50.1Z"/><path class="cls-2" d="M32.2,52.2a2.14,2.14,0,0,1,1.7-.8c1.2,0,1.8.7,1.9,2.1v3.8h-1V53.5a1.06,1.06,0,0,0-1.2-1.2,1.14,1.14,0,0,0-.8.3,4.35,4.35,0,0,0-.6.7v4.1h-1V49.2h1v3Z"/><path class="cls-2" d="M37,54.4a3.34,3.34,0,0,1,.3-1.5,2.44,2.44,0,0,1,.9-1.1,3.26,3.26,0,0,1,1.4-.4,2.56,2.56,0,0,1,1.9.8,3.07,3.07,0,0,1,.7,2.2v.1a3.34,3.34,0,0,1-.3,1.5,2.19,2.19,0,0,1-.9,1,2.3,2.3,0,0,1-1.4.4,2.56,2.56,0,0,1-1.9-.8,3.39,3.39,0,0,1-.7-2.2Zm1,.1a2.73,2.73,0,0,0,.4,1.6,1.5,1.5,0,0,0,2.4,0,2.86,2.86,0,0,0,.4-1.7,2.25,2.25,0,0,0-.5-1.5,1.74,1.74,0,0,0-1.2-.6,1.43,1.43,0,0,0-1.2.6A5,5,0,0,0,38,54.5Z"/><path class="cls-2" d="M44.5,51.5v.7a1.88,1.88,0,0,1,1.7-.8c1.2,0,1.8.7,1.9,2.1v3.8h-1V53.5a1.06,1.06,0,0,0-1.2-1.2,1.14,1.14,0,0,0-.8.3,4.35,4.35,0,0,0-.6.7v4.1h-1V51.6h1Z"/></g><g id="python-logo-generic"><path id="path1948" class="cls-2" d="M31.64,2a18.4,18.4,0,0,0-4.1.4c-3.7.6-4.3,2-4.3,4.5v3.3h8.6v1.1H19.94a5.47,5.47,0,0,0-5.4,4.4,16.43,16.43,0,0,0,0,8.8c.6,2.6,2.1,4.4,4.6,4.4h3V25a5.58,5.58,0,0,1,5.4-5.4h8.6a4.35,4.35,0,0,0,4.3-4.4h0V7a4.9,4.9,0,0,0-4.3-4.5A17.26,17.26,0,0,0,31.64,2Zm-4.7,2.6a1.65,1.65,0,1,1-1.6,1.7h0A1.67,1.67,0,0,1,26.94,4.62Z"/><path id="path1950" class="cls-3" d="M41.54,11.22V15a5.53,5.53,0,0,1-5.4,5.5h-8.6a4.35,4.35,0,0,0-4.3,4.4v8.2c0,2.3,2,3.7,4.3,4.4a14,14,0,0,0,8.6,0c2.2-.6,4.3-1.9,4.3-4.4v-3.3h-8.6v-1.1h12.9c2.5,0,3.4-1.7,4.3-4.4a14.68,14.68,0,0,0,0-8.8c-.6-2.5-1.8-4.4-4.3-4.4ZM36.64,32a1.65,1.65,0,1,1-1.6,1.7h0a1.61,1.61,0,0,1,1.6-1.7Z"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 42.597 68.086"><defs><style>.cls-1{fill:#fff}</style><radialGradient id="radial-gradient" cx="-23.453" cy="142.313" r="12.486" gradientTransform="matrix(0 -.194 1.037 0 -76.413 35.855)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#b8b8b8" stop-opacity=".498"/><stop offset="1" stop-color="#7f7f7f" stop-opacity="0"/></radialGradient></defs><g id="Groupe_7527" data-name="Groupe 7527" transform="translate(-1080.847 -1520.27)"><path id="Tracé_11987" data-name="Tracé 11987" class="cls-1" d="M9.387 7.66V11H8.262V2.469h3.146a3.161 3.161 0 0 1 2.194.715 2.423 2.423 0 0 1 .798 1.892 2.391 2.391 0 0 1-.776 1.913 3.3 3.3 0 0 1-2.224.671zm0-.92h2.021a2.023 2.023 0 0 0 1.383-.425 1.552 1.552 0 0 0 .48-1.228 1.6 1.6 0 0 0-.48-1.219 1.9 1.9 0 0 0-1.318-.475H9.387zm8.437 2.672L19.3 4.66h1.16l-2.549 7.318q-.592 1.582-1.881 1.582l-.205-.018-.4-.076v-.879l.293.023a1.442 1.442 0 0 0 .858-.223 1.611 1.611 0 0 0 .507-.814l.24-.645-2.264-6.268h1.184zM22.9 3.125V4.66h1.184v.84H22.9v3.93a.878.878 0 0 0 .158.571.666.666 0 0 0 .539.19 2.624 2.624 0 0 0 .516-.07V11a3.143 3.143 0 0 1-.832.117 1.35 1.35 0 0 1-1.1-.439 1.888 1.888 0 0 1-.369-1.248V5.5H20.66v-.84h1.154V3.125zm3.533 2.3a2.3 2.3 0 0 1 1.875-.885q2.01 0 2.027 2.268V11H29.25V6.8a1.459 1.459 0 0 0-.313-1.014 1.256 1.256 0 0 0-.958-.328 1.564 1.564 0 0 0-.926.281 1.91 1.91 0 0 0-.621.738V11h-1.084V2h1.084zm5.237 2.346a3.745 3.745 0 0 1 .366-1.671 2.732 2.732 0 0 1 1.02-1.148 2.775 2.775 0 0 1 1.491-.4 2.674 2.674 0 0 1 2.095.9 3.449 3.449 0 0 1 .8 2.385V7.9a3.777 3.777 0 0 1-.354 1.661 2.692 2.692 0 0 1-1.014 1.146 2.807 2.807 0 0 1-1.515.41 2.667 2.667 0 0 1-2.089-.9 3.432 3.432 0 0 1-.8-2.373zm1.09.129a2.712 2.712 0 0 0 .489 1.693 1.658 1.658 0 0 0 2.622-.009 2.966 2.966 0 0 0 .486-1.813 2.708 2.708 0 0 0-.5-1.69 1.574 1.574 0 0 0-1.315-.647 1.557 1.557 0 0 0-1.295.639A2.944 2.944 0 0 0 32.76 7.9zm7.066-3.24l.035.8a2.31 2.31 0 0 1 1.9-.914q2.01 0 2.027 2.268V11H42.7V6.8a1.459 1.459 0 0 0-.313-1.014 1.256 1.256 0 0 0-.958-.328 1.564 1.564 0 0 0-.926.281 1.91 1.91 0 0 0-.621.738V11H38.8V4.66z" transform="translate(1076.127 1574.795)"/><g id="python-logo-generic" transform="translate(1080.846 1520.27)"><path id="path1948" class="cls-1" d="M26.636 6.4a29.338 29.338 0 0 0-4.91.419c-4.348.768-5.137 2.376-5.137 5.341v3.916h10.275v1.305H12.733a6.415 6.415 0 0 0-6.419 5.209 19.2 19.2 0 0 0 0 10.442c.73 3.042 2.475 5.209 5.461 5.209h3.533v-4.696a6.529 6.529 0 0 1 6.419-6.383h10.262a5.176 5.176 0 0 0 5.137-5.221v-9.784c0-2.784-2.349-4.876-5.137-5.341a32.047 32.047 0 0 0-5.353-.416zM21.08 9.547a1.958 1.958 0 1 1-1.928 1.964 1.949 1.949 0 0 1 1.928-1.964z" transform="translate(-5.591 -6.397)"/><path id="path1950" d="M56.11 35.054v4.562a6.59 6.59 0 0 1-6.419 6.514H39.429a5.241 5.241 0 0 0-5.137 5.221v9.784c0 2.784 2.421 4.422 5.137 5.221a17.19 17.19 0 0 0 10.263 0c2.587-.749 5.137-2.256 5.137-5.221V57.22H44.566v-1.305h15.4c2.986 0 4.1-2.083 5.137-5.209 1.073-3.218 1.027-6.314 0-10.442-.738-2.973-2.147-5.209-5.137-5.209zm-5.772 24.777a1.958 1.958 0 1 1-1.928 1.952 1.939 1.939 0 0 1 1.928-1.952z" transform="translate(-23.294 -24.073)" fill="#cfd3d7"/><path id="path1894" d="M36.765 102.791c0 1.475-6.165 2.67-13.769 2.67s-13.769-1.2-13.769-2.67 6.165-2.67 13.769-2.67 13.769 1.195 13.769 2.67z" transform="translate(-1.607 -53.856)" opacity=".444" fill="url(#radial-gradient)"/></g></g></svg>

+ 1
- 0
server/sonar-web/public/images/languages/ruby.svg
File diff suppressed because it is too large
View File


+ 1
- 1
server/sonar-web/public/images/languages/swift.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#2d3032;}.cls-2{fill:#121415;}.cls-3{fill:#fff;}</style></defs><title>swift</title><path id="Tracé_10736" data-name="Tracé 10736" class="cls-1" d="M20.79,54.08a4.77,4.77,0,0,1-1.92-.93,1.77,1.77,0,0,1-.6-1.38A1.83,1.83,0,0,1,19,50.25a2.86,2.86,0,0,1,1.92-.6,3.1,3.1,0,0,1,1.43.31,2.33,2.33,0,0,1,1,.86,2.19,2.19,0,0,1,.35,1.2h-1a1.44,1.44,0,0,0-.45-1.12,1.83,1.83,0,0,0-1.27-.41,1.79,1.79,0,0,0-1.19.34,1.09,1.09,0,0,0-.43.93,1,1,0,0,0,.4.81,4.14,4.14,0,0,0,1.38.6,5.94,5.94,0,0,1,1.53.6,2.32,2.32,0,0,1,.82.77,2,2,0,0,1,.26,1A1.83,1.83,0,0,1,23,57.1a3.13,3.13,0,0,1-2,.57,3.66,3.66,0,0,1-1.5-.3,2.51,2.51,0,0,1-1.08-.85A2,2,0,0,1,18,55.3h1a1.32,1.32,0,0,0,.52,1.12,2.18,2.18,0,0,0,1.4.41,2,2,0,0,0,1.25-.33,1.1,1.1,0,0,0,.43-.91,1.07,1.07,0,0,0-.4-.89A4.6,4.6,0,0,0,20.79,54.08ZM30,56.2l1.12-4.44h1l-1.69,5.81h-.8l-1.42-4.4-1.37,4.4H26l-1.68-5.81h1l1.15,4.35,1.35-4.35h.8Zm4.2,1.37h-1V51.76h1Zm-1.07-7.35a.61.61,0,0,1,.15-.41.55.55,0,0,1,.44-.17.57.57,0,0,1,.44.17.59.59,0,0,1,.15.41.54.54,0,0,1-.59.56.57.57,0,0,1-.44-.16A.6.6,0,0,1,33.13,50.22Zm3.15,7.35v-5h-.91v-.77h.91v-.6a2,2,0,0,1,.5-1.45,1.89,1.89,0,0,1,1.42-.51,2.59,2.59,0,0,1,.68.09l-.06.81a3.07,3.07,0,0,0-.53-.05,1,1,0,0,0-.75.28,1.15,1.15,0,0,0-.26.81v.61h1.24v.77H37.28v5ZM41,50.35v1.41h1.08v.76H41v3.6a.76.76,0,0,0,.14.53.6.6,0,0,0,.49.17,2,2,0,0,0,.48-.06v.81a3.33,3.33,0,0,1-.77.11,1.3,1.3,0,0,1-1-.4A1.7,1.7,0,0,1,40,56.13v-3.6H38.91v-.77H40V50.35Z"/><g id="Groupe_6112" data-name="Groupe 6112"><path id="Tracé_10237" data-name="Tracé 10237" class="cls-1" d="M18.72,1H40.58a8.69,8.69,0,0,1,8.69,8.69V31.55a8.69,8.69,0,0,1-8.69,8.69H18.72A8.69,8.69,0,0,1,10,31.55V9.69A8.69,8.69,0,0,1,18.72,1Z"/><path id="Tracé_10238" data-name="Tracé 10238" class="cls-2" d="M43.15,33.1s-1.52-2.54-4.07-2.54-3.9,2.54-8.84,2.54c-11,0-16.17-9.11-16.21-9.19h0l-4-4.33V9.69A8.69,8.69,0,0,1,18.69,1h7.76l5.73,5.82h0c13,8.8,8.77,18.5,8.77,18.5S44.63,29.47,43.15,33.1Z"/><path id="Tracé_10239" data-name="Tracé 10239" class="cls-3" d="M32.22,6.82c13,8.8,8.76,18.5,8.76,18.5s3.68,4.15,2.2,7.79c0,0-1.52-2.54-4.07-2.54s-3.89,2.54-8.84,2.54c-11,0-16.21-9.19-16.21-9.19,9.91,6.54,16.67,1.9,16.67,1.9-4.47-2.6-14-15-14-15,8.28,7,11.86,8.89,11.86,8.89C26.48,18,20.49,9.36,20.49,9.36,25.28,14.21,34.79,21,34.79,21,37.52,13.5,32.22,6.82,32.22,6.82Z"/></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 39.268 62.117"><defs><style>.cls-1{fill:#fff}</style></defs><g id="Groupe_7532" data-name="Groupe 7532" transform="translate(-1080.753 -1756)"><path id="Tracé_11992" data-name="Tracé 11992" class="cls-1" d="M15.873 7.2a5.29 5.29 0 0 1-2.106-1.022 1.954 1.954 0 0 1-.659-1.5 2.064 2.064 0 0 1 .806-1.667 3.2 3.2 0 0 1 2.095-.659 3.5 3.5 0 0 1 1.567.34 2.577 2.577 0 0 1 1.066.938 2.4 2.4 0 0 1 .378 1.307h-1.131A1.552 1.552 0 0 0 17.4 3.72a2.006 2.006 0 0 0-1.389-.442 2.052 2.052 0 0 0-1.3.366 1.221 1.221 0 0 0-.466 1.017 1.1 1.1 0 0 0 .442.882 4.343 4.343 0 0 0 1.506.659 6.973 6.973 0 0 1 1.664.659 2.525 2.525 0 0 1 .891.841 2.146 2.146 0 0 1 .29 1.131 1.993 1.993 0 0 1-.809 1.661 3.448 3.448 0 0 1-2.162.624 4.01 4.01 0 0 1-1.641-.337 2.761 2.761 0 0 1-1.175-.923 2.252 2.252 0 0 1-.413-1.33h1.131a1.469 1.469 0 0 0 .571 1.222 2.4 2.4 0 0 0 1.526.448 2.211 2.211 0 0 0 1.365-.363 1.18 1.18 0 0 0 .475-.99 1.158 1.158 0 0 0-.439-.97 5.066 5.066 0 0 0-1.594-.675zm10.049 2.306l1.219-4.846h1.084L26.379 11H25.5l-1.541-4.8-1.5 4.8h-.879l-1.84-6.34h1.078l1.248 4.746 1.477-4.746h.873zM30.5 11h-1.08V4.66h1.08zm-1.168-8.021a.647.647 0 0 1 .161-.445.6.6 0 0 1 .478-.182.614.614 0 0 1 .48.182.64.64 0 0 1 .164.445.619.619 0 0 1-.164.439.626.626 0 0 1-.48.176.616.616 0 0 1-.478-.176.626.626 0 0 1-.161-.439zM32.772 11V5.5h-1v-.84h1v-.65a2.159 2.159 0 0 1 .545-1.576 2.058 2.058 0 0 1 1.541-.557 2.845 2.845 0 0 1 .744.1l-.059.879a3.113 3.113 0 0 0-.586-.053 1.059 1.059 0 0 0-.814.308 1.245 1.245 0 0 0-.287.882v.667h1.354v.84h-1.354V11zm5.1-7.875V4.66h1.184v.84h-1.181v3.93a.878.878 0 0 0 .158.571.666.666 0 0 0 .539.19 2.624 2.624 0 0 0 .516-.07V11a3.143 3.143 0 0 1-.832.117 1.35 1.35 0 0 1-1.1-.439 1.888 1.888 0 0 1-.369-1.248V5.5h-1.15v-.84h1.154V3.125z" transform="translate(1074.816 1807)"/><g id="Groupe_6112" data-name="Groupe 6112" transform="translate(1080.753 1756)"><path id="Tracé_10237" data-name="Tracé 10237" class="cls-1" d="M9.691.1h21.854a8.693 8.693 0 0 1 8.691 8.691v21.853a8.693 8.693 0 0 1-8.691 8.691H9.691A8.693 8.693 0 0 1 1 30.644V8.791A8.693 8.693 0 0 1 9.691.1z" transform="translate(-.969 -.097)"/><path id="Tracé_10238" data-name="Tracé 10238" d="M33.149 32.1s-1.523-2.539-4.064-2.539c-2.454 0-3.9 2.539-8.848 2.539-10.961 0-16.17-9.113-16.21-9.185L0 18.583V8.691A8.693 8.693 0 0 1 8.691 0h7.757l5.737 5.818c12.956 8.807 8.766 18.5 8.766 18.5s3.68 4.147 2.198 7.782z" fill="#cfd3d7"/><path id="Tracé_10239" data-name="Tracé 10239" d="M147.961 186.2c12.953 8.8 8.76 18.5 8.76 18.5s3.683 4.149 2.2 7.788c0 0-1.523-2.539-4.064-2.539-2.454 0-3.9 2.539-8.848 2.539-11 0-16.21-9.185-16.21-9.185 9.911 6.531 16.676 1.9 16.676 1.9-4.471-2.6-13.969-14.985-13.969-14.985 8.279 7.041 11.852 8.888 11.852 8.888-2.138-1.76-8.129-10.37-8.129-10.37 4.793 4.849 14.306 11.6 14.306 11.6 2.722-7.458-2.574-14.136-2.574-14.136z" transform="translate(-125.742 -180.379)" fill="#2d3032"/></g></g></svg>

+ 1
- 0
server/sonar-web/public/images/languages/t-sql.svg View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52.924 17.801"><path data-name="Tracé 11977" d="M12.161 2.697H7.588v12.438H4.512V2.697H0V.205h12.161zm3.693 7.238h-5.773V7.547h5.773zm9.475 1.282a1.579 1.579 0 0 0-.615-1.338 8.07 8.07 0 0 0-2.215-.984 15.7 15.7 0 0 1-2.533-1.02 4.138 4.138 0 0 1-2.543-3.7 3.605 3.605 0 0 1 .682-2.16 4.448 4.448 0 0 1 1.959-1.48A7.372 7.372 0 0 1 22.93.002a6.71 6.71 0 0 1 2.851.579 4.539 4.539 0 0 1 1.942 1.634 4.28 4.28 0 0 1 .692 2.4h-3.08a2.013 2.013 0 0 0-.646-1.594 2.655 2.655 0 0 0-1.815-.569 2.837 2.837 0 0 0-1.753.477 1.5 1.5 0 0 0-.625 1.256 1.44 1.44 0 0 0 .733 1.22 8.283 8.283 0 0 0 2.158.923 9.326 9.326 0 0 1 3.825 1.958 3.9 3.9 0 0 1 1.2 2.912 3.593 3.593 0 0 1-1.466 3.04 6.419 6.419 0 0 1-3.948 1.1 7.623 7.623 0 0 1-3.138-.631 4.965 4.965 0 0 1-2.158-1.728 4.425 4.425 0 0 1-.743-2.543h3.086q0 2.471 2.953 2.471a2.873 2.873 0 0 0 1.712-.446 1.451 1.451 0 0 0 .619-1.243zM41.9 8.008a9 9 0 0 1-.677 3.635 6.24 6.24 0 0 1-1.876 2.476l2.481 1.948L39.87 17.8l-3.179-2.553a6.728 6.728 0 0 1-1.128.092 6.211 6.211 0 0 1-3.312-.892 5.926 5.926 0 0 1-2.256-2.548 8.755 8.755 0 0 1-.81-3.809v-.738a8.965 8.965 0 0 1 .795-3.881A5.917 5.917 0 0 1 32.226.897a6.581 6.581 0 0 1 6.634 0 5.917 5.917 0 0 1 2.245 2.574 8.94 8.94 0 0 1 .795 3.871zm-3.117-.673a6.283 6.283 0 0 0-.841-3.568 2.97 2.97 0 0 0-4.789-.015 6.211 6.211 0 0 0-.851 3.532v.728a6.361 6.361 0 0 0 .841 3.548 2.944 2.944 0 0 0 4.8.046 6.324 6.324 0 0 0 .841-3.543zm7.609 5.332h6.532v2.468h-9.608V.205h3.076z" fill="#fff"/></svg>

+ 1
- 1
server/sonar-web/public/images/languages/ts.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 91.67 60"><defs><style>.cls-1{fill:#2d3032;}</style></defs><title>ts</title><g id="Groupe_6111" data-name="Groupe 6111"><path id="Tracé_10235" data-name="Tracé 10235" class="cls-1" d="M13.42,22.83H9.09V36.22H7.33V22.83H3v-1.6H13.38v1.6Z"/><path id="Tracé_10236" data-name="Tracé 10236" class="cls-1" d="M21.74,25.53,16.82,37.94c-.9,2.23-2.11,3.32-3.71,3.32A4.3,4.3,0,0,1,12,41.14V39.62a3.18,3.18,0,0,0,1,.2,2.08,2.08,0,0,0,1.95-1.56l.86-2-4.17-10.7h1.91l2.89,8.24c0,.11.11.39.23.82h.08c0-.16.12-.43.2-.79l3-8.27Zm2.89,9.17h0v6.48H22.87V25.57h1.72v1.87h0a4.11,4.11,0,0,1,3.7-2.15,3.92,3.92,0,0,1,3.24,1.45,5.9,5.9,0,0,1,1.18,3.86,6.69,6.69,0,0,1-1.29,4.3,4.4,4.4,0,0,1-3.59,1.6A3.61,3.61,0,0,1,24.63,34.7Zm0-4.33v1.48a3.11,3.11,0,0,0,.86,2.26,2.82,2.82,0,0,0,2.18.94,2.88,2.88,0,0,0,2.46-1.21,5.27,5.27,0,0,0,.9-3.32,4.36,4.36,0,0,0-.82-2.81,2.72,2.72,0,0,0-2.22-1,3,3,0,0,0-2.42,1.05,3.76,3.76,0,0,0-.94,2.62Zm18.73.93H35.75a4.08,4.08,0,0,0,1,2.78,3.28,3.28,0,0,0,2.53,1,5,5,0,0,0,3.32-1.21v1.6a6.06,6.06,0,0,1-3.74,1A4.44,4.44,0,0,1,35.28,35,6,6,0,0,1,34,30.91a5.81,5.81,0,0,1,1.4-4.06,4.51,4.51,0,0,1,3.51-1.56,4,4,0,0,1,3.24,1.37,5.55,5.55,0,0,1,1.14,3.78v.86Zm-1.75-1.44a3.45,3.45,0,0,0-.7-2.3,2.45,2.45,0,0,0-1.95-.82,2.75,2.75,0,0,0-2.07.86,4.28,4.28,0,0,0-1.06,2.26Zm2.69,5.86V34.54a5.83,5.83,0,0,0,3.28,1,4,4,0,0,0,2.65-.74,2.36,2.36,0,0,0,.9-2A2.58,2.58,0,0,0,50.47,31a11,11,0,0,0-2.66-1.87,9.75,9.75,0,0,1-2.88-2.22,3.76,3.76,0,0,1-.63-2.07,3.55,3.55,0,0,1,1.25-2.7A4.71,4.71,0,0,1,48.83,21a8,8,0,0,1,2.69.47v1.09A6.8,6.8,0,0,0,48.71,22a3.53,3.53,0,0,0-2.42.78,2.49,2.49,0,0,0-.9,1.95A2.54,2.54,0,0,0,46,26.54a11.09,11.09,0,0,0,2.66,1.84,9.07,9.07,0,0,1,2.81,2.11,3.43,3.43,0,0,1,.7,2.14A3.62,3.62,0,0,1,51,35.44a4.74,4.74,0,0,1-3.4,1.1,8.38,8.38,0,0,1-1.8-.24,10.34,10.34,0,0,1-1.52-.58Zm17,0a5.48,5.48,0,0,1-2.85.75A4.55,4.55,0,0,1,54.88,35a5.66,5.66,0,0,1-1.33-3.94,5.9,5.9,0,0,1,1.52-4.18,5.06,5.06,0,0,1,3.87-1.64,5.75,5.75,0,0,1,2.38.51v1.09a4.9,4.9,0,0,0-2.54-.7,3.85,3.85,0,0,0-3,1.37A5.16,5.16,0,0,0,54.57,31a5.09,5.09,0,0,0,1,3.36,3.43,3.43,0,0,0,2.81,1.25,4.71,4.71,0,0,0,2.81-.86v1Zm6.48-9.21a1.83,1.83,0,0,0-1.13-.35,2.46,2.46,0,0,0-2.11,1.29,6.65,6.65,0,0,0-.86,3.71v5h-.93V25.52h.94V27.9h0A3.8,3.8,0,0,1,64.83,26a2.64,2.64,0,0,1,1.84-.66,2.88,2.88,0,0,1,1,.2v1Zm1.64-3.71a.74.74,0,0,1-.54-.23.77.77,0,0,1-.24-.59.64.64,0,0,1,.24-.54.71.71,0,0,1,.54-.2,1,1,0,0,1,.59.2.7.7,0,0,1,.23.54.8.8,0,0,1-.23.59.92.92,0,0,1-.59.24Zm-.47,13.43V25.56h1v10.7Zm4.34-1.91h0v6.83h-1V25.57h1v2.22h0a4.27,4.27,0,0,1,4-2.46,3.91,3.91,0,0,1,3.2,1.41,5.75,5.75,0,0,1,1.13,3.82,6.64,6.64,0,0,1-1.33,4.34,4.22,4.22,0,0,1-3.47,1.64A3.85,3.85,0,0,1,73.23,34.35Zm0-4v1.36a4.11,4.11,0,0,0,1,2.78,3.37,3.37,0,0,0,2.66,1.17,3.14,3.14,0,0,0,2.65-1.41,6.31,6.31,0,0,0,1-3.71,5,5,0,0,0-.94-3.2,3.1,3.1,0,0,0-2.5-1.17,3.54,3.54,0,0,0-2.89,1.25,4.6,4.6,0,0,0-1,2.93Zm14.32,5.74a3.53,3.53,0,0,1-1.4.35c-1.6,0-2.38-.94-2.38-2.85V26.43H81.81v-.9h1.92V22.75l.46-.15c.16,0,.32-.12.47-.16v3.12h2.81v.9H84.66v7.07a2.87,2.87,0,0,0,.35,1.6,1.41,1.41,0,0,0,1.17.51,2.63,2.63,0,0,0,1.29-.39v.86Z"/></g></svg>
<svg id="Groupe_7522" data-name="Groupe 7522" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.672 24.133"><defs><style>.cls-1{fill:#fff}</style></defs><path id="Tracé_10235" data-name="Tracé 10235" class="cls-1" d="M-52.485 419.507h-5.161v15.949h-2.092v-15.949H-64.9V417.6h12.369v1.906z" transform="translate(64.9 -417.322)"/><path id="Tracé_10236" data-name="Tracé 10236" class="cls-1" d="M-30.757 422.394l-5.859 14.787c-1.069 2.65-2.511 3.952-4.417 3.952a5.723 5.723 0 0 1-1.348-.14v-1.813a3.958 3.958 0 0 0 1.209.232 2.5 2.5 0 0 0 2.325-1.86l1.023-2.418-4.976-12.74h2.278l3.441 9.811q.07.209.279.976h.093c.047-.186.139-.511.233-.93l3.627-9.858zm3.441 10.927h-.047v7.719h-2.046v-18.6h2.046v2.232h.047a4.895 4.895 0 0 1 4.417-2.557 4.672 4.672 0 0 1 3.859 1.72 7.063 7.063 0 0 1 1.395 4.6 7.893 7.893 0 0 1-1.534 5.115 5.249 5.249 0 0 1-4.278 1.906 4.307 4.307 0 0 1-3.859-2.135zm-.047-5.161v1.767a3.756 3.756 0 0 0 1.023 2.7 3.377 3.377 0 0 0 2.6 1.116 3.431 3.431 0 0 0 2.929-1.442 6.33 6.33 0 0 0 1.069-3.952 5.218 5.218 0 0 0-.971-3.349 3.271 3.271 0 0 0-2.65-1.209 3.636 3.636 0 0 0-2.883 1.255 4.492 4.492 0 0 0-1.116 3.114zm22.32 1.116h-9.021a4.806 4.806 0 0 0 1.162 3.3 3.892 3.892 0 0 0 3.022 1.162 6.1 6.1 0 0 0 3.954-1.438v1.9a7.256 7.256 0 0 1-4.464 1.209 5.307 5.307 0 0 1-4.231-1.72 7.147 7.147 0 0 1-1.534-4.882 6.954 6.954 0 0 1 1.674-4.836 5.346 5.346 0 0 1 4.185-1.86 4.754 4.754 0 0 1 3.859 1.627 6.62 6.62 0 0 1 1.348 4.51v1.023zm-2.092-1.721a4.116 4.116 0 0 0-.837-2.743 2.92 2.92 0 0 0-2.325-.976 3.3 3.3 0 0 0-2.464 1.023 5.034 5.034 0 0 0-1.255 2.7zm3.208 6.975v-1.395a7 7 0 0 0 3.906 1.209 4.751 4.751 0 0 0 3.162-.883 2.843 2.843 0 0 0 1.069-2.418 3.044 3.044 0 0 0-.744-2.185A13 13 0 0 0 .3 426.625a11.418 11.418 0 0 1-3.441-2.65 4.4 4.4 0 0 1-.744-2.464 4.2 4.2 0 0 1 1.493-3.211 5.589 5.589 0 0 1 3.906-1.3 9.714 9.714 0 0 1 3.208.558v1.3a8.311 8.311 0 0 0-3.348-.7 4.292 4.292 0 0 0-2.883.93 2.98 2.98 0 0 0-1.069 2.325 3.044 3.044 0 0 0 .744 2.185 13.229 13.229 0 0 0 3.162 2.185 10.95 10.95 0 0 1 3.348 2.517 4.118 4.118 0 0 1 .837 2.557 4.3 4.3 0 0 1-1.442 3.343 5.648 5.648 0 0 1-4.045 1.3 10 10 0 0 1-2.139-.279 12.45 12.45 0 0 1-1.813-.7zm20.227.047a6.577 6.577 0 0 1-3.394.883 5.44 5.44 0 0 1-4.185-1.767A6.76 6.76 0 0 1 7.14 429a6.973 6.973 0 0 1 1.813-4.975 6.009 6.009 0 0 1 4.6-1.953 6.77 6.77 0 0 1 2.836.6v1.3a5.692 5.692 0 0 0-3.022-.837 4.6 4.6 0 0 0-3.627 1.628 6.148 6.148 0 0 0-1.395 4.185 6.056 6.056 0 0 0 1.255 4 4.069 4.069 0 0 0 3.348 1.488 5.6 5.6 0 0 0 3.348-1.023v1.162zm7.719-10.977a2.216 2.216 0 0 0-1.348-.419 2.9 2.9 0 0 0-2.511 1.534 7.862 7.862 0 0 0-1.023 4.417v6h-1.116v-12.738h1.116v2.836h.046a4.532 4.532 0 0 1 1.395-2.278 3.172 3.172 0 0 1 2.185-.79 3.55 3.55 0 0 1 1.255.233v1.205zm1.953-4.417a.918.918 0 0 1-.651-.279.946.946 0 0 1-.279-.7.78.78 0 0 1 .279-.651.87.87 0 0 1 .651-.233 1.253 1.253 0 0 1 .7.233.844.844 0 0 1 .279.651.946.946 0 0 1-.279.7 1.025 1.025 0 0 1-.7.281zm-.558 16V422.44h1.162v12.741zm5.161-2.279h-.046v8.137h-1.162v-18.6h1.162v2.651h.046a5.079 5.079 0 0 1 4.743-2.93 4.678 4.678 0 0 1 3.813 1.674 6.916 6.916 0 0 1 1.348 4.557 7.867 7.867 0 0 1-1.581 5.161 5.008 5.008 0 0 1-4.138 1.953 4.591 4.591 0 0 1-4.185-2.6zm-.046-4.743v1.627a4.9 4.9 0 0 0 1.209 3.3 3.962 3.962 0 0 0 3.162 1.395 3.71 3.71 0 0 0 3.162-1.674 7.523 7.523 0 0 0 1.209-4.417 6 6 0 0 0-1.116-3.813 3.659 3.659 0 0 0-2.976-1.395 4.2 4.2 0 0 0-3.441 1.488 5.388 5.388 0 0 0-1.209 3.487zM47.594 435a4.028 4.028 0 0 1-1.674.418c-1.906 0-2.836-1.116-2.836-3.394v-8.556h-2.279v-1.07h2.278v-3.3c.186-.047.372-.14.558-.186s.372-.14.558-.186v3.72h3.348v1.069H44.2v8.416a3.3 3.3 0 0 0 .418 1.906 1.654 1.654 0 0 0 1.395.6 3.043 3.043 0 0 0 1.534-.465V435h.047z" transform="translate(53.077 -417)"/></svg>

+ 0
- 1
server/sonar-web/public/images/languages/tsql.svg View File

@@ -1 +0,0 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#2d3032;}</style></defs><title>tsql</title><path id="Tracé_10741" data-name="Tracé 10741" class="cls-1" d="M17.16,25.68H12.59V38.12H9.51V25.68H5V23.19H17.16Zm3.69,7.24H15.08V30.53h5.77Zm9.48,1.28a1.57,1.57,0,0,0-.62-1.34,7.82,7.82,0,0,0-2.21-1,16.32,16.32,0,0,1-2.53-1,4.15,4.15,0,0,1-2.55-3.7A3.62,3.62,0,0,1,23.1,25a4.53,4.53,0,0,1,2-1.48A7.24,7.24,0,0,1,27.93,23a6.82,6.82,0,0,1,2.85.57,4.55,4.55,0,0,1,1.94,1.64,4.17,4.17,0,0,1,.69,2.4H30.33a2,2,0,0,0-.64-1.6,2.64,2.64,0,0,0-1.82-.56,2.86,2.86,0,0,0-1.75.47,1.49,1.49,0,0,0-.62,1.26,1.44,1.44,0,0,0,.73,1.22,8.08,8.08,0,0,0,2.16.92,9.34,9.34,0,0,1,3.82,2,3.9,3.9,0,0,1,1.2,2.91,3.59,3.59,0,0,1-1.46,3A6.38,6.38,0,0,1,28,38.32a7.54,7.54,0,0,1-3.14-.63A5,5,0,0,1,22.7,36,4.41,4.41,0,0,1,22,33.42h3.09c0,1.65,1,2.47,2.95,2.47a2.81,2.81,0,0,0,1.71-.45,1.45,1.45,0,0,0,.62-1.24ZM46.9,31a8.92,8.92,0,0,1-.68,3.64,6.16,6.16,0,0,1-1.87,2.47l2.48,1.95-2,1.73-3.18-2.55a7.08,7.08,0,0,1-1.13.09,6.24,6.24,0,0,1-3.31-.89A6,6,0,0,1,35,34.88a8.91,8.91,0,0,1-.81-3.81v-.73a9.13,9.13,0,0,1,.8-3.89,5.9,5.9,0,0,1,2.25-2.57,6.56,6.56,0,0,1,6.63,0,5.82,5.82,0,0,1,2.24,2.57,8.8,8.8,0,0,1,.8,3.88Zm-3.12-.67a6.28,6.28,0,0,0-.84-3.57,3,3,0,0,0-4.79,0,6.22,6.22,0,0,0-.85,3.53V31a6.36,6.36,0,0,0,.84,3.54,2.94,2.94,0,0,0,4.1.74,2.87,2.87,0,0,0,.7-.69,6.28,6.28,0,0,0,.84-3.54Zm7.61,5.33h6.53v2.47h-9.6V23.19h3.07Z"/></svg>

+ 1
- 1
server/sonar-web/public/images/languages/vb.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#2d3032;}.cls-2{fill:#464a4d;}.cls-3{fill:#fff;}</style></defs><title>vb</title><g id="vb"><circle id="Ellipse_65" data-name="Ellipse 65" class="cls-1" cx="31.13" cy="29.45" r="24.45"/><path id="Tracé_10244" data-name="Tracé 10244" class="cls-2" d="M14.19,11.88A24.45,24.45,0,1,0,48.71,46.4Z"/><path id="Tracé_10245" data-name="Tracé 10245" class="cls-3" d="M32.12,19.82,25,39.08H22.51l-7-19.26H18l5.34,15.29a8.22,8.22,0,0,1,.39,1.7h.06a8.75,8.75,0,0,1,.42-1.75l5.44-15.28Z"/><path id="Tracé_10246" data-name="Tracé 10246" class="cls-3" d="M34.89,39.08V19.83h5.48a6,6,0,0,1,4,1.22,4,4,0,0,1,1.47,3.19,4.69,4.69,0,0,1-3.36,4.56v.05a4.9,4.9,0,0,1,3.12,1.47,4.52,4.52,0,0,1,1.17,3.23,5.08,5.08,0,0,1-1.77,4,6.65,6.65,0,0,1-4.48,1.53Zm2.29-17.22v6.22h2.29a4.4,4.4,0,0,0,2.9-.92,3.07,3.07,0,0,0,1.06-2.52q0-2.8-3.69-2.8Zm0,8.24V37h3.06a4.62,4.62,0,0,0,3.06-.94,3.25,3.25,0,0,0,1.09-2.58q0-3.41-4.65-3.41Z"/></g></svg>
<svg id="vb" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 61.037 61.037"><defs><style>.cls-3{fill:#2d3032}</style></defs><path id="Tracé_11982" data-name="Tracé 11982" d="M30.1 0A30.1 30.1 0 1 1 0 30.1 30.1 30.1 0 0 1 30.1 0z" transform="translate(.839)" fill="#cfd3d7"/><path id="Tracé_10244" data-name="Tracé 10244" d="M9.184 9a30.1 30.1 0 1 0 42.5 42.5z" transform="translate(.892 -.535)" fill="#fff"/><path id="Tracé_10245" data-name="Tracé 10245" class="cls-3" d="M32 19.4l-8.738 23.7h-3.095l-8.6-23.7h3.095l6.584 18.812a11.165 11.165 0 0 1 .48 2.1h.066a10.346 10.346 0 0 1 .527-2.145l6.7-18.812z" transform="translate(.151 -1.149)"/><path id="Tracé_10246" data-name="Tracé 10246" class="cls-3" d="M36.92 43.1V19.4h6.744a7.374 7.374 0 0 1 4.872 1.5 4.863 4.863 0 0 1 1.806 3.922 5.766 5.766 0 0 1-1.119 3.5 5.888 5.888 0 0 1-3.01 2.116v.066a6.029 6.029 0 0 1 3.838 1.806 5.568 5.568 0 0 1 1.439 3.979 6.2 6.2 0 0 1-2.182 4.929 8.127 8.127 0 0 1-5.5 1.881zm2.822-21.2v7.656h2.822a5.4 5.4 0 0 0 3.565-1.129 3.828 3.828 0 0 0 1.307-3.1q0-3.452-4.543-3.452zm0 10.149v8.531H43.5a5.644 5.644 0 0 0 3.762-1.157 3.96 3.96 0 0 0 1.345-3.17q0-4.2-5.719-4.2z" transform="translate(-1.354 -1.152)"/></svg>

+ 1
- 1
server/sonar-web/public/images/languages/xml.svg View File

@@ -1 +1 @@
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76.67 60"><defs><style>.cls-1{fill:#2d3032;}</style></defs><title>xml</title><path id="Tracé_10738" data-name="Tracé 10738" class="cls-1" d="M8,31.58l5.85,2.06v2.87L5,32.77V30.35l8.83-3.75v2.87Zm13-3.45L23.77,23H27.3L23,30.38l4.46,7.53H23.84L21,32.68,18.1,37.91H14.52L19,30.39,14.63,23h3.54ZM32.14,23,36,33.81,39.79,23h4V37.91H40.75V33.83l.31-7L37,37.91H34.91l-4-11.11.31,7v4.08H28.12V23ZM48.76,35.44h6.53v2.47H45.68V23h3.08ZM57,39.2h-2.2L60.24,23h2.2Zm12.12-7.65-6-2.09V26.61L72,30.36v2.41l-8.93,3.75V33.66Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 67.044 16.212"><path data-name="Tracé 11978" d="M2.981 8.593l5.845 2.061v2.876L-.003 9.787v-2.42L8.829 3.62v2.871zm12.986-3.445l2.8-5.147h3.538l-4.348 7.4 4.459 7.529h-3.578l-2.871-5.229-2.872 5.229H9.517l4.46-7.526-4.348-7.4h3.538zM27.144 0l3.837 10.83L34.794 0h4.04v14.93h-3.087v-4.081l.308-7.044-4.03 11.125h-2.112l-4.02-11.115.308 7.034v4.081h-3.076V0zm16.612 12.459h6.532v2.471h-9.607V0h3.076zm8.194 3.753h-2.2L55.241 0h2.2zm12.121-7.65L58.113 6.48V3.63l8.931 3.743v2.41l-8.931 3.753v-2.861z" fill="#fff"/></svg>

+ 1
- 0
server/sonar-web/public/images/sonarcloud-logo-black.svg View File

@@ -0,0 +1 @@
<svg viewBox="0 0 105 30" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M69.959 19.694c-.42.734-1.346 1.698-2.905 1.698-1.378 0-3.032-.795-3.032-3.999v-5.337h1.596v5.054c0 1.736.509 2.905 1.958 2.905 1.074 0 1.817-.772 2.105-1.506.09-.246.147-.55.147-.85v-5.603h1.596v6.638c0 .94.016 1.772.074 2.492h-1.414l-.088-1.492h-.037zm-36.859.56c-.58.734-1.486 1.133-2.538 1.133-1.797 0-2.87-1.36-2.87-2.83 0-2.393 2.068-3.547 5.21-3.525v-.13c0-.49-.257-1.186-1.618-1.186-.906 0-1.87.32-2.45.696l-.509-1.85c.619-.36 1.833-.81 3.45-.81 2.96 0 3.902 1.812 3.902 3.977v3.204c0 .886.036 1.735.125 2.242h-2.487v.005l-.161-.926H33.1zm-15.716-3.79c0 3.372-2.304 4.923-4.68 4.923-2.597 0-4.593-1.774-4.593-4.755s1.89-4.886 4.738-4.886c2.718.006 4.535 1.948 4.535 4.717zm45.403.075c0 3.373-2.252 4.848-4.373 4.848-2.376 0-4.209-1.812-4.209-4.695 0-3.058 1.922-4.848 4.356-4.848 2.518 0 4.226 1.905 4.226 4.695zm16.675 3.057c-.492 1.017-1.56 1.79-2.996 1.79-2.125 0-3.758-1.866-3.758-4.64-.016-3.036 1.795-4.902 3.937-4.902 1.346 0 2.251.658 2.649 1.399h.036V7.792h1.603v11.032c0 .81.015 1.735.072 2.356h-1.434l-.073-1.584h-.036zm-29.325 1.246c-.419.228-1.346.528-2.524.528-2.649 0-4.37-1.866-4.37-4.657 0-2.812 1.852-4.847 4.716-4.847.943 0 1.78.244 2.215.473l-.361 1.284c-.383-.228-.98-.435-1.854-.435-2.016 0-3.104 1.545-3.104 3.45 0 2.11 1.308 3.41 3.046 3.41.906 0 1.509-.245 1.958-.452l.278 1.246zm-48.69-2.17c.507.32 1.56.696 2.376.696.832 0 1.178-.299 1.178-.772 0-.474-.272-.697-1.309-1.056-1.832-.642-2.54-1.68-2.523-2.775 0-1.712 1.414-3.019 3.613-3.019 1.036 0 1.958.245 2.502.528l-.492 1.98c-.397-.228-1.163-.527-1.922-.527-.67 0-1.052.283-1.052.756 0 .435.345.658 1.435 1.056 1.686.603 2.398 1.49 2.413 2.845 0 1.713-1.309 2.981-3.848 2.981-1.162 0-2.193-.268-2.87-.643l.498-2.05zm19.669 2.519h-2.758v-6.29h.005c0-1.147-.037-2.131-.073-2.943h2.398l.125 1.263h.052a3.224 3.224 0 0 1 2.738-1.47c1.817 0 3.179 1.247 3.179 3.962v5.467h-2.76v-5.108c0-1.187-.397-1.997-1.398-1.997-.764 0-1.215.549-1.397 1.076-.074.169-.111.453-.111.72v5.32zm18.77-.005h-2.76v-6.192c0-1.36-.036-2.246-.072-3.036h2.376l.09 1.698h.073c.455-1.339 1.545-1.904 2.397-1.904.257 0 .383 0 .582.038v2.698a3.76 3.76 0 0 0-.743-.076c-1.017 0-1.708.565-1.89 1.453-.038.19-.054.413-.054.642v4.679zm12.99-.006h-1.597V7.792h1.596V21.18zm2.942-4.543c0 1.997 1.104 3.509 2.67 3.509 1.523 0 2.67-1.49 2.67-3.547 0-1.545-.744-3.508-2.634-3.508s-2.706 1.81-2.706 3.546zm23.517-.87c0-.206-.014-.49-.073-.697-.235-1.055-1.105-1.925-2.304-1.925-1.648 0-2.633 1.506-2.633 3.525 0 1.85.869 3.372 2.597 3.372 1.073 0 2.052-.734 2.34-1.98.053-.229.073-.452.073-.718v-1.577zm-46.344 1.055c-1.45-.016-2.576.337-2.576 1.452 0 .735.471 1.094 1.089 1.094.69 0 1.25-.473 1.435-1.056.036-.152.052-.32.052-.49v-1zm-22.032-.261c0 1.582.634 2.774 1.817 2.774 1.073 0 1.759-1.116 1.759-2.774 0-1.377-.507-2.774-1.76-2.774-1.33 0-1.816 1.413-1.816 2.774z" fill="#000" fill-rule="nonzero"/><path d="M102.86 13.634a4.959 4.959 0 0 0-2.363-1.649v-.06c0-2.823-2.208-5.124-4.93-5.124-2.724 0-4.933 2.296-4.933 5.125v.07c-1.994.653-3.45 2.595-3.45 4.886 0 2.823 2.21 5.125 4.932 5.125a4.832 4.832 0 0 0 3.465-1.475 4.817 4.817 0 0 0 3.461 1.475c2.717 0 4.933-2.296 4.933-5.125 0-1.18-.4-2.334-1.115-3.248zm-3.818 7.077c-2.031 0-3.685-1.718-3.685-3.83a.637.637 0 0 0-.623-.646.634.634 0 0 0-.624.647c0 .957.257 1.855.696 2.622a3.607 3.607 0 0 1-2.69 1.213c-2.032 0-3.687-1.719-3.687-3.83 0-2.11 1.655-3.829 3.687-3.829.44 0 .868.082 1.278.234.005 0 .009.005.014.005.142.05.342.147.404.201a.6.6 0 0 0 .874-.07.659.659 0 0 0-.068-.91c-.272-.239-.696-.402-.8-.44a4.767 4.767 0 0 0-1.697-.31c-.079 0-.157 0-.236.005.084-2.04 1.702-3.671 3.687-3.671 2.031 0 3.685 1.718 3.685 3.83a3.896 3.896 0 0 1-1.55 3.122.663.663 0 0 0-.147.898c.12.174.315.272.509.272.125 0 .25-.038.361-.12a5.164 5.164 0 0 0 1.895-2.812c1.424.549 2.413 1.979 2.413 3.595-.005 2.106-1.659 3.824-3.696 3.824z" fill="#f60" fill-rule="nonzero"/></svg>

+ 3
- 0
server/sonar-web/public/images/sonarcloud/azure.svg View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22.009 22">
<path fill="#0078d7" d="M2.916 15.015v-7.25l19.093-3.758v13.446L16.62 21.92l-8.226-2.757V22l-5.478-6.985 13.216 1.728V5.052L9.812 0l.044 2.3-7.516 3L0 8.1v6.3z"/>
</svg>

BIN
server/sonar-web/public/images/sonarcloud/branch-01.png View File


BIN
server/sonar-web/public/images/sonarcloud/branch-01@2x.png View File


BIN
server/sonar-web/public/images/sonarcloud/branch-02.png View File


BIN
server/sonar-web/public/images/sonarcloud/branch-02@2x.png View File


BIN
server/sonar-web/public/images/sonarcloud/branch-03.png View File


BIN
server/sonar-web/public/images/sonarcloud/branch-03@2x.png View File


+ 3
- 0
server/sonar-web/public/images/sonarcloud/check.svg View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17.438 12.801">
<path fill="#3dc92c" d="M17.184.255a.877.877 0 0 0-1.237 0L5.507 10.689 1.491 6.674A.873.873 0 0 0 .254 7.906l4.64 4.64a.877.877 0 0 0 1.237 0L17.184 1.489a.872.872 0 0 0 0-1.234z" data-name="Tracé 9550"/>
</svg>

+ 188
- 0
server/sonar-web/public/images/sonarcloud/collab.svg View File

@@ -0,0 +1,188 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 536.82 112.395">
<defs>
<style>
.cls-2{fill:#dee3e8}.cls-4{fill:#141720}.cls-5{fill:#dfb28b}.cls-7{fill:#e7ecf2}.cls-8{clip-path:url(#clip-path-2)}.cls-12,.cls-9{fill:#8a8c8f}.cls-12{opacity:.445}.cls-15{fill:#b08874}.cls-18{clip-path:url(#clip-path-5)}.cls-20,.cls-21{fill:#c90418}.cls-21{fill-rule:evenodd}
</style>
<clipPath id="clip-path">
<ellipse cx="50.082" cy="50.082" rx="50.082" ry="50.082"/>
</clipPath>
<clipPath id="clip-path-2">
<path fill="none" d="M0 0h70.847v6.672H0z"/>
</clipPath>
<clipPath id="clip-path-4">
<ellipse cx="49.732" cy="49.732" rx="49.732" ry="49.732"/>
</clipPath>
<clipPath id="clip-path-5">
<ellipse cx="49.732" cy="49.732" rx="49.732" ry="49.732"/>
</clipPath>
</defs>
<g transform="translate(-438.564 -2511.542)">
<g transform="translate(875.22 2514.73)">
<ellipse cx="50.082" cy="50.082" class="cls-2" rx="50.082" ry="50.082"/>
<g clip-path="url(#clip-path)">
<path d="M31.082 79.513a5.581 5.581 0 0 1-2.022 4.684 2.121 2.121 0 0 1-1.277.373 2.923 2.923 0 0 1-1.277-.373c-1.224-.745-2.024-2.608-2.024-4.684a6.637 6.637 0 0 1 .639-2.98 3.207 3.207 0 0 1 2.661-2.129 3.143 3.143 0 0 1 2.661 2.129 6.637 6.637 0 0 1 .639 2.98z" class="cls-4"/>
<path d="M31.082 73.553a6.637 6.637 0 0 1-.639 2.98 3.206 3.206 0 0 1-2.661 2.129 3.143 3.143 0 0 1-2.661-2.129 7.437 7.437 0 0 1-.639-2.98 6.637 6.637 0 0 1 .639-2.98 3.207 3.207 0 0 1 2.661-2.129 3.143 3.143 0 0 1 2.661 2.129 6.8 6.8 0 0 1 .639 2.98z" class="cls-4"/>
<path d="M31.082 67.645a6.637 6.637 0 0 1-.639 2.98 3.207 3.207 0 0 1-2.661 2.129 3.143 3.143 0 0 1-2.661-2.129 7.437 7.437 0 0 1-.639-2.98 6.637 6.637 0 0 1 .639-2.98 3.207 3.207 0 0 1 2.661-2.129 3.143 3.143 0 0 1 2.661 2.129 6.637 6.637 0 0 1 .639 2.98z" class="cls-4"/>
<path d="M31.082 61.737a6.637 6.637 0 0 1-.639 2.98 3.207 3.207 0 0 1-2.661 2.129 3.143 3.143 0 0 1-2.661-2.129 7.437 7.437 0 0 1-.639-2.98 6.638 6.638 0 0 1 .639-2.98 3.207 3.207 0 0 1 2.661-2.129 3.143 3.143 0 0 1 2.661 2.129 6.638 6.638 0 0 1 .639 2.98z" class="cls-4"/>
<path d="M31.081 55.83a8.263 8.263 0 0 1-.16 1.65 9.733 9.733 0 0 1-.426 1.331 3.207 3.207 0 0 1-2.661 2.129 3.143 3.143 0 0 1-2.661-2.129 7.437 7.437 0 0 1-.639-2.98 6.637 6.637 0 0 1 .639-2.98 3.207 3.207 0 0 1 2.662-2.13 2.7 2.7 0 0 1 .692.106 3.666 3.666 0 0 1 1.969 2.022 7.44 7.44 0 0 1 .585 2.981z" class="cls-4"/>
<path d="M31.082 49.922a6.637 6.637 0 0 1-.639 2.98 5.32 5.32 0 0 1-.961 1.385 2.479 2.479 0 0 1-1.7.745 3.143 3.143 0 0 1-2.661-2.129 7.437 7.437 0 0 1-.639-2.981 6.637 6.637 0 0 1 .639-2.98 3.207 3.207 0 0 1 2.661-2.129 3.143 3.143 0 0 1 2.661 2.129 6.637 6.637 0 0 1 .639 2.98z" class="cls-4"/>
<path d="M31.082 43.962v.16a6.244 6.244 0 0 1-.639 2.768 3.316 3.316 0 0 1-2.342 2.076c-.106 0-.213.053-.373.053a3.143 3.143 0 0 1-2.661-2.129 7.437 7.437 0 0 1-.639-2.98 6.637 6.637 0 0 1 .639-2.98 4.13 4.13 0 0 1 .852-1.284 2.707 2.707 0 0 1 1.863-.9 3.143 3.143 0 0 1 2.661 2.129 7.635 7.635 0 0 1 .639 3.087z" class="cls-4"/>
<path d="M31.082 38.052a6.637 6.637 0 0 1-.639 2.98 3.4 3.4 0 0 1-2.342 2.129c-.106 0-.213.053-.319.053a3.143 3.143 0 0 1-2.661-2.129 7.437 7.437 0 0 1-.639-2.978 6.494 6.494 0 0 1 .213-1.81c.479-1.916 1.65-3.247 3.087-3.247 1.809-.052 3.3 2.183 3.3 5.002zM31.029 90.69h-6.44l1.916-6.493 1.277-4.151 1.277 4.151.585 2.023z" class="cls-4"/>
<g>
<path d="M75.63 79.513c0 2.821-1.49 5.109-3.3 5.109s-3.3-2.289-3.3-5.109 1.49-5.109 3.3-5.109c1.863 0 3.3 2.289 3.3 5.109z" class="cls-4"/>
<path d="M75.63 73.552c0 2.821-1.49 5.109-3.3 5.109s-3.3-2.289-3.3-5.109 1.49-5.109 3.3-5.109c1.863.053 3.3 2.342 3.3 5.109z" class="cls-4"/>
<path d="M75.63 67.644c0 2.821-1.49 5.109-3.3 5.109s-3.3-2.289-3.3-5.109 1.49-5.109 3.3-5.109c1.863 0 3.3 2.289 3.3 5.109z" class="cls-4"/>
<path d="M75.63 61.737c0 2.821-1.49 5.109-3.3 5.109s-3.3-2.289-3.3-5.109 1.49-5.109 3.3-5.109c1.863 0 3.3 2.289 3.3 5.109z" class="cls-4"/>
<path d="M75.63 55.829c0 2.821-1.49 5.109-3.3 5.109s-3.3-2.289-3.3-5.109 1.49-5.109 3.3-5.109c1.863 0 3.3 2.289 3.3 5.109z" class="cls-4"/>
<path d="M75.63 49.921c0 2.821-1.49 5.109-3.3 5.109s-3.3-2.289-3.3-5.109 1.49-5.109 3.3-5.109c1.863 0 3.3 2.289 3.3 5.109z" class="cls-4"/>
<path d="M75.63 43.961c0 2.821-1.49 5.109-3.3 5.109s-3.3-2.289-3.3-5.109 1.49-5.109 3.3-5.109c1.863.053 3.3 2.342 3.3 5.109z" class="cls-4"/>
<path d="M75.63 38.053c0 2.821-1.49 5.109-3.3 5.109s-3.3-2.289-3.3-5.109 1.49-5.109 3.3-5.109c1.863.053 3.3 2.289 3.3 5.109zM72.329 79.992l-3.193 10.7h6.44z" class="cls-4"/>
</g>
<path d="M79.089 106.87H21.023a28.577 28.577 0 0 1 1.543-9.367c.16-.532.373-1.064.585-1.6.213-.532.426-1.011.692-1.543a31.021 31.021 0 0 1 2.076-3.672 16.9 16.9 0 0 1 1.437-1.969c.373-.426.692-.852 1.064-1.277a6.373 6.373 0 0 1 .585-.639l.585-.585.053-.053a29.105 29.105 0 0 1 3.087-2.661 19.239 19.239 0 0 1 1.7-1.171c.053-.053.16-.106.213-.16a14.682 14.682 0 0 1 1.543-.9c.213-.106.373-.213.585-.319a.186.186 0 0 0 .106-.053 2.159 2.159 0 0 1 .479-.266c.053-.053.106-.053.16-.106.106-.106.266-.16.373-.266a2.922 2.922 0 0 0 .479-.373 2.93 2.93 0 0 0 .479-.373 18.124 18.124 0 0 0 2.5-2.448 22.428 22.428 0 0 0 1.863-2.555 18.76 18.76 0 0 0 1.49-3.14 15.923 15.923 0 0 0 .532-1.7c.106-.426.213-.852.266-1.224a21.665 21.665 0 0 0 .266-3.247h8.516a21.542 21.542 0 0 0 .266 3.193 10.9 10.9 0 0 0 .266 1.277c.16.585.319 1.118.479 1.7a17.441 17.441 0 0 0 1.49 3.193 18.386 18.386 0 0 0 4.364 5c.16.106.266.213.426.319.053.053.106.053.16.106.106.053.16.106.266.16.106.106.266.16.373.266.053.053.106.053.106.106a1.115 1.115 0 0 1 .319.213l.319.16c.106.053.213.16.319.213s.213.16.319.213c.053 0 .053.053.106.053l.16.106c.053 0 .053.053.106.053.16.106.266.16.426.266.213.16.479.266.692.426a7.9 7.9 0 0 0 .692.426 7.651 7.651 0 0 1 1.331.958l1.6 1.277c.479.426.958.851 1.437 1.331l.106.106a31.514 31.514 0 0 1 3.619 4.364 27.807 27.807 0 0 1 5.062 16.182z" class="cls-5"/>
<path fill="#9d78dc" d="M79.089 106.87H21.023a28.577 28.577 0 0 1 1.543-9.367c.16-.532.373-1.064.585-1.6.213-.532.426-1.011.692-1.543a31.032 31.032 0 0 1 2.076-3.672 16.9 16.9 0 0 1 1.437-1.969c.373-.426.692-.852 1.064-1.277a6.389 6.389 0 0 1 .585-.639l.585-.585.053-.053a29.1 29.1 0 0 1 3.087-2.661 19.242 19.242 0 0 1 1.7-1.171c.053-.053.16-.107.213-.16a14.674 14.674 0 0 1 1.543-.9c.213-.106.373-.213.585-.319a.186.186 0 0 0 .106-.053 2.158 2.158 0 0 1 .479-.266 2.952 2.952 0 0 0 .426-.319c.053-.053.106-.106.16-.106a1.864 1.864 0 0 1 .426-.266.052.052 0 0 0 .053-.053c.16-.106.266-.213.426-.319.319.319.639.639.958.9.16.16.319.266.479.426.16.106.319.266.479.373.053.053.053.053.106.053l.479.319a12.744 12.744 0 0 0 1.118.692c.213.106.373.213.585.319a3.26 3.26 0 0 0 .639.266c.053 0 .053.053.106.053.479.213.958.373 1.437.532.16.053.373.106.585.16a1.575 1.575 0 0 0 .532.106c.053 0 .053 0 .106.053.532.106 1.118.213 1.7.319.213 0 .373.053.585.053a9.416 9.416 0 0 0 1.224.053h.758c.266 0 .532-.053.745-.053s.426-.053.639-.053h.16a1.555 1.555 0 0 0 .479-.106.4.4 0 0 0 .213-.053c.106 0 .266-.053.373-.053a1.354 1.354 0 0 0 .373-.106 2.637 2.637 0 0 0 .692-.213c.213-.053.479-.16.692-.213a2.674 2.674 0 0 0 .692-.266l.319-.16a16.019 16.019 0 0 0 1.65-.851c.16-.106.373-.213.532-.319a2.319 2.319 0 0 1 .373-.213.531.531 0 0 0 .266-.213c.213-.16.373-.266.585-.426a4.8 4.8 0 0 0 .532-.479c.373-.319.692-.639 1.064-.958a2.363 2.363 0 0 0 .585.426l.053.053h.053a4.6 4.6 0 0 0 .532.373c.053.053.106.053.106.107a5.6 5.6 0 0 1 .585.373 4.4 4.4 0 0 0 .692.373c.053 0 .053.053.106.053.053.053.106.053.16.106.053 0 .053.053.106.053.16.106.266.16.426.266.213.16.479.266.692.426a7.892 7.892 0 0 0 .692.426 7.649 7.649 0 0 1 1.331.958c.532.426 1.118.851 1.6 1.277s.958.852 1.437 1.33l.106.107a31.507 31.507 0 0 1 3.619 4.364 28.041 28.041 0 0 1 5.106 16.285z"/>
<g>
<path d="M50.136 84.304l-.053.053a7.871 7.871 0 0 1-6.653 3.619 8.119 8.119 0 0 1-5.8-2.5l-2.98-3.193a14.651 14.651 0 0 1 1.543-.9c.213-.106.373-.213.585-.319a.186.186 0 0 0 .106-.053 2.156 2.156 0 0 1 .479-.266c.053-.053.106-.053.16-.106.106-.053.213-.16.319-.213.053 0 .053-.053.106-.053a2.926 2.926 0 0 0 .479-.372l.053-.053c.16-.106.266-.213.426-.319.319.319.639.639.958.9.16.16.319.266.479.426.16.106.319.266.479.373.053.053.053.053.106.053l.479.319a12.765 12.765 0 0 0 1.118.692c.213.106.373.213.585.319a3.257 3.257 0 0 0 .639.266c.053 0 .053.053.106.053.479.213.958.373 1.437.532.16.053.373.106.585.16a1.577 1.577 0 0 0 .532.106c.053 0 .053 0 .106.053a16.092 16.092 0 0 0 1.7.319 2.184 2.184 0 0 0 .585.053 9.425 9.425 0 0 0 1.224.053z" class="cls-7"/>
<path d="M65.517 82.281l-2.927 3.14a7.948 7.948 0 0 1-12.454-1.117v-.053a15.772 15.772 0 0 0 11.177-4.683 10.4 10.4 0 0 0 1.224.9c.053.053.106.053.106.106a5.592 5.592 0 0 1 .585.373 4.4 4.4 0 0 0 .692.373c.053 0 .053.053.107.053.479.266.958.532 1.437.852z" class="cls-7"/>
</g>
<path d="M65.57 18.093a27.49 27.49 0 0 1-2.08 10.487 27.159 27.159 0 0 1-25.011 16.605 27.813 27.813 0 0 1-10.378-2.022l-.319-.16c-.106-.053-.16-.053-.266-.106a33.853 33.853 0 0 1-1.6-3.087 24.856 24.856 0 0 1-1.226-3.517 26.281 26.281 0 0 1 38.32-29.7c.16.319.319.692.479 1.064a29.72 29.72 0 0 1 1.224 3.672 25.578 25.578 0 0 1 .857 6.764z" class="cls-4"/>
<path d="M76.319 29.432a26.313 26.313 0 0 1-2.608 11.389A26.737 26.737 0 0 1 63.492 28.58a27.518 27.518 0 0 1 0-20.969c.106-.213.16-.426.266-.639a26.429 26.429 0 0 1 12.561 22.46z" class="cls-4"/>
<path d="M72.329 28.101v17.936a1.812 1.812 0 0 1-.053.532.905.905 0 0 1-.053.373v.212a1.172 1.172 0 0 1-.053.426 4.109 4.109 0 0 1-.106.8.4.4 0 0 1-.053.213c0 .106-.053.266-.053.373v.053c-.053.16-.053.319-.106.479l-.16.8v.213c0 .106-.053.213-.053.319v.053a.2.2 0 0 1-.053.16c0 .106-.053.213-.053.319 0 .053-.053.106-.053.16s-.053.106-.053.16c-.106.426-.266.9-.373 1.331a3 3 0 0 1-.213.639v.053c-.053.16-.106.373-.16.532v.053c0 .053-.053.106-.053.16a2.224 2.224 0 0 1-.213.532c-.106.213-.16.426-.266.639a2.487 2.487 0 0 1-.266.532c0 .053-.053.053-.053.106-.106.213-.16.373-.266.585a5.8 5.8 0 0 1-.319.585v.053a12.009 12.009 0 0 0-.585 1.171l-.319.532a27.4 27.4 0 0 1-2.821 4.045c-.16.16-.266.373-.426.532-.213.266-.426.479-.639.745a5.827 5.827 0 0 1-.532.585v.053a22.566 22.566 0 0 1-1.6 1.6l-.319.319a5.655 5.655 0 0 1-.585.479c-.16.106-.319.266-.479.373-.373.319-.8.639-1.171.9-.16.106-.319.266-.479.373-.266.213-.532.373-.852.585l-.479.319a.052.052 0 0 0-.053.053c-.532.319-1.064.639-1.6.9-.16.053-.266.16-.426.213a1.594 1.594 0 0 0-.426.213 2.223 2.223 0 0 1-.532.213c-.053.053-.16.053-.213.106-.213.106-.426.16-.639.266-.266.106-.532.16-.8.266-.16.053-.373.106-.585.16h-.053a1.89 1.89 0 0 1-.532.106.2.2 0 0 0-.16.053 1.474 1.474 0 0 1-.479.053 2.591 2.591 0 0 1-.639.053h-1.49a1.473 1.473 0 0 1-.479-.053h-.101c-.213-.053-.426-.053-.639-.106-.16-.053-.373-.053-.532-.106a15.18 15.18 0 0 1-2.874-.958 19 19 0 0 1-2.5-1.331c-.053-.053-.106-.053-.16-.106-.373-.213-.745-.479-1.118-.745a4.443 4.443 0 0 0-.639-.426c-.639-.479-1.277-1.011-1.916-1.543-.16-.16-.373-.319-.532-.479s-.373-.319-.532-.479a12.722 12.722 0 0 1-1.171-1.224.052.052 0 0 1-.053-.053 4.8 4.8 0 0 1-.479-.532c-.426-.479-.852-1.011-1.277-1.543-.16-.213-.319-.373-.479-.585-.532-.745-1.064-1.49-1.6-2.289-.106-.213-.266-.426-.373-.639a5.821 5.821 0 0 1-.426-.8c-.213-.373-.426-.745-.639-1.171-.319-.639-.585-1.277-.852-1.916l-.16-.479a4.043 4.043 0 0 1-.213-.585c-.053-.106-.053-.16-.106-.266-.053-.213-.16-.373-.213-.585a4.5 4.5 0 0 1-.266-.9c-.106-.266-.16-.585-.266-.852-.106-.319-.16-.639-.266-.958v-.16a10.9 10.9 0 0 1-.266-1.277c-.053-.16-.053-.319-.106-.479l-.16-1.277a2.183 2.183 0 0 1-.053-.585c0-.213-.053-.426-.053-.585a7.86 7.86 0 0 1-.051-1.122V28.101A22.3 22.3 0 0 1 48.858 5.854h2.661a1.474 1.474 0 0 1 .479.053h.426a21.314 21.314 0 0 1 2.555.426 22.362 22.362 0 0 1 4.151 1.384 22.779 22.779 0 0 1 3.513 1.969c.532.373 1.011.745 1.49 1.118.16.16.373.319.532.479a19.4 19.4 0 0 1 2.874 3.034 22.163 22.163 0 0 1 4.737 13.518.578.578 0 0 1 .053.266z" class="cls-5"/>
<path d="M76.321 29.431a26.289 26.289 0 0 1-.9 6.812 28.192 28.192 0 0 1-1.224 3.566c-.16.373-.319.692-.479 1.064-.479-.319-.9-.639-1.384-.958a11.7 11.7 0 0 1-.958-.745 27.785 27.785 0 0 1-2.294-2.077 27.4 27.4 0 0 1-5.645-8.46 27.159 27.159 0 0 1-25.011 16.605 27.813 27.813 0 0 1-10.378-2.022l-.319-.16c-.106-.053-.16-.053-.266-.106a33.856 33.856 0 0 1-1.6-3.087 24.856 24.856 0 0 1-1.226-3.513A26.324 26.324 0 0 1 63.015 6.599c.266.16.479.266.745.426a26.271 26.271 0 0 1 12.561 22.406z" class="cls-4"/>
</g>
</g>
<g class="cls-8">
<g transform="translate(-388.764 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-377.764 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-366.764 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-355.764 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-344.764 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-333.764 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-322.764 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
</g>
<g class="cls-8">
<g transform="translate(-125.862 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-114.862 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-103.862 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-92.862 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-81.862 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-70.862 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
<g transform="translate(-59.862 2156.848)">
<circle cx="2" cy="2" r="2" class="cls-9" transform="translate(930 404)"/>
<circle cx="1" cy="1" r="1" class="cls-9" transform="translate(920 333)"/>
</g>
</g>
<rect width="209.437" height="112.395" fill="#434447" rx="2" transform="translate(603.316 2511.542)"/>
<rect width="43.119" height="7.042" fill="#91dc5a" rx="3.521" transform="translate(664.329 2560.551)"/>
<rect width="80.878" height="7.043" class="cls-12" rx="3.521" transform="translate(714.603 2560.551)"/>
<rect width="80.915" height="7.043" class="cls-12" rx="3.521" transform="translate(677.631 2574.636)"/>
<rect width="23.898" height="7.043" class="cls-9" rx="3.521" transform="translate(763.324 2574.636)"/>
<rect width="87.589" height="7.043" class="cls-12" rx="3.521" transform="translate(644.105 2588.723)"/>
<rect width="45.779" height="7.043" class="cls-9" rx="3.521" transform="translate(622.686 2602.807)"/>
<rect width="63.386" height="7.043" class="cls-9" rx="3.521" transform="translate(622.686 2532.38)"/>
<rect width="94.727" height="7.043" class="cls-12" rx="3.521" transform="translate(644.105 2546.466)"/>
<path fill="#2d3032" d="M605.316 2511.542h205.437a2 2 0 0 1 2 2v9.114H603.316v-9.114a2 2 0 0 1 2-2z"/>
<g transform="translate(438.564 2513.704)">
<ellipse cx="49.732" cy="49.732" class="cls-2" rx="49.732" ry="49.732"/>
<g clip-path="url(#clip-path-4)">
<path d="M80.329 35.246c0 .859-.038 1.707-.1 2.549a31.285 31.285 0 0 1-.641 4.191 30.593 30.593 0 0 1-4.363 10.19 30.6 30.6 0 0 1-2.6 3.37c-.234.261-.468.516-.707.767a28.852 28.852 0 0 1-2.479 2.333c-.223.19-.446.375-.674.555a29.709 29.709 0 0 1-3.426 2.366c-.37.223-.75.435-1.131.642a30.663 30.663 0 0 1-14.469 3.637 30.713 30.713 0 0 1-14.49-3.637c-.505-.277-1.005-.56-1.489-.859a30.189 30.189 0 0 1-4.153-3.06c-.142-.12-.288-.245-.424-.375a30.29 30.29 0 0 1-2.728-2.81c-.158-.185-.315-.37-.467-.56a30.765 30.765 0 0 1-3.349-5.07c-.093-.174-.179-.348-.266-.522a30.8 30.8 0 0 1-1.865-4.615q-.147-.481-.277-.962a29.863 29.863 0 0 1-.946-5.114c-.027-.293-.054-.587-.076-.886-.043-.7-.071-1.413-.071-2.126 0-.429.011-.853.027-1.277.005-.212.016-.418.033-.63a29.664 29.664 0 0 1 .527-4.082c.06-.3.125-.6.19-.892a29.63 29.63 0 0 1 .9-3.114c.125-.37.261-.739.4-1.1a29.539 29.539 0 0 1 1.484-3.24q.661-1.247 1.435-2.424c.331-.511.679-1.005 1.044-1.494.4-.538.815-1.06 1.25-1.565a28.929 28.929 0 0 1 2.424-2.533c.293-.277.587-.543.891-.8a29.649 29.649 0 0 1 3.652-2.712c.435-.277.875-.543 1.326-.793.652-.37 1.321-.718 2.006-1.038q.636-.3 1.288-.571a30.629 30.629 0 0 1 3.964-1.339c.685-.179 1.38-.331 2.087-.462a30.473 30.473 0 0 1 3.25-.435q.831-.065 1.68-.081c.245-.005.489-.011.739-.011q.88 0 1.745.049c.37.022.739.049 1.1.081a29.774 29.774 0 0 1 4.5.761c.337.081.669.169 1 .261a30.468 30.468 0 0 1 4.756 1.788c.435.207.859.419 1.283.647.794.418 1.56.875 2.31 1.364.131.087.266.174.4.261a29.954 29.954 0 0 1 2.995 2.31c.63.538 1.228 1.109 1.8 1.707a29.155 29.155 0 0 1 2.515 2.92c.158.2.31.4.45.608a30.012 30.012 0 0 1 2.071 3.3c.114.207.223.419.326.625a30.335 30.335 0 0 1 2.386 6.289 29.759 29.759 0 0 1 .669 3.424 30.565 30.565 0 0 1 .288 4.194z" class="cls-4"/>
<path d="M30.999 55.932a.422.422 0 0 1-.005.081 2.675 2.675 0 0 1-1.386 2.277 1.749 1.749 0 0 1-.321.152 2.6 2.6 0 0 1-.989.19 2.7 2.7 0 0 1-2.7-2.7 2.836 2.836 0 0 1 .1-.744 2.628 2.628 0 0 1 .283-.641 2.694 2.694 0 0 1 3.011-1.217 2.5 2.5 0 0 1 .935.456 2.792 2.792 0 0 1 .6.636 2.669 2.669 0 0 1 .472 1.51zM23.602 26.837a2.7 2.7 0 0 1-3.881 2.424 2.754 2.754 0 0 1-.538-.343 2.7 2.7 0 0 1 .891-4.653 2.6 2.6 0 0 1 .826-.131 1.97 1.97 0 0 1 .31.022 2.677 2.677 0 0 1 2.354 2.25 2.267 2.267 0 0 1 .038.431zM38.723 8.809a2.7 2.7 0 0 1-2.065 2.625 2.662 2.662 0 0 1-.631.076 2.693 2.693 0 0 1-2.641-2.125 2.541 2.541 0 0 1-.066-.576 2.573 2.573 0 0 1 .093-.685 2.7 2.7 0 0 1 5.305.685z" class="cls-4"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(61.431 7.268)"/>
<path d="M23.047 35.779a2.625 2.625 0 0 1-.185.973 2.7 2.7 0 0 1-2.516 1.729 2.666 2.666 0 0 1-1.065-.217 2.993 2.993 0 0 1-.62-.375 2.7 2.7 0 0 1 .147-4.326 2.436 2.436 0 0 1 .386-.217 2.634 2.634 0 0 1 1.152-.261 2.694 2.694 0 0 1 2.516 1.705 2.6 2.6 0 0 1 .185.989z" class="cls-4"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(67.692 54.359)"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(70.468 51.22)"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(64.126 56.616)"/>
<path d="M52.642 5.358a2.712 2.712 0 0 1-2.7 2.7 1.29 1.29 0 0 1-.207-.011 2.614 2.614 0 0 1-1.408-.532 2.687 2.687 0 0 1-1.082-2.158 2.474 2.474 0 0 1 .071-.608 2.643 2.643 0 0 1 1.011-1.544 2.605 2.605 0 0 1 1.408-.532 1.291 1.291 0 0 1 .207-.011 2.715 2.715 0 0 1 2.642 2.125 2.819 2.819 0 0 1 .058.571z" class="cls-4"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(73.166 16.185)"/>
<path d="M29.608 51.22a3.85 3.85 0 0 1-.207 1.258 3.708 3.708 0 0 1-.4.853 3.958 3.958 0 0 1-2.544 1.777 3.436 3.436 0 0 1-.75.081.315.315 0 0 1-.07.005 3.975 3.975 0 0 1-3.549-5.772 3.113 3.113 0 0 1 .283-.467 3.972 3.972 0 0 1 3.267-1.712q.171 0 .342.016a3.979 3.979 0 0 1 3.631 3.962zM37.103 57.432a3.966 3.966 0 0 1-2.7 3.761 3.562 3.562 0 0 1-.641.158 3.506 3.506 0 0 1-.636.054 3.957 3.957 0 0 1-3.837-2.962 2.81 2.81 0 0 1-.1-.527 3.569 3.569 0 0 1-.033-.484 3.968 3.968 0 0 1 1.158-2.8 2.613 2.613 0 0 1 .228-.207 3.9 3.9 0 0 1 2.587-.967 3.98 3.98 0 0 1 3.974 3.974zM27.575 22.43a3.976 3.976 0 0 1-3.972 3.978h-.038a3.956 3.956 0 0 1-2.755-1.152 3.774 3.774 0 0 1-.734-.989 3.964 3.964 0 0 1 1.984-5.495 3.839 3.839 0 0 1 1.544-.315 3.417 3.417 0 0 1 .527.038 3.944 3.944 0 0 1 3.4 3.364 3.257 3.257 0 0 1 .044.571z" class="cls-4"/>
<ellipse cx="3.976" cy="3.976" class="cls-4" rx="3.976" ry="3.976" transform="translate(56.176 4.081)"/>
<path d="M44.658 7.264a3.92 3.92 0 0 1-.277 1.451 3.969 3.969 0 0 1-6.164 1.668 3.914 3.914 0 0 1-1.495-2.831 2.442 2.442 0 0 1-.016-.288 3.777 3.777 0 0 1 .141-1.027 3.96 3.96 0 0 1 5.544-2.555 3.972 3.972 0 0 1 2.267 3.582zM25.602 40.529a3.983 3.983 0 0 1-3.979 3.973 3.814 3.814 0 0 1-1.12-.163 3.53 3.53 0 0 1-.8-.331 3.966 3.966 0 0 1-1.044-6.12 3.017 3.017 0 0 1 .543-.511 3.943 3.943 0 0 1 3.66-.626 3.98 3.98 0 0 1 2.74 3.778z" class="cls-4"/>
<ellipse cx="3.976" cy="3.976" class="cls-4" rx="3.976" ry="3.976" transform="translate(66.898 12.034)"/>
<ellipse cx="3.977" cy="3.976" class="cls-4" rx="3.977" ry="3.976" transform="translate(72.736 20.704)"/>
<path d="M36.706 12.031a3.98 3.98 0 0 1-3.978 3.983 3.748 3.748 0 0 1-.929-.114 3.977 3.977 0 0 1-2.951-2.995 3.791 3.791 0 0 1-.1-.87 1.36 1.36 0 0 1 .011-.212 3.966 3.966 0 0 1 3.968-3.761 3.639 3.639 0 0 1 .69.065 3.8 3.8 0 0 1 1.3.467 3.95 3.95 0 0 1 1.941 2.843 3.6 3.6 0 0 1 .048.594zM26.232 45.931a3.537 3.537 0 0 1-3.549 3.544h-.044a3.586 3.586 0 0 1-.549-.054 3.545 3.545 0 0 1-2.951-3.49 3.481 3.481 0 0 1 .571-1.924 3.424 3.424 0 0 1 .522-.631 3.5 3.5 0 0 1 2.457-.994 3.552 3.552 0 0 1 3.549 3.549zM29.151 18.88a3.537 3.537 0 0 1-1.625 2.978 3.494 3.494 0 0 1-1.924.57 3.544 3.544 0 0 1-3.549-3.549.751.751 0 0 1 .005-.109 3.537 3.537 0 0 1 2.7-3.332 3.277 3.277 0 0 1 .843-.1 3.381 3.381 0 0 1 .821.1 3.542 3.542 0 0 1 2.723 3.343.672.672 0 0 1 .006.099z" class="cls-4"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(51.037 2.872)"/>
<path d="M25.205 31.452a3.547 3.547 0 0 1-6.044 2.522 3.171 3.171 0 0 1-.354-.413 3.537 3.537 0 0 1 .375-4.642 3.262 3.262 0 0 1 .728-.549 3.515 3.515 0 0 1 1.745-.462 3.6 3.6 0 0 1 2.8 1.37 3.51 3.51 0 0 1 .75 2.174z" class="cls-4"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(75.502 30.909)"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(73.166 40.527)"/>
<path d="M31.847 15.336a3.137 3.137 0 0 1-.049.56 3.529 3.529 0 0 1-2.652 2.881 3.348 3.348 0 0 1-.848.1 3.535 3.535 0 0 1-3.125-1.88 3.373 3.373 0 0 1-.413-1.56.682.682 0 0 1-.005-.1 3.545 3.545 0 0 1 3.543-3.547 3.256 3.256 0 0 1 .462.033 3.34 3.34 0 0 1 .979.277 3.527 3.527 0 0 1 2.108 3.236z" class="cls-4"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(64.766 9.059)"/>
<path d="M49.06 5.357a3.554 3.554 0 0 1-3.544 3.549 3.42 3.42 0 0 1-1.136-.19 3.535 3.535 0 0 1-2.4-3.071c-.006-.1-.011-.19-.011-.288a3.5 3.5 0 0 1 .422-1.675 3.552 3.552 0 0 1 6.6.984 3.6 3.6 0 0 1 .069.691z" class="cls-4"/>
<path d="M78.564 104.474v.006H20.9v-.006a28.687 28.687 0 0 1 8.512-20.441c.2-.2.391-.386.593-.576a30.055 30.055 0 0 1 2.527-2.114c.272-.2.549-.4.826-.593.571-.391 1.158-.766 1.756-1.114.283-.169.571-.332.859-.49a.019.019 0 0 1 .016-.011c.234-.125.462-.261.69-.4a5.937 5.937 0 0 0 .505-.316 17.324 17.324 0 0 0 1.451-1.038v-.006a18.234 18.234 0 0 0 6.719-11.842 18.81 18.81 0 0 0 .158-2.424l4.223.022 4.3.022a18.926 18.926 0 0 0 .152 2.369 18.182 18.182 0 0 0 6.677 11.862c.2.152.391.3.593.451a.017.017 0 0 1 .011.006c.152.119.31.228.468.331a.822.822 0 0 0 .141.1c.043.033.081.06.125.087l.049.033c.179.119.364.234.549.348.223.136.451.272.679.4a.287.287 0 0 1 .1.049c.255.142.511.288.761.44.331.19.658.391.979.6.57.37 1.12.75 1.663 1.163h.011a28.859 28.859 0 0 1 11.571 23.082z" class="cls-15"/>
<path fill="#185a7d" d="M78.564 104.474H20.9a28.687 28.687 0 0 1 8.512-20.442c.2-.2.391-.386.593-.576a30.04 30.04 0 0 1 2.527-2.114c.272-.2.549-.4.826-.593.571-.391 1.152-.766 1.75-1.12.283-.168.571-.331.859-.489a.019.019 0 0 1 .022-.006v-.005c.462-.255.918-.533 1.359-.826.207-.136.408-.277.608-.429.022-.011.038-.028.06-.038q.22-.163.44-.342l.163-.131h.005l.011.011c.348.359.717.7 1.1 1.022 0 .006 0 .006.005.006a15.51 15.51 0 0 0 9.974 3.652h.044a15.529 15.529 0 0 0 11.1-4.669l.006-.005.005-.006c.2.168.408.326.62.484.141.109.288.212.44.316.043.033.092.065.141.1s.081.06.125.087l.049.033c.179.119.364.234.549.348.223.136.451.266.679.391a.609.609 0 0 1 .1.049c.255.142.517.288.766.44.332.2.658.4.973.6.57.364 1.12.75 1.663 1.157h.011a28.928 28.928 0 0 1 11.579 23.095z"/>
<path fill="#7aa5ba" d="M64.339 79.621l-.005.006-.593.6a19.508 19.508 0 0 1-14.007 5.894h-.011a19.517 19.517 0 0 1-14.045-5.9l-.565-.582-.005-.006c.283-.168.571-.331.859-.489a.019.019 0 0 1 .022-.006v-.005c.234-.131.462-.261.69-.4.168-.1.337-.207.505-.316l.163-.114c.207-.136.413-.277.608-.429.022-.011.038-.028.06-.038.146-.114.3-.228.44-.342l.163-.131.011.011h.005v.006a13.975 13.975 0 0 0 1.1 1.016c0 .006 0 .006.005.006a15.51 15.51 0 0 0 9.974 3.652h.044a15.53 15.53 0 0 0 11.1-4.669l.006-.005.005-.006c.19.158.381.31.582.462a.017.017 0 0 1 .011.006.128.128 0 0 0 .028.016c.141.109.288.212.44.316.043.033.092.065.141.1s.081.06.125.087l.049.033c.179.119.364.234.549.348.223.136.451.266.679.391a.605.605 0 0 1 .1.049c.257.139.517.284.767.439z"/>
<path d="M71.861 29.822v12.957a26.211 26.211 0 0 1-.25 3.6 28.548 28.548 0 0 1-2.478 8.294c-.353.755-.734 1.5-1.141 2.212-.093.163-.185.326-.278.484a32.844 32.844 0 0 1-2.726 3.917c-.25.316-.511.625-.777.924a27.312 27.312 0 0 1-9.137 7.027 13.435 13.435 0 0 1-5.34 1.273 13.336 13.336 0 0 1-5.289-1.256 27.359 27.359 0 0 1-9.2-7.049c-.288-.332-.571-.669-.848-1.017a32.554 32.554 0 0 1-3.408-5.18q-.359-.685-.685-1.386c-.131-.277-.255-.56-.375-.843-.19-.429-.364-.87-.533-1.31a28.767 28.767 0 0 1-1.25-4.332c-.119-.582-.223-1.169-.3-1.767a26.214 26.214 0 0 1-.25-3.6V29.821h44.265z" class="cls-15"/>
<path d="M27.061 46.487a2.94 2.94 0 0 0 2.94-2.94V29.429h-2.94zM69.464 29.429h2.94v17.059a2.94 2.94 0 0 1-2.94-2.94z" class="cls-4"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(40.68 26.79)"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(32.478 25.987)"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(24.057 27.362)"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(51.037 26.406)"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(61.762 26.406)"/>
<ellipse cx="3.547" cy="3.547" class="cls-4" rx="3.547" ry="3.547" transform="translate(69.122 29.767)"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(47.034 27.906)"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(28.751 27.639)"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(37.981 27.639)"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(57.454 28.487)"/>
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(66.158 28.487)"/>
</g>
<g class="cls-18">
<ellipse cx="3.976" cy="3.976" class="cls-4" rx="3.976" ry="3.976" transform="translate(72.273 45.142)"/>
</g>
<g class="cls-18">
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(77.527 26.78)"/>
</g>
<g class="cls-18">
<ellipse cx="2.698" cy="2.698" class="cls-4" rx="2.698" ry="2.698" transform="translate(76.895 36.939)"/>
</g>
</g>
<path d="M508.64 2551.158a.147.147 0 0 0-.167-.167 66.049 66.049 0 0 0-8.455-.612c-4.506 0-10.29 1.391-11.292 1.391h-.89c-.445 0-2-.278-3.894-.612a45.649 45.649 0 0 0-7.4-.779 70.19 70.19 0 0 0-7.231.445 10.839 10.839 0 0 0-1.224.167.178.178 0 0 0-.167.167l-.052 2.392c0 .111.056.167.111.167l.278.111c.389.167.389 7.453 2.559 9.233 1.279 1.057 2.447 1.669 7.287 1.669a6.877 6.877 0 0 0 6.23-3c1.223-1.617 2.28-5.451 2.28-5.451a1.984 1.984 0 0 1 1.669-1.724c.056 0 1.391 0 1.724 1.724 0 0 1.057 3.838 2.281 5.451a6.76 6.76 0 0 0 6.23 3c4.839 0 6.007-.612 7.287-1.669 2.169-1.836 2.114-9.067 2.559-9.233l.278-.111c.056-.056.111-.111.111-.167zm-24.363 8.621c-.723 1.669-2.559 3.838-5.117 4-7.732.389-8.121-1.78-8.622-3.5a12.511 12.511 0 0 1-.445-4.951c.222-1.724.612-2.726 1.391-3.226a3.29 3.29 0 0 1 1.613-.556 35.542 35.542 0 0 1 4.283-.167 22.211 22.211 0 0 1 3.449.278c2.781.445 4.617 1.391 4.617 2.281a15.461 15.461 0 0 1-1.169 5.841zm21.693.445c-.5 1.724-.834 3.894-8.622 3.5-2.559-.111-4.394-2.281-5.117-4a17.256 17.256 0 0 1-1.224-5.84c0-1.279 3.5-2.559 8.065-2.559s5.284.334 5.9.779c.779.5 1.224 1.5 1.391 3.226a11.284 11.284 0 0 1-.395 4.894z" class="cls-4"/>
<g transform="translate(500.522 2587.396)">
<ellipse cx="17.943" cy="17.943" fill="#f9f9fb" rx="17.943" ry="17.943"/>
<path d="M18.015 31.343a13.548 13.548 0 1 1 13.56-13.56 13.563 13.563 0 0 1-13.56 13.56zm0-24.631A11.095 11.095 0 1 0 29.11 17.803 11.112 11.112 0 0 0 18.015 6.709z" class="cls-20"/>
<path d="M28.025 19.875c-.37-.049-.69-.419-.962-.962-.37-.764-.789-1.233-1.233-1.257-.444.025-.863.468-1.233 1.257-.69 1.43-1.923 1.43-2.613 0-.69-1.381-1.849-1.381-2.539 0a5.069 5.069 0 0 1-.641 1.011 4.509 4.509 0 0 1-.394.321c-.641.394-1.208-.592-1.553-1.331-.69-1.381-1.849-1.381-2.54 0-.69 1.43-2.071 1.849-2.835.271a5.647 5.647 0 0 0-.173-.69 2.809 2.809 0 0 0-.247-.468c-.616-.912-1.479.049-1.9.888-.3.641-.74 1.06-1.159 1.011a.389.389 0 0 1-.123-.148.356.356 0 0 1-.049-.173c0-.049-.025-.1-.025-.148a1.516 1.516 0 0 1-.025-.345c.025-.222.025-.2.049-.345a1.872 1.872 0 0 1 .1-.271c.049-.074.2-.321.247-.419a5.17 5.17 0 0 0 .37-.74c.666-1.356 2.244-2.49 3.057-.814.1.2.2.419.3.616.3.567.814 1.5 1.307.986a1.862 1.862 0 0 0 .271-.345c.2-.345.37-.74.542-1.11a1.72 1.72 0 0 1 1.751-1.011 1.206 1.206 0 0 1 1.06.74c.37.764.937 1.751 1.578 1.331a.853.853 0 0 0 .271-.247c.1-.123.2-.247.3-.394a4.215 4.215 0 0 0 .321-.567c.666-1.356 1.874-1.578 2.564-.148.419.888 1.282 2.145 2 1.233a6.152 6.152 0 0 0 .616-1.134c.394-.789.912-1.208 1.356-1.208.025 0 .1 0 .123.025a3.191 3.191 0 0 1 1.371 1.574c.173.345.542 1.183.715 1.578.1.3.148.271.148.567v.247c0 .074-.025.173-.025.247-.025.199-.074.347-.148.372z" class="cls-21"/>
</g>
<g transform="translate(934.522 2587.396)">
<ellipse cx="17.943" cy="17.943" fill="#fff" rx="17.943" ry="17.943"/>
<path d="M18.015 31.343a13.548 13.548 0 1 1 13.56-13.56 13.563 13.563 0 0 1-13.56 13.56zm0-24.631A11.095 11.095 0 1 0 29.11 17.803 11.112 11.112 0 0 0 18.015 6.709z" class="cls-20"/>
<path d="M28.025 19.875c-.37-.049-.69-.419-.962-.962-.37-.764-.789-1.233-1.233-1.257-.444.025-.863.468-1.233 1.257-.69 1.43-1.923 1.43-2.613 0-.69-1.381-1.849-1.381-2.539 0a5.069 5.069 0 0 1-.641 1.011 4.509 4.509 0 0 1-.394.321c-.641.394-1.208-.592-1.553-1.331-.69-1.381-1.849-1.381-2.54 0-.69 1.43-2.071 1.849-2.835.271a5.647 5.647 0 0 0-.173-.69 2.809 2.809 0 0 0-.247-.468c-.616-.912-1.479.049-1.9.888-.3.641-.74 1.06-1.159 1.011a.389.389 0 0 1-.123-.148.356.356 0 0 1-.049-.173c0-.049-.025-.1-.025-.148a1.516 1.516 0 0 1-.025-.345c.025-.222.025-.2.049-.345a1.872 1.872 0 0 1 .1-.271c.049-.074.2-.321.247-.419a5.17 5.17 0 0 0 .37-.74c.666-1.356 2.244-2.49 3.057-.814.1.2.2.419.3.616.3.567.814 1.5 1.307.986a1.862 1.862 0 0 0 .271-.345c.2-.345.37-.74.542-1.11a1.72 1.72 0 0 1 1.751-1.011 1.206 1.206 0 0 1 1.06.74c.37.764.937 1.751 1.578 1.331a.853.853 0 0 0 .271-.247c.1-.123.2-.247.3-.394a4.215 4.215 0 0 0 .321-.567c.666-1.356 1.874-1.578 2.564-.148.419.888 1.282 2.145 2 1.233a6.152 6.152 0 0 0 .616-1.134c.394-.789.912-1.208 1.356-1.208.025 0 .1 0 .123.025a3.191 3.191 0 0 1 1.371 1.574c.173.345.542 1.183.715 1.578.1.3.148.271.148.567v.247c0 .074-.025.173-.025.247-.025.199-.074.347-.148.372z" class="cls-21"/>
</g>
<path fill="#f3712a" d="M805.71 2605.922a6.287 6.287 0 0 0-3.016-2.026v-.065a6.309 6.309 0 1 0-12.617 0v.091a6.3 6.3 0 0 0 1.888 12.318 6.25 6.25 0 0 0 4.443-1.818 6.308 6.308 0 0 0 9.3-8.5zm-4.881 8.7a4.726 4.726 0 0 1-4.72-4.72.8.8 0 0 0-.806-.806.787.787 0 0 0-.806.806 6.17 6.17 0 0 0 .9 3.223 4.722 4.722 0 1 1-3.454-7.943 4.465 4.465 0 0 1 1.635.3h.023a2.047 2.047 0 0 1 .506.253.80026.80026 0 1 0 1.036-1.22 3.539 3.539 0 0 0-1.036-.553 6.312 6.312 0 0 0-2.164-.391h-.3a4.722 4.722 0 1 1 7.46 4.052.784.784 0 0 0-.184 1.105.807.807 0 0 0 .645.322.83.83 0 0 0 .46-.138 6.266 6.266 0 0 0 2.418-3.477 4.743 4.743 0 0 1-1.612 9.187z"/>
</g>
</svg>

BIN
server/sonar-web/public/images/sonarcloud/gears.png View File


BIN
server/sonar-web/public/images/sonarcloud/gears@2x.png View File


BIN
server/sonar-web/public/images/sonarcloud/home-branch.png View File


BIN
server/sonar-web/public/images/sonarcloud/home-branch@2x.png View File


BIN
server/sonar-web/public/images/sonarcloud/home-easy-to-use.png View File


BIN
server/sonar-web/public/images/sonarcloud/home-easy-to-use@2x.png View File


+ 3
- 0
server/sonar-web/public/images/sonarcloud/home-grey-background.svg View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3407.2 300">
<path fill="#f9f9fb" d="M0 299s117.1 9.5 333.1-89.7C574.8 98.2 888.2-28.3 1056 9.5c284 64 294 220 793.6 140.2S2344 21.5 2672 163.5s735.2 136.1 735.2 136.1v29H0V299z"/>
</svg>

BIN
server/sonar-web/public/images/sonarcloud/home-header-people.png View File


+ 7
- 0
server/sonar-web/public/images/sonarcloud/home-header.svg View File

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1817.2 417.1">
<linearGradient id="a" x1="1339.6035" x2="627.6036" y1="-266.2397" y2="245.7604" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fd6a00"/>
<stop offset="1" stop-color="#fdc300"/>
</linearGradient>
<path fill="url(#a)" d="M944.1 264.3c-49.8-120.9-76.4-154.4-167.2-204.9C751 45 695.1 7.2 535.4 5H0V0h526.4v-.1l1289.5.1c.5 1.8.9 3.4 1.3 5-120.9 0-35 198.8-295.3 259.3-223 36.8-169.7 154.2-358.4 152.4-6.9.2-13.4.3-19.8.3-128 0-152.1-37.5-199.6-152.7z"/>
</svg>

BIN
server/sonar-web/public/images/sonarcloud/home-open-transparent.png View File


BIN
server/sonar-web/public/images/sonarcloud/home-open-transparent@2x.png View File


+ 86
- 0
server/sonar-web/public/images/sonarcloud/ide.svg View File

@@ -0,0 +1,86 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 211.486 26.272">
<defs>
<style>
.cls-2{fill:#fff}.cls-12{fill:#865fc5}.cls-13{fill:#007acc}
</style>
<linearGradient id="linear-gradient" x1=".5" x2=".5" y1="-491.105" y2="-503.566" gradientUnits="objectBoundingBox">
<stop offset=".3" stop-color="#473788"/>
<stop offset=".87" stop-color="#2c2255"/>
</linearGradient>
<linearGradient id="linear-gradient-2" x1=".5" x2=".5" y1="-493.026" y2="-505.486" xlink:href="#linear-gradient"/>
<linearGradient id="linear-gradient-3" x1=".5" x2=".5" y1="-150.458" y2="-154.246" gradientUnits="objectBoundingBox">
<stop offset=".3" stop-color="#473788"/>
<stop offset=".86" stop-color="#2c2255"/>
</linearGradient>
<linearGradient id="linear-gradient-4" x2="1" y1=".321" y2=".321" gradientUnits="objectBoundingBox">
<stop offset=".26" stop-color="#f97a12"/>
<stop offset=".46" stop-color="#b07b58"/>
<stop offset=".72" stop-color="#577bae"/>
<stop offset=".91" stop-color="#1e7ce5"/>
<stop offset="1" stop-color="#087cfa"/>
</linearGradient>
<linearGradient id="linear-gradient-5" x1=".003" x2="1.212" y1=".711" y2=".28" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#f97a12"/>
<stop offset=".07" stop-color="#cb7a3e"/>
<stop offset=".15" stop-color="#9e7b6a"/>
<stop offset=".24" stop-color="#757b91"/>
<stop offset=".33" stop-color="#537bb1"/>
<stop offset=".43" stop-color="#387ccc"/>
<stop offset=".54" stop-color="#237ce0"/>
<stop offset=".66" stop-color="#147cef"/>
<stop offset=".79" stop-color="#0b7cf7"/>
<stop offset="1" stop-color="#087cfa"/>
</linearGradient>
<linearGradient id="linear-gradient-6" x1=".782" x2=".302" y1=".724" y2="1.767" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#fe315d"/>
<stop offset=".08" stop-color="#cb417e"/>
<stop offset=".16" stop-color="#9e4e9b"/>
<stop offset=".25" stop-color="#755bb4"/>
<stop offset=".34" stop-color="#5365ca"/>
<stop offset=".44" stop-color="#386ddb"/>
<stop offset=".54" stop-color="#2374e9"/>
<stop offset=".66" stop-color="#1478f3"/>
<stop offset=".79" stop-color="#0b7bf8"/>
<stop offset="1" stop-color="#087cfa"/>
</linearGradient>
<linearGradient id="linear-gradient-7" x1=".199" x2="1.034" y1=".857" y2="-.228" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#fe315d"/>
<stop offset=".04" stop-color="#f63462"/>
<stop offset=".1" stop-color="#df3a71"/>
<stop offset=".17" stop-color="#c24383"/>
<stop offset=".29" stop-color="#ad4a91"/>
<stop offset=".55" stop-color="#755bb4"/>
<stop offset=".92" stop-color="#1d76ed"/>
<stop offset="1" stop-color="#087cfa"/>
</linearGradient>
</defs>
<g transform="translate(185.4)">
<ellipse cx="13.043" cy="13.043" fill="#6abd88" rx="13.043" ry="13.043"/>
<path d="M9.205 20.366a1.621 1.621 0 0 1-.932-.252c-1.779-1.155-.429-5.59 1.863-9.149 2.236-3.335 4.891-5.627 6.633-5.7a1.649 1.649 0 0 1 .978.252c.773.5 1.006 1.64.689 3.289a.335.335 0 0 1-.652-.13c.261-1.323.112-2.273-.391-2.6a1 1 0 0 0-.587-.14c-1.528.056-4.081 2.329-6.074 5.4a17.59 17.59 0 0 0-2.4 5.338c-.335 1.472-.214 2.525.335 2.879s1.463.075 2.581-.727a.335.335 0 1 1 .382.54 4.453 4.453 0 0 1-2.422 1z" class="cls-2"/>
<path d="M19.434 15.419a.335.335 0 0 1-.121-.643c1.09-.419 1.733-.978 1.761-1.537s-.745-1.37-2.133-1.966a17.58 17.58 0 0 0-5.748-1.174h-1.259c-4.253 0-6.853 1.192-6.922 2.329 0 .559.531 1.165 1.584 1.7a.335.335 0 0 1-.307.587c-1.314-.68-1.984-1.481-1.938-2.329.093-1.733 3.2-2.944 7.584-2.963h1.295a18.251 18.251 0 0 1 5.981 1.23c1.686.717 2.59 1.64 2.534 2.609s-.8 1.584-2.18 2.124z" class="cls-2"/>
<path d="M16.285 20.741a4.369 4.369 0 0 1-2.7-1.425 18.242 18.242 0 0 1-3.559-4.966A18.232 18.232 0 0 1 8.11 8.552c-.224-1.863.13-3.065 1-3.5a1.528 1.528 0 0 1 .587-.158 3.727 3.727 0 0 1 2.413 1.078.335.335 0 1 1-.429.512 3.149 3.149 0 0 0-1.966-.932.857.857 0 0 0-.333.089c-.587.3-.82 1.332-.634 2.795a17.562 17.562 0 0 0 1.863 5.59 17.571 17.571 0 0 0 3.419 4.779c1.109 1.034 2.078 1.453 2.665 1.155s.8-1.248.652-2.655a16.77 16.77 0 0 0-1.649-5.282.335.335 0 1 1 .6-.289 17.422 17.422 0 0 1 1.7 5.506c.177 1.714-.186 2.9-1.016 3.317a1.547 1.547 0 0 1-.7.177z" class="cls-2"/>
<path d="M14.096 12.931a1 1 0 1 1-1-1 1 1 0 0 1 1 1z" class="cls-2"/>
</g>
<path fill="#2c2255" d="M7.169 16.546H3.154a11.366 11.366 0 0 0 2.963 4.9 11.32 11.32 0 0 0 8.3 3.447 12.6 12.6 0 0 0 1.863-.14 11.18 11.18 0 0 0 6.4-3.307 11.357 11.357 0 0 0 2.981-4.9H7.169zm-2.221-5.45H2.837a12.251 12.251 0 0 0-.149 1.416h23.44a12.111 12.111 0 0 0-.149-1.416M2.707 13.817a12.186 12.186 0 0 0 .13 1.416H25.97a12.186 12.186 0 0 0 .158-1.416m-.457-4.034a11.45 11.45 0 0 0-2.981-4.919 11.18 11.18 0 0 0-6.381-3.289 12.643 12.643 0 0 0-1.861-.14 11.357 11.357 0 0 0-8.332 3.428 11.459 11.459 0 0 0-2.963 4.919"/>
<path fill="#f7941e" d="M2.008 13.162A12.466 12.466 0 0 1 12.703.932h-.458a12.247 12.247 0 1 0 0 24.493h.457A12.466 12.466 0 0 1 2.008 13.162z"/>
<path fill="url(#linear-gradient)" d="M23.829 14.2a7.984 7.984 0 0 0-.242-1.416H8.112A7.975 7.975 0 0 0 7.87 14.2z" transform="translate(-1.428 -1.684)"/>
<path fill="url(#linear-gradient-2)" d="M23.829 15.7H7.87a7.956 7.956 0 0 0 .242 1.416h15.456a7.984 7.984 0 0 0 .261-1.416z" transform="translate(-1.428 -1.883)"/>
<path fill="url(#linear-gradient-3)" d="M15.9 23.248a8 8 0 0 0 7.248-4.658H8.65a8 8 0 0 0 7.25 4.658z" transform="translate(-1.481 -2.081)"/>
<path d="M5.259 13.813h20.869v-1.31H2.706v1.31zm1.854-4.03h-3.96a11.46 11.46 0 0 0-.317 1.314h23.059a11.646 11.646 0 0 0-.317-1.314m-1.183 5.45H2.836a11.5 11.5 0 0 0 .3 1.314h22.526a11.617 11.617 0 0 0 .307-1.314z" class="cls-2"/>
<g>
<path fill="url(#linear-gradient-4)" d="M7.618 22.047l-6.3-4.994L4.45 11.24l8.981 3.5z" transform="translate(45.561 -1.7)"/>
<path fill="url(#linear-gradient-5)" d="M27.786 8L27.3 23.092l-10.023 4.024-6.037-3.875 8.832-9.167-3.872-8.46 3.462-4.174z" transform="translate(44.883 -1.03)"/>
<path fill="url(#linear-gradient-6)" d="M28.15 8l-7.938 9.39L16.56 5.614l3.466-4.174z" transform="translate(44.52 -1.03)"/>
<path fill="url(#linear-gradient-7)" d="M13.559 22.652l-10.472 3.8 1.677-5.888 2.2-7.23L1 11.323 4.764 1l8.2 1.006 8.049 9.2z" transform="translate(45.583 -1)"/>
<path d="M51.688 5.031h16.1v16.1h-16.1z"/>
<path d="M53.179 18.111h6.037v1.007h-6.037zm4.36-9.763v-1.23h-3.354v1.23h.969v4.211h-.969v1.23h3.354v-1.23h-.932V8.348zm3.2 5.553a2.7 2.7 0 0 1-1.3-.3 3.224 3.224 0 0 1-.857-.708l.932-1.043a2.161 2.161 0 0 0 .559.484 1.258 1.258 0 0 0 .634.186.932.932 0 0 0 .671-.261 1.314 1.314 0 0 0 .224-.857V7.118h1.491v4.36a2.935 2.935 0 0 1-.149 1.043 1.984 1.984 0 0 1-.484.745 1.668 1.668 0 0 1-.745.447 2.637 2.637 0 0 1-.932.186" class="cls-2"/>
</g>
<g>
<path d="M111.892 0v22.546l-19.658-2.888 19.658 6.615 6.522-2.7V2.795L111.892 0z" class="cls-12"/>
<path d="M99.032 12.671l6.056 5.962 3.633-1.491V5.404l-3.633-1.491-6.056 5.963-3.633-2.795-1.491.559v7.267l1.491.466zm6.056-4.566v6.242l-4.1-3.074zm-9.689.932l2.236 2.236-2.236 2.14V9.037z" class="cls-12"/>
</g>
<g>
<path d="M158.475 0v22.546l-19.658-2.888 19.658 6.615 6.522-2.7V2.795L158.475 0z" class="cls-13"/>
<path d="M151.674 3.913l-6.056 5.963-3.633-2.795-1.491.465 3.727 3.633-3.727 3.634 1.491.466 3.633-2.7 6.056 5.963 3.633-1.491V5.404zm0 4.192v6.242l-4.1-3.074z" class="cls-13"/>
</g>
</svg>

+ 12
- 0
server/sonar-web/public/images/sonarcloud/locs.svg View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36.129 30.884">
<defs>
<style>
.cls-1{fill:#fd6a00}
</style>
</defs>
<rect class="cls-1" width="16.619" height="3.459" rx="1.73"/>
<rect class="cls-1" width="23.604" height="3.459" rx="1.73" transform="translate(6.262 6.856)"/>
<rect class="cls-1" width="19.51" height="3.459" rx="1.73" transform="translate(16.619 13.712)"/>
<rect class="cls-1" width="23.604" height="3.459" rx="1.73" transform="translate(6.262 20.568)"/>
<rect class="cls-1" width="16.619" height="3.459" rx="1.73" transform="translate(0 27.425)"/>
</svg>

+ 3
- 0
server/sonar-web/public/images/sonarcloud/open-source.svg View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33.164 32.812">
<path fill="#fd6a00" stroke="#fd6a00" stroke-width="1.5" d="M11.236 32.046a.554.554 0 0 1-.188-.033A16.194 16.194 0 0 1 1.017 14.041 15.908 15.908 0 0 1 16.544.75a15.9 15.9 0 0 1 15.588 13.211 16.2 16.2 0 0 1-9.947 18.025.539.539 0 0 1-.695-.317l-3.739-9.668a.568.568 0 0 1 .011-.432.537.537 0 0 1 .314-.294 4.645 4.645 0 0 0 2.999-5.114 4.525 4.525 0 0 0-8.943-.128 4.651 4.651 0 0 0 2.854 5.2.539.539 0 0 1 .3.287.556.556 0 0 1 .012.422l-3.556 9.739a.543.543 0 0 1-.282.311.457.457 0 0 1-.222.056zM16.584 1.88A14.8 14.8 0 0 0 2.156 13.955a15.094 15.094 0 0 0 8.76 16.815l3.181-8.719a5.782 5.782 0 0 1-2.993-6.484 5.6 5.6 0 0 1 10.971.114 5.777 5.777 0 0 1-3.12 6.421l3.34 8.647a15.094 15.094 0 0 0 8.713-16.821A14.8 14.8 0 0 0 16.584 1.88z"/>
</svg>

+ 9
- 0
server/sonar-web/public/images/sonarcloud/pricing-header.svg View File

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4545.467 562.628">
<defs>
<linearGradient id="a" x1=".5" x2=".5" y1=".119" y2=".948" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#fd6a00"/>
<stop offset="1" stop-color="#fdc300"/>
</linearGradient>
</defs>
<path fill="url(#a)" d="M10512.121 9278.787c-757.575 69.7-566.679 69.7-996.97-151.515s-651.5-6.061-906.06-45.455-360.607-239.394-360.607-239.394l4545.467-9.1s-309.127 736.363-1057.588 524.254-466.663-148.486-1224.242-78.79z" transform="translate(-8248.484 -8833.321)"/>
</svg>

+ 3
- 0
server/sonar-web/public/images/sonarcloud/pull-request.svg View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27.86 31.6">
<path fill="#fd6a00" d="M4.643 0A4.739 4.739 0 0 0 3.1 9.184v13.232A4.739 4.739 0 0 0 4.643 31.6a4.739 4.739 0 0 0 1.548-9.184V9.184A4.739 4.739 0 0 0 4.643 0zm10.835 0l-4.643 4.74 4.643 4.74V6.32h1.548a4.669 4.669 0 0 1 4.643 4.74v11.356a4.644 4.644 0 1 0 3.1 0V11.06a7.845 7.845 0 0 0-7.739-7.9h-1.552zM4.643 3.16a1.541 1.541 0 0 1 1.548 1.58 1.55 1.55 0 1 1-3.1 0 1.541 1.541 0 0 1 1.552-1.58zm0 22.12A1.58 1.58 0 1 1 3.1 26.86a1.541 1.541 0 0 1 1.543-1.58zm18.574 0a1.58 1.58 0 1 1-1.548 1.58 1.541 1.541 0 0 1 1.548-1.58z"/>
</svg>

+ 1
- 0
server/sonar-web/public/images/sonarcloud/rules.svg View File

@@ -0,0 +1 @@
<svg id="document" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34.625 32.632"><defs><style>.cls-1{fill:#fd6a00}</style></defs><g id="Groupe_7446" data-name="Groupe 7446" transform="translate(4.777)"><g id="Groupe_7445" data-name="Groupe 7445"><path id="Tracé_11906" data-name="Tracé 11906" class="cls-1" d="M74.735 19.652a3.977 3.977 0 0 0-3.951 3.988l-.144 20.68 2.155.016.144-20.687a1.8 1.8 0 0 1 1.8-1.8h21.655v-2.2z" transform="translate(-70.64 -19.652)"/></g></g><g id="Groupe_7448" data-name="Groupe 7448"><g id="Groupe_7447" data-name="Groupe 7447"><path id="Tracé_11907" data-name="Tracé 11907" class="cls-1" d="M30.531 19.652a4.143 4.143 0 0 0-4.095 4.18v23.209a2.982 2.982 0 1 1-5.962 0v-2.677a1.089 1.089 0 0 0-1.078-1.1H1.078A1.089 1.089 0 0 0 0 44.364v2.677a5.2 5.2 0 0 0 5.136 5.243v-2.2a3.016 3.016 0 0 1-2.981-3.043v-1.577h16.163v1.577a5.137 5.137 0 1 0 10.273 0v-17.2h4.957a1.089 1.089 0 0 0 1.078-1.1v-4.909a4.143 4.143 0 0 0-4.095-4.18zm1.94 7.993h-3.88v-3.813a1.94 1.94 0 1 1 3.879 0v3.813z" transform="translate(0 -19.652)"/></g></g><g id="Groupe_7450" data-name="Groupe 7450" transform="translate(4.921 30.432)"><g id="Groupe_7449" data-name="Groupe 7449"><path id="Rectangle_11314" data-name="Rectangle 11314" class="cls-1" d="M0 0h18.282v2.2H0z"/></g></g><g id="Groupe_7452" data-name="Groupe 7452" transform="translate(9.375 6.123)"><g id="Groupe_7451" data-name="Groupe 7451"><path id="Tracé_11908" data-name="Tracé 11908" class="cls-1" d="M145.267 108.349H139.7a1.1 1.1 0 0 0 0 2.2h5.567a1.1 1.1 0 0 0 0-2.2z" transform="translate(-138.622 -108.349)"/></g></g><g id="Groupe_7454" data-name="Groupe 7454" transform="translate(9.375 10.523)"><g id="Groupe_7453" data-name="Groupe 7453"><path id="Tracé_11909" data-name="Tracé 11909" class="cls-1" d="M151.732 172.083H139.7a1.1 1.1 0 0 0 0 2.2h12.033a1.1 1.1 0 0 0 0-2.2z" transform="translate(-138.622 -172.083)"/></g></g><g id="Groupe_7456" data-name="Groupe 7456" transform="translate(9.375 14.923)"><g id="Groupe_7455" data-name="Groupe 7455"><path id="Tracé_11910" data-name="Tracé 11910" class="cls-1" d="M151.732 235.817H139.7a1.1 1.1 0 0 0 0 2.2h12.033a1.1 1.1 0 0 0 0-2.2z" transform="translate(-138.622 -235.817)"/></g></g><g id="Groupe_7458" data-name="Groupe 7458" transform="translate(9.375 19.323)"><g id="Groupe_7457" data-name="Groupe 7457"><path id="Tracé_11911" data-name="Tracé 11911" class="cls-1" d="M151.732 299.552H139.7a1.1 1.1 0 0 0 0 2.2h12.033a1.1 1.1 0 0 0 0-2.2z" transform="translate(-138.622 -299.552)"/></g></g></svg>

+ 4
- 0
server/sonar-web/public/images/sonarcloud/scale.svg View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.4 19.4">
<path fill="#8a8c8f" d="M18.832 0H5.191a.568.568 0 0 0-.568.568v8.526H.568A.568.568 0 0 0 0 9.662v9.17a.568.568 0 0 0 .568.568h9.17a.568.568 0 0 0 .568-.568v-4.055h8.525a.568.568 0 0 0 .568-.568V.568A.568.568 0 0 0 18.832 0zM9.17 18.263H1.137V10.23h3.486v3.979a.568.568 0 0 0 .568.568H9.17zm0-4.623H5.759v-3.41H9.17zm9.094 0h-7.958V9.662a.568.568 0 0 0-.568-.568H5.759V1.137h12.5z"/>
<path fill="#8a8c8f" d="M17.126 2.84a.568.568 0 0 0-.568-.567h-3.415a.5685.5685 0 0 0 0 1.137h2.038l-3.577 3.577a.568.568 0 1 0 .8.8l3.577-3.577v2.038a.5685.5685 0 0 0 1.137 0V2.84z"/>
</svg>

BIN
server/sonar-web/public/images/sonarcloud/sl-notif.png View File


BIN
server/sonar-web/public/images/sonarcloud/sl-notif@2x.png View File


+ 3
- 0
server/sonar-web/public/images/sonarcloud/sonarcloud-logo-text-only.svg View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 84.346 22">
<path fill="#070706" d="M.532 14.094a5.73 5.73 0 0 0 2.508.7c.893 0 1.254-.3 1.254-.779s-.285-.7-1.387-1.083C.969 12.289.209 11.227.247 10.105c0-1.748 1.501-3.078 3.818-3.078a6.261 6.261 0 0 1 2.641.532l-.513 2.014a4.65 4.65 0 0 0-2.033-.532c-.7 0-1.121.285-1.121.76 0 .437.361.665 1.52 1.083 1.786.608 2.527 1.52 2.546 2.907 0 1.748-1.387 3.04-4.065 3.04A6.751 6.751 0 0 1 0 16.184zm16.869-2.261a4.711 4.711 0 0 1-4.958 5.015 4.61 4.61 0 0 1-4.863-4.844 4.687 4.687 0 0 1 5.015-4.977 4.587 4.587 0 0 1 4.806 4.806zm-6.8.095c0 1.615.665 2.831 1.919 2.831 1.14 0 1.862-1.14 1.862-2.831 0-1.406-.532-2.831-1.862-2.831-1.407.02-1.919 1.463-1.919 2.83zm7.845-1.691c0-1.178-.038-2.166-.076-3h2.527l.133 1.29h.057a3.459 3.459 0 0 1 2.907-1.5c1.919 0 3.362 1.273 3.362 4.027v5.566H24.43v-5.186c0-1.216-.418-2.033-1.482-2.033a1.558 1.558 0 0 0-1.482 1.1 1.984 1.984 0 0 0-.114.722v5.414h-2.906zm15.805 6.402l-.171-.95h-.057a3.413 3.413 0 0 1-2.7 1.159 2.888 2.888 0 0 1-3.04-2.888c0-2.432 2.185-3.609 5.509-3.59v-.133c0-.494-.266-1.216-1.71-1.216a5.3 5.3 0 0 0-2.584.7l-.532-1.881a7.787 7.787 0 0 1 3.651-.813c3.134 0 4.122 1.843 4.122 4.046v3.267a14.661 14.661 0 0 0 .133 2.28H34.25zm-.342-4.445c-1.539-.019-2.736.342-2.736 1.482a1.057 1.057 0 0 0 1.159 1.121 1.594 1.594 0 0 0 1.52-1.083 2.07 2.07 0 0 0 .057-.494zm4.389-1.862c0-1.387-.038-2.28-.076-3.1h2.508l.095 1.729h.076a2.745 2.745 0 0 1 2.526-1.934 2.976 2.976 0 0 1 .608.038V9.82a4.139 4.139 0 0 0-.779-.076 1.861 1.861 0 0 0-1.994 1.483 3.406 3.406 0 0 0-.057.646v4.768h-2.926v-6.309zm13.374 5.966a6.261 6.261 0 0 1-2.66.532 4.418 4.418 0 0 1-4.635-4.749 4.721 4.721 0 0 1 5-4.939 5.617 5.617 0 0 1 2.337.475l-.38 1.311a3.96 3.96 0 0 0-1.957-.437 3.221 3.221 0 0 0-3.286 3.514 3.192 3.192 0 0 0 3.229 3.476 4.846 4.846 0 0 0 2.071-.456zM52.887 3h1.691v13.64h-1.691zm12.177 8.909a4.543 4.543 0 0 1-4.635 4.939c-2.508 0-4.445-1.843-4.445-4.787 0-3.115 2.033-4.939 4.616-4.939 2.659.019 4.464 1.957 4.464 4.787zm-7.371.095c0 2.033 1.178 3.571 2.831 3.571 1.615 0 2.83-1.52 2.83-3.609 0-1.577-.779-3.571-2.773-3.571s-2.888 1.842-2.888 3.609zm16.509 2.109c0 .95.019 1.8.076 2.527h-1.5l-.095-1.52h-.038a3.515 3.515 0 0 1-3.079 1.73c-1.463 0-3.211-.8-3.211-4.065V7.35h1.691v5.148c0 1.767.532 2.964 2.071 2.964a2.439 2.439 0 0 0 2.223-1.539 2.474 2.474 0 0 0 .152-.874V7.35h1.691v6.763zM84.27 3v11.246c0 .817.019 1.767.076 2.394h-1.52l-.076-1.615h-.038a3.421 3.421 0 0 1-3.173 1.824c-2.242 0-3.97-1.9-3.97-4.73-.019-3.1 1.9-5 4.16-5a3.114 3.114 0 0 1 2.812 1.425h.038V3zm-1.691 8.131a2.952 2.952 0 0 0-.076-.7 2.477 2.477 0 0 0-2.433-1.96c-1.748 0-2.792 1.539-2.792 3.59 0 1.881.931 3.438 2.754 3.438a2.516 2.516 0 0 0 2.47-2.014 2.9 2.9 0 0 0 .076-.722z"/>
</svg>

+ 9
- 28
server/sonar-web/public/images/sonarcloud/sonarlint-integration.svg View File

@@ -1,34 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-276.765 -4280.348 36.674 37.341">
<defs>
<style>
.cls-1, .cls-4 {
fill: none;
}

.cls-1 {
stroke: #434447;
stroke-width: 1.5px;
}

.cls-2 {
fill: #fff;
stroke: #f60;
stroke-width: 2px;
}

.cls-3 {
stroke: none;
}
.cls-4{fill:none}.cls-3{stroke:none}
</style>
</defs>
<g id="Groupe_6131" data-name="Groupe 6131" transform="translate(-276.765 -4280.348)">
<g id="Rectangle_6142" data-name="Rectangle 6142" class="cls-1" transform="translate(0 6.181)">
<rect class="cls-3" width="31.16" height="31.16" rx="3"/>
<rect class="cls-4" x="0.75" y="0.75" width="29.66" height="29.66" rx="2.25"/>
</g>
<g id="Ellipse_72" data-name="Ellipse 72" class="cls-2" transform="translate(22.005 0)">
<circle class="cls-3" cx="7.335" cy="7.335" r="7.335"/>
<circle class="cls-4" cx="7.335" cy="7.335" r="6.335"/>
</g>
<g fill="none" stroke="#434447" stroke-width="1.5" transform="translate(-276.765 -4274.167)">
<rect width="31.16" height="31.16" class="cls-3" rx="3"/>
<rect width="29.66" height="29.66" x=".75" y=".75" class="cls-4" rx="2.25"/>
</g>
</svg>
<g fill="#fff" stroke="#f60" stroke-width="2" transform="translate(-254.76 -4280.348)">
<circle cx="7.335" cy="7.335" r="7.335" class="cls-3"/>
<circle cx="7.335" cy="7.335" r="6.335" class="cls-4"/>
</g>
</svg>

+ 4
- 0
server/sonar-web/public/images/sonarcloud/sonarlint-logo.svg View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 67.01 22">
<path fill="#1b171b" d="M.532 14.067a5.726 5.726 0 0 0 2.506.7c.892 0 1.253-.3 1.253-.778s-.286-.701-1.391-1.084C.968 12.263.209 11.205.247 10.08c0-1.746 1.5-3.075 3.816-3.075a6.256 6.256 0 0 1 2.639.532l-.513 2.012a4.647 4.647 0 0 0-2.031-.532c-.7 0-1.12.285-1.12.759 0 .437.361.664 1.519 1.082 1.784.607 2.525 1.519 2.544 2.9-.001 1.747-1.387 3.047-4.064 3.047A6.746 6.746 0 0 1 0 16.155zm16.856-2.243a4.708 4.708 0 0 1-4.955 5.012 4.607 4.607 0 0 1-4.86-4.841 4.684 4.684 0 0 1 5.013-4.971 4.563 4.563 0 0 1 4.802 4.8zm-6.8.095c0 1.614.664 2.828 1.917 2.828 1.139 0 1.86-1.139 1.86-2.828 0-1.4-.532-2.828-1.86-2.828-1.4.002-1.913 1.445-1.913 2.833zm7.845-1.687c0-1.177-.038-2.164-.076-3h2.525l.133 1.291h.057a3.456 3.456 0 0 1 2.9-1.5c1.917 0 3.36 1.272 3.36 4.024v5.562h-2.923v-5.185c0-1.215-.418-2.031-1.481-2.031a1.557 1.557 0 0 0-1.481 1.1 1.983 1.983 0 0 0-.114.721v5.41h-2.9zm15.794 6.397l-.171-.949h-.057a3.41 3.41 0 0 1-2.7 1.158 2.886 2.886 0 0 1-3.037-2.885c0-2.43 2.183-3.607 5.505-3.588v-.133c0-.494-.266-1.215-1.708-1.215a5.3 5.3 0 0 0-2.582.7l-.532-1.879a7.782 7.782 0 0 1 3.645-.816c3.132 0 4.119 1.841 4.119 4.043v3.265a14.649 14.649 0 0 0 .133 2.278h-2.62zm-.342-4.442c-1.538-.019-2.734.342-2.734 1.481a1.056 1.056 0 0 0 1.158 1.12 1.592 1.592 0 0 0 1.519-1.082 2.069 2.069 0 0 0 .057-.494zm4.385-1.863c0-1.386-.038-2.278-.076-3.094H40.7l.095 1.727h.076a2.743 2.743 0 0 1 2.523-1.933 2.974 2.974 0 0 1 .607.038v2.753a4.136 4.136 0 0 0-.778-.076 1.86 1.86 0 0 0-1.993 1.481 3.4 3.4 0 0 0-.057.645v4.765H38.25v-6.306zM45.028 3h1.69v13.63h-1.69zm5.638 1.727a1.054 1.054 0 0 1-2.107 0 1.038 1.038 0 0 1 1.063-1.063 1.011 1.011 0 0 1 1.044 1.063zm-1.879 11.9v-9.3h1.689v9.283h-1.689zm3.72-6.774c0-.949-.019-1.746-.076-2.506h1.5l.095 1.538h.038a3.4 3.4 0 0 1 3.075-1.746c1.291 0 3.284.759 3.284 3.948v5.543h-1.692v-5.354c0-1.5-.551-2.753-2.145-2.753a2.373 2.373 0 0 0-2.255 1.728 2.4 2.4 0 0 0-.114.778v5.581h-1.69V9.853zm11.845-5.182v2.658h2.411V8.62h-2.411v5.011c0 1.158.323 1.8 1.272 1.8a3.887 3.887 0 0 0 .987-.114l.076 1.272a4.13 4.13 0 0 1-1.5.228 2.358 2.358 0 0 1-1.822-.7 3.458 3.458 0 0 1-.645-2.411V8.619h-1.443v-1.29h1.443V5.108z"/>
<path fill="#cc202a" fill-rule="evenodd" d="M66.82 21.736a1.594 1.594 0 0 1-1.044-.59 1.844 1.844 0 0 0-1.348-.759 1.877 1.877 0 0 0-1.348.759 1.854 1.854 0 0 1-2.828 0 1.8 1.8 0 0 0-2.753 0 2.7 2.7 0 0 1-.7.607 3.029 3.029 0 0 1-.437.19c-.683.247-1.31-.361-1.69-.816a1.791 1.791 0 0 0-2.734 0 2.061 2.061 0 0 1-3.075.171 1.186 1.186 0 0 0-.19-.418 1.277 1.277 0 0 0-.266-.285c-.664-.57-1.614.019-2.05.551a1.618 1.618 0 0 1-1.253.626.174.174 0 0 1-.114-.076c-.019-.038-.057-.057-.076-.114a.171.171 0 0 1-.019-.095.778.778 0 0 1-.019-.209.462.462 0 0 1 .057-.209.448.448 0 0 1 .114-.171c.057-.038.209-.209.285-.247a2.2 2.2 0 0 0 .38-.456c.721-.816 2.43-1.519 3.3-.513.114.133.209.247.323.38.323.361.873.93 1.424.607a1.72 1.72 0 0 0 .3-.209c.209-.209.4-.456.589-.683a2.443 2.443 0 0 1 1.9-.626 1.475 1.475 0 0 1 1.139.456c.4.456 1.025 1.082 1.727.816a1.356 1.356 0 0 0 .285-.152c.114-.076.228-.152.323-.228l.342-.342a1.807 1.807 0 0 1 2.772-.076c.456.551 1.386 1.31 2.164.759a3.884 3.884 0 0 0 .664-.7 2 2 0 0 1 1.481-.74.323.323 0 0 1 .133.019 3.056 3.056 0 0 1 1.5.968c.19.209.569.721.778.968.114.19.152.171.152.361v.057a.282.282 0 0 1-.019.114c0 .038-.019.114-.019.152-.017.063-.055.153-.15.153z"/>
</svg>

BIN
server/sonar-web/public/images/sonarcloud/sq-homepage.png View File


BIN
server/sonar-web/public/images/sonarcloud/sq-homepage@2x.png View File


+ 9
- 0
server/sonar-web/public/images/sonarcloud/stop.svg View File

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.5 15.117">
<defs>
<style>
.cls-1{fill:#8a8c8f}
</style>
</defs>
<path d="M7.25 15.117A7.149 7.149 0 0 1 0 8.09a6.973 6.973 0 0 1 4.075-6.321.63.63 0 0 1 .54 1.138A5.722 5.722 0 0 0 1.261 8.09a5.992 5.992 0 0 0 11.976 0 5.777 5.777 0 0 0-3.461-5.229.62911.62911 0 1 1 .515-1.148A7.035 7.035 0 0 1 14.5 8.09a7.149 7.149 0 0 1-7.25 7.028z" class="cls-1"/>
<path d="M7.25 8.543a.628.628 0 0 1-.629-.629V.629a.6295.6295 0 0 1 1.259 0v7.284a.628.628 0 0 1-.63.63z" class="cls-1"/>
</svg>

+ 31
- 0
server/sonar-web/src/main/js/@types/react-countup.d.ts View File

@@ -0,0 +1,31 @@
/*
* SonarQube
* Copyright (C) 2009-2018 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
declare module 'react-countup' {
interface Props {
decimal?: string;
decimals?: number;
delay?: number;
duration?: number;
end: number;
suffix?: string;
}

export default function CountUp(props: Props): JSX.Element;
}

+ 4
- 0
server/sonar-web/src/main/js/app/styles/init/misc.css View File

@@ -308,6 +308,10 @@ td.big-spacer-top {
position: absolute !important;
}

.position-relative {
position: relative !important;
}

.rounded {
border-radius: 2px;
}

+ 2
- 2
server/sonar-web/src/main/js/app/theme.js View File

@@ -135,8 +135,8 @@ module.exports = {
popupZIndex: '5000',

// sonarcloud
sonarcloudOrange: '#f60',
sonarcloudOrangeDark: '#e65c00',
sonarcloudOrange500: '#fd6a00',
sonarcloudOrange700: '#db5700',
sonarcloudBlack100: '#ffffff',
sonarcloudBlack200: '#f9f9fb',
sonarcloudBlack300: '#cfd3d7',

+ 5
- 5
server/sonar-web/src/main/js/apps/about/sonarcloud/AsAService.tsx View File

@@ -18,16 +18,16 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
import SonarCloudPage from './SonarCloudPage';
import SQStartUsing from './SQStartUsing';
import SQTopNav from './SQTopNav';
import SQPageContainer from './components/SQPageContainer';
import SQStartUsing from './components/SQStartUsing';
import SQTopNav from './components/SQTopNav';
import { isLoggedIn } from '../../../app/types';
import { getBaseUrl } from '../../../helpers/urls';
import './style.css';

export default function AsAService() {
return (
<SonarCloudPage>
<SQPageContainer>
{({ currentUser }) => (
<div className="page page-limited sc-page">
<SQTopNav />
@@ -85,6 +85,6 @@ export default function AsAService() {
{!isLoggedIn(currentUser) && <SQStartUsing />}
</div>
)}
</SonarCloudPage>
</SQPageContainer>
);
}

+ 5
- 5
server/sonar-web/src/main/js/apps/about/sonarcloud/BranchAnalysis.tsx View File

@@ -18,16 +18,16 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
import SonarCloudPage from './SonarCloudPage';
import SQStartUsing from './SQStartUsing';
import SQTopNav from './SQTopNav';
import SQPageContainer from './components/SQPageContainer';
import SQStartUsing from './components/SQStartUsing';
import SQTopNav from './components/SQTopNav';
import { isLoggedIn } from '../../../app/types';
import { getBaseUrl } from '../../../helpers/urls';
import './style.css';

export default function BranchAnalysis() {
return (
<SonarCloudPage>
<SQPageContainer>
{({ currentUser }) => (
<div className="page page-limited sc-page">
<SQTopNav />
@@ -115,6 +115,6 @@ export default function BranchAnalysis() {
{!isLoggedIn(currentUser) && <SQStartUsing />}
</div>
)}
</SonarCloudPage>
</SQPageContainer>
);
}

+ 3
- 3
server/sonar-web/src/main/js/apps/about/sonarcloud/Contact.tsx View File

@@ -20,7 +20,7 @@
import * as React from 'react';
import { Link } from 'react-router';
import { Location } from 'history';
import SonarCloudPage from './SonarCloudPage';
import SQPageContainer from './components/SQPageContainer';
import Select from '../../../components/controls/Select';
import { isLoggedIn, Organization } from '../../../app/types';
import { Alert } from '../../../components/ui/Alert';
@@ -80,7 +80,7 @@ export default class Contact extends React.PureComponent<Props, State> {

render() {
return (
<SonarCloudPage>
<SQPageContainer>
{({ currentUser, userOrganizations }) => (
<div className="page page-limited sc-page sc-contact-page">
<h1 className="sc-page-title">Contact us</h1>
@@ -205,7 +205,7 @@ export default class Contact extends React.PureComponent<Props, State> {
</form>
</div>
)}
</SonarCloudPage>
</SQPageContainer>
);
}
}

+ 262
- 85
server/sonar-web/src/main/js/apps/about/sonarcloud/Home.tsx View File

@@ -18,103 +18,280 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
import { Link } from 'react-router';
import SonarCloudPage from './SonarCloudPage';
import Pricing from './Pricing';
import StartUsing from './StartUsing';
import { isLoggedIn } from '../../../app/types';
import ChevronRightIcon from '../../../components/icons-components/ChevronRightcon';
import './style.css';
import { FixedNavBar, TopNavBar } from './components/NavBars';
import FeaturedProjects from './components/FeaturedProjects';
import Footer from './components/Footer';
import Statistics from './components/Statistics';
import { Languages } from './components/Languages';
import LoginButtons from './components/LoginButtons';
import { getBaseUrl } from '../../../helpers/urls';
import './new_style.css';

export default function Home() {
return (
<SonarCloudPage>
{({ currentUser }) => (
<div className="page page-limited sc-page">
<h1 className="sc-page-title">Continuous Code Quality Online</h1>
<p className="sc-page-subtitle">
Analyze the quality of your source code to detect bugs, vulnerabilities <br />
and code smells throughout the development process.
</p>

<ul className="sc-features-list">
<li className="sc-feature">
<h2 className="sc-feature-title">Built on SonarQube</h2>
<p className="sc-feature-description">
The broadly used code review tool to detect bugs, code smells and vulnerability
issues.
</p>
</li>

<li className="sc-feature">
<h2 className="sc-feature-title">17 languages</h2>
<p className="sc-feature-description">
Java, JS, C#, C/C++, Objective-C, TypeScript, Python, Go, ABAP, PL/SQL, T-SQL and
more.
</p>
</li>
// TODO Get this from an external source
const STATISTICS = [
{ icon: 'rules', text: 'Static analysis rules checked', value: 9675 },
{ icon: 'locs', text: 'Lines of code analyzed', value: 20000000 },
{ icon: 'pull-request', text: 'Pull Requests decorated', value: 100675 },
{ icon: 'open-source', text: 'Open source projects inspected', value: 99675 }
];

<li className="sc-feature">
<h2 className="sc-feature-title">Thousands of rules</h2>
<p className="sc-feature-description">
Track down hard-to-find bugs and quality issues thanks to powerful static code
analyzers.
</p>
</li>

<li className="sc-feature">
<h2 className="sc-feature-title">Cloud CI Integrations</h2>
<p className="sc-feature-description">
Schedule the execution of an analysis from Cloud CI engines: Travis, VSTS, AppVeyor
and more.
</p>
</li>

<li className="sc-feature">
<h2 className="sc-feature-title">Deep code analysis</h2>
<p className="sc-feature-description">
Explore all your source files, whether in branches or pull requests, to reach a
green quality gate and promote the build.
</p>
</li>
export default class Home extends React.PureComponent {
componentDidMount() {
document.documentElement.classList.add('white-page');
document.body.classList.add('white-page');
}

<li className="sc-feature">
<h2 className="sc-feature-title">Fast and Scalable</h2>
<p className="sc-feature-description">Scale on-demand as your projects grow.</p>
</li>
</ul>
componentWillUnmount() {
document.documentElement.classList.remove('white-page');
document.body.classList.remove('white-page');
}

<Pricing />
render() {
return (
<div className="global-container">
<div className="page-wrapper">
<div className="page-container sc-page">
<FixedNavBar />
<PageBackgroundHeader />
<TopNavBar />
<PageTitle />
<EnhanceWorkflow />
<Functionality />
<Languages />
<Stats />
<Projects />
</div>
</div>
<Footer />
</div>
);
}
}

{!isLoggedIn(currentUser) && <StartUsing />}
function PageBackgroundHeader() {
return (
<div className="sc-header-background">
<div className="sc-background-start" />
<div className="sc-background-end" />
<div className="sc-background-center">
<img alt="" height="418px" src={`${getBaseUrl()}/images/sonarcloud/home-header.svg`} />
</div>
</div>
);
}

<div className="sc-narrow-container text-center">
<h2 className="sc-feature-title">Explore open source projects on SonarCloud</h2>
<p className="sc-feature-description">
SonarCloud offers free analysis for open source projects. <br />
It is public and open to anyone who wants to browse the service.
function PageTitle() {
return (
<div className="sc-section sc-columns">
<div className="sc-column sc-column-half display-flex-center">
<div>
<h1 className="sc-title-orange">Clean Code</h1>
<h1 className="sc-spacer-bottom">Rockstar Status</h1>
<h5 className="sc-big-spacer-bottom sc-regular-weight">
Eliminate bugs and vulnerabilities,
<br />
champion quality code in your projects.
</h5>
<div>
<h6>Go ahead! Analyze your repo:</h6>
<LoginButtons />
<p className="sc-mention sc-regular-weight big-spacer-top">
Free for Open Source Projects
</p>
</div>
</div>
</div>
<div className="sc-column sc-column-half text-center">
<img
alt=""
src={`${getBaseUrl()}/images/sonarcloud/home-header-people.png`}
width="480px"
/>
</div>
</div>
);
}

function EnhanceWorkflow() {
return (
<div className="sc-section sc-columns">
<div className="sc-column sc-column-full">
<h3 className="sc-big-spacer-bottom">
Enhance Your Workflow
<br />
with Continuous Code Quality
</h3>
<img
alt=""
className="sc-big-spacer-bottom"
src={`${getBaseUrl()}/images/sonarcloud/home-branch.png`}
srcSet={`${getBaseUrl()}/images/sonarcloud/home-branch.png 1x, ${getBaseUrl()}/images/sonarcloud/home-branch@2x.png 2x`}
/>
<h5 className="spacer-bottom">Maximize your throughput, only release clean code</h5>
<h6 className="sc-regular-weight">
Sonarcloud automatically analyzes branches and decorates pull requests
</h6>
</div>
</div>
);
}

<div className="sc-narrow-container text-center">
<Link className="sc-browse" to="/explore/projects">
Browse
</Link>
function Functionality() {
return (
<div className="position-relative">
<div className="sc-functionality-background">
<div className="sc-background-center">
<img
alt=""
height="300px"
src={`${getBaseUrl()}/images/sonarcloud/home-grey-background.svg`}
/>
</div>
</div>
<div className="sc-functionality-container">
<div className="sc-section">
<h3 className="sc-big-spacer-bottom text-center">
Functionality
<br />
that Fits Your Projects
</h3>
<div className="sc-columns">
<div className="sc-column sc-column-small">
<h6 className="sc-regular-weight spacer-bottom">Easy to Use</h6>
<p>
With just a few clicks you’re up and running right where your code lives. Immediate
access to the latest features and enhancements.
</p>
<div className="sc-separator" />
<span className="big-spacer-bottom sc-with-icon">
<img
alt=""
className="spacer-right"
src={`${getBaseUrl()}/images/sonarcloud/scale.svg`}
/>{' '}
Scale on-demand as your projects grow.
</span>
<span className="sc-with-icon">
<img
alt=""
className="spacer-right"
src={`${getBaseUrl()}/images/sonarcloud/stop.svg`}
/>{' '}
No contracts, stop/start anytime.
</span>
</div>
<div className="sc-column sc-column-big">
<img
alt=""
className="sc-rounded-img"
src={`${getBaseUrl()}/images/sonarcloud/home-easy-to-use.png`}
srcSet={`${getBaseUrl()}/images/sonarcloud/home-easy-to-use.png 1x, ${getBaseUrl()}/images/sonarcloud/home-easy-to-use@2x.png 2x`}
/>
</div>
</div>
<div className="sc-columns">
<div className="sc-column sc-column-big">
<img
alt=""
className="sc-rounded-img"
src={`${getBaseUrl()}/images/sonarcloud/home-open-transparent.png`}
srcSet={`${getBaseUrl()}/images/sonarcloud/home-open-transparent.png 1x, ${getBaseUrl()}/images/sonarcloud/home-open-transparent@2x.png 2x`}
/>
</div>
<div className="sc-column sc-column-small">
<div>
<h6 className="sc-regular-weight spacer-bottom">Open and transparent</h6>
<p className="big-spacer-bottom">
Project dashboards keep teams and stakeholders informed on code quality and
releasability
</p>
<p>Display project badges and show your communities you’re all about awesome</p>
<img
alt=""
className="big-spacer-top"
src={`${getBaseUrl()}/images/project_badges/sonarcloud-black.svg`}
width="200px"
/>
</div>
</div>
</div>
<div className="sc-columns">
<div className="sc-column sc-column-full">
<div>
<h6 className="sc-regular-weight spacer-bottom">Effective Collaboration</h6>

<div className="sc-narrow-container sc-news">
<h2 className="sc-news-title">News</h2>
<ChevronRightIcon className="big-spacer-left" fill="#cfd3d7" />
<a
className="sc-news-link big-spacer-left"
href="https://blog.sonarsource.com/product/SonarCloud"
rel="noopener noreferrer"
target="_blank">
See all
</a>
<p className="sc-with-inline-icon">
Use
<img
alt="SonarCloud"
src={`${getBaseUrl()}/images/sonarcloud/sonarcloud-logo-text-only.svg`}
/>
with your team, share best practices and have fun writing quality code!
</p>
<br />
<p className="sc-with-inline-icon huge-spacer-bottom">
Connect with
<img
alt="SonarCloud"
src={`${getBaseUrl()}/images/sonarcloud/sonarlint-logo.svg`}
/>
and get real-time notifications in your IDE as you work.
</p>
<div>
<img
alt=""
className="huge-spacer-bottom"
src={`${getBaseUrl()}/images/sonarcloud/ide.svg`}
width="216px"
/>
</div>
<img alt="" src={`${getBaseUrl()}/images/sonarcloud/collab.svg`} width="540px" />
</div>
</div>
</div>
</div>
)}
</SonarCloudPage>
</div>
</div>
);
}

function Stats() {
return (
<div className="sc-section sc-columns">
<div className="sc-column sc-column-full">
<h5 className="sc-big-spacer-bottom">
Over 3,000 projects
<br />
continuously analyzed
</h5>
<Statistics statistics={STATISTICS} />
</div>
</div>
);
}

function Projects() {
return (
<div className="sc-section sc-columns">
<div className="sc-column sc-column-full">
<h6 className="big-spacer-bottom">
Transparency makes sense
<br />
and that’s why the trend is growing.
</h6>
<p className="sc-big-spacer-bottom">
Check out these open source projects showing users
<br />
their commitment to quality.
</p>
<FeaturedProjects />
<h6 className="spacer-bottom">
Come join the fun, it’s entirely free for open source projects !
</h6>
<div className="big-spacer-bottom">
<LoginButtons />
</div>
</div>
</div>
);
}

+ 44
- 42
server/sonar-web/src/main/js/apps/about/sonarcloud/SQHome.tsx View File

@@ -19,16 +19,17 @@
*/
import * as React from 'react';
import { Link } from 'react-router';
import SonarCloudPage from './SonarCloudPage';
import Pricing from './Pricing';
import StartUsing from './StartUsing';
import LoginButtons from './components/LoginButtons';
import Pricing from './components/Pricing';
import SQPageContainer from './components/SQPageContainer';
import StartUsing from './components/StartUsing';
import { isLoggedIn } from '../../../app/types';
import { getBaseUrl } from '../../../helpers/urls';
import './style.css';

export default function SQHome() {
return (
<SonarCloudPage>
<SQPageContainer>
{({ currentUser }) => (
<div className="page sc-page sc-sq-page">
<Jumbotron />
@@ -43,7 +44,7 @@ export default function SQHome() {
<BottomNote />
</div>
)}
</SonarCloudPage>
</SQPageContainer>
);
}

@@ -61,26 +62,7 @@ function Jumbotron() {
<br />
Log in or sign up with
</div>
<div>
<a
className="sc-white-button sc-sq-login-button"
href={`${getBaseUrl()}/sessions/init/github`}>
<img alt="" height="25" src={`${getBaseUrl()}/images/sonarcloud/github.svg`} />
GitHub
</a>
<a
className="sc-white-button sc-sq-login-button"
href={`${getBaseUrl()}/sessions/init/bitbucket`}>
<img alt="" height="25" src={`${getBaseUrl()}/images/sonarcloud/bitbucket.svg`} />
Bitbucket
</a>
<a
className="sc-white-button sc-sq-login-button"
href={`${getBaseUrl()}/sessions/init/microsoft`}>
<img alt="" height="25" src={`${getBaseUrl()}/images/sonarcloud/windows.svg`} />
VSTS
</a>
</div>
<LoginButtons />
</div>
<div className="sc-sq-jumbotron-right">
<img
@@ -162,7 +144,7 @@ function Languages() {
<img
alt="Java"
height="60"
src={`${getBaseUrl()}/images/languages/java.svg`}
src={`${getBaseUrl()}/images/languages/black/java.svg`}
width="60"
/>
</li>
@@ -170,7 +152,7 @@ function Languages() {
<img
alt="JavaScript"
height="60"
src={`${getBaseUrl()}/images/languages/js.svg`}
src={`${getBaseUrl()}/images/languages/black/js.svg`}
width="60"
/>
</li>
@@ -178,7 +160,7 @@ function Languages() {
<img
alt="TypeScript"
height="60"
src={`${getBaseUrl()}/images/languages/ts.svg`}
src={`${getBaseUrl()}/images/languages/black/ts.svg`}
width="60"
/>
</li>
@@ -186,7 +168,7 @@ function Languages() {
<img
alt="C#"
height="60"
src={`${getBaseUrl()}/images/languages/c-sharp.svg`}
src={`${getBaseUrl()}/images/languages/black/csharp.svg`}
width="60"
/>
</li>
@@ -194,34 +176,49 @@ function Languages() {
<img
alt="C++"
height="60"
src={`${getBaseUrl()}/images/languages/c-plus.svg`}
src={`${getBaseUrl()}/images/languages/black/c-c-plus-plus.svg`}
width="60"
/>
</li>
<li>
<img alt="Go" height="60" src={`${getBaseUrl()}/images/languages/go.svg`} width="60" />
<img
alt="Go"
height="60"
src={`${getBaseUrl()}/images/languages/black/go.svg`}
width="60"
/>
</li>
<li>
<img
alt="Python"
height="60"
src={`${getBaseUrl()}/images/languages/python.svg`}
src={`${getBaseUrl()}/images/languages/black/python.svg`}
width="60"
/>
</li>
<li>
<img alt="PHP" height="60" src={`${getBaseUrl()}/images/languages/php.svg`} width="60" />
<img
alt="PHP"
height="60"
src={`${getBaseUrl()}/images/languages/black/php.svg`}
width="60"
/>
</li>
</ul>
<ul className="sc-languages-list">
<li>
<img alt="VB" height="60" src={`${getBaseUrl()}/images/languages/vb.svg`} width="60" />
<img
alt="VB"
height="60"
src={`${getBaseUrl()}/images/languages/black/vb.svg`}
width="60"
/>
</li>
<li>
<img
alt="Flex"
height="60"
src={`${getBaseUrl()}/images/languages/flex.png`}
src={`${getBaseUrl()}/images/languages/black/flex@2x.png`}
width="85"
/>
</li>
@@ -229,7 +226,7 @@ function Languages() {
<img
alt="HTML"
height="60"
src={`${getBaseUrl()}/images/languages/html5.svg`}
src={`${getBaseUrl()}/images/languages/black/html5.svg`}
width="60"
/>
</li>
@@ -237,7 +234,7 @@ function Languages() {
<img
alt="Swift"
height="60"
src={`${getBaseUrl()}/images/languages/swift.svg`}
src={`${getBaseUrl()}/images/languages/black/swift.svg`}
width="60"
/>
</li>
@@ -245,7 +242,7 @@ function Languages() {
<img
alt="Objective-C"
height="60"
src={`${getBaseUrl()}/images/languages/obj-c.svg`}
src={`${getBaseUrl()}/images/languages/black/obj-c.svg`}
width="60"
/>
</li>
@@ -253,7 +250,7 @@ function Languages() {
<img
alt="T-SQL"
height="60"
src={`${getBaseUrl()}/images/languages/tsql.svg`}
src={`${getBaseUrl()}/images/languages/black/t-sql.svg`}
width="60"
/>
</li>
@@ -261,7 +258,7 @@ function Languages() {
<img
alt="PL/SQL"
height="60"
src={`${getBaseUrl()}/images/languages/plsql.svg`}
src={`${getBaseUrl()}/images/languages/black/pl-sql.svg`}
width="60"
/>
</li>
@@ -269,12 +266,17 @@ function Languages() {
<img
alt="ABAP"
height="60"
src={`${getBaseUrl()}/images/languages/abap.svg`}
src={`${getBaseUrl()}/images/languages/black/abap.svg`}
width="60"
/>
</li>
<li>
<img alt="XML" height="60" src={`${getBaseUrl()}/images/languages/xml.svg`} width="60" />
<img
alt="XML"
height="60"
src={`${getBaseUrl()}/images/languages/black/xml.svg`}
width="60"
/>
</li>
</ul>
</div>

+ 5
- 5
server/sonar-web/src/main/js/apps/about/sonarcloud/SonarLintIntegration.tsx View File

@@ -18,16 +18,16 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
import SonarCloudPage from './SonarCloudPage';
import SQStartUsing from './SQStartUsing';
import SQTopNav from './SQTopNav';
import SQPageContainer from './components/SQPageContainer';
import SQStartUsing from './components/SQStartUsing';
import SQTopNav from './components/SQTopNav';
import { isLoggedIn } from '../../../app/types';
import { getBaseUrl } from '../../../helpers/urls';
import './style.css';

export default function SonarLintIntegration() {
return (
<SonarCloudPage>
<SQPageContainer>
{({ currentUser }) => (
<div className="page page-limited sc-page">
<SQTopNav />
@@ -95,6 +95,6 @@ export default function SonarLintIntegration() {
{!isLoggedIn(currentUser) && <SQStartUsing />}
</div>
)}
</SonarCloudPage>
</SQPageContainer>
);
}

+ 3
- 3
server/sonar-web/src/main/js/apps/about/sonarcloud/VSTS.tsx View File

@@ -19,14 +19,14 @@
*/
import * as React from 'react';
import { Link } from 'react-router';
import SonarCloudPage from './SonarCloudPage';
import SQPageContainer from './components/SQPageContainer';
import { isLoggedIn } from '../../../app/types';
import { getBaseUrl } from '../../../helpers/urls';
import './style.css';

export default function VSTS() {
return (
<SonarCloudPage>
<SQPageContainer>
{({ currentUser }) => (
<div className="page page-limited sc-page">
<ul className="sc-top-nav">
@@ -130,6 +130,6 @@ export default function VSTS() {
</div>
</div>
)}
</SonarCloudPage>
</SQPageContainer>
);
}

+ 9
- 3
server/sonar-web/src/main/js/apps/about/sonarcloud/__tests__/Home-test.tsx View File

@@ -21,8 +21,14 @@ import * as React from 'react';
import { shallow } from 'enzyme';
import Home from '../Home';

jest.mock('Docs/EmbedDocsSuggestions.json', () => ({}), { virtual: true });

it('should render', () => {
expect(shallow(<Home />)).toBeDefined();
const wrapper = shallow(<Home />);
expect(wrapper).toMatchSnapshot();
expect(wrapper.find('PageBackgroundHeader').dive()).toMatchSnapshot();
expect(wrapper.find('PageTitle').dive()).toMatchSnapshot();
expect(wrapper.find('EnhanceWorkflow').dive()).toMatchSnapshot();
expect(wrapper.find('Functionality').dive()).toMatchSnapshot();
expect(wrapper.find('Languages').dive()).toMatchSnapshot();
expect(wrapper.find('Stats').dive()).toMatchSnapshot();
expect(wrapper.find('Projects').dive()).toMatchSnapshot();
});

+ 506
- 0
server/sonar-web/src/main/js/apps/about/sonarcloud/__tests__/__snapshots__/Home-test.tsx.snap View File

@@ -0,0 +1,506 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`should render 1`] = `
<div
className="global-container"
>
<div
className="page-wrapper"
>
<div
className="page-container sc-page"
>
<FixedNavBar />
<PageBackgroundHeader />
<TopNavBar />
<PageTitle />
<EnhanceWorkflow />
<Functionality />
<Languages />
<Stats />
<Projects />
</div>
</div>
<Footer />
</div>
`;

exports[`should render 2`] = `
<div
className="sc-header-background"
>
<div
className="sc-background-start"
/>
<div
className="sc-background-end"
/>
<div
className="sc-background-center"
>
<img
alt=""
height="418px"
src="/images/sonarcloud/home-header.svg"
/>
</div>
</div>
`;

exports[`should render 3`] = `
<div
className="sc-section sc-columns"
>
<div
className="sc-column sc-column-half display-flex-center"
>
<div>
<h1
className="sc-title-orange"
>
Clean Code
</h1>
<h1
className="sc-spacer-bottom"
>
Rockstar Status
</h1>
<h5
className="sc-big-spacer-bottom sc-regular-weight"
>
Eliminate bugs and vulnerabilities,
<br />
champion quality code in your projects.
</h5>
<div>
<h6>
Go ahead! Analyze your repo:
</h6>
<LoginButtons />
<p
className="sc-mention sc-regular-weight big-spacer-top"
>
Free for Open Source Projects
</p>
</div>
</div>
</div>
<div
className="sc-column sc-column-half text-center"
>
<img
alt=""
src="/images/sonarcloud/home-header-people.png"
width="480px"
/>
</div>
</div>
`;

exports[`should render 4`] = `
<div
className="sc-section sc-columns"
>
<div
className="sc-column sc-column-full"
>
<h3
className="sc-big-spacer-bottom"
>
Enhance Your Workflow
<br />
with Continuous Code Quality
</h3>
<img
alt=""
className="sc-big-spacer-bottom"
src="/images/sonarcloud/home-branch.png"
srcSet="/images/sonarcloud/home-branch.png 1x, /images/sonarcloud/home-branch@2x.png 2x"
/>
<h5
className="spacer-bottom"
>
Maximize your throughput, only release clean code
</h5>
<h6
className="sc-regular-weight"
>
Sonarcloud automatically analyzes branches and decorates pull requests
</h6>
</div>
</div>
`;

exports[`should render 5`] = `
<div
className="position-relative"
>
<div
className="sc-functionality-background"
>
<div
className="sc-background-center"
>
<img
alt=""
height="300px"
src="/images/sonarcloud/home-grey-background.svg"
/>
</div>
</div>
<div
className="sc-functionality-container"
>
<div
className="sc-section"
>
<h3
className="sc-big-spacer-bottom text-center"
>
Functionality
<br />
that Fits Your Projects
</h3>
<div
className="sc-columns"
>
<div
className="sc-column sc-column-small"
>
<h6
className="sc-regular-weight spacer-bottom"
>
Easy to Use
</h6>
<p>
With just a few clicks you’re up and running right where your code lives. Immediate access to the latest features and enhancements.
</p>
<div
className="sc-separator"
/>
<span
className="big-spacer-bottom sc-with-icon"
>
<img
alt=""
className="spacer-right"
src="/images/sonarcloud/scale.svg"
/>
Scale on-demand as your projects grow.
</span>
<span
className="sc-with-icon"
>
<img
alt=""
className="spacer-right"
src="/images/sonarcloud/stop.svg"
/>
No contracts, stop/start anytime.
</span>
</div>
<div
className="sc-column sc-column-big"
>
<img
alt=""
className="sc-rounded-img"
src="/images/sonarcloud/home-easy-to-use.png"
srcSet="/images/sonarcloud/home-easy-to-use.png 1x, /images/sonarcloud/home-easy-to-use@2x.png 2x"
/>
</div>
</div>
<div
className="sc-columns"
>
<div
className="sc-column sc-column-big"
>
<img
alt=""
className="sc-rounded-img"
src="/images/sonarcloud/home-open-transparent.png"
srcSet="/images/sonarcloud/home-open-transparent.png 1x, /images/sonarcloud/home-open-transparent@2x.png 2x"
/>
</div>
<div
className="sc-column sc-column-small"
>
<div>
<h6
className="sc-regular-weight spacer-bottom"
>
Open and transparent
</h6>
<p
className="big-spacer-bottom"
>
Project dashboards keep teams and stakeholders informed on code quality and releasability
</p>
<p>
Display project badges and show your communities you’re all about awesome
</p>
<img
alt=""
className="big-spacer-top"
src="/images/project_badges/sonarcloud-black.svg"
width="200px"
/>
</div>
</div>
</div>
<div
className="sc-columns"
>
<div
className="sc-column sc-column-full"
>
<div>
<h6
className="sc-regular-weight spacer-bottom"
>
Effective Collaboration
</h6>
<p
className="sc-with-inline-icon"
>
Use
<img
alt="SonarCloud"
src="/images/sonarcloud/sonarcloud-logo-text-only.svg"
/>
with your team, share best practices and have fun writing quality code!
</p>
<br />
<p
className="sc-with-inline-icon huge-spacer-bottom"
>
Connect with
<img
alt="SonarCloud"
src="/images/sonarcloud/sonarlint-logo.svg"
/>
and get real-time notifications in your IDE as you work.
</p>
<div>
<img
alt=""
className="huge-spacer-bottom"
src="/images/sonarcloud/ide.svg"
width="216px"
/>
</div>
<img
alt=""
src="/images/sonarcloud/collab.svg"
width="540px"
/>
</div>
</div>
</div>
</div>
</div>
</div>
`;

exports[`should render 6`] = `
<div
className="position-relative"
>
<div
className="sc-languages-container clearfix"
>
<div
className="sc-section sc-columns"
>
<div
className="sc-column-min"
>
<h3
className="big-spacer-bottom"
>
SonarCloud
<br />
speaks your
<br />
language
</h3>
<a
href="#"
onClick={[Function]}
>
See all supported languages
</a>
</div>
<ul
className="sc-languages-list"
style={
Object {
"height": undefined,
}
}
>
<li
key="Java"
>
<img
alt="Java"
src="/images/languages/java.svg"
/>
</li>
<li
key="JavaScript"
>
<img
alt="JavaScript"
src="/images/languages/js.svg"
/>
</li>
<li
key="TypeScript"
>
<img
alt="TypeScript"
src="/images/languages/ts.svg"
/>
</li>
<li
key="C#"
>
<img
alt="C#"
src="/images/languages/csharp.svg"
/>
</li>
<li
key="Python"
>
<img
alt="Python"
src="/images/languages/python.svg"
/>
</li>
<li
key="C++"
>
<img
alt="C++"
src="/images/languages/c-c-plus-plus.svg"
/>
</li>
<li
key="Go"
>
<img
alt="Go"
src="/images/languages/go.svg"
/>
</li>
<li
key="Kotlin"
>
<img
alt="Kotlin"
src="/images/languages/kotlin.svg"
/>
</li>
<li
key="Ruby"
>
<img
alt="Ruby"
src="/images/languages/ruby.svg"
/>
</li>
<li>
<h3>
</h3>
</li>
</ul>
</div>
</div>
</div>
`;

exports[`should render 7`] = `
<div
className="sc-section sc-columns"
>
<div
className="sc-column sc-column-full"
>
<h5
className="sc-big-spacer-bottom"
>
Over 3,000 projects
<br />
continuously analyzed
</h5>
<Statistics
statistics={
Array [
Object {
"icon": "rules",
"text": "Static analysis rules checked",
"value": 9675,
},
Object {
"icon": "locs",
"text": "Lines of code analyzed",
"value": 20000000,
},
Object {
"icon": "pull-request",
"text": "Pull Requests decorated",
"value": 100675,
},
Object {
"icon": "open-source",
"text": "Open source projects inspected",
"value": 99675,
},
]
}
/>
</div>
</div>
`;

exports[`should render 8`] = `
<div
className="sc-section sc-columns"
>
<div
className="sc-column sc-column-full"
>
<h6
className="big-spacer-bottom"
>
Transparency makes sense
<br />
and that’s why the trend is growing.
</h6>
<p
className="sc-big-spacer-bottom"
>
Check out these open source projects showing users
<br />
their commitment to quality.
</p>
<FeaturedProjects />
<h6
className="spacer-bottom"
>
Come join the fun, it’s entirely free for open source projects !
</h6>
<div
className="big-spacer-bottom"
>
<LoginButtons />
</div>
</div>
</div>
`;

+ 126
- 0
server/sonar-web/src/main/js/apps/about/sonarcloud/components/FeaturedProjects.css View File

@@ -0,0 +1,126 @@
/*
* SonarQube
* Copyright (C) 2009-2018 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

.sc-featured-projects {
position: relative;
}

.sc-featured-projects-container {
margin: 0 40px;
overflow: hidden;
padding: 10px 0 20px;
max-width: 985px;
}

.sc-featured-projects-inner {
display: flex;
order: 2;
position: relative;
left: -33.33333%;
transform: translateX(33.33333%);
}

.sc-featured-projects-inner.reversing {
transform: translateX(-33.33333%);
}

.sc-featured-projects-inner.ready {
transform: translateX(0);
transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.sc-featured-projects-inner.loading {
left: 50%;
}

.sc-project-card-container {
flex-basis: 1 0 33.33333%;
}

.sc-project-card {
width: 255px;
display: inline-block;
margin: 0 10px;
padding: 25px;
border: 1px solid var(--sonarcloudBlack300);
border-radius: 5px;
box-shadow: 0 1px 1px rgba(7, 7, 6, 0.1);
transition: all 0.1s ease-in;
color: inherit;
}

.sc-project-card:hover,
.sc-project-card:focus {
box-shadow: 0 10px 30px rgba(7, 7, 6, 0.2);
transform: translateY(-4px);
color: inherit;
}

.sc-project-card-header {
padding: 0 10px 30px;
}

.sc-project-card-limited {
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

.sc-project-card-measures li {
display: flex;
align-items: baseline;
justify-content: space-between;
padding: 6px 0 4px;
border-bottom: 1px solid var(--sonarcloudBlack300);
}

.sc-project-card-measures li:last-of-type {
border: none;
}

.sc-project-card-measures li div {
display: inline-flex;
}

.sc-project-button {
display: block;
position: absolute;
top: 50%;
margin: 0;
padding: 0;
border: none;
background: transparent;
color: var(--sonarcloudBlack300);
text-decoration: none;
cursor: pointer;
outline: none;
transition: all 0.2s ease;
}

.sc-project-button:last-child {
right: 0;
}

.sc-project-button:hover,
.sc-project-button:active,
.sc-project-button:focus {
color: var(--sonarcloudBlack500);
}

+ 308
- 0
server/sonar-web/src/main/js/apps/about/sonarcloud/components/FeaturedProjects.tsx View File

@@ -0,0 +1,308 @@
/*
* SonarQube
* Copyright (C) 2009-2018 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
import * as classNames from 'classnames';
import CountUp from 'react-countup';
import { throttle } from 'lodash';
import { Link } from 'react-router';
import { Project, requestFeaturedProjects } from '../utils';
import ChevronLeftIcon from '../../../../components/icons-components/ChevronLeftIcon';
import ChevronRightIcon from '../../../../components/icons-components/ChevronRightcon';
import CoverageRating from '../../../../components/ui/CoverageRating';
import DeferredSpinner from '../../../../components/common/DeferredSpinner';
import DuplicationsRating from '../../../../components/ui/DuplicationsRating';
import Level from '../../../../components/ui/Level';
import OrganizationAvatar from '../../../../components/common/OrganizationAvatar';
import ProjectCardLanguagesContainer from '../../../projects/components/ProjectCardLanguagesContainer';
import Rating from '../../../../components/ui/Rating';
import { formatMeasure } from '../../../../helpers/measures';
import { getMetricName } from '../../../overview/utils';
import { getProjectUrl } from '../../../../helpers/urls';
import './FeaturedProjects.css';

interface State {
loading: boolean;
reversing: boolean;
slides: Array<{
order: number;
project: Project;
}>;
sliding: boolean;
translate: number;
viewable: boolean;
}

export default class FeaturedProjects extends React.PureComponent<{}, State> {
container?: HTMLElement | null;
mounted = false;

constructor(props: {}) {
super(props);
this.state = {
loading: true,
reversing: false,
slides: [],
sliding: false,
translate: 0,
viewable: false
};
this.fetchProjects();
this.handleScroll = throttle(this.handleScroll, 10);
}

componentDidMount() {
document.addEventListener('scroll', this.handleScroll, true);
}

componentWillUnmount() {
document.removeEventListener('scroll', this.handleScroll, true);
}

handleScroll = () => {
if (this.container) {
const rect = this.container.getBoundingClientRect();
const windowHeight = window.innerHeight || document.documentElement.clientHeight;
if (rect.top <= windowHeight && rect.top + rect.height >= 0) {
this.setState({ viewable: true });
}
}
};

fetchProjects = () => {
requestFeaturedProjects()
.then(projects =>
// Move the last element at the begining to properly display the carousel animations
this.setState({
loading: false,
slides: [projects.pop(), ...projects].map((project: Project, id) => {
return {
order: id,
project
};
})
})
)
.catch(() => {
/* Fail silently */
});
};

handlePrevClick = () => {
this.setState(({ slides }) => ({
reversing: true,
sliding: true,
slides: slides.map(slide => {
slide.order = slide.order === slides.length - 1 ? 0 : slide.order + 1;
return slide;
})
}));
setTimeout(() => {
this.setState({ sliding: false });
}, 50);
};

handleNextClick = () => {
this.setState(({ slides }) => ({
reversing: false,
sliding: true,
slides: slides.map(slide => {
slide.order = slide.order === 0 ? slides.length - 1 : slide.order - 1;
return slide;
})
}));
setTimeout(() => {
this.setState({ sliding: false });
}, 50);
};

render() {
const { loading, reversing, sliding, viewable } = this.state;
return (
<div
className="sc-featured-projects sc-big-spacer-bottom"
ref={node => (this.container = node)}>
{!loading && (
<button
className="js-prev sc-project-button"
onClick={this.handlePrevClick}
type="button">
<ChevronLeftIcon className="spacer-left" size={32} />
</button>
)}
<div className="sc-featured-projects-container">
<div
className={classNames('sc-featured-projects-inner', {
reversing,
ready: !sliding,
loading
})}>
{loading && <DeferredSpinner />}
{!loading &&
this.state.slides.map(slide => (
<ProjectCard
key={slide.project.key}
order={slide.order}
project={slide.project}
viewable={viewable}
/>
))}
</div>
</div>
{!loading && (
<button
className="js-next sc-project-button"
onClick={this.handleNextClick}
type="button">
<ChevronRightIcon className="spacer-left" size={32} />
</button>
)}
</div>
);
}
}

interface ProjectCardProps {
order: number;
project: Project;
viewable: boolean;
}

export function ProjectCard({ project, order, viewable }: ProjectCardProps) {
return (
<div className="sc-project-card-container" style={{ order }}>
<Link className="sc-project-card" to={getProjectUrl(project.key)}>
<div className="sc-project-card-header">
{project.organization && (
<>
<OrganizationAvatar
className="no-border big-spacer-bottom"
organization={project.organization}
/>
<p className="sc-project-card-limited" title={project.organization.name}>
{project.organization.name}
</p>
</>
)}
<h5 className="sc-project-card-limited spacer-bottom" title={project.name}>
{project.name}
</h5>
<Level level={project.measures['alert_status']} />
</div>
<ul className="sc-project-card-measures">
<ProjectIssues
measures={project.measures}
metric="bugs"
ratingMetric="reliability_rating"
viewable={viewable}
/>
<ProjectIssues
measures={project.measures}
metric="vulnerabilities"
ratingMetric="security_rating"
viewable={viewable}
/>
<ProjectIssues
measures={project.measures}
metric="code_smells"
ratingMetric="sqale_rating"
viewable={viewable}
/>
<li>
<span>{getMetricName('coverage')}</span>
<div>
{viewable && (
<CountUp
decimal="."
decimals={1}
delay={0}
duration={4}
end={parseFloat(project.measures['coverage'])}
suffix="%">
{(data: { countUpRef?: React.RefObject<HTMLHeadingElement> }) => (
<h6 className="display-inline-block big-spacer-right" ref={data.countUpRef}>
0
</h6>
)}
</CountUp>
)}
<CoverageRating value={project.measures['coverage']} />
</div>
</li>
<li>
<span>{getMetricName('duplications')}</span>
<div>
{viewable && (
<CountUp
decimal="."
decimals={1}
delay={0}
duration={4}
end={parseFloat(project.measures['duplicated_lines_density'])}
suffix="%">
{(data: { countUpRef?: React.RefObject<HTMLHeadingElement> }) => (
<h6 className="display-inline-block big-spacer-right" ref={data.countUpRef}>
0
</h6>
)}
</CountUp>
)}
<DuplicationsRating value={Number(project.measures['duplicated_lines_density'])} />
</div>
</li>
</ul>
<div className="sc-mention text-left big-spacer-top">
{formatMeasure(project.measures['ncloc'], 'SHORT_INT')} lines of code /{' '}
<ProjectCardLanguagesContainer
className="display-inline-block"
distribution={project.measures['ncloc_language_distribution']}
/>
</div>
</Link>
</div>
);
}

interface ProjectIssues {
measures: { [key: string]: string };
metric: string;
ratingMetric: string;
viewable: boolean;
}

export function ProjectIssues({ measures, metric, ratingMetric, viewable }: ProjectIssues) {
const value = parseFloat(formatMeasure(measures[metric], 'SHORT_INT'));
return (
<li>
<span>{getMetricName(metric)}</span>
<div>
{viewable && (
<CountUp delay={0} duration={4} end={value}>
{(data: { countUpRef?: React.RefObject<HTMLHeadingElement> }) => (
<h6 className="display-inline-block big-spacer-right" ref={data.countUpRef}>
0
</h6>
)}
</CountUp>
)}
<Rating value={measures[ratingMetric]} />
</div>
</li>
);
}

+ 86
- 0
server/sonar-web/src/main/js/apps/about/sonarcloud/components/Footer.css View File

@@ -0,0 +1,86 @@
/*
* SonarQube
* Copyright (C) 2009-2018 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
.sc-footer {
background-color: var(--sonarcloudBlack800);
color: var(--sonarcloudBlack300);
font-size: 12px;
}

.sc-footer *:focus {
box-shadow: 0 0 0 3px rgba(230, 92, 0, 0.25);
}

.sc-footer-limited {
position: relative;
max-width: 1280px;
margin-left: auto;
margin-right: auto;
padding-left: 20px;
padding-right: 20px;
}

.sc-footer-copy {
padding: 20px 0;
border-top: 1px solid var(--sonarcloudBlack700);
line-height: 16px;
font-size: 11px;
text-align: center;
}

.sc-footer-copy-link {
text-decoration: underline;
}

.sc-footer-nav {
display: flex;
padding: 30px 0;
}

.sc-footer-nav-column {
margin-right: 60px;
}

.sc-footer-nav-column-title {
line-height: 1;
margin-bottom: 16px;
color: #fff;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
}

.sc-footer-link {
border: none;
color: inherit;
}

.sc-footer-link:hover {
color: #fff;
}

.sc-footer-link:focus {
color: var(--sonarcloudOrange500);
}

.sc-footer-logo {
position: absolute;
top: 30px;
right: 20px;
}

server/sonar-web/src/main/js/apps/about/sonarcloud/Footer.tsx → server/sonar-web/src/main/js/apps/about/sonarcloud/components/Footer.tsx View File

@@ -19,7 +19,8 @@
*/
import * as React from 'react';
import { Link } from 'react-router';
import { getBaseUrl } from '../../../helpers/urls';
import { getBaseUrl } from '../../../../helpers/urls';
import './Footer.css';

export default function Footer() {
return (

+ 111
- 0
server/sonar-web/src/main/js/apps/about/sonarcloud/components/Languages.tsx View File

@@ -0,0 +1,111 @@
/*
* SonarQube
* Copyright (C) 2009-2018 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import * as React from 'react';
import { getBaseUrl } from '../../../../helpers/urls';

interface State {
height?: number;
open: boolean;
}

const LANGUAGES = [
{ name: 'Java', file: 'java.svg' },
{ name: 'JavaScript', file: 'js.svg' },
{ name: 'TypeScript', file: 'ts.svg' },
{ name: 'C#', file: 'csharp.svg' },
{ name: 'Python', file: 'python.svg' },
{ name: 'C++', file: 'c-c-plus-plus.svg' },
{ name: 'Go', file: 'go.svg' },
{ name: 'Kotlin', file: 'kotlin.svg' },
{ name: 'Ruby', file: 'ruby.svg' },
{ name: 'ABAP', file: 'abap.svg' },
{ name: 'Flex', file: 'flex.svg' },
{ name: 'HTML', file: 'html5.svg' },
{ name: 'Objective-C', file: 'obj-c.svg' },
{ name: 'PHP', file: 'php.svg' },
{ name: 'Swift', file: 'swift.svg' },
{ name: 'T-SQL', file: 't-sql.svg' },
{ name: 'PL/SQL', file: 'pl-sql.svg' },
{ name: 'VB', file: 'vb.svg' },
{ name: 'XML', file: 'xml.svg' }
];

export class Languages extends React.PureComponent<{}, State> {
container?: HTMLElement | null;
state: State = { open: false };

componentDidUpdate() {
if (this.container && this.container.clientHeight !== this.container.scrollHeight) {
this.setState({ height: this.container.scrollHeight });
}
}

handleOpenClick = (event: React.MouseEvent<HTMLAnchorElement>) => {
event.preventDefault();
event.stopPropagation();
this.setState({ height: this.container ? this.container.clientHeight : undefined, open: true });
};

render() {
const { open } = this.state;
const languages = open ? LANGUAGES : LANGUAGES.slice(0, 9);

return (
<div className="position-relative">
<div className="sc-languages-container clearfix">
<div className="sc-section sc-columns">
<div className="sc-column-min">
<h3 className="big-spacer-bottom">
SonarCloud
<br />
speaks your
<br />
language
</h3>
{!open && (
<a href="#" onClick={this.handleOpenClick}>
See all supported languages
</a>
)}
</div>
<ul
className="sc-languages-list"
ref={node => (this.container = node)}
style={{ height: this.state.height }}>
{languages.map(language => (
<li key={language.name}>
<img
alt={language.name}
src={`${getBaseUrl()}/images/languages/${language.file}`}
/>
</li>
))}
{!open && (
<li>
<h3>…</h3>
</li>
)}
</ul>
</div>
</div>
</div>
);
}
}

+ 48
- 0
server/sonar-web/src/main/js/apps/about/sonarcloud/components/LoginButtons.css View File

@@ -0,0 +1,48 @@
/*
* SonarQube
* Copyright (C) 2009-2018 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

.sc-login-button {
display: inline-block;
background-color: var(--sonarcloudBlack100);
border: 1px solid var(--sonarcloudBlack300);
color: var(--sonarcloudBlack800);
margin: 10px 12px auto auto;
font-size: 18px;
font-weight: 700;
padding: 0 15px;
border-radius: 4px;
height: 44px;
line-height: 44px;
transition: all 0.2s ease;
box-shadow: 0 1px 2px rgba(7, 7, 6, 0.1);
}

.sc-login-button > img {
height: 25px;
padding-top: 10px;
margin-right: 12px;
margin-bottom: 1px;
}

.sc-login-button:hover {
box-shadow: 0 10px 20px rgba(7, 7, 6, 0.2);
transform: translate(0, -2px);
color: var(--sonarcloudBlack800);
}

+ 0
- 0
server/sonar-web/src/main/js/apps/about/sonarcloud/components/LoginButtons.tsx View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save