Spark
v1
  • Spark v3
  • Spark v2
  • Spark v1
  • Design Foundations
    • Animations
    • Color Palette
    • Iconography
    • Layout Guidelines
    • Sabre Logo Guidelines
    • Guiding Principles
    • Spark Themes
    • Typography
    • Voice and Tone
    • View All Foundations
  • UI Components
    • Containers & Navigation
      • Carousel
      • Expand & Collapse
      • Footer
      • Header & Navigation
      • Modals
      • Pagination and View More
      • Panels
      • Panel Menu
      • Responsive Grid
      • Scroll to Top
      • Tables
      • Tabs
      • Toolbar
    • Data Visualization
      • Introduction to Data Visualization
      • Color Palettes for Data Visualization
      • Bar Charts
      • Gauges
      • Line Graphs
      • Pie and Donut Charts
    • Form Elements
      • Buttons
      • Checkboxes
      • Date Selection
      • Multi-Select
      • Number Selector
      • Radio Buttons
      • Select Input
      • Sliders
      • Text Input
      • Toggles and Switches
    • Messaging & Content
      • Links
      • Messages
      • Popovers
      • Progress Indicators
      • Step Indicator
      • Tooltips
    • Page Templates
      • Sign-In Screen
      • Single Container Layout
      • Single Container with Side Menu Layout
      • Splash Screen
      • Tabbed Container Layout
      • Tabbed Container with Side Menu Layout
    • View All Components
  • Resources
    • Designer
      • Application Icons
    • Developer
      • Browser Support
      • Changelog
      • CSS Helper Classes
      • Javascript API Documentation
        • Back to Main Menu
        • Javscript API Documentation
        • Main
        • components/ base.js
          • BaseComponent
          • requestAnimationFrame
          • cancelAnimationFrame
          • breakpoints
          • exportjQuery
          • loadOrCreateJQueryInstance
          • setParams
          • unsetParams
          • toggleClass
          • addClass
          • removeClass
          • hasClass
          • getChildIndex
          • elementHasParent
          • elementMatches
          • getElementMatchingParent
          • getElementMatchingParents
          • getElementOffset
          • getNodeListIndex
          • trim
          • round
          • appendChildren
          • insertBefore
          • getBreakpoint
          • remove
          • triggerEvent
          • scrollWindowTo
          • tween
          • copyAttributes
          • wrapElement
          • range
          • getSiblingBefore
          • getSiblingAfter
          • getMatchingChild
          • getElementMatchingChildren
        • components / calendar-popover.js
        • components/ carousel.js
          • Carousel
          • _setParams
          • defaults
          • _whitelistedParams
          • _carouselItem
          • _init
          • remove
          • _pause
          • _setPause
          • _autoAdvance
          • _setupListeners
          • _removeListeners
          • _handleVisibleChildrenH
          • _forward
          • _back
          • _movestart
          • _move
          • _moveend
          • _resize
          • change
          • _touchstart
          • _touchmove
          • _touchend
          • _mousedown
          • _mousemove
          • _mouseup
          • _click
          • _velocity
          • _scrollToClicked
          • _scrollTo
          • _rafHandlerH
          • _rafCancel
          • _interiaScroll
          • _settle
          • _transformItems
          • _setTransformItems
          • _addTransform
          • _leftbound
          • _rightbound
          • _updateSelected
          • _selectedItem
          • _setTransform
        • components/ date-input.js
          • DateInput
          • _setParams
          • setError
          • _whitelistedParams
          • defaults
          • show
          • hide
          • remove
          • setValue
          • validate
          • updateInput
          • focus
          • focusNext
          • focusPrevious
          • hasPartialValue
          • _cacheElements
          • _parseParams
          • _initializeInputs
          • _initializeInputPieces
          • _initializeTypeaheadPiece
          • _initializeSelectPiece
          • _convertLabel
          • _validateTypeaheads
          • _validateTypeaheadBounds
          • _padTypeaheads
          • _padTypeahead
          • _hasTypeaheadValue
          • _validateSelects
          • _getMaxDaysInMonth
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onVisibleChildren
          • update
          • _runTypeaheads
          • _updateClass
          • _getTypeaheadByElement
          • _showDateText
          • _hideDateText
          • _createDateTextEl
          • _getDateText
          • _onPieceChange
          • _onTypeaheadFocus
          • _onTypeaheadBlur
          • _onTypeaheadBackspace
          • _onTypeaheadEnd
          • _onInputChange
          • _onClick
        • components/ expand.js
          • Expand
          • _setParams
          • defaults
          • _whitelistedParams
          • expand
          • collapse
          • toggle
          • _cacheElements
          • _updateClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onClick
          • _onKeydown
        • components/ header.js
          • Header
          • _setParams
          • _whitelistedParams
          • defaults
          • update
          • checkFixed
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getCurrentBreakpoint
          • _createPlaceholder
          • _removePlaceholder
          • _disablePlaceholderLinkTab
          • _createListMore
          • _determineInitialSize
          • _determineMenuSize
          • _listenForReadyStateChange
          • _isMenuBreakpoint
          • _getItemsToShowAndHide
          • _ensureActiveAtMoreSwapIndex
          • _addListMore
          • _removeListMore
          • _resetMenuChildren
          • _toggleCollapsed
          • _enableTopLevelToggling
          • _disableTopLevelToggling
          • _onResize
          • _onScroll
          • _onMoreClick
          • _onToggleClick
          • _onNavClick
        • components/ menu.js
          • Menu
          • _setParams
          • _whitelistedParams
          • defaults
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _toggleItem
          • _checkAnimation
          • _createMenuAnimationWrapper
          • _animateListChange
          • _appendList
          • _removeLastList
          • _removeAllCachedLists
          • _getNextList
          • _openItem
          • _closeItem
          • _activateItem
          • _activateItemParents
          • _deactivateItems
          • _deactivateItemSiblings
          • _openActiveParents
          • _cachedListContainsID
          • _onClick
          • _onFocus
          • _onBlur
        • components/ modal.js
          • Modal
          • _setParams
          • defaults
          • _whitelistedParams
          • open
          • close
          • _cacheElements
          • _updateClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addWindowEventListeners
          • _removeWindowEventListeners
          • _onClick
          • _onModalClick
          • _onKeyup
        • components / number-picker.js
        • components/ number-selector.js
          • NumberSelector
          • _setParams
          • _whitelistedParams
          • defaults
          • value
          • increment
          • decrement
          • disable
          • enable
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getMin
          • _getMax
          • _getStep
          • _getInputPropAsNumber
          • _getConformedNumber
          • _onClick
          • _onChange
        • components/ popover.js
          • Popover
          • _setParams
          • _whitelistedParams
          • defaults
          • open
          • close
          • toggle
          • setContent
          • pause
          • resume
          • _cacheElements
          • _moveContent
          • _determineDirectionAndAnchor
          • _updateAttributes
          • _updatePosition
          • _clearPosition
          • _updateCaretAnchorPosition
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addWindowEventListeners
          • _removeWindowEventListeners
          • _createContentEl
          • _createCaretEl
          • _onClick
          • _onContentClick
          • _onWindowClick
          • _onWindowResize
        • components/ progress-indicator.js
          • ProgressIndicator
          • _setParams
          • _whitelistedParams
          • defaults
          • set
          • _cacheElements
          • _cacheSize
          • _determineSize
          • _buildSVG
          • _parseNotes
          • _updateDOM
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onResize
        • components/ range-slider.js
          • RangeSlider
          • _setParams
          • _whitelistedParams
          • defaults
          • start
          • move
          • stop
          • setValue
          • increment
          • decrement
          • remove
          • _cacheElements
          • _cacheSize
          • _updateHandlePosition
          • _updateActiveClasses
          • _updateDisabledClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onVisibleChildren
          • _onResize
          • _onFocus
          • _onKeydown
          • _onBlur
          • _onChange
          • _onClick
        • components / scroll-to-top.js
        • components/ select-input.js
          • SelectInput
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • setOptions
          • setLabel
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _updateClass
          • _onFocus
          • _onBlur
          • _onInput
        • components/ slider.js
          • Slider
          • _setParams
          • _whitelistedParams
          • defaults
          • start
          • move
          • stop
          • setValue
          • increment
          • decrement
          • remove
          • _cacheElements
          • _cacheSize
          • _updateHandlePosition
          • _updateActiveClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _truncateValueText
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onMouseOut
          • _onResize
          • _onFocus
          • _onKeydown
          • _onBlur
          • _onChange
          • _onClick
          • _onWindowClick
        • components / step-indicator.js
        • components/ table.js
          • Table
          • _setParams
          • _whitelistedParams
          • defaults
          • disableCell
          • enableCell
          • disableRow
          • enableRow
          • disableColumn
          • enableColumn
          • remove
          • activateRow
          • activateRows
          • deactivateRow
          • deactivateRows
          • getActiveRows
          • _cacheElements
          • _parseParams
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addResizeListeners
          • _removeResizeListeners
          • _toggleRowActive
          • _makeRowActive
          • _makeRowInActive
          • _toggleRowsActive
          • _toggleSelectAll
          • _uncheckSelectAll
          • _deactivateAllInputs
          • _deactivateInputs
          • _deactivateInput
          • _activateInputs
          • _activateInput
          • _activateInputOrFocusDown
          • _disableRowsColumnsCells
          • _focusUp
          • _focusDown
          • _focusUpDown
          • _focusLeft
          • _focusRight
          • _focusLeftRight
          • _checkDoubleClick
          • _clearClicked
          • _editRow
          • _cancelRow
          • _saveRow
          • _deleteRow
          • _confirmDelete
          • _updateBindings
          • _initResize
          • _initRows
          • _sizeColumns
          • _initExpands
          • _onBeforeExpand
          • _onClick
          • _onChange
          • _onFocus
          • _onBlur
          • _onKeydown
          • _onTouchstart
          • _onTouchend
          • _onTouchHold
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
        • components/ tabs.js
          • Tabs
          • _setParams
          • _whitelistedParams
          • defaults
          • setActive
          • start
          • stop
          • move
          • focus
          • remove
          • update
          • _findPanelByName
          • _findPanelByTab
          • _findTabByPanel
          • _findTabByChildElement
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _determineSize
          • _determineMinMax
          • _enableAnimation
          • _disableAnimation
          • _updatePosition
          • _checkX
          • _onTabListClick
          • _onResize
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onScroll
          • _onScrollEnd
          • _onLeftClick
          • _onRightClick
          • _onFocus
          • _onBlur
        • components/ text-input.js
          • TextInput
          • _setParams
          • _whitelistedParams
          • defaults
          • show
          • hide
          • validate
          • setError
          • clearError
          • setWarning
          • clearWarning
          • setSuccess
          • clearSuccess
          • clearMessages
          • setMessage
          • _showMessage
          • _hideMessage
          • _isMessageVisible
          • _cacheElements
          • _parseParams
          • _setCharactersCount
          • _setTextareaHeight
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _updateClass
          • _onFocus
          • _onBlur
          • _onInput
          • _onClearClick
          • _onTogglePasswordViewHide
        • components/ toggle-switch.js
          • ToggleSwitch
          • _getElementMatchingParent
          • defaults
          • toggle
          • activate
          • deactivate
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onKeydown
        • components/ toolbar.js
          • Toolbar
          • _setParams
          • defaults
          • _whitelistedParams
          • toolbarItem
          • toggleDropdown
          • handleClick
          • _closeAll
          • _getOpenItems
          • _closeItems
          • _init
          • _setupListeners
          • _removeListeners
          • remove
          • _handleBlurH
          • _handleFocusH
          • _focusLast
          • _handleKeyDownH
          • _handleVisibleChildrenH
          • _handleWindowClickH
          • _toggleShowMore
          • _positionShowMore
          • _handleResizeH
          • _calculateStyles
          • _prioritySort
          • _orderSort
          • change
        • helpers/ animate-height.js
          • getInverseToggleValue
          • animateHeight
        • helpers/ build-select.js
          • buildSelect
        • helpers/ date-select.js
          • DateSelect
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • setOptions
          • setLabel
          • _createDefaultElement
          • _createSelect
          • _getDefaultMonthNames
          • _getTypeText
          • _bindEventListenerCallbacks
          • _onSelectChange
        • helpers/ date-typeahead.js
          • DateTypeahead
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • run
          • pause
          • resume
          • _createDefaultElement
          • _createTypeahead
          • _bindEventListenerCallbacks
          • _lengthToFormat
          • _checkValidity
          • _onTypeaheadChange
          • _onTypeaheadFocus
          • _onTypeaheadBlur
          • _onTypeaheadBackspace
          • _onTypeaheadEnd
        • helpers/ date.js
          • create
          • year
          • year
          • month
          • month
          • day
          • day
          • set
          • getMonthName
          • monthName
          • getMonthNames
          • getMonthNameShort
          • monthNameShort
          • getMonthNamesShort
          • setMonthNames
          • setMonthNamesShort
          • getDayOfWeek
          • dayOfWeek
          • getDayName
          • dayName
          • getDayNames
          • getDayNameShort
          • dayNameShort
          • getDayNamesShort
          • setDayNames
          • setDayNamesShort
          • getWeekStartsOn
          • setWeekStartsOn
          • now
          • getNextYear
          • nextYear
          • getWeekStart
          • weekStart
          • getMonthStart
          • monthStart
          • getNextWeek
          • nextWeek
          • getNextDay
          • nextDay
          • getNextMonth
          • nextMonth
          • getPreviousYear
          • previousYear
          • getPreviousWeek
          • previousWeek
          • getPreviousDay
          • previousDay
          • getPreviousMonth
          • previousMonth
          • getMonthEnd
          • monthEnd
          • equal
          • equalDay
          • equalWeek
          • equalMonth
          • equalYear
          • before
          • beforeDay
          • beforeWeek
          • beforeMonth
          • beforeYear
          • after
          • afterDay
          • afterWeek
          • afterMonth
          • afterYear
          • earliest
          • latest
          • clone
          • _checkComparisonArgs
          • _instanceCheck
          • _clearCache
        • helpers/ debounce.js
          • debounce
        • helpers/ each.js
          • each
        • helpers/ outer-height.js
          • outerHeight
        • helpers / pad-number.js
        • helpers/ parse-date-format.js
          • map
          • getValues
          • getString
          • parseDateFormat
        • helpers / set-caret.js
        • helpers/ store-form-data.js
          • findAll
          • store
          • restore
          • clear
        • helpers/ transform.js
          • transform
        • helpers/ typeahead.js
          • Typeahead
          • _setParams
          • _whitelistedParams
          • defaults
          • run
          • addCharacterAtIndex
          • addCharacterAtCaret
          • removeCharacterAtIndex
          • removeCharacterAtCaret
          • removeCharactersInRange
          • setValue
          • getValue
          • moveCaret
          • moveCaretToEnd
          • moveCaretToStart
          • pause
          • resume
          • clear
          • _cacheElements
          • _parseParams
          • _parseFormat
          • _parseCharacters
          • _createDefaultInputElement
          • _createDefaultPlaceholderElement
          • _getCharactersAllowedCount
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getCaretStart
          • _getCaretEnd
          • _caretIsAtEnd
          • _setCaretPosition
          • _getCaretPositionTranslated
          • _getCaretStartTranslated
          • _getCaretEndTranslated
          • _setCaretPositionTranslated
          • _moveCaret
          • _emptyWhenOnlyPlaceholders
          • _maintainFocus
          • _updateWidth
          • _onKeydown
          • _onInput
          • _onFocus
          • _onBlur
          • _onPlaceholderClick
          • _onBackspace
        • index.js
          • exports
    • Roadmap
    • View All Resources
  • About
  • Contact
