ngx-techlify-core 11.3.3 → 11.3.7

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.
Files changed (39) hide show
  1. package/bundles/ngx-techlify-core.umd.js +709 -181
  2. package/bundles/ngx-techlify-core.umd.js.map +1 -1
  3. package/bundles/ngx-techlify-core.umd.min.js +2 -2
  4. package/bundles/ngx-techlify-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/note/comment-form/comment-form.component.js +73 -0
  6. package/esm2015/lib/note/index.js +2 -1
  7. package/esm2015/lib/note/note-list/note-list.component.js +33 -3
  8. package/esm2015/lib/note/note.module.js +7 -3
  9. package/esm2015/lib/read-more/read-more.component.js +43 -0
  10. package/esm2015/lib/read-more/read-more.module.js +21 -0
  11. package/esm2015/lib/techlify-feature/on-off-switch/on-off-switch.component.js +27 -0
  12. package/esm2015/lib/techlify-feature/techlify-feature-enabled.directive.js +77 -0
  13. package/esm2015/lib/techlify-feature/techlify-feature-listing.component.js +174 -0
  14. package/esm2015/lib/techlify-feature/techlify-feature.module.js +30 -0
  15. package/esm2015/lib/techlify-feature/techlify-feature.routing.js +12 -0
  16. package/esm2015/lib/techlify-feature/techlify-feature.service.js +28 -0
  17. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.module.js +2 -2
  18. package/esm2015/lib/techlify-update/techlify-update.module.js +2 -2
  19. package/esm2015/ngx-techlify-core.js +33 -31
  20. package/esm2015/public-api.js +7 -1
  21. package/fesm2015/ngx-techlify-core.js +479 -63
  22. package/fesm2015/ngx-techlify-core.js.map +1 -1
  23. package/lib/note/comment-form/comment-form.component.d.ts +22 -0
  24. package/lib/note/index.d.ts +1 -0
  25. package/lib/note/note-list/note-list.component.d.ts +4 -0
  26. package/lib/{techlify-update/read-more → read-more}/read-more.component.d.ts +0 -0
  27. package/lib/{techlify-update/read-more → read-more}/read-more.module.d.ts +0 -0
  28. package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +9 -0
  29. package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +16 -0
  30. package/lib/techlify-feature/techlify-feature-listing.component.d.ts +34 -0
  31. package/lib/techlify-feature/techlify-feature.module.d.ts +2 -0
  32. package/lib/techlify-feature/techlify-feature.routing.d.ts +2 -0
  33. package/lib/techlify-feature/techlify-feature.service.d.ts +8 -0
  34. package/ngx-techlify-core.d.ts +32 -30
  35. package/ngx-techlify-core.metadata.json +1 -1
  36. package/package.json +1 -1
  37. package/public-api.d.ts +6 -0
  38. package/esm2015/lib/techlify-update/read-more/read-more.component.js +0 -43
  39. package/esm2015/lib/techlify-update/read-more/read-more.module.js +0 -21
