angular-toolbox 0.9.2 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +2 -2
  2. package/esm2022/lib/angular-toolbox.module.mjs +7 -3
  3. package/esm2022/lib/component/angular-toolbox-logo/angular-toolbox-logo.component.mjs +18 -0
  4. package/esm2022/lib/component/index.mjs +9 -0
  5. package/esm2022/lib/core/abstract/abstract-subscription-manager.mjs +113 -0
  6. package/esm2022/lib/core/abstract/abstract-version-manager.mjs +37 -0
  7. package/esm2022/lib/core/abstract/index.mjs +3 -0
  8. package/esm2022/lib/core/impl/version/version.impl.mjs +6 -3
  9. package/esm2022/lib/core/index.mjs +2 -1
  10. package/esm2022/lib/model/business/index.mjs +2 -1
  11. package/esm2022/lib/model/business/subscription/index.mjs +2 -0
  12. package/esm2022/lib/model/business/subscription/subscription-manager.mjs +9 -0
  13. package/esm2022/lib/model/business/version/index.mjs +2 -1
  14. package/esm2022/lib/model/business/version/version-config.mjs +1 -1
  15. package/esm2022/lib/model/business/version/version-manager.mjs +10 -0
  16. package/esm2022/lib/model/business/version/version.mjs +1 -1
  17. package/esm2022/lib/model/service/subscription/subscription.service.mjs +6 -98
  18. package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +38 -0
  19. package/esm2022/lib/model/service/version/version.service.mjs +4 -20
  20. package/esm2022/lib/pipe/safe/safe-html.pipe.mjs +2 -2
  21. package/esm2022/public-api.mjs +2 -1
  22. package/fesm2022/angular-toolbox.mjs +289 -169
  23. package/fesm2022/angular-toolbox.mjs.map +1 -1
  24. package/lib/component/angular-toolbox-logo/angular-toolbox-logo.component.d.ts +5 -0
  25. package/lib/component/index.d.ts +8 -0
  26. package/lib/core/abstract/abstract-subscription-manager.d.ts +73 -0
  27. package/lib/core/abstract/abstract-version-manager.d.ts +34 -0
  28. package/lib/core/abstract/index.d.ts +2 -0
  29. package/lib/core/impl/version/version.impl.d.ts +5 -1
  30. package/lib/core/index.d.ts +1 -0
  31. package/lib/model/business/index.d.ts +1 -0
  32. package/lib/model/business/subscription/index.d.ts +1 -0
  33. package/lib/model/business/subscription/subscription-manager.d.ts +52 -0
  34. package/lib/model/business/version/index.d.ts +1 -0
  35. package/lib/model/business/version/version-config.d.ts +4 -0
  36. package/lib/model/business/version/version-manager.d.ts +25 -0
  37. package/lib/model/business/version/version.d.ts +4 -0
  38. package/lib/model/service/subscription/subscription.service.d.ts +3 -59
  39. package/lib/model/service/version/angular-toolbox-version.service.d.ts +13 -0
  40. package/lib/model/service/version/version.service.d.ts +3 -18
  41. package/lib/pipe/safe/safe-html.pipe.d.ts +1 -1
  42. package/package.json +1 -1
  43. package/public-api.d.ts +1 -0
@@ -7,34 +7,18 @@
7
7
  */
8
8
  import { Inject, Injectable } from '@angular/core';
9
9
  import { VERSION_CONFIG } from '../../business';
10
- import { VersionImpl } from '../../../core/impl/version/version.impl';
10
+ import { AbstractVersionManager } from '../../../core';
11
11
  import * as i0 from "@angular/core";
12
12
  /**
13
13
  * A lightweight service that provides Semantic Versioning implementation for your Angular projects.
14
14
  */
