@banta/sdk 3.2.4 → 3.3.0

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.
@@ -4,7 +4,7 @@ import { CommentViewComponent } from './comment-view/comment-view.component';
4
4
  import { BantaCommentsComponent } from './banta-comments/banta-comments.component';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { FormsModule } from '@angular/forms';
7
- import { BantaCommonModule } from '../common/common.module';
7
+ import { BantaCommonModule } from '../common';
8
8
  import { LiveCommentComponent } from './live-comment.component';
9
9
  import { EmojiModule } from '../emoji';
10
10
  import { MatIconModule } from '@angular/material/icon';
@@ -15,12 +15,16 @@ import { MatFormFieldModule } from '@angular/material/form-field';
15
15
  import { MatInputModule } from '@angular/material/input';
16
16
  import { TextFieldModule } from '@angular/cdk/text-field';
17
17
  import { CommentFieldComponent } from './comment-field/comment-field.component';
18
+ import { MatTooltipModule } from '@angular/material/tooltip';
19
+ import { CommentSortComponent } from "./comment-sort/comment-sort.component";
20
+ import { MatSelectModule } from "@angular/material/select";
18
21
  const COMPONENTS = [
19
22
  CommentComponent,
20
23
  CommentViewComponent,
21
24
  BantaCommentsComponent,
22
25
  LiveCommentComponent,
23
- CommentFieldComponent
26
+ CommentFieldComponent,
27
+ CommentSortComponent
24
28
  ];
25
29
  export class CommentsModule {
26
30
  }
@@ -38,9 +42,11 @@ CommentsModule.decorators = [
38
42
  MatMenuModule,
39
43
  MatProgressSpinnerModule,
40
44
  BantaCommonModule,
41
- EmojiModule
45
+ EmojiModule,
46
+ MatTooltipModule,
47
+ MatSelectModule
42
48
  ],
43
49
  exports: COMPONENTS
44
50
  },] }
