版博士V2.0程序
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

66 строки
1.8 KiB

  1. 'use strict';
  2. const svg_html = require('../svg/html.cjs');
  3. const svg_size = require('../svg/size.cjs');
  4. const svg_url = require('../svg/url.cjs');
  5. function getCommonCSSRules(options) {
  6. const result = {
  7. display: "inline-block",
  8. width: "1em",
  9. height: "1em"
  10. };
  11. const varName = options.varName;
  12. if (options.pseudoSelector) {
  13. result["content"] = "''";
  14. }
  15. switch (options.mode) {
  16. case "background":
  17. result["background"] = "no-repeat center / 100%";
  18. if (varName) {
  19. result["background-image"] = "var(--" + varName + ")";
  20. }
  21. break;
  22. case "mask":
  23. result["background-color"] = "currentColor";
  24. result["mask"] = result["-webkit-mask"] = "no-repeat center / 100%";
  25. if (varName) {
  26. result["mask-image"] = result["-webkit-mask-image"] = "var(--" + varName + ")";
  27. }
  28. break;
  29. }
  30. return result;
  31. }
  32. function generateItemCSSRules(icon, options) {
  33. const result = {};
  34. const varName = options.varName;
  35. if (!options.forceSquare && icon.width !== icon.height) {
  36. result["width"] = svg_size.calculateSize("1em", icon.width / icon.height);
  37. }
  38. const svg = svg_html.iconToHTML(
  39. icon.body.replace(/currentColor/g, options.color || "black"),
  40. {
  41. viewBox: `${icon.left} ${icon.top} ${icon.width} ${icon.height}`,
  42. width: icon.width.toString(),
  43. height: icon.height.toString()
  44. }
  45. );
  46. const url = svg_url.svgToURL(svg);
  47. if (varName) {
  48. result["--" + varName] = url;
  49. } else {
  50. switch (options.mode) {
  51. case "background":
  52. result["background-image"] = url;
  53. break;
  54. case "mask":
  55. result["mask-image"] = result["-webkit-mask-image"] = url;
  56. break;
  57. }
  58. }
  59. return result;
  60. }
  61. exports.generateItemCSSRules = generateItemCSSRules;
  62. exports.getCommonCSSRules = getCommonCSSRules;