15
- export class VersionService {
15
+ export class VersionService extends AbstractVersionManager {
16
16
  /**
17
17
  * Creates a new VersionService instance.
18
18
  * @param config the reference to the VersionConfig provider.
19
19
  */
20
20
  constructor(config) {
21
- this._version = new VersionImpl(config.major, config.minor, config.patch, config.buildTimestamp);
22
- }
23
- /**
24
- * Returns the version of the associated Angular project.
25
- *
26
- * @return the version of the associated Angular project.
27
- */
28
- getVersion() {
29
- return this._version;
30
- }
31
- /**
32
- * Returns the build timestamp of the associated Angular project.
33
- *
34
- * @return the build timestamp of the associated Angular project.
35
- */
36
- getBuildTimestamp() {
37
- return this._version.buildTimeStamp;
21
+ super(config);
38
22
  }
39
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VersionService, deps: [{ token: VERSION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
40
24
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VersionService, providedIn: 'root' }); }
@@ -48,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
48
32
  type: Inject,
49
33
  args: [VERSION_CONFIG]
50
34
  }] }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvbW9kZWwvc2VydmljZS92ZXJzaW9uL3ZlcnNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUEwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFFdEU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQU96Qjs7O09BR0c7SUFDSCxZQUFvQyxNQUFxQjtRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksV0FBVyxDQUM3QixNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNLENBQUMsY0FBYyxDQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDdEMsQ0FBQzs4R0FwQ1UsY0FBYyxrQkFXTCxjQUFjO2tIQVh2QixjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVljLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKlxyXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxyXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWRVJTSU9OX0NPTkZJRywgVmVyc2lvbiwgVmVyc2lvbkNvbmZpZyB9IGZyb20gJy4uLy4uL2J1c2luZXNzJztcclxuaW1wb3J0IHsgVmVyc2lvbkltcGwgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2ltcGwvdmVyc2lvbi92ZXJzaW9uLmltcGwnO1xyXG5cclxuLyoqXHJcbiAqIEEgbGlnaHR3ZWlnaHQgc2VydmljZSB0aGF0IHByb3ZpZGVzIFNlbWFudGljIFZlcnNpb25pbmcgaW1wbGVtZW50YXRpb24gZm9yIHlvdXIgQW5ndWxhciBwcm9qZWN0cy5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFZlcnNpb25TZXJ2aWNlIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IF92ZXJzaW9uOiBWZXJzaW9uO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IFZlcnNpb25TZXJ2aWNlIGluc3RhbmNlLlxyXG4gICAqIEBwYXJhbSBjb25maWcgdGhlIHJlZmVyZW5jZSB0byB0aGUgVmVyc2lvbkNvbmZpZyBwcm92aWRlci5cclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFZFUlNJT05fQ09ORklHKSBjb25maWc6IFZlcnNpb25Db25maWcpIHtcclxuICAgIHRoaXMuX3ZlcnNpb24gPSBuZXcgVmVyc2lvbkltcGwoXHJcbiAgICAgIGNvbmZpZy5tYWpvcixcclxuICAgICAgY29uZmlnLm1pbm9yLFxyXG4gICAgICBjb25maWcucGF0Y2gsXHJcbiAgICAgIGNvbmZpZy5idWlsZFRpbWVzdGFtcFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIGFzc29jaWF0ZWQgQW5ndWxhciBwcm9qZWN0LlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm4gdGhlIHZlcnNpb24gb2YgdGhlIGFzc29jaWF0ZWQgQW5ndWxhciBwcm9qZWN0LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWZXJzaW9uKCk6IFZlcnNpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZlcnNpb247XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGJ1aWxkIHRpbWVzdGFtcCBvZiB0aGUgYXNzb2NpYXRlZCBBbmd1bGFyIHByb2plY3QuXHJcbiAgICogXHJcbiAgICogQHJldHVybiB0aGUgIGJ1aWxkIHRpbWVzdGFtcCBvZiB0aGUgYXNzb2NpYXRlZCBBbmd1bGFyIHByb2plY3QuXHJcbiAgICovXHJcbiAgcHVibGljIGdldEJ1aWxkVGltZXN0YW1wKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmVyc2lvbi5idWlsZFRpbWVTdGFtcDtcclxuICB9XHJcbn1cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvbW9kZWwvc2VydmljZS92ZXJzaW9uL3ZlcnNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sY0FBZSxTQUFRLHNCQUFzQjtJQUV4RDs7O09BR0c7SUFDSCxZQUFvQyxNQUFxQjtRQUN2RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQzs4R0FSVSxjQUFjLGtCQU1MLGNBQWM7a0hBTnZCLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT2MsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZFUlNJT05fQ09ORklHLCBWZXJzaW9uQ29uZmlnLCBWZXJzaW9uTWFuYWdlciB9IGZyb20gJy4uLy4uL2J1c2luZXNzJztcclxuaW1wb3J0IHsgQWJzdHJhY3RWZXJzaW9uTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIEEgbGlnaHR3ZWlnaHQgc2VydmljZSB0aGF0IHByb3ZpZGVzIFNlbWFudGljIFZlcnNpb25pbmcgaW1wbGVtZW50YXRpb24gZm9yIHlvdXIgQW5ndWxhciBwcm9qZWN0cy5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFZlcnNpb25TZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RWZXJzaW9uTWFuYWdlciBpbXBsZW1lbnRzIFZlcnNpb25NYW5hZ2VyIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBWZXJzaW9uU2VydmljZSBpbnN0YW5jZS5cclxuICAgKiBAcGFyYW0gY29uZmlnIHRoZSByZWZlcmVuY2UgdG8gdGhlIFZlcnNpb25Db25maWcgcHJvdmlkZXIuXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChWRVJTSU9OX0NPTkZJRykgY29uZmlnOiBWZXJzaW9uQ29uZmlnKSB7XHJcbiAgICBzdXBlcihjb25maWcpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -2,7 +2,7 @@ import { Pipe } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/platform-browser";
4
4
  /**
5
- * A basic implementation of HTML sanitization pipe.
5
+ * A basic implementation of a HTML sanitization pipe.
6
6
  */
