diff --git a/src/FacturXDotNet.WebEditor/src/app/app.component.ts b/src/FacturXDotNet.WebEditor/src/app/app.component.ts index 79879697..3db67998 100644 --- a/src/FacturXDotNet.WebEditor/src/app/app.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/app.component.ts @@ -5,16 +5,18 @@ import { ImportFileComponent } from './core/import-file/import-file.component'; import { NgbTooltipConfigComponent } from './core/ng-bootstrap/ngb-tooltip-config.component'; import * as pdf from 'pdfjs-dist'; import { PlatformLocation } from '@angular/common'; +import { GlobalOverlayComponent } from './core/global-overlay/global-overlay.component'; @Component({ selector: 'app-root', - imports: [RouterOutlet, ToasterComponent, ImportFileComponent, NgbTooltipConfigComponent], + imports: [RouterOutlet, ToasterComponent, ImportFileComponent, NgbTooltipConfigComponent, GlobalOverlayComponent], template: ` - - + + + - + `, styles: [], }) diff --git a/src/FacturXDotNet.WebEditor/src/app/core/api/generate.api.ts b/src/FacturXDotNet.WebEditor/src/app/core/api/generate.api.ts index e91abd1a..4ad6bb65 100644 --- a/src/FacturXDotNet.WebEditor/src/app/core/api/generate.api.ts +++ b/src/FacturXDotNet.WebEditor/src/app/core/api/generate.api.ts @@ -3,7 +3,7 @@ import { HttpClient, HttpHeaders } from '@angular/common/http'; import { map, Observable } from 'rxjs'; import { API_BASE_URL } from '../../app.config'; import { CrossIndustryInvoice, ICrossIndustryInvoice, IXmpMetadata, StandardPdfGeneratorLanguagePackDto } from './api.models'; -import { EditorStateAttachment } from '../../features/editor/editor-state.service'; +import { EditorStateAttachment } from '../../features/editor/services/editor-state.service'; @Injectable({ providedIn: 'root', diff --git a/src/FacturXDotNet.WebEditor/src/app/core/global-overlay/global-overlay.component.ts b/src/FacturXDotNet.WebEditor/src/app/core/global-overlay/global-overlay.component.ts new file mode 100644 index 00000000..aa54a2f8 --- /dev/null +++ b/src/FacturXDotNet.WebEditor/src/app/core/global-overlay/global-overlay.component.ts @@ -0,0 +1,35 @@ +import { Component, inject, signal } from '@angular/core'; +import { GlobalOverlayService } from './global-overlay.service'; + +@Component({ + selector: 'app-global-overlay', + imports: [], + template: ` +
+
+
+
+ Loading... +
+ @if (message(); as message) { + {{ message }} + } +
+
+
+ `, + styles: ` + .backdrop { + background-color: rgba(0, 0, 0, 0.5); + } + `, +}) +export class GlobalOverlayComponent { + private globalOverlayService = inject(GlobalOverlayService); + protected enabled = this.globalOverlayService.enabled; + protected message = this.globalOverlayService.message; +} diff --git a/src/FacturXDotNet.WebEditor/src/app/core/global-overlay/global-overlay.service.ts b/src/FacturXDotNet.WebEditor/src/app/core/global-overlay/global-overlay.service.ts new file mode 100644 index 00000000..829b4a39 --- /dev/null +++ b/src/FacturXDotNet.WebEditor/src/app/core/global-overlay/global-overlay.service.ts @@ -0,0 +1,22 @@ +import { Injectable, signal } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class GlobalOverlayService { + public enabled = signal(false); + public message = signal(undefined); + + public enable(message?: string) { + this.enabled.set(true); + this.message.set(message); + + console.log('Overlay enabled:', message); + } + + public disable() { + this.enabled.set(false); + + console.log('Overlay disabled'); + } +} diff --git a/src/FacturXDotNet.WebEditor/src/app/core/two-columns/two-columns.component.ts b/src/FacturXDotNet.WebEditor/src/app/core/two-columns/two-columns.component.ts index a3b7ceb2..735d1a9b 100644 --- a/src/FacturXDotNet.WebEditor/src/app/core/two-columns/two-columns.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/core/two-columns/two-columns.component.ts @@ -6,7 +6,7 @@ import { NgStyle } from '@angular/common'; imports: [NgStyle], template: `
-
+
}
-
+
@@ -33,6 +33,8 @@ import { NgStyle } from '@angular/common'; }) export class TwoColumnsComponent { rightColumnWidth = model.required(); + leftColumnMinWidth = input(undefined, { transform: numberAttribute }); + rightColumnMinWidth = input(undefined, { transform: numberAttribute }); resizeHandleWidth = input(16, { transform: numberAttribute }); draggable = input(false, { transform: booleanAttribute }); dragging = output(); @@ -100,10 +102,10 @@ export class TwoColumnsComponent { } if (this.resizing) { - const width = this.totalWidth(); + const totalWidth = this.totalWidth(); const x = event.type === 'mousemove' ? (event as MouseEvent).clientX : (event as TouchEvent).touches[0].clientX; - const newWidth = width - x - this.resizeHandleWidth() / 2; - this.rightColumnWidth.set(newWidth); + const newWidth = totalWidth - x - this.resizeHandleWidth() / 2; + this.setRightColumnWidth(newWidth); } } @@ -112,4 +114,24 @@ export class TwoColumnsComponent { this.resizing = false; this.dragging.emit(false); } + + private setRightColumnWidth(width: number) { + let finalWidth = width; + + const rightColumnMinWidth = this.rightColumnMinWidth(); + if (rightColumnMinWidth !== undefined && finalWidth < rightColumnMinWidth) { + finalWidth = rightColumnMinWidth; + } + + const leftColumnMinWidth = this.leftColumnMinWidth(); + if (leftColumnMinWidth !== undefined) { + const totalWidth = this.totalWidth(); + const leftColumnWidth = totalWidth - finalWidth - this.resizeHandleWidth(); + if (leftColumnWidth < leftColumnMinWidth) { + finalWidth = totalWidth - leftColumnMinWidth - this.resizeHandleWidth(); + } + } + + this.rightColumnWidth.set(finalWidth); + } } diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-header-name.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-header-name.component.ts index 35836ed6..bac8fa61 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-header-name.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-header-name.component.ts @@ -1,5 +1,5 @@ import { Component, inject, input, signal } from '@angular/core'; -import { EditorStateService } from '../../editor-state.service'; +import { EditorStateService } from '../../services/editor-state.service'; import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'; import { NgStyle } from '@angular/common'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-left-pane-header.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-left-pane-header.component.ts index f8b3439a..d5a09f9e 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-left-pane-header.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-left-pane-header.component.ts @@ -1,53 +1,59 @@ import { Component, computed, inject, input } from '@angular/core'; -import { EditorSavedState } from '../../editor-state.service'; -import { EditorSettings } from '../../editor-settings.service'; +import { EditorSavedState } from '../../services/editor-state.service'; +import { EditorSettings } from '../../services/editor-settings.service'; import { NavigationEnd, Router, RouterLink } from '@angular/router'; import { NgbNav, NgbNavItem, NgbNavLink, NgbNavLinkBase } from '@ng-bootstrap/ng-bootstrap'; import { FormsModule } from '@angular/forms'; -import { EditorResponsivenessService } from '../../editor-responsiveness.service'; +import { EditorResponsivenessService } from '../../services/editor-responsiveness.service'; import { toSignal } from '@angular/core/rxjs-interop'; import { distinct, distinctUntilChanged, filter, map } from 'rxjs'; +import { EditorHeaderNameComponent } from './editor-header-name.component'; @Component({ selector: 'app-editor-left-pane-header', - imports: [NgbNav, NgbNavItem, NgbNavLink, RouterLink, FormsModule, NgbNavLinkBase], + imports: [NgbNav, NgbNavItem, NgbNavLink, RouterLink, FormsModule, NgbNavLinkBase, EditorHeaderNameComponent], template: ` - + `, }) export class EditorLeftPaneHeaderComponent { diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-right-pane-header.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-right-pane-header.component.ts index 0eaf9cbe..ca0aed7d 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-right-pane-header.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-header/editor-right-pane-header.component.ts @@ -1,47 +1,61 @@ -import { Component, inject, model } from '@angular/core'; +import { Component, computed, inject, model } from '@angular/core'; import { NgbNav, NgbNavItem, NgbNavLinkButton } from '@ng-bootstrap/ng-bootstrap'; -import { PdfModel } from '../../editor-settings.service'; -import { EditorPdfViewerService } from '../editor-pdf-viewer/editor-pdf-viewer.service'; -import { EditorPdfGenerationProfilesService } from '../../editor-pdf-generation-profiles.service'; -import { RouterLink } from '@angular/router'; +import { PdfModel } from '../../services/editor-settings.service'; +import { EditorPdfViewerService } from '../../editor-tabs/editor-pdf-viewer/editor-pdf-viewer.service'; +import { EditorPdfGenerationProfile, EditorPdfGenerationProfilesService } from '../../services/editor-pdf-generation-profiles.service'; +import { Router, RouterLink } from '@angular/router'; +import { FormsModule } from '@angular/forms'; @Component({ selector: 'app-editor-right-pane-header', - imports: [NgbNav, NgbNavItem, NgbNavLinkButton, RouterLink], + imports: [NgbNav, NgbNavItem, NgbNavLinkButton, FormsModule, RouterLink], template: ` -
- PDF - - - @if (tab() === 'generated') { - @if (selectedProfile(); as selectedProfile) { -
- Current profile: {{ selectedProfile.name }} - Change profile -
- } @else { - Customize generation - } - -
+
+
+ PDF + +
-
- @if (pdf.isLoading()) { -
- Loading... +
+ @if (tab() === 'generated') { + @if (profiles().length > 0) { +
+
+ +
+
+ +
} @else { - + } -
- } + +
+ +
+ @if (pdf.isLoading()) { +
+ Loading... +
+ } @else { + + } +
+ } +
`, styles: ``, @@ -49,13 +63,20 @@ import { RouterLink } from '@angular/router'; export class EditorRightPaneHeaderComponent { tab = model.required(); + private router: Router = inject(Router); private editorPdfViewerService = inject(EditorPdfViewerService); protected pdf = this.editorPdfViewerService.pdf; private editorPdfGenerationProfilesService = inject(EditorPdfGenerationProfilesService); + protected profiles = computed(() => Object.values(this.editorPdfGenerationProfilesService.profiles())); protected selectedProfile = this.editorPdfGenerationProfilesService.selectedProfile; protected regeneratePdf() { this.editorPdfViewerService.regenerateAndDisplayGeneratedPdf(); } + + protected async changeProfile(newProfile: EditorPdfGenerationProfile | undefined) { + this.editorPdfGenerationProfilesService.selectProfile(newProfile?.id); + this.regeneratePdf(); + } } diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-menu/editor-export-menu.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-menu/editor-export-menu.component.ts index f37b2020..83056b69 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-menu/editor-export-menu.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-menu/editor-export-menu.component.ts @@ -22,7 +22,6 @@ export class EditorExportMenuComponent { private editorMenuService = inject(EditorMenuService); private toastService = inject(ToastService); - private destroyRef = inject(DestroyRef); async exportFacturX() { this.exporting.emit(true); diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-menu/editor-menu.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-menu/editor-menu.service.ts index bb39b1ef..214a02e5 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-menu/editor-menu.service.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-menu/editor-menu.service.ts @@ -6,17 +6,19 @@ import { ICrossIndustryInvoice } from '../../../../core/api/api.models'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { downloadBlob, downloadFile } from '../../../../core/utils/download-blob'; import { GenerateApi } from '../../../../core/api/generate.api'; -import { CiiFormService } from '../../tabs/cii/cii-form/cii-form.service'; -import { EditorStateService } from '../../editor-state.service'; +import { CiiFormService } from '../../editor-tabs/editor-cii/cii-form/cii-form.service'; +import { EditorStateService } from '../../services/editor-state.service'; import * as pdf from 'pdfjs-dist'; -import { EditorSettingsService } from '../../editor-settings.service'; -import { EditorPdfViewerService } from '../editor-pdf-viewer/editor-pdf-viewer.service'; +import { EditorSettingsService } from '../../services/editor-settings.service'; +import { EditorPdfViewerService } from '../../editor-tabs/editor-pdf-viewer/editor-pdf-viewer.service'; +import { Router } from '@angular/router'; @Injectable({ providedIn: 'root', }) export class EditorMenuService { private editorStateService = inject(EditorStateService); + private router = inject(Router); private editorSettingsService = inject(EditorSettingsService); private editorPdfViewerService = inject(EditorPdfViewerService); private ciiFormService = inject(CiiFormService); @@ -43,7 +45,7 @@ export class EditorMenuService { async backToWelcomePage(): Promise { this.isImportingInternal.set(true); try { - await this.editorStateService.clear(); + await this.router.navigate(['/', 'welcome']); } finally { this.isImportingInternal.set(false); } diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/attachment.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/attachment.component.ts similarity index 97% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/attachment.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/attachment.component.ts index 3b3fe8ff..ed4141ce 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/attachment.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/attachment.component.ts @@ -1,6 +1,6 @@ import { booleanAttribute, Component, effect, input, model, signal } from '@angular/core'; import { NgxFilesizeModule } from 'ngx-filesize'; -import { EditorStateAttachment } from '../../editor-state.service'; +import { EditorStateAttachment } from '../../services/editor-state.service'; import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; @Component({ diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/attachments.tab.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/attachments.tab.ts similarity index 99% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/attachments.tab.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/attachments.tab.ts index f174db5e..d25208c0 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/attachments.tab.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/attachments.tab.ts @@ -1,5 +1,5 @@ import { Component, computed, DestroyRef, inject, Resource } from '@angular/core'; -import { EditorSavedState, EditorStateAttachment, EditorStateService } from '../../editor-state.service'; +import { EditorSavedState, EditorStateAttachment, EditorStateService } from '../../services/editor-state.service'; import { NgxFilesizeModule } from 'ngx-filesize'; import { ImportFileService } from '../../../../core/import-file/import-file.service'; import { filter, from, map, switchMap } from 'rxjs'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/deleted-attachments.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/deleted-attachments.service.ts similarity index 97% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/deleted-attachments.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/deleted-attachments.service.ts index a6977c70..49c2559f 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/attachments/deleted-attachments.service.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-attachments/deleted-attachments.service.ts @@ -1,5 +1,5 @@ import { Injectable, signal } from '@angular/core'; -import { EditorStateAttachment } from '../../editor-state.service'; +import { EditorStateAttachment } from '../../services/editor-state.service'; @Injectable({ providedIn: 'root', diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form-highlight-business-rule.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form-highlight-business-rule.service.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form-highlight-business-rule.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form-highlight-business-rule.service.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form-highlight-chorus-pro-remark.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form-highlight-chorus-pro-remark.service.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form-highlight-chorus-pro-remark.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form-highlight-chorus-pro-remark.service.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form-highlight-remark.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form-highlight-remark.service.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form-highlight-remark.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form-highlight-remark.service.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form-highlight-term.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form-highlight-term.service.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form-highlight-term.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form-highlight-term.service.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-business-rule-status-icon.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-business-rule-status-icon.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-business-rule-status-icon.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-business-rule-status-icon.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-business-rules.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-business-rules.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-business-rules.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-business-rules.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-control.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-control.component.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-control.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-control.component.ts index caf3912a..2ebd5b13 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-control.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-control.component.ts @@ -2,7 +2,7 @@ import { Component, computed, inject, input, Signal } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { CiiFormRemarkComponent } from './cii-form-remark.component'; import { CiiFormBusinessRulesComponent } from './cii-form-business-rules.component'; -import { EditorSettings } from '../../../../editor-settings.service'; +import { EditorSettings } from '../../../../services/editor-settings.service'; import { CiiFormHighlightTermService } from '../../cii-form-highlight-term.service'; import { CiiFormHighlightRemarkService } from '../../cii-form-highlight-remark.service'; import { CiiFormHighlightChorusProRemarkService } from '../../cii-form-highlight-chorus-pro-remark.service'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-parent-container.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-parent-container.component.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-parent-container.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-parent-container.component.ts index 2f2076ee..70e8d824 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-parent-container.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-parent-container.component.ts @@ -2,7 +2,7 @@ import { Component, computed, ElementRef, inject, input, numberAttribute, Signal import { ReactiveFormsModule } from '@angular/forms'; import { CiiFormRemarkComponent } from './cii-form-remark.component'; import { CiiFormBusinessRulesComponent } from './cii-form-business-rules.component'; -import { EditorSettings } from '../../../../editor-settings.service'; +import { EditorSettings } from '../../../../services/editor-settings.service'; import { CiiFormHighlightTermService } from '../../cii-form-highlight-term.service'; import { CiiFormHighlightRemarkService } from '../../cii-form-highlight-remark.service'; import { CiiFormHighlightChorusProRemarkService } from '../../cii-form-highlight-chorus-pro-remark.service'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-remark.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-remark.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/base/cii-form-remark.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/base/cii-form-remark.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-agreement.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-agreement.component.ts similarity index 97% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-agreement.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-agreement.component.ts index af49b8ee..32df67b5 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-agreement.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-agreement.component.ts @@ -3,7 +3,7 @@ import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; import { CiiFormSellerTradePartyComponent } from './cii-form-seller-trade-party.component'; import { CiiFormBuyerTradePartyComponent } from './cii-form-buyer-trade-party.component'; import { CiiFormBuyerOrderReferencedDocumentComponent } from './cii-form-buyer-order-referenced-document.component'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormParentContainerComponent } from './base/cii-form-parent-container.component'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-delivery.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-delivery.component.ts similarity index 89% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-delivery.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-delivery.component.ts index ba5a7aba..7abfd24e 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-delivery.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-delivery.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; @Component({ selector: 'app-cii-form-applicable-header-trade-delivery', diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-settlement.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-settlement.component.ts similarity index 95% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-settlement.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-settlement.component.ts index b86063cc..373e0792 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-applicable-header-trade-settlement.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-applicable-header-trade-settlement.component.ts @@ -1,7 +1,7 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; import { CiiFormSpecifiedTradeSettlementHeaderMonetarySummation } from './cii-form-specified-trade-settlement-header-monetary-summation.component'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormParentContainerComponent } from './base/cii-form-parent-container.component'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-order-referenced-document.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-order-referenced-document.component.ts similarity index 93% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-order-referenced-document.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-order-referenced-document.component.ts index 407a31b6..d11a9f35 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-order-referenced-document.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-order-referenced-document.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-trade-party-specified-legal-organization.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-trade-party-specified-legal-organization.component.ts similarity index 95% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-trade-party-specified-legal-organization.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-trade-party-specified-legal-organization.component.ts index 92359193..54316532 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-trade-party-specified-legal-organization.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-trade-party-specified-legal-organization.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-trade-party.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-trade-party.component.ts similarity index 95% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-trade-party.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-trade-party.component.ts index b19ee1f9..b3f0adac 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-buyer-trade-party.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-buyer-trade-party.component.ts @@ -1,7 +1,7 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; import { CiiFormBuyerTradePartySpecifiedLegalOrganizationComponent } from './cii-form-buyer-trade-party-specified-legal-organization.component'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormParentContainerComponent } from './base/cii-form-parent-container.component'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-exchanged-document-context.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-exchanged-document-context.component.ts similarity index 95% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-exchanged-document-context.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-exchanged-document-context.component.ts index ac12bbd1..8b1dc7f5 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-exchanged-document-context.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-exchanged-document-context.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-exchanged-document.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-exchanged-document.component.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-exchanged-document.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-exchanged-document.component.ts index 63ba4a7e..c62a6dc4 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-exchanged-document.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-exchanged-document.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-postal-trade-address.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-postal-trade-address.ts similarity index 93% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-postal-trade-address.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-postal-trade-address.ts index b6596238..45c11c02 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-postal-trade-address.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-postal-trade-address.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-specified-legal-organization.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-specified-legal-organization.component.ts similarity index 95% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-specified-legal-organization.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-specified-legal-organization.component.ts index f5a25a4c..6e54253f 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-specified-legal-organization.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-specified-legal-organization.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-specified-tax-registration.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-specified-tax-registration.ts similarity index 95% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-specified-tax-registration.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-specified-tax-registration.ts index 3d71f059..2fec1de6 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party-specified-tax-registration.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party-specified-tax-registration.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party.component.ts similarity index 97% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party.component.ts index 357b2267..6762b9fd 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-seller-trade-party.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-seller-trade-party.component.ts @@ -3,7 +3,7 @@ import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; import { CiiFormSellerTradePartySpecifiedLegalOrganizationComponent } from './cii-form-seller-trade-party-specified-legal-organization.component'; import { CiiFormSellerTradePartyPostalTradeAddress } from './cii-form-seller-trade-party-postal-trade-address'; import { CiiFormSellerTradePartySpecifiedTaxRegistration } from './cii-form-seller-trade-party-specified-tax-registration'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormParentContainerComponent } from './base/cii-form-parent-container.component'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-specified-trade-settlement-header-monetary-summation.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-specified-trade-settlement-header-monetary-summation.component.ts similarity index 96% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-specified-trade-settlement-header-monetary-summation.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-specified-trade-settlement-header-monetary-summation.component.ts index f07d22a5..9634ad84 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-specified-trade-settlement-header-monetary-summation.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-specified-trade-settlement-header-monetary-summation.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormControlComponent } from './base/cii-form-control.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-supply-chain-trade-transaction.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-supply-chain-trade-transaction.component.ts similarity index 96% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-supply-chain-trade-transaction.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-supply-chain-trade-transaction.component.ts index 1dc61fbb..fc53090c 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form-supply-chain-trade-transaction.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form-supply-chain-trade-transaction.component.ts @@ -3,7 +3,7 @@ import { ControlContainer, ReactiveFormsModule } from '@angular/forms'; import { CiiFormApplicableHeaderTradeAgreementComponent } from './cii-form-applicable-header-trade-agreement.component'; import { CiiFormApplicableHeaderTradeDeliveryComponent } from './cii-form-applicable-header-trade-delivery.component'; import { CiiFormApplicableHeaderTradeSettlementComponent } from './cii-form-applicable-header-trade-settlement.component'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormParentContainerComponent } from './base/cii-form-parent-container.component'; import { requireTerm } from '../constants/cii-terms'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form.component.ts similarity index 96% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form.component.ts index efe9593c..03f37a89 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form.component.ts @@ -3,7 +3,7 @@ import { FormGroup, ReactiveFormsModule } from '@angular/forms'; import { CiiFormExchangedDocumentContextComponent } from './cii-form-exchanged-document-context.component'; import { CiiFormSupplyChainTradeTransactionComponent } from './cii-form-supply-chain-trade-transaction.component'; import { CiiFormExchangedDocumentComponent } from './cii-form-exchanged-document.component'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { CiiFormParentContainerComponent } from './base/cii-form-parent-container.component'; import { CiiFormService } from './cii-form.service'; import { ICrossIndustryInvoice } from '../../../../../core/api/api.models'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form.service.ts similarity index 99% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form.service.ts index 2a0809f9..7e9844d3 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-form/cii-form.service.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-form/cii-form.service.ts @@ -8,7 +8,7 @@ import { VatOnlyTaxSchemeIdentifier, } from '../../../../../core/api/api.models'; import { debounceTime, firstValueFrom, from, Subject, switchMap, tap } from 'rxjs'; -import { EditorSavedState, EditorStateService } from '../../../editor-state.service'; +import { EditorSavedState, EditorStateService } from '../../../services/editor-state.service'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { ValidateApi } from '../../../../../core/api/validate.api'; import { BusinessRuleIdentifier, getBusinessRuleIdentifiers, isBusinessRuleIdentifier, requireBusinessRule } from '../constants/cii-rules'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-menu/cii-menu-details-dropdown.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-menu/cii-menu-details-dropdown.component.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-menu/cii-menu-details-dropdown.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-menu/cii-menu-details-dropdown.component.ts index 01fb85a3..506944e7 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-menu/cii-menu-details-dropdown.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-menu/cii-menu-details-dropdown.component.ts @@ -1,5 +1,5 @@ import { Component, inject, input } from '@angular/core'; -import { EditorSettings, EditorSettingsService } from '../../../editor-settings.service'; +import { EditorSettings, EditorSettingsService } from '../../../services/editor-settings.service'; import { NgbDropdown, NgbDropdownItem, NgbDropdownMenu, NgbDropdownToggle, NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; @Component({ diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-menu/cii-menu.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-menu/cii-menu.component.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-menu/cii-menu.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-menu/cii-menu.component.ts index 756d21d4..c9e3846c 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-menu/cii-menu.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-menu/cii-menu.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input } from '@angular/core'; import { CiiMenuDetailsDropdownComponent } from './cii-menu-details-dropdown.component'; -import { EditorSettings, EditorSettingsService } from '../../../editor-settings.service'; +import { EditorSettings, EditorSettingsService } from '../../../services/editor-settings.service'; import { CiiFormService } from '../cii-form/cii-form.service'; import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { ToastService } from '../../../../../core/toasts/toast.service'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-summary/cii-summary-control.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-summary/cii-summary-control.component.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-summary/cii-summary-control.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-summary/cii-summary-control.component.ts index a82857f9..c1161101 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-summary/cii-summary-control.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-summary/cii-summary-control.component.ts @@ -1,6 +1,6 @@ import { Component, computed, inject, input } from '@angular/core'; import { CiiFormNode, CiiFormService } from '../cii-form/cii-form.service'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { ScrollToDirective } from '../../../../../core/scroll-to/scroll-to.directive'; import { CiiFormHighlightChorusProRemarkService } from '../cii-form-highlight-chorus-pro-remark.service'; import { CiiFormHighlightTermService } from '../cii-form-highlight-term.service'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-summary/cii-summary.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-summary/cii-summary.component.ts similarity index 91% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-summary/cii-summary.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-summary/cii-summary.component.ts index 202e937e..5538f617 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii-summary/cii-summary.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii-summary/cii-summary.component.ts @@ -2,7 +2,7 @@ import { Component, inject, input } from '@angular/core'; import { CiiSummaryControlComponent } from './cii-summary-control.component'; import { CiiFormService } from '../cii-form/cii-form.service'; import { ICrossIndustryInvoice } from '../../../../../core/api/api.models'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; @Component({ selector: 'app-cii-summary', diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii.tab.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii.tab.ts similarity index 92% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii.tab.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii.tab.ts index ec630241..a2e490e1 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/cii.tab.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/cii.tab.ts @@ -1,11 +1,11 @@ import { Component, computed, inject, Resource, Signal } from '@angular/core'; -import { EditorSettings, EditorSettingsService } from '../../editor-settings.service'; +import { EditorSettings, EditorSettingsService } from '../../services/editor-settings.service'; import { CiiFormComponent } from './cii-form/cii-form.component'; import { CiiSummaryComponent } from './cii-summary/cii-summary.component'; import { CiiMenuComponent } from './cii-menu/cii-menu.component'; import { CiiFormService } from './cii-form/cii-form.service'; -import { EditorSavedState, EditorStateService } from '../../editor-state.service'; -import { EditorResponsivenessService } from '../../editor-responsiveness.service'; +import { EditorSavedState, EditorStateService } from '../../services/editor-state.service'; +import { EditorResponsivenessService } from '../../services/editor-responsiveness.service'; @Component({ selector: 'app-cii', diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/constants/cii-rules.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/constants/cii-rules.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/constants/cii-rules.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/constants/cii-rules.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/constants/cii-terms.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/constants/cii-terms.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/cii/constants/cii-terms.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-cii/constants/cii-terms.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/editor-pdf-viewer.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/editor-pdf-viewer.component.ts similarity index 92% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/editor-pdf-viewer.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/editor-pdf-viewer.component.ts index f721a9c0..b43ce2f3 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/editor-pdf-viewer.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/editor-pdf-viewer.component.ts @@ -1,14 +1,14 @@ import { Component, computed, inject, input, linkedSignal } from '@angular/core'; -import { PdfViewerComponent } from './pdf-viewer.component'; +import { EmbeddedPdfViewerComponent } from './embedded-pdf-viewer.component'; import { ToastService } from '../../../../core/toasts/toast.service'; -import { EditorSettingsService, PdfModel } from '../../editor-settings.service'; -import { EditorMenuService } from '../editor-menu/editor-menu.service'; +import { EditorSettingsService, PdfModel } from '../../services/editor-settings.service'; +import { EditorMenuService } from '../../components/editor-menu/editor-menu.service'; import { HttpErrorResponse } from '@angular/common/http'; import { EditorPdfViewerService } from './editor-pdf-viewer.service'; @Component({ selector: 'app-editor-pdf-viewer', - imports: [PdfViewerComponent], + imports: [EmbeddedPdfViewerComponent], template: `
@if (pdf.error(); as error) { diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/editor-pdf-viewer.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/editor-pdf-viewer.service.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/editor-pdf-viewer.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/editor-pdf-viewer.service.ts index 7c2ce22d..d63151bf 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/editor-pdf-viewer.service.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/editor-pdf-viewer.service.ts @@ -1,10 +1,10 @@ import { computed, DestroyRef, inject, Injectable, resource, Resource } from '@angular/core'; -import { EditorSavedState, EditorStateService } from '../../editor-state.service'; +import { EditorSavedState, EditorStateService } from '../../services/editor-state.service'; import { firstValueFrom, map } from 'rxjs'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; -import { EditorSettingsService } from '../../editor-settings.service'; +import { EditorSettingsService } from '../../services/editor-settings.service'; import { GenerateApi, GenerateStandardPdfOptions } from '../../../../core/api/generate.api'; -import { EditorPdfGenerationProfileData, EditorPdfGenerationProfilesService } from '../../editor-pdf-generation-profiles.service'; +import { EditorPdfGenerationProfileData, EditorPdfGenerationProfilesService } from '../../services/editor-pdf-generation-profiles.service'; import { IStandardPdfGeneratorLanguagePackDto, StandardPdfGeneratorLanguagePackDto } from '../../../../core/api/api.models'; @Injectable({ diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/pdf-viewer.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/embedded-pdf-viewer.component.ts similarity index 97% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/pdf-viewer.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/embedded-pdf-viewer.component.ts index e72554e6..72458bd2 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/components/editor-pdf-viewer/pdf-viewer.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-pdf-viewer/embedded-pdf-viewer.component.ts @@ -15,7 +15,7 @@ import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; } `, }) -export class PdfViewerComponent { +export class EmbeddedPdfViewerComponent { pdf = input.required<{ id?: string; content: Blob }>(); disablePointerEvents = input(false); diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-general/editor-settings-general.tab.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-general/editor-settings-general.tab.ts similarity index 96% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-general/editor-settings-general.tab.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-general/editor-settings-general.tab.ts index aa5b57ae..da048cd2 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-general/editor-settings-general.tab.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-general/editor-settings-general.tab.ts @@ -1,5 +1,5 @@ import { Component, computed, inject } from '@angular/core'; -import { EditorSettingsService } from '../../../../editor-settings.service'; +import { EditorSettingsService } from '../../../../services/editor-settings.service'; import { FormsModule } from '@angular/forms'; @Component({ diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-general-form.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-general-form.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-general-form.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-general-form.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-language-pack-document-types-form.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-language-pack-document-types-form.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-language-pack-document-types-form.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-language-pack-document-types-form.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-language-pack-form.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-language-pack-form.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-language-pack-form.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-language-pack-form.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-pdf-profile-form.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-pdf-profile-form.component.ts similarity index 99% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-pdf-profile-form.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-pdf-profile-form.component.ts index 155eaee0..f57e43c4 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/components/editor-settings-pdf-profile-form.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/components/editor-settings-pdf-profile-form.component.ts @@ -4,7 +4,7 @@ import { rxResource, takeUntilDestroyed, toSignal } from '@angular/core/rxjs-int import { GenerateApi } from '../../../../../../../core/api/generate.api'; import { delay, distinctUntilChanged, map, startWith } from 'rxjs'; import { IStandardPdfGeneratorLanguagePackDto } from '../../../../../../../core/api/api.models'; -import { EditorPdfGenerationProfileData } from '../../../../../editor-pdf-generation-profiles.service'; +import { EditorPdfGenerationProfileData } from '../../../../../services/editor-pdf-generation-profiles.service'; import { EditorSettingsLanguagePackDocumentTypesFormComponent } from './editor-settings-language-pack-document-types-form.component'; import { EditorSettingsLanguagePackFormComponent } from './editor-settings-language-pack-form.component'; import { EditorSettingsGeneralFormComponent } from './editor-settings-general-form.component'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-create.tab.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-create.tab.ts similarity index 92% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-create.tab.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-create.tab.ts index 5f63f967..f43f7075 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-create.tab.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-create.tab.ts @@ -1,9 +1,9 @@ import { Component, inject, viewChild } from '@angular/core'; import { Router, RouterLink } from '@angular/router'; import { EditorSettingsPdfProfileFormComponent } from './components/editor-settings-pdf-profile-form.component'; -import { EditorPdfGenerationProfileData, EditorPdfGenerationProfilesService } from '../../../../editor-pdf-generation-profiles.service'; +import { EditorPdfGenerationProfileData, EditorPdfGenerationProfilesService } from '../../../../services/editor-pdf-generation-profiles.service'; import { ToastService } from '../../../../../../core/toasts/toast.service'; -import { EditorPdfViewerService } from '../../../../components/editor-pdf-viewer/editor-pdf-viewer.service'; +import { EditorPdfViewerService } from '../../../editor-pdf-viewer/editor-pdf-viewer.service'; @Component({ selector: 'app-editor-settings-pdf-profile-create', diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-edit.tab.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-edit.tab.ts similarity index 95% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-edit.tab.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-edit.tab.ts index 6a725e8c..81240b5a 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-edit.tab.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-edit.tab.ts @@ -1,9 +1,9 @@ import { Component, computed, effect, inject, input, viewChild } from '@angular/core'; import { EditorSettingsPdfProfileFormComponent } from './components/editor-settings-pdf-profile-form.component'; import { Router, RouterLink } from '@angular/router'; -import { EditorPdfGenerationProfile, EditorPdfGenerationProfileData, EditorPdfGenerationProfilesService } from '../../../../editor-pdf-generation-profiles.service'; +import { EditorPdfGenerationProfile, EditorPdfGenerationProfileData, EditorPdfGenerationProfilesService } from '../../../../services/editor-pdf-generation-profiles.service'; import { ToastService } from '../../../../../../core/toasts/toast.service'; -import { EditorPdfViewerService } from '../../../../components/editor-pdf-viewer/editor-pdf-viewer.service'; +import { EditorPdfViewerService } from '../../../editor-pdf-viewer/editor-pdf-viewer.service'; import { NgbDropdown, NgbDropdownItem, NgbDropdownMenu, NgbDropdownToggle } from '@ng-bootstrap/ng-bootstrap'; @Component({ diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profiles.tab.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profiles.tab.ts similarity index 96% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profiles.tab.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profiles.tab.ts index fd3da1b6..a657ee47 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profiles.tab.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profiles.tab.ts @@ -1,6 +1,6 @@ import { Component, computed, inject } from '@angular/core'; -import { EditorPdfViewerService } from '../../../../components/editor-pdf-viewer/editor-pdf-viewer.service'; -import { EditorPdfGenerationProfile, EditorPdfGenerationProfilesService } from '../../../../editor-pdf-generation-profiles.service'; +import { EditorPdfViewerService } from '../../../editor-pdf-viewer/editor-pdf-viewer.service'; +import { EditorPdfGenerationProfile, EditorPdfGenerationProfilesService } from '../../../../services/editor-pdf-generation-profiles.service'; import { RouterLink } from '@angular/router'; import { NgbDropdown, NgbDropdownItem, NgbDropdownMenu, NgbDropdownToggle } from '@ng-bootstrap/ng-bootstrap'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/editor-settings.tab.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings.tab.ts similarity index 95% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/editor-settings.tab.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings.tab.ts index ffb19b93..a61ef01b 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/settings/editor-settings.tab.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-settings/editor-settings.tab.ts @@ -1,5 +1,5 @@ import { Component, inject } from '@angular/core'; -import { EditorResponsivenessService } from '../../editor-responsiveness.service'; +import { EditorResponsivenessService } from '../../services/editor-responsiveness.service'; import { Router, RouterLink, RouterOutlet } from '@angular/router'; import { NgbNav, NgbNavItem, NgbNavLinkButton } from '@ng-bootstrap/ng-bootstrap'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-basic.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-basic.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-basic.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-basic.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-dublin-core.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-dublin-core.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-dublin-core.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-dublin-core.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-facturx.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-facturx.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-facturx.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-facturx.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-pdf-a-identification.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-pdf-a-identification.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-pdf-a-identification.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-pdf-a-identification.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-pdf.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-pdf.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-pdf.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-pdf.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-rating.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-rating.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form-rating.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form-rating.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form.component.ts similarity index 94% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form.component.ts index e451d1b9..844e03b8 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form.component.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form.component.ts @@ -1,6 +1,6 @@ import { Component, inject, input, model } from '@angular/core'; import { IXmpMetadata } from '../../../../../core/api/api.models'; -import { EditorSettings } from '../../../editor-settings.service'; +import { EditorSettings } from '../../../services/editor-settings.service'; import { FormGroup, ReactiveFormsModule } from '@angular/forms'; import { XmpFormService } from './xmp-form.service'; import { XmpFormFacturxComponent } from './xmp-form-facturx.component'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form.service.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form.service.ts index 246abafe..9eaedb23 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-form/xmp-form.service.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-form/xmp-form.service.ts @@ -1,8 +1,8 @@ import { effect, inject, Injectable } from '@angular/core'; import { debounceTime, from, Subject, switchMap } from 'rxjs'; -import { EditorSavedState, EditorStateService } from '../../../editor-state.service'; +import { EditorSavedState, EditorStateService } from '../../../services/editor-state.service'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; -import { CiiFormService } from '../../cii/cii-form/cii-form.service'; +import { CiiFormService } from '../../editor-cii/cii-form/cii-form.service'; import { FormControl, FormGroup } from '@angular/forms'; import { IXmpMetadata, XmpFacturXConformanceLevel, XmpFacturXDocumentType, XmpPdfAConformanceLevel } from '../../../../../core/api/api.models'; diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-summary.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-summary.component.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp-summary.component.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp-summary.component.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp.tab.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp.tab.ts similarity index 85% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp.tab.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp.tab.ts index bfc21ddb..5f44394e 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/tabs/xmp/xmp.tab.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-tabs/editor-xmp/xmp.tab.ts @@ -1,9 +1,9 @@ import { Component, computed, inject, Resource, Signal } from '@angular/core'; -import { EditorSettings, EditorSettingsService } from '../../editor-settings.service'; +import { EditorSettings, EditorSettingsService } from '../../services/editor-settings.service'; import { XmpFormComponent } from './xmp-form/xmp-form.component'; import { XmpSummaryComponent } from './xmp-summary.component'; -import { EditorSavedState, EditorStateService } from '../../editor-state.service'; -import { EditorResponsivenessService } from '../../editor-responsiveness.service'; +import { EditorSavedState, EditorStateService } from '../../services/editor-state.service'; +import { EditorResponsivenessService } from '../../services/editor-responsiveness.service'; @Component({ selector: 'app-xmp', diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-welcome.component.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-welcome.component.ts deleted file mode 100644 index 7d4dfaba..00000000 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-welcome.component.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Component, inject } from '@angular/core'; -import { EditorMenuService } from './components/editor-menu/editor-menu.service'; -import { ToastService } from '../../core/toasts/toast.service'; - -@Component({ - selector: 'app-editor-welcome', - template: ` -
-

Get started

- -
- -
- -
- - - -
-
- `, -}) -export class EditorWelcomeComponent { - private editorMenuService = inject(EditorMenuService); - private toastService = inject(ToastService); - - async createNewDocument() { - try { - await this.editorMenuService.createNewDocument(); - } catch (error) { - this.toastService.showError(error, (message) => `Could not create blank document: ${message}.`); - } - } - - async createNewDocumentFromFacturX() { - try { - await this.editorMenuService.createNewDocumentFromFacturX(); - } catch (error) { - this.toastService.showError(error, (message) => `Could not import FacturX file: ${message}.`); - } - } - - async createNewDocumentFromCrossIndustryInvoice() { - try { - await this.editorMenuService.createNewDocumentFromCrossIndustryInvoice(); - } catch (error) { - this.toastService.showError(error, (message) => `Could not import Cross-Industry Invoice file: ${message}.`); - } - } - - async createNewDocumentFromPdf() { - try { - await this.editorMenuService.createNewDocumentFromPdf(); - } catch (error) { - this.toastService.showError(error, (message) => `Could not import PDF file: ${message}.`); - } - } -} diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-welcome.page.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-welcome.page.ts new file mode 100644 index 00000000..bdf5f57b --- /dev/null +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-welcome.page.ts @@ -0,0 +1,85 @@ +import { Component, inject, Resource } from '@angular/core'; +import { EditorMenuService } from './components/editor-menu/editor-menu.service'; +import { ToastService } from '../../core/toasts/toast.service'; +import { Router, RouterLink } from '@angular/router'; +import { EditorSavedState, EditorStateService } from './services/editor-state.service'; + +@Component({ + selector: 'app-editor-welcome', + template: ` + + `, + imports: [RouterLink], +}) +export class EditorWelcomePage { + private editorStateService = inject(EditorStateService); + private editorMenuService = inject(EditorMenuService); + private toastService = inject(ToastService); + private router = inject(Router); + + protected state: Resource = this.editorStateService.savedState; + + async createNewDocument() { + try { + await this.editorMenuService.createNewDocument(); + await this.router.navigate(['/']); + } catch (error) { + this.toastService.showError(error, (message) => `Could not create blank document: ${message}.`); + } + } + + async createNewDocumentFromFacturX() { + try { + await this.editorMenuService.createNewDocumentFromFacturX(); + await this.router.navigate(['/']); + } catch (error) { + this.toastService.showError(error, (message) => `Could not import FacturX file: ${message}.`); + } + } + + async createNewDocumentFromCrossIndustryInvoice() { + try { + await this.editorMenuService.createNewDocumentFromCrossIndustryInvoice(); + await this.router.navigate(['/']); + } catch (error) { + this.toastService.showError(error, (message) => `Could not import Cross-Industry Invoice file: ${message}.`); + } + } + + async createNewDocumentFromPdf() { + try { + await this.editorMenuService.createNewDocumentFromPdf(); + await this.router.navigate(['/']); + } catch (error) { + this.toastService.showError(error, (message) => `Could not import PDF file: ${message}.`); + } + } +} diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.layout.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.layout.ts new file mode 100644 index 00000000..bb73ff07 --- /dev/null +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.layout.ts @@ -0,0 +1,92 @@ +import { Component, computed, effect, HostListener, inject, linkedSignal, Resource, signal, Signal } from '@angular/core'; +import { NgOptimizedImage } from '@angular/common'; +import { EditorSettings, EditorSettingsService, PdfModel } from './services/editor-settings.service'; +import { EditorMenuComponent } from './components/editor-menu/editor-menu.component'; +import { FormsModule } from '@angular/forms'; +import { EditorSavedState, EditorStateService } from './services/editor-state.service'; +import { API_BASE_URL } from '../../app.config'; +import { ApiServerStatusComponent } from '../../core/api/components/api-server-status.component'; +import { ApiConstantsService } from '../../core/api/services/api-constants.service'; +import { EditorMenuService } from './components/editor-menu/editor-menu.service'; +import { RouterOutlet } from '@angular/router'; +import { GlobalOverlayService } from '../../core/global-overlay/global-overlay.service'; + +@Component({ + selector: 'app-editor', + imports: [NgOptimizedImage, EditorMenuComponent, FormsModule, ApiServerStatusComponent, RouterOutlet], + template: ` +
+
+
+ +
+ +
+
+ + + +
+ +
+ + + +
+
+
+ +
+ +
+ +
+
+
+ Do not share sensitive data + This application is hosted in an unsafe cloud environment. Although I do not store your data, or use it for any purpose other than the application, the hosting + environment is beyond my control. +
+ +
+ +
+ © 2025 Ismail Bennani, made with and . The tools are open source and released under the + MIT License, feel free to use, modify, and share. +
+
+
+ `, + styles: ``, +}) +export class EditorLayout { + protected apiUrl = inject(API_BASE_URL); + + private apiConstantsService = inject(ApiConstantsService); + protected unsafeEnvironment = computed(() => this.apiConstantsService.info.value()?.hosting.unsafeEnvironment ?? false); + + private globalOverlayService = inject(GlobalOverlayService); + private editorMenuService = inject(EditorMenuService); + protected isImporting = this.editorMenuService.isImporting; + protected isExporting = this.editorMenuService.isExporting; + + constructor() { + effect(() => { + const importing = this.isImporting(); + const exporting = this.isExporting(); + + if (importing) { + this.globalOverlayService.enable('Importing...'); + } else if (exporting) { + this.globalOverlayService.enable('Importing...'); + } else { + this.globalOverlayService.disable(); + } + }); + } +} diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.page.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.page.ts index cfd39047..d9ce5598 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.page.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.page.ts @@ -1,153 +1,69 @@ -import {Component, computed, effect, HostListener, inject, linkedSignal, Resource, signal, Signal} from '@angular/core'; -import {NgOptimizedImage} from '@angular/common'; -import {EditorSettings, EditorSettingsService, PdfModel} from './editor-settings.service'; -import {EditorMenuComponent} from './components/editor-menu/editor-menu.component'; -import {FormsModule} from '@angular/forms'; -import {TwoColumnsComponent} from '../../core/two-columns/two-columns.component'; -import {EditorSavedState, EditorStateService} from './editor-state.service'; -import {EditorLeftPaneHeaderComponent} from './components/editor-header/editor-left-pane-header.component'; -import {EditorWelcomeComponent} from './editor-welcome.component'; -import {API_BASE_URL} from '../../app.config'; -import {ApiServerStatusComponent} from '../../core/api/components/api-server-status.component'; -import {ApiConstantsService} from '../../core/api/services/api-constants.service'; -import {EditorMenuService} from './components/editor-menu/editor-menu.service'; -import {RouterOutlet} from '@angular/router'; -import {EditorPdfViewerComponent} from './components/editor-pdf-viewer/editor-pdf-viewer.component'; -import {EditorHeaderNameComponent} from './components/editor-header/editor-header-name.component'; -import {EditorRightPaneHeaderComponent} from './components/editor-header/editor-right-pane-header.component'; -import {EditorResponsivenessService} from './editor-responsiveness.service'; +import { Component, computed, effect, HostListener, inject, linkedSignal, Resource, Signal, signal } from '@angular/core'; +import { EditorLeftPaneHeaderComponent } from './components/editor-header/editor-left-pane-header.component'; +import { EditorPdfViewerComponent } from './editor-tabs/editor-pdf-viewer/editor-pdf-viewer.component'; +import { EditorRightPaneHeaderComponent } from './components/editor-header/editor-right-pane-header.component'; +import { EditorWelcomePage } from './editor-welcome.page'; +import { Router, RouterOutlet } from '@angular/router'; +import { TwoColumnsComponent } from '../../core/two-columns/two-columns.component'; +import { EditorSavedState, EditorStateService } from './services/editor-state.service'; +import { EditorSettings, EditorSettingsService, PdfModel } from './services/editor-settings.service'; +import { EditorResponsivenessService } from './services/editor-responsiveness.service'; @Component({ selector: 'app-editor', - imports: [ - NgOptimizedImage, - EditorMenuComponent, - FormsModule, - EditorLeftPaneHeaderComponent, - TwoColumnsComponent, - EditorWelcomeComponent, - ApiServerStatusComponent, - RouterOutlet, - EditorPdfViewerComponent, - EditorHeaderNameComponent, - EditorRightPaneHeaderComponent, - ], + imports: [EditorLeftPaneHeaderComponent, EditorPdfViewerComponent, EditorRightPaneHeaderComponent, RouterOutlet, TwoColumnsComponent], template: ` -
-
-
- -
- -
-
- - - -
- -
- - - -
-
-
- -
- @if (isImporting() || isExporting()) { -
-
-
- @if (isImporting()) { -
- Loading... -
- Importing... - } @else if (isExporting()) { -
- Loading... -
- Exporting... - } -
-
-
- } - - @if (state.value(); as value) { -
-
- -
-
- -
+ @if (state.value(); as value) { +
+ +
+
+
+
-
- -
- -
-
- -
- -
+ +
-
+
+
+
+
+
+ +
+
- -
- } @else if (state.isLoading()) { -
-
- Loading...
- } @else { -
- -
- } -
- -
-
-
- Do not share sensitive data - This application is hosted in an unsafe cloud environment. Although I do not store your data, or use it for any purpose other than the application, the hosting - environment is beyond my control. -
- + } @else if (state.isLoading()) { +
+
+
+ Loading...
- -
- © 2025 Ismail Bennani, made with and . The tools are open source and released under the MIT - License, feel free to use, modify, and share. -
-
-
- `, - styles: ` - .backdrop { - background-color: rgba(0, 0, 0, 0.5); + } `, + styles: ``, }) export class EditorPage { - protected apiUrl = inject(API_BASE_URL); protected pdfTab = computed(() => this.settings().pdfTab); protected disablePointerEvents = signal(false); protected totalWidth = signal(window.innerWidth); + private rightColumnWidthLocalStorageKey = 'editor'; protected rightColumnWidth = linkedSignal({ source: () => this.totalWidth(), @@ -159,19 +75,24 @@ export class EditorPage { return this.loadRightColumnWidth(this.rightColumnWidthLocalStorageKey) ?? input / 2; }, }); - private apiConstantsService = inject(ApiConstantsService); - protected unsafeEnvironment = computed(() => this.apiConstantsService.info.value()?.hosting.unsafeEnvironment ?? false); + private editorStateService = inject(EditorStateService); protected state: Resource = this.editorStateService.savedState; - private editorMenuService = inject(EditorMenuService); - protected isImporting = this.editorMenuService.isImporting; - protected isExporting = this.editorMenuService.isExporting; + private editorSettingsService = inject(EditorSettingsService); private editorResponsivenessService = inject(EditorResponsivenessService); private settingsService = inject(EditorSettingsService); protected settings: Signal = this.settingsService.settings; + private router = inject(Router); + constructor() { + effect(() => { + if (!this.state.isLoading() && this.state.value() === null) { + this.router.navigate(['/', 'welcome']).then(); + } + }); + effect(() => { const rightColumnWidth = this.rightColumnWidth(); this.saveRightColumnWidth(this.rightColumnWidthLocalStorageKey, rightColumnWidth); diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.routes.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.routes.ts index 3a236765..8b29470f 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.routes.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/editor.routes.ts @@ -1,58 +1,75 @@ import { Routes } from '@angular/router'; -import { EditorPage } from './editor.page'; -import { XmpTab } from './tabs/xmp/xmp.tab'; -import { CiiTab } from './tabs/cii/cii.tab'; -import { AttachmentsTab } from './tabs/attachments/attachments.tab'; -import { EditorSettingsTab } from './tabs/settings/editor-settings.tab'; -import { EditorSettingsGeneralTab } from './tabs/settings/tabs/editor-settings-general/editor-settings-general.tab'; -import { EditorSettingsPdfProfilesTab } from './tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profiles.tab'; -import { EditorSettingsPdfProfileCreateTab } from './tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-create.tab'; -import { EditorSettingsPdfProfileEditTab } from './tabs/settings/tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-edit.tab'; +import { EditorLayout } from './editor.layout'; +import { XmpTab } from './editor-tabs/editor-xmp/xmp.tab'; +import { CiiTab } from './editor-tabs/editor-cii/cii.tab'; +import { AttachmentsTab } from './editor-tabs/editor-attachments/attachments.tab'; +import { EditorSettingsTab } from './editor-tabs/editor-settings/editor-settings.tab'; +import { EditorSettingsGeneralTab } from './editor-tabs/editor-settings/editor-settings-tabs/editor-settings-general/editor-settings-general.tab'; +import { EditorSettingsPdfProfilesTab } from './editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profiles.tab'; +import { EditorSettingsPdfProfileCreateTab } from './editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-create.tab'; +import { EditorSettingsPdfProfileEditTab } from './editor-tabs/editor-settings/editor-settings-tabs/editor-settings-pdf-profiles/editor-settings-pdf-profile-edit.tab'; import { resetPdfProfileOverride } from './guards/reset-pdf-profile-override'; +import { EditorWelcomePage } from './editor-welcome.page'; +import { EditorPage } from './editor.page'; export const routes: Routes = [ { path: '', - component: EditorPage, + component: EditorLayout, children: [ { - path: 'xmp', - component: XmpTab, - }, - { - path: 'cii', - component: CiiTab, - }, - { - path: 'attachments', - component: AttachmentsTab, + path: 'welcome', + component: EditorWelcomePage, }, { - path: 'settings', - component: EditorSettingsTab, + path: '', + component: EditorPage, children: [ { path: '', pathMatch: 'full', - component: EditorSettingsGeneralTab, + redirectTo: 'cii', }, { - path: 'profiles/create', - component: EditorSettingsPdfProfileCreateTab, - canDeactivate: [resetPdfProfileOverride], + path: 'xmp', + component: XmpTab, }, { - path: 'profiles/edit/:profileId', - component: EditorSettingsPdfProfileEditTab, - canDeactivate: [resetPdfProfileOverride], + path: 'cii', + component: CiiTab, }, { - path: 'profiles', - component: EditorSettingsPdfProfilesTab, + path: 'attachments', + component: AttachmentsTab, }, { - path: '**', - redirectTo: '', + path: 'settings', + component: EditorSettingsTab, + children: [ + { + path: '', + pathMatch: 'full', + component: EditorSettingsGeneralTab, + }, + { + path: 'profiles/create', + component: EditorSettingsPdfProfileCreateTab, + canDeactivate: [resetPdfProfileOverride], + }, + { + path: 'profiles/edit/:profileId', + component: EditorSettingsPdfProfileEditTab, + canDeactivate: [resetPdfProfileOverride], + }, + { + path: 'profiles', + component: EditorSettingsPdfProfilesTab, + }, + { + path: '**', + redirectTo: '', + }, + ], }, ], }, diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/guards/reset-pdf-profile-override.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/guards/reset-pdf-profile-override.ts index bf21515f..f674dda0 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/guards/reset-pdf-profile-override.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/guards/reset-pdf-profile-override.ts @@ -1,6 +1,6 @@ import { CanDeactivateFn } from '@angular/router'; import { inject } from '@angular/core'; -import { EditorPdfViewerService } from '../components/editor-pdf-viewer/editor-pdf-viewer.service'; +import { EditorPdfViewerService } from '../editor-tabs/editor-pdf-viewer/editor-pdf-viewer.service'; export const resetPdfProfileOverride: CanDeactivateFn = () => { const editorPdfViewerService = inject(EditorPdfViewerService); diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-pdf-generation-profiles.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-pdf-generation-profiles.service.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/editor-pdf-generation-profiles.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-pdf-generation-profiles.service.ts index b99bdc40..2afbd9d6 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-pdf-generation-profiles.service.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-pdf-generation-profiles.service.ts @@ -1,5 +1,5 @@ import { computed, Injectable, signal, WritableSignal } from '@angular/core'; -import { IStandardPdfGeneratorLanguagePackDto } from '../../core/api/api.models'; +import { IStandardPdfGeneratorLanguagePackDto } from '../../../core/api/api.models'; @Injectable({ providedIn: 'root', diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-responsiveness.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-responsiveness.service.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/editor-responsiveness.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-responsiveness.service.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-settings.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-settings.service.ts similarity index 100% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/editor-settings.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-settings.service.ts diff --git a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-state.service.ts b/src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-state.service.ts similarity index 98% rename from src/FacturXDotNet.WebEditor/src/app/features/editor/editor-state.service.ts rename to src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-state.service.ts index db0119d6..20dfe13c 100644 --- a/src/FacturXDotNet.WebEditor/src/app/features/editor/editor-state.service.ts +++ b/src/FacturXDotNet.WebEditor/src/app/features/editor/services/editor-state.service.ts @@ -1,6 +1,6 @@ import { Injectable, resource, Resource } from '@angular/core'; import { IDBPDatabase, openDB } from 'idb'; -import { ICrossIndustryInvoice, IXmpMetadata } from '../../core/api/api.models'; +import { ICrossIndustryInvoice, IXmpMetadata } from '../../../core/api/api.models'; @Injectable({ providedIn: 'root',