@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
48 lines • 8.27 kB
JavaScript
import { Component } from '@angular/core';
import { BaseSearchComponent } from '../base-search.component';
import * as i0 from "@angular/core";
import * as i1 from "../../../../directives/focus-if/focus-if.directive";
import * as i2 from "../../../select/select.component";
export class SearchSelectComponent extends BaseSearchComponent {
constructor() {
super(...arguments);
this.type = 'select';
}
/**
* Provide defaults for undefined properties
*/
get label() {
return this.config.label;
}
get options() {
return this.config.options || [];
}
get multiple() {
return this.config.multiple || false;
}
get placeholder() {
return this.config.placeholder || 'Select item';
}
get dropDirection() {
return this.config.dropDirection || 'down';
}
get allowNull() {
return this.config.allowNull || false;
}
get disabled() {
return this.config.disabled || false;
}
get maxHeight() {
return this.config.maxHeight || '250px';
}
get pageSize() {
return this.config.pageSize || 20;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SearchSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: SearchSelectComponent, selector: "ux-search-select", usesInheritance: true, ngImport: i0, template: "@if (label) {\n <label class=\"form-label\">{{ label }}</label>\n}\n\n<ux-select [(value)]=\"value\"\n [options]=\"options\"\n [multiple]=\"multiple\"\n [placeholder]=\"placeholder\"\n [dropDirection]=\"dropDirection\"\n [pageSize]=\"pageSize\"\n [allowNull]=\"allowNull\"\n [disabled]=\"disabled\"\n [maxHeight]=\"maxHeight\"\n [key]=\"config.key\"\n [display]=\"config.display\"\n [loadingTemplate]=\"config.loadingTemplate\"\n [optionTemplate]=\"config.optionTemplate\"\n [noOptionsTemplate]=\"config.noOptionsTemplate\"\n [focusIf]=\"focus\">\n</ux-select>", dependencies: [{ kind: "directive", type: i1.FocusIfDirective, selector: "[focusIf]", inputs: ["focusIfDelay", "focusIfScroll", "focusIf"] }, { kind: "component", type: i2.SelectComponent, selector: "ux-select, ux-combobox, ux-dropdown", inputs: ["id", "value", "input", "dropdownOpen", "options", "display", "key", "allowNull", "ariaLabel", "ariaLabelledby", "listboxAriaLabel", "disabled", "dropDirection", "maxHeight", "multiple", "pageSize", "placeholder", "tagTemplate", "optionsHeadingTemplate", "recentOptionsHeadingTemplate", "autocomplete", "loadingTemplate", "noOptionsTemplate", "readonlyInput", "clearButton", "clearButtonAriaLabel", "autoCloseDropdown", "optionTemplate", "recentOptions", "recentOptionsMaxCount", "required", "filterDebounceTime"], outputs: ["valueChange", "inputChange", "dropdownOpenChange", "recentOptionsChange"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SearchSelectComponent, decorators: [{
type: Component,
args: [{ selector: 'ux-search-select', template: "@if (label) {\n <label class=\"form-label\">{{ label }}</label>\n}\n\n<ux-select [(value)]=\"value\"\n [options]=\"options\"\n [multiple]=\"multiple\"\n [placeholder]=\"placeholder\"\n [dropDirection]=\"dropDirection\"\n [pageSize]=\"pageSize\"\n [allowNull]=\"allowNull\"\n [disabled]=\"disabled\"\n [maxHeight]=\"maxHeight\"\n [key]=\"config.key\"\n [display]=\"config.display\"\n [loadingTemplate]=\"config.loadingTemplate\"\n [optionTemplate]=\"config.optionTemplate\"\n [noOptionsTemplate]=\"config.noOptionsTemplate\"\n [focusIf]=\"focus\">\n</ux-select>" }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NlYXJjaC1idWlsZGVyL3NlYXJjaC1jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2VhcmNoLWJ1aWxkZXIvc2VhcmNoLWNvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBNkIsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQU0xRixNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBSjlEOztRQU1FLFNBQUksR0FBVyxRQUFRLENBQUM7S0F3Q3pCO0lBdENDOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLGFBQWEsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7K0dBekNVLHFCQUFxQjttR0FBckIscUJBQXFCLCtFQ1JsQyxpa0JBbUJZOzs0RkRYQyxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbExvYWRGdW5jdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvaW5maW5pdGUtc2Nyb2xsL2luZGV4JztcbmltcG9ydCB7IEJhc2VTZWFyY2hDb21wb25lbnQsIEJhc2VTZWFyY2hDb21wb25lbnRDb25maWcgfSBmcm9tICcuLi9iYXNlLXNlYXJjaC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1eC1zZWFyY2gtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlYXJjaENvbXBvbmVudCB7XG5cbiAgdHlwZTogc3RyaW5nID0gJ3NlbGVjdCc7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgZGVmYXVsdHMgZm9yIHVuZGVmaW5lZCBwcm9wZXJ0aWVzXG4gICAqL1xuICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGFiZWw7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcub3B0aW9ucyB8fCBbXTtcbiAgfVxuXG4gIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubXVsdGlwbGUgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucGxhY2Vob2xkZXIgfHwgJ1NlbGVjdCBpdGVtJztcbiAgfVxuXG4gIGdldCBkcm9wRGlyZWN0aW9uKCk6ICdhdXRvJyB8ICd1cCcgfCAnZG93bicge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5kcm9wRGlyZWN0aW9uIHx8ICdkb3duJztcbiAgfVxuXG4gIGdldCBhbGxvd051bGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmFsbG93TnVsbCB8fCBmYWxzZTtcbiAgfVxuXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGlzYWJsZWQgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgbWF4SGVpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLm1heEhlaWdodCB8fCAnMjUwcHgnO1xuICB9XG5cbiAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnBhZ2VTaXplIHx8IDIwO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoU2VsZWN0Q29uZmlnIGV4dGVuZHMgQmFzZVNlYXJjaENvbXBvbmVudENvbmZpZyB7XG4gICBcbiAgb3B0aW9ucz86IGFueVtdIHwgSW5maW5pdGVTY3JvbGxMb2FkRnVuY3Rpb247XG4gIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgZHJvcERpcmVjdGlvbj86ICd1cCcgfCAnZG93bic7XG4gIGFsbG93TnVsbD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbn1cbiIsIkBpZiAobGFiZWwpIHtcbiAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbn1cblxuPHV4LXNlbGVjdCBbKHZhbHVlKV09XCJ2YWx1ZVwiXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbZHJvcERpcmVjdGlvbl09XCJkcm9wRGlyZWN0aW9uXCJcbiAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgW2FsbG93TnVsbF09XCJhbGxvd051bGxcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbbWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gIFtrZXldPVwiY29uZmlnLmtleVwiXG4gIFtkaXNwbGF5XT1cImNvbmZpZy5kaXNwbGF5XCJcbiAgW2xvYWRpbmdUZW1wbGF0ZV09XCJjb25maWcubG9hZGluZ1RlbXBsYXRlXCJcbiAgW29wdGlvblRlbXBsYXRlXT1cImNvbmZpZy5vcHRpb25UZW1wbGF0ZVwiXG4gIFtub09wdGlvbnNUZW1wbGF0ZV09XCJjb25maWcubm9PcHRpb25zVGVtcGxhdGVcIlxuICBbZm9jdXNJZl09XCJmb2N1c1wiPlxuPC91eC1zZWxlY3Q+Il19