Skip to content
This repository has been archived by the owner on May 7, 2021. It is now read-only.

Commit

Permalink
Update UI tests branch (#2769)
Browse files Browse the repository at this point in the history
* [WIP]fix(test) : update creator and link tests to run against prod-preview (#2725)

* fix(test) : update creator and link tests to run against prod-preview

* fix(test) : add selector for Plan, Board and Backlog Tab

* fix(test) : fix script to run the tests against prod and prod-preview (#2726)

* fix(tests) : Remove old JS based functional tests (#2732)

* fix(tests) : Remove old JS based functional tests

* Move google-chrome.repo file out of runtime/tests directory

* Remove unnecessary package installation from Dockerfile (#2731)

* fix(tests) : Added workitem-naughty-string-spec.ts and updated AgileTemplate spec (#2733)

* feat(board): Board components added to planner

* fix(actions): add action for BoardView

* feat(card): add planner card component

* fix(actions): add actions for to get Board api

* fix(navigation): board side panel navigation added

* feat(column): add column component

* fix(effects): call boardApi in getBoards Effect

* fix(board): add mapper in workitem and Board

* fix(board): use action to update board

* fix(board): add reducer for boardColumn

* fix(board): add states and reducer to board module

* fix(board): add column-workItem reducer

* fix(board): fix tests for board service, reducer, model

* fix(reducer): add  unit test for column-workitem reducer

* fix(board): remove board-api-url action from boardAction

* fix(workitem): add getWorkItemWithIds query to WorItemQuery

* fix(board): integrate board components with action, effects and model

* fix(type): using proper type for side panel context

* fix(board):add drag and drop

* fix(board): assign value in board effects, change type of columnIds, fix unit tests, fix column-workItem reducer

* fix(board): change structure of column component

* fix(css): fix linter error for css

* fix(board): get workitems for each column in board query

* fix(columnWorkitem/board): use switchMap, add dafault to reducer switch case

* fix(board-ngrx): Board State, Actions, Effects, Reducers (#2708)

* fix(states): add BoardState to app.state

* fix(actions): add action for BoardView

* fix(actions): add actions for to get Board api

* fix(common): add optional parameter to have different key in normalization

* fix(reducersBoard): add reducers for BoardView

* fix(effectsBoard): add effects for boardView

* fix(effects): call boardApi in getBoards Effect

* fix(common): add test for nprmalize array

* fix(board): add mapper in workitem and Board

* fix(column-workitem): add state for column-workitem

* fix(board): add reducer for boardColumn

* fix(board): add states and reducer to board module

* fix(board): add column-workItem reducer

* fix(board): fix tests for board service, reducer, model

* fix(reducer): add  unit test for column-workitem reducer

* fix(board): remove board-api-url action from boardAction

* fix(workitem): add getWorkItemWithIds query to WorItemQuery

* fix(board): assign value in board effects, change type of columnIds, fix unit tests, fix column-workItem reducer

* fix(board): add default for column workItem reducer

*  fix(columnWorkitem): add unit test for default case

* fix(card): add assignee component

* fix(board): preparing board model to fetch work items

* fix(board): fetch work item for board

* fix(board): fetch work item bug fixed

* fix(board): send patch and reorder requests

* fix(board): initialize column on updateSuccess if not created

* fix(tests): unit test for column workItem reducer

* fix(workItem): fix workItemMapper test

* fix(board): use array instead of set, update unit tests

* fix(board): send array of column ids in column workitem Update action

* fix(column-workitem): handled column update fail

* fix(board): add quick preview to board view

* fix(workitem-effect): unnecessary code is removed for column change

* fix(board): add unit test for columnWorkitem actions and reduces

* fix(board): board ui state added with board lockdown feature

* fix(quick-preview): add condition to check if request coming from board or list

* fix(quick preview): add context input to correctly redirect to detail page route

* fix(card): fix child iteration name

* fix(board): fix 404 error on redirect to profile

* fix(customQuery): add modal component to board for custom query delete

* fix(board): disable drag n drop for non-collaborators

* fix(board): change username to full name

* fix(field): meta state field is removed from the detail page

* fix(board): add board view For iterations

* fix(card): fix workitem type icon

* fix(grouptype): select the default group type on load

* fix(workItemUtil): check if query is present in current route or not

* fix(package-lock): update package-lock.json

* fix(test): Upgrade pip version

- Add python-devel to dependencies

* fix(list-view): fix alignment of work item cells (#2633)

* fix(list-view): fix alignment of work item cells

* fix(labels): fix label alignment in quick preview

* fix(tests): fix tests spacing

* fix(test): fix tests

* fix(labels): fix labels in comments and assignee cell width

* fix(datatable): update cookie version for datatable

* fix(datatable): fix width of overflown work item cells

* fix(comment): add button type

* fix(labels): fix scpacing between labels

* fix(wi-cell): fix width for iteration/labels and tooltip for iteration

* fix(tests): fix test for iteration title length

* fix(test) : fix failing label test (#2741)

This PR fixes the failing label test due to changes in the API tests PR fabric8io/fabric8-test#911

* fix(list): by default remove Closed work item from list. (#2743)

* fix(list): by default remove Closed work item from list.

* fix(test): add functional test

* feat(query-tab): Added basic query module with routing.

* fix order of child-types in work-item type dropdown test

* add feature-flag on query-module

* Revert "add feature-flag on query-module"

This reverts commit 53a9e28.

* feat(query): add feature-flag on query-module (#2750)

* fix(test): Change spec timeout from 60 mins to 3 mins (#2752)

* fix(events): oldValue or newValue not present return empty array

* fix(events): add unit test for failing events

* fix(events): add unit test for attributes newValue and oldValue

* fix(events): handle the case of list values in data.attribute

* fix(query): fix provider dependencies for local env using feature-flag

* fix(WorkItemType): WorkItemType Normalization and WorkItem Detail Component refactor

* fix(plannerList): use spaceQuery to get the spaceSource

* fix(table-config): add table-config component

* fix(list): add table-config to planner- list

* fix(work-item-cell): create a module for work-cell-component

* fix(columnFilterPipe): add module.ts for column filter

* fix(urlQuery): remove space id form query

* fix(effects-query): add space query before sending the search api request

* fix(query): add table and input to query language

* fix(query): add reset workitem action

* fix(quick-preview): ouput full workItem from work-item-cell to open quick preview

* fix(query-input): add clear button to clear the input

* fix(query): add ctrl+backspace to clear the query

* fix(query): fix input field

* fix(workItem): create a action and effect to get children for query page

* fix(query): add child exploration and breadcrumbs

* fix(query): align explore children css and breadcrumbs css

* fix(filter-service); add support of $OR query length===1 in getConditionFromQuery

* fix(tests): change the class for settings dropdown and detail page icon

* fix(tests): use new table-config class

* fix(WorkItemutils): add spaceId befire sending the request in workitemMatchesFilter

* fix(detailPage): fix View full detail link from quick Preview

* fix(query): fetch workItems after workItemTypes are loaded

* fix(workItemUtil): add a condition for query page in workItem util

* fix(boardUIQuery): add a filter on boardLocked

* fix(WorkITemLinks): add condition for query context to open detail page from link section

* fix(query): fix css for clear button in input

* fix(PlannerList): only send workItemId and children Link to fetch the children

* fix(test): fixed workItemTable tests and added change wi type test

* feat(change-wi-type): implement new design for change-wi-type

* fix(test): fix dropdown tests

* feat(change-wi-type): add necessary changes after WIT normalization

* fix(common-dropdown): icon support added

* fix(detail): type and state using common dropdown

* fix(test): fix type and state drop-down tests

* fix(test): fixed test for disabled state dropdown

* fix(test): create new item for type change test

* fix(wi-title): fix title overflow and align cell items center (#2759)

* fix(CI): Push PR Snapshot images to quay.io instead of devshift (#2762)

* fix(tests) : Update UI tests to run on both Agile and SDD template parallelly (#2747)

* fix(workItemCell): fix titile truncate for query page

* fix(workitem-service): legacy codes are removed from this service

- Most of the unused, legacy codes are removed from this service
- Some of the legacy methods are still being used in fabrc8-ui
- They are marked as JSDoc  @deprecated
- Deprecated preperties will be removed soon

* fix(test): added tests for work item service

* fix(clean-up): removed space observable dependency from main methods

- `this._currentSpace` dependency is removed from all the main methods

* fix(tests): more unit tests for work item service

* fix(package): filter service is exported for planner consumers

* fix(effects): fixed wi effects based on the changes in services

* fix(service): fixed link url for wi ser

* fix(ngrx): listening to user change just once for the list load

* fix(link-type): query for link-type added and used

- get linkTypes action dispatches in space effects now

* fix(links): initial state for work item link is made null

- null means not fetched yet
- a new action to reset the state is added

* feat(ng-let): ng-let directive added for async convenience

* fix(link-query): link and link-type querries are added

* fix(selector): selector components refactored

* fix(selector): optional on select close feature added to common dropdown

* feat(typeahead): new typeahead component created on top of base selector

* fix(ng-let): module added for ngLet

* fix(selector): fixing on open event for type ahead selector

* fix(less): fixed the border issue in detail page tabs

* fix(link): link reducer to return new state on error to update DOM

* feat(link-component): work item link component refactorred

- Use of async pipe
- Use of new type ahead search
- New link creation experience

* fix(selector): search loader added to the type ahead selector

* fix(link-search): create link on empty work item save button handled

* fix(style): style updated for selector dropdowns

* fix(link): empty link creator section removed

* fix(code): removed old type ahead component

* fix(selector): truncate in selector is made as input

* fix(typeahead): display value removed from the item structure

* fix(dropdown): description for dropdown is added

* fix(test): fixed functional test for new dropdown component

* fix(link-type): link type descriptions added

* fix(test): added unit tests for type ahead selector component

* fix(link): newly added links are highlighted

* fix(link): fixed the CSS alignment for link list

* fix(test): state and type dropdown test fixed

* fix(link): fixed linking bugs in the link section

* fix(datatable): make tree view indentation 20px

* fix(quick-preview): Remove mouse cursor for current assignees on a work item (#2763)

* add http-service.spec.ts

* chore(event): remove unused imports

* fix(planner-list): add HttpClientModule and HTTP_INTERCEPTORS to planner-list module

* fix(http.service): use HttpClient service in collaborators
- use AuthInterceptor for AuthorizationToken
- create get method for HttpClient

* fix(httpService): use HttpBackendClient to send request

* fix(interceptor): create interceptor specific to auth header

* fix(httpclient): add http-module and interceptors

* fix(workItemsService): use httpclient in workItemService to send request for create comment

* fix(httpclien): use HttpBackend to resolve redirection problem in firefox

* fix(httpclient): add httpClient for area and booard service

* fix(custom-query-service): new httpClient implemented

* fix(grouptype-service): replaced http service with new http client

* fix(infotip-service): info tip service upgraded with new http client

* fix(workItemService): add HttpClient for workItemService

* fix(tests): unit tests for board and collaborator service

* fix(iteration-service): iteration service refactored with httpClient

* fix(label-service): label service refactored with http client

* fix(refactor): unwanted services are removed

* fix(unit-tests): fix test for board. collaborator and workitem service

* fix(workItemService): refactor workitem service

* fix(service): refactor link-type, custom-query, httpService

* fix(httpService): remove http service and code related to it

* fix(test): added test for new http service

* fix(filterService): add HttpClient to filterService, fix unit tests

* fix(httpservice): use responseType:'text' for delete requests

* fix(test): fixed unit test for body less DELETE response

* fix(tests): reorganize imports in http service spec

* fix(event): non-collab user issue in event is fixed
  • Loading branch information
Raunak1203 authored Aug 29, 2018
1 parent 7ff3b33 commit c9d07b8
Show file tree
Hide file tree
Showing 102 changed files with 6,549 additions and 3,477 deletions.
2 changes: 1 addition & 1 deletion karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ module.exports = function(config) {
require("karma-typescript-es6-transform")()
],
// not excluding ngx-widgets from the bundling causes syntax errors in the final bundle(?!).
exclude: ['ngx-widgets']
// exclude: ['ngx-widgets']
},
compilerOptions: {
lib: ["ES2015", "DOM"]
Expand Down
14 changes: 13 additions & 1 deletion src/app/actions/work-item-link.actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ export const DELETE_SUCCESS = '[workItemLink] DeleteSuccess';
export const ADD_ERROR = '[workItemLink] AddError';
export const GET_ERROR = '[workItemLink] GetError';
export const DELETE_ERROR = '[workItemLink] DeleteError';
export const RESET_LINKS = '[workItemLink] Reset';
export const TRIVIALIZE_ALL = '[workItemLink] TrivializeAll';

export class Add implements Action {
payload: WorkItemLinkService;
Expand Down Expand Up @@ -80,6 +82,14 @@ export class DeleteError implements Action {
readonly type = DELETE_ERROR;
}

export class ResetLinks implements Action {
readonly type = RESET_LINKS;
}

export class TrivializeAll implements Action {
readonly type = TRIVIALIZE_ALL;
}

export type All
= Add
| AddSuccess
Expand All @@ -89,4 +99,6 @@ export type All
| GetError
| Delete
| DeleteSuccess
| DeleteError;
| DeleteError
| ResetLinks
| TrivializeAll;
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,7 @@ export class AssigneeSelectorComponent {
this.assignees = cloneDeep(this.backup);
}
}
updateOnList() {
this.workItemService.emitEditWI(this.workItem);
}

cancelAssignment(): void {
this.searchAssignee = false;
}
Expand Down
2 changes: 1 addition & 1 deletion src/app/components_ngrx/assignee/assignee.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
[imgPlacement]="'left'"
[imgSrc]="assignee?.avatar | almAvatarSize: 25">
</user-avatar>
<span class="pointer">
<span>
{{ assignee.name }}
</span>
</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<f8-select-dropdown
id="f8-selector-dropdown"
#dropdown
*ngIf="backup.length"
[toggleButtonRef]="toggleButtonRef"
Expand All @@ -14,23 +13,31 @@
(onClose)="onClose($event)">
<ng-template #toggleButtonRef>
<span
class="pointer"
*ngFor="let item of _selectedItemsBackup">
<i *ngIf="item?.icon"
[ngClass]="['margin-right-10', item.icon]"></i>
{{ item.value }}
</span>
<span *ngIf="!_selectedItemsBackup.length" class="pointer">
{{ noValueLabel }}
[class.toggle]="allowUpdate"
[class.active]="isOpen"
[class.disable]="!allowUpdate">
<span
class="dropdown-toggle"
*ngFor="let item of _selectedItemsBackup">
<i *ngIf="item?.icon"
[ngClass]="['margin-right-10', item.icon]"></i>
{{ item.value | truncate: toggleTruncate }}
</span>
<span
class="dropdown-toggle"
*ngIf="!_selectedItemsBackup.length">
{{ noValueLabel }}
</span>
<span
[class.fa-angle-up]="isOpen"
[class.fa-angle-down]="!isOpen"
class="fa"></span>
</span>
</ng-template>
<ng-template #dropdownItem
let-value="value"
let-icon="icon"
let-stickontop="stickontop">
<i *ngIf="icon"
[ngClass]="['margin-right-10', icon]"></i>
<span *ngIf="!stickontop" [innerHTML]="value | truncate: -25 | almSearchHighlight: searchValue">
<ng-template #dropdownItem let-value="value" let-description="description" let-icon="icon">
<i *ngIf="icon" [ngClass]="['margin-right-10', icon]"></i>
<span class="item-value" [innerHTML]="value | truncate: itemTruncate | almSearchHighlight: searchValue">
</span>
<span class="item-desc margin-left-10">{{ description }}</span>
</ng-template>
</f8-select-dropdown>
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
@import (reference) '../../../assets/stylesheets/_base';

.add-label {
font-weight: 600;
.active {
color: @color-pf-blue-300;
}
.disable {
color: @color-pf-black-300;
cursor: not-allowed;
}
.toggle {
cursor: pointer;
font-weight: 600;
&:hover {
color: @color-pf-blue-300;
}
}
.item-desc {
display: block;
font-size: 12px;
font-style: italic;
line-height: 17px;
color: @color-pf-black-400;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { CommonSelectorComponent } from './common-selector.component';

/**
* Default checks for inputs
*/
describe('CommonSelectorComponent :: ', () => {
const comp = new CommonSelectorComponent();
it('Header text should have a default value', () => {
expect(comp.headerText).toBe('Default Header Text');
});

it('noValueLabel should have a default value None', () => {
expect(comp.noValueLabel).toBe('None');
});

it('by default update should be allowed', () => {
expect(comp.allowUpdate).toBeTruthy();
});

it('by default multi select should not be allowed', () => {
expect(comp.allowMultiSelect).toBeFalsy();
});

it('by default close the dropdown on select', () => {
expect(comp.closeOnSelect).toBeTruthy();
});
});
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {
ChangeDetectionStrategy,
Component,
EventEmitter,
Input,
Expand All @@ -14,7 +15,8 @@ import {
@Component({
selector: 'common-selector',
templateUrl: './common-selector.component.html',
styleUrls: ['./common-selector.component.less']
styleUrls: ['./common-selector.component.less'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class CommonSelectorComponent {

Expand All @@ -41,19 +43,21 @@ export class CommonSelectorComponent {
}

@Input('allowMultiSelect') allowMultiSelect: boolean = false;
@Input('closeOnSelect') closeOnSelect: boolean = true;
@Input('headerText') headerText: string = 'Default Header Text';
@Input('noValueLabel') noValueLabel: string = 'None';
@Input('allowUpdate') allowUpdate: boolean = true;
@Input('itemTruncate') itemTruncate: number = 500;
@Input('toggleTruncate') toggleTruncate: number = 500;

@Output() readonly onSelectItem: EventEmitter<any[]> = new EventEmitter();
@Output() readonly onOpenSelector: EventEmitter<any> = new EventEmitter();
@Output() readonly onCloseSelector: EventEmitter<any[]> = new EventEmitter();

users: User[] = [];

private backup: any[] = [];
private searchValue: string = '';
private menuItems: any[] = [];
isOpen: boolean = false;

constructor() {}

Expand All @@ -78,6 +82,9 @@ export class CommonSelectorComponent {
}
this.updateSelection();
this.onSelectItem.emit(cloneDeep(this.selectedItems));
if (this.closeOnSelect && !this.allowMultiSelect) {
this.dropdownRef.closeDropdown();
}
}

updateSelection() {
Expand All @@ -88,8 +95,8 @@ export class CommonSelectorComponent {
this.menuItems[index].selected = false;
}
});
this.backup.forEach((assignee, index) => {
if (this.selectedItems.find(a => assignee.key === a.key)) {
this.backup.forEach((item, index) => {
if (this.selectedItems.find(a => item.key === a.key)) {
this.backup[index].selected = true;
} else {
this.backup[index].selected = false;
Expand Down Expand Up @@ -119,9 +126,11 @@ export class CommonSelectorComponent {
}

onOpen(event) {
this.isOpen = true;
this.onOpenSelector.emit('open');
}
onClose(event) {
this.isOpen = false;
// Setting search input to empty string
this.dropdownRef.setSearchText('');
// Thus reset the value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,6 @@ export class IterationListEntryComponent implements OnInit, OnDestroy {
this.eventListeners.forEach(subscriber => subscriber.unsubscribe());
}

setGuidedTypeWI(wiCollection) {
this.groupTypesService.setCurrentGroupType(wiCollection, 'execution');
}

constructURL(iterationId: string) {
//Query for work item type group
const type_query = this.filterService.queryBuilder('typegroup.name', this.filterService.equal_notation, this.witGroup.name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ <h4>Please wait, we are loading your data.</h4>
<ngx-datatable-column
*ngFor="let c of (columns | filterColumn:'display')"
[isTreeColumn]="c.name==='Title'"
[indentTree]="c.name==='Title' ? 20 : 0"
[name]="c.name"
[resizeable]="false"
[width]="c.width"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ export class PlannerListComponent implements OnInit, OnDestroy, AfterViewChecked
this.areaSource,
this.iterationSource.take(1),
this.labelSource.take(1),
this.collaboratorSource,
this.collaboratorSource.take(1),
this.routeSource
);
})
Expand Down
13 changes: 3 additions & 10 deletions src/app/components_ngrx/planner-list/planner-list.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,21 @@ import { NgxDatatableModule } from 'rh-ngx-datatable';
import { WorkItemCellModule } from './../work-item-cell/work-item-cell.module';
import { WorkItemPreviewPanelModule } from './../work-item-preview-panel/work-item-preview-panel.module';

import { AuthenticationService } from 'ngx-login-client';

import { PlannerListComponent } from './planner-list.component';

import { TruncateModule } from 'ng2-truncate';
import { BsDropdownConfig, BsDropdownModule } from 'ngx-bootstrap/dropdown';
import { TooltipConfig, TooltipModule } from 'ngx-bootstrap/tooltip';
import { factoryForHttpService, HttpService } from '../../services/http-service';
import { PlannerModalModule } from '../../widgets/modal/modal.module';
import { AreaService } from './../../services/area.service';
import { CollaboratorService } from './../../services/collaborator.service';
import { CustomQueryService } from './../../services/custom-query.service';
import { IterationService } from './../../services/iteration.service';
import { LabelService } from './../../services/label.service';
import { WorkItemDataService } from './../../services/work-item-data.service';
import { WorkItemService } from './../../services/work-item.service';
import { GlobalSettings } from './../../shared/globals';
import { PlannerHttpClientModule } from './../../shared/http-module/http.module';
import {
PlannerLayoutModule
} from './../../widgets/planner-layout/planner-layout.module';
Expand All @@ -43,8 +41,8 @@ import { UrlService } from '../../services/url.service';
import { ClickOutModule } from '../../widgets/clickout/clickout.module';

// Data Querries
import { AreaQuery } from '../../models/area.model';
import { WorkItemTypeQuery } from '../../models/work-item-type';
import { AreaQuery } from './../../models/area.model';
import { CommentQuery } from './../../models/comment';
import { GroupTypeQuery } from './../../models/group-types.model';
import { IterationQuery } from './../../models/iteration.model';
Expand All @@ -58,11 +56,6 @@ import { TableConfigModule } from './../table-config/table-config.module';

let providers = [
WorkItemService,
{
provide: HttpService,
useFactory: factoryForHttpService,
deps: [XHRBackend, RequestOptions, AuthenticationService]
},
CustomQueryService,
IterationService,
TooltipConfig,
Expand All @@ -73,7 +66,6 @@ let providers = [
FilterService,
BsDropdownConfig,
CookieService,
WorkItemDataService,
UrlService,
InfotipService,
CommentQuery,
Expand All @@ -94,6 +86,7 @@ let providers = [
CommonModule,
ClickOutModule,
FilterColumnModule,
PlannerHttpClientModule,
PlannerListRoutingModule,
PlannerLayoutModule,
PlannerModalModule,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<f8-select-dropdown
#dropdown
[toggleButtonRef]="toggleButtonRef"
[dropdownItem]="dropdownItem"
[headerText]="headerText"
[menuItems]="menuItems | async"
[showSearch]="true"
[disabled]="!allowUpdate"
[loading]="searching"
(onSelect)="onSelect($event)"
(onSearch)="onSearch($event)"
(onOpen)="onOpen($event)"
(onClose)="onClose($event)">
<ng-template #toggleButtonRef>
<span
[class.toggle]="allowUpdate"
[class.active]="isOpen"
[class.disable]="!allowUpdate"
class="dropdown-toggle">
<span
*ngFor="let item of selectedItems; let i = index;">
<span>
{{ item.value | truncate: toggleTruncate }}
</span>
<span *ngIf="i === selectedItems.length-2">, </span>
</span>
<span
*ngIf="!selectedItems.length">
{{ noValueLabel }}
</span>
<span
[class.fa-angle-up]="isOpen"
[class.fa-angle-down]="!isOpen"
class="fa"></span>
</span>
</ng-template>
<ng-template #dropdownItem let-value="value" let-description="description">
<span [innerHTML]="value | truncate: itemTruncate | almSearchHighlight: searchValue">
</span>
<span class="item-desc margin-left-10">{{ description }}</span>
</ng-template>
</f8-select-dropdown>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@import (reference) '../../../assets/stylesheets/_base';
@import '../common-selector/common-selector.component.less';
Loading

0 comments on commit c9d07b8

Please sign in to comment.