@muraai/mnl-chat 0.0.1-alpha-82b7eb9 → 0.0.1-alpha-51e7ded
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.
- package/{esm2020 → esm2022}/lib/chat.module.mjs +19 -19
- package/esm2022/lib/components/ng-chat/ng-chat.component.mjs +588 -0
- package/esm2022/lib/components/ng-chat-friends-list/ng-chat-friends-list.component.mjs +128 -0
- package/esm2022/lib/components/ng-chat-options/ng-chat-options.component.mjs +29 -0
- package/esm2022/lib/components/ng-chat-window/ng-chat-window.component.mjs +247 -0
- package/esm2022/lib/core/message-counter.mjs +25 -0
- package/{esm2020 → esm2022}/lib/firstLetter.pipe.mjs +5 -5
- package/esm2022/lib/material.module.mjs +60 -0
- package/{esm2020 → esm2022}/lib/pipes/emojify.pipe.mjs +4 -4
- package/esm2022/lib/pipes/group-message-display-name.pipe.mjs +24 -0
- package/esm2022/lib/pipes/linkfy.pipe.mjs +34 -0
- package/{esm2020 → esm2022}/lib/pipes/sanitize.pipe.mjs +5 -5
- package/{esm2020 → esm2022}/lib/services/chat.service.mjs +5 -5
- package/{fesm2020 → fesm2022}/muraai-mnl-chat.mjs +85 -85
- package/fesm2022/muraai-mnl-chat.mjs.map +1 -0
- package/lib/components/ng-chat/ng-chat.component.d.ts +1 -1
- package/lib/components/ng-chat-friends-list/ng-chat-friends-list.component.d.ts +1 -1
- package/lib/components/ng-chat-options/ng-chat-options.component.d.ts +1 -1
- package/lib/components/ng-chat-window/ng-chat-window.component.d.ts +1 -1
- package/lib/material.module.d.ts +2 -2
- package/package.json +7 -13
- package/esm2020/lib/components/ng-chat/ng-chat.component.mjs +0 -588
- package/esm2020/lib/components/ng-chat-friends-list/ng-chat-friends-list.component.mjs +0 -128
- package/esm2020/lib/components/ng-chat-options/ng-chat-options.component.mjs +0 -29
- package/esm2020/lib/components/ng-chat-window/ng-chat-window.component.mjs +0 -247
- package/esm2020/lib/core/message-counter.mjs +0 -25
- package/esm2020/lib/material.module.mjs +0 -60
- package/esm2020/lib/pipes/group-message-display-name.pipe.mjs +0 -24
- package/esm2020/lib/pipes/linkfy.pipe.mjs +0 -34
- package/fesm2015/muraai-mnl-chat.mjs +0 -1436
- package/fesm2015/muraai-mnl-chat.mjs.map +0 -1
- package/fesm2020/muraai-mnl-chat.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/core/chat-adapter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/chat-controller.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/chat-group-adapter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/chat-option.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/chat-participant-status-descriptor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/chat-participant-status.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/chat-participant-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/chat-participant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/default-file-upload-adapter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/file-upload-adapter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/group.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/guid.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/localization.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/message-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/message.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/paged-history-chat-adapter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/participant-metadata.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/participant-response.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/scroll-direction.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/theme.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/user.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/core/window.mjs +0 -0
- /package/{esm2020 → esm2022}/muraai-mnl-chat.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export class MessageCounter {
|
|
2
|
-
static formatUnreadMessagesTotal(totalUnreadMessages) {
|
|
3
|
-
if (totalUnreadMessages > 0) {
|
|
4
|
-
if (totalUnreadMessages > 99)
|
|
5
|
-
return "99+";
|
|
6
|
-
else
|
|
7
|
-
return String(totalUnreadMessages);
|
|
8
|
-
}
|
|
9
|
-
// Empty fallback.
|
|
10
|
-
return "";
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Returns a formatted string containing the total unread messages of a chat window.
|
|
14
|
-
* @param window The window instance to count the unread total messages.
|
|
15
|
-
* @param currentUserId The current chat instance user id. In this context it would be the sender.
|
|
16
|
-
*/
|
|
17
|
-
static unreadMessagesTotal(window, currentUserId) {
|
|
18
|
-
let totalUnreadMessages = 0;
|
|
19
|
-
if (window) {
|
|
20
|
-
totalUnreadMessages = window.messages.filter(x => x.fromId != currentUserId && !x.dateSeen).length;
|
|
21
|
-
}
|
|
22
|
-
return MessageCounter.formatUnreadMessagesTotal(totalUnreadMessages);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1jb3VudGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC9zcmMvbGliL2NvcmUvbWVzc2FnZS1jb3VudGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxjQUFjO0lBRWhCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBMkI7UUFFL0QsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLEVBQUM7WUFFeEIsSUFBSSxtQkFBbUIsR0FBRyxFQUFFO2dCQUN4QixPQUFRLEtBQUssQ0FBQzs7Z0JBRWQsT0FBTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMxQztRQUVELGtCQUFrQjtRQUNsQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQWMsRUFBRSxhQUFrQjtRQUVoRSxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUU1QixJQUFJLE1BQU0sRUFBQztZQUNQLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ3RHO1FBRUQsT0FBTyxjQUFjLENBQUMseUJBQXlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXaW5kb3cgfSBmcm9tICcuL3dpbmRvdyc7XG5cbmV4cG9ydCBjbGFzcyBNZXNzYWdlQ291bnRlclxue1xuICAgIHB1YmxpYyBzdGF0aWMgZm9ybWF0VW5yZWFkTWVzc2FnZXNUb3RhbCh0b3RhbFVucmVhZE1lc3NhZ2VzOiBudW1iZXIpOiBzdHJpbmdcbiAgICB7XG4gICAgICAgIGlmICh0b3RhbFVucmVhZE1lc3NhZ2VzID4gMCl7XG5cbiAgICAgICAgICAgIGlmICh0b3RhbFVucmVhZE1lc3NhZ2VzID4gOTkpXG4gICAgICAgICAgICAgICAgcmV0dXJuICBcIjk5K1wiO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodG90YWxVbnJlYWRNZXNzYWdlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFbXB0eSBmYWxsYmFjay5cbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGZvcm1hdHRlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgdG90YWwgdW5yZWFkIG1lc3NhZ2VzIG9mIGEgY2hhdCB3aW5kb3cuXG4gICAgICogQHBhcmFtIHdpbmRvdyBUaGUgd2luZG93IGluc3RhbmNlIHRvIGNvdW50IHRoZSB1bnJlYWQgdG90YWwgbWVzc2FnZXMuXG4gICAgICogQHBhcmFtIGN1cnJlbnRVc2VySWQgVGhlIGN1cnJlbnQgY2hhdCBpbnN0YW5jZSB1c2VyIGlkLiBJbiB0aGlzIGNvbnRleHQgaXQgd291bGQgYmUgdGhlIHNlbmRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHVucmVhZE1lc3NhZ2VzVG90YWwod2luZG93OiBXaW5kb3csIGN1cnJlbnRVc2VySWQ6IGFueSk6IHN0cmluZ1xuICAgIHtcbiAgICAgICAgbGV0IHRvdGFsVW5yZWFkTWVzc2FnZXMgPSAwO1xuXG4gICAgICAgIGlmICh3aW5kb3cpe1xuICAgICAgICAgICAgdG90YWxVbnJlYWRNZXNzYWdlcyA9IHdpbmRvdy5tZXNzYWdlcy5maWx0ZXIoeCA9PiB4LmZyb21JZCAhPSBjdXJyZW50VXNlcklkICYmICF4LmRhdGVTZWVuKS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICByZXR1cm4gTWVzc2FnZUNvdW50ZXIuZm9ybWF0VW5yZWFkTWVzc2FnZXNUb3RhbCh0b3RhbFVucmVhZE1lc3NhZ2VzKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
3
|
-
import { MatListModule } from '@angular/material/list';
|
|
4
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
-
import { MatInputModule } from '@angular/material/input';
|
|
6
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
|
-
import { MatCardModule } from '@angular/material/card';
|
|
8
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export function modules() {
|
|
12
|
-
return [
|
|
13
|
-
MatButtonModule,
|
|
14
|
-
MatFormFieldModule,
|
|
15
|
-
MatIconModule,
|
|
16
|
-
MatInputModule,
|
|
17
|
-
FormsModule,
|
|
18
|
-
ReactiveFormsModule,
|
|
19
|
-
MatMenuModule,
|
|
20
|
-
MatListModule,
|
|
21
|
-
MatCardModule
|
|
22
|
-
];
|
|
23
|
-
}
|
|
24
|
-
export class ChatMaterialModule {
|
|
25
|
-
}
|
|
26
|
-
ChatMaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChatMaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
27
|
-
ChatMaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ChatMaterialModule, imports: [MatButtonModule,
|
|
28
|
-
MatFormFieldModule,
|
|
29
|
-
MatIconModule,
|
|
30
|
-
MatInputModule,
|
|
31
|
-
FormsModule,
|
|
32
|
-
ReactiveFormsModule,
|
|
33
|
-
MatMenuModule,
|
|
34
|
-
MatListModule,
|
|
35
|
-
MatCardModule], exports: [MatButtonModule,
|
|
36
|
-
MatFormFieldModule,
|
|
37
|
-
MatIconModule,
|
|
38
|
-
MatInputModule,
|
|
39
|
-
FormsModule,
|
|
40
|
-
ReactiveFormsModule,
|
|
41
|
-
MatMenuModule,
|
|
42
|
-
MatListModule,
|
|
43
|
-
MatCardModule] });
|
|
44
|
-
ChatMaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChatMaterialModule, imports: [modules(), MatButtonModule,
|
|
45
|
-
MatFormFieldModule,
|
|
46
|
-
MatIconModule,
|
|
47
|
-
MatInputModule,
|
|
48
|
-
FormsModule,
|
|
49
|
-
ReactiveFormsModule,
|
|
50
|
-
MatMenuModule,
|
|
51
|
-
MatListModule,
|
|
52
|
-
MatCardModule] });
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ChatMaterialModule, decorators: [{
|
|
54
|
-
type: NgModule,
|
|
55
|
-
args: [{
|
|
56
|
-
imports: modules(),
|
|
57
|
-
exports: modules()
|
|
58
|
-
}]
|
|
59
|
-
}] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC9zcmMvbGliL21hdGVyaWFsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFDdkQsTUFBTSxVQUFVLE9BQU87SUFDckIsT0FBTztRQUNMLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixhQUFhO1FBQ2IsYUFBYTtLQUNkLENBQUM7QUFDSixDQUFDO0FBS0QsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLFlBZjNCLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixhQUFhO1FBQ2IsYUFBYSxhQVJiLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixhQUFhO1FBQ2IsYUFBYTtnSEFPSixrQkFBa0IsWUFIcEIsT0FBTyxFQUFFLEVBWmhCLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixhQUFhO1FBQ2IsYUFBYTsyRkFPSixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLE9BQU8sRUFBRTtvQkFDbEIsT0FBTyxFQUFFLE9BQU8sRUFBRTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmV4cG9ydCBmdW5jdGlvbiBtb2R1bGVzKCkge1xuICByZXR1cm4gW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXRDYXJkTW9kdWxlXG4gIF07XG59XG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBtb2R1bGVzKCksXG4gIGV4cG9ydHM6IG1vZHVsZXMoKVxufSlcbmV4cG9ydCBjbGFzcyBDaGF0TWF0ZXJpYWxNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { ChatParticipantType } from "../core/chat-participant-type.enum";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/*
|
|
5
|
-
* Renders the display name of a participant in a group based on who's sent the message
|
|
6
|
-
*/
|
|
7
|
-
export class GroupMessageDisplayNamePipe {
|
|
8
|
-
transform(participant, message) {
|
|
9
|
-
if (participant && participant.participantType == ChatParticipantType.Group) {
|
|
10
|
-
let group = participant;
|
|
11
|
-
let userIndex = group.chattingTo.findIndex(x => x.id == message.fromId);
|
|
12
|
-
return group.chattingTo[userIndex >= 0 ? userIndex : 0].displayName;
|
|
13
|
-
}
|
|
14
|
-
else
|
|
15
|
-
return "";
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
GroupMessageDisplayNamePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GroupMessageDisplayNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
19
|
-
GroupMessageDisplayNamePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: GroupMessageDisplayNamePipe, name: "groupMessageDisplayName" });
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GroupMessageDisplayNamePipe, decorators: [{
|
|
21
|
-
type: Pipe,
|
|
22
|
-
args: [{ name: 'groupMessageDisplayName' }]
|
|
23
|
-
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtbWVzc2FnZS1kaXNwbGF5LW5hbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NoYXQvc3JjL2xpYi9waXBlcy9ncm91cC1tZXNzYWdlLWRpc3BsYXktbmFtZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUl6RTs7RUFFRTtBQUVGLE1BQU0sT0FBTywyQkFBMkI7SUFDcEMsU0FBUyxDQUFDLFdBQTZCLEVBQUUsT0FBZ0I7UUFDckQsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLGVBQWUsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLEVBQzNFO1lBQ0ksSUFBSSxLQUFLLEdBQUcsV0FBb0IsQ0FBQztZQUNqQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXhFLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztTQUN2RTs7WUFFRyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDOzt3SEFYUSwyQkFBMkI7c0hBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUR2QyxJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JvdXAgfSBmcm9tIFwiLi4vY29yZS9ncm91cFwiO1xuaW1wb3J0IHsgQ2hhdFBhcnRpY2lwYW50VHlwZSB9IGZyb20gXCIuLi9jb3JlL2NoYXQtcGFydGljaXBhbnQtdHlwZS5lbnVtXCI7XG5pbXBvcnQgeyBJQ2hhdFBhcnRpY2lwYW50IH0gZnJvbSBcIi4uL2NvcmUvY2hhdC1wYXJ0aWNpcGFudFwiO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gXCIuLi9jb3JlL21lc3NhZ2VcIjtcblxuLypcbiAqIFJlbmRlcnMgdGhlIGRpc3BsYXkgbmFtZSBvZiBhIHBhcnRpY2lwYW50IGluIGEgZ3JvdXAgYmFzZWQgb24gd2hvJ3Mgc2VudCB0aGUgbWVzc2FnZVxuKi9cbkBQaXBlKHtuYW1lOiAnZ3JvdXBNZXNzYWdlRGlzcGxheU5hbWUnfSlcbmV4cG9ydCBjbGFzcyBHcm91cE1lc3NhZ2VEaXNwbGF5TmFtZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0ocGFydGljaXBhbnQ6IElDaGF0UGFydGljaXBhbnQsIG1lc3NhZ2U6IE1lc3NhZ2UpOiBzdHJpbmcge1xuICAgICAgICBpZiAocGFydGljaXBhbnQgJiYgcGFydGljaXBhbnQucGFydGljaXBhbnRUeXBlID09IENoYXRQYXJ0aWNpcGFudFR5cGUuR3JvdXApXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxldCBncm91cCA9IHBhcnRpY2lwYW50IGFzIEdyb3VwO1xuICAgICAgICAgICAgbGV0IHVzZXJJbmRleCA9IGdyb3VwLmNoYXR0aW5nVG8uZmluZEluZGV4KHggPT4geC5pZCA9PSBtZXNzYWdlLmZyb21JZCk7XG5cbiAgICAgICAgICAgIHJldHVybiBncm91cC5jaGF0dGluZ1RvW3VzZXJJbmRleCA+PSAwID8gdXNlckluZGV4IDogMF0uZGlzcGxheU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxufVxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/*
|
|
4
|
-
* Transforms text containing URLs or E-mails to valid links/mailtos
|
|
5
|
-
*/
|
|
6
|
-
export class LinkfyPipe {
|
|
7
|
-
transform(message, pipeEnabled) {
|
|
8
|
-
if (pipeEnabled && message && message.length > 1) {
|
|
9
|
-
let replacedText;
|
|
10
|
-
let replacePatternProtocol;
|
|
11
|
-
let replacePatternWWW;
|
|
12
|
-
let replacePatternMailTo;
|
|
13
|
-
// URLs starting with http://, https://, or ftp://
|
|
14
|
-
replacePatternProtocol = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
|
|
15
|
-
replacedText = message.replace(replacePatternProtocol, '<a href="$1" target="_blank">$1</a>');
|
|
16
|
-
// URLs starting with "www." (ignoring // before it).
|
|
17
|
-
replacePatternWWW = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
|
|
18
|
-
replacedText = replacedText.replace(replacePatternWWW, '$1<a href="http://$2" target="_blank">$2</a>');
|
|
19
|
-
// Change email addresses to mailto:: links.
|
|
20
|
-
replacePatternMailTo = /(([a-zA-Z0-9\-\_\.])+@[a-zA-Z\_]+?(\.[a-zA-Z]{2,6})+)/gim;
|
|
21
|
-
replacedText = replacedText.replace(replacePatternMailTo, '<a href="mailto:$1">$1</a>');
|
|
22
|
-
return replacedText;
|
|
23
|
-
}
|
|
24
|
-
else
|
|
25
|
-
return message;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
LinkfyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LinkfyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
29
|
-
LinkfyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: LinkfyPipe, name: "linkfy" });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LinkfyPipe, decorators: [{
|
|
31
|
-
type: Pipe,
|
|
32
|
-
args: [{ name: 'linkfy' }]
|
|
33
|
-
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2Z5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0L3NyYy9saWIvcGlwZXMvbGlua2Z5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBEOztFQUVFO0FBRUYsTUFBTSxPQUFPLFVBQVU7SUFDbkIsU0FBUyxDQUFDLE9BQWUsRUFBRSxXQUFvQjtRQUMzQyxJQUFJLFdBQVcsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ2hEO1lBQ0ksSUFBSSxZQUFZLENBQUM7WUFDakIsSUFBSSxzQkFBc0IsQ0FBQztZQUMzQixJQUFJLGlCQUFpQixDQUFDO1lBQ3RCLElBQUksb0JBQW9CLENBQUM7WUFFekIsa0RBQWtEO1lBQ2xELHNCQUFzQixHQUFHLHlFQUF5RSxDQUFDO1lBQ25HLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLHFDQUFxQyxDQUFDLENBQUM7WUFFOUYscURBQXFEO1lBQ3JELGlCQUFpQixHQUFHLGdDQUFnQyxDQUFDO1lBQ3JELFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLDhDQUE4QyxDQUFDLENBQUM7WUFFdkcsNENBQTRDO1lBQzVDLG9CQUFvQixHQUFHLDBEQUEwRCxDQUFDO1lBQ2xGLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLDRCQUE0QixDQUFDLENBQUM7WUFFeEYsT0FBTyxZQUFZLENBQUM7U0FDdkI7O1lBRUcsT0FBTyxPQUFPLENBQUM7SUFDdkIsQ0FBQzs7dUdBekJRLFVBQVU7cUdBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUR0QixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLypcbiAqIFRyYW5zZm9ybXMgdGV4dCBjb250YWluaW5nIFVSTHMgb3IgRS1tYWlscyB0byB2YWxpZCBsaW5rcy9tYWlsdG9zXG4qL1xuQFBpcGUoe25hbWU6ICdsaW5rZnknfSlcbmV4cG9ydCBjbGFzcyBMaW5rZnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKG1lc3NhZ2U6IHN0cmluZywgcGlwZUVuYWJsZWQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBpZiAocGlwZUVuYWJsZWQgJiYgbWVzc2FnZSAmJiBtZXNzYWdlLmxlbmd0aCA+IDEpXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxldCByZXBsYWNlZFRleHQ7XG4gICAgICAgICAgICBsZXQgcmVwbGFjZVBhdHRlcm5Qcm90b2NvbDtcbiAgICAgICAgICAgIGxldCByZXBsYWNlUGF0dGVybldXVztcbiAgICAgICAgICAgIGxldCByZXBsYWNlUGF0dGVybk1haWxUbztcblxuICAgICAgICAgICAgLy8gVVJMcyBzdGFydGluZyB3aXRoIGh0dHA6Ly8sIGh0dHBzOi8vLCBvciBmdHA6Ly9cbiAgICAgICAgICAgIHJlcGxhY2VQYXR0ZXJuUHJvdG9jb2wgPSAvKFxcYihodHRwcz98ZnRwKTpcXC9cXC9bLUEtWjAtOSsmQCNcXC8lPz1+X3whOiwuO10qWy1BLVowLTkrJkAjXFwvJT1+X3xdKS9naW07XG4gICAgICAgICAgICByZXBsYWNlZFRleHQgPSBtZXNzYWdlLnJlcGxhY2UocmVwbGFjZVBhdHRlcm5Qcm90b2NvbCwgJzxhIGhyZWY9XCIkMVwiIHRhcmdldD1cIl9ibGFua1wiPiQxPC9hPicpO1xuXG4gICAgICAgICAgICAvLyBVUkxzIHN0YXJ0aW5nIHdpdGggXCJ3d3cuXCIgKGlnbm9yaW5nIC8vIGJlZm9yZSBpdCkuXG4gICAgICAgICAgICByZXBsYWNlUGF0dGVybldXVyA9IC8oXnxbXlxcL10pKHd3d1xcLltcXFNdKyhcXGJ8JCkpL2dpbTtcbiAgICAgICAgICAgIHJlcGxhY2VkVGV4dCA9IHJlcGxhY2VkVGV4dC5yZXBsYWNlKHJlcGxhY2VQYXR0ZXJuV1dXLCAnJDE8YSBocmVmPVwiaHR0cDovLyQyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+JDI8L2E+Jyk7XG5cbiAgICAgICAgICAgIC8vIENoYW5nZSBlbWFpbCBhZGRyZXNzZXMgdG8gbWFpbHRvOjogbGlua3MuXG4gICAgICAgICAgICByZXBsYWNlUGF0dGVybk1haWxUbyA9IC8oKFthLXpBLVowLTlcXC1cXF9cXC5dKStAW2EtekEtWlxcX10rPyhcXC5bYS16QS1aXXsyLDZ9KSspL2dpbTtcbiAgICAgICAgICAgIHJlcGxhY2VkVGV4dCA9IHJlcGxhY2VkVGV4dC5yZXBsYWNlKHJlcGxhY2VQYXR0ZXJuTWFpbFRvLCAnPGEgaHJlZj1cIm1haWx0bzokMVwiPiQxPC9hPicpO1xuXG4gICAgICAgICAgICByZXR1cm4gcmVwbGFjZWRUZXh0O1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cbn1cbiJdfQ==
|