UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

32 lines 5.47 kB
import { Directive, effect, inject } from '@angular/core'; import { NG_VALIDATORS } from '@angular/forms'; import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants'; import { TuiValidator } from '@taiga-ui/cdk/directives/validator'; import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous'; import { TuiItemsHandlersDirective } from './items-handlers.directive'; import * as i0 from "@angular/core"; class TuiItemsHandlersValidator extends TuiValidator { constructor() { super(...arguments); this.handlers = inject(TuiItemsHandlersDirective); this.update = effect(() => { this.handlers.disabledItemHandler(); this.onChange(); }, TUI_ALLOW_SIGNAL_WRITES); this.disabledItemHandler = (value) => Array.isArray(value) ? value.some((item) => this.handlers.disabledItemHandler()(item)) : Boolean(value) && this.handlers.disabledItemHandler()(value); this.validate = ({ value }) => this.disabledItemHandler(value) ? { tuiDisabledItem: value } : null; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiItemsHandlersValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiItemsHandlersValidator, isStandalone: true, providers: [tuiProvide(NG_VALIDATORS, TuiItemsHandlersValidator, true)], usesInheritance: true, ngImport: i0 }); } } export { TuiItemsHandlersValidator }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiItemsHandlersValidator, decorators: [{ type: Directive, args: [{ standalone: true, providers: [tuiProvide(NG_VALIDATORS, TuiItemsHandlersValidator, true)], }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtaGFuZGxlcnMudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzL2l0ZW1zLWhhbmRsZXJzLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLGFBQWEsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFaEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTdELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDOztBQUVyRSxNQUlhLHlCQUEwQixTQUFRLFlBQVk7SUFKM0Q7O1FBS3FCLGFBQVEsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUUzQyxXQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBRXJCLHdCQUFtQixHQUEyQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkQsYUFBUSxHQUFnQixDQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBRSxDQUNoRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDekU7K0dBZlkseUJBQXlCO21HQUF6Qix5QkFBeUIsaUNBRnZCLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQzs7U0FFOUQseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLDZCQUE2QixJQUFJLENBQUMsQ0FBQztpQkFDMUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR19WQUxJREFUT1JTLCB0eXBlIFZhbGlkYXRvckZufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RVSV9BTExPV19TSUdOQUxfV1JJVEVTfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aVZhbGlkYXRvcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL3ZhbGlkYXRvcic7XG5pbXBvcnQge3R5cGUgVHVpQm9vbGVhbkhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlQcm92aWRlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG5pbXBvcnQge1R1aUl0ZW1zSGFuZGxlcnNEaXJlY3RpdmV9IGZyb20gJy4vaXRlbXMtaGFuZGxlcnMuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt0dWlQcm92aWRlKE5HX1ZBTElEQVRPUlMsIFR1aUl0ZW1zSGFuZGxlcnNWYWxpZGF0b3IsIHRydWUpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSXRlbXNIYW5kbGVyc1ZhbGlkYXRvciBleHRlbmRzIFR1aVZhbGlkYXRvciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVycyA9IGluamVjdChUdWlJdGVtc0hhbmRsZXJzRGlyZWN0aXZlKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSB1cGRhdGUgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZXJzLmRpc2FibGVkSXRlbUhhbmRsZXIoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSgpO1xuICAgIH0sIFRVSV9BTExPV19TSUdOQUxfV1JJVEVTKTtcblxuICAgIHB1YmxpYyBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBUdWlCb29sZWFuSGFuZGxlcjxhbnk+ID0gKHZhbHVlKSA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgPyB2YWx1ZS5zb21lKChpdGVtKSA9PiB0aGlzLmhhbmRsZXJzLmRpc2FibGVkSXRlbUhhbmRsZXIoKShpdGVtKSlcbiAgICAgICAgICAgIDogQm9vbGVhbih2YWx1ZSkgJiYgdGhpcy5oYW5kbGVycy5kaXNhYmxlZEl0ZW1IYW5kbGVyKCkodmFsdWUpO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIHZhbGlkYXRlOiBWYWxpZGF0b3JGbiA9ICh7dmFsdWV9KSA9PlxuICAgICAgICB0aGlzLmRpc2FibGVkSXRlbUhhbmRsZXIodmFsdWUpID8ge3R1aURpc2FibGVkSXRlbTogdmFsdWV9IDogbnVsbDtcbn1cbiJdfQ==