@taiga-ui/kit 4.38.0-canary.87145a2 → 4.38.0-canary.a36a982

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/components/files/input-files/input-files-validator.directive.d.ts +4 -5
  2. package/components/input-month/index.d.ts +1 -1
  3. package/components/input-month/{native-month-picker/native-month-picker.component.d.ts → input-month.component.d.ts} +4 -5
  4. package/components/input-month/input-month.d.ts +2 -2
  5. package/components/input-month/input-month.directive.d.ts +1 -1
  6. package/esm2022/components/files/input-files/input-files-validator.directive.mjs +16 -19
  7. package/esm2022/components/input-month/index.mjs +2 -2
  8. package/esm2022/components/input-month/input-month.component.mjs +53 -0
  9. package/esm2022/components/input-month/input-month.directive.mjs +3 -3
  10. package/esm2022/components/input-month/input-month.mjs +3 -3
  11. package/esm2022/components/input-number/input-number.directive.mjs +3 -7
  12. package/esm2022/directives/unfinished-validator/unfinished.validator.mjs +2 -2
  13. package/esm2022/tokens/calendar-date-stream.mjs +2 -1
  14. package/esm2022/tokens/date-inputs-value-transformers.mjs +3 -3
  15. package/fesm2022/taiga-ui-kit-components-files.mjs +16 -20
  16. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  17. package/fesm2022/taiga-ui-kit-components-input-month.mjs +16 -17
  18. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-kit-components-input-number.mjs +2 -6
  20. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +1 -1
  22. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-kit-tokens.mjs +3 -2
  24. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  25. package/package.json +13 -13
  26. package/tokens/calendar-date-stream.d.ts +1 -0
  27. package/esm2022/components/input-month/native-month-picker/native-month-picker.component.mjs +0 -55
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-unfinished-validator.mjs","sources":["../../../projects/kit/directives/unfinished-validator/unfinished.validator.ts","../../../projects/kit/directives/unfinished-validator/unfinished-validator.directive.ts","../../../projects/kit/directives/unfinished-validator/taiga-ui-kit-directives-unfinished-validator.ts"],"sourcesContent":["import type {AbstractControl, ValidatorFn} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport function tuiCreateUnfinishedValidator(\n element: HTMLInputElement,\n message: PolymorpheusContent,\n): ValidatorFn {\n return ({\n value,\n }: AbstractControl): {unfinished: TuiValidationError | string} | null =>\n value === null && element.value !== ''\n ? {unfinished: new TuiValidationError(message)}\n : null;\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport type {Validator} from '@angular/forms';\nimport {NG_VALIDATORS} from '@angular/forms';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DEFAULT_ERROR_MESSAGE} from '@taiga-ui/core/tokens';\n\nimport {tuiCreateUnfinishedValidator} from './unfinished.validator';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiUnfinishedValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)],\n})\nexport class TuiUnfinishedValidator implements Validator {\n private readonly default = toSignal(inject(TUI_DEFAULT_ERROR_MESSAGE));\n private readonly el = tuiInjectElement<HTMLInputElement>();\n\n @Input()\n public tuiUnfinishedValidator = '';\n\n public readonly validate = tuiCreateUnfinishedValidator(\n this.el,\n () => this.tuiUnfinishedValidator || this.default(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAIgB,SAAA,4BAA4B,CACxC,OAAyB,EACzB,OAA4B,EAAA;AAE5B,IAAA,OAAO,CAAC,EACJ,KAAK,GACS,KACd,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE;UAChC,EAAC,UAAU,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC;UAC7C,IAAI,CAAC;AACnB;;ACJA,MAKa,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;QAMqB,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACtD,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB,CAAC;QAGpD,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;AAEnB,QAAA,IAAA,CAAA,QAAQ,GAAG,4BAA4B,CACnD,IAAI,CAAC,EAAE,EACP,MAAM,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,OAAO,EAAE,CACtD,CAAC;AACL,KAAA;+GAXY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,UAAU,CAAC,aAAa,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAE3D,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,+BAA+B;oBACzC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAA0B,sBAAA,EAAA,IAAI,CAAC,CAAC;AACvE,iBAAA,CAAA;8BAMU,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;;;ACnBV;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-unfinished-validator.mjs","sources":["../../../projects/kit/directives/unfinished-validator/unfinished.validator.ts","../../../projects/kit/directives/unfinished-validator/unfinished-validator.directive.ts","../../../projects/kit/directives/unfinished-validator/taiga-ui-kit-directives-unfinished-validator.ts"],"sourcesContent":["import type {AbstractControl, ValidatorFn} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport function tuiCreateUnfinishedValidator(\n element: HTMLInputElement,\n message: PolymorpheusContent,\n): ValidatorFn {\n return ({\n value,\n }: AbstractControl): {tuiUnfinished: TuiValidationError | string} | null =>\n value === null && element.value !== ''\n ? {tuiUnfinished: message ? new TuiValidationError(message) : ''}\n : null;\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport type {Validator} from '@angular/forms';\nimport {NG_VALIDATORS} from '@angular/forms';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DEFAULT_ERROR_MESSAGE} from '@taiga-ui/core/tokens';\n\nimport {tuiCreateUnfinishedValidator} from './unfinished.validator';\n\n@Directive({\n standalone: true,\n selector: 'input[tuiUnfinishedValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)],\n})\nexport class TuiUnfinishedValidator implements Validator {\n private readonly default = toSignal(inject(TUI_DEFAULT_ERROR_MESSAGE));\n private readonly el = tuiInjectElement<HTMLInputElement>();\n\n @Input()\n public tuiUnfinishedValidator = '';\n\n public readonly validate = tuiCreateUnfinishedValidator(\n this.el,\n () => this.tuiUnfinishedValidator || this.default(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAIgB,SAAA,4BAA4B,CACxC,OAAyB,EACzB,OAA4B,EAAA;AAE5B,IAAA,OAAO,CAAC,EACJ,KAAK,GACS,KACd,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE;AAClC,UAAE,EAAC,aAAa,EAAE,OAAO,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAC;UAC/D,IAAI,CAAC;AACnB;;ACJA,MAKa,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;QAMqB,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACtD,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB,CAAC;QAGpD,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;AAEnB,QAAA,IAAA,CAAA,QAAQ,GAAG,4BAA4B,CACnD,IAAI,CAAC,EAAE,EACP,MAAM,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,OAAO,EAAE,CACtD,CAAC;AACL,KAAA;+GAXY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAFpB,CAAC,UAAU,CAAC,aAAa,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAE3D,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,+BAA+B;oBACzC,SAAS,EAAE,CAAC,UAAU,CAAC,aAAa,EAA0B,sBAAA,EAAA,IAAI,CAAC,CAAC;AACvE,iBAAA,CAAA;8BAMU,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;;;ACnBV;;AAEG;;;;"}
@@ -3,6 +3,7 @@ import { NgControl } from '@angular/forms';
3
3
  import { tuiControlValue } from '@taiga-ui/cdk/observables';
4
4
  import { tuiCreateToken, tuiCreateTokenFromFactory, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
  import { map, of } from 'rxjs';
6
+ import { TUI_IDENTITY_VALUE_TRANSFORMER } from '@taiga-ui/cdk/classes';
6
7
  import { tuiExtractI18n } from '@taiga-ui/i18n/utils';
7
8
  import { TUI_FIRST_DAY, TUI_LAST_DAY } from '@taiga-ui/cdk/date-time';
8
9
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
@@ -13,6 +14,7 @@ import { TUI_MONTHS } from '@taiga-ui/core/tokens';
13
14
 
14
15
  /**
15
16
  * Stream that emits calendar data change
17
+ * @deprecated this should be rewritten in v5
16
18
  */
17
19
  const TUI_CALENDAR_DATE_STREAM = tuiCreateToken();
18
20
  function tuiDateStreamWithTransformer(transformer) {
@@ -31,11 +33,10 @@ function tuiControlValueFactory(control, transformer) {
31
33
  : of(null);
32
34
  }
33
35
 
34
- // TODO: Refactor to use `TuiValueTransformer` and add ability to provide it for all controls
35
36
  /**
36
37
  * Control value transformer of TuiDay to custom value format for InputDate* components
37
38
  */
38
- const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken();
39
+ const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken(TUI_IDENTITY_VALUE_TRANSFORMER);
39
40
  /**
40
41
  * Control value transformer for InputDateRange component
41
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-tokens.mjs","sources":["../../../projects/kit/tokens/calendar-date-stream.ts","../../../projects/kit/tokens/date-inputs-value-transformers.ts","../../../projects/kit/tokens/i18n.ts","../../../projects/kit/tokens/input-date-options.ts","../../../projects/kit/tokens/items-handlers.ts","../../../projects/kit/tokens/mobile-calendar.ts","../../../projects/kit/tokens/month-formatter.ts","../../../projects/kit/tokens/preview-icons.ts","../../../projects/kit/tokens/validation-errors.ts","../../../projects/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import type {InjectionToken, Provider} from '@angular/core';\nimport {Optional, Self} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport type {TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {map, of} from 'rxjs';\n\n/**\n * Stream that emits calendar data change\n */\nexport const TUI_CALENDAR_DATE_STREAM =\n tuiCreateToken<Observable<TuiDay | TuiDayRange | null>>();\n\nexport function tuiDateStreamWithTransformer(\n transformer: InjectionToken<TuiValueTransformer<any>>,\n): Provider {\n return {\n provide: TUI_CALENDAR_DATE_STREAM,\n deps: [\n [new Optional(), new Self(), NgControl],\n [new Optional(), transformer],\n ],\n useFactory: tuiControlValueFactory,\n };\n}\n\nfunction tuiControlValueFactory<\n T extends TuiDay | TuiDayRange | [TuiDay, TuiTime | null],\n>(\n control: NgControl | null,\n transformer?: TuiValueTransformer<T> | null,\n): Observable<T | null> | null {\n return control\n ? tuiControlValue(control).pipe(\n map((value) =>\n transformer ? transformer?.fromControlValue(value) : (value as T),\n ),\n )\n : of(null);\n}\n","import type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport type {TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\n// TODO: Refactor to use `TuiValueTransformer` and add ability to provide it for all controls\n\n/**\n * Control value transformer of TuiDay to custom value format for InputDate* components\n */\nexport const TUI_DATE_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiDay | null>>();\n\n/**\n * Control value transformer for InputDateRange component\n */\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiDayRange | null>>();\n\n/**\n * Control value transformer for InputDateTime component\n */\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<[TuiDay, TuiTime | null]>>();\n\n/**\n * Control value transformer for InputTime component\n */\nexport const TUI_TIME_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiTime | null>>();\n","import type {TuiDateMode} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiCountryIsoCode} from '@taiga-ui/i18n/types';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\nimport type {Observable} from 'rxjs';\n\nexport const TUI_CONFIRM_WORDS = tuiCreateTokenFromFactory(tuiExtractI18n('confirm'));\n\nexport const TUI_CANCEL_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('cancel'));\n\nexport const TUI_DONE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('done'));\n\nexport const TUI_MORE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('more'));\n\nexport const TUI_HIDE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('hide'));\n\nexport const TUI_SHOW_ALL_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('showAll'));\n\nexport const TUI_OTHER_DATE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('otherDate'));\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('mobileCalendarTexts'),\n);\n\nexport const TUI_FROM_TO_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('range'));\n\nexport const TUI_PLUS_MINUS_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('countTexts'),\n);\n\nexport const TUI_TIME_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('time'));\n\nexport const TUI_DATE_TEXTS = tuiCreateTokenFromFactory<\n Observable<Record<TuiDateMode, string>>\n>(tuiExtractI18n('dateTexts'));\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = tuiCreateTokenFromFactory(\n tuiExtractI18n('digitalInformationUnits'),\n);\n\nexport const TUI_COPY_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('copyTexts'));\n\nexport const TUI_PASSWORD_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('passwordTexts'),\n);\n\nexport const TUI_CALENDAR_MONTHS = tuiCreateTokenFromFactory(\n tuiExtractI18n('shortCalendarMonths'),\n);\n\nexport const TUI_FILE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('fileTexts'));\n\nexport const TUI_PAGINATION_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('pagination'),\n);\n\nexport const TUI_INPUT_FILE_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('inputFileTexts'),\n);\n\nexport const TUI_MULTI_SELECT_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('multiSelectTexts'),\n);\n\nexport const TUI_COUNTRIES = tuiCreateTokenFromFactory<\n Observable<Record<TuiCountryIsoCode, string>>\n>(tuiExtractI18n('countries'));\n\nexport const TUI_PREVIEW_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('previewTexts'),\n);\n\nexport const TUI_PREVIEW_ZOOM_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('zoomTexts'),\n);\n\nexport const TUI_INTERNATIONAL_SEARCH = tuiCreateTokenFromFactory(\n tuiExtractI18n('phoneSearch'),\n);\n","import type {TuiDay} from '@taiga-ui/cdk/date-time';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY} from '@taiga-ui/cdk/date-time';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport interface TuiInputDateOptions {\n readonly icon: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>>;\n readonly max: TuiDay;\n readonly min: TuiDay;\n readonly nativePicker: boolean;\n}\n\nexport const TUI_INPUT_DATE_DEFAULT_OPTIONS: TuiInputDateOptions = {\n icon: () => '@tui.calendar',\n min: TUI_FIRST_DAY,\n max: TUI_LAST_DAY,\n nativePicker: false,\n};\n\n/**\n * Default parameters for InputDate component\n */\nexport const [TUI_INPUT_DATE_OPTIONS, tuiInputDateOptionsProvider] = tuiCreateOptions(\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n);\n","import type {Provider} from '@angular/core';\nimport {TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport type {\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport interface TuiItemsHandlers<T> {\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly stringify: TuiStringHandler<T>;\n}\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: String,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: TUI_FALSE_HANDLER,\n};\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport const TUI_ITEMS_HANDLERS = tuiCreateToken(TUI_DEFAULT_ITEMS_HANDLERS);\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport function tuiItemsHandlersProvider<T>(\n options: Partial<TuiItemsHandlers<T>>,\n): Provider {\n return tuiProvideOptions(TUI_ITEMS_HANDLERS, options, TUI_DEFAULT_ITEMS_HANDLERS);\n}\n","import type {FactoryProvider, Type} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DROPDOWN_COMPONENT} from '@taiga-ui/core/directives/dropdown';\n\n/**\n * A component for mobile data picker\n */\nexport const TUI_MOBILE_CALENDAR = tuiCreateToken<Type<unknown>>();\n\nexport const TUI_MOBILE_CALENDAR_PROVIDER: FactoryProvider = {\n provide: TUI_DROPDOWN_COMPONENT,\n useFactory: () =>\n (inject(TUI_IS_MOBILE) && inject(TUI_MOBILE_CALENDAR, {optional: true})) ||\n inject(TUI_DROPDOWN_COMPONENT, {skipSelf: true}),\n};\n","import {inject} from '@angular/core';\nimport type {TuiMonth} from '@taiga-ui/cdk/date-time';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_MONTHS} from '@taiga-ui/core/tokens';\nimport type {Observable} from 'rxjs';\nimport {map} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = tuiCreateTokenFromFactory<\n Observable<TuiHandler<TuiMonth | null, string>>\n>(() =>\n inject(TUI_MONTHS).pipe(\n map((months) => (date) => {\n if (!date) {\n return '';\n }\n\n return `${months[date.month] ?? ''} ${date.formattedYear}`;\n }),\n ),\n);\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiPreviewIcons {\n readonly next: string;\n readonly prev: string;\n readonly rotate: string;\n readonly zoomIn: string;\n readonly zoomOut: string;\n readonly zoomReset: string;\n}\n\nexport const TUI_PREVIEW_ICONS_DEFAULT: TuiPreviewIcons = {\n rotate: '@tui.rotate-ccw-square',\n prev: '@tui.arrow-left',\n next: '@tui.arrow-right',\n zoomIn: '@tui.plus',\n zoomOut: '@tui.minus',\n zoomReset: '@tui.minimize',\n};\n\nexport const TUI_PREVIEW_ICONS = tuiCreateToken(TUI_PREVIEW_ICONS_DEFAULT);\n\nexport function tuiPreviewIconsProvider(icons: Partial<TuiPreviewIcons>): Provider {\n return tuiProvideOptions(TUI_PREVIEW_ICONS, icons, TUI_PREVIEW_ICONS_DEFAULT);\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport type {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = tuiCreateToken<\n Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>\n>({});\n\nexport const tuiValidationErrorsProvider = (\n useValue: Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>,\n): Provider => ({provide: TUI_VALIDATION_ERRORS, useValue});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-tokens.mjs","sources":["../../../projects/kit/tokens/calendar-date-stream.ts","../../../projects/kit/tokens/date-inputs-value-transformers.ts","../../../projects/kit/tokens/i18n.ts","../../../projects/kit/tokens/input-date-options.ts","../../../projects/kit/tokens/items-handlers.ts","../../../projects/kit/tokens/mobile-calendar.ts","../../../projects/kit/tokens/month-formatter.ts","../../../projects/kit/tokens/preview-icons.ts","../../../projects/kit/tokens/validation-errors.ts","../../../projects/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import type {InjectionToken, Provider} from '@angular/core';\nimport {Optional, Self} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport type {TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {map, of} from 'rxjs';\n\n/**\n * Stream that emits calendar data change\n * @deprecated this should be rewritten in v5\n */\nexport const TUI_CALENDAR_DATE_STREAM =\n tuiCreateToken<Observable<TuiDay | TuiDayRange | null>>();\n\nexport function tuiDateStreamWithTransformer(\n transformer: InjectionToken<TuiValueTransformer<any>>,\n): Provider {\n return {\n provide: TUI_CALENDAR_DATE_STREAM,\n deps: [\n [new Optional(), new Self(), NgControl],\n [new Optional(), transformer],\n ],\n useFactory: tuiControlValueFactory,\n };\n}\n\nfunction tuiControlValueFactory<\n T extends TuiDay | TuiDayRange | [TuiDay, TuiTime | null],\n>(\n control: NgControl | null,\n transformer?: TuiValueTransformer<T> | null,\n): Observable<T | null> | null {\n return control\n ? tuiControlValue(control).pipe(\n map((value) =>\n transformer ? transformer?.fromControlValue(value) : (value as T),\n ),\n )\n : of(null);\n}\n","import type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {TUI_IDENTITY_VALUE_TRANSFORMER} from '@taiga-ui/cdk/classes';\nimport type {TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * Control value transformer of TuiDay to custom value format for InputDate* components\n */\nexport const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken<\n TuiValueTransformer<TuiDay | null>\n>(TUI_IDENTITY_VALUE_TRANSFORMER);\n\n/**\n * Control value transformer for InputDateRange component\n */\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiDayRange | null>>();\n\n/**\n * Control value transformer for InputDateTime component\n */\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<[TuiDay, TuiTime | null]>>();\n\n/**\n * Control value transformer for InputTime component\n */\nexport const TUI_TIME_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiTime | null>>();\n","import type {TuiDateMode} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiCountryIsoCode} from '@taiga-ui/i18n/types';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\nimport type {Observable} from 'rxjs';\n\nexport const TUI_CONFIRM_WORDS = tuiCreateTokenFromFactory(tuiExtractI18n('confirm'));\n\nexport const TUI_CANCEL_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('cancel'));\n\nexport const TUI_DONE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('done'));\n\nexport const TUI_MORE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('more'));\n\nexport const TUI_HIDE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('hide'));\n\nexport const TUI_SHOW_ALL_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('showAll'));\n\nexport const TUI_OTHER_DATE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('otherDate'));\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('mobileCalendarTexts'),\n);\n\nexport const TUI_FROM_TO_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('range'));\n\nexport const TUI_PLUS_MINUS_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('countTexts'),\n);\n\nexport const TUI_TIME_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('time'));\n\nexport const TUI_DATE_TEXTS = tuiCreateTokenFromFactory<\n Observable<Record<TuiDateMode, string>>\n>(tuiExtractI18n('dateTexts'));\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = tuiCreateTokenFromFactory(\n tuiExtractI18n('digitalInformationUnits'),\n);\n\nexport const TUI_COPY_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('copyTexts'));\n\nexport const TUI_PASSWORD_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('passwordTexts'),\n);\n\nexport const TUI_CALENDAR_MONTHS = tuiCreateTokenFromFactory(\n tuiExtractI18n('shortCalendarMonths'),\n);\n\nexport const TUI_FILE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('fileTexts'));\n\nexport const TUI_PAGINATION_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('pagination'),\n);\n\nexport const TUI_INPUT_FILE_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('inputFileTexts'),\n);\n\nexport const TUI_MULTI_SELECT_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('multiSelectTexts'),\n);\n\nexport const TUI_COUNTRIES = tuiCreateTokenFromFactory<\n Observable<Record<TuiCountryIsoCode, string>>\n>(tuiExtractI18n('countries'));\n\nexport const TUI_PREVIEW_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('previewTexts'),\n);\n\nexport const TUI_PREVIEW_ZOOM_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('zoomTexts'),\n);\n\nexport const TUI_INTERNATIONAL_SEARCH = tuiCreateTokenFromFactory(\n tuiExtractI18n('phoneSearch'),\n);\n","import type {TuiDay} from '@taiga-ui/cdk/date-time';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY} from '@taiga-ui/cdk/date-time';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport interface TuiInputDateOptions {\n readonly icon: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>>;\n readonly max: TuiDay;\n readonly min: TuiDay;\n readonly nativePicker: boolean;\n}\n\nexport const TUI_INPUT_DATE_DEFAULT_OPTIONS: TuiInputDateOptions = {\n icon: () => '@tui.calendar',\n min: TUI_FIRST_DAY,\n max: TUI_LAST_DAY,\n nativePicker: false,\n};\n\n/**\n * Default parameters for InputDate component\n */\nexport const [TUI_INPUT_DATE_OPTIONS, tuiInputDateOptionsProvider] = tuiCreateOptions(\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n);\n","import type {Provider} from '@angular/core';\nimport {TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport type {\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport interface TuiItemsHandlers<T> {\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly stringify: TuiStringHandler<T>;\n}\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: String,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: TUI_FALSE_HANDLER,\n};\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport const TUI_ITEMS_HANDLERS = tuiCreateToken(TUI_DEFAULT_ITEMS_HANDLERS);\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport function tuiItemsHandlersProvider<T>(\n options: Partial<TuiItemsHandlers<T>>,\n): Provider {\n return tuiProvideOptions(TUI_ITEMS_HANDLERS, options, TUI_DEFAULT_ITEMS_HANDLERS);\n}\n","import type {FactoryProvider, Type} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DROPDOWN_COMPONENT} from '@taiga-ui/core/directives/dropdown';\n\n/**\n * A component for mobile data picker\n */\nexport const TUI_MOBILE_CALENDAR = tuiCreateToken<Type<unknown>>();\n\nexport const TUI_MOBILE_CALENDAR_PROVIDER: FactoryProvider = {\n provide: TUI_DROPDOWN_COMPONENT,\n useFactory: () =>\n (inject(TUI_IS_MOBILE) && inject(TUI_MOBILE_CALENDAR, {optional: true})) ||\n inject(TUI_DROPDOWN_COMPONENT, {skipSelf: true}),\n};\n","import {inject} from '@angular/core';\nimport type {TuiMonth} from '@taiga-ui/cdk/date-time';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_MONTHS} from '@taiga-ui/core/tokens';\nimport type {Observable} from 'rxjs';\nimport {map} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = tuiCreateTokenFromFactory<\n Observable<TuiHandler<TuiMonth | null, string>>\n>(() =>\n inject(TUI_MONTHS).pipe(\n map((months) => (date) => {\n if (!date) {\n return '';\n }\n\n return `${months[date.month] ?? ''} ${date.formattedYear}`;\n }),\n ),\n);\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiPreviewIcons {\n readonly next: string;\n readonly prev: string;\n readonly rotate: string;\n readonly zoomIn: string;\n readonly zoomOut: string;\n readonly zoomReset: string;\n}\n\nexport const TUI_PREVIEW_ICONS_DEFAULT: TuiPreviewIcons = {\n rotate: '@tui.rotate-ccw-square',\n prev: '@tui.arrow-left',\n next: '@tui.arrow-right',\n zoomIn: '@tui.plus',\n zoomOut: '@tui.minus',\n zoomReset: '@tui.minimize',\n};\n\nexport const TUI_PREVIEW_ICONS = tuiCreateToken(TUI_PREVIEW_ICONS_DEFAULT);\n\nexport function tuiPreviewIconsProvider(icons: Partial<TuiPreviewIcons>): Provider {\n return tuiProvideOptions(TUI_PREVIEW_ICONS, icons, TUI_PREVIEW_ICONS_DEFAULT);\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport type {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = tuiCreateToken<\n Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>\n>({});\n\nexport const tuiValidationErrorsProvider = (\n useValue: Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>,\n): Provider => ({provide: TUI_VALIDATION_ERRORS, useValue});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/kit",
3
- "version": "4.38.0-canary.87145a2",
3
+ "version": "4.38.0-canary.a36a982",
4
4
  "description": "Taiga UI Angular main components kit",
5
5
  "keywords": [
6
6
  "angular",
@@ -89,12 +89,6 @@
89
89
  "esm": "./esm2022/components/badged-content/taiga-ui-kit-components-badged-content.mjs",
90
90
  "default": "./fesm2022/taiga-ui-kit-components-badged-content.mjs"
91
91
  },
92
- "./components/block": {
93
- "types": "./components/block/index.d.ts",
94
- "esm2022": "./esm2022/components/block/taiga-ui-kit-components-block.mjs",
95
- "esm": "./esm2022/components/block/taiga-ui-kit-components-block.mjs",
96
- "default": "./fesm2022/taiga-ui-kit-components-block.mjs"
97
- },
98
92
  "./components/breadcrumbs": {
99
93
  "types": "./components/breadcrumbs/index.d.ts",
100
94
  "esm2022": "./esm2022/components/breadcrumbs/taiga-ui-kit-components-breadcrumbs.mjs",
@@ -113,6 +107,12 @@
113
107
  "esm": "./esm2022/components/calendar-month/taiga-ui-kit-components-calendar-month.mjs",
114
108
  "default": "./fesm2022/taiga-ui-kit-components-calendar-month.mjs"
115
109
  },
110
+ "./components/block": {
111
+ "types": "./components/block/index.d.ts",
112
+ "esm2022": "./esm2022/components/block/taiga-ui-kit-components-block.mjs",
113
+ "esm": "./esm2022/components/block/taiga-ui-kit-components-block.mjs",
114
+ "default": "./fesm2022/taiga-ui-kit-components-block.mjs"
115
+ },
116
116
  "./components/calendar-range": {
117
117
  "types": "./components/calendar-range/index.d.ts",
118
118
  "esm2022": "./esm2022/components/calendar-range/taiga-ui-kit-components-calendar-range.mjs",
@@ -155,18 +155,18 @@
155
155
  "esm": "./esm2022/components/confirm/taiga-ui-kit-components-confirm.mjs",
156
156
  "default": "./fesm2022/taiga-ui-kit-components-confirm.mjs"
157
157
  },
158
- "./components/drawer": {
159
- "types": "./components/drawer/index.d.ts",
160
- "esm2022": "./esm2022/components/drawer/taiga-ui-kit-components-drawer.mjs",
161
- "esm": "./esm2022/components/drawer/taiga-ui-kit-components-drawer.mjs",
162
- "default": "./fesm2022/taiga-ui-kit-components-drawer.mjs"
163
- },
164
158
  "./components/data-list-wrapper": {
165
159
  "types": "./components/data-list-wrapper/index.d.ts",
166
160
  "esm2022": "./esm2022/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.mjs",
167
161
  "esm": "./esm2022/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.mjs",
168
162
  "default": "./fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs"
169
163
  },
164
+ "./components/drawer": {
165
+ "types": "./components/drawer/index.d.ts",
166
+ "esm2022": "./esm2022/components/drawer/taiga-ui-kit-components-drawer.mjs",
167
+ "esm": "./esm2022/components/drawer/taiga-ui-kit-components-drawer.mjs",
168
+ "default": "./fesm2022/taiga-ui-kit-components-drawer.mjs"
169
+ },
170
170
  "./components/elastic-container": {
171
171
  "types": "./components/elastic-container/index.d.ts",
172
172
  "esm2022": "./esm2022/components/elastic-container/taiga-ui-kit-components-elastic-container.mjs",
@@ -4,6 +4,7 @@ import type { TuiDay, TuiDayRange } from '@taiga-ui/cdk/date-time';
4
4
  import type { Observable } from 'rxjs';
5
5
  /**
6
6
  * Stream that emits calendar data change
7
+ * @deprecated this should be rewritten in v5
7
8
  */
8
9
  export declare const TUI_CALENDAR_DATE_STREAM: InjectionToken<Observable<TuiDay | TuiDayRange | null>>;
9
10
  export declare function tuiDateStreamWithTransformer(transformer: InjectionToken<TuiValueTransformer<any>>): Provider;
@@ -1,55 +0,0 @@
1
- import { NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, effect, inject, Input, signal, ViewEncapsulation, } from '@angular/core';
3
- import { TuiControl } from '@taiga-ui/cdk/classes';
4
- import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
5
- import { TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth } from '@taiga-ui/cdk/date-time';
6
- import { TuiTextfieldContent } from '@taiga-ui/core/components/textfield';
7
- import { TuiInputMonthDirective } from '../input-month.directive';
8
- import * as i0 from "@angular/core";
9
- class TuiNativeMonthPicker {
10
- constructor() {
11
- this.control = inject(TuiControl);
12
- this.host = inject(TuiInputMonthDirective);
13
- this.min = signal(null);
14
- this.max = signal(null);
15
- this.calendarSync = effect(() => {
16
- const calendar = this.host.calendar();
17
- if (calendar) {
18
- calendar.min.set(this.min() ?? TUI_FIRST_DAY); // TODO(v5): remove TUI_FIRST_DAY fallback
19
- calendar.max.set(this.max() ?? TUI_LAST_DAY); // TODO(v5): remove TUI_LAST_DAY fallback
20
- }
21
- }, TUI_ALLOW_SIGNAL_WRITES);
22
- }
23
- // TODO(v5): use signal inputs
24
- set minSetter(x) {
25
- this.min.set(x);
26
- }
27
- // TODO(v5): use signal inputs
28
- set maxSetter(x) {
29
- this.max.set(x);
30
- }
31
- onInput(value) {
32
- if (!value) {
33
- return this.control.onChange(null);
34
- }
35
- const [year = 0, month = 0] = value.split('-').map(Number);
36
- this.control.onChange(new TuiMonth(year, month - 1));
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNativeMonthPicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiNativeMonthPicker, isStandalone: true, selector: "input[tuiInputMonth][type=\"month\"]", inputs: { minSetter: ["min", "minSetter"], maxSetter: ["max", "maxSetter"] }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "type": "\"text\"" } }, ngImport: i0, template: "<ng-container *ngIf=\"host.nativePickerEnabled\">\n <input\n *tuiTextfieldContent\n type=\"month\"\n [max]=\"max()?.toJSON()\"\n [min]=\"min()?.toJSON()\"\n [value]=\"host.value()?.toJSON()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (mousedown.stop.zoneless)=\"(0)\"\n />\n</ng-container>\n", styles: ["tui-textfield input[tuiInputMonth]+.t-content input[type=month]{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;border:0}tui-textfield input[tuiInputMonth]+.t-content input[type=month]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}tui-textfield:has(input[type=month]):after{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
- }
41
- export { TuiNativeMonthPicker };
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNativeMonthPicker, decorators: [{
43
- type: Component,
44
- args: [{ standalone: true, selector: 'input[tuiInputMonth][type="month"]', imports: [NgIf, TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
45
- ngSkipHydration: 'true',
46
- '[type]': '"text"',
47
- }, template: "<ng-container *ngIf=\"host.nativePickerEnabled\">\n <input\n *tuiTextfieldContent\n type=\"month\"\n [max]=\"max()?.toJSON()\"\n [min]=\"min()?.toJSON()\"\n [value]=\"host.value()?.toJSON()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (mousedown.stop.zoneless)=\"(0)\"\n />\n</ng-container>\n", styles: ["tui-textfield input[tuiInputMonth]+.t-content input[type=month]{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;border:0}tui-textfield input[tuiInputMonth]+.t-content input[type=month]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}tui-textfield:has(input[type=month]):after{pointer-events:none}\n"] }]
48
- }], propDecorators: { minSetter: [{
49
- type: Input,
50
- args: ['min']
51
- }], maxSetter: [{
52
- type: Input,
53
- args: ['max']
54
- }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLW1vbnRoLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1tb250aC9uYXRpdmUtbW9udGgtcGlja2VyL25hdGl2ZS1tb250aC1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtbW9udGgvbmF0aXZlLW1vbnRoLXBpY2tlci9uYXRpdmUtbW9udGgtcGlja2VyLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzlFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUVoRSxNQWFhLG9CQUFvQjtJQWJqQztRQWNxQixZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTNCLFNBQUksR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN0QyxRQUFHLEdBQUcsTUFBTSxDQUFrQixJQUFJLENBQUMsQ0FBQztRQUNwQyxRQUFHLEdBQUcsTUFBTSxDQUFrQixJQUFJLENBQUMsQ0FBQztRQUNwQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUV0QyxJQUFJLFFBQVEsRUFBRTtnQkFDVixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQywwQ0FBMEM7Z0JBQ3pGLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLHlDQUF5QzthQUMxRjtRQUNMLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0tBdUIvQjtJQXJCRyw4QkFBOEI7SUFDOUIsSUFDVyxTQUFTLENBQUMsQ0FBa0I7UUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixJQUNXLFNBQVMsQ0FBQyxDQUFrQjtRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRVMsT0FBTyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7UUFFRCxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7K0dBbkNRLG9CQUFvQjttR0FBcEIsb0JBQW9CLHVRQzlCakMsNFlBWUEsaWJEUWMsSUFBSSw2RkFBRSxtQkFBbUI7O1NBVTFCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQWJoQyxTQUFTO2lDQUNNLElBQUksWUFDTixvQ0FBb0MsV0FDckMsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsaUJBR3JCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsZUFBZSxFQUFFLE1BQU07d0JBQ3ZCLFFBQVEsRUFBRSxRQUFRO3FCQUNyQjs4QkFtQlUsU0FBUztzQkFEbkIsS0FBSzt1QkFBQyxLQUFLO2dCQU9ELFNBQVM7c0JBRG5CLEtBQUs7dUJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VFVJX0FMTE9XX1NJR05BTF9XUklURVN9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0ZJUlNUX0RBWSwgVFVJX0xBU1RfREFZLCBUdWlNb250aH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5cbmltcG9ydCB7VHVpSW5wdXRNb250aERpcmVjdGl2ZX0gZnJvbSAnLi4vaW5wdXQtbW9udGguZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aUlucHV0TW9udGhdW3R5cGU9XCJtb250aFwiXScsXG4gICAgaW1wb3J0czogW05nSWYsIFR1aVRleHRmaWVsZENvbnRlbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXRpdmUtbW9udGgtcGlja2VyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25hdGl2ZS1tb250aC1waWNrZXIuc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyxcbiAgICAgICAgJ1t0eXBlXSc6ICdcInRleHRcIicsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTmF0aXZlTW9udGhQaWNrZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbCA9IGluamVjdChUdWlDb250cm9sKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBob3N0ID0gaW5qZWN0KFR1aUlucHV0TW9udGhEaXJlY3RpdmUpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtaW4gPSBzaWduYWw8VHVpTW9udGggfCBudWxsPihudWxsKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWF4ID0gc2lnbmFsPFR1aU1vbnRoIHwgbnVsbD4obnVsbCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyU3luYyA9IGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyID0gdGhpcy5ob3N0LmNhbGVuZGFyKCk7XG5cbiAgICAgICAgaWYgKGNhbGVuZGFyKSB7XG4gICAgICAgICAgICBjYWxlbmRhci5taW4uc2V0KHRoaXMubWluKCkgPz8gVFVJX0ZJUlNUX0RBWSk7IC8vIFRPRE8odjUpOiByZW1vdmUgVFVJX0ZJUlNUX0RBWSBmYWxsYmFja1xuICAgICAgICAgICAgY2FsZW5kYXIubWF4LnNldCh0aGlzLm1heCgpID8/IFRVSV9MQVNUX0RBWSk7IC8vIFRPRE8odjUpOiByZW1vdmUgVFVJX0xBU1RfREFZIGZhbGxiYWNrXG4gICAgICAgIH1cbiAgICB9LCBUVUlfQUxMT1dfU0lHTkFMX1dSSVRFUyk7XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ21pbicpXG4gICAgcHVibGljIHNldCBtaW5TZXR0ZXIoeDogVHVpTW9udGggfCBudWxsKSB7XG4gICAgICAgIHRoaXMubWluLnNldCh4KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ21heCcpXG4gICAgcHVibGljIHNldCBtYXhTZXR0ZXIoeDogVHVpTW9udGggfCBudWxsKSB7XG4gICAgICAgIHRoaXMubWF4LnNldCh4KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2wub25DaGFuZ2UobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbeWVhciA9IDAsIG1vbnRoID0gMF0gPSB2YWx1ZS5zcGxpdCgnLScpLm1hcChOdW1iZXIpO1xuXG4gICAgICAgIHRoaXMuY29udHJvbC5vbkNoYW5nZShuZXcgVHVpTW9udGgoeWVhciwgbW9udGggLSAxKSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImhvc3QubmF0aXZlUGlja2VyRW5hYmxlZFwiPlxuICAgIDxpbnB1dFxuICAgICAgICAqdHVpVGV4dGZpZWxkQ29udGVudFxuICAgICAgICB0eXBlPVwibW9udGhcIlxuICAgICAgICBbbWF4XT1cIm1heCgpPy50b0pTT04oKVwiXG4gICAgICAgIFttaW5dPVwibWluKCk/LnRvSlNPTigpXCJcbiAgICAgICAgW3ZhbHVlXT1cImhvc3QudmFsdWUoKT8udG9KU09OKClcIlxuICAgICAgICAoY2xpY2suc3RvcC56b25lbGVzcyk9XCIoMClcIlxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiXG4gICAgICAgIChtb3VzZWRvd24uc3RvcC56b25lbGVzcyk9XCIoMClcIlxuICAgIC8+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==