e5core-angular-ui
Version:
e5 Anywhere Angular UI
134 lines • 12.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, EventEmitter, Output, ViewChildren, QueryList } from '@angular/core';
import { UiStyleService } from '../../services/ui-style.service';
import { SearchDataSourceService } from '../../datasource/search-data-source.service';
import { DataSourceQuery } from '../../datasource/data-source-query';
export class E5coreUiSearchResultsComponent {
/**
* @param {?} style
* @param {?} datasource
*/
constructor(style, datasource) {
this.style = style;
this.datasource = datasource;
this.open = new EventEmitter();
this.link = new EventEmitter();
}
/**
* @return {?}
*/
ngOnInit() {
if (this.searchDefinitionId == null) {
this.error = 'e5core-ui-search-results [searchDefinitionId] must be specified';
console.error(this.error);
return;
}
this.datasource.setSearchDefinitionId(this.searchDefinitionId);
/** @type {?} */
let options = this.datasource.defaultOptions();
options.includeSla = this.includeSla;
options.includeNextDueTask = this.includeNextDueTask;
this.datasource.setDefaultOptions(options);
}
/**
* Pass the open work item event on to any listener.
* @param {?} data the row of data, including the "Id" from the table.
* @return {?}
*/
onOpen(data) {
this.open.emit(data);
}
/**
* Pass the open link on to any listener.
* @param {?} url
* @return {?}
*/
onLink(url) {
this.open.emit(url);
}
/**
* Execute a search with the required search expression values.
* @param {?} query
* @return {?}
*/
search(query) {
this.resultChildren.forEach(c => c.search(query));
}
/**
* Clear the search results.
* @return {?}
*/
reset() {
this.resultChildren.forEach(c => c.reset());
}
/**
* Refresh the search results at the current page.
* @return {?}
*/
refresh() {
this.resultChildren.forEach(c => c.refresh());
}
}
E5coreUiSearchResultsComponent.decorators = [
{ type: Component, args: [{
selector: 'e5core-ui-search-results',
// (open)='onOpen' (link)='onLink'
// We don't need a switch as the e5core-ui-datagrid handles the different implementations
template: `
<span *ngIf="!error">
<e5core-ui-datagrid #SearchResults
[datasource]='datasource' [query]='query' [autoSearch]='autoSearch'
(open)='onOpen($event)' (link)='onLink($event)'>
</e5core-ui-datagrid>
</span>
<div *ngIf="error" class="e5core-component-error">{{error}}</div>`,
//changeDetection: ChangeDetectionStrategy.OnPush
providers: [
SearchDataSourceService
],
styles: [".e5core-component-error{border-left:5px solid red;background-color:#ffbaba;color:#d8000c;padding:12px;box-sizing:content-box;border-radius:4pt;display:inline-block;font-family:Arial,Helvetica,sans-serif;margin:5pt 0}.e5-component{margin:5pt;border:solid #00f;box-sizing:content-box;padding:5pt}.e5-component .e5-title{color:#00f;font-weight:700}"]
}] }
];
/** @nocollapse */
E5coreUiSearchResultsComponent.ctorParameters = () => [
{ type: UiStyleService },
{ type: SearchDataSourceService }
];
E5coreUiSearchResultsComponent.propDecorators = {
searchDefinitionId: [{ type: Input }],
query: [{ type: Input }],
includeSla: [{ type: Input }],
includeNextDueTask: [{ type: Input }],
autoSearch: [{ type: Input }],
open: [{ type: Output }],
link: [{ type: Output }],
resultChildren: [{ type: ViewChildren, args: ["SearchResults",] }]
};
if (false) {
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.searchDefinitionId;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.query;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.includeSla;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.includeNextDueTask;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.autoSearch;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.open;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.link;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.resultChildren;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.error;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.style;
/** @type {?} */
E5coreUiSearchResultsComponent.prototype.datasource;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZTVjb3JlLXVpLXNlYXJjaC1yZXN1bHRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2U1Y29yZS1hbmd1bGFyLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZTVjb3JlLXVpLXNlYXJjaC1yZXN1bHRzL2U1Y29yZS11aS1zZWFyY2gtcmVzdWx0cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW1DLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQXlELE1BQU0sZUFBZSxDQUFDO0FBRXhMLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFvQnJFLE1BQU0sT0FBTyw4QkFBOEI7Ozs7O0lBcUJ6QyxZQUFtQixLQUFvQixFQUFTLFVBQW1DO1FBQWhFLFVBQUssR0FBTCxLQUFLLENBQWU7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQVB6RSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBRTtRQUNoQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBRTtJQU02QyxDQUFDOzs7O0lBRXhGLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUU7WUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxpRUFBaUUsQ0FBRTtZQUNoRixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixPQUFRO1NBQ1Q7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFFOztZQUM1RCxPQUFPLEdBQTJCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO1FBQ3RFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBRTtRQUN0QyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFFO1FBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUU7SUFDOUMsQ0FBQzs7Ozs7O0lBTUQsTUFBTSxDQUFDLElBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBRTtJQUN4QixDQUFDOzs7Ozs7SUFNRCxNQUFNLENBQUMsR0FBVTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFFO0lBQ3ZCLENBQUM7Ozs7OztJQU1NLE1BQU0sQ0FBQyxLQUFxQjtRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRTtJQUN0RCxDQUFDOzs7OztJQUtNLEtBQUs7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFFO0lBQ2hELENBQUM7Ozs7O0lBS00sT0FBTztRQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUU7SUFDbEQsQ0FBQzs7O1lBekZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCOzs7Z0JBR3BDLFFBQVEsRUFBRTs7Ozs7OztvRUFPd0Q7O2dCQUVsRSxTQUFTLEVBQUU7b0JBQ1QsdUJBQXVCO2lCQUN4Qjs7YUFDRjs7OztZQXZCUSxjQUFjO1lBRWQsdUJBQXVCOzs7aUNBd0I3QixLQUFLO29CQUNMLEtBQUs7eUJBUUwsS0FBSztpQ0FDTCxLQUFLO3lCQUNMLEtBQUs7bUJBQ0wsTUFBTTttQkFDTixNQUFNOzZCQUVOLFlBQVksU0FBQyxlQUFlOzs7O0lBZjdCLDREQUFzQzs7SUFDdEMsK0NBQWlDOztJQVFqQyxvREFBK0I7O0lBQy9CLDREQUF1Qzs7SUFDdkMsb0RBQThCOztJQUM5Qiw4Q0FBMEM7O0lBQzFDLDhDQUEwQzs7SUFFMUMsd0RBQStGOztJQUUvRiwrQ0FBZTs7SUFFSCwrQ0FBMkI7O0lBQUUsb0RBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVUlTZWFyY2hGaWVsZE1vZGVsLCBVSVByb3BlcnR5TW9kZWwsIFVpU2VhcmNoRGVmaW5pdGlvblNlcnZpY2UgfSBmcm9tICdlNWNvcmUtYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBVaVN0eWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VpLXN0eWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRTVjb3JlVWlTZWFyY2hSZXN1bHRzQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50L2U1Y29yZS11aS1zZWFyY2gtcmVzdWx0cy1iYXNlJztcbmltcG9ydCB7IFNlYXJjaERhdGFTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zZWFyY2gtZGF0YS1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFNWNvcmVVaVNlYXJjaFJlc3VsdHNNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50L2U1Y29yZS11aS1zZWFyY2gtcmVzdWx0cy1tYXRlcmlhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVF1ZXJ5IH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9kYXRhLXNvdXJjZS1xdWVyeSc7XG5pbXBvcnQgeyBTZWFyY2hEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2VhcmNoLWRhdGEtc291cmNlLW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlNWNvcmUtdWktc2VhcmNoLXJlc3VsdHMnLFxuICBzdHlsZVVybHM6IFsnLi8uLi8uLi9jc3MvZGVmYXVsdC5jc3MnXSwgLy8gKG9wZW4pPSdvbk9wZW4nIChsaW5rKT0nb25MaW5rJ1xuICAvLyBXZSBkb24ndCBuZWVkIGEgc3dpdGNoIGFzIHRoZSBlNWNvcmUtdWktZGF0YWdyaWQgaGFuZGxlcyB0aGUgZGlmZmVyZW50IGltcGxlbWVudGF0aW9uc1xuICB0ZW1wbGF0ZTogYFxuICA8c3BhbiAqbmdJZj1cIiFlcnJvclwiPlxuICAgIDxlNWNvcmUtdWktZGF0YWdyaWQgI1NlYXJjaFJlc3VsdHNcbiAgICAgIFtkYXRhc291cmNlXT0nZGF0YXNvdXJjZScgIFtxdWVyeV09J3F1ZXJ5JyBbYXV0b1NlYXJjaF09J2F1dG9TZWFyY2gnXG4gICAgICAob3Blbik9J29uT3BlbigkZXZlbnQpJyAobGluayk9J29uTGluaygkZXZlbnQpJz5cbiAgICA8L2U1Y29yZS11aS1kYXRhZ3JpZD5cbiAgPC9zcGFuPlxuICA8ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImU1Y29yZS1jb21wb25lbnQtZXJyb3JcIj57e2Vycm9yfX08L2Rpdj5gLFxuICAvL2NoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG4gIHByb3ZpZGVyczogW1xuICAgIFNlYXJjaERhdGFTb3VyY2VTZXJ2aWNlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRTVjb3JlVWlTZWFyY2hSZXN1bHRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0ICB7XG5cbiAgQElucHV0KCkgc2VhcmNoRGVmaW5pdGlvbklkIDogbnVtYmVyIDtcbiAgQElucHV0KCkgcXVlcnk6IERhdGFTb3VyY2VRdWVyeSA7XG4gIC8vIEBJbnB1dCgpIHNldCBxdWVyeSh2YWx1ZTogRGF0YVNvdXJjZVF1ZXJ5KSB7XG4gIC8vICAgLy8gSWYgdGhpcyBpcyBjYWxsZWQgYmVmb3JlIHRoZSBjaGlsZHJlbiBhcyByZXNvbHZlZCB0aGVuIHN0b3JlIHRoZSB2YWx1ZSB1bnRpbCB0aGV5IGV4aXN0LlxuICAvLyAgIGlmKHRoaXMuc2VhcmNoICYmIHRoaXMucmVzdWx0Q2hpbGRyZW4pXG4gIC8vICAgICB0aGlzLnNlYXJjaCh2YWx1ZSkgO1xuICAvLyAgIGVsc2UgXG4gIC8vICAgICB0aGlzLmxhc3RRdWVyeSA9IHZhbHVlIDtcbiAgLy8gfTtcbiAgQElucHV0KCkgaW5jbHVkZVNsYSA6IGJvb2xlYW4gO1xuICBASW5wdXQoKSBpbmNsdWRlTmV4dER1ZVRhc2sgOiBib29sZWFuIDtcbiAgQElucHV0KCkgYXV0b1NlYXJjaDogYm9vbGVhbiA7XG4gIEBPdXRwdXQoKSBvcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCkgO1xuICBAT3V0cHV0KCkgbGluayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpIDtcblxuICBAVmlld0NoaWxkcmVuKFwiU2VhcmNoUmVzdWx0c1wiKSByZXN1bHRDaGlsZHJlbiAhOiBRdWVyeUxpc3Q8RTVjb3JlVWlTZWFyY2hSZXN1bHRzQmFzZUNvbXBvbmVudD47XG5cbiAgZXJyb3I6IHN0cmluZyA7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHN0eWxlOlVpU3R5bGVTZXJ2aWNlLCBwdWJsaWMgZGF0YXNvdXJjZTogU2VhcmNoRGF0YVNvdXJjZVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnNlYXJjaERlZmluaXRpb25JZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLmVycm9yID0gJ2U1Y29yZS11aS1zZWFyY2gtcmVzdWx0cyBbc2VhcmNoRGVmaW5pdGlvbklkXSBtdXN0IGJlIHNwZWNpZmllZCcgO1xuICAgICAgY29uc29sZS5lcnJvcih0aGlzLmVycm9yKTtcbiAgICAgIHJldHVybiA7XG4gICAgfVxuICAgIHRoaXMuZGF0YXNvdXJjZS5zZXRTZWFyY2hEZWZpbml0aW9uSWQodGhpcy5zZWFyY2hEZWZpbml0aW9uSWQpIDtcbiAgICBsZXQgb3B0aW9uczpTZWFyY2hEYXRhU291cmNlT3B0aW9ucyA9IHRoaXMuZGF0YXNvdXJjZS5kZWZhdWx0T3B0aW9ucygpIDtcbiAgICBvcHRpb25zLmluY2x1ZGVTbGEgPSB0aGlzLmluY2x1ZGVTbGEgO1xuICAgIG9wdGlvbnMuaW5jbHVkZU5leHREdWVUYXNrID0gdGhpcy5pbmNsdWRlTmV4dER1ZVRhc2sgO1xuICAgIHRoaXMuZGF0YXNvdXJjZS5zZXREZWZhdWx0T3B0aW9ucyhvcHRpb25zKSA7XG4gIH1cblxuICAvKipcbiAgICogIFBhc3MgdGhlIG9wZW4gd29yayBpdGVtIGV2ZW50IG9uIHRvIGFueSBsaXN0ZW5lci5cbiAgICogQHBhcmFtIGRhdGEgdGhlIHJvdyBvZiBkYXRhLCBpbmNsdWRpbmcgdGhlIFwiSWRcIiBmcm9tIHRoZSB0YWJsZS5cbiAgICovXG4gIG9uT3BlbihkYXRhOmFueSkge1xuICAgIHRoaXMub3Blbi5lbWl0KGRhdGEpIDtcbiAgfVxuXG4gIC8qKlxuICAgKiAgUGFzcyB0aGUgb3BlbiBsaW5rIG9uIHRvIGFueSBsaXN0ZW5lci5cbiAgICogQHBhcmFtIGRhdGEgdGhlIHJvdyBvZiBkYXRhLCBpbmNsdWRpbmcgdGhlIFwiSWRcIiBmcm9tIHRoZSB0YWJsZS5cbiAgICovXG4gIG9uTGluayh1cmw6c3RyaW5nKSB7XG4gICAgdGhpcy5vcGVuLmVtaXQodXJsKSA7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhIHNlYXJjaCB3aXRoIHRoZSByZXF1aXJlZCBzZWFyY2ggZXhwcmVzc2lvbiB2YWx1ZXMuXG4gICAqIEBwYXJhbSBleHByZXNzaW9uIHRoZSBmaWVsZHMgYW5kIHZhbHVlcyByZXF1aXJlZCB0byBwZXJmb3JtIHRoZSBzZWFyY2guXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoKHF1ZXJ5OkRhdGFTb3VyY2VRdWVyeSkge1xuICAgIHRoaXMucmVzdWx0Q2hpbGRyZW4uZm9yRWFjaCggYyA9PiBjLnNlYXJjaChxdWVyeSkpIDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgc2VhcmNoIHJlc3VsdHMuXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgdGhpcy5yZXN1bHRDaGlsZHJlbi5mb3JFYWNoKCBjID0+IGMucmVzZXQoKSkgO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIHNlYXJjaCByZXN1bHRzIGF0IHRoZSBjdXJyZW50IHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaCgpIHsgIFxuICAgIHRoaXMucmVzdWx0Q2hpbGRyZW4uZm9yRWFjaCggYyA9PiBjLnJlZnJlc2goKSkgOyAgXG4gIH1cbn1cbiJdfQ==