item.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * DevExtreme (ui/list/item.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 $ = require("../../core/renderer");
  11. var CollectionWidgetItem = require("../collection/item");
  12. var LIST_ITEM_BADGE_CONTAINER_CLASS = "dx-list-item-badge-container";
  13. var LIST_ITEM_BADGE_CLASS = "dx-list-item-badge";
  14. var BADGE_CLASS = "dx-badge";
  15. var LIST_ITEM_CHEVRON_CONTAINER_CLASS = "dx-list-item-chevron-container";
  16. var LIST_ITEM_CHEVRON_CLASS = "dx-list-item-chevron";
  17. var ListItem = CollectionWidgetItem.inherit({
  18. _renderWatchers: function() {
  19. this.callBase();
  20. this._startWatcher("badge", this._renderBadge.bind(this));
  21. this._startWatcher("showChevron", this._renderShowChevron.bind(this))
  22. },
  23. _renderBadge: function(badge) {
  24. this._$element.children("." + LIST_ITEM_BADGE_CONTAINER_CLASS).remove();
  25. if (!badge) {
  26. return
  27. }
  28. var $badge = $("<div>").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($("<div>").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));
  29. var $chevron = this._$element.children("." + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();
  30. $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)
  31. },
  32. _renderShowChevron: function(showChevron) {
  33. this._$element.children("." + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();
  34. if (!showChevron) {
  35. return
  36. }
  37. var $chevronContainer = $("<div>").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);
  38. var $chevron = $("<div>").addClass(LIST_ITEM_CHEVRON_CLASS);
  39. $chevronContainer.append($chevron).appendTo(this._$element)
  40. }
  41. });
  42. module.exports = ListItem;