@progress/kendo-angular-scheduler 24.0.0-develop.4 → 24.0.0-develop.41
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/NOTICE.txt +2599 -172
- package/codemods/libs/common/src/codemods/utils.js +53 -18
- package/codemods/libs/scheduler/codemods/v24/scheduler-rendering-changes.js +88 -0
- package/fesm2022/progress-kendo-angular-scheduler.mjs +318 -212
- package/loading.component.d.ts +1 -9
- package/package-metadata.mjs +2 -2
- package/package.json +23 -16
- package/scheduler.component.d.ts +4 -5
- package/schematics/ngAdd/index.js +3 -3
- package/toolbar/navigation.component.d.ts +0 -1
- package/toolbar/view-selector.component.d.ts +16 -0
- package/views/agenda/agenda-view-list.component.d.ts +2 -2
- package/views/common/base-view.d.ts +2 -0
- package/views/day-time/day-time-view-item.component.d.ts +4 -4
- package/views/day-time/day-time-view.component.d.ts +3 -0
- package/views/month/month-view-item.component.d.ts +2 -2
- package/views/month/month-view-renderer.component.d.ts +1 -0
- package/views/multi-day/multi-day-view-renderer.component.d.ts +1 -0
- package/views/timeline/timeline-multi-day-view.component.d.ts +1 -1
- package/views/utils.d.ts +2 -0
- package/views/view-items/base-view-item.d.ts +2 -2
- package/views/year/year-view-internal.component.d.ts +2 -2
|
@@ -7,7 +7,7 @@ import { Optional, Directive, Injectable, EventEmitter, Input, Inject, isDevMode
|
|
|
7
7
|
import * as i1$1 from '@progress/kendo-angular-l10n';
|
|
8
8
|
import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
|
|
9
9
|
import * as i7 from '@progress/kendo-angular-common';
|
|
10
|
-
import { getter, setter, hasObservers, isDocumentAvailable, isVisible as isVisible$1, scrollbarWidth, isChanged, Keys, ResizeSensorComponent, getLicenseMessage, shouldShowValidationUI, anyChanged, WatermarkOverlayComponent, guid, normalizeKeys, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
10
|
+
import { getter, setter, hasObservers, isDocumentAvailable, isVisible as isVisible$1, scrollbarWidth, isChanged, Keys, ResizeSensorComponent, getLicenseMessage, shouldShowValidationUI, anyChanged, WatermarkOverlayComponent, KENDO_WEBMCP_HOST, guid, normalizeKeys, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
11
11
|
import { isEqualDate, ZonedDate, toLocalDate, getDate, timezoneNames, Day, MS_PER_DAY as MS_PER_DAY$1, addDays, firstDayOfMonth, lastDayOfMonth, firstDayInWeek, addMonths, addWeeks, addYears } from '@progress/kendo-date-math';
|
|
12
12
|
import { auditTime, buffer, filter, map, debounceTime, take, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';
|
|
13
13
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
@@ -20,8 +20,8 @@ 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, ComboBoxComponent } from '@progress/kendo-angular-dropdowns';
|
|
22
22
|
import { NgStyle, NgTemplateOutlet, AsyncPipe, NgClass } from '@angular/common';
|
|
23
|
-
import { saveIcon,
|
|
24
|
-
import { ButtonGroupComponent, ButtonComponent, Button } from '@progress/kendo-angular-buttons';
|
|
23
|
+
import { saveIcon, cancelIcon, calendarIcon, chevronRightIcon, chevronLeftIcon, filePdfIcon, arrowRotateCwIcon, arrowsNoRepeatIcon, xIcon, moreHorizontalIcon, clockIcon, chevronUpIcon, chevronDownIcon } from '@progress/kendo-svg-icons';
|
|
24
|
+
import { ButtonGroupComponent, ButtonComponent, Button, SegmentedControlComponent } from '@progress/kendo-angular-buttons';
|
|
25
25
|
import { NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, FormFieldComponent, TextBoxDirective, CheckBoxDirective, TextAreaDirective } from '@progress/kendo-angular-inputs';
|
|
26
26
|
import { parseRule, serializeRule, expand } from '@progress/kendo-recurrence';
|
|
27
27
|
import { DatePickerComponent, DatePickerCustomMessagesComponent, DateTimePickerComponent, DateTimePickerCustomMessagesComponent, CalendarComponent, CalendarCustomMessagesComponent, MultiViewCalendarComponent, MonthCellTemplateDirective, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService, TimePickerDOMService, HoursService, MinutesService, SecondsService, MillisecondsService, DayPeriodService } from '@progress/kendo-angular-dateinputs';
|
|
@@ -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: '24.0.0-develop.
|
|
46
|
+
publishDate: 1779255877,
|
|
47
|
+
version: '24.0.0-develop.41',
|
|
48
48
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
49
49
|
};
|
|
50
50
|
|
|
@@ -2323,24 +2323,9 @@ class PDFExportEvent extends PreventableEvent {
|
|
|
2323
2323
|
* @hidden
|
|
2324
2324
|
*/
|
|
2325
2325
|
class LoadingComponent {
|
|
2326
|
-
element;
|
|
2327
|
-
renderer;
|
|
2328
2326
|
hostClasses = true;
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
return this.loading || this.force ? 'block' : 'none';
|
|
2332
|
-
}
|
|
2333
|
-
force;
|
|
2334
|
-
constructor(element, renderer) {
|
|
2335
|
-
this.element = element;
|
|
2336
|
-
this.renderer = renderer;
|
|
2337
|
-
}
|
|
2338
|
-
toggle(value) {
|
|
2339
|
-
this.force = value;
|
|
2340
|
-
this.renderer.setStyle(this.element.nativeElement, 'display', this.display);
|
|
2341
|
-
}
|
|
2342
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: LoadingComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
2343
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: LoadingComponent, isStandalone: true, selector: "[kendoSchedulerLoading]", inputs: { loading: "loading" }, host: { properties: { "class.k-loading-mask": "this.hostClasses", "style.display": "this.display" } }, ngImport: i0, template: `
|
|
2327
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2328
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: LoadingComponent, isStandalone: true, selector: "[kendoSchedulerLoading]", host: { properties: { "class.k-loading-mask": "this.hostClasses" } }, ngImport: i0, template: `
|
|
2344
2329
|
<div class="k-loading-image"></div>
|
|
2345
2330
|
<div class="k-loading-color"></div>
|
|
2346
2331
|
`, isInline: true });
|
|
@@ -2355,14 +2340,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
2355
2340
|
`,
|
|
2356
2341
|
standalone: true
|
|
2357
2342
|
}]
|
|
2358
|
-
}],
|
|
2343
|
+
}], propDecorators: { hostClasses: [{
|
|
2359
2344
|
type: HostBinding,
|
|
2360
2345
|
args: ['class.k-loading-mask']
|
|
2361
|
-
}], loading: [{
|
|
2362
|
-
type: Input
|
|
2363
|
-
}], display: [{
|
|
2364
|
-
type: HostBinding,
|
|
2365
|
-
args: ['style.display']
|
|
2366
2346
|
}] } });
|
|
2367
2347
|
|
|
2368
2348
|
/**
|
|
@@ -2420,9 +2400,10 @@ class FocusableDirective {
|
|
|
2420
2400
|
}
|
|
2421
2401
|
toggleFocus(value) {
|
|
2422
2402
|
const element = this.element.nativeElement;
|
|
2423
|
-
const isFooterButton = element.matches('
|
|
2403
|
+
const isFooterButton = element.matches('[viewfooter] .k-button');
|
|
2424
2404
|
const focusedClass = element.matches('.k-button-group .k-button') || isFooterButton ? 'k-focus' : 'k-selected';
|
|
2425
|
-
const
|
|
2405
|
+
const schedulerElement = element.closest('.k-scheduler');
|
|
2406
|
+
const renderedEvents = schedulerElement ? schedulerElement.querySelectorAll('.k-event') : [];
|
|
2426
2407
|
const method = value ? 'addClass' : 'removeClass';
|
|
2427
2408
|
this.renderer[method](element, focusedClass);
|
|
2428
2409
|
if (renderedEvents.length > 0) {
|
|
@@ -2579,6 +2560,20 @@ const intersects = (startTime, endTime, periodStart, periodEnd) => (startTime <
|
|
|
2579
2560
|
/** @hidden */
|
|
2580
2561
|
const dateInRange = (date, start, end) => start.getTime() <= date.getTime() && date.getTime() <= end.getTime();
|
|
2581
2562
|
/** @hidden */
|
|
2563
|
+
const getVerticalPaddingAndBorder = (element) => {
|
|
2564
|
+
if (!isDocumentAvailable() || !element) {
|
|
2565
|
+
return 0;
|
|
2566
|
+
}
|
|
2567
|
+
const styles = getComputedStyle(element);
|
|
2568
|
+
const values = [
|
|
2569
|
+
parseFloat(styles.paddingTop || '0'),
|
|
2570
|
+
parseFloat(styles.paddingBottom || '0'),
|
|
2571
|
+
parseFloat(styles.borderTopWidth || '0'),
|
|
2572
|
+
parseFloat(styles.borderBottomWidth || '0')
|
|
2573
|
+
];
|
|
2574
|
+
return values.reduce((total, value) => total + (Number.isFinite(value) ? value : 0), 0);
|
|
2575
|
+
};
|
|
2576
|
+
/** @hidden */
|
|
2582
2577
|
const roundAllDayEnd = ({ start, end }) => {
|
|
2583
2578
|
const startDate = start.stripTime();
|
|
2584
2579
|
const endDate = end.stripTime();
|
|
@@ -4467,7 +4462,7 @@ class RecurrenceWeekdayRuleEditorComponent {
|
|
|
4467
4462
|
</kendo-buttongroup>
|
|
4468
4463
|
</div>
|
|
4469
4464
|
</div>
|
|
4470
|
-
`, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"
|
|
4465
|
+
`, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { 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"] }] });
|
|
4471
4466
|
}
|
|
4472
4467
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: RecurrenceWeekdayRuleEditorComponent, decorators: [{
|
|
4473
4468
|
type: Component,
|
|
@@ -4727,7 +4722,7 @@ class RecurrenceFrequencyEditorComponent {
|
|
|
4727
4722
|
</kendo-buttongroup>
|
|
4728
4723
|
</div>
|
|
4729
4724
|
</div>
|
|
4730
|
-
`, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"
|
|
4725
|
+
`, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { 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"] }] });
|
|
4731
4726
|
}
|
|
4732
4727
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: RecurrenceFrequencyEditorComponent, decorators: [{
|
|
4733
4728
|
type: Component,
|
|
@@ -5910,7 +5905,7 @@ class EditDialogComponent {
|
|
|
5910
5905
|
editedEvent;
|
|
5911
5906
|
isNew;
|
|
5912
5907
|
saveIcon = saveIcon;
|
|
5913
|
-
cancelIcon =
|
|
5908
|
+
cancelIcon = cancelIcon;
|
|
5914
5909
|
subs;
|
|
5915
5910
|
pendingNewEventData;
|
|
5916
5911
|
constructor(ngZone, editService, localization, changeDetector, element, focusService, intl) {
|
|
@@ -6302,14 +6297,14 @@ class EditDialogComponent {
|
|
|
6302
6297
|
>{{ textFor('save') }}</button>
|
|
6303
6298
|
<button
|
|
6304
6299
|
kendoButton
|
|
6305
|
-
icon="cancel
|
|
6300
|
+
icon="cancel"
|
|
6306
6301
|
[svgIcon]="cancelIcon"
|
|
6307
6302
|
(click)="onCancel($event)"
|
|
6308
6303
|
>{{ textFor('cancel') }}</button>
|
|
6309
6304
|
</kendo-dialog-actions>
|
|
6310
6305
|
</kendo-dialog>
|
|
6311
6306
|
}
|
|
6312
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"
|
|
6307
|
+
`, 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors", "colSpan"] }, { kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: SchedulerDateTimePickerComponent, selector: "kendo-scheduler-datetime-picker", inputs: ["isAllDay"], outputs: ["valueChange"] }, { kind: "directive", type: CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "directive", type: LabelDirective, selector: "label[for]", inputs: ["for", "labelClass"] }, { 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"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { kind: "directive", type: TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { 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"] }] });
|
|
6313
6308
|
}
|
|
6314
6309
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EditDialogComponent, decorators: [{
|
|
6315
6310
|
type: Component,
|
|
@@ -6506,7 +6501,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
6506
6501
|
>{{ textFor('save') }}</button>
|
|
6507
6502
|
<button
|
|
6508
6503
|
kendoButton
|
|
6509
|
-
icon="cancel
|
|
6504
|
+
icon="cancel"
|
|
6510
6505
|
[svgIcon]="cancelIcon"
|
|
6511
6506
|
(click)="onCancel($event)"
|
|
6512
6507
|
>{{ textFor('cancel') }}</button>
|
|
@@ -6536,6 +6531,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
6536
6531
|
type: Input
|
|
6537
6532
|
}] } });
|
|
6538
6533
|
|
|
6534
|
+
const EMPTY_VIEWS = [];
|
|
6539
6535
|
/**
|
|
6540
6536
|
* A toolbar component that contains controls for switching views
|
|
6541
6537
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/scheduler/toolbar#including-the-built-in-components)).
|
|
@@ -6576,7 +6572,26 @@ class ToolbarViewSelectorComponent {
|
|
|
6576
6572
|
get selectView() {
|
|
6577
6573
|
return this.localization.get('selectView');
|
|
6578
6574
|
}
|
|
6575
|
+
/**
|
|
6576
|
+
* @hidden
|
|
6577
|
+
*/
|
|
6578
|
+
get viewItems() {
|
|
6579
|
+
const views = Array.from(this.ctx.views ?? EMPTY_VIEWS);
|
|
6580
|
+
if (!this.areSameViews(views) || this.cachedViewItems === null) {
|
|
6581
|
+
this.cachedViews = views;
|
|
6582
|
+
this.cachedViewItems = views.map(view => ({ text: view.title }));
|
|
6583
|
+
}
|
|
6584
|
+
return this.cachedViewItems;
|
|
6585
|
+
}
|
|
6586
|
+
/**
|
|
6587
|
+
* @hidden
|
|
6588
|
+
*/
|
|
6589
|
+
get selectedViewIndex() {
|
|
6590
|
+
return Array.from(this.ctx.views ?? EMPTY_VIEWS).indexOf(this.ctx.selectedView);
|
|
6591
|
+
}
|
|
6579
6592
|
detachDomEvents;
|
|
6593
|
+
cachedViews = null;
|
|
6594
|
+
cachedViewItems = null;
|
|
6580
6595
|
constructor(service, localization) {
|
|
6581
6596
|
this.service = service;
|
|
6582
6597
|
this.localization = localization;
|
|
@@ -6597,11 +6612,20 @@ class ToolbarViewSelectorComponent {
|
|
|
6597
6612
|
});
|
|
6598
6613
|
}
|
|
6599
6614
|
}
|
|
6615
|
+
/**
|
|
6616
|
+
* @hidden
|
|
6617
|
+
*/
|
|
6618
|
+
onViewChange(index) {
|
|
6619
|
+
const view = Array.from(this.ctx.views ?? EMPTY_VIEWS)[index];
|
|
6620
|
+
if (view) {
|
|
6621
|
+
this.select(view);
|
|
6622
|
+
}
|
|
6623
|
+
}
|
|
6600
6624
|
/**
|
|
6601
6625
|
* @hidden
|
|
6602
6626
|
*/
|
|
6603
6627
|
onChange(e) {
|
|
6604
|
-
const view = this.ctx.views.find(view => view.name === e.target.value);
|
|
6628
|
+
const view = Array.from(this.ctx.views ?? EMPTY_VIEWS).find(view => view.name === e.target.value);
|
|
6605
6629
|
if (view) {
|
|
6606
6630
|
this.select(view);
|
|
6607
6631
|
}
|
|
@@ -6612,6 +6636,15 @@ class ToolbarViewSelectorComponent {
|
|
|
6612
6636
|
isSelected(view) {
|
|
6613
6637
|
return this.ctx.selectedView === view;
|
|
6614
6638
|
}
|
|
6639
|
+
areSameViews(views) {
|
|
6640
|
+
if (this.cachedViews === views) {
|
|
6641
|
+
return true;
|
|
6642
|
+
}
|
|
6643
|
+
if (this.cachedViews?.length !== views.length) {
|
|
6644
|
+
return false;
|
|
6645
|
+
}
|
|
6646
|
+
return this.cachedViews.every((view, index) => view === views[index]);
|
|
6647
|
+
}
|
|
6615
6648
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ToolbarViewSelectorComponent, deps: [{ token: ToolbarService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6616
6649
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ToolbarViewSelectorComponent, isStandalone: true, selector: "[kendoSchedulerToolbarViewSelector]", inputs: { toolbarWidth: "toolbarWidth", responsiveBreakpoint: "responsiveBreakpoint" }, ngImport: i0, template: `
|
|
6617
6650
|
@if (ctx.views?.length > 1 && toolbarWidth <= responsiveBreakpoint) {
|
|
@@ -6632,26 +6665,16 @@ class ToolbarViewSelectorComponent {
|
|
|
6632
6665
|
</select>
|
|
6633
6666
|
}
|
|
6634
6667
|
@if (toolbarWidth > responsiveBreakpoint) {
|
|
6635
|
-
<
|
|
6636
|
-
class="k-
|
|
6637
|
-
|
|
6638
|
-
|
|
6639
|
-
|
|
6640
|
-
|
|
6641
|
-
|
|
6642
|
-
|
|
6643
|
-
[attr.aria-pressed]="isSelected(view)"
|
|
6644
|
-
(click)="select(view)"
|
|
6645
|
-
[kendoSchedulerFocusIndex]="0"
|
|
6646
|
-
containerType="toolbar">
|
|
6647
|
-
<span class="k-button-text">
|
|
6648
|
-
{{ view.title }}
|
|
6649
|
-
</span>
|
|
6650
|
-
</button>
|
|
6651
|
-
}
|
|
6652
|
-
</span>
|
|
6668
|
+
<kendo-segmented-control
|
|
6669
|
+
class="k-scheduler-views"
|
|
6670
|
+
[items]="viewItems"
|
|
6671
|
+
[selected]="selectedViewIndex"
|
|
6672
|
+
(selectedChange)="onViewChange($event)"
|
|
6673
|
+
[kendoSchedulerFocusIndex]="0"
|
|
6674
|
+
containerType="toolbar">
|
|
6675
|
+
</kendo-segmented-control>
|
|
6653
6676
|
}
|
|
6654
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type:
|
|
6677
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: SegmentedControlComponent, selector: "kendo-segmented-control", inputs: ["items", "layoutMode", "size", "selected"], outputs: ["selectedChange"] }] });
|
|
6655
6678
|
}
|
|
6656
6679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ToolbarViewSelectorComponent, decorators: [{
|
|
6657
6680
|
type: Component,
|
|
@@ -6676,28 +6699,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
6676
6699
|
</select>
|
|
6677
6700
|
}
|
|
6678
6701
|
@if (toolbarWidth > responsiveBreakpoint) {
|
|
6679
|
-
<
|
|
6680
|
-
class="k-
|
|
6681
|
-
|
|
6682
|
-
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6686
|
-
|
|
6687
|
-
[attr.aria-pressed]="isSelected(view)"
|
|
6688
|
-
(click)="select(view)"
|
|
6689
|
-
[kendoSchedulerFocusIndex]="0"
|
|
6690
|
-
containerType="toolbar">
|
|
6691
|
-
<span class="k-button-text">
|
|
6692
|
-
{{ view.title }}
|
|
6693
|
-
</span>
|
|
6694
|
-
</button>
|
|
6695
|
-
}
|
|
6696
|
-
</span>
|
|
6702
|
+
<kendo-segmented-control
|
|
6703
|
+
class="k-scheduler-views"
|
|
6704
|
+
[items]="viewItems"
|
|
6705
|
+
[selected]="selectedViewIndex"
|
|
6706
|
+
(selectedChange)="onViewChange($event)"
|
|
6707
|
+
[kendoSchedulerFocusIndex]="0"
|
|
6708
|
+
containerType="toolbar">
|
|
6709
|
+
</kendo-segmented-control>
|
|
6697
6710
|
}
|
|
6698
6711
|
`,
|
|
6699
6712
|
standalone: true,
|
|
6700
|
-
imports: [FocusableDirective,
|
|
6713
|
+
imports: [FocusableDirective, SegmentedControlComponent]
|
|
6701
6714
|
}]
|
|
6702
6715
|
}], ctorParameters: () => [{ type: ToolbarService }, { type: i1$1.LocalizationService }], propDecorators: { toolbarWidth: [{
|
|
6703
6716
|
type: Input
|
|
@@ -6705,7 +6718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
6705
6718
|
type: Input
|
|
6706
6719
|
}] } });
|
|
6707
6720
|
|
|
6708
|
-
const iconsMap = {
|
|
6721
|
+
const iconsMap = { chevronLeftIcon, chevronRightIcon, calendarIcon };
|
|
6709
6722
|
/**
|
|
6710
6723
|
* A toolbar component that contains controls for date navigation
|
|
6711
6724
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/scheduler/toolbar#including-the-built-in-components)).
|
|
@@ -6734,7 +6747,6 @@ class ToolbarNavigationComponent {
|
|
|
6734
6747
|
calendar.focus();
|
|
6735
6748
|
}
|
|
6736
6749
|
}
|
|
6737
|
-
hostClass = true;
|
|
6738
6750
|
/**
|
|
6739
6751
|
* @hidden
|
|
6740
6752
|
*/
|
|
@@ -6908,19 +6920,19 @@ class ToolbarNavigationComponent {
|
|
|
6908
6920
|
this.cd.detectChanges();
|
|
6909
6921
|
}
|
|
6910
6922
|
get arrowIcons() {
|
|
6911
|
-
return !this.localization.rtl ? ['
|
|
6923
|
+
return !this.localization.rtl ? ['chevron-left', 'chevron-right'] : ['chevron-right', 'chevron-left'];
|
|
6912
6924
|
}
|
|
6913
6925
|
get arrowSVGIcons() {
|
|
6914
|
-
return !this.localization.rtl ? ['
|
|
6926
|
+
return !this.localization.rtl ? ['chevronLeftIcon', 'chevronRightIcon'] : ['chevronRightIcon', 'chevronLeftIcon'];
|
|
6915
6927
|
}
|
|
6916
6928
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ToolbarNavigationComponent, deps: [{ token: i1$2.PopupService }, { token: ToolbarService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6917
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ToolbarNavigationComponent, isStandalone: true, selector: "[kendoSchedulerToolbarNavigation]", inputs: { min: "min", max: "max", activeView: "activeView", bottomView: "bottomView" },
|
|
6929
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ToolbarNavigationComponent, isStandalone: true, selector: "[kendoSchedulerToolbarNavigation]", inputs: { min: "min", max: "max", activeView: "activeView", bottomView: "bottomView" }, providers: [
|
|
6918
6930
|
PopupService
|
|
6919
6931
|
], viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }], ngImport: i0, template: `
|
|
6920
|
-
<span class="k-
|
|
6932
|
+
<span class="k-button-group k-toolbar-button-group k-scheduler-navigation" role="group">
|
|
6921
6933
|
<button kendoButton
|
|
6934
|
+
class="k-group-start"
|
|
6922
6935
|
(click)="todayClick()"
|
|
6923
|
-
class="k-nav-today"
|
|
6924
6936
|
[attr.title]="todayText"
|
|
6925
6937
|
[kendoSchedulerFocusIndex]="0"
|
|
6926
6938
|
containerType="toolbar">
|
|
@@ -6928,7 +6940,6 @@ class ToolbarNavigationComponent {
|
|
|
6928
6940
|
</button>
|
|
6929
6941
|
<button kendoButton
|
|
6930
6942
|
(click)="prevClick()"
|
|
6931
|
-
class="k-nav-prev"
|
|
6932
6943
|
[icon]="arrowIcons[0]"
|
|
6933
6944
|
[svgIcon]="svgIcon(arrowSVGIcons[0])"
|
|
6934
6945
|
[attr.title]="previousText"
|
|
@@ -6937,9 +6948,9 @@ class ToolbarNavigationComponent {
|
|
|
6937
6948
|
containerType="toolbar">
|
|
6938
6949
|
</button>
|
|
6939
6950
|
<button kendoButton
|
|
6951
|
+
class="k-group-end"
|
|
6940
6952
|
(click)="nextClick()"
|
|
6941
6953
|
type="button"
|
|
6942
|
-
class="k-nav-next"
|
|
6943
6954
|
[icon]="arrowIcons[1]"
|
|
6944
6955
|
[svgIcon]="svgIcon(arrowSVGIcons[1])"
|
|
6945
6956
|
[attr.title]="nextText"
|
|
@@ -6961,7 +6972,7 @@ class ToolbarNavigationComponent {
|
|
|
6961
6972
|
(keydown.enter)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
|
|
6962
6973
|
(keydown.alt.arrowdown)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
|
|
6963
6974
|
role="button"
|
|
6964
|
-
class="k-nav-current"
|
|
6975
|
+
class="k-nav-current k-toolbar-button"
|
|
6965
6976
|
[attr.aria-live]="'polite'"
|
|
6966
6977
|
[kendoSchedulerFocusIndex]="0"
|
|
6967
6978
|
containerType="toolbar">
|
|
@@ -6981,7 +6992,7 @@ class ToolbarNavigationComponent {
|
|
|
6981
6992
|
</kendo-calendar-messages>
|
|
6982
6993
|
</kendo-calendar>
|
|
6983
6994
|
</ng-template>
|
|
6984
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"
|
|
6995
|
+
`, isInline: true, dependencies: [{ 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: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["closePopup", "activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6985
6996
|
}
|
|
6986
6997
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ToolbarNavigationComponent, decorators: [{
|
|
6987
6998
|
type: Component,
|
|
@@ -6992,10 +7003,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
6992
7003
|
PopupService
|
|
6993
7004
|
],
|
|
6994
7005
|
template: `
|
|
6995
|
-
<span class="k-
|
|
7006
|
+
<span class="k-button-group k-toolbar-button-group k-scheduler-navigation" role="group">
|
|
6996
7007
|
<button kendoButton
|
|
7008
|
+
class="k-group-start"
|
|
6997
7009
|
(click)="todayClick()"
|
|
6998
|
-
class="k-nav-today"
|
|
6999
7010
|
[attr.title]="todayText"
|
|
7000
7011
|
[kendoSchedulerFocusIndex]="0"
|
|
7001
7012
|
containerType="toolbar">
|
|
@@ -7003,7 +7014,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
7003
7014
|
</button>
|
|
7004
7015
|
<button kendoButton
|
|
7005
7016
|
(click)="prevClick()"
|
|
7006
|
-
class="k-nav-prev"
|
|
7007
7017
|
[icon]="arrowIcons[0]"
|
|
7008
7018
|
[svgIcon]="svgIcon(arrowSVGIcons[0])"
|
|
7009
7019
|
[attr.title]="previousText"
|
|
@@ -7012,9 +7022,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
7012
7022
|
containerType="toolbar">
|
|
7013
7023
|
</button>
|
|
7014
7024
|
<button kendoButton
|
|
7025
|
+
class="k-group-end"
|
|
7015
7026
|
(click)="nextClick()"
|
|
7016
7027
|
type="button"
|
|
7017
|
-
class="k-nav-next"
|
|
7018
7028
|
[icon]="arrowIcons[1]"
|
|
7019
7029
|
[svgIcon]="svgIcon(arrowSVGIcons[1])"
|
|
7020
7030
|
[attr.title]="nextText"
|
|
@@ -7036,7 +7046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
7036
7046
|
(keydown.enter)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
|
|
7037
7047
|
(keydown.alt.arrowdown)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
|
|
7038
7048
|
role="button"
|
|
7039
|
-
class="k-nav-current"
|
|
7049
|
+
class="k-nav-current k-toolbar-button"
|
|
7040
7050
|
[attr.aria-live]="'polite'"
|
|
7041
7051
|
[kendoSchedulerFocusIndex]="0"
|
|
7042
7052
|
containerType="toolbar">
|
|
@@ -7063,9 +7073,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
7063
7073
|
}], ctorParameters: () => [{ type: i1$2.PopupService }, { type: ToolbarService }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }], propDecorators: { calendar: [{
|
|
7064
7074
|
type: ViewChild,
|
|
7065
7075
|
args: ['calendar', { static: false }]
|
|
7066
|
-
}], hostClass: [{
|
|
7067
|
-
type: HostBinding,
|
|
7068
|
-
args: ['class.k-toolbar-group']
|
|
7069
7076
|
}], min: [{
|
|
7070
7077
|
type: Input
|
|
7071
7078
|
}], max: [{
|
|
@@ -8267,10 +8274,6 @@ class SchedulerComponent {
|
|
|
8267
8274
|
* @hidden
|
|
8268
8275
|
*/
|
|
8269
8276
|
confirmationDialogContainerRef;
|
|
8270
|
-
/**
|
|
8271
|
-
* @hidden
|
|
8272
|
-
*/
|
|
8273
|
-
loadingComponent;
|
|
8274
8277
|
/**
|
|
8275
8278
|
* @hidden
|
|
8276
8279
|
*/
|
|
@@ -8333,6 +8336,10 @@ class SchedulerComponent {
|
|
|
8333
8336
|
get viewToolbar() {
|
|
8334
8337
|
return this.viewState?.toolbarVisibilityByView.get(this.selectedView);
|
|
8335
8338
|
}
|
|
8339
|
+
/**
|
|
8340
|
+
* @hidden
|
|
8341
|
+
*/
|
|
8342
|
+
pdfLoading = false;
|
|
8336
8343
|
direction;
|
|
8337
8344
|
subs;
|
|
8338
8345
|
viewIndex = 0;
|
|
@@ -8476,7 +8483,8 @@ class SchedulerComponent {
|
|
|
8476
8483
|
}
|
|
8477
8484
|
}));
|
|
8478
8485
|
this.subs.add(this.pdfService.done.subscribe(() => {
|
|
8479
|
-
this.
|
|
8486
|
+
this.pdfLoading = false;
|
|
8487
|
+
this.changeDetector.markForCheck();
|
|
8480
8488
|
}));
|
|
8481
8489
|
this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
|
|
8482
8490
|
this.rtl = rtl;
|
|
@@ -8624,7 +8632,8 @@ class SchedulerComponent {
|
|
|
8624
8632
|
* Saves the current view as PDF.
|
|
8625
8633
|
*/
|
|
8626
8634
|
saveAsPDF() {
|
|
8627
|
-
this.
|
|
8635
|
+
this.pdfLoading = true;
|
|
8636
|
+
this.changeDetector.markForCheck();
|
|
8628
8637
|
this.zone.runOutsideAngular(() => {
|
|
8629
8638
|
// wait a tick in order for the loading element style to be updated by the browser.
|
|
8630
8639
|
// if the export is synchronous, the browser will not update the element before the export is finished.
|
|
@@ -8901,11 +8910,15 @@ class SchedulerComponent {
|
|
|
8901
8910
|
provide: L10N_PREFIX,
|
|
8902
8911
|
useValue: 'kendo.scheduler'
|
|
8903
8912
|
},
|
|
8913
|
+
{
|
|
8914
|
+
provide: KENDO_WEBMCP_HOST,
|
|
8915
|
+
useExisting: forwardRef(() => SchedulerComponent)
|
|
8916
|
+
},
|
|
8904
8917
|
ToolbarService,
|
|
8905
8918
|
ViewContextService,
|
|
8906
8919
|
ViewStateService,
|
|
8907
|
-
PDFService
|
|
8908
|
-
], queries: [{ propertyName: "editDialogTemplate", first: true, predicate: EditDialogTemplateDirective, descendants: true }, { propertyName: "toolbarTemplate", first: true, predicate: ToolbarTemplateDirective, descendants: true }, { propertyName: "views", predicate: SchedulerView }, { propertyName: "allDayEventTemplate", predicate: AllDayEventTemplateDirective }, { propertyName: "eventTemplate", predicate: EventTemplateDirective }, { propertyName: "timeSlotTemplate", predicate: TimeSlotTemplateDirective }, { propertyName: "minorTimeHeaderTemplate", predicate: MinorTimeHeaderTemplateDirective }, { propertyName: "majorTimeHeaderTemplate", predicate: MajorTimeHeaderTemplateDirective }, { propertyName: "monthDaySlotTemplate", predicate: MonthDaySlotTemplateDirective }, { propertyName: "multiWeekDaySlotTemplate", predicate: MultiWeekDaySlotTemplateDirective }, { propertyName: "dateHeaderTemplate", predicate: DateHeaderTemplateDirective }, { propertyName: "allDaySlotTemplate", predicate: AllDaySlotTemplateDirective }, { propertyName: "groupHeaderTemplate", predicate: GroupHeaderTemplateDirective }, { propertyName: "agendaDateTemplate", predicate: AgendaDateTemplateDirective }, { propertyName: "agendaTimeTemplate", predicate: AgendaTimeTemplateDirective }], viewQueries: [{ propertyName: "resizeSensor", first: true, predicate: ResizeSensorComponent, descendants: true, static: true }, { propertyName: "confirmationDialogContainerRef", first: true, predicate: ["confirmationDialogContainer"], descendants: true, read: ViewContainerRef, static: true }
|
|
8920
|
+
PDFService,
|
|
8921
|
+
], queries: [{ propertyName: "editDialogTemplate", first: true, predicate: EditDialogTemplateDirective, descendants: true }, { propertyName: "toolbarTemplate", first: true, predicate: ToolbarTemplateDirective, descendants: true }, { propertyName: "views", predicate: SchedulerView }, { propertyName: "allDayEventTemplate", predicate: AllDayEventTemplateDirective }, { propertyName: "eventTemplate", predicate: EventTemplateDirective }, { propertyName: "timeSlotTemplate", predicate: TimeSlotTemplateDirective }, { propertyName: "minorTimeHeaderTemplate", predicate: MinorTimeHeaderTemplateDirective }, { propertyName: "majorTimeHeaderTemplate", predicate: MajorTimeHeaderTemplateDirective }, { propertyName: "monthDaySlotTemplate", predicate: MonthDaySlotTemplateDirective }, { propertyName: "multiWeekDaySlotTemplate", predicate: MultiWeekDaySlotTemplateDirective }, { propertyName: "dateHeaderTemplate", predicate: DateHeaderTemplateDirective }, { propertyName: "allDaySlotTemplate", predicate: AllDaySlotTemplateDirective }, { propertyName: "groupHeaderTemplate", predicate: GroupHeaderTemplateDirective }, { propertyName: "agendaDateTemplate", predicate: AgendaDateTemplateDirective }, { propertyName: "agendaTimeTemplate", predicate: AgendaTimeTemplateDirective }], viewQueries: [{ propertyName: "resizeSensor", first: true, predicate: ResizeSensorComponent, descendants: true, static: true }, { propertyName: "confirmationDialogContainerRef", first: true, predicate: ["confirmationDialogContainer"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
8909
8922
|
<ng-container kendoSchedulerLocalizedMessages
|
|
8910
8923
|
i18n-allEvents="kendo.scheduler.allEvents|The All events text displayed in the timeline views when there is no vertical grouping."
|
|
8911
8924
|
allEvents="All events"
|
|
@@ -9236,13 +9249,14 @@ class SchedulerComponent {
|
|
|
9236
9249
|
|
|
9237
9250
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
9238
9251
|
|
|
9239
|
-
|
|
9240
|
-
|
|
9252
|
+
@if (loading || pdfLoading) {
|
|
9253
|
+
<div kendoSchedulerLoading></div>
|
|
9254
|
+
}
|
|
9241
9255
|
|
|
9242
9256
|
@if (showLicenseWatermark) {
|
|
9243
9257
|
<div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
|
|
9244
9258
|
}
|
|
9245
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]"
|
|
9259
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]" }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9246
9260
|
}
|
|
9247
9261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: SchedulerComponent, decorators: [{
|
|
9248
9262
|
type: Component,
|
|
@@ -9264,10 +9278,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
9264
9278
|
provide: L10N_PREFIX,
|
|
9265
9279
|
useValue: 'kendo.scheduler'
|
|
9266
9280
|
},
|
|
9281
|
+
{
|
|
9282
|
+
provide: KENDO_WEBMCP_HOST,
|
|
9283
|
+
useExisting: forwardRef(() => SchedulerComponent)
|
|
9284
|
+
},
|
|
9267
9285
|
ToolbarService,
|
|
9268
9286
|
ViewContextService,
|
|
9269
9287
|
ViewStateService,
|
|
9270
|
-
PDFService
|
|
9288
|
+
PDFService,
|
|
9271
9289
|
],
|
|
9272
9290
|
template: `
|
|
9273
9291
|
<ng-container kendoSchedulerLocalizedMessages
|
|
@@ -9600,8 +9618,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
9600
9618
|
|
|
9601
9619
|
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
9602
9620
|
|
|
9603
|
-
|
|
9604
|
-
|
|
9621
|
+
@if (loading || pdfLoading) {
|
|
9622
|
+
<div kendoSchedulerLoading></div>
|
|
9623
|
+
}
|
|
9605
9624
|
|
|
9606
9625
|
@if (showLicenseWatermark) {
|
|
9607
9626
|
<div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
|
|
@@ -9755,9 +9774,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
9755
9774
|
}], confirmationDialogContainerRef: [{
|
|
9756
9775
|
type: ViewChild,
|
|
9757
9776
|
args: ["confirmationDialogContainer", { read: ViewContainerRef, static: true }]
|
|
9758
|
-
}], loadingComponent: [{
|
|
9759
|
-
type: ViewChild,
|
|
9760
|
-
args: [LoadingComponent, { static: true }]
|
|
9761
9777
|
}], allDayEventTemplate: [{
|
|
9762
9778
|
type: ContentChildren,
|
|
9763
9779
|
args: [AllDayEventTemplateDirective]
|
|
@@ -11133,8 +11149,8 @@ class AgendaListComponent {
|
|
|
11133
11149
|
agendaTimeTemplate;
|
|
11134
11150
|
agendaDateTemplate;
|
|
11135
11151
|
editable;
|
|
11136
|
-
|
|
11137
|
-
|
|
11152
|
+
chevronLeftIcon = chevronLeftIcon;
|
|
11153
|
+
chevronRightIcon = chevronRightIcon;
|
|
11138
11154
|
constructor(intlService, localization) {
|
|
11139
11155
|
this.intlService = intlService;
|
|
11140
11156
|
this.localization = localization;
|
|
@@ -11201,10 +11217,10 @@ class AgendaListComponent {
|
|
|
11201
11217
|
}
|
|
11202
11218
|
}
|
|
11203
11219
|
get arrowIcons() {
|
|
11204
|
-
return !this.localization.rtl ? ['
|
|
11220
|
+
return !this.localization.rtl ? ['chevron-left', 'chevron-right'] : ['chevron-right', 'chevron-left'];
|
|
11205
11221
|
}
|
|
11206
11222
|
get arrowSVGIcons() {
|
|
11207
|
-
return !this.localization.rtl ? [this.
|
|
11223
|
+
return !this.localization.rtl ? [this.chevronLeftIcon, this.chevronRightIcon] : [this.chevronRightIcon, this.chevronLeftIcon];
|
|
11208
11224
|
}
|
|
11209
11225
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AgendaListComponent, deps: [{ token: i4.IntlService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11210
11226
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: AgendaListComponent, isStandalone: true, selector: "[kendoSchedulerAgendaList]", inputs: { tasks: "tasks", eventTemplate: "eventTemplate", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", agendaTimeTemplate: "agendaTimeTemplate", agendaDateTemplate: "agendaDateTemplate", editable: "editable" }, host: { properties: { "class.k-scheduler-content": "this.classes" } }, ngImport: i0, template: `
|
|
@@ -11387,9 +11403,9 @@ class AgendaHeaderComponent {
|
|
|
11387
11403
|
@for (resource of resources; track resource) {
|
|
11388
11404
|
<th class="k-scheduler-groupcolumn k-first" role="columnheader"><span class="k-sr-only">{{ resourceMessage }}</span></th>
|
|
11389
11405
|
}
|
|
11390
|
-
<th class="k-scheduler-cell k-
|
|
11391
|
-
<th class="k-scheduler-cell k-
|
|
11392
|
-
<th class="k-scheduler-cell
|
|
11406
|
+
<th class="k-scheduler-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
|
|
11407
|
+
<th class="k-scheduler-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
|
|
11408
|
+
<th class="k-scheduler-cell" role="columnheader">{{ eventMessage }}</th>
|
|
11393
11409
|
</tr>
|
|
11394
11410
|
</tbody>
|
|
11395
11411
|
</table>
|
|
@@ -11409,9 +11425,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
11409
11425
|
@for (resource of resources; track resource) {
|
|
11410
11426
|
<th class="k-scheduler-groupcolumn k-first" role="columnheader"><span class="k-sr-only">{{ resourceMessage }}</span></th>
|
|
11411
11427
|
}
|
|
11412
|
-
<th class="k-scheduler-cell k-
|
|
11413
|
-
<th class="k-scheduler-cell k-
|
|
11414
|
-
<th class="k-scheduler-cell
|
|
11428
|
+
<th class="k-scheduler-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
|
|
11429
|
+
<th class="k-scheduler-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
|
|
11430
|
+
<th class="k-scheduler-cell" role="columnheader">{{ eventMessage }}</th>
|
|
11415
11431
|
</tr>
|
|
11416
11432
|
</tbody>
|
|
11417
11433
|
</table>
|
|
@@ -12644,8 +12660,10 @@ class BaseView {
|
|
|
12644
12660
|
contentTable;
|
|
12645
12661
|
times;
|
|
12646
12662
|
timesHeader;
|
|
12663
|
+
timesHeaderTable;
|
|
12647
12664
|
timesTable;
|
|
12648
12665
|
headerWrap;
|
|
12666
|
+
headerTable;
|
|
12649
12667
|
hintContainer;
|
|
12650
12668
|
get eventTemplateRef() {
|
|
12651
12669
|
return this.eventTemplate || (this.schedulerEventTemplate || {}).templateRef;
|
|
@@ -13646,7 +13664,7 @@ class BaseView {
|
|
|
13646
13664
|
}
|
|
13647
13665
|
}
|
|
13648
13666
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseView, deps: [{ token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: BaseSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i7.ScrollbarService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
13649
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: BaseView, isStandalone: true, inputs: { eventTemplate: "eventTemplate", groupHeaderTemplate: "groupHeaderTemplate", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", eventHeight: "eventHeight", showToolbar: "showToolbar", showFooter: "showFooter", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", weekStart: "weekStart" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "contentTable", first: true, predicate: ["contentTable"], descendants: true }, { propertyName: "times", first: true, predicate: ["times"], descendants: true }, { propertyName: "timesHeader", first: true, predicate: ["timesHeader"], descendants: true }, { propertyName: "timesTable", first: true, predicate: ["timesTable"], descendants: true }, { propertyName: "headerWrap", first: true, predicate: ["headerWrap"], descendants: true }, { propertyName: "hintContainer", first: true, predicate: ["hintContainer"], descendants: true }], usesOnChanges: true, ngImport: i0 });
|
|
13667
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: BaseView, isStandalone: true, inputs: { eventTemplate: "eventTemplate", groupHeaderTemplate: "groupHeaderTemplate", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", eventHeight: "eventHeight", showToolbar: "showToolbar", showFooter: "showFooter", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", weekStart: "weekStart" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "contentTable", first: true, predicate: ["contentTable"], descendants: true }, { propertyName: "times", first: true, predicate: ["times"], descendants: true }, { propertyName: "timesHeader", first: true, predicate: ["timesHeader"], descendants: true }, { propertyName: "timesHeaderTable", first: true, predicate: ["timesHeaderTable"], descendants: true }, { propertyName: "timesTable", first: true, predicate: ["timesTable"], descendants: true }, { propertyName: "headerWrap", first: true, predicate: ["headerWrap"], descendants: true }, { propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "hintContainer", first: true, predicate: ["hintContainer"], descendants: true }], usesOnChanges: true, ngImport: i0 });
|
|
13650
13668
|
}
|
|
13651
13669
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseView, decorators: [{
|
|
13652
13670
|
type: Directive
|
|
@@ -13687,12 +13705,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
13687
13705
|
}], timesHeader: [{
|
|
13688
13706
|
type: ViewChild,
|
|
13689
13707
|
args: ['timesHeader', { static: false }]
|
|
13708
|
+
}], timesHeaderTable: [{
|
|
13709
|
+
type: ViewChild,
|
|
13710
|
+
args: ['timesHeaderTable', { static: false }]
|
|
13690
13711
|
}], timesTable: [{
|
|
13691
13712
|
type: ViewChild,
|
|
13692
13713
|
args: ['timesTable', { static: false }]
|
|
13693
13714
|
}], headerWrap: [{
|
|
13694
13715
|
type: ViewChild,
|
|
13695
13716
|
args: ['headerWrap', { static: false }]
|
|
13717
|
+
}], headerTable: [{
|
|
13718
|
+
type: ViewChild,
|
|
13719
|
+
args: ['headerTable', { static: false }]
|
|
13696
13720
|
}], hintContainer: [{
|
|
13697
13721
|
type: ViewChild,
|
|
13698
13722
|
args: ['hintContainer', { static: false }]
|
|
@@ -13737,8 +13761,8 @@ class BaseViewItem {
|
|
|
13737
13761
|
get removable() {
|
|
13738
13762
|
return this.editable && this.editable.remove !== false;
|
|
13739
13763
|
}
|
|
13740
|
-
|
|
13741
|
-
|
|
13764
|
+
chevronLeftIcon = chevronLeftIcon;
|
|
13765
|
+
chevronRightIcon = chevronRightIcon;
|
|
13742
13766
|
rect;
|
|
13743
13767
|
subs = new Subscription();
|
|
13744
13768
|
constructor(slotService, localization, focusService, element, renderer, intl) {
|
|
@@ -13833,10 +13857,10 @@ class BaseViewItem {
|
|
|
13833
13857
|
this.subs.unsubscribe();
|
|
13834
13858
|
}
|
|
13835
13859
|
get arrowIcons() {
|
|
13836
|
-
return !this.localization.rtl ? ['
|
|
13860
|
+
return !this.localization.rtl ? ['chevron-left', 'chevron-right'] : ['chevron-right', 'chevron-left'];
|
|
13837
13861
|
}
|
|
13838
13862
|
get arrowSVGIcons() {
|
|
13839
|
-
return !this.localization.rtl ? [this.
|
|
13863
|
+
return !this.localization.rtl ? [this.chevronLeftIcon, this.chevronRightIcon] : [this.chevronRightIcon, this.chevronLeftIcon];
|
|
13840
13864
|
}
|
|
13841
13865
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseViewItem, deps: [{ token: BaseSlotService }, { token: i1$1.LocalizationService }, { token: FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
13842
13866
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: BaseViewItem, isStandalone: true, inputs: { item: "item", resourceIndex: "resourceIndex", rangeIndex: "rangeIndex", index: "index", eventTemplate: "eventTemplate", editable: "editable", dragHint: "dragHint", resources: "resources" }, host: { properties: { "class.k-event": "this.className", "attr.data-task-index": "this.taskIndex", "style.touch-action": "this.touchAction", "attr.aria-label": "this.eventTitle" } }, usesOnChanges: true, ngImport: i0 });
|
|
@@ -13877,8 +13901,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
13877
13901
|
* @hidden
|
|
13878
13902
|
*/
|
|
13879
13903
|
class MonthViewItemComponent extends BaseViewItem {
|
|
13880
|
-
|
|
13881
|
-
|
|
13904
|
+
chevronLeftIcon = chevronLeftIcon;
|
|
13905
|
+
chevronRightIcon = chevronRightIcon;
|
|
13882
13906
|
arrowRotateCwIcon = arrowRotateCwIcon;
|
|
13883
13907
|
arrowsNoRepeatIcon = arrowsNoRepeatIcon;
|
|
13884
13908
|
xIcon = xIcon;
|
|
@@ -14460,12 +14484,15 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
14460
14484
|
super.ngOnChanges(changes);
|
|
14461
14485
|
}
|
|
14462
14486
|
ngOnInit() {
|
|
14463
|
-
this.viewState.layoutEnd.subscribe(() => {
|
|
14487
|
+
this.subs.add(this.viewState.layoutEnd.subscribe(() => {
|
|
14464
14488
|
if (this.adaptiveSlotHeight) {
|
|
14465
14489
|
this.slotService.invalidate();
|
|
14466
14490
|
this.reflow();
|
|
14467
14491
|
}
|
|
14468
|
-
|
|
14492
|
+
else {
|
|
14493
|
+
this.syncTables();
|
|
14494
|
+
}
|
|
14495
|
+
}));
|
|
14469
14496
|
super.ngOnInit();
|
|
14470
14497
|
}
|
|
14471
14498
|
ngAfterViewInit() {
|
|
@@ -14552,6 +14579,24 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
14552
14579
|
}
|
|
14553
14580
|
this.syncTables();
|
|
14554
14581
|
}
|
|
14582
|
+
syncTables() {
|
|
14583
|
+
super.syncTables();
|
|
14584
|
+
if (!this.timesTable) {
|
|
14585
|
+
return;
|
|
14586
|
+
}
|
|
14587
|
+
const timesRows = this.timesTable.nativeElement.rows;
|
|
14588
|
+
if (!timesRows.length) {
|
|
14589
|
+
return;
|
|
14590
|
+
}
|
|
14591
|
+
const contentRows = this.contentTable.nativeElement.rows;
|
|
14592
|
+
const rowsCount = Math.min(timesRows.length, contentRows.length);
|
|
14593
|
+
for (let index = 0; index < rowsCount; index++) {
|
|
14594
|
+
const height = `${contentRows[index].offsetHeight}px`;
|
|
14595
|
+
if (timesRows[index].style.height !== height) {
|
|
14596
|
+
this.renderer.setStyle(timesRows[index], 'height', height);
|
|
14597
|
+
}
|
|
14598
|
+
}
|
|
14599
|
+
}
|
|
14555
14600
|
onClick(e, eventType = e.type) {
|
|
14556
14601
|
if (eventType === 'click') {
|
|
14557
14602
|
const eventSlot = closestInScope(e.target, node => node.hasAttribute('data-slot-index'), this.element.nativeElement);
|
|
@@ -14674,7 +14719,7 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
14674
14719
|
<table class="k-scheduler-table" aria-hidden="true">
|
|
14675
14720
|
<tbody>
|
|
14676
14721
|
<tr>
|
|
14677
|
-
<th class="k-scheduler-cell
|
|
14722
|
+
<th class="k-scheduler-cell"></th>
|
|
14678
14723
|
</tr>
|
|
14679
14724
|
</tbody>
|
|
14680
14725
|
</table>
|
|
@@ -14692,7 +14737,7 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
14692
14737
|
<tr>
|
|
14693
14738
|
@for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
|
|
14694
14739
|
<th
|
|
14695
|
-
class="k-scheduler-cell
|
|
14740
|
+
class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
|
|
14696
14741
|
@if (!groupHeaderTemplateRef) {
|
|
14697
14742
|
{{ getField(item, resource.textField) }}
|
|
14698
14743
|
}
|
|
@@ -14706,7 +14751,7 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
14706
14751
|
<tr>
|
|
14707
14752
|
@for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
|
|
14708
14753
|
@for (day of weeks[0]; track itemIndex($index, day)) {
|
|
14709
|
-
<th class="k-scheduler-cell
|
|
14754
|
+
<th class="k-scheduler-cell">
|
|
14710
14755
|
{{ day | kendoDate: 'EEEE' }}
|
|
14711
14756
|
</th>
|
|
14712
14757
|
}
|
|
@@ -14728,7 +14773,7 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
14728
14773
|
<tr>
|
|
14729
14774
|
@for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
|
|
14730
14775
|
@if (verticalItem(leafIndex, resourceIndex)) {
|
|
14731
|
-
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell
|
|
14776
|
+
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
|
|
14732
14777
|
@if (!groupHeaderTemplateRef) {
|
|
14733
14778
|
{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
|
|
14734
14779
|
}
|
|
@@ -14739,12 +14784,12 @@ class MonthViewRendererComponent extends BaseView {
|
|
|
14739
14784
|
</th>
|
|
14740
14785
|
}
|
|
14741
14786
|
}
|
|
14742
|
-
<th class="k-slot-cell k-
|
|
14787
|
+
<th class="k-slot-cell k-empty-slot">
|
|
14743
14788
|
</th>
|
|
14744
14789
|
</tr>
|
|
14745
14790
|
@for (index of (numberOfWeeks - 1) | repeat; track itemIndex($index, index)) {
|
|
14746
14791
|
<tr>
|
|
14747
|
-
<th class="k-slot-cell k-
|
|
14792
|
+
<th class="k-slot-cell k-empty-slot"></th>
|
|
14748
14793
|
</tr>
|
|
14749
14794
|
}
|
|
14750
14795
|
}
|
|
@@ -14865,7 +14910,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
14865
14910
|
<table class="k-scheduler-table" aria-hidden="true">
|
|
14866
14911
|
<tbody>
|
|
14867
14912
|
<tr>
|
|
14868
|
-
<th class="k-scheduler-cell
|
|
14913
|
+
<th class="k-scheduler-cell"></th>
|
|
14869
14914
|
</tr>
|
|
14870
14915
|
</tbody>
|
|
14871
14916
|
</table>
|
|
@@ -14883,7 +14928,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
14883
14928
|
<tr>
|
|
14884
14929
|
@for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
|
|
14885
14930
|
<th
|
|
14886
|
-
class="k-scheduler-cell
|
|
14931
|
+
class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
|
|
14887
14932
|
@if (!groupHeaderTemplateRef) {
|
|
14888
14933
|
{{ getField(item, resource.textField) }}
|
|
14889
14934
|
}
|
|
@@ -14897,7 +14942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
14897
14942
|
<tr>
|
|
14898
14943
|
@for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
|
|
14899
14944
|
@for (day of weeks[0]; track itemIndex($index, day)) {
|
|
14900
|
-
<th class="k-scheduler-cell
|
|
14945
|
+
<th class="k-scheduler-cell">
|
|
14901
14946
|
{{ day | kendoDate: 'EEEE' }}
|
|
14902
14947
|
</th>
|
|
14903
14948
|
}
|
|
@@ -14919,7 +14964,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
14919
14964
|
<tr>
|
|
14920
14965
|
@for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
|
|
14921
14966
|
@if (verticalItem(leafIndex, resourceIndex)) {
|
|
14922
|
-
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell
|
|
14967
|
+
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
|
|
14923
14968
|
@if (!groupHeaderTemplateRef) {
|
|
14924
14969
|
{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
|
|
14925
14970
|
}
|
|
@@ -14930,12 +14975,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
14930
14975
|
</th>
|
|
14931
14976
|
}
|
|
14932
14977
|
}
|
|
14933
|
-
<th class="k-slot-cell k-
|
|
14978
|
+
<th class="k-slot-cell k-empty-slot">
|
|
14934
14979
|
</th>
|
|
14935
14980
|
</tr>
|
|
14936
14981
|
@for (index of (numberOfWeeks - 1) | repeat; track itemIndex($index, index)) {
|
|
14937
14982
|
<tr>
|
|
14938
|
-
<th class="k-slot-cell k-
|
|
14983
|
+
<th class="k-slot-cell k-empty-slot"></th>
|
|
14939
14984
|
</tr>
|
|
14940
14985
|
}
|
|
14941
14986
|
}
|
|
@@ -15727,7 +15772,7 @@ class ViewFooterComponent {
|
|
|
15727
15772
|
}
|
|
15728
15773
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ViewFooterComponent, deps: [{ token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15729
15774
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ViewFooterComponent, isStandalone: true, selector: "[viewFooter]", inputs: { items: "items" }, outputs: { itemClick: "itemClick" }, host: { properties: { "class.k-scheduler-footer": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "attr.role": "this.toolbarRole", "style.justify-content": "this.inlineJustifyContentStyle" } }, ngImport: i0, template: `
|
|
15730
|
-
<span
|
|
15775
|
+
<span>
|
|
15731
15776
|
@for (item of items; track item) {
|
|
15732
15777
|
<button
|
|
15733
15778
|
type="button"
|
|
@@ -15742,14 +15787,14 @@ class ViewFooterComponent {
|
|
|
15742
15787
|
</button>
|
|
15743
15788
|
}
|
|
15744
15789
|
</span>
|
|
15745
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"
|
|
15790
|
+
`, isInline: true, dependencies: [{ 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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] });
|
|
15746
15791
|
}
|
|
15747
15792
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ViewFooterComponent, decorators: [{
|
|
15748
15793
|
type: Component,
|
|
15749
15794
|
args: [{
|
|
15750
15795
|
selector: '[viewFooter]',
|
|
15751
15796
|
template: `
|
|
15752
|
-
<span
|
|
15797
|
+
<span>
|
|
15753
15798
|
@for (item of items; track item) {
|
|
15754
15799
|
<button
|
|
15755
15800
|
type="button"
|
|
@@ -15793,7 +15838,7 @@ class WorkHoursFooterDirective {
|
|
|
15793
15838
|
footer;
|
|
15794
15839
|
localization;
|
|
15795
15840
|
showWorkHours = false;
|
|
15796
|
-
footerItems = [{ cssClass: 'k-scheduler-fullday', fontIcon: 'clock', svgIcon: clockIcon, text: '' }];
|
|
15841
|
+
footerItems = [{ cssClass: 'k-scheduler-fullday k-toolbar-button', fontIcon: 'clock', svgIcon: clockIcon, text: '' }];
|
|
15797
15842
|
constructor(footer, localization) {
|
|
15798
15843
|
this.footer = footer;
|
|
15799
15844
|
this.localization = localization;
|
|
@@ -16605,10 +16650,10 @@ function createTimeSlots(intlService, { showWorkHours, startTime, endTime, workD
|
|
|
16605
16650
|
*/
|
|
16606
16651
|
class DayTimeViewItemComponent extends BaseViewItem {
|
|
16607
16652
|
intlService;
|
|
16608
|
-
|
|
16609
|
-
|
|
16610
|
-
|
|
16611
|
-
|
|
16653
|
+
chevronLeftIcon = chevronLeftIcon;
|
|
16654
|
+
chevronRightIcon = chevronRightIcon;
|
|
16655
|
+
chevronUpIcon = chevronUpIcon;
|
|
16656
|
+
chevronDownIcon = chevronDownIcon;
|
|
16612
16657
|
arrowRotateCwIcon = arrowRotateCwIcon;
|
|
16613
16658
|
arrowsNoRepeatIcon = arrowsNoRepeatIcon;
|
|
16614
16659
|
xIcon = xIcon;
|
|
@@ -16678,13 +16723,13 @@ class DayTimeViewItemComponent extends BaseViewItem {
|
|
|
16678
16723
|
|
|
16679
16724
|
@if (item.tail && vertical) {
|
|
16680
16725
|
<span class="k-event-top-actions">
|
|
16681
|
-
<kendo-icon-wrapper name="
|
|
16726
|
+
<kendo-icon-wrapper name="chevron-up" [svgIcon]="chevronUpIcon"></kendo-icon-wrapper>
|
|
16682
16727
|
</span>
|
|
16683
16728
|
}
|
|
16684
16729
|
|
|
16685
16730
|
@if (item.head && vertical) {
|
|
16686
16731
|
<span class="k-event-bottom-actions">
|
|
16687
|
-
<kendo-icon-wrapper name="
|
|
16732
|
+
<kendo-icon-wrapper name="chevron-down" [svgIcon]="chevronDownIcon"></kendo-icon-wrapper>
|
|
16688
16733
|
</span>
|
|
16689
16734
|
}
|
|
16690
16735
|
|
|
@@ -16762,13 +16807,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
16762
16807
|
|
|
16763
16808
|
@if (item.tail && vertical) {
|
|
16764
16809
|
<span class="k-event-top-actions">
|
|
16765
|
-
<kendo-icon-wrapper name="
|
|
16810
|
+
<kendo-icon-wrapper name="chevron-up" [svgIcon]="chevronUpIcon"></kendo-icon-wrapper>
|
|
16766
16811
|
</span>
|
|
16767
16812
|
}
|
|
16768
16813
|
|
|
16769
16814
|
@if (item.head && vertical) {
|
|
16770
16815
|
<span class="k-event-bottom-actions">
|
|
16771
|
-
<kendo-icon-wrapper name="
|
|
16816
|
+
<kendo-icon-wrapper name="chevron-down" [svgIcon]="chevronDownIcon"></kendo-icon-wrapper>
|
|
16772
16817
|
</span>
|
|
16773
16818
|
}
|
|
16774
16819
|
|
|
@@ -16898,9 +16943,11 @@ class DayTimeViewComponent extends BaseView {
|
|
|
16898
16943
|
}
|
|
16899
16944
|
timeSlotClass(slot, date, resourceIndex) {
|
|
16900
16945
|
if (this.slotClass) {
|
|
16946
|
+
const start = dateWithTime(date, slot.start);
|
|
16947
|
+
const end = dateWithTime(date, slot.end);
|
|
16901
16948
|
return this.slotClass({
|
|
16902
|
-
start:
|
|
16903
|
-
end:
|
|
16949
|
+
start: start,
|
|
16950
|
+
end: end < start ? addDays(end, 1) : end,
|
|
16904
16951
|
resources: this.resourcesByIndex(resourceIndex),
|
|
16905
16952
|
isAllDay: false
|
|
16906
16953
|
});
|
|
@@ -17134,6 +17181,49 @@ class DayTimeViewComponent extends BaseView {
|
|
|
17134
17181
|
this.workDayEndTime = toInvariantTime(endDate);
|
|
17135
17182
|
}
|
|
17136
17183
|
}
|
|
17184
|
+
syncDateHeaderHeight() {
|
|
17185
|
+
if (!isDocumentAvailable()) {
|
|
17186
|
+
return;
|
|
17187
|
+
}
|
|
17188
|
+
const dateRowIndex = this.horizontalResources.length + 1;
|
|
17189
|
+
const timesTable = this.timesHeaderTable?.nativeElement;
|
|
17190
|
+
const headerTable = this.headerTable?.nativeElement;
|
|
17191
|
+
const timesHeaderDateCell = timesTable?.rows[dateRowIndex - 1]?.cells[0];
|
|
17192
|
+
const headerDateCell = headerTable?.rows[dateRowIndex - 1]?.cells[0];
|
|
17193
|
+
const shouldSkipDateHeightSync = !timesHeaderDateCell || !headerDateCell || !this.dateHeaderTemplateRef;
|
|
17194
|
+
if (shouldSkipDateHeightSync) {
|
|
17195
|
+
if (timesHeaderDateCell && !this.dateHeaderTemplateRef) {
|
|
17196
|
+
this.renderer.removeStyle(timesHeaderDateCell, 'height');
|
|
17197
|
+
}
|
|
17198
|
+
return;
|
|
17199
|
+
}
|
|
17200
|
+
this.syncCellHeight(headerDateCell, timesHeaderDateCell);
|
|
17201
|
+
}
|
|
17202
|
+
syncGroupHeaderHeight() {
|
|
17203
|
+
if (!isDocumentAvailable()) {
|
|
17204
|
+
return;
|
|
17205
|
+
}
|
|
17206
|
+
const dateRowIndex = this.horizontalResources.length + 1;
|
|
17207
|
+
const timesTable = this.timesHeaderTable?.nativeElement;
|
|
17208
|
+
const headerTable = this.headerTable?.nativeElement;
|
|
17209
|
+
for (let rowIndex = 1; rowIndex < dateRowIndex; rowIndex++) {
|
|
17210
|
+
const timesHeaderCell = timesTable?.rows[rowIndex - 1]?.cells[0];
|
|
17211
|
+
if (!timesHeaderCell) {
|
|
17212
|
+
continue;
|
|
17213
|
+
}
|
|
17214
|
+
// Remove height when template is absent or grouping is vertical
|
|
17215
|
+
if (!this.groupHeaderTemplateRef || this.verticalResources.length) {
|
|
17216
|
+
this.renderer.removeStyle(timesHeaderCell, 'height');
|
|
17217
|
+
continue;
|
|
17218
|
+
}
|
|
17219
|
+
const headerCell = headerTable?.rows[rowIndex - 1]?.cells[0];
|
|
17220
|
+
if (!headerCell) {
|
|
17221
|
+
this.renderer.removeStyle(timesHeaderCell, 'height');
|
|
17222
|
+
continue;
|
|
17223
|
+
}
|
|
17224
|
+
this.syncCellHeight(headerCell, timesHeaderCell);
|
|
17225
|
+
}
|
|
17226
|
+
}
|
|
17137
17227
|
slotByPosition(x, y, container) {
|
|
17138
17228
|
const isDaySlot = container ? hasClasses(container.parentNode, 'k-scheduler-header-wrap') : y < 0;
|
|
17139
17229
|
return this.slotService.slotByPosition(x, y, isDaySlot, Boolean(this.verticalResources.length));
|
|
@@ -17149,6 +17239,14 @@ class DayTimeViewComponent extends BaseView {
|
|
|
17149
17239
|
}
|
|
17150
17240
|
return fields;
|
|
17151
17241
|
}
|
|
17242
|
+
syncCellHeight(sourceCell, targetCell) {
|
|
17243
|
+
const height = sourceCell.getBoundingClientRect().height;
|
|
17244
|
+
const currentHeight = targetCell.getBoundingClientRect().height;
|
|
17245
|
+
const paddingAndBorder = getVerticalPaddingAndBorder(targetCell);
|
|
17246
|
+
if (height !== currentHeight) {
|
|
17247
|
+
this.renderer.setStyle(targetCell, 'height', `${height - paddingAndBorder}px`);
|
|
17248
|
+
}
|
|
17249
|
+
}
|
|
17152
17250
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DayTimeViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: i7.ScrollbarService }], target: i0.ɵɵFactoryTarget.Component });
|
|
17153
17251
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: DayTimeViewComponent, isStandalone: true, selector: "kendo-day-time-view", inputs: { timeSlotTemplate: "timeSlotTemplate", dateHeaderTemplate: "dateHeaderTemplate", majorTimeHeaderTemplate: "majorTimeHeaderTemplate", minorTimeHeaderTemplate: "minorTimeHeaderTemplate", numberOfDays: "numberOfDays", scrollTime: "scrollTime", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", slotDuration: "slotDuration", slotDivisions: "slotDivisions", showWorkHours: "showWorkHours", getStartDate: "getStartDate", getEndDate: "getEndDate", getNextDate: "getNextDate", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents" }, viewQueries: [{ propertyName: "currentTimeElements", predicate: ["currentTimeMarker"], descendants: true }, { propertyName: "eventElements", predicate: DayTimeViewItemComponent, descendants: true }, { propertyName: "currentTimeArrows", predicate: ["currentTimeArrow"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
|
|
17154
17252
|
}
|
|
@@ -17462,6 +17560,11 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
17462
17560
|
slotService.layoutTimes({ fill: this.slotFill });
|
|
17463
17561
|
this.syncTables();
|
|
17464
17562
|
}
|
|
17563
|
+
syncTables() {
|
|
17564
|
+
super.syncTables();
|
|
17565
|
+
this.syncGroupHeaderHeight();
|
|
17566
|
+
this.syncDateHeaderHeight();
|
|
17567
|
+
}
|
|
17465
17568
|
dragHorizontal(slot) {
|
|
17466
17569
|
return slot.isDaySlot;
|
|
17467
17570
|
}
|
|
@@ -17566,19 +17669,19 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
17566
17669
|
<tr class="k-scheduler-head">
|
|
17567
17670
|
<td>
|
|
17568
17671
|
<div class="k-scheduler-times" #timesHeader>
|
|
17569
|
-
<table class="k-scheduler-table" aria-hidden="true">
|
|
17672
|
+
<table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
|
|
17570
17673
|
<tbody>
|
|
17571
17674
|
@for (resource of horizontalResources; track itemIndex($index, resource)) {
|
|
17572
17675
|
<tr>
|
|
17573
|
-
<th class="k-scheduler-cell
|
|
17676
|
+
<th class="k-scheduler-cell"></th>
|
|
17574
17677
|
</tr>
|
|
17575
17678
|
}
|
|
17576
17679
|
<tr [style.height]="'auto'">
|
|
17577
|
-
<th class="k-scheduler-cell
|
|
17680
|
+
<th class="k-scheduler-cell"></th>
|
|
17578
17681
|
</tr>
|
|
17579
17682
|
@if (allDaySlot && !verticalResources.length) {
|
|
17580
17683
|
<tr>
|
|
17581
|
-
<th class="k-scheduler-times-all-day k-scheduler-cell
|
|
17684
|
+
<th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
|
|
17582
17685
|
</tr>
|
|
17583
17686
|
}
|
|
17584
17687
|
</tbody>
|
|
@@ -17588,13 +17691,13 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
17588
17691
|
<td>
|
|
17589
17692
|
<div class="k-scheduler-header" #header>
|
|
17590
17693
|
<div class="k-scheduler-header-wrap" #headerWrap>
|
|
17591
|
-
<table class="k-scheduler-table" aria-hidden="true">
|
|
17694
|
+
<table class="k-scheduler-table" #headerTable aria-hidden="true">
|
|
17592
17695
|
<tbody>
|
|
17593
17696
|
@for (resource of horizontalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
|
|
17594
17697
|
<tr>
|
|
17595
17698
|
@for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
|
|
17596
17699
|
<th
|
|
17597
|
-
class="k-scheduler-cell
|
|
17700
|
+
class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
|
|
17598
17701
|
@if (!groupHeaderTemplateRef) {
|
|
17599
17702
|
{{ getField(item, resource.textField) }}
|
|
17600
17703
|
}
|
|
@@ -17608,7 +17711,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
17608
17711
|
<tr class="k-scheduler-date-group">
|
|
17609
17712
|
@for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
|
|
17610
17713
|
@for (slot of daySlots; track itemIndex(index, slot); let index = $index) {
|
|
17611
|
-
<th class="k-scheduler-cell
|
|
17714
|
+
<th class="k-scheduler-cell">
|
|
17612
17715
|
@if (!dateHeaderTemplateRef) {
|
|
17613
17716
|
<span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
|
|
17614
17717
|
}
|
|
@@ -17720,7 +17823,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
17720
17823
|
<tr>
|
|
17721
17824
|
@for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
|
|
17722
17825
|
@if (verticalItem(leafIndex, resourceIndex)) {
|
|
17723
|
-
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell
|
|
17826
|
+
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell">
|
|
17724
17827
|
@if (!groupHeaderTemplateRef) {
|
|
17725
17828
|
{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
|
|
17726
17829
|
}
|
|
@@ -17732,14 +17835,14 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
17732
17835
|
}
|
|
17733
17836
|
}
|
|
17734
17837
|
@if (allDaySlot) {
|
|
17735
|
-
<th class="k-scheduler-times-all-day k-scheduler-cell
|
|
17838
|
+
<th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
|
|
17736
17839
|
}
|
|
17737
17840
|
</tr>
|
|
17738
17841
|
}
|
|
17739
17842
|
@for (slot of timeSlots; track itemIndex(timeSlotIndex, slot); let timeSlotIndex = $index) {
|
|
17740
17843
|
<tr>
|
|
17741
17844
|
@if (slot.isMajor) {
|
|
17742
|
-
<th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell
|
|
17845
|
+
<th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell">
|
|
17743
17846
|
@if (!majorTimeHeaderTemplateRef) {
|
|
17744
17847
|
{{ slot.start | kendoDate: 't' }}
|
|
17745
17848
|
}
|
|
@@ -17749,7 +17852,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
|
|
|
17749
17852
|
</th>
|
|
17750
17853
|
}
|
|
17751
17854
|
@if (!slot.isMajor) {
|
|
17752
|
-
<th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell
|
|
17855
|
+
<th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell">
|
|
17753
17856
|
@if (minorTimeHeaderTemplateRef) {
|
|
17754
17857
|
<ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
|
|
17755
17858
|
</ng-container>
|
|
@@ -17929,19 +18032,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
17929
18032
|
<tr class="k-scheduler-head">
|
|
17930
18033
|
<td>
|
|
17931
18034
|
<div class="k-scheduler-times" #timesHeader>
|
|
17932
|
-
<table class="k-scheduler-table" aria-hidden="true">
|
|
18035
|
+
<table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
|
|
17933
18036
|
<tbody>
|
|
17934
18037
|
@for (resource of horizontalResources; track itemIndex($index, resource)) {
|
|
17935
18038
|
<tr>
|
|
17936
|
-
<th class="k-scheduler-cell
|
|
18039
|
+
<th class="k-scheduler-cell"></th>
|
|
17937
18040
|
</tr>
|
|
17938
18041
|
}
|
|
17939
18042
|
<tr [style.height]="'auto'">
|
|
17940
|
-
<th class="k-scheduler-cell
|
|
18043
|
+
<th class="k-scheduler-cell"></th>
|
|
17941
18044
|
</tr>
|
|
17942
18045
|
@if (allDaySlot && !verticalResources.length) {
|
|
17943
18046
|
<tr>
|
|
17944
|
-
<th class="k-scheduler-times-all-day k-scheduler-cell
|
|
18047
|
+
<th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
|
|
17945
18048
|
</tr>
|
|
17946
18049
|
}
|
|
17947
18050
|
</tbody>
|
|
@@ -17951,13 +18054,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
17951
18054
|
<td>
|
|
17952
18055
|
<div class="k-scheduler-header" #header>
|
|
17953
18056
|
<div class="k-scheduler-header-wrap" #headerWrap>
|
|
17954
|
-
<table class="k-scheduler-table" aria-hidden="true">
|
|
18057
|
+
<table class="k-scheduler-table" #headerTable aria-hidden="true">
|
|
17955
18058
|
<tbody>
|
|
17956
18059
|
@for (resource of horizontalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
|
|
17957
18060
|
<tr>
|
|
17958
18061
|
@for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
|
|
17959
18062
|
<th
|
|
17960
|
-
class="k-scheduler-cell
|
|
18063
|
+
class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
|
|
17961
18064
|
@if (!groupHeaderTemplateRef) {
|
|
17962
18065
|
{{ getField(item, resource.textField) }}
|
|
17963
18066
|
}
|
|
@@ -17971,7 +18074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
17971
18074
|
<tr class="k-scheduler-date-group">
|
|
17972
18075
|
@for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
|
|
17973
18076
|
@for (slot of daySlots; track itemIndex(index, slot); let index = $index) {
|
|
17974
|
-
<th class="k-scheduler-cell
|
|
18077
|
+
<th class="k-scheduler-cell">
|
|
17975
18078
|
@if (!dateHeaderTemplateRef) {
|
|
17976
18079
|
<span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
|
|
17977
18080
|
}
|
|
@@ -18083,7 +18186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
18083
18186
|
<tr>
|
|
18084
18187
|
@for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
|
|
18085
18188
|
@if (verticalItem(leafIndex, resourceIndex)) {
|
|
18086
|
-
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell
|
|
18189
|
+
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell">
|
|
18087
18190
|
@if (!groupHeaderTemplateRef) {
|
|
18088
18191
|
{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
|
|
18089
18192
|
}
|
|
@@ -18095,14 +18198,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
18095
18198
|
}
|
|
18096
18199
|
}
|
|
18097
18200
|
@if (allDaySlot) {
|
|
18098
|
-
<th class="k-scheduler-times-all-day k-scheduler-cell
|
|
18201
|
+
<th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
|
|
18099
18202
|
}
|
|
18100
18203
|
</tr>
|
|
18101
18204
|
}
|
|
18102
18205
|
@for (slot of timeSlots; track itemIndex(timeSlotIndex, slot); let timeSlotIndex = $index) {
|
|
18103
18206
|
<tr>
|
|
18104
18207
|
@if (slot.isMajor) {
|
|
18105
|
-
<th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell
|
|
18208
|
+
<th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell">
|
|
18106
18209
|
@if (!majorTimeHeaderTemplateRef) {
|
|
18107
18210
|
{{ slot.start | kendoDate: 't' }}
|
|
18108
18211
|
}
|
|
@@ -18112,7 +18215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
18112
18215
|
</th>
|
|
18113
18216
|
}
|
|
18114
18217
|
@if (!slot.isMajor) {
|
|
18115
|
-
<th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell
|
|
18218
|
+
<th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell">
|
|
18116
18219
|
@if (minorTimeHeaderTemplateRef) {
|
|
18117
18220
|
<ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
|
|
18118
18221
|
</ng-container>
|
|
@@ -18860,7 +18963,9 @@ class WorkWeekViewComponent extends WeekViewComponent {
|
|
|
18860
18963
|
* @hidden
|
|
18861
18964
|
*/
|
|
18862
18965
|
getStartDate(selectedDate) {
|
|
18863
|
-
|
|
18966
|
+
const weekStartDate = firstDayInWeek(getDate(selectedDate), this.viewWeekStart);
|
|
18967
|
+
const workWeekOffset = (DAYS_IN_WEEK + this.viewWorkWeekStart - this.viewWeekStart) % DAYS_IN_WEEK;
|
|
18968
|
+
return getDate(addDays(weekStartDate, workWeekOffset));
|
|
18864
18969
|
}
|
|
18865
18970
|
/**
|
|
18866
18971
|
* @hidden
|
|
@@ -19065,7 +19170,6 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19065
19170
|
get classNames() {
|
|
19066
19171
|
return `k-scheduler-${this.viewName}-view`;
|
|
19067
19172
|
}
|
|
19068
|
-
headerTable;
|
|
19069
19173
|
get contentWidthPercentage() {
|
|
19070
19174
|
const expectedWidth = this.columnWidth * this.slotsCount;
|
|
19071
19175
|
const percentage = (expectedWidth / this.contentWidth) * 100;
|
|
@@ -19145,6 +19249,11 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19145
19249
|
handleScroll() {
|
|
19146
19250
|
this.headerWrap.nativeElement.scrollLeft = this.content.nativeElement.scrollLeft;
|
|
19147
19251
|
}
|
|
19252
|
+
syncTables() {
|
|
19253
|
+
super.syncTables();
|
|
19254
|
+
this.syncGroupHeaderHeight();
|
|
19255
|
+
this.syncDateHeaderHeight();
|
|
19256
|
+
}
|
|
19148
19257
|
createTasks(items, dateRange) {
|
|
19149
19258
|
return createTasks$1(dateRange.start, dateRange.end, items, this.hiddenDays || []);
|
|
19150
19259
|
}
|
|
@@ -19175,19 +19284,19 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19175
19284
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TimelineMultiDayViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i7.ScrollbarService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19176
19285
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TimelineMultiDayViewComponent, isStandalone: true, selector: "timeline-multi-day-view", inputs: { hiddenDays: "hiddenDays", name: "name", columnWidth: "columnWidth", viewName: "viewName" }, providers: [
|
|
19177
19286
|
DayTimeSlotService
|
|
19178
|
-
], viewQueries: [{ propertyName: "
|
|
19287
|
+
], viewQueries: [{ propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
19179
19288
|
<table class="k-scheduler-layout" [ngClass]="classNames">
|
|
19180
19289
|
<tbody>
|
|
19181
19290
|
<tr class="k-scheduler-head">
|
|
19182
19291
|
<td>
|
|
19183
19292
|
<div class="k-scheduler-times" #timesHeader>
|
|
19184
|
-
<table class="k-scheduler-table" aria-hidden="true">
|
|
19293
|
+
<table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
|
|
19185
19294
|
<tbody>
|
|
19186
|
-
<tr><th class="k-scheduler-cell
|
|
19187
|
-
<tr><th class="k-slot-cell k-scheduler-cell
|
|
19295
|
+
<tr><th class="k-scheduler-cell"></th></tr>
|
|
19296
|
+
<tr><th class="k-slot-cell k-scheduler-cell"></th></tr>
|
|
19188
19297
|
@for (resource of horizontalResources; track itemIndex($index, resource)) {
|
|
19189
19298
|
<tr>
|
|
19190
|
-
<th class="k-scheduler-cell
|
|
19299
|
+
<th class="k-scheduler-cell"></th>
|
|
19191
19300
|
</tr>
|
|
19192
19301
|
}
|
|
19193
19302
|
</tbody>
|
|
@@ -19210,7 +19319,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19210
19319
|
<tr>
|
|
19211
19320
|
@for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
|
|
19212
19321
|
<th
|
|
19213
|
-
class="k-slot-cell k-scheduler-cell
|
|
19322
|
+
class="k-slot-cell k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
|
|
19214
19323
|
@if (!groupHeaderTemplateRef) {
|
|
19215
19324
|
{{ getField(item, resource.textField) }}
|
|
19216
19325
|
}
|
|
@@ -19225,7 +19334,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19225
19334
|
<tr class="k-scheduler-date-group">
|
|
19226
19335
|
@for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
|
|
19227
19336
|
@for (daySlot of daySlots; track itemIndex(index, daySlot); let index = $index) {
|
|
19228
|
-
<th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-
|
|
19337
|
+
<th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-slot-cell">
|
|
19229
19338
|
@if (!dateHeaderTemplateRef) {
|
|
19230
19339
|
<span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
|
|
19231
19340
|
}
|
|
@@ -19241,7 +19350,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19241
19350
|
@for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
|
|
19242
19351
|
@for (timeSlot of timeSlots; track itemIndex(index, timeSlot); let index = $index) {
|
|
19243
19352
|
@if (timeSlot.isMajor) {
|
|
19244
|
-
<th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell
|
|
19353
|
+
<th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell">
|
|
19245
19354
|
@if (!majorTimeHeaderTemplateRef) {
|
|
19246
19355
|
{{ timeSlot.start | kendoDate: 't' }}
|
|
19247
19356
|
}
|
|
@@ -19253,7 +19362,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19253
19362
|
@if (!timeSlot.isMajor && minorTimeHeaderTemplateRef) {
|
|
19254
19363
|
<th
|
|
19255
19364
|
[ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
|
|
19256
|
-
class="k-scheduler-cell
|
|
19365
|
+
class="k-scheduler-cell"
|
|
19257
19366
|
>
|
|
19258
19367
|
<ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
|
|
19259
19368
|
</ng-container>
|
|
@@ -19276,7 +19385,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19276
19385
|
<tbody>
|
|
19277
19386
|
@if (!verticalResources.length) {
|
|
19278
19387
|
<tr>
|
|
19279
|
-
<th rowspan="1" #titleCell class="k-scheduler-cell
|
|
19388
|
+
<th rowspan="1" #titleCell class="k-scheduler-cell">
|
|
19280
19389
|
{{ allEventsMessage }}
|
|
19281
19390
|
</th>
|
|
19282
19391
|
</tr>
|
|
@@ -19286,7 +19395,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
|
|
|
19286
19395
|
<tr #verticalResourceRows>
|
|
19287
19396
|
@for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
|
|
19288
19397
|
@if (verticalItem(leafIndex, resourceIndex)) {
|
|
19289
|
-
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell
|
|
19398
|
+
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell">
|
|
19290
19399
|
<div>
|
|
19291
19400
|
@if (!groupHeaderTemplateRef) {
|
|
19292
19401
|
{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
|
|
@@ -19424,13 +19533,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
19424
19533
|
<tr class="k-scheduler-head">
|
|
19425
19534
|
<td>
|
|
19426
19535
|
<div class="k-scheduler-times" #timesHeader>
|
|
19427
|
-
<table class="k-scheduler-table" aria-hidden="true">
|
|
19536
|
+
<table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
|
|
19428
19537
|
<tbody>
|
|
19429
|
-
<tr><th class="k-scheduler-cell
|
|
19430
|
-
<tr><th class="k-slot-cell k-scheduler-cell
|
|
19538
|
+
<tr><th class="k-scheduler-cell"></th></tr>
|
|
19539
|
+
<tr><th class="k-slot-cell k-scheduler-cell"></th></tr>
|
|
19431
19540
|
@for (resource of horizontalResources; track itemIndex($index, resource)) {
|
|
19432
19541
|
<tr>
|
|
19433
|
-
<th class="k-scheduler-cell
|
|
19542
|
+
<th class="k-scheduler-cell"></th>
|
|
19434
19543
|
</tr>
|
|
19435
19544
|
}
|
|
19436
19545
|
</tbody>
|
|
@@ -19453,7 +19562,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
19453
19562
|
<tr>
|
|
19454
19563
|
@for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
|
|
19455
19564
|
<th
|
|
19456
|
-
class="k-slot-cell k-scheduler-cell
|
|
19565
|
+
class="k-slot-cell k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
|
|
19457
19566
|
@if (!groupHeaderTemplateRef) {
|
|
19458
19567
|
{{ getField(item, resource.textField) }}
|
|
19459
19568
|
}
|
|
@@ -19468,7 +19577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
19468
19577
|
<tr class="k-scheduler-date-group">
|
|
19469
19578
|
@for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
|
|
19470
19579
|
@for (daySlot of daySlots; track itemIndex(index, daySlot); let index = $index) {
|
|
19471
|
-
<th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-
|
|
19580
|
+
<th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-slot-cell">
|
|
19472
19581
|
@if (!dateHeaderTemplateRef) {
|
|
19473
19582
|
<span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
|
|
19474
19583
|
}
|
|
@@ -19484,7 +19593,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
19484
19593
|
@for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
|
|
19485
19594
|
@for (timeSlot of timeSlots; track itemIndex(index, timeSlot); let index = $index) {
|
|
19486
19595
|
@if (timeSlot.isMajor) {
|
|
19487
|
-
<th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell
|
|
19596
|
+
<th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell">
|
|
19488
19597
|
@if (!majorTimeHeaderTemplateRef) {
|
|
19489
19598
|
{{ timeSlot.start | kendoDate: 't' }}
|
|
19490
19599
|
}
|
|
@@ -19496,7 +19605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
19496
19605
|
@if (!timeSlot.isMajor && minorTimeHeaderTemplateRef) {
|
|
19497
19606
|
<th
|
|
19498
19607
|
[ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
|
|
19499
|
-
class="k-scheduler-cell
|
|
19608
|
+
class="k-scheduler-cell"
|
|
19500
19609
|
>
|
|
19501
19610
|
<ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
|
|
19502
19611
|
</ng-container>
|
|
@@ -19519,7 +19628,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
19519
19628
|
<tbody>
|
|
19520
19629
|
@if (!verticalResources.length) {
|
|
19521
19630
|
<tr>
|
|
19522
|
-
<th rowspan="1" #titleCell class="k-scheduler-cell
|
|
19631
|
+
<th rowspan="1" #titleCell class="k-scheduler-cell">
|
|
19523
19632
|
{{ allEventsMessage }}
|
|
19524
19633
|
</th>
|
|
19525
19634
|
</tr>
|
|
@@ -19529,7 +19638,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
19529
19638
|
<tr #verticalResourceRows>
|
|
19530
19639
|
@for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
|
|
19531
19640
|
@if (verticalItem(leafIndex, resourceIndex)) {
|
|
19532
|
-
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell
|
|
19641
|
+
<th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell">
|
|
19533
19642
|
<div>
|
|
19534
19643
|
@if (!groupHeaderTemplateRef) {
|
|
19535
19644
|
{{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
|
|
@@ -19667,9 +19776,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
19667
19776
|
}], verticalResourceRows: [{
|
|
19668
19777
|
type: ViewChildren,
|
|
19669
19778
|
args: ['verticalResourceRows']
|
|
19670
|
-
}], headerTable: [{
|
|
19671
|
-
type: ViewChild,
|
|
19672
|
-
args: ['headerTable']
|
|
19673
19779
|
}] } });
|
|
19674
19780
|
|
|
19675
19781
|
/**
|
|
@@ -20276,16 +20382,16 @@ class YearViewInternalComponent extends BaseView {
|
|
|
20276
20382
|
tooltip;
|
|
20277
20383
|
get arrowIcons() {
|
|
20278
20384
|
return !this.localization.rtl
|
|
20279
|
-
? ['
|
|
20280
|
-
: ['
|
|
20385
|
+
? ['chevron-left', 'chevron-right']
|
|
20386
|
+
: ['chevron-right', 'chevron-left'];
|
|
20281
20387
|
}
|
|
20282
20388
|
get arrowSVGIcons() {
|
|
20283
20389
|
return !this.localization.rtl
|
|
20284
|
-
? [this.
|
|
20285
|
-
: [this.
|
|
20390
|
+
? [this.chevronLeftIcon, this.chevronRightIcon]
|
|
20391
|
+
: [this.chevronRightIcon, this.chevronLeftIcon];
|
|
20286
20392
|
}
|
|
20287
|
-
|
|
20288
|
-
|
|
20393
|
+
chevronLeftIcon = chevronLeftIcon;
|
|
20394
|
+
chevronRightIcon = chevronRightIcon;
|
|
20289
20395
|
eventsPerSelectedDay = [];
|
|
20290
20396
|
days = [];
|
|
20291
20397
|
focusedDate;
|
|
@@ -20590,7 +20696,7 @@ class YearViewInternalComponent extends BaseView {
|
|
|
20590
20696
|
</div>
|
|
20591
20697
|
}
|
|
20592
20698
|
</ng-template>
|
|
20593
|
-
`, isInline: true, dependencies: [{ kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "size", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "directive", type: TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "tooltipContentClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }, { kind: "directive", type: MonthCellTemplateDirective, selector: "[kendoCalendarMonthCellTemplate]" }, { 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"] }] });
|
|
20699
|
+
`, isInline: true, dependencies: [{ kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "size", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "directive", type: TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "themeColor", "tooltipContentClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }, { kind: "directive", type: MonthCellTemplateDirective, selector: "[kendoCalendarMonthCellTemplate]" }, { 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"] }] });
|
|
20594
20700
|
}
|
|
20595
20701
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: YearViewInternalComponent, decorators: [{
|
|
20596
20702
|
type: Component,
|
|
@@ -21562,7 +21668,7 @@ class ShortcutsDirective {
|
|
|
21562
21668
|
}
|
|
21563
21669
|
isInToolbarTemplate(element) {
|
|
21564
21670
|
const isInToolbar = element.closest('.k-scheduler-toolbar');
|
|
21565
|
-
const isInBuiltInElement = element.closest('
|
|
21671
|
+
const isInBuiltInElement = element.closest('[kendoschedulertoolbarnavigation]') ||
|
|
21566
21672
|
element.closest('.k-scheduler-views') ||
|
|
21567
21673
|
element.closest('.k-views-dropdown');
|
|
21568
21674
|
return isInToolbar && !isInBuiltInElement;
|