@taiga-ui/core 4.6.0 → 4.7.0
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/calendar/calendar-sheet.component.d.ts +3 -3
- package/components/calendar/calendar-year.component.d.ts +3 -6
- package/components/data-list/data-list.component.d.ts +2 -0
- package/components/textfield/select.directive.d.ts +4 -4
- package/components/textfield/textfield.component.d.ts +3 -1
- package/components/textfield/textfield.directive.d.ts +11 -8
- package/directives/appearance/appearance.bindings.d.ts +3 -0
- package/directives/appearance/appearance.directive.d.ts +4 -1
- package/directives/appearance/with-appearance.d.ts +1 -1
- package/directives/dropdown/dropdown-options.directive.d.ts +1 -1
- package/directives/hint/hint-describe.directive.d.ts +1 -0
- package/directives/hint/hint-options.directive.d.ts +1 -1
- package/esm2022/components/calendar/calendar-sheet.component.mjs +27 -29
- package/esm2022/components/calendar/calendar-year.component.mjs +20 -50
- package/esm2022/components/data-list/data-list.component.mjs +10 -4
- package/esm2022/components/root/root.component.mjs +8 -2
- package/esm2022/components/textfield/select.directive.mjs +2 -3
- package/esm2022/components/textfield/textfield.component.mjs +9 -5
- package/esm2022/components/textfield/textfield.directive.mjs +11 -7
- package/esm2022/directives/appearance/appearance.bindings.mjs +4 -1
- package/esm2022/directives/appearance/appearance.directive.mjs +12 -4
- package/esm2022/directives/appearance/with-appearance.mjs +3 -2
- package/esm2022/directives/dropdown/dropdown-options.directive.mjs +3 -2
- package/esm2022/directives/group/group.directive.mjs +2 -2
- package/esm2022/directives/hint/hint-describe.directive.mjs +5 -4
- package/esm2022/directives/hint/hint-options.directive.mjs +3 -2
- package/fesm2022/taiga-ui-core-components-calendar.mjs +44 -76
- package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-data-list.mjs +9 -3
- package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-root.mjs +7 -1
- package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-textfield.mjs +19 -12
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-appearance.mjs +17 -5
- package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs +2 -2
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-group.mjs +2 -2
- package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-hint.mjs +5 -4
- package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
- package/package.json +13 -13
- package/styles/components/appearance.less +1 -1
- package/styles/components/group.less +6 -5
- package/styles/components/textfield.less +14 -5
- package/styles/mixins/date-picker.less +152 -0
- package/styles/mixins/picker.less +1 -0
- package/styles/mixins/picker.scss +1 -0
- package/styles/taiga-ui-local.less +1 -0
- package/styles/theme/appearance/floating.less +2 -2
- package/styles/theme/appearance/glass.less +3 -3
- package/styles/theme/appearance/opposite.less +2 -2
- package/styles/theme/appearance/outline.less +6 -5
- package/styles/theme/appearance/primary.less +2 -1
- package/styles/theme/appearance/secondary.less +11 -6
- package/styles/theme/appearance/status.less +12 -6
- package/styles/theme/appearance/textfield.less +3 -3
- package/styles/theme/palette.less +58 -58
- package/styles/theme/wrapper.less +11 -9
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Self } from '@angular/core';
|
|
1
2
|
import { Directive, inject, Input, Optional, SkipSelf } from '@angular/core';
|
|
2
3
|
import { tuiCreateToken, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
3
4
|
import { tuiOverrideOptions } from '@taiga-ui/core/utils';
|
|
@@ -32,7 +33,7 @@ export const TUI_HINT_OPTIONS = tuiCreateToken(TUI_HINT_DEFAULT_OPTIONS);
|
|
|
32
33
|
export const tuiHintOptionsProvider = (override) => ({
|
|
33
34
|
provide: TUI_HINT_OPTIONS,
|
|
34
35
|
deps: [
|
|
35
|
-
[new Optional(), TuiHintOptionsDirective],
|
|
36
|
+
[new Optional(), new Self(), TuiHintOptionsDirective],
|
|
36
37
|
[new Optional(), new SkipSelf(), TUI_HINT_OPTIONS],
|
|
37
38
|
],
|
|
38
39
|
useFactory: tuiOverrideOptions(override, TUI_HINT_DEFAULT_OPTIONS),
|
|
@@ -80,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
80
81
|
type: Input,
|
|
81
82
|
args: ['tuiHintHideDelay']
|
|
82
83
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1vcHRpb25zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZGlyZWN0aXZlcy9oaW50L2hpbnQtb3B0aW9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QyxJQUFJLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQWdCN0IsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWdDO0lBQzVELGFBQWE7SUFDYixRQUFRO0lBQ1IsY0FBYztJQUNkLFVBQVU7SUFDVixLQUFLO0lBQ0wsV0FBVztJQUNYLFVBQVU7SUFDVixNQUFNO0lBQ04sYUFBYTtJQUNiLFdBQVc7SUFDWCxPQUFPO0lBQ1AsY0FBYztDQUNqQixDQUFDO0FBVUYsc0NBQXNDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFtQjtJQUNwRCxTQUFTLEVBQUUsYUFBYTtJQUN4QixTQUFTLEVBQUUsR0FBRztJQUNkLFNBQVMsRUFBRSxHQUFHO0lBQ2QsVUFBVSxFQUFFLEVBQUU7SUFDZCxJQUFJLEVBQUUsa0JBQWtCO0NBQzNCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUVaLENBQUMsUUFBaUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRCxPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLElBQUksRUFBRTtRQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLHVCQUF1QixDQUFDO1FBQ3JELENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDO0tBQ3JEO0lBQ0QsVUFBVSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQztDQUNyRSxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BS2EsdUJBQXVCO0lBTHBDO1FBTXFCLFlBQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQU0vRCxjQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFHbkMsZUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBR3JDLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUduQyxjQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFbkMsU0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBRWhCLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0tBS2pEO0lBSFUsV0FBVztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0F4QlEsdUJBQXVCO21HQUF2Qix1QkFBdUIsOFNBRnJCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLHVCQUF1QixDQUFDLENBQUM7O1NBRXpELHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixTQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLDBCQUEwQixDQUFDO2lCQUNyRTs4QkFLVSxPQUFPO3NCQURiLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUloQixTQUFTO3NCQURmLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUlsQixVQUFVO3NCQURoQixLQUFLO3VCQUFDLG1CQUFtQjtnQkFJbkIsU0FBUztzQkFEZixLQUFLO3VCQUFDLGtCQUFrQjtnQkFJbEIsU0FBUztzQkFEZixLQUFLO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHlwZSBGYWN0b3J5UHJvdmlkZXIsIHR5cGUgT25DaGFuZ2VzLCBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3QsIElucHV0LCBPcHRpb25hbCwgU2tpcFNlbGZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbiwgdHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7dHVpT3ZlcnJpZGVPcHRpb25zfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBUdWlIaW50RGlyZWN0aW9uID1cbiAgICB8ICdib3R0b20tbGVmdCdcbiAgICB8ICdib3R0b20tcmlnaHQnXG4gICAgfCAnYm90dG9tJ1xuICAgIHwgJ2xlZnQtYm90dG9tJ1xuICAgIHwgJ2xlZnQtdG9wJ1xuICAgIHwgJ2xlZnQnXG4gICAgfCAncmlnaHQtYm90dG9tJ1xuICAgIHwgJ3JpZ2h0LXRvcCdcbiAgICB8ICdyaWdodCdcbiAgICB8ICd0b3AtbGVmdCdcbiAgICB8ICd0b3AtcmlnaHQnXG4gICAgfCAndG9wJztcblxuZXhwb3J0IGNvbnN0IFRVSV9ISU5UX0RJUkVDVElPTlM6IHJlYWRvbmx5IFR1aUhpbnREaXJlY3Rpb25bXSA9IFtcbiAgICAnYm90dG9tLWxlZnQnLFxuICAgICdib3R0b20nLFxuICAgICdib3R0b20tcmlnaHQnLFxuICAgICd0b3AtbGVmdCcsXG4gICAgJ3RvcCcsXG4gICAgJ3RvcC1yaWdodCcsXG4gICAgJ2xlZnQtdG9wJyxcbiAgICAnbGVmdCcsXG4gICAgJ2xlZnQtYm90dG9tJyxcbiAgICAncmlnaHQtdG9wJyxcbiAgICAncmlnaHQnLFxuICAgICdyaWdodC1ib3R0b20nLFxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBUdWlIaW50T3B0aW9ucyB7XG4gICAgcmVhZG9ubHkgYXBwZWFyYW5jZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGRpcmVjdGlvbjogVHVpSGludERpcmVjdGlvbjtcbiAgICByZWFkb25seSBoaWRlRGVsYXk6IG51bWJlcjtcbiAgICByZWFkb25seSBpY29uOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2hvd0RlbGF5OiBudW1iZXI7XG59XG5cbi8qKiBEZWZhdWx0IHZhbHVlcyBmb3IgaGludCBvcHRpb25zICovXG5leHBvcnQgY29uc3QgVFVJX0hJTlRfREVGQVVMVF9PUFRJT05TOiBUdWlIaW50T3B0aW9ucyA9IHtcbiAgICBkaXJlY3Rpb246ICdib3R0b20tbGVmdCcsXG4gICAgc2hvd0RlbGF5OiA1MDAsXG4gICAgaGlkZURlbGF5OiAyMDAsXG4gICAgYXBwZWFyYW5jZTogJycsXG4gICAgaWNvbjogJ0B0dWkuY2lyY2xlLWhlbHAnLFxufTtcblxuLyoqXG4gKiBEZWZhdWx0IHBhcmFtZXRlcnMgZm9yIGhpbnQgZGlyZWN0aXZlXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfSElOVF9PUFRJT05TID0gdHVpQ3JlYXRlVG9rZW4oVFVJX0hJTlRfREVGQVVMVF9PUFRJT05TKTtcblxuZXhwb3J0IGNvbnN0IHR1aUhpbnRPcHRpb25zUHJvdmlkZXI6IChcbiAgICBvcHRpb25zOiBQYXJ0aWFsPFR1aUhpbnRPcHRpb25zPixcbikgPT4gRmFjdG9yeVByb3ZpZGVyID0gKG92ZXJyaWRlOiBQYXJ0aWFsPFR1aUhpbnRPcHRpb25zPikgPT4gKHtcbiAgICBwcm92aWRlOiBUVUlfSElOVF9PUFRJT05TLFxuICAgIGRlcHM6IFtcbiAgICAgICAgW25ldyBPcHRpb25hbCgpLCBuZXcgU2VsZigpLCBUdWlIaW50T3B0aW9uc0RpcmVjdGl2ZV0sXG4gICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIFRVSV9ISU5UX09QVElPTlNdLFxuICAgIF0sXG4gICAgdXNlRmFjdG9yeTogdHVpT3ZlcnJpZGVPcHRpb25zKG92ZXJyaWRlLCBUVUlfSElOVF9ERUZBVUxUX09QVElPTlMpLFxufSk7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IGRyb3AgaW4gNS4wXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpSGludENvbnRlbnRdJyxcbiAgICBwcm92aWRlcnM6IFt0dWlQcm92aWRlKFRVSV9ISU5UX09QVElPTlMsIFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlKV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUhpbnRPcHRpb25zRGlyZWN0aXZlIGltcGxlbWVudHMgVHVpSGludE9wdGlvbnMsIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9ISU5UX09QVElPTlMsIHtza2lwU2VsZjogdHJ1ZX0pO1xuXG4gICAgQElucHV0KCd0dWlIaW50Q29udGVudCcpXG4gICAgcHVibGljIGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ7XG5cbiAgICBASW5wdXQoJ3R1aUhpbnREaXJlY3Rpb24nKVxuICAgIHB1YmxpYyBkaXJlY3Rpb24gPSB0aGlzLm9wdGlvbnMuZGlyZWN0aW9uO1xuXG4gICAgQElucHV0KCd0dWlIaW50QXBwZWFyYW5jZScpXG4gICAgcHVibGljIGFwcGVhcmFuY2UgPSB0aGlzLm9wdGlvbnMuYXBwZWFyYW5jZTtcblxuICAgIEBJbnB1dCgndHVpSGludFNob3dEZWxheScpXG4gICAgcHVibGljIHNob3dEZWxheSA9IHRoaXMub3B0aW9ucy5zaG93RGVsYXk7XG5cbiAgICBASW5wdXQoJ3R1aUhpbnRIaWRlRGVsYXknKVxuICAgIHB1YmxpYyBoaWRlRGVsYXkgPSB0aGlzLm9wdGlvbnMuaGlkZURlbGF5O1xuXG4gICAgcHVibGljIGljb24gPSB0aGlzLm9wdGlvbnMuaWNvbjtcblxuICAgIHB1YmxpYyByZWFkb25seSBjaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2UkLm5leHQoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -5,8 +5,9 @@ import { inject, EventEmitter, Component, ChangeDetectionStrategy, Input, Output
|
|
|
5
5
|
import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
|
|
6
6
|
import { TuiDay, TuiMonth, TuiDayRange, TUI_FIRST_DAY, TUI_LAST_DAY, MIN_YEAR, MAX_YEAR, TuiYear, TuiMonthRange } from '@taiga-ui/cdk/date-time';
|
|
7
7
|
import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
|
|
8
|
-
import { tuiNullableSame, tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
8
|
+
import { tuiNullableSame, tuiPure, tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
9
9
|
import { TuiScrollIntoView, TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
|
|
10
|
+
import { __decorate } from 'tslib';
|
|
10
11
|
import { TuiHovered } from '@taiga-ui/cdk/directives/hovered';
|
|
11
12
|
import { TuiLet } from '@taiga-ui/cdk/directives/let';
|
|
12
13
|
import { TuiRepeatTimes } from '@taiga-ui/cdk/directives/repeat-times';
|
|
@@ -14,7 +15,6 @@ import { TuiCalendarSheetPipe, TuiOrderWeekDaysPipe, TuiMonthPipe } from '@taiga
|
|
|
14
15
|
import { TUI_SHORT_WEEK_DAYS, TUI_DAY_TYPE_HANDLER } from '@taiga-ui/core/tokens';
|
|
15
16
|
import { TuiLink } from '@taiga-ui/core/components/link';
|
|
16
17
|
import { TuiSpinButton } from '@taiga-ui/core/components/spin-button';
|
|
17
|
-
import { tuiInRange } from '@taiga-ui/cdk/utils/math';
|
|
18
18
|
|
|
19
19
|
class TuiCalendarSheet {
|
|
20
20
|
constructor() {
|
|
@@ -29,8 +29,8 @@ class TuiCalendarSheet {
|
|
|
29
29
|
this.showAdjacent = true;
|
|
30
30
|
this.hoveredItemChange = new EventEmitter();
|
|
31
31
|
this.dayClick = new EventEmitter();
|
|
32
|
-
this.toMarkers = (day, today,
|
|
33
|
-
if (today ||
|
|
32
|
+
this.toMarkers = (day, today, range, markerHandler) => {
|
|
33
|
+
if (today || ['active', 'end', 'start'].includes(range || '')) {
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
36
36
|
const markers = markerHandler?.(day);
|
|
@@ -56,34 +56,23 @@ class TuiCalendarSheet {
|
|
|
56
56
|
}
|
|
57
57
|
getItemRange(item) {
|
|
58
58
|
const { value, hoveredItem } = this;
|
|
59
|
-
if (!value) {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
59
|
if (value instanceof TuiDay) {
|
|
63
|
-
return value.daySame(item) ? '
|
|
60
|
+
return value.daySame(item) ? 'active' : null;
|
|
64
61
|
}
|
|
65
|
-
if (!(value instanceof TuiDayRange)) {
|
|
66
|
-
return value
|
|
62
|
+
if (!value || !(value instanceof TuiDayRange)) {
|
|
63
|
+
return value?.find((day) => day.daySame(item)) ? 'active' : null;
|
|
67
64
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
hoveredItem.dayBefore(value.from) &&
|
|
74
|
-
value.isSingleDay)) {
|
|
65
|
+
const range = this.getRange(value, hoveredItem);
|
|
66
|
+
if (value.isSingleDay && range.isSingleDay && value.from.daySame(item)) {
|
|
67
|
+
return 'active';
|
|
68
|
+
}
|
|
69
|
+
if (range.from.daySame(item)) {
|
|
75
70
|
return 'start';
|
|
76
71
|
}
|
|
77
|
-
if (
|
|
78
|
-
(hoveredItem?.dayBefore(value.from) &&
|
|
79
|
-
value.from.daySame(item) &&
|
|
80
|
-
value.isSingleDay) ||
|
|
81
|
-
(hoveredItem?.daySame(item) &&
|
|
82
|
-
hoveredItem.dayAfter(value.from) &&
|
|
83
|
-
value.isSingleDay)) {
|
|
72
|
+
if (range.to.daySame(item)) {
|
|
84
73
|
return 'end';
|
|
85
74
|
}
|
|
86
|
-
return
|
|
75
|
+
return range.from.dayBefore(item) && range.to.dayAfter(item) ? 'middle' : null;
|
|
87
76
|
}
|
|
88
77
|
get isSingleDayRange() {
|
|
89
78
|
return this.value instanceof TuiDayRange && this.value.isSingleDay;
|
|
@@ -97,6 +86,11 @@ class TuiCalendarSheet {
|
|
|
97
86
|
onItemClick(item) {
|
|
98
87
|
this.dayClick.emit(item);
|
|
99
88
|
}
|
|
89
|
+
getRange(value, hoveredItem) {
|
|
90
|
+
return value.isSingleDay
|
|
91
|
+
? TuiDayRange.sort(value.from, hoveredItem ?? value.to)
|
|
92
|
+
: value;
|
|
93
|
+
}
|
|
100
94
|
updateHoveredItem(day) {
|
|
101
95
|
if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {
|
|
102
96
|
return;
|
|
@@ -105,8 +99,11 @@ class TuiCalendarSheet {
|
|
|
105
99
|
this.hoveredItemChange.emit(day);
|
|
106
100
|
}
|
|
107
101
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarSheet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarSheet, isStandalone: true, selector: "tui-calendar-sheet", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", value: "value", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent" }, outputs: { hoveredItemChange: "hoveredItemChange", dayClick: "dayClick" }, host: { properties: { "class.
|
|
102
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarSheet, isStandalone: true, selector: "tui-calendar-sheet", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", value: "value", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent" }, outputs: { hoveredItemChange: "hoveredItemChange", dayClick: "dayClick" }, host: { properties: { "class._picking": "isSingleDayRange" } }, ngImport: i0, template: "<div class=\"t-row t-row_weekday\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n <div\n *ngIf=\"item && (!itemIsUnavailable(item) || showAdjacent)\"\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n <div\n *ngIf=\"\n item\n | tuiMapper\n : toMarkers\n : itemIsToday(item)\n : getItemRange(item)\n : markerHandler as markers\n \"\n class=\"t-dots\"\n >\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n <div\n *ngIf=\"markers.length > 1\"\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-base-alt)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-base-alt)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-start-start-radius:0;border-end-start-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-start-end-radius:0;border-end-end-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-base-alt);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-base-alt);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:2.25rem}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-top:-.5rem;padding-bottom:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: TuiCalendarSheetPipe, name: "tuiCalendarSheet" }, { kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "pipe", type: TuiOrderWeekDaysPipe, name: "tuiOrderWeekDays" }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
109
103
|
}
|
|
104
|
+
__decorate([
|
|
105
|
+
tuiPure
|
|
106
|
+
], TuiCalendarSheet.prototype, "getRange", null);
|
|
110
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarSheet, decorators: [{
|
|
111
108
|
type: Component,
|
|
112
109
|
args: [{ standalone: true, selector: 'tui-calendar-sheet', imports: [
|
|
@@ -118,8 +115,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
118
115
|
TuiOrderWeekDaysPipe,
|
|
119
116
|
TuiRepeatTimes,
|
|
120
117
|
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
121
|
-
'[class.
|
|
122
|
-
}, template: "<div class=\"t-row t-row_weekday\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n <div\n *ngIf=\"item && (!itemIsUnavailable(item) || showAdjacent)\"\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [
|
|
118
|
+
'[class._picking]': 'isSingleDayRange',
|
|
119
|
+
}, template: "<div class=\"t-row t-row_weekday\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n <div\n *ngIf=\"item && (!itemIsUnavailable(item) || showAdjacent)\"\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n <div\n *ngIf=\"\n item\n | tuiMapper\n : toMarkers\n : itemIsToday(item)\n : getItemRange(item)\n : markerHandler as markers\n \"\n class=\"t-dots\"\n >\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n <div\n *ngIf=\"markers.length > 1\"\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-base-alt)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-base-alt)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-start-start-radius:0;border-end-start-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-start-end-radius:0;border-end-end-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-base-alt);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-base-alt);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}.t-cell{inline-size:2.25rem}[data-type=weekday]{color:var(--tui-text-primary)}[data-type=weekend]{color:var(--tui-text-negative)}.t-row{justify-content:flex-start}.t-row:first-child{justify-content:flex-end}.t-row_weekday{font:var(--tui-font-text-s);color:var(--tui-text-secondary);pointer-events:none}.t-cell_unavailable{opacity:var(--tui-disabled-opacity)}.t-dots{position:absolute;bottom:0;display:flex;justify-content:center;margin-top:-.5rem;padding-bottom:.25rem}.t-dot{display:inline-block;inline-size:.25rem;block-size:.25rem;border-radius:100%;margin:0 .0625rem}\n"] }]
|
|
123
120
|
}], propDecorators: { month: [{
|
|
124
121
|
type: Input
|
|
125
122
|
}], disabledItemHandler: [{
|
|
@@ -136,7 +133,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
136
133
|
type: Output
|
|
137
134
|
}], dayClick: [{
|
|
138
135
|
type: Output
|
|
139
|
-
}] } });
|
|
136
|
+
}], getRange: [] } });
|
|
140
137
|
|
|
141
138
|
class TuiCalendarSpin {
|
|
142
139
|
constructor() {
|
|
@@ -203,69 +200,40 @@ class TuiCalendarYear {
|
|
|
203
200
|
}
|
|
204
201
|
getItemRange(item) {
|
|
205
202
|
const { value, hoveredItem } = this;
|
|
206
|
-
if (value === null) {
|
|
207
|
-
return null;
|
|
208
|
-
}
|
|
209
203
|
if (value instanceof TuiYear) {
|
|
210
|
-
return value.year === item ? '
|
|
204
|
+
return value.year === item ? 'active' : null;
|
|
211
205
|
}
|
|
212
206
|
if (tuiIsNumber(value)) {
|
|
213
|
-
return value === item ? '
|
|
207
|
+
return value === item ? 'active' : null;
|
|
214
208
|
}
|
|
215
209
|
if (!(value instanceof TuiMonthRange)) {
|
|
216
|
-
return value
|
|
210
|
+
return value?.find((day) => day.year === item) ? 'active' : null;
|
|
217
211
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
hoveredItem < value.from.year &&
|
|
226
|
-
value.from.yearSame(value.to))) {
|
|
212
|
+
const hovered = this.isSingle ? hoveredItem : null;
|
|
213
|
+
const from = Math.min(value.from.year, hovered ?? value.to.year);
|
|
214
|
+
const to = Math.max(value.from.year, hovered ?? value.to.year);
|
|
215
|
+
if (from === to && value.from.year === value.to.year && from === item) {
|
|
216
|
+
return 'active';
|
|
217
|
+
}
|
|
218
|
+
if (from === item) {
|
|
227
219
|
return 'start';
|
|
228
220
|
}
|
|
229
|
-
if (
|
|
230
|
-
(hoveredItem !== null &&
|
|
231
|
-
hoveredItem < value.from.year &&
|
|
232
|
-
value.from.year === item &&
|
|
233
|
-
value.from.yearSame(value.to)) ||
|
|
234
|
-
(hoveredItem !== null &&
|
|
235
|
-
hoveredItem === item &&
|
|
236
|
-
hoveredItem > value.from.year &&
|
|
237
|
-
value.from.yearSame(value.to))) {
|
|
221
|
+
if (to === item) {
|
|
238
222
|
return 'end';
|
|
239
223
|
}
|
|
240
|
-
return
|
|
241
|
-
? 'single'
|
|
242
|
-
: null;
|
|
243
|
-
}
|
|
244
|
-
itemIsInterval(item) {
|
|
245
|
-
const { value, hoveredItem } = this;
|
|
246
|
-
if (!this.isRange(value)) {
|
|
247
|
-
return false;
|
|
248
|
-
}
|
|
249
|
-
if (!value.from.yearSame(value.to)) {
|
|
250
|
-
return value.from.year <= item && value.to.year > item;
|
|
251
|
-
}
|
|
252
|
-
if (hoveredItem === null || value.from.year === hoveredItem) {
|
|
253
|
-
return false;
|
|
254
|
-
}
|
|
255
|
-
return tuiInRange(item, Math.min(value.from.year, hoveredItem), Math.max(value.from.year, hoveredItem));
|
|
224
|
+
return from < item && item < to ? 'middle' : null;
|
|
256
225
|
}
|
|
257
226
|
onItemHovered(hovered, item) {
|
|
258
227
|
this.updateHoveredItem(hovered, item);
|
|
259
228
|
}
|
|
260
229
|
get isSingle() {
|
|
261
|
-
return this.
|
|
230
|
+
return this.value instanceof TuiMonthRange
|
|
231
|
+
? this.value.from.monthSame(this.value.to)
|
|
232
|
+
: this.value instanceof TuiDayRange && this.value.isSingleDay;
|
|
262
233
|
}
|
|
263
234
|
get rows() {
|
|
264
235
|
return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);
|
|
265
236
|
}
|
|
266
|
-
isRange(item) {
|
|
267
|
-
return item instanceof TuiMonthRange;
|
|
268
|
-
}
|
|
269
237
|
scrollItemIntoView(item) {
|
|
270
238
|
return this.initialItem === item;
|
|
271
239
|
}
|
|
@@ -289,13 +257,13 @@ class TuiCalendarYear {
|
|
|
289
257
|
this.hoveredItem = hovered ? item : null;
|
|
290
258
|
}
|
|
291
259
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { value: "value", initialItem: "initialItem", min: "min", max: "max", disabledItemHandler: "disabledItemHandler" }, outputs: { yearClick: "yearClick" }, host: { properties: { "class.
|
|
260
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { value: "value", initialItem: "initialItem", min: "min", max: "max", disabledItemHandler: "disabledItemHandler" }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isSingle" } }, ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-base-alt)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-base-alt)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-start-start-radius:0;border-end-start-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-start-end-radius:0;border-end-end-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-base-alt);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-base-alt);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;inline-size:16rem}.t-cell{inline-size:4rem;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
293
261
|
}
|
|
294
262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarYear, decorators: [{
|
|
295
263
|
type: Component,
|
|
296
264
|
args: [{ standalone: true, selector: 'tui-calendar-year', imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
297
|
-
'[class.
|
|
298
|
-
}, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-
|
|
265
|
+
'[class._picking]': 'isSingle',
|
|
266
|
+
}, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-base-alt)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-base-alt)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-start-start-radius:0;border-end-start-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-start-end-radius:0;border-end-end-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-base-alt);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-base-alt);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;inline-size:16rem}.t-cell{inline-size:4rem;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
|
|
299
267
|
}], propDecorators: { value: [{
|
|
300
268
|
type: Input
|
|
301
269
|
}], initialItem: [{
|