air-lib
Version:
This is Air's angular component library
216 lines • 19.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { SimpleNgSelectItem } from '../../entities/simple-ng-select-Item';
var BaseSearchComponent = /** @class */ (function () {
function BaseSearchComponent(translator, httpService) {
this.translator = translator;
this.httpService = httpService;
this.hasError = false;
this.urlGetStateByName = 'api/State/GetStateByName?name=';
this.urlSetState = 'api/State/SetState/';
this.typePreset = 'preset';
this.typeString = 'string';
this.hasLoading = false;
}
/**
* @return {?}
*/
BaseSearchComponent.prototype.buildDefaultOrStateSearchItem = /**
* @return {?}
*/
function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _this = this;
return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, this.getState().then(function (data) {
/** @type {?} */
var defaultOrStateItem = new SimpleNgSelectItem();
/** @type {?} */
var dataString = '';
dataString = (data != '') ? JSON.parse(data) : '';
if (dataString) {
defaultOrStateItem.id = dataString.search[0].searchString;
(dataString.search[0].typeSearch == _this.typePreset)
? _this.translator.translate(_this.searchSettings.prefixForTranslate +
defaultOrStateItem.id).subscribe(function (result) {
defaultOrStateItem.text = result;
})
: defaultOrStateItem.text = defaultOrStateItem.id;
}
else {
defaultOrStateItem = _this.searchSettings.defaultSearchValue;
}
return defaultOrStateItem;
})];
});
});
};
/**
* @return {?}
*/
BaseSearchComponent.prototype.buildDefaultSearchItem = /**
* @return {?}
*/
function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var defaultItem;
var _this = this;
return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, this.saveToState(this.searchSettings.defaultSearchValue.id, this.typePreset).then(function (data) {
return defaultItem = _this.searchSettings.defaultSearchValue.id;
})];
});
});
};
/**
* @return {?}
*/
BaseSearchComponent.prototype.buildPresetsList = /**
* @return {?}
*/
function () {
this.hasError = false;
/** @type {?} */
var presetList = Array();
if (this.searchSettings) {
presetList = this.searchSettings.presetList.map(function (row) {
return { id: row.id, text: row.text };
});
}
return presetList;
};
/**
* @param {?} response
* @return {?}
*/
BaseSearchComponent.prototype.buildAutoCompleteList = /**
* @param {?} response
* @return {?}
*/
function (response) {
var _this = this;
this.hasError = false;
this.hasLoading = false;
/** @type {?} */
var responseData = response;
/** @type {?} */
var list = new Array();
if (this.searchSettings.callBack) {
responseData = this.searchSettings.callBack(response);
}
responseData.data.forEach(function (item, index) {
list.push({
id: 'noclick',
text: '<div class="category">' + item.category + '</div>'
});
_this.translator.translate(_this.searchSettings.prefixForTranslate +
item.category).subscribe(function (result) {
list[index].text = '<div class="category">' + result + '</div>';
});
item.data.forEach(function (res) {
list.push({
id: res.id,
text: '<div class="p-l-10">' + res.text + '</div>'
});
});
return list;
});
/** @type {?} */
var autoCompleteList = list.map(function (row) {
return { id: row.id, text: row.text };
});
return autoCompleteList;
};
/**
* @return {?}
*/
BaseSearchComponent.prototype.buildEmptyList = /**
* @return {?}
*/
function () {
this.hasError = true;
this.hasLoading = false;
/** @type {?} */
var emptyList = [
{
id: 'noclick',
text: 'nothingFound'
}
];
this.translator.translate(emptyList[0].text).subscribe(function (result) {
emptyList[0].text = result;
});
return emptyList;
};
/**
* @return {?}
*/
BaseSearchComponent.prototype.getState = /**
* @return {?}
*/
function () {
return this.httpService.httpGet(this.urlGetStateByName + this.searchSettings.stateName).toPromise()
.then(function (res) { return res; });
};
/**
* @param {?} item
* @param {?} type
* @return {?}
*/
BaseSearchComponent.prototype.saveToState = /**
* @param {?} item
* @param {?} type
* @return {?}
*/
function (item, type) {
/** @type {?} */
var dto = {
search: [{
searchString: item,
typeSearch: type
}],
};
/** @type {?} */
var dtoString = JSON.stringify(dto);
return this.httpService.httpPut(this.urlSetState + this.searchSettings.stateName, dtoString).toPromise()
.then(function (res) { return res; });
};
return BaseSearchComponent;
}());
export { BaseSearchComponent };
if (false) {
/** @type {?} */
BaseSearchComponent.prototype.hasError;
/**
* @type {?}
* @private
*/
BaseSearchComponent.prototype.urlGetStateByName;
/**
* @type {?}
* @private
*/
BaseSearchComponent.prototype.urlSetState;
/** @type {?} */
BaseSearchComponent.prototype.searchSettings;
/** @type {?} */
BaseSearchComponent.prototype.typePreset;
/** @type {?} */
BaseSearchComponent.prototype.typeString;
/** @type {?} */
BaseSearchComponent.prototype.hasLoading;
/**
* @type {?}
* @protected
*/
BaseSearchComponent.prototype.translator;
/**
* @type {?}
* @protected
*/
BaseSearchComponent.prototype.httpService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWlyLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NlYXJjaC9iYXNlLXNlYXJjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUcxRTtJQVFJLDZCQUNjLFVBQThCLEVBQzlCLFdBQXdCO1FBRHhCLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBVC9CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsc0JBQWlCLEdBQUcsZ0NBQWdDLENBQUM7UUFDckQsZ0JBQVcsR0FBRyxxQkFBcUIsQ0FBQztRQUVyQyxlQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxRQUFRLENBQUM7UUFDdEIsZUFBVSxHQUFHLEtBQUssQ0FBQztJQUsxQixDQUFDOzs7O0lBRVksMkRBQTZCOzs7SUFBMUM7Ozs7Z0JBQ0ksc0JBQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLElBQVM7OzRCQUM5QixrQkFBa0IsR0FBRyxJQUFJLGtCQUFrQixFQUFFOzs0QkFDN0MsVUFBVSxHQUFRLEVBQUU7d0JBQ3hCLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNsRCxJQUFJLFVBQVUsRUFBRTs0QkFFWixrQkFBa0IsQ0FBQyxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7NEJBQzFELENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksS0FBSSxDQUFDLFVBQVUsQ0FBQztn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QixDQUFDO1NBQ0w7O1lBQ0ssU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUU7YUFDbkcsSUFBSSxDQUFDLFVBQUMsR0FBRyxJQUFLLE9BQUEsR0FBRyxFQUFILENBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDTCwwQkFBQztBQUFELENBQUMsQUFwSEQsSUFvSEM7Ozs7SUFuSEcsdUNBQXdCOzs7OztJQUN4QixnREFBNkQ7Ozs7O0lBQzdELDBDQUE0Qzs7SUFDNUMsNkNBQXVDOztJQUN2Qyx5Q0FBNkI7O0lBQzdCLHlDQUE2Qjs7SUFDN0IseUNBQTBCOzs7OztJQUV0Qix5Q0FBd0M7Ozs7O0lBQ3hDLDBDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTaW1wbGVOZ1NlbGVjdEl0ZW0gfSBmcm9tICcuLy4uL25nMi1zZWxlY3QtY3VzdG9tL3NlbGVjdC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBJU2VhcmNoU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2lzZWFyY2gtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IFNpbXBsZU5nU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uL2VudGl0aWVzL3NpbXBsZS1uZy1zZWxlY3QtSXRlbSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VTZWFyY2hDb21wb25lbnQge1xyXG4gICAgcHVibGljIGhhc0Vycm9yID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIHVybEdldFN0YXRlQnlOYW1lID0gJ2FwaS9TdGF0ZS9HZXRTdGF0ZUJ5TmFtZT9uYW1lPSc7XHJcbiAgICBwcml2YXRlIHVybFNldFN0YXRlID0gJ2FwaS9TdGF0ZS9TZXRTdGF0ZS8nO1xyXG4gICAgcHVibGljIHNlYXJjaFNldHRpbmdzOiBJU2VhcmNoU2V0dGluZ3M7XHJcbiAgICBwdWJsaWMgdHlwZVByZXNldCA9ICdwcmVzZXQnO1xyXG4gICAgcHVibGljIHR5cGVTdHJpbmcgPSAnc3RyaW5nJztcclxuICAgIHB1YmxpYyBoYXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRvcjogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBodHRwU2VydmljZTogSHR0cFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBidWlsZERlZmF1bHRPclN0YXRlU2VhcmNoSXRlbSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGF0ZSgpLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZGVmYXVsdE9yU3RhdGVJdGVtID0gbmV3IFNpbXBsZU5nU2VsZWN0SXRlbSgpO1xyXG4gICAgICAgICAgICBsZXQgZGF0YVN0cmluZzogYW55ID0gJyc7XHJcbiAgICAgICAgICAgIGRhdGFTdHJpbmcgPSAoZGF0YSAhPSAnJykgPyBKU09OLnBhcnNlKGRhdGEpIDogJyc7XHJcbiAgICAgICAgICAgIGlmIChkYXRhU3RyaW5nKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdE9yU3RhdGVJdGVtLmlkID0gZGF0YVN0cmluZy5zZWFyY2hbMF0uc2VhcmNoU3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgKGRhdGFTdHJpbmcuc2VhcmNoWzBdLnR5cGVTZWFyY2ggPT0gdGhpcy50eXBlUHJlc2V0KVxyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy50cmFuc2xhdG9yLnRyYW5zbGF0ZSh0aGlzLnNlYXJjaFNldHRpbmdzLnByZWZpeEZvclRyYW5zbGF0ZSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRPclN0YXRlSXRlbS5pZCkuc3Vic2NyaWJlKChyZXN1bHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE9yU3RhdGVJdGVtLnRleHQgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgOiBkZWZhdWx0T3JTdGF0ZUl0ZW0udGV4dCA9IGRlZmF1bHRPclN0YXRlSXRlbS5pZDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRPclN0YXRlSXRlbSA9IHRoaXMuc2VhcmNoU2V0dGluZ3MuZGVmYXVsdFNlYXJjaFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0T3JTdGF0ZUl0ZW07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGJ1aWxkRGVmYXVsdFNlYXJjaEl0ZW0oKSB7XHJcbiAgICAgICAgbGV0IGRlZmF1bHRJdGVtOiBzdHJpbmc7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZVRvU3RhdGUodGhpcy5zZWFyY2hTZXR0aW5ncy5kZWZhdWx0U2VhcmNoVmFsdWUuaWQsIHRoaXMudHlwZVByZXNldCkudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0SXRlbSA9IHRoaXMuc2VhcmNoU2V0dGluZ3MuZGVmYXVsdFNlYXJjaFZhbHVlLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBidWlsZFByZXNldHNMaXN0KCkge1xyXG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcclxuICAgICAgICBsZXQgcHJlc2V0TGlzdCA9IEFycmF5PElTaW1wbGVOZ1NlbGVjdEl0ZW0+KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoU2V0dGluZ3MpIHtcclxuICAgICAgICAgICAgcHJlc2V0TGlzdCA9IHRoaXMuc2VhcmNoU2V0dGluZ3MucHJlc2V0TGlzdC5tYXAoKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpZDogcm93LmlkLCB0ZXh0OiByb3cudGV4dCB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwcmVzZXRMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBidWlsZEF1dG9Db21wbGV0ZUxpc3QocmVzcG9uc2U6IGFueSkge1xyXG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmhhc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBsZXQgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2U7XHJcbiAgICAgICAgY29uc3QgbGlzdCA9IG5ldyBBcnJheTxJU2ltcGxlTmdTZWxlY3RJdGVtPigpO1xyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFNldHRpbmdzLmNhbGxCYWNrKSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlRGF0YSA9IHRoaXMuc2VhcmNoU2V0dGluZ3MuY2FsbEJhY2socmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXNwb25zZURhdGEuZGF0YS5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgbGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiAnbm9jbGljaycsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiAnPGRpdiBjbGFzcz1cImNhdGVnb3J5XCI+JyArIGl0ZW0uY2F0ZWdvcnkgKyAnPC9kaXY+J1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdG9yLnRyYW5zbGF0ZSh0aGlzLnNlYXJjaFNldHRpbmdzLnByZWZpeEZvclRyYW5zbGF0ZSArXHJcbiAgICAgICAgICAgICAgICBpdGVtLmNhdGVnb3J5KS5zdWJzY3JpYmUoKHJlc3VsdDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGlzdFtpbmRleF0udGV4dCA9ICc8ZGl2IGNsYXNzPVwiY2F0ZWdvcnlcIj4nICsgcmVzdWx0ICsgJzwvZGl2Pic7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaXRlbS5kYXRhLmZvckVhY2goKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXMuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJzxkaXYgY2xhc3M9XCJwLWwtMTBcIj4nICsgcmVzLnRleHQgKyAnPC9kaXY+J1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gbGlzdDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgYXV0b0NvbXBsZXRlTGlzdCA9IGxpc3QubWFwKChyb3c6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4geyBpZDogcm93LmlkLCB0ZXh0OiByb3cudGV4dCB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBhdXRvQ29tcGxldGVMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBidWlsZEVtcHR5TGlzdCgpIHtcclxuICAgICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmhhc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBlbXB0eUxpc3QgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiAnbm9jbGljaycsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiAnbm90aGluZ0ZvdW5kJ1xyXG4gICAgICAgICAgICB9XTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0b3IudHJhbnNsYXRlKGVtcHR5TGlzdFswXS50ZXh0KS5zdWJzY3JpYmUoKHJlc3VsdDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGVtcHR5TGlzdFswXS50ZXh0ID0gcmVzdWx0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBlbXB0eUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFN0YXRlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmh0dHBHZXQodGhpcy51cmxHZXRTdGF0ZUJ5TmFtZSArIHRoaXMuc2VhcmNoU2V0dGluZ3Muc3RhdGVOYW1lKS50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiByZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlVG9TdGF0ZShpdGVtOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGR0bzogYW55ID0ge1xyXG4gICAgICAgICAgICBzZWFyY2g6IFt7XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hTdHJpbmc6IGl0ZW0sXHJcbiAgICAgICAgICAgICAgICB0eXBlU2VhcmNoOiB0eXBlXHJcbiAgICAgICAgICAgIH1dLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZHRvU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZHRvKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5odHRwUHV0KHRoaXMudXJsU2V0U3RhdGUgKyB0aGlzLnNlYXJjaFNldHRpbmdzLnN0YXRlTmFtZSwgZHRvU3RyaW5nKS50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiByZXMpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==