File manager - Edit - /home/c14075/dragmet-ural.ru/www/avatar.tar
Back
config.php 0000644 00000000330 15133317617 0006525 0 ustar 00 <? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die(); } return [ 'css' => 'dist/avatar.bundle.css', 'js' => 'dist/avatar.bundle.js', 'rel' => [ 'main.core', ], 'skip_core' => false, ]; bundle.config.js 0000644 00000000146 15133317617 0007627 0 ustar 00 module.exports = { input: 'src/avatar.js', output: 'dist/avatar.bundle.js', namespace: 'BX.Mail' }; dist/avatar.bundle.js 0000644 00000015716 15133317617 0010614 0 ustar 00 this.BX = this.BX || {}; (function (exports,main_core) { 'use strict'; var _templateObject; function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } var Avatar = /*#__PURE__*/function () { function Avatar() { babelHelpers.classCallCheck(this, Avatar); } babelHelpers.createClass(Avatar, null, [{ key: "stringToHashCode", value: function stringToHashCode(string) { var hashCode = 0; for (var i = 0; i < string.length; i++) { hashCode = string.charCodeAt(i) + ((hashCode << 5) - hashCode); } return hashCode; } }, { key: "alignChannelRangeColor", value: function alignChannelRangeColor(chanelCode) { if (chanelCode > 255) { return 255; } else if (chanelCode < 0) { return 0; } else { return Math.ceil(chanelCode); } } }, { key: "hashToColor", value: function hashToColor(hash) { var maxIntensityAllChannels = 255 * 3; var minIntensityAllChannels = 0; var differenceCoefficientForGrayDetection = 0.20; var r = (hash & 0xFF0000) >> 16; var g = (hash & 0x00FF00) >> 8; var b = hash & 0x0000FF; var contrastRatioForPastelColors = 1.5; var contrastRatioForDarkColors = 2.5; var channelReductionCoefficientIfGray = 2; if (maxIntensityAllChannels - (r + g + b) < 100) { //Pastel colors or white r /= contrastRatioForPastelColors; g /= contrastRatioForPastelColors; b /= contrastRatioForPastelColors; } else if (r + g + b < 200 - minIntensityAllChannels) { //Very dark colors r *= contrastRatioForDarkColors; g *= contrastRatioForDarkColors; b *= contrastRatioForDarkColors; } var channels = [r, g, b]; channels.sort(function (a, b) { return a - b; }); if ((channels[channels.length - 1] - channels[0]) / channels[0] < differenceCoefficientForGrayDetection) { //Shade of gray g /= channelReductionCoefficientIfGray; } r = this.alignChannelRangeColor(r); g = this.alignChannelRangeColor(g); b = this.alignChannelRangeColor(b); var color = "#" + ("0" + r.toString(16)).substr(-2) + ("0" + g.toString(16)).substr(-2) + ("0" + b.toString(16)).substr(-2); return color.toUpperCase(); } }, { key: "stringToColor", value: function stringToColor(name) { return this.hashToColor(this.stringToHashCode(name)); } }, { key: "getInitials", value: function getInitials(string, email) { string = string.replace(/[0-9]|[-\u0026\u002f\u005c\u0023\u002c\u002b\u0028\u0029\u0024\u007e\u0025\u002e\u0027\u0022\u003a\u002a\u003f\u003c\u003e\u007b\u007d\u00ab\u00bb]/g, ""); string = string.replace(/^\s+|\s+$/g, ''); var names = string.split(' '); var initials = names[0].substring(0, 1).toUpperCase(); if (names.length > 1) { initials += names[names.length - 1].substring(0, 1).toUpperCase(); } if (initials === '') { initials = email[0].toUpperCase(); } return initials; } }, { key: "getAvatarData", value: function getAvatarData() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { fullName: 'User Quest', email: 'info@example.com' }; return { 'abbreviation': this.getInitials(config['fullName'], config['email']), 'color': this.stringToColor(config['email']) }; } }, { key: "build", value: function build() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { size: 'small', fullName: 'User Quest', email: 'info@example.com' }; var whiteList = new Set(['small', 'big']); if (config['size'] === undefined || !whiteList.has(config['size'])) { config['size'] = 'small'; } var data = this.getAvatarData(config); var avatar = main_core.Tag.render(_templateObject || (_templateObject = babelHelpers.taggedTemplateLiteral(["<span class=\"mail-ui-avatar mail-ui-avatar-", "\">", "</span>"])), config['size'], data['abbreviation']); avatar.style.backgroundColor = data['color']; return avatar; } }, { key: "replaceElementWithAvatar", value: function replaceElementWithAvatar(object, avatar) { var parent = object.parentNode; parent.insertBefore(avatar, object); parent.removeChild(object); } }, { key: "replaceTagsWithAvatars", value: function replaceTagsWithAvatars() { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { className: 'mail-ui-avatar' }; var elements = document.getElementsByClassName(config['className']); var _iterator = _createForOfIteratorHelper(elements), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var element = _step.value; this.replaceElementWithAvatar(element, this.build({ fullName: element.getAttribute('user-name'), email: element.getAttribute('email') })); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } }]); return Avatar; }(); exports.Avatar = Avatar; }((this.BX.Mail = this.BX.Mail || {}),BX)); //# sourceMappingURL=avatar.bundle.js.map dist/avatar.bundle.map.js 0000644 00000012747 15133317617 0011371 0 ustar 00 {"version":3,"sources":["avatar.bundle.js"],"names":["this","BX","exports","main_core","_templateObject","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","Avatar","babelHelpers","classCallCheck","createClass","key","stringToHashCode","string","hashCode","charCodeAt","alignChannelRangeColor","chanelCode","Math","ceil","hashToColor","hash","maxIntensityAllChannels","minIntensityAllChannels","differenceCoefficientForGrayDetection","r","g","b","contrastRatioForPastelColors","contrastRatioForDarkColors","channelReductionCoefficientIfGray","channels","sort","a","color","substr","toUpperCase","stringToColor","getInitials","email","replace","names","split","initials","substring","getAvatarData","config","arguments","undefined","fullName","abbreviation","build","size","whiteList","Set","has","data","avatar","Tag","render","taggedTemplateLiteral","style","backgroundColor","replaceElementWithAvatar","object","parent","parentNode","insertBefore","removeChild","replaceTagsWithAvatars","className","elements","document","getElementsByClassName","_iterator","_step","element","getAttribute","Mail"],"mappings":"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","file":"avatar.bundle.map.js"} dist/avatar.bundle.min.css 0000644 00000000271 15133317617 0011540 0 ustar 00 .mail-ui-avatar{display:block;border-radius:50%;text-align:center;color:#fff}.mail-ui-avatar-small{width:29px;min-width:29px;height:29px;min-height:29px;font-size:13px;line-height:29px} dist/avatar.bundle.js.map 0000644 00000021367 15133317617 0011367 0 ustar 00 {"version":3,"file":"avatar.bundle.js","sources":["../src/avatar.js"],"sourcesContent":["import { Tag } from 'main.core';\nimport './css/style.css';\n\nexport class Avatar\n{\n\tstatic stringToHashCode(string)\n\t{\n\t\tlet hashCode = 0;\n\n\t\tfor (let i = 0; i < string.length; i++)\n\t\t{\n\t\t\thashCode = string.charCodeAt(i) + ((hashCode << 5) - hashCode);\n\t\t}\n\n\t\treturn hashCode;\n\t}\n\n\tstatic alignChannelRangeColor(chanelCode)\n\t{\n\t\tif(chanelCode > 255)\n\t\t{\n\t\t\treturn 255;\n\t\t}\n\t\telse if(chanelCode < 0)\n\t\t{\n\t\t\treturn 0;\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn Math.ceil(chanelCode);\n\t\t}\n\t}\n\n\tstatic hashToColor(hash)\n\t{\n\t\tconst maxIntensityAllChannels = 255*3;\n\t\tconst minIntensityAllChannels = 0;\n\t\tconst differenceCoefficientForGrayDetection = 0.20;\n\n\t\tlet r = (hash & 0xFF0000) >> 16;\n\t\tlet g = (hash & 0x00FF00) >> 8;\n\t\tlet b = (hash & 0x0000FF);\n\n\t\tconst contrastRatioForPastelColors = 1.5;\n\t\tconst contrastRatioForDarkColors = 2.5;\n\t\tconst channelReductionCoefficientIfGray = 2;\n\n\t\tif(maxIntensityAllChannels - (r+g+b) < 100)\n\t\t{\t//Pastel colors or white\n\t\t\tr/=contrastRatioForPastelColors;\n\t\t\tg/=contrastRatioForPastelColors;\n\t\t\tb/=contrastRatioForPastelColors;\n\t\t}\n\t\telse if((r+g+b) < (200 - minIntensityAllChannels))\n\t\t{\n\t\t\t//Very dark colors\n\t\t\tr*=contrastRatioForDarkColors;\n\t\t\tg*=contrastRatioForDarkColors;\n\t\t\tb*=contrastRatioForDarkColors;\n\t\t}\n\n\t\tlet channels = [r,g,b];\n\t\tchannels.sort(function(a,b){\n\t\t\treturn a - b;\n\t\t})\n\n\t\tif(((channels[channels.length - 1]-channels[0])/channels[0]) < differenceCoefficientForGrayDetection)\n\t\t{\n\t\t\t//Shade of gray\n\t\t\tg/=channelReductionCoefficientIfGray;\n\t\t}\n\n\t\tr=this.alignChannelRangeColor(r);\n\t\tg=this.alignChannelRangeColor(g);\n\t\tb=this.alignChannelRangeColor(b);\n\n\t\tconst color = \"#\" + (\"0\" + r.toString(16)).substr(-2) + (\"0\" + g.toString(16)).substr(-2) + (\"0\" + b.toString(16)).substr(-2);\n\t\treturn color.toUpperCase();\n\t}\n\n\tstatic stringToColor(name)\n\t{\n\t\treturn this.hashToColor(this.stringToHashCode(name));\n\t}\n\n\tstatic getInitials(string, email)\n\t{\n\t\tstring=string.replace(/[0-9]|[-\\u0026\\u002f\\u005c\\u0023\\u002c\\u002b\\u0028\\u0029\\u0024\\u007e\\u0025\\u002e\\u0027\\u0022\\u003a\\u002a\\u003f\\u003c\\u003e\\u007b\\u007d\\u00ab\\u00bb]/g,\"\");\n\t\tstring=string.replace(/^\\s+|\\s+$/g, '');\n\n\t\tconst names = string.split(' ');\n\n\t\tlet initials = names[0].substring(0, 1).toUpperCase();\n\n\t\tif (names.length > 1)\n\t\t{\n\t\t\tinitials += names[names.length - 1].substring(0, 1).toUpperCase();\n\t\t}\n\n\t\tif(initials === '')\n\t\t{\n\t\t\tinitials = email[0].toUpperCase();\n\t\t}\n\n\t\treturn initials;\n\t}\n\n\tstatic getAvatarData(config = {\n\t\tfullName: 'User Quest',\n\t\temail: 'info@example.com',\n\t})\n\t{\n\t\treturn {\n\t\t\t'abbreviation': this.getInitials(config['fullName'], config['email']),\n\t\t\t'color': this.stringToColor(config['email']),\n\t\t};\n\t}\n\n\tstatic build(config = {\n\t\tsize: 'small',\n\t\tfullName: 'User Quest',\n\t\temail: 'info@example.com',\n\t})\n\t{\n\t\tconst whiteList = new Set(['small', 'big']);\n\n\t\tif (config['size'] === undefined || !whiteList.has(config['size']))\n\t\t{\n\t\t\tconfig['size'] = 'small';\n\t\t}\n\n\t\tconst data = this.getAvatarData(config);\n\n\t\tlet avatar = Tag.render`<span class=\"mail-ui-avatar mail-ui-avatar-${config['size']}\">${data['abbreviation']}</span>`;\n\t\tavatar.style.backgroundColor = data['color'];\n\n\t\treturn avatar;\n\t}\n\n\tstatic replaceElementWithAvatar(object, avatar)\n\t{\n\t\tconst parent = object.parentNode;\n\t\tparent.insertBefore(avatar, object);\n\t\tparent.removeChild(object);\n\t}\n\n\tstatic replaceTagsWithAvatars(config = { className: 'mail-ui-avatar' })\n\t{\n\t\tconst elements = document.getElementsByClassName(config['className']);\n\t\tfor (let element of elements)\n\t\t{\n\t\t\tthis.replaceElementWithAvatar(element, this.build({\n\t\t\t\tfullName: element.getAttribute('user-name'),\n\t\t\t\temail: element.getAttribute('email'),\n\t\t\t}));\n\t\t}\n\t}\n}"],"names":["Avatar","string","hashCode","i","length","charCodeAt","chanelCode","Math","ceil","hash","maxIntensityAllChannels","minIntensityAllChannels","differenceCoefficientForGrayDetection","r","g","b","contrastRatioForPastelColors","contrastRatioForDarkColors","channelReductionCoefficientIfGray","channels","sort","a","alignChannelRangeColor","color","toString","substr","toUpperCase","name","hashToColor","stringToHashCode","email","replace","names","split","initials","substring","config","fullName","getInitials","stringToColor","size","whiteList","Set","undefined","has","data","getAvatarData","avatar","Tag","render","style","backgroundColor","object","parent","parentNode","insertBefore","removeChild","className","elements","document","getElementsByClassName","element","replaceElementWithAvatar","build","getAttribute"],"mappings":"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"} dist/avatar.bundle.css 0000644 00000000357 15133317617 0010763 0 ustar 00 .mail-ui-avatar { display: block; border-radius: 50%; text-align: center; color: #fff; } .mail-ui-avatar-small { width: 29px; min-width: 29px; height: 29px; min-height: 29px; font-size: 13px; line-height: 29px; } dist/avatar.bundle.min.js 0000644 00000007441 15133317617 0011372 0 ustar 00 this.BX=this.BX||{};(function(e,r){"use strict";var t;function a(e,r){var t=typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=n(e))||r&&e&&typeof e.length==="number"){if(t)e=t;var a=0;var i=function e(){};return{s:i,n:function r(){if(a>=e.length)return{done:true};return{done:false,value:e[a++]}},e:function e(r){throw r},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=true,u=false,o;return{s:function r(){t=t.call(e)},n:function e(){var r=t.next();l=r.done;return r},e:function e(r){u=true;o=r},f:function e(){try{if(!l&&t["return"]!=null)t["return"]()}finally{if(u)throw o}}}}function n(e,r){if(!e)return;if(typeof e==="string")return i(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor)t=e.constructor.name;if(t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return i(e,r)}function i(e,r){if(r==null||r>e.length)r=e.length;for(var t=0,a=new Array(r);t<r;t++){a[t]=e[t]}return a}var l=function(){function e(){babelHelpers.classCallCheck(this,e)}babelHelpers.createClass(e,null,[{key:"stringToHashCode",value:function e(r){var t=0;for(var a=0;a<r.length;a++){t=r.charCodeAt(a)+((t<<5)-t)}return t}},{key:"alignChannelRangeColor",value:function e(r){if(r>255){return 255}else if(r<0){return 0}else{return Math.ceil(r)}}},{key:"hashToColor",value:function e(r){var t=255*3;var a=0;var n=.2;var i=(r&16711680)>>16;var l=(r&65280)>>8;var u=r&255;var o=1.5;var s=2.5;var f=2;if(t-(i+l+u)<100){i/=o;l/=o;u/=o}else if(i+l+u<200-a){i*=s;l*=s;u*=s}var c=[i,l,u];c.sort((function(e,r){return e-r}));if((c[c.length-1]-c[0])/c[0]<n){l/=f}i=this.alignChannelRangeColor(i);l=this.alignChannelRangeColor(l);u=this.alignChannelRangeColor(u);var v="#"+("0"+i.toString(16)).substr(-2)+("0"+l.toString(16)).substr(-2)+("0"+u.toString(16)).substr(-2);return v.toUpperCase()}},{key:"stringToColor",value:function e(r){return this.hashToColor(this.stringToHashCode(r))}},{key:"getInitials",value:function e(r,t){r=r.replace(/[0-9]|[-\u0026\u002f\u005c\u0023\u002c\u002b\u0028\u0029\u0024\u007e\u0025\u002e\u0027\u0022\u003a\u002a\u003f\u003c\u003e\u007b\u007d\u00ab\u00bb]/g,"");r=r.replace(/^\s+|\s+$/g,"");var a=r.split(" ");var n=a[0].substring(0,1).toUpperCase();if(a.length>1){n+=a[a.length-1].substring(0,1).toUpperCase()}if(n===""){n=t[0].toUpperCase()}return n}},{key:"getAvatarData",value:function e(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{fullName:"User Quest",email:"info@example.com"};return{abbreviation:this.getInitials(r["fullName"],r["email"]),color:this.stringToColor(r["email"])}}},{key:"build",value:function e(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{size:"small",fullName:"User Quest",email:"info@example.com"};var n=new Set(["small","big"]);if(a["size"]===undefined||!n.has(a["size"])){a["size"]="small"}var i=this.getAvatarData(a);var l=r.Tag.render(t||(t=babelHelpers.taggedTemplateLiteral(['<span class="mail-ui-avatar mail-ui-avatar-','">',"</span>"])),a["size"],i["abbreviation"]);l.style.backgroundColor=i["color"];return l}},{key:"replaceElementWithAvatar",value:function e(r,t){var a=r.parentNode;a.insertBefore(t,r);a.removeChild(r)}},{key:"replaceTagsWithAvatars",value:function e(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{className:"mail-ui-avatar"};var t=document.getElementsByClassName(r["className"]);var n=a(t),i;try{for(n.s();!(i=n.n()).done;){var l=i.value;this.replaceElementWithAvatar(l,this.build({fullName:l.getAttribute("user-name"),email:l.getAttribute("email")}))}}catch(e){n.e(e)}finally{n.f()}}}]);return e}();e.Avatar=l})(this.BX.Mail=this.BX.Mail||{},BX); //# sourceMappingURL=avatar.bundle.map.js src/css/style.css 0000644 00000000357 15133317617 0010011 0 ustar 00 .mail-ui-avatar { display: block; border-radius: 50%; text-align: center; color: #fff; } .mail-ui-avatar-small { width: 29px; min-width: 29px; height: 29px; min-height: 29px; font-size: 13px; line-height: 29px; } src/avatar.js 0000644 00000007077 15133317617 0007171 0 ustar 00 import { Tag } from 'main.core'; import './css/style.css'; export class Avatar { static stringToHashCode(string) { let hashCode = 0; for (let i = 0; i < string.length; i++) { hashCode = string.charCodeAt(i) + ((hashCode << 5) - hashCode); } return hashCode; } static alignChannelRangeColor(chanelCode) { if(chanelCode > 255) { return 255; } else if(chanelCode < 0) { return 0; } else { return Math.ceil(chanelCode); } } static hashToColor(hash) { const maxIntensityAllChannels = 255*3; const minIntensityAllChannels = 0; const differenceCoefficientForGrayDetection = 0.20; let r = (hash & 0xFF0000) >> 16; let g = (hash & 0x00FF00) >> 8; let b = (hash & 0x0000FF); const contrastRatioForPastelColors = 1.5; const contrastRatioForDarkColors = 2.5; const channelReductionCoefficientIfGray = 2; if(maxIntensityAllChannels - (r+g+b) < 100) { //Pastel colors or white r/=contrastRatioForPastelColors; g/=contrastRatioForPastelColors; b/=contrastRatioForPastelColors; } else if((r+g+b) < (200 - minIntensityAllChannels)) { //Very dark colors r*=contrastRatioForDarkColors; g*=contrastRatioForDarkColors; b*=contrastRatioForDarkColors; } let channels = [r,g,b]; channels.sort(function(a,b){ return a - b; }) if(((channels[channels.length - 1]-channels[0])/channels[0]) < differenceCoefficientForGrayDetection) { //Shade of gray g/=channelReductionCoefficientIfGray; } r=this.alignChannelRangeColor(r); g=this.alignChannelRangeColor(g); b=this.alignChannelRangeColor(b); const color = "#" + ("0" + r.toString(16)).substr(-2) + ("0" + g.toString(16)).substr(-2) + ("0" + b.toString(16)).substr(-2); return color.toUpperCase(); } static stringToColor(name) { return this.hashToColor(this.stringToHashCode(name)); } static getInitials(string, email) { string=string.replace(/[0-9]|[-\u0026\u002f\u005c\u0023\u002c\u002b\u0028\u0029\u0024\u007e\u0025\u002e\u0027\u0022\u003a\u002a\u003f\u003c\u003e\u007b\u007d\u00ab\u00bb]/g,""); string=string.replace(/^\s+|\s+$/g, ''); const names = string.split(' '); let initials = names[0].substring(0, 1).toUpperCase(); if (names.length > 1) { initials += names[names.length - 1].substring(0, 1).toUpperCase(); } if(initials === '') { initials = email[0].toUpperCase(); } return initials; } static getAvatarData(config = { fullName: 'User Quest', email: 'info@example.com', }) { return { 'abbreviation': this.getInitials(config['fullName'], config['email']), 'color': this.stringToColor(config['email']), }; } static build(config = { size: 'small', fullName: 'User Quest', email: 'info@example.com', }) { const whiteList = new Set(['small', 'big']); if (config['size'] === undefined || !whiteList.has(config['size'])) { config['size'] = 'small'; } const data = this.getAvatarData(config); let avatar = Tag.render`<span class="mail-ui-avatar mail-ui-avatar-${config['size']}">${data['abbreviation']}</span>`; avatar.style.backgroundColor = data['color']; return avatar; } static replaceElementWithAvatar(object, avatar) { const parent = object.parentNode; parent.insertBefore(avatar, object); parent.removeChild(object); } static replaceTagsWithAvatars(config = { className: 'mail-ui-avatar' }) { const elements = document.getElementsByClassName(config['className']); for (let element of elements) { this.replaceElementWithAvatar(element, this.build({ fullName: element.getAttribute('user-name'), email: element.getAttribute('email'), })); } } } avatar.js 0000644 00000010435 15150032617 0006363 0 ustar 00 import {ChatTypes, RecentSettings, AvatarSize} from 'im.v2.const'; import {Utils} from 'im.v2.lib.utils'; import 'ui.fonts.opensans'; import './avatar.css'; const DialogType = { user: 'user', chat: 'chat', open: 'open', general: 'general', videoconf: 'videoconf', announcement: 'announcement', call: 'call', support24Notifier: 'support24Notifier', support24Question: 'support24Question', crm: 'crm', sonetGroup: 'sonetGroup', calendar: 'calendar', tasks: 'tasks', thread: 'thread', mail: 'mail' }; export const Avatar = { name: 'Avatar', props: { dialogId: { type: String, default: '0' }, size: { type: String, default: AvatarSize.M }, withAvatarLetters: { type: Boolean, default: true }, withStatus: { type: Boolean, default: true }, withCounter: { type: Boolean, default: false }, withBirthday: { type: Boolean, default: false }, withTyping: { type: Boolean, default: false } }, computed: { dialog() { return this.$store.getters['dialogues/get'](this.dialogId, true); }, user() { return this.$store.getters['users/get'](this.dialogId, true); }, isUser() { return this.dialog.type === ChatTypes.user; }, isBot() { if (this.isUser) { return this.user.bot; } return false; }, isActiveInvitation(): boolean { const recentItem = this.$store.getters['recent/get'](this.dialogId); if (!recentItem) { return false; } return recentItem.invitation.isActive; }, chatAvatarStyle(): Object { return {backgroundImage: `url('${this.dialog.avatar}')`}; }, avatarText(): string { if (![ChatTypes.user, ChatTypes.open, ChatTypes.chat].includes(this.dialog.type)) { return ''; } return Utils.text.getFirstLetters(this.dialog.name); }, chatTypeIconClasses(): string[] { const classes = []; if (DialogType[this.dialog.type]) { classes.push(`bx-im-component-avatar-icon-${this.dialog.type}`); } else { classes.push('bx-im-component-avatar-icon-default'); } return classes; }, userStatusIcon(): string { if (!this.isUser || this.isBot || this.user.id === this.currentUserId) { return ''; } const status = this.$store.getters['users/getStatus'](this.dialogId); if (status) { return status; } return ''; }, isSomeoneTyping() { return Object.keys(this.dialog.writingList).length > 0; }, formattedCounter() { return this.dialog.counter > 99 ? '99+' : this.dialog.counter; }, isChatMuted() { if (this.isUser) { return false; } const isMuted = this.dialog.muteList.find(element => { return element === this.currentUserId; }); return !!isMuted; }, showBirthdays() { return this.$store.getters['recent/getOption'](RecentSettings.showBirthday); }, currentUserId() { return this.$store.state.application.common.userId; }, }, template: ` <div :title="dialog.name" :class="'bx-im-component-avatar-size-' + size.toLowerCase()" class="bx-im-component-avatar-wrap"> <div v-if="isActiveInvitation" class="bx-im-component-avatar-content bx-im-component-avatar-invitation"></div> <div v-else-if="dialog.avatar" :style="chatAvatarStyle" class="bx-im-component-avatar-content bx-im-component-avatar-image"></div> <div v-else-if="withAvatarLetters && avatarText" :style="{backgroundColor: dialog.color}" class="bx-im-component-avatar-content bx-im-component-avatar-text"> {{ avatarText }} </div> <div v-else :style="{backgroundColor: dialog.color}" :class="chatTypeIconClasses" class="bx-im-component-avatar-content bx-im-component-avatar-icon"></div> <div v-if="withTyping && isSomeoneTyping" class="bx-im-component-avatar-user-status-icon bx-im-component-avatar-user-status-icon-typing"></div> <div v-else-if="withBirthday && isUser && showBirthdays && user.isBirthday" class="bx-im-component-avatar-user-status-icon bx-im-component-avatar-user-status-icon-birthday"></div> <div v-else-if="withStatus && userStatusIcon" :class="'bx-im-component-avatar-user-status-icon bx-im-component-avatar-user-status-icon-' + userStatusIcon"></div> <div v-if="withCounter && dialog.counter > 0" :class="{'bx-im-component-avatar-counter-muted': isChatMuted}" class="bx-im-component-avatar-counter"> {{ formattedCounter }} </div> </div> ` }; avatar.css 0000644 00000073457 15150032617 0006554 0 ustar 00 :root { --im-avatar-type-icon-user: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20viewBox%3D%220%200%2018%2020%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20d%3D%22M16.79%2015.354c0-.77-1.026-1.65-3.047-2.163a6.926%206.926%200%200%201-1.929-.862c-.13-.072-.11-.745-.11-.745l-.65-.097c0-.055-.056-.862-.056-.862.779-.257.698-1.772.698-1.772.495.27.817-.93.817-.93.585-1.665-.291-1.564-.291-1.564.153-1.017.153-2.05%200-3.067-.39-3.373-6.254-2.457-5.559-1.356-1.713-.31-1.322%203.518-1.322%203.518l.371.991c-.73.465-.222%201.027-.197%201.674.036.955.632.757.632.757.036%201.577.828%201.782.828%201.782.149.99.056.822.056.822l-.705.083a2.7%202.7%200%200%201-.055.672c-.829.362-1.007.575-1.83.93-1.592.684-3.321%201.574-3.629%202.772C.505%2017.136.22%2019.746.22%2019.746h17.433l-.862-4.392z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22/%3E%3C/svg%3E'); --im-avatar-type-icon-chat: url('data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2225%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.2%2011V7.6C18.2%203.4%2014.6%200%2010%200S1.8%203.4%201.8%207.6V11H0v14h20V11h-1.8zm-6.644%2010H8.444l.445-3.8C8.222%2017%208%2016.4%208%2015.8c0-1%20.889-1.8%202-1.8s2%20.8%202%201.8c0%20.6-.444%201.2-.889%201.4l.445%203.8zm3.252-10H5V7.683C5%205.146%207.308%203%2010%203s5%202.146%205%204.683V11h-.192z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E'); --im-avatar-type-icon-open: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20viewBox%3D%220%200%2019%2015%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20d%3D%22M12.03%2011.929v1.394a.7.7%200%200%201-.7.7H5.892a.7.7%200%200%201-.7-.7V9.987L3.899%209.62l-2.225.525v.353a.5.5%200%200%201-.5.5H.676a.5.5%200%200%201-.5-.5V4.242a.5.5%200%200%201%20.5-.5h.498a.5.5%200%200%201%20.5.5v.335l2.3.505L16.31%201.595v-.127a.5.5%200%200%201%20.5-.5h1.45a.5.5%200%200%201%20.5.5v11.804a.5.5%200%200%201-.5.5h-1.45a.5.5%200%200%201-.5-.5v-.128l-4.28-1.215zm-1.368-.389L6.56%2010.375v2.333h4.103V11.54z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22/%3E%3C/svg%3E'); --im-avatar-type-icon-general: url('data:image/svg+xml,%3Csvg%20width%3D%2223%22%20height%3D%2222%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2.126%202.42C4.35-.058%2018.917.094%2020.909%202.42c1.992%202.326%202.348%2011.871%200%2014.048-.447.414-1.324.73-2.468.958-.025%201.405-.127%204.254-.54%204.254-.377%200-3.044-2.325-4.678-3.782-4.67.086-9.877-.491-11.097-1.43-2.132-1.64-2.224-11.57%200-14.048zm1.323%2010.873c.763.131%201.818.241%203.037.325.076-.328.173-.706.242-.977.05-.197.086-.338.09-.362.016-.469.65-.888%201.34-1.174a1.303%201.303%200%2001-.134-.23.898.898%200%2000-.366-.277l-.01-.367.757-.243s.196-.093.214-.093a.893.893%200%2000-.083-.16%2016.675%2016.675%200%2001-.097-.302L8.43%209.4c.11.145.239.273.384.383a4.902%204.902%200%2001-.336-.749c-.06-.249-.1-.502-.12-.758a11.145%2011.145%200%2000-.244-1.379%201.3%201.3%200%2000-.4-.577%201.831%201.831%200%2000-.917-.333h-.038c-.33.026-.648.141-.918.333a1.296%201.296%200%2000-.4.577c-.11.454-.191.915-.243%201.38-.023.25-.066.497-.126.74-.091.263-.202.52-.33.766.145-.109.275-.237.385-.382%200%200-.071.268-.086.307-.039.06-.074.122-.104.187.02%200%20.215.093.215.093l.758.242-.011.367a.895.895%200%2000-.367.276.802.802%200%2001-.212.307%203.005%203.005%200%2000-.525.246c-.253.143-.53.237-.819.274-.29.048-.473.527-.473.527l-.053%201.065zm3.835.376c2.628.15%205.83.186%208.492.07a65.86%2065.86%200%2000-.295-1.193s-.515-.862-1.53-1.13a3.42%203.42%200%2001-.97-.45.876.876%200%2001-.054-.39l-.326-.05c0-.03-.028-.45-.028-.45.391-.135.351-.926.351-.926.248.14.41-.485.41-.485.294-.87-.146-.817-.146-.817a5.59%205.59%200%20000-1.602c-.196-1.762-3.14-1.284-2.79-.708-.861-.163-.665%201.837-.665%201.837l.187.517c-.259.171-.208.368-.152.588.024.091.049.187.052.287.018.499.317.395.317.395.018.824.416.932.416.932.074.517.028.428.028.428l-.354.044c.005.117-.004.235-.028.35a4.342%204.342%200%2000-.455.242%204.09%204.09%200%2001-.464.243c-.799.357-1.667.823-1.821%201.449-.042.168-.105.468-.175.819zm9.293.029c1.176-.069%202.212-.171%202.999-.312l-.058-1.172s-.182-.475-.47-.524a2.227%202.227%200%2001-.814-.272%202.974%202.974%200%2000-.522-.244.798.798%200%2001-.21-.305.887.887%200%2000-.364-.274l-.011-.365.753-.24s.194-.093.213-.093a1.482%201.482%200%2000-.104-.185c-.014-.039-.085-.305-.085-.305.11.143.239.271.384.379a5.532%205.532%200%2001-.329-.76%204.934%204.934%200%2001-.125-.737%2011.138%2011.138%200%2000-.241-1.37%201.287%201.287%200%2000-.398-.573%201.822%201.822%200%2000-.912-.33h-.037a1.82%201.82%200%2000-.912.33c-.182.15-.32.35-.398.573-.109.451-.19.91-.24%201.37-.02.254-.06.506-.12.753-.09.257-.203.506-.334.744.143-.109.305-.38.305-.38s-.015.291-.03.33a.886.886%200%2000-.083.16c.019%200%20.213.093.213.093l.753.241-.011.365c-.143.058-.445.28-.497.351.686.285%201.316.853%201.332%201.32.003.023.04.164.09.363.076.298.185.723.263%201.069z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E'); --im-avatar-type-icon-videoconf: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2222%22%20height%3D%2213%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M14.318.898A27.29%2027.29%200%20007.904.125c-2.147%200-4.337.26-6.57.779-.48.111-.82.548-.82%201.053v8.623c0%20.488.319.915.778%201.042%202.134.59%204.269.886%206.404.886%202.147%200%204.361-.299%206.641-.896.466-.122.793-.552.793-1.046V1.948c0-.5-.337-.936-.812-1.05zm7.388.37a.33.33%200%2000-.02-.116.314.314%200%2000-.408-.188L16.51%202.82a.324.324%200%2000-.203.302v5.853c0%20.135.08.255.203.303l4.767%201.855a.31.31%200%2000.112.02.32.32%200%2000.316-.323V1.267zM7.739%207.294a1.034%201.034%200%20100-2.068%201.034%201.034%200%20000%202.068zm-3.336%200a1.034%201.034%200%20100-2.068%201.034%201.034%200%20000%202.068zm7.708-1.034a1.034%201.034%200%2011-2.068%200%201.034%201.034%200%20012.068%200z%22%20fill%3D%22%23fff%22/%3E%3C/svg%3E'); --im-avatar-type-icon-announcement: url('data:image/svg+xml,%3Csvg%20width%3D%2223%22%20height%3D%2223%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M11.5%200C6.598%200%202.64%202.944.754%207.176v.184C.19%208.648%200%2010.12%200%2011.592%200%2017.848%205.09%2023%2011.5%2023S23%2017.848%2023%2011.592C23%205.336%2017.91%200%2011.5%200zm8.86%206.624H16.78c-.377-1.84-1.131-3.496-1.886-4.784%202.263.92%204.337%202.576%205.468%204.784zm-4.712%204.968c0%20.736%200%201.656-.189%202.392H7.352c-.188-.736-.188-1.656-.188-2.392%200-1.104.188-2.208.188-3.128h7.73c.377.92.566%202.024.566%203.128zM11.5%201.472c1.32%200%202.828%202.024%203.582%205.336H7.918c.754-3.312%202.262-5.336%203.582-5.336zm-3.205.552c-.754%201.104-1.508%202.76-1.885%204.784H2.828C3.959%204.416%205.844%202.76%208.295%202.024zm-6.787%209.568c0-1.104.189-2.208.566-3.128H6.22c-.188.92-.188%202.024-.188%203.128%200%20.736%200%201.656.188%202.392H2.074c-.377-.92-.566-1.656-.566-2.392zm.754%203.864h3.77c.378%202.208%201.132%204.232%202.075%205.52-2.451-.92-4.714-2.944-5.845-5.52zm9.238%206.072c-1.508%200-3.016-2.392-3.77-6.072h7.54c-.754%203.68-2.262%206.072-3.77%206.072zm3.205-.552c.943-1.288%201.697-3.312%202.074-5.52h3.77c-.942%202.576-3.205%204.6-5.844%205.52zm6.221-7.176h-3.959c.189-.736.189-1.656.189-2.392%200-1.104-.189-2.208-.189-3.128h4.148c.377.92.565%202.024.565%203.128%200%20.736-.188%201.656-.377%202.392h-.377z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E'); --im-avatar-type-icon-call: url('data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2222%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.586%2017.024c.583.588.566%201.56-.039%202.168l-.838.824L17.69%2020c-.354.278-.762.51-1.199.682a4.946%204.946%200%2001-1.223.308c-.192.02-4.632.438-10.142-5.092C1.14%2011.897-.329%208.948.059%205.721c.045-.402.144-.803.303-1.224.173-.442.405-.852.682-1.208l-.022-.022.827-.836c.606-.608%201.575-.626%202.159-.04l2.936%202.948c.583.586.567%201.558-.04%202.167l-.488.49-.992.995.159.287c.519.938%201.229%202.223%202.578%203.578%201.346%201.351%202.624%202.063%203.558%202.583l.292.163%201.48-1.485c.605-.607%201.573-.625%202.158-.04l2.936%202.947h.001zM10.88%201.54a.794.794%200%2001.537-1.493c3.99%201.44%206.67%204.355%207.998%208.683a.793.793%200%2011-1.515.466c-1.184-3.86-3.509-6.39-7.02-7.656zM9.65%205.345a.794.794%200%2001.6-1.468c2.427.994%204.215%202.839%205.342%205.492a.792.792%200%2011-1.458.621c-.968-2.279-2.455-3.813-4.484-4.645z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E'); --im-avatar-type-icon-support24: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20viewBox%3D%220%200%2019%2013%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20d%3D%22M6.198%203.918c0-1.066-.882-1.44-1.82-1.44-1.258%200-2.29.411-3.248.841L.473%201.355C1.543.87%203.026.327%204.791.327c2.759%200%204.091%201.384%204.091%203.329%200%203.404-4.692%204.358-5.48%206.958h5.65v2.17H.06C.567%206.705%206.198%206.35%206.198%203.918zm6.814%203.872h1.126V6.462c0-.954.075-2.058.113-2.3l-2.797%203.684a30.661%2030.661%200%200%201%201.558-.056zM8.6%208.22L14.795.364h1.84V7.79h1.839v2.057h-1.84v2.937h-2.496V9.847H8.601V8.22z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22/%3E%3C/svg%3E'); --im-avatar-type-icon-crm: url('data:image/svg+xml,%3Csvg%20width%3D%2226%22%20height%3D%2218%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M14.679%206.27a.889.889%200%2000-.276-.196.772.772%200%2000-.652%200%20.87.87%200%2000-.274.197.977.977%200%2000-.186.285.808.808%200%2000-.069.329c.005.23.096.45.254.618.079.08.169.144.275.193a.776.776%200%2000.652%200%20.898.898%200%2000.53-.811.823.823%200%2000-.069-.329.993.993%200%2000-.185-.285V6.27zm9.214%209.973H6.733v-2.439H19.12c.31%200%20.719-.409.719-.719V5.28h4.054v10.963zM5.774%2010.797c-.723-.023-1.282-.028-1.84-.063-.654-.042-1.308-.099-1.936-.298-.12-.036-.233-.093-.347-.144-.1-.045-.148-.118-.131-.23.045-.307.063-.62.135-.92.098-.419.372-.696.8-.844.562-.193%201.115-.406%201.668-.619.331-.126.54-.415.532-.715a.23.23%200%2000-.055-.141%202.75%202.75%200%2001-.743-1.504c-.074-.498-.079-.998.083-1.484.2-.603.623-.967%201.273-1.083.4-.072.791-.05%201.17.09.55.204.845.617.978%201.152.1.41.096.819.047%201.235a2.71%202.71%200%2001-.582%201.392c-.041.053-.08.11-.13.153-.09.075-.113.162-.075.266.043.12.088.241.14.359a.42.42%200%2000.247.226c.526.199%201.051.396%201.576.598.187.072.38.137.55.237.289.171.428.454.488.764.058.291.076.59.114.884.008.066-.022.102-.075.139a1.83%201.83%200%2001-.709.267c-.411.075-.827.146-1.242.179-.698.055-1.398.077-1.936.104zm4.912-5.628c.189-.432.439-.671.755-.975l.083-.08a3.95%203.95%200%20011.251-.808c.477-.195%201-.294%201.555-.294.512%200%20.995.086%201.436.256.443.17.832.408%201.158.705.326.299.586.654.773%201.056.187.404.282.84.282%201.296%200%20.386-.05.743-.147%201.063a2.58%202.58%200%2001-.424.837c-.178.23-.406.418-.666.549-.272.132-.57.198-.873.194a.889.889%200%2001-.495-.143%201.258%201.258%200%2001-.32-.302c-.19.178-.376.293-.553.344-.428.123-.793.112-1.197-.07a2.11%202.11%200%2001-.61-.42%202.326%202.326%200%2001-.458-.646%201.89%201.89%200%2001-.185-.837c0-.296.058-.572.175-.82.116-.25.27-.465.456-.64a2%202%200%2001.644-.411c.241-.098.492-.146.742-.146.278%200%20.526.054.736.162.145.075.265.168.358.277l.063-.356h1.01l-.01.088-.279%202.322c-.018.144-.028.29-.028.44%200%20.043.01.075.029.097.02.026.038.03.052.03a.56.56%200%2000.35-.125c.112-.086.211-.203.296-.35.09-.16.159-.333.202-.512.048-.19.072-.39.072-.597%200-.34-.066-.656-.198-.937a2.119%202.119%200%2000-.544-.719%202.51%202.51%200%2000-.818-.462%203.117%203.117%200%2000-1.02-.164c-.418%200-.808.073-1.16.214-.34.133-.651.33-.917.58a2.644%202.644%200%2000-.604.875c-.145.345-.22.715-.218%201.089%200%20.434.08.828.237%201.172.157.342.37.634.637.868.268.235.585.416.945.54.36.124.748.187%201.155.187.242%200%20.456-.008.637-.023.18-.015.353-.044.514-.086.162-.043.317-.102.46-.172.17-.085.333-.18.491-.285l.07-.046.555%201-.063.039c-.383.238-.79.418-1.209.536a5.74%205.74%200%2001-1.446.174c-.65%200-1.273-.107-1.754-.303a3.82%203.82%200%2001-1.27-.83c-.388-.387-.655-.918-.81-1.296a3.864%203.864%200%2001-.285-1.475c0-.584.206-1.26.382-1.66zM24.669%203.78l-4.83.02V.719c0-.31-.41-.719-.72-.719H.72C.41%200%200%20.409%200%20.719v12.366c0%20.31.41.72.72.72h4.596v3.14c0%20.31.409.719.72.719l18.633-.077c.31%200%20.719-.255.719-.72V4.501c0-.155-.41-.72-.72-.72l.001-.001z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E'); --im-avatar-type-icon-group: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M55.03%2042.705s-.474%201.492-.55%201.692c-.171.256-.316.53-.432.816.1%200%201.107.47%201.107.47l3.917%201.227-.057%201.86a4.639%204.639%200%2000-1.894%201.4c-.19.413-.42.805-.69%201.17%203.568%201.45%205.655%203.573%205.74%205.949.058.423%202.223%208.206%202.347%209.959H81c.014-.073-.5-10.142-.5-10.217%200%200-.946-2.425-2.446-2.672a11.739%2011.739%200%2001-4.233-1.388%2015.618%2015.618%200%2000-2.721-1.252%204.069%204.069%200%2001-1.095-1.555%204.616%204.616%200%2000-1.894-1.4l-.056-1.861%203.917-1.226s1.01-.471%201.107-.471a7.533%207.533%200%2000-.54-.947c-.074-.2-.443-1.554-.443-1.554a10.07%2010.07%200%20001.992%201.933%2027.952%2027.952%200%2001-1.708-3.877%2024.708%2024.708%200%2001-.653-3.754%2055.8%2055.8%200%2000-1.255-6.987%206.567%206.567%200%2000-2.072-2.923%209.593%209.593%200%2000-4.742-1.685h-.2c-1.7.13-3.334.712-4.733%201.685a6.589%206.589%200%2000-2.071%202.925%2055.45%2055.45%200%2000-1.254%206.987%2024.1%2024.1%200%2001-.622%203.84%2024.6%2024.6%200%2001-1.737%203.792%2010.093%2010.093%200%20001.988-1.936z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M60.272%2057.434c0-1.84-2.4-3.941-7.135-5.165a16.073%2016.073%200%2001-4.517-2.057c-.3-.174-.258-1.78-.258-1.78l-1.525-.235c0-.131-.13-2.057-.13-2.057%201.824-.613%201.636-4.23%201.636-4.23%201.158.645%201.912-2.213%201.912-2.213%201.37-3.976-.682-3.736-.682-3.736a25.034%2025.034%200%20000-7.323c-.912-8.054-14.646-5.868-13.018-3.241-4.014-.744-3.1%208.4-3.1%208.4l.87%202.364c-1.71%201.108-.521%202.45-.463%204%20.084%202.28%201.476%201.808%201.476%201.808.086%203.764%201.939%204.259%201.939%204.259.349%202.364.132%201.962.132%201.962l-1.651.2a6.565%206.565%200%2001-.13%201.6c-1.945.866-2.36%201.374-4.287%202.219-3.726%201.634-7.777%203.76-8.5%206.62C22.118%2061.692%2021%2070.998%2021%2070.998h42l-2.73-13.563z%22%2F%3E%3C%2Fsvg%3E'); --im-avatar-type-icon-calendar: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2216%22%20height%3D%2217%22%3E%3Cpath%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%20d%3D%22M2.12%2013.822h11.687V5.065H2.12v8.757zM12.75%201.696h1.217c1.113.07%201.974%201.041%201.954%202.204v11.024c0%20.609-.472%201.103-1.057%201.103h-13.8c-.584%200-1.058-.494-1.058-1.103V3.9A2.3%202.3%200%200%201%200%203.73c.002-1.126.88-2.037%201.96-2.034h1.218v.55c0%20.913.71%201.654%201.586%201.654.876%200%201.585-.74%201.585-1.653v-.551h3.23v.55c0%20.913.71%201.654%201.585%201.654s1.586-.74%201.586-1.653v-.551zm-7.21.332c0%20.448-.347.81-.776.81-.43%200-.777-.362-.777-.81V.805c.002-.447.353-.807.782-.805.43.003.774.368.772.816v1.212zm6.358-.033c0%20.423-.33.765-.735.765-.406%200-.733-.344-.733-.766V.846c0-.424.329-.766.734-.766.405%200%20.734.342.734.766v1.15zM4.515%207.04h1a.5.5%200%200%201%20.5.5v1a.5.5%200%200%201-.5.5h-1a.5.5%200%200%201-.5-.5v-1a.5.5%200%200%201%20.5-.5zm0%203h1a.5.5%200%200%201%20.5.5v1a.5.5%200%200%201-.5.5h-1a.5.5%200%200%201-.5-.5v-1a.5.5%200%200%201%20.5-.5zm3-3h1a.5.5%200%200%201%20.5.5v1a.5.5%200%200%201-.5.5h-1a.5.5%200%200%201-.5-.5v-1a.5.5%200%200%201%20.5-.5zm0%203h1a.5.5%200%200%201%20.5.5v1a.5.5%200%200%201-.5.5h-1a.5.5%200%200%201-.5-.5v-1a.5.5%200%200%201%20.5-.5zm3-3h1a.5.5%200%200%201%20.5.5v1a.5.5%200%200%201-.5.5h-1a.5.5%200%200%201-.5-.5v-1a.5.5%200%200%201%20.5-.5z%22/%3E%3C/svg%3E'); --im-avatar-type-icon-task: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2216%22%20height%3D%2215%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20d%3D%22M11.118%2012.79V9.928h2.643V2.22H3.19v7.707h2.642v2.862h5.285zM2.31.018h12.332c.73%200%201.32.592%201.32%201.322V13.67c0%20.73-.59%201.321-1.32%201.321H2.31c-.73%200-1.321-.591-1.321-1.32V1.34C.989.61%201.58.018%202.31.018zm4.102%205.693L7.645%206.99l3.083-3.127.88%201.32-3.963%203.965-2.202-2.203.969-1.233z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%20/%3E%3C/svg%3E'); --im-avatar-type-icon-thread: url('data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2225%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.2%2011V7.6C18.2%203.4%2014.6%200%2010%200S1.8%203.4%201.8%207.6V11H0v14h20V11h-1.8zm-6.644%2010H8.444l.445-3.8C8.222%2017%208%2016.4%208%2015.8c0-1%20.889-1.8%202-1.8s2%20.8%202%201.8c0%20.6-.444%201.2-.889%201.4l.445%203.8zm3.252-10H5V7.683C5%205.146%207.308%203%2010%203s5%202.146%205%204.683V11h-.192z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E'); --im-avatar-type-icon-mail: url('data:image/svg+xml,%3Csvg%20width%3D%2215%22%20height%3D%2211%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M13.176%200H1.578A1.621%201.621%200%200%200%20.002%201.644V9.27c-.038.86.63%201.591%201.5%201.644h11.703a1.621%201.621%200%200%200%201.576-1.643V1.675A1.674%201.674%200%200%200%2013.176%200Zm-1.398%201.518L7.35%205.022%202.921%201.518h8.862-.005Zm1.547%207.211a.456.456%200%200%201-.133.338.493.493%200%200%201-.344.145H1.915a.482.482%200%200%201-.332-.15.445.445%200%200%201-.121-.333V2.48c.05.067.11.128.178.181l5.234%204.017a.621.621%200%200%200%20.386.151h.238a.88.88%200%200%200%20.387-.151l5.233-4.017a.81.81%200%200%200%20.207-.244V8.73Z%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E'); } .bx-im-component-avatar-wrap { position: relative; } .bx-im-component-avatar-size-l.bx-im-component-avatar-wrap { width: 45px; height: 45px; } .bx-im-component-avatar-size-m.bx-im-component-avatar-wrap { width: 34px; height: 34px; } .bx-im-component-avatar-content { width: 100%; height: 100%; border-radius: 50%; } .bx-im-component-avatar-image { background-size: cover; background-repeat: no-repeat; } /* Avatar text */ .bx-im-component-avatar-text { display: flex; align-items: center; justify-content: center; color: #fff; font-size: 18px; text-transform: uppercase; } .bx-im-component-avatar-size-m .bx-im-component-avatar-text { font-size: 14px; } /* End avatar text */ /* Chat type icons */ .bx-im-component-avatar-icon { background-size: 24px; background-position: center; background-repeat: no-repeat; } .bx-im-component-avatar-size-m .bx-im-component-avatar-icon { background-size: 20px; } .bx-im-component-avatar-icon-user { background-image: var(--im-avatar-type-icon-user); } .bx-im-component-avatar-icon-default, .bx-im-component-avatar-icon-chat { background-size: 20px; background-image: var(--im-avatar-type-icon-chat); } .bx-im-component-avatar-icon-open { background-image: var(--im-avatar-type-icon-open); } .bx-im-component-avatar-icon-general { background-image: var(--im-avatar-type-icon-general); background-size: 27px; } .bx-im-component-avatar-icon-videoconf { background-image: var(--im-avatar-type-icon-videoconf); } .bx-im-component-avatar-icon-announcement { background-image: var(--im-avatar-type-icon-announcement); } .bx-im-component-avatar-icon-call { background-image: var(--im-avatar-type-icon-call); } .bx-im-component-avatar-icon-support24Notifier, .bx-im-component-avatar-icon-support24Question { background-image: var(--im-avatar-type-icon-support24); background-size: 30px; background-color: #0165af!important; } .bx-im-component-avatar-icon-crm { background-image: var(--im-avatar-type-icon-crm); } .bx-im-component-avatar-icon-sonetGroup { background-size: 42px; background-image: var(--im-avatar-type-icon-group); } .bx-im-component-avatar-icon-calendar { background-size: 23px; background-image: var(--im-avatar-type-icon-calendar); } .bx-im-component-avatar-icon-tasks { background-size: 25px; background-image: var(--im-avatar-type-icon-task); } .bx-im-component-avatar-icon-thread { background-size: 20px; background-image: var(--im-avatar-type-icon-thread); } .bx-im-component-avatar-icon-mail { background-image: var(--im-avatar-type-icon-mail); } .bx-im-component-avatar-size-m .bx-im-component-avatar-icon-general { background-size: 24px; } .bx-im-component-avatar-size-m .bx-im-component-avatar-icon-tasks { background-size: 21px; } .bx-im-component-avatar-size-m .bx-im-component-avatar-icon-sonetGroup { background-size: 34px; } .bx-im-component-avatar-size-m .bx-im-component-avatar-icon-chat, .bx-im-component-avatar-size-m .bx-im-component-avatar-icon-thread { background-size: 14px; } .bx-im-component-avatar-size-m .bx-im-component-avatar-icon-support24Notifier, .bx-im-component-avatar-size-m .bx-im-component-avatar-icon-support24Question { background-size: 24px; } /* End chat type icons */ /* Status icons */ .bx-im-component-avatar-user-status-icon { position: absolute; height: 12px; width: 12px; } .bx-im-component-avatar-size-l .bx-im-component-avatar-user-status-icon { top: 34px; left: 32px; } .bx-im-component-avatar-size-m .bx-im-component-avatar-user-status-icon { top: 24px; left: 25px; } .bx-im-component-avatar-user-status-icon-typing { background-color: #fff; border: 1px solid #fff; border-radius: 50%; height: 12px; width: 12px; } .bx-im-component-avatar-user-status-icon-typing:before { background-image: url(data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.312%200L8.617%201.595v.1l3.688%203.688h.1L14%203.788v-.1L10.312%200zm-3.09%202.99L.044%2010.169c-.1.1%200%203.788%200%203.788s3.689.1%203.788%200l7.177-7.178v-.1L7.222%202.992c.1%200%20.1%200%200%200zm-3.689%209.37H1.84v-1.694h1.694v1.695z%22%20fill%3D%22%23757C82%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E); background-repeat: no-repeat; background-size: 7px; background-position: 0 3px; content: ''; height: 16px; position: absolute; width: 19px; margin-top: -1px; margin-left: 1px; animation: imAvatarTyping 1.6s linear infinite; } @keyframes imAvatarTyping { 0% { background-position-x: 0; } 20% { background-position-x: 3px; transform:rotate(-20deg); } 35% { background-position-x: 3px; transform:rotate(0deg); } 50% { background-position-x: 1px; transform:rotate(-30deg); } 65% { background-position-x: 3px; transform:rotate(0deg); } 80% { background-position-x: 3px; } 100% { background-position-x: 0; } } .bx-im-component-avatar-user-status-icon-mobile-online { width: 9px; height: 13px; background-size: 12px; background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2219%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M11.853.003c.667%200%201.211.55%201.211%201.22v15.585c0%20.671-.544%201.22-1.21%201.22H2.3a1.219%201.219%200%2001-1.211-1.22V1.223c0-.67.545-1.22%201.21-1.22h9.554zM7.077%2015.117a.98.98%200%20100%201.958.98.98%200%20000-1.958z%22%20fill%3D%22%233D7CCD%22%2F%3E%3Cpath%20d%3D%22M2.82%2014.257c-.115%200-.21-.089-.21-.197V2.965c0-.108.095-.196.21-.196h8.454c.115%200%20.21.088.21.196V14.06c0%20.108-.095.197-.21.197H2.82z%22%20fill%3D%22%23DDE4EE%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; background-position: center; background-color: #fff; border-radius: 2px; border: 1px solid #fff; } .bx-im-component-avatar-user-status-icon-away { background-color: #f79d54; border-radius: 50%; border: 1px solid #fff; } .bx-im-component-avatar-user-status-icon-dnd { background-image: url('data:image/svg+xml,%3Csvg%20width%3D%2221%22%20height%3D%2221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%23EC5961%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M10.1%201.1c-4.9%200-9%204-9%209s4%209%209%209c4.9%200%209-4%209-9s-4.1-9-9-9zm0%202.6c1.1%200%202.2.3%203.1.8l-8.6%208.6c-.5-.9-.8-2-.8-3.1-.1-3.5%202.8-6.3%206.3-6.3zm0%2012.7c-1.2%200-2.2-.3-3.2-.9l8.6-8.6c.5.9.9%202%20.9%203.2%200%203.4-2.8%206.3-6.3%206.3z%22%2F%3E%3Cpath%20d%3D%22M10%200C4.556%200%200%204.444%200%2010s4.444%2010%2010%2010c5.444%200%2010-4.444%2010-10S15.444%200%2010%200zm.373%203c1.287%200%202.574.351%203.627.936L3.939%2014a7.603%207.603%200%2001-.936-3.628C2.886%206.277%206.279%203%2010.373%203zm-.668%2014c-1.39%200-2.547-.347-3.705-1.042L15.958%206C16.537%207.042%2017%208.316%2017%209.705%2017%2013.642%2013.758%2017%209.705%2017z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); background-repeat: no-repeat; background-position: center; background-size: 14px; border-radius: 50%; background-color: #fff; border: 1px solid #fff; } .bx-im-component-avatar-user-status-icon-break { background-image: url(data:image/svg+xml,%3Csvg%20width%3D%2213%22%20height%3D%2215%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M5.538%207h4.681c0%20.31-.01.608-.025.896.717-.141%201.906.042%202.027%201.2.15%201.445-2.04%203.188-3.282%203.668-.706.41-.66.409-1.035.665-1.027.705-3.729.832-4.464%200C2.706%2012.597.856%2011.411.856%207h4.682zm4.916%201.773a.576.576%200%2000-.33.106c-.115%201.088-.332%201.772-.605%202.54.904-.492%201.42-1.14%201.571-1.63.133-.434.045-1.016-.636-1.016z%22%20fill-rule%3D%22nonzero%22%2F%3E%3Cpath%20d%3D%22M4.321%203.222c-.082.516.036.88.355%201.093.813.541%201.324.892%201.428%201.258.148.51-.057.87-.612%201.076.102-.431.01-.77-.275-1.015C4.634%205.13%203.88%204.71%203.782%204.42c-.158-.467.022-.867.54-1.199zm.79-2.894c-.146.912.062%201.555.626%201.931%201.437.958%202.34%201.578%202.526%202.225.26.904-.103%201.538-1.084%201.902.179-.762.017-1.36-.486-1.794-1.03-.89-2.364-1.632-2.537-2.145-.28-.826.039-1.532.955-2.12z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E); background-repeat: no-repeat; background-position: center; background-color: #b98312; background-size: 10px; border-radius: 50%; border: 1px solid #fff; } .bx-im-component-avatar-user-status-icon-idle { background-image: url(data:image/svg+xml,%3Csvg%20width%3D%227%22%20height%3D%228%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M3%205V0H0v8h7V5z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E); background-size: 4px; background-color: #ff923a; background-position: 5px 3px; background-repeat: no-repeat; border-radius: 50%; border: 1px solid #fff; } .bx-im-component-avatar-user-status-icon-invitation { background-color: #01c8fb; background-image: url(data:image/svg+xml,%3Csvg%20width%3D%2210%22%20height%3D%2210%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M9.969%201.712v6.721c0%20.346-.319.627-.714.627H.758c-.394%200-.714-.28-.714-.627V1.712l4.963%204.18%204.962-4.18zM9.206.84l-4.2%203.576L.809.84h8.398z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E); background-position: center; background-size: 7px; background-repeat: no-repeat; border-radius: 50%; border: 1px solid #fff; } .bx-im-component-avatar-user-status-icon-birthday { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2211%22%20height%3D%2211%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Ccircle%20cx%3D%225.5%22%20cy%3D%225.5%22%20r%3D%225.5%22%20fill%3D%22%23EDEEF0%22/%3E%3Cpath%20fill%3D%22%236DAA3A%22%20d%3D%22M2.614%209.286h2.29v-2.27h-2.29v2.27zm-.953-3.232h3.247V4.637H1.661v1.417zm4.261%203.232h2.29v-2.27h-2.29v2.27zm-.028-4.65v1.418H9.14V4.637H5.894zm1.332-.487a1.45%201.45%200%201%200-1.45-1.45c0%20.222-.005.682-.01.947h-.711c-.005-.27-.005-.668-.005-.867a1.45%201.45%200%201%200-1.45%201.45h1.27v.398h1.01V4.15h.194%201.152zm-.849-1.45a.848.848%200%201%201%20.849.848h-.853c.004-.27.004-.65.004-.849zm-2.782.923a.848.848%200%201%201%20.849-.848c0%20.2.004.578.004.848-.275.005-.663%200-.853%200z%22/%3E%3C/g%3E%3C/svg%3E'); background-repeat: no-repeat; background-position: center; } /* End status icons */ /* Counter */ .bx-im-component-avatar-counter { position: absolute; top: 0; right: -4px; display: inline-block; text-align: center; font: 10px/13px var(--ui-font-family-secondary, var(--ui-font-family-open-sans)); font-weight: var(--ui-font-weight-semi-bold, 600); color: #f7f6f6; background-color: #f84932; opacity: 0.9; border-radius: 10px; height: 13px; min-width: 10px; padding: 0 3px; } .bx-im-component-avatar-counter-muted { background-color: #888; } /* End counter */ /* Invitation */ .bx-im-component-avatar-invitation { background-image: url(data:image/svg+xml,%3Csvg%20width%3D%2222%22%20height%3D%2216%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.074%202.023c.125.83.125%201.675%200%202.506h.03c.13.002.626.088.208%201.28%200%200-.263.979-.667.759%200%200%20.065%201.238-.571%201.448%200%200%20.036.52.044.668l.001.036.532.08v.144c.003.167.02.425.09.464a5.66%205.66%200%20001.576.704c1.569.399%202.404%201.068%202.484%201.673l.006.095.444%202.259c-1.91.8-4.128%201.28-6.5%201.33h-.833c-2.366-.05-4.578-.527-6.486-1.325.088-.624.201-1.331.318-1.787.251-.98%201.664-1.707%202.965-2.266.673-.29.818-.464%201.496-.76.025-.12.04-.242.045-.365v-.184l.576-.068s.076.138-.046-.671c0%200-.647-.168-.677-1.457%200%200-.487.162-.516-.618-.02-.494-.382-.927.055-1.291l.106-.077-.303-.81-.004-.04C4.416%203.388%204.224.679%205.532.915c-.569-.9%204.223-1.649%204.542%201.108zM18.512.669a4.824%204.824%200%20013.022%204.475%204.73%204.73%200%2001-4.632%204.82A4.824%204.824%200%201118.512.67zm-4.326%202.05a3.5%203.5%200%20002.664%205.923%203.432%203.432%200%20003.361-3.498%203.5%203.5%200%2000-6.025-2.425zm2.98-.003v1.96h1.961v1.308H15.86V2.716h1.307z%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E); background-color: #00C8FB; background-size: 28px; background-position: center; background-repeat: no-repeat; } .bx-im-component-avatar-size-m .bx-im-component-avatar-invitation { background-size: 24px; } /* End invitation */ template.php 0000644 00000000450 15152501325 0007066 0 ustar 00 <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? if(!empty($arResult)) { if(!empty($arResult["Avatar_FORMATED"])) { ?> <ul> <li class="blog-tags"> <div class="blog-sidebar-avatar"> <?=$arResult["Avatar_FORMATED"]?> </div> </li> </ul> <? } } ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings