@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
1 lines • 9.36 kB
Source Map (JSON)
{"version":3,"file":"taiga-ui-core-directives-items-handlers.mjs","sources":["../../../projects/core/directives/items-handlers/items-handlers.tokens.ts","../../../projects/core/directives/items-handlers/items-handlers.directive.ts","../../../projects/core/directives/items-handlers/items-handlers.validator.ts","../../../projects/core/directives/items-handlers/taiga-ui-core-directives-items-handlers.ts"],"sourcesContent":["import {\n InjectionToken,\n Optional,\n type Provider,\n signal,\n SkipSelf,\n type WritableSignal,\n} from '@angular/core';\nimport {TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {\n type TuiBooleanHandler,\n type TuiIdentityMatcher,\n type TuiStringHandler,\n} from '@taiga-ui/cdk/types';\n\nexport interface TuiItemsHandlers<T> {\n readonly disabledItemHandler: WritableSignal<TuiBooleanHandler<T>>;\n readonly identityMatcher: WritableSignal<TuiIdentityMatcher<T>>;\n readonly stringify: WritableSignal<TuiStringHandler<T>>;\n}\n\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: signal(String),\n identityMatcher: signal(TUI_DEFAULT_IDENTITY_MATCHER),\n disabledItemHandler: signal(TUI_FALSE_HANDLER),\n};\n\n/**\n * Default items handlers for components\n */\nexport const TUI_ITEMS_HANDLERS = new InjectionToken(\n ngDevMode ? 'TUI_ITEMS_HANDLERS' : '',\n {\n factory: () => TUI_DEFAULT_ITEMS_HANDLERS,\n },\n);\n\nexport function tuiItemsHandlersProvider<T>(\n options: Partial<TuiItemsHandlers<T>>,\n): Provider {\n return {\n provide: TUI_ITEMS_HANDLERS,\n deps: [[new Optional(), new SkipSelf(), TUI_ITEMS_HANDLERS]],\n useFactory: (parent: TuiItemsHandlers<T> | null): TuiItemsHandlers<T> => ({\n stringify: signal(\n parent?.stringify() ?? TUI_DEFAULT_ITEMS_HANDLERS.stringify(),\n ),\n identityMatcher: signal(\n parent?.identityMatcher() ?? TUI_DEFAULT_ITEMS_HANDLERS.identityMatcher(),\n ),\n disabledItemHandler: signal(\n parent?.disabledItemHandler() ??\n TUI_DEFAULT_ITEMS_HANDLERS.disabledItemHandler(),\n ),\n ...options,\n }),\n };\n}\n","import {Directive, inject, Input, signal} from '@angular/core';\nimport {\n type TuiBooleanHandler,\n type TuiIdentityMatcher,\n type TuiStringHandler,\n} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TUI_ITEMS_HANDLERS, type TuiItemsHandlers} from './items-handlers.tokens';\n\n@Directive({\n standalone: true,\n providers: [tuiProvide(TUI_ITEMS_HANDLERS, TuiItemsHandlersDirective)],\n})\nexport class TuiItemsHandlersDirective<T> implements TuiItemsHandlers<T> {\n private readonly defaultHandlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS, {\n skipSelf: true,\n });\n\n public readonly stringify = signal(this.defaultHandlers.stringify());\n public readonly identityMatcher = signal(this.defaultHandlers.identityMatcher());\n public readonly disabledItemHandler = signal(\n this.defaultHandlers.disabledItemHandler(),\n );\n\n // TODO(v5): use signal inputs\n @Input('stringify')\n public set stringifySetter(x: TuiStringHandler<T>) {\n this.stringify.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('identityMatcher')\n public set identityMatcherSetter(x: TuiIdentityMatcher<T>) {\n this.identityMatcher.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('disabledItemHandler')\n public set disabledItemHandlerSetter(x: TuiBooleanHandler<T>) {\n this.disabledItemHandler.set(x);\n }\n}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiItemsHandlersDirective,\n inputs: ['stringify', 'identityMatcher', 'disabledItemHandler'],\n },\n ],\n})\nexport class TuiWithItemsHandlers {}\n","import {Directive, effect, inject} from '@angular/core';\nimport {NG_VALIDATORS, type ValidatorFn} from '@angular/forms';\nimport {TUI_ALLOW_SIGNAL_WRITES} from '@taiga-ui/cdk/constants';\nimport {TuiValidator} from '@taiga-ui/cdk/directives/validator';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiItemsHandlersDirective} from './items-handlers.directive';\n\n@Directive({\n standalone: true,\n providers: [tuiProvide(NG_VALIDATORS, TuiItemsHandlersValidator, true)],\n})\nexport class TuiItemsHandlersValidator extends TuiValidator {\n private readonly handlers = inject(TuiItemsHandlersDirective);\n\n protected readonly update = effect(() => {\n this.handlers.disabledItemHandler();\n this.onChange();\n }, TUI_ALLOW_SIGNAL_WRITES);\n\n public disabledItemHandler: TuiBooleanHandler<any> = (value) =>\n Array.isArray(value)\n ? value.some((item) => this.handlers.disabledItemHandler()(item))\n : Boolean(value) && this.handlers.disabledItemHandler()(value);\n\n public override validate: ValidatorFn = ({value}) =>\n this.disabledItemHandler(value) ? {tuiDisabledItem: value} : null;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}