import { ModuleWithProviders, NgModule } from '@angular/core';
import { XdceArchModule } from '@isp/xdce-arch-core';
import { NbpModule } from '@isp/xdce-widget';

import { NbpBreadCrumbsComponent } from './widgetfideuram/components/nbp-bread-crumbs/nbp-bread-crumbs.component';
export { NbpBreadCrumbsComponent } from './widgetfideuram/components/nbp-bread-crumbs/nbp-bread-crumbs.component';
import { NbpFidBarChartComponent } from './widgetfideuram/components/nbp-fid-bar-chart/nbp-fid-bar-chart.component';
export { NbpFidBarChartComponent } from './widgetfideuram/components/nbp-fid-bar-chart/nbp-fid-bar-chart.component';
import { NbpFidButtonBarComponent } from './widgetfideuram/components/nbp-fid-button-bar/nbp-fid-button-bar.component';
export { NbpFidButtonBarComponent } from './widgetfideuram/components/nbp-fid-button-bar/nbp-fid-button-bar.component';
import { NbpFidDonutChartComponent } from './widgetfideuram/components/nbp-fid-donut-chart/nbp-fid-donut-chart.component';
export { NbpFidDonutChartComponent } from './widgetfideuram/components/nbp-fid-donut-chart/nbp-fid-donut-chart.component';
import { NbpFidPyramidChartComponent } from './widgetfideuram/components/nbp-fid-pyramid-chart/nbp-fid-pyramid-chart.component';
export { NbpFidPyramidChartComponent } from './widgetfideuram/components/nbp-fid-pyramid-chart/nbp-fid-pyramid-chart.component';
import { NbpFidSidePopupComponent } from './widgetfideuram/components/nbp-fid-side-popup/nbp-fid-side-popup.component';
export { NbpFidSidePopupComponent } from './widgetfideuram/components/nbp-fid-side-popup/nbp-fid-side-popup.component';
import { NbpFidTableComponent } from './widgetfideuram/components/nbp-fid-table/nbp-fid-table.component';
export { NbpFidTableComponent } from './widgetfideuram/components/nbp-fid-table/nbp-fid-table.component';
import { NbpFidToggleTabComponentA11Y } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.a11y';
export { NbpFidToggleTabComponentA11Y } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.a11y';
import { NbpFidToggleTabComponentNOA11Y } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.noa11y';
export { NbpFidToggleTabComponentNOA11Y } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component.noa11y';
import { NbpFidToggleTabComponent } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component';
export { NbpFidToggleTabComponent } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tab.component';
import { NbpFidToggleTabsetComponentA11Y } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.a11y';
export { NbpFidToggleTabsetComponentA11Y } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.a11y';
import { NbpFidToggleTabsetComponentNOA11Y } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.noa11y';
export { NbpFidToggleTabsetComponentNOA11Y } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component.noa11y';
import { NbpFidToggleTabsetComponent } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component';
export { NbpFidToggleTabsetComponent } from './widgetfideuram/components/nbp-fid-toggle-tabset/nbp-fid-toggle-tabset.component';
import { NbpFidComboComponent } from './widgetfideuram/components/nbp-fid-combo/nbp-fid-combo.component';
export { NbpFidComboComponent } from './widgetfideuram/components/nbp-fid-combo/nbp-fid-combo.component';

import { ShowcaseComponent } from './widgetfideuram/components/showcase/showcase.component';
export { ShowcaseComponent } from './widgetfideuram/components/showcase/showcase.component';
import { Showcase1Component } from './widgetfideuram/components/showcase/showcase1.component';
export { Showcase1Component } from './widgetfideuram/components/showcase/showcase1.component';
import { WidgetFideuramShowcaseComponent } from './widgetfideuram/components/widget-fideuram-showcase/widget-fideuram-showcase.component';
export { WidgetFideuramShowcaseComponent } from './widgetfideuram/components/widget-fideuram-showcase/widget-fideuram-showcase.component';

import { AgGridModule, AngularFrameworkComponentWrapper, AngularFrameworkOverrides } from 'ag-grid-angular';
import { FormsModule } from '@angular/forms';
export { AgGridModule } from 'ag-grid-angular';

export { DATE_STRING_FORMAT, formatDate, formatNumber, setSpinnerMessage, clearSpinnerMessage } from './widgetfideuram/Utils';


@NgModule({
  imports: [
    XdceArchModule,
    NbpModule,
    AgGridModule,
    FormsModule,
  ],
  declarations: [
    NbpBreadCrumbsComponent,
    NbpFidBarChartComponent,
    NbpFidButtonBarComponent,
    NbpFidComboComponent,
    NbpFidDonutChartComponent,
    NbpFidPyramidChartComponent,
    NbpFidSidePopupComponent,
    NbpFidTableComponent,
    NbpFidToggleTabComponentA11Y,
    NbpFidToggleTabComponentNOA11Y,
    NbpFidToggleTabComponent,
    NbpFidToggleTabsetComponentA11Y,
    NbpFidToggleTabsetComponentNOA11Y,
    NbpFidToggleTabsetComponent,
    ShowcaseComponent,
    Showcase1Component,
    WidgetFideuramShowcaseComponent,
  ],
  exports: [
    NbpBreadCrumbsComponent,
    NbpFidBarChartComponent,
    NbpFidButtonBarComponent,
    NbpFidComboComponent,
    NbpFidDonutChartComponent,
    NbpFidPyramidChartComponent,
    NbpFidSidePopupComponent,
    NbpFidTableComponent,
    NbpFidToggleTabComponentA11Y,
    NbpFidToggleTabComponentNOA11Y,
    NbpFidToggleTabComponent,
    NbpFidToggleTabsetComponentA11Y,
    NbpFidToggleTabsetComponentNOA11Y,
    NbpFidToggleTabsetComponent,
    ShowcaseComponent,
    Showcase1Component,
    WidgetFideuramShowcaseComponent,
    AgGridModule
  ],
  providers: [
    AngularFrameworkOverrides,
    AngularFrameworkComponentWrapper
  ],
  entryComponents: [
    NbpFidToggleTabComponentA11Y,
    NbpFidToggleTabComponentNOA11Y,
    NbpFidToggleTabsetComponentA11Y,
    NbpFidToggleTabsetComponentNOA11Y,
    NbpFidToggleTabComponent,
    NbpFidToggleTabsetComponent
  ]
})
export class XdceWidgetFideuramModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: XdceWidgetFideuramModule,
      providers: []
    };
  }
}
