import { DragDropModule } from '@angular/cdk/drag-drop'; import { CommonModule } from '@angular/common'; import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; import { AdminClientSelectorComponent } from '@core/components/admin-client-selector/admin-client-selector.component'; import { PlatformWrapperComponent } from '@core/components/platform-wrapper/platform-wrapper.component'; import { SSOLogoutComponent } from '@core/components/sso-logout/sso-logout.component'; import { UnitsToDollarsPipe } from '@core/pipes/units-to-dollars.pipe'; import { AttachExternalEmailModalComponent } from '@features/attach-external-email/attach-external-email-modal/attach-external-email-modal.component'; import { ImpersonationLandingPageComponent } from '@features/impersonation/impersonation-landing-page/impersonation-landing-page.component'; import { TerminatedImpersonationPageComponent } from '@features/impersonation/terminated-impersonation-page/terminated-impersonation-page.component'; import { InKindItemsPopoverComponent } from '@features/in-kind/in-kind-items-popover/in-kind-items-popover.component'; import { PageHelpModalComponent } from '@features/page-help-modals/page-help-modal/page-help-modal.component'; import { ContactSupportModalComponent } from '@features/support/contact-support-modal/contact-support-modal.component'; import { YCCommonModule } from '@yourcause/common'; import { AnalyticsModule } from '@yourcause/common/analytics'; import { ButtonModule } from '@yourcause/common/buttons'; import { CoreFormsModule } from '@yourcause/common/core-forms'; import { DomModule } from '@yourcause/common/dom'; import { FeatureFlagEnabledPipe, FeatureManagementModule } from '@yourcause/common/feature-flag'; import { HTTP_REST_SERVICE } from '@yourcause/common/http'; import { I18nModule } from '@yourcause/common/i18n'; import { IconsModule } from '@yourcause/common/icons'; import { ModalsModule } from '@yourcause/common/modals'; import { SPINNER_SERVICE } from '@yourcause/common/spinner'; import { UtilsModule } from '@yourcause/common/utils'; import { DragulaDirective, DragulaModule } from 'ng2-dragula'; import { AccordionModule } from 'ngx-bootstrap/accordion'; import { CollapseModule } from 'ngx-bootstrap/collapse'; import { BsDatepickerModule } from 'ngx-bootstrap/datepicker'; import { BsDropdownModule } from 'ngx-bootstrap/dropdown'; import { ModalModule } from 'ngx-bootstrap/modal'; import { PopoverModule } from 'ngx-bootstrap/popover'; import { TabsModule } from 'ngx-bootstrap/tabs'; import { TimepickerModule } from 'ngx-bootstrap/timepicker'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { TypeaheadModule } from 'ngx-bootstrap/typeahead'; import { MomentModule } from 'ngx-moment'; import { AddressBlockComponent } from './components/address-block/address-block.component'; import { AddressRequestStatusDisplayComponent } from './components/address-request-status-display/address-request-status-display.component'; import { AmountCurrencyDisplayComponent } from './components/amount-currency-display/amount-currency-display.component'; import { AmountToggleComponent } from './components/amount-toggle/amount-toggle.component'; import { AppActionsDropdownComponent } from './components/app-actions-dropdown/app-actions-dropdown.component'; import { ApplicantBlockComponent } from './components/applicant-block/applicant-block.component'; import { ApplicantOrgDetailsBlockComponent } from './components/applicant-org-details-block/applicant-org-details-block.component'; import { ApplicantSearchResultComponent } from './components/applicant-search-result/applicant-search-result.component'; import { CollaborationModalComponent } from './components/collaboration-modal/collaboration-modal.component'; import { ComponentLimitMetModalComponent } from './components/component-limit-met-modal/component-limit-met-modal.component'; import { CopyLinkModalComponent } from './components/copy-link-modal/copy-link-modal.component'; import { CopyLinkComponent } from './components/copy-link/copy-link.component'; import { CsrConnectBreakdownComponent } from './components/csr-connect-breakdown/csr-connect-breakdown.component'; import { CsrConnectChartsComponent } from './components/csr-connect-charts/csr-connect-charts.component'; import { CsrConnectPanelComponent } from './components/csr-connect-panel/csr-connect-panel.component'; import { DownloadFilePageComponent } from './components/download-file-page/download-file-page.component'; import { DueDiligenceModalComponent } from './components/due-diligence-modal/due-diligence-modal.component'; import { EmailDisabledAlertComponent } from './components/email-disabled-alert/email-disabled-alert.component'; import { GcBrandingComponent } from './components/gc-branding/gc-branding.component'; import { GcWrapperApplicantComponent } from './components/gc-wrapper-applicant/gc-wrapper-applicant.component'; import { GcWrapperManagementComponent } from './components/gc-wrapper-management/gc-wrapper-management.component'; import { GrantDeadlineBlockComponent } from './components/grant-deadline-block/grant-deadline-block.component'; import { ManageCollaboratorsComponent } from './components/manage-collaborators/manage-collaborators.component'; import { NominationFormHeaderComponent } from './components/nomination-form-header/nomination-form-header.component'; import { ReleaseNotesModalComponent } from './components/release-notes-modal/release-notes-modal.component'; import { SearchAllOrgsModalComponent } from './components/search-all-orgs-modal/search-all-orgs-modal.component'; import { SearchApplicantAutocompleteComponent } from './components/search-applicant-autocomplete/search-applicant-autocomplete.component'; import { SearchNpoAutocompleteComponent } from './components/search-npo-autocomplete/search-npo-autocomplete.component'; import { SequenceModalComponent } from './components/sequence-modal/sequence-modal.component'; import { SpecialHandlingDisplayLineComponent } from './components/special-handling-display-line/special-handling-display-line.component'; import { SpecialHandlingModalComponent } from './components/special-handling-modal/special-handling-modal.component'; import { SSORedirectComponent } from './components/sso-redirect/sso-redirect.component'; import { TermsOfServiceModalComponent } from './components/terms-of-service/terms-of-service-modal.component'; import { ExportTranslationsModalComponent } from './components/translations/export-translations-modal/export-translations-modal.component'; import { TranslatePageComponent } from './components/translations/translate-page/translate-page.component'; import { TranslateRichTextModalComponent } from './components/translations/translate-rich-text-modal/translate-rich-text-modal.component'; import { UnsavedChangesModalComponent } from './components/unsaved-changes-modal/unsaved-changes-modal.component'; import { VettingRequirementsModalComponent } from './components/vetting-requirements-modal/vetting-requirements-modal.component'; import { HideForImpersonationDirective } from './directives/hide-for-impersonation.directive'; import { AddStaticResourceSASPipe } from './pipes/add-static-asset-sas.pipe'; import { ApplicationSlatActionsPipe } from './pipes/application-slat-actions.pipe'; import { ApplicationViewFormStatusPipe } from './pipes/application-view-form-status.pipe'; import { CanRemoveInKindItemPipe } from './pipes/can-remove-in-kind-item.pipe'; import { CanTakeActionPipe } from './pipes/can-take-action.pipe'; import { CheckboxNumberValuePipe } from './pipes/checkbox-number-value.pipe'; import { CommSubjectFromFileUploadPipe } from './pipes/comm-subject-from-file-upload.pipe'; import { DataSetCollectionDataPipe } from './pipes/data-set-collection-data.pipe'; import { DataSetCollectionLabelPipe } from './pipes/data-set-collection-label.pipe'; import { EmailMessageFromStringPipe } from './pipes/email-messages-from-string.pipe'; import { EmailNameFromTemplateIdPipe } from './pipes/email-name.pipe'; import { FormAvailabilityPipe } from './pipes/form-availability.pipe'; import { FormDueDatePipe } from './pipes/form-due-date.pipe'; import { FormStatusDatePipe } from './pipes/form-status-date.pipe'; import { FormTypeNamePipe } from './pipes/form-type-name.pipe'; import { FormsPassRevisionRequestCriteriaPipe } from './pipes/forms-pass-revision-request-criteria.pipe'; import { GetInvalidColumnHeaders } from './pipes/get-invalid-column-headers.pipe'; import { GetOrgIconPipe } from './pipes/get-org-icon.pipe'; import { OrgTabTextPipe } from './pipes/get-org-tab-text.pipe'; import { GrantsAddressPipe } from './pipes/grants-address.pipe'; import { InKindNumberOfUnitsPipe } from './pipes/in-kind-number-of-units.pipe'; import { InvalidColumnHeadersAlertMessage } from './pipes/invalid-column-headers-alert-message.pipe'; import { GcMoneyPipe } from './pipes/money.pipe'; import { ScheduledFormsHelpTextPipe } from './pipes/schleduled-forms-help-text.pipe'; import { SearchNppAddressPipe } from './pipes/search-npp-address.pipe'; import { ShowFormUpdateStatsPipe } from './pipes/show-form-update-stats.pipe'; import { ShowVettingAlertPipe } from './pipes/show-vetting-alert.pipe'; import { StartOfDayDateFormatterPipe } from './pipes/start-of-day-date-formatter.pipe'; import { TimeInTimeZonePipe } from './pipes/time-in-timezone.pipe'; import { ValidateRemoveFundingSourcePipe } from './pipes/validate-remove-funding-source.pipe'; import { VettingRequestAlertClassPipe } from './pipes/vetting-request-alert-class.pipe'; import { VettingRequestAlertHoverTextPipe } from './pipes/vetting-request-alert-hover-text.pipe'; import { VettingRequestAlertTextPipe } from './pipes/vetting-request-alert-text.pipe'; import { CacheBusterInterceptor } from './services/cache-buster.service'; import { HttpRestService } from './services/http-rest.service'; import { ModalTrackerService } from './services/modal-tracker.service'; import { SlotRoutingInterceptor } from './services/slot-routing.service'; import { SpinnerService } from './services/spinner.service'; import { TokenInterceptor } from './services/token/token-interceptor.service'; @NgModule({ imports: [ UtilsModule, CoreFormsModule, I18nModule, ButtonModule, IconsModule, AccordionModule, CollapseModule, BsDatepickerModule, BsDropdownModule, ModalModule, PopoverModule, TabsModule, TimepickerModule, TooltipModule, TypeaheadModule, DragDropModule, PopoverModule, CommonModule, YCCommonModule, HttpClientModule, RouterModule, MomentModule, TooltipModule, ReactiveFormsModule, FormsModule, AnalyticsModule, FeatureManagementModule, DragulaModule.forRoot(), ModalsModule, DomModule ], providers: [ { provide: HTTP_REST_SERVICE, useClass: HttpRestService }, { provide: SPINNER_SERVICE, useClass: SpinnerService }, { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: CacheBusterInterceptor, multi: true }, { provide: HTTP_INTERCEPTORS, useClass: SlotRoutingInterceptor, multi: true } ], declarations: [ AddStaticResourceSASPipe, HideForImpersonationDirective, ApplicationViewFormStatusPipe, ApplicationSlatActionsPipe, VettingRequestAlertTextPipe, ShowVettingAlertPipe, VettingRequestAlertClassPipe, VettingRequestAlertHoverTextPipe, FormTypeNamePipe, FormStatusDatePipe, DownloadFilePageComponent, FormAvailabilityPipe, EmailNameFromTemplateIdPipe, DataSetCollectionLabelPipe, DataSetCollectionDataPipe, CommSubjectFromFileUploadPipe, AdminClientSelectorComponent, PlatformWrapperComponent, ValidateRemoveFundingSourcePipe, FormsPassRevisionRequestCriteriaPipe, GrantDeadlineBlockComponent, ScheduledFormsHelpTextPipe, ShowFormUpdateStatsPipe, SSOLogoutComponent, SSORedirectComponent, ManageCollaboratorsComponent, AmountToggleComponent, CollaborationModalComponent, TranslatePageComponent, TranslateRichTextModalComponent, CsrConnectPanelComponent, CsrConnectChartsComponent, CsrConnectBreakdownComponent, GcBrandingComponent, GcWrapperManagementComponent, GcWrapperApplicantComponent, AddressBlockComponent, AmountCurrencyDisplayComponent, SearchNpoAutocompleteComponent, CanRemoveInKindItemPipe, EmailDisabledAlertComponent, SearchApplicantAutocompleteComponent, GetOrgIconPipe, CanTakeActionPipe, CheckboxNumberValuePipe, AppActionsDropdownComponent, GcMoneyPipe, UnitsToDollarsPipe, TimeInTimeZonePipe, ApplicantBlockComponent, ApplicantSearchResultComponent, TermsOfServiceModalComponent, VettingRequirementsModalComponent, SearchAllOrgsModalComponent, DueDiligenceModalComponent, ExportTranslationsModalComponent, InKindNumberOfUnitsPipe, InKindItemsPopoverComponent, ImpersonationLandingPageComponent, TerminatedImpersonationPageComponent, FormDueDatePipe, StartOfDayDateFormatterPipe, SpecialHandlingModalComponent, SpecialHandlingDisplayLineComponent, AddressRequestStatusDisplayComponent, ApplicantOrgDetailsBlockComponent, EmailMessageFromStringPipe, GrantsAddressPipe, NominationFormHeaderComponent, ComponentLimitMetModalComponent, SearchNppAddressPipe, UnsavedChangesModalComponent, GetInvalidColumnHeaders, InvalidColumnHeadersAlertMessage, AttachExternalEmailModalComponent, OrgTabTextPipe, CopyLinkModalComponent, CopyLinkComponent, SequenceModalComponent, ContactSupportModalComponent, ReleaseNotesModalComponent, PageHelpModalComponent ], exports: [ I18nModule, ButtonModule, IconsModule, CoreFormsModule, HideForImpersonationDirective, AddStaticResourceSASPipe, DragDropModule, DragulaModule, YCCommonModule, CommonModule, RouterModule, AnalyticsModule, FormsModule, MomentModule, AccordionModule, CollapseModule, BsDatepickerModule, BsDropdownModule, ModalModule, PopoverModule, TabsModule, TimepickerModule, TooltipModule, TypeaheadModule, ReactiveFormsModule, ApplicationViewFormStatusPipe, ApplicationSlatActionsPipe, VettingRequestAlertTextPipe, VettingRequestAlertClassPipe, ShowVettingAlertPipe, VettingRequestAlertHoverTextPipe, FormStatusDatePipe, FormTypeNamePipe, CanRemoveInKindItemPipe, FormAvailabilityPipe, EmailNameFromTemplateIdPipe, DataSetCollectionLabelPipe, CommSubjectFromFileUploadPipe, DataSetCollectionDataPipe, ScheduledFormsHelpTextPipe, ShowFormUpdateStatsPipe, ValidateRemoveFundingSourcePipe, UnitsToDollarsPipe, CanTakeActionPipe, TimeInTimeZonePipe, GetOrgIconPipe, GcMoneyPipe, InKindNumberOfUnitsPipe, FormDueDatePipe, StartOfDayDateFormatterPipe, GrantsAddressPipe, SearchNppAddressPipe, FormsPassRevisionRequestCriteriaPipe, DownloadFilePageComponent, AdminClientSelectorComponent, CheckboxNumberValuePipe, PlatformWrapperComponent, SSORedirectComponent, SSOLogoutComponent, AppActionsDropdownComponent, ManageCollaboratorsComponent, AmountToggleComponent, CsrConnectPanelComponent, CsrConnectChartsComponent, CsrConnectBreakdownComponent, EmailDisabledAlertComponent, GrantDeadlineBlockComponent, AmountCurrencyDisplayComponent, AddressBlockComponent, SearchNpoAutocompleteComponent, SearchApplicantAutocompleteComponent, ApplicantBlockComponent, ApplicantSearchResultComponent, SearchNpoAutocompleteComponent, TranslatePageComponent, TranslateRichTextModalComponent, TermsOfServiceModalComponent, SearchAllOrgsModalComponent, DueDiligenceModalComponent, ExportTranslationsModalComponent, InKindItemsPopoverComponent, ImpersonationLandingPageComponent, TerminatedImpersonationPageComponent, SpecialHandlingModalComponent, SpecialHandlingDisplayLineComponent, AddressRequestStatusDisplayComponent, EmailMessageFromStringPipe, ApplicantOrgDetailsBlockComponent, NominationFormHeaderComponent, ComponentLimitMetModalComponent, DragulaDirective, UnsavedChangesModalComponent, GetInvalidColumnHeaders, InvalidColumnHeadersAlertMessage, AttachExternalEmailModalComponent, FeatureFlagEnabledPipe, OrgTabTextPipe, CopyLinkModalComponent, CopyLinkComponent, ModalsModule, DomModule, SequenceModalComponent, ContactSupportModalComponent, ReleaseNotesModalComponent, PageHelpModalComponent ] }) export class GCCoreModule { constructor ( modalTracker: ModalTrackerService ) { modalTracker.startTracking(); } }