45
51
  ];
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkQ6L0Rldi9hc3Ryb25hdXRsYWJzL2JhbnRhL3BhY2thZ2VzL2Zyb250ZW5kL3Byb2plY3RzL3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tbWVudHMvY29tbWVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEYsTUFBTSxVQUFVLEdBQUc7SUFDZixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIscUJBQXFCO0NBQ3hCLENBQUM7QUFtQkYsTUFBTSxPQUFPLGNBQWM7OztZQWpCMUIsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxVQUFVO2dCQUN4QixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixlQUFlO29CQUNmLFdBQVc7b0JBQ1gsYUFBYTtvQkFDYixrQkFBa0I7b0JBQ2xCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixhQUFhO29CQUNiLHdCQUF3QjtvQkFDeEIsaUJBQWlCO29CQUNqQixXQUFXO2lCQUNkO2dCQUNELE9BQU8sRUFBRSxVQUFVO2FBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tbWVudC9jb21tZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1lbnRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LXZpZXcvY29tbWVudC12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhbnRhQ29tbWVudHNDb21wb25lbnQgfSBmcm9tICcuL2JhbnRhLWNvbW1lbnRzL2JhbnRhLWNvbW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYW50YUNvbW1vbk1vZHVsZSB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTGl2ZUNvbW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtY29tbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbW9qaU1vZHVsZSB9IGZyb20gJy4uL2Vtb2ppJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcclxuaW1wb3J0IHsgQ29tbWVudEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LWZpZWxkL2NvbW1lbnQtZmllbGQuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcbiAgICBDb21tZW50Q29tcG9uZW50LFxyXG4gICAgQ29tbWVudFZpZXdDb21wb25lbnQsXHJcbiAgICBCYW50YUNvbW1lbnRzQ29tcG9uZW50LFxyXG4gICAgTGl2ZUNvbW1lbnRDb21wb25lbnQsXHJcbiAgICBDb21tZW50RmllbGRDb21wb25lbnRcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IENPTVBPTkVOVFMsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFRleHRGaWVsZE1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgTWF0TWVudU1vZHVsZSxcclxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICAgICAgQmFudGFDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRW1vamlNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBDT01QT05FTlRTXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tZW50c01vZHVsZSB7XHJcbn0iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IkQ6L0Rldi9hc3Ryb25hdXRsYWJzL2JhbnRhL3BhY2thZ2VzL2Zyb250ZW5kL3Byb2plY3RzL3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tbWVudHMvY29tbWVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxNQUFNLFVBQVUsR0FBRztJQUNmLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsb0JBQW9CO0NBQ3ZCLENBQUM7QUFxQkYsTUFBTSxPQUFPLGNBQWM7OztZQW5CMUIsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxVQUFVO2dCQUMxQixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixlQUFlO29CQUNmLFdBQVc7b0JBQ1gsYUFBYTtvQkFDYixrQkFBa0I7b0JBQ2xCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixhQUFhO29CQUNiLHdCQUF3QjtvQkFDeEIsaUJBQWlCO29CQUNqQixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIsZUFBZTtpQkFDaEI7Z0JBQ0MsT0FBTyxFQUFFLFVBQVU7YUFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbWVudFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtdmlldy9jb21tZW50LXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFudGFDb21tZW50c0NvbXBvbmVudCB9IGZyb20gJy4vYmFudGEtY29tbWVudHMvYmFudGEtY29tbWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJhbnRhQ29tbW9uTW9kdWxlIH0gZnJvbSAnLi4vY29tbW9uJztcclxuaW1wb3J0IHsgTGl2ZUNvbW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtY29tbWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbW9qaU1vZHVsZSB9IGZyb20gJy4uL2Vtb2ppJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcclxuaW1wb3J0IHsgQ29tbWVudEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LWZpZWxkL2NvbW1lbnQtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHtDb21tZW50U29ydENvbXBvbmVudH0gZnJvbSBcIi4vY29tbWVudC1zb3J0L2NvbW1lbnQtc29ydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcclxuXHJcbmNvbnN0IENPTVBPTkVOVFMgPSBbXHJcbiAgICBDb21tZW50Q29tcG9uZW50LFxyXG4gICAgQ29tbWVudFZpZXdDb21wb25lbnQsXHJcbiAgICBCYW50YUNvbW1lbnRzQ29tcG9uZW50LFxyXG4gICAgTGl2ZUNvbW1lbnRDb21wb25lbnQsXHJcbiAgICBDb21tZW50RmllbGRDb21wb25lbnQsXHJcbiAgICBDb21tZW50U29ydENvbXBvbmVudFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUZXh0RmllbGRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXHJcbiAgICBCYW50YUNvbW1vbk1vZHVsZSxcclxuICAgIEVtb2ppTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZVxyXG4gIF0sXHJcbiAgICBleHBvcnRzOiBDT01QT05FTlRTXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tZW50c01vZHVsZSB7XHJcbn1cclxuIl19
@@ -4,4 +4,4 @@ export class ChatBackendService {
4
4
  ChatBackendService.decorators = [
5
5
  { type: Injectable }
6
6
  ];
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1iYWNrZW5kLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovRGV2L2FzdHJvbmF1dGxhYnMvYmFudGEvcGFja2FnZXMvZnJvbnRlbmQvcHJvamVjdHMvc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21tb24vY2hhdC1iYWNrZW5kLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxNQUFNLE9BQWdCLGtCQUFrQjs7O1lBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kLCBOb3RpZmljYXRpb24sIENoYXRTb3VyY2UsIENoYXRNZXNzYWdlIH0gZnJvbSAnQGJhbnRhL2NvbW1vbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENoYXRCYWNrZW5kU2VydmljZSBpbXBsZW1lbnRzIENoYXRCYWNrZW5kIHtcclxuICAgIGFic3RyYWN0IGdldFNvdXJjZUZvclRvcGljKHRvcGljSWQgOiBzdHJpbmcpIDogUHJvbWlzZTxDaGF0U291cmNlPjtcclxuICAgIGFic3RyYWN0IGdldFNvdXJjZUZvclRocmVhZCh0b3BpY0lkIDogc3RyaW5nLCBtZXNzYWdlSWQgOiBzdHJpbmcpIDogUHJvbWlzZTxDaGF0U291cmNlPjtcclxuICAgIGFic3RyYWN0IHJlZnJlc2hNZXNzYWdlKG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSk6IFByb21pc2U8Q2hhdE1lc3NhZ2U+O1xyXG4gICAgYWJzdHJhY3QgZ2V0TWVzc2FnZSh0b3BpY0lkIDogc3RyaW5nLCBtZXNzYWdlSWQgOiBzdHJpbmcpOiBQcm9taXNlPENoYXRNZXNzYWdlPjtcclxuICAgIGFic3RyYWN0IGdldFN1Yk1lc3NhZ2UodG9waWNJZCA6IHN0cmluZywgcGFyZW50TWVzc2FnZUlkIDogc3RyaW5nLCBtZXNzYWdlSWQgOiBzdHJpbmcpOiBQcm9taXNlPENoYXRNZXNzYWdlPjtcclxuICAgIGFic3RyYWN0IHVwdm90ZU1lc3NhZ2UodG9waWNJZCA6IHN0cmluZywgbWVzc2FnZUlkIDogc3RyaW5nLCBzdWJtZXNzYWdlSWQ/IDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcclxuICAgIGFic3RyYWN0IHdhdGNoTWVzc2FnZShtZXNzYWdlIDogQ2hhdE1lc3NhZ2UsIGhhbmRsZXIgOiAobWVzc2FnZSA6IENoYXRNZXNzYWdlKSA9PiB2b2lkKSA6ICgpID0+IHZvaWQ7XHJcbiAgICBhYnN0cmFjdCBtb2RpZnlNZXNzYWdlPyhtZXNzYWdlIDogQ2hhdE1lc3NhZ2UpIDogUHJvbWlzZTx2b2lkPjtcclxuICAgIGFic3RyYWN0IGdldCBub3RpZmljYXRpb25zQ2hhbmdlZCgpIDogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25bXT47XHJcbiAgICBhYnN0cmFjdCBnZXQgbmV3Tm90aWZpY2F0aW9uKCkgOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbj47XHJcbn0iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1iYWNrZW5kLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovRGV2L2FzdHJvbmF1dGxhYnMvYmFudGEvcGFja2FnZXMvZnJvbnRlbmQvcHJvamVjdHMvc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21tb24vY2hhdC1iYWNrZW5kLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxNQUFNLE9BQWdCLGtCQUFrQjs7O1lBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kLCBOb3RpZmljYXRpb24sIENoYXRTb3VyY2UsIENoYXRNZXNzYWdlLCBDaGF0U291cmNlT3B0aW9ucyB9IGZyb20gJ0BiYW50YS9jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDaGF0QmFja2VuZFNlcnZpY2UgaW1wbGVtZW50cyBDaGF0QmFja2VuZCB7XHJcbiAgICBhYnN0cmFjdCBnZXRTb3VyY2VGb3JUb3BpYyh0b3BpY0lkIDogc3RyaW5nLCBvcHRpb25zPzogQ2hhdFNvdXJjZU9wdGlvbnMpIDogUHJvbWlzZTxDaGF0U291cmNlPjtcclxuICAgIGFic3RyYWN0IGdldFNvdXJjZUZvclRocmVhZCh0b3BpY0lkIDogc3RyaW5nLCBtZXNzYWdlSWQgOiBzdHJpbmcsIG9wdGlvbnM/OiBDaGF0U291cmNlT3B0aW9ucykgOiBQcm9taXNlPENoYXRTb3VyY2U+O1xyXG4gICAgYWJzdHJhY3QgcmVmcmVzaE1lc3NhZ2UobWVzc2FnZSA6IENoYXRNZXNzYWdlKTogUHJvbWlzZTxDaGF0TWVzc2FnZT47XHJcbiAgICBhYnN0cmFjdCBnZXRNZXNzYWdlKHRvcGljSWQgOiBzdHJpbmcsIG1lc3NhZ2VJZCA6IHN0cmluZyk6IFByb21pc2U8Q2hhdE1lc3NhZ2U+O1xyXG4gICAgYWJzdHJhY3QgZ2V0U3ViTWVzc2FnZSh0b3BpY0lkIDogc3RyaW5nLCBwYXJlbnRNZXNzYWdlSWQgOiBzdHJpbmcsIG1lc3NhZ2VJZCA6IHN0cmluZyk6IFByb21pc2U8Q2hhdE1lc3NhZ2U+O1xyXG4gICAgYWJzdHJhY3QgdXB2b3RlTWVzc2FnZSh0b3BpY0lkIDogc3RyaW5nLCBtZXNzYWdlSWQgOiBzdHJpbmcsIHN1Ym1lc3NhZ2VJZD8gOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xyXG4gICAgYWJzdHJhY3Qgd2F0Y2hNZXNzYWdlKG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSwgaGFuZGxlciA6IChtZXNzYWdlIDogQ2hhdE1lc3NhZ2UpID0+IHZvaWQpIDogKCkgPT4gdm9pZDtcclxuICAgIGFic3RyYWN0IG1vZGlmeU1lc3NhZ2U/KG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSkgOiBQcm9taXNlPHZvaWQ+O1xyXG4gICAgYWJzdHJhY3QgZ2V0IG5vdGlmaWNhdGlvbnNDaGFuZ2VkKCkgOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbltdPjtcclxuICAgIGFic3RyYWN0IGdldCBuZXdOb3RpZmljYXRpb24oKSA6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uPjtcclxufSJdfQ==
@@ -10,10 +10,13 @@ import { MatInputModule } from '@angular/material/input';
10
10
  import { FormsModule } from '@angular/forms';
11
11
  import { __awaiter } from 'tslib';
12
12
  import { MatDialog, MatDialogModule } from '@angular/material/dialog';
13
+ import { ActivatedRoute } from '@angular/router';
13
14
  import { MatMenuModule } from '@angular/material/menu';
14
15
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
15
16
  import { TextFieldModule } from '@angular/cdk/text-field';
16
17
  import { MatTooltipModule } from '@angular/material/tooltip';
18
+ import { CommentsOrder } from '@banta/common';
19
+ import { MatSelectModule } from '@angular/material/select';
17
20
 
18
21
  function lazyConnection(options) {
19
22
  let obs = new Observable(observer => {
@@ -7643,6 +7646,7 @@ class CommentComponent {
7643
7646
  this._reported = new Subject();
7644
7647
  this._selected = new Subject();
7645
7648
  this._upvoted = new Subject();
7649
+ this._shared = new Subject();
7646
7650
  this._userSelected = new Subject();
7647
7651
  this._avatarSelected = new Subject();
7648
7652
  this._usernameSelected = new Subject();
@@ -7682,12 +7686,18 @@ class CommentComponent {
7682
7686
  var _a;
7683
7687
  return (_a = this.message) === null || _a === void 0 ? void 0 : _a.id;
7684
7688
  }
7689
+ get shared() {
7690
+ return this._shared.asObservable();
7691
+ }
7685
7692
  report() {
7686
7693
  this._reported.next();
7687
7694
  }
7688
7695
  upvote() {
7689
7696
  this._upvoted.next();
7690
7697
  }
7698
+ share() {
7699
+ this._shared.next(this.message);
7700
+ }
7691
7701
  select() {
7692
7702
  this._selected.next();
7693
7703
  }
@@ -7713,7 +7723,7 @@ class CommentComponent {
7713
7723
  CommentComponent.decorators = [
7714
7724
  { type: Component, args: [{
7715
7725
  selector: 'banta-comment',
7716
- template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"report()\">Report</button>\r\n <button mat-menu-item>Help</button>\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <a \r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n </div>\r\n <div class=\"content\">\r\n {{message.message}}\r\n </div>\r\n \r\n <div class=\"actions\">\r\n <banta-timestamp [value]=\"message.sentAt\"></banta-timestamp>\r\n <div class=\"spacer\"></div>\r\n <div class=\"counted-action\" *ngIf=\"showReplyAction\">\r\n <div class=\"count-indicator\">\r\n {{message.submessages?.length || 0}}\r\n </div>\r\n <button mat-icon-button matTooltip=\"Comment\" matTooltipPosition=\"below\" (click)=\"select()\">\r\n <mat-icon [inline]=\"true\">comment</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"counted-action\">\r\n <div class=\"count-indicator\"> \r\n {{message.upvotes}}\r\n </div>\r\n <button mat-icon-button matTooltip=\"Upvote\" matTooltipPosition=\"below\" (click)=\"upvote()\">\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n </button>\r\n </div>\r\n \r\n <button mat-icon-button [matMenuTriggerFor]=\"pointItemMenu\">\r\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n",
7726
+ template: "\r\n<mat-menu #pointItemMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"report()\">Report</button>\r\n <button mat-menu-item>Help</button>\r\n</mat-menu>\r\n\r\n<div class=\"message-content\">\r\n <div class=\"user\">\r\n <a\r\n href=\"javascript:;\"\r\n class=\"avatar\"\r\n (click)=\"selectAvatar(message.user)\"\r\n [style.background-image]=\"avatarForUser(message.user)\"></a>\r\n <a href=\"javascript:;\" class=\"display-name\" (click)=\"selectUser()\">{{message.user.displayName}}</a>\r\n <a href=\"javascript:;\" class=\"username\" (click)=\"selectUsername(message.user)\">@{{message.user.username}}</a>\r\n </div>\r\n <div class=\"content\">\r\n {{message.message}}\r\n </div>\r\n\r\n <div class=\"actions\">\r\n <banta-timestamp [value]=\"message.sentAt\"></banta-timestamp>\r\n <div class=\"spacer\"></div>\r\n <div class=\"counted-action\" *ngIf=\"showReplyAction\">\r\n <div class=\"count-indicator\">\r\n {{message.submessages?.length || 0}}\r\n </div>\r\n <button mat-icon-button matTooltip=\"Comment\" matTooltipPosition=\"below\" (click)=\"select()\">\r\n <mat-icon [inline]=\"true\">comment</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"counted-action\">\r\n <div class=\"count-indicator\">\r\n {{message.upvotes}}\r\n </div>\r\n <button mat-icon-button matTooltip=\"Upvote\" matTooltipPosition=\"below\" (click)=\"upvote()\">\r\n <mat-icon [inline]=\"true\">thumb_up</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"counted-action\">\r\n <button mat-icon-button matTooltip=\"Share this comment\" matTooltipPosition=\"below\" (click)=\"share()\">\r\n <mat-icon [inline]=\"true\" >share</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <button mat-icon-button [matMenuTriggerFor]=\"pointItemMenu\">\r\n <mat-icon [inline]=\"true\">more_vert</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n",
7717
7727
  styles: ["@-webkit-keyframes comment-appear{0%{transform:translate(100vw)}to{transform:translate(0)}}@keyframes comment-appear{0%{transform:translate(100vw)}to{transform:translate(0)}}:host{display:flex;flex-direction:column;padding:.5em;position:relative;visibility:hidden}:host.new{-webkit-animation-duration:.4s;-webkit-animation-fill-mode:both;-webkit-animation-name:comment-appear;animation-duration:.4s;animation-fill-mode:both;animation-name:comment-appear}:host.new,:host.visible{visibility:visible}:host:hover{background:#eee}:host .message-content .content{margin-left:60px;margin-right:.5em}:host.abbreviated .message-content .content{max-height:8.5em;overflow-y:hidden;text-overflow:ellipsis}:host .actions{align-items:center;display:flex;margin-left:60px;padding-right:10px}:host .actions button{color:#666}:host .actions banta-timestamp{color:#666;font-size:10pt}.user{align-items:center;display:flex;margin:1em 0 0;position:relative}.user .display-name,.user .username{color:#000;display:block;flex-grow:0;flex-shrink:1;font-size:10pt;margin:0 auto 0 0;max-width:100%;overflow:hidden;padding:0 0 0 1em;position:relative;text-overflow:ellipsis;white-space:nowrap;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;z-index:1}.user .display-name.username,.user .username.username{color:#666;flex-grow:1;flex-shrink:0}.avatar{background-color:#333;background-position:50%;background-size:cover;border-radius:100%;flex-grow:0;flex-shrink:0;height:48px;width:48px}.counted-action{align-items:center;display:flex}.count-indicator{color:#666;font-size:9pt;padding:0 0 0 3px}:host-context(.mat-dark-theme) .count-indicator{border-color:#333}:host-context(.mat-dark-theme):hover{background:#060606}:host-context(.mat-dark-theme) .user .display-name,:host-context(.mat-dark-theme) .user .username{color:#fff}@media (max-width:400px){.avatar{height:32px;width:32px}:host .actions{margin-left:44px}:host .message-content .content{margin-left:44px;margin-right:.5em}}"]
7718
7728
  },] }
7719
7729
  ];
@@ -7728,7 +7738,8 @@ CommentComponent.propDecorators = {
7728
7738
  reported: [{ type: Output }],
7729
7739
  upvoted: [{ type: Output }],
7730
7740
  selected: [{ type: Output }],
7731
- commentId: [{ type: HostBinding, args: ['attr.data-comment-id',] }]
7741
+ commentId: [{ type: HostBinding, args: ['attr.data-comment-id',] }],
7742
+ shared: [{ type: Output }]
7732
7743
  };
7733
7744
 
7734
7745
  class CommentViewComponent {
@@ -7741,6 +7752,7 @@ class CommentViewComponent {
7741
7752
  this._userSelected = new Subject();
7742
7753
  this._usernameSelected = new Subject();
7743
7754
  this._avatarSelected = new Subject();
7755
+ this._shared = new Subject();
7744
7756
  this.showEmptyState = true;
7745
7757
  this.allowReplies = true;
7746
7758
  this.menuMessage = null;
@@ -7772,6 +7784,9 @@ class CommentViewComponent {
7772
7784
  get avatarSelected() {
7773
7785
  return this._avatarSelected;
7774
7786
  }
7787
+ get shared() {
7788
+ return this._shared;
7789
+ }
7775
7790
  get source() {
7776
7791
  return this._source;
7777
7792
  }
@@ -7793,6 +7808,9 @@ class CommentViewComponent {
7793
7808
  selectAvatar(user) {
7794
7809
  this._avatarSelected.next(user);
7795
7810
  }
7811
+ sharedMessage(message) {
7812
+ this._shared.next(message);
7813
+ }
7796
7814
  set source(value) {
7797
7815
  if (this._sourceSubs) {
7798
7816
  this._sourceSubs.unsubscribe();
@@ -7800,7 +7818,8 @@ class CommentViewComponent {
7800
7818
  }
7801
7819
  this._source = value;
7802
7820
  if (value) {
7803
- let messages = (value.messages || []).slice();
7821
+ console.log(`[banta-comment-view] Subscribing to source...`);
7822
+ const messages = (value.messages || []).slice();
7804
7823
  this.messages = messages;
7805
7824
  this.olderMessages = messages.splice(this.maxVisibleMessages, messages.length);
7806
7825
  this.hasMore = this.olderMessages.length > 0;
@@ -7875,9 +7894,9 @@ class CommentViewComponent {
7875
7894
  isScrolledToLatest() {
7876
7895
  if (!this.messageContainer)
7877
7896
  return false;
7878
- let el = this.messageContainer.nativeElement;
7879
- let currentScroll = el.scrollTop;
7880
- let currentTotal = el.scrollHeight - el.offsetHeight;
7897
+ const el = this.messageContainer.nativeElement;
7898
+ const currentScroll = el.scrollTop;
7899
+ const currentTotal = el.scrollHeight - el.offsetHeight;
7881
7900
  return currentScroll > currentTotal - 10;
7882
7901
  }
7883
7902
  messageSent(message) {
@@ -7889,7 +7908,7 @@ class CommentViewComponent {
7889
7908
  scrollToLatest() {
7890
7909
  if (!this.messageContainer)
7891
7910
  return;
7892
- let el = this.messageContainer.nativeElement;
7911
+ const el = this.messageContainer.nativeElement;
7893
7912
  el.scrollTop = el.scrollHeight;
7894
7913
  }
7895
7914
  mentionsMe(message) {
@@ -7909,7 +7928,7 @@ class CommentViewComponent {
7909
7928
  CommentViewComponent.decorators = [
7910
7929
  { type: Component, args: [{
7911
7930
  selector: 'banta-comment-view',
7912
- template: "<div class=\"message-container\">\r\n <ng-content select=\"[data-before]\"></ng-content>\r\n \r\n <a mat-button class=\"nav\" [class.visible]=\"isViewingMore\" href=\"javascript:;\" (click)=\"showNew()\">\r\n <mat-icon>file_upload</mat-icon>\r\n New\r\n <ng-container *ngIf=\"newMessages.length >= 1\">\r\n ({{newMessages.length}})\r\n </ng-container>\r\n </a>\r\n\r\n <ng-container *ngIf=\"messages.length === 0\">\r\n <div class=\"empty-state\" *ngIf=\"showEmptyState\">\r\n Be the first to comment!\r\n </div>\r\n </ng-container>\r\n <banta-comment \r\n *ngFor=\"let message of messages; trackBy: messageIdentity\"\r\n class=\"abbreviated\"\r\n [message]=\"message\"\r\n (click)=\"isViewingMore = true\"\r\n [showReplyAction]=\"allowReplies\"\r\n\t\t(userSelected)=\"selectMessageUser(message)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n\t\t(usernameSelected)=\"selectUsername($event)\"\r\n (upvoted)=\"upvoteMessage(message)\"\r\n (reported)=\"reportMessage(message)\"\r\n (selected)=\"selectMessage(message)\"\r\n ></banta-comment>\r\n\r\n <a mat-button class=\"nav\" [class.visible]=\"hasMore && !isLoadingMore\" href=\"javascript:;\" (click)=\"showMore()\">Show more</a>\r\n\r\n <div class=\"loading-more\" *ngIf=\"isLoadingMore\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n\r\n <!-- <div style=\"color: #666\">\r\n n={{newMessages.length}}, m={{messages.length}}, o={{olderMessages.length}},\r\n v={{maxVisibleMessages}}, M={{maxMessages}}\r\n </div> -->\r\n\r\n <ng-content select=\":not([data-before])\"></ng-content>\r\n</div>",
7931
+ template: "<div class=\"message-container\">\r\n <ng-content select=\"[data-before]\"></ng-content>\r\n\r\n <a mat-button class=\"nav\" [class.visible]=\"isViewingMore\" href=\"javascript:;\" (click)=\"showNew()\">\r\n <mat-icon>file_upload</mat-icon>\r\n New\r\n <ng-container *ngIf=\"newMessages.length >= 1\">\r\n ({{newMessages.length}})\r\n </ng-container>\r\n </a>\r\n\r\n <ng-container *ngIf=\"messages.length === 0\">\r\n <div class=\"empty-state\" *ngIf=\"showEmptyState\">\r\n Be the first to comment!\r\n </div>\r\n </ng-container>\r\n <banta-comment\r\n *ngFor=\"let message of messages; trackBy: messageIdentity\"\r\n class=\"abbreviated\"\r\n [message]=\"message\"\r\n (click)=\"isViewingMore = true\"\r\n [showReplyAction]=\"allowReplies\"\r\n\t\t(userSelected)=\"selectMessageUser(message)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n\t\t(usernameSelected)=\"selectUsername($event)\"\r\n (upvoted)=\"upvoteMessage(message)\"\r\n (reported)=\"reportMessage(message)\"\r\n (selected)=\"selectMessage(message)\"\r\n (shared)=\"sharedMessage($event)\"\r\n ></banta-comment>\r\n\r\n <a mat-button class=\"nav\" [class.visible]=\"hasMore && !isLoadingMore\" href=\"javascript:;\" (click)=\"showMore()\">Show more</a>\r\n\r\n <div class=\"loading-more\" *ngIf=\"isLoadingMore\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n\r\n <!-- <div style=\"color: #666\">\r\n n={{newMessages.length}}, m={{messages.length}}, o={{olderMessages.length}},\r\n v={{maxVisibleMessages}}, M={{maxMessages}}\r\n </div> -->\r\n\r\n <ng-content select=\":not([data-before])\"></ng-content>\r\n</div>\r\n",
7913
7932
  styles: [":host{display:flex;flex-direction:column;flex-grow:1;opacity:1;transition:opacity .2s ease-in}.message-container{background:#fff;color:#111;flex-grow:1;opacity:1;overflow-x:hidden;padding:.5em 1em 3em .5em;position:relative;transition:opacity .5s ease-in-out}.message-container.no-scroll{height:auto;overflow-y:visible}.message-container.faded{opacity:.25}.message-container .overlay{bottom:0;left:0;position:absolute;right:0;top:0;z-index:10}:host.fixed-height .message-container{overflow-y:auto}:host-context(.mat-dark-theme) .message-container{background:#111;color:#fff}.empty-state{color:#666;margin:3em;text-align:center}:host-context(.mat-dark-theme) .empty-state{color:#666}a.nav{background:#222;border-radius:2em;opacity:0;pointer-events:none;position:absolute;right:.5em;text-align:center;transition:opacity .4s ease-in-out;z-index:10}a.nav.visible{opacity:1;pointer-events:auto}.loading-more{margin:0 auto;padding:2em;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}@media (max-width:400px){.message-container{padding:0 0 3em}}"]
7914
7933
  },] }
7915
7934
  ];
@@ -7926,6 +7945,7 @@ CommentViewComponent.propDecorators = {
7926
7945
  upvoted: [{ type: Output }],
7927
7946
  usernameSelected: [{ type: Output }],
7928
7947
  avatarSelected: [{ type: Output }],
7948
+ shared: [{ type: Output }],
7929
7949
  source: [{ type: Input }],
7930
7950
  genericAvatarUrl: [{ type: Input }],
7931
7951
  messageContainer: [{ type: ViewChild, args: ['messageContainer',] }],
@@ -7938,14 +7958,16 @@ CommentViewComponent.propDecorators = {
7938
7958
  * Comments component
7939
7959
  */
7940
7960
  class BantaCommentsComponent {
7941
- constructor(banta, backend, elementRef) {
7961
+ constructor(banta, backend, elementRef, activatedRoute) {
7942
7962
  this.banta = banta;
7943
7963
  this.backend = backend;
7944
7964
  this.elementRef = elementRef;
7965
+ this.activatedRoute = activatedRoute;
7945
7966
  this._upvoted = new Subject();
7946
7967
  this._reported = new Subject();
7947
7968
  this._selected = new Subject();
7948
7969
  this._userSelected = new Subject();
7970
+ this._shared = new Subject();
7949
7971
  this._usernameSelected = new Subject();
7950
7972
  this._avatarSelected = new Subject();
7951
7973
  this._subs = new Subscription();
@@ -7969,9 +7991,39 @@ class BantaCommentsComponent {
7969
7991
  this.expandError = false;
7970
7992
  this.selectedMessageVisible = false;
7971
7993
  }
7994
+ get sortOrder() {
7995
+ return this._sortOrder;
7996
+ }
7997
+ set sortOrder(value) {
7998
+ if (this._sortOrder !== value) {
7999
+ this._sortOrder = value;
8000
+ setTimeout(() => {
8001
+ this.setSourceFromTopicID(this.topicID);
8002
+ });
8003
+ }
8004
+ }
7972
8005
  ngOnInit() {
7973
8006
  this._subs.add(this.banta.userChanged.subscribe(user => this.user = user));
7974
8007
  }
8008
+ ngAfterViewInit() {
8009
+ if (typeof window !== 'undefined')
8010
+ this.checkForSharedComment();
8011
+ }
8012
+ scrollToComment(commentId) {
8013
+ setTimeout(() => {
8014
+ const comment = document.querySelectorAll(`[data-comment-id="${commentId}"]`);
8015
+ console.log(comment);
8016
+ if (comment.length > 0) {
8017
+ // comment.item(0).scroll({behavior: 'smooth'});
8018
+ comment.item(0).scrollIntoView();
8019
+ }
8020
+ }, 1000);
8021
+ }
8022
+ checkForSharedComment() {
8023
+ const commentID = this.activatedRoute.snapshot.queryParamMap.get('comment');
8024
+ if (commentID)
8025
+ this.scrollToComment(commentID);
8026
+ }
7975
8027
  ngOnDestroy() {
7976
8028
  this._subs.unsubscribe();
7977
8029
  }
@@ -7982,20 +8034,26 @@ class BantaCommentsComponent {
7982
8034
  this._source = value;
7983
8035
  }
7984
8036
  get topicID() {
7985
- return this._source.identifier;
8037
+ return this._topicID;
7986
8038
  }
7987
8039
  set topicID(value) {
7988
- this.setSourceFromTopicID(value);
8040
+ if (this._topicID !== value) {
8041
+ this._topicID = value;
8042
+ setTimeout(() => this.setSourceFromTopicID(value));
8043
+ }
7989
8044
  }
7990
8045
  setSourceFromTopicID(topicID) {
8046
+ var _a, _b;
7991
8047
  return __awaiter(this, void 0, void 0, function* () {
7992
- if (this._source && this._source.close)
7993
- this._source.close();
8048
+ (_b = (_a = this._source) === null || _a === void 0 ? void 0 : _a.close) === null || _b === void 0 ? void 0 : _b.call(_a);
7994
8049
  this._source = null;
7995
- this._source = yield this.backend.getSourceForTopic(topicID);
7996
- this._source.messageReceived.subscribe(m => this.addParticipant(m));
7997
- this._source.messageSent.subscribe(m => this.addParticipant(m));
7998
- this._source.messages.forEach(m => this.addParticipant(m));
8050
+ setTimeout(() => __awaiter(this, void 0, void 0, function* () {
8051
+ this._source = yield this.backend.getSourceForTopic(topicID, { sortOrder: this.sortOrder });
8052
+ console.log(`[banta-comments] Subscribing to source for topic '${topicID}'`);
8053
+ this._source.messageReceived.subscribe(m => this.addParticipant(m));
8054
+ this._source.messageSent.subscribe(m => this.addParticipant(m));
8055
+ this._source.messages.forEach(m => this.addParticipant(m));
8056
+ }));
7999
8057
  });
8000
8058
  }
8001
8059
  addParticipant(message) {
@@ -8060,6 +8118,9 @@ class BantaCommentsComponent {
8060
8118
  get avatarSelected() {
8061
8119
  return this._avatarSelected.asObservable();
8062
8120
  }
8121
+ get shared() {
8122
+ return this._shared.asObservable();
8123
+ }
8063
8124
  onKeyDown(event) {
8064
8125
  }
8065
8126
  insertEmoji(text) {
@@ -8121,6 +8182,9 @@ class BantaCommentsComponent {
8121
8182
  selectAvatar(user) {
8122
8183
  this._avatarSelected.next(user);
8123
8184
  }
8185
+ shareMessage(message) {
8186
+ this._shared.next(message);
8187
+ }
8124
8188
  sendReply() {
8125
8189
  return __awaiter(this, void 0, void 0, function* () {
8126
8190
  yield this.selectedMessageThread.send({
@@ -8146,14 +8210,15 @@ class BantaCommentsComponent {
8146
8210
  BantaCommentsComponent.decorators = [
8147
8211
  { type: Component, args: [{
8148
8212
  selector: 'banta-comments',
8149
- template: "\r\n<div class=\"focused\" [class.visible]=\"selectedMessageVisible\" *ngIf=\"selectedMessage\">\r\n\r\n <div>\r\n <a mat-button href=\"javascript:;\" (click)=\"unselectMessage()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n Latest Comments\r\n </a>\r\n </div>\r\n\r\n <banta-comment \r\n [message]=\"selectedMessage\"\r\n ></banta-comment>\r\n\r\n <div class=\"replies\">\r\n\r\n <ng-container *ngIf=\"!selectedMessageThread\">\r\n <div class=\"loading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"selectedMessageThread\">\r\n <banta-comment-view \r\n [source]=\"selectedMessageThread\"\r\n [allowReplies]=\"false\"\r\n [fixedHeight]=\"false\"\r\n [showEmptyState]=\"false\"\r\n [newestLast]=\"true\"\r\n ></banta-comment-view>\r\n\r\n <banta-comment-field\r\n [sendLabel]=\"replyLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n (signInSelected)=\"showSignIn()\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n [source]=\"selectedMessageThread\"\r\n [canComment]=\"canComment\"\r\n [signInLabel]=\"signInLabel\"\r\n [permissionDeniedLabel]=\"permissionDeniedLabel\"\r\n (permissionDeniedError)=\"showPermissionDenied()\"\r\n [user]=\"user\"\r\n [label]=\"postReplyLabel\"\r\n ></banta-comment-field>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<div class=\"main\" [class.hidden]=\"selectedMessage\">\r\n <banta-comment-field\r\n [source]=\"source\"\r\n [user]=\"user\"\r\n [sendLabel]=\"sendLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [signInLabel]=\"signInLabel\"\r\n [canComment]=\"canComment\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n [label]=\"postCommentLabel\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n (signInSelected)=\"showSignIn()\"\r\n [permissionDeniedLabel]=\"permissionDeniedLabel\"\r\n (permissionDeniedError)=\"showPermissionDenied()\"\r\n ></banta-comment-field>\r\n\r\n <banta-comment-view \r\n [class.faded]=\"selectedMessage\"\r\n [source]=\"source\"\r\n [fixedHeight]=\"fixedHeight\"\r\n [maxMessages]=\"maxMessages\"\r\n [maxVisibleMessages]=\"maxVisibleMessages\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n (userSelected)=\"selectMessageUser($event)\"\r\n (selected)=\"selectMessage($event)\"\r\n (upvoted)=\"upvoteMessage($event)\"\r\n (reported)=\"reportMessage($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n ></banta-comment-view>\r\n</div>\r\n",
8213
+ template: "\r\n<div class=\"focused\" [class.visible]=\"selectedMessageVisible\" *ngIf=\"selectedMessage\">\r\n\r\n <div>\r\n <a mat-button href=\"javascript:;\" (click)=\"unselectMessage()\">\r\n <mat-icon>arrow_back</mat-icon>\r\n Latest Comments\r\n </a>\r\n </div>\r\n\r\n <banta-comment\r\n [message]=\"selectedMessage\"\r\n ></banta-comment>\r\n\r\n <div class=\"replies\">\r\n\r\n <ng-container *ngIf=\"!selectedMessageThread\">\r\n <div class=\"loading\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"selectedMessageThread\">\r\n <banta-comment-view\r\n [source]=\"selectedMessageThread\"\r\n [allowReplies]=\"false\"\r\n [fixedHeight]=\"false\"\r\n [showEmptyState]=\"false\"\r\n [newestLast]=\"true\"\r\n ></banta-comment-view>\r\n\r\n <banta-comment-field\r\n [sendLabel]=\"replyLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n (signInSelected)=\"showSignIn()\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n [source]=\"selectedMessageThread\"\r\n [canComment]=\"canComment\"\r\n [signInLabel]=\"signInLabel\"\r\n [permissionDeniedLabel]=\"permissionDeniedLabel\"\r\n (permissionDeniedError)=\"showPermissionDenied()\"\r\n [user]=\"user\"\r\n [label]=\"postReplyLabel\"\r\n ></banta-comment-field>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<div class=\"main\" [class.hidden]=\"selectedMessage\">\r\n <banta-comment-field\r\n [source]=\"source\"\r\n [user]=\"user\"\r\n [sendLabel]=\"sendLabel\"\r\n [sendingLabel]=\"sendingLabel\"\r\n [signInLabel]=\"signInLabel\"\r\n [canComment]=\"canComment\"\r\n [hashtags]=\"hashtags\"\r\n [participants]=\"participants\"\r\n [label]=\"postCommentLabel\"\r\n (editAvatarSelected)=\"showEditAvatar()\"\r\n (signInSelected)=\"showSignIn()\"\r\n [permissionDeniedLabel]=\"permissionDeniedLabel\"\r\n (permissionDeniedError)=\"showPermissionDenied()\"\r\n ></banta-comment-field>\r\n\r\n <banta-comment-sort\r\n [(sort)]=\"sortOrder\"></banta-comment-sort>\r\n\r\n <banta-comment-view\r\n [class.faded]=\"selectedMessage\"\r\n [source]=\"source\"\r\n [fixedHeight]=\"fixedHeight\"\r\n [maxMessages]=\"maxMessages\"\r\n [maxVisibleMessages]=\"maxVisibleMessages\"\r\n [genericAvatarUrl]=\"genericAvatarUrl\"\r\n (userSelected)=\"selectMessageUser($event)\"\r\n (selected)=\"selectMessage($event)\"\r\n (upvoted)=\"upvoteMessage($event)\"\r\n (reported)=\"reportMessage($event)\"\r\n (usernameSelected)=\"selectUsername($event)\"\r\n (avatarSelected)=\"selectAvatar($event)\"\r\n (shared)=\"shareMessage($event)\"\r\n ></banta-comment-view>\r\n</div>\r\n",
8150
8214
  styles: [":host{display:flex;flex-direction:column}@-webkit-keyframes select-comment{0%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes select-comment{0%{transform:scale(1.15)}to{transform:scale(1)}}.focused{-webkit-animation-duration:.4s;-webkit-animation-fill-mode:both;-webkit-animation-name:select-comment;animation-duration:.4s;animation-fill-mode:both;animation-name:select-comment}.focused .replies{margin-left:4em;margin-top:1em}banta-comment-view{opacity:1;transition:opacity .4s ease-in-out}banta-comment-view.faded{opacity:.25}.loading{display:block;margin:0 auto;min-height:16em;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.main.hidden{display:none}@media (max-width:500px){.focused .replies{margin-left:0}}"]
8151
8215
  },] }
8152
8216
  ];
8153
8217
  BantaCommentsComponent.ctorParameters = () => [
8154
8218
  { type: BantaService },
8155
8219
  { type: ChatBackendService },
8156
- { type: ElementRef }
8220
+ { type: ElementRef },
8221
+ { type: ActivatedRoute }
8157
8222
  ];
8158
8223
  BantaCommentsComponent.propDecorators = {
8159
8224
  hashtags: [{ type: Input }],
@@ -8179,7 +8244,8 @@ BantaCommentsComponent.propDecorators = {
8179
8244
  selected: [{ type: Output }],
8180
8245
  userSelected: [{ type: Output }],
8181
8246
  usernameSelected: [{ type: Output }],
8182
- avatarSelected: [{ type: Output }]
8247
+ avatarSelected: [{ type: Output }],
8248
+ shared: [{ type: Output }]
8183
8249
  };
8184
8250
 
8185
8251
  class LiveCommentComponent {
@@ -8492,12 +8558,44 @@ CommentFieldComponent.propDecorators = {
8492
8558
  permissionDeniedError: [{ type: Output }]
8493
8559
  };
8494
8560
 
8561
+ class CommentSortComponent {
8562
+ constructor() {
8563
+ this.commentsOrder = CommentsOrder;
8564
+ this._sortChange = new Subject();
8565
+ this._sort = CommentsOrder.LIKES;
8566
+ }
8567
+ get sort() {
8568
+ return this._sort;
8569
+ }
8570
+ set sort(value) {
8571
+ if (this._sort !== value) {
8572
+ this._sort = value;
8573
+ setTimeout(() => this._sortChange.next(value));
8574
+ }
8575
+ }
8576
+ get sortChange() {
8577
+ return this._sortChange.asObservable();
8578
+ }
8579
+ }
8580
+ CommentSortComponent.decorators = [
8581
+ { type: Component, args: [{
8582
+ selector: 'banta-comment-sort',
8583
+ template: "<div class=\"sort-row\">\r\n <mat-form-field>\r\n <mat-label>Sort by</mat-label>\r\n <mat-select [(value)]=\"sort\" >\r\n <mat-option [value]=\"commentsOrder.NEWEST\">Newest</mat-option>\r\n <mat-option [value]=\"commentsOrder.OLDEST\">Oldest</mat-option>\r\n <mat-option [value]=\"commentsOrder.LIKES\">Likes</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n",
8584
+ styles: [".sort-row{display:flex;justify-content:end;padding-right:3em}"]
8585
+ },] }
8586
+ ];
8587
+ CommentSortComponent.propDecorators = {
8588
+ sort: [{ type: Input }],
8589
+ sortChange: [{ type: Output }]
8590
+ };
8591
+
8495
8592
  const COMPONENTS$3 = [
8496
8593
  CommentComponent,
8497
8594
  CommentViewComponent,
8498
8595
  BantaCommentsComponent,
8499
8596
  LiveCommentComponent,
8500
- CommentFieldComponent
8597
+ CommentFieldComponent,
8598
+ CommentSortComponent
8501
8599
  ];
8502
8600
  class CommentsModule {
8503
8601
  }
@@ -8515,7 +8613,9 @@ CommentsModule.decorators = [
8515
8613
  MatMenuModule,
8516
8614
  MatProgressSpinnerModule,
8517
8615
  BantaCommonModule,
8518
- EmojiModule
8616
+ EmojiModule,
8617
+ MatTooltipModule,
8618
+ MatSelectModule
8519
8619
  ],
8520
8620
  exports: COMPONENTS$3
8521
8621
  },] }