heyprof/angularjs-input-tags

View on GitHub
src/input-tags.template.html

Summary

Maintainability
Test Coverage
<label class="ait-label">
  <ul class="ait-dropdown"
      ng-if="$ctrl.maxLength > $ctrl.tags.length"
      ng-show="$ctrl.autocompleteVisible">
    <li class="ait-dropdown-item ait-dropdown-title"
        ng-if="$ctrl.path.length > 0"
        ng-click="$ctrl.previous()">
      <span class="ait-dropdown-itemBack"
            ng-class="$ctrl.itemBackClass"></span>
      <span class="ait-dropdown-itemContent"
            ng-bind="$ctrl.currentItem[$ctrl.displayProperty]"></span>
    </li>
    <li class="ait-dropdown-item"
        ng-class="{
          'ait-dropdown-item--checked': $ctrl.isTagAdded(item),
          'ait-dropdown-item--last': !item.data || item.data.length === 0
        }"
        ng-repeat="item in $ctrl.currentItem.data track by item.code"
        ng-click="item.data && item.data.length > 0 ? $ctrl.next(item) : $ctrl.addTag(item)">
      <span class="ait-dropdown-itemContent"
            ng-bind="item[$ctrl.displayProperty]"></span>
      <span class="ait-dropdown-itemNext"
            ng-class="$ctrl.itemNextClass"
            ng-if="item.data && item.data.length > 0"></span>
      <span class="ait-dropdown-itemCheck"
            ng-class="$ctrl.itemCheckClass"
            ng-if="$ctrl.isTagAdded(item)"></span>
    </li>
  </ul>

  <div class="ait-tag"
       ng-repeat="tag in $ctrl.tags track by $ctrl.track(tag)">
    <span class="ait-tag-text"
          ng-bind="::$ctrl.getTagText(tag)"></span>
    <span class="ait-tag-close"
          style="cursor: pointer"
          ng-class="$ctrl.removeTagClass"
          ng-click="$ctrl.removeTag(tag)">
    </span>
  </div>

  <input class="ait-input"
         type="text"
         autocomplete="off"
         ng-trim="false"
         tabindex="{{$ctrl.tabindex}}"
         placeholder="{{$ctrl.placeholder}}"
         spellcheck="{{$ctrl.spellcheck}}"
         tabindex="-1"
         ng-focus="$ctrl.triggerFocus($event)"
         ng-blur="$ctrl.triggerBlur($event)"
         ng-if="$ctrl.maxLength > $ctrl.tags.length"
         ng-model="$ctrl.inputSearch"
         ng-model-options="{ debounce: $ctrl.inputDebounce }"
         ng-change="$ctrl.inputChange()"
         ng-disabled="$ctrl.disabled" />
</label>