@@ -0,0 +1,73 @@
1
+ import { Component, Input, Output, EventEmitter } from "@angular/core";
2
+ import { FormBuilder } from "@angular/forms";
3
+ import { CredentialsService } from "../../core/credentials.service";
4
+ export class CommentFormComponent {
5
+ constructor(fb, credentialService) {
6
+ this.fb = fb;
7
+ this.credentialService = credentialService;
8
+ this.action = new EventEmitter();
9
+ this.createForm();
10
+ }
11
+ set commentData(data) {
12
+ this.view = !!data;
13
+ this._commentData = data;
14
+ this.commentFormGroup.patchValue(data);
15
+ }
16
+ ngOnInit() { }
17
+ get isLoggedIn() {
18
+ return this.credentialService.isAuthenticated;
19
+ }
20
+ get currentUser() {
21
+ return this.credentialService.credentials.user;
22
+ }
23
+ createForm() {
24
+ //TODO: Finialize and add more validations.
25
+ this.commentFormGroup = this.fb.group({
26
+ id: [""],
27
+ note: [""],
28
+ model_type: [""],
29
+ related_model_id: [""],
30
+ });
31
+ }
32
+ submit() {
33
+ if (this.commentFormGroup.get("note").value) {
34
+ if (this._commentData) {
35
+ this.view = !this.view;
36
+ }
37
+ this.action.emit({ type: "save", value: this.commentFormGroup.value });
38
+ this.commentFormGroup.reset();
39
+ }
40
+ else if (this.commentFormGroup.get("id").value) {
41
+ this.deleteComment();
42
+ }
43
+ }
44
+ hideEdit() {
45
+ if (this.commentFormGroup.get("id").value) {
46
+ this.view = !this.view;
47
+ }
48
+ }
49
+ editComment() {
50
+ this.view = !this.view;
51
+ this.commentFormGroup.patchValue(this._commentData);
52
+ }
53
+ deleteComment() {
54
+ this.action.emit({ type: "delete", value: this.commentFormGroup.value });
55
+ }
56
+ ngOnDestroy() { }
57
+ }
58
+ CommentFormComponent.decorators = [
59
+ { type: Component, args: [{
60
+ selector: "app-comment-form",
61
+ template: "<form (ngSubmit)=\"submit()\" [formGroup]=\"commentFormGroup\">\n <div fxLayout=\"column\" class=\"my-2\" [ngClass]=\"{ 'border border-primary shadow rounded ': view}\">\n <div *ngIf=\"!view\" fxLayout=\"column\">\n <mat-form-field appearance=\"outline\" style=\"background-color:white;\">\n <mat-label>Comment</mat-label>\n <textarea matInput rows=\"5\" placeholder=\"Add a comment...\" formControlName=\"note\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n\n <div fxLayout fxLayoutGap=\"1rem\" class=\"mt-2\">\n <span fxFlex></span>\n <button *ngIf=\"_commentData\" mat-button type=\"button\" (click)=\"view = !view\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" type=\"submit\">\n {{ _commentData ? \"Update\" : \"Post comment\" }}\n </button>\n </div>\n </div>\n\n <div fxLayout=\"column\" *ngIf=\"view\" class=\"p-2 m-2\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\".5rem\">\n <div fxFlex=\"20%\" fxLayoutAlign=\"start\">\n <button mat-icon-button type=\"button\" style=\"color:grey\">\n <mat-icon style=\"font-size:60px\">account_circle</mat-icon>\n </button>\n </div>\n <div fxFlex=\"75%\">\n <div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div class=\"font-weight-bold\">{{ _commentData?.creator?.name }}</div>\n <div class=\"text-muted\">{{ _commentData.updated_at | date:'medium' }}</div>\n </div>\n </div>\n </div>\n <app-read-more class=\"mt-2\" [text]=\"_commentData.note\"></app-read-more>\n <div fxLayout class=\"mt-1\" fxLayoutGap=\"1rem\" *ngIf=\"isLoggedIn && currentUser.id === _commentData.creator_id\">\n <a href=\"javascript:;\" (click)=\"editComment()\">\n Edit\n </a>\n <a href=\"javascript:;\" (click)=\"deleteComment()\">\n Delete\n </a>\n </div>\n </div>\n </div>\n</form>",
62
+ styles: [":host ::ng-deep .mat-form-field-wrapper{margin:0!important;padding-bottom:0!important}"]
63
+ },] }
64
+ ];
65
+ CommentFormComponent.ctorParameters = () => [
66
+ { type: FormBuilder },
67
+ { type: CredentialsService }
68
+ ];
69
+ CommentFormComponent.propDecorators = {
70
+ commentData: [{ type: Input }],
71
+ action: [{ type: Output }]
72
+ };
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU9wRSxNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLFlBQW9CLEVBQWUsRUFDekIsaUJBQXFDO1FBRDNCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtRQUhyQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUtwQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQVpELElBQWEsV0FBVyxDQUFDLElBQVM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQVVELFFBQVEsS0FBSyxDQUFDO0lBRWQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7SUFFTyxVQUFVO1FBQ2hCLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDcEMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1IsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1YsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hCLGdCQUFnQixFQUFFLENBQUMsRUFBRSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUMzQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3hCO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ2hELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxXQUFXLEtBQUssQ0FBQzs7O1lBdkVsQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsKzlEQUE0Qzs7YUFFN0M7OztZQVBtQixXQUFXO1lBQ3RCLGtCQUFrQjs7OzBCQVl4QixLQUFLO3FCQU1MLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkRlc3Ryb3lcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxzU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NyZWRlbnRpYWxzLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFwcC1jb21tZW50LWZvcm1cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jb21tZW50LWZvcm0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbW1lbnQtZm9ybS5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29tbWVudEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICB2aWV3OiBib29sZWFuO1xuICBfY29tbWVudERhdGE6IGFueTtcblxuICBASW5wdXQoKSBzZXQgY29tbWVudERhdGEoZGF0YTogYW55KSB7XG4gICAgdGhpcy52aWV3ID0gISFkYXRhO1xuICAgIHRoaXMuX2NvbW1lbnREYXRhID0gZGF0YTtcbiAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAucGF0Y2hWYWx1ZShkYXRhKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjcmVkZW50aWFsU2VydmljZTogQ3JlZGVudGlhbHNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7IH1cblxuICBnZXQgaXNMb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVkZW50aWFsU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQ7XG4gIH1cblxuICBnZXQgY3VycmVudFVzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlZGVudGlhbFNlcnZpY2UuY3JlZGVudGlhbHMudXNlcjtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICAvL1RPRE86IEZpbmlhbGl6ZSBhbmQgYWRkIG1vcmUgdmFsaWRhdGlvbnMuXG4gICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBpZDogW1wiXCJdLFxuICAgICAgbm90ZTogW1wiXCJdLFxuICAgICAgbW9kZWxfdHlwZTogW1wiXCJdLFxuICAgICAgcmVsYXRlZF9tb2RlbF9pZDogW1wiXCJdLFxuICAgIH0pO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIGlmICh0aGlzLmNvbW1lbnRGb3JtR3JvdXAuZ2V0KFwibm90ZVwiKS52YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuX2NvbW1lbnREYXRhKSB7XG4gICAgICAgIHRoaXMudmlldyA9ICF0aGlzLnZpZXc7XG4gICAgICB9XG4gICAgICB0aGlzLmFjdGlvbi5lbWl0KHsgdHlwZTogXCJzYXZlXCIsIHZhbHVlOiB0aGlzLmNvbW1lbnRGb3JtR3JvdXAudmFsdWUgfSk7XG4gICAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAucmVzZXQoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tbWVudEZvcm1Hcm91cC5nZXQoXCJpZFwiKS52YWx1ZSkge1xuICAgICAgdGhpcy5kZWxldGVDb21tZW50KCk7XG4gICAgfVxuICB9XG5cbiAgaGlkZUVkaXQoKSB7XG4gICAgaWYgKHRoaXMuY29tbWVudEZvcm1Hcm91cC5nZXQoXCJpZFwiKS52YWx1ZSkge1xuICAgICAgdGhpcy52aWV3ID0gIXRoaXMudmlldztcbiAgICB9XG4gIH1cblxuICBlZGl0Q29tbWVudCgpIHtcbiAgICB0aGlzLnZpZXcgPSAhdGhpcy52aWV3O1xuICAgIHRoaXMuY29tbWVudEZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuX2NvbW1lbnREYXRhKTtcbiAgfVxuXG4gIGRlbGV0ZUNvbW1lbnQoKSB7XG4gICAgdGhpcy5hY3Rpb24uZW1pdCh7IHR5cGU6IFwiZGVsZXRlXCIsIHZhbHVlOiB0aGlzLmNvbW1lbnRGb3JtR3JvdXAudmFsdWUgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHsgfVxufVxuIl19
@@ -1,3 +1,4 @@
1
1
  export * from './note-list/note-list.component';
