UNPKG

@ngneat/cmdk

Version:

<p align="center"> <img width="20%" height="20%" src="./src/assets/ngneat%20cdk.svg"> </p>

151 lines 14 kB
import { __decorate } from "tslib"; import { coerceBooleanProperty } from '@angular/cdk/coercion'; import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, inject, Input, Output, } from '@angular/core'; import { UntilDestroy } from '@ngneat/until-destroy'; import { CmdkService } from '../../cmdk.service'; import * as i0 from "@angular/core"; let cmdkItemId = 0; export let ItemDirective = class ItemDirective { constructor() { this._disabled = false; this.selected = new EventEmitter(); this.originalDisplay = ''; this.filtered = true; this._active = false; this._value = ''; this._cmdkService = inject(CmdkService); this.itemId = `cmdk-item-${cmdkItemId++}`; this._elementRef = inject((ElementRef)); } set disabled(value) { this._disabled = coerceBooleanProperty(value); } get disabled() { return this._disabled; } getLabel() { throw new Error('Method not implemented.'); } setActiveStyles() { this.active = true; } setInactiveStyles() { this.active = false; } set value(value) { if (value !== this.value) { this._cmdkService.itemValueChanged(this.value, value); this._value = value; } } get value() { return this._value ? this._value : this._elementRef.nativeElement.textContent.trim().toLowerCase(); } onClick() { this.selected.emit(); } onKeyUp(ev) { if (ev?.key === 'Enter') { this.selected.emit(); } } get hidden() { return !this.filtered; } get display() { return this.filtered ? this.originalDisplay : 'none'; } get dataValue() { return this.value; } get attrRole() { return 'option'; } get buttonType() { return 'button'; } get isSelected() { return this._active; } get active() { return this._active; } get itemDisabled() { return this.disabled; } get itemFiltered() { return this.filtered; } set active(value) { this._active = value; } onMouseUp() { this._cmdkService.itemClicked(this.value); } ngAfterContentInit() { this.originalDisplay = window.getComputedStyle(this._elementRef.nativeElement).display; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ItemDirective, isStandalone: true, selector: "[cmdkItem]", inputs: { disabled: "disabled", filtered: "filtered", value: "value" }, outputs: { selected: "selected" }, host: { listeners: { "click": "onClick()", "keydown": "onKeyUp(event)", "mouseup": "onMouseUp()" }, properties: { "attr.cmdk-hidden": "this.hidden", "style.display": "this.display", "attr.data-value": "this.dataValue", "attr.role": "this.attrRole", "type": "this.buttonType", "attr.aria-selected": "this.isSelected", "class.cmdk-item-active": "this.active", "class.cmdk-item-disabled": "this.itemDisabled", "class.cmdk-item-filtered": "this.itemFiltered" }, classAttribute: "cmdk-item" }, ngImport: i0 }); } }; ItemDirective = __decorate([ UntilDestroy() ], ItemDirective); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemDirective, decorators: [{ type: Directive, args: [{ selector: '[cmdkItem]', // eslint-disable-next-line @angular-eslint/no-host-metadata-property host: { class: 'cmdk-item', }, standalone: true, }] }], propDecorators: { disabled: [{ type: Input }], selected: [{ type: Output }], filtered: [{ type: Input }], value: [{ type: Input }], onClick: [{ type: HostListener, args: ['click'] }], onKeyUp: [{ type: HostListener, args: ['keydown', ['event']] }], hidden: [{ type: HostBinding, args: ['attr.cmdk-hidden'] }], display: [{ type: HostBinding, args: ['style.display'] }], dataValue: [{ type: HostBinding, args: ['attr.data-value'] }], attrRole: [{ type: HostBinding, args: ['attr.role'] }], buttonType: [{ type: HostBinding, args: ['type'] }], isSelected: [{ type: HostBinding, args: ['attr.aria-selected'] }], active: [{ type: HostBinding, args: ['class.cmdk-item-active'] }], itemDisabled: [{ type: HostBinding, args: ['class.cmdk-item-disabled'] }], itemFiltered: [{ type: HostBinding, args: ['class.cmdk-item-filtered'] }], onMouseUp: [{ type: HostListener, args: ['mouseup'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ25lYXQvY21kay9zcmMvbGliL2RpcmVjdGl2ZXMvaXRlbS9pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHakQsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBV1osV0FBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUFuQjtRQUdHLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFRaEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFVWixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQWNwQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsQyxXQUFNLEdBQUcsYUFBYSxVQUFVLEVBQUUsRUFBRSxDQUFDO1FBQzlDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBNkIsQ0FBQSxDQUFDLENBQUM7S0F5RXJEO0lBOUdDLElBQ0ksUUFBUSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxRQUFR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QUFRO3NCQUFqQixNQUFNO2dCQVdFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUYsS0FBSztzQkFEUixLQUFLO2dCQW1CTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFNckIsT0FBTztzQkFETixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFROUIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGtCQUFrQjtnQkFNM0IsT0FBTztzQkFEVixXQUFXO3VCQUFDLGVBQWU7Z0JBTXhCLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTTFCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxXQUFXO2dCQU1wQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsTUFBTTtnQkFNZixVQUFVO3NCQURiLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU03QixNQUFNO3NCQURULFdBQVc7dUJBQUMsd0JBQXdCO2dCQU1qQyxZQUFZO3NCQURmLFdBQVc7dUJBQUMsMEJBQTBCO2dCQU1uQyxZQUFZO3NCQURmLFdBQVc7dUJBQUMsMEJBQTBCO2dCQVV2QyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3RLZXlNYW5hZ2VyT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95IH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IENtZGtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY21kay5zZXJ2aWNlJztcbmltcG9ydCB7IENtZGtJdGVtUHJvcHMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmxldCBjbWRrSXRlbUlkID0gMDtcblxuQFVudGlsRGVzdHJveSgpXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tjbWRrSXRlbV0nLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdjbWRrLWl0ZW0nLFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSXRlbURpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIENtZGtJdGVtUHJvcHMsIExpc3RLZXlNYW5hZ2VyT3B0aW9uLCBBZnRlckNvbnRlbnRJbml0XG57XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgQE91dHB1dCgpIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBvcmlnaW5hbERpc3BsYXkgPSAnJztcbiAgZ2V0TGFiZWw/KCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG4gIHNldEFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gIH1cbiAgc2V0SW5hY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgfVxuICBASW5wdXQoKSBmaWx0ZXJlZCA9IHRydWU7XG4gIHByaXZhdGUgX2FjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLl9jbWRrU2VydmljZS5pdGVtVmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUsIHZhbHVlKTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVcbiAgICAgID8gdGhpcy5fdmFsdWVcbiAgICAgIDogdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY21ka1NlcnZpY2UgPSBpbmplY3QoQ21ka1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGl0ZW1JZCA9IGBjbWRrLWl0ZW0tJHtjbWRrSXRlbUlkKyt9YDtcbiAgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD4pO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpIHtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJ2V2ZW50J10pXG4gIG9uS2V5VXAoZXY6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXY/LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmNtZGstaGlkZGVuJylcbiAgZ2V0IGhpZGRlbigpIHtcbiAgICByZXR1cm4gIXRoaXMuZmlsdGVyZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICBnZXQgZGlzcGxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZCA/IHRoaXMub3JpZ2luYWxEaXNwbGF5IDogJ25vbmUnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdmFsdWUnKVxuICBnZXQgZGF0YVZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBnZXQgYXR0clJvbGUoKSB7XG4gICAgcmV0dXJuICdvcHRpb24nO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCd0eXBlJylcbiAgZ2V0IGJ1dHRvblR5cGUoKSB7XG4gICAgcmV0dXJuICdidXR0b24nO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKVxuICBnZXQgaXNTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jbWRrLWl0ZW0tYWN0aXZlJylcbiAgZ2V0IGFjdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jbWRrLWl0ZW0tZGlzYWJsZWQnKVxuICBnZXQgaXRlbURpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jbWRrLWl0ZW0tZmlsdGVyZWQnKVxuICBnZXQgaXRlbUZpbHRlcmVkKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkO1xuICB9XG5cbiAgc2V0IGFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2FjdGl2ZSA9IHZhbHVlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2V1cCcpXG4gIG9uTW91c2VVcCgpIHtcbiAgICB0aGlzLl9jbWRrU2VydmljZS5pdGVtQ2xpY2tlZCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9yaWdpbmFsRGlzcGxheSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKFxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgKS5kaXNwbGF5O1xuICB9XG59XG4iXX0=