7
7
  export class SafeHtmlPipe {
8
8
  /**
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
31
31
  standalone: true
32
32
  }]
33
33
  }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9waXBlL3NhZmUvc2FmZS1odG1sLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFpQixJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVwRDs7R0FFRztBQUtILE1BQU0sT0FBTyxZQUFZO0lBRXZCOztPQUVHO0lBQ0gsWUFBb0IsVUFBd0I7UUFBeEIsZUFBVSxHQUFWLFVBQVUsQ0FBYztJQUFHLENBQUM7SUFFaEQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7OEdBaEJVLFlBQVk7NEdBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInXHJcbmltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIEEgYmFzaWMgaW1wbGVtZW50YXRpb24gb2YgSFRNTCBzYW5pdGl6YXRpb24gcGlwZS5cclxuICovXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2FmZUh0bWwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhZmVIdG1sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0gIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuXHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtcyB0aGUgSFRNTCBpbnB1dCBzdHJpbmcgdmFsdWUgaW50byBhIGBTYWZlSHRtbGAgaW5zdGFuY2UgYW5kIHJldHVybnMgdGhlIHJlc3VsdFxyXG4gICAqIG9mIHRoZSB0cmFuc2Zvcm1hdGlvbi5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIEhUTUwgaW5wdXQgdmFsdWUgdG8gdHJhbnNmb3JtIGludG8gYSBgU2FmZUh0bWxgIGluc3RhbmNlLlxyXG4gICAqIEByZXR1cm5zIEEgYFNhZmVIdG1sYCBpbnN0YW5jZSBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIGlucHV0IHZhbHVlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IFNhZmVIdG1sIHtcclxuICAgIHJldHVybiB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodmFsdWUpO1xyXG4gIH1cclxufSJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRvb2xib3gvc3JjL2xpYi9waXBlL3NhZmUvc2FmZS1odG1sLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFpQixJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVwRDs7R0FFRztBQUtILE1BQU0sT0FBTyxZQUFZO0lBRXZCOztPQUVHO0lBQ0gsWUFBb0IsVUFBd0I7UUFBeEIsZUFBVSxHQUFWLFVBQVUsQ0FBYztJQUFHLENBQUM7SUFFaEQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7OEdBaEJVLFlBQVk7NEdBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInXHJcbmltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIEEgYmFzaWMgaW1wbGVtZW50YXRpb24gb2YgYSBIVE1MIHNhbml0aXphdGlvbiBwaXBlLlxyXG4gKi9cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdzYWZlSHRtbCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSAge1xyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBUcmFuc2Zvcm1zIHRoZSBIVE1MIGlucHV0IHN0cmluZyB2YWx1ZSBpbnRvIGEgYFNhZmVIdG1sYCBpbnN0YW5jZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0XHJcbiAgICogb2YgdGhlIHRyYW5zZm9ybWF0aW9uLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgSFRNTCBpbnB1dCB2YWx1ZSB0byB0cmFuc2Zvcm0gaW50byBhIGBTYWZlSHRtbGAgaW5zdGFuY2UuXHJcbiAgICogQHJldHVybnMgQSBgU2FmZUh0bWxgIGluc3RhbmNlIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgaW5wdXQgdmFsdWUuXHJcbiAgICovXHJcbiAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogU2FmZUh0bWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh2YWx1ZSk7XHJcbiAgfVxyXG59Il19
@@ -9,10 +9,11 @@
9
9
  * Public API Surface of angular-toolbox
10
10
  */
11
11
  export * from './lib/angular-toolbox.module';
12
+ export * from './lib/component';
12
13
  export * from './lib/core';
13
14
  export * from './lib/directive';
14
15
  export * from './lib/framework';
15
16
  export * from './lib/model';
16
17
  export * from './lib/pipe';
17
18
  export * from './lib/util';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7R0FFRztBQUVILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG4vKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGFuZ3VsYXItdG9vbGJveFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdG9vbGJveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnJhbWV3b3JrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbCc7XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7R0FFRztBQUVILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgUGFzY2FsIEVDSEVNQU5OLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXG4gKiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vcGFzY2FsZWNoZW1hbm4uY29tL2FuZ3VsYXItdG9vbGJveC9yZXNvdXJjZXMvbGljZW5zZVxuICovXG5cbi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYW5ndWxhci10b29sYm94XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYW5ndWxhci10b29sYm94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZnJhbWV3b3JrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbCc7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule, EventEmitter, Directive, Output, Input, HostListener, Inject, Injectable, inject, Pipe } from '@angular/core';
2
+ import { Injectable, NgModule, Component, EventEmitter, Directive, Output, Input, HostListener, Inject, inject, Pipe } from '@angular/core';
3
3
  import * as i1 from '@angular/router';
4
4
  import { RouterModule } from '@angular/router';
5
5
  import { DOCUMENT, XhrFactory } from '@angular/common';
@@ -7,25 +7,6 @@ import { HttpStatusCode, HttpHeaders, HttpRequest } from '@angular/common/http';
7
7
  import { Observable, of } from 'rxjs';
8
8
  import * as i1$1 from '@angular/platform-browser';
9
9
 
