UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

109 lines (107 loc) 8.34 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /* * @license * Copyright Akveo. All Rights Reserved. * Licensed under the MIT License. See License.txt in the project root for license information. */ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; /* * Chat message component. * * @styles * */ export class NbChatMessageFileComponent { /** * @param {?} cd * @param {?} domSanitizer */ constructor(cd, domSanitizer) { this.cd = cd; this.domSanitizer = domSanitizer; } /* * Message file path * @type {Date} */ /** * @param {?} files * @return {?} */ set files(files) { this.readyFiles = (files || []).map((file) => { /** @type {?} */ const isImage = this.isImage(file); return Object.assign({}, file, { urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${file.url})`), isImage: isImage }); }); this.cd.detectChanges(); } /** * @param {?} file * @return {?} */ isImage(file) { return ['image/png', 'image/jpeg', 'image/gif'].includes(file.type); } } NbChatMessageFileComponent.decorators = [ { type: Component, args: [{ selector: 'nb-chat-message-file', template: ` <nb-chat-message-text [sender]="sender" [date]="date" [message]="message"> {{ message }} </nb-chat-message-text> <ng-container *ngIf="readyFiles?.length > 1"> <div class="message-content-group"> <a *ngFor="let file of readyFiles" [href]="file.url" target="_blank"> <span [class]="file.icon" *ngIf="!file.urlStyle"></span> <div *ngIf="file.isImage" [style.background-image]="file.urlStyle"></div> </a> </div> </ng-container> <ng-container *ngIf="readyFiles?.length === 1"> <a [href]="readyFiles[0].url" target="_blank"> <span [class]="readyFiles[0].icon" *ngIf="!readyFiles[0].urlStyle"></span> <div *ngIf="readyFiles[0].isImage" [style.background-image]="readyFiles[0].urlStyle"></div> </a> </ng-container> `, changeDetection: ChangeDetectionStrategy.OnPush }] } ]; /** @nocollapse */ NbChatMessageFileComponent.ctorParameters = () => [ { type: ChangeDetectorRef }, { type: DomSanitizer } ]; NbChatMessageFileComponent.propDecorators = { message: [{ type: Input }], sender: [{ type: Input }], date: [{ type: Input }], files: [{ type: Input }] }; if (false) { /** @type {?} */ NbChatMessageFileComponent.prototype.readyFiles; /** @type {?} */ NbChatMessageFileComponent.prototype.message; /** @type {?} */ NbChatMessageFileComponent.prototype.sender; /** @type {?} */ NbChatMessageFileComponent.prototype.date; /** * @type {?} * @private */ NbChatMessageFileComponent.prototype.cd; /** * @type {?} * @private */ NbChatMessageFileComponent.prototype.domSanitizer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1tZXNzYWdlLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hhdC9jaGF0LW1lc3NhZ2UtZmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBTUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBaUN6RCxNQUFNLE9BQU8sMEJBQTBCOzs7OztJQXVDckMsWUFBb0IsRUFBcUIsRUFBVSxZQUEwQjtRQUF6RCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQzdFLENBQUM7Ozs7Ozs7OztJQWRELElBQ0ksS0FBSyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTs7a0JBQzFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNsQyx5QkFDSyxJQUFJLElBQ1AsUUFBUSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQ25GLE9BQU8sRUFBRSxPQUFPLElBQ2hCO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7Ozs7O0lBTUQsT0FBTyxDQUFDLElBQVM7UUFDZixPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7OztZQXRFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVDtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7OztZQWpDaUMsaUJBQWlCO1lBQzFDLFlBQVk7OztzQkF5Q2xCLEtBQUs7cUJBTUwsS0FBSzttQkFNTCxLQUFLO29CQU1MLEtBQUs7Ozs7SUF4Qk4sZ0RBQWtCOztJQU1sQiw2Q0FBeUI7O0lBTXpCLDRDQUF3Qjs7SUFNeEIsMENBQW9COzs7OztJQW1CUix3Q0FBNkI7Ozs7O0lBQUUsa0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbi8qXHJcbiAqIENoYXQgbWVzc2FnZSBjb21wb25lbnQuXHJcbiAqXHJcbiAqIEBzdHlsZXNcclxuICpcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmItY2hhdC1tZXNzYWdlLWZpbGUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmItY2hhdC1tZXNzYWdlLXRleHQgW3NlbmRlcl09XCJzZW5kZXJcIiBbZGF0ZV09XCJkYXRlXCIgW21lc3NhZ2VdPVwibWVzc2FnZVwiPlxyXG4gICAgICB7eyBtZXNzYWdlIH19XHJcbiAgICA8L25iLWNoYXQtbWVzc2FnZS10ZXh0PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkeUZpbGVzPy5sZW5ndGggPiAxXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWNvbnRlbnQtZ3JvdXBcIj5cclxuICAgICAgICA8YSAqbmdGb3I9XCJsZXQgZmlsZSBvZiByZWFkeUZpbGVzXCIgW2hyZWZdPVwiZmlsZS51cmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJmaWxlLmljb25cIiAqbmdJZj1cIiFmaWxlLnVybFN0eWxlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImZpbGUuaXNJbWFnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImZpbGUudXJsU3R5bGVcIj48L2Rpdj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWR5RmlsZXM/Lmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICA8YSBbaHJlZl09XCJyZWFkeUZpbGVzWzBdLnVybFwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgIDxzcGFuIFtjbGFzc109XCJyZWFkeUZpbGVzWzBdLmljb25cIiAgKm5nSWY9XCIhcmVhZHlGaWxlc1swXS51cmxTdHlsZVwiPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicmVhZHlGaWxlc1swXS5pc0ltYWdlXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwicmVhZHlGaWxlc1swXS51cmxTdHlsZVwiPjwvZGl2PlxyXG4gICAgICA8L2E+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmJDaGF0TWVzc2FnZUZpbGVDb21wb25lbnQge1xyXG5cclxuICByZWFkeUZpbGVzOiBhbnlbXTtcclxuXHJcbiAgLypcclxuICAgKiBNZXNzYWdlIHNlbmRlclxyXG4gICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICovXHJcbiAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nO1xyXG5cclxuICAvKlxyXG4gICAqIE1lc3NhZ2Ugc2VuZGVyXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKi9cclxuICBASW5wdXQoKSBzZW5kZXI6IHN0cmluZztcclxuXHJcbiAgLypcclxuICAgKiBNZXNzYWdlIHNlbmQgZGF0ZVxyXG4gICAqIEB0eXBlIHtEYXRlfVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRhdGU6IERhdGU7XHJcblxyXG4gIC8qXHJcbiAgICogTWVzc2FnZSBmaWxlIHBhdGhcclxuICAgKiBAdHlwZSB7RGF0ZX1cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBmaWxlcyhmaWxlczogYW55W10pIHtcclxuICAgIHRoaXMucmVhZHlGaWxlcyA9IChmaWxlcyB8fCBbXSkubWFwKChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaXNJbWFnZSA9IHRoaXMuaXNJbWFnZShmaWxlKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5maWxlLFxyXG4gICAgICAgIHVybFN0eWxlOiBpc0ltYWdlICYmIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShgdXJsKCR7ZmlsZS51cmx9KWApLFxyXG4gICAgICAgIGlzSW1hZ2U6IGlzSW1hZ2UsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcclxuICB9XHJcblxyXG5cclxuICBpc0ltYWdlKGZpbGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvZ2lmJ10uaW5jbHVkZXMoZmlsZS50eXBlKTtcclxuICB9XHJcbn1cclxuIl19