/**
 * @license
 * Copyright Endlessjs. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { NgModule } from '@angular/core';
import { DatePipe } from '@angular/common';
import { ElSharedModule } from '../shared/shared.module';
import { ElButtonModule } from '../button/button.module';
import { ElIconModule } from '../icon/icon.module';
import { ElCalendarMonthModelService } from './services/calendar-month-model.service';
import { ElDateService } from './services/date.service';
import { ElCalendarDayCellComponent } from './components/calendar-day-picker/calendar-day-cell.component';
import { ElCalendarDayPickerComponent } from './components/calendar-day-picker/calendar-day-picker.component';
import { ElCalendarDaysNamesComponent } from './components/calendar-days-names/calendar-days-names.component';
import { ElCalendarHeaderComponent } from './components/calendar-header/calendar-header.component';
import { ElCalendarMonthCellComponent } from './components/calendar-month-picker/calendar-month-cell.component';
import { ElCalendarMonthPickerComponent } from './components/calendar-month-picker/calendar-month-picker.component';
import { ElCalendarNavigationComponent } from './components/calendar-navigation/calendar-navigation.component';
import { ElCalendarPageableNavigationComponent, } from './components/calendar-navigation/calendar-pageable-navigation.component';
import { ElCalendarPickerComponent } from './components/calendar-picker/calendar-picker.component';
import { ElCalendarPickerRowComponent } from './components/calendar-picker/calendar-picker-row.component';
import { ElCalendarYearCellComponent } from './components/calendar-year-picker/calendar-year-cell.component';
import { ElCalendarYearPickerComponent } from './components/calendar-year-picker/calendar-year-picker.component';
import { ElCalendarWeekNumberComponent } from './components/calendar-week-number/el-calendar-week-number.component';
import { ElNativeDateService } from './services/native-date.service';
const SERVICES = [
    { provide: ElDateService, useClass: ElNativeDateService },
    DatePipe,
    ElCalendarMonthModelService,
];
const COMPONENTS = [
    ElCalendarHeaderComponent,
    ElCalendarNavigationComponent,
    ElCalendarPageableNavigationComponent,
    ElCalendarDaysNamesComponent,
    ElCalendarYearPickerComponent,
    ElCalendarMonthPickerComponent,
    ElCalendarDayPickerComponent,
    ElCalendarDayCellComponent,
    ElCalendarMonthCellComponent,
    ElCalendarYearCellComponent,
    ElCalendarPickerRowComponent,
    ElCalendarPickerComponent,
    ElCalendarWeekNumberComponent,
];
/**
 * `ElCalendarKitModule` is a module that contains multiple useful components for building custom calendars.
 * So if you think our calendars is not enough powerful for you just use calendar-kit and build your own calendar!
 *
 * Available components:
 * - `ElCalendarDayPicker`
 * - `ElCalendarDayCell`
 * - `ElCalendarMonthPicker`
 * - `ElCalendarMonthCell`
 * - `ElCalendarYearPicker`
 * - `ElCalendarYearCell`
 * - `ElCalendarHeader`
 * - `ElCalendarNavigation`
 * - `ElCalendarPageableNavigation`
 *
 * For example you can easily build full calendar:
 * @stacked-example(Full calendar, calendar-kit/calendar-kit-full-calendar.component)
 * */
let ElCalendarKitModule = class ElCalendarKitModule {
};
ElCalendarKitModule = __decorate([
    NgModule({
        imports: [ElSharedModule, ElButtonModule, ElIconModule],
        exports: [...COMPONENTS],
        declarations: [...COMPONENTS],
        providers: [...SERVICES],
        entryComponents: [
            ElCalendarDayCellComponent,
            ElCalendarMonthCellComponent,
            ElCalendarYearCellComponent,
        ],
    })
], ElCalendarKitModule);
export { ElCalendarKitModule };
//# sourceMappingURL=calendar-kit.module.js.map