@taiga-ui/kit 4.38.0 → 4.39.0-canary.ad6c629
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.
- package/components/action-bar/action-bar.component.d.ts +2 -2
- package/components/badge-notification/badge-notification.component.d.ts +2 -2
- package/components/carousel/carousel.directive.d.ts +1 -0
- package/components/combo-box/combo-box.directive.d.ts +27 -0
- package/components/combo-box/index.d.ts +1 -0
- package/components/drawer/drawer.component.d.ts +3 -6
- package/components/files/input-files/input-files-validator.directive.d.ts +4 -5
- package/components/index.d.ts +2 -0
- package/components/input-date/index.d.ts +5 -0
- package/components/input-date/input-date.component.d.ts +9 -0
- package/components/input-date/input-date.d.ts +5 -0
- package/components/input-date/input-date.directive.d.ts +34 -0
- package/components/input-date/input-date.options.d.ts +17 -0
- package/components/input-date/input-date.validator.d.ts +10 -0
- package/components/input-month/index.d.ts +1 -1
- package/components/input-month/{native-month-picker/native-month-picker.component.d.ts → input-month.component.d.ts} +4 -5
- package/components/input-month/input-month.d.ts +2 -2
- package/components/input-month/input-month.directive.d.ts +3 -3
- package/components/input-month/input-month.options.d.ts +7 -13
- package/components/input-month-range/index.d.ts +1 -0
- package/components/input-month-range/input-month-range.options.d.ts +11 -0
- package/components/line-clamp/line-clamp-box.component.d.ts +2 -1
- package/components/pdf-viewer/pdf-viewer.component.d.ts +2 -2
- package/components/preview/preview-dialog/preview-dialog.component.d.ts +2 -8
- package/components/pulse/pulse.component.d.ts +2 -2
- package/components/push/push-alert.component.d.ts +2 -2
- package/components/select/select.directive.d.ts +1 -1
- package/directives/unfinished-validator/unfinished-validator.directive.d.ts +3 -1
- package/esm2022/components/action-bar/action-bar.component.mjs +8 -12
- package/esm2022/components/badge-notification/badge-notification.component.mjs +6 -9
- package/esm2022/components/calendar-month/calendar-month.component.mjs +2 -2
- package/esm2022/components/carousel/carousel.directive.mjs +5 -4
- package/esm2022/components/combo-box/combo-box.directive.mjs +113 -0
- package/esm2022/components/combo-box/index.mjs +2 -0
- package/esm2022/components/combo-box/taiga-ui-kit-components-combo-box.mjs +5 -0
- package/esm2022/components/drawer/drawer.component.mjs +13 -16
- package/esm2022/components/files/input-files/input-files-validator.directive.mjs +16 -19
- package/esm2022/components/index.mjs +3 -1
- package/esm2022/components/input-date/index.mjs +6 -0
- package/esm2022/components/input-date/input-date.component.mjs +33 -0
- package/esm2022/components/input-date/input-date.directive.mjs +137 -0
- package/esm2022/components/input-date/input-date.mjs +11 -0
- package/esm2022/components/input-date/input-date.options.mjs +11 -0
- package/esm2022/components/input-date/input-date.validator.mjs +31 -0
- package/esm2022/components/input-date/taiga-ui-kit-components-input-date.mjs +5 -0
- package/esm2022/components/input-month/index.mjs +2 -2
- package/esm2022/components/input-month/input-month.component.mjs +53 -0
- package/esm2022/components/input-month/input-month.directive.mjs +17 -10
- package/esm2022/components/input-month/input-month.mjs +3 -3
- package/esm2022/components/input-month/input-month.options.mjs +12 -12
- package/esm2022/components/input-month-range/index.mjs +2 -1
- package/esm2022/components/input-month-range/input-month-range.directive.mjs +13 -6
- package/esm2022/components/input-month-range/input-month-range.options.mjs +11 -0
- package/esm2022/components/input-number/input-number.directive.mjs +3 -7
- package/esm2022/components/line-clamp/line-clamp-box.component.mjs +7 -6
- package/esm2022/components/pdf-viewer/pdf-viewer.component.mjs +8 -11
- package/esm2022/components/preview/preview-dialog/preview-dialog.component.mjs +10 -20
- package/esm2022/components/preview/preview.component.mjs +3 -4
- package/esm2022/components/pulse/pulse.component.mjs +6 -10
- package/esm2022/components/push/push-alert.component.mjs +8 -21
- package/esm2022/components/push/push.component.mjs +2 -2
- package/esm2022/components/select/select.directive.mjs +3 -2
- package/esm2022/components/slider/slider.component.mjs +2 -2
- package/esm2022/directives/chevron/chevron.directive.mjs +2 -2
- package/esm2022/directives/unfinished-validator/unfinished-validator.directive.mjs +10 -4
- package/esm2022/directives/unfinished-validator/unfinished.validator.mjs +2 -2
- package/esm2022/pipes/filter-by-input/filter-by-input.pipe.mjs +7 -2
- package/esm2022/tokens/calendar-date-stream.mjs +2 -1
- package/esm2022/tokens/date-inputs-value-transformers.mjs +3 -3
- package/fesm2022/taiga-ui-kit-components-action-bar.mjs +7 -11
- package/fesm2022/taiga-ui-kit-components-action-bar.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +5 -8
- package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-carousel.mjs +4 -3
- package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs +119 -0
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-components-drawer.mjs +12 -15
- package/fesm2022/taiga-ui-kit-components-drawer.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-files.mjs +16 -20
- package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date.mjs +208 -0
- package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +21 -6
- package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-month.mjs +44 -41
- package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-number.mjs +2 -6
- package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +8 -7
- package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +7 -10
- package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-preview-preview-dialog.mjs +9 -19
- package/fesm2022/taiga-ui-kit-components-preview-preview-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-preview.mjs +10 -20
- package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-pulse.mjs +5 -9
- package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-push.mjs +8 -20
- package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-select.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-slider.mjs +1 -1
- package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components.mjs +2 -0
- package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs +2 -2
- package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +10 -4
- package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +6 -1
- package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-tokens.mjs +3 -2
- package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
- package/package.json +22 -10
- package/pipes/filter-by-input/filter-by-input.pipe.d.ts +1 -0
- package/tokens/calendar-date-stream.d.ts +1 -0
- package/tokens/i18n.d.ts +1 -0
- package/esm2022/components/input-month/native-month-picker/native-month-picker.component.mjs +0 -55
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
import { TuiValidationError } from '@taiga-ui/cdk/classes';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, Directive, Input } from '@angular/core';
|
|
3
|
+
import { inject, signal, Directive, Input } from '@angular/core';
|
|
4
4
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { NG_VALIDATORS } from '@angular/forms';
|
|
6
6
|
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
7
7
|
import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
8
8
|
import { TUI_DEFAULT_ERROR_MESSAGE } from '@taiga-ui/core/tokens';
|
|
9
|
+
import { TUI_VALIDATION_ERRORS } from '@taiga-ui/kit/tokens';
|
|
10
|
+
import { isObservable } from 'rxjs';
|
|
9
11
|
|
|
10
12
|
function tuiCreateUnfinishedValidator(element, message) {
|
|
11
13
|
return ({ value, }) => value === null && element.value !== ''
|
|
12
|
-
? {
|
|
14
|
+
? { tuiUnfinished: new TuiValidationError(message) }
|
|
13
15
|
: null;
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
class TuiUnfinishedValidator {
|
|
17
19
|
constructor() {
|
|
18
20
|
this.default = toSignal(inject(TUI_DEFAULT_ERROR_MESSAGE));
|
|
19
|
-
this.
|
|
21
|
+
this.error = inject(TUI_VALIDATION_ERRORS)['tuiUnfinished'];
|
|
22
|
+
this.fallback = this.error ? signal(this.error) : this.default;
|
|
23
|
+
this.message = isObservable(this.error)
|
|
24
|
+
? toSignal(this.error)
|
|
25
|
+
: this.fallback;
|
|
20
26
|
this.tuiUnfinishedValidator = '';
|
|
21
|
-
this.validate = tuiCreateUnfinishedValidator(
|
|
27
|
+
this.validate = tuiCreateUnfinishedValidator(tuiInjectElement(), () => this.tuiUnfinishedValidator || this.message());
|
|
22
28
|
}
|
|
23
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiUnfinishedValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
30
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiUnfinishedValidator, isStandalone: true, selector: "input[tuiUnfinishedValidator]", inputs: { tuiUnfinishedValidator: "tuiUnfinishedValidator" }, providers: [tuiProvide(NG_VALIDATORS, TuiUnfinishedValidator, true)], ngImport: i0 }); }
|
|
@@ -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): {
|
|
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: new TuiValidationError(message)}\n : null;\n}\n","import {Directive, inject, Input, signal} 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';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {isObservable} from 'rxjs';\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 error = inject(TUI_VALIDATION_ERRORS)['tuiUnfinished'];\n private readonly fallback = this.error ? signal(this.error) : this.default;\n private readonly message = isObservable(this.error)\n ? toSignal(this.error)\n : this.fallback;\n\n @Input()\n public tuiUnfinishedValidator = '';\n\n public readonly validate = tuiCreateUnfinishedValidator(\n tuiInjectElement<HTMLInputElement>(),\n () => this.tuiUnfinishedValidator || this.message(),\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,aAAa,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAC;UAChD,IAAI,CAAC;AACnB;;ACFA,MAKa,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;QAMqB,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACtD,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,eAAe,CAAC,CAAC;AACvD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAC1D,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/C,cAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,cAAE,IAAI,CAAC,QAAQ,CAAC;QAGb,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;AAEnB,QAAA,IAAA,CAAA,QAAQ,GAAG,4BAA4B,CACnD,gBAAgB,EAAoB,EACpC,MAAM,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,OAAO,EAAE,CACtD,CAAC;AACL,KAAA;+GAfY,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;8BAUU,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;;;ACzBV;;AAEG;;;;"}
|
|
@@ -5,6 +5,7 @@ import { TUI_DEFAULT_MATCHER } from '@taiga-ui/cdk/constants';
|
|
|
5
5
|
import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
6
6
|
import { TUI_DATA_LIST_HOST } from '@taiga-ui/core/components/data-list';
|
|
7
7
|
import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
|
|
8
|
+
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
|
|
8
9
|
import { tuiIsFlat } from '@taiga-ui/kit/utils';
|
|
9
10
|
|
|
10
11
|
// TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields
|
|
@@ -13,9 +14,13 @@ class TuiFilterByInputPipe {
|
|
|
13
14
|
// TODO: Remove optional after legacy controls are dropped
|
|
14
15
|
this.textfield = inject(TuiTextfieldComponent, { optional: true });
|
|
15
16
|
this.host = inject(TUI_DATA_LIST_HOST);
|
|
17
|
+
this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
|
|
16
18
|
}
|
|
17
19
|
transform(items, matcher = TUI_DEFAULT_MATCHER) {
|
|
18
|
-
return this.filter(items, matcher, this.
|
|
20
|
+
return this.filter(items, matcher, (this.textfield
|
|
21
|
+
? this.itemsHandlers.stringify()
|
|
22
|
+
: // TODO(v5): delete backward compatibility
|
|
23
|
+
this.host.stringify) || String, this.textfield?.input?.nativeElement.value ||
|
|
19
24
|
this.host.nativeFocusableElement?.value ||
|
|
20
25
|
'');
|
|
21
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-pipes-filter-by-input.mjs","sources":["../../../projects/kit/pipes/filter-by-input/filter-by-input.pipe.ts","../../../projects/kit/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {TUI_DEFAULT_MATCHER} from '@taiga-ui/cdk/constants';\nimport type {TuiStringHandler, TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DATA_LIST_HOST} from '@taiga-ui/core/components/data-list';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n// TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields\n@Pipe({\n standalone: true,\n name: 'tuiFilterByInput',\n pure: false,\n})\nexport class TuiFilterByInputPipe implements PipeTransform {\n // TODO: Remove optional after legacy controls are dropped\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n private readonly host = inject(TUI_DATA_LIST_HOST);\n\n public transform<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher?: TuiStringMatcher<T>,\n ): ReadonlyArray<readonly T[]>;\n public transform<T>(items: readonly T[], matcher?: TuiStringMatcher<T>): readonly T[];\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | null,\n matcher?: TuiStringMatcher<T>,\n ): ReadonlyArray<readonly T[]> | null;\n public transform<T>(\n items: readonly T[] | null,\n matcher?: TuiStringMatcher<T>,\n ): readonly T[] | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T> = TUI_DEFAULT_MATCHER,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n return this.filter<T>(\n items,\n matcher,\n this.host.stringify || String,\n this.textfield?.input?.nativeElement.value ||\n (this.host as any).nativeFocusableElement?.value ||\n '',\n );\n }\n\n @tuiPure\n private filter<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n return tuiIsFlat(items)\n ? this.filterFlat(items, matcher, stringify, query)\n : this.filter2d(items, matcher, stringify, query);\n }\n\n private filterFlat<T>(\n items: readonly T[],\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] {\n const match = this.getMatch(items, stringify, query);\n\n return match != null\n ? items\n : items.filter((item) => matcher(item, query, stringify));\n }\n\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> {\n const match = items.find((item) => this.getMatch(item, stringify, query) != null);\n\n return match != null\n ? items\n : items.map((inner) => this.filterFlat(inner, matcher, stringify, query));\n }\n\n private getMatch<T>(\n items: readonly T[],\n stringify: TuiStringHandler<T>,\n query: string,\n ): T | undefined {\n // TODO: Refactor when tui-textfield[multi] is ready\n if ((this.host as any).tagValidator) {\n return undefined;\n }\n\n return items.find(\n (item) => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase(),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-pipes-filter-by-input.mjs","sources":["../../../projects/kit/pipes/filter-by-input/filter-by-input.pipe.ts","../../../projects/kit/pipes/filter-by-input/taiga-ui-kit-pipes-filter-by-input.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport {TUI_DEFAULT_MATCHER} from '@taiga-ui/cdk/constants';\nimport type {TuiStringHandler, TuiStringMatcher} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DATA_LIST_HOST} from '@taiga-ui/core/components/data-list';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport type {TuiItemsHandlers} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n// TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields\n@Pipe({\n standalone: true,\n name: 'tuiFilterByInput',\n pure: false,\n})\nexport class TuiFilterByInputPipe implements PipeTransform {\n // TODO: Remove optional after legacy controls are dropped\n private readonly textfield = inject(TuiTextfieldComponent, {optional: true});\n private readonly host = inject(TUI_DATA_LIST_HOST);\n private readonly itemsHandlers: TuiItemsHandlers<unknown> =\n inject(TUI_ITEMS_HANDLERS);\n\n public transform<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher?: TuiStringMatcher<T>,\n ): ReadonlyArray<readonly T[]>;\n public transform<T>(items: readonly T[], matcher?: TuiStringMatcher<T>): readonly T[];\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | null,\n matcher?: TuiStringMatcher<T>,\n ): ReadonlyArray<readonly T[]> | null;\n public transform<T>(\n items: readonly T[] | null,\n matcher?: TuiStringMatcher<T>,\n ): readonly T[] | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T> = TUI_DEFAULT_MATCHER,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n return this.filter<T>(\n items,\n matcher,\n (this.textfield\n ? this.itemsHandlers.stringify()\n : // TODO(v5): delete backward compatibility\n this.host.stringify) || String,\n this.textfield?.input?.nativeElement.value ||\n (this.host as any).nativeFocusableElement?.value ||\n '',\n );\n }\n\n @tuiPure\n private filter<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n return tuiIsFlat(items)\n ? this.filterFlat(items, matcher, stringify, query)\n : this.filter2d(items, matcher, stringify, query);\n }\n\n private filterFlat<T>(\n items: readonly T[],\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): readonly T[] {\n const match = this.getMatch(items, stringify, query);\n\n return match != null\n ? items\n : items.filter((item) => matcher(item, query, stringify));\n }\n\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n matcher: TuiStringMatcher<T>,\n stringify: TuiStringHandler<T>,\n query: string,\n ): ReadonlyArray<readonly T[]> {\n const match = items.find((item) => this.getMatch(item, stringify, query) != null);\n\n return match != null\n ? items\n : items.map((inner) => this.filterFlat(inner, matcher, stringify, query));\n }\n\n private getMatch<T>(\n items: readonly T[],\n stringify: TuiStringHandler<T>,\n query: string,\n ): T | undefined {\n // TODO: Refactor when tui-textfield[multi] is ready\n if ((this.host as any).tagValidator) {\n return undefined;\n }\n\n return items.find(\n (item) => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase(),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -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.
|
|
3
|
+
"version": "4.39.0-canary.ad6c629",
|
|
4
4
|
"description": "Taiga UI Angular main components kit",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -65,18 +65,18 @@
|
|
|
65
65
|
"esm": "./esm2022/components/action-bar/taiga-ui-kit-components-action-bar.mjs",
|
|
66
66
|
"default": "./fesm2022/taiga-ui-kit-components-action-bar.mjs"
|
|
67
67
|
},
|
|
68
|
-
"./components/badge": {
|
|
69
|
-
"types": "./components/badge/index.d.ts",
|
|
70
|
-
"esm2022": "./esm2022/components/badge/taiga-ui-kit-components-badge.mjs",
|
|
71
|
-
"esm": "./esm2022/components/badge/taiga-ui-kit-components-badge.mjs",
|
|
72
|
-
"default": "./fesm2022/taiga-ui-kit-components-badge.mjs"
|
|
73
|
-
},
|
|
74
68
|
"./components/avatar": {
|
|
75
69
|
"types": "./components/avatar/index.d.ts",
|
|
76
70
|
"esm2022": "./esm2022/components/avatar/taiga-ui-kit-components-avatar.mjs",
|
|
77
71
|
"esm": "./esm2022/components/avatar/taiga-ui-kit-components-avatar.mjs",
|
|
78
72
|
"default": "./fesm2022/taiga-ui-kit-components-avatar.mjs"
|
|
79
73
|
},
|
|
74
|
+
"./components/badge": {
|
|
75
|
+
"types": "./components/badge/index.d.ts",
|
|
76
|
+
"esm2022": "./esm2022/components/badge/taiga-ui-kit-components-badge.mjs",
|
|
77
|
+
"esm": "./esm2022/components/badge/taiga-ui-kit-components-badge.mjs",
|
|
78
|
+
"default": "./fesm2022/taiga-ui-kit-components-badge.mjs"
|
|
79
|
+
},
|
|
80
80
|
"./components/badge-notification": {
|
|
81
81
|
"types": "./components/badge-notification/index.d.ts",
|
|
82
82
|
"esm2022": "./esm2022/components/badge-notification/taiga-ui-kit-components-badge-notification.mjs",
|
|
@@ -137,6 +137,12 @@
|
|
|
137
137
|
"esm": "./esm2022/components/chip/taiga-ui-kit-components-chip.mjs",
|
|
138
138
|
"default": "./fesm2022/taiga-ui-kit-components-chip.mjs"
|
|
139
139
|
},
|
|
140
|
+
"./components/combo-box": {
|
|
141
|
+
"types": "./components/combo-box/index.d.ts",
|
|
142
|
+
"esm2022": "./esm2022/components/combo-box/taiga-ui-kit-components-combo-box.mjs",
|
|
143
|
+
"esm": "./esm2022/components/combo-box/taiga-ui-kit-components-combo-box.mjs",
|
|
144
|
+
"default": "./fesm2022/taiga-ui-kit-components-combo-box.mjs"
|
|
145
|
+
},
|
|
140
146
|
"./components/comment": {
|
|
141
147
|
"types": "./components/comment/index.d.ts",
|
|
142
148
|
"esm2022": "./esm2022/components/comment/taiga-ui-kit-components-comment.mjs",
|
|
@@ -191,6 +197,12 @@
|
|
|
191
197
|
"esm": "./esm2022/components/floating-container/taiga-ui-kit-components-floating-container.mjs",
|
|
192
198
|
"default": "./fesm2022/taiga-ui-kit-components-floating-container.mjs"
|
|
193
199
|
},
|
|
200
|
+
"./components/input-date": {
|
|
201
|
+
"types": "./components/input-date/index.d.ts",
|
|
202
|
+
"esm2022": "./esm2022/components/input-date/taiga-ui-kit-components-input-date.mjs",
|
|
203
|
+
"esm": "./esm2022/components/input-date/taiga-ui-kit-components-input-date.mjs",
|
|
204
|
+
"default": "./fesm2022/taiga-ui-kit-components-input-date.mjs"
|
|
205
|
+
},
|
|
194
206
|
"./components/input-inline": {
|
|
195
207
|
"types": "./components/input-inline/index.d.ts",
|
|
196
208
|
"esm2022": "./esm2022/components/input-inline/taiga-ui-kit-components-input-inline.mjs",
|
|
@@ -577,9 +589,9 @@
|
|
|
577
589
|
"@ng-web-apis/intersection-observer": "^4.12.0",
|
|
578
590
|
"@ng-web-apis/mutation-observer": "^4.12.0",
|
|
579
591
|
"@ng-web-apis/resize-observer": "^4.12.0",
|
|
580
|
-
"@taiga-ui/cdk": "^4.
|
|
581
|
-
"@taiga-ui/core": "^4.
|
|
582
|
-
"@taiga-ui/i18n": "^4.
|
|
592
|
+
"@taiga-ui/cdk": "^4.39.0",
|
|
593
|
+
"@taiga-ui/core": "^4.39.0",
|
|
594
|
+
"@taiga-ui/i18n": "^4.39.0",
|
|
583
595
|
"@taiga-ui/polymorpheus": "^4.9.0",
|
|
584
596
|
"rxjs": ">=7.0.0"
|
|
585
597
|
},
|
|
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export declare class TuiFilterByInputPipe implements PipeTransform {
|
|
5
5
|
private readonly textfield;
|
|
6
6
|
private readonly host;
|
|
7
|
+
private readonly itemsHandlers;
|
|
7
8
|
transform<T>(items: ReadonlyArray<readonly T[]>, matcher?: TuiStringMatcher<T>): ReadonlyArray<readonly T[]>;
|
|
8
9
|
transform<T>(items: readonly T[], matcher?: TuiStringMatcher<T>): readonly T[];
|
|
9
10
|
transform<T>(items: ReadonlyArray<readonly T[]> | null, matcher?: TuiStringMatcher<T>): ReadonlyArray<readonly T[]> | null;
|
|
@@ -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;
|
package/tokens/i18n.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare const TUI_CHOOSE_DAY_OR_RANGE_TEXTS: import("@angular/core").Inje
|
|
|
15
15
|
export declare const TUI_FROM_TO_TEXTS: import("@angular/core").InjectionToken<Observable<readonly [from: string, to: string]>>;
|
|
16
16
|
export declare const TUI_PLUS_MINUS_TEXTS: import("@angular/core").InjectionToken<Observable<readonly [plus: string, minus: string]>>;
|
|
17
17
|
export declare const TUI_TIME_TEXTS: import("@angular/core").InjectionToken<Observable<{
|
|
18
|
+
'MM:SS': string;
|
|
18
19
|
'HH:MM': string;
|
|
19
20
|
'HH:MM AA': string;
|
|
20
21
|
'HH:MM:SS': string;
|
package/esm2022/components/input-month/native-month-picker/native-month-picker.component.mjs
DELETED
|
@@ -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==
|