diff --git a/angular.json b/angular.json index 30a9fbf..de73811 100644 --- a/angular.json +++ b/angular.json @@ -54,12 +54,12 @@ "sourceMap": false, "namedChunks": false, "extractLicenses": true, - "vendorChunk": false, + "vendorChunk": true, "buildOptimizer": true, "budgets": [ { "type": "initial", - "maximumWarning": "3mb", + "maximumWarning": "2mb", "maximumError": "5mb" }, { @@ -84,12 +84,12 @@ "sourceMap": false, "namedChunks": false, "extractLicenses": true, - "vendorChunk": false, + "vendorChunk": true, "buildOptimizer": true, "budgets": [ { "type": "initial", - "maximumWarning": "3mb", + "maximumWarning": "2mb", "maximumError": "5mb" }, { diff --git a/src/app/dashboard-module/dashboard.module.ts b/src/app/dashboard-module/dashboard.module.ts index d037597..2bcec55 100644 --- a/src/app/dashboard-module/dashboard.module.ts +++ b/src/app/dashboard-module/dashboard.module.ts @@ -1,22 +1,11 @@ import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; import { DashboardRoutingModule } from './dashboard.routing'; -import { AppMaterialModule } from '../shared/app-material.module'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { ToasterModule } from '../_helpers/toaster/toaster.module'; import { DomainRouteService } from '../services/domain-route.service'; @NgModule({ imports: [ - FormsModule, - CommonModule, - NgbModule, - ReactiveFormsModule, DashboardRoutingModule, - AppMaterialModule, - ToasterModule ], providers: [ DomainRouteService diff --git a/src/app/dashboard-module/domain-module/domain.module.ts b/src/app/dashboard-module/domain-module/domain.module.ts index b67abe0..0f13fc1 100644 --- a/src/app/dashboard-module/domain-module/domain.module.ts +++ b/src/app/dashboard-module/domain-module/domain.module.ts @@ -1,95 +1,17 @@ import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { DomainComponent } from './domain/domain.component'; import { DomainRoutingModule } from './domain.routing'; -import { DomainDetailComponent } from './domain-detail/domain-detail.component'; -import { ChangelogComponent } from './changelog/changelog.component'; -import { ComponentsComponent, ComponentEditDialogComponent } from './components/components.component'; -import { EnvironmentsComponent } from './environments/environments.component'; -import { GroupListComponent } from './group/group-list/group-list.component'; -import { GroupPreviewComponent } from './group/group-preview/group-preview.component'; -import { GroupDetailComponent } from './group/group-detail/group-detail.component'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { ClipboardModule } from '@angular/cdk/clipboard'; -import { ConfigListComponent } from './config/config-list/config-list.component'; -import { ConfigPreviewComponent } from './config/config-preview/config-preview.component'; -import { ConfigDetailComponent } from './config/config-detail/config-detail.component'; -import { StrategyDetailComponent, ChangeLogDialogComponent } from './config/strategy-detail/strategy-detail.component'; -import { StrategyListComponent } from './config/strategy-list/strategy-list.component'; -import { EnvironmentConfigComponent } from './environment-config/environment-config.component'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { GroupCreateComponent } from './group/group-create/group-create.component'; -import { ConfigCreateComponent } from './config/config-create/config-create.component'; -import { ToasterModule } from 'src/app/_helpers/toaster/toaster.module'; -import { NgbdModalConfirmComponent } from 'src/app/_helpers/confirmation-dialog'; -import { StrategyCreateComponent } from './config/strategy-create/strategy-create.component'; -import { StrategyCloneComponent } from './config/strategy-clone/strategy-clone.component'; -import { BaseChartDirective } from '../../../libs/ng2-charts/src/lib/base-chart.directive'; -import { DomainSnapshotComponent } from './domain/domain-snapshot/domain-snapshot.component'; -import { TeamInviteDialogComponent } from './team-module/team-invite-dialog/team-invite-dialog.component'; import { DomainRouteService } from 'src/app/services/domain-route.service'; -import { DomainTransferDialogComponent } from './domain/domain-transfer/domain-transfer-dialog.component'; -import { MetricModule } from './metric-module/metric.module'; -import { SpecialCharacterDirective } from './common/special.char.directive'; -import { AppMaterialModule } from 'src/app/shared/app-material.module'; -import { RelayDetailComponent, RelayVerificationDialogComponent } from './config/relay-detail/relay-detail.component'; -import { ExtSlackComponent } from './ext-slack/ext-slack.component'; -import { SlackSettingsComponent } from './ext-slack/slack-settings/slack-settings.component'; -import { ExtGitOpsComponent } from './ext-gitops/ext-gitops.component'; -import { GitOpsEnvSelectionComponent } from './ext-gitops/gitops-env-selection/gitops-env-selection.component'; -import { GitOpsUpdateTokensComponent } from './ext-gitops/gitops-update-tokens/gitops-update-tokens.component'; -import { BlockUIComponent } from 'src/app/shared/block-ui/block-ui.component'; +import { DatePipe } from '@angular/common'; @NgModule({ imports: [ - BlockUIComponent, - FormsModule, - ReactiveFormsModule, - NgbModule, - CommonModule, - ClipboardModule, - DomainRoutingModule, - AppMaterialModule, - ToasterModule, - BaseChartDirective, - MetricModule, - DomainComponent, - DomainDetailComponent, - ChangelogComponent, - ComponentsComponent, - EnvironmentsComponent, - GroupListComponent, - GroupPreviewComponent, - GroupDetailComponent, - ConfigListComponent, - ConfigPreviewComponent, - ConfigDetailComponent, - RelayDetailComponent, - StrategyDetailComponent, - StrategyListComponent, - EnvironmentConfigComponent, - GroupCreateComponent, - ConfigCreateComponent, - NgbdModalConfirmComponent, - StrategyCreateComponent, - StrategyCloneComponent, - ComponentEditDialogComponent, - TeamInviteDialogComponent, - ChangeLogDialogComponent, - RelayVerificationDialogComponent, - DomainSnapshotComponent, - DomainTransferDialogComponent, - SpecialCharacterDirective, - ExtSlackComponent, - SlackSettingsComponent, - ExtGitOpsComponent, - GitOpsEnvSelectionComponent, - GitOpsUpdateTokensComponent + DomainRoutingModule ], providers: [ - DomainRouteService + DomainRouteService, + DatePipe ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) diff --git a/src/app/dashboard-module/domain-module/metric-module/metric.module.ts b/src/app/dashboard-module/domain-module/metric-module/metric.module.ts index bb8ee16..1446137 100644 --- a/src/app/dashboard-module/domain-module/metric-module/metric.module.ts +++ b/src/app/dashboard-module/domain-module/metric-module/metric.module.ts @@ -1,39 +1,9 @@ import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { MetricComponent } from './metric/metric.component'; -import { MetricStatisticsComponent, SwitcherDataStatsDialogComponent } from './metric-statistics/metric-statistics.component'; -import { MetricDataComponent } from './metric-data/metric-data.component'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { BaseChartDirective } from '../../../../libs/ng2-charts/src/lib/base-chart.directive'; import { MetricRoutingModule } from './metric.routing'; -import { MetricFilterComponent } from './metric-filter/metric-filter.component'; -import { Metric } from 'src/app/model/metric'; -import { ElementAutocompleteComponent } from '../common/element-autocomplete/element-autocomplete.component'; -import { AppMaterialModule } from 'src/app/shared/app-material.module'; @NgModule({ - exports: [ - MetricComponent, - MetricStatisticsComponent, - MetricDataComponent, - ElementAutocompleteComponent - ], imports: [ - MetricRoutingModule, - CommonModule, - FormsModule, - ReactiveFormsModule, - NgbModule, - AppMaterialModule, - BaseChartDirective, - MetricComponent, - MetricStatisticsComponent, - MetricDataComponent, - SwitcherDataStatsDialogComponent, - MetricFilterComponent, - ElementAutocompleteComponent - ], - providers: [Metric], + MetricRoutingModule + ] }) export class MetricModule { } diff --git a/src/app/dashboard-module/domain-module/metric-module/metric/metric.component.ts b/src/app/dashboard-module/domain-module/metric-module/metric/metric.component.ts index 11914d9..00eba44 100644 --- a/src/app/dashboard-module/domain-module/metric-module/metric/metric.component.ts +++ b/src/app/dashboard-module/domain-module/metric-module/metric/metric.component.ts @@ -3,7 +3,7 @@ import { Subject, Observable } from 'rxjs'; import { map, takeUntil } from 'rxjs/operators'; import { ConsoleLogger } from 'src/app/_helpers/console-logger'; import { RouterErrorHandler } from 'src/app/_helpers/router-error-handler'; -import { MatDialog } from '@angular/material/dialog'; +import { MatDialog, MatDialogModule } from '@angular/material/dialog'; import { MetricFilterComponent } from '../metric-filter/metric-filter.component'; import { Metric } from 'src/app/model/metric'; import { MetricService } from 'src/app/services/metric.service'; @@ -16,6 +16,8 @@ import { MatButton } from '@angular/material/button'; import { MatIcon } from '@angular/material/icon'; import { MetricStatisticsComponent } from '../metric-statistics/metric-statistics.component'; import { MetricDataComponent } from '../metric-data/metric-data.component'; +import { MatNativeDateModule } from '@angular/material/core'; +import { MAT_TOOLTIP_DEFAULT_OPTIONS } from '@angular/material/tooltip'; @Component({ selector: 'app-metric', @@ -24,7 +26,12 @@ import { MetricDataComponent } from '../metric-data/metric-data.component'; '../../common/css/detail.component.css', './metric.component.css' ], - imports: [NgClass, MatButton, MatIcon, NgbNav, NgbNavItem, NgbNavLink, NgbNavLinkBase, NgbNavContent, MetricStatisticsComponent, MetricDataComponent, NgbNavOutlet] + imports: [NgClass, MatButton, MatIcon, NgbNav, NgbNavItem, NgbNavLink, NgbNavLinkBase, + NgbNavContent, MetricStatisticsComponent, MetricDataComponent, NgbNavOutlet, MatDialogModule, MatNativeDateModule + ], + providers: [ + { provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: { showDelay: 250, hideDelay: 5, touchendHideDelay: 5, touchGestures: 'auto' } } + ] }) export class MetricComponent implements OnInit, OnDestroy { private readonly activatedRoute = inject(ActivatedRoute); diff --git a/src/app/dashboard-module/domain-module/team-module/team-detail/team-detail.component.html b/src/app/dashboard-module/domain-module/team-module/team-detail/team-detail.component.html index b40ee80..e9c8383 100644 --- a/src/app/dashboard-module/domain-module/team-module/team-detail/team-detail.component.html +++ b/src/app/dashboard-module/domain-module/team-module/team-detail/team-detail.component.html @@ -1,3 +1,4 @@ + @if (!loading) {
@@ -78,4 +79,5 @@ }
-} \ No newline at end of file +} + \ No newline at end of file diff --git a/src/app/dashboard-module/domain-module/team-module/team-detail/team-detail.component.ts b/src/app/dashboard-module/domain-module/team-module/team-detail/team-detail.component.ts index 1cd5806..f1b710b 100644 --- a/src/app/dashboard-module/domain-module/team-module/team-detail/team-detail.component.ts +++ b/src/app/dashboard-module/domain-module/team-module/team-detail/team-detail.component.ts @@ -20,6 +20,7 @@ import { NgbNav, NgbNavItem, NgbNavLink, NgbNavLinkBase, NgbNavContent, NgbNavOu import { TeamMembersComponent } from '../team-members/team-members.component'; import { TeamPermissionsComponent } from '../team-permissions/team-permissions.component'; import { TeamPendingMembersComponent } from '../team-pending-members/team-pending-members.component'; +import { BlockUIComponent } from 'src/app/shared/block-ui/block-ui.component'; @Component({ selector: 'app-team-detail', @@ -31,7 +32,7 @@ import { TeamPendingMembersComponent } from '../team-pending-members/team-pendin ], imports: [NgClass, MatFormField, MatLabel, MatInput, FormsModule, NgStyle, ReactiveFormsModule, MatError, MatSlideToggle, MatButton, MatIcon, NgbNav, NgbNavItem, NgbNavLink, NgbNavLinkBase, NgbNavContent, TeamMembersComponent, - TeamPermissionsComponent, TeamPendingMembersComponent, NgbNavOutlet + TeamPermissionsComponent, TeamPendingMembersComponent, NgbNavOutlet, BlockUIComponent ] }) export class TeamDetailComponent extends DetailComponent implements OnInit, OnDestroy { diff --git a/src/app/dashboard-module/domain-module/team-module/team-permissions/team-permissions.component.html b/src/app/dashboard-module/domain-module/team-module/team-permissions/team-permissions.component.html index 4588248..11b2873 100644 --- a/src/app/dashboard-module/domain-module/team-module/team-permissions/team-permissions.component.html +++ b/src/app/dashboard-module/domain-module/team-module/team-permissions/team-permissions.component.html @@ -1,3 +1,4 @@ +
-} \ No newline at end of file +} +
\ No newline at end of file diff --git a/src/app/dashboard-module/domain-module/team-module/team-permissions/team-permissions.component.ts b/src/app/dashboard-module/domain-module/team-module/team-permissions/team-permissions.component.ts index b39ac87..8a8dd39 100644 --- a/src/app/dashboard-module/domain-module/team-module/team-permissions/team-permissions.component.ts +++ b/src/app/dashboard-module/domain-module/team-module/team-permissions/team-permissions.component.ts @@ -16,6 +16,7 @@ import { MatButton, MatIconButton } from '@angular/material/button'; import { MatIcon } from '@angular/material/icon'; import { MatFormField, MatLabel, MatInput } from '@angular/material/input'; import { MatTooltip } from '@angular/material/tooltip'; +import { BlockUIComponent } from 'src/app/shared/block-ui/block-ui.component'; @Component({ selector: 'app-team-permissions', @@ -26,7 +27,8 @@ import { MatTooltip } from '@angular/material/tooltip'; './team-permissions.component.css' ], imports: [MatButton, MatIcon, MatFormField, MatLabel, MatInput, MatTable, MatSort, MatColumnDef, MatHeaderCellDef, - MatHeaderCell, MatCellDef, MatCell, MatIconButton, MatSortHeader, MatTooltip, MatSlideToggle, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow + MatHeaderCell, MatCellDef, MatCell, MatIconButton, MatSortHeader, MatTooltip, MatSlideToggle, MatHeaderRowDef, + MatHeaderRow, MatRowDef, MatRow, BlockUIComponent ] }) export class TeamPermissionsComponent extends BasicComponent implements OnInit, OnDestroy { diff --git a/src/app/dashboard-module/domain-module/team-module/team-preview/team-preview.component.ts b/src/app/dashboard-module/domain-module/team-module/team-preview/team-preview.component.ts index a4f8124..7c90052 100644 --- a/src/app/dashboard-module/domain-module/team-module/team-preview/team-preview.component.ts +++ b/src/app/dashboard-module/domain-module/team-module/team-preview/team-preview.component.ts @@ -26,7 +26,9 @@ import { MatIcon } from '@angular/material/icon'; '../../common/css/detail.component.css', './team-preview.component.css' ], - imports: [BlockUIComponent, MatFormField, MatLabel, MatInput, FormsModule, NgStyle, ReactiveFormsModule, MatError, MatSlideToggle, NgClass, MatButton, MatIcon] + imports: [BlockUIComponent, MatFormField, MatLabel, MatInput, FormsModule, NgStyle, + ReactiveFormsModule, MatError, MatSlideToggle, NgClass, MatButton, MatIcon, BlockUIComponent + ] }) export class TeamPreviewComponent extends BasicComponent implements OnInit, OnDestroy { private readonly router = inject(Router); diff --git a/src/app/dashboard-module/domain-module/team-module/team.module.ts b/src/app/dashboard-module/domain-module/team-module/team.module.ts index 7c4712d..854cae6 100644 --- a/src/app/dashboard-module/domain-module/team-module/team.module.ts +++ b/src/app/dashboard-module/domain-module/team-module/team.module.ts @@ -1,36 +1,11 @@ import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { TeamComponent } from './team/team.component'; -import { TeamPreviewComponent } from './team-preview/team-preview.component'; import { TeamRoutingModule } from './team.routing'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { TeamDetailComponent } from './team-detail/team-detail.component'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { TeamMembersComponent } from './team-members/team-members.component'; -import { TeamPermissionsComponent } from './team-permissions/team-permissions.component'; -import { TeamPermissionCreateComponent } from './team-permission-create/team-permission-create.component'; -import { TeamPendingMembersComponent } from './team-pending-members/team-pending-members.component'; import { Team } from 'src/app/model/team'; -import { AppMaterialModule } from 'src/app/shared/app-material.module'; -import { BlockUIComponent } from 'src/app/shared/block-ui/block-ui.component'; @NgModule({ imports: [ - BlockUIComponent, - CommonModule, - FormsModule, - ReactiveFormsModule, - NgbModule, - TeamRoutingModule, - AppMaterialModule, - TeamComponent, - TeamPreviewComponent, - TeamDetailComponent, - TeamMembersComponent, - TeamPermissionsComponent, - TeamPermissionCreateComponent, - TeamPendingMembersComponent + TeamRoutingModule ], providers: [Team] }) diff --git a/src/app/documentation-module/documentation.module.ts b/src/app/documentation-module/documentation.module.ts index ca441bf..36e8c29 100644 --- a/src/app/documentation-module/documentation.module.ts +++ b/src/app/documentation-module/documentation.module.ts @@ -1,14 +1,10 @@ import { NgModule, SecurityContext } from '@angular/core'; -import { CommonModule } from '@angular/common'; import { MarkdownModule } from 'ngx-markdown'; import { DocumentationRoutingModule } from './documentation.routing'; -import { MatIconModule } from '@angular/material/icon'; @NgModule({ imports: [ - CommonModule, DocumentationRoutingModule, - MatIconModule, MarkdownModule.forRoot({ sanitize: SecurityContext.NONE }), diff --git a/src/app/graphql.module.ts b/src/app/graphql.module.ts deleted file mode 100644 index 5892c2f..0000000 --- a/src/app/graphql.module.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { provideApollo } from 'apollo-angular'; -import { HttpLink } from 'apollo-angular/http'; -import { ApolloClientOptions, InMemoryCache } from '@apollo/client/core'; -import { environment } from 'src/environments/environment'; -import { inject, NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; - -const uri = `${environment.apiUrl}/adm-graphql`; - -export function createApollo(): ApolloClientOptions { - const httpLink = inject(HttpLink); - - return { - link: httpLink.create({ uri }), - cache: new InMemoryCache(), - }; -} - -@NgModule({ - imports: [BrowserModule], - providers: [provideApollo(createApollo)] -}) -export class GraphQLModule { } \ No newline at end of file diff --git a/src/app/settings-module/settings.module.ts b/src/app/settings-module/settings.module.ts index 059c9ff..732a5e5 100644 --- a/src/app/settings-module/settings.module.ts +++ b/src/app/settings-module/settings.module.ts @@ -1,20 +1,9 @@ import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; import { SettingsRoutingModule } from './settings.routing'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { AppMaterialModule } from '../shared/app-material.module'; -import { ToasterModule } from '../_helpers/toaster/toaster.module'; @NgModule({ imports: [ - FormsModule, - CommonModule, - NgbModule, - ReactiveFormsModule, - AppMaterialModule, SettingsRoutingModule, - ToasterModule ] }) export class SettingsModule { } diff --git a/src/app/settings-module/settings.routing.ts b/src/app/settings-module/settings.routing.ts index 5f90200..ece3453 100644 --- a/src/app/settings-module/settings.routing.ts +++ b/src/app/settings-module/settings.routing.ts @@ -5,13 +5,18 @@ import { Routes, RouterModule, mapToCanActivate } from '@angular/router'; import { SettingsAccountComponent } from './settings-account/settings-account.component'; const routes: Routes = [ - { path: '', pathMatch: 'full', redirectTo: '/settings/account' }, - { path: '', component: SettingsComponent, canActivate: [AuthGuard], children: [ - { - path: 'account', - component: SettingsAccountComponent, canActivate: mapToCanActivate([AuthGuard]) - } - ]} + { + path: '', + component: SettingsComponent, canActivate: [AuthGuard], + children: [ + { path: '', redirectTo: 'account', pathMatch: 'full' }, + { + path: 'account', + component: SettingsAccountComponent, + canActivate: mapToCanActivate([AuthGuard]) + } + ] + } ]; @NgModule({ diff --git a/src/app/shared/app-material.module.ts b/src/app/shared/app-material.module.ts deleted file mode 100644 index 304006a..0000000 --- a/src/app/shared/app-material.module.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { NgModule } from '@angular/core'; - -//Angular Material Components -import { MatInputModule } from '@angular/material/input'; -import { MatAutocompleteModule } from '@angular/material/autocomplete'; -import { MatDatepickerModule } from '@angular/material/datepicker'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatRadioModule } from '@angular/material/radio'; -import { MatSelectModule } from '@angular/material/select'; -import { MatSliderModule } from '@angular/material/slider'; -import { MatSlideToggleModule } from '@angular/material/slide-toggle'; -import { MatMenuModule } from '@angular/material/menu'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { MatToolbarModule } from '@angular/material/toolbar'; -import { MatListModule } from '@angular/material/list'; -import { MatGridListModule } from '@angular/material/grid-list'; -import { MatCardModule } from '@angular/material/card'; -import { MatStepperModule } from '@angular/material/stepper'; -import { MatTabsModule } from '@angular/material/tabs'; -import { MatExpansionModule } from '@angular/material/expansion'; -import { MatButtonToggleModule } from '@angular/material/button-toggle'; -import { MatChipsModule } from '@angular/material/chips'; -import { MatIconModule } from '@angular/material/icon'; -import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { MatDialogModule } from '@angular/material/dialog'; -import { MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltipModule } from '@angular/material/tooltip'; -import { MatSnackBarModule } from '@angular/material/snack-bar'; -import { MatTableModule } from '@angular/material/table'; -import { MatSortModule } from '@angular/material/sort'; -import { MatPaginatorModule } from '@angular/material/paginator'; -import { MatButtonModule } from '@angular/material/button'; -import { MatCheckboxModule } from '@angular/material/checkbox'; -import { MatNativeDateModule } from '@angular/material/core'; - - -@NgModule({ - imports: [ - MatCheckboxModule, - MatButtonModule, - MatInputModule, - MatAutocompleteModule, - MatDatepickerModule, - MatFormFieldModule, - MatRadioModule, - MatSelectModule, - MatSliderModule, - MatSlideToggleModule, - MatMenuModule, - MatSidenavModule, - MatToolbarModule, - MatListModule, - MatGridListModule, - MatCardModule, - MatStepperModule, - MatTabsModule, - MatExpansionModule, - MatButtonToggleModule, - MatChipsModule, - MatIconModule, - MatProgressSpinnerModule, - MatProgressBarModule, - MatDialogModule, - MatTooltipModule, - MatSnackBarModule, - MatTableModule, - MatSortModule, - MatPaginatorModule, - MatNativeDateModule - ], - exports: [ - MatCheckboxModule, - MatButtonModule, - MatInputModule, - MatAutocompleteModule, - MatDatepickerModule, - MatFormFieldModule, - MatRadioModule, - MatSelectModule, - MatSliderModule, - MatSlideToggleModule, - MatMenuModule, - MatSidenavModule, - MatToolbarModule, - MatListModule, - MatGridListModule, - MatCardModule, - MatStepperModule, - MatTabsModule, - MatExpansionModule, - MatButtonToggleModule, - MatChipsModule, - MatIconModule, - MatProgressSpinnerModule, - MatProgressBarModule, - MatDialogModule, - MatTooltipModule, - MatSnackBarModule, - MatTableModule, - MatSortModule, - MatPaginatorModule, - MatNativeDateModule - ], - providers: [ - { provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: { showDelay: 250, hideDelay: 5, touchendHideDelay: 5, touchGestures: 'auto' } }, - ] -}) -export class AppMaterialModule { } \ No newline at end of file diff --git a/src/libs/ng-recaptcha-module/index.ts b/src/libs/ng-recaptcha-module/index.ts index a294e86..dd2c098 100644 --- a/src/libs/ng-recaptcha-module/index.ts +++ b/src/libs/ng-recaptcha-module/index.ts @@ -3,7 +3,6 @@ export { RecaptchaLoaderService } from "./lib/recaptcha-loader.service"; export { RecaptchaModule } from "./lib/recaptcha.module"; export { RecaptchaSettings } from "./lib/recaptcha-settings"; -export { RecaptchaFormsModule } from "./lib/recaptcha-forms.module"; export { RecaptchaValueAccessorDirective } from "./lib/recaptcha-value-accessor.directive"; export { diff --git a/src/libs/ng-recaptcha-module/lib/recaptcha-forms.module.ts b/src/libs/ng-recaptcha-module/lib/recaptcha-forms.module.ts deleted file mode 100644 index d8ce2a0..0000000 --- a/src/libs/ng-recaptcha-module/lib/recaptcha-forms.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { NgModule } from "@angular/core"; -import { FormsModule } from "@angular/forms"; - -import { RecaptchaCommonModule } from "./recaptcha-common.module"; -import { RecaptchaValueAccessorDirective } from "./recaptcha-value-accessor.directive"; - -@NgModule({ - exports: [RecaptchaValueAccessorDirective], - imports: [FormsModule, RecaptchaCommonModule, RecaptchaValueAccessorDirective], -}) -export class RecaptchaFormsModule {} diff --git a/src/libs/ng-recaptcha-module/lib/recaptcha.module.ts b/src/libs/ng-recaptcha-module/lib/recaptcha.module.ts index e23203d..7d137ce 100644 --- a/src/libs/ng-recaptcha-module/lib/recaptcha.module.ts +++ b/src/libs/ng-recaptcha-module/lib/recaptcha.module.ts @@ -1,12 +1,8 @@ import { NgModule } from "@angular/core"; -import { RecaptchaCommonModule } from "./recaptcha-common.module"; import { RecaptchaLoaderService } from "./recaptcha-loader.service"; -import { RecaptchaComponent } from "./recaptcha.component"; @NgModule({ - exports: [RecaptchaComponent], - imports: [RecaptchaCommonModule], providers: [RecaptchaLoaderService], }) export class RecaptchaModule {} diff --git a/src/main.ts b/src/main.ts index 97e8466..29efb99 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,4 @@ -import { enableProdMode, importProvidersFrom } from '@angular/core'; +import { enableProdMode, importProvidersFrom, inject } from '@angular/core'; import { bootstrapApplication } from '@angular/platform-browser'; import '@angular/compiler'; // Required for JIT compilation import '@angular/localize/init'; @@ -8,36 +8,40 @@ import { environment } from './environments/environment'; import { provideHttpClient, HTTP_INTERCEPTORS, withInterceptorsFromDi } from '@angular/common/http'; import { provideRouter, Routes, mapToCanActivate } from '@angular/router'; import { LocationStrategy, PathLocationStrategy } from '@angular/common'; -import { ReactiveFormsModule } from '@angular/forms'; // Import modules and services import { AuthGuard } from './app/auth/guards/auth.guard'; import { AuthService } from './app/auth/services/auth.service'; import { TokenInterceptor } from './app/auth/token.interceptor'; import { PwaService } from './app/services/pwa.service'; -import { GraphQLModule } from './app/graphql.module'; -import { DashboardModule } from './app/dashboard-module/dashboard.module'; -import { AppMaterialModule } from './app/shared/app-material.module'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; -import { RecaptchaModule, RecaptchaFormsModule } from './libs/ng-recaptcha-module'; -import { SettingsModule } from './app/settings-module/settings.module'; +import { RecaptchaModule } from './libs/ng-recaptcha-module'; import { ServiceWorkerModule } from '@angular/service-worker'; import { provideCharts, withDefaultRegisterables } from './libs/ng2-charts/src/lib/ng-charts.provider'; -// Import route components -import { LoginComponent } from './app/login'; -import { HomeComponent } from './app/home/home.component'; -import { SignupComponent } from './app/signup/signup.component'; -import { SignupTeamComponent } from './app/signup-team/signup-team.component'; -import { LoginResetComponent } from './app/login-reset/login-reset.component'; -import { SignupDomainComponent } from './app/signup-domain/signup-domain.component'; -import { SlackAuthComponent } from './app/slack-auth/slack-auth.component'; +// Apollo GraphQL +import { provideApollo } from 'apollo-angular'; +import { HttpLink } from 'apollo-angular/http'; +import { InMemoryCache } from '@apollo/client/core'; const routes: Routes = [ - { path: '', component: environment.allowHomeView ? HomeComponent : LoginComponent }, - { path: 'login', component: LoginComponent }, - { path: 'login/reset', component: LoginResetComponent }, - { path: 'signup', component: SignupComponent }, + { + path: '', + loadComponent: () => environment.allowHomeView + ? import('./app/home/home.component').then(m => m.HomeComponent) + : import('./app/login').then(m => m.LoginComponent) + }, + { + path: 'login', + loadComponent: () => import('./app/login').then(m => m.LoginComponent) + }, + { + path: 'login/reset', + loadComponent: () => import('./app/login-reset/login-reset.component').then(m => m.LoginResetComponent) + }, + { + path: 'signup', + loadComponent: () => import('./app/signup/signup.component').then(m => m.SignupComponent) + }, { path: 'settings', loadChildren: () => import('./app/settings-module/settings.module').then(mod => mod.SettingsModule), @@ -53,9 +57,21 @@ const routes: Routes = [ loadChildren: () => import('./app/documentation-module/documentation.module').then(mod => mod.DocumentationModuleModule), data: { preload: true } }, - { path: 'collab/join', component: SignupTeamComponent, canActivate: mapToCanActivate([AuthGuard]) }, - { path: 'domain/transfer', component: SignupDomainComponent, canActivate: mapToCanActivate([AuthGuard]) }, - { path: 'slack/authorization', component: SlackAuthComponent, canActivate: mapToCanActivate([AuthGuard]) }, + { + path: 'collab/join', + loadComponent: () => import('./app/signup-team/signup-team.component').then(m => m.SignupTeamComponent), + canActivate: mapToCanActivate([AuthGuard]) + }, + { + path: 'domain/transfer', + loadComponent: () => import('./app/signup-domain/signup-domain.component').then(m => m.SignupDomainComponent), + canActivate: mapToCanActivate([AuthGuard]) + }, + { + path: 'slack/authorization', + loadComponent: () => import('./app/slack-auth/slack-auth.component').then(m => m.SlackAuthComponent), + canActivate: mapToCanActivate([AuthGuard]) + }, { path: '**', redirectTo: '/dashboard' } ]; @@ -73,15 +89,15 @@ bootstrapApplication(AppComponent, { provideHttpClient(withInterceptorsFromDi()), provideCharts(withDefaultRegisterables()), provideRouter(routes), + provideApollo(() => { + const httpLink = inject(HttpLink); + return { + link: httpLink.create({ uri: `${environment.apiUrl}/adm-graphql` }), + cache: new InMemoryCache(), + }; + }), importProvidersFrom( - ReactiveFormsModule, - GraphQLModule, - DashboardModule, - AppMaterialModule, - NgbModule, RecaptchaModule, - RecaptchaFormsModule, - SettingsModule, ServiceWorkerModule.register('./ngsw-worker.js', { enabled: environment.production }) ) ]