@progress/kendo-angular-scheduler 25.1.0-develop.2 → 25.1.0-develop.20
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/fesm2022/progress-kendo-angular-scheduler.mjs +427 -315
- package/index.d.ts +12 -6
- package/package-metadata.mjs +2 -2
- package/package.json +15 -15
- package/schematics/ngAdd/index.js +3 -3
|
@@ -18,10 +18,11 @@ import * as i1 from '@progress/kendo-angular-dialog';
|
|
|
18
18
|
import { DialogCloseResult, DialogComponent, DialogActionsComponent, DialogContainerService, DialogService, WindowService, WindowContainerService } from '@progress/kendo-angular-dialog';
|
|
19
19
|
import * as i4 from '@progress/kendo-angular-intl';
|
|
20
20
|
import { formatDate, CldrIntlService, DatePipe, parseDate } from '@progress/kendo-angular-intl';
|
|
21
|
+
import * as i2$1 from '@progress/kendo-angular-buttons';
|
|
22
|
+
import { ButtonComponent, SegmentedControlComponent, DropDownButtonComponent, Button } from '@progress/kendo-angular-buttons';
|
|
21
23
|
import { MultiSelectComponent, ItemTemplateDirective, TagTemplateDirective, DropDownListComponent } from '@progress/kendo-angular-dropdowns';
|
|
22
24
|
import { NgStyle, NgTemplateOutlet, AsyncPipe, NgClass } from '@angular/common';
|
|
23
|
-
import { rightDoubleQuotesIcon, clockIcon, commentIcon, globeIcon, arrowRotateCwIcon, trashIcon, calendarIcon, chevronRightIcon, chevronLeftIcon, plusIcon, filePdfIcon, arrowsNoRepeatIcon, xIcon,
|
|
24
|
-
import { ButtonComponent, SegmentedControlComponent, DropDownButtonComponent, Button } from '@progress/kendo-angular-buttons';
|
|
25
|
+
import { rightDoubleQuotesIcon, clockIcon, commentIcon, globeIcon, arrowRotateCwIcon, trashIcon, calendarIcon, chevronRightIcon, chevronLeftIcon, plusIcon, filePdfIcon, arrowsNoRepeatIcon, xIcon, chevronUpIcon, chevronDownIcon } from '@progress/kendo-svg-icons';
|
|
25
26
|
import { NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, FormFieldComponent, TextBoxDirective, TextAreaComponent, SwitchComponent } from '@progress/kendo-angular-inputs';
|
|
26
27
|
import { parseRule, serializeRule, expand } from '@progress/kendo-recurrence';
|
|
27
28
|
import { DatePickerComponent, DatePickerCustomMessagesComponent, TimePickerComponent, TimePickerCustomMessagesComponent, CalendarComponent, CalendarCustomMessagesComponent, MultiViewCalendarComponent, MonthCellTemplateDirective, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService, TimePickerDOMService, HoursService, MinutesService, SecondsService, MillisecondsService, DayPeriodService } from '@progress/kendo-angular-dateinputs';
|
|
@@ -33,7 +34,7 @@ import { drawDOM, exportPDF } from '@progress/kendo-drawing';
|
|
|
33
34
|
import { saveAs } from '@progress/kendo-file-saver';
|
|
34
35
|
import { orderBy, groupBy } from '@progress/kendo-data-query';
|
|
35
36
|
import { Draggable } from '@progress/kendo-draggable';
|
|
36
|
-
import { PopoverComponent, PopoverTitleTemplateDirective, PopoverBodyTemplateDirective,
|
|
37
|
+
import { PopoverComponent, PopoverTitleTemplateDirective, PopoverBodyTemplateDirective, PopoverContainerDirective } from '@progress/kendo-angular-tooltip';
|
|
37
38
|
|
|
38
39
|
/**
|
|
39
40
|
* @hidden
|
|
@@ -43,8 +44,8 @@ const packageMetadata = {
|
|
|
43
44
|
productName: 'Kendo UI for Angular',
|
|
44
45
|
productCode: 'KENDOUIANGULAR',
|
|
45
46
|
productCodes: ['KENDOUIANGULAR'],
|
|
46
|
-
publishDate:
|
|
47
|
-
version: '25.1.0-develop.
|
|
47
|
+
publishDate: 1787938506,
|
|
48
|
+
version: '25.1.0-develop.20',
|
|
48
49
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
49
50
|
};
|
|
50
51
|
|
|
@@ -2142,6 +2143,7 @@ class FocusService {
|
|
|
2142
2143
|
elementMap = new WeakMap();
|
|
2143
2144
|
subs = new Subscription();
|
|
2144
2145
|
hasContentRendered = false;
|
|
2146
|
+
toolbarEntered = false;
|
|
2145
2147
|
constructor(renderer, wrapper, domEvents, zone) {
|
|
2146
2148
|
this.renderer = renderer;
|
|
2147
2149
|
this.wrapper = wrapper;
|
|
@@ -2161,6 +2163,14 @@ class FocusService {
|
|
|
2161
2163
|
const items = Array.from(this.focusableItems);
|
|
2162
2164
|
if (item.containerType !== 'content') {
|
|
2163
2165
|
this.items.add(item);
|
|
2166
|
+
if (!this.toolbarEntered && this.activeItem.containerType === 'toolbar') {
|
|
2167
|
+
const leftmost = this.leftmostToolbarItem;
|
|
2168
|
+
if (leftmost && leftmost !== this.activeItem) {
|
|
2169
|
+
this.activeItem.toggle(false);
|
|
2170
|
+
this.activeItem = leftmost;
|
|
2171
|
+
leftmost.toggle(true);
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
2164
2174
|
}
|
|
2165
2175
|
else {
|
|
2166
2176
|
const newContentIndex = items.map(item => item.containerType).lastIndexOf('content') + 1;
|
|
@@ -2178,8 +2188,7 @@ class FocusService {
|
|
|
2178
2188
|
else {
|
|
2179
2189
|
this.items.add(item);
|
|
2180
2190
|
}
|
|
2181
|
-
|
|
2182
|
-
if (!this.hasContentRendered) {
|
|
2191
|
+
if (!this.hasContentRendered && item.canFocus() && this.activeItem.containerType !== 'toolbar') {
|
|
2183
2192
|
this.activeItem.toggle(false);
|
|
2184
2193
|
this.activeItem = item;
|
|
2185
2194
|
item.toggle(true);
|
|
@@ -2195,6 +2204,14 @@ class FocusService {
|
|
|
2195
2204
|
}
|
|
2196
2205
|
this.items.delete(item);
|
|
2197
2206
|
this.elementMap.delete(item.element.nativeElement);
|
|
2207
|
+
if (!this.toolbarEntered && this.activeItem?.containerType === 'toolbar') {
|
|
2208
|
+
const leftmost = this.leftmostToolbarItem;
|
|
2209
|
+
if (leftmost && leftmost !== this.activeItem) {
|
|
2210
|
+
this.activeItem.toggle(false);
|
|
2211
|
+
this.activeItem = leftmost;
|
|
2212
|
+
leftmost.toggle(true);
|
|
2213
|
+
}
|
|
2214
|
+
}
|
|
2198
2215
|
this.toggleWrapper();
|
|
2199
2216
|
}
|
|
2200
2217
|
/**
|
|
@@ -2243,11 +2260,13 @@ class FocusService {
|
|
|
2243
2260
|
this.activeItem = firstFocusableTool;
|
|
2244
2261
|
}
|
|
2245
2262
|
focusNext(options, containerType) {
|
|
2263
|
+
this.toolbarEntered = true;
|
|
2246
2264
|
const currentItem = this.activeItem;
|
|
2247
2265
|
this.activateNext(options, true, containerType);
|
|
2248
2266
|
return this.activeItem !== currentItem;
|
|
2249
2267
|
}
|
|
2250
2268
|
focusByIndex(index, preventScroll = true) {
|
|
2269
|
+
this.toolbarEntered = true;
|
|
2251
2270
|
const item = Array.from(this.items.values())[index];
|
|
2252
2271
|
if (!item) {
|
|
2253
2272
|
return;
|
|
@@ -2274,6 +2293,12 @@ class FocusService {
|
|
|
2274
2293
|
next?.focus(false);
|
|
2275
2294
|
}
|
|
2276
2295
|
}
|
|
2296
|
+
get leftmostToolbarItem() {
|
|
2297
|
+
const toolbarItems = Array.from(this.focusableItems)
|
|
2298
|
+
.filter(item => item.containerType === 'toolbar' && item.canFocus())
|
|
2299
|
+
.sort((a, b) => a.focusIndex - b.focusIndex);
|
|
2300
|
+
return toolbarItems[0];
|
|
2301
|
+
}
|
|
2277
2302
|
findNext(position, containerType) {
|
|
2278
2303
|
const { offset, nowrap } = { nowrap: false, offset: 1, ...position };
|
|
2279
2304
|
let items = Array.from(this.items.values())
|
|
@@ -2316,6 +2341,7 @@ class FocusService {
|
|
|
2316
2341
|
return this.wrapper.nativeElement.contains(document.activeElement);
|
|
2317
2342
|
}
|
|
2318
2343
|
onFocusIn(e) {
|
|
2344
|
+
this.toolbarEntered = true;
|
|
2319
2345
|
const item = this.findRegisteredElement(e.target);
|
|
2320
2346
|
if (!item || item === this.focusedItem) {
|
|
2321
2347
|
return;
|
|
@@ -2541,6 +2567,7 @@ class FocusableDirective {
|
|
|
2541
2567
|
element;
|
|
2542
2568
|
renderer;
|
|
2543
2569
|
focusService;
|
|
2570
|
+
segmentedControl;
|
|
2544
2571
|
/**
|
|
2545
2572
|
* The order of the element with respect to the other focusable elements.
|
|
2546
2573
|
* If multiple elements share the same value, their relative to each other order follows their position in the component tree.
|
|
@@ -2554,10 +2581,11 @@ class FocusableDirective {
|
|
|
2554
2581
|
return !this.element.nativeElement.disabled;
|
|
2555
2582
|
}
|
|
2556
2583
|
active;
|
|
2557
|
-
constructor(element, renderer, focusService) {
|
|
2584
|
+
constructor(element, renderer, focusService, segmentedControl) {
|
|
2558
2585
|
this.element = element;
|
|
2559
2586
|
this.renderer = renderer;
|
|
2560
2587
|
this.focusService = focusService;
|
|
2588
|
+
this.segmentedControl = segmentedControl;
|
|
2561
2589
|
this.toggle(false);
|
|
2562
2590
|
}
|
|
2563
2591
|
ngAfterViewChecked() {
|
|
@@ -2576,8 +2604,13 @@ class FocusableDirective {
|
|
|
2576
2604
|
}
|
|
2577
2605
|
toggle(active) {
|
|
2578
2606
|
if (active !== this.active) {
|
|
2579
|
-
|
|
2580
|
-
|
|
2607
|
+
if (this.segmentedControl) {
|
|
2608
|
+
this.segmentedControl.setIsActiveTabStop(active);
|
|
2609
|
+
}
|
|
2610
|
+
else {
|
|
2611
|
+
const index = active ? '0' : '-1';
|
|
2612
|
+
this.renderer.setAttribute(this.element.nativeElement, 'tabIndex', index);
|
|
2613
|
+
}
|
|
2581
2614
|
this.active = active;
|
|
2582
2615
|
}
|
|
2583
2616
|
}
|
|
@@ -2585,7 +2618,12 @@ class FocusableDirective {
|
|
|
2585
2618
|
return this.visible && this.enabled;
|
|
2586
2619
|
}
|
|
2587
2620
|
focus(preventScroll = true) {
|
|
2588
|
-
this.
|
|
2621
|
+
if (this.segmentedControl) {
|
|
2622
|
+
this.segmentedControl.focusSelectedButton(preventScroll);
|
|
2623
|
+
}
|
|
2624
|
+
else {
|
|
2625
|
+
this.element.nativeElement.focus({ preventScroll });
|
|
2626
|
+
}
|
|
2589
2627
|
}
|
|
2590
2628
|
toggleFocus(value) {
|
|
2591
2629
|
const element = this.element.nativeElement;
|
|
@@ -2610,7 +2648,7 @@ class FocusableDirective {
|
|
|
2610
2648
|
this.renderer.setAttribute(element, 'aria-selected', value.toString());
|
|
2611
2649
|
}
|
|
2612
2650
|
}
|
|
2613
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FocusableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: FocusService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2651
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FocusableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: FocusService }, { token: i2$1.SegmentedControlComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2614
2652
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: FocusableDirective, isStandalone: true, selector: "[kendoSchedulerFocusIndex]", inputs: { focusIndex: ["kendoSchedulerFocusIndex", "focusIndex"], containerType: "containerType" }, ngImport: i0 });
|
|
2615
2653
|
}
|
|
2616
2654
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: FocusableDirective, decorators: [{
|
|
@@ -2619,7 +2657,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
2619
2657
|
selector: '[kendoSchedulerFocusIndex]',
|
|
2620
2658
|
standalone: true
|
|
2621
2659
|
}]
|
|
2622
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: FocusService }
|
|
2660
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: FocusService }, { type: i2$1.SegmentedControlComponent, decorators: [{
|
|
2661
|
+
type: Optional
|
|
2662
|
+
}] }], propDecorators: { focusIndex: [{
|
|
2623
2663
|
type: Input,
|
|
2624
2664
|
args: ['kendoSchedulerFocusIndex']
|
|
2625
2665
|
}], containerType: [{
|
|
@@ -3271,7 +3311,7 @@ function noModifiers(e) {
|
|
|
3271
3311
|
|
|
3272
3312
|
let uniqueIdCounter = 0;
|
|
3273
3313
|
const offsetPositions = ['first', 'second', 'third', 'fourth', 'last'];
|
|
3274
|
-
const frequencies = ['
|
|
3314
|
+
const frequencies = ['daily', 'weekly', 'monthly', 'yearly'];
|
|
3275
3315
|
const endRules = ['never', 'count', 'until'];
|
|
3276
3316
|
// Maps the `EndRule` values to their corresponding localization message keys.
|
|
3277
3317
|
const endRuleMessageKeys = {
|
|
@@ -3337,6 +3377,9 @@ class RecurrenceService {
|
|
|
3337
3377
|
recurrenceRule: rrule,
|
|
3338
3378
|
weekStart: weekStart
|
|
3339
3379
|
});
|
|
3380
|
+
if (!this.rrule || isNullOrEmptyString(this.rrule.freq)) {
|
|
3381
|
+
this.rrule = { freq: 'daily', interval: this.minInterval };
|
|
3382
|
+
}
|
|
3340
3383
|
}
|
|
3341
3384
|
/**
|
|
3342
3385
|
* @hidden
|
|
@@ -4640,12 +4683,9 @@ class RecurrenceFrequencyEditorComponent {
|
|
|
4640
4683
|
this.localization = localization;
|
|
4641
4684
|
}
|
|
4642
4685
|
ngOnInit() {
|
|
4643
|
-
this.frequencies = this.recurrence.frequencies
|
|
4686
|
+
this.frequencies = this.recurrence.frequencies;
|
|
4644
4687
|
}
|
|
4645
4688
|
get selected() {
|
|
4646
|
-
if (!this.recurrence.rrule) {
|
|
4647
|
-
this.recurrence.setFrequency(this.frequencies[0].value);
|
|
4648
|
-
}
|
|
4649
4689
|
return this.recurrence.frequency;
|
|
4650
4690
|
}
|
|
4651
4691
|
onFrequencyChange(newFreq) {
|
|
@@ -5324,16 +5364,16 @@ class RecurrenceEditorComponent {
|
|
|
5324
5364
|
dailyInterval='day(s)'
|
|
5325
5365
|
|
|
5326
5366
|
i18n-dailyRepeatEvery="kendo.recurrenceeditor.dailyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5327
|
-
dailyRepeatEvery='
|
|
5367
|
+
dailyRepeatEvery='Repeats every'
|
|
5328
5368
|
|
|
5329
5369
|
i18n-weeklyInterval="kendo.recurrenceeditor.weeklyInterval|The text similar to 'week(s)' displayed in the recurrence editor."
|
|
5330
5370
|
weeklyInterval='week(s)'
|
|
5331
5371
|
|
|
5332
5372
|
i18n-weeklyRepeatEvery="kendo.recurrenceeditor.weeklyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5333
|
-
weeklyRepeatEvery='
|
|
5373
|
+
weeklyRepeatEvery='Repeats every'
|
|
5334
5374
|
|
|
5335
5375
|
i18n-weeklyRepeatOn="kendo.recurrenceeditor.weeklyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5336
|
-
weeklyRepeatOn='
|
|
5376
|
+
weeklyRepeatOn='On'
|
|
5337
5377
|
|
|
5338
5378
|
i18n-monthlyDay="kendo.recurrenceeditor.monthlyDay|The text similar to 'Day' displayed in the recurrence editor."
|
|
5339
5379
|
monthlyDay='Day'
|
|
@@ -5342,37 +5382,37 @@ class RecurrenceEditorComponent {
|
|
|
5342
5382
|
monthlyInterval='month(s)'
|
|
5343
5383
|
|
|
5344
5384
|
i18n-monthlyRepeatEvery="kendo.recurrenceeditor.monthlyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5345
|
-
monthlyRepeatEvery='
|
|
5385
|
+
monthlyRepeatEvery='Repeats every'
|
|
5346
5386
|
|
|
5347
5387
|
i18n-monthlyRepeatOn="kendo.recurrenceeditor.monthlyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5348
|
-
monthlyRepeatOn='
|
|
5388
|
+
monthlyRepeatOn='On'
|
|
5349
5389
|
|
|
5350
5390
|
i18n-yearlyOf="kendo.recurrenceeditor.yearlyOf|The text similar to 'of' displayed in the recurrence editor."
|
|
5351
5391
|
yearlyOf='of'
|
|
5352
5392
|
|
|
5353
5393
|
i18n-yearlyRepeatEvery="kendo.recurrenceeditor.yearlyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5354
|
-
yearlyRepeatEvery='
|
|
5394
|
+
yearlyRepeatEvery='Repeats every'
|
|
5355
5395
|
|
|
5356
5396
|
i18n-yearlyRepeatOn="kendo.recurrenceeditor.yearlyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5357
|
-
yearlyRepeatOn='
|
|
5397
|
+
yearlyRepeatOn='On'
|
|
5358
5398
|
|
|
5359
5399
|
i18n-yearlyInterval="kendo.recurrenceeditor.yearlyInterval|The text similar to 'year(s)' displayed in the recurrence editor."
|
|
5360
5400
|
yearlyInterval='year(s)'
|
|
5361
5401
|
|
|
5362
5402
|
i18n-frequenciesDaily="kendo.recurrenceeditor.frequenciesDaily|The text similar to 'Daily' displayed in the recurrence editor."
|
|
5363
|
-
frequenciesDaily='
|
|
5403
|
+
frequenciesDaily='Day'
|
|
5364
5404
|
|
|
5365
5405
|
i18n-frequenciesMonthly="kendo.recurrenceeditor.frequenciesMonthly|The text similar to 'Monthly' displayed in the recurrence editor."
|
|
5366
|
-
frequenciesMonthly='
|
|
5406
|
+
frequenciesMonthly='Month'
|
|
5367
5407
|
|
|
5368
5408
|
i18n-frequenciesNever="kendo.recurrenceeditor.frequenciesNever|The text similar to 'Never' displayed in the recurrence editor."
|
|
5369
5409
|
frequenciesNever='Never'
|
|
5370
5410
|
|
|
5371
5411
|
i18n-frequenciesWeekly="kendo.recurrenceeditor.frequenciesWeekly|The text similar to 'Weekly' displayed in the recurrence editor."
|
|
5372
|
-
frequenciesWeekly='
|
|
5412
|
+
frequenciesWeekly='Week'
|
|
5373
5413
|
|
|
5374
5414
|
i18n-frequenciesYearly="kendo.recurrenceeditor.frequenciesYearly|The text similar to 'Yearly' displayed in the recurrence editor."
|
|
5375
|
-
frequenciesYearly='
|
|
5415
|
+
frequenciesYearly='Year'
|
|
5376
5416
|
|
|
5377
5417
|
i18n-offsetPositionsFirst="kendo.recurrenceeditor.offsetPositionsFirst|The text similar to 'First' displayed in the recurrence editor."
|
|
5378
5418
|
offsetPositionsFirst='First'
|
|
@@ -5499,16 +5539,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
5499
5539
|
dailyInterval='day(s)'
|
|
5500
5540
|
|
|
5501
5541
|
i18n-dailyRepeatEvery="kendo.recurrenceeditor.dailyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5502
|
-
dailyRepeatEvery='
|
|
5542
|
+
dailyRepeatEvery='Repeats every'
|
|
5503
5543
|
|
|
5504
5544
|
i18n-weeklyInterval="kendo.recurrenceeditor.weeklyInterval|The text similar to 'week(s)' displayed in the recurrence editor."
|
|
5505
5545
|
weeklyInterval='week(s)'
|
|
5506
5546
|
|
|
5507
5547
|
i18n-weeklyRepeatEvery="kendo.recurrenceeditor.weeklyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5508
|
-
weeklyRepeatEvery='
|
|
5548
|
+
weeklyRepeatEvery='Repeats every'
|
|
5509
5549
|
|
|
5510
5550
|
i18n-weeklyRepeatOn="kendo.recurrenceeditor.weeklyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5511
|
-
weeklyRepeatOn='
|
|
5551
|
+
weeklyRepeatOn='On'
|
|
5512
5552
|
|
|
5513
5553
|
i18n-monthlyDay="kendo.recurrenceeditor.monthlyDay|The text similar to 'Day' displayed in the recurrence editor."
|
|
5514
5554
|
monthlyDay='Day'
|
|
@@ -5517,37 +5557,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
5517
5557
|
monthlyInterval='month(s)'
|
|
5518
5558
|
|
|
5519
5559
|
i18n-monthlyRepeatEvery="kendo.recurrenceeditor.monthlyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5520
|
-
monthlyRepeatEvery='
|
|
5560
|
+
monthlyRepeatEvery='Repeats every'
|
|
5521
5561
|
|
|
5522
5562
|
i18n-monthlyRepeatOn="kendo.recurrenceeditor.monthlyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5523
|
-
monthlyRepeatOn='
|
|
5563
|
+
monthlyRepeatOn='On'
|
|
5524
5564
|
|
|
5525
5565
|
i18n-yearlyOf="kendo.recurrenceeditor.yearlyOf|The text similar to 'of' displayed in the recurrence editor."
|
|
5526
5566
|
yearlyOf='of'
|
|
5527
5567
|
|
|
5528
5568
|
i18n-yearlyRepeatEvery="kendo.recurrenceeditor.yearlyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5529
|
-
yearlyRepeatEvery='
|
|
5569
|
+
yearlyRepeatEvery='Repeats every'
|
|
5530
5570
|
|
|
5531
5571
|
i18n-yearlyRepeatOn="kendo.recurrenceeditor.yearlyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5532
|
-
yearlyRepeatOn='
|
|
5572
|
+
yearlyRepeatOn='On'
|
|
5533
5573
|
|
|
5534
5574
|
i18n-yearlyInterval="kendo.recurrenceeditor.yearlyInterval|The text similar to 'year(s)' displayed in the recurrence editor."
|
|
5535
5575
|
yearlyInterval='year(s)'
|
|
5536
5576
|
|
|
5537
5577
|
i18n-frequenciesDaily="kendo.recurrenceeditor.frequenciesDaily|The text similar to 'Daily' displayed in the recurrence editor."
|
|
5538
|
-
frequenciesDaily='
|
|
5578
|
+
frequenciesDaily='Day'
|
|
5539
5579
|
|
|
5540
5580
|
i18n-frequenciesMonthly="kendo.recurrenceeditor.frequenciesMonthly|The text similar to 'Monthly' displayed in the recurrence editor."
|
|
5541
|
-
frequenciesMonthly='
|
|
5581
|
+
frequenciesMonthly='Month'
|
|
5542
5582
|
|
|
5543
5583
|
i18n-frequenciesNever="kendo.recurrenceeditor.frequenciesNever|The text similar to 'Never' displayed in the recurrence editor."
|
|
5544
5584
|
frequenciesNever='Never'
|
|
5545
5585
|
|
|
5546
5586
|
i18n-frequenciesWeekly="kendo.recurrenceeditor.frequenciesWeekly|The text similar to 'Weekly' displayed in the recurrence editor."
|
|
5547
|
-
frequenciesWeekly='
|
|
5587
|
+
frequenciesWeekly='Week'
|
|
5548
5588
|
|
|
5549
5589
|
i18n-frequenciesYearly="kendo.recurrenceeditor.frequenciesYearly|The text similar to 'Yearly' displayed in the recurrence editor."
|
|
5550
|
-
frequenciesYearly='
|
|
5590
|
+
frequenciesYearly='Year'
|
|
5551
5591
|
|
|
5552
5592
|
i18n-offsetPositionsFirst="kendo.recurrenceeditor.offsetPositionsFirst|The text similar to 'First' displayed in the recurrence editor."
|
|
5553
5593
|
offsetPositionsFirst='First'
|
|
@@ -5955,7 +5995,7 @@ class EditDialogComponent {
|
|
|
5955
5995
|
.pipe(filter(() => this.isActive))
|
|
5956
5996
|
.subscribe((e) => {
|
|
5957
5997
|
if (e.code === Keys.Escape) {
|
|
5958
|
-
this.
|
|
5998
|
+
this.onClose();
|
|
5959
5999
|
}
|
|
5960
6000
|
if ((e.code === Keys.Enter || e.code === Keys.NumpadEnter) && (withModifiers(e, Modifiers.CtrlKey) || withModifiers(e, Modifiers.MetaKey))) {
|
|
5961
6001
|
this.onSave(e);
|
|
@@ -6526,7 +6566,7 @@ class EditDialogComponent {
|
|
|
6526
6566
|
</kendo-dialog>
|
|
6527
6567
|
}
|
|
6528
6568
|
}
|
|
6529
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors", "colSpan"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: TimeZoneEditorComponent, selector: "kendo-timezone-editor", inputs: ["width"], outputs: ["valueChange"] }, { kind: "component", type: RecurrenceEditorComponent, selector: "kendo-recurrence-editor", inputs: ["start", "timezone", "weekStart", "repeatEveryOptions", "endAfterOptions", "repeatOnOptions", "endOnOptions", "recurrenceSummaryTemplate", "recurrenceRule"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { kind: "component", type: TextAreaComponent, selector: "kendo-textarea", inputs: ["focusableId", "flow", "inputAttributes", "adornmentsOrientation", "rows", "cols", "maxlength", "maxResizableRows", "tabindex", "tabIndex", "resizable", "size", "rounded", "fillMode", "showPrefixSeparator", "showSuffixSeparator"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoTextArea"] }, { kind: "component", type: MultipleResourceEditorComponent, selector: "kendo-multiple-resource-editor" }, { kind: "component", type: SingleResourceEditorComponent, selector: "kendo-single-resource-editor" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: SwitchComponent, selector: "kendo-switch", inputs: ["focusableId", "onLabel", "offLabel", "checked", "disabled", "readonly", "tabindex", "size", "thumbRounded", "trackRounded", "tabIndex"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoSwitch"] }, { kind: "component", type: SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon", "variant"], exportAs: ["kendoSVGIcon"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }, { kind: "component", type: TimePickerComponent, selector: "kendo-timepicker", inputs: ["focusableId", "disabled", "readonly", "readOnlyInput", "clearButton", "format", "formatPlaceholder", "placeholder", "min", "max", "incompleteDateValidation", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "cancelButton", "nowButton", "steps", "popupSettings", "tabindex", "tabIndex", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "adaptiveMode", "value", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-timepicker"] }, { kind: "component", type: TimePickerCustomMessagesComponent, selector: "kendo-timepicker-messages" }] });
|
|
6569
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors", "colSpan"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: TimeZoneEditorComponent, selector: "kendo-timezone-editor", inputs: ["width"], outputs: ["valueChange"] }, { kind: "component", type: RecurrenceEditorComponent, selector: "kendo-recurrence-editor", inputs: ["start", "timezone", "weekStart", "repeatEveryOptions", "endAfterOptions", "repeatOnOptions", "endOnOptions", "recurrenceSummaryTemplate", "recurrenceRule"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { kind: "component", type: TextAreaComponent, selector: "kendo-textarea", inputs: ["focusableId", "flow", "inputAttributes", "adornmentsOrientation", "rows", "cols", "maxlength", "maxResizableRows", "tabindex", "tabIndex", "resizable", "size", "rounded", "fillMode", "showPrefixSeparator", "showSuffixSeparator", "value"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoTextArea"] }, { kind: "component", type: MultipleResourceEditorComponent, selector: "kendo-multiple-resource-editor" }, { kind: "component", type: SingleResourceEditorComponent, selector: "kendo-single-resource-editor" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: SwitchComponent, selector: "kendo-switch", inputs: ["focusableId", "onLabel", "offLabel", "checked", "disabled", "readonly", "tabindex", "size", "thumbRounded", "trackRounded", "tabIndex"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoSwitch"] }, { kind: "component", type: SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon", "variant"], exportAs: ["kendoSVGIcon"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }, { kind: "component", type: TimePickerComponent, selector: "kendo-timepicker", inputs: ["focusableId", "disabled", "readonly", "readOnlyInput", "clearButton", "format", "formatPlaceholder", "placeholder", "min", "max", "incompleteDateValidation", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "cancelButton", "nowButton", "steps", "popupSettings", "tabindex", "tabIndex", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "adaptiveMode", "value", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-timepicker"] }, { kind: "component", type: TimePickerCustomMessagesComponent, selector: "kendo-timepicker-messages" }] });
|
|
6530
6570
|
}
|
|
6531
6571
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: EditDialogComponent, decorators: [{
|
|
6532
6572
|
type: Component,
|
|
@@ -7679,6 +7719,11 @@ class Messages extends ComponentMessages {
|
|
|
7679
7719
|
* The `{count}` placeholder is replaced with the number of additional events.
|
|
7680
7720
|
*/
|
|
7681
7721
|
moreEvents;
|
|
7722
|
+
/**
|
|
7723
|
+
* Sets the `aria-label` for the **more events** button in the Month view.
|
|
7724
|
+
* The `{count}` placeholder is replaced with the number of additional events.
|
|
7725
|
+
*/
|
|
7726
|
+
moreEventsLabel;
|
|
7682
7727
|
/**
|
|
7683
7728
|
* Sets the date-header text in the **Agenda** view.
|
|
7684
7729
|
*/
|
|
@@ -8133,7 +8178,7 @@ class Messages extends ComponentMessages {
|
|
|
8133
8178
|
*/
|
|
8134
8179
|
newEventLabel;
|
|
8135
8180
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
8136
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: Messages, isStandalone: true, inputs: { allEvents: "allEvents", allDay: "allDay", moreEvents: "moreEvents", dateHeader: "dateHeader", timeHeader: "timeHeader", eventHeader: "eventHeader", resourceColumnHeaderLabel: "resourceColumnHeaderLabel", deleteTitle: "deleteTitle", nextTitle: "nextTitle", previousTitle: "previousTitle", toolbar: "toolbar", today: "today", calendarToday: "calendarToday", showFullDay: "showFullDay", showWorkDay: "showWorkDay", dayViewTitle: "dayViewTitle", multiDayViewTitle: "multiDayViewTitle", weekViewTitle: "weekViewTitle", workWeekViewTitle: "workWeekViewTitle", monthViewTitle: "monthViewTitle", multiWeekViewTitle: "multiWeekViewTitle", timelineViewTitle: "timelineViewTitle", timelineWeekViewTitle: "timelineWeekViewTitle", timelineMonthViewTitle: "timelineMonthViewTitle", agendaViewTitle: "agendaViewTitle", yearViewTitle: "yearViewTitle", yearViewNoEvents: "yearViewNoEvents", cancel: "cancel", save: "save", editorEventTitle: "editorEventTitle", editorEventStart: "editorEventStart", editorEventStartTime: "editorEventStartTime", editorEventStartTimeZone: "editorEventStartTimeZone", editorEventEnd: "editorEventEnd", editorEventEndTime: "editorEventEndTime", editorEventEndTimeZone: "editorEventEndTimeZone", editorEventAllDay: "editorEventAllDay", editorEventDescription: "editorEventDescription", editorEventTimeZone: "editorEventTimeZone", editorEventTimeZoneReset: "editorEventTimeZoneReset", editorEventDescriptionPlaceholder: "editorEventDescriptionPlaceholder", editorEventDateRangeSeparator: "editorEventDateRangeSeparator", editorEventDateRangeStart: "editorEventDateRangeStart", editorRecurrenceMakeRecurring: "editorRecurrenceMakeRecurring", editorRecurrenceEdit: "editorRecurrenceEdit", editorRecurrenceDialogTitle: "editorRecurrenceDialogTitle", editorRecurrenceRemove: "editorRecurrenceRemove", editorRecurrenceRemoveConfirmationTitle: "editorRecurrenceRemoveConfirmationTitle", editorRecurrenceRemoveConfirmation: "editorRecurrenceRemoveConfirmation", editorRecurrenceRemoveConfirmationNo: "editorRecurrenceRemoveConfirmationNo", editorRecurrenceRemoveConfirmationYes: "editorRecurrenceRemoveConfirmationYes", editorDateInputsToday: "editorDateInputsToday", editorDatePickersToggle: "editorDatePickersToggle", editorDateInputsParentViewButton: "editorDateInputsParentViewButton", editorDateInputsNow: "editorDateInputsNow", editorDateInputsNowLabel: "editorDateInputsNowLabel", editorDateInputsAccept: "editorDateInputsAccept", editorDateInputsAcceptLabel: "editorDateInputsAcceptLabel", editorDateInputsCancel: "editorDateInputsCancel", editorDateInputsCancelLabel: "editorDateInputsCancelLabel", editorTimePickersToggle: "editorTimePickersToggle", recurrenceEditorDateInputsToday: "recurrenceEditorDateInputsToday", recurrenceEditorDateInputsToggle: "recurrenceEditorDateInputsToggle", recurrenceEditorDateInputsParentViewButton: "recurrenceEditorDateInputsParentViewButton", recurrenceEditorNumericIncrement: "recurrenceEditorNumericIncrement", recurrenceEditorNumericDecrement: "recurrenceEditorNumericDecrement", recurrenceEditorRepeat: "recurrenceEditorRepeat", recurrenceEditorDailyInterval: "recurrenceEditorDailyInterval", recurrenceEditorDailyRepeatEvery: "recurrenceEditorDailyRepeatEvery", recurrenceEditorWeeklyInterval: "recurrenceEditorWeeklyInterval", recurrenceEditorWeeklyRepeatEvery: "recurrenceEditorWeeklyRepeatEvery", recurrenceEditorWeeklyRepeatOn: "recurrenceEditorWeeklyRepeatOn", recurrenceEditorMonthlyDay: "recurrenceEditorMonthlyDay", recurrenceEditorMonthlyInterval: "recurrenceEditorMonthlyInterval", recurrenceEditorMonthlyRepeatEvery: "recurrenceEditorMonthlyRepeatEvery", recurrenceEditorMonthlyRepeatOn: "recurrenceEditorMonthlyRepeatOn", recurrenceEditorYearlyOf: "recurrenceEditorYearlyOf", recurrenceEditorYearlyRepeatEvery: "recurrenceEditorYearlyRepeatEvery", recurrenceEditorYearlyRepeatOn: "recurrenceEditorYearlyRepeatOn", recurrenceEditorYearlyInterval: "recurrenceEditorYearlyInterval", recurrenceEditorFrequenciesDaily: "recurrenceEditorFrequenciesDaily", recurrenceEditorFrequenciesMonthly: "recurrenceEditorFrequenciesMonthly", recurrenceEditorFrequenciesNever: "recurrenceEditorFrequenciesNever", recurrenceEditorFrequenciesWeekly: "recurrenceEditorFrequenciesWeekly", recurrenceEditorFrequenciesYearly: "recurrenceEditorFrequenciesYearly", recurrenceEditorOffsetPositionsFirst: "recurrenceEditorOffsetPositionsFirst", recurrenceEditorOffsetPositionsSecond: "recurrenceEditorOffsetPositionsSecond", recurrenceEditorOffsetPositionsThird: "recurrenceEditorOffsetPositionsThird", recurrenceEditorOffsetPositionsFourth: "recurrenceEditorOffsetPositionsFourth", recurrenceEditorOffsetPositionsLast: "recurrenceEditorOffsetPositionsLast", recurrenceEditorWeekdaysDay: "recurrenceEditorWeekdaysDay", recurrenceEditorWeekdaysWeekday: "recurrenceEditorWeekdaysWeekday", recurrenceEditorWeekdaysWeekendday: "recurrenceEditorWeekdaysWeekendday", recurrenceEditorEndAfter: "recurrenceEditorEndAfter", recurrenceEditorEndOccurrence: "recurrenceEditorEndOccurrence", recurrenceEditorEndLabel: "recurrenceEditorEndLabel", recurrenceEditorEndNever: "recurrenceEditorEndNever", recurrenceEditorEndOn: "recurrenceEditorEndOn", editorTitle: "editorTitle", editorTitleNew: "editorTitleNew", destroy: "destroy", deleteConfirmation: "deleteConfirmation", editRecurringConfirmation: "editRecurringConfirmation", editOccurrence: "editOccurrence", editSeries: "editSeries", deleteRecurringConfirmation: "deleteRecurringConfirmation", deleteOccurrence: "deleteOccurrence", deleteSeries: "deleteSeries", deleteDialogTitle: "deleteDialogTitle", deleteRecurringDialogTitle: "deleteRecurringDialogTitle", editRecurringDialogTitle: "editRecurringDialogTitle", selectView: "selectView", newEvent: "newEvent", newEventLabel: "newEventLabel" }, usesInheritance: true, ngImport: i0 });
|
|
8181
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: Messages, isStandalone: true, inputs: { allEvents: "allEvents", allDay: "allDay", moreEvents: "moreEvents", moreEventsLabel: "moreEventsLabel", dateHeader: "dateHeader", timeHeader: "timeHeader", eventHeader: "eventHeader", resourceColumnHeaderLabel: "resourceColumnHeaderLabel", deleteTitle: "deleteTitle", nextTitle: "nextTitle", previousTitle: "previousTitle", toolbar: "toolbar", today: "today", calendarToday: "calendarToday", showFullDay: "showFullDay", showWorkDay: "showWorkDay", dayViewTitle: "dayViewTitle", multiDayViewTitle: "multiDayViewTitle", weekViewTitle: "weekViewTitle", workWeekViewTitle: "workWeekViewTitle", monthViewTitle: "monthViewTitle", multiWeekViewTitle: "multiWeekViewTitle", timelineViewTitle: "timelineViewTitle", timelineWeekViewTitle: "timelineWeekViewTitle", timelineMonthViewTitle: "timelineMonthViewTitle", agendaViewTitle: "agendaViewTitle", yearViewTitle: "yearViewTitle", yearViewNoEvents: "yearViewNoEvents", cancel: "cancel", save: "save", editorEventTitle: "editorEventTitle", editorEventStart: "editorEventStart", editorEventStartTime: "editorEventStartTime", editorEventStartTimeZone: "editorEventStartTimeZone", editorEventEnd: "editorEventEnd", editorEventEndTime: "editorEventEndTime", editorEventEndTimeZone: "editorEventEndTimeZone", editorEventAllDay: "editorEventAllDay", editorEventDescription: "editorEventDescription", editorEventTimeZone: "editorEventTimeZone", editorEventTimeZoneReset: "editorEventTimeZoneReset", editorEventDescriptionPlaceholder: "editorEventDescriptionPlaceholder", editorEventDateRangeSeparator: "editorEventDateRangeSeparator", editorEventDateRangeStart: "editorEventDateRangeStart", editorRecurrenceMakeRecurring: "editorRecurrenceMakeRecurring", editorRecurrenceEdit: "editorRecurrenceEdit", editorRecurrenceDialogTitle: "editorRecurrenceDialogTitle", editorRecurrenceRemove: "editorRecurrenceRemove", editorRecurrenceRemoveConfirmationTitle: "editorRecurrenceRemoveConfirmationTitle", editorRecurrenceRemoveConfirmation: "editorRecurrenceRemoveConfirmation", editorRecurrenceRemoveConfirmationNo: "editorRecurrenceRemoveConfirmationNo", editorRecurrenceRemoveConfirmationYes: "editorRecurrenceRemoveConfirmationYes", editorDateInputsToday: "editorDateInputsToday", editorDatePickersToggle: "editorDatePickersToggle", editorDateInputsParentViewButton: "editorDateInputsParentViewButton", editorDateInputsNow: "editorDateInputsNow", editorDateInputsNowLabel: "editorDateInputsNowLabel", editorDateInputsAccept: "editorDateInputsAccept", editorDateInputsAcceptLabel: "editorDateInputsAcceptLabel", editorDateInputsCancel: "editorDateInputsCancel", editorDateInputsCancelLabel: "editorDateInputsCancelLabel", editorTimePickersToggle: "editorTimePickersToggle", recurrenceEditorDateInputsToday: "recurrenceEditorDateInputsToday", recurrenceEditorDateInputsToggle: "recurrenceEditorDateInputsToggle", recurrenceEditorDateInputsParentViewButton: "recurrenceEditorDateInputsParentViewButton", recurrenceEditorNumericIncrement: "recurrenceEditorNumericIncrement", recurrenceEditorNumericDecrement: "recurrenceEditorNumericDecrement", recurrenceEditorRepeat: "recurrenceEditorRepeat", recurrenceEditorDailyInterval: "recurrenceEditorDailyInterval", recurrenceEditorDailyRepeatEvery: "recurrenceEditorDailyRepeatEvery", recurrenceEditorWeeklyInterval: "recurrenceEditorWeeklyInterval", recurrenceEditorWeeklyRepeatEvery: "recurrenceEditorWeeklyRepeatEvery", recurrenceEditorWeeklyRepeatOn: "recurrenceEditorWeeklyRepeatOn", recurrenceEditorMonthlyDay: "recurrenceEditorMonthlyDay", recurrenceEditorMonthlyInterval: "recurrenceEditorMonthlyInterval", recurrenceEditorMonthlyRepeatEvery: "recurrenceEditorMonthlyRepeatEvery", recurrenceEditorMonthlyRepeatOn: "recurrenceEditorMonthlyRepeatOn", recurrenceEditorYearlyOf: "recurrenceEditorYearlyOf", recurrenceEditorYearlyRepeatEvery: "recurrenceEditorYearlyRepeatEvery", recurrenceEditorYearlyRepeatOn: "recurrenceEditorYearlyRepeatOn", recurrenceEditorYearlyInterval: "recurrenceEditorYearlyInterval", recurrenceEditorFrequenciesDaily: "recurrenceEditorFrequenciesDaily", recurrenceEditorFrequenciesMonthly: "recurrenceEditorFrequenciesMonthly", recurrenceEditorFrequenciesNever: "recurrenceEditorFrequenciesNever", recurrenceEditorFrequenciesWeekly: "recurrenceEditorFrequenciesWeekly", recurrenceEditorFrequenciesYearly: "recurrenceEditorFrequenciesYearly", recurrenceEditorOffsetPositionsFirst: "recurrenceEditorOffsetPositionsFirst", recurrenceEditorOffsetPositionsSecond: "recurrenceEditorOffsetPositionsSecond", recurrenceEditorOffsetPositionsThird: "recurrenceEditorOffsetPositionsThird", recurrenceEditorOffsetPositionsFourth: "recurrenceEditorOffsetPositionsFourth", recurrenceEditorOffsetPositionsLast: "recurrenceEditorOffsetPositionsLast", recurrenceEditorWeekdaysDay: "recurrenceEditorWeekdaysDay", recurrenceEditorWeekdaysWeekday: "recurrenceEditorWeekdaysWeekday", recurrenceEditorWeekdaysWeekendday: "recurrenceEditorWeekdaysWeekendday", recurrenceEditorEndAfter: "recurrenceEditorEndAfter", recurrenceEditorEndOccurrence: "recurrenceEditorEndOccurrence", recurrenceEditorEndLabel: "recurrenceEditorEndLabel", recurrenceEditorEndNever: "recurrenceEditorEndNever", recurrenceEditorEndOn: "recurrenceEditorEndOn", editorTitle: "editorTitle", editorTitleNew: "editorTitleNew", destroy: "destroy", deleteConfirmation: "deleteConfirmation", editRecurringConfirmation: "editRecurringConfirmation", editOccurrence: "editOccurrence", editSeries: "editSeries", deleteRecurringConfirmation: "deleteRecurringConfirmation", deleteOccurrence: "deleteOccurrence", deleteSeries: "deleteSeries", deleteDialogTitle: "deleteDialogTitle", deleteRecurringDialogTitle: "deleteRecurringDialogTitle", editRecurringDialogTitle: "editRecurringDialogTitle", selectView: "selectView", newEvent: "newEvent", newEventLabel: "newEventLabel" }, usesInheritance: true, ngImport: i0 });
|
|
8137
8182
|
}
|
|
8138
8183
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, decorators: [{
|
|
8139
8184
|
type: Directive
|
|
@@ -8143,6 +8188,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
8143
8188
|
type: Input
|
|
8144
8189
|
}], moreEvents: [{
|
|
8145
8190
|
type: Input
|
|
8191
|
+
}], moreEventsLabel: [{
|
|
8192
|
+
type: Input
|
|
8146
8193
|
}], dateHeader: [{
|
|
8147
8194
|
type: Input
|
|
8148
8195
|
}], timeHeader: [{
|
|
@@ -9495,6 +9542,9 @@ class SchedulerComponent {
|
|
|
9495
9542
|
i18n-moreEvents="kendo.scheduler.moreEvents|The text of the more events button in the month view. The {count} placeholder is replaced with the number of hidden events."
|
|
9496
9543
|
moreEvents="{count} more"
|
|
9497
9544
|
|
|
9545
|
+
i18n-moreEventsLabel="kendo.scheduler.moreEventsLabel|The aria-label of the more events button in the month view. The {count} placeholder is replaced with the number of hidden events."
|
|
9546
|
+
moreEventsLabel="{count} more events"
|
|
9547
|
+
|
|
9498
9548
|
i18n-dateHeader="kendo.scheduler.dateHeader|The date header text displayed in the agenda view."
|
|
9499
9549
|
dateHeader="Date"
|
|
9500
9550
|
|
|
@@ -9917,6 +9967,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
9917
9967
|
i18n-moreEvents="kendo.scheduler.moreEvents|The text of the more events button in the month view. The {count} placeholder is replaced with the number of hidden events."
|
|
9918
9968
|
moreEvents="{count} more"
|
|
9919
9969
|
|
|
9970
|
+
i18n-moreEventsLabel="kendo.scheduler.moreEventsLabel|The aria-label of the more events button in the month view. The {count} placeholder is replaced with the number of hidden events."
|
|
9971
|
+
moreEventsLabel="{count} more events"
|
|
9972
|
+
|
|
9920
9973
|
i18n-dateHeader="kendo.scheduler.dateHeader|The date header text displayed in the agenda view."
|
|
9921
9974
|
dateHeader="Date"
|
|
9922
9975
|
|
|
@@ -11620,7 +11673,7 @@ function groupEvents(items, { taskResources, resourceGroups, spans, allResources
|
|
|
11620
11673
|
class AgendaTaskItemComponent {
|
|
11621
11674
|
localization;
|
|
11622
11675
|
intl;
|
|
11623
|
-
|
|
11676
|
+
arrowRotateCwIcon = arrowRotateCwIcon;
|
|
11624
11677
|
arrowsNoRepeatIcon = arrowsNoRepeatIcon;
|
|
11625
11678
|
xIcon = xIcon;
|
|
11626
11679
|
item;
|
|
@@ -11659,7 +11712,7 @@ class AgendaTaskItemComponent {
|
|
|
11659
11712
|
<span class="k-scheduler-mark" [style.background-color]="eventColor"></span>
|
|
11660
11713
|
}
|
|
11661
11714
|
@if (isRecurrence) {
|
|
11662
|
-
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="
|
|
11715
|
+
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCwIcon"></kendo-icon-wrapper>
|
|
11663
11716
|
}
|
|
11664
11717
|
|
|
11665
11718
|
@if (isRecurrenceException) {
|
|
@@ -11693,7 +11746,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
11693
11746
|
<span class="k-scheduler-mark" [style.background-color]="eventColor"></span>
|
|
11694
11747
|
}
|
|
11695
11748
|
@if (isRecurrence) {
|
|
11696
|
-
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="
|
|
11749
|
+
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCwIcon"></kendo-icon-wrapper>
|
|
11697
11750
|
}
|
|
11698
11751
|
|
|
11699
11752
|
@if (isRecurrenceException) {
|
|
@@ -13071,7 +13124,6 @@ class MonthResourceGroup {
|
|
|
13071
13124
|
* @hidden
|
|
13072
13125
|
*/
|
|
13073
13126
|
class MonthSlotService extends BaseSlotService {
|
|
13074
|
-
currentPopover;
|
|
13075
13127
|
layout(eventHeight, eventsPerDay, adaptiveSlotHeight) {
|
|
13076
13128
|
this.groups.forEach((group) => group.forEachRange(range => range.layout(eventHeight, eventsPerDay, adaptiveSlotHeight)));
|
|
13077
13129
|
}
|
|
@@ -14528,6 +14580,7 @@ class BaseViewItem {
|
|
|
14528
14580
|
this.rect = null;
|
|
14529
14581
|
this.setStyles({
|
|
14530
14582
|
left: 0,
|
|
14583
|
+
top: 0
|
|
14531
14584
|
});
|
|
14532
14585
|
const slotId = { index: this.index, resourceIndex: this.resourceIndex, rangeIndex: this.rangeIndex };
|
|
14533
14586
|
this.slotService.unregisterItem(this, slotId);
|
|
@@ -14657,9 +14710,11 @@ class MonthViewItemComponent extends BaseViewItem {
|
|
|
14657
14710
|
<div [attr.title]="eventTitle">
|
|
14658
14711
|
<div class="k-event-template k-event-title">{{ item.event.title }}</div>
|
|
14659
14712
|
<div class="k-event-template k-event-time">
|
|
14713
|
+
@if (isRecurrence) {
|
|
14660
14714
|
<span class="k-event-recurrence-icon">
|
|
14661
14715
|
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCwIcon" size="small"></kendo-icon-wrapper>
|
|
14662
14716
|
</span>
|
|
14717
|
+
}
|
|
14663
14718
|
{{ eventTime }}
|
|
14664
14719
|
</div>
|
|
14665
14720
|
</div>
|
|
@@ -14682,7 +14737,7 @@ class MonthViewItemComponent extends BaseViewItem {
|
|
|
14682
14737
|
</span>
|
|
14683
14738
|
}
|
|
14684
14739
|
|
|
14685
|
-
@if (resizable) {
|
|
14740
|
+
@if (resizable && !isReadonly) {
|
|
14686
14741
|
<span class="k-resize-handle k-resize-w"></span>
|
|
14687
14742
|
<span class="k-resize-handle k-resize-e"></span>
|
|
14688
14743
|
}
|
|
@@ -14708,9 +14763,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
14708
14763
|
<div [attr.title]="eventTitle">
|
|
14709
14764
|
<div class="k-event-template k-event-title">{{ item.event.title }}</div>
|
|
14710
14765
|
<div class="k-event-template k-event-time">
|
|
14766
|
+
@if (isRecurrence) {
|
|
14711
14767
|
<span class="k-event-recurrence-icon">
|
|
14712
14768
|
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCwIcon" size="small"></kendo-icon-wrapper>
|
|
14713
14769
|
</span>
|
|
14770
|
+
}
|
|
14714
14771
|
{{ eventTime }}
|
|
14715
14772
|
</div>
|
|
14716
14773
|
</div>
|
|
@@ -14733,7 +14790,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
14733
14790
|
</span>
|
|
14734
14791
|
}
|
|
14735
14792
|
|
|
14736
|
-
@if (resizable) {
|
|
14793
|
+
@if (resizable && !isReadonly) {
|
|
14737
14794
|
<span class="k-resize-handle k-resize-w"></span>
|
|
14738
14795
|
<span class="k-resize-handle k-resize-e"></span>
|
|
14739
14796
|
}
|
|
@@ -14997,6 +15054,143 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
14997
15054
|
args: ['attr.data-slot-index']
|
|
14998
15055
|
}] } });
|
|
14999
15056
|
|
|
15057
|
+
/**
|
|
15058
|
+
* @hidden
|
|
15059
|
+
*/
|
|
15060
|
+
class MonthSlotComponent extends BaseSlotDirective {
|
|
15061
|
+
cdr;
|
|
15062
|
+
moreEventsWidth;
|
|
15063
|
+
moreEventsLeft;
|
|
15064
|
+
moreEventsTop;
|
|
15065
|
+
showMoreButton;
|
|
15066
|
+
hiddenCount = 0;
|
|
15067
|
+
moreEvents = [];
|
|
15068
|
+
resourcesByIndex;
|
|
15069
|
+
monthDaySlotTemplateRef;
|
|
15070
|
+
eventsPerDay;
|
|
15071
|
+
eventHeight;
|
|
15072
|
+
adaptiveSlotHeight;
|
|
15073
|
+
set day(value) {
|
|
15074
|
+
this._day = value;
|
|
15075
|
+
this.start = value;
|
|
15076
|
+
}
|
|
15077
|
+
/**
|
|
15078
|
+
* For the slot template we need the day value without the UTC conversion
|
|
15079
|
+
* - timezone does not matter for the day part in this case as the calendar month view is the same for every timezone
|
|
15080
|
+
* otherwise the date is incorrect for some timezones (e.g. LA timezone) -
|
|
15081
|
+
* For example, it displays Feb. 8, 2023 to be Thursday, wherease it is Wednesday
|
|
15082
|
+
*/
|
|
15083
|
+
get day() {
|
|
15084
|
+
return this._day;
|
|
15085
|
+
}
|
|
15086
|
+
set start(value) {
|
|
15087
|
+
this.startDate = toUTCDate(value);
|
|
15088
|
+
}
|
|
15089
|
+
get start() {
|
|
15090
|
+
return this.startDate;
|
|
15091
|
+
}
|
|
15092
|
+
isDaySlot = true;
|
|
15093
|
+
get end() {
|
|
15094
|
+
return addUTCDays(this.start, 1);
|
|
15095
|
+
}
|
|
15096
|
+
isFirstDayOfMonth(day) {
|
|
15097
|
+
return isEqualDate(day, firstDayOfMonth(day));
|
|
15098
|
+
}
|
|
15099
|
+
get linkHeight() {
|
|
15100
|
+
if (this._linkHeight === null) {
|
|
15101
|
+
const element = firstElementChild(this.nativeElement);
|
|
15102
|
+
this._linkHeight = element ? element.offsetHeight + element.offsetTop : 0;
|
|
15103
|
+
}
|
|
15104
|
+
return this._linkHeight;
|
|
15105
|
+
}
|
|
15106
|
+
startDate;
|
|
15107
|
+
_day;
|
|
15108
|
+
_linkHeight = null;
|
|
15109
|
+
constructor(element, slotService, localization, cdr) {
|
|
15110
|
+
super(element, slotService, localization);
|
|
15111
|
+
this.cdr = cdr;
|
|
15112
|
+
}
|
|
15113
|
+
ngOnDestroy() {
|
|
15114
|
+
super.ngOnDestroy();
|
|
15115
|
+
this.removeShowMore();
|
|
15116
|
+
}
|
|
15117
|
+
showMore(rect) {
|
|
15118
|
+
this.showMoreButton = true;
|
|
15119
|
+
this.moreEventsWidth = rect.width;
|
|
15120
|
+
this.moreEventsLeft = rect.left;
|
|
15121
|
+
this.moreEventsTop = rect.top;
|
|
15122
|
+
this.cdr.detectChanges();
|
|
15123
|
+
}
|
|
15124
|
+
hideMore() {
|
|
15125
|
+
this.hiddenCount = 0;
|
|
15126
|
+
this.showMoreButton = false;
|
|
15127
|
+
this.removeShowMore();
|
|
15128
|
+
}
|
|
15129
|
+
invalidate() {
|
|
15130
|
+
super.invalidate();
|
|
15131
|
+
this._linkHeight = null;
|
|
15132
|
+
this.hiddenCount = 0;
|
|
15133
|
+
this.showMoreButton = false;
|
|
15134
|
+
this.removeShowMore();
|
|
15135
|
+
}
|
|
15136
|
+
removeShowMore() {
|
|
15137
|
+
this.showMoreButton = false;
|
|
15138
|
+
this.cdr.detectChanges();
|
|
15139
|
+
}
|
|
15140
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MonthSlotComponent, deps: [{ token: i0.ElementRef }, { token: MonthSlotService }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
15141
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: MonthSlotComponent, isStandalone: true, selector: "[monthSlot]", inputs: { moreEvents: "moreEvents", resourcesByIndex: "resourcesByIndex", monthDaySlotTemplateRef: "monthDaySlotTemplateRef", eventsPerDay: "eventsPerDay", eventHeight: "eventHeight", adaptiveSlotHeight: "adaptiveSlotHeight", day: ["monthSlot", "day"] }, usesInheritance: true, ngImport: i0, template: `
|
|
15142
|
+
@if (!monthDaySlotTemplateRef) {
|
|
15143
|
+
<span class="k-link k-nav-day">
|
|
15144
|
+
{{ day | kendoDate: isFirstDayOfMonth(day) ? 'MMM dd' : 'dd' }}
|
|
15145
|
+
</span>
|
|
15146
|
+
}
|
|
15147
|
+
@if (monthDaySlotTemplateRef) {
|
|
15148
|
+
<ng-container
|
|
15149
|
+
[ngTemplateOutlet]="monthDaySlotTemplateRef"
|
|
15150
|
+
[ngTemplateOutletContext]="{ date: day, resources: resourcesByIndex }"
|
|
15151
|
+
>
|
|
15152
|
+
</ng-container>
|
|
15153
|
+
}
|
|
15154
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "kendoDate" }] });
|
|
15155
|
+
}
|
|
15156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MonthSlotComponent, decorators: [{
|
|
15157
|
+
type: Component,
|
|
15158
|
+
args: [{
|
|
15159
|
+
selector: '[monthSlot]',
|
|
15160
|
+
template: `
|
|
15161
|
+
@if (!monthDaySlotTemplateRef) {
|
|
15162
|
+
<span class="k-link k-nav-day">
|
|
15163
|
+
{{ day | kendoDate: isFirstDayOfMonth(day) ? 'MMM dd' : 'dd' }}
|
|
15164
|
+
</span>
|
|
15165
|
+
}
|
|
15166
|
+
@if (monthDaySlotTemplateRef) {
|
|
15167
|
+
<ng-container
|
|
15168
|
+
[ngTemplateOutlet]="monthDaySlotTemplateRef"
|
|
15169
|
+
[ngTemplateOutletContext]="{ date: day, resources: resourcesByIndex }"
|
|
15170
|
+
>
|
|
15171
|
+
</ng-container>
|
|
15172
|
+
}
|
|
15173
|
+
`,
|
|
15174
|
+
standalone: true,
|
|
15175
|
+
imports: [NgTemplateOutlet, DatePipe]
|
|
15176
|
+
}]
|
|
15177
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: MonthSlotService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }], propDecorators: { moreEvents: [{
|
|
15178
|
+
type: Input
|
|
15179
|
+
}], resourcesByIndex: [{
|
|
15180
|
+
type: Input
|
|
15181
|
+
}], monthDaySlotTemplateRef: [{
|
|
15182
|
+
type: Input
|
|
15183
|
+
}], eventsPerDay: [{
|
|
15184
|
+
type: Input
|
|
15185
|
+
}], eventHeight: [{
|
|
15186
|
+
type: Input
|
|
15187
|
+
}], adaptiveSlotHeight: [{
|
|
15188
|
+
type: Input
|
|
15189
|
+
}], day: [{
|
|
15190
|
+
type: Input,
|
|
15191
|
+
args: ['monthSlot']
|
|
15192
|
+
}] } });
|
|
15193
|
+
|
|
15000
15194
|
/**
|
|
15001
15195
|
* @hidden
|
|
15002
15196
|
*/
|
|
@@ -15104,7 +15298,7 @@ class EventsPopoverComponent {
|
|
|
15104
15298
|
}
|
|
15105
15299
|
</ng-template>
|
|
15106
15300
|
</kendo-popover>
|
|
15107
|
-
`, isInline: true, dependencies: [{ kind: "component", type: PopoverComponent, selector: "kendo-popover", inputs: ["popupClass", "collision", "
|
|
15301
|
+
`, isInline: true, dependencies: [{ kind: "component", type: PopoverComponent, selector: "kendo-popover", inputs: ["popupClass", "collision", "position", "offset", "width", "height", "title", "subtitle", "body", "callout", "animation", "templateData"], outputs: ["show", "shown", "hide", "hidden", "closeOnKeyDown"] }, { kind: "directive", type: PopoverTitleTemplateDirective, selector: "[kendoPopoverTitleTemplate]" }, { kind: "directive", type: PopoverBodyTemplateDirective, selector: "[kendoPopoverBodyTemplate]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15108
15302
|
}
|
|
15109
15303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: EventsPopoverComponent, decorators: [{
|
|
15110
15304
|
type: Component,
|
|
@@ -15189,249 +15383,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
15189
15383
|
args: ['popover', { static: true }]
|
|
15190
15384
|
}] } });
|
|
15191
15385
|
|
|
15192
|
-
/**
|
|
15193
|
-
* @hidden
|
|
15194
|
-
*/
|
|
15195
|
-
class MonthSlotComponent extends BaseSlotDirective {
|
|
15196
|
-
cdr;
|
|
15197
|
-
focusService;
|
|
15198
|
-
viewState;
|
|
15199
|
-
showMoreFocusable;
|
|
15200
|
-
popoverAnchor;
|
|
15201
|
-
moreEventsWidth;
|
|
15202
|
-
moreEventsLeft;
|
|
15203
|
-
moreEventsTop;
|
|
15204
|
-
showMoreButton;
|
|
15205
|
-
moreHorizontalIcon = moreHorizontalIcon;
|
|
15206
|
-
hiddenCount = 0;
|
|
15207
|
-
moreEvents = [];
|
|
15208
|
-
eventClass;
|
|
15209
|
-
eventStyles;
|
|
15210
|
-
resourcesByIndex;
|
|
15211
|
-
monthDaySlotTemplateRef;
|
|
15212
|
-
eventsPerDay;
|
|
15213
|
-
eventHeight;
|
|
15214
|
-
adaptiveSlotHeight;
|
|
15215
|
-
set day(value) {
|
|
15216
|
-
this._day = value;
|
|
15217
|
-
this.start = value;
|
|
15218
|
-
}
|
|
15219
|
-
/**
|
|
15220
|
-
* For the slot template we need the day value without the UTC conversion
|
|
15221
|
-
* - timezone does not matter for the day part in this case as the calendar month view is the same for every timezone
|
|
15222
|
-
* otherwise the date is incorrect for some timezones (e.g. LA timezone) -
|
|
15223
|
-
* For example, it displays Feb. 8, 2023 to be Thursday, wherease it is Wednesday
|
|
15224
|
-
*/
|
|
15225
|
-
get day() {
|
|
15226
|
-
return this._day;
|
|
15227
|
-
}
|
|
15228
|
-
set start(value) {
|
|
15229
|
-
this.startDate = toUTCDate(value);
|
|
15230
|
-
}
|
|
15231
|
-
get start() {
|
|
15232
|
-
return this.startDate;
|
|
15233
|
-
}
|
|
15234
|
-
isDaySlot = true;
|
|
15235
|
-
get end() {
|
|
15236
|
-
return addUTCDays(this.start, 1);
|
|
15237
|
-
}
|
|
15238
|
-
isFirstDayOfMonth(day) {
|
|
15239
|
-
return isEqualDate(day, firstDayOfMonth(day));
|
|
15240
|
-
}
|
|
15241
|
-
get linkHeight() {
|
|
15242
|
-
if (this._linkHeight === null) {
|
|
15243
|
-
const element = firstElementChild(this.nativeElement);
|
|
15244
|
-
this._linkHeight = element ? element.offsetHeight + element.offsetTop : 0;
|
|
15245
|
-
}
|
|
15246
|
-
return this._linkHeight;
|
|
15247
|
-
}
|
|
15248
|
-
get moreEventsText() {
|
|
15249
|
-
const message = this.localization.get('moreEvents') || '{count} more';
|
|
15250
|
-
return message.replace('{count}', String(this.hiddenCount));
|
|
15251
|
-
}
|
|
15252
|
-
startDate;
|
|
15253
|
-
_day;
|
|
15254
|
-
_linkHeight = null;
|
|
15255
|
-
constructor(element, slotService, localization, cdr, focusService, viewState) {
|
|
15256
|
-
super(element, slotService, localization);
|
|
15257
|
-
this.cdr = cdr;
|
|
15258
|
-
this.focusService = focusService;
|
|
15259
|
-
this.viewState = viewState;
|
|
15260
|
-
}
|
|
15261
|
-
ngOnDestroy() {
|
|
15262
|
-
super.ngOnDestroy();
|
|
15263
|
-
this.removeShowMore();
|
|
15264
|
-
}
|
|
15265
|
-
onNavigateToDay(date) {
|
|
15266
|
-
this.hidePopover();
|
|
15267
|
-
this.viewState.navigateTo({ viewName: 'day', date: new Date(date) });
|
|
15268
|
-
}
|
|
15269
|
-
showPopover() {
|
|
15270
|
-
this.hidePopover();
|
|
15271
|
-
this.popoverAnchor?.show();
|
|
15272
|
-
this.slotService.currentPopover = this.popoverAnchor;
|
|
15273
|
-
}
|
|
15274
|
-
hidePopover() {
|
|
15275
|
-
this.slotService.currentPopover?.hide();
|
|
15276
|
-
}
|
|
15277
|
-
showMore(rect) {
|
|
15278
|
-
this.showMoreButton = true;
|
|
15279
|
-
this.moreEventsWidth = rect.width;
|
|
15280
|
-
this.moreEventsLeft = rect.left;
|
|
15281
|
-
this.moreEventsTop = rect.top;
|
|
15282
|
-
this.cdr.detectChanges();
|
|
15283
|
-
this.repositionShowMoreInFocus();
|
|
15284
|
-
}
|
|
15285
|
-
repositionShowMoreInFocus() {
|
|
15286
|
-
if (!this.showMoreFocusable) {
|
|
15287
|
-
return;
|
|
15288
|
-
}
|
|
15289
|
-
let lastVisibleItem = null;
|
|
15290
|
-
let maxRowIndex = -1;
|
|
15291
|
-
const slotResourceIndex = this.id.resourceIndex;
|
|
15292
|
-
this.slotService.forEachItem((viewItem) => {
|
|
15293
|
-
if (viewItem.resourceIndex !== slotResourceIndex) {
|
|
15294
|
-
return;
|
|
15295
|
-
}
|
|
15296
|
-
const data = viewItem.item.data[viewItem.resourceIndex];
|
|
15297
|
-
if (data.hidden) {
|
|
15298
|
-
return;
|
|
15299
|
-
}
|
|
15300
|
-
if (!intersects(viewItem.item.startTime, viewItem.item.endTime, this.start, this.end)) {
|
|
15301
|
-
return;
|
|
15302
|
-
}
|
|
15303
|
-
if (data.rowIndex > maxRowIndex) {
|
|
15304
|
-
maxRowIndex = data.rowIndex;
|
|
15305
|
-
lastVisibleItem = viewItem;
|
|
15306
|
-
}
|
|
15307
|
-
});
|
|
15308
|
-
if (!lastVisibleItem) {
|
|
15309
|
-
return;
|
|
15310
|
-
}
|
|
15311
|
-
const anchor = this.focusService.getFocusableByElement(lastVisibleItem.nativeElement);
|
|
15312
|
-
if (!anchor) {
|
|
15313
|
-
return;
|
|
15314
|
-
}
|
|
15315
|
-
this.focusService.moveAfter(this.showMoreFocusable, anchor);
|
|
15316
|
-
}
|
|
15317
|
-
hideMore() {
|
|
15318
|
-
this.hiddenCount = 0;
|
|
15319
|
-
this.showMoreButton = false;
|
|
15320
|
-
this.removeShowMore();
|
|
15321
|
-
}
|
|
15322
|
-
invalidate() {
|
|
15323
|
-
super.invalidate();
|
|
15324
|
-
this._linkHeight = null;
|
|
15325
|
-
this.hiddenCount = 0;
|
|
15326
|
-
this.showMoreButton = false;
|
|
15327
|
-
this.removeShowMore();
|
|
15328
|
-
}
|
|
15329
|
-
removeShowMore() {
|
|
15330
|
-
this.showMoreButton = false;
|
|
15331
|
-
this.cdr.detectChanges();
|
|
15332
|
-
}
|
|
15333
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MonthSlotComponent, deps: [{ token: i0.ElementRef }, { token: MonthSlotService }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: FocusService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15334
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: MonthSlotComponent, isStandalone: true, selector: "[monthSlot]", inputs: { moreEvents: "moreEvents", eventClass: "eventClass", eventStyles: "eventStyles", resourcesByIndex: "resourcesByIndex", monthDaySlotTemplateRef: "monthDaySlotTemplateRef", eventsPerDay: "eventsPerDay", eventHeight: "eventHeight", adaptiveSlotHeight: "adaptiveSlotHeight", day: ["monthSlot", "day"] }, viewQueries: [{ propertyName: "showMoreFocusable", first: true, predicate: FocusableDirective, descendants: true }, { propertyName: "popoverAnchor", first: true, predicate: PopoverAnchorDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
15335
|
-
@if (!monthDaySlotTemplateRef) {
|
|
15336
|
-
<span class="k-link k-nav-day">
|
|
15337
|
-
{{ day | kendoDate: isFirstDayOfMonth(day) ? 'MMM dd' : 'dd' }}
|
|
15338
|
-
</span>
|
|
15339
|
-
}
|
|
15340
|
-
@if (monthDaySlotTemplateRef) {
|
|
15341
|
-
<ng-container
|
|
15342
|
-
[ngTemplateOutlet]="monthDaySlotTemplateRef"
|
|
15343
|
-
[ngTemplateOutletContext]="{ date: day, resources: resourcesByIndex }"
|
|
15344
|
-
>
|
|
15345
|
-
</ng-container>
|
|
15346
|
-
}
|
|
15347
|
-
|
|
15348
|
-
@if (showMoreButton) {
|
|
15349
|
-
<button kendoButton kendoPopoverAnchor [popover]="eventsPopoverComp.popover" showOn="none" [kendoSchedulerFocusIndex]="id?.resourceIndex ?? 0" class="k-more-events" size="xsmall" themeColor="primary" fillMode="flat" [style.width.px]="moreEventsWidth" [style.left.px]="moreEventsLeft" [style.top.px]="moreEventsTop">
|
|
15350
|
-
{{ moreEventsText }}
|
|
15351
|
-
</button>
|
|
15352
|
-
|
|
15353
|
-
<kendo-scheduler-events-popover
|
|
15354
|
-
#eventsPopoverComp
|
|
15355
|
-
[date]="day"
|
|
15356
|
-
[events]="moreEvents"
|
|
15357
|
-
[eventClass]="eventClass"
|
|
15358
|
-
[eventStyles]="eventStyles"
|
|
15359
|
-
[noEventsMessage]="localization.get('yearViewNoEvents')"
|
|
15360
|
-
(navigateToDay)="onNavigateToDay($event)"
|
|
15361
|
-
(blur)="hidePopover()">
|
|
15362
|
-
</kendo-scheduler-events-popover>
|
|
15363
|
-
}
|
|
15364
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PopoverAnchorDirective, selector: "[kendoPopoverAnchor]", exportAs: ["kendoPopoverAnchor"] }, { kind: "component", type: EventsPopoverComponent, selector: "kendo-scheduler-events-popover", inputs: ["date", "events", "eventClass", "eventStyles", "noEventsMessage"], outputs: ["navigateToDay"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "pipe", type: DatePipe, name: "kendoDate" }] });
|
|
15365
|
-
}
|
|
15366
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MonthSlotComponent, decorators: [{
|
|
15367
|
-
type: Component,
|
|
15368
|
-
args: [{
|
|
15369
|
-
selector: '[monthSlot]',
|
|
15370
|
-
template: `
|
|
15371
|
-
@if (!monthDaySlotTemplateRef) {
|
|
15372
|
-
<span class="k-link k-nav-day">
|
|
15373
|
-
{{ day | kendoDate: isFirstDayOfMonth(day) ? 'MMM dd' : 'dd' }}
|
|
15374
|
-
</span>
|
|
15375
|
-
}
|
|
15376
|
-
@if (monthDaySlotTemplateRef) {
|
|
15377
|
-
<ng-container
|
|
15378
|
-
[ngTemplateOutlet]="monthDaySlotTemplateRef"
|
|
15379
|
-
[ngTemplateOutletContext]="{ date: day, resources: resourcesByIndex }"
|
|
15380
|
-
>
|
|
15381
|
-
</ng-container>
|
|
15382
|
-
}
|
|
15383
|
-
|
|
15384
|
-
@if (showMoreButton) {
|
|
15385
|
-
<button kendoButton kendoPopoverAnchor [popover]="eventsPopoverComp.popover" showOn="none" [kendoSchedulerFocusIndex]="id?.resourceIndex ?? 0" class="k-more-events" size="xsmall" themeColor="primary" fillMode="flat" [style.width.px]="moreEventsWidth" [style.left.px]="moreEventsLeft" [style.top.px]="moreEventsTop">
|
|
15386
|
-
{{ moreEventsText }}
|
|
15387
|
-
</button>
|
|
15388
|
-
|
|
15389
|
-
<kendo-scheduler-events-popover
|
|
15390
|
-
#eventsPopoverComp
|
|
15391
|
-
[date]="day"
|
|
15392
|
-
[events]="moreEvents"
|
|
15393
|
-
[eventClass]="eventClass"
|
|
15394
|
-
[eventStyles]="eventStyles"
|
|
15395
|
-
[noEventsMessage]="localization.get('yearViewNoEvents')"
|
|
15396
|
-
(navigateToDay)="onNavigateToDay($event)"
|
|
15397
|
-
(blur)="hidePopover()">
|
|
15398
|
-
</kendo-scheduler-events-popover>
|
|
15399
|
-
}
|
|
15400
|
-
`,
|
|
15401
|
-
standalone: true,
|
|
15402
|
-
imports: [NgTemplateOutlet, PopoverAnchorDirective, EventsPopoverComponent, DatePipe, ButtonComponent, FocusableDirective]
|
|
15403
|
-
}]
|
|
15404
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: MonthSlotService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: FocusService }, { type: ViewStateService }], propDecorators: { showMoreFocusable: [{
|
|
15405
|
-
type: ViewChild,
|
|
15406
|
-
args: [FocusableDirective]
|
|
15407
|
-
}], popoverAnchor: [{
|
|
15408
|
-
type: ViewChild,
|
|
15409
|
-
args: [PopoverAnchorDirective]
|
|
15410
|
-
}], moreEvents: [{
|
|
15411
|
-
type: Input
|
|
15412
|
-
}], eventClass: [{
|
|
15413
|
-
type: Input
|
|
15414
|
-
}], eventStyles: [{
|
|
15415
|
-
type: Input
|
|
15416
|
-
}], resourcesByIndex: [{
|
|
15417
|
-
type: Input
|
|
15418
|
-
}], monthDaySlotTemplateRef: [{
|
|
15419
|
-
type: Input
|
|
15420
|
-
}], eventsPerDay: [{
|
|
15421
|
-
type: Input
|
|
15422
|
-
}], eventHeight: [{
|
|
15423
|
-
type: Input
|
|
15424
|
-
}], adaptiveSlotHeight: [{
|
|
15425
|
-
type: Input
|
|
15426
|
-
}], day: [{
|
|
15427
|
-
type: Input,
|
|
15428
|
-
args: ['monthSlot']
|
|
15429
|
-
}] } });
|
|
15430
|
-
|
|
15431
15386
|
/**
|
|
15432
15387
|
* @hidden
|
|
15433
15388
|
*/
|
|
15434
15389
|
class MonthViewRendererComponent extends BaseView {
|
|
15390
|
+
focusService;
|
|
15435
15391
|
hiddenDays;
|
|
15436
15392
|
monthDaySlotTemplate;
|
|
15437
15393
|
highlightOngoingEvents;
|
|
@@ -15453,7 +15409,11 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15453
15409
|
moreEventsClick = new EventEmitter();
|
|
15454
15410
|
resizeHintFormat = { skeleton: 'Md' };
|
|
15455
15411
|
weeks = [];
|
|
15412
|
+
popoverDate;
|
|
15413
|
+
popoverEvents = [];
|
|
15414
|
+
moreButtons = [];
|
|
15456
15415
|
eventElements;
|
|
15416
|
+
popoverContainer;
|
|
15457
15417
|
get monthDaySlotTemplateRef() {
|
|
15458
15418
|
return this.monthDaySlotTemplate || (this.schedulerMonthDaySlotTemplate || {}).templateRef;
|
|
15459
15419
|
}
|
|
@@ -15465,10 +15425,20 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15465
15425
|
return task.startTime < dayEnd && task.endTime > dayStart;
|
|
15466
15426
|
});
|
|
15467
15427
|
}
|
|
15428
|
+
onPopoverNavigateToDay(date) {
|
|
15429
|
+
this.popoverContainer?.hide();
|
|
15430
|
+
this.viewState.navigateTo({ viewName: 'day', date: new Date(date) });
|
|
15431
|
+
}
|
|
15432
|
+
setPopoverData(slot) {
|
|
15433
|
+
this.popoverDate = slot.day;
|
|
15434
|
+
this.popoverEvents = slot.moreEvents;
|
|
15435
|
+
}
|
|
15468
15436
|
ongoingEventsTimeout;
|
|
15469
15437
|
schedulerMonthDaySlotTemplate;
|
|
15470
|
-
|
|
15438
|
+
disposeDocumentClick;
|
|
15439
|
+
constructor(viewContext, viewState, intl, slotService, zone, element, renderer, pdfService, localization, changeDetector, scrollbarService, focusService) {
|
|
15471
15440
|
super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector, scrollbarService);
|
|
15441
|
+
this.focusService = focusService;
|
|
15472
15442
|
this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
|
|
15473
15443
|
}
|
|
15474
15444
|
ngOnChanges(changes) {
|
|
@@ -15492,8 +15462,21 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15492
15462
|
ngAfterViewInit() {
|
|
15493
15463
|
this.updateOngoingEvents();
|
|
15494
15464
|
super.ngAfterViewInit();
|
|
15465
|
+
this.zone.runOutsideAngular(() => {
|
|
15466
|
+
this.disposeDocumentClick = this.renderer.listen('document', 'click', (e) => {
|
|
15467
|
+
if (!this.popoverContainer?.popupRef) {
|
|
15468
|
+
return;
|
|
15469
|
+
}
|
|
15470
|
+
const target = e.target;
|
|
15471
|
+
if (target.closest('.k-more-events') || target.closest('.k-popup')) {
|
|
15472
|
+
return;
|
|
15473
|
+
}
|
|
15474
|
+
this.popoverContainer.hide();
|
|
15475
|
+
});
|
|
15476
|
+
});
|
|
15495
15477
|
}
|
|
15496
15478
|
ngOnDestroy() {
|
|
15479
|
+
this.disposeDocumentClick?.();
|
|
15497
15480
|
clearTimeout(this.ongoingEventsTimeout);
|
|
15498
15481
|
super.ngOnDestroy();
|
|
15499
15482
|
}
|
|
@@ -15572,6 +15555,7 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15572
15555
|
if (isAutoHeight) {
|
|
15573
15556
|
content.style.overflow = 'auto';
|
|
15574
15557
|
}
|
|
15558
|
+
this.collectMoreButtons();
|
|
15575
15559
|
this.syncTables();
|
|
15576
15560
|
}
|
|
15577
15561
|
syncTables() {
|
|
@@ -15594,20 +15578,16 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15594
15578
|
}
|
|
15595
15579
|
onClick(e, eventType = e.type) {
|
|
15596
15580
|
if (eventType === 'click') {
|
|
15597
|
-
this.
|
|
15598
|
-
|
|
15599
|
-
|
|
15600
|
-
|
|
15601
|
-
|
|
15581
|
+
const moreBtn = closestInScope(e.target, node => hasClasses(node, 'k-more-events'), this.element.nativeElement);
|
|
15582
|
+
if (moreBtn) {
|
|
15583
|
+
const index = moreBtn.getAttribute('data-slot-index');
|
|
15584
|
+
if (!index) {
|
|
15585
|
+
return;
|
|
15586
|
+
}
|
|
15602
15587
|
const slot = this.slotService.slotByIndex(index);
|
|
15603
15588
|
const [resourceIndex, rangeIndex] = index.split(':').map(part => parseInt(part, 10));
|
|
15604
15589
|
const group = this.slotService['groups'][resourceIndex];
|
|
15605
15590
|
const range = group.dayRanges[rangeIndex];
|
|
15606
|
-
const slotDateClicked = closestInScope(e.target, node => hasClasses(node, 'k-nav-day'), eventSlot);
|
|
15607
|
-
if (slotDateClicked) {
|
|
15608
|
-
this.viewState.navigateTo({ viewName: 'day', date: toLocalDate(slot.start) });
|
|
15609
|
-
return;
|
|
15610
|
-
}
|
|
15611
15591
|
this.zone.run(() => {
|
|
15612
15592
|
const moreEventsEvent = new MoreEventsClickEvent();
|
|
15613
15593
|
const filterSlotEvents = (isHidden) => range.items
|
|
@@ -15623,11 +15603,22 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15623
15603
|
moreEventsEvent.date = toLocalDate(slot.start);
|
|
15624
15604
|
this.moreEventsClick.emit(moreEventsEvent);
|
|
15625
15605
|
if (!moreEventsEvent.isDefaultPrevented()) {
|
|
15626
|
-
|
|
15606
|
+
this.popoverContainer.hide();
|
|
15607
|
+
this.setPopoverData(slot);
|
|
15608
|
+
this.popoverContainer.show(moreBtn);
|
|
15627
15609
|
}
|
|
15628
15610
|
});
|
|
15629
15611
|
return;
|
|
15630
15612
|
}
|
|
15613
|
+
const navDay = closestInScope(e.target, node => hasClasses(node, 'k-nav-day'), this.element.nativeElement);
|
|
15614
|
+
if (navDay) {
|
|
15615
|
+
const eventSlot = closestInScope(navDay, node => node.hasAttribute('data-slot-index'), this.element.nativeElement);
|
|
15616
|
+
if (eventSlot) {
|
|
15617
|
+
const slot = this.slotService.slotByIndex(eventSlot.getAttribute('data-slot-index'));
|
|
15618
|
+
this.viewState.navigateTo({ viewName: 'day', date: toLocalDate(slot.start) });
|
|
15619
|
+
return;
|
|
15620
|
+
}
|
|
15621
|
+
}
|
|
15631
15622
|
}
|
|
15632
15623
|
super.onClick(e, eventType);
|
|
15633
15624
|
}
|
|
@@ -15707,10 +15698,70 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15707
15698
|
}
|
|
15708
15699
|
return weeks;
|
|
15709
15700
|
}
|
|
15710
|
-
|
|
15701
|
+
collectMoreButtons() {
|
|
15702
|
+
const buttons = [];
|
|
15703
|
+
const message = this.localization.get('moreEvents');
|
|
15704
|
+
this.slotService.forEachSlot((slot) => {
|
|
15705
|
+
if (slot.showMoreButton) {
|
|
15706
|
+
const count = String(slot.hiddenCount);
|
|
15707
|
+
buttons.push({
|
|
15708
|
+
width: slot.moreEventsWidth,
|
|
15709
|
+
left: slot.moreEventsLeft,
|
|
15710
|
+
top: slot.moreEventsTop,
|
|
15711
|
+
text: message.replace('{count}', count),
|
|
15712
|
+
ariaLabel: (this.localization.get('moreEventsLabel')).replace('{count}', count),
|
|
15713
|
+
resourceIndex: slot.id?.resourceIndex ?? 0,
|
|
15714
|
+
slotIndex: slot.slotIndex
|
|
15715
|
+
});
|
|
15716
|
+
}
|
|
15717
|
+
});
|
|
15718
|
+
this.moreButtons = buttons;
|
|
15719
|
+
this.cdr.detectChanges();
|
|
15720
|
+
this.reorderButtonsFocus();
|
|
15721
|
+
}
|
|
15722
|
+
reorderButtonsFocus() {
|
|
15723
|
+
const contentEl = this.element.nativeElement.querySelector('.k-scheduler-content');
|
|
15724
|
+
if (!contentEl) {
|
|
15725
|
+
return;
|
|
15726
|
+
}
|
|
15727
|
+
const buttonEls = contentEl.querySelectorAll('.k-more-events');
|
|
15728
|
+
buttonEls.forEach((btnEl) => {
|
|
15729
|
+
const slotIndex = btnEl.getAttribute('data-slot-index');
|
|
15730
|
+
if (!slotIndex) {
|
|
15731
|
+
return;
|
|
15732
|
+
}
|
|
15733
|
+
const slot = this.slotService.slotByIndex(slotIndex);
|
|
15734
|
+
if (!slot) {
|
|
15735
|
+
return;
|
|
15736
|
+
}
|
|
15737
|
+
// Find the last visible event that intersects this slot
|
|
15738
|
+
let lastEvent;
|
|
15739
|
+
const events = this.eventElements?.toArray() || [];
|
|
15740
|
+
for (const event of events) {
|
|
15741
|
+
if (event.item.data[event.resourceIndex]?.hidden) {
|
|
15742
|
+
continue;
|
|
15743
|
+
}
|
|
15744
|
+
if (event.resourceIndex !== slot.id.resourceIndex) {
|
|
15745
|
+
continue;
|
|
15746
|
+
}
|
|
15747
|
+
if (intersects(event.item.startTime, event.item.endTime, slot.start, slot.end)) {
|
|
15748
|
+
lastEvent = event;
|
|
15749
|
+
}
|
|
15750
|
+
}
|
|
15751
|
+
if (!lastEvent) {
|
|
15752
|
+
return;
|
|
15753
|
+
}
|
|
15754
|
+
const btnFocusable = this.focusService.getFocusableByElement(btnEl);
|
|
15755
|
+
const eventFocusable = this.focusService.getFocusableByElement(lastEvent.nativeElement);
|
|
15756
|
+
if (btnFocusable && eventFocusable) {
|
|
15757
|
+
this.focusService.moveAfter(btnFocusable, eventFocusable);
|
|
15758
|
+
}
|
|
15759
|
+
});
|
|
15760
|
+
}
|
|
15761
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MonthViewRendererComponent, deps: [{ token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: MonthSlotService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: PDFService }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i7.ScrollbarService }, { token: FocusService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15711
15762
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: MonthViewRendererComponent, isStandalone: true, selector: "month-view", inputs: { hiddenDays: "hiddenDays", monthDaySlotTemplate: "monthDaySlotTemplate", highlightOngoingEvents: "highlightOngoingEvents", type: "type", eventsPerDay: "eventsPerDay", adaptiveSlotHeight: "adaptiveSlotHeight", numberOfWeeks: "numberOfWeeks", newRange: "newRange", dateRangeFn: "dateRangeFn" }, outputs: { moreEventsClick: "moreEventsClick" }, providers: [
|
|
15712
15763
|
MonthSlotService
|
|
15713
|
-
], viewQueries: [{ propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
15764
|
+
], viewQueries: [{ propertyName: "popoverContainer", first: true, predicate: PopoverContainerDirective, descendants: true }, { propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
15714
15765
|
<table class="k-scheduler-layout k-scheduler-monthview" role="none">
|
|
15715
15766
|
<tbody>
|
|
15716
15767
|
<tr class="k-scheduler-head">
|
|
@@ -15805,6 +15856,10 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15805
15856
|
class="k-scheduler-content"
|
|
15806
15857
|
tabindex="0"
|
|
15807
15858
|
#content
|
|
15859
|
+
kendoPopoverContainer
|
|
15860
|
+
[popover]="eventsPopoverComp.popover"
|
|
15861
|
+
filter=".k-more-events"
|
|
15862
|
+
showOn="none"
|
|
15808
15863
|
[style.overflowY]="'auto'">
|
|
15809
15864
|
<!-- Main content -->
|
|
15810
15865
|
<table class="k-scheduler-table" [class.k-scheduler-table-auto]="adaptiveSlotHeight" #contentTable>
|
|
@@ -15817,8 +15872,6 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15817
15872
|
<td
|
|
15818
15873
|
[monthSlot]="day"
|
|
15819
15874
|
[moreEvents]="moreEventsByIndex(rangeIndex, index)"
|
|
15820
|
-
[eventClass]="eventClass"
|
|
15821
|
-
[eventStyles]="eventStyles"
|
|
15822
15875
|
[eventHeight]="eventHeight"
|
|
15823
15876
|
[eventsPerDay]="eventsPerDay"
|
|
15824
15877
|
[adaptiveSlotHeight]="adaptiveSlotHeight"
|
|
@@ -15864,6 +15917,22 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15864
15917
|
</div>
|
|
15865
15918
|
}
|
|
15866
15919
|
}
|
|
15920
|
+
@for (btn of moreButtons; track itemIndex($index, btn)) {
|
|
15921
|
+
<button
|
|
15922
|
+
kendoButton
|
|
15923
|
+
[kendoSchedulerFocusIndex]="btn.resourceIndex"
|
|
15924
|
+
[attr.data-slot-index]="btn.slotIndex"
|
|
15925
|
+
[attr.aria-label]="btn.ariaLabel"
|
|
15926
|
+
class="k-more-events"
|
|
15927
|
+
size="xsmall"
|
|
15928
|
+
themeColor="primary"
|
|
15929
|
+
fillMode="flat"
|
|
15930
|
+
[style.width.px]="btn.width"
|
|
15931
|
+
[style.left.px]="btn.left"
|
|
15932
|
+
[style.top.px]="btn.top">
|
|
15933
|
+
{{ btn.text }}
|
|
15934
|
+
</button>
|
|
15935
|
+
}
|
|
15867
15936
|
<kendo-hint-container #hintContainer>
|
|
15868
15937
|
<ng-template>
|
|
15869
15938
|
@for (hint of dragHints; track itemIndex($index, hint)) {
|
|
@@ -15889,12 +15958,21 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15889
15958
|
}
|
|
15890
15959
|
</ng-template>
|
|
15891
15960
|
</kendo-hint-container>
|
|
15961
|
+
<kendo-scheduler-events-popover
|
|
15962
|
+
#eventsPopoverComp
|
|
15963
|
+
[date]="popoverDate"
|
|
15964
|
+
[events]="popoverEvents"
|
|
15965
|
+
[eventClass]="eventClass"
|
|
15966
|
+
[eventStyles]="eventStyles"
|
|
15967
|
+
[noEventsMessage]="localization.get('yearViewNoEvents')"
|
|
15968
|
+
(navigateToDay)="onPopoverNavigateToDay($event)">
|
|
15969
|
+
</kendo-scheduler-events-popover>
|
|
15892
15970
|
</div>
|
|
15893
15971
|
</td>
|
|
15894
15972
|
</tr>
|
|
15895
15973
|
</tbody>
|
|
15896
15974
|
</table>
|
|
15897
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MonthSlotComponent, selector: "[monthSlot]", inputs: ["moreEvents", "
|
|
15975
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MonthSlotComponent, selector: "[monthSlot]", inputs: ["moreEvents", "resourcesByIndex", "monthDaySlotTemplateRef", "eventsPerDay", "eventHeight", "adaptiveSlotHeight", "monthSlot"] }, { kind: "component", type: MonthViewItemComponent, selector: "[monthViewItem]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: PopoverContainerDirective, selector: "[kendoPopoverContainer]", inputs: ["filter"], exportAs: ["kendoPopoverContainer"] }, { kind: "component", type: EventsPopoverComponent, selector: "kendo-scheduler-events-popover", inputs: ["date", "events", "eventClass", "eventStyles", "noEventsMessage"], outputs: ["navigateToDay"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "pipe", type: RepeatPipe, name: "repeat" }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
15898
15976
|
}
|
|
15899
15977
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MonthViewRendererComponent, decorators: [{
|
|
15900
15978
|
type: Component,
|
|
@@ -15998,6 +16076,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
15998
16076
|
class="k-scheduler-content"
|
|
15999
16077
|
tabindex="0"
|
|
16000
16078
|
#content
|
|
16079
|
+
kendoPopoverContainer
|
|
16080
|
+
[popover]="eventsPopoverComp.popover"
|
|
16081
|
+
filter=".k-more-events"
|
|
16082
|
+
showOn="none"
|
|
16001
16083
|
[style.overflowY]="'auto'">
|
|
16002
16084
|
<!-- Main content -->
|
|
16003
16085
|
<table class="k-scheduler-table" [class.k-scheduler-table-auto]="adaptiveSlotHeight" #contentTable>
|
|
@@ -16010,8 +16092,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16010
16092
|
<td
|
|
16011
16093
|
[monthSlot]="day"
|
|
16012
16094
|
[moreEvents]="moreEventsByIndex(rangeIndex, index)"
|
|
16013
|
-
[eventClass]="eventClass"
|
|
16014
|
-
[eventStyles]="eventStyles"
|
|
16015
16095
|
[eventHeight]="eventHeight"
|
|
16016
16096
|
[eventsPerDay]="eventsPerDay"
|
|
16017
16097
|
[adaptiveSlotHeight]="adaptiveSlotHeight"
|
|
@@ -16057,6 +16137,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16057
16137
|
</div>
|
|
16058
16138
|
}
|
|
16059
16139
|
}
|
|
16140
|
+
@for (btn of moreButtons; track itemIndex($index, btn)) {
|
|
16141
|
+
<button
|
|
16142
|
+
kendoButton
|
|
16143
|
+
[kendoSchedulerFocusIndex]="btn.resourceIndex"
|
|
16144
|
+
[attr.data-slot-index]="btn.slotIndex"
|
|
16145
|
+
[attr.aria-label]="btn.ariaLabel"
|
|
16146
|
+
class="k-more-events"
|
|
16147
|
+
size="xsmall"
|
|
16148
|
+
themeColor="primary"
|
|
16149
|
+
fillMode="flat"
|
|
16150
|
+
[style.width.px]="btn.width"
|
|
16151
|
+
[style.left.px]="btn.left"
|
|
16152
|
+
[style.top.px]="btn.top">
|
|
16153
|
+
{{ btn.text }}
|
|
16154
|
+
</button>
|
|
16155
|
+
}
|
|
16060
16156
|
<kendo-hint-container #hintContainer>
|
|
16061
16157
|
<ng-template>
|
|
16062
16158
|
@for (hint of dragHints; track itemIndex($index, hint)) {
|
|
@@ -16082,6 +16178,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16082
16178
|
}
|
|
16083
16179
|
</ng-template>
|
|
16084
16180
|
</kendo-hint-container>
|
|
16181
|
+
<kendo-scheduler-events-popover
|
|
16182
|
+
#eventsPopoverComp
|
|
16183
|
+
[date]="popoverDate"
|
|
16184
|
+
[events]="popoverEvents"
|
|
16185
|
+
[eventClass]="eventClass"
|
|
16186
|
+
[eventStyles]="eventStyles"
|
|
16187
|
+
[noEventsMessage]="localization.get('yearViewNoEvents')"
|
|
16188
|
+
(navigateToDay)="onPopoverNavigateToDay($event)">
|
|
16189
|
+
</kendo-scheduler-events-popover>
|
|
16085
16190
|
</div>
|
|
16086
16191
|
</td>
|
|
16087
16192
|
</tr>
|
|
@@ -16089,9 +16194,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16089
16194
|
</table>
|
|
16090
16195
|
`,
|
|
16091
16196
|
standalone: true,
|
|
16092
|
-
imports: [NgTemplateOutlet, NgClass, MonthSlotComponent, MonthViewItemComponent, NgStyle, FocusableDirective, HintContainerComponent, ResizeHintComponent, RepeatPipe, ResourceIteratorPipe, DatePipe, AsyncPipe]
|
|
16197
|
+
imports: [NgTemplateOutlet, NgClass, MonthSlotComponent, MonthViewItemComponent, NgStyle, FocusableDirective, HintContainerComponent, ResizeHintComponent, RepeatPipe, ResourceIteratorPipe, DatePipe, AsyncPipe, PopoverContainerDirective, EventsPopoverComponent, ButtonComponent]
|
|
16093
16198
|
}]
|
|
16094
|
-
}], ctorParameters: () => [{ type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: MonthSlotService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: PDFService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i7.ScrollbarService }], propDecorators: { hiddenDays: [{
|
|
16199
|
+
}], ctorParameters: () => [{ type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: MonthSlotService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: PDFService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i7.ScrollbarService }, { type: FocusService }], propDecorators: { hiddenDays: [{
|
|
16095
16200
|
type: Input
|
|
16096
16201
|
}], monthDaySlotTemplate: [{
|
|
16097
16202
|
type: Input
|
|
@@ -16114,6 +16219,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16114
16219
|
}], eventElements: [{
|
|
16115
16220
|
type: ViewChildren,
|
|
16116
16221
|
args: [MonthViewItemComponent]
|
|
16222
|
+
}], popoverContainer: [{
|
|
16223
|
+
type: ViewChild,
|
|
16224
|
+
args: [PopoverContainerDirective]
|
|
16117
16225
|
}] } });
|
|
16118
16226
|
|
|
16119
16227
|
/**
|
|
@@ -17206,6 +17314,7 @@ class SlotRange {
|
|
|
17206
17314
|
}));
|
|
17207
17315
|
addMinHeightOverflowEvents(sorted, slots, slotItems);
|
|
17208
17316
|
const slotKeys = Object.keys(slotItems);
|
|
17317
|
+
slotKeys.forEach(key => { slotItems[key].slot.columns = undefined; });
|
|
17209
17318
|
initTimeColumns(slotKeys, slotItems);
|
|
17210
17319
|
slotKeys.forEach((key) => {
|
|
17211
17320
|
const { slot, events } = slotItems[key];
|
|
@@ -17744,7 +17853,7 @@ class DayTimeViewItemComponent extends BaseViewItem {
|
|
|
17744
17853
|
</span>
|
|
17745
17854
|
}
|
|
17746
17855
|
|
|
17747
|
-
@if (resizable && vertical) {
|
|
17856
|
+
@if (resizable && vertical && !isReadonly) {
|
|
17748
17857
|
@if (!item.tail) {
|
|
17749
17858
|
<span class="k-resize-handle k-resize-n"></span>
|
|
17750
17859
|
}
|
|
@@ -17826,7 +17935,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
17826
17935
|
</span>
|
|
17827
17936
|
}
|
|
17828
17937
|
|
|
17829
|
-
@if (resizable && vertical) {
|
|
17938
|
+
@if (resizable && vertical && !isReadonly) {
|
|
17830
17939
|
@if (!item.tail) {
|
|
17831
17940
|
<span class="k-resize-handle k-resize-n"></span>
|
|
17832
17941
|
}
|
|
@@ -20185,7 +20294,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
20185
20294
|
viewName = 'timeline';
|
|
20186
20295
|
verticalResourceRows;
|
|
20187
20296
|
get classNames() {
|
|
20188
|
-
return `k-scheduler-${this.viewName}
|
|
20297
|
+
return `k-scheduler-${this.viewName}view`;
|
|
20189
20298
|
}
|
|
20190
20299
|
get contentWidthPercentage() {
|
|
20191
20300
|
const expectedWidth = this.columnWidth * this.slotsCount;
|
|
@@ -22387,6 +22496,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
22387
22496
|
}] } });
|
|
22388
22497
|
|
|
22389
22498
|
const isContentWrapper = element => hasClasses(element, 'k-scheduler-content');
|
|
22499
|
+
const isArrowKeyHandledBySegmentedControl = (e) => e.defaultPrevented && Boolean(closest(e.target, node => hasClasses(node, 'k-segmented-control')));
|
|
22390
22500
|
const CALENDAR_TAG = 'KENDO-CALENDAR-HORIZONTAL';
|
|
22391
22501
|
/**
|
|
22392
22502
|
* @hidden
|
|
@@ -22487,7 +22597,8 @@ class ShortcutsDirective {
|
|
|
22487
22597
|
}, {
|
|
22488
22598
|
match: e => {
|
|
22489
22599
|
const code = normalizeKeys(e);
|
|
22490
|
-
return (code === Keys.ArrowUp || code === Keys.ArrowLeft) && noModifiers(e) &&
|
|
22600
|
+
return (code === Keys.ArrowUp || code === Keys.ArrowLeft) && noModifiers(e) &&
|
|
22601
|
+
!isContentWrapper(e.target) && !isArrowKeyHandledBySegmentedControl(e);
|
|
22491
22602
|
},
|
|
22492
22603
|
action: e => {
|
|
22493
22604
|
//use the MultiViewCalendar navigation for Year View
|
|
@@ -22513,7 +22624,8 @@ class ShortcutsDirective {
|
|
|
22513
22624
|
}, {
|
|
22514
22625
|
match: e => {
|
|
22515
22626
|
const code = normalizeKeys(e);
|
|
22516
|
-
return (code === Keys.ArrowDown || code === Keys.ArrowRight) && noModifiers(e) &&
|
|
22627
|
+
return (code === Keys.ArrowDown || code === Keys.ArrowRight) && noModifiers(e) &&
|
|
22628
|
+
!isContentWrapper(e.target) && !isArrowKeyHandledBySegmentedControl(e);
|
|
22517
22629
|
},
|
|
22518
22630
|
action: e => {
|
|
22519
22631
|
//use the MultiViewCalendar navigation for Year View
|