Your browser does not support SVG

File

src/lib/module.ts

import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule, TitleCasePipe } from '@angular/common';
import { RouterModule } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { InfiniteScrollModule } from 'ngx-infinite-scroll';

// Componentes
import { PlexAppComponent } from './app/app.component';
import { PlexBoxComponent } from './box/box.component';
import { PlexTextComponent } from './text/text.component';
import { PlexIntComponent } from './int/int.component';
import { PlexFloatComponent } from './float/float.component';
import { PlexButtonComponent } from './button/button.component';
import { PlexTableComponent } from './table/table.component';
import { PlexTabsComponent } from './tabs/tabs.component';
import { PlexTabComponent } from './tabs/tab.component';
import { PlexAccordionComponent } from './accordion/accordion.component';
import { PlexPanelComponent } from './accordion/panel.component';
import { PlexBoolComponent } from './bool/bool.component';
import { PlexRadioComponent } from './radio/radio.component';
import { PlexSelectComponent } from './select/select.component';
import { PlexDateTimeComponent } from './datetime/datetime.component';
import { PlexLoaderComponent } from './loader/loader.component';
import { PlexRibbonComponent } from './ribbon/ribbon.component';
import { PlexScrollComponent } from './scroll/scroll.component';
import { PlexRipplesDirective } from './ripples/ripples.directive';
import { ValidationMessagesComponent } from './validation-messages/validation-messages.component';
import { PlexPhoneComponent } from './phone/phone.component';
import { PlexDropdownComponent } from './dropdown/dropdown.component';
import { TooltipComponent } from './tooltip/tooltip.component';
import { TooltipContentComponent } from './tooltip/tooltip-content.component';
import { PlexIconComponent } from './icon/icon.component';
import { PlexBadgeComponent } from './badge/badge.component';
import { PlexLayoutComponent } from './layout/layout.component';
import { PlexFooterComponent } from './layout/footer.component';
import { PlexLayoutMainComponent } from './layout/main.component';
import { PlexLayoutSidebarComponent } from './layout/sidebar.component';
import { PlexListComponent } from './item-list/list.component';
import { PlexItemComponent } from './item-list/item.component';
import { PlexLabelComponent } from './label/label.component';
import { PlexHeadingComponent } from './item-list/heading.component';
import { PlexTitleComponent } from './title/title.component';
import { PlexHelpComponent } from './help/help.component';
import { PlexModalComponent } from './modal/modal.component';
import { PlexModalTitleComponent } from './modal/modal-title.component';
import { PlexCopyComponent } from './copy/copy.component';
import { PlexDetailComponent } from './detail/detail.component';
import { PlexOptionsComponent } from './options/options.component';
import { PlexVisualizadorComponent } from './visualizador/visualizador.component';
import { PlexWrapperComponent } from './wrapper/wrapper.component';
import { PlexGridComponent } from './grid/grid.component';
import { PlexCardComponent } from './card/card.component';
import { PlexSliderComponent } from './slider/slider.component';

// Directivas
import { AlignDirective } from './directives/align.directive';
import { PlexWizardDirective } from './wizard/wizard.directive';
import { GrowDirective } from './directives/grow.directive';
import { JustifyDirective } from './directives/justify.directive';
import { PreviewDirective } from './visualizador/preview.directive';
import { ResponsiveDirective } from './directives/responsive.directive';
import { SpanDirective } from './directives/span.directive';
import { CaseDirective } from './directives/case.directive';

// Third party
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatRadioModule, MatRadioButton } from '@angular/material/radio';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatTooltipModule, MatTooltip } from '@angular/material/tooltip';
import 'hammerjs';
import * as configMoment from './core/configMoment.function';
import { SimpleNotificationsModule } from './toast/simple-notifications.module';
import { ChartsModule } from 'ng2-charts';
import { QuillModule } from 'ngx-quill';
import { NavItemComponent } from './app/nav-item.component';
import { HintComponent } from './hint/hint.component';
import { HintDirective } from './hint/hint.directive';
import { HelpDirective } from './help/help.directive';
import { TabDirective } from './tabs/pl-tab.directive';
import { Plex } from './core/service';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { NetworkLoadingInterceptor, NETWORK_LOADING } from './core/network-loading.service';
import { MobileDirective } from './directives/mobile.directive';
import { PlexTableColumnsComponent } from './table/table-column-dropdown.component';
import { PlexTableColDirective } from './table/display-column.directive';
import { PlexTableSortPipe } from './table/table-sort.pipe';
import { PlexColumnDirective } from './table/columns.directive';
import { AccordionDirective } from './accordion/pl-accordion.directive';
import { PlexVisualizadorService } from './core/plex-visualizador.service';