Spark
v1
  • Spark v3
  • Spark v2
  • Spark v1
  • Design Foundations
    • Animations
    • Color Palette
    • Iconography
    • Layout Guidelines
    • Sabre Logo Guidelines
    • Guiding Principles
    • Spark Themes
    • Typography
    • Voice and Tone
    • View All Foundations
  • UI Components
    • Containers & Navigation
      • Carousel
      • Expand & Collapse
      • Footer
      • Header & Navigation
      • Modals
      • Pagination and View More
      • Panels
      • Panel Menu
      • Responsive Grid
      • Scroll to Top
      • Tables
      • Tabs
      • Toolbar
    • Data Visualization
      • Introduction to Data Visualization
      • Color Palettes for Data Visualization
      • Bar Charts
      • Gauges
      • Line Graphs
      • Pie and Donut Charts
    • Form Elements
      • Buttons
      • Checkboxes
      • Date Selection
      • Multi-Select
      • Number Selector
      • Radio Buttons
      • Select Input
      • Sliders
      • Text Input
      • Toggles and Switches
    • Messaging & Content
      • Links
      • Messages
      • Popovers
      • Progress Indicators
      • Step Indicator
      • Tooltips
    • Page Templates
      • Sign-In Screen
      • Single Container Layout
      • Single Container with Side Menu Layout
      • Splash Screen
      • Tabbed Container Layout
      • Tabbed Container with Side Menu Layout
    • View All Components
  • Resources
    • Designer
      • Application Icons
    • Developer
      • Browser Support
      • Changelog
      • CSS Helper Classes
      • Javascript API Documentation
        • Back to Main Menu
        • Javscript API Documentation
        • Main
        • components/ base.js
          • BaseComponent
          • requestAnimationFrame
          • cancelAnimationFrame
          • breakpoints
          • exportjQuery
          • loadOrCreateJQueryInstance
          • setParams
          • unsetParams
          • toggleClass
          • addClass
          • removeClass
          • hasClass
          • getChildIndex
          • elementHasParent
          • elementMatches
          • getElementMatchingParent
          • getElementMatchingParents
          • getElementOffset
          • getNodeListIndex
          • trim
          • round
          • appendChildren
          • insertBefore
          • getBreakpoint
          • remove
          • triggerEvent
          • scrollWindowTo
          • tween
          • copyAttributes
          • wrapElement
          • range
          • getSiblingBefore
          • getSiblingAfter
          • getMatchingChild
          • getElementMatchingChildren
        • components / calendar-popover.js
        • components/ carousel.js
          • Carousel
          • _setParams
          • defaults
          • _whitelistedParams
          • _carouselItem
          • _init
          • remove
          • _pause
          • _setPause
          • _autoAdvance
          • _setupListeners
          • _removeListeners
          • _handleVisibleChildrenH
          • _forward
          • _back
          • _movestart
          • _move
          • _moveend
          • _resize
          • change
          • _touchstart
          • _touchmove
          • _touchend
          • _mousedown
          • _mousemove
          • _mouseup
          • _click
          • _velocity
          • _scrollToClicked
          • _scrollTo
          • _rafHandlerH
          • _rafCancel
          • _interiaScroll
          • _settle
          • _transformItems
          • _setTransformItems
          • _addTransform
          • _leftbound
          • _rightbound
          • _updateSelected
          • _selectedItem
          • _setTransform
        • components/ date-input.js
          • DateInput
          • _setParams
          • setError
          • _whitelistedParams
          • defaults
          • show
          • hide
          • remove
          • setValue
          • validate
          • updateInput
          • focus
          • focusNext
          • focusPrevious
          • hasPartialValue
          • _cacheElements
          • _parseParams
          • _initializeInputs
          • _initializeInputPieces
          • _initializeTypeaheadPiece
          • _initializeSelectPiece
          • _convertLabel
          • _validateTypeaheads
          • _validateTypeaheadBounds
          • _padTypeaheads
          • _padTypeahead
          • _hasTypeaheadValue
          • _validateSelects
          • _getMaxDaysInMonth
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onVisibleChildren
          • update
          • _runTypeaheads
          • _updateClass
          • _getTypeaheadByElement
          • _showDateText
          • _hideDateText
          • _createDateTextEl
          • _getDateText
          • _onPieceChange
          • _onTypeaheadFocus
          • _onTypeaheadBlur
          • _onTypeaheadBackspace
          • _onTypeaheadEnd
          • _onInputChange
          • _onClick
        • components/ expand.js
          • Expand
          • _setParams
          • defaults
          • _whitelistedParams
          • expand
          • collapse
          • toggle
          • _cacheElements
          • _updateClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onClick
          • _onKeydown
        • components/ header.js
          • Header
          • _setParams
          • _whitelistedParams
          • defaults
          • update
          • checkFixed
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getCurrentBreakpoint
          • _createPlaceholder
          • _removePlaceholder
          • _disablePlaceholderLinkTab
          • _createListMore
          • _determineInitialSize
          • _determineMenuSize
          • _listenForReadyStateChange
          • _isMenuBreakpoint
          • _getItemsToShowAndHide
          • _ensureActiveAtMoreSwapIndex
          • _addListMore
          • _removeListMore
          • _resetMenuChildren
          • _toggleCollapsed
          • _enableTopLevelToggling
          • _disableTopLevelToggling
          • _onResize
          • _onScroll
          • _onMoreClick
          • _onToggleClick
          • _onNavClick
        • components/ menu.js
          • Menu
          • _setParams
          • _whitelistedParams
          • defaults
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _toggleItem
          • _checkAnimation
          • _createMenuAnimationWrapper
          • _animateListChange
          • _appendList
          • _removeLastList
          • _removeAllCachedLists
          • _getNextList
          • _openItem
          • _closeItem
          • _activateItem
          • _activateItemParents
          • _deactivateItems
          • _deactivateItemSiblings
          • _openActiveParents
          • _cachedListContainsID
          • _onClick
          • _onFocus
          • _onBlur
        • components/ modal.js
          • Modal
          • _setParams
          • defaults
          • _whitelistedParams
          • open
          • close
          • _cacheElements
          • _updateClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addWindowEventListeners
          • _removeWindowEventListeners
          • _onClick
          • _onModalClick
          • _onKeyup
        • components / number-picker.js
        • components/ number-selector.js
          • NumberSelector
          • _setParams
          • _whitelistedParams
          • defaults
          • value
          • increment
          • decrement
          • disable
          • enable
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getMin
          • _getMax
          • _getStep
          • _getInputPropAsNumber
          • _getConformedNumber
          • _onClick
          • _onChange
        • components/ popover.js
          • Popover
          • _setParams
          • _whitelistedParams
          • defaults
          • open
          • close
          • toggle
          • setContent
          • pause
          • resume
          • _cacheElements
          • _moveContent
          • _determineDirectionAndAnchor
          • _updateAttributes
          • _updatePosition
          • _clearPosition
          • _updateCaretAnchorPosition
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addWindowEventListeners
          • _removeWindowEventListeners
          • _createContentEl
          • _createCaretEl
          • _onClick
          • _onContentClick
          • _onWindowClick
          • _onWindowResize
        • components/ progress-indicator.js
          • ProgressIndicator
          • _setParams
          • _whitelistedParams
          • defaults
          • set
          • _cacheElements
          • _cacheSize
          • _determineSize
          • _buildSVG
          • _parseNotes
          • _updateDOM
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onResize
        • components/ range-slider.js
          • RangeSlider
          • _setParams
          • _whitelistedParams
          • defaults
          • start
          • move
          • stop
          • setValue
          • increment
          • decrement
          • remove
          • _cacheElements
          • _cacheSize
          • _updateHandlePosition
          • _updateActiveClasses
          • _updateDisabledClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onVisibleChildren
          • _onResize
          • _onFocus
          • _onKeydown
          • _onBlur
          • _onChange
          • _onClick
        • components / scroll-to-top.js
        • components/ select-input.js
          • SelectInput
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • setOptions
          • setLabel
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _updateClass
          • _onFocus
          • _onBlur
          • _onInput
        • components/ slider.js
          • Slider
          • _setParams
          • _whitelistedParams
          • defaults
          • start
          • move
          • stop
          • setValue
          • increment
          • decrement
          • remove
          • _cacheElements
          • _cacheSize
          • _updateHandlePosition
          • _updateActiveClasses
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _truncateValueText
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onMouseOut
          • _onResize
          • _onFocus
          • _onKeydown
          • _onBlur
          • _onChange
          • _onClick
          • _onWindowClick
        • components / step-indicator.js
        • components/ table.js
          • Table
          • _setParams
          • _whitelistedParams
          • defaults
          • disableCell
          • enableCell
          • disableRow
          • enableRow
          • disableColumn
          • enableColumn
          • remove
          • activateRow
          • activateRows
          • deactivateRow
          • deactivateRows
          • getActiveRows
          • _cacheElements
          • _parseParams
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addResizeListeners
          • _removeResizeListeners
          • _toggleRowActive
          • _makeRowActive
          • _makeRowInActive
          • _toggleRowsActive
          • _toggleSelectAll
          • _uncheckSelectAll
          • _deactivateAllInputs
          • _deactivateInputs
          • _deactivateInput
          • _activateInputs
          • _activateInput
          • _activateInputOrFocusDown
          • _disableRowsColumnsCells
          • _focusUp
          • _focusDown
          • _focusUpDown
          • _focusLeft
          • _focusRight
          • _focusLeftRight
          • _checkDoubleClick
          • _clearClicked
          • _editRow
          • _cancelRow
          • _saveRow
          • _deleteRow
          • _confirmDelete
          • _updateBindings
          • _initResize
          • _initRows
          • _sizeColumns
          • _initExpands
          • _onBeforeExpand
          • _onClick
          • _onChange
          • _onFocus
          • _onBlur
          • _onKeydown
          • _onTouchstart
          • _onTouchend
          • _onTouchHold
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
        • components/ tabs.js
          • Tabs
          • _setParams
          • _whitelistedParams
          • defaults
          • setActive
          • start
          • stop
          • move
          • focus
          • remove
          • update
          • _findPanelByName
          • _findPanelByTab
          • _findTabByPanel
          • _findTabByChildElement
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _addMoveEventListeners
          • _removeMoveEventListeners
          • _determineSize
          • _determineMinMax
          • _enableAnimation
          • _disableAnimation
          • _updatePosition
          • _checkX
          • _onTabListClick
          • _onResize
          • _onTouchStart
          • _onTouchMove
          • _onTouchEnd
          • _onMouseDown
          • _onMouseMove
          • _onMouseUp
          • _onScroll
          • _onScrollEnd
          • _onLeftClick
          • _onRightClick
          • _onFocus
          • _onBlur
        • components/ text-input.js
          • TextInput
          • _setParams
          • _whitelistedParams
          • defaults
          • show
          • hide
          • validate
          • setError
          • clearError
          • setWarning
          • clearWarning
          • setSuccess
          • clearSuccess
          • clearMessages
          • setMessage
          • _showMessage
          • _hideMessage
          • _isMessageVisible
          • _cacheElements
          • _parseParams
          • _setCharactersCount
          • _setTextareaHeight
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _updateClass
          • _onFocus
          • _onBlur
          • _onInput
          • _onClearClick
          • _onTogglePasswordViewHide
        • components/ toggle-switch.js
          • ToggleSwitch
          • _getElementMatchingParent
          • defaults
          • toggle
          • activate
          • deactivate
          • _cacheElements
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _onKeydown
        • components/ toolbar.js
          • Toolbar
          • _setParams
          • defaults
          • _whitelistedParams
          • toolbarItem
          • toggleDropdown
          • handleClick
          • _closeAll
          • _getOpenItems
          • _closeItems
          • _init
          • _setupListeners
          • _removeListeners
          • remove
          • _handleBlurH
          • _handleFocusH
          • _focusLast
          • _handleKeyDownH
          • _handleVisibleChildrenH
          • _handleWindowClickH
          • _toggleShowMore
          • _positionShowMore
          • _handleResizeH
          • _calculateStyles
          • _prioritySort
          • _orderSort
          • change
        • helpers/ animate-height.js
          • getInverseToggleValue
          • animateHeight
        • helpers/ build-select.js
          • buildSelect
        • helpers/ date-select.js
          • DateSelect
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • setOptions
          • setLabel
          • _createDefaultElement
          • _createSelect
          • _getDefaultMonthNames
          • _getTypeText
          • _bindEventListenerCallbacks
          • _onSelectChange
        • helpers/ date-typeahead.js
          • DateTypeahead
          • _setParams
          • _whitelistedParams
          • defaults
          • getValue
          • setValue
          • run
          • pause
          • resume
          • _createDefaultElement
          • _createTypeahead
          • _bindEventListenerCallbacks
          • _lengthToFormat
          • _checkValidity
          • _onTypeaheadChange
          • _onTypeaheadFocus
          • _onTypeaheadBlur
          • _onTypeaheadBackspace
          • _onTypeaheadEnd
        • helpers/ date.js
          • create
          • year
          • year
          • month
          • month
          • day
          • day
          • set
          • getMonthName
          • monthName
          • getMonthNames
          • getMonthNameShort
          • monthNameShort
          • getMonthNamesShort
          • setMonthNames
          • setMonthNamesShort
          • getDayOfWeek
          • dayOfWeek
          • getDayName
          • dayName
          • getDayNames
          • getDayNameShort
          • dayNameShort
          • getDayNamesShort
          • setDayNames
          • setDayNamesShort
          • getWeekStartsOn
          • setWeekStartsOn
          • now
          • getNextYear
          • nextYear
          • getWeekStart
          • weekStart
          • getMonthStart
          • monthStart
          • getNextWeek
          • nextWeek
          • getNextDay
          • nextDay
          • getNextMonth
          • nextMonth
          • getPreviousYear
          • previousYear
          • getPreviousWeek
          • previousWeek
          • getPreviousDay
          • previousDay
          • getPreviousMonth
          • previousMonth
          • getMonthEnd
          • monthEnd
          • equal
          • equalDay
          • equalWeek
          • equalMonth
          • equalYear
          • before
          • beforeDay
          • beforeWeek
          • beforeMonth
          • beforeYear
          • after
          • afterDay
          • afterWeek
          • afterMonth
          • afterYear
          • earliest
          • latest
          • clone
          • _checkComparisonArgs
          • _instanceCheck
          • _clearCache
        • helpers/ debounce.js
          • debounce
        • helpers/ each.js
          • each
        • helpers/ outer-height.js
          • outerHeight
        • helpers / pad-number.js
        • helpers/ parse-date-format.js
          • map
          • getValues
          • getString
          • parseDateFormat
        • helpers / set-caret.js
        • helpers/ store-form-data.js
          • findAll
          • store
          • restore
          • clear
        • helpers/ transform.js
          • transform
        • helpers/ typeahead.js
          • Typeahead
          • _setParams
          • _whitelistedParams
          • defaults
          • run
          • addCharacterAtIndex
          • addCharacterAtCaret
          • removeCharacterAtIndex
          • removeCharacterAtCaret
          • removeCharactersInRange
          • setValue
          • getValue
          • moveCaret
          • moveCaretToEnd
          • moveCaretToStart
          • pause
          • resume
          • clear
          • _cacheElements
          • _parseParams
          • _parseFormat
          • _parseCharacters
          • _createDefaultInputElement
          • _createDefaultPlaceholderElement
          • _getCharactersAllowedCount
          • _bindEventListenerCallbacks
          • _addEventListeners
          • _removeEventListeners
          • _getCaretStart
          • _getCaretEnd
          • _caretIsAtEnd
          • _setCaretPosition
          • _getCaretPositionTranslated
          • _getCaretStartTranslated
          • _getCaretEndTranslated
          • _setCaretPositionTranslated
          • _moveCaret
          • _emptyWhenOnlyPlaceholders
          • _maintainFocus
          • _updateWidth
          • _onKeydown
          • _onInput
          • _onFocus
          • _onBlur
          • _onPlaceholderClick
          • _onBackspace
        • index.js
          • exports
    • Roadmap
    • View All Resources
  • About
  • Contact
    • Containers & Navigation
      • Carousel
      • Expand & Collapse
      • Footer
      • Header & Navigation
      • Modals
      • Pagination and View More
      • Panels
      • Panel Menu
      • Responsive Grid
      • Scroll to Top
      • Tables
      • Tabs
      • Toolbar
    • Data Visualization
      • Introduction to Data Visualization
      • Color Palettes for Data Visualization
      • Bar Charts
      • Gauges
      • Line Graphs
      • Pie and Donut Charts
    • Form Elements
      • Buttons
      • Checkboxes
      • Date Selection
      • Multi-Select
      • Number Selector
      • Radio Buttons
      • Select Input
      • Sliders
      • Text Input
      • Toggles and Switches
    • Messaging & Content
      • Links
      • Messages
      • Popovers
      • Progress Indicators
      • Step Indicator
      • Tooltips
    • Page Templates
      • Sign-In Screen
      • Single Container Layout
      • Single Container with Side Menu Layout
      • Splash Screen
      • Tabbed Container Layout
      • Tabbed Container with Side Menu Layout

    Select Input

    A select input is a form control for selecting a single item from a list of options.

    • Overview
    • Guidelines
    • Developer

    Default Select Example


    When to Use

    • Use a select input when there is a predetermined set of options from which to choose. This will reduce errors when users type in answers.
    • Use when there are more than two options and when only a single option can be selected.

    When Not to Use

    • Do not use a select input if only two options are available or if it is preferable for the user to see the available options. Instead, consider a radio button or toggle.
    • Do not use if multiple options can be selected. Consider checkboxes or a multi-select instead.

    Variations

    • Default Example (shown above)
    • Default with Error Example
    • Select Group Example

    Usage

    Prefill a select input when it is likely that a user will select one of the available options.

    The collapsed state of the select input is styled to match the size and visual treatment of the other form controls; however, the expanded list of options should use the native control on both desktop and mobile devices.


    Variations

    Default with Error


    Select Group

    Select groups are useful for form fields requiring multiple interdependent selections. For example, date selection (day, month, and year). If inputs are not directly related to one another, use independent select inputs.

    Your Birthday


    Developer Notes

    Default Select Input

    • HTML
    • JS
    <div class="spark-margin-top">
      <label class="spark-select">
        <select class="spark-select__input"> <!-- This has to be before .spark-label! -->
          <option></option>
          <option>Don't pick this one.</option>
          <option>A decent choice.</option>
          <option>The best option.</option>
        </select>
        <span class="spark-label">Select Option</span>
      </label>
    </div>
    <div class="spark-margin-top">
      <label class="spark-select">
        <select class="spark-select__input"> <!-- This has to be before .spark-label! -->
          <option></option>
          <option>Don't pick this one.</option>
          <option selected>A decent choice.</option>
          <option>The best option.</option>
        </select>
        <span class="spark-label">Select Option</span>
      </label>
    </div>
    
    <div class="spark-margin-top">
      <label class="spark-select">
        <select class="spark-select__input" disabled> <!-- This has to be before .spark-label! -->
          <option></option>
          <option>Don't pick this one.</option>
          <option>A decent choice.</option>
          <option>The best option.</option>
        </select>
        <span class="spark-label">Select Option</span>
      </label>
    </div>
    <div class="spark-margin-top">
      <label class="spark-select">
        <select class="spark-select__input" disabled> <!-- This has to be before .spark-label! -->
          <option></option>
          <option>Don't pick this one.</option>
          <option>A decent choice.</option>
          <option selected>The best option.</option>
        </select>
        <span class="spark-label">Select Option</span>
      </label>
    </div>
    // Vanilla JS
    var el = document.querySelector('.spark-select');
    var selectInstance = new Spark.SelectInput(el);
    
    // jQuery
    $('.spark-select').sparkSelectInput();

    Select inputs are distinguished from text input fields with an actionable down arrow to the right side of the element.

    The select input mirrors the validation patterns of a text input. Validation can be performed by hooking into the Spark.SelectInput JavaScript class. When instantiating the class, provide an options object with a callback function set to the onChange key as the second argument. Ex. new Spark.SelectInput(el, {onChange: function(input, val) { }});

    The callback function will be passed two arguments: the instance of Spark.SelectInput and the current value of the input. Using the clearMessages, setSuccess, setWarning or setError methods on the Spark.SelectInput instance, you can manipulate which kind of error (if any) is shown. Only one state can be set at any time.

    If you don’t wish to or cannot use the Spark.SelectInput JavaScript class, adding data-error="true", data-warning="true" or data-success="true" to .spark-select will affect the color of the select input. Setting the content of .spark-select__message will change the message displayed below the input.

    Select Group

    Your Birthday
    • HTML
    • JS
    <div class="spark-select-group spark-margin-top">
      <label class="spark-select">
        <select class="spark-select__input">
          <option></option>
          <option>Jan</option>
          <option>Feb</option>
          <option>Mar</option>
          <option>Apr</option>
          <option>May</option>
          <option>June</option>
          <option>July</option>
          <option>Aug</option>
          <option>Sept</option>
          <option>Oct</option>
          <option>Nov</option>
          <option>Dec</option>
        </select>
        <span class="spark-label">Month</span>
      </label>
      <label class="spark-select">
        <select class="spark-select__input">
          <option></option>
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>
          <option>6</option>
          <option>7</option>
          <option>8</option>
          <option>9</option>
          <option>10</option>
          <option>11</option>
          <option>12</option>
          <option>13</option>
          <option>14</option>
          <option>15</option>
          <option>16</option>
          <option>17</option>
          <option>18</option>
          <option>19</option>
          <option>20</option>
          <option>21</option>
          <option>22</option>
          <option>23</option>
          <option>24</option>
          <option>25</option>
          <option>26</option>
          <option>27</option>
          <option>28</option>
          <option>29</option>
          <option>30</option>
          <option>31</option>
        </select>
        <span class="spark-label">Day</span>
      </label>
      <label class="spark-select">
        <select class="spark-select__input">
          <option></option>
          <option>1967</option>
          <option>1968</option>
          <option>1969</option>
          <option>1970</option>
          <option>1971</option>
          <option>1972</option>
          <option>1973</option>
          <option>1974</option>
          <option>1975</option>
          <option>1976</option>
          <option>1977</option>
          <option>1978</option>
          <option>1979</option>
          <option>1980</option>
          <option>1981</option>
          <option>1982</option>
          <option>1983</option>
          <option>1984</option>
          <option>1985</option>
          <option>1986</option>
          <option>1987</option>
          <option>1988</option>
          <option>1989</option>
          <option>1990</option>
          <option>1991</option>
          <option>1992</option>
          <option>1993</option>
          <option>1994</option>
          <option>1995</option>
          <option>1996</option>
          <option>1997</option>
          <option>1998</option>
          <option>1999</option>
          <option>2000</option>
          <option>2001</option>
          <option>2002</option>
          <option>2003</option>
          <option>2004</option>
          <option>2005</option>
          <option>2006</option>
          <option>2007</option>
          <option>2008</option>
          <option>2009</option>
          <option>2010</option>
          <option>2011</option>
          <option>2012</option>
          <option>2013</option>
          <option>2014</option>
          <option>2015</option>
          <option>2016</option>
        </select>
        <span class="spark-label">Year</span>
      </label>
      <span class="spark-label">Your Birthday</span>
    </div>
    // Vanilla JS
    var el = document.querySelector('.spark-select');
    var selectInstance = new Spark.SelectInput(el);
    
    // jQuery
    $('.spark-select').sparkSelectInput();

    A group of select inputs can exist inside the same container. Simply wrap a set of elements with the class of .spark-select in a containing element with a class of .spark-select-group. Create an instance of the Spark.SelectInput helper for each of the inputs.

    • Default Select Example
      • When to Use
      • When Not to Use
      • Variations
    • Usage
    • Variations
      • Default with Error
      • Select Group
    • Developer Notes
      • Default Select Input
      • Select Group
    © 2015-16 Sabre
    • Contact Us
    • Report a Bug