项目原始demo,不改动
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
Den här utvecklingskatalogen är arkiverad. Du kan se filer och klona katalogen, men inte öppna ärenden eller genomföra push- eller pull-förfrågningar.

VListItem.js 5.4 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. require("../../../src/components/VList/VListItem.sass");
  7. var _colorable = _interopRequireDefault(require("../../mixins/colorable"));
  8. var _routable = _interopRequireDefault(require("../../mixins/routable"));
  9. var _groupable = require("../../mixins/groupable");
  10. var _themeable = _interopRequireDefault(require("../../mixins/themeable"));
  11. var _toggleable = require("../../mixins/toggleable");
  12. var _ripple = _interopRequireDefault(require("../../directives/ripple"));
  13. var _helpers = require("./../../util/helpers");
  14. var _console = require("../../util/console");
  15. var _mixins = _interopRequireDefault(require("../../util/mixins"));
  16. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  17. function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
  18. function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
  19. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  20. var baseMixins = (0, _mixins.default)(_colorable.default, _routable.default, _themeable.default, (0, _groupable.factory)('listItemGroup'), (0, _toggleable.factory)('inputValue'));
  21. /* @vue/component */
  22. var _default2 = baseMixins.extend().extend({
  23. name: 'v-list-item',
  24. directives: {
  25. Ripple: _ripple.default
  26. },
  27. inheritAttrs: false,
  28. inject: {
  29. isInGroup: {
  30. default: false
  31. },
  32. isInList: {
  33. default: false
  34. },
  35. isInMenu: {
  36. default: false
  37. },
  38. isInNav: {
  39. default: false
  40. }
  41. },
  42. props: {
  43. activeClass: {
  44. type: String,
  45. default: function _default() {
  46. if (!this.listItemGroup) return '';
  47. return this.listItemGroup.activeClass;
  48. }
  49. },
  50. dense: Boolean,
  51. inactive: Boolean,
  52. link: Boolean,
  53. selectable: {
  54. type: Boolean
  55. },
  56. tag: {
  57. type: String,
  58. default: 'div'
  59. },
  60. threeLine: Boolean,
  61. twoLine: Boolean,
  62. value: null
  63. },
  64. data: function data() {
  65. return {
  66. proxyClass: 'v-list-item--active'
  67. };
  68. },
  69. computed: {
  70. classes: function classes() {
  71. return _objectSpread({
  72. 'v-list-item': true
  73. }, _routable.default.options.computed.classes.call(this), {
  74. 'v-list-item--dense': this.dense,
  75. 'v-list-item--disabled': this.disabled,
  76. 'v-list-item--link': this.isClickable && !this.inactive,
  77. 'v-list-item--selectable': this.selectable,
  78. 'v-list-item--three-line': this.threeLine,
  79. 'v-list-item--two-line': this.twoLine
  80. }, this.themeClasses);
  81. },
  82. isClickable: function isClickable() {
  83. return Boolean(_routable.default.options.computed.isClickable.call(this) || this.listItemGroup);
  84. }
  85. },
  86. created: function created() {
  87. /* istanbul ignore next */
  88. if (this.$attrs.hasOwnProperty('avatar')) {
  89. (0, _console.removed)('avatar', this);
  90. }
  91. },
  92. methods: {
  93. click: function click(e) {
  94. if (e.detail) this.$el.blur();
  95. this.$emit('click', e);
  96. this.to || this.toggle();
  97. },
  98. genAttrs: function genAttrs() {
  99. var attrs = _objectSpread({
  100. 'aria-disabled': this.disabled ? true : undefined,
  101. tabindex: this.isClickable && !this.disabled ? 0 : -1
  102. }, this.$attrs);
  103. if (this.$attrs.hasOwnProperty('role')) {// do nothing, role already provided
  104. } else if (this.isInNav) {// do nothing, role is inherit
  105. } else if (this.isInGroup) {
  106. attrs.role = 'listitem';
  107. attrs['aria-selected'] = String(this.isActive);
  108. } else if (this.isInMenu) {
  109. attrs.role = this.isClickable ? 'menuitem' : undefined;
  110. attrs.id = attrs.id || "list-item-".concat(this._uid);
  111. } else if (this.isInList) {
  112. attrs.role = 'listitem';
  113. }
  114. return attrs;
  115. }
  116. },
  117. render: function render(h) {
  118. var _this = this;
  119. var _this$generateRouteLi = this.generateRouteLink(),
  120. tag = _this$generateRouteLi.tag,
  121. data = _this$generateRouteLi.data;
  122. data.attrs = _objectSpread({}, data.attrs, {}, this.genAttrs());
  123. data.on = _objectSpread({}, data.on, {
  124. click: this.click,
  125. keydown: function keydown(e) {
  126. /* istanbul ignore else */
  127. if (e.keyCode === _helpers.keyCodes.enter) _this.click(e);
  128. _this.$emit('keydown', e);
  129. }
  130. });
  131. var children = this.$scopedSlots.default ? this.$scopedSlots.default({
  132. active: this.isActive,
  133. toggle: this.toggle
  134. }) : this.$slots.default;
  135. tag = this.inactive ? 'div' : tag;
  136. return h(tag, this.setTextColor(this.color, data), children);
  137. }
  138. });
  139. exports.default = _default2;
  140. //# sourceMappingURL=VListItem.js.map