index.wxs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /* eslint-disable */
  2. var utils = require('../wxs/utils.wxs');
  3. function tabClass(active, ellipsis) {
  4. var classes = ['tab-class'];
  5. if (active) {
  6. classes.push('tab-active-class');
  7. }
  8. if (ellipsis) {
  9. classes.push('van-ellipsis');
  10. }
  11. return classes.join(' ');
  12. }
  13. function tabStyle(
  14. active,
  15. ellipsis,
  16. color,
  17. type,
  18. disabled,
  19. activeColor,
  20. inactiveColor,
  21. swipeThreshold,
  22. scrollable
  23. ) {
  24. var styles = [];
  25. var isCard = type === 'card';
  26. // card theme color
  27. if (color && isCard) {
  28. styles.push('border-color:' + color);
  29. if (!disabled) {
  30. if (active) {
  31. styles.push('background-color:' + color);
  32. } else {
  33. styles.push('color:' + color);
  34. }
  35. }
  36. }
  37. var titleColor = active ? activeColor : inactiveColor;
  38. if (titleColor) {
  39. styles.push('color:' + titleColor);
  40. }
  41. if (scrollable && ellipsis) {
  42. styles.push('flex-basis:' + 88 / swipeThreshold + '%');
  43. }
  44. return styles.join(';');
  45. }
  46. function tabCardTypeBorderStyle(color, type) {
  47. var isCard = type === 'card';
  48. var styles = [];
  49. if (isCard && color) {
  50. styles.push('border-color:' + color);
  51. }
  52. return styles.join(';');
  53. }
  54. function trackStyle(data) {
  55. if (!data.animated) {
  56. return '';
  57. }
  58. return [
  59. ['left', -100 * data.currentIndex + '%'],
  60. ['-webkit-transition-duration', data.duration + 's'],
  61. ['transition-duration: ', data.duration + 's'],
  62. ]
  63. .map(function (item) {
  64. return item.join(':');
  65. })
  66. .join(';');
  67. }
  68. function lineStyle(data) {
  69. var styles = [
  70. ['width', utils.addUnit(data.lineWidth)],
  71. ['transform', 'translateX(' + data.lineOffsetLeft + 'px)'],
  72. ['-webkit-transform', 'translateX(' + data.lineOffsetLeft + 'px)'],
  73. ];
  74. if (data.color) {
  75. styles.push(['background-color', data.color]);
  76. }
  77. if (data.lineHeight !== -1) {
  78. styles.push(['height', utils.addUnit(data.lineHeight)]);
  79. styles.push(['border-radius', utils.addUnit(data.lineHeight)]);
  80. }
  81. if (!data.skipTransition) {
  82. styles.push(['transition-duration', data.duration + 's']);
  83. styles.push(['-webkit-transition-duration', data.duration + 's']);
  84. }
  85. return styles
  86. .map(function (item) {
  87. return item.join(':');
  88. })
  89. .join(';');
  90. }
  91. module.exports = {
  92. tabClass: tabClass,
  93. tabStyle: tabStyle,
  94. trackStyle: trackStyle,
  95. lineStyle: lineStyle,
  96. tabCardTypeBorderStyle: tabCardTypeBorderStyle,
  97. };