@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
27 lines • 5.23 kB
JavaScript
import { InjectionToken, Optional, signal, SkipSelf, } from '@angular/core';
import { TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
export const TUI_DEFAULT_ITEMS_HANDLERS = {
stringify: signal(String),
identityMatcher: signal(TUI_DEFAULT_IDENTITY_MATCHER),
disabledItemHandler: signal(TUI_FALSE_HANDLER),
};
/**
* Default items handlers for components
*/
export const TUI_ITEMS_HANDLERS = new InjectionToken(ngDevMode ? 'TUI_ITEMS_HANDLERS' : '', {
factory: () => TUI_DEFAULT_ITEMS_HANDLERS,
});
export function tuiItemsHandlersProvider(options) {
return {
provide: TUI_ITEMS_HANDLERS,
deps: [[new Optional(), new SkipSelf(), TUI_ITEMS_HANDLERS]],
useFactory: (parent) => ({
stringify: signal(parent?.stringify() ?? TUI_DEFAULT_ITEMS_HANDLERS.stringify()),
identityMatcher: signal(parent?.identityMatcher() ?? TUI_DEFAULT_ITEMS_HANDLERS.identityMatcher()),
disabledItemHandler: signal(parent?.disabledItemHandler() ??
TUI_DEFAULT_ITEMS_HANDLERS.disabledItemHandler()),
...options,
}),
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtaGFuZGxlcnMudG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzL2l0ZW1zLWhhbmRsZXJzLnRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUNkLFFBQVEsRUFFUixNQUFNLEVBQ04sUUFBUSxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyw0QkFBNEIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBYXhGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUE4QjtJQUNqRSxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6QixlQUFlLEVBQUUsTUFBTSxDQUFDLDRCQUE0QixDQUFDO0lBQ3JELG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztDQUNqRCxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FDaEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNyQztJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQywwQkFBMEI7Q0FDNUMsQ0FDSixDQUFDO0FBRUYsTUFBTSxVQUFVLHdCQUF3QixDQUNwQyxPQUFxQztJQUVyQyxPQUFPO1FBQ0gsT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVELFVBQVUsRUFBRSxDQUFDLE1BQWtDLEVBQXVCLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLFNBQVMsRUFBRSxNQUFNLENBQ2IsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxDQUNoRTtZQUNELGVBQWUsRUFBRSxNQUFNLENBQ25CLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSwwQkFBMEIsQ0FBQyxlQUFlLEVBQUUsQ0FDNUU7WUFDRCxtQkFBbUIsRUFBRSxNQUFNLENBQ3ZCLE1BQU0sRUFBRSxtQkFBbUIsRUFBRTtnQkFDekIsMEJBQTBCLENBQUMsbUJBQW1CLEVBQUUsQ0FDdkQ7WUFDRCxHQUFHLE9BQU87U0FDYixDQUFDO0tBQ0wsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEluamVjdGlvblRva2VuLFxuICAgIE9wdGlvbmFsLFxuICAgIHR5cGUgUHJvdmlkZXIsXG4gICAgc2lnbmFsLFxuICAgIFNraXBTZWxmLFxuICAgIHR5cGUgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSLCBUVUlfRkFMU0VfSEFORExFUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgICB0eXBlIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIHR5cGUgVHVpSWRlbnRpdHlNYXRjaGVyLFxuICAgIHR5cGUgVHVpU3RyaW5nSGFuZGxlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpSXRlbXNIYW5kbGVyczxUPiB7XG4gICAgcmVhZG9ubHkgZGlzYWJsZWRJdGVtSGFuZGxlcjogV3JpdGFibGVTaWduYWw8VHVpQm9vbGVhbkhhbmRsZXI8VD4+O1xuICAgIHJlYWRvbmx5IGlkZW50aXR5TWF0Y2hlcjogV3JpdGFibGVTaWduYWw8VHVpSWRlbnRpdHlNYXRjaGVyPFQ+PjtcbiAgICByZWFkb25seSBzdHJpbmdpZnk6IFdyaXRhYmxlU2lnbmFsPFR1aVN0cmluZ0hhbmRsZXI8VD4+O1xufVxuXG5leHBvcnQgY29uc3QgVFVJX0RFRkFVTFRfSVRFTVNfSEFORExFUlM6IFR1aUl0ZW1zSGFuZGxlcnM8dW5rbm93bj4gPSB7XG4gICAgc3RyaW5naWZ5OiBzaWduYWwoU3RyaW5nKSxcbiAgICBpZGVudGl0eU1hdGNoZXI6IHNpZ25hbChUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSKSxcbiAgICBkaXNhYmxlZEl0ZW1IYW5kbGVyOiBzaWduYWwoVFVJX0ZBTFNFX0hBTkRMRVIpLFxufTtcblxuLyoqXG4gKiBEZWZhdWx0IGl0ZW1zIGhhbmRsZXJzIGZvciBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfSVRFTVNfSEFORExFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICAgbmdEZXZNb2RlID8gJ1RVSV9JVEVNU19IQU5ETEVSUycgOiAnJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IFRVSV9ERUZBVUxUX0lURU1TX0hBTkRMRVJTLFxuICAgIH0sXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpSXRlbXNIYW5kbGVyc1Byb3ZpZGVyPFQ+KFxuICAgIG9wdGlvbnM6IFBhcnRpYWw8VHVpSXRlbXNIYW5kbGVyczxUPj4sXG4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogVFVJX0lURU1TX0hBTkRMRVJTLFxuICAgICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgVFVJX0lURU1TX0hBTkRMRVJTXV0sXG4gICAgICAgIHVzZUZhY3Rvcnk6IChwYXJlbnQ6IFR1aUl0ZW1zSGFuZGxlcnM8VD4gfCBudWxsKTogVHVpSXRlbXNIYW5kbGVyczxUPiA9PiAoe1xuICAgICAgICAgICAgc3RyaW5naWZ5OiBzaWduYWwoXG4gICAgICAgICAgICAgICAgcGFyZW50Py5zdHJpbmdpZnkoKSA/PyBUVUlfREVGQVVMVF9JVEVNU19IQU5ETEVSUy5zdHJpbmdpZnkoKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpZGVudGl0eU1hdGNoZXI6IHNpZ25hbChcbiAgICAgICAgICAgICAgICBwYXJlbnQ/LmlkZW50aXR5TWF0Y2hlcigpID8/IFRVSV9ERUZBVUxUX0lURU1TX0hBTkRMRVJTLmlkZW50aXR5TWF0Y2hlcigpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRpc2FibGVkSXRlbUhhbmRsZXI6IHNpZ25hbChcbiAgICAgICAgICAgICAgICBwYXJlbnQ/LmRpc2FibGVkSXRlbUhhbmRsZXIoKSA/P1xuICAgICAgICAgICAgICAgICAgICBUVUlfREVGQVVMVF9JVEVNU19IQU5ETEVSUy5kaXNhYmxlZEl0ZW1IYW5kbGVyKCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfSksXG4gICAgfTtcbn1cbiJdfQ==