@ngx-performance-ui/ui
Version:
Ngx Performance UI - UI
113 lines • 14.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { NgModule } from '@angular/core';
import { NgDatepickerModule } from 'ng2-datepicker';
import { CoreModule } from '@ngx-performance-ui/core';
import { NgxsModule } from '@ngxs/store';
import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';
import { AbstractInputComponent } from './abstracts/input-component';
import { AnnotationChartComponent } from './components/charts/annotation-chart.component';
import { AutocompleteComponent } from './components/autocomplete/autocomplete.component';
import { CheckboxComponent } from './components/input/checkbox.component';
import { GoogleChartComponent } from './components/google-chart/google-chart.component';
import { DatePickerComponent } from './components/datepicker/datepicker.component';
import { InputComponent } from './components/input/input.component';
import { ListboxComponent } from './components/listbox/listbox.component';
import { ModalComponent } from './components/modal/modal.component';
import { PaginationComponent } from './components/pagination/pagination.component';
import { PopoverComponent } from './components/popover/popover.component';
import { ProgressBarComponent } from './components/progress/progress-bar.component';
import { RadioComponent } from './components/input/radio.component';
import { SelectComponent } from './components/select/select.component';
import { SpinnerComponent } from './components/input/spinner.component';
import { TextAreaComponent } from './components/input/textarea.component';
import { ToasterComponent } from './components/toaster/toaster.component';
import { ToasterContainerComponent } from './components/toaster/toaster-container.component';
import { TooltipComponent } from './components/tooltip/tooltip.component';
import { DropdownDirective } from './directives/dropdown.directive';
import { PopoverDirective } from './directives/popover.directive';
import { TooltipDirective } from './directives/tooltip.directive';
import { ToasterState } from './states/toaster.state';
// Icons
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { library } from '@fortawesome/fontawesome-svg-core';
import { faCalendarDay, faInfoCircle, faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';
import { NgxSlickJsModule } from 'ngx-slickjs';
library.add(faCalendarDay, faInfoCircle, faSearch, faTimes);
export class UiModule {
}
UiModule.decorators = [
{ type: NgModule, args: [{
imports: [
CoreModule,
CoreModule,
FontAwesomeModule,
NgDatepickerModule,
NgxsModule.forFeature([ToasterState]),
PerfectScrollbarModule,
],
declarations: [
// abstracts
AbstractInputComponent,
// charts
AnnotationChartComponent,
// components
AutocompleteComponent,
CheckboxComponent,
GoogleChartComponent,
DatePickerComponent,
InputComponent,
ListboxComponent,
ModalComponent,
PaginationComponent,
PopoverComponent,
ProgressBarComponent,
RadioComponent,
SelectComponent,
SpinnerComponent,
TextAreaComponent,
ToasterComponent,
ToasterContainerComponent,
TooltipComponent,
// Directives
DropdownDirective,
PopoverDirective,
TooltipDirective,
],
entryComponents: [ToasterComponent, PopoverComponent, TooltipComponent],
exports: [
// modules
FontAwesomeModule,
NgDatepickerModule,
NgxSlickJsModule,
PerfectScrollbarModule,
// charts
AnnotationChartComponent,
// components
AutocompleteComponent,
CheckboxComponent,
GoogleChartComponent,
DatePickerComponent,
InputComponent,
ListboxComponent,
ModalComponent,
PaginationComponent,
PopoverComponent,
ProgressBarComponent,
RadioComponent,
SelectComponent,
SpinnerComponent,
TextAreaComponent,
ToasterComponent,
ToasterContainerComponent,
TooltipComponent,
// Directives
DropdownDirective,
PopoverDirective,
TooltipDirective,
],
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neC1wZXJmb3JtYW5jZS11aS91aS8iLCJzb3VyY2VzIjpbImxpYi91aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVB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J0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnbmcyLWRhdGVwaWNrZXInO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtcGVyZm9ybWFuY2UtdWkvY29yZSc7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgUGVyZmVjdFNjcm9sbGJhck1vZHVsZSB9IGZyb20gJ25neC1wZXJmZWN0LXNjcm9sbGJhcic7XG5pbXBvcnQgeyBBYnN0cmFjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdHMvaW5wdXQtY29tcG9uZW50JztcbmltcG9ydCB7IEFubm90YXRpb25DaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGFydHMvYW5ub3RhdGlvbi1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb29nbGVDaGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9nb29nbGUtY2hhcnQvZ29vZ2xlLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IExpc3Rib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGlzdGJveC9saXN0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9ncmVzcy9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2lucHV0L3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC90ZXh0YXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9hc3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b2FzdGVyL3RvYXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0ZXJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9hc3Rlci90b2FzdGVyLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Ryb3Bkb3duLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvcG92ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9hc3RlclN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvdG9hc3Rlci5zdGF0ZSc7XG5cbi8vIEljb25zXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IGxpYnJhcnkgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnO1xuaW1wb3J0IHsgZmFDYWxlbmRhckRheSwgZmFJbmZvQ2lyY2xlLCBmYVNlYXJjaCwgZmFUaW1lcyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBOZ3hTbGlja0pzTW9kdWxlIH0gZnJvbSAnbmd4LXNsaWNranMnO1xubGlicmFyeS5hZGQoZmFDYWxlbmRhckRheSwgZmFJbmZvQ2lyY2xlLCBmYVNlYXJjaCwgZmFUaW1lcyk7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb3JlTW9kdWxlLFxuICAgIENvcmVNb2R1bGUsXG4gICAgRm9udEF3ZXNvbWVNb2R1bGUsXG4gICAgTmdEYXRlcGlja2VyTW9kdWxlLFxuICAgIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbVG9hc3RlclN0YXRlXSksXG4gICAgUGVyZmVjdFNjcm9sbGJhck1vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLy8gYWJzdHJhY3RzXG4gICAgQWJzdHJhY3RJbnB1dENvbXBvbmVudCxcblxuICAgIC8vIGNoYXJ0c1xuICAgIEFubm90YXRpb25DaGFydENvbXBvbmVudCxcblxuICAgIC8vIGNvbXBvbmVudHNcbiAgICBBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXG4gICAgR29vZ2xlQ2hhcnRDb21wb25lbnQsXG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBMaXN0Ym94Q29tcG9uZW50LFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIFBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICBUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxuICAgIFRvYXN0ZXJDb250YWluZXJDb21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcblxuICAgIC8vIERpcmVjdGl2ZXNcbiAgICBEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICBQb3BvdmVyRGlyZWN0aXZlLFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1RvYXN0ZXJDb21wb25lbnQsIFBvcG92ZXJDb21wb25lbnQsIFRvb2x0aXBDb21wb25lbnRdLFxuICBleHBvcnRzOiBbXG4gICAgLy8gbW9kdWxlc1xuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxuICAgIE5nRGF0ZXBpY2tlck1vZHVsZSxcbiAgICBOZ3hTbGlja0pzTW9kdWxlLFxuICAgIFBlcmZlY3RTY3JvbGxiYXJNb2R1bGUsXG5cbiAgICAvLyBjaGFydHNcbiAgICBBbm5vdGF0aW9uQ2hhcnRDb21wb25lbnQsXG5cbiAgICAvLyBjb21wb25lbnRzXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIEdvb2dsZUNoYXJ0Q29tcG9uZW50LFxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgTGlzdGJveENvbXBvbmVudCxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgUmFkaW9Db21wb25lbnQsXG4gICAgU2VsZWN0Q29tcG9uZW50LFxuICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXG4gICAgVG9hc3RlckNvbXBvbmVudCxcbiAgICBUb2FzdGVyQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIFRvb2x0aXBDb21wb25lbnQsXG5cbiAgICAvLyBEaXJlY3RpdmVzXG4gICAgRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgUG9wb3ZlckRpcmVjdGl2ZSxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBVaU1vZHVsZSB7fVxuIl19