UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

38 lines 4.61 kB
import { ThemeService } from '@alauda/ui'; import { ChangeDetectorRef, Pipe, } from '@angular/core'; import { Subject, takeUntil } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@alauda/ui"; /* 因为业务中有很多图片需要在浅色和暗色两个主题切换后使用不同的图片。 推荐在业务中建两个图片的文件夹,light 和 dark,把两种主题对应的图片放在这两个目录下 <img src="icons/xxx/xxx.svg" > 变更为 <img [src]="'icons/$theme/xxx/xxx.svg' | aclImageTheme" > */ export class ImgThemePipe { constructor(theme, cdr) { this.theme = theme; this.cdr = cdr; this.destroy$$ = new Subject(); this.theme.currentTheme$.pipe(takeUntil(this.destroy$$)).subscribe(() => { this.cdr.markForCheck(); }); } transform(value) { return value.replace('$theme', this.theme.currentTheme()); } ngOnDestroy() { this.destroy$$.next(); this.destroy$$.complete(); } static { this.ɵfac = function ImgThemePipe_Factory(t) { return new (t || ImgThemePipe)(i0.ɵɵdirectiveInject(i1.ThemeService, 16), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef, 16)); }; } static { this.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "aclImageTheme", type: ImgThemePipe, pure: false, standalone: true }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ImgThemePipe, [{ type: Pipe, args: [{ name: 'aclImageTheme', pure: false, standalone: true, }] }], () => [{ type: i1.ThemeService }, { type: i0.ChangeDetectorRef }], null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXRoZW1lLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29yZS9waXBlcy9pbWctdGhlbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxpQkFBaUIsRUFFakIsSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFFMUM7Ozs7RUFJRTtBQU1GLE1BQU0sT0FBTyxZQUFZO0lBR3ZCLFlBQ21CLEtBQW1CLEVBQ25CLEdBQXNCO1FBRHRCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFKeEIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFNL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs2RUFuQlUsWUFBWTt1RkFBWixZQUFZOztpRkFBWixZQUFZO2NBTHhCLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsZUFBZTtnQkFDckIsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsVUFBVSxFQUFFLElBQUk7YUFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkRlc3Ryb3ksXG4gIFBpcGUsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbi8qXG4gIOWboOS4uuS4muWKoeS4reacieW+iOWkmuWbvueJh+mcgOimgeWcqOa1heiJsuWSjOaal+iJsuS4pOS4quS4u+mimOWIh+aNouWQjuS9v+eUqOS4jeWQjOeahOWbvueJh+OAglxuICDmjqjojZDlnKjkuJrliqHkuK3lu7rkuKTkuKrlm77niYfnmoTmlofku7blpLnvvIxsaWdodCDlkowgZGFya++8jOaKiuS4pOenjeS4u+mimOWvueW6lOeahOWbvueJh+aUvuWcqOi/meS4pOS4quebruW9leS4i1xuICA8aW1nIHNyYz1cImljb25zL3h4eC94eHguc3ZnXCIgPiDlj5jmm7TkuLogPGltZyBbc3JjXT1cIidpY29ucy8kdGhlbWUveHh4L3h4eC5zdmcnIHwgYWNsSW1hZ2VUaGVtZVwiID5cbiovXG5AUGlwZSh7XG4gIG5hbWU6ICdhY2xJbWFnZVRoZW1lJyxcbiAgcHVyZTogZmFsc2UsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEltZ1RoZW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRoZW1lOiBUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICB0aGlzLnRoZW1lLmN1cnJlbnRUaGVtZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKCckdGhlbWUnLCB0aGlzLnRoZW1lLmN1cnJlbnRUaGVtZSgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=