ClusterOutput and Output implementation

rancher/dashboard#1102
rancher/dashboard#1103
This commit is contained in:
Cody Jackson 2020-09-16 19:06:02 -07:00
parent d6970438eb
commit 0fff2f7094
28 changed files with 1583 additions and 350 deletions

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 44.4991302 50" style="enable-background:new 0 0 44.4991302 50;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st1{filter:url(#Adobe_OpacityMaskFilter);}
.st2{mask:url(#mask-2_1_);fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st3{filter:url(#Adobe_OpacityMaskFilter_1_);}
.st4{mask:url(#mask-4_1_);fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
</style>
<desc>Created with Sketch.</desc>
<g id="icon-_x2F_-product-logo-_x2F_-32x32px-_x2F_-elasticsearch-_x2F_-white">
<g id="Group-9" transform="translate(1.000000, 0.000000)">
<path id="Fill-1" class="st0" d="M-1,25.0003128c0,2.1624718,0.3031212,4.2483845,0.8187398,6.2499237H30.249609
c3.4515209,0,6.2499218-2.7984047,6.2499218-6.2499237s-2.7984009-6.2499218-6.2499218-6.2499218H-0.1812602
C-0.6968788,20.7519283-1,22.8378391-1,25.0003128"/>
<g id="Group-5" transform="translate(1.000000, 0.000000)">
<g id="Clip-4">
</g>
<defs>
<filter id="Adobe_OpacityMaskFilter" filterUnits="userSpaceOnUse" x="0.5684054" y="0" width="41.9307251" height="14.0623245">
<feColorMatrix type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/>
</filter>
</defs>
<mask maskUnits="userSpaceOnUse" x="0.5684054" y="0" width="41.9307251" height="14.0623245" id="mask-2_1_">
<g class="st1">
<polygon id="path-1_1_" class="st0" points="0.5684054,0.0007812 42.4978828,0.0007812 42.4978828,14.0623245
0.5684054,14.0623245 "/>
</g>
</mask>
<path id="Fill-3" class="st2" d="M40.0679092,11.9717255c0.8734283-0.804677,1.6859207-1.6687288,2.431221-2.5968428
C37.916378,3.6655791,30.8899021,0,22.9993744,0C13.1229353,0,4.6230421,5.7468033,0.5684054,14.0623245h34.1667595
C36.7132683,14.0623245,38.6148033,13.3123331,40.0679092,11.9717255"/>
</g>
<g id="Group-8" transform="translate(1.000000, 23.000000)">
<g id="Clip-7">
</g>
<defs>
<filter id="Adobe_OpacityMaskFilter_1_" filterUnits="userSpaceOnUse" x="0.5682492" y="12.9376755" width="41.9307251" height="14.0623245">
<feColorMatrix type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/>
</filter>
</defs>
<mask maskUnits="userSpaceOnUse" x="0.5682492" y="12.9376755" width="41.9307251" height="14.0623245" id="mask-4_1_">
<g class="st3">
<polygon id="path-3_1_" class="st0" points="0.5682492,12.9376755 42.4978828,12.9376755 42.4978828,27 0.5682492,27 "/>
</g>
</mask>
<path id="Fill-6" class="st4" d="M34.7350082,12.9376755H0.5682492C4.6244488,21.2547588,13.1227808,27,22.999218,27
c7.8905277,0,14.9169998-3.6640167,19.4997559-9.3748817c-0.7453003-0.9265518-1.5577927-1.7921658-2.4312172-2.5968437
C38.6146469,13.6876669,36.7131081,12.9376755,34.7350082,12.9376755"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,322 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 60.7108955 50" style="enable-background:new 0 0 60.7108955 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:url(#SVGID_1_);}
.st2{fill:url(#SVGID_2_);}
.st3{fill:url(#SVGID_3_);}
.st4{fill:url(#SVGID_4_);}
.st5{fill:url(#SVGID_5_);}
.st6{fill:url(#SVGID_6_);}
.st7{fill:url(#SVGID_7_);}
.st8{fill:url(#SVGID_8_);}
.st9{fill:url(#SVGID_9_);}
.st10{fill:url(#SVGID_10_);}
.st11{fill:url(#SVGID_11_);}
.st12{fill:url(#SVGID_12_);}
.st13{fill:url(#SVGID_13_);}
.st14{fill:url(#SVGID_14_);}
.st15{fill:url(#SVGID_15_);}
.st16{fill:url(#SVGID_16_);}
.st17{fill:url(#SVGID_17_);}
.st18{fill:url(#SVGID_18_);}
.st19{fill:url(#SVGID_19_);}
.st20{fill:url(#SVGID_20_);}
.st21{fill:url(#SVGID_21_);}
.st22{fill:url(#SVGID_22_);}
.st23{fill:url(#SVGID_23_);}
.st24{fill:url(#SVGID_24_);}
.st25{fill:url(#SVGID_25_);}
.st26{fill:url(#SVGID_26_);}
.st27{fill:url(#SVGID_27_);}
.st28{fill:url(#SVGID_28_);}
</style>
<g transform="translate(-657.1 -27.496)">
<circle class="st0" cx="709.1942139" cy="45.2050247" r="1.2642868"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2316.6669922" y1="1107.3066406" x2="2396.9453125" y2="1107.3066406" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.75"/>
<stop offset="0.32" style="stop-color:#FFFFFF;stop-opacity:0.57"/>
<stop offset="0.68" style="stop-color:#FFFFFF;stop-opacity:0.55"/>
<stop offset="0.9" style="stop-color:#FFFFFF;stop-opacity:0.45"/>
</linearGradient>
<path class="st1" d="M679.0238037,37.4900208c-2.0256958-1.5516243-4.0945435-3.1607132-6.1202393-4.6117668
c-0.4741211-0.3304367-0.9482422-0.6608734-1.3648682-0.991312c-5.4594116-3.7641182-10.5452881-6.120285-13.3612061-2.8159065
c-2.1693726,2.5429363-0.991333,8.4189854,3.4337158,15.5305805l0.1436768,0.2298737
c2.298645,3.6204491,9.0367432,12.1399994,24.998291,11.7664604c1.0344238-1.1349792,2.6435547-3.2469139,4.7123413-5.5456123
C688.118042,45.5929298,683.0752563,40.8374977,679.0238037,37.4900208L679.0238037,37.4900208z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2319.7380371" y1="1092.5913086" x2="2396.1921387" y2="1092.5913086" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.4"/>
<stop offset="0.67" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st2" d="M691.4511719,51.0523376c-2.0688477,2.2986984-3.6779175,4.4249954-4.7123413,5.5456123
c2.399292-0.0430984,4.7985229-0.2298698,7.1547241-0.6034088c-0.2299194-0.7039757-0.5172119-1.3648529-0.8476562-2.0257301
C692.5861206,52.9774971,692.0258179,51.9861832,691.4511719,51.0523376L691.4511719,51.0523376z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="2347.1428223" y1="1104.4979248" x2="2396.6276855" y2="1104.4979248" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="0.97" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st3" d="M703.4044189,42.3029175c-4.3244629,1.3217545-8.6201172,3.5342522-14.1226807,1.7814903
c-2.7727661-0.847641-6.4075928-3.5773468-10.3153687-6.5369225c4.0945435,3.2900124,9.1373291,8.0454445,12.4703979,13.5048523
C694.5112915,47.61866,698.605835,43.854538,703.4044189,42.3029175z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="2375.5004883" y1="1116.5725098" x2="2375.5004883" y2="1062.2161865" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.35"/>
<stop offset="0.964" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.26"/>
</linearGradient>
<path class="st4" d="M693.8935547,55.9945412c0.1867676,0.5172081,0.3735352,1.0344162,0.5171509,1.5516205
c0.3304443,1.2642822,0.5603638,2.5429344,0.6608887,3.8646851c0.0430908,0.5603065,0.0430908,1.1349792,0.0430908,1.6952896
c-0.0861816,3.6204491-1.7384033,5.6892815-2.1693726,6.0628166c5.8760376-5.5025063,8.5195312-12.1399994,14.2662964-17.1684036
c0.991333-0.8476448,2.0688477-1.5516205,3.2468872-2.0688286c-3.7497559,1.5947227-7.8586426,4.741066-16.5650024,6.0628204
H693.8935547z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="2311.4875488" y1="1265.7750244" x2="2367.776123" y2="1265.7750244" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.6"/>
<stop offset="0.93" style="stop-color:#FFFFFF;stop-opacity:0.47"/>
</linearGradient>
<path class="st5" d="M661.7548218,44.8889542c4.381897,6.867363,11.2061768,12.3267708,9.8843994,19.955574
c-1.6952515,9.8413086-14.5392456,10.732048-14.5392456,10.732048h0.2873535c1.2642822,0,6.9678955-0.4310074,15.5736694-6.2639542
c7.3845825-5.0284042,11.8670044-10.6314812,13.7921753-12.7003098c-1.7814941,0.0430984-3.4336548-0.0430984-4.9852905-0.1867676
C669.383667,55.1468964,663.8236694,48.0783958,661.7548218,44.8889542L661.7548218,44.8889542z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="2319.7480469" y1="1076.4411621" x2="2396.2021484" y2="1076.4411621" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="0.98" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st6" d="M695.0715942,63.1061401c0.0430908-2.3992691-0.3735352-4.855999-1.2211914-7.111599
c-0.3735352,0.0430984-0.7039795,0.0862007-1.0775146,0.1436691c-2.0256958,0.2298698-4.0514526,0.4310036-6.0628052,0.4310036
c-1.982605,2.0688286-6.4075928,7.6719055-13.7921753,12.7003098c-9.7982178,6.7236938-15.8179321,6.3070526-15.8179321,6.3070526
s14.3956299,4.4680939,26.0758667-0.2298737c3.6204834-1.4079514,6.9679565-3.5342484,9.7982178-6.1633835
C693.3763428,68.7379456,695.0285034,66.7265854,695.0715942,63.1061401z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="2379.1708984" y1="1269.1065674" x2="2379.1708984" y2="1241.7648926" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.3"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.35"/>
</linearGradient>
<path class="st7" d="M716.6793823,47.4175224c-0.6608887-0.3304367-1.2642822-0.7470741-1.7814941-1.2211838
c-0.5172119-0.5172043-1.0775146-1.8820572-1.3217773-2.2555962c-0.7039795-1.1780815-1.7383423-2.126297-3.9077759-2.3992653
c-2.1693726-0.2873383-4.1951294,0.1436691-6.2064819,0.7470779c-4.8560181,1.5516205-8.9361572,5.3157387-11.9963379,8.7494202
c0.6034546,0.9482155,1.1350098,1.9251595,1.5947266,2.9164734c0.3304443,0.6608772,0.6033936,1.3648567,0.8476562,2.0257301
c8.7062988-1.3217545,12.8008423-4.4680977,16.5650024-6.0628204c1.882019-0.8045425,3.9077759-1.1780815,5.9335327-1.1349792
h1.0775146c0.7901611,0.0574646,0-0.8907471-0.8045654-1.3648529V47.4175224z"/>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="2316.6669922" y1="1107.3066406" x2="2396.9453125" y2="1107.3066406" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.75"/>
<stop offset="0.32" style="stop-color:#FFFFFF;stop-opacity:0.57"/>
<stop offset="0.68" style="stop-color:#FFFFFF;stop-opacity:0.55"/>
<stop offset="0.9" style="stop-color:#FFFFFF;stop-opacity:0.45"/>
</linearGradient>
<path class="st8" d="M679.0238037,37.4900208c-2.0256958-1.5516243-4.0945435-3.1607132-6.1202393-4.6117668
c-0.4741211-0.3304367-0.9482422-0.6608734-1.3648682-0.991312c-5.4594116-3.7641182-10.5452881-6.120285-13.3612061-2.8159065
c-2.1693726,2.5429363-0.991333,8.4189854,3.4337158,15.5305805l0.1436768,0.2298737
c2.298645,3.6204491,9.0367432,12.1399994,24.998291,11.7664604c1.0344238-1.1349792,2.6435547-3.2469139,4.7123413-5.5456123
C688.118042,45.5929298,683.0752563,40.8374977,679.0238037,37.4900208L679.0238037,37.4900208z"/>
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="2319.7380371" y1="1092.5913086" x2="2396.1921387" y2="1092.5913086" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.4"/>
<stop offset="0.67" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st9" d="M691.4511719,51.0523376c-2.0688477,2.2986984-3.6779175,4.4249954-4.7123413,5.5456123
c2.399292-0.0430984,4.7985229-0.2298698,7.1547241-0.6034088c-0.2299194-0.7039757-0.5172119-1.3648529-0.8476562-2.0257301
C692.5861206,52.9774971,692.0258179,51.9861832,691.4511719,51.0523376L691.4511719,51.0523376z"/>
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="2347.1428223" y1="1104.4979248" x2="2396.6276855" y2="1104.4979248" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="0.97" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st10" d="M703.4044189,42.3029175c-4.3244629,1.3217545-8.6201172,3.5342522-14.1226807,1.7814903
c-2.7727661-0.847641-6.4075928-3.5773468-10.3153687-6.5369225c4.0945435,3.2900124,9.1373291,8.0454445,12.4703979,13.5048523
C694.5112915,47.61866,698.605835,43.854538,703.4044189,42.3029175z"/>
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="2375.5004883" y1="1116.5725098" x2="2375.5004883" y2="1062.2161865" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.35"/>
<stop offset="0.964" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.26"/>
</linearGradient>
<path class="st11" d="M693.8935547,55.9945412c0.1867676,0.5172081,0.3735352,1.0344162,0.5171509,1.5516205
c0.3304443,1.2642822,0.5603638,2.5429344,0.6608887,3.8646851c0.0430908,0.5603065,0.0430908,1.1349792,0.0430908,1.6952896
c-0.0861816,3.6204491-1.7384033,5.6892815-2.1693726,6.0628166c5.8760376-5.5025063,8.5195312-12.1399994,14.2662964-17.1684036
c0.991333-0.8476448,2.0688477-1.5516205,3.2468872-2.0688286c-3.7497559,1.5947227-7.8586426,4.741066-16.5650024,6.0628204
H693.8935547z"/>
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="2311.4875488" y1="1265.7750244" x2="2367.776123" y2="1265.7750244" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.6"/>
<stop offset="0.93" style="stop-color:#FFFFFF;stop-opacity:0.47"/>
</linearGradient>
<path class="st12" d="M661.7548218,44.8889542c4.381897,6.867363,11.2061768,12.3267708,9.8843994,19.955574
c-1.6952515,9.8413086-14.5392456,10.732048-14.5392456,10.732048h0.2873535c1.2642822,0,6.9678955-0.4310074,15.5736694-6.2639542
c7.3845825-5.0284042,11.8670044-10.6314812,13.7921753-12.7003098c-1.7814941,0.0430984-3.4336548-0.0430984-4.9852905-0.1867676
C669.383667,55.1468964,663.8236694,48.0783958,661.7548218,44.8889542L661.7548218,44.8889542z"/>
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="2319.7480469" y1="1076.4411621" x2="2396.2021484" y2="1076.4411621" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="0.98" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st13" d="M695.0715942,63.1061401c0.0430908-2.3992691-0.3735352-4.855999-1.2211914-7.111599
c-0.3735352,0.0430984-0.7039795,0.0862007-1.0775146,0.1436691c-2.0256958,0.2298698-4.0514526,0.4310036-6.0628052,0.4310036
c-1.982605,2.0688286-6.4075928,7.6719055-13.7921753,12.7003098c-9.7982178,6.7236938-15.8179321,6.3070526-15.8179321,6.3070526
s14.3956299,4.4680939,26.0758667-0.2298737c3.6204834-1.4079514,6.9679565-3.5342484,9.7982178-6.1633835
C693.3763428,68.7379456,695.0285034,66.7265854,695.0715942,63.1061401z"/>
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="2379.1708984" y1="1269.1065674" x2="2379.1708984" y2="1241.7648926" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.3"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.35"/>
</linearGradient>
<path class="st14" d="M716.6793823,47.4175224c-0.6608887-0.3304367-1.2642822-0.7470741-1.7814941-1.2211838
c-0.5172119-0.5172043-1.0775146-1.8820572-1.3217773-2.2555962c-0.7039795-1.1780815-1.7383423-2.126297-3.9077759-2.3992653
c-2.1693726-0.2873383-4.1951294,0.1436691-6.2064819,0.7470779c-4.8560181,1.5516205-8.9361572,5.3157387-11.9963379,8.7494202
c0.6034546,0.9482155,1.1350098,1.9251595,1.5947266,2.9164734c0.3304443,0.6608772,0.6033936,1.3648567,0.8476562,2.0257301
c8.7062988-1.3217545,12.8008423-4.4680977,16.5650024-6.0628204c1.882019-0.8045425,3.9077759-1.1780815,5.9335327-1.1349792
h1.0775146c0.7901611,0.0574646,0-0.8907471-0.8045654-1.3648529V47.4175224z"/>
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="2316.6669922" y1="1107.3066406" x2="2396.9453125" y2="1107.3066406" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.75"/>
<stop offset="0.32" style="stop-color:#FFFFFF;stop-opacity:0.57"/>
<stop offset="0.68" style="stop-color:#FFFFFF;stop-opacity:0.55"/>
<stop offset="0.9" style="stop-color:#FFFFFF;stop-opacity:0.45"/>
</linearGradient>
<path class="st15" d="M679.0238037,37.4900208c-2.0256958-1.5516243-4.0945435-3.1607132-6.1202393-4.6117668
c-0.4741211-0.3304367-0.9482422-0.6608734-1.3648682-0.991312c-5.4594116-3.7641182-10.5452881-6.120285-13.3612061-2.8159065
c-2.1693726,2.5429363-0.991333,8.4189854,3.4337158,15.5305805l0.1436768,0.2298737
c2.298645,3.6204491,9.0367432,12.1399994,24.998291,11.7664604c1.0344238-1.1349792,2.6435547-3.2469139,4.7123413-5.5456123
C688.118042,45.5929298,683.0752563,40.8374977,679.0238037,37.4900208L679.0238037,37.4900208z"/>
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="2319.7380371" y1="1092.5913086" x2="2396.1921387" y2="1092.5913086" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.4"/>
<stop offset="0.67" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st16" d="M691.4511719,51.0523376c-2.0688477,2.2986984-3.6779175,4.4249954-4.7123413,5.5456123
c2.399292-0.0430984,4.7985229-0.2298698,7.1547241-0.6034088c-0.2299194-0.7039757-0.5172119-1.3648529-0.8476562-2.0257301
C692.5861206,52.9774971,692.0258179,51.9861832,691.4511719,51.0523376L691.4511719,51.0523376z"/>
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="2347.1428223" y1="1104.4979248" x2="2396.6276855" y2="1104.4979248" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="0.97" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st17" d="M703.4044189,42.3029175c-4.3244629,1.3217545-8.6201172,3.5342522-14.1226807,1.7814903
c-2.7727661-0.847641-6.4075928-3.5773468-10.3153687-6.5369225c4.0945435,3.2900124,9.1373291,8.0454445,12.4703979,13.5048523
C694.5112915,47.61866,698.605835,43.854538,703.4044189,42.3029175z"/>
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="2375.5004883" y1="1116.5725098" x2="2375.5004883" y2="1062.2161865" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.35"/>
<stop offset="0.964" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.26"/>
</linearGradient>
<path class="st18" d="M693.8935547,55.9945412c0.1867676,0.5172081,0.3735352,1.0344162,0.5171509,1.5516205
c0.3304443,1.2642822,0.5603638,2.5429344,0.6608887,3.8646851c0.0430908,0.5603065,0.0430908,1.1349792,0.0430908,1.6952896
c-0.0861816,3.6204491-1.7384033,5.6892815-2.1693726,6.0628166c5.8760376-5.5025063,8.5195312-12.1399994,14.2662964-17.1684036
c0.991333-0.8476448,2.0688477-1.5516205,3.2468872-2.0688286c-3.7497559,1.5947227-7.8586426,4.741066-16.5650024,6.0628204
H693.8935547z"/>
<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="2311.4875488" y1="1265.7750244" x2="2367.776123" y2="1265.7750244" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.6"/>
<stop offset="0.93" style="stop-color:#FFFFFF;stop-opacity:0.47"/>
</linearGradient>
<path class="st19" d="M661.7548218,44.8889542c4.381897,6.867363,11.2061768,12.3267708,9.8843994,19.955574
c-1.6952515,9.8413086-14.5392456,10.732048-14.5392456,10.732048h0.2873535c1.2642822,0,6.9678955-0.4310074,15.5736694-6.2639542
c7.3845825-5.0284042,11.8670044-10.6314812,13.7921753-12.7003098c-1.7814941,0.0430984-3.4336548-0.0430984-4.9852905-0.1867676
C669.383667,55.1468964,663.8236694,48.0783958,661.7548218,44.8889542L661.7548218,44.8889542z"/>
<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="2319.7480469" y1="1076.4411621" x2="2396.2021484" y2="1076.4411621" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="0.98" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st20" d="M695.0715942,63.1061401c0.0430908-2.3992691-0.3735352-4.855999-1.2211914-7.111599
c-0.3735352,0.0430984-0.7039795,0.0862007-1.0775146,0.1436691c-2.0256958,0.2298698-4.0514526,0.4310036-6.0628052,0.4310036
c-1.982605,2.0688286-6.4075928,7.6719055-13.7921753,12.7003098c-9.7982178,6.7236938-15.8179321,6.3070526-15.8179321,6.3070526
s14.3956299,4.4680939,26.0758667-0.2298737c3.6204834-1.4079514,6.9679565-3.5342484,9.7982178-6.1633835
C693.3763428,68.7379456,695.0285034,66.7265854,695.0715942,63.1061401z"/>
<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="2379.1708984" y1="1269.1065674" x2="2379.1708984" y2="1241.7648926" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.3"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.35"/>
</linearGradient>
<path class="st21" d="M716.6793823,47.4175224c-0.6608887-0.3304367-1.2642822-0.7470741-1.7814941-1.2211838
c-0.5172119-0.5172043-1.0775146-1.8820572-1.3217773-2.2555962c-0.7039795-1.1780815-1.7383423-2.126297-3.9077759-2.3992653
c-2.1693726-0.2873383-4.1951294,0.1436691-6.2064819,0.7470779c-4.8560181,1.5516205-8.9361572,5.3157387-11.9963379,8.7494202
c0.6034546,0.9482155,1.1350098,1.9251595,1.5947266,2.9164734c0.3304443,0.6608772,0.6033936,1.3648567,0.8476562,2.0257301
c8.7062988-1.3217545,12.8008423-4.4680977,16.5650024-6.0628204c1.882019-0.8045425,3.9077759-1.1780815,5.9335327-1.1349792
h1.0775146c0.7901611,0.0574646,0-0.8907471-0.8045654-1.3648529V47.4175224z"/>
<g>
<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="2316.6669922" y1="1107.3066406" x2="2396.9453125" y2="1107.3066406" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.75"/>
<stop offset="0.32" style="stop-color:#FFFFFF;stop-opacity:0.57"/>
<stop offset="0.68" style="stop-color:#FFFFFF;stop-opacity:0.55"/>
<stop offset="0.9" style="stop-color:#FFFFFF;stop-opacity:0.45"/>
</linearGradient>
<path class="st22" d="M679.0238037,37.4900208c-2.0256958-1.5516243-4.0945435-3.1607132-6.1202393-4.6117668
c-0.4741211-0.3304367-0.9482422-0.6608734-1.3648682-0.991312c-5.4594116-3.7641182-10.5452881-6.120285-13.3612061-2.8159065
c-2.1693726,2.5429363-0.991333,8.4189854,3.4337158,15.5305805l0.1436768,0.2298737
c2.298645,3.6204491,9.0367432,12.1399994,24.998291,11.7664604c1.0344238-1.1349792,2.6435547-3.2469139,4.7123413-5.5456123
C688.118042,45.5929298,683.0752563,40.8374977,679.0238037,37.4900208L679.0238037,37.4900208z"/>
<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="2319.7380371" y1="1092.5913086" x2="2396.1921387" y2="1092.5913086" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.4"/>
<stop offset="0.67" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st23" d="M691.4511719,51.0523376c-2.0688477,2.2986984-3.6779175,4.4249954-4.7123413,5.5456123
c2.399292-0.0430984,4.7985229-0.2298698,7.1547241-0.6034088c-0.2299194-0.7039757-0.5172119-1.3648529-0.8476562-2.0257301
C692.5861206,52.9774971,692.0258179,51.9861832,691.4511719,51.0523376L691.4511719,51.0523376z"/>
<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="2347.1428223" y1="1104.4979248" x2="2396.6276855" y2="1104.4979248" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="0.97" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st24" d="M703.4044189,42.3029175c-4.3244629,1.3217545-8.6201172,3.5342522-14.1226807,1.7814903
c-2.7727661-0.847641-6.4075928-3.5773468-10.3153687-6.5369225c4.0945435,3.2900124,9.1373291,8.0454445,12.4703979,13.5048523
C694.5112915,47.61866,698.605835,43.854538,703.4044189,42.3029175z"/>
<linearGradient id="SVGID_25_" gradientUnits="userSpaceOnUse" x1="2375.5004883" y1="1116.5725098" x2="2375.5004883" y2="1062.2161865" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.35"/>
<stop offset="0.964" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.26"/>
</linearGradient>
<path class="st25" d="M693.8935547,55.9945412c0.1867676,0.5172081,0.3735352,1.0344162,0.5171509,1.5516205
c0.3304443,1.2642822,0.5603638,2.5429344,0.6608887,3.8646851c0.0430908,0.5603065,0.0430908,1.1349792,0.0430908,1.6952896
c-0.0861816,3.6204491-1.7384033,5.6892815-2.1693726,6.0628166c5.8760376-5.5025063,8.5195312-12.1399994,14.2662964-17.1684036
c0.991333-0.8476448,2.0688477-1.5516205,3.2468872-2.0688286c-3.7497559,1.5947227-7.8586426,4.741066-16.5650024,6.0628204
H693.8935547z"/>
<linearGradient id="SVGID_26_" gradientUnits="userSpaceOnUse" x1="2311.4875488" y1="1265.7750244" x2="2367.776123" y2="1265.7750244" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.6"/>
<stop offset="0.93" style="stop-color:#FFFFFF;stop-opacity:0.47"/>
</linearGradient>
<path class="st26" d="M661.7548218,44.8889542c4.381897,6.867363,11.2061768,12.3267708,9.8843994,19.955574
c-1.6952515,9.8413086-14.5392456,10.732048-14.5392456,10.732048h0.2873535
c1.2642822,0,6.9678955-0.4310074,15.5736694-6.2639542c7.3845825-5.0284042,11.8670044-10.6314812,13.7921753-12.7003098
c-1.7814941,0.0430984-3.4336548-0.0430984-4.9852905-0.1867676
C669.383667,55.1468964,663.8236694,48.0783958,661.7548218,44.8889542L661.7548218,44.8889542z"/>
<linearGradient id="SVGID_27_" gradientUnits="userSpaceOnUse" x1="2319.7480469" y1="1076.4411621" x2="2396.2021484" y2="1076.4411621" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.38"/>
<stop offset="0.98" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
</linearGradient>
<path class="st27" d="M695.0715942,63.1061401c0.0430908-2.3992691-0.3735352-4.855999-1.2211914-7.111599
c-0.3735352,0.0430984-0.7039795,0.0862007-1.0775146,0.1436691c-2.0256958,0.2298698-4.0514526,0.4310036-6.0628052,0.4310036
c-1.982605,2.0688286-6.4075928,7.6719055-13.7921753,12.7003098c-9.7982178,6.7236938-15.8179321,6.3070526-15.8179321,6.3070526
s14.3956299,4.4680939,26.0758667-0.2298737c3.6204834-1.4079514,6.9679565-3.5342484,9.7982178-6.1633835
C693.3763428,68.7379456,695.0285034,66.7265854,695.0715942,63.1061401z"/>
<linearGradient id="SVGID_28_" gradientUnits="userSpaceOnUse" x1="2379.1708984" y1="1269.1065674" x2="2379.1708984" y2="1241.7648926" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0.3"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.35"/>
</linearGradient>
<path class="st28" d="M716.6793823,47.4175224c-0.6608887-0.3304367-1.2642822-0.7470741-1.7814941-1.2211838
c-0.5172119-0.5172043-1.0775146-1.8820572-1.3217773-2.2555962c-0.7039795-1.1780815-1.7383423-2.126297-3.9077759-2.3992653
c-2.1693726-0.2873383-4.1951294,0.1436691-6.2064819,0.7470779c-4.8560181,1.5516205-8.9361572,5.3157387-11.9963379,8.7494202
c0.6034546,0.9482155,1.1350098,1.9251595,1.5947266,2.9164734c0.3304443,0.6608772,0.6033936,1.3648567,0.8476562,2.0257301
c8.7062988-1.3217545,12.8008423-4.4680977,16.5650024-6.0628204c1.882019-0.8045425,3.9077759-1.1780815,5.9335327-1.1349792
h1.0775146c0.7901611,0.0574646,0-0.8907471-0.8045654-1.3648529V47.4175224z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 30.7954369 50" style="enable-background:new 0 0 30.7954369 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path class="st0" d="M24.2773895,27.6937599c-1.9470901,0-3.6926861,0.8626328-4.8880539,2.2207584L16.326273,27.746088
c0.3251553-0.8952332,0.5118542-1.8565083,0.5118542-2.8626537c0-0.9887009-0.1802025-1.933857-0.4946518-2.8158569
l3.0562077-2.1454563c1.1952477,1.3512707,2.9362717,2.2092113,4.8777084,2.2092113
c3.5938034,0,6.5180454-2.9237633,6.5180454-6.5180473s-2.9242439-6.5180464-6.5180454-6.5180464
s-6.5180454,2.9237623-6.5180454,6.5180464c0,0.6433372,0.0971985,1.2636967,0.2716255,1.8512154l-3.0582533,2.1465378
c-1.2775297-1.5848827-3.1169548-2.6914711-5.2127285-3.0292606v-3.6858292
c2.9525118-0.6201191,5.1771212-3.2433844,5.1771212-6.3779035C14.9371099,2.9237621,12.012867,0,8.4190636,0
S1.9010168,2.9237621,1.9010168,6.5180464c0,3.092536,2.1669884,5.6834412,5.0604362,6.3478308v3.7337055
C3.01266,17.2927208,0,20.7389221,0,24.8834343c0,4.1647224,3.0424929,7.6235542,7.0197959,8.2931175v3.9425354
c-2.9230404,0.6424942-5.1187792,3.2492752-5.1187792,6.3628654C1.901017,47.0762405,4.8252602,50,8.4190636,50
s6.5180464-2.9237595,6.5180464-6.5180473c0-3.1135864-2.1957388-5.7203712-5.1187782-6.3628654v-3.9426575
c2.0131159-0.3390923,3.8343639-1.3983231,5.1245527-2.9804211l3.0835133,2.1825047
c-0.1711788,0.5822258-0.2670536,1.1964531-0.2670536,1.8332901c0,3.5942841,2.9242439,6.5180473,6.5180473,6.5180473
s6.5180454-2.9237633,6.5180454-6.5180473S27.8711929,27.6937599,24.2773895,27.6937599z M24.2773895,12.4530258
c1.7427082,0,3.160141,1.4180336,3.160141,3.1602612s-1.4174328,3.1601429-3.160141,3.1601429
s-3.160141-1.4179153-3.160141-3.1601429S22.5346813,12.4530268,24.2773895,12.4530258z M5.2588005,6.5180469
c0-1.7422276,1.4175525-3.1601412,3.1602612-3.1601412s3.1601419,1.4179132,3.1601419,3.1601412
s-1.4174318,3.1601415-3.1601419,3.1601415S5.2588,8.2602749,5.2588005,6.5180469z M11.5792036,43.4819527
c0,1.7422295-1.4174318,3.160141-3.1601419,3.160141S5.2588,45.2241821,5.2588,43.4819527
c0-1.7422256,1.4175525-3.1601372,3.1602616-3.1601372S11.5792036,41.739727,11.5792036,43.4819527z M8.4188213,29.2907925
c-2.4305544,0-4.4078374-1.9769249-4.4078374-4.4073582c0-2.4305534,1.9772835-4.4078369,4.4078374-4.4078369
c2.4304333,0,4.4077168,1.9772835,4.4077168,4.4078369C12.8265381,27.3138676,10.8492537,29.2907925,8.4188213,29.2907925z
M24.2773876,37.3720703c-1.7427082,0-3.160141-1.4180336-3.160141-3.1602631c0-1.7422256,1.4174328-3.1601391,3.160141-3.1601391
s3.160141,1.4179134,3.160141,3.1601391C27.4375286,35.9540367,26.0200958,37.3720703,24.2773876,37.3720703z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 41.6129112 50" style="enable-background:new 0 0 41.6129112 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<polygon class="st0" points="0,50 0,40.9677429 32.2580681,25.161293 0,9.3548384 0,0 41.6129112,20.9677429 41.6129112,29.3548393
"/>
</svg>

After

Width:  |  Height:  |  Size: 556 B

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 44.4991302 50" style="enable-background:new 0 0 44.4991302 50;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#000000;}
.st1{filter:url(#Adobe_OpacityMaskFilter);}
.st2{mask:url(#mask-2_1_);fill-rule:evenodd;clip-rule:evenodd;fill:#000000;}
.st3{filter:url(#Adobe_OpacityMaskFilter_1_);}
.st4{mask:url(#mask-4_1_);fill-rule:evenodd;clip-rule:evenodd;fill:#000000;}
</style>
<desc>Created with Sketch.</desc>
<g id="icon-_x2F_-product-logo-_x2F_-32x32px-_x2F_-elasticsearch-_x2F_-white">
<g id="Group-9" transform="translate(1.000000, 0.000000)">
<path id="Fill-1" class="st0" d="M-1,25.0003128c0,2.1624718,0.3031212,4.2483845,0.8187398,6.2499237H30.249609
c3.4515209,0,6.2499218-2.7984047,6.2499218-6.2499237s-2.7984009-6.2499218-6.2499218-6.2499218H-0.1812602
C-0.6968788,20.7519283-1,22.8378391-1,25.0003128"/>
<g id="Group-5" transform="translate(1.000000, 0.000000)">
<g id="Clip-4">
</g>
<defs>
<filter id="Adobe_OpacityMaskFilter" filterUnits="userSpaceOnUse" x="0.5684054" y="0" width="41.9307251" height="14.0623245">
<feColorMatrix type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/>
</filter>
</defs>
<mask maskUnits="userSpaceOnUse" x="0.5684054" y="0" width="41.9307251" height="14.0623245" id="mask-2_1_">
<g class="st1">
<polygon id="path-1_1_" class="st0" points="0.5684054,0.0007812 42.4978828,0.0007812 42.4978828,14.0623245
0.5684054,14.0623245 "/>
</g>
</mask>
<path id="Fill-3" d="M40.0679092,11.9717255c0.8734283-0.804677,1.6859207-1.6687288,2.431221-2.5968428
C37.916378,3.6655791,30.8899021,0,22.9993744,0C13.1229353,0,4.6230421,5.7468033,0.5684054,14.0623245h34.1667595
C36.7132683,14.0623245,38.6148033,13.3123331,40.0679092,11.9717255"/>
</g>
<g id="Group-8" transform="translate(1.000000, 23.000000)">
<g id="Clip-7">
</g>
<defs>
<filter id="Adobe_OpacityMaskFilter_1_" filterUnits="userSpaceOnUse" x="0.5682492" y="12.9376755" width="41.9307251" height="14.0623245">
<feColorMatrix type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/>
</filter>
</defs>
<mask maskUnits="userSpaceOnUse" x="0.5682492" y="12.9376755" width="41.9307251" height="14.0623245" id="mask-4_1_">
<g class="st3">
<polygon id="path-3_1_" class="st0" points="0.5682492,12.9376755 42.4978828,12.9376755 42.4978828,27 0.5682492,27 "/>
</g>
</mask>
<path id="Fill-6" d="M34.7350082,12.9376755H0.5682492C4.6244488,21.2547588,13.1227808,27,22.999218,27
c7.8905277,0,14.9169998-3.6640167,19.4997559-9.3748817c-0.7453003-0.9265518-1.5577927-1.7921658-2.4312172-2.5968437
C38.6146469,13.6876669,36.7131081,12.9376755,34.7350082,12.9376755"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,322 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 60.7108955 50" style="enable-background:new 0 0 60.7108955 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#000000;}
.st1{fill:url(#SVGID_1_);}
.st2{fill:url(#SVGID_2_);}
.st3{fill:url(#SVGID_3_);}
.st4{fill:url(#SVGID_4_);}
.st5{fill:url(#SVGID_5_);}
.st6{fill:url(#SVGID_6_);}
.st7{fill:url(#SVGID_7_);}
.st8{fill:url(#SVGID_8_);}
.st9{fill:url(#SVGID_9_);}
.st10{fill:url(#SVGID_10_);}
.st11{fill:url(#SVGID_11_);}
.st12{fill:url(#SVGID_12_);}
.st13{fill:url(#SVGID_13_);}
.st14{fill:url(#SVGID_14_);}
.st15{fill:url(#SVGID_15_);}
.st16{fill:url(#SVGID_16_);}
.st17{fill:url(#SVGID_17_);}
.st18{fill:url(#SVGID_18_);}
.st19{fill:url(#SVGID_19_);}
.st20{fill:url(#SVGID_20_);}
.st21{fill:url(#SVGID_21_);}
.st22{fill:url(#SVGID_22_);}
.st23{fill:url(#SVGID_23_);}
.st24{fill:url(#SVGID_24_);}
.st25{fill:url(#SVGID_25_);}
.st26{fill:url(#SVGID_26_);}
.st27{fill:url(#SVGID_27_);}
.st28{fill:url(#SVGID_28_);}
</style>
<g transform="translate(-657.1 -27.496)">
<circle class="st0" cx="709.1942139" cy="45.2050247" r="1.2642868"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="2316.6669922" y1="1107.3066406" x2="2396.9453125" y2="1107.3066406" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.75"/>
<stop offset="0.32" style="stop-color:#000000;stop-opacity:0.57"/>
<stop offset="0.68" style="stop-color:#000000;stop-opacity:0.55"/>
<stop offset="0.9" style="stop-color:#000000;stop-opacity:0.45"/>
</linearGradient>
<path class="st1" d="M679.0238037,37.4900208c-2.0256958-1.5516243-4.0945435-3.1607132-6.1202393-4.6117668
c-0.4741211-0.3304367-0.9482422-0.6608734-1.3648682-0.991312c-5.4594116-3.7641182-10.5452881-6.120285-13.3612061-2.8159065
c-2.1693726,2.5429363-0.991333,8.4189854,3.4337158,15.5305805l0.1436768,0.2298737
c2.298645,3.6204491,9.0367432,12.1399994,24.998291,11.7664604c1.0344238-1.1349792,2.6435547-3.2469139,4.7123413-5.5456123
C688.118042,45.5929298,683.0752563,40.8374977,679.0238037,37.4900208L679.0238037,37.4900208z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="2319.7380371" y1="1092.5913086" x2="2396.1921387" y2="1092.5913086" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.4"/>
<stop offset="0.67" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st2" d="M691.4511719,51.0523376c-2.0688477,2.2986984-3.6779175,4.4249954-4.7123413,5.5456123
c2.399292-0.0430984,4.7985229-0.2298698,7.1547241-0.6034088c-0.2299194-0.7039757-0.5172119-1.3648529-0.8476562-2.0257301
C692.5861206,52.9774971,692.0258179,51.9861832,691.4511719,51.0523376L691.4511719,51.0523376z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="2347.1428223" y1="1104.4979248" x2="2396.6276855" y2="1104.4979248" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="0.97" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st3" d="M703.4044189,42.3029175c-4.3244629,1.3217545-8.6201172,3.5342522-14.1226807,1.7814903
c-2.7727661-0.847641-6.4075928-3.5773468-10.3153687-6.5369225c4.0945435,3.2900124,9.1373291,8.0454445,12.4703979,13.5048523
C694.5112915,47.61866,698.605835,43.854538,703.4044189,42.3029175z"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="2375.5004883" y1="1116.5725098" x2="2375.5004883" y2="1062.2161865" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="0" style="stop-color:#000000;stop-opacity:0.35"/>
<stop offset="0.964" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="1" style="stop-color:#000000;stop-opacity:0.26"/>
</linearGradient>
<path class="st4" d="M693.8935547,55.9945412c0.1867676,0.5172081,0.3735352,1.0344162,0.5171509,1.5516205
c0.3304443,1.2642822,0.5603638,2.5429344,0.6608887,3.8646851c0.0430908,0.5603065,0.0430908,1.1349792,0.0430908,1.6952896
c-0.0861816,3.6204491-1.7384033,5.6892815-2.1693726,6.0628166c5.8760376-5.5025063,8.5195312-12.1399994,14.2662964-17.1684036
c0.991333-0.8476448,2.0688477-1.5516205,3.2468872-2.0688286c-3.7497559,1.5947227-7.8586426,4.741066-16.5650024,6.0628204
H693.8935547z"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="2311.4875488" y1="1265.7750244" x2="2367.776123" y2="1265.7750244" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
<stop offset="0.93" style="stop-color:#000000;stop-opacity:0.47"/>
</linearGradient>
<path class="st5" d="M661.7548218,44.8889542c4.381897,6.867363,11.2061768,12.3267708,9.8843994,19.955574
c-1.6952515,9.8413086-14.5392456,10.732048-14.5392456,10.732048h0.2873535c1.2642822,0,6.9678955-0.4310074,15.5736694-6.2639542
c7.3845825-5.0284042,11.8670044-10.6314812,13.7921753-12.7003098c-1.7814941,0.0430984-3.4336548-0.0430984-4.9852905-0.1867676
C669.383667,55.1468964,663.8236694,48.0783958,661.7548218,44.8889542L661.7548218,44.8889542z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="2319.7480469" y1="1076.4411621" x2="2396.2021484" y2="1076.4411621" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="0.98" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st6" d="M695.0715942,63.1061401c0.0430908-2.3992691-0.3735352-4.855999-1.2211914-7.111599
c-0.3735352,0.0430984-0.7039795,0.0862007-1.0775146,0.1436691c-2.0256958,0.2298698-4.0514526,0.4310036-6.0628052,0.4310036
c-1.982605,2.0688286-6.4075928,7.6719055-13.7921753,12.7003098c-9.7982178,6.7236938-15.8179321,6.3070526-15.8179321,6.3070526
s14.3956299,4.4680939,26.0758667-0.2298737c3.6204834-1.4079514,6.9679565-3.5342484,9.7982178-6.1633835
C693.3763428,68.7379456,695.0285034,66.7265854,695.0715942,63.1061401z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="2379.1708984" y1="1269.1065674" x2="2379.1708984" y2="1241.7648926" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.3"/>
<stop offset="1" style="stop-color:#000000;stop-opacity:0.35"/>
</linearGradient>
<path class="st7" d="M716.6793823,47.4175224c-0.6608887-0.3304367-1.2642822-0.7470741-1.7814941-1.2211838
c-0.5172119-0.5172043-1.0775146-1.8820572-1.3217773-2.2555962c-0.7039795-1.1780815-1.7383423-2.126297-3.9077759-2.3992653
c-2.1693726-0.2873383-4.1951294,0.1436691-6.2064819,0.7470779c-4.8560181,1.5516205-8.9361572,5.3157387-11.9963379,8.7494202
c0.6034546,0.9482155,1.1350098,1.9251595,1.5947266,2.9164734c0.3304443,0.6608772,0.6033936,1.3648567,0.8476562,2.0257301
c8.7062988-1.3217545,12.8008423-4.4680977,16.5650024-6.0628204c1.882019-0.8045425,3.9077759-1.1780815,5.9335327-1.1349792
h1.0775146c0.7901611,0.0574646,0-0.8907471-0.8045654-1.3648529V47.4175224z"/>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="2316.6669922" y1="1107.3066406" x2="2396.9453125" y2="1107.3066406" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.75"/>
<stop offset="0.32" style="stop-color:#000000;stop-opacity:0.57"/>
<stop offset="0.68" style="stop-color:#000000;stop-opacity:0.55"/>
<stop offset="0.9" style="stop-color:#000000;stop-opacity:0.45"/>
</linearGradient>
<path class="st8" d="M679.0238037,37.4900208c-2.0256958-1.5516243-4.0945435-3.1607132-6.1202393-4.6117668
c-0.4741211-0.3304367-0.9482422-0.6608734-1.3648682-0.991312c-5.4594116-3.7641182-10.5452881-6.120285-13.3612061-2.8159065
c-2.1693726,2.5429363-0.991333,8.4189854,3.4337158,15.5305805l0.1436768,0.2298737
c2.298645,3.6204491,9.0367432,12.1399994,24.998291,11.7664604c1.0344238-1.1349792,2.6435547-3.2469139,4.7123413-5.5456123
C688.118042,45.5929298,683.0752563,40.8374977,679.0238037,37.4900208L679.0238037,37.4900208z"/>
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="2319.7380371" y1="1092.5913086" x2="2396.1921387" y2="1092.5913086" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.4"/>
<stop offset="0.67" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st9" d="M691.4511719,51.0523376c-2.0688477,2.2986984-3.6779175,4.4249954-4.7123413,5.5456123
c2.399292-0.0430984,4.7985229-0.2298698,7.1547241-0.6034088c-0.2299194-0.7039757-0.5172119-1.3648529-0.8476562-2.0257301
C692.5861206,52.9774971,692.0258179,51.9861832,691.4511719,51.0523376L691.4511719,51.0523376z"/>
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="2347.1428223" y1="1104.4979248" x2="2396.6276855" y2="1104.4979248" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="0.97" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st10" d="M703.4044189,42.3029175c-4.3244629,1.3217545-8.6201172,3.5342522-14.1226807,1.7814903
c-2.7727661-0.847641-6.4075928-3.5773468-10.3153687-6.5369225c4.0945435,3.2900124,9.1373291,8.0454445,12.4703979,13.5048523
C694.5112915,47.61866,698.605835,43.854538,703.4044189,42.3029175z"/>
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="2375.5004883" y1="1116.5725098" x2="2375.5004883" y2="1062.2161865" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="0" style="stop-color:#000000;stop-opacity:0.35"/>
<stop offset="0.964" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="1" style="stop-color:#000000;stop-opacity:0.26"/>
</linearGradient>
<path class="st11" d="M693.8935547,55.9945412c0.1867676,0.5172081,0.3735352,1.0344162,0.5171509,1.5516205
c0.3304443,1.2642822,0.5603638,2.5429344,0.6608887,3.8646851c0.0430908,0.5603065,0.0430908,1.1349792,0.0430908,1.6952896
c-0.0861816,3.6204491-1.7384033,5.6892815-2.1693726,6.0628166c5.8760376-5.5025063,8.5195312-12.1399994,14.2662964-17.1684036
c0.991333-0.8476448,2.0688477-1.5516205,3.2468872-2.0688286c-3.7497559,1.5947227-7.8586426,4.741066-16.5650024,6.0628204
H693.8935547z"/>
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="2311.4875488" y1="1265.7750244" x2="2367.776123" y2="1265.7750244" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
<stop offset="0.93" style="stop-color:#000000;stop-opacity:0.47"/>
</linearGradient>
<path class="st12" d="M661.7548218,44.8889542c4.381897,6.867363,11.2061768,12.3267708,9.8843994,19.955574
c-1.6952515,9.8413086-14.5392456,10.732048-14.5392456,10.732048h0.2873535c1.2642822,0,6.9678955-0.4310074,15.5736694-6.2639542
c7.3845825-5.0284042,11.8670044-10.6314812,13.7921753-12.7003098c-1.7814941,0.0430984-3.4336548-0.0430984-4.9852905-0.1867676
C669.383667,55.1468964,663.8236694,48.0783958,661.7548218,44.8889542L661.7548218,44.8889542z"/>
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="2319.7480469" y1="1076.4411621" x2="2396.2021484" y2="1076.4411621" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="0.98" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st13" d="M695.0715942,63.1061401c0.0430908-2.3992691-0.3735352-4.855999-1.2211914-7.111599
c-0.3735352,0.0430984-0.7039795,0.0862007-1.0775146,0.1436691c-2.0256958,0.2298698-4.0514526,0.4310036-6.0628052,0.4310036
c-1.982605,2.0688286-6.4075928,7.6719055-13.7921753,12.7003098c-9.7982178,6.7236938-15.8179321,6.3070526-15.8179321,6.3070526
s14.3956299,4.4680939,26.0758667-0.2298737c3.6204834-1.4079514,6.9679565-3.5342484,9.7982178-6.1633835
C693.3763428,68.7379456,695.0285034,66.7265854,695.0715942,63.1061401z"/>
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="2379.1708984" y1="1269.1065674" x2="2379.1708984" y2="1241.7648926" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.3"/>
<stop offset="1" style="stop-color:#000000;stop-opacity:0.35"/>
</linearGradient>
<path class="st14" d="M716.6793823,47.4175224c-0.6608887-0.3304367-1.2642822-0.7470741-1.7814941-1.2211838
c-0.5172119-0.5172043-1.0775146-1.8820572-1.3217773-2.2555962c-0.7039795-1.1780815-1.7383423-2.126297-3.9077759-2.3992653
c-2.1693726-0.2873383-4.1951294,0.1436691-6.2064819,0.7470779c-4.8560181,1.5516205-8.9361572,5.3157387-11.9963379,8.7494202
c0.6034546,0.9482155,1.1350098,1.9251595,1.5947266,2.9164734c0.3304443,0.6608772,0.6033936,1.3648567,0.8476562,2.0257301
c8.7062988-1.3217545,12.8008423-4.4680977,16.5650024-6.0628204c1.882019-0.8045425,3.9077759-1.1780815,5.9335327-1.1349792
h1.0775146c0.7901611,0.0574646,0-0.8907471-0.8045654-1.3648529V47.4175224z"/>
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="2316.6669922" y1="1107.3066406" x2="2396.9453125" y2="1107.3066406" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.75"/>
<stop offset="0.32" style="stop-color:#000000;stop-opacity:0.57"/>
<stop offset="0.68" style="stop-color:#000000;stop-opacity:0.55"/>
<stop offset="0.9" style="stop-color:#000000;stop-opacity:0.45"/>
</linearGradient>
<path class="st15" d="M679.0238037,37.4900208c-2.0256958-1.5516243-4.0945435-3.1607132-6.1202393-4.6117668
c-0.4741211-0.3304367-0.9482422-0.6608734-1.3648682-0.991312c-5.4594116-3.7641182-10.5452881-6.120285-13.3612061-2.8159065
c-2.1693726,2.5429363-0.991333,8.4189854,3.4337158,15.5305805l0.1436768,0.2298737
c2.298645,3.6204491,9.0367432,12.1399994,24.998291,11.7664604c1.0344238-1.1349792,2.6435547-3.2469139,4.7123413-5.5456123
C688.118042,45.5929298,683.0752563,40.8374977,679.0238037,37.4900208L679.0238037,37.4900208z"/>
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="2319.7380371" y1="1092.5913086" x2="2396.1921387" y2="1092.5913086" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.4"/>
<stop offset="0.67" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st16" d="M691.4511719,51.0523376c-2.0688477,2.2986984-3.6779175,4.4249954-4.7123413,5.5456123
c2.399292-0.0430984,4.7985229-0.2298698,7.1547241-0.6034088c-0.2299194-0.7039757-0.5172119-1.3648529-0.8476562-2.0257301
C692.5861206,52.9774971,692.0258179,51.9861832,691.4511719,51.0523376L691.4511719,51.0523376z"/>
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="2347.1428223" y1="1104.4979248" x2="2396.6276855" y2="1104.4979248" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="0.97" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st17" d="M703.4044189,42.3029175c-4.3244629,1.3217545-8.6201172,3.5342522-14.1226807,1.7814903
c-2.7727661-0.847641-6.4075928-3.5773468-10.3153687-6.5369225c4.0945435,3.2900124,9.1373291,8.0454445,12.4703979,13.5048523
C694.5112915,47.61866,698.605835,43.854538,703.4044189,42.3029175z"/>
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="2375.5004883" y1="1116.5725098" x2="2375.5004883" y2="1062.2161865" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="0" style="stop-color:#000000;stop-opacity:0.35"/>
<stop offset="0.964" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="1" style="stop-color:#000000;stop-opacity:0.26"/>
</linearGradient>
<path class="st18" d="M693.8935547,55.9945412c0.1867676,0.5172081,0.3735352,1.0344162,0.5171509,1.5516205
c0.3304443,1.2642822,0.5603638,2.5429344,0.6608887,3.8646851c0.0430908,0.5603065,0.0430908,1.1349792,0.0430908,1.6952896
c-0.0861816,3.6204491-1.7384033,5.6892815-2.1693726,6.0628166c5.8760376-5.5025063,8.5195312-12.1399994,14.2662964-17.1684036
c0.991333-0.8476448,2.0688477-1.5516205,3.2468872-2.0688286c-3.7497559,1.5947227-7.8586426,4.741066-16.5650024,6.0628204
H693.8935547z"/>
<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="2311.4875488" y1="1265.7750244" x2="2367.776123" y2="1265.7750244" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
<stop offset="0.93" style="stop-color:#000000;stop-opacity:0.47"/>
</linearGradient>
<path class="st19" d="M661.7548218,44.8889542c4.381897,6.867363,11.2061768,12.3267708,9.8843994,19.955574
c-1.6952515,9.8413086-14.5392456,10.732048-14.5392456,10.732048h0.2873535c1.2642822,0,6.9678955-0.4310074,15.5736694-6.2639542
c7.3845825-5.0284042,11.8670044-10.6314812,13.7921753-12.7003098c-1.7814941,0.0430984-3.4336548-0.0430984-4.9852905-0.1867676
C669.383667,55.1468964,663.8236694,48.0783958,661.7548218,44.8889542L661.7548218,44.8889542z"/>
<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="2319.7480469" y1="1076.4411621" x2="2396.2021484" y2="1076.4411621" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="0.98" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st20" d="M695.0715942,63.1061401c0.0430908-2.3992691-0.3735352-4.855999-1.2211914-7.111599
c-0.3735352,0.0430984-0.7039795,0.0862007-1.0775146,0.1436691c-2.0256958,0.2298698-4.0514526,0.4310036-6.0628052,0.4310036
c-1.982605,2.0688286-6.4075928,7.6719055-13.7921753,12.7003098c-9.7982178,6.7236938-15.8179321,6.3070526-15.8179321,6.3070526
s14.3956299,4.4680939,26.0758667-0.2298737c3.6204834-1.4079514,6.9679565-3.5342484,9.7982178-6.1633835
C693.3763428,68.7379456,695.0285034,66.7265854,695.0715942,63.1061401z"/>
<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="2379.1708984" y1="1269.1065674" x2="2379.1708984" y2="1241.7648926" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.3"/>
<stop offset="1" style="stop-color:#000000;stop-opacity:0.35"/>
</linearGradient>
<path class="st21" d="M716.6793823,47.4175224c-0.6608887-0.3304367-1.2642822-0.7470741-1.7814941-1.2211838
c-0.5172119-0.5172043-1.0775146-1.8820572-1.3217773-2.2555962c-0.7039795-1.1780815-1.7383423-2.126297-3.9077759-2.3992653
c-2.1693726-0.2873383-4.1951294,0.1436691-6.2064819,0.7470779c-4.8560181,1.5516205-8.9361572,5.3157387-11.9963379,8.7494202
c0.6034546,0.9482155,1.1350098,1.9251595,1.5947266,2.9164734c0.3304443,0.6608772,0.6033936,1.3648567,0.8476562,2.0257301
c8.7062988-1.3217545,12.8008423-4.4680977,16.5650024-6.0628204c1.882019-0.8045425,3.9077759-1.1780815,5.9335327-1.1349792
h1.0775146c0.7901611,0.0574646,0-0.8907471-0.8045654-1.3648529V47.4175224z"/>
<g>
<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="2316.6669922" y1="1107.3066406" x2="2396.9453125" y2="1107.3066406" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.75"/>
<stop offset="0.32" style="stop-color:#000000;stop-opacity:0.57"/>
<stop offset="0.68" style="stop-color:#000000;stop-opacity:0.55"/>
<stop offset="0.9" style="stop-color:#000000;stop-opacity:0.45"/>
</linearGradient>
<path class="st22" d="M679.0238037,37.4900208c-2.0256958-1.5516243-4.0945435-3.1607132-6.1202393-4.6117668
c-0.4741211-0.3304367-0.9482422-0.6608734-1.3648682-0.991312c-5.4594116-3.7641182-10.5452881-6.120285-13.3612061-2.8159065
c-2.1693726,2.5429363-0.991333,8.4189854,3.4337158,15.5305805l0.1436768,0.2298737
c2.298645,3.6204491,9.0367432,12.1399994,24.998291,11.7664604c1.0344238-1.1349792,2.6435547-3.2469139,4.7123413-5.5456123
C688.118042,45.5929298,683.0752563,40.8374977,679.0238037,37.4900208L679.0238037,37.4900208z"/>
<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="2319.7380371" y1="1092.5913086" x2="2396.1921387" y2="1092.5913086" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.4"/>
<stop offset="0.67" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st23" d="M691.4511719,51.0523376c-2.0688477,2.2986984-3.6779175,4.4249954-4.7123413,5.5456123
c2.399292-0.0430984,4.7985229-0.2298698,7.1547241-0.6034088c-0.2299194-0.7039757-0.5172119-1.3648529-0.8476562-2.0257301
C692.5861206,52.9774971,692.0258179,51.9861832,691.4511719,51.0523376L691.4511719,51.0523376z"/>
<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="2347.1428223" y1="1104.4979248" x2="2396.6276855" y2="1104.4979248" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="0.97" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st24" d="M703.4044189,42.3029175c-4.3244629,1.3217545-8.6201172,3.5342522-14.1226807,1.7814903
c-2.7727661-0.847641-6.4075928-3.5773468-10.3153687-6.5369225c4.0945435,3.2900124,9.1373291,8.0454445,12.4703979,13.5048523
C694.5112915,47.61866,698.605835,43.854538,703.4044189,42.3029175z"/>
<linearGradient id="SVGID_25_" gradientUnits="userSpaceOnUse" x1="2375.5004883" y1="1116.5725098" x2="2375.5004883" y2="1062.2161865" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#4FAAC4"/>
<stop offset="0" style="stop-color:#000000;stop-opacity:0.35"/>
<stop offset="0.964" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="1" style="stop-color:#000000;stop-opacity:0.26"/>
</linearGradient>
<path class="st25" d="M693.8935547,55.9945412c0.1867676,0.5172081,0.3735352,1.0344162,0.5171509,1.5516205
c0.3304443,1.2642822,0.5603638,2.5429344,0.6608887,3.8646851c0.0430908,0.5603065,0.0430908,1.1349792,0.0430908,1.6952896
c-0.0861816,3.6204491-1.7384033,5.6892815-2.1693726,6.0628166c5.8760376-5.5025063,8.5195312-12.1399994,14.2662964-17.1684036
c0.991333-0.8476448,2.0688477-1.5516205,3.2468872-2.0688286c-3.7497559,1.5947227-7.8586426,4.741066-16.5650024,6.0628204
H693.8935547z"/>
<linearGradient id="SVGID_26_" gradientUnits="userSpaceOnUse" x1="2311.4875488" y1="1265.7750244" x2="2367.776123" y2="1265.7750244" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
<stop offset="0.93" style="stop-color:#000000;stop-opacity:0.47"/>
</linearGradient>
<path class="st26" d="M661.7548218,44.8889542c4.381897,6.867363,11.2061768,12.3267708,9.8843994,19.955574
c-1.6952515,9.8413086-14.5392456,10.732048-14.5392456,10.732048h0.2873535
c1.2642822,0,6.9678955-0.4310074,15.5736694-6.2639542c7.3845825-5.0284042,11.8670044-10.6314812,13.7921753-12.7003098
c-1.7814941,0.0430984-3.4336548-0.0430984-4.9852905-0.1867676
C669.383667,55.1468964,663.8236694,48.0783958,661.7548218,44.8889542L661.7548218,44.8889542z"/>
<linearGradient id="SVGID_27_" gradientUnits="userSpaceOnUse" x1="2319.7480469" y1="1076.4411621" x2="2396.2021484" y2="1076.4411621" gradientTransform="matrix(0.8 0 0 -0.8 -1198.6984863 927.8982544)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.38"/>
<stop offset="0.98" style="stop-color:#000000;stop-opacity:0.5"/>
</linearGradient>
<path class="st27" d="M695.0715942,63.1061401c0.0430908-2.3992691-0.3735352-4.855999-1.2211914-7.111599
c-0.3735352,0.0430984-0.7039795,0.0862007-1.0775146,0.1436691c-2.0256958,0.2298698-4.0514526,0.4310036-6.0628052,0.4310036
c-1.982605,2.0688286-6.4075928,7.6719055-13.7921753,12.7003098c-9.7982178,6.7236938-15.8179321,6.3070526-15.8179321,6.3070526
s14.3956299,4.4680939,26.0758667-0.2298737c3.6204834-1.4079514,6.9679565-3.5342484,9.7982178-6.1633835
C693.3763428,68.7379456,695.0285034,66.7265854,695.0715942,63.1061401z"/>
<linearGradient id="SVGID_28_" gradientUnits="userSpaceOnUse" x1="2379.1708984" y1="1269.1065674" x2="2379.1708984" y2="1241.7648926" gradientTransform="matrix(0.8 0 0 0.8 -1198.6984863 -952.3873291)">
<stop offset="0" style="stop-color:#000000;stop-opacity:0.3"/>
<stop offset="1" style="stop-color:#000000;stop-opacity:0.35"/>
</linearGradient>
<path class="st28" d="M716.6793823,47.4175224c-0.6608887-0.3304367-1.2642822-0.7470741-1.7814941-1.2211838
c-0.5172119-0.5172043-1.0775146-1.8820572-1.3217773-2.2555962c-0.7039795-1.1780815-1.7383423-2.126297-3.9077759-2.3992653
c-2.1693726-0.2873383-4.1951294,0.1436691-6.2064819,0.7470779c-4.8560181,1.5516205-8.9361572,5.3157387-11.9963379,8.7494202
c0.6034546,0.9482155,1.1350098,1.9251595,1.5947266,2.9164734c0.3304443,0.6608772,0.6033936,1.3648567,0.8476562,2.0257301
c8.7062988-1.3217545,12.8008423-4.4680977,16.5650024-6.0628204c1.882019-0.8045425,3.9077759-1.1780815,5.9335327-1.1349792
h1.0775146c0.7901611,0.0574646,0-0.8907471-0.8045654-1.3648529V47.4175224z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 30.7954369 50" style="enable-background:new 0 0 30.7954369 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#000000;}
</style>
<path class="st0" d="M24.2773895,27.6937599c-1.9470901,0-3.6926861,0.8626328-4.8880539,2.2207584L16.326273,27.746088
c0.3251553-0.8952332,0.5118542-1.8565083,0.5118542-2.8626537c0-0.9887009-0.1802025-1.933857-0.4946518-2.8158569
l3.0562077-2.1454563c1.1952477,1.3512707,2.9362717,2.2092113,4.8777084,2.2092113
c3.5938034,0,6.5180454-2.9237633,6.5180454-6.5180473s-2.9242439-6.5180464-6.5180454-6.5180464
s-6.5180454,2.9237623-6.5180454,6.5180464c0,0.6433372,0.0971985,1.2636967,0.2716255,1.8512154l-3.0582533,2.1465378
c-1.2775297-1.5848827-3.1169548-2.6914711-5.2127285-3.0292606v-3.6858292
c2.9525118-0.6201191,5.1771212-3.2433844,5.1771212-6.3779035C14.9371099,2.9237621,12.012867,0,8.4190636,0
S1.9010168,2.9237621,1.9010168,6.5180464c0,3.092536,2.1669884,5.6834412,5.0604362,6.3478308v3.7337055
C3.01266,17.2927208,0,20.7389221,0,24.8834343c0,4.1647224,3.0424929,7.6235542,7.0197959,8.2931175v3.9425354
c-2.9230404,0.6424942-5.1187792,3.2492752-5.1187792,6.3628654C1.901017,47.0762405,4.8252602,50,8.4190636,50
s6.5180464-2.9237595,6.5180464-6.5180473c0-3.1135864-2.1957388-5.7203712-5.1187782-6.3628654v-3.9426575
c2.0131159-0.3390923,3.8343639-1.3983231,5.1245527-2.9804211l3.0835133,2.1825047
c-0.1711788,0.5822258-0.2670536,1.1964531-0.2670536,1.8332901c0,3.5942841,2.9242439,6.5180473,6.5180473,6.5180473
s6.5180454-2.9237633,6.5180454-6.5180473S27.8711929,27.6937599,24.2773895,27.6937599z M24.2773895,12.4530258
c1.7427082,0,3.160141,1.4180336,3.160141,3.1602612s-1.4174328,3.1601429-3.160141,3.1601429
s-3.160141-1.4179153-3.160141-3.1601429S22.5346813,12.4530268,24.2773895,12.4530258z M5.2588005,6.5180469
c0-1.7422276,1.4175525-3.1601412,3.1602612-3.1601412s3.1601419,1.4179132,3.1601419,3.1601412
s-1.4174318,3.1601415-3.1601419,3.1601415S5.2588,8.2602749,5.2588005,6.5180469z M11.5792036,43.4819527
c0,1.7422295-1.4174318,3.160141-3.1601419,3.160141S5.2588,45.2241821,5.2588,43.4819527
c0-1.7422256,1.4175525-3.1601372,3.1602616-3.1601372S11.5792036,41.739727,11.5792036,43.4819527z M8.4188213,29.2907925
c-2.4305544,0-4.4078374-1.9769249-4.4078374-4.4073582c0-2.4305534,1.9772835-4.4078369,4.4078374-4.4078369
c2.4304333,0,4.4077168,1.9772835,4.4077168,4.4078369C12.8265381,27.3138676,10.8492537,29.2907925,8.4188213,29.2907925z
M24.2773876,37.3720703c-1.7427082,0-3.160141-1.4180336-3.160141-3.1602631c0-1.7422256,1.4174328-3.1601391,3.160141-3.1601391
s3.160141,1.4179134,3.160141,3.1601391C27.4375286,35.9540367,26.0200958,37.3720703,24.2773876,37.3720703z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 41.6129112 50" style="enable-background:new 0 0 41.6129112 50;" xml:space="preserve">
<style type="text/css">
.st0{fill:#000000;}
</style>
<polygon class="st0" points="0,50 0,40.9677429 32.2580681,25.161293 0,9.3548384 0,0 41.6129112,20.9677429 41.6129112,29.3548393
"/>
</svg>

After

Width:  |  Height:  |  Size: 556 B

View File

@ -192,6 +192,8 @@ $selected: rgba($primary, .5);
--logs-highlight-bg : var(--warning);
--logs-text : var(--body-text);
--primary-color : 61, 152, 211;
--gauge-divider : rgba(255, 255, 255, .3);
--gauge-success-primary : 75, 95, 64;
--gauge-success-secondary : 150, 189, 127;

View File

@ -599,6 +599,8 @@ logging:
indexName: Index Name
user: User
password: Password
caFile:
label: Certificate Authority File
clientCert:
label: Client Cert
placeholder: Paste in the CA certificate
@ -623,6 +625,13 @@ logging:
label: SSL Client Cert Chain
placeholder: Paste in the client cert chain
sslClientCertKey: SSL Client Cert Key
output:
selectOutputs: Select Outputs
selectBanner: Select to configure an output
sections:
target: Target
access: Access
certificate: SSL
overview:
clusterLevel: Cluster-level Logging
namespaceLevel: Namespace-level Logging
@ -636,12 +645,12 @@ logging:
clientCert: Client Cert
clientKey: Client Key
insecureSsl: Insecure SSL
syslog:
address: Address
cluster: Cluster
rootCa:
label: Root CA
placeholder: Paste in the Root CA
forward:
host: Host
port: Port
sharedKey: Shared Key
username: Username
password: Password
monitoring:
accessModes:

View File

@ -20,9 +20,6 @@ export default {
computed: {
...mapGetters(['currentCluster']),
component() {
return require(`./providers/${ this.provider }`).default;
},
provider() {
return this.currentCluster.status.provider;
}

View File

@ -1,58 +0,0 @@
<script>
import LabeledInput from '@/components/form/LabeledInput';
import LabeledSelect from '@/components/form/LabeledSelect';
import SecretSelector from '@/components/form/SecretSelector';
import { protocol } from './options';
export default {
components: {
LabeledInput, LabeledSelect, SecretSelector
},
props: {
value: {
type: Object,
default: () => {
return {};
}
}
},
data() {
return {
protocolOptions: protocol,
values: { ...this.value.elasticsearch }
};
},
watch: {
values: {
deep: true,
handler() {
Object.assign(this.value.elasticsearch, this.values);
}
}
}
};
</script>
<template>
<div class="elasticsearch">
<LabeledInput v-model="values.host" :label="t('logging.elasticsearch.host')" />
<LabeledSelect v-model="values.scheme" :options="protocolOptions" :label="t('logging.elasticsearch.scheme')" />
<LabeledInput v-model="values.port" :label="t('logging.elasticsearch.port')" />
<LabeledInput v-model="values.index_name" :label="t('logging.elasticsearch.indexName')" />
<LabeledInput v-model="values.user" :label="t('logging.elasticsearch.user')" />
<SecretSelector v-model="values.password" :label="t('logging.elasticsearch.password')" />
<SecretSelector v-model="values.client_cert" :label="t('logging.elasticsearch.clientCert.label')" />
<SecretSelector v-model="values.client_key" :label="t('logging.elasticsearch.clientKey.label')" />
<SecretSelector v-model="values.client_key_pass" :label="t('logging.elasticsearch.clientKeyPass')" />
</div>
</template>
<style lang="scss">
.elasticsearch {
& > * {
margin-top: 10px;
}
}
</style>

View File

@ -1,60 +0,0 @@
<script>
import LabeledInput from '@/components/form/LabeledInput';
import LabeledSelect from '@/components/form/LabeledSelect';
import SecretSelector from '@/components/form/SecretSelector';
import { enabledDisabled, protocol } from './options';
export default {
components: {
LabeledInput, LabeledSelect, SecretSelector
},
props: {
value: {
type: Object,
default: () => {
return {};
}
}
},
data() {
return {
schemes: protocol,
enabledDisabledOptions: enabledDisabled(this.t.bind(this)),
values: { ...this.value.kafka }
};
},
watch: {
values: {
deep: true,
handler() {
Object.assign(this.value.kafka, this.values);
}
}
}
};
</script>
<template>
<div class="kafka">
<LabeledInput v-model="values.brokers" :label="t('logging.kafka.brokers')" />
<LabeledInput v-model="values.default_topic" :label="t('logging.kafka.defaultTopic')" />
<LabeledSelect v-model="values.sasl_over_ssl" :options="enabledDisabledOptions" :label="t('logging.kafka.saslOverSsl')" />
<LabeledInput v-model="values.scram_mechanism" :label="t('logging.kafka.scramMechanism')" />
<SecretSelector v-model="values.username" :label="t('logging.kafka.username')" />
<SecretSelector v-model="values.password" :label="t('logging.kafka.password')" />
<SecretSelector v-model="values.ssl_ca_cert" :label="t('logging.kafka.sslCaCert.label')" />
<SecretSelector v-model="values.ssl_client_cert" :label="t('logging.kafka.sslClientCert.label')" />
<SecretSelector v-model="values.ssl_client_cert_chain" :label="t('logging.kafka.sslClientCertChain.label')" />
<SecretSelector v-model="values.ssl_client_cert_key" :label="t('logging.kafka.sslClientCertKey')" />
</div>
</template>
<style lang="scss">
.kafka {
& > * {
margin-top: 10px;
}
}
</style>

View File

@ -1,14 +0,0 @@
export const protocol = ['http', 'https'];
export function enabledDisabled(t) {
return [
{
label: t('generic.enabled'),
value: true
},
{
label: t('generic.disabled'),
value: false
}
];
}

View File

@ -1,64 +0,0 @@
<script>
import FileSelector, { createOnSelected } from '@/components/form/FileSelector';
import SecretSelector from '@/components/form/SecretSelector';
import LabeledInput from '@/components/form/LabeledInput';
import LabeledSelect from '@/components/form/LabeledSelect';
import { protocol, enabledDisabled } from './options';
export default {
components: {
FileSelector, LabeledInput, LabeledSelect, SecretSelector
},
props: {
value: {
type: Object,
default: () => {
return {};
}
}
},
data() {
return {
protocolOptions: protocol,
enabledDisabledOptions: enabledDisabled(this.t.bind(this)),
values: { ...this.value.splunk }
};
},
watch: {
values: {
deep: true,
handler() {
Object.assign(this.value.splunk, this.values);
}
}
},
methods: { onSslCaCertSelected: createOnSelected('values.client_cert') },
};
</script>
<template>
<div class="splunk">
<LabeledInput v-model="values.host" :label="t('logging.splunk.host')" />
<LabeledInput v-model="values.port" :label="t('logging.splunk.port')" />
<LabeledSelect v-model="values.protocol" :options="protocolOptions" :label="t('logging.splunk.protocol')" />
<LabeledInput v-model="values.index" :label="t('logging.splunk.index')" />
<SecretSelector v-model="values.token" :label="t('logging.splunk.token')" />
<div>
<LabeledInput v-model="values.client_cert" type="multiline" :label="t('logging.splunk.clientCert')" />
<FileSelector class="btn-sm bg-primary mt-10" :label="t('generic.readFromFile')" @selected="onSslCaCertSelected" />
</div>
<LabeledInput v-model="values.client_key" type="password" :label="t('logging.splunk.clientKey')" />
<LabeledSelect v-model="values.insecure_ssl" :options="enabledDisabledOptions" :label="t('logging.splunk.insecureSsl')" />
</div>
</template>
<style lang="scss">
.splunk {
& > * {
margin-top: 10px;
}
}
</style>

View File

@ -1,57 +0,0 @@
<script>
import FileSelector, { createOnSelected } from '@/components/form/FileSelector';
import LabeledInput from '@/components/form/LabeledInput';
import LabeledSelect from '@/components/form/LabeledSelect';
import { enabledDisabled } from './options';
export default {
components: {
FileSelector, LabeledInput, LabeledSelect
},
props: {
value: {
type: Object,
default: () => {
return {};
}
}
},
data() {
return {
enabledDisabledOptions: enabledDisabled(this.t.bind(this)),
values: { ...this.value.syslog }
};
},
watch: {
values: {
deep: true,
handler() {
Object.assign(this.value.syslog, this.values);
}
}
},
methods: { onRootCaSelected: createOnSelected('values.root_ca') },
};
</script>
<template>
<div class="syslog">
<LabeledInput v-model="values.address" :label="t('logging.syslog.address')" />
<LabeledSelect v-model="values.cluster" :options="enabledDisabledOptions" :label="t('logging.syslog.cluster')" />
<div>
<LabeledInput v-model="values.root_ca" type="multiline" :label="t('logging.syslog.rootCa.label')" :placeholder="t('logging.syslog.rootCa.placeholder')" />
<FileSelector class="btn-sm bg-primary mt-10" :label="t('generic.readFromFile')" @selected="onRootCaSelected" />
</div>
</div>
</template>
<style lang="scss">
.syslog {
& > * {
margin-top: 10px;
}
}
</style>

View File

@ -11,16 +11,24 @@ export default {
showTab: {
type: Boolean,
default: true,
},
showSolid: {
type: Boolean,
default: false,
},
backgroundOpacityAdjustment: {
type: Number,
default: 1
}
},
computed: {
leftColor() {
return this.customizePrimaryColorOpacity(0.25);
return this.showSolid ? this.primaryColor : this.customizePrimaryColorOpacity(0.25 * this.backgroundOpacityAdjustment);
},
rightColor() {
return this.customizePrimaryColorOpacity(0.125);
return this.showSolid ? this.primaryColor : this.customizePrimaryColorOpacity(0.125 * this.backgroundOpacityAdjustment);
},
primaryColor() {
@ -29,10 +37,11 @@ export default {
style() {
const background = `background: transparent linear-gradient(94deg, ${ this.leftColor } 0%, ${ this.rightColor } 100%) 0% 0% no-repeat padding-box;`;
const border = this.showTab ? `border-left: 9px solid ${ this.primaryColor };` : '';
const border = this.showBorder ? `border: 1px solid ${ this.primaryColor };` : '';
const borderLeft = this.showTab ? `border-left: 9px solid ${ this.primaryColor };` : '';
return `${ background }${ border }`;
}
return `${ background }${ border }${ borderLeft }`;
},
},
methods: {
@ -44,7 +53,7 @@ export default {
</script>
<template>
<div class="gradient-box" :class="{showTab}" :style="style">
<div class="gradient-box" :class="{'show-tab': showTab}" :style="style">
<slot />
</div>
</template>

View File

@ -0,0 +1,62 @@
<script>
import GradientBox from '@/components/GradientBox';
export default {
components: { GradientBox },
props: {
value: {
type: Boolean,
default: false
},
primaryColorVar: {
type: String,
default: '--primary-color'
}
},
data() {
return { mouseOver: false };
},
computed: {
backgroundOpacityAdjustment() {
return this.mouseOver ? 2 : 1;
},
},
methods: {
onClick() {
this.$emit('input', !this.value);
},
onMouseEnter() {
this.mouseOver = true;
},
onMouseLeave() {
this.mouseOver = false;
}
}
};
</script>
<template>
<GradientBox
class="toggle-gradient-box"
:show-solid="value"
:primary-color-var="primaryColorVar"
:background-opacity-adjustment="backgroundOpacityAdjustment"
@click.native="onClick"
@mouseenter.native="onMouseEnter"
@mouseleave.native="onMouseLeave"
>
<slot />
</GradientBox>
</template>
<style lang="scss">
.toggle-gradient-box {
cursor: pointer;
}
</style>

View File

@ -81,7 +81,7 @@ export default {
</script>
<template>
<div :class="{'labeled-input': true, raised, focused, [mode]: true, disabled, [status]: status}">
<div :class="{'labeled-input': true, raised, focused, [mode]: true, disabled: disabled && !isView, [status]: status}">
<slot name="label">
<label>
{{ label }}

View File

@ -169,7 +169,7 @@ export default {
</script>
<template>
<div class="labeled-select labeled-input" :class="{disabled, focused, [mode]: true, [status]: status }">
<div class="labeled-select labeled-input" :class="{disabled: disabled && !isView, focused, [mode]: true, [status]: status }">
<div :class="{'labeled-container': true, raised, empty, [mode]: true}" :style="{border:'none'}">
<label v-if="label">
{{ label }}
@ -179,7 +179,7 @@ export default {
<slot name="corner" />
</label>
<div v-if="isView" :class="{'no-label':!(label||'').length}" class="selected">
{{ currentLabel }}&nbsp;
<span v-if="!currentLabel" class="text-muted"></span>{{ currentLabel }}&nbsp;
</div>
<div v-else-if="!$attrs.multiple" :class="{'no-label':!(label||'').length}" class="selected" :style="{visibility:selectedVisibility}">
{{ currentLabel }}&nbsp;

View File

@ -1,7 +1,7 @@
<script>
import LabeledSelect from '@/components/form/LabeledSelect';
import { SECRET } from '@/config/types';
import { _EDIT } from '@/config/query-params';
import { _EDIT, _VIEW } from '@/config/query-params';
import { TYPES } from '@/models/secret';
export default {
@ -10,12 +10,17 @@ export default {
props: {
value: {
type: [String, Object],
required: true,
required: false,
default: undefined
},
types: {
type: Array,
default: () => Object.values(TYPES)
},
disabled: {
type: Boolean,
default: false
},
nameKey: {
type: String,
default: 'name'
@ -41,14 +46,13 @@ export default {
computed: {
name: {
get() {
const name = this.showKeySelector ? this.value[this.nameKey] : this.value;
const name = this.showKeySelector ? this.value?.valueFrom?.secretKeyRef?.[this.nameKey] : this.value;
return name || '';
},
set(name) {
if (this.showKeySelector) {
this.value[this.nameKey] = name;
this.$emit('input', this.value);
this.$emit('input', { valueFrom: { secretKeyRef: { [this.nameKey]: name, [this.keyKey]: this.key } } });
} else {
this.$emit('input', name);
}
@ -57,11 +61,10 @@ export default {
key: {
get() {
return this.value[this.keyKey] || '';
return this.value?.valueFrom?.secretKeyRef?.[this.keyKey] || '';
},
set(key) {
this.value[this.keyKey] = key;
this.$emit('input', this.value);
this.$emit('input', { valueFrom: { secretKeyRef: { [this.nameKey]: this.name, [this.keyKey]: key } } });
}
},
secrets() {
@ -80,7 +83,10 @@ export default {
},
secretNameLabel() {
return this.showKeySelector ? 'Secret Name' : this.label;
}
},
isView() {
return this.mode === _VIEW;
},
},
};
@ -92,6 +98,7 @@ export default {
<div class="input-container">
<LabeledSelect
v-model="name"
:disabled="!isView && disabled"
:options="secretNames"
:label="secretNameLabel"
:mode="mode"
@ -100,7 +107,7 @@ export default {
v-if="showKeySelector"
v-model="key"
class="col span-6"
:disabled="!name"
:disabled="!isView && (!name || disabled)"
:options="keys"
label="Key"
:mode="mode"

View File

@ -1,74 +1,12 @@
<script>
import CreateEditView from '@/mixins/create-edit-view';
import SecretSelector from '@/components/form/SecretSelector';
import { SECRET } from '@/config/types';
import { TYPES } from '@/models/secret';
import CreateEditView from '@/edit/logging.banzaicloud.io.output/';
export default {
components: { SecretSelector },
mixins: [CreateEditView],
props: {},
async fetch() {
await this.$store.dispatch('cluster/findAll', { type: SECRET });
},
data() {
return {
secret: {
secret_name: '',
key: ''
},
secret2: {
name: '',
special_key: ''
},
secret3: {
name: '',
key: ''
},
name: '',
types: [TYPES.OPAQUE]
};
},
extends: CreateEditView,
created() {
if (this.isCreate) {
this.value.metadata.namespace = 'cattle-logging-system';
}
}
};
</script>
<template>
<div class="cluster-output">
<div class="row">
<div class="col span-6">
<div class="ml-20 mb-50">
<SecretSelector v-model="name" label="Just secret name" />
<pre>{{ name }}</pre>
</div>
<div class="ml-20 mb-50">
<SecretSelector v-model="secret" label="Key selector with custom name" :show-key-selector="true" name-key="secret_name" />
<pre>{{ secret }}</pre>
</div>
<div class="ml-20 mb-50">
<SecretSelector v-model="secret2" label="Key selector with custom key" :show-key-selector="true" key-key="special_key" />
<pre>{{ secret2 }}</pre>
</div>
<div class="ml-20 mb-50">
<SecretSelector v-model="secret3" label="Filtered secrets" :show-key-selector="true" :types="types" />
<pre>{{ secret3 }}</pre>
</div>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
pre {
background-color:var(--nav-bg);
padding: 10px;
border-radius: var(--border-radius);
}
</style>

View File

@ -0,0 +1,188 @@
<script>
import CreateEditView from '@/mixins/create-edit-view';
import { SECRET } from '@/config/types';
import Tabbed from '@/components/Tabbed';
import Tab from '@/components/Tabbed/Tab';
import CruResource from '@/components/CruResource';
import NameNsDescription from '@/components/form/NameNsDescription';
import ToggleGradientBox from '@/components/ToggleGradientBox';
import Labels from '@/components/form/Labels';
import cloneDeep from 'lodash/cloneDeep';
import Banner from '@/components/Banner';
export default {
components: {
Banner, CruResource, Labels, NameNsDescription, Tab, Tabbed, ToggleGradientBox
},
mixins: [CreateEditView, ToggleGradientBox],
async fetch() {
await this.$store.dispatch('cluster/findAll', { type: SECRET });
},
data() {
if (this.isCreate) {
this.value.metadata.namespace = 'default';
}
const theme = this.$store.getters['prefs/theme'];
const providers = [
{
name: 'elasticsearch',
label: 'Elasticsearch',
enabled: false,
default: {},
logo: require(`~/assets/images/logo-${ theme }-elasticsearch.svg`)
},
{
name: 'splunkHec',
label: 'Splunk',
enabled: false,
default: {},
logo: require(`~/assets/images/logo-${ theme }-splunk.svg`)
},
{
name: 'kafka',
label: 'Kafka',
enabled: false,
default: { format: { type: 'json' } },
logo: require(`~/assets/images/logo-${ theme }-kafka.svg`)
},
{
name: 'forward',
label: 'Fluentd',
enabled: false,
default: { servers: [{}] },
logo: require(`~/assets/images/logo-${ theme }-fluentd.svg`)
}
];
this.value.spec = this.value.spec || {};
const specValue = cloneDeep(this.value.spec);
providers.forEach((provider) => {
specValue[provider.name] = specValue[provider.name] || provider.default;
const specProvider = specValue[provider.name];
const correctedSpecProvider = provider.name === 'forward' ? specProvider.servers[0] : specProvider;
const specProviderKeys = Object.keys(correctedSpecProvider || {}).filter(key => key !== 'format');
provider.enabled = specProviderKeys.length > 0;
});
return { providers, specValue };
},
computed: {
enabledProviders() {
return this.providers.filter(p => p.enabled);
}
},
mounted() {
this.registerBeforeHook(this.willSave, 'willSave');
},
methods: {
getComponent(name) {
return require(`./providers/${ name }`).default;
},
willSave() {
this.value.spec = cloneDeep(this.specValue);
this.providers.forEach((provider) => {
if (this.value.spec[provider.name] && !provider.enabled) {
delete this.value.spec[provider.name];
}
});
},
launch(provider) {
this.$refs.tabbed.select(provider.name);
}
},
};
</script>
<template>
<div class="output">
<CruResource
:done-route="doneRoute"
:mode="mode"
:resource="value"
:subtypes="[]"
:validation-passed="true"
:errors="errors"
@error="e=>errors = e"
@finish="save"
@cancel="done"
>
<NameNsDescription
v-if="!isView"
:value="value"
:mode="mode"
name-label="generic.name"
:register-before-hook="registerBeforeHook"
/>
<Tabbed ref="tabbed" :side-tabs="true">
<Tab v-if="!isView" name="overview" :label="t('logging.output.selectOutputs')" :weight="0">
<Banner class="mt-0" color="info">
{{ t('logging.output.selectBanner') }}
</Banner>
<ToggleGradientBox v-for="(provider, i) in providers" :key="i" v-model="provider.enabled" class="mr-20">
<div class="logo-container">
<img class="logo" :src="provider.logo" /> {{ provider.label }}
</div>
</ToggleGradientBox>
</Tab>
<Tab v-for="(provider, i) in enabledProviders" :key="i" :name="provider.name" :label="provider.label" :weight="i + 1">
<div class="provider mb-10">
<h1>
{{ provider.label }}
</h1>
</div>
<component :is="getComponent(provider.name)" :value="specValue[provider.name]" :disabled="!provider.enabled" :mode="mode" />
</Tab>
<Tab
v-if="!isView"
name="labels-and-annotations"
:label="t('generic.labelsAndAnnotations')"
:weight="1000"
>
<Labels
default-container-class="labels-and-annotations-container"
:value="value"
:mode="mode"
:display-side-by-side="false"
/>
</Tab>
</Tabbed>
</CruResource>
</div>
</template>
<style lang="scss">
.output {
.provider {
h1 {
display: inline-block;
}
}
.toggle-gradient-box {
display: inline-block;
.logo-container {
display: flex;
justify-content: space-between;
align-items: center;
min-width: 160px;
padding: 15px 20px;
.logo {
height: 50px;
}
}
}
}
</style>

View File

@ -0,0 +1,140 @@
<script>
import LabeledInput from '@/components/form/LabeledInput';
import LabeledSelect from '@/components/form/LabeledSelect';
import SecretSelector from '@/components/form/SecretSelector';
import { protocol } from './options';
export default {
components: {
LabeledInput, LabeledSelect, SecretSelector
},
props: {
value: {
type: Object,
default: () => {
return {};
}
},
disabled: {
type: Boolean,
default: false
},
mode: {
type: String,
required: true,
},
},
data() {
return { protocolOptions: protocol };
},
computed: {
port: {
get() {
return this.value.port;
},
set(port) {
this.$set(this.value, 'port', Number.parseInt(port));
}
}
}
};
</script>
<template>
<div class="elasticsearch">
<div class="bordered-section">
<h3>{{ t('logging.output.sections.target') }}</h3>
<div class="row mb-10">
<div class="col span-2">
<LabeledSelect
v-model="value.scheme"
:mode="mode"
:disabled="disabled"
class="scheme"
:options="protocolOptions"
:label="t('logging.elasticsearch.scheme')"
/>
</div>
<div class="col span-8">
<LabeledInput v-model="value.host" :mode="mode" :disabled="disabled" class="host" :label="t('logging.elasticsearch.host')" />
</div>
<div class="col span-2">
<LabeledInput
v-model="port"
:mode="mode"
:disabled="disabled"
class="port"
type="number"
:label="t('logging.elasticsearch.port')"
/>
</div>
</div>
<div class="row">
<div class="col span-6">
<LabeledInput v-model="value.index_name" :mode="mode" :disabled="disabled" :label="t('logging.elasticsearch.indexName')" />
</div>
</div>
</div>
<div class="bordered-section">
<h3>{{ t('logging.output.sections.access') }}</h3>
<div class="row">
<div class="col span-6">
<label>{{ t('logging.elasticsearch.user') }}</label>
<LabeledInput v-model="value.user" :mode="mode" :disabled="disabled" />
</div>
<div class="col span-6">
<SecretSelector
v-model="value.password"
:mode="mode"
:disabled="disabled"
:label="t('logging.elasticsearch.password')"
:show-key-selector="true"
/>
</div>
</div>
</div>
<h3>{{ t('logging.output.sections.certificate') }}</h3>
<div class="row mb-10">
<div class="col span-6">
<SecretSelector
v-model="value.ca_file"
:mode="mode"
:disabled="disabled"
:label="t('logging.elasticsearch.caFile.label')"
:show-key-selector="true"
/>
</div>
<div class="col span-6">
<SecretSelector
v-model="value.client_cert"
:mode="mode"
:disabled="disabled"
:label="t('logging.elasticsearch.clientCert.label')"
:show-key-selector="true"
/>
</div>
</div>
<div class="row">
<div class="col span-6">
<SecretSelector
v-model="value.client_key"
:mode="mode"
:disabled="disabled"
:label="t('logging.elasticsearch.clientKey.label')"
:show-key-selector="true"
/>
</div>
<div class="col span-6">
<SecretSelector
v-model="value.client_key_pass"
:mode="mode"
:disabled="disabled"
:label="t('logging.elasticsearch.clientKeyPass')"
:show-key-selector="true"
/>
</div>
</div>
</div>
</template>

View File

@ -0,0 +1,83 @@
<script>
import LabeledInput from '@/components/form/LabeledInput';
import SecretSelector from '@/components/form/SecretSelector';
export default {
components: { LabeledInput, SecretSelector },
props: {
value: {
type: Object,
default: () => {
return {};
}
},
disabled: {
type: Boolean,
default: false
},
mode: {
type: String,
required: true,
},
},
computed: {
port: {
get() {
return this.value.servers[0].port;
},
set(port) {
this.$set(this.value.servers[0], 'port', Number.parseInt(port));
}
}
}
};
</script>
<template>
<div class="forward">
<div class="bordered-section">
<h3>{{ t('logging.output.sections.target') }}</h3>
<div class="row">
<div class="col span-6">
<LabeledInput v-model="value.servers[0].host" :mode="mode" :disabled="disabled" :label="t('logging.forward.host')" />
</div>
<div class="col span-6">
<LabeledInput v-model="port" :mode="mode" :disabled="disabled" type="number" :label="t('logging.forward.port')" />
</div>
</div>
</div>
<h3>{{ t('logging.output.sections.access') }}</h3>
<div class="row mb-10">
<div class="col span-6">
<SecretSelector
v-model="value.servers[0].username"
:mode="mode"
:disabled="disabled"
:label="t('logging.forward.username')"
:show-key-selector="true"
/>
</div>
<div class="col span-6">
<SecretSelector
v-model="value.servers[0].password"
:mode="mode"
:disabled="disabled"
:label="t('logging.forward.password')"
:show-key-selector="true"
/>
</div>
</div>
<div class="row">
<div class="col span-6">
<SecretSelector
v-model="value.servers[0].shared_key"
:mode="mode"
:disabled="disabled"
:label="t('logging.forward.sharedKey')"
:show-key-selector="true"
/>
</div>
</div>
</div>
</template>

View File

@ -0,0 +1,124 @@
<script>
import LabeledInput from '@/components/form/LabeledInput';
import SecretSelector from '@/components/form/SecretSelector';
import Checkbox from '@/components/form/Checkbox';
import { protocol } from './options';
export default {
components: {
Checkbox, LabeledInput, SecretSelector
},
props: {
value: {
type: Object,
default: () => {
return {};
}
},
disabled: {
type: Boolean,
default: false
},
mode: {
type: String,
required: true,
},
},
data() {
return { schemes: protocol };
},
};
</script>
<template>
<div class="kafka">
<div class="bordered-section">
<h3>{{ t('logging.output.sections.target') }}</h3>
<div class="row">
<div class="col span-6">
<LabeledInput v-model="value.brokers" :mode="mode" :disabled="disabled" :label="t('logging.kafka.brokers')" />
</div>
<div class="col span-6">
<LabeledInput v-model="value.default_topic" :mode="mode" :disabled="disabled" :label="t('logging.kafka.defaultTopic')" />
</div>
</div>
</div>
<div class="bordered-section">
<h3>{{ t('logging.output.sections.access') }}</h3>
<div class="row mb-10">
<div class="col span-6">
<SecretSelector
v-model="value.username"
:mode="mode"
:disabled="disabled"
:label="t('logging.kafka.username')"
:show-key-selector="true"
/>
</div>
<div class="col span-6">
<SecretSelector
v-model="value.password"
:mode="mode"
:disabled="disabled"
:label="t('logging.kafka.password')"
:show-key-selector="true"
/>
</div>
</div>
<div class="row">
<div class="col span-6">
<LabeledInput v-model="value.scram_mechanism" :mode="mode" :disabled="disabled" :label="t('logging.kafka.scramMechanism')" />
</div>
</div>
</div>
<h3>{{ t('logging.output.sections.certificate') }}</h3>
<div class="row mb-10">
<div class="col span-6">
<Checkbox v-model="value.sasl_over_ssl" :mode="mode" :disabled="disabled" :label="t('logging.kafka.saslOverSsl')" />
</div>
</div>
<div class="row mb-10">
<div class="col span-6">
<SecretSelector
v-model="value.ssl_ca_cert"
:mode="mode"
:disabled="disabled"
:label="t('logging.kafka.sslCaCert.label')"
:show-key-selector="true"
/>
</div>
<div class="col span-6">
<SecretSelector
v-model="value.ssl_client_cert"
:mode="mode"
:disabled="disabled"
:label="t('logging.kafka.sslClientCert.label')"
:show-key-selector="true"
/>
</div>
</div>
<div class="row mb-10">
<div class="col span-6">
<SecretSelector
v-model="value.ssl_client_cert_chain"
:mode="mode"
:disabled="disabled"
:label="t('logging.kafka.sslClientCertChain.label')"
:show-key-selector="true"
/>
</div>
<div class="col span-6">
<SecretSelector
v-model="value.ssl_client_cert_key"
:mode="mode"
:disabled="disabled"
:label="t('logging.kafka.sslClientCertKey')"
:show-key-selector="true"
/>
</div>
</div>
</div>
</template>

View File

@ -0,0 +1 @@
export const protocol = ['http', 'https'];

View File

@ -0,0 +1,84 @@
<script>
import SecretSelector from '@/components/form/SecretSelector';
import LabeledInput from '@/components/form/LabeledInput';
import LabeledSelect from '@/components/form/LabeledSelect';
import Checkbox from '@/components/form/Checkbox';
import { protocol } from './options';
export default {
components: {
Checkbox, LabeledInput, LabeledSelect, SecretSelector
},
props: {
value: {
type: Object,
default: () => {
return {};
}
},
disabled: {
type: Boolean,
default: false
},
mode: {
type: String,
required: true,
},
},
data() {
return { protocolOptions: protocol };
},
computed: {
port: {
get() {
return this.value.hec_port;
},
set(port) {
this.$set(this.value, 'hec_port', Number.parseInt(port));
}
}
}
};
</script>
<template>
<div class="splunk">
<div class="bordered-section">
<h3>{{ t('logging.output.sections.target') }}</h3>
<div class="row">
<div class="col span-2">
<LabeledSelect v-model="value.protocol" :mode="mode" :disabled="disabled" :options="protocolOptions" :label="t('logging.splunk.protocol')" />
</div>
<div class="col span-8">
<LabeledInput v-model="value.hec_host" :mode="mode" :disabled="disabled" :label="t('logging.splunk.host')" />
</div>
<div class="col span-2">
<LabeledInput v-model="port" :mode="mode" :disabled="disabled" type="number" :label="t('logging.splunk.port')" />
</div>
</div>
</div>
<div class="bordered-section">
<h3>{{ t('logging.output.sections.access') }}</h3>
<div class="row">
<div class="col span-6">
<SecretSelector
v-model="value.hec_token"
:mode="mode"
:disabled="disabled"
:label="t('logging.splunk.token')"
:show-key-selector="true"
/>
</div>
</div>
</div>
<h3>{{ t('logging.output.sections.certificate') }}</h3>
<div class="row">
<div class="col span-6">
<Checkbox v-model="value.insecure_ssl" :mode="mode" :disabled="disabled" :label="t('logging.splunk.insecureSsl')" />
</div>
</div>
</div>
</template>