@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
42 lines • 5.23 kB
JavaScript
import { Directive, inject } from '@angular/core';
import { TUI_IS_ANDROID } from '@taiga-ui/cdk/tokens';
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
import * as i0 from "@angular/core";
class TuiSelectLike {
constructor() {
this.el = tuiInjectElement();
this.isAndroid = inject(TUI_IS_ANDROID);
}
clear() {
this.el.value = '';
}
prevent(event) {
if (!this.isAndroid) {
return;
}
event.preventDefault();
this.el.focus();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectLike, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelectLike, isStandalone: true, selector: "[tuiSelectLike]", host: { attributes: { "tuiSelectLike": "", "inputmode": "none", "spellcheck": "false", "autocomplete": "off" }, listeners: { "beforeinput": "$event.inputType.includes(\"delete\") || $event.preventDefault()", "input.capture": "$event.inputType?.includes(\"delete\") && clear()", "mousedown": "prevent($event)" } }, ngImport: i0 }); }
}
export { TuiSelectLike };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectLike, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiSelectLike]',
host: {
tuiSelectLike: '',
inputmode: 'none',
spellcheck: 'false',
autocomplete: 'off',
// Click on cleaner icon does not trigger `beforeinput` event --> handle all kind of deletion in input event
'(beforeinput)': '$event.inputType.includes("delete") || $event.preventDefault()',
'(input.capture)': '$event.inputType?.includes("delete") && clear()',
// Hide Android text select handle (bubble marker below transparent caret)
'(mousedown)': 'prevent($event)',
},
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWxpa2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZC9zZWxlY3QtbGlrZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDOztBQUV6RCxNQWVhLGFBQWE7SUFmMUI7UUFnQnFCLE9BQUUsR0FBRyxnQkFBZ0IsRUFBb0IsQ0FBQztRQUMxQyxjQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBY3ZEO0lBWmEsS0FBSztRQUNYLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRVMsT0FBTyxDQUFDLEtBQWlCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLE9BQU87U0FDVjtRQUVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BCLENBQUM7K0dBZlEsYUFBYTttR0FBYixhQUFhOztTQUFiLGFBQWE7NEZBQWIsYUFBYTtrQkFmekIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFO3dCQUNGLGFBQWEsRUFBRSxFQUFFO3dCQUNqQixTQUFTLEVBQUUsTUFBTTt3QkFDakIsVUFBVSxFQUFFLE9BQU87d0JBQ25CLFlBQVksRUFBRSxLQUFLO3dCQUNuQiw0R0FBNEc7d0JBQzVHLGVBQWUsRUFBRSxnRUFBZ0U7d0JBQ2pGLGlCQUFpQixFQUFFLGlEQUFpRDt3QkFDcEUsMEVBQTBFO3dCQUMxRSxhQUFhLEVBQUUsaUJBQWlCO3FCQUNuQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfSVNfQU5EUk9JRH0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpU2VsZWN0TGlrZV0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHVpU2VsZWN0TGlrZTogJycsXG4gICAgICAgIGlucHV0bW9kZTogJ25vbmUnLFxuICAgICAgICBzcGVsbGNoZWNrOiAnZmFsc2UnLFxuICAgICAgICBhdXRvY29tcGxldGU6ICdvZmYnLFxuICAgICAgICAvLyBDbGljayBvbiBjbGVhbmVyIGljb24gZG9lcyBub3QgdHJpZ2dlciBgYmVmb3JlaW5wdXRgIGV2ZW50IC0tPiBoYW5kbGUgYWxsIGtpbmQgb2YgZGVsZXRpb24gaW4gaW5wdXQgZXZlbnRcbiAgICAgICAgJyhiZWZvcmVpbnB1dCknOiAnJGV2ZW50LmlucHV0VHlwZS5pbmNsdWRlcyhcImRlbGV0ZVwiKSB8fCAkZXZlbnQucHJldmVudERlZmF1bHQoKScsXG4gICAgICAgICcoaW5wdXQuY2FwdHVyZSknOiAnJGV2ZW50LmlucHV0VHlwZT8uaW5jbHVkZXMoXCJkZWxldGVcIikgJiYgY2xlYXIoKScsXG4gICAgICAgIC8vIEhpZGUgQW5kcm9pZCB0ZXh0IHNlbGVjdCBoYW5kbGUgKGJ1YmJsZSBtYXJrZXIgYmVsb3cgdHJhbnNwYXJlbnQgY2FyZXQpXG4gICAgICAgICcobW91c2Vkb3duKSc6ICdwcmV2ZW50KCRldmVudCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNlbGVjdExpa2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50PEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc0FuZHJvaWQgPSBpbmplY3QoVFVJX0lTX0FORFJPSUQpO1xuXG4gICAgcHJvdGVjdGVkIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsLnZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQW5kcm9pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5lbC5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==