UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

208 lines (196 loc) • 9.15 kB
import { InjectionToken, Optional, Self, inject } from '@angular/core'; import { NgControl } from '@angular/forms'; import { tuiControlValue } from '@taiga-ui/cdk/observables'; import { map, of } from 'rxjs'; import { TUI_IDENTITY_VALUE_TRANSFORMER } from '@taiga-ui/cdk/classes'; import { tuiExtractI18n } from '@taiga-ui/i18n/utils'; import { TUI_FIRST_DAY, TUI_LAST_DAY } from '@taiga-ui/cdk/date-time'; import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di'; import { TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants'; import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous'; import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens'; import { TUI_DROPDOWN_COMPONENT } from '@taiga-ui/core/directives/dropdown'; import { TUI_MONTHS } from '@taiga-ui/core/tokens'; /** * Stream that emits calendar data change * @deprecated this should be rewritten in v5 */ const TUI_CALENDAR_DATE_STREAM = new InjectionToken(ngDevMode ? 'TUI_CALENDAR_DATE_STREAM' : ''); function tuiDateStreamWithTransformer(transformer) { return { provide: TUI_CALENDAR_DATE_STREAM, deps: [ [new Optional(), new Self(), NgControl], [new Optional(), transformer], ], useFactory: tuiControlValueFactory, }; } function tuiControlValueFactory(control, transformer) { return control ? tuiControlValue(control).pipe(map((value) => transformer ? transformer?.fromControlValue(value) : value)) : of(null); } /** * Control value transformer of TuiDay to custom value format for InputDate* components */ const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_VALUE_TRANSFORMER' : '', { factory: () => TUI_IDENTITY_VALUE_TRANSFORMER, }); /** * Control value transformer for InputDateRange component */ const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_RANGE_VALUE_TRANSFORMER' : ''); /** * Control value transformer for InputDateTime component */ const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_TIME_VALUE_TRANSFORMER' : ''); /** * Control value transformer for InputTime component */ const TUI_TIME_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_TIME_VALUE_TRANSFORMER' : ''); const TUI_CONFIRM_WORDS = new InjectionToken(ngDevMode ? 'TUI_CONFIRM_WORDS' : '', { factory: tuiExtractI18n('confirm'), }); const TUI_CANCEL_WORD = new InjectionToken(ngDevMode ? 'TUI_CANCEL_WORD' : '', { factory: tuiExtractI18n('cancel'), }); const TUI_DONE_WORD = new InjectionToken(ngDevMode ? 'TUI_DONE_WORD' : '', { factory: tuiExtractI18n('done'), }); const TUI_MORE_WORD = new InjectionToken(ngDevMode ? 'TUI_MORE_WORD' : '', { factory: tuiExtractI18n('more'), }); const TUI_HIDE_TEXT = new InjectionToken(ngDevMode ? 'TUI_HIDE_TEXT' : '', { factory: tuiExtractI18n('hide'), }); const TUI_SHOW_ALL_TEXT = new InjectionToken(ngDevMode ? 'TUI_SHOW_ALL_TEXT' : '', { factory: tuiExtractI18n('showAll'), }); const TUI_OTHER_DATE_TEXT = new InjectionToken(ngDevMode ? 'TUI_OTHER_DATE_TEXT' : '', { factory: tuiExtractI18n('otherDate'), }); const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_CHOOSE_DAY_OR_RANGE_TEXTS' : '', { factory: tuiExtractI18n('mobileCalendarTexts'), }); const TUI_FROM_TO_TEXTS = new InjectionToken(ngDevMode ? 'TUI_FROM_TO_TEXTS' : '', { factory: tuiExtractI18n('range'), }); const TUI_PLUS_MINUS_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PLUS_MINUS_TEXTS' : '', { factory: tuiExtractI18n('countTexts'), }); const TUI_TIME_TEXTS = new InjectionToken(ngDevMode ? 'TUI_TIME_TEXTS' : '', { factory: tuiExtractI18n('time'), }); const TUI_DATE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_DATE_TEXTS' : '', { factory: tuiExtractI18n('dateTexts'), }); const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(ngDevMode ? 'TUI_DIGITAL_INFORMATION_UNITS' : '', { factory: tuiExtractI18n('digitalInformationUnits'), }); const TUI_COPY_TEXTS = new InjectionToken(ngDevMode ? 'TUI_COPY_TEXTS' : '', { factory: tuiExtractI18n('copyTexts'), }); const TUI_PASSWORD_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PASSWORD_TEXTS' : '', { factory: tuiExtractI18n('passwordTexts'), }); const TUI_CALENDAR_MONTHS = new InjectionToken(ngDevMode ? 'TUI_CALENDAR_MONTHS' : '', { factory: tuiExtractI18n('shortCalendarMonths'), }); const TUI_FILE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_FILE_TEXTS' : '', { factory: tuiExtractI18n('fileTexts'), }); const TUI_PAGINATION_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PAGINATION_TEXTS' : '', { factory: tuiExtractI18n('pagination'), }); const TUI_INPUT_FILE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_INPUT_FILE_TEXTS' : '', { factory: tuiExtractI18n('inputFileTexts'), }); const TUI_MULTI_SELECT_TEXTS = new InjectionToken(ngDevMode ? 'TUI_MULTI_SELECT_TEXTS' : '', { factory: tuiExtractI18n('multiSelectTexts'), }); const TUI_COUNTRIES = new InjectionToken(ngDevMode ? 'TUI_COUNTRIES' : '', { factory: tuiExtractI18n('countries'), }); const TUI_PREVIEW_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_TEXTS' : '', { factory: tuiExtractI18n('previewTexts'), }); const TUI_PREVIEW_ZOOM_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_ZOOM_TEXTS' : '', { factory: tuiExtractI18n('zoomTexts'), }); const TUI_INTERNATIONAL_SEARCH = new InjectionToken(ngDevMode ? 'TUI_INTERNATIONAL_SEARCH' : '', { factory: tuiExtractI18n('phoneSearch'), }); const TUI_INPUT_DATE_DEFAULT_OPTIONS = { icon: () => '@tui.calendar', min: TUI_FIRST_DAY, max: TUI_LAST_DAY, nativePicker: false, }; /** * Default parameters for InputDate component */ const [TUI_INPUT_DATE_OPTIONS, tuiInputDateOptionsProvider] = tuiCreateOptions(TUI_INPUT_DATE_DEFAULT_OPTIONS); /** * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`. * TODO(v5): delete */ const TUI_DEFAULT_ITEMS_HANDLERS = { stringify: String, identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER, disabledItemHandler: TUI_FALSE_HANDLER, }; /** * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`. * TODO(v5): delete */ const TUI_ITEMS_HANDLERS = new InjectionToken(ngDevMode ? 'TUI_ITEMS_HANDLERS' : '', { factory: () => TUI_DEFAULT_ITEMS_HANDLERS, }); /** * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`. * TODO(v5): delete */ function tuiItemsHandlersProvider(options) { return tuiProvideOptions(TUI_ITEMS_HANDLERS, options, TUI_DEFAULT_ITEMS_HANDLERS); } /** * A component for mobile data picker */ const TUI_MOBILE_CALENDAR = new InjectionToken(ngDevMode ? 'TUI_MOBILE_CALENDAR' : ''); const TUI_MOBILE_CALENDAR_PROVIDER = { provide: TUI_DROPDOWN_COMPONENT, useFactory: () => (inject(TUI_IS_MOBILE) && inject(TUI_MOBILE_CALENDAR, { optional: true })) || inject(TUI_DROPDOWN_COMPONENT, { skipSelf: true }), }; const TUI_MONTH_FORMATTER = new InjectionToken(ngDevMode ? 'TUI_MONTH_FORMATTER' : '', { factory: () => inject(TUI_MONTHS).pipe(map((months) => (date) => { if (!date) { return ''; } return `${months[date.month] ?? ''} ${date.formattedYear}`; })), }); const TUI_PREVIEW_ICONS_DEFAULT = { rotate: '@tui.rotate-ccw-square', prev: '@tui.arrow-left', next: '@tui.arrow-right', zoomIn: '@tui.plus', zoomOut: '@tui.minus', zoomReset: '@tui.minimize', }; const TUI_PREVIEW_ICONS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_ICONS' : '', { factory: () => TUI_PREVIEW_ICONS_DEFAULT, }); function tuiPreviewIconsProvider(icons) { return tuiProvideOptions(TUI_PREVIEW_ICONS, icons, TUI_PREVIEW_ICONS_DEFAULT); } const TUI_VALIDATION_ERRORS = new InjectionToken(ngDevMode ? 'TUI_VALIDATION_ERRORS' : '', { factory: () => ({}), }); const tuiValidationErrorsProvider = (useValue) => ({ provide: TUI_VALIDATION_ERRORS, useValue }); /** * Generated bundle index. Do not edit. */ export { TUI_CALENDAR_DATE_STREAM, TUI_CALENDAR_MONTHS, TUI_CANCEL_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS, TUI_CONFIRM_WORDS, TUI_COPY_TEXTS, TUI_COUNTRIES, TUI_DATE_RANGE_VALUE_TRANSFORMER, TUI_DATE_TEXTS, TUI_DATE_TIME_VALUE_TRANSFORMER, TUI_DATE_VALUE_TRANSFORMER, TUI_DEFAULT_ITEMS_HANDLERS, TUI_DIGITAL_INFORMATION_UNITS, TUI_DONE_WORD, TUI_FILE_TEXTS, TUI_FROM_TO_TEXTS, TUI_HIDE_TEXT, TUI_INPUT_DATE_DEFAULT_OPTIONS, TUI_INPUT_DATE_OPTIONS, TUI_INPUT_FILE_TEXTS, TUI_INTERNATIONAL_SEARCH, TUI_ITEMS_HANDLERS, TUI_MOBILE_CALENDAR, TUI_MOBILE_CALENDAR_PROVIDER, TUI_MONTH_FORMATTER, TUI_MORE_WORD, TUI_MULTI_SELECT_TEXTS, TUI_OTHER_DATE_TEXT, TUI_PAGINATION_TEXTS, TUI_PASSWORD_TEXTS, TUI_PLUS_MINUS_TEXTS, TUI_PREVIEW_ICONS, TUI_PREVIEW_ICONS_DEFAULT, TUI_PREVIEW_TEXTS, TUI_PREVIEW_ZOOM_TEXTS, TUI_SHOW_ALL_TEXT, TUI_TIME_TEXTS, TUI_TIME_VALUE_TRANSFORMER, TUI_VALIDATION_ERRORS, tuiDateStreamWithTransformer, tuiInputDateOptionsProvider, tuiItemsHandlersProvider, tuiPreviewIconsProvider, tuiValidationErrorsProvider }; //# sourceMappingURL=taiga-ui-kit-tokens.mjs.map