@taiga-ui/kit
Version:
Taiga UI Angular main components kit
208 lines (196 loc) • 9.15 kB
JavaScript
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