From 9280ea8e525c2f4e2ee6e5b5b81900d02c8fc662 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Thu, 28 Jul 2022 13:04:35 +0300 Subject: [PATCH] add upload file, loading & shared modules --- src/index.ts | 3 +- src/lib/common-ui.module.ts | 30 ++++++------------- src/lib/loading/index.ts | 3 ++ src/lib/loading/loading.module.ts | 26 ++++++++++++++++ src/lib/loading/loading.service.ts | 2 +- .../progress-bar/progress-bar-config.model.ts | 0 .../progress-bar/progress-bar.component.html | 0 .../progress-bar/progress-bar.component.scss | 0 .../progress-bar/progress-bar.component.ts | 0 .../hidden-action.component.html | 0 .../hidden-action/hidden-action.component.ts | 0 src/lib/{misc => shared}/index.ts | 3 +- .../{misc => shared}/logo/logo.component.html | 0 .../{misc => shared}/logo/logo.component.scss | 0 .../{misc => shared}/logo/logo.component.ts | 0 src/lib/shared/shared.module.ts | 13 ++++++++ .../side-nav/side-nav.component.html | 0 .../side-nav/side-nav.component.ts | 0 .../small-chip/small-chip.component.html | 0 .../small-chip/small-chip.component.scss | 0 .../small-chip/small-chip.component.ts | 3 +- .../status-bar/status-bar-config.model.ts | 0 .../status-bar/status-bar.component.html | 1 + .../status-bar/status-bar.component.scss | 0 .../status-bar/status-bar.component.ts | 0 .../toast/toast.component.html | 0 .../{misc => shared}/toast/toast.component.ts | 0 src/lib/upload-file/index.ts | 3 ++ .../upload-file/upload-file.component.html | 11 ++++--- src/lib/upload-file/upload-file.module.ts | 14 +++++++++ 30 files changed, 81 insertions(+), 31 deletions(-) create mode 100644 src/lib/loading/loading.module.ts rename src/lib/{misc => loading}/progress-bar/progress-bar-config.model.ts (100%) rename src/lib/{misc => loading}/progress-bar/progress-bar.component.html (100%) rename src/lib/{misc => loading}/progress-bar/progress-bar.component.scss (100%) rename src/lib/{misc => loading}/progress-bar/progress-bar.component.ts (100%) rename src/lib/{misc => shared}/hidden-action/hidden-action.component.html (100%) rename src/lib/{misc => shared}/hidden-action/hidden-action.component.ts (100%) rename src/lib/{misc => shared}/index.ts (75%) rename src/lib/{misc => shared}/logo/logo.component.html (100%) rename src/lib/{misc => shared}/logo/logo.component.scss (100%) rename src/lib/{misc => shared}/logo/logo.component.ts (100%) create mode 100644 src/lib/shared/shared.module.ts rename src/lib/{misc => shared}/side-nav/side-nav.component.html (100%) rename src/lib/{misc => shared}/side-nav/side-nav.component.ts (100%) rename src/lib/{misc => shared}/small-chip/small-chip.component.html (100%) rename src/lib/{misc => shared}/small-chip/small-chip.component.scss (100%) rename src/lib/{misc => shared}/small-chip/small-chip.component.ts (73%) rename src/lib/{misc => shared}/status-bar/status-bar-config.model.ts (100%) rename src/lib/{misc => shared}/status-bar/status-bar.component.html (99%) rename src/lib/{misc => shared}/status-bar/status-bar.component.scss (100%) rename src/lib/{misc => shared}/status-bar/status-bar.component.ts (100%) rename src/lib/{misc => shared}/toast/toast.component.html (100%) rename src/lib/{misc => shared}/toast/toast.component.ts (100%) create mode 100644 src/lib/upload-file/index.ts create mode 100644 src/lib/upload-file/upload-file.module.ts diff --git a/src/index.ts b/src/index.ts index b6e5c88..29c942f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,10 +10,11 @@ export * from './lib/inputs'; export * from './lib/utils'; export * from './lib/sorting'; export * from './lib/services'; -export * from './lib/misc'; +export * from './lib/shared'; export * from './lib/loading'; export * from './lib/error'; export * from './lib/search'; +export * from './lib/upload-file'; export * from './lib/empty-states'; export * from './lib/scrollbar'; export * from './lib/caching'; diff --git a/src/lib/common-ui.module.ts b/src/lib/common-ui.module.ts index aaca45a..d2d4a5c 100644 --- a/src/lib/common-ui.module.ts +++ b/src/lib/common-ui.module.ts @@ -1,20 +1,11 @@ -import { ModuleWithProviders, NgModule } from '@angular/core'; +import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'; import { CommonModule } from '@angular/common'; import { MatIconModule } from '@angular/material/icon'; import { TranslateModule } from '@ngx-translate/core'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { SortByPipe } from './sorting'; import { CommonUiOptions, IqserAppConfig, ModuleWithOptions } from './utils'; -import { - HiddenActionComponent, - LogoComponent, - ProgressBarComponent, - SideNavComponent, - SmallChipComponent, - StatusBarComponent, - ToastComponent, -} from './misc'; -import { FullPageLoadingIndicatorComponent, ProgressLoadingComponent } from './loading'; +import { HiddenActionComponent, LogoComponent, ToastComponent } from './shared'; import { ConnectionStatusComponent, FullPageErrorComponent } from './error'; import { IqserListingModule } from './listing'; import { IqserFiltersModule } from './filtering'; @@ -27,8 +18,6 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { MatCheckboxModule } from '@angular/material/checkbox'; -import { UploadFileComponent } from './upload-file/upload-file.component'; -import { DragDropFileUploadDirective } from './upload-file/drag-drop-file-upload.directive'; import { MatProgressBarModule } from '@angular/material/progress-bar'; import { ConfirmationDialogComponent } from './dialog'; import { MatTooltipModule } from '@angular/material/tooltip'; @@ -56,20 +45,12 @@ const modules = [ HttpClientModule, ]; const components = [ - StatusBarComponent, - FullPageLoadingIndicatorComponent, - ProgressLoadingComponent, ConnectionStatusComponent, FullPageErrorComponent, LogoComponent, HiddenActionComponent, ConfirmationDialogComponent, - SideNavComponent, ToastComponent, - SmallChipComponent, - ProgressBarComponent, - UploadFileComponent, - DragDropFileUploadDirective, ]; const pipes = [SortByPipe]; @@ -87,6 +68,13 @@ const pipes = [SortByPipe]; ], }) export class CommonUiModule extends ModuleWithOptions { + constructor(@Optional() @SkipSelf() parentModule?: CommonUiModule) { + super(); + if (parentModule) { + throw new Error('CommonUiModule is already loaded. Import it in the AppModule only!'); + } + } + static forRoot< UserPreference extends IqserUserPreferenceService, Config extends IqserConfigService, diff --git a/src/lib/loading/index.ts b/src/lib/loading/index.ts index 3961036..6bf7605 100644 --- a/src/lib/loading/index.ts +++ b/src/lib/loading/index.ts @@ -1,3 +1,6 @@ export * from './loading.service'; export * from './full-page-loading-indicator/full-page-loading-indicator.component'; export * from './progress-loading/progress-loading.component'; +export * from './loading.module'; +export * from './progress-bar/progress-bar-config.model'; +export * from './progress-bar/progress-bar.component'; diff --git a/src/lib/loading/loading.module.ts b/src/lib/loading/loading.module.ts new file mode 100644 index 0000000..e55c2e8 --- /dev/null +++ b/src/lib/loading/loading.module.ts @@ -0,0 +1,26 @@ +import { ModuleWithProviders, NgModule } from '@angular/core'; +import { FullPageLoadingIndicatorComponent } from './full-page-loading-indicator/full-page-loading-indicator.component'; +import { ProgressLoadingComponent } from './progress-loading/progress-loading.component'; +import { LoadingService } from './loading.service'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { CommonModule } from '@angular/common'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { ProgressBarComponent } from './progress-bar/progress-bar.component'; +import { MatIconModule } from '@angular/material/icon'; +import { TranslateModule } from '@ngx-translate/core'; + +const components = [FullPageLoadingIndicatorComponent, ProgressLoadingComponent, ProgressBarComponent]; + +@NgModule({ + declarations: components, + exports: components, + imports: [MatProgressSpinnerModule, CommonModule, MatProgressBarModule, MatIconModule, TranslateModule], +}) +export class IqserLoadingModule { + static forRoot(): ModuleWithProviders { + return { + ngModule: IqserLoadingModule, + providers: [LoadingService], + }; + } +} diff --git a/src/lib/loading/loading.service.ts b/src/lib/loading/loading.service.ts index c833439..fc09c02 100644 --- a/src/lib/loading/loading.service.ts +++ b/src/lib/loading/loading.service.ts @@ -10,7 +10,7 @@ export interface ILoadingConfig { readonly remainingTime?: string; } -@Injectable({ providedIn: 'root' }) +@Injectable() export class LoadingService { readonly #loadingEvent$ = new BehaviorSubject(undefined); readonly isLoading$ = this.#loadingEvent$.asObservable(); diff --git a/src/lib/misc/progress-bar/progress-bar-config.model.ts b/src/lib/loading/progress-bar/progress-bar-config.model.ts similarity index 100% rename from src/lib/misc/progress-bar/progress-bar-config.model.ts rename to src/lib/loading/progress-bar/progress-bar-config.model.ts diff --git a/src/lib/misc/progress-bar/progress-bar.component.html b/src/lib/loading/progress-bar/progress-bar.component.html similarity index 100% rename from src/lib/misc/progress-bar/progress-bar.component.html rename to src/lib/loading/progress-bar/progress-bar.component.html diff --git a/src/lib/misc/progress-bar/progress-bar.component.scss b/src/lib/loading/progress-bar/progress-bar.component.scss similarity index 100% rename from src/lib/misc/progress-bar/progress-bar.component.scss rename to src/lib/loading/progress-bar/progress-bar.component.scss diff --git a/src/lib/misc/progress-bar/progress-bar.component.ts b/src/lib/loading/progress-bar/progress-bar.component.ts similarity index 100% rename from src/lib/misc/progress-bar/progress-bar.component.ts rename to src/lib/loading/progress-bar/progress-bar.component.ts diff --git a/src/lib/misc/hidden-action/hidden-action.component.html b/src/lib/shared/hidden-action/hidden-action.component.html similarity index 100% rename from src/lib/misc/hidden-action/hidden-action.component.html rename to src/lib/shared/hidden-action/hidden-action.component.html diff --git a/src/lib/misc/hidden-action/hidden-action.component.ts b/src/lib/shared/hidden-action/hidden-action.component.ts similarity index 100% rename from src/lib/misc/hidden-action/hidden-action.component.ts rename to src/lib/shared/hidden-action/hidden-action.component.ts diff --git a/src/lib/misc/index.ts b/src/lib/shared/index.ts similarity index 75% rename from src/lib/misc/index.ts rename to src/lib/shared/index.ts index 0c3e5d3..a3723c6 100644 --- a/src/lib/misc/index.ts +++ b/src/lib/shared/index.ts @@ -3,7 +3,6 @@ export * from './logo/logo.component'; export * from './side-nav/side-nav.component'; export * from './status-bar/status-bar.component'; export * from './status-bar/status-bar-config.model'; -export * from './progress-bar/progress-bar.component'; -export * from './progress-bar/progress-bar-config.model'; export * from './toast/toast.component'; export * from './small-chip/small-chip.component'; +export * from './shared.module'; diff --git a/src/lib/misc/logo/logo.component.html b/src/lib/shared/logo/logo.component.html similarity index 100% rename from src/lib/misc/logo/logo.component.html rename to src/lib/shared/logo/logo.component.html diff --git a/src/lib/misc/logo/logo.component.scss b/src/lib/shared/logo/logo.component.scss similarity index 100% rename from src/lib/misc/logo/logo.component.scss rename to src/lib/shared/logo/logo.component.scss diff --git a/src/lib/misc/logo/logo.component.ts b/src/lib/shared/logo/logo.component.ts similarity index 100% rename from src/lib/misc/logo/logo.component.ts rename to src/lib/shared/logo/logo.component.ts diff --git a/src/lib/shared/shared.module.ts b/src/lib/shared/shared.module.ts new file mode 100644 index 0000000..ef311b9 --- /dev/null +++ b/src/lib/shared/shared.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { SideNavComponent, SmallChipComponent, StatusBarComponent } from './index'; +import { CommonModule } from '@angular/common'; +import { MatTooltipModule } from '@angular/material/tooltip'; + +const components = [SmallChipComponent, StatusBarComponent, SideNavComponent]; + +@NgModule({ + declarations: [...components], + exports: [...components], + imports: [CommonModule, MatTooltipModule], +}) +export class IqserSharedModule {} diff --git a/src/lib/misc/side-nav/side-nav.component.html b/src/lib/shared/side-nav/side-nav.component.html similarity index 100% rename from src/lib/misc/side-nav/side-nav.component.html rename to src/lib/shared/side-nav/side-nav.component.html diff --git a/src/lib/misc/side-nav/side-nav.component.ts b/src/lib/shared/side-nav/side-nav.component.ts similarity index 100% rename from src/lib/misc/side-nav/side-nav.component.ts rename to src/lib/shared/side-nav/side-nav.component.ts diff --git a/src/lib/misc/small-chip/small-chip.component.html b/src/lib/shared/small-chip/small-chip.component.html similarity index 100% rename from src/lib/misc/small-chip/small-chip.component.html rename to src/lib/shared/small-chip/small-chip.component.html diff --git a/src/lib/misc/small-chip/small-chip.component.scss b/src/lib/shared/small-chip/small-chip.component.scss similarity index 100% rename from src/lib/misc/small-chip/small-chip.component.scss rename to src/lib/shared/small-chip/small-chip.component.scss diff --git a/src/lib/misc/small-chip/small-chip.component.ts b/src/lib/shared/small-chip/small-chip.component.ts similarity index 73% rename from src/lib/misc/small-chip/small-chip.component.ts rename to src/lib/shared/small-chip/small-chip.component.ts index 2996250..9253263 100644 --- a/src/lib/misc/small-chip/small-chip.component.ts +++ b/src/lib/shared/small-chip/small-chip.component.ts @@ -1,8 +1,7 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; @Component({ - // eslint-disable-next-line @angular-eslint/component-selector - selector: 'redaction-small-chip [color]', + selector: 'iqser-small-chip [color]', templateUrl: './small-chip.component.html', styleUrls: ['./small-chip.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/src/lib/misc/status-bar/status-bar-config.model.ts b/src/lib/shared/status-bar/status-bar-config.model.ts similarity index 100% rename from src/lib/misc/status-bar/status-bar-config.model.ts rename to src/lib/shared/status-bar/status-bar-config.model.ts diff --git a/src/lib/misc/status-bar/status-bar.component.html b/src/lib/shared/status-bar/status-bar.component.html similarity index 99% rename from src/lib/misc/status-bar/status-bar.component.html rename to src/lib/shared/status-bar/status-bar.component.html index 19b27e3..804d6d8 100644 --- a/src/lib/misc/status-bar/status-bar.component.html +++ b/src/lib/shared/status-bar/status-bar.component.html @@ -6,6 +6,7 @@ 'background-color': config.color.includes('#') ? config.color : '' }" > +
{{ config.label }}
diff --git a/src/lib/misc/status-bar/status-bar.component.scss b/src/lib/shared/status-bar/status-bar.component.scss similarity index 100% rename from src/lib/misc/status-bar/status-bar.component.scss rename to src/lib/shared/status-bar/status-bar.component.scss diff --git a/src/lib/misc/status-bar/status-bar.component.ts b/src/lib/shared/status-bar/status-bar.component.ts similarity index 100% rename from src/lib/misc/status-bar/status-bar.component.ts rename to src/lib/shared/status-bar/status-bar.component.ts diff --git a/src/lib/misc/toast/toast.component.html b/src/lib/shared/toast/toast.component.html similarity index 100% rename from src/lib/misc/toast/toast.component.html rename to src/lib/shared/toast/toast.component.html diff --git a/src/lib/misc/toast/toast.component.ts b/src/lib/shared/toast/toast.component.ts similarity index 100% rename from src/lib/misc/toast/toast.component.ts rename to src/lib/shared/toast/toast.component.ts diff --git a/src/lib/upload-file/index.ts b/src/lib/upload-file/index.ts new file mode 100644 index 0000000..2eeb4b4 --- /dev/null +++ b/src/lib/upload-file/index.ts @@ -0,0 +1,3 @@ +export * from './drag-drop-file-upload.directive'; +export * from './upload-file.component'; +export * from './upload-file.module'; diff --git a/src/lib/upload-file/upload-file.component.html b/src/lib/upload-file/upload-file.component.html index 8314ec0..aecc8a1 100644 --- a/src/lib/upload-file/upload-file.component.html +++ b/src/lib/upload-file/upload-file.component.html @@ -1,13 +1,16 @@
-
+
+
-
+
+

{{ file.name }}

- + +
- +
diff --git a/src/lib/upload-file/upload-file.module.ts b/src/lib/upload-file/upload-file.module.ts new file mode 100644 index 0000000..e0b7961 --- /dev/null +++ b/src/lib/upload-file/upload-file.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { UploadFileComponent } from './upload-file.component'; +import { DragDropFileUploadDirective } from './drag-drop-file-upload.directive'; +import { MatIconModule } from '@angular/material/icon'; +import { CommonModule } from '@angular/common'; + +const components = [UploadFileComponent, DragDropFileUploadDirective]; + +@NgModule({ + declarations: [...components], + exports: [...components], + imports: [MatIconModule, CommonModule], +}) +export class IqserUploadFileModule {}