@progress/kendo-angular-scheduler 25.0.0 → 25.1.0-develop.10
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 +371 -303
- package/index.d.ts +6 -3
- package/package-metadata.mjs +2 -2
- package/package.json +15 -15
- package/schematics/ngAdd/index.js +3 -3
|
@@ -20,7 +20,7 @@ import * as i4 from '@progress/kendo-angular-intl';
|
|
|
20
20
|
import { formatDate, CldrIntlService, DatePipe, parseDate } from '@progress/kendo-angular-intl';
|
|
21
21
|
import { MultiSelectComponent, ItemTemplateDirective, TagTemplateDirective, DropDownListComponent } from '@progress/kendo-angular-dropdowns';
|
|
22
22
|
import { NgStyle, NgTemplateOutlet, AsyncPipe, NgClass } from '@angular/common';
|
|
23
|
-
import { rightDoubleQuotesIcon, clockIcon, commentIcon, globeIcon, arrowRotateCwIcon, trashIcon, calendarIcon, chevronRightIcon, chevronLeftIcon, plusIcon, filePdfIcon, arrowsNoRepeatIcon, xIcon,
|
|
23
|
+
import { rightDoubleQuotesIcon, clockIcon, commentIcon, globeIcon, arrowRotateCwIcon, trashIcon, calendarIcon, chevronRightIcon, chevronLeftIcon, plusIcon, filePdfIcon, arrowsNoRepeatIcon, xIcon, chevronUpIcon, chevronDownIcon } from '@progress/kendo-svg-icons';
|
|
24
24
|
import { ButtonComponent, SegmentedControlComponent, DropDownButtonComponent, Button } from '@progress/kendo-angular-buttons';
|
|
25
25
|
import { NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, FormFieldComponent, TextBoxDirective, TextAreaComponent, SwitchComponent } from '@progress/kendo-angular-inputs';
|
|
26
26
|
import { parseRule, serializeRule, expand } from '@progress/kendo-recurrence';
|
|
@@ -33,7 +33,7 @@ import { drawDOM, exportPDF } from '@progress/kendo-drawing';
|
|
|
33
33
|
import { saveAs } from '@progress/kendo-file-saver';
|
|
34
34
|
import { orderBy, groupBy } from '@progress/kendo-data-query';
|
|
35
35
|
import { Draggable } from '@progress/kendo-draggable';
|
|
36
|
-
import { PopoverComponent, PopoverTitleTemplateDirective, PopoverBodyTemplateDirective,
|
|
36
|
+
import { PopoverComponent, PopoverTitleTemplateDirective, PopoverBodyTemplateDirective, PopoverContainerDirective } from '@progress/kendo-angular-tooltip';
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* @hidden
|
|
@@ -43,8 +43,8 @@ const packageMetadata = {
|
|
|
43
43
|
productName: 'Kendo UI for Angular',
|
|
44
44
|
productCode: 'KENDOUIANGULAR',
|
|
45
45
|
productCodes: ['KENDOUIANGULAR'],
|
|
46
|
-
publishDate:
|
|
47
|
-
version: '25.0.
|
|
46
|
+
publishDate: 1787670094,
|
|
47
|
+
version: '25.1.0-develop.10',
|
|
48
48
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
49
49
|
};
|
|
50
50
|
|
|
@@ -3271,7 +3271,7 @@ function noModifiers(e) {
|
|
|
3271
3271
|
|
|
3272
3272
|
let uniqueIdCounter = 0;
|
|
3273
3273
|
const offsetPositions = ['first', 'second', 'third', 'fourth', 'last'];
|
|
3274
|
-
const frequencies = ['
|
|
3274
|
+
const frequencies = ['daily', 'weekly', 'monthly', 'yearly'];
|
|
3275
3275
|
const endRules = ['never', 'count', 'until'];
|
|
3276
3276
|
// Maps the `EndRule` values to their corresponding localization message keys.
|
|
3277
3277
|
const endRuleMessageKeys = {
|
|
@@ -3337,6 +3337,9 @@ class RecurrenceService {
|
|
|
3337
3337
|
recurrenceRule: rrule,
|
|
3338
3338
|
weekStart: weekStart
|
|
3339
3339
|
});
|
|
3340
|
+
if (!this.rrule || isNullOrEmptyString(this.rrule.freq)) {
|
|
3341
|
+
this.rrule = { freq: 'daily', interval: this.minInterval };
|
|
3342
|
+
}
|
|
3340
3343
|
}
|
|
3341
3344
|
/**
|
|
3342
3345
|
* @hidden
|
|
@@ -4640,12 +4643,9 @@ class RecurrenceFrequencyEditorComponent {
|
|
|
4640
4643
|
this.localization = localization;
|
|
4641
4644
|
}
|
|
4642
4645
|
ngOnInit() {
|
|
4643
|
-
this.frequencies = this.recurrence.frequencies
|
|
4646
|
+
this.frequencies = this.recurrence.frequencies;
|
|
4644
4647
|
}
|
|
4645
4648
|
get selected() {
|
|
4646
|
-
if (!this.recurrence.rrule) {
|
|
4647
|
-
this.recurrence.setFrequency(this.frequencies[0].value);
|
|
4648
|
-
}
|
|
4649
4649
|
return this.recurrence.frequency;
|
|
4650
4650
|
}
|
|
4651
4651
|
onFrequencyChange(newFreq) {
|
|
@@ -5324,16 +5324,16 @@ class RecurrenceEditorComponent {
|
|
|
5324
5324
|
dailyInterval='day(s)'
|
|
5325
5325
|
|
|
5326
5326
|
i18n-dailyRepeatEvery="kendo.recurrenceeditor.dailyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5327
|
-
dailyRepeatEvery='
|
|
5327
|
+
dailyRepeatEvery='Repeats every'
|
|
5328
5328
|
|
|
5329
5329
|
i18n-weeklyInterval="kendo.recurrenceeditor.weeklyInterval|The text similar to 'week(s)' displayed in the recurrence editor."
|
|
5330
5330
|
weeklyInterval='week(s)'
|
|
5331
5331
|
|
|
5332
5332
|
i18n-weeklyRepeatEvery="kendo.recurrenceeditor.weeklyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5333
|
-
weeklyRepeatEvery='
|
|
5333
|
+
weeklyRepeatEvery='Repeats every'
|
|
5334
5334
|
|
|
5335
5335
|
i18n-weeklyRepeatOn="kendo.recurrenceeditor.weeklyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5336
|
-
weeklyRepeatOn='
|
|
5336
|
+
weeklyRepeatOn='On'
|
|
5337
5337
|
|
|
5338
5338
|
i18n-monthlyDay="kendo.recurrenceeditor.monthlyDay|The text similar to 'Day' displayed in the recurrence editor."
|
|
5339
5339
|
monthlyDay='Day'
|
|
@@ -5342,37 +5342,37 @@ class RecurrenceEditorComponent {
|
|
|
5342
5342
|
monthlyInterval='month(s)'
|
|
5343
5343
|
|
|
5344
5344
|
i18n-monthlyRepeatEvery="kendo.recurrenceeditor.monthlyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5345
|
-
monthlyRepeatEvery='
|
|
5345
|
+
monthlyRepeatEvery='Repeats every'
|
|
5346
5346
|
|
|
5347
5347
|
i18n-monthlyRepeatOn="kendo.recurrenceeditor.monthlyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5348
|
-
monthlyRepeatOn='
|
|
5348
|
+
monthlyRepeatOn='On'
|
|
5349
5349
|
|
|
5350
5350
|
i18n-yearlyOf="kendo.recurrenceeditor.yearlyOf|The text similar to 'of' displayed in the recurrence editor."
|
|
5351
5351
|
yearlyOf='of'
|
|
5352
5352
|
|
|
5353
5353
|
i18n-yearlyRepeatEvery="kendo.recurrenceeditor.yearlyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5354
|
-
yearlyRepeatEvery='
|
|
5354
|
+
yearlyRepeatEvery='Repeats every'
|
|
5355
5355
|
|
|
5356
5356
|
i18n-yearlyRepeatOn="kendo.recurrenceeditor.yearlyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5357
|
-
yearlyRepeatOn='
|
|
5357
|
+
yearlyRepeatOn='On'
|
|
5358
5358
|
|
|
5359
5359
|
i18n-yearlyInterval="kendo.recurrenceeditor.yearlyInterval|The text similar to 'year(s)' displayed in the recurrence editor."
|
|
5360
5360
|
yearlyInterval='year(s)'
|
|
5361
5361
|
|
|
5362
5362
|
i18n-frequenciesDaily="kendo.recurrenceeditor.frequenciesDaily|The text similar to 'Daily' displayed in the recurrence editor."
|
|
5363
|
-
frequenciesDaily='
|
|
5363
|
+
frequenciesDaily='Day'
|
|
5364
5364
|
|
|
5365
5365
|
i18n-frequenciesMonthly="kendo.recurrenceeditor.frequenciesMonthly|The text similar to 'Monthly' displayed in the recurrence editor."
|
|
5366
|
-
frequenciesMonthly='
|
|
5366
|
+
frequenciesMonthly='Month'
|
|
5367
5367
|
|
|
5368
5368
|
i18n-frequenciesNever="kendo.recurrenceeditor.frequenciesNever|The text similar to 'Never' displayed in the recurrence editor."
|
|
5369
5369
|
frequenciesNever='Never'
|
|
5370
5370
|
|
|
5371
5371
|
i18n-frequenciesWeekly="kendo.recurrenceeditor.frequenciesWeekly|The text similar to 'Weekly' displayed in the recurrence editor."
|
|
5372
|
-
frequenciesWeekly='
|
|
5372
|
+
frequenciesWeekly='Week'
|
|
5373
5373
|
|
|
5374
5374
|
i18n-frequenciesYearly="kendo.recurrenceeditor.frequenciesYearly|The text similar to 'Yearly' displayed in the recurrence editor."
|
|
5375
|
-
frequenciesYearly='
|
|
5375
|
+
frequenciesYearly='Year'
|
|
5376
5376
|
|
|
5377
5377
|
i18n-offsetPositionsFirst="kendo.recurrenceeditor.offsetPositionsFirst|The text similar to 'First' displayed in the recurrence editor."
|
|
5378
5378
|
offsetPositionsFirst='First'
|
|
@@ -5499,16 +5499,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
5499
5499
|
dailyInterval='day(s)'
|
|
5500
5500
|
|
|
5501
5501
|
i18n-dailyRepeatEvery="kendo.recurrenceeditor.dailyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5502
|
-
dailyRepeatEvery='
|
|
5502
|
+
dailyRepeatEvery='Repeats every'
|
|
5503
5503
|
|
|
5504
5504
|
i18n-weeklyInterval="kendo.recurrenceeditor.weeklyInterval|The text similar to 'week(s)' displayed in the recurrence editor."
|
|
5505
5505
|
weeklyInterval='week(s)'
|
|
5506
5506
|
|
|
5507
5507
|
i18n-weeklyRepeatEvery="kendo.recurrenceeditor.weeklyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5508
|
-
weeklyRepeatEvery='
|
|
5508
|
+
weeklyRepeatEvery='Repeats every'
|
|
5509
5509
|
|
|
5510
5510
|
i18n-weeklyRepeatOn="kendo.recurrenceeditor.weeklyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5511
|
-
weeklyRepeatOn='
|
|
5511
|
+
weeklyRepeatOn='On'
|
|
5512
5512
|
|
|
5513
5513
|
i18n-monthlyDay="kendo.recurrenceeditor.monthlyDay|The text similar to 'Day' displayed in the recurrence editor."
|
|
5514
5514
|
monthlyDay='Day'
|
|
@@ -5517,37 +5517,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
5517
5517
|
monthlyInterval='month(s)'
|
|
5518
5518
|
|
|
5519
5519
|
i18n-monthlyRepeatEvery="kendo.recurrenceeditor.monthlyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5520
|
-
monthlyRepeatEvery='
|
|
5520
|
+
monthlyRepeatEvery='Repeats every'
|
|
5521
5521
|
|
|
5522
5522
|
i18n-monthlyRepeatOn="kendo.recurrenceeditor.monthlyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5523
|
-
monthlyRepeatOn='
|
|
5523
|
+
monthlyRepeatOn='On'
|
|
5524
5524
|
|
|
5525
5525
|
i18n-yearlyOf="kendo.recurrenceeditor.yearlyOf|The text similar to 'of' displayed in the recurrence editor."
|
|
5526
5526
|
yearlyOf='of'
|
|
5527
5527
|
|
|
5528
5528
|
i18n-yearlyRepeatEvery="kendo.recurrenceeditor.yearlyRepeatEvery|The text similar to 'Repeat every' displayed in the recurrence editor."
|
|
5529
|
-
yearlyRepeatEvery='
|
|
5529
|
+
yearlyRepeatEvery='Repeats every'
|
|
5530
5530
|
|
|
5531
5531
|
i18n-yearlyRepeatOn="kendo.recurrenceeditor.yearlyRepeatOn|The text similar to 'Repeat on' displayed in the recurrence editor."
|
|
5532
|
-
yearlyRepeatOn='
|
|
5532
|
+
yearlyRepeatOn='On'
|
|
5533
5533
|
|
|
5534
5534
|
i18n-yearlyInterval="kendo.recurrenceeditor.yearlyInterval|The text similar to 'year(s)' displayed in the recurrence editor."
|
|
5535
5535
|
yearlyInterval='year(s)'
|
|
5536
5536
|
|
|
5537
5537
|
i18n-frequenciesDaily="kendo.recurrenceeditor.frequenciesDaily|The text similar to 'Daily' displayed in the recurrence editor."
|
|
5538
|
-
frequenciesDaily='
|
|
5538
|
+
frequenciesDaily='Day'
|
|
5539
5539
|
|
|
5540
5540
|
i18n-frequenciesMonthly="kendo.recurrenceeditor.frequenciesMonthly|The text similar to 'Monthly' displayed in the recurrence editor."
|
|
5541
|
-
frequenciesMonthly='
|
|
5541
|
+
frequenciesMonthly='Month'
|
|
5542
5542
|
|
|
5543
5543
|
i18n-frequenciesNever="kendo.recurrenceeditor.frequenciesNever|The text similar to 'Never' displayed in the recurrence editor."
|
|
5544
5544
|
frequenciesNever='Never'
|
|
5545
5545
|
|
|
5546
5546
|
i18n-frequenciesWeekly="kendo.recurrenceeditor.frequenciesWeekly|The text similar to 'Weekly' displayed in the recurrence editor."
|
|
5547
|
-
frequenciesWeekly='
|
|
5547
|
+
frequenciesWeekly='Week'
|
|
5548
5548
|
|
|
5549
5549
|
i18n-frequenciesYearly="kendo.recurrenceeditor.frequenciesYearly|The text similar to 'Yearly' displayed in the recurrence editor."
|
|
5550
|
-
frequenciesYearly='
|
|
5550
|
+
frequenciesYearly='Year'
|
|
5551
5551
|
|
|
5552
5552
|
i18n-offsetPositionsFirst="kendo.recurrenceeditor.offsetPositionsFirst|The text similar to 'First' displayed in the recurrence editor."
|
|
5553
5553
|
offsetPositionsFirst='First'
|
|
@@ -6526,7 +6526,7 @@ class EditDialogComponent {
|
|
|
6526
6526
|
</kendo-dialog>
|
|
6527
6527
|
}
|
|
6528
6528
|
}
|
|
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" }] });
|
|
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", "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
6530
|
}
|
|
6531
6531
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: EditDialogComponent, decorators: [{
|
|
6532
6532
|
type: Component,
|
|
@@ -7679,6 +7679,11 @@ class Messages extends ComponentMessages {
|
|
|
7679
7679
|
* The `{count}` placeholder is replaced with the number of additional events.
|
|
7680
7680
|
*/
|
|
7681
7681
|
moreEvents;
|
|
7682
|
+
/**
|
|
7683
|
+
* Sets the `aria-label` for the **more events** button in the Month view.
|
|
7684
|
+
* The `{count}` placeholder is replaced with the number of additional events.
|
|
7685
|
+
*/
|
|
7686
|
+
moreEventsLabel;
|
|
7682
7687
|
/**
|
|
7683
7688
|
* Sets the date-header text in the **Agenda** view.
|
|
7684
7689
|
*/
|
|
@@ -8133,7 +8138,7 @@ class Messages extends ComponentMessages {
|
|
|
8133
8138
|
*/
|
|
8134
8139
|
newEventLabel;
|
|
8135
8140
|
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 });
|
|
8141
|
+
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
8142
|
}
|
|
8138
8143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, decorators: [{
|
|
8139
8144
|
type: Directive
|
|
@@ -8143,6 +8148,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
8143
8148
|
type: Input
|
|
8144
8149
|
}], moreEvents: [{
|
|
8145
8150
|
type: Input
|
|
8151
|
+
}], moreEventsLabel: [{
|
|
8152
|
+
type: Input
|
|
8146
8153
|
}], dateHeader: [{
|
|
8147
8154
|
type: Input
|
|
8148
8155
|
}], timeHeader: [{
|
|
@@ -9495,6 +9502,9 @@ class SchedulerComponent {
|
|
|
9495
9502
|
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
9503
|
moreEvents="{count} more"
|
|
9497
9504
|
|
|
9505
|
+
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."
|
|
9506
|
+
moreEventsLabel="{count} more events"
|
|
9507
|
+
|
|
9498
9508
|
i18n-dateHeader="kendo.scheduler.dateHeader|The date header text displayed in the agenda view."
|
|
9499
9509
|
dateHeader="Date"
|
|
9500
9510
|
|
|
@@ -9917,6 +9927,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
9917
9927
|
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
9928
|
moreEvents="{count} more"
|
|
9919
9929
|
|
|
9930
|
+
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."
|
|
9931
|
+
moreEventsLabel="{count} more events"
|
|
9932
|
+
|
|
9920
9933
|
i18n-dateHeader="kendo.scheduler.dateHeader|The date header text displayed in the agenda view."
|
|
9921
9934
|
dateHeader="Date"
|
|
9922
9935
|
|
|
@@ -11620,7 +11633,7 @@ function groupEvents(items, { taskResources, resourceGroups, spans, allResources
|
|
|
11620
11633
|
class AgendaTaskItemComponent {
|
|
11621
11634
|
localization;
|
|
11622
11635
|
intl;
|
|
11623
|
-
|
|
11636
|
+
arrowRotateCwIcon = arrowRotateCwIcon;
|
|
11624
11637
|
arrowsNoRepeatIcon = arrowsNoRepeatIcon;
|
|
11625
11638
|
xIcon = xIcon;
|
|
11626
11639
|
item;
|
|
@@ -11659,7 +11672,7 @@ class AgendaTaskItemComponent {
|
|
|
11659
11672
|
<span class="k-scheduler-mark" [style.background-color]="eventColor"></span>
|
|
11660
11673
|
}
|
|
11661
11674
|
@if (isRecurrence) {
|
|
11662
|
-
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="
|
|
11675
|
+
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCwIcon"></kendo-icon-wrapper>
|
|
11663
11676
|
}
|
|
11664
11677
|
|
|
11665
11678
|
@if (isRecurrenceException) {
|
|
@@ -11693,7 +11706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
11693
11706
|
<span class="k-scheduler-mark" [style.background-color]="eventColor"></span>
|
|
11694
11707
|
}
|
|
11695
11708
|
@if (isRecurrence) {
|
|
11696
|
-
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="
|
|
11709
|
+
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCwIcon"></kendo-icon-wrapper>
|
|
11697
11710
|
}
|
|
11698
11711
|
|
|
11699
11712
|
@if (isRecurrenceException) {
|
|
@@ -13071,7 +13084,6 @@ class MonthResourceGroup {
|
|
|
13071
13084
|
* @hidden
|
|
13072
13085
|
*/
|
|
13073
13086
|
class MonthSlotService extends BaseSlotService {
|
|
13074
|
-
currentPopover;
|
|
13075
13087
|
layout(eventHeight, eventsPerDay, adaptiveSlotHeight) {
|
|
13076
13088
|
this.groups.forEach((group) => group.forEachRange(range => range.layout(eventHeight, eventsPerDay, adaptiveSlotHeight)));
|
|
13077
13089
|
}
|
|
@@ -14528,6 +14540,7 @@ class BaseViewItem {
|
|
|
14528
14540
|
this.rect = null;
|
|
14529
14541
|
this.setStyles({
|
|
14530
14542
|
left: 0,
|
|
14543
|
+
top: 0
|
|
14531
14544
|
});
|
|
14532
14545
|
const slotId = { index: this.index, resourceIndex: this.resourceIndex, rangeIndex: this.rangeIndex };
|
|
14533
14546
|
this.slotService.unregisterItem(this, slotId);
|
|
@@ -14657,9 +14670,11 @@ class MonthViewItemComponent extends BaseViewItem {
|
|
|
14657
14670
|
<div [attr.title]="eventTitle">
|
|
14658
14671
|
<div class="k-event-template k-event-title">{{ item.event.title }}</div>
|
|
14659
14672
|
<div class="k-event-template k-event-time">
|
|
14673
|
+
@if (isRecurrence) {
|
|
14660
14674
|
<span class="k-event-recurrence-icon">
|
|
14661
14675
|
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCwIcon" size="small"></kendo-icon-wrapper>
|
|
14662
14676
|
</span>
|
|
14677
|
+
}
|
|
14663
14678
|
{{ eventTime }}
|
|
14664
14679
|
</div>
|
|
14665
14680
|
</div>
|
|
@@ -14682,7 +14697,7 @@ class MonthViewItemComponent extends BaseViewItem {
|
|
|
14682
14697
|
</span>
|
|
14683
14698
|
}
|
|
14684
14699
|
|
|
14685
|
-
@if (resizable) {
|
|
14700
|
+
@if (resizable && !isReadonly) {
|
|
14686
14701
|
<span class="k-resize-handle k-resize-w"></span>
|
|
14687
14702
|
<span class="k-resize-handle k-resize-e"></span>
|
|
14688
14703
|
}
|
|
@@ -14708,9 +14723,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
14708
14723
|
<div [attr.title]="eventTitle">
|
|
14709
14724
|
<div class="k-event-template k-event-title">{{ item.event.title }}</div>
|
|
14710
14725
|
<div class="k-event-template k-event-time">
|
|
14726
|
+
@if (isRecurrence) {
|
|
14711
14727
|
<span class="k-event-recurrence-icon">
|
|
14712
14728
|
<kendo-icon-wrapper name="arrow-rotate-cw" [svgIcon]="arrowRotateCwIcon" size="small"></kendo-icon-wrapper>
|
|
14713
14729
|
</span>
|
|
14730
|
+
}
|
|
14714
14731
|
{{ eventTime }}
|
|
14715
14732
|
</div>
|
|
14716
14733
|
</div>
|
|
@@ -14733,7 +14750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
14733
14750
|
</span>
|
|
14734
14751
|
}
|
|
14735
14752
|
|
|
14736
|
-
@if (resizable) {
|
|
14753
|
+
@if (resizable && !isReadonly) {
|
|
14737
14754
|
<span class="k-resize-handle k-resize-w"></span>
|
|
14738
14755
|
<span class="k-resize-handle k-resize-e"></span>
|
|
14739
14756
|
}
|
|
@@ -14997,6 +15014,143 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
14997
15014
|
args: ['attr.data-slot-index']
|
|
14998
15015
|
}] } });
|
|
14999
15016
|
|
|
15017
|
+
/**
|
|
15018
|
+
* @hidden
|
|
15019
|
+
*/
|
|
15020
|
+
class MonthSlotComponent extends BaseSlotDirective {
|
|
15021
|
+
cdr;
|
|
15022
|
+
moreEventsWidth;
|
|
15023
|
+
moreEventsLeft;
|
|
15024
|
+
moreEventsTop;
|
|
15025
|
+
showMoreButton;
|
|
15026
|
+
hiddenCount = 0;
|
|
15027
|
+
moreEvents = [];
|
|
15028
|
+
resourcesByIndex;
|
|
15029
|
+
monthDaySlotTemplateRef;
|
|
15030
|
+
eventsPerDay;
|
|
15031
|
+
eventHeight;
|
|
15032
|
+
adaptiveSlotHeight;
|
|
15033
|
+
set day(value) {
|
|
15034
|
+
this._day = value;
|
|
15035
|
+
this.start = value;
|
|
15036
|
+
}
|
|
15037
|
+
/**
|
|
15038
|
+
* For the slot template we need the day value without the UTC conversion
|
|
15039
|
+
* - timezone does not matter for the day part in this case as the calendar month view is the same for every timezone
|
|
15040
|
+
* otherwise the date is incorrect for some timezones (e.g. LA timezone) -
|
|
15041
|
+
* For example, it displays Feb. 8, 2023 to be Thursday, wherease it is Wednesday
|
|
15042
|
+
*/
|
|
15043
|
+
get day() {
|
|
15044
|
+
return this._day;
|
|
15045
|
+
}
|
|
15046
|
+
set start(value) {
|
|
15047
|
+
this.startDate = toUTCDate(value);
|
|
15048
|
+
}
|
|
15049
|
+
get start() {
|
|
15050
|
+
return this.startDate;
|
|
15051
|
+
}
|
|
15052
|
+
isDaySlot = true;
|
|
15053
|
+
get end() {
|
|
15054
|
+
return addUTCDays(this.start, 1);
|
|
15055
|
+
}
|
|
15056
|
+
isFirstDayOfMonth(day) {
|
|
15057
|
+
return isEqualDate(day, firstDayOfMonth(day));
|
|
15058
|
+
}
|
|
15059
|
+
get linkHeight() {
|
|
15060
|
+
if (this._linkHeight === null) {
|
|
15061
|
+
const element = firstElementChild(this.nativeElement);
|
|
15062
|
+
this._linkHeight = element ? element.offsetHeight + element.offsetTop : 0;
|
|
15063
|
+
}
|
|
15064
|
+
return this._linkHeight;
|
|
15065
|
+
}
|
|
15066
|
+
startDate;
|
|
15067
|
+
_day;
|
|
15068
|
+
_linkHeight = null;
|
|
15069
|
+
constructor(element, slotService, localization, cdr) {
|
|
15070
|
+
super(element, slotService, localization);
|
|
15071
|
+
this.cdr = cdr;
|
|
15072
|
+
}
|
|
15073
|
+
ngOnDestroy() {
|
|
15074
|
+
super.ngOnDestroy();
|
|
15075
|
+
this.removeShowMore();
|
|
15076
|
+
}
|
|
15077
|
+
showMore(rect) {
|
|
15078
|
+
this.showMoreButton = true;
|
|
15079
|
+
this.moreEventsWidth = rect.width;
|
|
15080
|
+
this.moreEventsLeft = rect.left;
|
|
15081
|
+
this.moreEventsTop = rect.top;
|
|
15082
|
+
this.cdr.detectChanges();
|
|
15083
|
+
}
|
|
15084
|
+
hideMore() {
|
|
15085
|
+
this.hiddenCount = 0;
|
|
15086
|
+
this.showMoreButton = false;
|
|
15087
|
+
this.removeShowMore();
|
|
15088
|
+
}
|
|
15089
|
+
invalidate() {
|
|
15090
|
+
super.invalidate();
|
|
15091
|
+
this._linkHeight = null;
|
|
15092
|
+
this.hiddenCount = 0;
|
|
15093
|
+
this.showMoreButton = false;
|
|
15094
|
+
this.removeShowMore();
|
|
15095
|
+
}
|
|
15096
|
+
removeShowMore() {
|
|
15097
|
+
this.showMoreButton = false;
|
|
15098
|
+
this.cdr.detectChanges();
|
|
15099
|
+
}
|
|
15100
|
+
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 });
|
|
15101
|
+
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: `
|
|
15102
|
+
@if (!monthDaySlotTemplateRef) {
|
|
15103
|
+
<span class="k-link k-nav-day">
|
|
15104
|
+
{{ day | kendoDate: isFirstDayOfMonth(day) ? 'MMM dd' : 'dd' }}
|
|
15105
|
+
</span>
|
|
15106
|
+
}
|
|
15107
|
+
@if (monthDaySlotTemplateRef) {
|
|
15108
|
+
<ng-container
|
|
15109
|
+
[ngTemplateOutlet]="monthDaySlotTemplateRef"
|
|
15110
|
+
[ngTemplateOutletContext]="{ date: day, resources: resourcesByIndex }"
|
|
15111
|
+
>
|
|
15112
|
+
</ng-container>
|
|
15113
|
+
}
|
|
15114
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "kendoDate" }] });
|
|
15115
|
+
}
|
|
15116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MonthSlotComponent, decorators: [{
|
|
15117
|
+
type: Component,
|
|
15118
|
+
args: [{
|
|
15119
|
+
selector: '[monthSlot]',
|
|
15120
|
+
template: `
|
|
15121
|
+
@if (!monthDaySlotTemplateRef) {
|
|
15122
|
+
<span class="k-link k-nav-day">
|
|
15123
|
+
{{ day | kendoDate: isFirstDayOfMonth(day) ? 'MMM dd' : 'dd' }}
|
|
15124
|
+
</span>
|
|
15125
|
+
}
|
|
15126
|
+
@if (monthDaySlotTemplateRef) {
|
|
15127
|
+
<ng-container
|
|
15128
|
+
[ngTemplateOutlet]="monthDaySlotTemplateRef"
|
|
15129
|
+
[ngTemplateOutletContext]="{ date: day, resources: resourcesByIndex }"
|
|
15130
|
+
>
|
|
15131
|
+
</ng-container>
|
|
15132
|
+
}
|
|
15133
|
+
`,
|
|
15134
|
+
standalone: true,
|
|
15135
|
+
imports: [NgTemplateOutlet, DatePipe]
|
|
15136
|
+
}]
|
|
15137
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: MonthSlotService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }], propDecorators: { moreEvents: [{
|
|
15138
|
+
type: Input
|
|
15139
|
+
}], resourcesByIndex: [{
|
|
15140
|
+
type: Input
|
|
15141
|
+
}], monthDaySlotTemplateRef: [{
|
|
15142
|
+
type: Input
|
|
15143
|
+
}], eventsPerDay: [{
|
|
15144
|
+
type: Input
|
|
15145
|
+
}], eventHeight: [{
|
|
15146
|
+
type: Input
|
|
15147
|
+
}], adaptiveSlotHeight: [{
|
|
15148
|
+
type: Input
|
|
15149
|
+
}], day: [{
|
|
15150
|
+
type: Input,
|
|
15151
|
+
args: ['monthSlot']
|
|
15152
|
+
}] } });
|
|
15153
|
+
|
|
15000
15154
|
/**
|
|
15001
15155
|
* @hidden
|
|
15002
15156
|
*/
|
|
@@ -15104,7 +15258,7 @@ class EventsPopoverComponent {
|
|
|
15104
15258
|
}
|
|
15105
15259
|
</ng-template>
|
|
15106
15260
|
</kendo-popover>
|
|
15107
|
-
`, isInline: true, dependencies: [{ kind: "component", type: PopoverComponent, selector: "kendo-popover", inputs: ["popupClass", "collision", "
|
|
15261
|
+
`, 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
15262
|
}
|
|
15109
15263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: EventsPopoverComponent, decorators: [{
|
|
15110
15264
|
type: Component,
|
|
@@ -15189,249 +15343,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
15189
15343
|
args: ['popover', { static: true }]
|
|
15190
15344
|
}] } });
|
|
15191
15345
|
|
|
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
15346
|
/**
|
|
15432
15347
|
* @hidden
|
|
15433
15348
|
*/
|
|
15434
15349
|
class MonthViewRendererComponent extends BaseView {
|
|
15350
|
+
focusService;
|
|
15435
15351
|
hiddenDays;
|
|
15436
15352
|
monthDaySlotTemplate;
|
|
15437
15353
|
highlightOngoingEvents;
|
|
@@ -15453,7 +15369,11 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15453
15369
|
moreEventsClick = new EventEmitter();
|
|
15454
15370
|
resizeHintFormat = { skeleton: 'Md' };
|
|
15455
15371
|
weeks = [];
|
|
15372
|
+
popoverDate;
|
|
15373
|
+
popoverEvents = [];
|
|
15374
|
+
moreButtons = [];
|
|
15456
15375
|
eventElements;
|
|
15376
|
+
popoverContainer;
|
|
15457
15377
|
get monthDaySlotTemplateRef() {
|
|
15458
15378
|
return this.monthDaySlotTemplate || (this.schedulerMonthDaySlotTemplate || {}).templateRef;
|
|
15459
15379
|
}
|
|
@@ -15465,10 +15385,20 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15465
15385
|
return task.startTime < dayEnd && task.endTime > dayStart;
|
|
15466
15386
|
});
|
|
15467
15387
|
}
|
|
15388
|
+
onPopoverNavigateToDay(date) {
|
|
15389
|
+
this.popoverContainer?.hide();
|
|
15390
|
+
this.viewState.navigateTo({ viewName: 'day', date: new Date(date) });
|
|
15391
|
+
}
|
|
15392
|
+
setPopoverData(slot) {
|
|
15393
|
+
this.popoverDate = slot.day;
|
|
15394
|
+
this.popoverEvents = slot.moreEvents;
|
|
15395
|
+
}
|
|
15468
15396
|
ongoingEventsTimeout;
|
|
15469
15397
|
schedulerMonthDaySlotTemplate;
|
|
15470
|
-
|
|
15398
|
+
disposeDocumentClick;
|
|
15399
|
+
constructor(viewContext, viewState, intl, slotService, zone, element, renderer, pdfService, localization, changeDetector, scrollbarService, focusService) {
|
|
15471
15400
|
super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector, scrollbarService);
|
|
15401
|
+
this.focusService = focusService;
|
|
15472
15402
|
this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
|
|
15473
15403
|
}
|
|
15474
15404
|
ngOnChanges(changes) {
|
|
@@ -15492,8 +15422,21 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15492
15422
|
ngAfterViewInit() {
|
|
15493
15423
|
this.updateOngoingEvents();
|
|
15494
15424
|
super.ngAfterViewInit();
|
|
15425
|
+
this.zone.runOutsideAngular(() => {
|
|
15426
|
+
this.disposeDocumentClick = this.renderer.listen('document', 'click', (e) => {
|
|
15427
|
+
if (!this.popoverContainer?.popupRef) {
|
|
15428
|
+
return;
|
|
15429
|
+
}
|
|
15430
|
+
const target = e.target;
|
|
15431
|
+
if (target.closest('.k-more-events') || target.closest('.k-popup')) {
|
|
15432
|
+
return;
|
|
15433
|
+
}
|
|
15434
|
+
this.popoverContainer.hide();
|
|
15435
|
+
});
|
|
15436
|
+
});
|
|
15495
15437
|
}
|
|
15496
15438
|
ngOnDestroy() {
|
|
15439
|
+
this.disposeDocumentClick?.();
|
|
15497
15440
|
clearTimeout(this.ongoingEventsTimeout);
|
|
15498
15441
|
super.ngOnDestroy();
|
|
15499
15442
|
}
|
|
@@ -15572,6 +15515,7 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15572
15515
|
if (isAutoHeight) {
|
|
15573
15516
|
content.style.overflow = 'auto';
|
|
15574
15517
|
}
|
|
15518
|
+
this.collectMoreButtons();
|
|
15575
15519
|
this.syncTables();
|
|
15576
15520
|
}
|
|
15577
15521
|
syncTables() {
|
|
@@ -15594,20 +15538,16 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15594
15538
|
}
|
|
15595
15539
|
onClick(e, eventType = e.type) {
|
|
15596
15540
|
if (eventType === 'click') {
|
|
15597
|
-
this.
|
|
15598
|
-
|
|
15599
|
-
|
|
15600
|
-
|
|
15601
|
-
|
|
15541
|
+
const moreBtn = closestInScope(e.target, node => hasClasses(node, 'k-more-events'), this.element.nativeElement);
|
|
15542
|
+
if (moreBtn) {
|
|
15543
|
+
const index = moreBtn.getAttribute('data-slot-index');
|
|
15544
|
+
if (!index) {
|
|
15545
|
+
return;
|
|
15546
|
+
}
|
|
15602
15547
|
const slot = this.slotService.slotByIndex(index);
|
|
15603
15548
|
const [resourceIndex, rangeIndex] = index.split(':').map(part => parseInt(part, 10));
|
|
15604
15549
|
const group = this.slotService['groups'][resourceIndex];
|
|
15605
15550
|
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
15551
|
this.zone.run(() => {
|
|
15612
15552
|
const moreEventsEvent = new MoreEventsClickEvent();
|
|
15613
15553
|
const filterSlotEvents = (isHidden) => range.items
|
|
@@ -15623,11 +15563,22 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15623
15563
|
moreEventsEvent.date = toLocalDate(slot.start);
|
|
15624
15564
|
this.moreEventsClick.emit(moreEventsEvent);
|
|
15625
15565
|
if (!moreEventsEvent.isDefaultPrevented()) {
|
|
15626
|
-
|
|
15566
|
+
this.popoverContainer.hide();
|
|
15567
|
+
this.setPopoverData(slot);
|
|
15568
|
+
this.popoverContainer.show(moreBtn);
|
|
15627
15569
|
}
|
|
15628
15570
|
});
|
|
15629
15571
|
return;
|
|
15630
15572
|
}
|
|
15573
|
+
const navDay = closestInScope(e.target, node => hasClasses(node, 'k-nav-day'), this.element.nativeElement);
|
|
15574
|
+
if (navDay) {
|
|
15575
|
+
const eventSlot = closestInScope(navDay, node => node.hasAttribute('data-slot-index'), this.element.nativeElement);
|
|
15576
|
+
if (eventSlot) {
|
|
15577
|
+
const slot = this.slotService.slotByIndex(eventSlot.getAttribute('data-slot-index'));
|
|
15578
|
+
this.viewState.navigateTo({ viewName: 'day', date: toLocalDate(slot.start) });
|
|
15579
|
+
return;
|
|
15580
|
+
}
|
|
15581
|
+
}
|
|
15631
15582
|
}
|
|
15632
15583
|
super.onClick(e, eventType);
|
|
15633
15584
|
}
|
|
@@ -15707,10 +15658,70 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15707
15658
|
}
|
|
15708
15659
|
return weeks;
|
|
15709
15660
|
}
|
|
15710
|
-
|
|
15661
|
+
collectMoreButtons() {
|
|
15662
|
+
const buttons = [];
|
|
15663
|
+
const message = this.localization.get('moreEvents');
|
|
15664
|
+
this.slotService.forEachSlot((slot) => {
|
|
15665
|
+
if (slot.showMoreButton) {
|
|
15666
|
+
const count = String(slot.hiddenCount);
|
|
15667
|
+
buttons.push({
|
|
15668
|
+
width: slot.moreEventsWidth,
|
|
15669
|
+
left: slot.moreEventsLeft,
|
|
15670
|
+
top: slot.moreEventsTop,
|
|
15671
|
+
text: message.replace('{count}', count),
|
|
15672
|
+
ariaLabel: (this.localization.get('moreEventsLabel')).replace('{count}', count),
|
|
15673
|
+
resourceIndex: slot.id?.resourceIndex ?? 0,
|
|
15674
|
+
slotIndex: slot.slotIndex
|
|
15675
|
+
});
|
|
15676
|
+
}
|
|
15677
|
+
});
|
|
15678
|
+
this.moreButtons = buttons;
|
|
15679
|
+
this.cdr.detectChanges();
|
|
15680
|
+
this.reorderButtonsFocus();
|
|
15681
|
+
}
|
|
15682
|
+
reorderButtonsFocus() {
|
|
15683
|
+
const contentEl = this.element.nativeElement.querySelector('.k-scheduler-content');
|
|
15684
|
+
if (!contentEl) {
|
|
15685
|
+
return;
|
|
15686
|
+
}
|
|
15687
|
+
const buttonEls = contentEl.querySelectorAll('.k-more-events');
|
|
15688
|
+
buttonEls.forEach((btnEl) => {
|
|
15689
|
+
const slotIndex = btnEl.getAttribute('data-slot-index');
|
|
15690
|
+
if (!slotIndex) {
|
|
15691
|
+
return;
|
|
15692
|
+
}
|
|
15693
|
+
const slot = this.slotService.slotByIndex(slotIndex);
|
|
15694
|
+
if (!slot) {
|
|
15695
|
+
return;
|
|
15696
|
+
}
|
|
15697
|
+
// Find the last visible event that intersects this slot
|
|
15698
|
+
let lastEvent;
|
|
15699
|
+
const events = this.eventElements?.toArray() || [];
|
|
15700
|
+
for (const event of events) {
|
|
15701
|
+
if (event.item.data[event.resourceIndex]?.hidden) {
|
|
15702
|
+
continue;
|
|
15703
|
+
}
|
|
15704
|
+
if (event.resourceIndex !== slot.id.resourceIndex) {
|
|
15705
|
+
continue;
|
|
15706
|
+
}
|
|
15707
|
+
if (intersects(event.item.startTime, event.item.endTime, slot.start, slot.end)) {
|
|
15708
|
+
lastEvent = event;
|
|
15709
|
+
}
|
|
15710
|
+
}
|
|
15711
|
+
if (!lastEvent) {
|
|
15712
|
+
return;
|
|
15713
|
+
}
|
|
15714
|
+
const btnFocusable = this.focusService.getFocusableByElement(btnEl);
|
|
15715
|
+
const eventFocusable = this.focusService.getFocusableByElement(lastEvent.nativeElement);
|
|
15716
|
+
if (btnFocusable && eventFocusable) {
|
|
15717
|
+
this.focusService.moveAfter(btnFocusable, eventFocusable);
|
|
15718
|
+
}
|
|
15719
|
+
});
|
|
15720
|
+
}
|
|
15721
|
+
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
15722
|
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
15723
|
MonthSlotService
|
|
15713
|
-
], viewQueries: [{ propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
15724
|
+
], viewQueries: [{ propertyName: "popoverContainer", first: true, predicate: PopoverContainerDirective, descendants: true }, { propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
15714
15725
|
<table class="k-scheduler-layout k-scheduler-monthview" role="none">
|
|
15715
15726
|
<tbody>
|
|
15716
15727
|
<tr class="k-scheduler-head">
|
|
@@ -15805,6 +15816,10 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15805
15816
|
class="k-scheduler-content"
|
|
15806
15817
|
tabindex="0"
|
|
15807
15818
|
#content
|
|
15819
|
+
kendoPopoverContainer
|
|
15820
|
+
[popover]="eventsPopoverComp.popover"
|
|
15821
|
+
filter=".k-more-events"
|
|
15822
|
+
showOn="none"
|
|
15808
15823
|
[style.overflowY]="'auto'">
|
|
15809
15824
|
<!-- Main content -->
|
|
15810
15825
|
<table class="k-scheduler-table" [class.k-scheduler-table-auto]="adaptiveSlotHeight" #contentTable>
|
|
@@ -15817,8 +15832,6 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15817
15832
|
<td
|
|
15818
15833
|
[monthSlot]="day"
|
|
15819
15834
|
[moreEvents]="moreEventsByIndex(rangeIndex, index)"
|
|
15820
|
-
[eventClass]="eventClass"
|
|
15821
|
-
[eventStyles]="eventStyles"
|
|
15822
15835
|
[eventHeight]="eventHeight"
|
|
15823
15836
|
[eventsPerDay]="eventsPerDay"
|
|
15824
15837
|
[adaptiveSlotHeight]="adaptiveSlotHeight"
|
|
@@ -15864,6 +15877,22 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15864
15877
|
</div>
|
|
15865
15878
|
}
|
|
15866
15879
|
}
|
|
15880
|
+
@for (btn of moreButtons; track itemIndex($index, btn)) {
|
|
15881
|
+
<button
|
|
15882
|
+
kendoButton
|
|
15883
|
+
[kendoSchedulerFocusIndex]="btn.resourceIndex"
|
|
15884
|
+
[attr.data-slot-index]="btn.slotIndex"
|
|
15885
|
+
[attr.aria-label]="btn.ariaLabel"
|
|
15886
|
+
class="k-more-events"
|
|
15887
|
+
size="xsmall"
|
|
15888
|
+
themeColor="primary"
|
|
15889
|
+
fillMode="flat"
|
|
15890
|
+
[style.width.px]="btn.width"
|
|
15891
|
+
[style.left.px]="btn.left"
|
|
15892
|
+
[style.top.px]="btn.top">
|
|
15893
|
+
{{ btn.text }}
|
|
15894
|
+
</button>
|
|
15895
|
+
}
|
|
15867
15896
|
<kendo-hint-container #hintContainer>
|
|
15868
15897
|
<ng-template>
|
|
15869
15898
|
@for (hint of dragHints; track itemIndex($index, hint)) {
|
|
@@ -15889,12 +15918,21 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
15889
15918
|
}
|
|
15890
15919
|
</ng-template>
|
|
15891
15920
|
</kendo-hint-container>
|
|
15921
|
+
<kendo-scheduler-events-popover
|
|
15922
|
+
#eventsPopoverComp
|
|
15923
|
+
[date]="popoverDate"
|
|
15924
|
+
[events]="popoverEvents"
|
|
15925
|
+
[eventClass]="eventClass"
|
|
15926
|
+
[eventStyles]="eventStyles"
|
|
15927
|
+
[noEventsMessage]="localization.get('yearViewNoEvents')"
|
|
15928
|
+
(navigateToDay)="onPopoverNavigateToDay($event)">
|
|
15929
|
+
</kendo-scheduler-events-popover>
|
|
15892
15930
|
</div>
|
|
15893
15931
|
</td>
|
|
15894
15932
|
</tr>
|
|
15895
15933
|
</tbody>
|
|
15896
15934
|
</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", "
|
|
15935
|
+
`, 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
15936
|
}
|
|
15899
15937
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: MonthViewRendererComponent, decorators: [{
|
|
15900
15938
|
type: Component,
|
|
@@ -15998,6 +16036,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
15998
16036
|
class="k-scheduler-content"
|
|
15999
16037
|
tabindex="0"
|
|
16000
16038
|
#content
|
|
16039
|
+
kendoPopoverContainer
|
|
16040
|
+
[popover]="eventsPopoverComp.popover"
|
|
16041
|
+
filter=".k-more-events"
|
|
16042
|
+
showOn="none"
|
|
16001
16043
|
[style.overflowY]="'auto'">
|
|
16002
16044
|
<!-- Main content -->
|
|
16003
16045
|
<table class="k-scheduler-table" [class.k-scheduler-table-auto]="adaptiveSlotHeight" #contentTable>
|
|
@@ -16010,8 +16052,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16010
16052
|
<td
|
|
16011
16053
|
[monthSlot]="day"
|
|
16012
16054
|
[moreEvents]="moreEventsByIndex(rangeIndex, index)"
|
|
16013
|
-
[eventClass]="eventClass"
|
|
16014
|
-
[eventStyles]="eventStyles"
|
|
16015
16055
|
[eventHeight]="eventHeight"
|
|
16016
16056
|
[eventsPerDay]="eventsPerDay"
|
|
16017
16057
|
[adaptiveSlotHeight]="adaptiveSlotHeight"
|
|
@@ -16057,6 +16097,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16057
16097
|
</div>
|
|
16058
16098
|
}
|
|
16059
16099
|
}
|
|
16100
|
+
@for (btn of moreButtons; track itemIndex($index, btn)) {
|
|
16101
|
+
<button
|
|
16102
|
+
kendoButton
|
|
16103
|
+
[kendoSchedulerFocusIndex]="btn.resourceIndex"
|
|
16104
|
+
[attr.data-slot-index]="btn.slotIndex"
|
|
16105
|
+
[attr.aria-label]="btn.ariaLabel"
|
|
16106
|
+
class="k-more-events"
|
|
16107
|
+
size="xsmall"
|
|
16108
|
+
themeColor="primary"
|
|
16109
|
+
fillMode="flat"
|
|
16110
|
+
[style.width.px]="btn.width"
|
|
16111
|
+
[style.left.px]="btn.left"
|
|
16112
|
+
[style.top.px]="btn.top">
|
|
16113
|
+
{{ btn.text }}
|
|
16114
|
+
</button>
|
|
16115
|
+
}
|
|
16060
16116
|
<kendo-hint-container #hintContainer>
|
|
16061
16117
|
<ng-template>
|
|
16062
16118
|
@for (hint of dragHints; track itemIndex($index, hint)) {
|
|
@@ -16082,6 +16138,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16082
16138
|
}
|
|
16083
16139
|
</ng-template>
|
|
16084
16140
|
</kendo-hint-container>
|
|
16141
|
+
<kendo-scheduler-events-popover
|
|
16142
|
+
#eventsPopoverComp
|
|
16143
|
+
[date]="popoverDate"
|
|
16144
|
+
[events]="popoverEvents"
|
|
16145
|
+
[eventClass]="eventClass"
|
|
16146
|
+
[eventStyles]="eventStyles"
|
|
16147
|
+
[noEventsMessage]="localization.get('yearViewNoEvents')"
|
|
16148
|
+
(navigateToDay)="onPopoverNavigateToDay($event)">
|
|
16149
|
+
</kendo-scheduler-events-popover>
|
|
16085
16150
|
</div>
|
|
16086
16151
|
</td>
|
|
16087
16152
|
</tr>
|
|
@@ -16089,9 +16154,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16089
16154
|
</table>
|
|
16090
16155
|
`,
|
|
16091
16156
|
standalone: true,
|
|
16092
|
-
imports: [NgTemplateOutlet, NgClass, MonthSlotComponent, MonthViewItemComponent, NgStyle, FocusableDirective, HintContainerComponent, ResizeHintComponent, RepeatPipe, ResourceIteratorPipe, DatePipe, AsyncPipe]
|
|
16157
|
+
imports: [NgTemplateOutlet, NgClass, MonthSlotComponent, MonthViewItemComponent, NgStyle, FocusableDirective, HintContainerComponent, ResizeHintComponent, RepeatPipe, ResourceIteratorPipe, DatePipe, AsyncPipe, PopoverContainerDirective, EventsPopoverComponent, ButtonComponent]
|
|
16093
16158
|
}]
|
|
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: [{
|
|
16159
|
+
}], 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
16160
|
type: Input
|
|
16096
16161
|
}], monthDaySlotTemplate: [{
|
|
16097
16162
|
type: Input
|
|
@@ -16114,6 +16179,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
16114
16179
|
}], eventElements: [{
|
|
16115
16180
|
type: ViewChildren,
|
|
16116
16181
|
args: [MonthViewItemComponent]
|
|
16182
|
+
}], popoverContainer: [{
|
|
16183
|
+
type: ViewChild,
|
|
16184
|
+
args: [PopoverContainerDirective]
|
|
16117
16185
|
}] } });
|
|
16118
16186
|
|
|
16119
16187
|
/**
|
|
@@ -17744,7 +17812,7 @@ class DayTimeViewItemComponent extends BaseViewItem {
|
|
|
17744
17812
|
</span>
|
|
17745
17813
|
}
|
|
17746
17814
|
|
|
17747
|
-
@if (resizable && vertical) {
|
|
17815
|
+
@if (resizable && vertical && !isReadonly) {
|
|
17748
17816
|
@if (!item.tail) {
|
|
17749
17817
|
<span class="k-resize-handle k-resize-n"></span>
|
|
17750
17818
|
}
|
|
@@ -17826,7 +17894,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
|
|
|
17826
17894
|
</span>
|
|
17827
17895
|
}
|
|
17828
17896
|
|
|
17829
|
-
@if (resizable && vertical) {
|
|
17897
|
+
@if (resizable && vertical && !isReadonly) {
|
|
17830
17898
|
@if (!item.tail) {
|
|
17831
17899
|
<span class="k-resize-handle k-resize-n"></span>
|
|
17832
17900
|
}
|
|
@@ -20185,7 +20253,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
20185
20253
|
viewName = 'timeline';
|
|
20186
20254
|
verticalResourceRows;
|
|
20187
20255
|
get classNames() {
|
|
20188
|
-
return `k-scheduler-${this.viewName}
|
|
20256
|
+
return `k-scheduler-${this.viewName}view`;
|
|
20189
20257
|
}
|
|
20190
20258
|
get contentWidthPercentage() {
|
|
20191
20259
|
const expectedWidth = this.columnWidth * this.slotsCount;
|