import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { FlexLayoutModule } from '@angular/flex-layout';
import { TranslateModule } from '@ngx-translate/core';
import { MagBadgeStatusModule } from 'ng-stalk/badge-status';
import { NsCrudModule } from 'ng-stalk/crud';
import { MagDatetimeModule } from 'ng-stalk/datetime';
import { MagDefaultContentArea2Module } from 'ng-stalk/default-content-area2';
import { MagI18nEditField2Module } from 'ng-stalk/i18n-edit-field2';
import { MagI18nTextViewModule } from 'ng-stalk/i18n-text-view';
import { MagLangFieldModule } from 'ng-stalk/lang-field';
import { MagModalTemplateModule } from 'ng-stalk/modal-template';
import { MagPipeModule } from 'ng-stalk/core/pipe';
import { MagStatusModule } from 'ng-stalk/status';
import { NzAffixModule } from 'ng-zorro-antd/affix';
import { NzAlertModule } from 'ng-zorro-antd/alert';
import { NzAvatarModule } from 'ng-zorro-antd/avatar';
import { NzBadgeModule } from 'ng-zorro-antd/badge';
import { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
import { NzDescriptionsModule } from 'ng-zorro-antd/descriptions';
import { NzDividerModule } from 'ng-zorro-antd/divider';
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
import { NzEmptyModule } from "ng-zorro-antd/empty";
import { NzFormModule } from 'ng-zorro-antd/form';
import { NzGridModule } from 'ng-zorro-antd/grid';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { NzInputModule } from 'ng-zorro-antd/input';
import { NzLayoutModule } from 'ng-zorro-antd/layout';
import { NzMenuModule } from 'ng-zorro-antd/menu';
import { NzModalModule } from 'ng-zorro-antd/modal';
import { NzNotificationModule } from 'ng-zorro-antd/notification';
import { NzPageHeaderModule } from 'ng-zorro-antd/page-header';
import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
import { NzRadioModule } from 'ng-zorro-antd/radio';
import { NzResizableModule } from 'ng-zorro-antd/resizable';
import { NzSelectModule } from 'ng-zorro-antd/select';
import { NzSpaceModule } from 'ng-zorro-antd/space';
import { NzSwitchModule } from 'ng-zorro-antd/switch';
import { NzTableModule } from 'ng-zorro-antd/table';
import { NzTabsModule } from 'ng-zorro-antd/tabs';
import { NzTagModule } from 'ng-zorro-antd/tag';
import { NzToolTipModule } from "ng-zorro-antd/tooltip";
import { NzTransferModule } from 'ng-zorro-antd/transfer';
import { NzTreeModule } from 'ng-zorro-antd/tree';
import { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';
import { NzUploadModule } from 'ng-zorro-antd/upload';

import { <%= classify(pluralName) %>DialogSearchFormComponent } from './<%= dasherize(pluralName) %>-dialog-search-form/<%= dasherize(pluralName) %>-dialog-search-form.component';
import { PipeModule } from '../../pipe/pipe.module';
import {<%= classify(pluralName) %>DialogOpener} from './<%= dasherize(pluralName) %>-dialog-opener.service';
import {<%= classify(pluralName) %>DialogPageComponent} from './<%= dasherize(pluralName) %>-dialog-page/<%= dasherize(pluralName) %>-dialog-page.component';



@NgModule({
  imports: [
    // 공통 및 폼 지원
    CommonModule,
    FormsModule,
    NzFormModule,
    ReactiveFormsModule,
    TranslateModule,

    // 페이지 레이아웃 및 공통
    NsCrudModule,
    FlexLayoutModule,
    NzAffixModule,
    NzButtonModule,
    NzDescriptionsModule,
    NzDividerModule,
    NzGridModule,
    NzIconModule,
    NzModalModule,
    NzPageHeaderModule,
    NzResizableModule,
    NzSpaceModule,
    NzTableModule,
    NzToolTipModule,

    // 페이지 레이아웃: 체크박스, 키워드 필터링 지원
    NzCheckboxModule,
    NzInputModule,

    // 모달용
    MagModalTemplateModule,
    MagDefaultContentArea2Module,

    // app modules
    MagPipeModule,

    // Features
    MagBadgeStatusModule,
    MagDatetimeModule,
    MagStatusModule,
    NzDatePickerModule,
    NzRadioModule,
    NzSwitchModule,
    NzDescriptionsModule,
    NzSelectModule,
    NzGridModule,
    NzIconModule,
    NzDropDownModule,
    NzBadgeModule,
  ],
  declarations: [
    <%= classify(pluralName) %>DialogSearchFormComponent,
    <%= classify(pluralName) %>DialogPageComponent,
  ],
  exports: [
    <%= classify(pluralName) %>DialogPageComponent,
  ],
  entryComponents: [
    <%= classify(pluralName) %>DialogPageComponent,
  ],
  providers: [
    <%= classify(pluralName) %>DialogOpener,
  ]
})
export class <%= classify(pluralName) %>DialogModule { }
