77 lines
3.6 KiB
HTML
77 lines
3.6 KiB
HTML
<div class="dropdown-input full-width" dropdown is-open="state.isOpen">
|
|
<button type="button" class="dropdown-input__button dropdown-toggle" ng-class="{'ng-invalid-required' : !selectedItem && required}" aria-required="{{ariaRequired}}" id="{{inputId}}"
|
|
ng-disabled="disabledSelection" ng-class="{'dropdown-input__button_placeholder': !selectedItemValue && !firstItemEmpty}"
|
|
title="{{titleText}} {{selectedItemLabel ? selectedItemLabel : 'common.placeholder.selectOne' | i18n}}">
|
|
{{selectedItemLabel ? selectedItemLabel : 'common.placeholder.selectOne' | i18n}}
|
|
</button>
|
|
<i class="icon-cross dropdown-clear" title="{{'common.button.clear' | i18n}}" role="link"
|
|
ng-if="!disabledSelection && showClear && selectedItemValue" ng-click="clear()" ng-enter="clear()" tabindex="0"></i>
|
|
<input ng-if="fieldName" type="text"
|
|
potentially-required-field
|
|
field-name="{{fieldName}}"
|
|
entity="entity"
|
|
style="display: none;"
|
|
name="selectedItem"
|
|
ng-required="required"
|
|
ng-model="selectedItem" />
|
|
<input ng-if="!fieldName" type="text"
|
|
style="display: none;"
|
|
name="{{tempFieldName}}"
|
|
ng-required="required"
|
|
ng-model="selectedItem" />
|
|
<ul class="dropdown-menu full-width">
|
|
<li class="dropdown-item__header" ng-if="selectionFilter && !typeaheadMode">{{'common.placeholder.search' | i18n}}</li>
|
|
<li class="dropdown-item_search-bar" ng-if="selectionFilter && !typeaheadMode">
|
|
<i class="icon-search dropdown-item_search-icon"></i>
|
|
<input title="{{selectionFilterPlaceholderText | i18n}}"
|
|
prevent-click-event
|
|
class="dropdown-item_search"
|
|
type="text"
|
|
ng-model="search.searchFilterText"
|
|
ng-keyup="handleKeyup($event)"
|
|
ng-keydown="handleKeydown($event)"
|
|
placeholder="{{selectionFilterPlaceholderText | i18n}}"/>
|
|
</li>
|
|
<li class="dropdown-item_typeahead-bar" ng-if="typeaheadMode">
|
|
<div class="dropdown-item_typeahead-label" ng-if="!search.typeaheadText || (search.typeaheadText.length > 2 && tooltip.showTooltip)">{{'common.labels.tooManyToDisplay' | i18n}}</div>
|
|
<input title="{{selectionFilterPlaceholderText | i18n}}"
|
|
prevent-click-event
|
|
class="dropdown-item_search-bar-input"
|
|
type="text"
|
|
ng-model="search.typeaheadText"
|
|
ng-blur="onBlur()"
|
|
typeahead-min-length="3"
|
|
typeahead="{{typeaheadDetails}}"
|
|
typeahead-on-select="itemSelected($item);search.typeaheadText='';"
|
|
typeahead-wait-ms="500"
|
|
typeahead-loading="isTypeaheadLoading"
|
|
ng-keydown="handleKeydown($event)"
|
|
ng-keyup="handleKeyup($event)"
|
|
placeholder="{{selectionFilterPlaceholderText | i18n}}"/>
|
|
<div class="dropdown-item_typeahead-bar-bottom-spinner">
|
|
<loading-spinner if="isTypeaheadLoading" inline="true"></loading-spinner>
|
|
</div>
|
|
</li>
|
|
<li class="dropdown-item" ng-if="loadingFlag">
|
|
<loading-spinner if="loadingFlag" inline="true" centered="true"></loading-spinner>
|
|
</li>
|
|
<li ng-if="firstItemEmpty && !typeaheadMode">
|
|
<a class="dropdown-item"
|
|
ng-click="itemSelected()"
|
|
ng-keydown="handleKeydown($event)"
|
|
href="javascript:void(0)"
|
|
role="menuitem">
|
|
</a>
|
|
</li>
|
|
<li ng-if="!search.typeaheadText" ng-repeat="selectionItem in selectionItems | filter : filterDropDown(search.searchFilterText)">
|
|
<a class="{{(value ? selectionItem[value] == selectedItem[value] : selectionItem == selectedItem) ? 'dropdown-item_selected' : 'dropdown-item'}}"
|
|
ng-click="itemSelected(selectionItem)"
|
|
ng-keydown="handleKeydown($event)"
|
|
href="javascript:void(0)"
|
|
role="menuitem">
|
|
{{getLabel(selectionItem)}}
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|