ngx-tethys 18.2.0-next.0 → 18.2.0-next.2
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 +56 -0
- package/autocomplete/autocomplete.component.d.ts +4 -2
- package/calendar/calendar-header.component.d.ts +2 -0
- package/cascader/cascader.component.d.ts +3 -1
- package/color-picker/color-picker-panel.component.d.ts +3 -1
- package/copy/copy.directive.d.ts +1 -0
- package/core/overlay/abstract-overlay-ref.d.ts +4 -0
- package/core/overlay/abstract-overlay.service.d.ts +1 -1
- package/core/theme/store.d.ts +2 -1
- package/core/theme/theme.d.ts +2 -0
- package/date-picker/abstract-picker.component.d.ts +3 -1
- package/date-picker/date-helper.service.d.ts +3 -0
- package/date-picker/date-picker.config.d.ts +7 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +3 -1
- package/date-picker/lib/calendar/calendar-header.component.d.ts +3 -1
- package/date-picker/lib/calendar/calendar-table.component.d.ts +3 -1
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +4 -1
- package/date-picker/lib/popups/date-popup.component.d.ts +3 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +3 -1
- package/date-range/date-range.component.d.ts +2 -0
- package/date-range/optional-dates/optional-dates.component.d.ts +1 -0
- package/dialog/confirm/confirm.component.d.ts +1 -0
- package/dialog/confirm.config.d.ts +14 -7
- package/dialog/dialog-ref.d.ts +10 -2
- package/dialog/dialog.service.d.ts +6 -0
- package/empty/empty.component.d.ts +14 -9
- package/empty/empty.config.d.ts +3 -0
- package/esm2022/autocomplete/autocomplete.component.mjs +9 -5
- package/esm2022/calendar/calendar-header.component.mjs +9 -5
- package/esm2022/cascader/cascader.component.mjs +9 -6
- package/esm2022/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/color-picker/color-picker-panel.component.mjs +5 -3
- package/esm2022/copy/copy.directive.mjs +7 -5
- package/esm2022/core/overlay/abstract-overlay-ref.mjs +2 -2
- package/esm2022/core/overlay/abstract-overlay.service.mjs +2 -2
- package/esm2022/core/theme/store.mjs +7 -7
- package/esm2022/core/theme/theme.mjs +9 -2
- package/esm2022/date-picker/abstract-picker.component.mjs +4 -2
- package/esm2022/date-picker/base-picker.component.mjs +2 -2
- package/esm2022/date-picker/date-helper.service.mjs +4 -2
- package/esm2022/date-picker/date-picker.component.mjs +1 -1
- package/esm2022/date-picker/date-picker.config.mjs +55 -2
- package/esm2022/date-picker/date-picker.directive.mjs +1 -1
- package/esm2022/date-picker/date-picker.service.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -3
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -1
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -1
- package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -5
- package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +9 -4
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -2
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +5 -3
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -3
- package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
- package/esm2022/date-picker/month-picker.component.mjs +1 -1
- package/esm2022/date-picker/quarter-picker.component.mjs +1 -1
- package/esm2022/date-picker/range-picker.component.mjs +1 -1
- package/esm2022/date-picker/range-picker.directive.mjs +1 -1
- package/esm2022/date-picker/week-picker.component.mjs +1 -1
- package/esm2022/date-picker/year-picker.component.mjs +1 -1
- package/esm2022/date-range/date-range.component.mjs +7 -4
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -2
- package/esm2022/dialog/confirm/confirm.component.mjs +14 -3
- package/esm2022/dialog/confirm.config.mjs +17 -2
- package/esm2022/dialog/dialog-ref.mjs +9 -6
- package/esm2022/dialog/dialog.service.mjs +27 -3
- package/esm2022/empty/empty.component.mjs +7 -2
- package/esm2022/empty/empty.config.mjs +4 -1
- package/esm2022/form/form-validator-loader.mjs +17 -15
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +5 -3
- package/esm2022/i18n/i18n.mjs +9 -0
- package/esm2022/i18n/i18n.service.mjs +45 -0
- package/esm2022/i18n/i18n.token.mjs +10 -0
- package/esm2022/i18n/index.mjs +10 -0
- package/esm2022/i18n/locale.mjs +14 -0
- package/esm2022/i18n/locales/de-de.mjs +130 -0
- package/esm2022/i18n/locales/en-us.mjs +151 -0
- package/esm2022/i18n/locales/ja-jp.mjs +130 -0
- package/esm2022/i18n/locales/zh-hans.mjs +130 -0
- package/esm2022/i18n/locales/zh-hant.mjs +130 -0
- package/esm2022/i18n/ngx-tethys-i18n.mjs +5 -0
- package/esm2022/nav/nav.component.mjs +5 -3
- package/esm2022/pagination/pagination.component.mjs +22 -5
- package/esm2022/pagination/pagination.module.mjs +26 -5
- package/esm2022/pagination/pagination.pipe.mjs +25 -1
- package/esm2022/property/property-item.component.mjs +3 -3
- package/esm2022/radio/button/radio-button.component.mjs +1 -1
- package/esm2022/radio/radio.component.mjs +1 -1
- package/esm2022/select/custom-select/custom-select.component.mjs +13 -6
- package/esm2022/strength/strength.component.mjs +21 -20
- package/esm2022/time-picker/time-picker-panel.component.mjs +5 -3
- package/esm2022/time-picker/time-picker.component.mjs +4 -2
- package/esm2022/tooltip/tooltip-ref.mjs +4 -1
- package/esm2022/transfer/transfer-list.component.mjs +5 -3
- package/esm2022/tree-select/tree-select.component.mjs +9 -6
- package/esm2022/version.mjs +2 -2
- package/fesm2022/ngx-tethys-autocomplete.mjs +8 -5
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +8 -5
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +8 -5
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +4 -2
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +6 -4
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +14 -7
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +95 -30
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +8 -4
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +61 -10
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +9 -1
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +16 -14
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +4 -2
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +747 -0
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -0
- package/fesm2022/ngx-tethys-nav.mjs +4 -2
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +69 -7
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +2 -2
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +12 -5
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +20 -19
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +6 -3
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +3 -0
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +4 -2
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +8 -5
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/form-validator-loader.d.ts +2 -0
- package/guider/guider-hint/guider-hint.component.d.ts +3 -1
- package/i18n/i18n.d.ts +154 -0
- package/i18n/i18n.service.d.ts +19 -0
- package/i18n/i18n.token.d.ts +8 -0
- package/i18n/index.d.ts +9 -0
- package/i18n/locale.d.ts +4 -0
- package/i18n/locales/de-de.d.ts +130 -0
- package/i18n/locales/en-us.d.ts +151 -0
- package/i18n/locales/ja-jp.d.ts +130 -0
- package/i18n/locales/zh-hans.d.ts +130 -0
- package/i18n/locales/zh-hant.d.ts +130 -0
- package/nav/nav.component.d.ts +3 -1
- package/package.json +7 -1
- package/pagination/pagination.component.d.ts +4 -1
- package/pagination/pagination.module.d.ts +1 -1
- package/pagination/pagination.pipe.d.ts +6 -0
- package/radio/radio.component.d.ts +0 -2
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/select/custom-select/custom-select.component.d.ts +3 -1
- package/strength/strength.component.d.ts +21 -2
- package/styles/modules/cdk/drag-drop.scss +1 -1
- package/time-picker/time-picker-panel.component.d.ts +3 -1
- package/time-picker/time-picker.component.d.ts +3 -1
- package/transfer/transfer-list.component.d.ts +3 -1
- package/tree-select/tree-select.component.d.ts +3 -1
|
@@ -7,6 +7,7 @@ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
|
7
7
|
import { ThyPopover } from 'ngx-tethys/popover';
|
|
8
8
|
import { ThyRangePickerDirective, ThyDatePickerFormatPipe, ThyDatePickerModule } from 'ngx-tethys/date-picker';
|
|
9
9
|
import { ThyDropdownMenuComponent, ThyDropdownMenuItemDirective, ThyDropdownMenuItemNameDirective, ThyDropdownMenuItemExtendIconDirective, ThyDropdownModule } from 'ngx-tethys/dropdown';
|
|
10
|
+
import { injectLocale } from 'ngx-tethys/i18n';
|
|
10
11
|
import { getUnixTime, startOfISOWeek, endOfISOWeek, startOfMonth, endOfMonth, addDays, addMonths, endOfDay, isSameDay, startOfDay, addYears } from 'date-fns';
|
|
11
12
|
import { ThyAction } from 'ngx-tethys/action';
|
|
12
13
|
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
@@ -19,8 +20,9 @@ import { ThyNavModule } from 'ngx-tethys/nav';
|
|
|
19
20
|
class OptionalDateRanges {
|
|
20
21
|
constructor() {
|
|
21
22
|
this.thyPopover = inject(ThyPopover);
|
|
23
|
+
this.locale = injectLocale('dateRange');
|
|
22
24
|
this.hiddenMenu = false;
|
|
23
|
-
this.customValue =
|
|
25
|
+
this.customValue = this.locale().custom;
|
|
24
26
|
}
|
|
25
27
|
ngOnInit() { }
|
|
26
28
|
_selectDateRange(dateRange) {
|
|
@@ -68,6 +70,7 @@ class ThyDateRange {
|
|
|
68
70
|
constructor() {
|
|
69
71
|
this.thyPopover = inject(ThyPopover);
|
|
70
72
|
this.cdr = inject(ChangeDetectorRef);
|
|
73
|
+
this.locale = injectLocale('dateRange');
|
|
71
74
|
/**
|
|
72
75
|
* 隐藏下拉选择时间段
|
|
73
76
|
* @default false
|
|
@@ -80,8 +83,9 @@ class ThyDateRange {
|
|
|
80
83
|
this.thyDisabledSwitch = false;
|
|
81
84
|
/**
|
|
82
85
|
* 自定义日期选择的展示文字
|
|
86
|
+
* @default 自定义
|
|
83
87
|
*/
|
|
84
|
-
this.thyCustomTextValue =
|
|
88
|
+
this.thyCustomTextValue = this.locale().custom;
|
|
85
89
|
/**
|
|
86
90
|
* 选中的时间段的展示形式,
|
|
87
91
|
* <br/> `custom`形式:`2023-07-01 ~ 2023-07-31`;
|
|
@@ -96,7 +100,7 @@ class ThyDateRange {
|
|
|
96
100
|
this.optionalDateRanges = [
|
|
97
101
|
{
|
|
98
102
|
key: 'week',
|
|
99
|
-
text:
|
|
103
|
+
text: this.locale().currentWeek,
|
|
100
104
|
begin: getUnixTime(startOfISOWeek(new Date())),
|
|
101
105
|
end: getUnixTime(endOfISOWeek(new Date())),
|
|
102
106
|
timestamp: {
|
|
@@ -106,7 +110,7 @@ class ThyDateRange {
|
|
|
106
110
|
},
|
|
107
111
|
{
|
|
108
112
|
key: 'month',
|
|
109
|
-
text:
|
|
113
|
+
text: this.locale().currentMonth,
|
|
110
114
|
begin: getUnixTime(startOfMonth(new Date())),
|
|
111
115
|
end: getUnixTime(endOfMonth(new Date())),
|
|
112
116
|
timestamp: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-date-range.mjs","sources":["../../../src/date-range/optional-dates/optional-dates.component.ts","../../../src/date-range/optional-dates/optional-dates.component.html","../../../src/date-range/date-range.component.ts","../../../src/date-range/date-range.component.html","../../../src/date-range/module.ts","../../../src/date-range/date-range.class.ts","../../../src/date-range/ngx-tethys-date-range.ts"],"sourcesContent":["import { Component, OnInit, inject } from '@angular/core';\nimport { DateRangeItemInfo } from '../date-range.class';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { FormsModule } from '@angular/forms';\nimport { ThyRangePickerDirective } from 'ngx-tethys/date-picker';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport {\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemExtendIconDirective\n} from 'ngx-tethys/dropdown';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-range-optional',\n templateUrl: './optional-dates.component.html',\n standalone: true,\n imports: [\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyIcon,\n ThyRangePickerDirective,\n FormsModule\n ]\n})\nexport class OptionalDateRanges implements OnInit {\n private thyPopover = inject(ThyPopover);\n\n hiddenMenu = false;\n\n optionalDateRanges: DateRangeItemInfo[];\n\n customValue = '自定义';\n\n customKey: string;\n\n minDate: number | Date;\n\n maxDate: number | Date;\n\n disabledDate: (d: Date) => boolean;\n\n selectedDateRange: (date: DateRangeItemInfo) => void;\n\n calendarChange: (date: Date[]) => void;\n\n selectedDate: DateRangeItemInfo;\n\n ngOnInit() {}\n\n _selectDateRange(dateRange: DateRangeItemInfo) {\n this.selectedDate = dateRange;\n this.selectedDateRange(dateRange);\n this.thyPopover.close();\n }\n\n _selectedCustomDate(date: DateRangeItemInfo) {\n this.selectedDate = {\n begin: date.begin,\n end: date.end,\n key: this.customKey,\n text: this.customValue\n };\n this.selectedDateRange(this.selectedDate);\n }\n}\n","@if (!hiddenMenu) {\n <thy-dropdown-menu thyImmediateRender class=\"thy-date-range-dropdown-menu-container\">\n @for (dateRange of optionalDateRanges; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"_selectDateRange(dateRange)\">\n <span thyDropdownMenuItemName>{{ dateRange?.text }}</span>\n @if (dateRange.key === selectedDate?.key) {\n <span thyDropdownMenuItemExtendIcon>\n <thy-icon class=\"text-primary\" thyIconName=\"check\"></thy-icon>\n </span>\n }\n </a>\n }\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n thyRangePicker\n [(ngModel)]=\"selectedDate\"\n [thyMinDate]=\"minDate\"\n [thyMaxDate]=\"maxDate\"\n [thyDisabledDate]=\"disabledDate\"\n (ngModelChange)=\"_selectedCustomDate($event)\"\n (thyOnCalendarChange)=\"calendarChange($event)\">\n <span thyDropdownMenuItemName>{{ customValue }}</span>\n @if (customKey === selectedDate?.key) {\n <span thyDropdownMenuItemExtendIcon>\n <thy-icon class=\"text-primary\" thyIconName=\"check\"></thy-icon>\n </span>\n }\n </a>\n </thy-dropdown-menu>\n}\n","import { Component, forwardRef, OnInit, Input, ChangeDetectorRef, Output, EventEmitter, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { DateRangeItemInfo } from './date-range.class';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { OptionalDateRanges } from './optional-dates/optional-dates.component';\n\nimport {\n getUnixTime,\n startOfISOWeek,\n endOfISOWeek,\n endOfMonth,\n startOfMonth,\n addDays,\n addMonths,\n addYears,\n isSameDay,\n endOfDay,\n startOfDay\n} from 'date-fns';\nimport { ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { NgClass } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst allDayTimestamp = 24 * 60 * 60;\n\nconst INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyDateRange),\n multi: true\n};\n\n/**\n * 预设时间段及自定义时间段选择组件\n * @name thy-date-range\n * @order 10\n */\n@Component({\n selector: 'thy-date-range',\n templateUrl: './date-range.component.html',\n providers: [INPUT_CONTROL_VALUE_ACCESSOR],\n standalone: true,\n imports: [ThyAction, ThyIcon, NgClass, ThyDatePickerFormatPipe]\n})\nexport class ThyDateRange implements OnInit, ControlValueAccessor {\n private thyPopover = inject(ThyPopover);\n private cdr = inject(ChangeDetectorRef);\n\n /**\n * 自定义可选值列表项\n * @type DateRangeItemInfo[]\n */\n @Input()\n set thyOptionalDateRanges(value: DateRangeItemInfo[]) {\n this.optionalDateRanges = value.length > 0 ? value : this.optionalDateRanges;\n }\n\n /**\n * 隐藏下拉选择时间段\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyHiddenMenu = false;\n\n /**\n * 禁用左右切换时间段\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabledSwitch = false;\n\n /**\n * 自定义日期选择的展示文字\n */\n @Input() thyCustomTextValue = '自定义';\n\n /**\n * 自定义日期选择中可选择的最小时间\n * @type Date | number\n */\n @Input() thyMinDate: Date | number;\n\n /**\n * 自定义日期选择中可选择的最大时间\n * @type Date | number\n */\n @Input() thyMaxDate: Date | number;\n\n /**\n * 选中的时间段的展示形式,\n * <br/> `custom`形式:`2023-07-01 ~ 2023-07-31`;\n * <br/> `exception`形式:`2023-07-01`,具体展示还与`thyPickerFormat`有关。\n */\n @Input() thyCustomKey: 'custom' | 'exception' = 'custom';\n\n /**\n * 自定义日期展示格式,比如`yyyy年MM月`,只有当`thyCustomKey`值设为`exception`时才会生效\n */\n @Input() thyPickerFormat: string;\n\n /**\n * 自定义日期禁用日期\n */\n @Input() thyDisabledDate: (d: Date) => boolean;\n\n /**\n * 自定义日期选择日期回调\n * @type EventEmitter<Date[]>\n */\n @Output() readonly thyOnCalendarChange = new EventEmitter<Date[]>();\n\n public selectedDate?: DateRangeItemInfo;\n\n public optionalDateRanges: DateRangeItemInfo[] = [\n {\n key: 'week',\n text: '本周',\n begin: getUnixTime(startOfISOWeek(new Date())),\n end: getUnixTime(endOfISOWeek(new Date())),\n timestamp: {\n interval: 7,\n unit: 'day'\n }\n },\n {\n key: 'month',\n text: '本月',\n begin: getUnixTime(startOfMonth(new Date())),\n end: getUnixTime(endOfMonth(new Date())),\n timestamp: {\n interval: 1,\n unit: 'month'\n }\n }\n ];\n\n public selectedDateRange: {\n begin: number;\n end: number;\n };\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n writeValue(value: any): void {\n if (value) {\n this.selectedDate = value;\n } else if (this.optionalDateRanges.length > 0) {\n this.selectedDate = this.optionalDateRanges[0];\n this.onModelChange(this.selectedDate);\n }\n this._setSelectedDateRange();\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onModelTouched = fn;\n }\n\n ngOnInit() {}\n\n private _setSelectedDateRange() {\n this.selectedDateRange = {\n begin: this.selectedDate.begin,\n end: this.selectedDate.end\n };\n }\n\n private _calculateNewTime(type: string) {\n if (this.selectedDate.timestamp) {\n const beginDate = new Date(this.selectedDate.begin * 1000);\n const endDate = new Date(this.selectedDate.end * 1000);\n const interval = this.selectedDate.timestamp.interval;\n\n if (this.selectedDate.timestamp.unit === 'day') {\n if (type === 'previous') {\n return {\n begin: getUnixTime(addDays(beginDate, -1 * interval)),\n end: getUnixTime(addDays(endDate, -1 * interval)),\n key: this.thyCustomKey\n };\n } else {\n return {\n begin: getUnixTime(addDays(beginDate, 1 * interval)),\n end: getUnixTime(addDays(endDate, 1 * interval)),\n key: this.thyCustomKey\n };\n }\n } else if (this.selectedDate.timestamp.unit === 'month') {\n if (type === 'previous') {\n return {\n begin: getUnixTime(addMonths(beginDate, -1 * interval)),\n end: getUnixTime(endOfDay(addDays(beginDate, -1))),\n key: this.thyCustomKey\n };\n } else {\n const endIsEndDayOfMonth = isSameDay(endDate, endOfMonth(endDate));\n return {\n begin: getUnixTime(startOfDay(addDays(endDate, 1))),\n end: endIsEndDayOfMonth\n ? getUnixTime(endOfMonth(addMonths(endDate, 1 * interval)))\n : getUnixTime(addMonths(endDate, 1 * interval)),\n key: this.thyCustomKey\n };\n }\n } else if (this.selectedDate.timestamp.unit === 'year') {\n if (type === 'previous') {\n return {\n begin: getUnixTime(addYears(beginDate, -1 * interval)),\n end: getUnixTime(addYears(endDate, -1 * interval)),\n key: this.thyCustomKey\n };\n } else {\n return {\n begin: getUnixTime(addYears(beginDate, 1 * interval)),\n end: getUnixTime(addYears(endDate, 1 * interval)),\n key: this.thyCustomKey\n };\n }\n }\n } else {\n const interval: number = this.selectedDate.end - this.selectedDate.begin + allDayTimestamp;\n if (type === 'previous') {\n return {\n begin: this.selectedDate.begin - interval,\n end: this.selectedDate.end - interval,\n key: this.thyCustomKey\n };\n } else {\n return {\n begin: this.selectedDate.begin + interval,\n end: this.selectedDate.end + interval,\n key: this.thyCustomKey\n };\n }\n }\n }\n\n private _setPreviousOrNextDate(type: string) {\n this.selectedDate = Object.assign({}, this.selectedDate, this._calculateNewTime(type));\n this._setSelectedDateRange();\n this.onModelChange(this.selectedDate);\n }\n\n public previous() {\n this._setPreviousOrNextDate('previous');\n }\n\n public next() {\n this._setPreviousOrNextDate('next');\n }\n\n public openOptionalDateRangesMenu(event: Event) {\n if (this.thyHiddenMenu) {\n return;\n }\n this.thyPopover.open(OptionalDateRanges, {\n origin: event.currentTarget as HTMLElement,\n hasBackdrop: true,\n backdropClass: 'thy-overlay-transparent-backdrop',\n offset: 0,\n manualClosure: true,\n originActiveClass: 'thy-date-range-text-active',\n initialState: {\n hiddenMenu: this.thyHiddenMenu,\n optionalDateRanges: this.optionalDateRanges,\n selectedDate: this.selectedDate,\n minDate: this.thyMinDate,\n maxDate: this.thyMaxDate,\n customValue: this.thyCustomTextValue,\n customKey: this.thyCustomKey,\n disabledDate: this.thyDisabledDate,\n selectedDateRange: (dateRange: DateRangeItemInfo) => {\n this.onModelChange(dateRange);\n this.selectedDate = dateRange;\n },\n calendarChange: (date: Date[]) => {\n this.thyOnCalendarChange.emit(date);\n }\n }\n });\n }\n}\n","<div class=\"thy-date-range-container\">\n @if (!thyDisabledSwitch) {\n <a thyAction thyIcon=\"angle-left\" href=\"javascript:;\" (click)=\"previous()\"></a>\n }\n <span\n href=\"javascript:;\"\n (click)=\"openOptionalDateRangesMenu($event)\"\n class=\"thy-date-range-text\"\n [ngClass]=\"{ 'thy-date-range-disabled': thyHiddenMenu }\">\n @if (selectedDate?.key === 'custom') {\n {{ selectedDate?.begin | thyDatePickerFormat }} ~ {{ selectedDate?.end | thyDatePickerFormat }}\n }\n @if (selectedDate?.key === 'exception') {\n {{ selectedDate?.begin | thyDatePickerFormat : thyPickerFormat }}\n }\n @if (selectedDate?.key !== 'custom' && selectedDate?.key !== 'exception') {\n {{ selectedDate?.text }}\n }\n @if (!thyHiddenMenu) {\n <thy-icon class=\"thy-date-range-text-caret-down ml-2\" thyIconName=\"angle-down\"></thy-icon>\n }\n </span>\n @if (!thyDisabledSwitch) {\n <a thyAction thyIcon=\"angle-right\" href=\"javascript:;\" (click)=\"next()\"></a>\n }\n</div>\n","import { ThyIconModule } from 'ngx-tethys/icon';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyDateRange } from './date-range.component';\nimport { ThyDropdownModule } from 'ngx-tethys/dropdown';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyDatePickerModule } from 'ngx-tethys/date-picker';\nimport { OptionalDateRanges } from './optional-dates/optional-dates.component';\nimport { ThyNavModule } from 'ngx-tethys/nav';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThyDropdownModule,\n ThySharedModule,\n ThyIconModule,\n ThyDatePickerModule,\n ThyNavModule,\n ThyDateRange,\n OptionalDateRanges\n ],\n exports: [ThyDateRange]\n})\nexport class ThyDateRangeModule {}\n","export type AttachTypes = 'day' | 'month' | 'year';\n\n/**\n * @order 20\n */\nexport class DateRangeItemInfo {\n /**\n * 开始时间\n */\n begin?: number;\n\n /**\n * 截止时间\n */\n end?: number;\n\n /**\n * 时间段的唯一标识,如'week'、'month'\n */\n key?: string;\n\n /**\n * 时间段的展示文本\n */\n text?: string;\n\n /**\n * 自定义时间段规则,interval为时间间隔;unit可选值有'day' | 'month' | 'year'\n */\n timestamp?: { interval?: number; unit?: AttachTypes };\n}\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-date-range.mjs","sources":["../../../src/date-range/optional-dates/optional-dates.component.ts","../../../src/date-range/optional-dates/optional-dates.component.html","../../../src/date-range/date-range.component.ts","../../../src/date-range/date-range.component.html","../../../src/date-range/module.ts","../../../src/date-range/date-range.class.ts","../../../src/date-range/ngx-tethys-date-range.ts"],"sourcesContent":["import { Component, OnInit, Signal, inject } from '@angular/core';\nimport { DateRangeItemInfo } from '../date-range.class';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { FormsModule } from '@angular/forms';\nimport { ThyRangePickerDirective } from 'ngx-tethys/date-picker';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport {\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemExtendIconDirective\n} from 'ngx-tethys/dropdown';\nimport { injectLocale, ThyDateRangeLocale } from 'ngx-tethys/i18n';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'date-range-optional',\n templateUrl: './optional-dates.component.html',\n standalone: true,\n imports: [\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuItemExtendIconDirective,\n ThyIcon,\n ThyRangePickerDirective,\n FormsModule\n ]\n})\nexport class OptionalDateRanges implements OnInit {\n private thyPopover = inject(ThyPopover);\n private locale: Signal<ThyDateRangeLocale> = injectLocale('dateRange');\n\n hiddenMenu = false;\n\n optionalDateRanges: DateRangeItemInfo[];\n\n customValue = this.locale().custom;\n\n customKey: string;\n\n minDate: number | Date;\n\n maxDate: number | Date;\n\n disabledDate: (d: Date) => boolean;\n\n selectedDateRange: (date: DateRangeItemInfo) => void;\n\n calendarChange: (date: Date[]) => void;\n\n selectedDate: DateRangeItemInfo;\n\n ngOnInit() {}\n\n _selectDateRange(dateRange: DateRangeItemInfo) {\n this.selectedDate = dateRange;\n this.selectedDateRange(dateRange);\n this.thyPopover.close();\n }\n\n _selectedCustomDate(date: DateRangeItemInfo) {\n this.selectedDate = {\n begin: date.begin,\n end: date.end,\n key: this.customKey,\n text: this.customValue\n };\n this.selectedDateRange(this.selectedDate);\n }\n}\n","@if (!hiddenMenu) {\n <thy-dropdown-menu thyImmediateRender class=\"thy-date-range-dropdown-menu-container\">\n @for (dateRange of optionalDateRanges; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"_selectDateRange(dateRange)\">\n <span thyDropdownMenuItemName>{{ dateRange?.text }}</span>\n @if (dateRange.key === selectedDate?.key) {\n <span thyDropdownMenuItemExtendIcon>\n <thy-icon class=\"text-primary\" thyIconName=\"check\"></thy-icon>\n </span>\n }\n </a>\n }\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n thyRangePicker\n [(ngModel)]=\"selectedDate\"\n [thyMinDate]=\"minDate\"\n [thyMaxDate]=\"maxDate\"\n [thyDisabledDate]=\"disabledDate\"\n (ngModelChange)=\"_selectedCustomDate($event)\"\n (thyOnCalendarChange)=\"calendarChange($event)\">\n <span thyDropdownMenuItemName>{{ customValue }}</span>\n @if (customKey === selectedDate?.key) {\n <span thyDropdownMenuItemExtendIcon>\n <thy-icon class=\"text-primary\" thyIconName=\"check\"></thy-icon>\n </span>\n }\n </a>\n </thy-dropdown-menu>\n}\n","import { Component, forwardRef, OnInit, Input, ChangeDetectorRef, Output, EventEmitter, inject, Signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { DateRangeItemInfo } from './date-range.class';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { OptionalDateRanges } from './optional-dates/optional-dates.component';\n\nimport {\n getUnixTime,\n startOfISOWeek,\n endOfISOWeek,\n endOfMonth,\n startOfMonth,\n addDays,\n addMonths,\n addYears,\n isSameDay,\n endOfDay,\n startOfDay\n} from 'date-fns';\nimport { ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { NgClass } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { injectLocale, ThyDateRangeLocale } from 'ngx-tethys/i18n';\n\nconst allDayTimestamp = 24 * 60 * 60;\n\nconst INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyDateRange),\n multi: true\n};\n\n/**\n * 预设时间段及自定义时间段选择组件\n * @name thy-date-range\n * @order 10\n */\n@Component({\n selector: 'thy-date-range',\n templateUrl: './date-range.component.html',\n providers: [INPUT_CONTROL_VALUE_ACCESSOR],\n standalone: true,\n imports: [ThyAction, ThyIcon, NgClass, ThyDatePickerFormatPipe]\n})\nexport class ThyDateRange implements OnInit, ControlValueAccessor {\n private thyPopover = inject(ThyPopover);\n private cdr = inject(ChangeDetectorRef);\n private locale: Signal<ThyDateRangeLocale> = injectLocale('dateRange');\n\n /**\n * 自定义可选值列表项\n * @type DateRangeItemInfo[]\n */\n @Input()\n set thyOptionalDateRanges(value: DateRangeItemInfo[]) {\n this.optionalDateRanges = value.length > 0 ? value : this.optionalDateRanges;\n }\n\n /**\n * 隐藏下拉选择时间段\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyHiddenMenu = false;\n\n /**\n * 禁用左右切换时间段\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabledSwitch = false;\n\n /**\n * 自定义日期选择的展示文字\n * @default 自定义\n */\n @Input() thyCustomTextValue = this.locale().custom;\n\n /**\n * 自定义日期选择中可选择的最小时间\n * @type Date | number\n */\n @Input() thyMinDate: Date | number;\n\n /**\n * 自定义日期选择中可选择的最大时间\n * @type Date | number\n */\n @Input() thyMaxDate: Date | number;\n\n /**\n * 选中的时间段的展示形式,\n * <br/> `custom`形式:`2023-07-01 ~ 2023-07-31`;\n * <br/> `exception`形式:`2023-07-01`,具体展示还与`thyPickerFormat`有关。\n */\n @Input() thyCustomKey: 'custom' | 'exception' = 'custom';\n\n /**\n * 自定义日期展示格式,比如`yyyy年MM月`,只有当`thyCustomKey`值设为`exception`时才会生效\n */\n @Input() thyPickerFormat: string;\n\n /**\n * 自定义日期禁用日期\n */\n @Input() thyDisabledDate: (d: Date) => boolean;\n\n /**\n * 自定义日期选择日期回调\n * @type EventEmitter<Date[]>\n */\n @Output() readonly thyOnCalendarChange = new EventEmitter<Date[]>();\n\n public selectedDate?: DateRangeItemInfo;\n\n public optionalDateRanges: DateRangeItemInfo[] = [\n {\n key: 'week',\n text: this.locale().currentWeek,\n begin: getUnixTime(startOfISOWeek(new Date())),\n end: getUnixTime(endOfISOWeek(new Date())),\n timestamp: {\n interval: 7,\n unit: 'day'\n }\n },\n {\n key: 'month',\n text: this.locale().currentMonth,\n begin: getUnixTime(startOfMonth(new Date())),\n end: getUnixTime(endOfMonth(new Date())),\n timestamp: {\n interval: 1,\n unit: 'month'\n }\n }\n ];\n\n public selectedDateRange: {\n begin: number;\n end: number;\n };\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n writeValue(value: any): void {\n if (value) {\n this.selectedDate = value;\n } else if (this.optionalDateRanges.length > 0) {\n this.selectedDate = this.optionalDateRanges[0];\n this.onModelChange(this.selectedDate);\n }\n this._setSelectedDateRange();\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onModelTouched = fn;\n }\n\n ngOnInit() {}\n\n private _setSelectedDateRange() {\n this.selectedDateRange = {\n begin: this.selectedDate.begin,\n end: this.selectedDate.end\n };\n }\n\n private _calculateNewTime(type: string) {\n if (this.selectedDate.timestamp) {\n const beginDate = new Date(this.selectedDate.begin * 1000);\n const endDate = new Date(this.selectedDate.end * 1000);\n const interval = this.selectedDate.timestamp.interval;\n\n if (this.selectedDate.timestamp.unit === 'day') {\n if (type === 'previous') {\n return {\n begin: getUnixTime(addDays(beginDate, -1 * interval)),\n end: getUnixTime(addDays(endDate, -1 * interval)),\n key: this.thyCustomKey\n };\n } else {\n return {\n begin: getUnixTime(addDays(beginDate, 1 * interval)),\n end: getUnixTime(addDays(endDate, 1 * interval)),\n key: this.thyCustomKey\n };\n }\n } else if (this.selectedDate.timestamp.unit === 'month') {\n if (type === 'previous') {\n return {\n begin: getUnixTime(addMonths(beginDate, -1 * interval)),\n end: getUnixTime(endOfDay(addDays(beginDate, -1))),\n key: this.thyCustomKey\n };\n } else {\n const endIsEndDayOfMonth = isSameDay(endDate, endOfMonth(endDate));\n return {\n begin: getUnixTime(startOfDay(addDays(endDate, 1))),\n end: endIsEndDayOfMonth\n ? getUnixTime(endOfMonth(addMonths(endDate, 1 * interval)))\n : getUnixTime(addMonths(endDate, 1 * interval)),\n key: this.thyCustomKey\n };\n }\n } else if (this.selectedDate.timestamp.unit === 'year') {\n if (type === 'previous') {\n return {\n begin: getUnixTime(addYears(beginDate, -1 * interval)),\n end: getUnixTime(addYears(endDate, -1 * interval)),\n key: this.thyCustomKey\n };\n } else {\n return {\n begin: getUnixTime(addYears(beginDate, 1 * interval)),\n end: getUnixTime(addYears(endDate, 1 * interval)),\n key: this.thyCustomKey\n };\n }\n }\n } else {\n const interval: number = this.selectedDate.end - this.selectedDate.begin + allDayTimestamp;\n if (type === 'previous') {\n return {\n begin: this.selectedDate.begin - interval,\n end: this.selectedDate.end - interval,\n key: this.thyCustomKey\n };\n } else {\n return {\n begin: this.selectedDate.begin + interval,\n end: this.selectedDate.end + interval,\n key: this.thyCustomKey\n };\n }\n }\n }\n\n private _setPreviousOrNextDate(type: string) {\n this.selectedDate = Object.assign({}, this.selectedDate, this._calculateNewTime(type));\n this._setSelectedDateRange();\n this.onModelChange(this.selectedDate);\n }\n\n public previous() {\n this._setPreviousOrNextDate('previous');\n }\n\n public next() {\n this._setPreviousOrNextDate('next');\n }\n\n public openOptionalDateRangesMenu(event: Event) {\n if (this.thyHiddenMenu) {\n return;\n }\n this.thyPopover.open(OptionalDateRanges, {\n origin: event.currentTarget as HTMLElement,\n hasBackdrop: true,\n backdropClass: 'thy-overlay-transparent-backdrop',\n offset: 0,\n manualClosure: true,\n originActiveClass: 'thy-date-range-text-active',\n initialState: {\n hiddenMenu: this.thyHiddenMenu,\n optionalDateRanges: this.optionalDateRanges,\n selectedDate: this.selectedDate,\n minDate: this.thyMinDate,\n maxDate: this.thyMaxDate,\n customValue: this.thyCustomTextValue,\n customKey: this.thyCustomKey,\n disabledDate: this.thyDisabledDate,\n selectedDateRange: (dateRange: DateRangeItemInfo) => {\n this.onModelChange(dateRange);\n this.selectedDate = dateRange;\n },\n calendarChange: (date: Date[]) => {\n this.thyOnCalendarChange.emit(date);\n }\n }\n });\n }\n}\n","<div class=\"thy-date-range-container\">\n @if (!thyDisabledSwitch) {\n <a thyAction thyIcon=\"angle-left\" href=\"javascript:;\" (click)=\"previous()\"></a>\n }\n <span\n href=\"javascript:;\"\n (click)=\"openOptionalDateRangesMenu($event)\"\n class=\"thy-date-range-text\"\n [ngClass]=\"{ 'thy-date-range-disabled': thyHiddenMenu }\">\n @if (selectedDate?.key === 'custom') {\n {{ selectedDate?.begin | thyDatePickerFormat }} ~ {{ selectedDate?.end | thyDatePickerFormat }}\n }\n @if (selectedDate?.key === 'exception') {\n {{ selectedDate?.begin | thyDatePickerFormat : thyPickerFormat }}\n }\n @if (selectedDate?.key !== 'custom' && selectedDate?.key !== 'exception') {\n {{ selectedDate?.text }}\n }\n @if (!thyHiddenMenu) {\n <thy-icon class=\"thy-date-range-text-caret-down ml-2\" thyIconName=\"angle-down\"></thy-icon>\n }\n </span>\n @if (!thyDisabledSwitch) {\n <a thyAction thyIcon=\"angle-right\" href=\"javascript:;\" (click)=\"next()\"></a>\n }\n</div>\n","import { ThyIconModule } from 'ngx-tethys/icon';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyDateRange } from './date-range.component';\nimport { ThyDropdownModule } from 'ngx-tethys/dropdown';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyDatePickerModule } from 'ngx-tethys/date-picker';\nimport { OptionalDateRanges } from './optional-dates/optional-dates.component';\nimport { ThyNavModule } from 'ngx-tethys/nav';\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThyDropdownModule,\n ThySharedModule,\n ThyIconModule,\n ThyDatePickerModule,\n ThyNavModule,\n ThyDateRange,\n OptionalDateRanges\n ],\n exports: [ThyDateRange]\n})\nexport class ThyDateRangeModule {}\n","export type AttachTypes = 'day' | 'month' | 'year';\n\n/**\n * @order 20\n */\nexport class DateRangeItemInfo {\n /**\n * 开始时间\n */\n begin?: number;\n\n /**\n * 截止时间\n */\n end?: number;\n\n /**\n * 时间段的唯一标识,如'week'、'month'\n */\n key?: string;\n\n /**\n * 时间段的展示文本\n */\n text?: string;\n\n /**\n * 自定义时间段规则,interval为时间间隔;unit可选值有'day' | 'month' | 'year'\n */\n timestamp?: { interval?: number; unit?: AttachTypes };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Overlay, OverlayModule } from '@angular/cdk/overlay';
|
|
1
|
+
import { Overlay, OverlayKeyboardDispatcher, OverlayContainer, OverlayModule } from '@angular/cdk/overlay';
|
|
2
2
|
import { PortalModule, ComponentPortal } from '@angular/cdk/portal';
|
|
3
3
|
import { DOCUMENT, NgTemplateOutlet, NgClass, CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
@@ -13,12 +13,13 @@ import { ThySharedModule } from 'ngx-tethys/shared';
|
|
|
13
13
|
import { ThyAbstractOverlayConfig, ThyAbstractOverlayContainer, reqAnimFrame, ThyClickPositioner, ThyPortalOutlet, ThyAbstractOverlayRef, ThyAbstractInternalOverlayRef, ThyAbstractOverlayService, ThyTranslate } from 'ngx-tethys/core';
|
|
14
14
|
import { of } from 'rxjs';
|
|
15
15
|
import { Directionality } from '@angular/cdk/bidi';
|
|
16
|
+
import { isString, coerceBooleanProperty } from 'ngx-tethys/util';
|
|
16
17
|
import { filter, finalize } from 'rxjs/operators';
|
|
17
18
|
import { FocusTrapFactory } from '@angular/cdk/a11y';
|
|
18
19
|
import { state, style, transition, animate, trigger } from '@angular/animations';
|
|
19
20
|
import * as i1 from '@angular/cdk/scrolling';
|
|
20
21
|
import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
21
|
-
import {
|
|
22
|
+
import { injectLocale, ThyI18nService } from 'ngx-tethys/i18n';
|
|
22
23
|
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
23
24
|
|
|
24
25
|
const THY_CONFIRM_COMPONENT_TOKEN = new InjectionToken('thy-confirm-component-token');
|
|
@@ -266,15 +267,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
266
267
|
args: [`attr.id`]
|
|
267
268
|
}] } });
|
|
268
269
|
|
|
269
|
-
/**
|
|
270
|
-
* @publicApi
|
|
271
|
-
* @order 30
|
|
272
|
-
*/
|
|
273
270
|
class ThyDialogRef extends ThyAbstractOverlayRef {
|
|
274
271
|
}
|
|
275
272
|
class ThyInternalDialogRef extends ThyAbstractInternalOverlayRef {
|
|
276
|
-
constructor(overlayRef, containerInstance, config) {
|
|
273
|
+
constructor(overlayRef, containerInstance, config, service) {
|
|
277
274
|
super(dialogAbstractOverlayOptions, overlayRef, containerInstance, config);
|
|
275
|
+
this.thyDialog = service;
|
|
278
276
|
}
|
|
279
277
|
/**
|
|
280
278
|
* Updates the dialog's position.
|
|
@@ -294,6 +292,12 @@ class ThyInternalDialogRef extends ThyAbstractInternalOverlayRef {
|
|
|
294
292
|
this.updatePosition(position);
|
|
295
293
|
return this;
|
|
296
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Update dialog to top
|
|
297
|
+
*/
|
|
298
|
+
toTop() {
|
|
299
|
+
this.thyDialog.toTop(this.id);
|
|
300
|
+
}
|
|
297
301
|
}
|
|
298
302
|
|
|
299
303
|
/**
|
|
@@ -319,7 +323,7 @@ class ThyDialog extends ThyAbstractOverlayService {
|
|
|
319
323
|
return containerRef.instance;
|
|
320
324
|
}
|
|
321
325
|
createAbstractOverlayRef(overlayRef, containerInstance, config) {
|
|
322
|
-
return new ThyInternalDialogRef(overlayRef, containerInstance, config);
|
|
326
|
+
return new ThyInternalDialogRef(overlayRef, containerInstance, config, this);
|
|
323
327
|
}
|
|
324
328
|
createInjector(config, dialogRef, dialogContainer) {
|
|
325
329
|
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
|
@@ -348,6 +352,8 @@ class ThyDialog extends ThyAbstractOverlayService {
|
|
|
348
352
|
const clickPositioner = inject(ThyClickPositioner);
|
|
349
353
|
super(dialogAbstractOverlayOptions, overlay, injector, defaultConfig);
|
|
350
354
|
this.confirmComponentType = inject(THY_CONFIRM_COMPONENT_TOKEN);
|
|
355
|
+
this.overlayKeyboardDispatcher = inject(OverlayKeyboardDispatcher);
|
|
356
|
+
this.overlayContainer = inject(OverlayContainer);
|
|
351
357
|
clickPositioner.initialize();
|
|
352
358
|
}
|
|
353
359
|
/**
|
|
@@ -395,6 +401,27 @@ class ThyDialog extends ThyAbstractOverlayService {
|
|
|
395
401
|
}
|
|
396
402
|
return null;
|
|
397
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* Update dialog to top
|
|
406
|
+
*/
|
|
407
|
+
toTop(idOrOverlayRef) {
|
|
408
|
+
let dialogRef;
|
|
409
|
+
if (isString(idOrOverlayRef)) {
|
|
410
|
+
dialogRef = this.openedOverlays.find(item => item.id === idOrOverlayRef);
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
dialogRef = idOrOverlayRef;
|
|
414
|
+
}
|
|
415
|
+
if (dialogRef) {
|
|
416
|
+
const overlayRef = dialogRef.getOverlayRef();
|
|
417
|
+
const containerElement = this.overlayContainer.getContainerElement();
|
|
418
|
+
containerElement.appendChild(overlayRef.backdropElement);
|
|
419
|
+
containerElement.appendChild(overlayRef.hostElement);
|
|
420
|
+
this.overlayKeyboardDispatcher.remove(overlayRef);
|
|
421
|
+
this.overlayKeyboardDispatcher.add(overlayRef);
|
|
422
|
+
this.openedOverlays = [...(this.openedOverlays || []).filter(item => item.id !== dialogRef?.id), dialogRef];
|
|
423
|
+
}
|
|
424
|
+
}
|
|
398
425
|
ngOnDestroy() {
|
|
399
426
|
this.dispose();
|
|
400
427
|
}
|
|
@@ -449,6 +476,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
449
476
|
}] } });
|
|
450
477
|
|
|
451
478
|
const THY_CONFIRM_DEFAULT_OPTIONS = new InjectionToken('thy-confirm-default-options');
|
|
479
|
+
/**
|
|
480
|
+
* @deprecated
|
|
481
|
+
*/
|
|
452
482
|
const THY_CONFIRM_DEFAULT_OPTIONS_VALUE = {
|
|
453
483
|
title: '确认删除',
|
|
454
484
|
okText: '确定',
|
|
@@ -456,9 +486,20 @@ const THY_CONFIRM_DEFAULT_OPTIONS_VALUE = {
|
|
|
456
486
|
cancelText: '取消',
|
|
457
487
|
footerAlign: 'left'
|
|
458
488
|
};
|
|
489
|
+
function useConfirmDefaultOptions() {
|
|
490
|
+
const locale = injectLocale('dialog');
|
|
491
|
+
return {
|
|
492
|
+
title: locale().title,
|
|
493
|
+
okText: locale().ok,
|
|
494
|
+
okType: 'danger',
|
|
495
|
+
cancelText: locale().cancel,
|
|
496
|
+
footerAlign: 'left'
|
|
497
|
+
};
|
|
498
|
+
}
|
|
459
499
|
const THY_CONFIRM_DEFAULT_OPTIONS_PROVIDER = {
|
|
460
500
|
provide: THY_CONFIRM_DEFAULT_OPTIONS,
|
|
461
|
-
|
|
501
|
+
useFactory: useConfirmDefaultOptions,
|
|
502
|
+
deps: [ThyI18nService]
|
|
462
503
|
};
|
|
463
504
|
|
|
464
505
|
/**
|
|
@@ -547,7 +588,17 @@ class ThyConfirm {
|
|
|
547
588
|
this.dialogRef = inject(ThyDialogRef);
|
|
548
589
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
549
590
|
this.defaultConfig = inject(THY_CONFIRM_DEFAULT_OPTIONS);
|
|
550
|
-
this.
|
|
591
|
+
this.locale = injectLocale('dialog');
|
|
592
|
+
this.defaultConfig = {
|
|
593
|
+
...{
|
|
594
|
+
title: this.locale().title,
|
|
595
|
+
okText: this.locale().ok,
|
|
596
|
+
okType: 'danger',
|
|
597
|
+
cancelText: this.locale().cancel,
|
|
598
|
+
footerAlign: 'left'
|
|
599
|
+
},
|
|
600
|
+
...this.defaultConfig
|
|
601
|
+
};
|
|
551
602
|
}
|
|
552
603
|
ngOnInit() {
|
|
553
604
|
this.defaultConfig = { ...this.defaultConfig, ...this.options };
|