ngx-selectbox-may
Version:
Angular selectbox with autocomplete
167 lines • 13.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { NGXSelectMayConfigs, NGXSelectMayRow } from './ngx-selectbox-may-configs';
import * as i0 from "@angular/core";
var NgxSelectboxMayService = /** @class */ (function () {
function NgxSelectboxMayService() {
}
/**
* @param {?} items
* @param {?} configs
* @return {?}
*/
NgxSelectboxMayService.prototype.createDropdownRows = /**
* @param {?} items
* @param {?} configs
* @return {?}
*/
function (items, configs) {
/** @type {?} */
var arr = [];
items.forEach(function (element) {
/** @type {?} */
var row = new NGXSelectMayRow(false, element);
row.setKey(configs.valueField ? element[configs.valueField] : element);
row.setLabel(configs.labelField ? element[configs.labelField] : element);
arr.push(row);
});
return arr;
};
/**
* @param {?} allRows
* @param {?} configs
* @return {?}
*/
NgxSelectboxMayService.prototype.reconfigureDropdownRowLabelsAndValues = /**
* @param {?} allRows
* @param {?} configs
* @return {?}
*/
function (allRows, configs) {
allRows.forEach(function (element) {
element.setKey(configs.valueField ? element.data[configs.valueField] : element.data);
element.setLabel(configs.labelField ? element.data[configs.labelField] : element.data);
});
};
/**
* @param {?} configs
* @param {?} selectedRows
* @return {?}
*/
NgxSelectboxMayService.prototype.createDropdownLabel = /**
* @param {?} configs
* @param {?} selectedRows
* @return {?}
*/
function (configs, selectedRows) {
//Check is configured to select multiple choices
if (configs.isMultiSelect) {
if (selectedRows.length > 1) {
return NGXSelectMayConfigs.MULTI_SELECTED_LABEL.replace("#COUNT", selectedRows.length.toString()).replace("#ITEMS", "Items");
}
else if (selectedRows.length == 1) {
return NGXSelectMayConfigs.MULTI_SELECTED_LABEL.replace("#COUNT", selectedRows.length.toString()).replace("#ITEMS", "Item");
}
else {
return NGXSelectMayConfigs.MULTI_SELECTED_LABEL.replace("#COUNT", selectedRows.length.toString()).replace("#ITEMS", "Items");
}
}
else {
return selectedRows.length > 0 ? selectedRows[0].label : "";
}
};
/**
* @param {?} configs
* @param {?} selectedRows
* @param {?} allRows
* @param {?} row
* @return {?}
*/
NgxSelectboxMayService.prototype.setSelectedItems = /**
* @param {?} configs
* @param {?} selectedRows
* @param {?} allRows
* @param {?} row
* @return {?}
*/
function (configs, selectedRows, allRows, row) {
//Check is configured to select multiple choices
if (configs.isMultiSelect) {
}
else {
if (!row.isSelected) {
this.unselectAllSelectedRows(allRows);
row.isSelected = true;
selectedRows = [];
selectedRows.push(row);
}
}
return selectedRows;
};
/**
* @param {?} allRows
* @return {?}
*/
NgxSelectboxMayService.prototype.unselectAllSelectedRows = /**
* @param {?} allRows
* @return {?}
*/
function (allRows) {
allRows.forEach(function (r) {
r.isSelected = false;
});
};
/**
* @param {?} allRows
* @param {?} value
* @return {?}
*/
NgxSelectboxMayService.prototype.selectItemByValue = /**
* @param {?} allRows
* @param {?} value
* @return {?}
*/
function (allRows, value) {
/** @type {?} */
var filteredVal = allRows.filter(function (r) { return r.value === value; });
if (filteredVal.length > 0)
filteredVal[0].isSelected = true;
return filteredVal;
};
/**
* @param {?} allRows
* @param {?} values
* @return {?}
*/
NgxSelectboxMayService.prototype.selectItemsByValue = /**
* @param {?} allRows
* @param {?} values
* @return {?}
*/
function (allRows, values) {
/** @type {?} */
var a = [];
values.forEach(function (v) {
/** @type {?} */
var filteredVal = allRows.filter(function (r) { return r.value === v; });
if (filteredVal.length > 0)
filteredVal[0].isSelected = true;
a.push(filteredVal[0]);
});
return a;
};
NgxSelectboxMayService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
NgxSelectboxMayService.ctorParameters = function () { return []; };
/** @nocollapse */ NgxSelectboxMayService.ngInjectableDef = i0.defineInjectable({ factory: function NgxSelectboxMayService_Factory() { return new NgxSelectboxMayService(); }, token: NgxSelectboxMayService, providedIn: "root" });
return NgxSelectboxMayService;
}());
export { NgxSelectboxMayService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNlbGVjdGJveC1tYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zZWxlY3Rib3gtbWF5LyIsInNvdXJjZXMiOlsibGliL25neC1zZWxlY3Rib3gtbWF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVuRjtJQUtFO0lBQWdCLENBQUM7Ozs7OztJQUVqQixtREFBa0I7Ozs7O0lBQWxCLFVBQW1CLEtBQVcsRUFBRSxPQUEyQjs7WUFDckQsR0FBRyxHQUFHLEVBQUU7UUFDWixLQUFLLENBQUMsT0FBTyxDQUFDLFVBQUEsT0FBTzs7Z0JBQ2YsR0FBRyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7WUFDN0MsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Ozs7OztJQUVELHNFQUFxQzs7Ozs7SUFBckMsVUFBc0MsT0FBOEIsRUFBRSxPQUEyQjtRQUMvRixPQUFPLENBQUMsT0FBTyxDQUFDLFVBQUEsT0FBTztZQUNyQixPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FB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QyxHQUFHLEVBQUU7UUFDVixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQzs7Z0JBQ1YsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBYixDQUFhLENBQUM7WUFDcEQsSUFBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOztnQkE3RUYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7aUNBTEQ7Q0FpRkMsQUE5RUQsSUE4RUM7U0EzRVksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdYU2VsZWN0TWF5Q29uZmlncywgTkdYU2VsZWN0TWF5Um93IH0gZnJvbSAnLi9uZ3gtc2VsZWN0Ym94LW1heS1jb25maWdzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmd4U2VsZWN0Ym94TWF5U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBjcmVhdGVEcm9wZG93blJvd3MoaXRlbXM6YW55W10sIGNvbmZpZ3M6TkdYU2VsZWN0TWF5Q29uZmlncyk6QXJyYXk8TkdYU2VsZWN0TWF5Um93PntcbiAgICBsZXQgYXJyID0gW107XG4gICAgaXRlbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGxldCByb3cgPSBuZXcgTkdYU2VsZWN0TWF5Um93KGZhbHNlLCBlbGVtZW50KTtcbiAgICAgIHJvdy5zZXRLZXkoY29uZmlncy52YWx1ZUZpZWxkID8gZWxlbWVudFtjb25maWdzLnZhbHVlRmllbGRdIDogZWxlbWVudCk7XG4gICAgICByb3cuc2V0TGFiZWwoY29uZmlncy5sYWJlbEZpZWxkID8gZWxlbWVudFtjb25maWdzLmxhYmVsRmllbGRdIDogZWxlbWVudCk7XG4gICAgICBhcnIucHVzaChyb3cpO1xuICAgIH0pO1xuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICByZWNvbmZpZ3VyZURyb3Bkb3duUm93TGFiZWxzQW5kVmFsdWVzKGFsbFJvd3M6QXJyYXk8TkdYU2VsZWN0TWF5Um93PiwgY29uZmlnczpOR1hTZWxlY3RNYXlDb25maWdzKXtcbiAgICBhbGxSb3dzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBlbGVtZW50LnNldEtleShjb25maWdzLnZhbHVlRmllbGQgPyBlbGVtZW50LmRhdGFbY29uZmlncy52YWx1ZUZpZWxkXSA6IGVsZW1lbnQuZGF0YSk7XG4gICAgICBlbGVtZW50LnNldExhYmVsKGNvbmZpZ3MubGFiZWxGaWVsZCA/IGVsZW1lbnQuZGF0YVtjb25maWdzLmxhYmVsRmllbGRdIDogZWxlbWVudC5kYXRhKTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgY3JlYXRlRHJvcGRvd25MYWJlbChjb25maWdzOk5HWFNlbGVjdE1heUNvbmZpZ3MsIHNlbGVjdGVkUm93czpBcnJheTxOR1hTZWxlY3RNYXlSb3c+KXtcbiAgICAvL0NoZWNrIGlzIGNvbmZpZ3VyZWQgdG8gc2VsZWN0IG11bHRpcGxlIGNob2ljZXNcbiAgICBpZihjb25maWdzLmlzTXVsdGlTZWxlY3Qpe1xuXG4gICAgICBpZihzZWxlY3RlZFJvd3MubGVuZ3RoID4gMSl7XG4gICAgICAgIHJldHVybiBOR1hTZWxlY3RNYXlDb25maWdzLk1VTFRJX1NFTEVDVEVEX0xBQkVMLnJlcGxhY2UoXCIjQ09VTlRcIiwgc2VsZWN0ZWRSb3dzLmxlbmd0aC50b1N0cmluZygpKS5yZXBsYWNlKFwiI0lURU1TXCIsIFwiSXRlbXNcIik7XG4gICAgICB9ZWxzZSBpZihzZWxlY3RlZFJvd3MubGVuZ3RoID09IDEpe1xuICAgICAgICByZXR1cm4gTkdYU2VsZWN0TWF5Q29uZmlncy5NVUxUSV9TRUxFQ1RFRF9MQUJFTC5yZXBsYWNlKFwiI0NPVU5UXCIsIHNlbGVjdGVkUm93cy5sZW5ndGgudG9TdHJpbmcoKSkucmVwbGFjZShcIiNJVEVNU1wiLCBcIkl0ZW1cIik7XG4gICAgICB9ZWxzZXtcbiAgICAgICAgcmV0dXJuIE5HWFNlbGVjdE1heUNvbmZpZ3MuTVVMVElfU0VMRUNURURfTEFCRUwucmVwbGFjZShcIiNDT1VOVFwiLCBzZWxlY3RlZFJvd3MubGVuZ3RoLnRvU3RyaW5nKCkpLnJlcGxhY2UoXCIjSVRFTVNcIiwgXCJJdGVtc1wiKTtcbiAgICAgIH1cblxuICAgIH1lbHNle1xuICAgICAgcmV0dXJuIHNlbGVjdGVkUm93cy5sZW5ndGggPiAwID8gc2VsZWN0ZWRSb3dzWzBdLmxhYmVsIDogXCJcIjtcbiAgICB9XG4gIH1cblxuICBzZXRTZWxlY3RlZEl0ZW1zKGNvbmZpZ3M6TkdYU2VsZWN0TWF5Q29uZmlncywgc2VsZWN0ZWRSb3dzOkFycmF5PE5HWFNlbGVjdE1heVJvdz4sYWxsUm93czpBcnJheTxOR1hTZWxlY3RNYXlSb3c+LCByb3c6TkdYU2VsZWN0TWF5Um93KXtcbiAgICAvL0NoZWNrIGlzIGNvbmZpZ3VyZWQgdG8gc2VsZWN0IG11bHRpcGxlIGNob2ljZXNcbiAgICBpZihjb25maWdzLmlzTXVsdGlTZWxlY3Qpe1xuICAgICAgXG4gICAgfWVsc2V7XG4gICAgICBpZighcm93LmlzU2VsZWN0ZWQpe1xuICAgICAgICB0aGlzLnVuc2VsZWN0QWxsU2VsZWN0ZWRSb3dzKGFsbFJvd3MpO1xuICAgICAgICByb3cuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHNlbGVjdGVkUm93cyA9IFtdO1xuICAgICAgICBzZWxlY3RlZFJvd3MucHVzaChyb3cpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWRSb3dzO1xuICB9XG5cbiAgdW5zZWxlY3RBbGxTZWxlY3RlZFJvd3MoYWxsUm93czpBcnJheTxOR1hTZWxlY3RNYXlSb3c+KXtcbiAgICBhbGxSb3dzLmZvckVhY2gociA9PiB7XG4gICAgICByLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdEl0ZW1CeVZhbHVlKGFsbFJvd3M6QXJyYXk8TkdYU2VsZWN0TWF5Um93PiwgdmFsdWU6YW55KXtcbiAgICBsZXQgZmlsdGVyZWRWYWwgPSBhbGxSb3dzLmZpbHRlcihyID0+IHIudmFsdWUgPT09IHZhbHVlKTtcbiAgICBpZihmaWx0ZXJlZFZhbC5sZW5ndGggPiAwKSBmaWx0ZXJlZFZhbFswXS5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICByZXR1cm4gZmlsdGVyZWRWYWw7XG4gIH1cblxuICBzZWxlY3RJdGVtc0J5VmFsdWUoYWxsUm93czpBcnJheTxOR1hTZWxlY3RNYXlSb3c+LCB2YWx1ZXM6QXJyYXk8YW55Pil7XG4gICAgbGV0IGEgPSBbXTtcbiAgICB2YWx1ZXMuZm9yRWFjaCh2ID0+IHtcbiAgICAgIGxldCBmaWx0ZXJlZFZhbCA9IGFsbFJvd3MuZmlsdGVyKHIgPT4gci52YWx1ZSA9PT0gdik7XG4gICAgICBpZihmaWx0ZXJlZFZhbC5sZW5ndGggPiAwKSBmaWx0ZXJlZFZhbFswXS5pc1NlbGVjdGVkID0gdHJ1ZTsgYS5wdXNoKGZpbHRlcmVkVmFsWzBdKTtcbiAgICB9KVxuICAgIHJldHVybiBhO1xuICB9XG59XG4iXX0=