@progress/kendo-angular-scheduler
Version:
Kendo UI Scheduler Angular - Outlook or Google-style angular scheduler calendar. Full-featured and customizable embedded scheduling from the creator developers trust for professional UI components.
103 lines (102 loc) • 5.47 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Component, ViewChildren, QueryList } from '@angular/core';
import { RecurrenceService } from './recurrence.service';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { Button, ButtonComponent, ButtonGroupComponent } from '@progress/kendo-angular-buttons';
import { NgFor } from '@angular/common';
import { LabelComponent } from '@progress/kendo-angular-label';
import * as i0 from "@angular/core";
import * as i1 from "./recurrence.service";
import * as i2 from "@progress/kendo-angular-l10n";
/**
* @hidden
*/
export class RecurrenceFrequencyEditorComponent {
recurrence;
localization;
weekDayButtons;
frequencies;
constructor(recurrence, localization) {
this.recurrence = recurrence;
this.localization = localization;
}
ngOnInit() {
this.frequencies = this.recurrence.frequencies;
}
get selected() {
return this.recurrence.frequency;
}
onClick(newFreq) {
if (newFreq.value !== this.selected) {
this.recurrence.setFrequency(newFreq.value);
}
}
textFor(key) {
return this.localization.get(key);
}
onFrequencyClick() {
const selected = this.weekDayButtons.toArray().find(r => r.selected);
if (selected) {
selected.focus();
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecurrenceFrequencyEditorComponent, deps: [{ token: i1.RecurrenceService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RecurrenceFrequencyEditorComponent, isStandalone: true, selector: "kendo-recurrence-frequency-editor", viewQueries: [{ propertyName: "weekDayButtons", predicate: Button, descendants: true }], ngImport: i0, template: `
<div class='k-form-field'>
<kendo-label
[text]="textFor('repeat')"
(click)="onFrequencyClick()"
labelCssClass="k-form-label"
></kendo-label>
<div class="k-form-field-wrap">
<kendo-buttongroup
class="k-scheduler-recurrence-repeat k-button-group-solid"
width="100%"
selection="single"
>
<button *ngFor='let freq of frequencies' kendoButton
[togglable]="true"
[selected]="freq.value === selected"
(click)="onClick(freq)"
>{{ freq.text }}</button>
</kendo-buttongroup>
</div>
</div>
`, 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: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RecurrenceFrequencyEditorComponent, decorators: [{
type: Component,
args: [{
selector: 'kendo-recurrence-frequency-editor',
template: `
<div class='k-form-field'>
<kendo-label
[text]="textFor('repeat')"
(click)="onFrequencyClick()"
labelCssClass="k-form-label"
></kendo-label>
<div class="k-form-field-wrap">
<kendo-buttongroup
class="k-scheduler-recurrence-repeat k-button-group-solid"
width="100%"
selection="single"
>
<button *ngFor='let freq of frequencies' kendoButton
[togglable]="true"
[selected]="freq.value === selected"
(click)="onClick(freq)"
>{{ freq.text }}</button>
</kendo-buttongroup>
</div>
</div>
`,
standalone: true,
imports: [LabelComponent, ButtonGroupComponent, NgFor, ButtonComponent]
}]
}], ctorParameters: function () { return [{ type: i1.RecurrenceService }, { type: i2.LocalizationService }]; }, propDecorators: { weekDayButtons: [{
type: ViewChildren,
args: [Button]
}] } });