10
- /**
11
- * @license
12
- * Copyright Pascal ECHEMANN. All Rights Reserved.
13
- *
14
- * Use of this source code is governed by an MIT-style license that can be found in
15
- * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
16
- */
17
- /**
18
- * @private
19
- */
20
- class AngularToolboxModule {
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxModule }); }
23
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxModule }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxModule, decorators: [{
26
- type: NgModule
27
- }] });
28
-
29
10
  /**
30
11
  * @license
31
12
  * Copyright Pascal ECHEMANN. All Rights Reserved.
@@ -366,6 +347,269 @@ class IdentifiableComponent {
366
347
  }
367
348
  ;
368
349
 
350
+ /**
351
+ * @license
352
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
353
+ *
354
+ * Use of this source code is governed by an MIT-style license that can be found in
355
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
356
+ */
357
+ /**
358
+ * The abstract class for all services that implement the `SubscriptionManager` interface.
359
+ */
360
+ class AbstractSubscriptionManager {
361
+ constructor() {
362
+ /**
363
+ * @private
364
+ * Stores an internal reference to the last reference used with the `register()`
365
+ * method.
366
+ */
367
+ this._lastRef = null;
368
+ /**
369
+ * @private
370
+ * The internal `Subscription` instances storage.
371
+ */
372
+ this._subMap = new Map();
373
+ }
374
+ /**
375
+ * Stores a new `Subscription` instance associated with the specified reference.
376
+ *
377
+ * @param ref The reference for which to store a new `Subscription` instance.
378
+ * Can be either a string or an `Identifiable` object.
379
+ * @param subscription The `Subscription` instance to register.
380
+ *
381
+ * @returns A reference to this `SubscriptionService` instance.
382
+ */
383
+ register(ref, subscription) {
384
+ const REF = this.getRef(ref);
385
+ this._lastRef = REF;
386
+ if (!this._subMap.has(REF))
387
+ this._subMap.set(REF, []);
388
+ this._subMap.get(REF)?.push(subscription);
389
+ return this;
390
+ }
391
+ /**
392
+ * Stores a new `Subscription` instance associated with the reference specified
393
+ * by the last `register()` method invokation.
394
+ *
395
+ * @param subscription The `Subscription` instance to register.
396
+ *
397
+ * @returns A reference to this `SubscriptionService` instance.
398
+ */
399
+ append(subscription) {
400
+ if (!this._lastRef)
401
+ throw new SubscriptionError("Illegal Access Error: you must call the register() method before invoking the append() method.");
402
+ return this.register(this._lastRef, subscription);
403
+ }
404
+ /**
405
+ * Unsubscribes and removes all `Subscription` instances associated with the specified reference.
406
+ *
407
+ * @param ref The reference for which to remove all `Subscription` instances.
408
+ * Can be either a string or an `Identifiable` object.
409
+ *
410
+ * @returns `true` whether the specified reference exists; `false` otherwise.
411
+ */
412
+ clearAll(ref) {
413
+ const REF = this.getRef(ref);
414
+ let result = false;
415
+ if (this._lastRef === REF)
416
+ this._lastRef = null;
417
+ if (this._subMap.has(REF)) {
418
+ this._subMap.get(REF)?.forEach(subscription => {
419
+ if (!subscription.closed)
420
+ subscription.unsubscribe();
421
+ });
422
+ this._subMap.delete(REF);
423
+ result = true;
424
+ }
425
+ return result;
426
+ }
427
+ /**
428
+ * Returns all `Subscription` instances associated with the specified reference.
429
+ *
430
+ * @param ref The reference for which to remove get `Subscription` instances.
431
+ * Can be either a string or an `Identifiable` object.
432
+ *
433
+ * @returns All `Subscription` instances associated with the specified reference, or
434
+ * `null` whether the specified reference does not exists.
435
+ */
436
+ get(ref) {
437
+ return this._subMap.get(this.getRef(ref)) || null;
438
+ }
439
+ /**
440
+ * @private
441
+ * Returns the string reference for the regsitration process.
442
+ *
443
+ * @param ref The reference to be used the regsitration process.
444
+ * Can be either a string or an `Identifiable` object.
445
+ *
446
+ * @returns the string reference for the regsitration process.
447
+ */
448
+ getRef(ref) {
449
+ let targetRef;
450
+ if (typeof ref === STRING)
451
+ targetRef = ref;
452
+ else if (ref instanceof IdentifiableComponent)
453
+ targetRef = ref.getID().toString();
454
+ else
455
+ throw new TypeError("ref must be of type of string or Identifiable");
456
+ return targetRef;
457
+ }
458
+ }
459
+
460
+ /**
461
+ * @license
462
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
463
+ *
464
+ * Use of this source code is governed by an MIT-style license that can be ound in
465
+ * fthe LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
466
+ */
467
+ /**
468
+ * @private
469
+ * Specifies the semantic versioning of an API.
470
+ */
471
+ class VersionImpl {
472
+ /**
473
+ * @private
474
+ */
475
+ constructor(major, minor, patch, buildTimeStamp, metadata) {
476
+ this.major = major;
477
+ this.minor = minor;
478
+ this.patch = patch;
479
+ this.buildTimeStamp = buildTimeStamp;
480
+ this.metadata = metadata;
481
+ }
482
+ /**
483
+ * Returns a string representation of this `Version` object in the form `M.m.p`, where
484
+ * `M` represents the major number, `m` represents the minor number and `p` represents
485
+ * the patch number of this `VersionImpl` instance.
486
+ *
487
+ * @returns A string representation of this `VersionImpl` instance.
488
+ */
489
+ toString() {
490
+ const m = this.metadata;
491
+ return `${this.major}.${this.minor}.${this.patch}${m ? "-" + m : EMPTY_STRING}`;
492
+ }
493
+ }
494
+ ;
495
+
496
+ /**
497
+ * @license
498
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
499
+ *
500
+ * Use of this source code is governed by an MIT-style license that can be found in
501
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
502
+ */
503
+ /**
504
+ * The abstract class for all services that implement the `VersionManager` interface.
505
+ */
506
+ class AbstractVersionManager {
507
+ /**
508
+ * Creates a new VersionManager object.
509
+ * @param config the reference to the VersionConfig provider.
510
+ */
511
+ constructor(config) {
512
+ this._version = new VersionImpl(config.major, config.minor, config.patch, config.buildTimestamp, config.metadata);
513
+ }
514
+ /**
515
+ * Returns the version of the associated Angular project.
516
+ *
517
+ * @return the version of the associated Angular project.
518
+ */
519
+ getVersion() {
520
+ return this._version;
521
+ }
522
+ /**
523
+ * Returns the build timestamp of the associated Angular project.
524
+ *
525
+ * @return the build timestamp of the associated Angular project.
526
+ */
527
+ getBuildTimestamp() {
528
+ return this._version.buildTimeStamp;
529
+ }
530
+ }
531
+
532
+ /**
533
+ * @license
534
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
535
+ *
536
+ * Use of this source code is governed by an MIT-style license that can be found in
537
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
538
+ */
539
+ /**
540
+ * @private
541
+ * The current version of the Angular Toolbox library.
542
+ */
543
+ const LAYERS_VERSION_CONFIG = {
544
+ major: 0,
545
+ minor: 9,
546
+ patch: 4,
547
+ buildTimestamp: 1720937502057,
548
+ metadata: "beta"
549
+ };
550
+ /**
551
+ * The public service that exposes the current version of the Angular Toolbox library.
552
+ */
553
+ class AngularToolboxVersionService extends AbstractVersionManager {
554
+ /**
555
+ * @private
556
+ */
557
+ constructor() {
558
+ super(LAYERS_VERSION_CONFIG);
559
+ }
560
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxVersionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
561
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxVersionService }); }
562
+ }
563
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxVersionService, decorators: [{
564
+ type: Injectable
565
+ }], ctorParameters: () => [] });
566
+
567
+ /**
568
+ * @license
569
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
570
+ *
571
+ * Use of this source code is governed by an MIT-style license that can be found in
572
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
573
+ */
574
+ /**
575
+ * @private
576
+ */
577
+ class AngularToolboxModule {
578
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
579
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxModule }); }
580
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxModule, providers: [AngularToolboxVersionService] }); }
581
+ }
582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxModule, decorators: [{
583
+ type: NgModule,
584
+ args: [{
585
+ providers: [AngularToolboxVersionService]
586
+ }]
587
+ }] });
588
+
589
+ /**
590
+ * @license
591
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
592
+ *
593
+ * Use of this source code is governed by an MIT-style license that can be
594
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
595
+ */
596
+ class AngularToolboxLogoComponent {
597
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
598
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: AngularToolboxLogoComponent, isStandalone: true, selector: "atx-logo", ngImport: i0, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n<svg version=\"1.1\" id=\"Calque_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\r\n\t viewBox=\"0 0 185.6 200\" style=\"enable-background:new 0 0 185.6 200;\" xml:space=\"preserve\">\r\n<style type=\"text/css\">\r\n\t.st0{fill:#03A9F4;}\r\n\t.st1{fill:#039BE5;}\r\n\t.st2{fill:#FFFFFF;}\r\n\t.st3{opacity:0.75;fill:#FFFFFF;}\r\n</style>\r\n<g id=\"Layer_2\">\r\n\t<g id=\"Layer_1-2\">\r\n\t\t<polygon class=\"st0\" points=\"92.4,1.9 92.4,1.9 92.4,1.9 1.8,34.6 15.5,155 92.4,198.1 92.4,198.1 92.4,198.1 169.8,155 \r\n\t\t\t183.8,34.6 \t\t\"/>\r\n\t\t<polygon class=\"st1\" points=\"92.4,1.9 92.4,23.7 92.4,23.7 92.4,122.8 92.4,122.8 92.4,198.1 92.4,198.1 169.8,155 183.8,34.6 \t\t\r\n\t\t\t\"/>\r\n\t</g>\r\n</g>\r\n<g>\r\n\t<path class=\"st2\" d=\"M60.3,75.1l17.9,17.9c3.1-2.9,5.7-5.5,7.7-7.4L67.9,67.5l-2.2-9.8l-16.1-9.8l-4.4,4.4l-4.4,4.4l9.8,16.1\r\n\t\tL60.3,75.1z\"/>\r\n\t<path class=\"st3\" d=\"M114.7,104.3l26.5,26.4c4.9,4.9,4.9,12.8,0,17.7c-4.9,4.9-12.8,4.9-17.7,0L97.1,122L114.7,104.3z\"/>\r\n\t<path class=\"st2\" d=\"M92.4,114.6V89l-49.2,47.2c-0.1,0.1-0.2,0.2-0.3,0.3c-4.3,4.3-4.2,11.1-0.1,15.3c4.1,4.1,11.1,4.2,15.4,0\r\n\t\tc0.2-0.2,0.4-0.4,0.6-0.6\"/>\r\n\t<path class=\"st3\" d=\"M144.3,61.6l-1.8-1.5c-0.3-0.3-0.7-0.4-1.2-0.4c-0.4,0-0.8,0.3-1.1,0.6L129.7,74c-0.3,0.4-0.8,0.6-1.3,0.6\r\n\t\tl-3.8,0.3c-0.3,0-0.6-0.1-0.9-0.3l-7.4-6.3c-0.3-0.2-0.5-0.6-0.5-1l-0.5-3.5c-0.1-0.4,0-0.8,0.3-1.1l9.9-13.4\r\n\t\tc0.4-0.6,0.4-1.5-0.2-2l-2.4-1.9c-0.5-0.4-1-0.4-1.7-0.2c-6.8,1.3-18.5,8-21.4,17.1c-2.6,8-1.7,13.7-1.7,13.7\r\n\t\tc0,4.5-1.5,8.9-3.3,10.7L92.4,89v25.7l15.9-17.2c6.1-5.4,18.2,0.4,28.2-8.7c9.1-8.3,10.6-17.7,8.6-25.6\r\n\t\tC145,62.5,144.9,62,144.3,61.6z\"/>\r\n</g>\r\n</svg>\r\n" }); }
599
+ }
600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxLogoComponent, decorators: [{
601
+ type: Component,
602
+ args: [{ selector: 'atx-logo', standalone: true, template: "<!--\r\n * LICENSE\r\n * Copyright Pascal ECHEMANN. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license\r\n-->\r\n \r\n<svg version=\"1.1\" id=\"Calque_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\r\n\t viewBox=\"0 0 185.6 200\" style=\"enable-background:new 0 0 185.6 200;\" xml:space=\"preserve\">\r\n<style type=\"text/css\">\r\n\t.st0{fill:#03A9F4;}\r\n\t.st1{fill:#039BE5;}\r\n\t.st2{fill:#FFFFFF;}\r\n\t.st3{opacity:0.75;fill:#FFFFFF;}\r\n</style>\r\n<g id=\"Layer_2\">\r\n\t<g id=\"Layer_1-2\">\r\n\t\t<polygon class=\"st0\" points=\"92.4,1.9 92.4,1.9 92.4,1.9 1.8,34.6 15.5,155 92.4,198.1 92.4,198.1 92.4,198.1 169.8,155 \r\n\t\t\t183.8,34.6 \t\t\"/>\r\n\t\t<polygon class=\"st1\" points=\"92.4,1.9 92.4,23.7 92.4,23.7 92.4,122.8 92.4,122.8 92.4,198.1 92.4,198.1 169.8,155 183.8,34.6 \t\t\r\n\t\t\t\"/>\r\n\t</g>\r\n</g>\r\n<g>\r\n\t<path class=\"st2\" d=\"M60.3,75.1l17.9,17.9c3.1-2.9,5.7-5.5,7.7-7.4L67.9,67.5l-2.2-9.8l-16.1-9.8l-4.4,4.4l-4.4,4.4l9.8,16.1\r\n\t\tL60.3,75.1z\"/>\r\n\t<path class=\"st3\" d=\"M114.7,104.3l26.5,26.4c4.9,4.9,4.9,12.8,0,17.7c-4.9,4.9-12.8,4.9-17.7,0L97.1,122L114.7,104.3z\"/>\r\n\t<path class=\"st2\" d=\"M92.4,114.6V89l-49.2,47.2c-0.1,0.1-0.2,0.2-0.3,0.3c-4.3,4.3-4.2,11.1-0.1,15.3c4.1,4.1,11.1,4.2,15.4,0\r\n\t\tc0.2-0.2,0.4-0.4,0.6-0.6\"/>\r\n\t<path class=\"st3\" d=\"M144.3,61.6l-1.8-1.5c-0.3-0.3-0.7-0.4-1.2-0.4c-0.4,0-0.8,0.3-1.1,0.6L129.7,74c-0.3,0.4-0.8,0.6-1.3,0.6\r\n\t\tl-3.8,0.3c-0.3,0-0.6-0.1-0.9-0.3l-7.4-6.3c-0.3-0.2-0.5-0.6-0.5-1l-0.5-3.5c-0.1-0.4,0-0.8,0.3-1.1l9.9-13.4\r\n\t\tc0.4-0.6,0.4-1.5-0.2-2l-2.4-1.9c-0.5-0.4-1-0.4-1.7-0.2c-6.8,1.3-18.5,8-21.4,17.1c-2.6,8-1.7,13.7-1.7,13.7\r\n\t\tc0,4.5-1.5,8.9-3.3,10.7L92.4,89v25.7l15.9-17.2c6.1-5.4,18.2,0.4,28.2-8.7c9.1-8.3,10.6-17.7,8.6-25.6\r\n\t\tC145,62.5,144.9,62,144.3,61.6z\"/>\r\n</g>\r\n</svg>\r\n" }]
603
+ }] });
604
+
605
+ /**
606
+ * @license
607
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
608
+ *
609
+ * Use of this source code is governed by an MIT-style license that can be
610
+ * found in the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
611
+ */
612
+
369
613
  /**
370
614
  * @license
371
615
  * Copyright Pascal ECHEMANN. All Rights Reserved.
@@ -723,6 +967,15 @@ const VERSION_CONFIG = {
723
967
  buildTimestamp: NaN
724
968
  };
725
969
 
970
+ /**
971
+ * @license
972
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
973
+ *
974
+ * Use of this source code is governed by an MIT-style license that can be found in
975
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
976
+ */
977
+ ;
978
+
726
979
  /**
727
980
  * @license
728
981
  * Copyright Pascal ECHEMANN. All Rights Reserved.
@@ -885,6 +1138,14 @@ const DARK_MODE_CONFIG = {
885
1138
  * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
886
1139
  */
