Server IP : 108.163.255.210 / Your IP : 3.137.200.56 Web Server : Apache System : Linux blossom.urlnameserver.com 3.10.0-1160.80.1.el7.x86_64 #1 SMP Tue Nov 8 15:48:59 UTC 2022 x86_64 User : ( 1172) PHP Version : 7.2.34 Disable Function : eval,escapeshellarg,proc_close,proc_get_status,proc_nice,proc_open,symlink,system,pcntl_exec,getrusage,chown,chgp,closelog,openlog,syslog,define_syslog_variables,php_ini_loaded_file,getservbyname,getservbyport,posix_getgid,posix_getgrgid,proc_terminate,pfsockopen,apache_child_terminate,posix_mkfifo,posix_setpgid,posix_setuid,hypot,pg_host,pos,posix_access,posix_getcwd,posix_getservbyname,myshellexec,getpid,posix_getsid,posix_isatty,posix_kill,posix_mknod,posix_setgid,posix_setsid,posix_setuid,posix_times,posix_uname,ps_fill,posix_getpwuid,global,ini_restore,zip_open,zip_read,rar_open,bzopen,bzread,bzwrite,apache_get_modules,apache_get_version,phpversionphpinfo,php_ini_scanned_files,get_current_user,disk_total_space,diskfreespace,leak,imap_list,hypo,filedump,safe_mode,getmygid,apache_getenv,apache_setenv,bzread,bzwrite,bzopen,phpini,higlight_file,dos_conv,get_cwd,er_log,cmd,e_name,vdir,get_dir,only_read,ftok,ftpexec,posix_getpwnam,mysql_list_dbs,disk_free_space,session_save_path,confirm_phpdoc_compiled,zip_entry_rea,php_u,psockopen,crack_opendict,crack_getlastmessage,crack_closedict,crack_check,fpassthru,posix_get_last_error,posix_getlogin,posix_getgroups,posix_strerror,posix_getrlimit,posix_getpgrp,posix_getgrnam,pos,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/unilinki/public_html/indijourneys.com/node_modules/svgo/plugins/ |
Upload File : |
'use strict'; var DEFAULT_SEPARATOR = ':'; exports.type = 'perItem'; exports.active = false; exports.description = 'removes specified attributes'; exports.params = { elemSeparator: DEFAULT_SEPARATOR, preserveCurrentColor: false, attrs: [] }; /** * Remove attributes * * @param elemSeparator * format: string * * @param preserveCurrentColor * format: boolean * * @param attrs: * * format: [ element* : attribute* : value* ] * * element : regexp (wrapped into ^...$), single * or omitted > all elements (must be present when value is used) * attribute : regexp (wrapped into ^...$) * value : regexp (wrapped into ^...$), single * or omitted > all values * * examples: * * > basic: remove fill attribute * --- * removeAttrs: * attrs: 'fill' * * > remove fill attribute on path element * --- * attrs: 'path:fill' * * > remove fill attribute on path element where value is none * --- * attrs: 'path:fill:none' * * * > remove all fill and stroke attribute * --- * attrs: * - 'fill' * - 'stroke' * * [is same as] * * attrs: '(fill|stroke)' * * [is same as] * * attrs: '*:(fill|stroke)' * * [is same as] * * attrs: '.*:(fill|stroke)' * * [is same as] * * attrs: '.*:(fill|stroke):.*' * * * > remove all stroke related attributes * ---- * attrs: 'stroke.*' * * * @param {Object} item current iteration item * @param {Object} params plugin params * @return {Boolean} if false, item will be filtered out * * @author Benny Schudel */ exports.fn = function(item, params) { // wrap into an array if params is not if (!Array.isArray(params.attrs)) { params.attrs = [params.attrs]; } if (item.isElem()) { var elemSeparator = typeof params.elemSeparator == 'string' ? params.elemSeparator : DEFAULT_SEPARATOR; var preserveCurrentColor = typeof params.preserveCurrentColor == 'boolean' ? params.preserveCurrentColor : false; // prepare patterns var patterns = params.attrs.map(function(pattern) { // if no element separators (:), assume it's attribute name, and apply to all elements *regardless of value* if (pattern.indexOf(elemSeparator) === -1) { pattern = ['.*', elemSeparator, pattern, elemSeparator, '.*'].join(''); // if only 1 separator, assume it's element and attribute name, and apply regardless of attribute value } else if (pattern.split(elemSeparator).length < 3) { pattern = [pattern, elemSeparator, '.*'].join(''); } // create regexps for element, attribute name, and attribute value return pattern.split(elemSeparator) .map(function(value) { // adjust single * to match anything if (value === '*') { value = '.*'; } return new RegExp(['^', value, '$'].join(''), 'i'); }); }); // loop patterns patterns.forEach(function(pattern) { // matches element if (pattern[0].test(item.elem)) { // loop attributes item.eachAttr(function(attr) { var name = attr.name; var value = attr.value; var isFillCurrentColor = preserveCurrentColor && name == 'fill' && value == 'currentColor'; var isStrokeCurrentColor = preserveCurrentColor && name == 'stroke' && value == 'currentColor'; if (!(isFillCurrentColor || isStrokeCurrentColor)) { // matches attribute name if (pattern[1].test(name)) { // matches attribute value if (pattern[2].test(attr.value)) { item.removeAttr(name); } } } }); } }); } };