diff --git a/docs/en/UI/Angular/File-Utils-Service.md b/docs/en/UI/Angular/Abp-Window-Service.md similarity index 71% rename from docs/en/UI/Angular/File-Utils-Service.md rename to docs/en/UI/Angular/Abp-Window-Service.md index ea6ed4a7cf..a27a7704c6 100644 --- a/docs/en/UI/Angular/File-Utils-Service.md +++ b/docs/en/UI/Angular/Abp-Window-Service.md @@ -1,5 +1,8 @@ -# File Utils Service -FileUtilsService is an Angular service designed to provide utility methods related to file operations. The service has a `downloadBlob` function, which is used for downloading blobs as files within the context of a web application. +# Abp Window Service + + +## Download Blob as File +AbpWindowService is an Angular service designed to provide utility methods related to window operations. The service has a `downloadBlob` function, which is used for downloading blobs as files within the context of a web application. ## Usage @@ -9,11 +12,11 @@ Injection: Firstly, ensure that the service is injected into the component or any other Angular entity where you wish to use it. ```js -import { FileUtilsService } from '@abp/ng.core'; +import { AbpWindowService } from '@abp/ng.core'; -constructor(private fileUtils: FileUtilsService) { } +constructor(private abpWindowService: AbpWindowService) { } // or -// private fileUtils = inject(FileUtilsService) +// private abpWindowService = inject(AbpWindowService) ``` Downloading a Blob: @@ -23,7 +26,7 @@ Once you have the service injected, you can use the downloadBlob method to initi ```js someMethod() { const myBlob = new Blob(["Hello, World!"], { type: "text/plain" }); - this.fileUtils.downloadBlob(myBlob, "hello.txt"); + this.abpWindowService.downloadBlob(myBlob, "hello.txt"); } ``` diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index cfe52ffd78..582dcf98cc 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -1155,8 +1155,8 @@ "path": "UI/Angular/Content-Security-Strategy.md" }, { - "text":"File Utils Service", - "path":"UI/Angular/File-Utils-Service.md" + "text":"Abp Window Service", + "path":"UI/Angular/Abp-Window-Service.md" } ] }, diff --git a/npm/ng-packs/packages/core/src/lib/services/file-utils.service.ts b/npm/ng-packs/packages/core/src/lib/services/file-utils.service.ts deleted file mode 100644 index 32a5bea88b..0000000000 --- a/npm/ng-packs/packages/core/src/lib/services/file-utils.service.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Injectable, inject } from '@angular/core'; -import { DOCUMENT } from '@angular/common'; - -@Injectable({ - providedIn: 'root', -}) -export class FileUtilsService { - protected readonly document = inject(DOCUMENT); - get window() { - return this.document.defaultView; - } - downloadBlob(blob: Blob, fileName: string) { - const blobUrl = this.window.URL.createObjectURL(blob); - const a = this.document.createElement('a'); - a.style.display = 'none'; - a.href = blobUrl; - a.download = fileName; - this.document.body.appendChild(a); - a.dispatchEvent( - new MouseEvent('click', { - bubbles: true, - cancelable: true, - view: this.window, - }), - ); - this.window.URL.revokeObjectURL(blobUrl); - this.document.body.removeChild(a); - } -} diff --git a/npm/ng-packs/packages/core/src/lib/services/index.ts b/npm/ng-packs/packages/core/src/lib/services/index.ts index 43b7865d95..5d3e9d6d1e 100644 --- a/npm/ng-packs/packages/core/src/lib/services/index.ts +++ b/npm/ng-packs/packages/core/src/lib/services/index.ts @@ -20,5 +20,4 @@ export * from './subscription.service'; export * from './track-by.service'; export * from './local-storage.service'; export * from './window.service'; -export * from './internet-connection-service' -export * from './file-utils.service' +export * from './internet-connection-service' \ No newline at end of file diff --git a/npm/ng-packs/packages/core/src/lib/services/window.service.ts b/npm/ng-packs/packages/core/src/lib/services/window.service.ts index f4780ec10d..522bb19c94 100644 --- a/npm/ng-packs/packages/core/src/lib/services/window.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/window.service.ts @@ -3,7 +3,8 @@ import { DOCUMENT } from '@angular/common'; @Injectable({ providedIn: 'root' }) export class AbpWindowService { - protected readonly window = inject(DOCUMENT).defaultView; + protected readonly document = inject(DOCUMENT); + protected readonly window = this.document.defaultView; protected readonly navigator = this.window.navigator; copyToClipboard(text: string): Promise { @@ -17,4 +18,21 @@ export class AbpWindowService { reloadPage(): void { this.window.location.reload(); } + downloadBlob(blob: Blob, fileName: string) { + const blobUrl = this.window.URL.createObjectURL(blob); + const a = this.document.createElement('a'); + a.style.display = 'none'; + a.href = blobUrl; + a.download = fileName; + this.document.body.appendChild(a); + a.dispatchEvent( + new MouseEvent('click', { + bubbles: true, + cancelable: true, + view: this.window, + }), + ); + this.window.URL.revokeObjectURL(blobUrl); + this.document.body.removeChild(a); + } }