     @protected
   ###
   swapClasses: ->
-    if goog.dom.classes.has @arrowSpan, wzk.ui.dropup.Dropup.CSS.ARROW_LEFT
-      goog.dom.classes.add @arrowSpan, wzk.ui.dropup.Dropup.CSS.ARROW_UP
-      goog.dom.classes.remove @arrowSpan, wzk.ui.dropup.Dropup.CSS.ARROW_LEFT
-    else
-      goog.dom.classes.add @arrowSpan, wzk.ui.dropup.Dropup.CSS.ARROW_LEFT
-      goog.dom.classes.remove @arrowSpan, wzk.ui.dropup.Dropup.CSS.ARROW_UP
+    C = wzk.ui.dropup.Dropup.CSS
+
+    if @caretElement?
+      if goog.dom.classes.has @caretElement, C.ARROW_LEFT
+        goog.dom.classes.addRemove @caretElement, C.ARROW_LEFT, C.ARROW_UP
+      else
+        goog.dom.classes.addRemove @caretElement, C.ARROW_UP, C.ARROW_LEFT
 
   ###*
     Gets animation object and set's starting height and ending height

  ###
  decorate: (@dropupButton) ->
    # arrow span, allowing change of icon according to state
    @arrowSpan = @dropupButton.querySelector 'span.fa'

    # id of tag to dropup
    dropupId = goog.dom.dataset.get @dropupButton, wzk.ui.dropup.Dropup.CSS.TARGET_ATTRIBUTE

    DURATION: 500

  ###*
    @param {wzk.dom.Dom} dom
  ###
  constructor: (@dom)->

