UNPKG

ngx-selectbox-may

Version:

Angular selectbox with autocomplete

167 lines 13.5 kB
/** * @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=