icon.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * DevExtreme (core/utils/icon.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var _renderer = require("../../core/renderer");
  11. var _renderer2 = _interopRequireDefault(_renderer);
  12. function _interopRequireDefault(obj) {
  13. return obj && obj.__esModule ? obj : {
  14. "default": obj
  15. }
  16. }
  17. var ICON_CLASS = "dx-icon";
  18. var SVG_ICON_CLASS = "dx-svg-icon";
  19. var getImageSourceType = function(source) {
  20. if (!source || "string" !== typeof source) {
  21. return false
  22. }
  23. if (/^\s*<svg[^>]*>(.|\r?\n)*?<\/svg>\s*$/i.test(source)) {
  24. return "svg"
  25. }
  26. if (/data:.*base64|\.|[^<\s]\//.test(source)) {
  27. return "image"
  28. }
  29. if (/^[\w-_]+$/.test(source)) {
  30. return "dxIcon"
  31. }
  32. if (/^\s?([\w-_]\s?)+$/.test(source)) {
  33. return "fontIcon"
  34. }
  35. return false
  36. };
  37. var getImageContainer = function(source) {
  38. switch (getImageSourceType(source)) {
  39. case "image":
  40. return (0, _renderer2.default)("<img>").attr("src", source).addClass(ICON_CLASS);
  41. case "fontIcon":
  42. return (0, _renderer2.default)("<i>").addClass("".concat(ICON_CLASS, " ").concat(source));
  43. case "dxIcon":
  44. return (0, _renderer2.default)("<i>").addClass("".concat(ICON_CLASS, " ").concat(ICON_CLASS, "-").concat(source));
  45. case "svg":
  46. return (0, _renderer2.default)("<i>").addClass("".concat(ICON_CLASS, " ").concat(SVG_ICON_CLASS)).append(source);
  47. default:
  48. return null
  49. }
  50. };
  51. exports.getImageSourceType = getImageSourceType;
  52. exports.getImageContainer = getImageContainer;