887
1140
 
1141
+ /**
1142
+ * @license
1143
+ * Copyright Pascal ECHEMANN. All Rights Reserved.
1144
+ *
1145
+ * Use of this source code is governed by an MIT-style license that can be found in
1146
+ * the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
1147
+ */
1148
+
888
1149
  /**
889
1150
  * @license
890
1151
  * Copyright Pascal ECHEMANN. All Rights Reserved.
@@ -895,103 +1156,12 @@ const DARK_MODE_CONFIG = {
895
1156
  /**
896
1157
  * A lightweight service that helps to manage unregistration issues of Angular subscriptions.
897
1158
  */
898
- class SubscriptionService {
899
- constructor() {
900
- /**
901
- * @private
902
- * Stores an internal reference to the last reference used with the `register()`
903
- * method.
904
- */
905
- this._lastRef = null;
906
- /**
907
- * @private
908
- * The internal `Subscription` instances storage.
909
- */
910
- this._subMap = new Map();
911
- }
912
- /**
913
- * Stores a new `Subscription` instance associated with the specified reference.
914
- *
915
- * @param ref The reference for which to store a new `Subscription` instance.
916
- * Can be either a string or an `Identifiable` object.
917
- * @param subscription The `Subscription` instance to register.
918
- *
919
- * @returns A reference to this `SubscriptionService` instance.
920
- */
921
- register(ref, subscription) {
922
- const REF = this.getRef(ref);
923
- this._lastRef = REF;
924
- if (!this._subMap.has(REF))
925
- this._subMap.set(REF, []);
926
- this._subMap.get(REF)?.push(subscription);
927
- return this;
928
- }
929
- /**
930
- * Stores a new `Subscription` instance associated with the reference specified
931
- * by the last `register()` method invokation.
932
- *
933
- * @param subscription The `Subscription` instance to register.
934
- *
935
- * @returns A reference to this `SubscriptionService` instance.
936
- */
937
- append(subscription) {
938
- if (!this._lastRef)
939
- throw new SubscriptionError("Illegal Access Error: you must call the register() method before invoking the append() method.");
940
- return this.register(this._lastRef, subscription);
941
- }
942
- /**
943
- * Unsubscribes and removes all `Subscription` instances associated with the specified reference.
944
- *
945
- * @param ref The reference for which to remove all `Subscription` instances.
946
- * Can be either a string or an `Identifiable` object.
947
- *
948
- * @returns `true` whether the specified reference exists; `false` otherwise.
949
- */
950
- clearAll(ref) {
951
- const REF = this.getRef(ref);
952
- let result = false;
953
- if (this._lastRef === REF)
954
- this._lastRef = null;
955
- if (this._subMap.has(REF)) {
956
- this._subMap.get(REF)?.forEach(subscription => {
957
- if (!subscription.closed)
958
- subscription.unsubscribe();
959
- });
960
- this._subMap.delete(REF);
961
- result = true;
962
- }
963
- return result;
964
- }
965
- /**
966
- * Returns all `Subscription` instances associated with the specified reference.
967
- *
968
- * @param ref The reference for which to remove get `Subscription` instances.
969
- * Can be either a string or an `Identifiable` object.
970
- *
971
- * @returns All `Subscription` instances associated with the specified reference, or
972
- * `null` whether the specified reference does not exists.
973
- */
974
- get(ref) {
975
- return this._subMap.get(this.getRef(ref)) || null;
976
- }
1159
+ class SubscriptionService extends AbstractSubscriptionManager {
977
1160
  /**
978
1161
  * @private
979
- * Returns the string reference for the regsitration process.
980
- *
981
- * @param ref The reference to be used the regsitration process.
982
- * Can be either a string or an `Identifiable` object.
983
- *
984
- * @returns the string reference for the regsitration process.
985
1162
  */
986
- getRef(ref) {
987
- let targetRef;
988
- if (typeof ref === "string")
989
- targetRef = ref;
990
- else if (ref instanceof IdentifiableComponent)
991
- targetRef = ref.getID().toString();
992
- else
993
- throw new TypeError("ref must be of type of string or Identifiable");
994
- return targetRef;
1163
+ constructor() {
1164
+ super();
995
1165
  }
996
1166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SubscriptionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
997
1167
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SubscriptionService, providedIn: 'root' }); }
@@ -1001,7 +1171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
1001
1171
  args: [{
1002
1172
  providedIn: 'root'
1003
1173
  }]
