Invision UI v.19.6.0-0

Getting Started

  • Running Invision UI
  • UI Component Anatomy
  • Authoring SCSS
  • Authoring Presentational Behavior

Component Foundations

  • SCSS Authoring
    • Mixins & Variables
    • Stateful Classes
  • State Guidance
    • Empty/Zero State
    • Loading State
  • Utilities
    • Align
    • Display
    • Flexbox
    • Font Size
    • Layout
    • Offset
    • Position
    • Overflow
    • Size
    • Spacing
    • Text
  • Layout
    • Arrange [Deprectated]
    • Divided Columns
    • Embed Video
    • Full and Center
    • Fill [Deprectated]
    • Grid
    • Media Blocks
    • Panels
    • Vertical Layouts
  • Media Queries
  • Angular Behaviors
    • App Theme Directive
    • Auto Focus Input
    • Filters
    • Popup (modal dialog) Manager
    • Tether (tooltip/dropdown) Manager
    • Resize Sensor
    • Watchers

UI Component Library

  • Content & Containment
    • Active Translation
    • Auto Fit Text
    • Address
    • Basic & Input Table
    • Brand Logo/Slogan
    • Call to Action - Empty State
    • Carousel
    • Cart
    • Choice
    • Collapsible Container
    • Copyright Footer
    • Coupon Redeemer
    • Content
    • Date Relative Display
    • Definition Lists
    • Delimited List
    • Details
    • Expiration Date Display
    • Feature Toggle
    • Form Section Heading
    • Header
    • Heading
    • Heading With Annotation
    • Icons
    • Interaction Details
    • Labeled Balance
    • Link
    • Main Container
    • Metadata Card
    • Metadata List Item
    • Offering QuickView
    • Payment Instrument
    • Preference Dialog
    • Pricing Plan Decoration
    • Product Availability
    • Product Details
    • Product Image
    • Quick Info Panel
    • Remark
    • Renewal Column
    • Richlist Filterbar
    • Richlist Wrapper
    • Scrollable Horizontal List
    • Search Card
    • Search Panel
    • Section
    • Selectable Option
    • Smart Truncate
    • Status Grid
    • Tooltip
  • Data Visualizations
    • Bill Runs
    • Comparison Table
    • Datatable
    • Progress Tracker
    • Schedules
    • Query Builder
  • Dialogs
    • Confirmation Dialog
    • Dialog
    • Rich List Dialog
    • Wait Dialog
  • Forms and Filters
    • Additional Properties
    • Autocomplete
    • 3 Field Date Input
    • Checkbox
    • Credit Card
    • Bulk Action Bar
    • Buttons
    • Confirmation Button
    • Date Picker
    • E-Check
    • Entity Specification
    • External Bill
    • External Gift Card
    • Focus Group
    • Forms
    • Filter Bar
    • Filter Dropdowns
    • Gift Card
    • Grouped Check Filters
    • Inputs
    • Input Select Combo
    • Monetary Input
    • Multi Dropdown Selector
    • Multiple Numeric Input
    • Monetary Range Input
    • Password Unmask Button
    • Select
    • Select Button Or Stepper
    • Select Or Text Input
    • Stepper
    • Tag Dropdown
  • Navigation & Flow
    • Back Banner
    • Back Component
    • Breadcrumbs
    • Details Pager
    • Expandable Section
    • Infinite Scroll
    • Open New Window
    • Pager
    • Fancy Richlist
    • Standard Navigator
    • Status Indicator
    • Step Progress Bar
    • Step Progress Indicator
    • Tab Card
    • Tab Panel
    • Tier Navigator
    • Wizard
  • Notifications
    • Loading Indicator
    • Toast Notifications
  • Deprecated
    • Content Area

Showcase

  • General
    • Simplelist
    • Richlist
    • Primary (side) Navigator
  • Customer Care
    • Case Activity List
    • Customer Care Navigator Component
    • Dashboard
    • Decisions
  • Reporting
    • Content Visualization

Unit Testing

  • Actions
  • Components
  • Selectors
  • Reducers

End-to-end Testing

Statistics

Select Input

In this section

Overview Variants
  • Single
  • Multi
  • Add Options

This component provides an enhanced version of the default select input.

Single

Renders a single value select with markup identical to standard html select elements. Adds a search box by default, which is hidden if the number of available options falls below the specified search threshold.