@NgModule({
    imports: [
        CommonModule,
        RouterModule,
        FormsModule,
        MatSlideToggleModule,
        MatCheckboxModule,
        MatRadioModule,
        MatTooltipModule,
        ChartsModule,
        QuillModule,
        InfiniteScrollModule,
        SimpleNotificationsModule.forRoot(),
    ],
    declarations: [
        PlexAppComponent,
        PlexBoxComponent,
        PlexTextComponent,
        PlexIntComponent,
        PlexFloatComponent,
        PlexButtonComponent,
        PlexTableComponent,
        PlexTabsComponent,
        PlexAccordionComponent,
        PlexPanelComponent,
        PlexTabComponent,
        PlexBoolComponent,
        PlexRadioComponent,
        PlexSelectComponent,
        PlexDateTimeComponent,
        PlexLoaderComponent,
        PlexRibbonComponent,
        PlexScrollComponent,
        PlexPhoneComponent,
        PlexDropdownComponent,
        PlexIconComponent,
        PlexBadgeComponent,
        PlexLayoutComponent,
        PlexFooterComponent,
        PlexLayoutMainComponent,
        PlexLayoutSidebarComponent,
        PlexListComponent,
        PlexItemComponent,
        PlexLabelComponent,
        PlexHeadingComponent,
        PlexTitleComponent,
        TooltipComponent,
        PlexHelpComponent,
        PlexModalComponent,
        PlexModalTitleComponent,
        PlexCopyComponent,
        PlexDetailComponent,
        PlexOptionsComponent,
        PlexVisualizadorComponent,
        NavItemComponent,
        PlexWrapperComponent,
        PlexGridComponent,
        PlexCardComponent,
        PlexTableColumnsComponent,
        PlexTableColDirective,
        PlexTableSortPipe,
        PlexColumnDirective,
        PlexSliderComponent,

        // Directivas
        AlignDirective,
        GrowDirective,
        HelpDirective,
        HintDirective,
        JustifyDirective,
        PreviewDirective,
        PlexRipplesDirective,
        PlexWizardDirective,
        ResponsiveDirective,
        SpanDirective,
        CaseDirective,
        TabDirective,
        TooltipContentComponent,
        HintComponent,
        MobileDirective,
        AccordionDirective,

        // EXTRAS - NO CORRER DE ACA
        ValidationMessagesComponent,
        TooltipContentComponent,
        HintComponent,
    ],
    entryComponents: [
        TooltipContentComponent,
        MatRadioButton,
        PlexVisualizadorComponent,
        HintComponent
    ],
    exports: [
        TooltipContentComponent,
        PlexAppComponent,
        PlexBoxComponent,
        PlexTextComponent,
        PlexIntComponent,
        PlexFloatComponent,
        PlexButtonComponent,
        PlexTabsComponent,
        PlexAccordionComponent,
        PlexPanelComponent,
        PlexTableComponent,
        PlexTabComponent,
        PlexBoolComponent,
        PlexRadioComponent,
        PlexSelectComponent,
        PlexDateTimeComponent,
        PlexLoaderComponent,
        PlexRibbonComponent,
        PlexScrollComponent,
        PlexPhoneComponent,
        PlexDropdownComponent,
        PlexIconComponent,
        PlexBadgeComponent,
        PlexLayoutComponent,
        PlexFooterComponent,
        PlexLayoutMainComponent,
        PlexLayoutSidebarComponent,
        PlexListComponent,
        PlexItemComponent,
        PlexLabelComponent,
        PlexHeadingComponent,
        PlexTitleComponent,
        TooltipComponent,
        PlexHelpComponent,
        PlexModalComponent,
        PlexModalTitleComponent,
        PlexCopyComponent,
        PlexDetailComponent,
        PlexOptionsComponent,
        PlexVisualizadorComponent,
        NavItemComponent,
        PlexWrapperComponent,
        PlexGridComponent,
        PlexCardComponent,
        PlexTableColumnsComponent,
        PlexTableSortPipe,
        PlexSliderComponent,

        // Directivas
        AlignDirective,
        GrowDirective,
        HelpDirective,
        HintDirective,
        JustifyDirective,
        CaseDirective,
        PreviewDirective,
        PlexRipplesDirective,
        PlexWizardDirective,
        ResponsiveDirective,
        SpanDirective,
        TabDirective,
        MatTooltip,
        MobileDirective,
        PlexTableColDirective,
        PlexColumnDirective,
        AccordionDirective
    ],
    providers: [
        TitleCasePipe,
    ]

})
export class PlexModule {

    constructor() {
        configMoment.configureLocale();
    }


    static forRoot({ networkLoading }: PlexModuleConfig): ModuleWithProviders<any> {
        return {
            ngModule: PlexModule,
            providers: [
                Plex,
                PlexVisualizadorService,
                {
                    provide: NETWORK_LOADING,
                    useValue: networkLoading
                },
                {
                    provide: HTTP_INTERCEPTORS,
                    useClass: NetworkLoadingInterceptor,
                    multi: true,
                }
            ]
        };
    }
}

export interface PlexModuleConfig {
    networkLoading?: boolean;
}

results matching ""

    No results matching ""