1004
- }] });
1174
+ }], ctorParameters: () => [] });
1005
1175
 
1006
1176
  /**
1007
1177
  * @license
@@ -1482,40 +1652,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
1482
1652
  args: [DOCUMENT]
1483
1653
  }] }] });
1484
1654
 
1485
- /**
1486
- * @license
1487
- * Copyright Pascal ECHEMANN. All Rights Reserved.
1488
- *
1489
- * Use of this source code is governed by an MIT-style license that can be ound in
1490
- * fthe LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
1491
- */
1492
- /**
1493
- * @private
1494
- * Specifies the semantic versioning of an API.
1495
- */
1496
- class VersionImpl {
1497
- /**
1498
- * @private
1499
- */
1500
- constructor(major, minor, patch, buildTimeStamp) {
1501
- this.major = major;
1502
- this.minor = minor;
1503
- this.patch = patch;
1504
- this.buildTimeStamp = buildTimeStamp;
1505
- }
1506
- /**
1507
- * Returns a string representation of this `Version` object in the form `M.m.p`, where
1508
- * `M` represents the major number, `m` represents the minor number and `p` represents
1509
- * the patch number of this `VersionImpl` instance.
1510
- *
1511
- * @returns A string representation of this `VersionImpl` instance.
1512
- */
1513
- toString() {
1514
- return `${this.major}.${this.minor}.${this.patch}`;
1515
- }
1516
- }
1517
- ;
1518
-
1519
1655
  /**
1520
1656
  * @license
1521
1657
  * Copyright Pascal ECHEMANN. All Rights Reserved.
@@ -1526,29 +1662,13 @@ class VersionImpl {
1526
1662
  /**
1527
1663
  * A lightweight service that provides Semantic Versioning implementation for your Angular projects.
1528
1664
  */
