Sha256: 5d91cc9b5a42d2f40e567829c3a526f45d72ce8e85a80043b3a04f6de74be946
Contents?: true
Size: 1.93 KB
Versions: 5
Compression:
Stored size: 1.93 KB
Contents
#= require tao/form/shared/fields/select/element/base class Tao.Form.Select.Element extends Tao.Form.Select.ElementBase _disconnected: -> super @_unbindDocumentMousedown() _bindResultEvents: -> super @on 'tao:enterPress', '.select-result', (e) => if @active if @selectOption @list.highlightedOption @namespacedTrigger 'change', @selectedOption else @active = true null @on 'tao:arrowPress', '.select-result', (e, direction) => if @active if direction == 'up' @list.highlightPrevOption() else @list.highlightNextOption() else @active = true null _bindListEvents: -> super @on 'tao:select', '.select-list', (e, option) => @active = false null @on 'tao:show', '.select-list', (e) => @_positionList() @on 'tao:cancel', '.select-list', (e) => @active = false null _activeChanged: -> @list.active = @active @result.active = @active @_unbindDocumentMousedown() if @active @_bindDocumentMousedown() else @result.focus() _unbindDocumentMousedown: -> $(document).off "mousedown.tao-select-#{@taoId}" _bindDocumentMousedown: -> $(document).on "mousedown.tao-select-#{@taoId}", (e) => return if $.contains(@, e.target) && !(@multiple && @result == e.target) @active = false @_unbindDocumentMousedown() _positionList: -> rect = @getBoundingClientRect() offsetToWindowTop = rect.top offsetToWindowBottom = $(window).height() - rect.bottom @list.setMaxHeight false @reflow() listHeight = @list.jq.outerHeight() if offsetToWindowBottom < listHeight && offsetToWindowTop > offsetToWindowBottom @list.setMaxHeight offsetToWindowTop - 20 @list.direction = 'up' else @list.setMaxHeight offsetToWindowBottom - 20 @list.direction = 'down' TaoComponent.register Tao.Form.Select.Element
Version data entries
5 entries across 5 versions & 1 rubygems