UNPKG

@lxlib/seed

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.1.

123 lines 8.2 kB
/** * @fileoverview added by tsickle * Generated from: image.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { __decorate, __metadata } from "tslib"; import { Directive, ElementRef, Input } from '@angular/core'; import { InputNumber } from '@lxlib/util'; import { ImageConfig } from './image.config'; /** * img标签 * + 支持微信、qq头像规则缩略图规则 * + 支持移除http&https协议http * + 支持增加onerror事件 */ export class ImageDirective { /** * @param {?} cog * @param {?} el */ constructor(cog, el) { this.size = 64; this.error = './assets/img/logo.svg'; this.inited = false; Object.assign(this, Object.assign(Object.assign({}, new ImageConfig()), cog)); this.imgEl = el.nativeElement; } /** * @return {?} */ ngOnInit() { this.update(); this.updateError(); this.inited = true; } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { if (!this.inited) return; if (changes.error) { this.updateError(); } this.update(); } /** * @private * @return {?} */ update() { /** @type {?} */ let newSrc = this.src; const { size, imgEl } = this; if (newSrc.includes('qlogo.cn')) { /** @type {?} */ const arr = newSrc.split('/'); /** @type {?} */ const imgSize = arr[arr.length - 1]; arr[arr.length - 1] = imgSize === '0' || +imgSize !== size ? size.toString() : imgSize; newSrc = arr.join('/'); } newSrc = newSrc.replace(/^(?:https?:)/i, ''); imgEl.src = newSrc; imgEl.height = size; imgEl.width = size; } /** * @private * @return {?} */ updateError() { const { imgEl, error } = this; // tslint:disable-next-line: only-arrow-functions imgEl.onerror = (/** * @return {?} */ function () { this.onerror = null; this.src = error; }); } } ImageDirective.decorators = [ { type: Directive, args: [{ selector: '[_src]', exportAs: '_src', },] } ]; /** @nocollapse */ ImageDirective.ctorParameters = () => [ { type: ImageConfig }, { type: ElementRef } ]; ImageDirective.propDecorators = { src: [{ type: Input, args: ['_src',] }], size: [{ type: Input }], error: [{ type: Input }] }; __decorate([ InputNumber(), __metadata("design:type", Object) ], ImageDirective.prototype, "size", void 0); if (false) { /** @type {?} */ ImageDirective.prototype.src; /** @type {?} */ ImageDirective.prototype.size; /** @type {?} */ ImageDirective.prototype.error; /** * @type {?} * @private */ ImageDirective.prototype.inited; /** * @type {?} * @private */ ImageDirective.prototype.imgEl; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGx4bGliL3NlZWQvaW1hZ2UvIiwic291cmNlcyI6WyJpbWFnZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVk3QyxNQUFNLE9BQU8sY0FBYzs7Ozs7SUFRekIsWUFBWSxHQUFnQixFQUFFLEVBQWdDO1FBTnRDLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDekIsVUFBSyxHQUFHLHVCQUF1QixDQUFDO1FBRWpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFJckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLGtDQUFPLElBQUksV0FBVyxFQUFFLEdBQUssR0FBRyxFQUFHLENBQUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ2hDLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLE9BQTZEO1FBQ3ZFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDekIsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDOzs7OztJQUVPLE1BQU07O1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHO2NBQ2YsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSTtRQUU1QixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7O2tCQUN6QixHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7O2tCQUN2QixPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN2RixNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3QyxLQUFLLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDOzs7OztJQUVPLFdBQVc7Y0FDWCxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJO1FBQzdCLGlEQUFpRDtRQUNqRCxLQUFLLENBQUMsT0FBTzs7O1FBQUc7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDLENBQUEsQ0FBQztJQUNKLENBQUM7OztZQXhERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRSxNQUFNO2FBQ2pCOzs7O1lBWFEsV0FBVztZQUZBLFVBQVU7OztrQkFlM0IsS0FBSyxTQUFDLE1BQU07bUJBQ1osS0FBSztvQkFDTCxLQUFLOztBQURrQjtJQUFkLFdBQVcsRUFBRTs7NENBQVc7OztJQURsQyw2QkFBMkI7O0lBQzNCLDhCQUFrQzs7SUFDbEMsK0JBQXlDOzs7OztJQUV6QyxnQ0FBdUI7Ozs7O0lBQ3ZCLCtCQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2UsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0TnVtYmVyIH0gZnJvbSAnQGx4bGliL3V0aWwnO1xuaW1wb3J0IHsgSW1hZ2VDb25maWcgfSBmcm9tICcuL2ltYWdlLmNvbmZpZyc7XG5cbi8qKlxuICogaW1n5qCH562+XG4gKiArIOaUr+aMgeW+ruS/oeOAgXFx5aS05YOP6KeE5YiZ57yp55Wl5Zu+6KeE5YiZXG4gKiArIOaUr+aMgeenu+mZpGh0dHAmaHR0cHPljY/orq5odHRwXG4gKiArIOaUr+aMgeWinuWKoG9uZXJyb3Lkuovku7ZcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW19zcmNdJyxcbiAgZXhwb3J0QXM6ICdfc3JjJyxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gIEBJbnB1dCgnX3NyYycpIHNyYzogc3RyaW5nO1xuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSBzaXplID0gNjQ7XG4gIEBJbnB1dCgpIGVycm9yID0gJy4vYXNzZXRzL2ltZy9sb2dvLnN2Zyc7XG5cbiAgcHJpdmF0ZSBpbml0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbWdFbDogSFRNTEltYWdlRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihjb2c6IEltYWdlQ29uZmlnLCBlbDogRWxlbWVudFJlZjxIVE1MSW1hZ2VFbGVtZW50Pikge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgeyAuLi5uZXcgSW1hZ2VDb25maWcoKSwgLi4uY29nIH0pO1xuICAgIHRoaXMuaW1nRWwgPSBlbC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgICB0aGlzLnVwZGF0ZUVycm9yKCk7XG4gICAgdGhpcy5pbml0ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogeyBbUCBpbiBrZXlvZiB0aGlzXT86IFNpbXBsZUNoYW5nZSB9ICYgU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbml0ZWQpIHJldHVybjtcbiAgICBpZiAoY2hhbmdlcy5lcnJvcikge1xuICAgICAgdGhpcy51cGRhdGVFcnJvcigpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgbGV0IG5ld1NyYyA9IHRoaXMuc3JjO1xuICAgIGNvbnN0IHsgc2l6ZSwgaW1nRWwgfSA9IHRoaXM7XG5cbiAgICBpZiAobmV3U3JjLmluY2x1ZGVzKCdxbG9nby5jbicpKSB7XG4gICAgICBjb25zdCBhcnIgPSBuZXdTcmMuc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IGltZ1NpemUgPSBhcnJbYXJyLmxlbmd0aCAtIDFdO1xuICAgICAgYXJyW2Fyci5sZW5ndGggLSAxXSA9IGltZ1NpemUgPT09ICcwJyB8fCAraW1nU2l6ZSAhPT0gc2l6ZSA/IHNpemUudG9TdHJpbmcoKSA6IGltZ1NpemU7XG4gICAgICBuZXdTcmMgPSBhcnIuam9pbignLycpO1xuICAgIH1cblxuICAgIG5ld1NyYyA9IG5ld1NyYy5yZXBsYWNlKC9eKD86aHR0cHM/OikvaSwgJycpO1xuXG4gICAgaW1nRWwuc3JjID0gbmV3U3JjO1xuICAgIGltZ0VsLmhlaWdodCA9IHNpemU7XG4gICAgaW1nRWwud2lkdGggPSBzaXplO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVFcnJvcigpIHtcbiAgICBjb25zdCB7IGltZ0VsLCBlcnJvciB9ID0gdGhpcztcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9ubHktYXJyb3ctZnVuY3Rpb25zXG4gICAgaW1nRWwub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMub25lcnJvciA9IG51bGw7XG4gICAgICB0aGlzLnNyYyA9IGVycm9yO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==