1529
- class VersionService {
1665
+ class VersionService extends AbstractVersionManager {
1530
1666
  /**
1531
1667
  * Creates a new VersionService instance.
1532
1668
  * @param config the reference to the VersionConfig provider.
1533
1669
  */
1534
1670
  constructor(config) {
1535
- this._version = new VersionImpl(config.major, config.minor, config.patch, config.buildTimestamp);
1536
- }
1537
- /**
1538
- * Returns the version of the associated Angular project.
1539
- *
1540
- * @return the version of the associated Angular project.
1541
- */
1542
- getVersion() {
1543
- return this._version;
1544
- }
1545
- /**
1546
- * Returns the build timestamp of the associated Angular project.
1547
- *
1548
- * @return the build timestamp of the associated Angular project.
1549
- */
1550
- getBuildTimestamp() {
1551
- return this._version.buildTimeStamp;
1671
+ super(config);
1552
1672
  }
1553
1673
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VersionService, deps: [{ token: VERSION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
1554
1674
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VersionService, providedIn: 'root' }); }
@@ -3676,7 +3796,7 @@ const httpMockFactory = () => {
3676
3796
  };
3677
3797
 
3678
3798
  /**
3679
- * A basic implementation of HTML sanitization pipe.
3799
+ * A basic implementation of a HTML sanitization pipe.
3680
3800
  */
3681
3801
  class SafeHtmlPipe {
3682
3802
  /**
@@ -3721,5 +3841,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
3721
3841
  * Generated bundle index. Do not edit.
3722
3842
  */
3723
3843
 
3724
- export { APP_PRIDGE_REF, AnchorLinklDirective, AngularToolboxModule, AppBridgeError, AppBrigeService, BIGINT, BOOLEAN, BUTTON_ROLE, ButtonRoleDirective, CSS_PROP, ContentRendererDirective, DARK_MODE_CONFIG, DarkModeService, EMPTY_STRING, FUNCTION, HTTP_MOCK_SERVICE, HttpHeadersMockBuilder, HttpMock, HttpMockService, HttpMockServiceError, HttpResponseMockBuilder, IdentifiableComponent, IntegrityError, LINK_ROLE, NUMBER, NavigateToUrlDirective, OBJECT, STORAGE_KEY, STRING, SYMBOL, SafeHtmlPipe, ScrollService, SubscriptionError, SubscriptionService, UNDEFINED, Uuid, VERSION_CONFIG, VersionService, httpHeadersMock, httpMockFactory, httpResponseMock };
3844
+ export { APP_PRIDGE_REF, AbstractSubscriptionManager, AbstractVersionManager, AnchorLinklDirective, AngularToolboxLogoComponent, AngularToolboxModule, AppBridgeError, AppBrigeService, BIGINT, BOOLEAN, BUTTON_ROLE, ButtonRoleDirective, CSS_PROP, ContentRendererDirective, DARK_MODE_CONFIG, DarkModeService, EMPTY_STRING, FUNCTION, HTTP_MOCK_SERVICE, HttpHeadersMockBuilder, HttpMock, HttpMockService, HttpMockServiceError, HttpResponseMockBuilder, IdentifiableComponent, IntegrityError, LINK_ROLE, NUMBER, NavigateToUrlDirective, OBJECT, STORAGE_KEY, STRING, SYMBOL, SafeHtmlPipe, ScrollService, SubscriptionError, SubscriptionService, UNDEFINED, Uuid, VERSION_CONFIG, VersionService, httpHeadersMock, httpMockFactory, httpResponseMock };
3725
3845
  //# sourceMappingURL=angular-toolbox.mjs.map