UNPKG

ngx-selectbox-may

Version:

Angular selectbox with autocomplete

128 lines 12.2 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"; export class NgxSelectboxMayService { constructor() { } /** * @param {?} items * @param {?} configs * @return {?} */ createDropdownRows(items, configs) { /** @type {?} */ let arr = []; items.forEach(element => { /** @type {?} */ let 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 {?} */ reconfigureDropdownRowLabelsAndValues(allRows, configs) { allRows.forEach(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 {?} */ createDropdownLabel(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 {?} */ setSelectedItems(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 {?} */ unselectAllSelectedRows(allRows) { allRows.forEach(r => { r.isSelected = false; }); } /** * @param {?} allRows * @param {?} value * @return {?} */ selectItemByValue(allRows, value) { /** @type {?} */ let filteredVal = allRows.filter(r => r.value === value); if (filteredVal.length > 0) filteredVal[0].isSelected = true; return filteredVal; } /** * @param {?} allRows * @param {?} values * @return {?} */ selectItemsByValue(allRows, values) { /** @type {?} */ let a = []; values.forEach(v => { /** @type {?} */ let filteredVal = allRows.filter(r => 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 = () => []; /** @nocollapse */ NgxSelectboxMayService.ngInjectableDef = i0.defineInjectable({ factory: function NgxSelectboxMayService_Factory() { return new NgxSelectboxMayService(); }, token: NgxSelectboxMayService, providedIn: "root" }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNlbGVjdGJveC1tYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zZWxlY3Rib3gtbWF5LyIsInNvdXJjZXMiOlsibGliL25neC1zZWxlY3Rib3gtbWF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUtuRixNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLGdCQUFnQixDQUFDOzs7Ozs7SUFFakIsa0JBQWtCLENBQUMsS0FBVyxFQUFFLE9BQTJCOztZQUNyRCxHQUFHLEdBQUcsRUFBRTtRQUNaLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7O2dCQUNsQixHQUFHLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUM3QyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7Ozs7O0lBRUQscUNBQXFDLENBQUMsT0FBOEIsRUFBRSxPQUEyQjtRQUMvRixPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFHRCxtQkFBbUIsQ0FBQyxPQUEyQixFQUFFLFlBQW1DO1FBQ2xGLGdEQUFnRDtRQUNoRCxJQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUM7WUFFdkIsSUFBRyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztnQkFDekIsT0FBTyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQzlIO2lCQUFLLElBQUcsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUM7Z0JBQ2hDLE9BQU8sbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUM3SDtpQkFBSTtnQkFDSCxPQUFPLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDOUg7U0FFRjthQUFJO1lBQ0gsT0FBTyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQzdEO0lBQ0gsQ0FBQzs7Ozs7Ozs7SUFFRCxnQkFBZ0IsQ0FBQyxPQUEyQixFQUFFLFlBQW1DLEVBQUMsT0FBOEIsRUFBRSxHQUFtQjtRQUNuSSxnREFBZ0Q7UUFDaEQsSUFBRyxPQUFPLENBQUMsYUFBYSxFQUFDO1NBRXhCO2FBQUk7WUFDSCxJQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBQztnQkFDakIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0QyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdEIsWUFBWSxHQUFHLEVBQUUsQ0FBQztnQkFDbEIsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QjtTQUNGO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFRCx1QkFBdUIsQ0FBQyxPQUE4QjtRQUNwRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsaUJBQWlCLENBQUMsT0FBOEIsRUFBRSxLQUFTOztZQUNyRCxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDO1FBQ3hELElBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDNUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7Ozs7O0lBRUQsa0JBQWtCLENBQUMsT0FBOEIsRUFBRSxNQUFpQjs7WUFDOUQsQ0FBQyxHQUFHLEVBQUU7UUFDVixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFOztnQkFDYixXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3BELElBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7O1lBN0VGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWFNlbGVjdE1heUNvbmZpZ3MsIE5HWFNlbGVjdE1heVJvdyB9IGZyb20gJy4vbmd4LXNlbGVjdGJveC1tYXktY29uZmlncyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5neFNlbGVjdGJveE1heVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgY3JlYXRlRHJvcGRvd25Sb3dzKGl0ZW1zOmFueVtdLCBjb25maWdzOk5HWFNlbGVjdE1heUNvbmZpZ3MpOkFycmF5PE5HWFNlbGVjdE1heVJvdz57XG4gICAgbGV0IGFyciA9IFtdO1xuICAgIGl0ZW1zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBsZXQgcm93ID0gbmV3IE5HWFNlbGVjdE1heVJvdyhmYWxzZSwgZWxlbWVudCk7XG4gICAgICByb3cuc2V0S2V5KGNvbmZpZ3MudmFsdWVGaWVsZCA/IGVsZW1lbnRbY29uZmlncy52YWx1ZUZpZWxkXSA6IGVsZW1lbnQpO1xuICAgICAgcm93LnNldExhYmVsKGNvbmZpZ3MubGFiZWxGaWVsZCA/IGVsZW1lbnRbY29uZmlncy5sYWJlbEZpZWxkXSA6IGVsZW1lbnQpO1xuICAgICAgYXJyLnB1c2gocm93KTtcbiAgICB9KTtcbiAgICByZXR1cm4gYXJyO1xuICB9XG5cbiAgcmVjb25maWd1cmVEcm9wZG93blJvd0xhYmVsc0FuZFZhbHVlcyhhbGxSb3dzOkFycmF5PE5HWFNlbGVjdE1heVJvdz4sIGNvbmZpZ3M6TkdYU2VsZWN0TWF5Q29uZmlncyl7XG4gICAgYWxsUm93cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgZWxlbWVudC5zZXRLZXkoY29uZmlncy52YWx1ZUZpZWxkID8gZWxlbWVudC5kYXRhW2NvbmZpZ3MudmFsdWVGaWVsZF0gOiBlbGVtZW50LmRhdGEpO1xuICAgICAgZWxlbWVudC5zZXRMYWJlbChjb25maWdzLmxhYmVsRmllbGQgPyBlbGVtZW50LmRhdGFbY29uZmlncy5sYWJlbEZpZWxkXSA6IGVsZW1lbnQuZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuXG4gIGNyZWF0ZURyb3Bkb3duTGFiZWwoY29uZmlnczpOR1hTZWxlY3RNYXlDb25maWdzLCBzZWxlY3RlZFJvd3M6QXJyYXk8TkdYU2VsZWN0TWF5Um93Pil7XG4gICAgLy9DaGVjayBpcyBjb25maWd1cmVkIHRvIHNlbGVjdCBtdWx0aXBsZSBjaG9pY2VzXG4gICAgaWYoY29uZmlncy5pc011bHRpU2VsZWN0KXtcblxuICAgICAgaWYoc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDEpe1xuICAgICAgICByZXR1cm4gTkdYU2VsZWN0TWF5Q29uZmlncy5NVUxUSV9TRUxFQ1RFRF9MQUJFTC5yZXBsYWNlKFwiI0NPVU5UXCIsIHNlbGVjdGVkUm93cy5sZW5ndGgudG9TdHJpbmcoKSkucmVwbGFjZShcIiNJVEVNU1wiLCBcIkl0ZW1zXCIpO1xuICAgICAgfWVsc2UgaWYoc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PSAxKXtcbiAgICAgICAgcmV0dXJuIE5HWFNlbGVjdE1heUNvbmZpZ3MuTVVMVElfU0VMRUNURURfTEFCRUwucmVwbGFjZShcIiNDT1VOVFwiLCBzZWxlY3RlZFJvd3MubGVuZ3RoLnRvU3RyaW5nKCkpLnJlcGxhY2UoXCIjSVRFTVNcIiwgXCJJdGVtXCIpO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHJldHVybiBOR1hTZWxlY3RNYXlDb25maWdzLk1VTFRJX1NFTEVDVEVEX0xBQkVMLnJlcGxhY2UoXCIjQ09VTlRcIiwgc2VsZWN0ZWRSb3dzLmxlbmd0aC50b1N0cmluZygpKS5yZXBsYWNlKFwiI0lURU1TXCIsIFwiSXRlbXNcIik7XG4gICAgICB9XG5cbiAgICB9ZWxzZXtcbiAgICAgIHJldHVybiBzZWxlY3RlZFJvd3MubGVuZ3RoID4gMCA/IHNlbGVjdGVkUm93c1swXS5sYWJlbCA6IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgc2V0U2VsZWN0ZWRJdGVtcyhjb25maWdzOk5HWFNlbGVjdE1heUNvbmZpZ3MsIHNlbGVjdGVkUm93czpBcnJheTxOR1hTZWxlY3RNYXlSb3c+LGFsbFJvd3M6QXJyYXk8TkdYU2VsZWN0TWF5Um93Piwgcm93Ok5HWFNlbGVjdE1heVJvdyl7XG4gICAgLy9DaGVjayBpcyBjb25maWd1cmVkIHRvIHNlbGVjdCBtdWx0aXBsZSBjaG9pY2VzXG4gICAgaWYoY29uZmlncy5pc011bHRpU2VsZWN0KXtcbiAgICAgIFxuICAgIH1lbHNle1xuICAgICAgaWYoIXJvdy5pc1NlbGVjdGVkKXtcbiAgICAgICAgdGhpcy51bnNlbGVjdEFsbFNlbGVjdGVkUm93cyhhbGxSb3dzKTtcbiAgICAgICAgcm93LmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICBzZWxlY3RlZFJvd3MgPSBbXTtcbiAgICAgICAgc2VsZWN0ZWRSb3dzLnB1c2gocm93KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGVkUm93cztcbiAgfVxuXG4gIHVuc2VsZWN0QWxsU2VsZWN0ZWRSb3dzKGFsbFJvd3M6QXJyYXk8TkdYU2VsZWN0TWF5Um93Pil7XG4gICAgYWxsUm93cy5mb3JFYWNoKHIgPT4ge1xuICAgICAgci5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RJdGVtQnlWYWx1ZShhbGxSb3dzOkFycmF5PE5HWFNlbGVjdE1heVJvdz4sIHZhbHVlOmFueSl7XG4gICAgbGV0IGZpbHRlcmVkVmFsID0gYWxsUm93cy5maWx0ZXIociA9PiByLnZhbHVlID09PSB2YWx1ZSk7XG4gICAgaWYoZmlsdGVyZWRWYWwubGVuZ3RoID4gMCkgZmlsdGVyZWRWYWxbMF0uaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgcmV0dXJuIGZpbHRlcmVkVmFsO1xuICB9XG5cbiAgc2VsZWN0SXRlbXNCeVZhbHVlKGFsbFJvd3M6QXJyYXk8TkdYU2VsZWN0TWF5Um93PiwgdmFsdWVzOkFycmF5PGFueT4pe1xuICAgIGxldCBhID0gW107XG4gICAgdmFsdWVzLmZvckVhY2godiA9PiB7XG4gICAgICBsZXQgZmlsdGVyZWRWYWwgPSBhbGxSb3dzLmZpbHRlcihyID0+IHIudmFsdWUgPT09IHYpO1xuICAgICAgaWYoZmlsdGVyZWRWYWwubGVuZ3RoID4gMCkgZmlsdGVyZWRWYWxbMF0uaXNTZWxlY3RlZCA9IHRydWU7IGEucHVzaChmaWx0ZXJlZFZhbFswXSk7XG4gICAgfSlcbiAgICByZXR1cm4gYTtcbiAgfVxufVxuIl19