2
2
  export * from './note-form/note-form.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25vdGUtZm9ybS9ub3RlLWZvcm0uY29tcG9uZW50JzsiXX0=
3
+ export * from './comment-form/comment-form.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25vdGUtbGlzdC9ub3RlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbm90ZS1mb3JtL25vdGUtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudCc7XG4iXX0=
@@ -10,6 +10,7 @@ export class NoteListComponent {
10
10
  this.dialog = dialog;
11
11
  this.readonly = false;
12
12
  this.labelText = 'Note';
13
+ this.commentsView = false;
13
14
  this.notes = [];
14
15
  this.displayedColumns = [
15
16
  'index',
@@ -100,11 +101,39 @@ export class NoteListComponent {
100
101
  this.loadData();
101
102
  }
102
103
  }
104
+ commentAction(event) {
105
+ if (event.type === "save") {
106
+ if (event.value.id) {
107
+ this.editComment(event.value);
108
+ return;
109
+ }
110
+ this.addComment(event.value);
111
+ return;
112
+ }
113
+ this.deleteNote(event.value);
114
+ }
115
+ editComment(comment) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ const result = yield this.noteService.editNote(comment);
118
+ let index = this.notes.findIndex((x) => x.id === comment.id);
119
+ if (index !== -1) {
120
+ this.notes[index] = result.item;
121
+ }
122
+ });
123
+ }
124
+ addComment(comment) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ comment.related_model_id = this.relatedModelId;
127
+ comment.model_type = this.modelType;
128
+ const result = yield this.noteService.addNote(comment);
129
+ this.notes.push(result.item);
130
+ });
131
+ }
103
132
  }
104
133
  NoteListComponent.decorators = [
105
134
  { type: Component, args: [{
106
135
  selector: 'app-note-list',
107
- template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" class=\"m-4\">\n\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n <button class=\"d-print-none\" *ngIf=\"!readonly\" mat-raised-button color=\"primary\" type=\"button\"\n (click)=\"addNote()\">+ Add</button>\n </div>\n\n <div class=\"w-00 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"notes\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{labelText}} </th>\n <td mat-cell *matCellDef=\"let note\">\n {{note?.note}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions </th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none\">\n <button type=\"button\" mat-icon-button (click)=\"editNote(note)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button (click)=\"deleteNote(note)\">\n <mat-icon>delete</mat-icon>\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n</div>",
136
+ template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" class=\"m-4\" *ngIf=\"!commentsView\">\n\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n <button class=\"d-print-none\" *ngIf=\"!readonly\" mat-raised-button color=\"primary\" type=\"button\" (click)=\"addNote()\">+\n Add</button>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"notes\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{labelText}} </th>\n <td mat-cell *matCellDef=\"let note\">\n {{note?.note}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions </th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none\">\n <button type=\"button\" mat-icon-button (click)=\"editNote(note)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button (click)=\"deleteNote(note)\">\n <mat-icon>delete</mat-icon>\n </button>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n</div>\n\n<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"commentsView\">\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start\" fxFlex=\"100%\">\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\" *ngFor=\"let comment of notes\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\n</div>\n",
108
137
  styles: [".scroll-container{max-height:400px;overflow-y:auto}"]
109
138
  },] }
110
139
  ];
