ngx-tethys 19.1.0-next.1 → 19.1.0-next.11
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/CHANGELOG.md +114 -0
- package/arrow-switcher/arrow-switcher.component.d.ts +5 -1
- package/badge/badge.component.d.ts +1 -1
- package/color-picker/coordinates.directive.d.ts +1 -2
- package/date-picker/abstract-picker.component.d.ts +50 -52
- package/date-picker/abstract-picker.directive.d.ts +15 -40
- package/date-picker/base-picker.component.d.ts +12 -40
- package/date-picker/date-picker.config.d.ts +3 -0
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +24 -19
- package/date-picker/lib/calendar/calendar-header.component.d.ts +15 -15
- package/date-picker/lib/calendar/calendar-table.component.d.ts +15 -16
- package/date-picker/lib/date/date-table-cell.component.d.ts +6 -3
- package/date-picker/lib/date/date-table.component.d.ts +2 -3
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +2 -3
- package/date-picker/lib/decade/decade-header.component.d.ts +2 -5
- package/date-picker/lib/decade/decade-table.component.d.ts +3 -5
- package/date-picker/lib/month/month-table.component.d.ts +1 -2
- package/date-picker/lib/popups/date-popup.component.d.ts +33 -34
- package/date-picker/lib/popups/inner-popup.component.d.ts +22 -29
- package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -4
- package/date-picker/lib/year/year-header.component.d.ts +2 -4
- package/date-picker/lib/year/year-table.component.d.ts +2 -4
- package/date-picker/month-picker.component.d.ts +2 -2
- package/date-picker/picker.component.d.ts +31 -36
- package/date-picker/picker.pipes.d.ts +4 -5
- package/date-picker/picker.util.d.ts +5 -5
- package/date-picker/picker.validators.d.ts +4 -8
- package/date-picker/quarter-picker.component.d.ts +2 -3
- package/date-picker/styles/range-picker.scss +1 -0
- package/date-picker/week-picker.component.d.ts +0 -1
- package/date-picker/year-picker.component.d.ts +2 -3
- package/dropdown/dropdown-menu.component.d.ts +1 -1
- package/dropdown/dropdown.directive.d.ts +4 -3
- package/empty/empty.component.d.ts +2 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +15 -3
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +4 -4
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +2 -2
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +4 -6
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +2 -2
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +855 -1072
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +5 -5
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +9 -11
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +5 -2
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +4 -5
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +26 -6
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +5 -7
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +291 -334
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +183 -217
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +29 -36
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +33 -41
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +1 -0
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +4 -4
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +20 -17
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +164 -228
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +423 -587
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +1 -2
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +1 -2
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +244 -271
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +109 -93
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +215 -281
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +2 -2
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/i18n/i18n.d.ts +7 -2
- package/i18n/locales/de-de.d.ts +5 -1
- package/i18n/locales/en-us.d.ts +5 -1
- package/i18n/locales/ja-jp.d.ts +5 -1
- package/i18n/locales/zh-hans.d.ts +5 -1
- package/i18n/locales/zh-hant.d.ts +5 -1
- package/image/preview/image-preview.component.d.ts +2 -2
- package/layout/header.component.d.ts +15 -19
- package/layout/layout.component.d.ts +3 -2
- package/layout/sidebar-header.component.d.ts +7 -8
- package/layout/sidebar.component.d.ts +32 -62
- package/list/list-item-meta.component.d.ts +7 -9
- package/list/list-item.component.d.ts +0 -2
- package/list/list.component.d.ts +2 -8
- package/list/selection/selection-list.d.ts +33 -46
- package/message/abstract/abstract-message.component.d.ts +2 -3
- package/message/message-container.component.d.ts +0 -1
- package/message/message.component.d.ts +1 -3
- package/notify/notify-container.component.d.ts +0 -1
- package/notify/notify.component.d.ts +7 -12
- package/package.json +1 -1
- package/resizable/resizable.directive.d.ts +2 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/select/custom-select/custom-select.component.d.ts +33 -56
- package/select/native-select/native-select.component.d.ts +7 -13
- package/shared/base-form-check.component.d.ts +6 -8
- package/shared/directives/string-or-template-outlet.directive.d.ts +5 -6
- package/shared/directives/thy-autofocus.directive.d.ts +4 -6
- package/shared/directives/thy-contextmenu.directive.d.ts +2 -2
- package/shared/directives/thy-ctrl-enter.directive.d.ts +2 -2
- package/shared/directives/thy-enter.directive.d.ts +2 -2
- package/shared/directives/thy-scroll.directive.d.ts +5 -8
- package/shared/directives/thy-show.d.ts +5 -6
- package/shared/directives/thy-stop-propagation.directive.d.ts +4 -4
- package/shared/directives/view-outlet.directive.d.ts +6 -7
- package/shared/ng-transclude.directive.d.ts +2 -3
- package/shared/option/group/option-group.component.d.ts +5 -9
- package/shared/option/list-option/list-option.component.d.ts +9 -13
- package/shared/option/option.component.d.ts +10 -17
- package/shared/option/option.token.d.ts +4 -3
- package/shared/option/options-container.component.d.ts +1 -1
- package/shared/select/select-control/select-control.component.d.ts +38 -53
- package/stepper/stepper.component.d.ts +1 -1
- package/table/table-column.component.d.ts +15 -5
- package/time-picker/inner/inner-time-picker.class.d.ts +15 -13
- package/time-picker/inner/inner-time-picker.component.d.ts +26 -26
- package/time-picker/time-picker-panel.component.d.ts +18 -20
- package/time-picker/time-picker.component.d.ts +22 -30
- package/tooltip/tooltip.directive.d.ts +20 -22
- package/tree-select/tree-select.component.d.ts +53 -70
|
@@ -1,48 +1,44 @@
|
|
|
1
1
|
import { ThyPlacement } from 'ngx-tethys/core';
|
|
2
2
|
import { TinyDate } from 'ngx-tethys/util';
|
|
3
3
|
import { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
4
|
-
import { AfterViewInit, ElementRef
|
|
4
|
+
import { AfterViewInit, ElementRef } from '@angular/core';
|
|
5
5
|
import { CompatibleValue, RangePartType } from './inner-types';
|
|
6
6
|
import { ThyDateGranularity } from './standard-types';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "ngx-tethys/util";
|
|
9
8
|
/**
|
|
10
9
|
* @private
|
|
11
10
|
*/
|
|
12
|
-
export declare class ThyPicker implements
|
|
11
|
+
export declare class ThyPicker implements AfterViewInit {
|
|
13
12
|
private changeDetector;
|
|
14
13
|
private dateHelper;
|
|
15
14
|
private i18n;
|
|
16
|
-
isRange: boolean
|
|
17
|
-
|
|
18
|
-
disabled: boolean
|
|
19
|
-
placeholder: string | string[]
|
|
20
|
-
readonly: boolean
|
|
21
|
-
allowClear: boolean
|
|
22
|
-
autoFocus: boolean
|
|
23
|
-
className: string
|
|
24
|
-
size:
|
|
25
|
-
suffixIcon: string
|
|
26
|
-
placement: ThyPlacement
|
|
27
|
-
flexible: boolean
|
|
28
|
-
mode: string
|
|
29
|
-
hasBackdrop: boolean
|
|
30
|
-
separator: string
|
|
31
|
-
timeZone: string
|
|
32
|
-
blur:
|
|
33
|
-
readonly valueChange:
|
|
34
|
-
readonly openChange:
|
|
35
|
-
readonly inputChange:
|
|
36
|
-
origin: CdkOverlayOrigin
|
|
37
|
-
cdkConnectedOverlay: CdkConnectedOverlay
|
|
38
|
-
pickerInput: ElementRef
|
|
39
|
-
overlayContainer: ElementRef<HTMLElement
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
set flexibleDateGranularity(granularity: ThyDateGranularity);
|
|
44
|
-
get value(): TinyDate | TinyDate[] | null;
|
|
45
|
-
set value(value: TinyDate | TinyDate[] | null);
|
|
15
|
+
readonly isRange: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
16
|
+
readonly opened: import("@angular/core").InputSignal<boolean>;
|
|
17
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
18
|
+
readonly placeholder: import("@angular/core").InputSignal<string | string[]>;
|
|
19
|
+
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
20
|
+
readonly allowClear: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
21
|
+
readonly autoFocus: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
22
|
+
readonly className: import("@angular/core").InputSignal<string>;
|
|
23
|
+
readonly size: import("@angular/core").InputSignal<"default" | "sm" | "lg" | "xs" | "md">;
|
|
24
|
+
readonly suffixIcon: import("@angular/core").InputSignal<string>;
|
|
25
|
+
readonly placement: import("@angular/core").InputSignal<ThyPlacement>;
|
|
26
|
+
readonly flexible: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
27
|
+
readonly mode: import("@angular/core").InputSignal<string>;
|
|
28
|
+
readonly hasBackdrop: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
29
|
+
readonly separator: import("@angular/core").InputSignal<string>;
|
|
30
|
+
readonly timeZone: import("@angular/core").InputSignal<string>;
|
|
31
|
+
readonly blur: import("@angular/core").OutputEmitterRef<Event>;
|
|
32
|
+
readonly valueChange: import("@angular/core").OutputEmitterRef<TinyDate | TinyDate[]>;
|
|
33
|
+
readonly openChange: import("@angular/core").OutputEmitterRef<boolean>;
|
|
34
|
+
readonly inputChange: import("@angular/core").OutputEmitterRef<string>;
|
|
35
|
+
readonly origin: import("@angular/core").Signal<CdkOverlayOrigin>;
|
|
36
|
+
readonly cdkConnectedOverlay: import("@angular/core").Signal<CdkConnectedOverlay>;
|
|
37
|
+
readonly pickerInput: import("@angular/core").Signal<ElementRef<any>>;
|
|
38
|
+
readonly overlayContainer: import("@angular/core").Signal<ElementRef<HTMLElement>>;
|
|
39
|
+
readonly format: import("@angular/core").InputSignal<string>;
|
|
40
|
+
readonly flexibleDateGranularity: import("@angular/core").InputSignal<ThyDateGranularity>;
|
|
41
|
+
readonly value: import("@angular/core").InputSignal<TinyDate | TinyDate[]>;
|
|
46
42
|
private innerflexibleDateGranularity;
|
|
47
43
|
private innerFormat;
|
|
48
44
|
private innerValue;
|
|
@@ -53,7 +49,7 @@ export declare class ThyPicker implements OnChanges, AfterViewInit {
|
|
|
53
49
|
overlayPositions: ConnectionPositionPair[];
|
|
54
50
|
get realOpenState(): boolean;
|
|
55
51
|
get readonlyState(): boolean;
|
|
56
|
-
|
|
52
|
+
constructor();
|
|
57
53
|
ngAfterViewInit(): void;
|
|
58
54
|
focus(): void;
|
|
59
55
|
onBlur(event: FocusEvent): void;
|
|
@@ -76,6 +72,5 @@ export declare class ThyPicker implements OnChanges, AfterViewInit {
|
|
|
76
72
|
getPlaceholder(): string;
|
|
77
73
|
private updateReadableDate;
|
|
78
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyPicker, never>;
|
|
79
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ThyPicker, "thy-picker", ["thyPicker"], { "isRange": { "alias": "isRange"; "required": false; }; "
|
|
80
|
-
static ngAcceptInputType_hasBackdrop: i1.ThyBooleanInput;
|
|
75
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThyPicker, "thy-picker", ["thyPicker"], { "isRange": { "alias": "isRange"; "required": false; "isSignal": true; }; "opened": { "alias": "opened"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "allowClear": { "alias": "allowClear"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "flexible": { "alias": "flexible"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "timeZone": { "alias": "timeZone"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "flexibleDateGranularity": { "alias": "flexibleDateGranularity"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "blur": "blur"; "valueChange": "valueChange"; "openChange": "openChange"; "inputChange": "inputChange"; }, never, ["*"], true, never>;
|
|
81
76
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PipeTransform } from '@angular/core';
|
|
2
2
|
import { ThyDatePickerConfigService } from './date-picker.service';
|
|
3
3
|
import { AdvancedSelectableCell } from './inner-types';
|
|
4
|
-
import {
|
|
4
|
+
import { ThyCompatibleDate, DateEntry, ThyDateGranularity, ThyDateRangeEntry } from './standard-types';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* @private
|
|
@@ -10,14 +10,14 @@ export declare class ThyDatePickerFormatPipe implements PipeTransform {
|
|
|
10
10
|
private dateHelper;
|
|
11
11
|
private datePickerConfigService;
|
|
12
12
|
private i18n;
|
|
13
|
-
transform(originalValue:
|
|
13
|
+
transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry, formatStr?: string, separator?: string): string;
|
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyDatePickerFormatPipe, never>;
|
|
15
15
|
static ɵpipe: i0.ɵɵPipeDeclaration<ThyDatePickerFormatPipe, "thyDatePickerFormat", true>;
|
|
16
16
|
}
|
|
17
17
|
export declare class ThyQuarterPickerFormatPipe implements PipeTransform {
|
|
18
18
|
private datePickerConfigService;
|
|
19
19
|
constructor(datePickerConfigService: ThyDatePickerConfigService);
|
|
20
|
-
transform(originalValue:
|
|
20
|
+
transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry, formatStr?: string, separator?: string): string;
|
|
21
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyQuarterPickerFormatPipe, never>;
|
|
22
22
|
static ɵpipe: i0.ɵɵPipeDeclaration<ThyQuarterPickerFormatPipe, "thyQuarterPickerFormat", true>;
|
|
23
23
|
}
|
|
@@ -25,8 +25,7 @@ export declare class ThyQuarterPickerFormatPipe implements PipeTransform {
|
|
|
25
25
|
* @private
|
|
26
26
|
*/
|
|
27
27
|
export declare class ThyDatePickerFormatStringPipe implements PipeTransform {
|
|
28
|
-
|
|
29
|
-
transform(originalValue: CompatibleDate | DateEntry | ThyDateRangeEntry): string;
|
|
28
|
+
transform(originalValue: ThyCompatibleDate | DateEntry | ThyDateRangeEntry): string;
|
|
30
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyDatePickerFormatStringPipe, never>;
|
|
31
30
|
static ɵpipe: i0.ɵɵPipeDeclaration<ThyDatePickerFormatStringPipe, "thyDatePickerFormatString", true>;
|
|
32
31
|
}
|
|
@@ -3,16 +3,16 @@ import { ThyI18nLocale } from 'ngx-tethys/i18n';
|
|
|
3
3
|
import { SafeAny } from 'ngx-tethys/types';
|
|
4
4
|
import { TinyDate } from 'ngx-tethys/util';
|
|
5
5
|
import { CompatibleValue, RangeAdvancedValue } from './inner-types';
|
|
6
|
-
import {
|
|
7
|
-
export declare function transformDateValue(value:
|
|
8
|
-
value:
|
|
6
|
+
import { ThyCompatibleDate, DateEntry, ThyDateGranularity, ThyDateRangeEntry, ThyPanelMode, ThyShortcutValue } from './standard-types';
|
|
7
|
+
export declare function transformDateValue(value: ThyCompatibleDate | CompatibleValue | number | DateEntry | ThyDateRangeEntry | RangeAdvancedValue): {
|
|
8
|
+
value: ThyCompatibleDate;
|
|
9
9
|
withTime?: boolean;
|
|
10
10
|
flexibleDateGranularity?: ThyDateGranularity;
|
|
11
11
|
};
|
|
12
12
|
export declare function getFlexibleAdvancedReadableValue(tinyDates: TinyDate[], flexibleDateGranularity: ThyDateGranularity, separator: string, locale: Signal<ThyI18nLocale>): string;
|
|
13
13
|
export declare function convertDate(date: Date | number | TinyDate): Date;
|
|
14
14
|
export declare function hasValue(value: CompatibleValue): boolean;
|
|
15
|
-
export declare function makeValue(value:
|
|
15
|
+
export declare function makeValue(value: ThyCompatibleDate | null, isRange?: boolean, timeZone?: string): CompatibleValue;
|
|
16
16
|
export declare function dateAddAmount(value: TinyDate, amount: number, mode: ThyPanelMode): TinyDate;
|
|
17
17
|
export declare function isAfterMoreThanOneMonth(rightDate: TinyDate, leftDate: TinyDate): boolean;
|
|
18
18
|
export declare function isAfterMoreThanLessOneYear(rightDate: TinyDate, leftDate: TinyDate): boolean;
|
|
@@ -27,4 +27,4 @@ export declare function getShortcutValue(value: ThyShortcutValue): number | Date
|
|
|
27
27
|
export declare function isValidStringDate(dateStr: string, timeZone?: string): boolean;
|
|
28
28
|
export declare function parseStringDate(dateStr: string, timeZone?: string): TinyDate;
|
|
29
29
|
export declare function hasTimeInStringDate(dateStr: string, timeZone?: string): boolean;
|
|
30
|
-
export declare function setValueByTimestampPrecision(date:
|
|
30
|
+
export declare function setValueByTimestampPrecision(date: ThyCompatibleDate | number | Date | DateEntry | ThyDateRangeEntry | SafeAny, isRange: boolean, timestampPrecision: 'seconds' | 'milliseconds', timeZone?: string): number | number[];
|
|
@@ -4,23 +4,19 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* @private
|
|
5
5
|
*/
|
|
6
6
|
export declare class DatePickerRequiredValidator implements Validator {
|
|
7
|
-
|
|
8
|
-
get required(): boolean | string;
|
|
9
|
-
set required(value: boolean | string);
|
|
7
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
10
8
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
11
9
|
private validateRequired;
|
|
12
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerRequiredValidator, never>;
|
|
13
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DatePickerRequiredValidator, "[thyDatePicker][required][formControlName],[thyDatePicker][required][formControl],[thyDatePicker][required][ngModel],thy-date-picker[required][formControlName],thy-date-picker[required][formControl],thy-date-picker[required][ngModel]", never, { "required": { "alias": "required"; "required": false; }; }, {}, never, never, true, never>;
|
|
11
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DatePickerRequiredValidator, "[thyDatePicker][required][formControlName],[thyDatePicker][required][formControl],[thyDatePicker][required][ngModel],thy-date-picker[required][formControlName],thy-date-picker[required][formControl],thy-date-picker[required][ngModel]", never, { "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
12
|
}
|
|
15
13
|
/**
|
|
16
14
|
* @private
|
|
17
15
|
*/
|
|
18
16
|
export declare class RangePickerRequiredValidator implements Validator {
|
|
19
|
-
|
|
20
|
-
get required(): boolean | string;
|
|
21
|
-
set required(value: boolean | string);
|
|
17
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
22
18
|
validate(control: AbstractControl): ValidationErrors | null;
|
|
23
19
|
private validateRequired;
|
|
24
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<RangePickerRequiredValidator, never>;
|
|
25
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RangePickerRequiredValidator, "[thyRangePicker][required][formControlName],[thyRangePicker][required][formControl],[thyRangePicker][required][ngModel],thy-range-picker[required][formControlName],thy-range-picker[required][formControl],thy-range-picker[required][ngModel]", never, { "required": { "alias": "required"; "required": false; }; }, {}, never, never, true, never>;
|
|
21
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RangePickerRequiredValidator, "[thyRangePicker][required][formControlName],[thyRangePicker][required][formControl],[thyRangePicker][required][ngModel],thy-range-picker[required][formControlName],thy-range-picker[required][formControl],thy-range-picker[required][ngModel]", never, { "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
26
22
|
}
|
|
@@ -11,13 +11,12 @@ export declare class ThyQuarterPicker extends BasePicker {
|
|
|
11
11
|
protected elementRef: ElementRef;
|
|
12
12
|
/**
|
|
13
13
|
* 展示的季度格式
|
|
14
|
-
* @type string
|
|
15
14
|
*/
|
|
16
|
-
thyFormat: string
|
|
15
|
+
readonly thyFormat: import("@angular/core").ModelSignal<string>;
|
|
17
16
|
isRange: boolean;
|
|
18
17
|
endPanelMode: ThyPanelMode;
|
|
19
18
|
private hostRenderer;
|
|
20
19
|
constructor();
|
|
21
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyQuarterPicker, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ThyQuarterPicker, "thy-quarter-picker", ["thyQuarterPicker"], { "thyFormat": { "alias": "thyFormat"; "required": false; }; }, {}, never, never, true, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThyQuarterPicker, "thy-quarter-picker", ["thyQuarterPicker"], { "thyFormat": { "alias": "thyFormat"; "required": false; "isSignal": true; }; }, { "thyFormat": "thyFormatChange"; }, never, never, true, never>;
|
|
23
22
|
}
|
|
@@ -11,13 +11,12 @@ export declare class ThyYearPicker extends BasePicker {
|
|
|
11
11
|
protected elementRef: ElementRef;
|
|
12
12
|
/**
|
|
13
13
|
* 展示的年份格式
|
|
14
|
-
* @type string
|
|
15
14
|
*/
|
|
16
|
-
thyFormat: string
|
|
15
|
+
readonly thyFormat: import("@angular/core").ModelSignal<string>;
|
|
17
16
|
isRange: boolean;
|
|
18
17
|
endPanelMode: ThyPanelMode;
|
|
19
18
|
private hostRenderer;
|
|
20
19
|
constructor();
|
|
21
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyYearPicker, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ThyYearPicker, "thy-year-picker", ["thyYearPicker"], { "thyFormat": { "alias": "thyFormat"; "required": false; }; }, {}, never, never, true, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThyYearPicker, "thy-year-picker", ["thyYearPicker"], { "thyFormat": { "alias": "thyFormat"; "required": false; "isSignal": true; }; }, { "thyFormat": "thyFormatChange"; }, never, never, true, never>;
|
|
23
22
|
}
|
|
@@ -20,7 +20,7 @@ export declare class ThyDropdownMenuComponent {
|
|
|
20
20
|
/**
|
|
21
21
|
* 设置菜单宽度
|
|
22
22
|
*/
|
|
23
|
-
readonly thyWidth: import("@angular/core").InputSignalWithTransform<string,
|
|
23
|
+
readonly thyWidth: import("@angular/core").InputSignalWithTransform<string, string | number>;
|
|
24
24
|
/**
|
|
25
25
|
* 是否直接渲染 dropdown-menu 中的元素
|
|
26
26
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentType, OverlayRef } from '@angular/cdk/overlay';
|
|
2
|
-
import {
|
|
2
|
+
import { OnInit, Signal, TemplateRef } from '@angular/core';
|
|
3
3
|
import { ThyOverlayDirectiveBase, ThyPlacement } from 'ngx-tethys/core';
|
|
4
4
|
import { ThyPopoverConfig } from 'ngx-tethys/popover';
|
|
5
5
|
import { SafeAny } from 'ngx-tethys/types';
|
|
@@ -50,8 +50,9 @@ export declare class ThyDropdownDirective extends ThyOverlayDirectiveBase implem
|
|
|
50
50
|
readonly thyPopoverOptions: import("@angular/core").InputSignal<Pick<ThyPopoverConfig<unknown>, "height" | "minWidth" | "placement" | "insideClosable" | "outsideClosable">>;
|
|
51
51
|
/**
|
|
52
52
|
* 弹出框的显示位置,会覆盖 thyPopoverOptions 中的 placement,`top` | `topLeft` | `topRight` | `bottom` | `bottomLeft` | `bottomRight` | `left` | `leftTop` | `leftBottom` | `right` | `rightTop` | `rightBottom`
|
|
53
|
+
* @default bottomLeft
|
|
53
54
|
*/
|
|
54
|
-
readonly thyPlacement: import("@angular/core").
|
|
55
|
+
readonly thyPlacement: import("@angular/core").InputSignal<ThyPlacement>;
|
|
55
56
|
/**
|
|
56
57
|
* 点击 dropdown-menu 内部是否关闭弹出框,会覆盖 thyPopoverOptions 中的 insideClosable
|
|
57
58
|
*/
|
|
@@ -64,7 +65,7 @@ export declare class ThyDropdownDirective extends ThyOverlayDirectiveBase implem
|
|
|
64
65
|
/**
|
|
65
66
|
* 菜单 Active 事件,打开菜单返回 true,关闭返回 false
|
|
66
67
|
*/
|
|
67
|
-
thyActiveChange:
|
|
68
|
+
readonly thyActiveChange: import("@angular/core").OutputEmitterRef<boolean>;
|
|
68
69
|
constructor();
|
|
69
70
|
ngOnInit(): void;
|
|
70
71
|
createOverlay(): OverlayRef;
|
|
@@ -81,7 +81,8 @@ export declare class ThyEmpty implements AfterViewInit {
|
|
|
81
81
|
*/
|
|
82
82
|
readonly extraTemplateRef: Signal<TemplateRef<any>>;
|
|
83
83
|
protected readonly presetSvg: Signal<import("@angular/platform-browser").SafeHtml>;
|
|
84
|
-
protected readonly displayText:
|
|
84
|
+
protected readonly displayText: import("@angular/core").WritableSignal<any>;
|
|
85
|
+
setMessage(text: string): void;
|
|
85
86
|
constructor();
|
|
86
87
|
private _calculatePosition;
|
|
87
88
|
updateClass(): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ThyTooltipDirective, ThyTooltipModule } from 'ngx-tethys/tooltip';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, ChangeDetectorRef, signal, output, input, numberAttribute, computed, forwardRef, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
+
import { inject, ChangeDetectorRef, signal, output, input, numberAttribute, computed, linkedSignal, forwardRef, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { ThyButtonIcon, ThyButtonModule } from 'ngx-tethys/button';
|
|
6
6
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
@@ -55,6 +55,18 @@ class ThyArrowSwitcher {
|
|
|
55
55
|
this.nextDisabled = computed(() => {
|
|
56
56
|
return this.index() >= this.thyTotal() - 1 || this.disabled();
|
|
57
57
|
});
|
|
58
|
+
this.previousTooltip = linkedSignal(() => {
|
|
59
|
+
return this.thyPreviousTooltip();
|
|
60
|
+
});
|
|
61
|
+
this.nextTooltip = linkedSignal(() => {
|
|
62
|
+
return this.thyNextTooltip();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
setPreviousTooltip(value) {
|
|
66
|
+
this.previousTooltip.set(value);
|
|
67
|
+
}
|
|
68
|
+
setNextTooltip(value) {
|
|
69
|
+
this.nextTooltip.set(value);
|
|
58
70
|
}
|
|
59
71
|
writeValue(value) {
|
|
60
72
|
if (value >= 0) {
|
|
@@ -88,7 +100,7 @@ class ThyArrowSwitcher {
|
|
|
88
100
|
useExisting: forwardRef(() => ThyArrowSwitcher),
|
|
89
101
|
multi: true
|
|
90
102
|
}
|
|
91
|
-
], ngImport: i0, template: "@if (thyTheme() === 'lite') {\n <div class=\"switcher-wrapper\">\n <a\n thyAction\n [thyTooltip]=\"
|
|
103
|
+
], ngImport: i0, template: "@if (thyTheme() === 'lite') {\n <div class=\"switcher-wrapper\">\n <a\n thyAction\n [thyTooltip]=\"previousTooltip()\"\n href=\"javascript:;\"\n [thyDisabled]=\"previousDisabled()\"\n class=\"mr-2\"\n (click)=\"onPreviousClick($event)\"\n ><thy-icon thyIconName=\"angle-up\"></thy-icon\n ></a>\n <a thyAction [thyTooltip]=\"nextTooltip()\" href=\"javascript:;\" [thyDisabled]=\"nextDisabled()\" (click)=\"onNextClick($event)\"\n ><thy-icon thyIconName=\"angle-down\"></thy-icon\n ></a>\n </div>\n} @else {\n <div class=\"switcher-wrapper\">\n <button\n thyButtonIcon=\"angle-left\"\n [thyTooltip]=\"previousTooltip()\"\n [disabled]=\"previousDisabled()\"\n (click)=\"onPreviousClick($event)\"></button>\n <span>{{ index() + 1 }} / {{ thyTotal() }}</span>\n <button thyButtonIcon=\"angle-right\" [thyTooltip]=\"nextTooltip()\" [disabled]=\"nextDisabled()\" (click)=\"onNextClick($event)\"></button>\n </div>\n}\n", dependencies: [{ kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyButtonIcon, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: ["thySize", "thyIcon", "thyButtonIcon", "thyShape", "thyLight", "thyActive", "thyTheme", "thyColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
92
104
|
}
|
|
93
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyArrowSwitcher, decorators: [{
|
|
94
106
|
type: Component,
|
|
@@ -101,7 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
101
113
|
useExisting: forwardRef(() => ThyArrowSwitcher),
|
|
102
114
|
multi: true
|
|
103
115
|
}
|
|
104
|
-
], imports: [ThyAction, ThyTooltipDirective, ThyIcon, ThyButtonIcon], template: "@if (thyTheme() === 'lite') {\n <div class=\"switcher-wrapper\">\n <a\n thyAction\n [thyTooltip]=\"
|
|
116
|
+
], imports: [ThyAction, ThyTooltipDirective, ThyIcon, ThyButtonIcon], template: "@if (thyTheme() === 'lite') {\n <div class=\"switcher-wrapper\">\n <a\n thyAction\n [thyTooltip]=\"previousTooltip()\"\n href=\"javascript:;\"\n [thyDisabled]=\"previousDisabled()\"\n class=\"mr-2\"\n (click)=\"onPreviousClick($event)\"\n ><thy-icon thyIconName=\"angle-up\"></thy-icon\n ></a>\n <a thyAction [thyTooltip]=\"nextTooltip()\" href=\"javascript:;\" [thyDisabled]=\"nextDisabled()\" (click)=\"onNextClick($event)\"\n ><thy-icon thyIconName=\"angle-down\"></thy-icon\n ></a>\n </div>\n} @else {\n <div class=\"switcher-wrapper\">\n <button\n thyButtonIcon=\"angle-left\"\n [thyTooltip]=\"previousTooltip()\"\n [disabled]=\"previousDisabled()\"\n (click)=\"onPreviousClick($event)\"></button>\n <span>{{ index() + 1 }} / {{ thyTotal() }}</span>\n <button thyButtonIcon=\"angle-right\" [thyTooltip]=\"nextTooltip()\" [disabled]=\"nextDisabled()\" (click)=\"onNextClick($event)\"></button>\n </div>\n}\n" }]
|
|
105
117
|
}] });
|
|
106
118
|
|
|
107
119
|
class ThyArrowSwitcherModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-arrow-switcher.mjs","sources":["../../../src/arrow-switcher/arrow-switcher.component.ts","../../../src/arrow-switcher/arrow-switcher.component.html","../../../src/arrow-switcher/module.ts","../../../src/arrow-switcher/ngx-tethys-arrow-switcher.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n numberAttribute,\n inject,\n input,\n output,\n computed,\n Signal,\n WritableSignal,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\nimport { ThyAction } from 'ngx-tethys/action';\n\nexport type ThyArrowSwitcherTheme = 'default' | 'lite';\nexport interface ThyArrowSwitcherEvent {\n index: number;\n event: Event;\n}\n\n/**\n * 上下条切换组件\n * @name thy-arrow-switcher\n * @order 10\n */\n@Component({\n selector: 'thy-arrow-switcher',\n templateUrl: './arrow-switcher.component.html',\n host: {\n class: 'thy-arrow-switcher',\n '[class.thy-arrow-switcher-small]': 'isSmallSize()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyArrowSwitcher),\n multi: true\n }\n ],\n imports: [ThyAction, ThyTooltipDirective, ThyIcon, ThyButtonIcon]\n})\nexport class ThyArrowSwitcher implements ControlValueAccessor {\n private cd = inject(ChangeDetectorRef);\n\n private disabled: WritableSignal<boolean> = signal(false);\n\n /**\n * 点击上一条事件\n */\n readonly thyPrevious = output<ThyArrowSwitcherEvent>();\n\n /**\n * 点击下一条事件\n */\n readonly thyNext = output<ThyArrowSwitcherEvent>();\n\n /**\n * 设置上一条 Hover Tooltip 提示\n */\n readonly thyPreviousTooltip = input<string>();\n\n /**\n * 设置下一条 Hover Tooltip 提示\n */\n readonly thyNextTooltip = input<string>();\n\n /**\n * 展示主题\n * @type default | lite\n */\n readonly thyTheme = input<ThyArrowSwitcherTheme>('default');\n\n /**\n * 总条数\n */\n readonly thyTotal = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 尺寸大小,默认尺寸为大号,取值为`sm`时展示小号\n */\n readonly thySize = input<string>();\n\n readonly isSmallSize: Signal<boolean> = computed(() => {\n return this.thySize() === 'sm';\n });\n\n index: WritableSignal<number> = signal(0);\n\n readonly previousDisabled = computed(() => {\n return this.index() <= 0 || this.disabled();\n });\n\n readonly nextDisabled = computed(() => {\n return this.index() >= this.thyTotal() - 1 || this.disabled();\n });\n\n private onModelChange: (value: number) => void;\n\n private onModelTouched: () => void;\n\n writeValue(value: number): void {\n if (value >= 0) {\n this.index.set(value);\n }\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: () => void) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onModelTouched = fn;\n }\n\n setDisabledState(isDisable: boolean) {\n this.disabled.set(isDisable);\n }\n\n onPreviousClick(event: Event) {\n this.index.set(this.index() - 1);\n this.onModelChange(this.index());\n\n this.thyPrevious.emit({ index: this.index(), event });\n }\n\n onNextClick(event: Event) {\n this.index.set(this.index() + 1);\n this.onModelChange(this.index());\n\n this.thyNext.emit({ index: this.index(), event });\n }\n}\n","@if (thyTheme() === 'lite') {\n <div class=\"switcher-wrapper\">\n <a\n thyAction\n [thyTooltip]=\"thyPreviousTooltip()\"\n href=\"javascript:;\"\n [thyDisabled]=\"previousDisabled()\"\n class=\"mr-2\"\n (click)=\"onPreviousClick($event)\"\n ><thy-icon thyIconName=\"angle-up\"></thy-icon\n ></a>\n <a thyAction [thyTooltip]=\"thyNextTooltip()\" href=\"javascript:;\" [thyDisabled]=\"nextDisabled()\" (click)=\"onNextClick($event)\"\n ><thy-icon thyIconName=\"angle-down\"></thy-icon\n ></a>\n </div>\n} @else {\n <div class=\"switcher-wrapper\">\n <button\n thyButtonIcon=\"angle-left\"\n [thyTooltip]=\"thyPreviousTooltip()\"\n [disabled]=\"previousDisabled()\"\n (click)=\"onPreviousClick($event)\"></button>\n <span>{{ index() + 1 }} / {{ thyTotal() }}</span>\n <button thyButtonIcon=\"angle-right\" [thyTooltip]=\"thyNextTooltip()\" [disabled]=\"nextDisabled()\" (click)=\"onNextClick($event)\"></button>\n </div>\n}\n","import { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyArrowSwitcher } from './arrow-switcher.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyActionModule } from 'ngx-tethys/action';\n\n@NgModule({\n imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyActionModule, ThyTooltipModule, ThyArrowSwitcher],\n exports: [ThyArrowSwitcher]\n})\nexport class ThyArrowSwitcherModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-arrow-switcher.mjs","sources":["../../../src/arrow-switcher/arrow-switcher.component.ts","../../../src/arrow-switcher/arrow-switcher.component.html","../../../src/arrow-switcher/module.ts","../../../src/arrow-switcher/ngx-tethys-arrow-switcher.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n numberAttribute,\n inject,\n input,\n output,\n computed,\n Signal,\n WritableSignal,\n signal,\n linkedSignal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\nimport { ThyAction } from 'ngx-tethys/action';\n\nexport type ThyArrowSwitcherTheme = 'default' | 'lite';\nexport interface ThyArrowSwitcherEvent {\n index: number;\n event: Event;\n}\n\n/**\n * 上下条切换组件\n * @name thy-arrow-switcher\n * @order 10\n */\n@Component({\n selector: 'thy-arrow-switcher',\n templateUrl: './arrow-switcher.component.html',\n host: {\n class: 'thy-arrow-switcher',\n '[class.thy-arrow-switcher-small]': 'isSmallSize()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyArrowSwitcher),\n multi: true\n }\n ],\n imports: [ThyAction, ThyTooltipDirective, ThyIcon, ThyButtonIcon]\n})\nexport class ThyArrowSwitcher implements ControlValueAccessor {\n private cd = inject(ChangeDetectorRef);\n\n private disabled: WritableSignal<boolean> = signal(false);\n\n /**\n * 点击上一条事件\n */\n readonly thyPrevious = output<ThyArrowSwitcherEvent>();\n\n /**\n * 点击下一条事件\n */\n readonly thyNext = output<ThyArrowSwitcherEvent>();\n\n /**\n * 设置上一条 Hover Tooltip 提示\n */\n readonly thyPreviousTooltip = input<string>();\n\n /**\n * 设置下一条 Hover Tooltip 提示\n */\n readonly thyNextTooltip = input<string>();\n\n /**\n * 展示主题\n * @type default | lite\n */\n readonly thyTheme = input<ThyArrowSwitcherTheme>('default');\n\n /**\n * 总条数\n */\n readonly thyTotal = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 尺寸大小,默认尺寸为大号,取值为`sm`时展示小号\n */\n readonly thySize = input<string>();\n\n readonly isSmallSize: Signal<boolean> = computed(() => {\n return this.thySize() === 'sm';\n });\n\n protected readonly index: WritableSignal<number> = signal(0);\n\n readonly previousDisabled = computed(() => {\n return this.index() <= 0 || this.disabled();\n });\n\n readonly nextDisabled = computed(() => {\n return this.index() >= this.thyTotal() - 1 || this.disabled();\n });\n\n private onModelChange: (value: number) => void;\n\n private onModelTouched: () => void;\n\n protected readonly previousTooltip = linkedSignal(() => {\n return this.thyPreviousTooltip();\n });\n\n protected readonly nextTooltip = linkedSignal(() => {\n return this.thyNextTooltip();\n });\n\n public setPreviousTooltip(value: string) {\n this.previousTooltip.set(value);\n }\n\n public setNextTooltip(value: string) {\n this.nextTooltip.set(value);\n }\n\n writeValue(value: number): void {\n if (value >= 0) {\n this.index.set(value);\n }\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: () => void) {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onModelTouched = fn;\n }\n\n setDisabledState(isDisable: boolean) {\n this.disabled.set(isDisable);\n }\n\n onPreviousClick(event: Event) {\n this.index.set(this.index() - 1);\n this.onModelChange(this.index());\n\n this.thyPrevious.emit({ index: this.index(), event });\n }\n\n onNextClick(event: Event) {\n this.index.set(this.index() + 1);\n this.onModelChange(this.index());\n\n this.thyNext.emit({ index: this.index(), event });\n }\n}\n","@if (thyTheme() === 'lite') {\n <div class=\"switcher-wrapper\">\n <a\n thyAction\n [thyTooltip]=\"previousTooltip()\"\n href=\"javascript:;\"\n [thyDisabled]=\"previousDisabled()\"\n class=\"mr-2\"\n (click)=\"onPreviousClick($event)\"\n ><thy-icon thyIconName=\"angle-up\"></thy-icon\n ></a>\n <a thyAction [thyTooltip]=\"nextTooltip()\" href=\"javascript:;\" [thyDisabled]=\"nextDisabled()\" (click)=\"onNextClick($event)\"\n ><thy-icon thyIconName=\"angle-down\"></thy-icon\n ></a>\n </div>\n} @else {\n <div class=\"switcher-wrapper\">\n <button\n thyButtonIcon=\"angle-left\"\n [thyTooltip]=\"previousTooltip()\"\n [disabled]=\"previousDisabled()\"\n (click)=\"onPreviousClick($event)\"></button>\n <span>{{ index() + 1 }} / {{ thyTotal() }}</span>\n <button thyButtonIcon=\"angle-right\" [thyTooltip]=\"nextTooltip()\" [disabled]=\"nextDisabled()\" (click)=\"onNextClick($event)\"></button>\n </div>\n}\n","import { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyArrowSwitcher } from './arrow-switcher.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyActionModule } from 'ngx-tethys/action';\n\n@NgModule({\n imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyActionModule, ThyTooltipModule, ThyArrowSwitcher],\n exports: [ThyArrowSwitcher]\n})\nexport class ThyArrowSwitcherModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import { ThyLoadingModule } from 'ngx-tethys/loading';
|
|
|
11
11
|
import { ThyOptionSelectionChangeEvent, ThyStopPropagationDirective, ThyOption, THY_OPTION_PARENT_COMPONENT, ThyOptionModule, ThySharedModule } from 'ngx-tethys/shared';
|
|
12
12
|
import { Subject, defer, merge, timer, of, fromEvent } from 'rxjs';
|
|
13
13
|
import { take, switchMap, startWith, takeUntil, filter, map, delay } from 'rxjs/operators';
|
|
14
|
+
import { outputToObservable } from '@angular/core/rxjs-interop';
|
|
14
15
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
15
16
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
16
17
|
import { coerceBooleanProperty, ESCAPE, ENTER, UP_ARROW, DOWN_ARROW, TAB } from 'ngx-tethys/util';
|
|
@@ -21,7 +22,6 @@ import { coerceElement, coerceArray } from '@angular/cdk/coercion';
|
|
|
21
22
|
import { Platform } from '@angular/cdk/platform';
|
|
22
23
|
import { ViewportRuler } from '@angular/cdk/scrolling';
|
|
23
24
|
import { state, style, trigger } from '@angular/animations';
|
|
24
|
-
import { outputToObservable } from '@angular/core/rxjs-interop';
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* 自动完成组件
|
|
@@ -43,7 +43,7 @@ class ThyAutocomplete {
|
|
|
43
43
|
this.optionsContainer = viewChild('panel');
|
|
44
44
|
this.optionSelectionChanges = defer(() => {
|
|
45
45
|
if (this.options) {
|
|
46
|
-
return merge(...this.options.map(option => option.selectionChange));
|
|
46
|
+
return merge(...this.options.map(option => outputToObservable(option.selectionChange)));
|
|
47
47
|
}
|
|
48
48
|
return this.ngZone.onStable.asObservable().pipe(take(1), switchMap(() => this.optionSelectionChanges));
|
|
49
49
|
});
|
|
@@ -127,8 +127,8 @@ class ThyAutocomplete {
|
|
|
127
127
|
this.selectionModel.clear();
|
|
128
128
|
}
|
|
129
129
|
else {
|
|
130
|
-
if (wasSelected !== option.selected) {
|
|
131
|
-
option.selected ? this.selectionModel.select(option) : this.selectionModel.deselect(option);
|
|
130
|
+
if (wasSelected !== option.selected()) {
|
|
131
|
+
option.selected() ? this.selectionModel.select(option) : this.selectionModel.deselect(option);
|
|
132
132
|
}
|
|
133
133
|
if (isUserInput) {
|
|
134
134
|
this.keyManager.setActiveItem(option);
|