HTML
<div class="t-content" ng-controller="invSelectExampleController" inv-focus-group>
    <ng-form class="c-form c-generalForm" autocomplete="off">
        <fieldset class="c-fieldset">
            <div class="c-fieldset-item">
                <label for="single">Single Select:</label>
                <inv-select ng-model="single" name="single">
                    <inv-option ng-repeat="option in sampleOptions"
                        value="option.value"><span ng-bind="option.label"></span></inv-option>
                </inv-select>
            </div>
            <div class="c-fieldset-item">
                <label for="threshold">Threshold (adds search if set to 16 or less, disables search if set to -1):</label>
                <input ng-model="threshold" name="threshold" type="number" min="-1"/>
            </div>
            <div class="c-fieldset-item">
                <label for="singleNoSearch">Search Limited to Threshold:</label>
                <inv-select ng-model="singleNoSearch" name="singleNoSearch" search-threshold="threshold">
                    <inv-option ng-repeat="option in sampleOptions"
                        value="option.value"><span ng-bind="option.label"></span></inv-option>
                </inv-select>
            </div>
            <div class="c-fieldset-item">
                <label for="noResults">Custom No Results Placeholder:</label>
                <inv-select ng-model="noResults"
                    name="noResults"
                    no-results="custom"
                    locale-keys="customLocaleKeys">
                    <inv-option ng-repeat="option in sampleOptions"
                        value="option.value"><span ng-bind="option.label"></span></inv-option>
                </inv-select>
            </div>
        </fieldset>
    </ng-form>
</div>

Multi

Renders a multi value select with markup identical to standard html select elements. Selected items display as pills, and search is always enabled.

HTML
<div class="t-content" ng-controller="invSelectExampleController" inv-focus-group>
    <ng-form class="c-form c-generalForm" autocomplete="off">
        <fieldset class="c-fieldset">
            <div class="c-fieldset-item">
                <label for="multi">Multi Select:</label>
                <inv-select
                    ng-model="multi"
                    id="multi"
                    name="multi"
                    multiple>
                    <inv-option
                        ng-repeat="option in sampleOptions track by option.value"
                        value="::option.value">
                        <span ng-bind="::option.label"></span>
                    </inv-option>
                </inv-select>
            </div>
            <div class="c-fieldset-item">
                <label for="multiSelected">Multi Select:</label>
                <inv-select
                    ng-model="multiSelected"
                    name="multiSelected"
                    id="multiSelected"
                    multiple>
                    <inv-option
                        ng-repeat="option in sampleOptions track by option.value"
                        value="::option.value">
                        <span ng-bind="::option.label"></span>
                    </inv-option>
                </inv-select>
            </div>
            <div class="c-fieldset-item">
                <label for="disabledMultiSelected">Disabled Multi Select:</label>
                <inv-select
                    ng-model="multiSelected"
                    id="disabledMultiSelected"
                    ng-disabled="true"
                    multiple>
                    <inv-option
                        ng-repeat="option in sampleOptions track by option.value"
                        value="::option.value">
                        <span ng-bind="::option.label"></span>
                    </inv-option>
                </inv-select>
            </div>
        </fieldset>
    </ng-form>
</div>

Add Options

Option to enable adding new options on the fly. A callback from the parent controller must return 'true' to enable addition of the current search value. All added values return as an object with a 'created' property.

HTML
<div class="t-content" ng-controller="invSelectExampleController" inv-focus-group>
    <ng-form class="c-form c-generalForm" autocomplete="off">
        <fieldset class="c-fieldset">
            <div class="c-fieldset-item">
                <label for="additions">Enable Option Additions:</label>
                <inv-select 
                    allow-create="allowCreate(searchValue)"
                    name="additions"
                    ng-model="additions">
                    <inv-option ng-repeat="option in sampleOptions"
                        value="option.value"><span ng-bind="option.label"></span></inv-option>
                </inv-select>
            </div>
            <div class="c-fieldset-item">
                <label for="multiAdditions">Enable Multi-Option Additions:</label>
                <inv-select 
                    allow-create="allowCreate(searchValue)"
                    multiple
                    name="multiAdditions"
                    ng-model="multiAdditions">
                    <inv-option ng-repeat="option in sampleOptions"
                        value="option.value"><span ng-bind="option.label"></span></inv-option>
                </inv-select>
            </div>
            <div class="c-fieldset-item">
                <label for="additionPlaceholders">Custom Add/Added Placeholders:</label>
                <inv-select 
                    allow-create="allowCreate(searchValue)"
                    multiple
                    name="additionPlaceholders"
                    ng-model="additionPlaceholders"
                    locale-keys="additionLocaleKeys">
                    <inv-option ng-repeat="option in sampleOptions"
                        value="option.value"><span ng-bind="option.label"></span></inv-option>
                </inv-select>
            </div>
        </fieldset>
    </ng-form>
</div>