@@ -116,6 +145,7 @@ NoteListComponent.propDecorators = {
116
145
  relatedModelId: [{ type: Input }],
117
146
  modelType: [{ type: Input }],
118
147
  readonly: [{ type: Input }],
119
- labelText: [{ type: Input }]
148
+ labelText: [{ type: Input }],
149
+ commentsView: [{ type: Input }]
120
150
  };
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQVFqRixNQUFNLE9BQU8saUJBQWlCO0lBa0I1QixZQUFvQixXQUF3QixFQUNsQyxNQUFpQjtRQURQLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFmbEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixjQUFTLEdBQVcsTUFBTSxDQUFDO1FBRXBDLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFbEIscUJBQWdCLEdBQUc7WUFDakIsT0FBTztZQUNQLE1BQU07WUFDTixTQUFTO1NBQ1YsQ0FBQztRQUVGLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBS1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLENBQUM7SUFDM0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENB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Q0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFFcEU7WUFDSCxDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7OztZQXBIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLGcvREFBeUM7O2FBRTFDOzs7WUFWUSxXQUFXO1lBQ1gsU0FBUzs7OzZCQVlmLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbm90ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOb3RlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25vdGUtZm9ybS9ub3RlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXAgfSBmcm9tICcuLi8uLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5vdGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RlLWxpc3QuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSByZWxhdGVkTW9kZWxJZCAhOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGVsVHlwZSAhOiBhbnk7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsVGV4dDogc3RyaW5nID0gJ05vdGUnO1xuXG4gIG5vdGVzOiBhbnlbXSA9IFtdO1xuICBmaWx0ZXJzOiBhbnk7XG4gIGRpc3BsYXllZENvbHVtbnMgPSBbXG4gICAgJ2luZGV4JyxcbiAgICAnbm90ZScsXG4gICAgJ2FjdGlvbnMnXG4gIF07XG5cbiAgcGFnZSA9IDE7XG4gIGxhc3RQYWdlID0gMTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGVTZXJ2aWNlOiBOb3RlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge1xuICAgIHRoaXMuZmlsdGVycyA9IHt9O1xuICAgIHRoaXMuZmlsdGVycy5zb3J0X2J5ID0gXCJjcmVhdGVkX2F0fERFU0NcIjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHggPT4geCAhPT0gJ2FjdGlvbnMnKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJzLnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIHRoaXMuZmlsdGVycy5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZERhdGEoKSB7XG5cbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuZ2V0Tm90ZXMoeyAuLi50aGlzLmZpbHRlcnMsIHBhZ2U6IHRoaXMucGFnZSB9KTtcbiAgICB0aGlzLm5vdGVzID0gdGhpcy5ub3Rlcy5jb25jYXQocmVzdWx0LmRhdGEpO1xuICAgIHRoaXMucGFnZSA9IHJlc3VsdC5jdXJyZW50X3BhZ2U7XG4gICAgdGhpcy5sYXN0UGFnZSA9IHJlc3VsdC5sYXN0X3BhZ2U7XG4gIH1cblxuICBhZGROb3RlKCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTm90ZUZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiBcIjQwMHB4XCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG5vdGU6IHsgcmVsYXRlZF9tb2RlbF9pZDogdGhpcy5yZWxhdGVkTW9kZWxJZCwgbW9kZWxfdHlwZTogdGhpcy5tb2RlbFR5cGUgfSxcbiAgICAgICAgbGFiZWxUZXh0OiB0aGlzLmxhYmVsVGV4dCxcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZXNldFNjcm9sbCgpO1xuICAgICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBlZGl0Tm90ZShub3RlOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE5vdGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI0MDBweFwiLFxuICAgICAgZGF0YToge1xuICAgICAgICBub3RlOiBub3RlLFxuICAgICAgICB1cGRhdGU6IHRydWUsXG4gICAgICAgIGxhYmVsVGV4dDogdGhpcy5sYWJlbFRleHRcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZXNldFNjcm9sbCgpO1xuICAgICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVOb3RlKG5vdGU6IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWN0aW9uUG9wdXBDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiBcIjQwMHB4XCIsXG4gICAgICBkYXRhOiA8QWN0aW9uUG9wdXA+e1xuICAgICAgICB0aXRsZTogYERlbGV0ZSAke3RoaXMubGFiZWxUZXh0fWAsXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgdG8gZGVsZXRlP2BcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXN5bmMgcmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy9BY3Rpb24gY29uZmlybWVkXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ub3RlU2VydmljZS5kZWxldGVOb3RlKG5vdGUpO1xuICAgICAgICB0aGlzLm5vdGVzID0gdGhpcy5ub3Rlcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCAhPT0gbm90ZS5pZCk7XG5cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0U2Nyb2xsKCkge1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5sYXN0UGFnZSA9IDE7XG4gICAgdGhpcy5ub3RlcyA9IFtdO1xuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMubGFzdFBhZ2UpIHtcbiAgICAgIHRoaXMucGFnZSArPSAxO1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQVFqRixNQUFNLE9BQU8saUJBQWlCO0lBbUI1QixZQUFvQixXQUF3QixFQUNsQyxNQUFpQjtRQURQLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFoQmxCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUFXLE1BQU0sQ0FBQztRQUMzQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUV2QyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRWxCLHFCQUFnQixHQUFHO1lBQ2pCLE9BQU87WUFDUCxNQUFNO1lBQ04sU0FBUztTQUNWLENBQUM7UUFFRixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUtYLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDO0lBQzNDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJ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LENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUNoQyxDQUFDO1lBQ0YsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQzthQUNqQztRQUNILENBQUM7S0FBQTtJQUVLLFVBQVUsQ0FBQyxPQUFZOztZQUMzQixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUMvQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQVEsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztLQUFBOzs7WUFsSkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QiwyZ0ZBQXlDOzthQUUxQzs7O1lBVlEsV0FBVztZQUNYLFNBQVM7Ozs2QkFZZixLQUFLO3dCQUNMLEtBQUs7dUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzJCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbm90ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOb3RlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25vdGUtZm9ybS9ub3RlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXAgfSBmcm9tICcuLi8uLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5vdGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RlLWxpc3QuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSByZWxhdGVkTW9kZWxJZCAhOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGVsVHlwZSAhOiBhbnk7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsVGV4dDogc3RyaW5nID0gJ05vdGUnO1xuICBASW5wdXQoKSBjb21tZW50c1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBub3RlczogYW55W10gPSBbXTtcbiAgZmlsdGVyczogYW55O1xuICBkaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICdpbmRleCcsXG4gICAgJ25vdGUnLFxuICAgICdhY3Rpb25zJ1xuICBdO1xuXG4gIHBhZ2UgPSAxO1xuICBsYXN0UGFnZSA9IDE7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RlU2VydmljZTogTm90ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB7fTtcbiAgICB0aGlzLmZpbHRlcnMuc29ydF9ieSA9IFwiY3JlYXRlZF9hdHxERVNDXCI7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih4ID0+IHggIT09ICdhY3Rpb25zJyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVycy5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICB0aGlzLmZpbHRlcnMubW9kZWxfdHlwZSA9IHRoaXMubW9kZWxUeXBlO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWREYXRhKCkge1xuXG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLm5vdGVTZXJ2aWNlLmdldE5vdGVzKHsgLi4udGhpcy5maWx0ZXJzLCBwYWdlOiB0aGlzLnBhZ2UgfSk7XG4gICAgdGhpcy5ub3RlcyA9IHRoaXMubm90ZXMuY29uY2F0KHJlc3VsdC5kYXRhKTtcbiAgICB0aGlzLnBhZ2UgPSByZXN1bHQuY3VycmVudF9wYWdlO1xuICAgIHRoaXMubGFzdFBhZ2UgPSByZXN1bHQubGFzdF9wYWdlO1xuICB9XG5cbiAgYWRkTm90ZSgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE5vdGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI0MDBweFwiLFxuICAgICAgZGF0YToge1xuICAgICAgICBub3RlOiB7IHJlbGF0ZWRfbW9kZWxfaWQ6IHRoaXMucmVsYXRlZE1vZGVsSWQsIG1vZGVsX3R5cGU6IHRoaXMubW9kZWxUeXBlIH0sXG4gICAgICAgIGxhYmVsVGV4dDogdGhpcy5sYWJlbFRleHQsXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVzZXRTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZWRpdE5vdGUobm90ZTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihOb3RlRm9ybUNvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IFwiNDAwcHhcIixcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbm90ZTogbm90ZSxcbiAgICAgICAgdXBkYXRlOiB0cnVlLFxuICAgICAgICBsYWJlbFRleHQ6IHRoaXMubGFiZWxUZXh0XG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVzZXRTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlTm90ZShub3RlOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFjdGlvblBvcHVwQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI0MDBweFwiLFxuICAgICAgZGF0YTogPEFjdGlvblBvcHVwPntcbiAgICAgICAgdGl0bGU6IGBEZWxldGUgJHt0aGlzLmxhYmVsVGV4dH1gLFxuICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHRvIGRlbGV0ZT9gXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFzeW5jIHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIC8vQWN0aW9uIGNvbmZpcm1lZFxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuZGVsZXRlTm90ZShub3RlKTtcbiAgICAgICAgdGhpcy5ub3RlcyA9IHRoaXMubm90ZXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQgIT09IG5vdGUuaWQpO1xuXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXNldFNjcm9sbCgpIHtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAxO1xuICAgIHRoaXMubm90ZXMgPSBbXTtcbiAgfVxuXG4gIG9uU2Nyb2xsKCkge1xuICAgIGlmICh0aGlzLnBhZ2UgPCB0aGlzLmxhc3RQYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBjb21tZW50QWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJzYXZlXCIpIHtcbiAgICAgIGlmIChldmVudC52YWx1ZS5pZCkge1xuICAgICAgICB0aGlzLmVkaXRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWxldGVOb3RlKGV2ZW50LnZhbHVlKTtcbiAgfVxuXG4gIGFzeW5jIGVkaXRDb21tZW50KGNvbW1lbnQ6IGFueSkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gYXdhaXQgdGhpcy5ub3RlU2VydmljZS5lZGl0Tm90ZShjb21tZW50KTtcbiAgICBsZXQgaW5kZXggPSB0aGlzLm5vdGVzLmZpbmRJbmRleChcbiAgICAgICh4OiBhbnkpID0+IHguaWQgPT09IGNvbW1lbnQuaWRcbiAgICApO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMubm90ZXNbaW5kZXhdID0gcmVzdWx0Lml0ZW07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkQ29tbWVudChjb21tZW50OiBhbnkpIHtcbiAgICBjb21tZW50LnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIGNvbW1lbnQubW9kZWxfdHlwZSA9IHRoaXMubW9kZWxUeXBlO1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gYXdhaXQgdGhpcy5ub3RlU2VydmljZS5hZGROb3RlKGNvbW1lbnQpO1xuICAgIHRoaXMubm90ZXMucHVzaChyZXN1bHQuaXRlbSk7XG4gIH1cblxufVxuIl19
@@ -7,13 +7,16 @@ import { ReactiveFormsModule } from '@angular/forms';
7
7
  import { FlexLayoutModule } from '@angular/flex-layout';
