Revision 57697
Added by Konstantinos Triantafyllou over 4 years ago
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/assets/theme-assets/uikit/js/uikit-icons-max.js | ||
---|---|---|
1 |
/*! UIkit 3.0.0-beta.22 | http://www.getuikit.com | (c) 2014 - 2017 YOOtheme | MIT License */ |
|
2 |
|
|
3 |
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define("uikitmax",e):t.UIkitMax=e()}(this,function(){"use strict";function t(i){t.installed||i.icon.add(e)}var e={album:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="5" y="2" width="10" height="1"></rect><rect x="3" y="4" width="14" height="1"></rect><rect fill="none" stroke="#000" x="1.5" y="6.5" width="17" height="11"></rect></svg>',ban:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><line fill="none" stroke="#000" stroke-width="1.1" x1="4" y1="3.5" x2="16" y2="16.5"></line></svg>',behance:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M9.5,10.6c-0.4-0.5-0.9-0.9-1.6-1.1c1.7-1,2.2-3.2,0.7-4.7C7.8,4,6.3,4,5.2,4C3.5,4,1.7,4,0,4v12c1.7,0,3.4,0,5.2,0 c1,0,2.1,0,3.1-0.5C10.2,14.6,10.5,12.3,9.5,10.6L9.5,10.6z M5.6,6.1c1.8,0,1.8,2.7-0.1,2.7c-1,0-2,0-2.9,0V6.1H5.6z M2.6,13.8v-3.1 c1.1,0,2.1,0,3.2,0c2.1,0,2.1,3.2,0.1,3.2L2.6,13.8z"></path><path d="M19.9,10.9C19.7,9.2,18.7,7.6,17,7c-4.2-1.3-7.3,3.4-5.3,7.1c0.9,1.7,2.8,2.3,4.7,2.1c1.7-0.2,2.9-1.3,3.4-2.9h-2.2 c-0.4,1.3-2.4,1.5-3.5,0.6c-0.4-0.4-0.6-1.1-0.6-1.7H20C20,11.7,19.9,10.9,19.9,10.9z M13.5,10.6c0-1.6,2.3-2.7,3.5-1.4 c0.4,0.4,0.5,0.9,0.6,1.4H13.5L13.5,10.6z"></path><rect x="13" y="4" width="5" height="1.4"></rect></svg>',bell:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.1" d="M17,15.5 L3,15.5 C2.99,14.61 3.79,13.34 4.1,12.51 C4.58,11.3 4.72,10.35 5.19,7.01 C5.54,4.53 5.89,3.2 7.28,2.16 C8.13,1.56 9.37,1.5 9.81,1.5 L9.96,1.5 C9.96,1.5 11.62,1.41 12.67,2.17 C14.08,3.2 14.42,4.54 14.77,7.02 C15.26,10.35 15.4,11.31 15.87,12.52 C16.2,13.34 17.01,14.61 17,15.5 L17,15.5 Z"></path><path fill="none" stroke="#000" d="M12.39,16 C12.39,17.37 11.35,18.43 9.91,18.43 C8.48,18.43 7.42,17.37 7.42,16"></path></svg>',bold:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M5,15.3 C5.66,15.3 5.9,15 5.9,14.53 L5.9,5.5 C5.9,4.92 5.56,4.7 5,4.7 L5,4 L8.95,4 C12.6,4 13.7,5.37 13.7,6.9 C13.7,7.87 13.14,9.17 10.86,9.59 L10.86,9.7 C13.25,9.86 14.29,11.28 14.3,12.54 C14.3,14.47 12.94,16 9,16 L5,16 L5,15.3 Z M9,9.3 C11.19,9.3 11.8,8.5 11.85,7 C11.85,5.65 11.3,4.8 9,4.8 L7.67,4.8 L7.67,9.3 L9,9.3 Z M9.185,15.22 C11.97,15 12.39,14 12.4,12.58 C12.4,11.15 11.39,10 9,10 L7.67,10 L7.67,15 L9.18,15 Z"></path></svg>',bolt:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M4.74,20 L7.73,12 L3,12 L15.43,1 L12.32,9 L17.02,9 L4.74,20 L4.74,20 L4.74,20 Z M9.18,11 L7.1,16.39 L14.47,10 L10.86,10 L12.99,4.67 L5.61,11 L9.18,11 L9.18,11 L9.18,11 Z"></path></svg>',bookmark:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon fill="none" stroke="#000" points="5.5 1.5 15.5 1.5 15.5 17.5 10.5 12.5 5.5 17.5"></polygon></svg>',calendar:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M 2,3 2,17 18,17 18,3 2,3 Z M 17,16 3,16 3,8 17,8 17,16 Z M 17,7 3,7 3,4 17,4 17,7 Z"></path><rect width="1" height="3" x="6" y="2"></rect><rect width="1" height="3" x="13" y="2"></rect></svg>',camera:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10.8" r="3.8"></circle><path fill="none" stroke="#000" d="M1,4.5 C0.7,4.5 0.5,4.7 0.5,5 L0.5,17 C0.5,17.3 0.7,17.5 1,17.5 L19,17.5 C19.3,17.5 19.5,17.3 19.5,17 L19.5,5 C19.5,4.7 19.3,4.5 19,4.5 L13.5,4.5 L13.5,2.9 C13.5,2.6 13.3,2.5 13,2.5 L7,2.5 C6.7,2.5 6.5,2.6 6.5,2.9 L6.5,4.5 L1,4.5 L1,4.5 Z"></path></svg>',cart:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="7.3" cy="17.3" r="1.4"></circle><circle cx="13.3" cy="17.3" r="1.4"></circle><polyline fill="none" stroke="#000" points="0 2 3.2 4 5.3 12.5 16 12.5 18 6.5 8 6.5"></polyline></svg>',check:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.1" points="4,10 8,15 17,4"></polyline></svg>',clock:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><rect x="9" y="4" width="1" height="7"></rect><path fill="none" stroke="#000" stroke-width="1.1" d="M13.018,14.197 L9.445,10.625"></path></svg>',close:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>',code:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.01" points="13,4 19,10 13,16"></polyline><polyline fill="none" stroke="#000" stroke-width="1.01" points="7,4 1,10 7,16"></polyline></svg>',cog:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" cx="9.997" cy="10" r="3.31"></circle><path fill="none" stroke="#000" d="M18.488,12.285 L16.205,16.237 C15.322,15.496 14.185,15.281 13.303,15.791 C12.428,16.289 12.047,17.373 12.246,18.5 L7.735,18.5 C7.938,17.374 7.553,16.299 6.684,15.791 C5.801,15.27 4.655,15.492 3.773,16.237 L1.5,12.285 C2.573,11.871 3.317,10.999 3.317,9.991 C3.305,8.98 2.573,8.121 1.5,7.716 L3.765,3.784 C4.645,4.516 5.794,4.738 6.687,4.232 C7.555,3.722 7.939,2.637 7.735,1.5 L12.263,1.5 C12.072,2.637 12.441,3.71 13.314,4.22 C14.206,4.73 15.343,4.516 16.225,3.794 L18.487,7.714 C17.404,8.117 16.661,8.988 16.67,10.009 C16.672,11.018 17.415,11.88 18.488,12.285 L18.488,12.285 Z"></path></svg>',comment:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M6,18.71 L6,14 L1,14 L1,1 L19,1 L19,14 L10.71,14 L6,18.71 L6,18.71 Z M2,13 L7,13 L7,16.29 L10.29,13 L18,13 L18,2 L2,2 L2,13 L2,13 Z"></path></svg>',commenting:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg>',comments:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" points="2 0.5 19.5 0.5 19.5 13"></polyline><path d="M5,19.71 L5,15 L0,15 L0,2 L18,2 L18,15 L9.71,15 L5,19.71 L5,19.71 L5,19.71 Z M1,14 L6,14 L6,17.29 L9.29,14 L17,14 L17,3 L1,3 L1,14 L1,14 L1,14 Z"></path></svg>',copy:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect fill="none" stroke="#000" x="3.5" y="2.5" width="12" height="16"></rect><polyline fill="none" stroke="#000" points="5 0.5 17.5 0.5 17.5 17"></polyline></svg>',database:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><ellipse fill="none" stroke="#000" cx="10" cy="4.64" rx="7.5" ry="3.14"></ellipse><path fill="none" stroke="#000" d="M17.5,8.11 C17.5,9.85 14.14,11.25 10,11.25 C5.86,11.25 2.5,9.84 2.5,8.11"></path><path fill="none" stroke="#000" d="M17.5,11.25 C17.5,12.99 14.14,14.39 10,14.39 C5.86,14.39 2.5,12.98 2.5,11.25"></path><path fill="none" stroke="#000" d="M17.49,4.64 L17.5,14.36 C17.5,16.1 14.14,17.5 10,17.5 C5.86,17.5 2.5,16.09 2.5,14.36 L2.5,4.64"></path></svg>',desktop:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="8" y="15" width="1" height="2"></rect><rect x="11" y="15" width="1" height="2"></rect><rect x="5" y="16" width="10" height="1"></rect><rect fill="none" stroke="#000" x="1.5" y="3.5" width="17" height="11"></rect></svg>',download:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" points="14,10 9.5,14.5 5,10"></polyline><rect x="3" y="17" width="13" height="1"></rect><line fill="none" stroke="#000" x1="9.5" y1="13.91" x2="9.5" y2="3"></line></svg>',dribbble:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.4" d="M1.3,8.9c0,0,5,0.1,8.6-1c1.4-0.4,2.6-0.9,4-1.9 c1.4-1.1,2.5-2.5,2.5-2.5"></path><path fill="none" stroke="#000" stroke-width="1.4" d="M3.9,16.6c0,0,1.7-2.8,3.5-4.2 c1.8-1.3,4-2,5.7-2.2C16,10,19,10.6,19,10.6"></path><path fill="none" stroke="#000" stroke-width="1.4" d="M6.9,1.6c0,0,3.3,4.6,4.2,6.8 c0.4,0.9,1.3,3.1,1.9,5.2c0.6,2,0.9,4.4,0.9,4.4"></path><circle fill="none" stroke="#000" stroke-width="1.4" cx="10" cy="10" r="9"></circle></svg>',expand:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="13 2 18 2 18 7 17 7 17 3 13 3"></polygon><polygon points="2 13 3 13 3 17 7 17 7 18 2 18"></polygon><path fill="none" stroke="#000" stroke-width="1.1" d="M11,9 L17,3"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M3,17 L9,11"></path></svg>',facebook:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M11,10h2.6l0.4-3H11V5.3c0-0.9,0.2-1.5,1.5-1.5H14V1.1c-0.3,0-1-0.1-2.1-0.1C9.6,1,8,2.4,8,5v2H5.5v3H8v8h3V10z"></path></svg>',file:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect fill="none" stroke="#000" x="3.5" y="1.5" width="13" height="17"></rect></svg>',flickr:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="5.5" cy="9.5" r="3.5"></circle><circle cx="14.5" cy="9.5" r="3.5"></circle></svg>',folder:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon fill="none" stroke="#000" points="9.5 5.5 8.5 3.5 1.5 3.5 1.5 16.5 18.5 16.5 18.5 5.5"></polygon></svg>',forward:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2.47,13.11 C4.02,10.02 6.27,7.85 9.04,6.61 C9.48,6.41 10.27,6.13 11,5.91 L11,2 L18.89,9 L11,16 L11,12.13 C9.25,12.47 7.58,13.19 6.02,14.25 C3.03,16.28 1.63,18.54 1.63,18.54 C1.63,18.54 1.38,15.28 2.47,13.11 L2.47,13.11 Z M5.3,13.53 C6.92,12.4 9.04,11.4 12,10.92 L12,13.63 L17.36,9 L12,4.25 L12,6.8 C11.71,6.86 10.86,7.02 9.67,7.49 C6.79,8.65 4.58,10.96 3.49,13.08 C3.18,13.7 2.68,14.87 2.49,16 C3.28,15.05 4.4,14.15 5.3,13.53 L5.3,13.53 Z"></path></svg>',foursquare:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M15.23,2 C15.96,2 16.4,2.41 16.5,2.86 C16.57,3.15 16.56,3.44 16.51,3.73 C16.46,4.04 14.86,11.72 14.75,12.03 C14.56,12.56 14.16,12.82 13.61,12.83 C13.03,12.84 11.09,12.51 10.69,13 C10.38,13.38 7.79,16.39 6.81,17.53 C6.61,17.76 6.4,17.96 6.08,17.99 C5.68,18.04 5.29,17.87 5.17,17.45 C5.12,17.28 5.1,17.09 5.1,16.91 C5.1,12.4 4.86,7.81 5.11,3.31 C5.17,2.5 5.81,2.12 6.53,2 L15.23,2 L15.23,2 Z M9.76,11.42 C9.94,11.19 10.17,11.1 10.45,11.1 L12.86,11.1 C13.12,11.1 13.31,10.94 13.36,10.69 C13.37,10.64 13.62,9.41 13.74,8.83 C13.81,8.52 13.53,8.28 13.27,8.28 C12.35,8.29 11.42,8.28 10.5,8.28 C9.84,8.28 9.83,7.69 9.82,7.21 C9.8,6.85 10.13,6.55 10.5,6.55 C11.59,6.56 12.67,6.55 13.76,6.55 C14.03,6.55 14.23,6.4 14.28,6.14 C14.34,5.87 14.67,4.29 14.67,4.29 C14.67,4.29 14.82,3.74 14.19,3.74 L7.34,3.74 C7,3.75 6.84,4.02 6.84,4.33 C6.84,7.58 6.85,14.95 6.85,14.99 C6.87,15 8.89,12.51 9.76,11.42 L9.76,11.42 Z"></path></svg>',future:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline points="19 2 18 2 18 6 14 6 14 7 19 7 19 2"></polyline><path fill="none" stroke="#000" stroke-width="1.1" d="M18,6.548 C16.709,3.29 13.354,1 9.6,1 C4.6,1 0.6,5 0.6,10 C0.6,15 4.6,19 9.6,19 C14.6,19 18.6,15 18.6,10"></path><rect x="9" y="4" width="1" height="7"></rect><path d="M13.018,14.197 L9.445,10.625" fill="none" stroke="#000" stroke-width="1.1"></path></svg>',github:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10,1 C5.03,1 1,5.03 1,10 C1,13.98 3.58,17.35 7.16,18.54 C7.61,18.62 7.77,18.34 7.77,18.11 C7.77,17.9 7.76,17.33 7.76,16.58 C5.26,17.12 4.73,15.37 4.73,15.37 C4.32,14.33 3.73,14.05 3.73,14.05 C2.91,13.5 3.79,13.5 3.79,13.5 C4.69,13.56 5.17,14.43 5.17,14.43 C5.97,15.8 7.28,15.41 7.79,15.18 C7.87,14.6 8.1,14.2 8.36,13.98 C6.36,13.75 4.26,12.98 4.26,9.53 C4.26,8.55 4.61,7.74 5.19,7.11 C5.1,6.88 4.79,5.97 5.28,4.73 C5.28,4.73 6.04,4.49 7.75,5.65 C8.47,5.45 9.24,5.35 10,5.35 C10.76,5.35 11.53,5.45 12.25,5.65 C13.97,4.48 14.72,4.73 14.72,4.73 C15.21,5.97 14.9,6.88 14.81,7.11 C15.39,7.74 15.73,8.54 15.73,9.53 C15.73,12.99 13.63,13.75 11.62,13.97 C11.94,14.25 12.23,14.8 12.23,15.64 C12.23,16.84 12.22,17.81 12.22,18.11 C12.22,18.35 12.38,18.63 12.84,18.54 C16.42,17.35 19,13.98 19,10 C19,5.03 14.97,1 10,1 L10,1 Z"></path></svg>',gitter:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="3.5" y="1" width="1.531" height="11.471"></rect><rect x="7.324" y="4.059" width="1.529" height="15.294"></rect><rect x="11.148" y="4.059" width="1.527" height="15.294"></rect><rect x="14.971" y="4.059" width="1.529" height="8.412"></rect></svg>',google:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17.86,9.09 C18.46,12.12 17.14,16.05 13.81,17.56 C9.45,19.53 4.13,17.68 2.47,12.87 C0.68,7.68 4.22,2.42 9.5,2.03 C11.57,1.88 13.42,2.37 15.05,3.65 C15.22,3.78 15.37,3.93 15.61,4.14 C14.9,4.81 14.23,5.45 13.5,6.14 C12.27,5.08 10.84,4.72 9.28,4.98 C8.12,5.17 7.16,5.76 6.37,6.63 C4.88,8.27 4.62,10.86 5.76,12.82 C6.95,14.87 9.17,15.8 11.57,15.25 C13.27,14.87 14.76,13.33 14.89,11.75 L10.51,11.75 L10.51,9.09 L17.86,9.09 L17.86,9.09 Z"></path></svg>',grid:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="3" height="3"></rect><rect x="8" y="2" width="3" height="3"></rect><rect x="14" y="2" width="3" height="3"></rect><rect x="2" y="8" width="3" height="3"></rect><rect x="8" y="8" width="3" height="3"></rect><rect x="14" y="8" width="3" height="3"></rect><rect x="2" y="14" width="3" height="3"></rect><rect x="8" y="14" width="3" height="3"></rect><rect x="14" y="14" width="3" height="3"></rect></svg>',happy:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="13" cy="7" r="1"></circle><circle cx="7" cy="7" r="1"></circle><circle fill="none" stroke="#000" cx="10" cy="10" r="8.5"></circle><path fill="none" stroke="#000" d="M14.6,11.4 C13.9,13.3 12.1,14.5 10,14.5 C7.9,14.5 6.1,13.3 5.4,11.4"></path></svg>',hashtag:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M15.431,8 L15.661,7 L12.911,7 L13.831,3 L12.901,3 L11.98,7 L9.29,7 L10.21,3 L9.281,3 L8.361,7 L5.23,7 L5,8 L8.13,8 L7.21,12 L4.23,12 L4,13 L6.98,13 L6.061,17 L6.991,17 L7.911,13 L10.601,13 L9.681,17 L10.611,17 L11.531,13 L14.431,13 L14.661,12 L11.76,12 L12.681,8 L15.431,8 Z M10.831,12 L8.141,12 L9.061,8 L11.75,8 L10.831,12 Z"></path></svg>',heart:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.03" d="M10,4 C10,4 8.1,2 5.74,2 C3.38,2 1,3.55 1,6.73 C1,8.84 2.67,10.44 2.67,10.44 L10,18 L17.33,10.44 C17.33,10.44 19,8.84 19,6.73 C19,3.55 16.62,2 14.26,2 C11.9,2 10,4 10,4 L10,4 Z"></path></svg>',history:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="#000" points="1 2 2 2 2 6 6 6 6 7 1 7 1 2"></polyline><path fill="none" stroke="#000" stroke-width="1.1" d="M2.1,6.548 C3.391,3.29 6.746,1 10.5,1 C15.5,1 19.5,5 19.5,10 C19.5,15 15.5,19 10.5,19 C5.5,19 1.5,15 1.5,10"></path><rect x="9" y="4" width="1" height="7"></rect><path fill="none" stroke="#000" stroke-width="1.1" d="M13.018,14.197 L9.445,10.625" id="Shape"></path></svg>',home:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="18.65 11.35 10 2.71 1.35 11.35 0.65 10.65 10 1.29 19.35 10.65"></polygon><polygon points="15 4 18 4 18 7 17 7 17 5 15 5"></polygon><polygon points="3 11 4 11 4 18 7 18 7 12 12 12 12 18 16 18 16 11 17 11 17 19 11 19 11 13 8 13 8 19 3 19"></polygon></svg>',image:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="16.1" cy="6.1" r="1.1"></circle><rect fill="none" stroke="#000" x="0.5" y="2.5" width="19" height="15"></rect><polyline fill="none" stroke="#000" stroke-width="1.01" points="4,13 8,9 13,14"></polyline><polyline fill="none" stroke="#000" stroke-width="1.01" points="11,12 12.5,10.5 16,14"></polyline></svg>',info:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>',instagram:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M13.55,1H6.46C3.45,1,1,3.44,1,6.44v7.12c0,3,2.45,5.44,5.46,5.44h7.08c3.02,0,5.46-2.44,5.46-5.44V6.44 C19.01,3.44,16.56,1,13.55,1z M17.5,14c0,1.93-1.57,3.5-3.5,3.5H6c-1.93,0-3.5-1.57-3.5-3.5V6c0-1.93,1.57-3.5,3.5-3.5h8 c1.93,0,3.5,1.57,3.5,3.5V14z"></path><circle cx="14.87" cy="5.26" r="1.09"></circle><path d="M10.03,5.45c-2.55,0-4.63,2.06-4.63,4.6c0,2.55,2.07,4.61,4.63,4.61c2.56,0,4.63-2.061,4.63-4.61 C14.65,7.51,12.58,5.45,10.03,5.45L10.03,5.45L10.03,5.45z M10.08,13c-1.66,0-3-1.34-3-2.99c0-1.65,1.34-2.99,3-2.99s3,1.34,3,2.99 C13.08,11.66,11.74,13,10.08,13L10.08,13L10.08,13z"></path></svg>',italic:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M12.63,5.48 L10.15,14.52 C10,15.08 10.37,15.25 11.92,15.3 L11.72,16 L6,16 L6.2,15.31 C7.78,15.26 8.19,15.09 8.34,14.53 L10.82,5.49 C10.97,4.92 10.63,4.76 9.09,4.71 L9.28,4 L15,4 L14.81,4.69 C13.23,4.75 12.78,4.91 12.63,5.48 L12.63,5.48 Z"></path></svg>',joomla:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M7.8,13.4l1.7-1.7L5.9,8c-0.6-0.5-0.6-1.5,0-2c0.6-0.6,1.4-0.6,2,0l1.7-1.7c-1-1-2.3-1.3-3.6-1C5.8,2.2,4.8,1.4,3.7,1.4 c-1.3,0-2.3,1-2.3,2.3c0,1.1,0.8,2,1.8,2.3c-0.4,1.3-0.1,2.8,1,3.8L7.8,13.4L7.8,13.4z"></path><path d="M10.2,4.3c1-1,2.5-1.4,3.8-1c0.2-1.1,1.1-2,2.3-2c1.3,0,2.3,1,2.3,2.3c0,1.2-0.9,2.2-2,2.3c0.4,1.3,0,2.8-1,3.8L13.9,8 c0.6-0.5,0.6-1.5,0-2c-0.5-0.6-1.5-0.6-2,0L8.2,9.7L6.5,8"></path><path d="M14.1,16.8c-1.3,0.4-2.8,0.1-3.8-1l1.7-1.7c0.6,0.6,1.5,0.6,2,0c0.5-0.6,0.6-1.5,0-2l-3.7-3.7L12,6.7l3.7,3.7 c1,1,1.3,2.4,1,3.6c1.1,0.2,2,1.1,2,2.3c0,1.3-1,2.3-2.3,2.3C15.2,18.6,14.3,17.8,14.1,16.8"></path><path d="M13.2,12.2l-3.7,3.7c-1,1-2.4,1.3-3.6,1c-0.2,1-1.2,1.8-2.2,1.8c-1.3,0-2.3-1-2.3-2.3c0-1.1,0.8-2,1.8-2.3 c-0.3-1.3,0-2.7,1-3.7l1.7,1.7c-0.6,0.6-0.6,1.5,0,2c0.6,0.6,1.4,0.6,2,0l3.7-3.7"></path></svg>',laptop:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect y="16" width="20" height="1"></rect><rect fill="none" stroke="#000" x="2.5" y="4.5" width="15" height="10"></rect></svg>',lifesaver:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10,0.5 C4.76,0.5 0.5,4.76 0.5,10 C0.5,15.24 4.76,19.5 10,19.5 C15.24,19.5 19.5,15.24 19.5,10 C19.5,4.76 15.24,0.5 10,0.5 L10,0.5 Z M10,1.5 C11.49,1.5 12.89,1.88 14.11,2.56 L11.85,4.82 C11.27,4.61 10.65,4.5 10,4.5 C9.21,4.5 8.47,4.67 7.79,4.96 L5.58,2.75 C6.87,1.95 8.38,1.5 10,1.5 L10,1.5 Z M4.96,7.8 C4.67,8.48 4.5,9.21 4.5,10 C4.5,10.65 4.61,11.27 4.83,11.85 L2.56,14.11 C1.88,12.89 1.5,11.49 1.5,10 C1.5,8.38 1.95,6.87 2.75,5.58 L4.96,7.79 L4.96,7.8 L4.96,7.8 Z M10,18.5 C8.25,18.5 6.62,17.97 5.27,17.06 L7.46,14.87 C8.22,15.27 9.08,15.5 10,15.5 C10.79,15.5 11.53,15.33 12.21,15.04 L14.42,17.25 C13.13,18.05 11.62,18.5 10,18.5 L10,18.5 Z M10,14.5 C7.52,14.5 5.5,12.48 5.5,10 C5.5,7.52 7.52,5.5 10,5.5 C12.48,5.5 14.5,7.52 14.5,10 C14.5,12.48 12.48,14.5 10,14.5 L10,14.5 Z M15.04,12.21 C15.33,11.53 15.5,10.79 15.5,10 C15.5,9.08 15.27,8.22 14.87,7.46 L17.06,5.27 C17.97,6.62 18.5,8.25 18.5,10 C18.5,11.62 18.05,13.13 17.25,14.42 L15.04,12.21 L15.04,12.21 Z"></path></svg>',link:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.1" d="M10.625,12.375 L7.525,15.475 C6.825,16.175 5.925,16.175 5.225,15.475 L4.525,14.775 C3.825,14.074 3.825,13.175 4.525,12.475 L7.625,9.375"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M9.325,7.375 L12.425,4.275 C13.125,3.575 14.025,3.575 14.724,4.275 L15.425,4.975 C16.125,5.675 16.125,6.575 15.425,7.275 L12.325,10.375"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M7.925,11.875 L11.925,7.975"></path></svg>',linkedin:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M5.77,17.89 L5.77,7.17 L2.21,7.17 L2.21,17.89 L5.77,17.89 L5.77,17.89 Z M3.99,5.71 C5.23,5.71 6.01,4.89 6.01,3.86 C5.99,2.8 5.24,2 4.02,2 C2.8,2 2,2.8 2,3.85 C2,4.88 2.77,5.7 3.97,5.7 L3.99,5.7 L3.99,5.71 L3.99,5.71 Z"></path><path d="M7.75,17.89 L11.31,17.89 L11.31,11.9 C11.31,11.58 11.33,11.26 11.43,11.03 C11.69,10.39 12.27,9.73 13.26,9.73 C14.55,9.73 15.06,10.71 15.06,12.15 L15.06,17.89 L18.62,17.89 L18.62,11.74 C18.62,8.45 16.86,6.92 14.52,6.92 C12.6,6.92 11.75,7.99 11.28,8.73 L11.3,8.73 L11.3,7.17 L7.75,7.17 C7.79,8.17 7.75,17.89 7.75,17.89 L7.75,17.89 L7.75,17.89 Z"></path></svg>',list:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="6" y="4" width="12" height="1"></rect><rect x="6" y="9" width="12" height="1"></rect><rect x="6" y="14" width="12" height="1"></rect><rect x="2" y="4" width="2" height="1"></rect><rect x="2" y="9" width="2" height="1"></rect><rect x="2" y="14" width="2" height="1"></rect></svg>',location:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.01" d="M10,0.5 C6.41,0.5 3.5,3.39 3.5,6.98 C3.5,11.83 10,19 10,19 C10,19 16.5,11.83 16.5,6.98 C16.5,3.39 13.59,0.5 10,0.5 L10,0.5 Z"></path><circle fill="none" stroke="#000" cx="10" cy="6.8" r="2.3"></circle></svg>',lock:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect fill="none" stroke="#000" height="10" width="13" y="8.5" x="3.5"></rect><path fill="none" stroke="#000" d="M6.5,8 L6.5,4.88 C6.5,3.01 8.07,1.5 10,1.5 C11.93,1.5 13.5,3.01 13.5,4.88 L13.5,8"></path></svg>',mail:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" points="1.4,6.5 10,11 18.6,6.5"></polyline><path d="M 1,4 1,16 19,16 19,4 1,4 Z M 18,15 2,15 2,5 18,5 18,15 Z"></path></svg>',menu:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="4" width="16" height="1"></rect><rect x="2" y="9" width="16" height="1"></rect><rect x="2" y="14" width="16" height="1"></rect></svg>',minus:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect height="1" width="18" y="9" x="1"></rect></svg>',more:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="3" cy="10" r="2"></circle><circle cx="10" cy="10" r="2"></circle><circle cx="17" cy="10" r="2"></circle></svg>',move:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="4,5 1,5 1,9 2,9 2,6 4,6 "></polygon><polygon points="1,16 2,16 2,18 4,18 4,19 1,19 "></polygon><polygon points="14,16 14,19 11,19 11,18 13,18 13,16 "></polygon><rect fill="none" stroke="#000" x="5.5" y="1.5" width="13" height="13"></rect><rect x="1" y="11" width="1" height="3"></rect><rect x="6" y="18" width="3" height="1"></rect></svg>',nut:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon fill="none" stroke="#000" points="2.5,5.7 10,1.3 17.5,5.7 17.5,14.3 10,18.7 2.5,14.3"></polygon><circle fill="none" stroke="#000" cx="10" cy="10" r="3.5"></circle></svg>',pagekit:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="3,1 17,1 17,16 10,16 10,13 14,13 14,4 6,4 6,16 10,16 10,19 3,19 "></polygon></svg>',pencil:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" d="M17.25,6.01 L7.12,16.1 L3.82,17.2 L5.02,13.9 L15.12,3.88 C15.71,3.29 16.66,3.29 17.25,3.88 C17.83,4.47 17.83,5.42 17.25,6.01 L17.25,6.01 Z"></path><path fill="none" stroke="#000" d="M15.98,7.268 L13.851,5.148"></path></svg>',phone:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" d="M15.5,17 C15.5,17.8 14.8,18.5 14,18.5 L7,18.5 C6.2,18.5 5.5,17.8 5.5,17 L5.5,3 C5.5,2.2 6.2,1.5 7,1.5 L14,1.5 C14.8,1.5 15.5,2.2 15.5,3 L15.5,17 L15.5,17 L15.5,17 Z"></path><circle cx="10.5" cy="16.5" r="0.8"></circle></svg>',pinterest:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10.21,1 C5.5,1 3,4.16 3,7.61 C3,9.21 3.85,11.2 5.22,11.84 C5.43,11.94 5.54,11.89 5.58,11.69 C5.62,11.54 5.8,10.8 5.88,10.45 C5.91,10.34 5.89,10.24 5.8,10.14 C5.36,9.59 5,8.58 5,7.65 C5,5.24 6.82,2.91 9.93,2.91 C12.61,2.91 14.49,4.74 14.49,7.35 C14.49,10.3 13,12.35 11.06,12.35 C9.99,12.35 9.19,11.47 9.44,10.38 C9.75,9.08 10.35,7.68 10.35,6.75 C10.35,5.91 9.9,5.21 8.97,5.21 C7.87,5.21 6.99,6.34 6.99,7.86 C6.99,8.83 7.32,9.48 7.32,9.48 C7.32,9.48 6.24,14.06 6.04,14.91 C5.7,16.35 6.08,18.7 6.12,18.9 C6.14,19.01 6.26,19.05 6.33,18.95 C6.44,18.81 7.74,16.85 8.11,15.44 C8.24,14.93 8.79,12.84 8.79,12.84 C9.15,13.52 10.19,14.09 11.29,14.09 C14.58,14.09 16.96,11.06 16.96,7.3 C16.94,3.7 14,1 10.21,1"></path></svg>',play:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon fill="none" stroke="#000" points="6.5,5 14.5,10 6.5,15"></polygon></svg>',plus:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg>',pull:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="6.85,8 9.5,10.6 12.15,8 12.85,8.7 9.5,12 6.15,8.7"></polygon><line fill="none" stroke="#000" x1="9.5" y1="11" x2="9.5" y2="2"></line><polyline fill="none" stroke="#000" points="6,5.5 3.5,5.5 3.5,18.5 15.5,18.5 15.5,5.5 13,5.5"></polyline></svg>',push:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="12.15,4 9.5,1.4 6.85,4 6.15,3.3 9.5,0 12.85,3.3"></polygon><line fill="none" stroke="#000" x1="9.5" y1="10" x2="9.5" y2="1"></line><polyline fill="none" stroke="#000" points="6 5.5 3.5 5.5 3.5 18.5 15.5 18.5 15.5 5.5 13 5.5"></polyline></svg>',question:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><circle cx="10.44" cy="14.42" r="1.05"></circle><path fill="none" stroke="#000" stroke-width="1.2" d="M8.17,7.79 C8.17,4.75 12.72,4.73 12.72,7.72 C12.72,8.67 11.81,9.15 11.23,9.75 C10.75,10.24 10.51,10.73 10.45,11.4 C10.44,11.53 10.43,11.64 10.43,11.75"></path></svg>',receiver:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.01" d="M6.189,13.611C8.134,15.525 11.097,18.239 13.867,18.257C16.47,18.275 18.2,16.241 18.2,16.241L14.509,12.551L11.539,13.639L6.189,8.29L7.313,5.355L3.76,1.8C3.76,1.8 1.732,3.537 1.7,6.092C1.667,8.809 4.347,11.738 6.189,13.611"></path></svg>',refresh:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.1" d="M17.08,11.15 C17.09,11.31 17.1,11.47 17.1,11.64 C17.1,15.53 13.94,18.69 10.05,18.69 C6.16,18.68 3,15.53 3,11.63 C3,7.74 6.16,4.58 10.05,4.58 C10.9,4.58 11.71,4.73 12.46,5"></path><polyline fill="none" stroke="#000" points="9.9 2 12.79 4.89 9.79 7.9"></polyline></svg>',reply:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17.7,13.11 C16.12,10.02 13.84,7.85 11.02,6.61 C10.57,6.41 9.75,6.13 9,5.91 L9,2 L1,9 L9,16 L9,12.13 C10.78,12.47 12.5,13.19 14.09,14.25 C17.13,16.28 18.56,18.54 18.56,18.54 C18.56,18.54 18.81,15.28 17.7,13.11 L17.7,13.11 Z M14.82,13.53 C13.17,12.4 11.01,11.4 8,10.92 L8,13.63 L2.55,9 L8,4.25 L8,6.8 C8.3,6.86 9.16,7.02 10.37,7.49 C13.3,8.65 15.54,10.96 16.65,13.08 C16.97,13.7 17.48,14.86 17.68,16 C16.87,15.05 15.73,14.15 14.82,13.53 L14.82,13.53 Z"></path></svg>',rss:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="3.12" cy="16.8" r="1.85"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,8.2 C1.78,8.18 2.06,8.16 2.35,8.16 C7.57,8.16 11.81,12.37 11.81,17.57 C11.81,17.89 11.79,18.19 11.76,18.5"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,2.52 C1.78,2.51 2.06,2.5 2.35,2.5 C10.72,2.5 17.5,9.24 17.5,17.57 C17.5,17.89 17.49,18.19 17.47,18.5"></path></svg>',search:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9" cy="9" r="7"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M14,14 L18,18 L14,14 Z"></path></svg>',server:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="3" width="1" height="2"></rect><rect x="5" y="3" width="1" height="2"></rect><rect x="7" y="3" width="1" height="2"></rect><rect x="16" y="3" width="1" height="1"></rect><rect x="16" y="10" width="1" height="1"></rect><circle fill="none" stroke="#000" cx="9.9" cy="17.4" r="1.4"></circle><rect x="3" y="10" width="1" height="2"></rect><rect x="5" y="10" width="1" height="2"></rect><rect x="9.5" y="14" width="1" height="2"></rect><rect x="3" y="17" width="6" height="1"></rect><rect x="11" y="17" width="6" height="1"></rect><rect fill="none" stroke="#000" x="1.5" y="1.5" width="17" height="5"></rect><rect fill="none" stroke="#000" x="1.5" y="8.5" width="17" height="5"></rect></svg>',settings:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><ellipse fill="none" stroke="#000" cx="6.11" cy="3.55" rx="2.11" ry="2.15"></ellipse><ellipse fill="none" stroke="#000" cx="6.11" cy="15.55" rx="2.11" ry="2.15"></ellipse><circle fill="none" stroke="#000" cx="13.15" cy="9.55" r="2.15"></circle><rect x="1" y="3" width="3" height="1"></rect><rect x="10" y="3" width="8" height="1"></rect><rect x="1" y="9" width="8" height="1"></rect><rect x="15" y="9" width="3" height="1"></rect><rect x="1" y="15" width="3" height="1"></rect><rect x="10" y="15" width="8" height="1"></rect></svg>',shrink:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="11 4 12 4 12 8 16 8 16 9 11 9"></polygon><polygon points="4 11 9 11 9 16 8 16 8 12 4 12"></polygon><path fill="none" stroke="#000" stroke-width="1.1" d="M12,8 L18,2"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M2,18 L8,12"></path></svg>', |
|
4 |
social:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><line fill="none" stroke="#000" stroke-width="1.1" x1="13.4" y1="14" x2="6.3" y2="10.7"></line><line fill="none" stroke="#000" stroke-width="1.1" x1="13.5" y1="5.5" x2="6.5" y2="8.8"></line><circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="4.6" r="2.3"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="15.5" cy="14.8" r="2.3"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="4.5" cy="9.8" r="2.3"></circle></svg>',soundcloud:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17.2,9.4c-0.4,0-0.8,0.1-1.101,0.2c-0.199-2.5-2.399-4.5-5-4.5c-0.6,0-1.2,0.1-1.7,0.3C9.2,5.5,9.1,5.6,9.1,5.6V15h8 c1.601,0,2.801-1.2,2.801-2.8C20,10.7,18.7,9.4,17.2,9.4L17.2,9.4z"></path><rect x="6" y="6.5" width="1.5" height="8.5"></rect><rect x="3" y="8" width="1.5" height="7"></rect><rect y="10" width="1.5" height="5"></rect></svg>',star:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon fill="none" stroke="#000" stroke-width="1.01" points="10 2 12.63 7.27 18.5 8.12 14.25 12.22 15.25 18 10 15.27 4.75 18 5.75 12.22 1.5 8.12 7.37 7.27"></polygon></svg>',strikethrough:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M6,13.02 L6.65,13.02 C7.64,15.16 8.86,16.12 10.41,16.12 C12.22,16.12 12.92,14.93 12.92,13.89 C12.92,12.55 11.99,12.03 9.74,11.23 C8.05,10.64 6.23,10.11 6.23,7.83 C6.23,5.5 8.09,4.09 10.4,4.09 C11.44,4.09 12.13,4.31 12.72,4.54 L13.33,4 L13.81,4 L13.81,7.59 L13.16,7.59 C12.55,5.88 11.52,4.89 10.07,4.89 C8.84,4.89 7.89,5.69 7.89,7.03 C7.89,8.29 8.89,8.78 10.88,9.45 C12.57,10.03 14.38,10.6 14.38,12.91 C14.38,14.75 13.27,16.93 10.18,16.93 C9.18,16.93 8.17,16.69 7.46,16.39 L6.52,17 L6,17 L6,13.02 L6,13.02 Z"></path><rect x="3" y="10" width="15" height="1"></rect></svg>',table:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="1" y="3" width="18" height="1"></rect><rect x="1" y="7" width="18" height="1"></rect><rect x="1" y="11" width="18" height="1"></rect><rect x="1" y="15" width="18" height="1"></rect></svg>',tablet:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" d="M5,18.5 C4.2,18.5 3.5,17.8 3.5,17 L3.5,3 C3.5,2.2 4.2,1.5 5,1.5 L16,1.5 C16.8,1.5 17.5,2.2 17.5,3 L17.5,17 C17.5,17.8 16.8,18.5 16,18.5 L5,18.5 L5,18.5 L5,18.5 Z"></path><circle cx="10.5" cy="16.3" r="0.8"></circle></svg>',tag:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.1" d="M17.5,3.71 L17.5,7.72 C17.5,7.96 17.4,8.2 17.21,8.39 L8.39,17.2 C7.99,17.6 7.33,17.6 6.93,17.2 L2.8,13.07 C2.4,12.67 2.4,12.01 2.8,11.61 L11.61,2.8 C11.81,2.6 12.08,2.5 12.34,2.5 L16.19,2.5 C16.52,2.5 16.86,2.63 17.11,2.88 C17.35,3.11 17.48,3.4 17.5,3.71 L17.5,3.71 Z"></path><circle cx="14" cy="6" r="1"></circle></svg>',thumbnails:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect fill="none" stroke="#000" x="3.5" y="3.5" width="5" height="5"></rect><rect fill="none" stroke="#000" x="11.5" y="3.5" width="5" height="5"></rect><rect fill="none" stroke="#000" x="11.5" y="11.5" width="5" height="5"></rect><rect fill="none" stroke="#000" x="3.5" y="11.5" width="5" height="5"></rect></svg>',trash:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" points="6.5 3 6.5 1.5 13.5 1.5 13.5 3"></polyline><polyline fill="none" stroke="#000" points="4.5 4 4.5 18.5 15.5 18.5 15.5 4"></polyline><rect x="8" y="7" width="1" height="9"></rect><rect x="11" y="7" width="1" height="9"></rect><rect x="2" y="3" width="16" height="1"></rect></svg>',tripadvisor:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M19.021,7.866C19.256,6.862,20,5.854,20,5.854h-3.346C14.781,4.641,12.504,4,9.98,4C7.363,4,4.999,4.651,3.135,5.876H0\tc0,0,0.738,0.987,0.976,1.988c-0.611,0.837-0.973,1.852-0.973,2.964c0,2.763,2.249,5.009,5.011,5.009\tc1.576,0,2.976-0.737,3.901-1.879l1.063,1.599l1.075-1.615c0.475,0.611,1.1,1.111,1.838,1.451c1.213,0.547,2.574,0.612,3.825,0.15\tc2.589-0.963,3.913-3.852,2.964-6.439c-0.175-0.463-0.4-0.876-0.675-1.238H19.021z M16.38,14.594\tc-1.002,0.371-2.088,0.328-3.06-0.119c-0.688-0.317-1.252-0.817-1.657-1.438c-0.164-0.25-0.313-0.52-0.417-0.811\tc-0.124-0.328-0.186-0.668-0.217-1.014c-0.063-0.689,0.037-1.396,0.339-2.043c0.448-0.971,1.251-1.71,2.25-2.079\tc2.075-0.765,4.375,0.3,5.14,2.366c0.762,2.066-0.301,4.37-2.363,5.134L16.38,14.594L16.38,14.594z M8.322,13.066\tc-0.72,1.059-1.935,1.76-3.309,1.76c-2.207,0-4.001-1.797-4.001-3.996c0-2.203,1.795-4.002,4.001-4.002\tc2.204,0,3.999,1.8,3.999,4.002c0,0.137-0.024,0.261-0.04,0.396c-0.067,0.678-0.284,1.313-0.648,1.853v-0.013H8.322z M2.472,10.775\tc0,1.367,1.112,2.479,2.476,2.479c1.363,0,2.472-1.11,2.472-2.479c0-1.359-1.11-2.468-2.472-2.468\tC3.584,8.306,2.473,9.416,2.472,10.775L2.472,10.775z M12.514,10.775c0,1.367,1.104,2.479,2.471,2.479\tc1.363,0,2.474-1.108,2.474-2.479c0-1.359-1.11-2.468-2.474-2.468c-1.364,0-2.477,1.109-2.477,2.468H12.514z M3.324,10.775\tc0-0.893,0.726-1.618,1.614-1.618c0.889,0,1.625,0.727,1.625,1.618c0,0.898-0.725,1.627-1.625,1.627\tc-0.901,0-1.625-0.729-1.625-1.627H3.324z M13.354,10.775c0-0.893,0.726-1.618,1.627-1.618c0.886,0,1.61,0.727,1.61,1.618\tc0,0.898-0.726,1.627-1.626,1.627s-1.625-0.729-1.625-1.627H13.354z M9.977,4.875c1.798,0,3.425,0.324,4.849,0.968\tc-0.535,0.015-1.061,0.108-1.586,0.3c-1.264,0.463-2.264,1.388-2.815,2.604c-0.262,0.551-0.398,1.133-0.448,1.72\tC9.79,7.905,7.677,5.873,5.076,5.82C6.501,5.208,8.153,4.875,9.94,4.875H9.977z"></path></svg>',tumblr:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M6.885,8.598c0,0,0,3.393,0,4.996c0,0.282,0,0.66,0.094,0.942c0.377,1.509,1.131,2.545,2.545,3.11 c1.319,0.472,2.356,0.472,3.676,0c0.565-0.188,1.132-0.659,1.132-0.659l-0.849-2.263c0,0-1.036,0.378-1.603,0.283 c-0.565-0.094-1.226-0.66-1.226-1.508c0-1.603,0-4.902,0-4.902h2.828V5.771h-2.828V2H8.205c0,0-0.094,0.66-0.188,0.942 C7.828,3.791,7.262,4.733,6.603,5.394C5.848,6.147,5,6.43,5,6.43v2.168H6.885z"></path></svg>',tv:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="7" y="16" width="6" height="1"></rect><rect fill="none" stroke="#000" x="0.5" y="3.5" width="19" height="11"></rect></svg>',twitter:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M19,4.74 C18.339,5.029 17.626,5.229 16.881,5.32 C17.644,4.86 18.227,4.139 18.503,3.28 C17.79,3.7 17.001,4.009 16.159,4.17 C15.485,3.45 14.526,3 13.464,3 C11.423,3 9.771,4.66 9.771,6.7 C9.771,6.99 9.804,7.269 9.868,7.539 C6.795,7.38 4.076,5.919 2.254,3.679 C1.936,4.219 1.754,4.86 1.754,5.539 C1.754,6.82 2.405,7.95 3.397,8.61 C2.79,8.589 2.22,8.429 1.723,8.149 L1.723,8.189 C1.723,9.978 2.997,11.478 4.686,11.82 C4.376,11.899 4.049,11.939 3.713,11.939 C3.475,11.939 3.245,11.919 3.018,11.88 C3.49,13.349 4.852,14.419 6.469,14.449 C5.205,15.429 3.612,16.019 1.882,16.019 C1.583,16.019 1.29,16.009 1,15.969 C2.635,17.019 4.576,17.629 6.662,17.629 C13.454,17.629 17.17,12 17.17,7.129 C17.17,6.969 17.166,6.809 17.157,6.649 C17.879,6.129 18.504,5.478 19,4.74"></path></svg>',uikit:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="14.4,3.1 11.3,5.1 15,7.3 15,12.9 10,15.7 5,12.9 5,8.5 2,6.8 2,14.8 9.9,19.5 18,14.8 18,5.3"></polygon><polygon points="9.8,4.2 6.7,2.4 9.8,0.4 12.9,2.3"></polygon></svg>',unlock:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect fill="none" stroke="#000" x="3.5" y="8.5" width="13" height="10"></rect><path fill="none" stroke="#000" d="M6.5,8.5 L6.5,4.9 C6.5,3 8.1,1.5 10,1.5 C11.9,1.5 13.5,3 13.5,4.9"></path></svg>',upload:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" points="5 8 9.5 3.5 14 8 "></polyline><rect x="3" y="17" width="13" height="1"></rect><line fill="none" stroke="#000" x1="9.5" y1="15" x2="9.5" y2="4"></line></svg>',user:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9.9" cy="6.4" r="4.4"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M1.5,19 C2.3,14.5 5.8,11.2 10,11.2 C14.2,11.2 17.7,14.6 18.5,19.2"></path></svg>',users:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="7.7" cy="8.6" r="3.5"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M1,18.1 C1.7,14.6 4.4,12.1 7.6,12.1 C10.9,12.1 13.7,14.8 14.3,18.3"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M11.4,4 C12.8,2.4 15.4,2.8 16.3,4.7 C17.2,6.6 15.7,8.9 13.6,8.9 C16.5,8.9 18.8,11.3 19.2,14.1"></path></svg>',vimeo:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M2.065,7.59C1.84,7.367,1.654,7.082,1.468,6.838c-0.332-0.42-0.137-0.411,0.274-0.772c1.026-0.91,2.004-1.896,3.127-2.688 c1.017-0.713,2.365-1.173,3.286-0.039c0.849,1.045,0.869,2.629,1.084,3.891c0.215,1.309,0.421,2.648,0.88,3.901 c0.127,0.352,0.37,1.018,0.81,1.074c0.567,0.078,1.145-0.917,1.408-1.289c0.684-0.987,1.611-2.317,1.494-3.587 c-0.115-1.349-1.572-1.095-2.482-0.773c0.146-1.514,1.555-3.216,2.912-3.792c1.439-0.597,3.579-0.587,4.302,1.036 c0.772,1.759,0.078,3.802-0.763,5.396c-0.918,1.731-2.1,3.333-3.363,4.829c-1.114,1.329-2.432,2.787-4.093,3.422 c-1.897,0.723-3.021-0.686-3.667-2.318c-0.705-1.777-1.056-3.771-1.565-5.621C4.898,8.726,4.644,7.836,4.136,7.191 C3.473,6.358,2.72,7.141,2.065,7.59C1.977,7.502,2.115,7.551,2.065,7.59L2.065,7.59z"></path></svg>',warning:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg>',whatsapp:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M16.7,3.3c-1.8-1.8-4.1-2.8-6.7-2.8c-5.2,0-9.4,4.2-9.4,9.4c0,1.7,0.4,3.3,1.3,4.7l-1.3,4.9l5-1.3c1.4,0.8,2.9,1.2,4.5,1.2 l0,0l0,0c5.2,0,9.4-4.2,9.4-9.4C19.5,7.4,18.5,5,16.7,3.3 M10.1,17.7L10.1,17.7c-1.4,0-2.8-0.4-4-1.1l-0.3-0.2l-3,0.8l0.8-2.9 l-0.2-0.3c-0.8-1.2-1.2-2.7-1.2-4.2c0-4.3,3.5-7.8,7.8-7.8c2.1,0,4.1,0.8,5.5,2.3c1.5,1.5,2.3,3.4,2.3,5.5 C17.9,14.2,14.4,17.7,10.1,17.7 M14.4,11.9c-0.2-0.1-1.4-0.7-1.6-0.8c-0.2-0.1-0.4-0.1-0.5,0.1c-0.2,0.2-0.6,0.8-0.8,0.9 c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-1-0.4-1.9-1.2c-0.7-0.6-1.2-1.4-1.3-1.6c-0.1-0.2,0-0.4,0.1-0.5C8,8.8,8.1,8.7,8.2,8.5 c0.1-0.1,0.2-0.2,0.2-0.4c0.1-0.2,0-0.3,0-0.4C8.4,7.6,7.9,6.5,7.7,6C7.5,5.5,7.3,5.6,7.2,5.6c-0.1,0-0.3,0-0.4,0 c-0.2,0-0.4,0.1-0.6,0.3c-0.2,0.2-0.8,0.8-0.8,2c0,1.2,0.8,2.3,1,2.4c0.1,0.2,1.7,2.5,4,3.5c0.6,0.2,1,0.4,1.3,0.5 c0.6,0.2,1.1,0.2,1.5,0.1c0.5-0.1,1.4-0.6,1.6-1.1c0.2-0.5,0.2-1,0.1-1.1C14.8,12.1,14.6,12,14.4,11.9"></path></svg>',wordpress:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10,0.5c-5.2,0-9.5,4.3-9.5,9.5s4.3,9.5,9.5,9.5c5.2,0,9.5-4.3,9.5-9.5S15.2,0.5,10,0.5L10,0.5L10,0.5z M15.6,3.9h-0.1 c-0.8,0-1.4,0.7-1.4,1.5c0,0.7,0.4,1.3,0.8,1.9c0.3,0.6,0.7,1.3,0.7,2.3c0,0.7-0.3,1.5-0.6,2.7L14.1,15l-3-8.9 c0.5,0,0.9-0.1,0.9-0.1C12.5,6,12.5,5.3,12,5.4c0,0-1.3,0.1-2.2,0.1C9,5.5,7.7,5.4,7.7,5.4C7.2,5.3,7.2,6,7.6,6c0,0,0.4,0.1,0.9,0.1 l1.3,3.5L8,15L5,6.1C5.5,6.1,5.9,6,5.9,6C6.4,6,6.3,5.3,5.9,5.4c0,0-1.3,0.1-2.2,0.1c-0.2,0-0.3,0-0.5,0c1.5-2.2,4-3.7,6.9-3.7 C12.2,1.7,14.1,2.6,15.6,3.9L15.6,3.9L15.6,3.9z M2.5,6.6l3.9,10.8c-2.7-1.3-4.6-4.2-4.6-7.4C1.8,8.8,2,7.6,2.5,6.6L2.5,6.6L2.5,6.6 z M10.2,10.7l2.5,6.9c0,0,0,0.1,0.1,0.1C11.9,18,11,18.2,10,18.2c-0.8,0-1.6-0.1-2.3-0.3L10.2,10.7L10.2,10.7L10.2,10.7z M14.2,17.1 l2.5-7.3c0.5-1.2,0.6-2.1,0.6-2.9c0-0.3,0-0.6-0.1-0.8c0.6,1.2,1,2.5,1,4C18.3,13,16.6,15.7,14.2,17.1L14.2,17.1L14.2,17.1z"></path></svg>',world:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" d="M1,10.5 L19,10.5"></path><path fill="none" stroke="#000" d="M2.35,15.5 L17.65,15.5"></path><path fill="none" stroke="#000" d="M2.35,5.5 L17.523,5.5"></path><path fill="none" stroke="#000" d="M10,19.46 L9.98,19.46 C7.31,17.33 5.61,14.141 5.61,10.58 C5.61,7.02 7.33,3.83 10,1.7 C10.01,1.7 9.99,1.7 10,1.7 L10,1.7 C12.67,3.83 14.4,7.02 14.4,10.58 C14.4,14.141 12.67,17.33 10,19.46 L10,19.46 L10,19.46 L10,19.46 Z"></path><circle fill="none" stroke="#000" cx="10" cy="10.5" r="9"></circle></svg>',xing:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M4.4,4.56 C4.24,4.56 4.11,4.61 4.05,4.72 C3.98,4.83 3.99,4.97 4.07,5.12 L5.82,8.16 L5.82,8.17 L3.06,13.04 C2.99,13.18 2.99,13.33 3.06,13.44 C3.12,13.55 3.24,13.62 3.4,13.62 L6,13.62 C6.39,13.62 6.57,13.36 6.71,13.12 C6.71,13.12 9.41,8.35 9.51,8.16 C9.49,8.14 7.72,5.04 7.72,5.04 C7.58,4.81 7.39,4.56 6.99,4.56 L4.4,4.56 L4.4,4.56 Z"></path><path d="M15.3,1 C14.91,1 14.74,1.25 14.6,1.5 C14.6,1.5 9.01,11.42 8.82,11.74 C8.83,11.76 12.51,18.51 12.51,18.51 C12.64,18.74 12.84,19 13.23,19 L15.82,19 C15.98,19 16.1,18.94 16.16,18.83 C16.23,18.72 16.23,18.57 16.16,18.43 L12.5,11.74 L12.5,11.72 L18.25,1.56 C18.32,1.42 18.32,1.27 18.25,1.16 C18.21,1.06 18.08,1 17.93,1 L15.3,1 L15.3,1 Z"></path></svg>',yelp:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17.175,14.971c-0.112,0.77-1.686,2.767-2.406,3.054c-0.246,0.1-0.487,0.076-0.675-0.069\tc-0.122-0.096-2.446-3.859-2.446-3.859c-0.194-0.293-0.157-0.682,0.083-0.978c0.234-0.284,0.581-0.393,0.881-0.276\tc0.016,0.01,4.21,1.394,4.332,1.482c0.178,0.148,0.263,0.379,0.225,0.646L17.175,14.971L17.175,14.971z M11.464,10.789\tc-0.203-0.307-0.199-0.666,0.009-0.916c0,0,2.625-3.574,2.745-3.657c0.203-0.135,0.452-0.141,0.69-0.025\tc0.691,0.335,2.085,2.405,2.167,3.199v0.027c0.024,0.271-0.082,0.491-0.273,0.623c-0.132,0.083-4.43,1.155-4.43,1.155\tc-0.322,0.096-0.68-0.06-0.882-0.381L11.464,10.789z M9.475,9.563C9.32,9.609,8.848,9.757,8.269,8.817c0,0-3.916-6.16-4.007-6.351\tc-0.057-0.212,0.011-0.455,0.202-0.65C5.047,1.211,8.21,0.327,9.037,0.529c0.27,0.069,0.457,0.238,0.522,0.479\tc0.047,0.266,0.433,5.982,0.488,7.264C10.098,9.368,9.629,9.517,9.475,9.563z M9.927,19.066c-0.083,0.225-0.273,0.373-0.54,0.421\tc-0.762,0.13-3.15-0.751-3.647-1.342c-0.096-0.131-0.155-0.262-0.167-0.394c-0.011-0.095,0-0.189,0.036-0.272\tc0.061-0.155,2.917-3.538,2.917-3.538c0.214-0.272,0.595-0.355,0.952-0.213c0.345,0.13,0.56,0.428,0.536,0.749\tC10.014,14.479,9.977,18.923,9.927,19.066z M3.495,13.912c-0.235-0.009-0.444-0.148-0.568-0.382c-0.089-0.17-0.151-0.453-0.19-0.794\tC2.63,11.701,2.761,10.144,3.07,9.648c0.145-0.226,0.357-0.345,0.592-0.336c0.154,0,4.255,1.667,4.255,1.667\tc0.321,0.118,0.521,0.453,0.5,0.833c-0.023,0.37-0.236,0.655-0.551,0.738L3.495,13.912z"></path></svg>',youtube:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M15,4.1c1,0.1,2.3,0,3,0.8c0.8,0.8,0.9,2.1,0.9,3.1C19,9.2,19,10.9,19,12c-0.1,1.1,0,2.4-0.5,3.4c-0.5,1.1-1.4,1.5-2.5,1.6 c-1.2,0.1-8.6,0.1-11,0c-1.1-0.1-2.4-0.1-3.2-1c-0.7-0.8-0.7-2-0.8-3C1,11.8,1,10.1,1,8.9c0-1.1,0-2.4,0.5-3.4C2,4.5,3,4.3,4.1,4.2 C5.3,4.1,12.6,4,15,4.1z M8,7.5v6l5.5-3L8,7.5z"></path></svg>',totop:'<svg width="15" height="22" viewBox="0 0 15 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#0000" stroke-width="1.1" points="1,8 7.5,1.5 14,8 "></polyline><rect fill="000" x="7" y="2" width="1" height="20"></rect></svg>',"arrow-down":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="10.5,16.08 5.63,10.66 6.37,10 10.5,14.58 14.63,10 15.37,10.66"></polygon><line fill="none" stroke="#000" x1="10.5" y1="4" x2="10.5" y2="15"></line></svg>',"arrow-left":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" points="10 14 5 9.5 10 5"></polyline><line fill="none" stroke="#000" x1="16" y1="9.5" x2="5" y2="9.52"></line></svg>',"arrow-right":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" points="10 5 15 9.5 10 14"></polyline><line fill="none" stroke="#000" x1="4" y1="9.5" x2="15" y2="9.5"></line></svg>',"arrow-up":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="10.5,4 15.37,9.4 14.63,10.08 10.5,5.49 6.37,10.08 5.63,9.4"></polygon><line fill="none" stroke="#000" x1="10.5" y1="16" x2="10.5" y2="5"></line></svg>',"chevron-down":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.03" points="16 7 10 13 4 7"></polyline></svg>',"chevron-left":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.03" points="13 16 7 10 13 4"></polyline></svg>',"chevron-right":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.03" points="7 4 13 10 7 16"></polyline></svg>',"chevron-up":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.03" points="4 13 10 7 16 13"></polyline></svg>',"cloud-download":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.1" d="M6.5,14.61 L3.75,14.61 C1.96,14.61 0.5,13.17 0.5,11.39 C0.5,9.76 1.72,8.41 3.3,8.2 C3.38,5.31 5.75,3 8.68,3 C11.19,3 13.31,4.71 13.89,7.02 C14.39,6.8 14.93,6.68 15.5,6.68 C17.71,6.68 19.5,8.45 19.5,10.64 C19.5,12.83 17.71,14.6 15.5,14.6 L12.5,14.6"></path><polyline fill="none" stroke="#000" points="11.75 16 9.5 18.25 7.25 16"></polyline><path fill="none" stroke="#000" d="M9.5,18 L9.5,9.5"></path></svg>',"cloud-upload":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-width="1.1" d="M6.5,14.61 L3.75,14.61 C1.96,14.61 0.5,13.17 0.5,11.39 C0.5,9.76 1.72,8.41 3.31,8.2 C3.38,5.31 5.75,3 8.68,3 C11.19,3 13.31,4.71 13.89,7.02 C14.39,6.8 14.93,6.68 15.5,6.68 C17.71,6.68 19.5,8.45 19.5,10.64 C19.5,12.83 17.71,14.6 15.5,14.6 L12.5,14.6"></path><polyline fill="none" stroke="#000" points="7.25 11.75 9.5 9.5 11.75 11.75"></polyline><path fill="none" stroke="#000" d="M9.5,18 L9.5,9.5"></path></svg>',"credit-card":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect fill="none" stroke="#000" x="1.5" y="4.5" width="17" height="12"></rect><rect x="1" y="7" width="18" height="3"></rect></svg>',"file-edit":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" d="M18.65,1.68 C18.41,1.45 18.109,1.33 17.81,1.33 C17.499,1.33 17.209,1.45 16.98,1.68 L8.92,9.76 L8,12.33 L10.55,11.41 L18.651,3.34 C19.12,2.87 19.12,2.15 18.65,1.68 L18.65,1.68 L18.65,1.68 Z"></path><polyline fill="none" stroke="#000" points="16.5 8.482 16.5 18.5 3.5 18.5 3.5 1.5 14.211 1.5"></polyline></svg>',"git-branch":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.2" cx="7" cy="3" r="2"></circle><circle fill="none" stroke="#000" stroke-width="1.2" cx="14" cy="6" r="2"></circle><circle fill="none" stroke="#000" stroke-width="1.2" cx="7" cy="17" r="2"></circle><path fill="none" stroke="#000" stroke-width="2" d="M14,8 C14,10.41 12.43,10.87 10.56,11.25 C9.09,11.54 7,12.06 7,15 L7,5"></path></svg>',"git-fork":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.2" cx="5.79" cy="2.79" r="1.79"></circle><circle fill="none" stroke="#000" stroke-width="1.2" cx="14.19" cy="2.79" r="1.79"></circle><ellipse fill="none" stroke="#000" stroke-width="1.2" cx="10.03" cy="16.79" rx="1.79" ry="1.79"></ellipse><path fill="none" stroke="#000" stroke-width="2" d="M5.79,4.57 L5.79,6.56 C5.79,9.19 10.03,10.22 10.03,13.31 C10.03,14.86 10.04,14.55 10.04,14.55 C10.04,14.37 10.04,14.86 10.04,13.31 C10.04,10.22 14.2,9.19 14.2,6.56 L14.2,4.57"></path></svg>',"github-alt":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10,0.5 C4.75,0.5 0.5,4.76 0.5,10.01 C0.5,15.26 4.75,19.51 10,19.51 C15.24,19.51 19.5,15.26 19.5,10.01 C19.5,4.76 15.25,0.5 10,0.5 L10,0.5 Z M12.81,17.69 C12.81,17.69 12.81,17.7 12.79,17.69 C12.47,17.75 12.35,17.59 12.35,17.36 L12.35,16.17 C12.35,15.45 12.09,14.92 11.58,14.56 C12.2,14.51 12.77,14.39 13.26,14.21 C13.87,13.98 14.36,13.69 14.74,13.29 C15.42,12.59 15.76,11.55 15.76,10.17 C15.76,9.25 15.45,8.46 14.83,7.8 C15.1,7.08 15.07,6.29 14.75,5.44 L14.51,5.42 C14.34,5.4 14.06,5.46 13.67,5.61 C13.25,5.78 12.79,6.03 12.31,6.35 C11.55,6.16 10.81,6.05 10.09,6.05 C9.36,6.05 8.61,6.15 7.88,6.35 C7.28,5.96 6.75,5.68 6.26,5.54 C6.07,5.47 5.9,5.44 5.78,5.44 L5.42,5.44 C5.06,6.29 5.04,7.08 5.32,7.8 C4.7,8.46 4.4,9.25 4.4,10.17 C4.4,11.94 4.96,13.16 6.08,13.84 C6.53,14.13 7.05,14.32 7.69,14.43 C8.03,14.5 8.32,14.54 8.55,14.55 C8.07,14.89 7.82,15.42 7.82,16.16 L7.82,17.51 C7.8,17.69 7.7,17.8 7.51,17.8 C4.21,16.74 1.82,13.65 1.82,10.01 C1.82,5.5 5.49,1.83 10,1.83 C14.5,1.83 18.17,5.5 18.17,10.01 C18.18,13.53 15.94,16.54 12.81,17.69 L12.81,17.69 Z"></path></svg>',"google-plus":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M12.9,9c0,2.7-0.6,5-3.2,6.3c-3.7,1.8-8.1,0.2-9.4-3.6C-1.1,7.6,1.9,3.3,6.1,3c1.7-0.1,3.2,0.3,4.6,1.3 c0.1,0.1,0.3,0.2,0.4,0.4c-0.5,0.5-1.2,1-1.7,1.6c-1-0.8-2.1-1.1-3.5-0.9C5,5.6,4.2,6,3.6,6.7c-1.3,1.3-1.5,3.4-0.5,5 c1,1.7,2.6,2.3,4.6,1.9c1.4-0.3,2.4-1.2,2.6-2.6H6.9V9H12.9z"></path><polygon points="20,9 20,11 18,11 18,13 16,13 16,11 14,11 14,9 16,9 16,7 18,7 18,9 "></polygon></svg>',"minus-circle":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9.5" cy="9.5" r="9"></circle><line fill="none" stroke="#000" x1="5" y1="9.5" x2="14" y2="9.5"></line></svg>',"more-vertical":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="10" cy="3" r="2"></circle><circle cx="10" cy="10" r="2"></circle><circle cx="10" cy="17" r="2"></circle></svg>',"paint-bucket":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10.21,1 L0,11.21 L8.1,19.31 L18.31,9.1 L10.21,1 L10.21,1 Z M16.89,9.1 L15,11 L1.7,11 L10.21,2.42 L16.89,9.1 Z"></path><path fill="none" stroke="#000" stroke-width="1.1" d="M6.42,2.33 L11.7,7.61"></path><path d="M18.49,12 C18.49,12 20,14.06 20,15.36 C20,16.28 19.24,17 18.49,17 L18.49,17 C17.74,17 17,16.28 17,15.36 C17,14.06 18.49,12 18.49,12 L18.49,12 Z"></path></svg>',"phone-landscape":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" d="M17,5.5 C17.8,5.5 18.5,6.2 18.5,7 L18.5,14 C18.5,14.8 17.8,15.5 17,15.5 L3,15.5 C2.2,15.5 1.5,14.8 1.5,14 L1.5,7 C1.5,6.2 2.2,5.5 3,5.5 L17,5.5 L17,5.5 L17,5.5 Z"></path><circle cx="3.8" cy="10.5" r="0.8"></circle></svg>',"play-circle":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon fill="none" stroke="#000" stroke-width="1.1" points="8.5 7 13.5 10 8.5 13"></polygon><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>',"plus-circle":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9.5" cy="9.5" r="9"></circle><line fill="none" stroke="#000" x1="9.5" y1="5" x2="9.5" y2="14"></line><line fill="none" stroke="#000" x1="5" y1="9.5" x2="14" y2="9.5"></line></svg>',"quote-right":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M17.27,7.79 C17.27,9.45 16.97,10.43 15.99,12.02 C14.98,13.64 13,15.23 11.56,15.97 L11.1,15.08 C12.34,14.2 13.14,13.51 14.02,11.82 C14.27,11.34 14.41,10.92 14.49,10.54 C14.3,10.58 14.09,10.6 13.88,10.6 C12.06,10.6 10.59,9.12 10.59,7.3 C10.59,5.48 12.06,4 13.88,4 C15.39,4 16.67,5.02 17.05,6.42 C17.19,6.82 17.27,7.27 17.27,7.79 L17.27,7.79 Z"></path><path d="M8.68,7.79 C8.68,9.45 8.38,10.43 7.4,12.02 C6.39,13.64 4.41,15.23 2.97,15.97 L2.51,15.08 C3.75,14.2 4.55,13.51 5.43,11.82 C5.68,11.34 5.82,10.92 5.9,10.54 C5.71,10.58 5.5,10.6 5.29,10.6 C3.47,10.6 2,9.12 2,7.3 C2,5.48 3.47,4 5.29,4 C6.8,4 8.08,5.02 8.46,6.42 C8.6,6.82 8.68,7.27 8.68,7.79 L8.68,7.79 Z"></path></svg>',"sign-in":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="7 2 17 2 17 17 7 17 7 16 16 16 16 3 7 3"></polygon><polygon points="9.1 13.4 8.5 12.8 11.28 10 4 10 4 9 11.28 9 8.5 6.2 9.1 5.62 13 9.5"></polygon></svg>',"sign-out":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="13.1 13.4 12.5 12.8 15.28 10 8 10 8 9 15.28 9 12.5 6.2 13.1 5.62 17 9.5"></polygon><polygon points="13 2 3 2 3 17 13 17 13 16 4 16 4 3 13 3"></polygon></svg>',"tablet-landscape":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" d="M1.5,5 C1.5,4.2 2.2,3.5 3,3.5 L17,3.5 C17.8,3.5 18.5,4.2 18.5,5 L18.5,16 C18.5,16.8 17.8,17.5 17,17.5 L3,17.5 C2.2,17.5 1.5,16.8 1.5,16 L1.5,5 L1.5,5 L1.5,5 Z"></path><circle cx="3.7" cy="10.5" r="0.8"></circle></svg>',"triangle-down":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="5 7 15 7 10 12"></polygon></svg>',"triangle-left":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="12 5 7 10 12 15"></polygon></svg>',"triangle-right":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="8 5 13 10 8 15"></polygon></svg>',"triangle-up":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="5 13 10 8 15 13"></polygon></svg>',"video-camera":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><polygon points="18,6 18,14 12,10 "></polygon><rect x="2" y="5" width="12" height="10"></rect></svg>'};return"undefined"!=typeof window&&window.UIkit&&window.UIkit.use(t),t}); |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/assets/monitor-custom.css | ||
---|---|---|
1 |
@import "fonts/fonts.css"; |
|
2 |
|
|
1 | 3 |
:root { |
2 | 4 |
--portal-main-color: #9ABB55; |
3 | 5 |
--portal-main-contrast: white; |
... | ... | |
20 | 22 |
--sidebar-width: 320px; |
21 | 23 |
--sidebar-font-size: 16px; |
22 | 24 |
--header-height: 70px; |
23 |
--list-card-max-width: 1220px; |
|
24 | 25 |
} |
25 | 26 |
|
26 | 27 |
.refresh-iframe { |
modules/uoa-monitor-portal/trunk/monitor_dashboard/angular.json | ||
---|---|---|
22 | 22 |
], |
23 | 23 |
"styles": [ |
24 | 24 |
"src/styles.css", |
25 |
"src/material.scss", |
|
25 | 26 |
"node_modules/datatables.net-dt/css/jquery.dataTables.css" |
26 | 27 |
], |
27 | 28 |
"scripts": [ |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/services/stakeholder.service.ts | ||
---|---|---|
71 | 71 |
return this.http.delete<any>(url + '/' + path.join('/') + '/delete'); |
72 | 72 |
} |
73 | 73 |
|
74 |
reorderIndicators(url: string, path: string[], indicators: Indicator[], type: string = 'chart'): Observable<boolean> {
|
|
74 |
reorderIndicators(url: string, path: string[], indicatorIds: string[], type: string = 'chart'): Observable<Indicator[]> {
|
|
75 | 75 |
path = HelperFunctions.encodeArray(path); |
76 |
return this.http.post<boolean>(url + '/' + path.join('/') + '/' + type + '/reorder', indicators); |
|
76 |
return this.http.post<Indicator[]>(url + '/' + path.join('/') + '/' + type + '/reorder', indicatorIds).pipe(map(indicators => { |
|
77 |
return this.formalize(indicators); |
|
78 |
})); |
|
77 | 79 |
} |
78 | 80 |
|
79 | 81 |
getStakeholderAsObservable(): Observable<Stakeholder> { |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/app.component.html | ||
---|---|---|
1 | 1 |
<!--disable_transitions --> |
2 | 2 |
<div class="sidebar_main_swipe" [class.sidebar_main_active]="open && hasSidebar"> |
3 | 3 |
<div id="header_main"[class.header_full]="!hasSidebar"> |
4 |
<nav class="uk-light">
|
|
4 |
<div class="uk-light">
|
|
5 | 5 |
<a *ngIf="hasSidebar" id="sidebar_main_toggle" (click)="toggleOpen()" class="sSwitch sSwitch_left"> |
6 | 6 |
<span class="sSwitchIcon"></span> |
7 | 7 |
</a> |
8 |
</nav>
|
|
8 |
</div>
|
|
9 | 9 |
</div> |
10 | 10 |
<router-outlet></router-outlet> |
11 | 11 |
</div> |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/home/home.module.ts | ||
---|---|---|
9 | 9 |
import {HomeRoutingModule} from "./home-routing.module"; |
10 | 10 |
import {ModalModule} from "../openaireLibrary/utils/modal/modal.module"; |
11 | 11 |
import {RouterModule} from "@angular/router"; |
12 |
import {FormsModule} from "@angular/forms"; |
|
12 |
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
|
|
13 | 13 |
import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module"; |
14 | 14 |
|
15 | 15 |
@NgModule({ |
16 | 16 |
imports: [ |
17 |
CommonModule, HomeRoutingModule, ModalModule, RouterModule, FormsModule, AlertModalModule |
|
17 |
CommonModule, HomeRoutingModule, ModalModule, RouterModule, FormsModule, AlertModalModule, ReactiveFormsModule
|
|
18 | 18 |
], |
19 | 19 |
declarations: [ |
20 | 20 |
HomeComponent |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/home/home.component.html | ||
---|---|---|
31 | 31 |
</a> |
32 | 32 |
<div uk-drop="mode: none; offset: -2; delay-hide: 0;" #editTopic |
33 | 33 |
class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop"> |
34 |
<div *ngIf="copyTopic">
|
|
34 |
<div *ngIf="topicFb">
|
|
35 | 35 |
<div class="md-card"> |
36 | 36 |
<div class="md-card-content uk-position-relative"> |
37 | 37 |
<a class="uk-position-top-right"> |
38 | 38 |
<i (click)="hide(editTopic)" class="material-icons">close</i> |
39 | 39 |
</a> |
40 |
<div class="uk-grid-small" uk-grid> |
|
40 |
<div class="uk-grid-small" uk-grid [formGroup]="topicFb">
|
|
41 | 41 |
<div class="uk-width-1-1"> |
42 | 42 |
<label class="uk-text-bold">Topic Settings</label> |
43 |
<input class="uk-input uk-form-small" [(ngModel)]="copyTopic.name"
|
|
44 |
[class.uk-form-danger]="!valid && !copyTopic.name"
|
|
43 |
<input class="uk-input uk-form-small" formControlName="name"
|
|
44 |
[class.uk-form-danger]="topicFb.get('name').dirty && topicFb.get('name').invalid"
|
|
45 | 45 |
type="text"> |
46 | 46 |
</div> |
47 | 47 |
<div class="uk-width-1-1"> |
48 | 48 |
<label>Description</label> |
49 |
<textarea class="uk-textarea" [(ngModel)]="copyTopic.description"
|
|
49 |
<textarea class="uk-textarea" formControlName="description"
|
|
50 | 50 |
rows="3" type="text"></textarea> |
51 | 51 |
</div> |
52 | 52 |
<div class="uk-width-1-2"> |
53 |
<select class="uk-select uk-form-small" [(ngModel)]="copyTopic.isPublic">
|
|
53 |
<select class="uk-select uk-form-small" formControlName="isPublic">
|
|
54 | 54 |
<option [value]="true">Public</option> |
55 | 55 |
<option [value]="false">Private</option> |
56 | 56 |
</select> |
57 | 57 |
</div> |
58 | 58 |
<div class="uk-width-1-2"> |
59 |
<select class="uk-select uk-form-small" [(ngModel)]="copyTopic.isActive">
|
|
59 |
<select class="uk-select uk-form-small" formControlName="isActive">
|
|
60 | 60 |
<option [value]="true">Active</option> |
61 | 61 |
<option [value]="false">Inactive</option> |
62 | 62 |
</select> |
... | ... | |
65 | 65 |
<hr> |
66 | 66 |
<div class="uk-grid-small uk-child-width-1-2" uk-grid> |
67 | 67 |
<div> |
68 |
<button class="md-btn md-btn-small" (click)="deleteTopicOpen(copyTopic.name, editTopic, i)">Delete</button> |
|
68 |
<button class="md-btn md-btn-small" |
|
69 |
(click)="deleteTopicOpen(this.topicFb.value.name, editTopic, i)">Delete</button> |
|
69 | 70 |
</div> |
70 | 71 |
<div> |
71 | 72 |
<button class="md-btn md-btn-small md-btn-primary uk-float-right" |
73 |
[class.md-btn-primary]="topicFb.valid && topicFb.dirty" |
|
74 |
[class.disabled]="topicFb.invalid || !topicFb.dirty" |
|
72 | 75 |
(click)="saveTopic(editTopic, i)">Save |
73 | 76 |
</button> |
74 | 77 |
</div> |
... | ... | |
86 | 89 |
</a> |
87 | 90 |
<div uk-drop="mode: none; offset: -2; delay-hide: 0" #newTopic |
88 | 91 |
class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop"> |
89 |
<div *ngIf="copyTopic">
|
|
92 |
<div *ngIf="topicFb">
|
|
90 | 93 |
<div class="md-card"> |
91 | 94 |
<div class="md-card-content uk-position-relative"> |
92 | 95 |
<a class="uk-position-top-right"> |
93 | 96 |
<i (click)="hide(newTopic)" class="material-icons">close</i> |
94 | 97 |
</a> |
95 |
<div class="uk-grid-small" uk-grid> |
|
98 |
<div class="uk-grid-small" uk-grid [formGroup]="topicFb">
|
|
96 | 99 |
<div class="uk-width-1-1"> |
97 | 100 |
<label class="uk-text-bold">New Topic</label> |
98 |
<input class="uk-input uk-form-small" [(ngModel)]="copyTopic.name"
|
|
99 |
[class.uk-form-danger]="!valid && !copyTopic.name"
|
|
101 |
<input class="uk-input uk-form-small" formControlName="name"
|
|
102 |
[class.uk-form-danger]="topicFb.get('name').dirty && topicFb.get('name').invalid"
|
|
100 | 103 |
type="text"> |
101 | 104 |
</div> |
102 | 105 |
<div class="uk-width-1-1"> |
103 | 106 |
<label>Description</label> |
104 |
<textarea class="uk-textarea" [(ngModel)]="copyTopic.description"
|
|
107 |
<textarea class="uk-textarea" formControlName="description"
|
|
105 | 108 |
rows="3" type="text"></textarea> |
106 | 109 |
</div> |
107 | 110 |
<div class="uk-width-1-2"> |
108 |
<select class="uk-select uk-form-small" [(ngModel)]="copyTopic.isPublic">
|
|
111 |
<select class="uk-select uk-form-small" formControlName="isPublic">
|
|
109 | 112 |
<option [value]="true">Public</option> |
110 | 113 |
<option [value]="false">Private</option> |
111 | 114 |
</select> |
112 | 115 |
</div> |
113 | 116 |
<div class="uk-width-1-2"> |
114 |
<select class="uk-select uk-form-small" [(ngModel)]="copyTopic.isActive">
|
|
117 |
<select class="uk-select uk-form-small" formControlName="isActive">
|
|
115 | 118 |
<option [value]="true">Active</option> |
116 | 119 |
<option [value]="false">Inactive</option> |
117 | 120 |
</select> |
... | ... | |
123 | 126 |
<button class="md-btn md-btn-small" (click)="hide(newTopic)">Cancel</button> |
124 | 127 |
</div> |
125 | 128 |
<div> |
126 |
<button class="md-btn md-btn-small md-btn-primary uk-float-right" (click)="saveTopic(newTopic)"> |
|
129 |
<button class="md-btn md-btn-small uk-float-right" |
|
130 |
[class.md-btn-primary]="topicFb.valid && topicFb.dirty" |
|
131 |
[class.disabled]="topicFb.invalid || !topicFb.dirty" |
|
132 |
(click)="saveTopic(newTopic)"> |
|
127 | 133 |
Create |
128 | 134 |
</button> |
129 | 135 |
</div> |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/home/home.component.ts | ||
---|---|---|
11 | 11 |
import {HelperFunctions} from "../openaireLibrary/utils/HelperFunctions.class"; |
12 | 12 |
import {AlertModal} from "../openaireLibrary/utils/modal/alert"; |
13 | 13 |
import {Subscriber} from "rxjs"; |
14 |
import {FormBuilder, FormGroup, Validators} from "@angular/forms"; |
|
14 | 15 |
|
15 | 16 |
declare var UIkit; |
16 | 17 |
|
... | ... | |
25 | 26 |
public stakeholder: Stakeholder; |
26 | 27 |
public analysisOpen: boolean = true; |
27 | 28 |
private errorMessages: ErrorMessagesComponent; |
28 |
public copyTopic: Topic; |
|
29 |
public valid = true; |
|
29 |
public topicFb: FormGroup; |
|
30 | 30 |
public element: any; |
31 | 31 |
public index: number; |
32 | 32 |
properties: EnvProperties; |
... | ... | |
38 | 38 |
private router: Router, |
39 | 39 |
private title: Title, |
40 | 40 |
private sideBarService: SideBarService, |
41 |
private fb: FormBuilder, |
|
41 | 42 |
private stakeholderService: StakeholderService) { |
42 | 43 |
this.errorCodes = new ErrorCodes(); |
43 | 44 |
this.errorMessages = new ErrorMessagesComponent(); |
... | ... | |
50 | 51 |
this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => { |
51 | 52 |
if (stakeholder) { |
52 | 53 |
this.stakeholder = HelperFunctions.copy(stakeholder); |
53 |
this.copyTopic = null;
|
|
54 |
this.topicFb = null;
|
|
54 | 55 |
this.title.setTitle(stakeholder.index_name); |
55 | 56 |
} |
56 | 57 |
})); |
... | ... | |
70 | 71 |
} |
71 | 72 |
|
72 | 73 |
public hide(element) { |
73 |
this.valid = true; |
|
74 | 74 |
UIkit.drop(element).hide(); |
75 | 75 |
} |
76 | 76 |
|
... | ... | |
86 | 86 |
} |
87 | 87 |
} |
88 | 88 |
|
89 |
private buildTopic(topic: Topic) { |
|
90 |
this.topicFb = this.fb.group({ |
|
91 |
_id: this.fb.control(topic._id), |
|
92 |
name: this.fb.control(topic.name, Validators.required), |
|
93 |
description: this.fb.control(topic.description), |
|
94 |
alias: this.fb.control(topic.alias), |
|
95 |
isActive: this.fb.control(topic.isActive), |
|
96 |
isPublic: this.fb.control(topic.isPublic), |
|
97 |
isDefault: this.fb.control(topic.isDefault), |
|
98 |
categories: this.fb.control(topic.categories) |
|
99 |
}); |
|
100 |
} |
|
101 |
|
|
89 | 102 |
public saveTopicOpen(element, index = -1) { |
90 | 103 |
if (element.className.indexOf('uk-open') !== -1) { |
91 | 104 |
this.hide(element); |
92 | 105 |
} else { |
93 | 106 |
if (index === -1) { |
94 |
this.copyTopic = new Topic(null, null, null, true, true);
|
|
107 |
this.buildTopic(new Topic(null, null, null, true, true, false));
|
|
95 | 108 |
} else { |
96 |
this.copyTopic = HelperFunctions.copy(this.stakeholder.topics[index]);
|
|
109 |
this.buildTopic(this.stakeholder.topics[index]);
|
|
97 | 110 |
} |
98 | 111 |
this.show(element); |
99 | 112 |
} |
100 | 113 |
} |
101 | 114 |
|
102 | 115 |
public saveTopic(element, index = -1) { |
103 |
if (this.copyTopic.name && this.copyTopic.name !== '') {
|
|
104 |
if (!this.copyTopic.alias) {
|
|
105 |
this.copyTopic.alias = this.copyTopic.name.toLowerCase().trim();
|
|
116 |
if (!this.topicFb.invalid) {
|
|
117 |
if (!this.topicFb.value.alias) {
|
|
118 |
this.topicFb.value.alias = this.topicFb.value.name.toLowerCase().trim();
|
|
106 | 119 |
} |
107 | 120 |
if (index === -1) { |
108 | 121 |
this.save('Topic has been successfully created', element); |
109 | 122 |
} else { |
110 | 123 |
this.save('Topic has been successfully saved', element, index); |
111 | 124 |
} |
112 |
} else { |
|
113 |
this.valid = false; |
|
114 | 125 |
} |
115 | 126 |
} |
116 | 127 |
|
... | ... | |
126 | 137 |
|
127 | 138 |
private save(message: string, element, index: number = -1) { |
128 | 139 |
let path = [this.stakeholder._id]; |
129 |
this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.copyTopic, path).subscribe(topic => {
|
|
140 |
this.stakeholderService.saveElement(this.properties.monitorServiceAPIURL, this.topicFb.value, path).subscribe(topic => {
|
|
130 | 141 |
if (index === -1) { |
131 | 142 |
this.stakeholder.topics.push(topic); |
132 | 143 |
} else { |
... | ... | |
135 | 146 |
this.stakeholderService.setStakeholder(this.stakeholder); |
136 | 147 |
UIkit.notification(message, { |
137 | 148 |
status: 'success', |
138 |
timeout: 3000, |
|
149 |
timeout: 3000000,
|
|
139 | 150 |
pos: 'top-left' |
140 | 151 |
}); |
141 | 152 |
this.hide(element); |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/utils/entities/stakeholder.ts | ||
---|---|---|
290 | 290 |
isDefault: boolean; |
291 | 291 |
categories: Category[]; |
292 | 292 |
|
293 |
constructor(name: string, description: string, alias: string, isActive: boolean, isPublic: boolean) { |
|
293 |
constructor(name: string, description: string, alias: string, isActive: boolean, isPublic: boolean, isDefault: boolean = true) {
|
|
294 | 294 |
this._id = null; |
295 | 295 |
this.name = name; |
296 | 296 |
this.description = description; |
297 | 297 |
this.alias = alias; |
298 | 298 |
this.isActive = isActive; |
299 | 299 |
this.isPublic = isPublic; |
300 |
this.isDefault = isDefault; |
|
300 | 301 |
this.categories = []; |
301 | 302 |
} |
302 | 303 |
} |
... | ... | |
312 | 313 |
isDefault: boolean; |
313 | 314 |
subCategories: SubCategory[]; |
314 | 315 |
|
315 |
constructor(name: string, description: string, alias: string, isActive: boolean, isPublic: boolean) { |
|
316 |
constructor(name: string, description: string, alias: string, isActive: boolean, isPublic: boolean, isDefault: boolean = true) {
|
|
316 | 317 |
this._id = null; |
317 | 318 |
this.name = name; |
318 | 319 |
this.description = description; |
319 | 320 |
this.alias = alias; |
320 | 321 |
this.isActive = isActive; |
321 | 322 |
this.isPublic = isPublic; |
323 |
this.isDefault = isDefault; |
|
322 | 324 |
this.subCategories = []; |
323 | 325 |
} |
324 | 326 |
} |
... | ... | |
334 | 336 |
charts: Indicator[]; |
335 | 337 |
numbers: Indicator[]; |
336 | 338 |
|
337 |
constructor(name: string, description: string, alias: string, isActive: boolean, isPublic: boolean) { |
|
339 |
constructor(name: string, description: string, alias: string, isActive: boolean, isPublic: boolean, isDefault: boolean = true) {
|
|
338 | 340 |
this._id = null; |
339 | 341 |
this.name = name; |
340 | 342 |
this.description = description; |
341 | 343 |
this.alias = alias; |
342 | 344 |
this.isActive = isActive; |
343 | 345 |
this.isPublic = isPublic; |
346 |
this.isDefault = isDefault; |
|
344 | 347 |
this.charts = []; |
345 | 348 |
this.numbers = []; |
346 | 349 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/library/sharedComponents/input/input.component.ts | ||
---|---|---|
1 | 1 |
import {Component, Input, OnDestroy, OnInit} from "@angular/core"; |
2 | 2 |
import {Option} from "../../../utils/indicator-utils"; |
3 |
import {AbstractControl, FormControl} from "@angular/forms"; |
|
3 | 4 |
|
4 | 5 |
@Component({ |
5 | 6 |
selector: '[dashboard-input]', |
6 | 7 |
template: ` |
7 |
<div class="md-input-wrapper" |
|
8 |
[class.md-input-filled]="formControl.value !== ''" |
|
9 |
[class.md-input-focus]="formControl.touched" |
|
10 |
[class.md-input-wrapper-danger]="formControl.invalid && formControl.dirty"> |
|
11 |
<label>{{label}}</label> |
|
12 |
<input *ngIf="type === 'text' || type === 'number'" [type]="type" class="md-input" |
|
13 |
focus-directive [formInput]="formControl" |
|
14 |
[formControl]="formControl" |
|
15 |
[class.md-input-danger]="formControl.invalid && formControl.dirty"> |
|
16 |
<textarea *ngIf="type === 'textarea'" type="text" class="md-input no_autosize" |
|
17 |
focus-directive [formInput]="formControl" |
|
18 |
[rows]="rows" [formControl]="formControl"></textarea> |
|
19 |
<span class="md-input-bar"></span> |
|
20 |
<select *ngIf="type === 'select'" class="md-input uk-select" |
|
21 |
focus-directive [formInput]="formControl" |
|
22 |
[formControl]="formControl" |
|
23 |
[class.md-input-danger]="formControl.invalid && formControl.dirty"> |
|
24 |
<option [value]="option.value" *ngFor="let option of options"> |
|
8 |
<mat-form-field class="uk-width-1-1 uk-padding-remove"> |
|
9 |
<input *ngIf="type === 'text'" matInput [placeholder]="label" |
|
10 |
[formControl]="formControl" [required]="required"> |
|
11 |
<textarea *ngIf="type === 'textarea'" [rows]="rows" matInput [placeholder]="label" [formControl]="formControl"></textarea> |
|
12 |
<mat-select *ngIf="type === 'select'" [placeholder]="label" [formControl]="formControl" [disableOptionCentering]="true"> |
|
13 |
<mat-option *ngFor="let option of options" [value]="option.value"> |
|
25 | 14 |
{{option.label}} |
26 |
</option> |
|
27 |
</select> |
|
28 |
</div>` |
|
15 |
</mat-option> |
|
16 |
</mat-select> |
|
17 |
</mat-form-field> |
|
18 |
` |
|
29 | 19 |
}) |
30 | 20 |
export class InputComponent implements OnInit, OnDestroy { |
31 |
@Input('formInput') formControl: any;
|
|
21 |
@Input('formInput') formControl: FormControl;
|
|
32 | 22 |
@Input('type') type: string = 'text'; |
33 | 23 |
@Input('label') label: string; |
34 | 24 |
@Input('rows') rows: number = 3; |
... | ... | |
42 | 32 |
|
43 | 33 |
ngOnDestroy(): void { |
44 | 34 |
} |
35 |
|
|
36 |
public get required(): boolean { |
|
37 |
return this.formControl && this.formControl.validator |
|
38 |
&& this.formControl.validator(this.formControl) |
|
39 |
&& this.formControl.validator(this.formControl).required; |
|
40 |
} |
|
45 | 41 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/library/sharedComponents/input/input.module.ts | ||
---|---|---|
3 | 3 |
import {FocusDirective} from "./focus.directive"; |
4 | 4 |
import {InputComponent} from "./input.component"; |
5 | 5 |
import {SharedModule} from "../../../shared/shared.module"; |
6 |
import {MatFormFieldModule} from "@angular/material/form-field"; |
|
7 |
import {MatInputModule} from "@angular/material/input"; |
|
8 |
import {MatSelectModule} from "@angular/material/select"; |
|
6 | 9 |
|
7 | 10 |
@NgModule({ |
8 | 11 |
imports: [ |
9 | 12 |
CommonModule, |
10 | 13 |
SharedModule, |
14 |
MatFormFieldModule, |
|
15 |
MatInputModule, |
|
16 |
MatSelectModule, |
|
11 | 17 |
], |
12 | 18 |
exports: [ |
13 | 19 |
InputComponent |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/app.component.ts | ||
---|---|---|
19 | 19 |
user: User; |
20 | 20 |
loginCheck: boolean = false; |
21 | 21 |
hasSidebar: boolean = false; |
22 |
public subscriptions: any[] = [];
|
|
22 |
private subscriptions: any[] = [];
|
|
23 | 23 |
|
24 | 24 |
constructor(private route: ActivatedRoute, |
25 | 25 |
private propertiesService: EnvironmentSpecificService, |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/topic/topic.component.html | ||
---|---|---|
21 | 21 |
</a> |
22 | 22 |
<div uk-drop="mode: none; offset: -2; delay-hide: 0;" #editTopic |
23 | 23 |
class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop"> |
24 |
<div *ngIf="topic"> |
|
24 |
<div *ngIf="topicFb">
|
|
25 | 25 |
<div class="md-card"> |
26 | 26 |
<div class="md-card-content uk-position-relative"> |
27 | 27 |
<a class="uk-position-top-right"> |
28 | 28 |
<i (click)="hide(editTopic)" class="material-icons">close</i> |
29 | 29 |
</a> |
30 |
<div class="uk-grid-small" uk-grid> |
|
30 |
<div class="uk-grid-small" uk-grid [formGroup]="topicFb">
|
|
31 | 31 |
<div class="uk-width-1-1"> |
32 | 32 |
<label class="uk-text-bold">Topic Settings</label> |
33 |
<input class="uk-input uk-form-small" [(ngModel)]="topic.name" |
|
34 |
[class.uk-form-danger]="!valid && !topic.name" type="text"> |
|
33 |
<input class="uk-input uk-form-small" formControlName="name" |
|
34 |
[class.uk-form-danger]="topicFb.get('name').dirty && topicFb.get('name').invalid" |
|
35 |
type="text"> |
|
35 | 36 |
</div> |
36 | 37 |
<div class="uk-width-1-1"> |
37 | 38 |
<label>Description</label> |
38 |
<textarea class="uk-textarea" [(ngModel)]="topic.description"
|
|
39 |
<textarea class="uk-textarea" formControlName="description"
|
|
39 | 40 |
rows="3" type="text"></textarea> |
40 | 41 |
</div> |
41 | 42 |
<div class="uk-width-1-2"> |
42 |
<select class="uk-select uk-form-small" [(ngModel)]="topic.isPublic">
|
|
43 |
<select class="uk-select uk-form-small" formControlName="isPublic">
|
|
43 | 44 |
<option [value]="true">Public</option> |
44 | 45 |
<option [value]="false">Private</option> |
45 | 46 |
</select> |
46 | 47 |
</div> |
47 | 48 |
<div class="uk-width-1-2"> |
48 |
<select class="uk-select uk-form-small" [(ngModel)]="topic.isActive">
|
|
49 |
<select class="uk-select uk-form-small" formControlName="isActive">
|
|
49 | 50 |
<option [value]="true">Active</option> |
50 | 51 |
<option [value]="false">Inactive</option> |
51 | 52 |
</select> |
... | ... | |
54 | 55 |
<hr> |
55 | 56 |
<div class="uk-grid-small uk-child-width-1-2" uk-grid> |
56 | 57 |
<div> |
57 |
<button class="md-btn md-btn-small" (click)="deleteTopicOpen(topic.name, editTopic)">Delete</button> |
|
58 |
<button class="md-btn md-btn-small" |
|
59 |
(click)="deleteTopicOpen(topicFb.value.name, editTopic)">Delete</button> |
|
58 | 60 |
</div> |
59 | 61 |
<div> |
60 | 62 |
<button class="md-btn md-btn-small md-btn-primary uk-float-right" |
63 |
[class.md-btn-primary]="topicFb.valid && topicFb.dirty" |
|
64 |
[class.disabled]="topicFb.invalid || !topicFb.dirty" |
|
61 | 65 |
(click)="saveTopic(editTopic)">Save |
62 | 66 |
</button> |
63 | 67 |
</div> |
... | ... | |
85 | 89 |
</a> |
86 | 90 |
<div uk-drop="mode: none; offset: -2; delay-hide: 0;" #editCategory |
87 | 91 |
class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop"> |
88 |
<div *ngIf="copyCategory">
|
|
92 |
<div *ngIf="categoryFb">
|
|
89 | 93 |
<div class="md-card"> |
90 | 94 |
<div class="md-card-content uk-position-relative"> |
91 | 95 |
<a class="uk-position-top-right"> |
92 | 96 |
<i (click)="hide(editCategory)" class="material-icons">close</i> |
93 | 97 |
</a> |
94 |
<div class="uk-grid-small" uk-grid> |
|
98 |
<div class="uk-grid-small" uk-grid [formGroup]="categoryFb">
|
|
95 | 99 |
<div class="uk-width-1-1"> |
96 | 100 |
<label class="uk-text-bold">Category Settings</label> |
97 |
<input class="uk-input uk-form-small" |
|
98 |
[(ngModel)]="copyCategory.name"
|
|
99 |
[class.uk-form-danger]="!valid && !copyCategory.name" type="text">
|
|
101 |
<input class="uk-input uk-form-small" formControlName="name"
|
|
102 |
[class.uk-form-danger]="categoryFb.get('name').dirty && categoryFb.get('name').invalid"
|
|
103 |
type="text"> |
|
100 | 104 |
</div> |
101 | 105 |
<div class="uk-width-1-2"> |
102 |
<select class="uk-select uk-form-small" [(ngModel)]="copyCategory.isPublic">
|
|
106 |
<select class="uk-select uk-form-small" formControlName="isPublic">
|
|
103 | 107 |
<option [value]="true">Public</option> |
104 | 108 |
<option [value]="false">Private</option> |
105 | 109 |
</select> |
106 | 110 |
</div> |
107 | 111 |
<div class="uk-width-1-2"> |
108 |
<select class="uk-select uk-form-small" [(ngModel)]="copyCategory.isActive">
|
|
112 |
<select class="uk-select uk-form-small" formControlName="isActive">
|
|
109 | 113 |
<option [value]="true">Active</option> |
110 | 114 |
<option [value]="false">Inactive</option> |
111 | 115 |
</select> |
... | ... | |
115 | 119 |
<div class="uk-grid-small uk-child-width-1-2" uk-grid> |
116 | 120 |
<div> |
117 | 121 |
<button class="md-btn md-btn-small" |
118 |
(click)="deleteCategoryOpen(copyCategory.name, editCategory, i)">Delete
|
|
122 |
(click)="deleteCategoryOpen(categoryFb.value.name, editCategory, i)">Delete
|
|
119 | 123 |
</button> |
120 | 124 |
</div> |
121 | 125 |
<div> |
122 | 126 |
<button class="md-btn md-btn-small md-btn-primary uk-float-right" |
127 |
[class.md-btn-primary]="categoryFb.valid && categoryFb.dirty" |
|
128 |
[class.disabled]="categoryFb.invalid || !categoryFb.dirty" |
|
123 | 129 |
(click)="saveCategory(editCategory, i)">Save |
124 | 130 |
</button> |
125 | 131 |
</div> |
... | ... | |
145 | 151 |
</a> |
146 | 152 |
<div uk-drop="mode: none; offset: -2; delay-hide: 0" #editSubCategory |
147 | 153 |
class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop"> |
148 |
<div *ngIf="copySubCategory">
|
|
154 |
<div *ngIf="subcategoryFb">
|
|
149 | 155 |
<div class="md-card"> |
150 | 156 |
<div class="md-card-content uk-position-relative"> |
151 | 157 |
<a class="uk-position-top-right"> |
152 | 158 |
<i (click)="hide(editSubCategory)" class="material-icons">close</i> |
153 | 159 |
</a> |
154 |
<div class="uk-grid-small" uk-grid> |
|
160 |
<div class="uk-grid-small" uk-grid [formGroup]="subcategoryFb">
|
|
155 | 161 |
<div class="uk-width-1-1"> |
156 | 162 |
<label class="uk-text-bold">Subcategory Settings</label> |
157 |
<input class="uk-input uk-form-small" [(ngModel)]="copySubCategory.name" |
|
158 |
[class.uk-form-danger]="!valid && !copySubCategory.name" type="text"> |
|
163 |
<input class="uk-input uk-form-small" formControlName="name" |
|
164 |
[class.uk-form-danger]="subcategoryFb.get('name').dirty && subcategoryFb.get('name').invalid" |
|
165 |
type="text"> |
|
159 | 166 |
</div> |
160 | 167 |
<div class="uk-width-1-2"> |
161 |
<select class="uk-select uk-form-small" [(ngModel)]="copySubCategory.isPublic">
|
|
168 |
<select class="uk-select uk-form-small" formControlName="isPublic">
|
|
162 | 169 |
<option [value]="true">Public</option> |
163 | 170 |
<option [value]="false">Private</option> |
164 | 171 |
</select> |
165 | 172 |
</div> |
166 | 173 |
<div class="uk-width-1-2"> |
167 |
<select class="uk-select uk-form-small" [(ngModel)]="copySubCategory.isActive">
|
|
174 |
<select class="uk-select uk-form-small" formControlName="isActive">
|
|
168 | 175 |
<option [value]="true">Active</option> |
169 | 176 |
<option [value]="false">Inactive</option> |
170 | 177 |
</select> |
... | ... | |
174 | 181 |
<div class="uk-grid-small uk-child-width-1-2" uk-grid> |
175 | 182 |
<div> |
176 | 183 |
<button class="md-btn md-btn-small" |
177 |
(click)="deleteSubcategoryOpen(copySubCategory.name, editSubCategory, j)">Delete
|
|
184 |
(click)="deleteSubcategoryOpen(subcategoryFb.value.name, editSubCategory, j)">Delete
|
|
178 | 185 |
</button> |
179 | 186 |
</div> |
180 | 187 |
<div> |
181 | 188 |
<button class="md-btn md-btn-small md-btn-primary uk-float-right" |
189 |
[class.md-btn-primary]="subcategoryFb.valid && subcategoryFb.dirty" |
|
190 |
[class.disabled]="subcategoryFb.invalid || !subcategoryFb.dirty" |
|
182 | 191 |
(click)="saveSubCategory(editSubCategory, j)">Save |
183 | 192 |
</button> |
184 | 193 |
</div> |
... | ... | |
196 | 205 |
</a> |
197 | 206 |
<div uk-drop="mode: none; offset: -2; delay-hide: 0" #newSubCategory |
198 | 207 |
class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop"> |
199 |
<div *ngIf="copySubCategory">
|
|
208 |
<div *ngIf="subcategoryFb">
|
|
200 | 209 |
<div class="md-card"> |
201 | 210 |
<div class="md-card-content uk-position-relative"> |
202 | 211 |
<a class="uk-position-top-right"> |
203 | 212 |
<i (click)="hide(newSubCategory)" class="material-icons">close</i> |
204 | 213 |
</a> |
205 |
<div class="uk-grid-small" uk-grid> |
|
214 |
<div class="uk-grid-small" uk-grid [formGroup]="subcategoryFb">
|
|
206 | 215 |
<div class="uk-width-1-1"> |
207 | 216 |
<label class="uk-text-bold">New Subcategory</label> |
208 |
<input class="uk-input uk-form-small" [(ngModel)]="copySubCategory.name" |
|
209 |
[class.uk-form-danger]="!valid && !copySubCategory.name" type="text"> |
|
217 |
<input class="uk-input uk-form-small" formControlName="name" |
|
218 |
[class.uk-form-danger]="subcategoryFb.get('name').dirty && subcategoryFb.get('name').invalid" |
|
219 |
type="text"> |
|
210 | 220 |
</div> |
211 | 221 |
<div class="uk-width-1-2"> |
212 |
<select class="uk-select uk-form-small" [(ngModel)]="copySubCategory.isPublic">
|
|
222 |
<select class="uk-select uk-form-small" formControlName="isPublic">
|
|
213 | 223 |
<option [value]="true">Public</option> |
214 | 224 |
<option [value]="false">Private</option> |
215 | 225 |
</select> |
216 | 226 |
</div> |
217 | 227 |
<div class="uk-width-1-2"> |
218 |
<select class="uk-select uk-form-small" [(ngModel)]="copySubCategory.isActive">
|
|
228 |
<select class="uk-select uk-form-small" formControlName="isActive">
|
|
219 | 229 |
<option [value]="true">Active</option> |
220 | 230 |
<option [value]="false">Inactive</option> |
221 | 231 |
</select> |
... | ... | |
228 | 238 |
</div> |
229 | 239 |
<div> |
230 | 240 |
<button class="md-btn md-btn-small md-btn-primary uk-float-right" |
241 |
[class.md-btn-primary]="subcategoryFb.valid && subcategoryFb.dirty" |
|
242 |
[class.disabled]="subcategoryFb.invalid || !subcategoryFb.dirty" |
|
231 | 243 |
(click)="saveSubCategory(newSubCategory)">Create |
232 | 244 |
</button> |
233 | 245 |
</div> |
... | ... | |
247 | 259 |
</a> |
248 | 260 |
<div uk-drop="mode: none; offset: -2; delay-hide: 0" #newCategory |
249 | 261 |
class="uk-padding-large uk-padding-remove-vertical uk-padding-remove-right uk-drop"> |
250 |
<div *ngIf="copyCategory">
|
|
262 |
<div *ngIf="categoryFb">
|
|
251 | 263 |
<div class="md-card"> |
252 | 264 |
<div class="md-card-content uk-position-relative"> |
253 | 265 |
<a class="uk-position-top-right"> |
254 | 266 |
<i (click)="hide(newCategory)" class="material-icons">close</i> |
255 | 267 |
</a> |
256 |
<div class="uk-grid-small" uk-grid> |
|
268 |
<div class="uk-grid-small" uk-grid [formGroup]="categoryFb">
|
|
257 | 269 |
<div class="uk-width-1-1"> |
258 | 270 |
<label class="uk-text-bold">New Category</label> |
259 |
<input class="uk-input uk-form-small" [(ngModel)]="copyCategory.name" |
|
260 |
[class.uk-form-danger]="!valid && !copyCategory.name" type="text"> |
|
271 |
<input class="uk-input uk-form-small" formControlName="name" |
|
272 |
[class.uk-form-danger]="categoryFb.get('name').dirty && categoryFb.get('name').invalid" |
|
273 |
type="text"> |
|
261 | 274 |
</div> |
262 | 275 |
<div class="uk-width-1-2"> |
263 |
<select class="uk-select uk-form-small" [(ngModel)]="copyCategory.isPublic">
|
|
276 |
<select class="uk-select uk-form-small" formControlName="isPublic">
|
|
264 | 277 |
<option [value]="true">Public</option> |
265 | 278 |
<option [value]="false">Private</option> |
266 | 279 |
</select> |
267 | 280 |
</div> |
268 | 281 |
<div class="uk-width-1-2"> |
269 |
<select class="uk-select uk-form-small" [(ngModel)]="copyCategory.isActive">
|
|
282 |
<select class="uk-select uk-form-small" formControlName="isActive">
|
|
270 | 283 |
<option [value]="true">Active</option> |
271 | 284 |
<option [value]="false">Inactive</option> |
272 | 285 |
</select> |
... | ... | |
279 | 292 |
</div> |
280 | 293 |
<div> |
281 | 294 |
<button class="md-btn md-btn-small md-btn-primary uk-float-right" |
295 |
[class.md-btn-primary]="categoryFb.valid && categoryFb.dirty" |
|
296 |
[class.disabled]="categoryFb.invalid || !categoryFb.dirty" |
|
282 | 297 |
(click)="saveCategory(newCategory)">Create |
283 | 298 |
</button> |
284 | 299 |
</div> |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/topic/indicators.component.html | ||
---|---|---|
1 | 1 |
<div id="page_content" click-outside-or-esc targetId="page_content" [escClose]="false" |
2 | 2 |
(clickOutside)="toggleOpen($event)"> |
3 | 3 |
<div class="uk-padding-small md-bg-white" uk-grid> |
4 |
<div class="uk-width-2-3@m uk-width-1-1 uk-child-width-1-3@m uk-child-width-1-1" uk-grid> |
|
5 |
<div class="uk-flex uk-flex-middle"> |
|
6 |
<label>Chart Type:</label> |
|
7 |
<select class="uk-select uk-form-small uk-margin-small-left" |
|
8 |
(ngModelChange)="onChartTypeChange($event)" |
|
9 |
[(ngModel)]="chartType"> |
|
10 |
<option [value]="'all'">All</option> |
|
11 |
<option [value]="'pie'">Pie</option> |
|
12 |
<option [value]="'table'">Table</option> |
|
13 |
<option [value]="'line'">Line</option> |
|
14 |
<option [value]="'column'">Column</option> |
|
15 |
<option [value]="'bar'">Bar</option> |
|
16 |
</select> |
|
4 |
<div *ngIf="filters" class="uk-width-2-3@m uk-width-1-1 uk-child-width-1-3@m uk-child-width-1-1" uk-grid> |
|
5 |
<div> |
|
6 |
<div dashboard-input [formInput]="filters.get('chartType')" |
|
7 |
type="select" [options]="[all].concat(indicatorUtils.chartTypes)" |
|
8 |
label="Chart Type"></div> |
|
17 | 9 |
</div> |
18 |
<div class="uk-flex uk-flex-middle"> |
|
19 |
<label>Privacy:</label> |
|
20 |
<select class="uk-select uk-form-small uk-margin-small-left" |
|
21 |
(ngModelChange)="onPrivacyChange($event)" |
|
22 |
[(ngModel)]="privacy"> |
|
23 |
<option [value]="'all'">All</option> |
|
24 |
<option [value]="'public'">Public</option> |
|
25 |
<option [value]="'private'">Private</option> |
|
26 |
</select> |
|
10 |
<div> |
|
11 |
<div dashboard-input [formInput]="filters.get('privacy')" |
|
12 |
type="select" [options]="[all].concat(indicatorUtils.isPublic)" |
|
13 |
label="Privacy"></div> |
|
27 | 14 |
</div> |
28 |
<div class="uk-flex uk-flex-middle"> |
|
29 |
<label>Status:</label> |
|
30 |
<select class="uk-select uk-form-small uk-margin-small-left" |
|
31 |
(ngModelChange)="onStatusChange($event)" |
|
32 |
[(ngModel)]="status"> |
|
33 |
<option [value]="'all'">All</option> |
|
34 |
<option [value]="'active'">Active</option> |
|
35 |
<option [value]="'inactive'">Inactive</option> |
|
36 |
</select> |
|
15 |
<div> |
|
16 |
<div dashboard-input [formInput]="filters.get('status')" |
|
17 |
type="select" [options]="[all].concat(indicatorUtils.isActive)" |
|
18 |
label="Status"></div> |
|
37 | 19 |
</div> |
38 | 20 |
</div> |
39 | 21 |
<div class="uk-width-expand@m uk-width-1-1 uk-flex uk-flex-middle uk-flex-right"> |
40 |
<div class="uk-inline"> |
|
41 |
<span class="uk-form-icon uk-form-icon-flip"><i class="material-icons">search</i></span> |
|
42 |
<input (ngModelChange)="onKeywordChange($event)" |
|
43 |
[(ngModel)]="keyword" |
|
44 |
class="uk-input uk-form-small" placeholder="Locate indicator.."> |
|
22 |
<div class="uk-inline uk-width-medium"> |
|
23 |
<span class="uk-position-center-right"><i class="material-icons">search</i></span> |
|
24 |
<div dashboard-input [formInput]="filters.get('keyword')" label="Locate indicator"></div> |
|
45 | 25 |
</div> |
46 | 26 |
<div [class.uk-active]="grid" class="uk-margin-small-left"> |
47 | 27 |
<a [routerLink]="" class="uk-icon-button" (click)="changeGrid(true)"><i |
... | ... | |
74 | 54 |
<div [class.uk-child-width-1-3@m]="grid" |
75 | 55 |
[class.uk-child-width-1-2@s]="grid" |
76 | 56 |
[class.uk-child-width-1-1]="!grid" |
77 |
[class.list]="!grid" id="numbers"
|
|
57 |
[class.list]="!grid" id="number" |
|
78 | 58 |
class="uk-grid-match uk-grid-small" |
79 | 59 |
uk-sortable uk-grid> |
80 | 60 |
<ng-template ngFor [ngForOf]="displayNumbers" let-indicator let-i="index"> |
81 |
<div *ngIf="indicator" [id]="i"> |
|
61 |
<div *ngIf="indicator" [id]="indicator._id">
|
|
82 | 62 |
<div class="md-card" [class.uk-sortable-nodrag]="!canNumbersReorder"> |
83 | 63 |
<div class="md-card-toolbar"> |
84 | 64 |
<div class="md-card-toolbar-actions" [class.uk-flex-middle]="!grid" [class.uk-flex]="!grid"> |
... | ... | |
92 | 72 |
[class.md-color-green-300]="indicator.isActive">{{indicatorUtils.isActiveIcon}}</i> |
93 | 73 |
{{(indicator.isActive) ? 'Active' : 'Inactive'}} |
94 | 74 |
</span> |
95 |
<i class="md-icon material-icons">more_vert</i> |
|
75 |
<div class="md-card-dropdown uk-inline"> |
|
76 |
<i class="md-icon material-icons">more_vert</i> |
|
77 |
<div uk-dropdown="mode: click; pos: bottom-right" class="uk-padding-remove-horizontal"> |
|
78 |
<ul class="uk-nav uk-dropdown-nav"> |
|
79 |
<li><a (click)="editIndicatorOpen(i)">Edit</a></li> |
|
80 |
<li><a (click)="deleteIndicatorOpen(i, 'number')">Delete</a></li> |
|
81 |
</ul> |
|
82 |
</div> |
|
83 |
</div> |
|
96 | 84 |
</div> |
97 | 85 |
<div class="md-card-toolbar-heading-text">{{indicator.name}}</div> |
98 | 86 |
</div> |
... | ... | |
120 | 108 |
<div [class.uk-child-width-1-3@m]="grid" |
121 | 109 |
[class.uk-child-width-1-2@s]="grid" |
122 | 110 |
[class.uk-child-width-1-1]="!grid" |
123 |
[class.list]="!grid" id="charts"
|
|
111 |
[class.list]="!grid" id="chart" |
|
124 | 112 |
class="uk-grid-match uk-grid-small uk-grid" |
125 | 113 |
uk-sortable uk-grid> |
126 | 114 |
<ng-template ngFor [ngForOf]="displayCharts" let-indicator let-i="index"> |
127 |
<div *ngIf="indicator" [id]="i"> |
|
115 |
<div *ngIf="indicator" [id]="indicator._id">
|
|
128 | 116 |
<div class="md-card" [class.uk-sortable-nodrag]="!canChartsReorder"> |
129 | 117 |
<div class="md-card-toolbar"> |
130 | 118 |
<div class="md-card-toolbar-actions" [class.uk-flex-middle]="!grid" [class.uk-flex]="!grid"> |
... | ... | |
150 | 138 |
</i> |
151 | 139 |
{{(indicator.isActive) ? 'Active' : 'Inactive'}} |
152 | 140 |
</span> |
153 |
<i class="md-icon material-icons" (click)="editIndicatorOpen(i)">more_vert</i> |
|
141 |
<div class="md-card-dropdown uk-inline"> |
|
142 |
<i class="md-icon material-icons">more_vert</i> |
|
143 |
<div uk-dropdown="mode: click; pos: bottom-right" class="uk-padding-remove-horizontal"> |
|
144 |
<ul class="uk-nav uk-dropdown-nav"> |
|
145 |
<li><a (click)="editIndicatorOpen(i)">Edit</a></li> |
|
146 |
<li><a (click)="deleteIndicatorOpen(i)">Delete</a></li> |
|
147 |
</ul> |
|
148 |
</div> |
|
149 |
</div> |
|
154 | 150 |
</div> |
155 | 151 |
<div class="md-card-toolbar-heading-text">{{indicator.name}}</div> |
156 | 152 |
</div> |
... | ... | |
185 | 181 |
</div> |
186 | 182 |
</div> |
187 | 183 |
</ng-template> |
188 |
<div> |
|
184 |
<div class="disable-sortable">
|
|
189 | 185 |
<div class="md-card clickable uk-sortable-nodrag" (click)="createIndicatorOpen()"> |
190 | 186 |
<div class="md-card-toolbar"> |
191 | 187 |
<div class="md-card-toolbar-heading-text" |
... | ... | |
299 | 295 |
</div> |
300 | 296 |
</div> |
301 | 297 |
</modal-alert> |
298 |
<modal-alert #deleteIndicatorModal (alertOutput)="deleteIndicator()"></modal-alert> |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/topic/topic.component.ts | ||
---|---|---|
8 | 8 |
import {HelperFunctions} from "../openaireLibrary/utils/HelperFunctions.class"; |
9 | 9 |
import {AlertModal} from "../openaireLibrary/utils/modal/alert"; |
10 | 10 |
import {Subscriber} from "rxjs"; |
11 |
import {FormBuilder, FormGroup, Validators} from "@angular/forms"; |
|
11 | 12 |
|
12 | 13 |
declare var UIkit; |
13 | 14 |
|
... | ... | |
24 | 25 |
* Current topic |
25 | 26 |
**/ |
26 | 27 |
public topicIndex: number = 0; |
27 |
public topic: Topic = null;
|
|
28 |
public topicFb: FormGroup;
|
|
28 | 29 |
|
29 | 30 |
/** |
30 | 31 |
* categoryIndex: Current category to be edited, selectedCategoryIndex: selected on menu(opened) |
31 | 32 |
*/ |
32 | 33 |
public categoryIndex: number = 0; |
33 | 34 |
public selectedCategoryIndex: number = 0; |
34 |
public copyCategory: Category = null;
|
|
35 |
public categoryFb: FormGroup;
|
|
35 | 36 |
/** |
36 | 37 |
* Current Subcategory to be edited |
37 | 38 |
*/ |
38 | 39 |
public subCategoryIndex: number = 0; |
39 |
public copySubCategory: SubCategory = null;
|
|
40 |
public subcategoryFb: FormGroup;
|
|
40 | 41 |
/** |
41 | 42 |
* Current drop element and index of topic, category or subcategory to be deleted. |
42 | 43 |
*/ |
... | ... | |
45 | 46 |
/** |
46 | 47 |
* Check form validity |
47 | 48 |
*/ |
48 |
public valid = true; |
|
49 | 49 |
public toggle: boolean = false; |
50 | 50 |
|
51 | 51 |
@ViewChild('deleteTopicModal') deleteTopicModal: AlertModal; |
... | ... | |
56 | 56 |
private route: ActivatedRoute, |
57 | 57 |
private router: Router, |
58 | 58 |
private title: Title, |
59 |
private fb: FormBuilder, |
|
59 | 60 |
private sideBarService: SideBarService, |
60 | 61 |
private stakeholderService: StakeholderService) { |
61 | 62 |
} |
... | ... | |
90 | 91 |
} |
91 | 92 |
|
92 | 93 |
public hide(element) { |
93 |
this.valid = true; |
|
94 | 94 |
UIkit.drop(element).hide(); |
95 | 95 |
} |
96 | 96 |
|
... | ... | |
98 | 98 |
UIkit.drop(element).show(); |
99 | 99 |
} |
100 | 100 |
|
101 |
private buildTopic(topic: Topic) { |
|
102 |
this.topicFb = this.fb.group({ |
|
103 |
_id: this.fb.control(topic._id), |
|
104 |
name: this.fb.control(topic.name, Validators.required), |
|
105 |
description: this.fb.control(topic.description), |
|
106 |
alias: this.fb.control(topic.alias), |
|
107 |
isActive: this.fb.control(topic.isActive), |
|
108 |
isPublic: this.fb.control(topic.isPublic), |
|
109 |
isDefault: this.fb.control(topic.isDefault), |
|
110 |
categories: this.fb.control(topic.categories) |
|
111 |
}); |
|
112 |
} |
|
113 |
|
|
101 | 114 |
public editTopicOpen(element) { |
102 | 115 |
if(element.className.indexOf('uk-open') !== -1) { |
103 | 116 |
this.hide(element); |
104 | 117 |
} else { |
105 |
this.topic = HelperFunctions.copy(this.stakeholder.topics[this.topicIndex]);
|
|
118 |
this.buildTopic(this.stakeholder.topics[this.topicIndex]);
|
|
106 | 119 |
this.show(element); |
107 | 120 |
} |
108 | 121 |
} |
109 | 122 |
|
110 | 123 |
public saveTopic(element) { |
111 |
if(this.topic.name && this.topic.name !== '') {
|
|
112 |
if(!this.topic.alias) { |
|
113 |
this.topic.alias = this.topic.name.toLowerCase().trim();
|
|
124 |
if(!this.topicFb.invalid) {
|
|
125 |
if(!this.topicFb.value.alias) {
|
|
126 |
this.topicFb.value.alias = this.topicFb.value.name.toLowerCase().trim();
|
|
114 | 127 |
} |
115 | 128 |
let path = [this.stakeholder._id]; |
116 | 129 |
let callback = (topic: Topic): void => { |
117 | 130 |
this.stakeholder.topics[this.topicIndex] = topic; |
118 | 131 |
this.stakeholderService.setStakeholder(this.stakeholder); |
119 | 132 |
}; |
120 |
this.save('Topic has been successfully saved', element, path, this.topic, callback,true); |
|
121 |
} else { |
|
122 |
this.valid = false; |
|
133 |
this.save('Topic has been successfully saved', element, path, this.topicFb.value, callback,true); |
|
123 | 134 |
} |
124 | 135 |
} |
125 | 136 |
|
... | ... | |
148 | 159 |
} |
149 | 160 |
} |
150 | 161 |
|
162 |
private buildCategory(category: Category) { |
|
163 |
this.categoryFb = this.fb.group({ |
|
164 |
_id: this.fb.control(category._id), |
|
165 |
name: this.fb.control(category.name, Validators.required), |
|
166 |
alias: this.fb.control(category.alias), |
|
167 |
isActive: this.fb.control(category.isActive), |
|
168 |
isPublic: this.fb.control(category.isPublic), |
|
169 |
isDefault: this.fb.control(category.isDefault), |
|
170 |
subCategories: this.fb.control(category.subCategories) |
|
171 |
}); |
|
172 |
} |
|
173 |
|
|
151 | 174 |
public editCategoryOpen(element, index:number = -1) { |
152 | 175 |
if(element.className.indexOf('uk-open') !== -1) { |
153 | 176 |
this.hide(element); |
154 | 177 |
} else { |
155 | 178 |
if(index === -1) { |
156 |
this.copyCategory = new Category(null, null, null, true, true);
|
|
179 |
this.buildCategory(new Category(null, null, null, true, true));
|
|
157 | 180 |
} else { |
158 |
this.copyCategory = HelperFunctions.copy(this.stakeholder.topics[this.topicIndex].categories[index]);
|
|
181 |
this.buildCategory(this.stakeholder.topics[this.topicIndex].categories[index]);
|
|
159 | 182 |
} |
160 | 183 |
this.show(element); |
161 | 184 |
} |
162 | 185 |
} |
163 | 186 |
|
164 | 187 |
public saveCategory(element, index = -1) { |
165 |
if(this.copyCategory.name && this.copyCategory.name !== '') {
|
|
166 |
if(!this.copyCategory.alias) {
|
|
167 |
this.copyCategory.alias = this.copyCategory.name.toLowerCase();
|
|
188 |
if(!this.categoryFb.invalid) {
|
|
189 |
if(!this.categoryFb.value.alias) {
|
|
190 |
this.categoryFb.value.alias = this.categoryFb.value.name.toLowerCase();
|
|
168 | 191 |
} |
169 | 192 |
let path = [this.stakeholder._id, this.stakeholder.topics[this.topicIndex]._id]; |
170 | 193 |
let callback = (category: Category): void => { |
... | ... | |
176 | 199 |
this.stakeholderService.setStakeholder(this.stakeholder); |
177 | 200 |
}; |
178 | 201 |
if(index === -1) { |
179 |
this.save('Category has been successfully created', element, path, this.copyCategory, callback);
|
|
202 |
this.save('Category has been successfully created', element, path, this.categoryFb.value, callback);
|
|
180 | 203 |
} else { |
181 |
this.save('Category has been successfully saved', element, path, this.copyCategory, callback);
|
|
204 |
this.save('Category has been successfully saved', element, path, this.categoryFb.value, callback);
|
|
182 | 205 |
} |
183 |
} else { |
|
184 |
this.valid = false; |
|
185 | 206 |
} |
186 | 207 |
} |
187 | 208 |
|
... | ... | |
202 | 223 |
this.delete('Category has been successfully be deleted', path, callback); |
203 | 224 |
} |
204 | 225 |
|
226 |
private buildSubcategory(subCategory: SubCategory) { |
|
227 |
this.subcategoryFb = this.fb.group({ |
|
228 |
_id: this.fb.control(subCategory._id), |
|
229 |
name: this.fb.control(subCategory.name, Validators.required), |
|
230 |
alias: this.fb.control(subCategory.alias), |
|
231 |
isActive: this.fb.control(subCategory.isActive), |
|
232 |
isPublic: this.fb.control(subCategory.isPublic), |
|
233 |
isDefault: this.fb.control(subCategory.isDefault), |
|
234 |
charts: this.fb.control(subCategory.charts), |
|
235 |
numbers: this.fb.control(subCategory.numbers) |
|
236 |
}); |
|
237 |
} |
|
238 |
|
|
205 | 239 |
public editSubCategoryOpen(element, index:number = -1) { |
206 | 240 |
if(element.className.indexOf('uk-open') !== -1) { |
207 | 241 |
this.hide(element); |
208 | 242 |
} else { |
209 | 243 |
if(index === -1) { |
210 |
this.copySubCategory = new SubCategory(null, null, null, true, true);
|
|
244 |
this.buildSubcategory(new SubCategory(null, null, null, true, true));
|
|
211 | 245 |
} else { |
212 |
this.copySubCategory = HelperFunctions.copy(this.stakeholder.topics[this.topicIndex].
|
|
213 |
categories[this.categoryIndex].subCategories[index]);
|
|
246 |
this.buildSubcategory(this.stakeholder.topics[this.topicIndex].
|
|
247 |
categories[this.selectedCategoryIndex].subCategories[index]);
|
|
214 | 248 |
} |
215 | 249 |
this.show(element); |
216 | 250 |
} |
217 | 251 |
} |
218 | 252 |
|
219 | 253 |
public saveSubCategory(element, index = -1) { |
220 |
if(this.copySubCategory.name && this.copySubCategory.name !== '') {
|
|
221 |
if(!this.copySubCategory.alias) {
|
|
222 |
this.copySubCategory.alias = this.copySubCategory.name.toLowerCase();
|
|
254 |
if(!this.subcategoryFb.invalid) {
|
|
255 |
if(!this.subcategoryFb.value.alias) {
|
|
256 |
this.subcategoryFb.value.alias = this.subcategoryFb.value.name.toLowerCase();
|
|
223 | 257 |
} |
224 | 258 |
let path: string[] = [ |
225 | 259 |
this.stakeholder._id, |
... | ... | |
237 | 271 |
this.stakeholderService.setStakeholder(this.stakeholder); |
238 | 272 |
}; |
239 | 273 |
if(index === -1) { |
240 |
this.save('Subcategory has been successfully created', element, path, this.copySubCategory, callback);
|
|
274 |
this.save('Subcategory has been successfully created', element, path, this.subcategoryFb.value, callback);
|
|
241 | 275 |
} else { |
242 |
this.save('Subcategory has been successfully saved', element, path, this.copySubCategory, callback);
|
|
276 |
this.save('Subcategory has been successfully saved', element, path, this.subcategoryFb.value, callback);
|
|
243 | 277 |
} |
244 | 278 |
this.hide(element); |
245 |
} else { |
|
246 |
this.valid = false; |
|
247 | 279 |
} |
248 | 280 |
} |
249 | 281 |
|
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/app/topic/indicators.component.ts | ||
---|---|---|
1 |
import {AfterViewInit, Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild} from "@angular/core"; |
|
1 |
import {AfterViewInit, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild} from "@angular/core";
|
|
2 | 2 |
import {SideBarService} from "../library/sharedComponents/sidebar/sideBar.service"; |
3 | 3 |
import {Indicator, IndicatorPath, Stakeholder} from "../utils/entities/stakeholder"; |
4 |
import {IndicatorUtils} from "../utils/indicator-utils"; |
|
4 |
import {IndicatorUtils, Option} from "../utils/indicator-utils";
|
|
5 | 5 |
import {FormArray, FormBuilder, FormControl, FormGroup, Validators} from "@angular/forms"; |
6 | 6 |
import {AlertModal} from "../openaireLibrary/utils/modal/alert"; |
7 | 7 |
import {StatisticsService} from "../utils/services/statistics.service"; |
... | ... | |
9 | 9 |
import {DomSanitizer} from "@angular/platform-browser"; |
10 | 10 |
import {StakeholderService} from "../services/stakeholder.service"; |
11 | 11 |
import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties"; |
12 |
import {Subscriber} from "rxjs"; |
|
12 | 13 |
|
13 | 14 |
declare var UIkit; |
14 | 15 |
|
... | ... | |
16 | 17 |
selector: 'indicators', |
17 | 18 |
templateUrl: './indicators.component.html' |
18 | 19 |
}) |
19 |
export class IndicatorsComponent implements OnInit, OnChanges {
|
|
20 |
export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
|
|
20 | 21 |
|
21 | 22 |
@Input() |
22 | 23 |
public properties: EnvProperties = null; |
... | ... | |
44 | 45 |
/** |
45 | 46 |
* Top filters |
46 | 47 |
*/ |
47 |
public chartType: string = 'all'; |
|
48 |
public privacy: string = 'all'; |
|
49 |
public status: string = 'all'; |
|
50 |
public keyword: string = null; |
|
48 |
public filters: FormGroup; |
|
49 |
public all: Option = { |
|
50 |
value: 'all', |
|
51 |
label: 'All' |
|
52 |
}; |
|
51 | 53 |
/** |
52 | 54 |
* Grid or List View |
53 | 55 |
*/ |
54 | 56 |
public grid: boolean = true; |
57 |
private subscriptions: any[] = []; |
|
55 | 58 |
|
56 | 59 |
@ViewChild('createIndicatorModal') createIndicatorModal: AlertModal; |
57 | 60 |
@ViewChild('editIndicatorModal') editIndicatorModal: AlertModal; |
61 |
@ViewChild('deleteIndicatorModal') deleteIndicatorModal: AlertModal; |
|
58 | 62 |
|
59 | 63 |
constructor(private sideBarService: SideBarService, |
60 | 64 |
private stakeholderService: StakeholderService, |
... | ... | |
64 | 68 |
} |
65 | 69 |
|
66 | 70 |
ngOnInit(): void { |
71 |
this.buildFilters(); |
|
72 |
} |
|
73 |
|
|
74 |
ngOnDestroy(): void { |
|
75 |
this.subscriptions.forEach(value => { |
|
76 |
if (value instanceof Subscriber) { |
|
77 |
value.unsubscribe(); |
|
78 |
} else if(value instanceof Function){ |
|
79 |
value(); |
|
80 |
} |
|
81 |
}); |
|
82 |
} |
|
83 |
|
|
84 |
ngAfterViewInit(): void { |
|
67 | 85 |
if (document !== undefined) { |
68 | 86 |
let callback = (list): void => { |
69 | 87 |
let items: HTMLCollection = list.current.children; |
70 | 88 |
let reordered = []; |
71 |
let indicators = []; |
|
72 | 89 |
for (let i = 0; i < items.length; i++) { |
73 | 90 |
if (items.item(i).id) { |
74 |
reordered.push(+items.item(i).id);
|
|
91 |
reordered.push(items.item(i).id); |
|
75 | 92 |
} |
76 | 93 |
} |
77 |
if(list.current.id === 'charts') { |
|
78 |
reordered.forEach((id, index) => { |
|
79 |
indicators[index] = HelperFunctions.copy(this.charts[id]); |
|
80 |
}); |
|
81 |
this.reorderIndicators('chart', indicators); |
|
82 |
} else if(list.current.id === 'numbers') { |
|
83 |
reordered.forEach((id, index) => { |
|
84 |
indicators[index] = HelperFunctions.copy(this.numbers[id]); |
|
85 |
}); |
|
86 |
this.reorderIndicators('number', indicators); |
|
87 |
} |
|
94 |
this.reorderIndicators(list.current.id , reordered); |
|
88 | 95 |
}; |
89 |
UIkit.util.on(document, 'moved', '#charts', callback);
|
|
90 |
UIkit.util.on(document, 'moved', '#numbers', callback);
|
|
96 |
this.subscriptions.push(UIkit.util.on(document, 'moved', '#chart', callback));
|
|
97 |
this.subscriptions.push(UIkit.util.on(document, 'moved', '#number', callback));
|
|
91 | 98 |
} |
92 | 99 |
} |
93 | 100 |
|
94 | 101 |
ngOnChanges(changes: SimpleChanges): void { |
95 | 102 |
if (this.canEdit) { |
103 |
this.buildFilters(); |
|
96 | 104 |
this.filterCharts(); |
97 | 105 |
this.filterNumbers(); |
98 | 106 |
} |
... | ... | |
110 | 118 |
this.grid = value; |
111 | 119 |
} |
112 | 120 |
|
121 |
private buildFilters() { |
|
122 |
this.filters = this.fb.group({ |
|
123 |
chartType: this.fb.control('all'), |
|
124 |
privacy: this.fb.control('all'), |
|
125 |
status: this.fb.control('all'), |
|
126 |
keyword: this.fb.control('') |
|
127 |
}); |
|
128 |
this.subscriptions.push(this.filters.get('chartType').valueChanges.subscribe( value => { |
|
129 |
this.onChartTypeChange(value); |
|
130 |
})); |
|
131 |
this.subscriptions.push(this.filters.get('privacy').valueChanges.subscribe( value => { |
|
132 |
this.onPrivacyChange(value); |
|
133 |
})); |
|
134 |
this.subscriptions.push(this.filters.get('status').valueChanges.subscribe( value => { |
|
135 |
this.onStatusChange(value); |
|
136 |
})); |
|
137 |
this.subscriptions.push(this.filters.get('keyword').valueChanges.subscribe( value => { |
|
138 |
this.onKeywordChange(value); |
|
139 |
})); |
|
140 |
} |
|
141 |
|
|
113 | 142 |
filterCharts() { |
114 | 143 |
this.displayCharts = this.filterChartType(this.filterPrivacy( |
115 |
this.filterStatus(this.filterByKeyword(this.charts, this.keyword), this.status), |
|
116 |
this.privacy), |
|
117 |
this.chartType |
|
144 |
this.filterStatus(this.filterByKeyword(this.charts, this.filters.value.keyword), |
|
145 |
this.filters.value.status), |
|
146 |
this.filters.value.privacy), |
|
147 |
this.filters.value.chartType |
|
118 | 148 |
); |
119 | 149 |
} |
120 | 150 |
|
121 | 151 |
filterNumbers() { |
122 | 152 |
this.displayNumbers = this.filterPrivacy(this.filterStatus( |
123 |
this.filterByKeyword(this.numbers, this.keyword), |
|
124 |
this.status), |
|
125 |
this.privacy); |
|
153 |
this.filterByKeyword(this.numbers, this.filters.value.keyword),
|
|
154 |
this.filters.value.status),
|
|
155 |
this.filters.value.privacy);
|
|
126 | 156 |
} |
127 | 157 |
|
128 | 158 |
onChartTypeChange(value) { |
... | ... | |
130 | 160 |
} |
131 | 161 |
|
132 | 162 |
onPrivacyChange(value) { |
163 |
console.log(value); |
|
133 | 164 |
this.displayCharts = this.filterPrivacy(this.charts, value); |
134 | 165 |
this.displayNumbers = this.filterPrivacy(this.numbers, value); |
135 | 166 |
} |
... | ... | |
157 | 188 |
if (value === 'all') { |
158 | 189 |
return indicators; |
159 | 190 |
} else { |
160 |
return indicators.filter(indicator => indicator.isPublic === (value === 'public'));
|
|
191 |
return indicators.filter(indicator => indicator.isPublic === value);
|
|
161 | 192 |
} |
162 | 193 |
} |
163 | 194 |
|
... | ... | |
165 | 196 |
if (value === 'all') { |
166 | 197 |
return indicators; |
167 | 198 |
} else { |
168 |
return indicators.filter(indicator => indicator.isActive === (value === 'active'));
|
|
199 |
return indicators.filter(indicator => indicator.isActive === value);
|
|
169 | 200 |
} |
170 | 201 |
} |
171 | 202 |
|
... | ... | |
173 | 204 |
if (value === null || value === '') { |
174 | 205 |
return indicators; |
175 | 206 |
} else { |
176 |
return indicators.filter(indicator => (indicator.name && indicator.name.includes(value))
|
|
177 |
|| (indicator.description && indicator.description.includes(value)));
|
|
207 |
return indicators.filter(indicator => (indicator.name && indicator.name.toLowerCase().includes(value.toLowerCase()))
|
|
208 |
|| (indicator.description && indicator.description.toLowerCase().includes(value.toLowerCase())));
|
|
178 | 209 |
} |
179 | 210 |
} |
180 | 211 |
|
... | ... | |
322 | 353 |
this.indicator.indicatorPaths.forEach(indicatorPath => { |
323 | 354 |
indicatorPath.safeResourceUrl = this.getUrlByStakeHolder(indicatorPath) |
324 | 355 |
}); |
325 |
}, 500);
|
|
356 |
}, (index === -1)?500:0);
|
|
326 | 357 |
} |
327 | 358 |
|
328 | 359 |
saveIndicator() { |
... | ... | |
344 | 375 |
}); |
345 | 376 |
} |
346 | 377 |
|
347 |
reorderIndicators(type: string, indicators: Indicator[]) {
|
|
378 |
reorderIndicators(type: string, indicatorIds: string[]) {
|
|
348 | 379 |
let path = [ |
349 | 380 |
this.stakeholder._id, |
350 | 381 |
this.stakeholder.topics[this.topicIndex]._id, |
351 | 382 |
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex]._id, |
352 | 383 |
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id |
353 | 384 |
]; |
354 |
this.stakeholderService.reorderIndicators(this.properties.monitorServiceAPIURL, path, indicators, type). |
|
355 |
subscribe(() => { |
|
356 |
if(type === 'chart') { |
|
385 |
this.stakeholderService.reorderIndicators(this.properties.monitorServiceAPIURL, path, indicatorIds, type).subscribe(indicators => { |
|
386 |
if (type === 'chart') { |
|
357 | 387 |
this.charts = indicators; |
358 | 388 |
this.filterCharts(); |
359 | 389 |
} else { |
... | ... | |
371 | 401 |
}); |
372 | 402 |
this.indicatorPaths.at(index).markAsPristine({onlySelf: true}); |
373 | 403 |
} |
404 |
|
|
405 |
deleteIndicatorOpen(index: number, type: string = 'chart') { |
|
406 |
this.index = index; |
|
407 |
if(type === 'chart') { |
|
408 |
this.indicator = this.charts[index]; |
|
409 |
} else { |
|
410 |
this.indicator = this.numbers[index]; |
|
411 |
} |
|
412 |
this.deleteIndicatorModal.alertTitle = 'Delete ' + this.indicator.name; |
|
413 |
this.deleteIndicatorModal.cancelButtonText = 'No'; |
|
414 |
this.deleteIndicatorModal.okButtonText = 'Yes'; |
|
415 |
this.deleteIndicatorModal.message = 'This indicator will permanently be deleted. Are you sure you want to proceed?'; |
|
416 |
this.deleteIndicatorModal.open(); |
|
417 |
} |
|
418 |
|
|
419 |
deleteIndicator() { |
|
420 |
let path = [ |
|
421 |
this.stakeholder._id, |
|
422 |
this.stakeholder.topics[this.topicIndex]._id, |
|
423 |
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex]._id, |
|
424 |
this.stakeholder.topics[this.topicIndex].categories[this.categoryIndex].subCategories[this.subcategoryIndex]._id, |
|
425 |
this.indicator._id |
|
426 |
]; |
|
427 |
this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, path).subscribe( () => { |
|
428 |
if(this.indicator.type === 'chart') { |
|
429 |
this.charts.splice(this.index, 1); |
|
430 |
} else { |
|
431 |
this.numbers.splice(this.index, 1); |
|
432 |
} |
|
433 |
this.stakeholderService.setStakeholder(this.stakeholder); |
|
434 |
}); |
|
435 |
} |
|
374 | 436 |
} |
modules/uoa-monitor-portal/trunk/monitor_dashboard/src/assets/fonts/open-sans-v17-latin-300italic.svg | ||
---|---|---|
1 |
<?xml version="1.0" standalone="no"?> |
|
2 |
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
|
3 |
<svg xmlns="http://www.w3.org/2000/svg"> |
|
4 |
<defs > |
|
5 |
<font id="OpenSans" horiz-adv-x="1092" ><font-face |
|
6 |
font-family="Open Sans Light" |
|
7 |
units-per-em="2048" |
|
8 |
panose-1="2 11 3 6 3 5 4 2 2 4" |
|
9 |
ascent="2189" |
|
10 |
descent="-600" |
|
11 |
alphabetic="0" /> |
|
12 |
<glyph unicode=" " glyph-name="space" horiz-adv-x="532" /> |
|
13 |
<glyph unicode="!" glyph-name="exclam" horiz-adv-x="502" d="M248 377H186L389 1462H508L248 377ZM80 57Q80 113 105 145T174 178Q240 178 240 106Q240 53 215 19T147 -16Q80 -16 80 57Z" /> |
|
14 |
<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="721" d="M455 1462L309 934H248L328 1462H455ZM784 1462L639 934H578L657 1462H784Z" /> |
|
15 |
<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1323" d="M389 530L508 928H211L219 1008H530L664 1462H754L618 1008H983L1118 1462H1204L1069 1008H1354L1346 928H1044L926 530H1229L1221 451H901L768 0H678L813 451H453L319 0H231L365 451H82L90 |
|
16 |
530H389ZM475 530H838L958 928H596L475 530Z" /> |
|
17 |
<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1128" d="M928 467Q928 316 818 224T520 121L467 -119H385L436 121Q357 123 278 139T141 182V276Q206 242 294 223T455 203L565 715Q455 768 412 806T346 893T322 1010Q322 1165 427 1260T700 1360L741 1552H821L780 |
|
18 |
1360Q929 1355 1057 1292L1022 1214Q912 1275 766 1284L657 770Q781 710 829 671T903 582T928 467ZM537 203Q679 210 760 277T842 461Q842 537 794 590T637 688L537 203ZM686 1284Q552 1275 481 1204T410 1018Q410 940 447 890T584 793L686 1284Z" /> |
|
19 |
<glyph unicode="%" glyph-name="percent" horiz-adv-x="1556" d="M1458 1462L319 0H213L1348 1462H1458ZM1520 612Q1520 437 1470 285T1334 55T1137 -23Q1025 -23 965 52T905 276Q905 436 957 588T1095 817T1288 895Q1409 895 1464 824T1520 612ZM1284 821Q1204 |
|
20 |
821 1138 749T1031 546T991 283Q991 167 1032 109T1145 51Q1275 51 1354 217T1434 604Q1434 713 1398 767T1284 821ZM760 1198Q760 1023 710 871T574 641T377 563Q265 563 205 638T145 862Q145 1022 197 1174T335 1403T528 1481Q760 1481 760 1198ZM524 1407Q445 |
|
21 |
1407 379 1336T272 1133T231 868Q231 753 272 695T385 637Q469 637 533 709T636 913T674 1190Q674 1299 638 1353T524 1407Z" /> |
|
22 |
<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1331" d="M748 1395Q623 1395 554 1327T485 1135Q485 1003 594 854Q797 943 873 1017T950 1200Q950 1291 894 1343T748 1395ZM465 63Q573 63 676 105T899 252L547 745Q383 666 315 611T212 487T176 |
|
23 |
328Q176 209 254 136T465 63ZM78 324Q78 486 177 601T502 817L461 884Q383 1012 383 1135Q383 1292 484 1388T748 1485Q893 1485 975 1409T1057 1202Q1057 1117 1016 1048T895 920T639 782L969 319Q1042 394 1104 495T1196 682H1307Q1205 435 1022 246L1206 0H1083L952 |
|
24 |
184Q831 76 710 28T444 -20Q277 -20 178 74T78 324Z" /> |
|
25 |
<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="403" d="M461 1462L315 934H254L334 1462H461Z" /> |
|
26 |
<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="526" d="M104 270Q104 613 226 903T608 1462H713Q454 1186 329 894T203 276Q203 -41 330 -324H250Q104 -62 104 270Z" /> |
|
27 |
<glyph unicode=")" glyph-name="parenright" horiz-adv-x="526" d="M453 868Q453 523 330 232T-51 -324H-156Q101 -50 227 242T354 862Q354 1010 326 1156T227 1462H307Q453 1200 453 868Z" /> |
|
28 |
<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="1137" d="M834 1540L725 1135L1163 1143L1155 1036L739 1065L920 664L805 627L670 1044L385 696L307 774L625 1092L233 1217L272 1319L666 1151L713 1559L834 1540Z" /> |
|
29 |
<glyph unicode="+" glyph-name="plus" horiz-adv-x="1128" d="M563 672H162V772H563V1176H664V772H1065V672H664V272H563V672Z" /> |
|
30 |
<glyph unicode="," glyph-name="comma" horiz-adv-x="451" d="M250 238L258 215Q224 123 144 -18T-16 -264H-90Q-11 -132 51 7T139 238H250Z" /> |
|
31 |
<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="629" d="M82 502L100 592H557L541 502H82Z" /> |
|
32 |
<glyph unicode="." glyph-name="period" horiz-adv-x="485" d="M82 55Q82 111 107 143T176 176Q242 176 242 104Q242 51 217 17T150 -18Q82 -18 82 55Z" /> |
|
33 |
<glyph unicode="/" glyph-name="slash" horiz-adv-x="641" d="M827 1462L10 0H-100L715 1462H827Z" /> |
|
34 |
<glyph unicode="0" glyph-name="zero" horiz-adv-x="1128" d="M1075 1016Q1075 815 1034 611T918 265T734 52T492 -20Q316 -20 228 106T139 494Q139 680 183 875T307 1209T494 1416T735 1485Q1075 1485 1075 1016ZM723 1397Q589 1397 482 1284T308 955T242 504Q242 |
|
35 |
282 304 175T502 68Q641 68 746 180T912 517T973 1006Q973 1205 914 1301T723 1397Z" /> |
|
36 |
<glyph unicode="1" glyph-name="one" horiz-adv-x="1128" d="M537 0H432L657 1055Q676 1147 731 1348Q689 1312 656 1287T406 1126L354 1204L760 1462H850L537 0Z" /> |
|
37 |
<glyph unicode="2" glyph-name="two" horiz-adv-x="1128" d="M909 0H39L61 104L510 506Q708 683 794 782T920 969T961 1149Q961 1261 895 1327T698 1393Q522 1393 365 1264L311 1337Q491 1483 705 1483Q878 1483 973 1398T1069 1161Q1069 1051 1026 953T884 741T573 |
|
38 |
438L190 100V96H926L909 0Z" /> |
|
39 |
<glyph unicode="3" glyph-name="three" horiz-adv-x="1128" d="M1049 1174Q1049 1012 943 899T657 756V752Q774 728 842 637T911 410Q911 276 847 177T668 29T393 -20Q297 -20 209 0T55 53V154Q227 68 399 68Q596 68 702 157T809 410Q809 555 720 633T473 711H356L377 |
|
40 |
807H487Q696 807 820 902T944 1161Q944 1275 881 1336T692 1397Q525 1397 348 1266L299 1341Q383 1408 487 1445T705 1483Q866 1483 957 1401T1049 1174Z" /> |
|
41 |
<glyph unicode="4" glyph-name="four" horiz-adv-x="1128" d="M1071 371H807L727 0H631L711 371H23L43 467L924 1477H1042L827 459H1092L1071 371ZM729 459Q808 828 848 1017T934 1372H930Q864 1281 801 1206L150 459H729Z" /> |
|
42 |
<glyph unicode="5" glyph-name="five" horiz-adv-x="1128" d="M582 879Q770 879 874 777T979 498Q979 261 831 121T424 -20Q340 -20 247 0T88 51V158Q258 68 428 68Q636 68 756 182T877 496Q877 636 792 715T567 795Q434 795 324 754L258 803L451 1462H1075L1057 |
|
43 |
1366H516L367 850Q465 879 582 879Z" /> |
|
44 |
<glyph unicode="6" glyph-name="six" horiz-adv-x="1128" d="M170 428Q170 711 275 972T544 1357T928 1481Q1051 1481 1110 1460L1092 1370Q1006 1393 922 1393Q689 1393 529 1219T295 717H303Q371 811 467 860T678 909Q839 909 928 809T1018 526Q1018 370 958 |
|
45 |
245T787 50T530 -20Q359 -20 265 99T170 428ZM543 68Q655 68 739 126T869 288T915 518Q915 664 848 742T653 821Q572 821 499 790T370 703T292 588T270 414Q270 250 342 159T543 68Z" /> |
|
46 |
<glyph unicode="7" glyph-name="seven" horiz-adv-x="1128" d="M244 0L1040 1366H274L297 1462H1155L1135 1352L356 0H244Z" /> |
|
47 |
<glyph unicode="8" glyph-name="eight" horiz-adv-x="1128" d="M737 1485Q900 1485 995 1400T1090 1171Q1090 1033 1006 937T721 764Q851 686 911 594T971 385Q971 269 913 177T748 33T487 -20Q309 -20 204 72T98 326Q98 485 198 594T520 782Q420 854 376 934T332 |
|
48 |
1114Q332 1273 446 1379T737 1485ZM610 733Q392 660 297 566T201 340Q201 204 278 134T498 63Q666 63 768 154T870 387Q870 491 808 576T610 733ZM727 1399Q597 1399 513 1317T428 1114Q428 1023 469 955T627 813Q819 875 906 957T993 1163Q993 1272 923 1335T727 |
|
49 |
1399Z" /> |
|
50 |
<glyph unicode="9" glyph-name="nine" horiz-adv-x="1128" d="M1059 1032Q1059 744 958 484T694 102T301 -20Q187 -20 115 2V92Q202 63 307 63Q781 63 934 737H926Q786 545 559 545Q397 545 304 650T211 934Q211 1089 270 1215T441 1411T698 1481Q872 1481 965 |
|
51 |
1366T1059 1032ZM686 1393Q574 1393 489 1335T358 1172T313 942Q313 797 380 717T573 637Q656 637 730 669T859 757T936 871T958 1047Q958 1213 887 1303T686 1393Z" /> |
|
52 |
<glyph unicode=":" glyph-name="colon" horiz-adv-x="485" d="M260 989Q260 1046 285 1078T354 1110Q420 1110 420 1038Q420 983 395 949T328 915Q260 915 260 989ZM102 55Q102 111 127 143T197 176Q262 176 262 104Q262 49 237 16T170 -18Q102 -18 102 55Z" /> |
|
53 |
<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="485" d="M287 238L295 215Q260 119 177 -27T20 -264H-53Q26 -132 88 7T176 238H287ZM266 989Q266 1046 291 1078T360 1110Q426 1110 426 1038Q426 983 401 949T334 915Q266 915 266 989Z" /> |
|
54 |
<glyph unicode="<" glyph-name="less" horiz-adv-x="1128" d="M1051 262L137 676V750L1051 1221V1118L250 719L1051 369V262Z" /> |
|
55 |
<glyph unicode="=" glyph-name="equal" horiz-adv-x="1128" d="M168 885V985H1071V885H168ZM168 461V559H1071V461H168Z" /> |
|
56 |
<glyph unicode=">" glyph-name="greater" horiz-adv-x="1128" d="M170 369L971 719L170 1118V1221L1085 750V676L170 262V369Z" /> |
|
57 |
<glyph unicode="?" glyph-name="question" horiz-adv-x="799" d="M242 362L248 391Q277 523 330 597T487 745Q605 829 662 890T748 1018T778 1159Q778 1267 711 1329T528 1391Q389 1391 221 1290L182 1376Q267 1425 353 1454T541 1483Q700 1483 791 1399T883 1169Q883 |
|
58 |
1042 817 935T586 709Q501 648 454 601T381 506T334 362H242ZM170 59Q170 115 195 147T264 180Q330 180 330 109Q330 55 306 21T238 -14Q170 -14 170 59Z" /> |
|
59 |
<glyph unicode="@" glyph-name="at" horiz-adv-x="1724" d="M1688 858Q1688 679 1632 535T1478 308T1266 225Q1168 225 1112 280T1055 424H1051Q997 327 919 276T750 225Q638 225 572 298T506 500Q506 656 569 783T747 981T1008 1053Q1130 1053 1260 1001L1176 |
|
60 |
686Q1137 546 1137 465Q1137 394 1171 354T1272 313Q1358 313 1432 386T1549 584T1593 836Q1593 992 1528 1113T1341 1301T1049 1368Q814 1368 625 1260T329 956T223 516Q223 228 378 67T813 -94Q1020 -94 1233 -12V-102Q1023 -184 805 -184Q602 -184 448 -102T209 |
|
61 |
137T125 508Q125 784 246 1001T583 1338T1057 1458Q1246 1458 1387 1386T1608 1173T1688 858ZM1008 969Q895 969 804 910T661 745T610 506Q610 414 650 364T764 313Q865 313 944 402T1069 657L1147 946Q1081 969 1008 969Z" /> |
|
62 |
<glyph unicode="A" glyph-name="A" horiz-adv-x="1059" d="M805 520H293L6 0H-111L711 1468H778L979 0H874L805 520ZM793 612L754 903Q723 1145 715 1305Q685 1242 651 1175T344 612H793Z" /> |
|
63 |
<glyph unicode="B" glyph-name="B" horiz-adv-x="1202" d="M412 1462H791Q981 1462 1081 1378T1182 1137Q1182 984 1092 888T838 764V760Q963 729 1026 647T1090 442Q1090 237 950 119T559 0H102L412 1462ZM377 811H655Q861 811 968 892T1075 1130Q1075 1249 997 |
|
64 |
1310T768 1372H496L377 811ZM358 721L223 90H565Q766 90 874 177T983 434Q983 579 893 650T618 721H358Z" /> |
|
65 |
<glyph unicode="C" glyph-name="C" horiz-adv-x="1169" d="M961 1389Q764 1389 610 1285T365 980T274 539Q274 314 384 193T702 72Q842 72 1006 123V29Q850 -20 690 -20Q438 -20 304 125T170 535Q170 801 274 1023T559 1364T961 1483Q1138 1483 1268 1415L1223 |
|
66 |
1325Q1168 1355 1099 1372T961 1389Z" /> |
|
67 |
<glyph unicode="D" glyph-name="D" horiz-adv-x="1350" d="M1288 879Q1288 626 1179 418T878 105T432 0H102L412 1462H717Q999 1462 1143 1315T1288 879ZM430 90Q656 90 824 184T1085 460T1178 872Q1178 1370 702 1370H496L221 90H430Z" /> |
|
68 |
<glyph unicode="E" glyph-name="E" horiz-adv-x="1067" d="M829 0H102L412 1462H1139L1118 1368H494L377 815H967L946 721H358L223 94H850L829 0Z" /> |
|
69 |
<glyph unicode="F" glyph-name="F" horiz-adv-x="981" d="M205 0H102L412 1462H1120L1100 1368H496L362 748H932L911 653H342L205 0Z" /> |
Also available in: Unified diff
[Monitor Dashboard]: 1. Change inputs to materials. 2. Add fonts. 3. Add uikit.js on index 4. Add reorder functionality on indicators. 5. Fix height of header to 70px