font-icon.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. exports.init = function(runtime) {
  2. runtime.register({
  3. // This function parses arguments from all formats accepted by the font-icon()
  4. // sass mixin and returns an array that always contains 4 elements in the following
  5. // order: character, font-size, font-family, rotation
  6. parseFontIconArgs: function(glyph) {
  7. var newItems = [null, null, null, null],
  8. items, item, len;
  9. if (glyph.$isFashionList) {
  10. items = glyph.items;
  11. len = items.length;
  12. newItems[0] = items[0];
  13. if (len === 2) {
  14. item = items[1];
  15. if (item.$isFashionNumber) {
  16. if (item.unit) {
  17. newItems[1] = item;
  18. } else {
  19. newItems[3] = item;
  20. }
  21. } else {
  22. newItems[2] = item;
  23. }
  24. } else if (len === 3) {
  25. if (items[1].$isFashionNumber) {
  26. newItems[1] = items[1];
  27. if (items[2].$isFashionNumber) {
  28. newItems[3] = items[2];
  29. } else {
  30. newItems[2] = items[2];
  31. }
  32. } else {
  33. newItems[2] = items[1];
  34. newItems[3] = items[2];
  35. }
  36. } else {
  37. newItems[1] = items[1];
  38. newItems[2] = items[2];
  39. newItems[3] = items[3];
  40. }
  41. } else {
  42. newItems[0] = glyph;
  43. }
  44. return new Fashion.List(newItems);
  45. }
  46. });
  47. };