8
8
  import { ActionPopupModule } from '../action-popup/action-popup.module';
9
9
  import { MaterialModule } from '../material.module';
10
+ import { CommentFormComponent } from './comment-form/comment-form.component';
11
+ import { ReadMoreModule } from '../read-more/read-more.module';
10
12
  export class NoteModule {
11
13
  }
12
14
  NoteModule.decorators = [
13
15
  { type: NgModule, args: [{
14
16
  declarations: [
15
17
  NoteListComponent,
16
- NoteFormComponent
18
+ NoteFormComponent,
19
+ CommentFormComponent,
17
20
  ],
18
21
  imports: [
19
22
  CommonModule,
@@ -21,7 +24,8 @@ NoteModule.decorators = [
21
24
  InfiniteScrollModule,
22
25
  FlexLayoutModule,
23
26
  ActionPopupModule,
24
- MaterialModule
27
+ MaterialModule,
28
+ ReadMoreModule
25
29
  ],
26
30
  exports: [
27
31
  NoteListComponent
@@ -29,4 +33,4 @@ NoteModule.decorators = [
29
33
  entryComponents: [NoteFormComponent]
30
34
  },] }
31
35
  ];
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvbm90ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBb0JwRCxNQUFNLE9BQU8sVUFBVTs7O1lBbEJ0QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGlCQUFpQjtvQkFDakIsaUJBQWlCO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsZUFBZSxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5vdGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbm90ZS1mb3JtL25vdGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXBNb2R1bGUgfSBmcm9tICcuLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZHVsZSc7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE5vdGVMaXN0Q29tcG9uZW50LFxuICAgIE5vdGVGb3JtQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEFjdGlvblBvcHVwTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBOb3RlTGlzdENvbXBvbmVudFxuICBdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtOb3RlRm9ybUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTm90ZU1vZHVsZSB7IH1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvbm90ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQXNCL0QsTUFBTSxPQUFPLFVBQVU7OztZQXBCdEIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRTtvQkFDWixpQkFBaUI7b0JBQ2pCLGlCQUFpQjtvQkFDakIsb0JBQW9CO2lCQUNyQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGNBQWM7b0JBQ2QsY0FBYztpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsaUJBQWlCO2lCQUNsQjtnQkFDRCxlQUFlLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTm90ZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL25vdGUtbGlzdC9ub3RlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9ub3RlLWZvcm0vbm90ZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cE1vZHVsZSB9IGZyb20gJy4uL2FjdGlvbi1wb3B1cC9hY3Rpb24tcG9wdXAubW9kdWxlJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IENvbW1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFkTW9yZU1vZHVsZSB9IGZyb20gJy4uL3JlYWQtbW9yZS9yZWFkLW1vcmUubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTm90ZUxpc3RDb21wb25lbnQsXG4gICAgTm90ZUZvcm1Db21wb25lbnQsXG4gICAgQ29tbWVudEZvcm1Db21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEFjdGlvblBvcHVwTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIFJlYWRNb3JlTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBOb3RlTGlzdENvbXBvbmVudFxuICBdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtOb3RlRm9ybUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTm90ZU1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Component, Input } from "@angular/core";
2
+ export class ReadMoreComponent {
3
+ constructor() {
4
+ this.maxLength = 100;
5
+ this.hideToggle = true;
6
+ this.isCollapsed = true;
7
+ }
8
+ ngOnInit() {
9
+ this.determineView();
10
+ }
11
+ toggleView() {
12
+ this.isCollapsed = !this.isCollapsed;
13
+ this.determineView();
14
+ }
15
+ determineView() {
16
+ if (!this.text || this.text.length <= this.maxLength) {
17
+ this.currentText = this.text;
18
+ this.isCollapsed = false;
19
+ this.hideToggle = true;
20
+ return;
21
+ }
22
+ this.hideToggle = false;
23
+ if (this.isCollapsed == true) {
24
+ this.currentText = this.text.substring(0, this.maxLength) + "...";
25
+ }
26
+ else if (this.isCollapsed == false) {
27
+ this.currentText = this.text;
28
+ }
29
+ }
30
+ }
31
+ ReadMoreComponent.decorators = [
32
+ { type: Component, args: [{
33
+ selector: "app-read-more",
34
+ template: "<div [innerHTML]=\"currentText\"></div>\n<a href=\"javascript:;\" *ngIf=\"!hideToggle\" class=\"primary-color hoverable\" (click)=\"toggleView()\">Read\n {{ isCollapsed ? \"more\" : \"less\" }}</a>",
35
+ styles: ["div.collapsed{height:250px;overflow:hidden}.primary-color{color:#009fdd!important}"]
36
+ },] }
37
+ ];
38
+ ReadMoreComponent.ctorParameters = () => [];
39
+ ReadMoreComponent.propDecorators = {
40
+ text: [{ type: Input }],
41
+ maxLength: [{ type: Input }]
42
+ };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1tb3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVhZC1tb3JlL3JlYWQtbW9yZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPekQsTUFBTSxPQUFPLGlCQUFpQjtJQVE1QjtRQU5TLGNBQVMsR0FBVyxHQUFHLENBQUM7UUFFakMsZUFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixnQkFBVyxHQUFZLElBQUksQ0FBQztJQUViLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNuRTthQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs7O1lBckNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsa05BQXlDOzthQUUxQzs7OzttQkFFRSxLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXBwLXJlYWQtbW9yZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3JlYWQtbW9yZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vcmVhZC1tb3JlLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRNb3JlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciA9IDEwMDtcbiAgY3VycmVudFRleHQ6IHN0cmluZztcbiAgaGlkZVRvZ2dsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgaXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRldGVybWluZVZpZXcoKTtcbiAgfVxuXG4gIHRvZ2dsZVZpZXcoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIHRoaXMuZGV0ZXJtaW5lVmlldygpO1xuICB9XG5cbiAgZGV0ZXJtaW5lVmlldygpIHtcbiAgICBpZiAoIXRoaXMudGV4dCB8fCB0aGlzLnRleHQubGVuZ3RoIDw9IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB0aGlzLmN1cnJlbnRUZXh0ID0gdGhpcy50ZXh0O1xuICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5oaWRlVG9nZ2xlID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oaWRlVG9nZ2xlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5jdXJyZW50VGV4dCA9IHRoaXMudGV4dC5zdWJzdHJpbmcoMCwgdGhpcy5tYXhMZW5ndGgpICsgXCIuLi5cIjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDb2xsYXBzZWQgPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuY3VycmVudFRleHQgPSB0aGlzLnRleHQ7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { FlexLayoutModule } from '@angular/flex-layout';
2
+ import { MaterialModule } from '../material.module';
3
+ import { NgModule } from '@angular/core';
4
+ import { CommonModule } from '@angular/common';
5
+ import { ReadMoreComponent } from './read-more.component';
6
+ export class ReadMoreModule {
7
+ }
8
+ ReadMoreModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ declarations: [ReadMoreComponent],
11
+ imports: [
12
+ CommonModule,
13
+ MaterialModule,
14
+ FlexLayoutModule
15
+ ],
16
+ exports: [
17
+ ReadMoreComponent
18
+ ]
19
+ },] }
20
+ ];
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1tb3JlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVhZC1tb3JlL3JlYWQtbW9yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBYTFELE1BQU0sT0FBTyxjQUFjOzs7WUFYMUIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUNqQyxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixjQUFjO29CQUNkLGdCQUFnQjtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGlCQUFpQjtpQkFDbEI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWRNb3JlQ29tcG9uZW50IH0gZnJvbSAnLi9yZWFkLW1vcmUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVhZE1vcmVDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJlYWRNb3JlQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVhZE1vcmVNb2R1bGUgeyB9Il19
@@ -0,0 +1,27 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormBuilder } from '@angular/forms';
3
+ export class OnOffSwitchComponent {
4
+ constructor(fb) {
5
+ this.fb = fb;
6
+ this.slideToggle = this.fb.group({
7
+ toggle: [""]
8
+ });
9
+ }
10
+ ngOnInit() {
11
+ this.slideToggle.get('toggle').setValue(this.value);
12
+ }
13
+ }
14
+ OnOffSwitchComponent.decorators = [
15
+ { type: Component, args: [{
16
+ selector: 'app-on-off-switch',
17
+ template: "<form [formGroup]=\"slideToggle\">\n <mat-slide-toggle formControlName=\"toggle\">On / Off\n </mat-slide-toggle>\n</form>\n",
18
+ styles: [""]
19
+ },] }
20
+ ];
21
+ OnOffSwitchComponent.ctorParameters = () => [
22
+ { type: FormBuilder }
23
+ ];
24
+ OnOffSwitchComponent.propDecorators = {
25
+ value: [{ type: Input }]
26
+ };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tb2ZmLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWZlYXR1cmUvb24tb2ZmLXN3aXRjaC9vbi1vZmYtc3dpdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFReEQsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNiLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7WUFuQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHlJQUE2Qzs7YUFFOUM7OztZQU5RLFdBQVc7OztvQkFVakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW9uLW9mZi1zd2l0Y2gnLFxuICB0ZW1wbGF0ZVVybDogJy4vb24tb2ZmLXN3aXRjaC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29uLW9mZi1zd2l0Y2guY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIE9uT2ZmU3dpdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSB2YWx1ZTogYm9vbGVhbjtcbiAgc2xpZGVUb2dnbGU6IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuc2xpZGVUb2dnbGUgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHRvZ2dsZTogW1wiXCJdXG4gICAgfSlcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2xpZGVUb2dnbGUuZ2V0KCd0b2dnbGUnKS5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,77 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Directive, ElementRef, Input } from '@angular/core';
3
+ import { TechlifyFeatureService } from './techlify-feature.service';
4
+ import { ErrorHandlerService, StorageService } from '../core';
5
+ export class TechlifyFeatureEnabledDirective {
6
+ constructor(el, featureService, errorHandler, storage) {
7
+ this.el = el;
8
+ this.featureService = featureService;
9
+ this.errorHandler = errorHandler;
10
+ this.storage = storage;
11
+ this.localFeatures = [];
12
+ }
13
+ ngOnInit() {
14
+ if (!this.storage.getItem('features')) {
15
+ this.getFeatures();
16
+ }
17
+ else {
18
+ this.checkForFeatureEnabled();
19
+ }
20
+ }
21
+ getFeatures() {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ try {
24
+ let features = yield this.featureService.getFeatures();
25
+ for (let feature of features.data) {
26
+ if (!feature.client_feature) {
27
+ if (feature.is_enabled_default) {
28
+ this.localFeatures.push(feature.code);
29
+ }
30
+ }
31
+ else {
32
+ if (feature.client_feature.is_enabled) {
33
+ this.localFeatures.push(feature.code);
34
+ }
35
+ }
36
+ }
37
+ this.storage.setItem("features", this.localFeatures);
38
+ }
39
+ catch (error) {
40
+ this.errorHandler.handleError(error);
41
+ }
42
+ finally {
43
+ this.checkForFeatureEnabled();
44
+ }
45
+ });
46
+ }
47
+ checkForFeatureEnabled() {
48
+ try {
49
+ let features = this.storage.getItem('features');
50
+ let features_split = features.split(',');
51
+ if (features_split.includes(this.enabledFeature)) {
52
+ this.el.nativeElement.style.display = "show";
53
+ }
54
+ else {
55
+ this.el.nativeElement.remove();
56
+ }
57
+ }
58
+ catch (error) {
59
+ this.errorHandler.handleError(error);
60
+ }
61
+ }
62
+ }
63
+ TechlifyFeatureEnabledDirective.decorators = [
64
+ { type: Directive, args: [{
65
+ selector: '[techlifyFeatureEnabled]'
66
+ },] }
67
+ ];
68
+ TechlifyFeatureEnabledDirective.ctorParameters = () => [
69
+ { type: ElementRef },
70
+ { type: TechlifyFeatureService },
71
+ { type: ErrorHandlerService },
72
+ { type: StorageService }
73
+ ];
74
+ TechlifyFeatureEnabledDirective.propDecorators = {
75
+ enabledFeature: [{ type: Input, args: ['techlifyFeatureEnabled',] }]
76
+ };
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktZmVhdHVyZS1lbmFibGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktZmVhdHVyZS90ZWNobGlmeS1mZWF0dXJlLWVuYWJsZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUs5RCxNQUFNLE9BQU8sK0JBQStCO0lBTTFDLFlBQ1UsRUFBYyxFQUNkLGNBQXNDLEVBQ3RDLFlBQWlDLEVBQ2pDLE9BQXVCO1FBSHZCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBUGpDLGtCQUFhLEdBQVUsRUFBRSxDQUFDO0lBUzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUssV0FBVzs7WUFDZixJQUFJO2dCQUNGLElBQUksUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFFdkQsS0FBSyxJQUFJLE9BQU8sSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFO29CQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTt3QkFDM0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7NEJBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDdkM7cUJBQ0Y7eUJBQU07d0JBQ0wsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRTs0QkFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN2QztxQkFDRjtpQkFFRjtnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3REO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEM7b0JBQVM7Z0JBQ1IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUE7YUFDOUI7UUFDSCxDQUFDO0tBQUE7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSTtZQUNGLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2hELElBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekMsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7YUFDOUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDaEM7U0FFRjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDOzs7WUEvREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7YUFDckM7OztZQU5tQixVQUFVO1lBQ3JCLHNCQUFzQjtZQUN0QixtQkFBbUI7WUFBRSxjQUFjOzs7NkJBU3pDLEtBQUssU0FBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZWNobGlmeUZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi90ZWNobGlmeS1mZWF0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JIYW5kbGVyU2VydmljZSwgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RlY2hsaWZ5RmVhdHVyZUVuYWJsZWRdJ1xufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeUZlYXR1cmVFbmFibGVkRGlyZWN0aXZlIHtcblxuICBmZWF0dXJlczogYW55O1xuICBsb2NhbEZlYXR1cmVzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoJ3RlY2hsaWZ5RmVhdHVyZUVuYWJsZWQnKSBlbmFibGVkRmVhdHVyZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBmZWF0dXJlU2VydmljZTogVGVjaGxpZnlGZWF0dXJlU2VydmljZSxcbiAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ2ZlYXR1cmVzJykpIHtcbiAgICAgIHRoaXMuZ2V0RmVhdHVyZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jaGVja0ZvckZlYXR1cmVFbmFibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0RmVhdHVyZXMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBmZWF0dXJlcyA9IGF3YWl0IHRoaXMuZmVhdHVyZVNlcnZpY2UuZ2V0RmVhdHVyZXMoKTtcblxuICAgICAgZm9yIChsZXQgZmVhdHVyZSBvZiBmZWF0dXJlcy5kYXRhKSB7XG4gICAgICAgIGlmICghZmVhdHVyZS5jbGllbnRfZmVhdHVyZSkge1xuICAgICAgICAgIGlmIChmZWF0dXJlLmlzX2VuYWJsZWRfZGVmYXVsdCkge1xuICAgICAgICAgICAgdGhpcy5sb2NhbEZlYXR1cmVzLnB1c2goZmVhdHVyZS5jb2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGZlYXR1cmUuY2xpZW50X2ZlYXR1cmUuaXNfZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5sb2NhbEZlYXR1cmVzLnB1c2goZmVhdHVyZS5jb2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oXCJmZWF0dXJlc1wiLCB0aGlzLmxvY2FsRmVhdHVyZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuY2hlY2tGb3JGZWF0dXJlRW5hYmxlZCgpXG4gICAgfVxuICB9XG5cbiAgY2hlY2tGb3JGZWF0dXJlRW5hYmxlZCgpIHtcbiAgICB0cnkge1xuICAgICAgbGV0IGZlYXR1cmVzID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ2ZlYXR1cmVzJyk7XG4gICAgICBsZXQgZmVhdHVyZXNfc3BsaXQgPSBmZWF0dXJlcy5zcGxpdCgnLCcpO1xuXG4gICAgICBpZiAoZmVhdHVyZXNfc3BsaXQuaW5jbHVkZXModGhpcy5lbmFibGVkRmVhdHVyZSkpIHtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcInNob3dcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcbiAgICAgIH1cblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==