ngx-techlify-core 16.1.0 → 16.2.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.
- package/esm2022/lib/note/note-list/note-list.component.mjs +33 -41
- package/esm2022/lib/note/note.module.mjs +9 -5
- package/fesm2022/ngx-techlify-core.mjs +34 -41
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/note/note-list/note-list.component.d.ts +3 -7
- package/lib/note/note.module.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { NoteFormComponent } from '../note-form/note-form.component';
|
|
3
|
-
import { ActionPopupComponent } from '../../action-popup
|
|
3
|
+
import { ActionPopupComponent } from '../../action-popup';
|
|
4
|
+
import { TechlifyListingControllerInterface } from '../../base-model';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "../note.service";
|
|
6
7
|
import * as i2 from "@angular/material/dialog";
|
|
@@ -10,8 +11,9 @@ import * as i5 from "@angular/flex-layout/flex";
|
|
|
10
11
|
import * as i6 from "@angular/material/button";
|
|
11
12
|
import * as i7 from "@angular/material/icon";
|
|
12
13
|
import * as i8 from "@angular/material/table";
|
|
13
|
-
import * as i9 from "
|
|
14
|
-
|
|
14
|
+
import * as i9 from "@angular/material/progress-bar";
|
|
15
|
+
import * as i10 from "../comment-form/comment-form.component";
|
|
16
|
+
export class NoteListComponent extends TechlifyListingControllerInterface {
|
|
15
17
|
noteService;
|
|
16
18
|
dialog;
|
|
17
19
|
relatedModelId;
|
|
@@ -19,20 +21,19 @@ export class NoteListComponent {
|
|
|
19
21
|
readonly = false;
|
|
20
22
|
labelText = 'Note';
|
|
21
23
|
commentsView = false;
|
|
22
|
-
notes = [];
|
|
23
24
|
filters;
|
|
24
25
|
displayedColumns = [
|
|
25
26
|
'index',
|
|
26
27
|
'note',
|
|
27
28
|
'actions'
|
|
28
29
|
];
|
|
29
|
-
page = 1;
|
|
30
|
-
lastPage = 1;
|
|
31
30
|
constructor(noteService, dialog) {
|
|
31
|
+
super();
|
|
32
32
|
this.noteService = noteService;
|
|
33
33
|
this.dialog = dialog;
|
|
34
|
+
this.lastPage = 0;
|
|
34
35
|
this.filters = {};
|
|
35
|
-
this.filters.sort_by =
|
|
36
|
+
this.filters.sort_by = 'created_at|DESC';
|
|
36
37
|
}
|
|
37
38
|
ngOnInit() {
|
|
38
39
|
if (this.readonly) {
|
|
@@ -42,15 +43,19 @@ export class NoteListComponent {
|
|
|
42
43
|
this.filters.model_type = this.modelType;
|
|
43
44
|
this.loadData();
|
|
44
45
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
this.
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
loadData() {
|
|
47
|
+
this.isWorking = true;
|
|
48
|
+
this.noteService.getNotes({ ...this.filters, page: this.page }).then((result) => {
|
|
49
|
+
this.models = this.models.concat(result?.data);
|
|
50
|
+
this.lastPage = result?.last_page;
|
|
51
|
+
this.isWorking = false;
|
|
52
|
+
}, () => {
|
|
53
|
+
this.isWorking = false;
|
|
54
|
+
});
|
|
50
55
|
}
|
|
51
56
|
addNote() {
|
|
52
57
|
const dialogRef = this.dialog.open(NoteFormComponent, {
|
|
53
|
-
width:
|
|
58
|
+
width: '400px',
|
|
54
59
|
data: {
|
|
55
60
|
note: { related_model_id: this.relatedModelId, model_type: this.modelType },
|
|
56
61
|
labelText: this.labelText,
|
|
@@ -59,16 +64,15 @@ export class NoteListComponent {
|
|
|
59
64
|
});
|
|
60
65
|
dialogRef.afterClosed().subscribe(result => {
|
|
61
66
|
if (result) {
|
|
62
|
-
this.
|
|
63
|
-
this.loadData();
|
|
67
|
+
this.reload();
|
|
64
68
|
}
|
|
65
69
|
});
|
|
66
70
|
}
|
|
67
71
|
editNote(note) {
|
|
68
72
|
const dialogRef = this.dialog.open(NoteFormComponent, {
|
|
69
|
-
width:
|
|
73
|
+
width: '400px',
|
|
70
74
|
data: {
|
|
71
|
-
note
|
|
75
|
+
note,
|
|
72
76
|
update: true,
|
|
73
77
|
labelText: this.labelText
|
|
74
78
|
},
|
|
@@ -76,14 +80,13 @@ export class NoteListComponent {
|
|
|
76
80
|
});
|
|
77
81
|
dialogRef.afterClosed().subscribe(result => {
|
|
78
82
|
if (result) {
|
|
79
|
-
this.
|
|
80
|
-
this.loadData();
|
|
83
|
+
this.reload();
|
|
81
84
|
}
|
|
82
85
|
});
|
|
83
86
|
}
|
|
84
87
|
async deleteNote(note) {
|
|
85
88
|
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
86
|
-
width:
|
|
89
|
+
width: '400px',
|
|
87
90
|
data: {
|
|
88
91
|
title: `Delete ${this.labelText}`,
|
|
89
92
|
message: `Are you sure to delete?`
|
|
@@ -92,25 +95,14 @@ export class NoteListComponent {
|
|
|
92
95
|
});
|
|
93
96
|
dialogRef.afterClosed().subscribe(async (result) => {
|
|
94
97
|
if (result) {
|
|
95
|
-
//Action confirmed
|
|
96
|
-
|
|
97
|
-
this.
|
|
98
|
+
// Action confirmed
|
|
99
|
+
await this.noteService.deleteNote(note);
|
|
100
|
+
this.models = this.models.filter((item) => item.id !== note.id);
|
|
98
101
|
}
|
|
99
102
|
});
|
|
100
103
|
}
|
|
101
|
-
resetScroll() {
|
|
102
|
-
this.page = 1;
|
|
103
|
-
this.lastPage = 1;
|
|
104
|
-
this.notes = [];
|
|
105
|
-
}
|
|
106
|
-
onScroll() {
|
|
107
|
-
if (this.page < this.lastPage) {
|
|
108
|
-
this.page += 1;
|
|
109
|
-
this.loadData();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
104
|
commentAction(event) {
|
|
113
|
-
if (event.type ===
|
|
105
|
+
if (event.type === 'save') {
|
|
114
106
|
if (event.value.id) {
|
|
115
107
|
this.editComment(event.value);
|
|
116
108
|
return;
|
|
@@ -122,23 +114,23 @@ export class NoteListComponent {
|
|
|
122
114
|
}
|
|
123
115
|
async editComment(comment) {
|
|
124
116
|
const result = await this.noteService.editNote(comment);
|
|
125
|
-
|
|
117
|
+
const index = this.models.findIndex((x) => x.id === comment.id);
|
|
126
118
|
if (index !== -1) {
|
|
127
|
-
this.
|
|
119
|
+
this.models[index] = result.item;
|
|
128
120
|
}
|
|
129
121
|
}
|
|
130
122
|
async addComment(comment) {
|
|
131
123
|
comment.related_model_id = this.relatedModelId;
|
|
132
124
|
comment.model_type = this.modelType;
|
|
133
125
|
const result = await this.noteService.addNote(comment);
|
|
134
|
-
this.
|
|
126
|
+
this.models.push(result.item);
|
|
135
127
|
}
|
|
136
128
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteListComponent, deps: [{ token: i1.NoteService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView" }, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\"
|
|
129
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView" }, usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <div class=\"d-flex justify-content-center align-items-center gap-2\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n <mat-icon (click)=\"addNote()\" class=\"cursor-pointer d-print-none\" *ngIf=\"!readonly\">\n add\n </mat-icon>\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]=\"models\" 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 <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\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 models\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i10.CommentFormComponent, selector: "app-comment-form", inputs: ["commentData"], outputs: ["action"] }] });
|
|
138
130
|
}
|
|
139
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteListComponent, decorators: [{
|
|
140
132
|
type: Component,
|
|
141
|
-
args: [{ selector: 'app-note-list', template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\"
|
|
133
|
+
args: [{ selector: 'app-note-list', template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <div class=\"d-flex justify-content-center align-items-center gap-2\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n <mat-icon (click)=\"addNote()\" class=\"cursor-pointer d-print-none\" *ngIf=\"!readonly\">\n add\n </mat-icon>\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]=\"models\" 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 <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\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 models\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"] }]
|
|
142
134
|
}], ctorParameters: function () { return [{ type: i1.NoteService }, { type: i2.MatDialog }]; }, propDecorators: { relatedModelId: [{
|
|
143
135
|
type: Input
|
|
144
136
|
}], modelType: [{
|
|
@@ -150,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
150
142
|
}], commentsView: [{
|
|
151
143
|
type: Input
|
|
152
144
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7OztBQVFqRixNQUFNLE9BQU8saUJBQWlCO0lBbUJSO0lBQ1Y7SUFsQkQsY0FBYyxDQUFRO0lBQ3RCLFNBQVMsQ0FBUTtJQUNqQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFNBQVMsR0FBVyxNQUFNLENBQUM7SUFDM0IsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUV2QyxLQUFLLEdBQVUsRUFBRSxDQUFDO0lBQ2xCLE9BQU8sQ0FBTTtJQUNiLGdCQUFnQixHQUFHO1FBQ2pCLE9BQU87UUFDUCxNQUFNO1FBQ04sU0FBUztLQUNWLENBQUM7SUFFRixJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUViLFlBQW9CLFdBQXdCLEVBQ2xDLE1BQWlCO1FBRFAsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUV6QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUMzQyxD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QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQzlCLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQ2hDLENBQUM7UUFDRixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFZO1FBQzNCLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBUSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO3dHQTdJVSxpQkFBaUI7NEZBQWpCLGlCQUFpQix1TUNaOUIsaWdGQTBEQTs7NEZEOUNhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlOzBIQU1oQixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbm90ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOb3RlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25vdGUtZm9ybS9ub3RlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXAgfSBmcm9tICcuLi8uLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5vdGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RlLWxpc3QuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSByZWxhdGVkTW9kZWxJZCAhOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGVsVHlwZSAhOiBhbnk7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsVGV4dDogc3RyaW5nID0gJ05vdGUnO1xuICBASW5wdXQoKSBjb21tZW50c1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBub3RlczogYW55W10gPSBbXTtcbiAgZmlsdGVyczogYW55O1xuICBkaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICdpbmRleCcsXG4gICAgJ25vdGUnLFxuICAgICdhY3Rpb25zJ1xuICBdO1xuXG4gIHBhZ2UgPSAxO1xuICBsYXN0UGFnZSA9IDE7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RlU2VydmljZTogTm90ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB7fTtcbiAgICB0aGlzLmZpbHRlcnMuc29ydF9ieSA9IFwiY3JlYXRlZF9hdHxERVNDXCI7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih4ID0+IHggIT09ICdhY3Rpb25zJyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVycy5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICB0aGlzLmZpbHRlcnMubW9kZWxfdHlwZSA9IHRoaXMubW9kZWxUeXBlO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWREYXRhKCkge1xuXG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLm5vdGVTZXJ2aWNlLmdldE5vdGVzKHsgLi4udGhpcy5maWx0ZXJzLCBwYWdlOiB0aGlzLnBhZ2UgfSk7XG4gICAgdGhpcy5ub3RlcyA9IHRoaXMubm90ZXMuY29uY2F0KHJlc3VsdC5kYXRhKTtcbiAgICB0aGlzLnBhZ2UgPSByZXN1bHQuY3VycmVudF9wYWdlO1xuICAgIHRoaXMubGFzdFBhZ2UgPSByZXN1bHQubGFzdF9wYWdlO1xuICB9XG5cbiAgYWRkTm90ZSgpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE5vdGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI0MDBweFwiLFxuICAgICAgZGF0YToge1xuICAgICAgICBub3RlOiB7IHJlbGF0ZWRfbW9kZWxfaWQ6IHRoaXMucmVsYXRlZE1vZGVsSWQsIG1vZGVsX3R5cGU6IHRoaXMubW9kZWxUeXBlIH0sXG4gICAgICAgIGxhYmVsVGV4dDogdGhpcy5sYWJlbFRleHQsXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVzZXRTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZWRpdE5vdGUobm90ZTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihOb3RlRm9ybUNvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IFwiNDAwcHhcIixcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbm90ZTogbm90ZSxcbiAgICAgICAgdXBkYXRlOiB0cnVlLFxuICAgICAgICBsYWJlbFRleHQ6IHRoaXMubGFiZWxUZXh0XG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVzZXRTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlTm90ZShub3RlOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFjdGlvblBvcHVwQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI0MDBweFwiLFxuICAgICAgZGF0YTogPEFjdGlvblBvcHVwPntcbiAgICAgICAgdGl0bGU6IGBEZWxldGUgJHt0aGlzLmxhYmVsVGV4dH1gLFxuICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHRvIGRlbGV0ZT9gXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFzeW5jIHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIC8vQWN0aW9uIGNvbmZpcm1lZFxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuZGVsZXRlTm90ZShub3RlKTtcbiAgICAgICAgdGhpcy5ub3RlcyA9IHRoaXMubm90ZXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQgIT09IG5vdGUuaWQpO1xuXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXNldFNjcm9sbCgpIHtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAxO1xuICAgIHRoaXMubm90ZXMgPSBbXTtcbiAgfVxuXG4gIG9uU2Nyb2xsKCkge1xuICAgIGlmICh0aGlzLnBhZ2UgPCB0aGlzLmxhc3RQYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBjb21tZW50QWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJzYXZlXCIpIHtcbiAgICAgIGlmIChldmVudC52YWx1ZS5pZCkge1xuICAgICAgICB0aGlzLmVkaXRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWxldGVOb3RlKGV2ZW50LnZhbHVlKTtcbiAgfVxuXG4gIGFzeW5jIGVkaXRDb21tZW50KGNvbW1lbnQ6IGFueSkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gYXdhaXQgdGhpcy5ub3RlU2VydmljZS5lZGl0Tm90ZShjb21tZW50KTtcbiAgICBsZXQgaW5kZXggPSB0aGlzLm5vdGVzLmZpbmRJbmRleChcbiAgICAgICh4OiBhbnkpID0+IHguaWQgPT09IGNvbW1lbnQuaWRcbiAgICApO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMubm90ZXNbaW5kZXhdID0gcmVzdWx0Lml0ZW07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkQ29tbWVudChjb21tZW50OiBhbnkpIHtcbiAgICBjb21tZW50LnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIGNvbW1lbnQubW9kZWxfdHlwZSA9IHRoaXMubW9kZWxUeXBlO1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gYXdhaXQgdGhpcy5ub3RlU2VydmljZS5hZGROb3RlKGNvbW1lbnQpO1xuICAgIHRoaXMubm90ZXMucHVzaChyZXN1bHQuaXRlbSk7XG4gIH1cblxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMS41cmVtXCIgY2xhc3M9XCJtLTRcIiAqbmdJZj1cIiFjb21tZW50c1ZpZXdcIj5cblxuICA8ZGl2IGZ4TGF5b3V0IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxcmVtXCI+XG4gICAgPGgzIGNsYXNzPVwibS0wIGZvbnQtd2VpZ2h0LWJvbGQgbXItM1wiPnt7bGFiZWxUZXh0fX1zPC9oMz5cbiAgICA8YnV0dG9uIGNsYXNzPVwiZC1wcmludC1ub25lXCIgKm5nSWY9XCIhcmVhZG9ubHlcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZE5vdGUoKVwiPitcbiAgICAgIEFkZDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidy0xMDAgc2Nyb2xsLWNvbnRhaW5lclwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjFcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiXG4gICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJub3Rlc1wiIGNsYXNzPVwidy0xMDBcIiBtdWx0aVRlbXBsYXRlRGF0YVJvd3M+XG5cbiAgICAgIDwhLS0gSW5kZXggQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlOyBsZXQgaSA9IGRhdGFJbmRleFwiPiB7eyBpKzEgfX0gPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibm90ZVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e2xhYmVsVGV4dH19IDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlXCI+XG4gICAgICAgICAge3tub3RlPy5ub3RlfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImQtcHJpbnQtbm9uZVwiPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlXCIgY2xhc3M9XCJkLXByaW50LW5vbmVcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImVkaXROb3RlKG5vdGUpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkZWxldGVOb3RlKG5vdGUpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG48ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxLjVyZW1cIiAqbmdJZj1cImNvbW1lbnRzVmlld1wiPlxuICA8ZGl2IGZ4TGF5b3V0IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxcmVtXCI+XG4gICAgPGgzIGNsYXNzPVwibS0wIGZvbnQtd2VpZ2h0LWJvbGQgbXItM1wiPnt7bGFiZWxUZXh0fX1zPC9oMz5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydFwiIGZ4RmxleD1cIjEwMCVcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy0xMDAgc2Nyb2xsLWNvbnRhaW5lciBqdW1ib3Ryb25cIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxXCJcbiAgICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCIgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgICA8YXBwLWNvbW1lbnQtZm9ybSBbY29tbWVudERhdGFdPVwiY29tbWVudFwiIChhY3Rpb24pPVwiY29tbWVudEFjdGlvbigkZXZlbnQpXCIgKm5nRm9yPVwibGV0IGNvbW1lbnQgb2Ygbm90ZXNcIj5cbiAgICAgIDwvYXBwLWNvbW1lbnQtZm9ybT5cbiAgICAgIDxhcHAtY29tbWVudC1mb3JtIChhY3Rpb24pPVwiY29tbWVudEFjdGlvbigkZXZlbnQpXCI+PC9hcHAtY29tbWVudC1mb3JtPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7Ozs7QUFPdEUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtDQUFrQztJQWdCN0Q7SUFDQTtJQWZELGNBQWMsQ0FBUTtJQUN0QixTQUFTLENBQVE7SUFDakIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixTQUFTLEdBQUcsTUFBTSxDQUFDO0lBQ25CLFlBQVksR0FBRyxLQUFLLENBQUM7SUFFOUIsT0FBTyxDQUFNO0lBQ2IsZ0JBQWdCLEdBQUc7UUFDakIsT0FBTztRQUNQLE1BQU07UUFDTixTQUFTO0tBQ1YsQ0FBQztJQUVGLFlBQ1UsV0FBd0IsRUFDeEIsTUFBaUI7UUFFekIsS0FBSyxFQUFFLENBQUM7UUFIQSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBR3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxP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LENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBWTtRQUMzQixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMvQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDcEMsTUFBTSxNQUFNLEdBQVEsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQzt3R0FuSVUsaUJBQWlCOzRGQUFqQixpQkFBaUIsOE5DYjlCLGtqRkE0REE7OzRGRC9DYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZTswSEFNaEIsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb3RlU2VydmljZSB9IGZyb20gJy4uL25vdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTm90ZUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9ub3RlLWZvcm0vbm90ZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FjdGlvbi1wb3B1cCc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cCB9IGZyb20gJy4uLy4uL2FjdGlvbi1wb3B1cCc7XG5pbXBvcnQgeyBUZWNobGlmeUxpc3RpbmdDb250cm9sbGVySW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1ub3RlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90ZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90ZS1saXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RlTGlzdENvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5TGlzdGluZ0NvbnRyb2xsZXJJbnRlcmZhY2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHJlbGF0ZWRNb2RlbElkICE6IGFueTtcbiAgQElucHV0KCkgbW9kZWxUeXBlICE6IGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgbGFiZWxUZXh0ID0gJ05vdGUnO1xuICBASW5wdXQoKSBjb21tZW50c1ZpZXcgPSBmYWxzZTtcblxuICBmaWx0ZXJzOiBhbnk7XG4gIGRpc3BsYXllZENvbHVtbnMgPSBbXG4gICAgJ2luZGV4JyxcbiAgICAnbm90ZScsXG4gICAgJ2FjdGlvbnMnXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBub3RlU2VydmljZTogTm90ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAwO1xuICAgIHRoaXMuZmlsdGVycyA9IHt9O1xuICAgIHRoaXMuZmlsdGVycy5zb3J0X2J5ID0gJ2NyZWF0ZWRfYXR8REVTQyc7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih4ID0+IHggIT09ICdhY3Rpb25zJyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVycy5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICB0aGlzLmZpbHRlcnMubW9kZWxfdHlwZSA9IHRoaXMubW9kZWxUeXBlO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLm5vdGVTZXJ2aWNlLmdldE5vdGVzKHsgLi4udGhpcy5maWx0ZXJzLCBwYWdlOiB0aGlzLnBhZ2UgfSkudGhlbihcbiAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmNvbmNhdChyZXN1bHQ/LmRhdGEpO1xuICAgICAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Py5sYXN0X3BhZ2U7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBhZGROb3RlKCk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTm90ZUZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICBub3RlOiB7IHJlbGF0ZWRfbW9kZWxfaWQ6IHRoaXMucmVsYXRlZE1vZGVsSWQsIG1vZGVsX3R5cGU6IHRoaXMubW9kZWxUeXBlIH0sXG4gICAgICAgIGxhYmVsVGV4dDogdGhpcy5sYWJlbFRleHQsXG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBlZGl0Tm90ZShub3RlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE5vdGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbm90ZSxcbiAgICAgICAgdXBkYXRlOiB0cnVlLFxuICAgICAgICBsYWJlbFRleHQ6IHRoaXMubGFiZWxUZXh0XG4gICAgICB9LFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVOb3RlKG5vdGU6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWN0aW9uUG9wdXBDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogYERlbGV0ZSAke3RoaXMubGFiZWxUZXh0fWAsXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgdG8gZGVsZXRlP2BcbiAgICAgIH0gYXMgQWN0aW9uUG9wdXAsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXN5bmMgcmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy8gQWN0aW9uIGNvbmZpcm1lZFxuXG4gICAgICAgIGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuZGVsZXRlTm90ZShub3RlKTtcbiAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCAhPT0gbm90ZS5pZCk7XG5cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbW1lbnRBY3Rpb24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC50eXBlID09PSAnc2F2ZScpIHtcbiAgICAgIGlmIChldmVudC52YWx1ZS5pZCkge1xuICAgICAgICB0aGlzLmVkaXRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWxldGVOb3RlKGV2ZW50LnZhbHVlKTtcbiAgfVxuXG4gIGFzeW5jIGVkaXRDb21tZW50KGNvbW1lbnQ6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gYXdhaXQgdGhpcy5ub3RlU2VydmljZS5lZGl0Tm90ZShjb21tZW50KTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubW9kZWxzLmZpbmRJbmRleChcbiAgICAgICh4OiBhbnkpID0+IHguaWQgPT09IGNvbW1lbnQuaWRcbiAgICApO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMubW9kZWxzW2luZGV4XSA9IHJlc3VsdC5pdGVtO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGFkZENvbW1lbnQoY29tbWVudDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29tbWVudC5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICBjb21tZW50Lm1vZGVsX3R5cGUgPSB0aGlzLm1vZGVsVHlwZTtcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuYWRkTm90ZShjb21tZW50KTtcbiAgICB0aGlzLm1vZGVscy5wdXNoKHJlc3VsdC5pdGVtKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxLjVyZW1cIiAqbmdJZj1cIiFjb21tZW50c1ZpZXdcIj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgPGgzIGNsYXNzPVwibS0wIGZvbnQtd2VpZ2h0LWJvbGQgbXItM1wiPnt7bGFiZWxUZXh0fX1zPC9oMz5cbiAgICA8bWF0LWljb24gKGNsaWNrKT1cImFkZE5vdGUoKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZC1wcmludC1ub25lXCIgKm5nSWY9XCIhcmVhZG9ubHlcIj5cbiAgICAgIGFkZFxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3LTEwMCBzY3JvbGwtY29udGFpbmVyXCIgaW5maW5pdGVTY3JvbGwgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMVwiIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCJcbiAgICAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIj5cbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIiBtdWx0aVRlbXBsYXRlRGF0YVJvd3M+XG5cbiAgICAgIDwhLS0gSW5kZXggQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlOyBsZXQgaSA9IGRhdGFJbmRleFwiPiB7eyBpKzEgfX0gPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibm90ZVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiB7e2xhYmVsVGV4dH19IDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlXCI+XG4gICAgICAgICAge3tub3RlPy5ub3RlfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImQtcHJpbnQtbm9uZVwiPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlXCIgY2xhc3M9XCJkLXByaW50LW5vbmVcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImVkaXROb3RlKG5vdGUpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkZWxldGVOb3RlKG5vdGUpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICA8L2Rpdj5cblxuPC9kaXY+XG5cbjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjEuNXJlbVwiICpuZ0lmPVwiY29tbWVudHNWaWV3XCI+XG4gIDxkaXYgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjFyZW1cIj5cbiAgICA8aDMgY2xhc3M9XCJtLTAgZm9udC13ZWlnaHQtYm9sZCBtci0zXCI+e3tsYWJlbFRleHR9fXM8L2gzPlxuICA8L2Rpdj5cblxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0XCIgZnhGbGV4PVwiMTAwJVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBzY3JvbGwtY29udGFpbmVyIGp1bWJvdHJvblwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjFcIlxuICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIj5cbiAgICAgIDxhcHAtY29tbWVudC1mb3JtIFtjb21tZW50RGF0YV09XCJjb21tZW50XCIgKGFjdGlvbik9XCJjb21tZW50QWN0aW9uKCRldmVudClcIiAqbmdGb3I9XCJsZXQgY29tbWVudCBvZiBtb2RlbHNcIj5cbiAgICAgIDwvYXBwLWNvbW1lbnQtZm9ybT5cbiAgICAgIDxhcHAtY29tbWVudC1mb3JtIChhY3Rpb24pPVwiY29tbWVudEFjdGlvbigkZXZlbnQpXCI+PC9hcHAtY29tbWVudC1mb3JtPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NoteListComponent } from './note-list/note-list.component';
|
|
4
3
|
import { NoteFormComponent } from './note-form/note-form.component';
|
|
5
4
|
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
6
5
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
@@ -9,6 +8,8 @@ import { ActionPopupModule } from '../action-popup/action-popup.module';
|
|
|
9
8
|
import { MaterialModule } from '../material.module';
|
|
10
9
|
import { CommentFormComponent } from './comment-form/comment-form.component';
|
|
11
10
|
import { ReadMoreModule } from '../read-more/read-more.module';
|
|
11
|
+
import { NoteListComponent } from './note-list/note-list.component';
|
|
12
|
+
import { MatProgressBarModule } from "@angular/material/progress-bar";
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
export class NoteModule {
|
|
14
15
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -20,14 +21,16 @@ export class NoteModule {
|
|
|
20
21
|
FlexLayoutModule,
|
|
21
22
|
ActionPopupModule,
|
|
22
23
|
MaterialModule,
|
|
23
|
-
ReadMoreModule
|
|
24
|
+
ReadMoreModule,
|
|
25
|
+
MatProgressBarModule], exports: [NoteListComponent] });
|
|
24
26
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteModule, imports: [CommonModule,
|
|
25
27
|
ReactiveFormsModule,
|
|
26
28
|
InfiniteScrollModule,
|
|
27
29
|
FlexLayoutModule,
|
|
28
30
|
ActionPopupModule,
|
|
29
31
|
MaterialModule,
|
|
30
|
-
ReadMoreModule
|
|
32
|
+
ReadMoreModule,
|
|
33
|
+
MatProgressBarModule] });
|
|
31
34
|
}
|
|
32
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteModule, decorators: [{
|
|
33
36
|
type: NgModule,
|
|
@@ -44,11 +47,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
44
47
|
FlexLayoutModule,
|
|
45
48
|
ActionPopupModule,
|
|
46
49
|
MaterialModule,
|
|
47
|
-
ReadMoreModule
|
|
50
|
+
ReadMoreModule,
|
|
51
|
+
MatProgressBarModule
|
|
48
52
|
],
|
|
49
53
|
exports: [
|
|
50
54
|
NoteListComponent
|
|
51
55
|
]
|
|
52
56
|
}]
|
|
53
57
|
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvbm90ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFzQnBFLE1BQU0sT0FBTyxVQUFVO3dHQUFWLFVBQVU7eUdBQVYsVUFBVSxpQkFsQmYsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixvQkFBb0IsYUFHeEIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQixjQUFjO1lBQ2QsY0FBYztZQUNkLG9CQUFvQixhQUdoQixpQkFBaUI7eUdBR1osVUFBVSxZQWJuQixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxjQUFjO1lBQ2Qsb0JBQW9COzs0RkFNWCxVQUFVO2tCQXBCdEIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjtxQkFDdkI7b0JBQ0gsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2Qsb0JBQW9CO3FCQUNyQjtvQkFDQyxPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3FCQUNwQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTm90ZUZvcm1Db21wb25lbnQgfSBmcm9tICcuL25vdGUtZm9ybS9ub3RlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IEFjdGlvblBvcHVwTW9kdWxlIH0gZnJvbSAnLi4vYWN0aW9uLXBvcHVwL2FjdGlvbi1wb3B1cC5tb2R1bGUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgQ29tbWVudEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnQtZm9ybS9jb21tZW50LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFJlYWRNb3JlTW9kdWxlIH0gZnJvbSAnLi4vcmVhZC1tb3JlL3JlYWQtbW9yZS5tb2R1bGUnO1xuaW1wb3J0IHsgTm90ZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL25vdGUtbGlzdC9ub3RlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7TWF0UHJvZ3Jlc3NCYXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXJcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTm90ZUxpc3RDb21wb25lbnQsXG4gICAgICAgIE5vdGVGb3JtQ29tcG9uZW50LFxuICAgICAgICBDb21tZW50Rm9ybUNvbXBvbmVudCxcbiAgICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBBY3Rpb25Qb3B1cE1vZHVsZSxcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBSZWFkTW9yZU1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZVxuICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgTm90ZUxpc3RDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -5060,7 +5060,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5060
5060
|
type: Output
|
|
5061
5061
|
}] } });
|
|
5062
5062
|
|
|
5063
|
-
class NoteListComponent {
|
|
5063
|
+
class NoteListComponent extends TechlifyListingControllerInterface {
|
|
5064
5064
|
noteService;
|
|
5065
5065
|
dialog;
|
|
5066
5066
|
relatedModelId;
|
|
@@ -5068,20 +5068,19 @@ class NoteListComponent {
|
|
|
5068
5068
|
readonly = false;
|
|
5069
5069
|
labelText = 'Note';
|
|
5070
5070
|
commentsView = false;
|
|
5071
|
-
notes = [];
|
|
5072
5071
|
filters;
|
|
5073
5072
|
displayedColumns = [
|
|
5074
5073
|
'index',
|
|
5075
5074
|
'note',
|
|
5076
5075
|
'actions'
|
|
5077
5076
|
];
|
|
5078
|
-
page = 1;
|
|
5079
|
-
lastPage = 1;
|
|
5080
5077
|
constructor(noteService, dialog) {
|
|
5078
|
+
super();
|
|
5081
5079
|
this.noteService = noteService;
|
|
5082
5080
|
this.dialog = dialog;
|
|
5081
|
+
this.lastPage = 0;
|
|
5083
5082
|
this.filters = {};
|
|
5084
|
-
this.filters.sort_by =
|
|
5083
|
+
this.filters.sort_by = 'created_at|DESC';
|
|
5085
5084
|
}
|
|
5086
5085
|
ngOnInit() {
|
|
5087
5086
|
if (this.readonly) {
|
|
@@ -5091,15 +5090,19 @@ class NoteListComponent {
|
|
|
5091
5090
|
this.filters.model_type = this.modelType;
|
|
5092
5091
|
this.loadData();
|
|
5093
5092
|
}
|
|
5094
|
-
|
|
5095
|
-
|
|
5096
|
-
this.
|
|
5097
|
-
|
|
5098
|
-
|
|
5093
|
+
loadData() {
|
|
5094
|
+
this.isWorking = true;
|
|
5095
|
+
this.noteService.getNotes({ ...this.filters, page: this.page }).then((result) => {
|
|
5096
|
+
this.models = this.models.concat(result?.data);
|
|
5097
|
+
this.lastPage = result?.last_page;
|
|
5098
|
+
this.isWorking = false;
|
|
5099
|
+
}, () => {
|
|
5100
|
+
this.isWorking = false;
|
|
5101
|
+
});
|
|
5099
5102
|
}
|
|
5100
5103
|
addNote() {
|
|
5101
5104
|
const dialogRef = this.dialog.open(NoteFormComponent, {
|
|
5102
|
-
width:
|
|
5105
|
+
width: '400px',
|
|
5103
5106
|
data: {
|
|
5104
5107
|
note: { related_model_id: this.relatedModelId, model_type: this.modelType },
|
|
5105
5108
|
labelText: this.labelText,
|
|
@@ -5108,16 +5111,15 @@ class NoteListComponent {
|
|
|
5108
5111
|
});
|
|
5109
5112
|
dialogRef.afterClosed().subscribe(result => {
|
|
5110
5113
|
if (result) {
|
|
5111
|
-
this.
|
|
5112
|
-
this.loadData();
|
|
5114
|
+
this.reload();
|
|
5113
5115
|
}
|
|
5114
5116
|
});
|
|
5115
5117
|
}
|
|
5116
5118
|
editNote(note) {
|
|
5117
5119
|
const dialogRef = this.dialog.open(NoteFormComponent, {
|
|
5118
|
-
width:
|
|
5120
|
+
width: '400px',
|
|
5119
5121
|
data: {
|
|
5120
|
-
note
|
|
5122
|
+
note,
|
|
5121
5123
|
update: true,
|
|
5122
5124
|
labelText: this.labelText
|
|
5123
5125
|
},
|
|
@@ -5125,14 +5127,13 @@ class NoteListComponent {
|
|
|
5125
5127
|
});
|
|
5126
5128
|
dialogRef.afterClosed().subscribe(result => {
|
|
5127
5129
|
if (result) {
|
|
5128
|
-
this.
|
|
5129
|
-
this.loadData();
|
|
5130
|
+
this.reload();
|
|
5130
5131
|
}
|
|
5131
5132
|
});
|
|
5132
5133
|
}
|
|
5133
5134
|
async deleteNote(note) {
|
|
5134
5135
|
const dialogRef = this.dialog.open(ActionPopupComponent, {
|
|
5135
|
-
width:
|
|
5136
|
+
width: '400px',
|
|
5136
5137
|
data: {
|
|
5137
5138
|
title: `Delete ${this.labelText}`,
|
|
5138
5139
|
message: `Are you sure to delete?`
|
|
@@ -5141,25 +5142,14 @@ class NoteListComponent {
|
|
|
5141
5142
|
});
|
|
5142
5143
|
dialogRef.afterClosed().subscribe(async (result) => {
|
|
5143
5144
|
if (result) {
|
|
5144
|
-
//Action confirmed
|
|
5145
|
-
|
|
5146
|
-
this.
|
|
5145
|
+
// Action confirmed
|
|
5146
|
+
await this.noteService.deleteNote(note);
|
|
5147
|
+
this.models = this.models.filter((item) => item.id !== note.id);
|
|
5147
5148
|
}
|
|
5148
5149
|
});
|
|
5149
5150
|
}
|
|
5150
|
-
resetScroll() {
|
|
5151
|
-
this.page = 1;
|
|
5152
|
-
this.lastPage = 1;
|
|
5153
|
-
this.notes = [];
|
|
5154
|
-
}
|
|
5155
|
-
onScroll() {
|
|
5156
|
-
if (this.page < this.lastPage) {
|
|
5157
|
-
this.page += 1;
|
|
5158
|
-
this.loadData();
|
|
5159
|
-
}
|
|
5160
|
-
}
|
|
5161
5151
|
commentAction(event) {
|
|
5162
|
-
if (event.type ===
|
|
5152
|
+
if (event.type === 'save') {
|
|
5163
5153
|
if (event.value.id) {
|
|
5164
5154
|
this.editComment(event.value);
|
|
5165
5155
|
return;
|
|
@@ -5171,23 +5161,23 @@ class NoteListComponent {
|
|
|
5171
5161
|
}
|
|
5172
5162
|
async editComment(comment) {
|
|
5173
5163
|
const result = await this.noteService.editNote(comment);
|
|
5174
|
-
|
|
5164
|
+
const index = this.models.findIndex((x) => x.id === comment.id);
|
|
5175
5165
|
if (index !== -1) {
|
|
5176
|
-
this.
|
|
5166
|
+
this.models[index] = result.item;
|
|
5177
5167
|
}
|
|
5178
5168
|
}
|
|
5179
5169
|
async addComment(comment) {
|
|
5180
5170
|
comment.related_model_id = this.relatedModelId;
|
|
5181
5171
|
comment.model_type = this.modelType;
|
|
5182
5172
|
const result = await this.noteService.addNote(comment);
|
|
5183
|
-
this.
|
|
5173
|
+
this.models.push(result.item);
|
|
5184
5174
|
}
|
|
5185
5175
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteListComponent, deps: [{ token: NoteService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
5186
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView" }, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\"
|
|
5176
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView" }, usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <div class=\"d-flex justify-content-center align-items-center gap-2\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n <mat-icon (click)=\"addNote()\" class=\"cursor-pointer d-print-none\" *ngIf=\"!readonly\">\n add\n </mat-icon>\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]=\"models\" 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 <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\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 models\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i23.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: CommentFormComponent, selector: "app-comment-form", inputs: ["commentData"], outputs: ["action"] }] });
|
|
5187
5177
|
}
|
|
5188
5178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteListComponent, decorators: [{
|
|
5189
5179
|
type: Component,
|
|
5190
|
-
args: [{ selector: 'app-note-list', template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\"
|
|
5180
|
+
args: [{ selector: 'app-note-list', template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <div class=\"d-flex justify-content-center align-items-center gap-2\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n <mat-icon (click)=\"addNote()\" class=\"cursor-pointer d-print-none\" *ngIf=\"!readonly\">\n add\n </mat-icon>\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]=\"models\" 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 <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\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 models\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"] }]
|
|
5191
5181
|
}], ctorParameters: function () { return [{ type: NoteService }, { type: i1.MatDialog }]; }, propDecorators: { relatedModelId: [{
|
|
5192
5182
|
type: Input
|
|
5193
5183
|
}], modelType: [{
|
|
@@ -5736,14 +5726,16 @@ class NoteModule {
|
|
|
5736
5726
|
FlexLayoutModule,
|
|
5737
5727
|
ActionPopupModule,
|
|
5738
5728
|
MaterialModule,
|
|
5739
|
-
ReadMoreModule
|
|
5729
|
+
ReadMoreModule,
|
|
5730
|
+
MatProgressBarModule], exports: [NoteListComponent] });
|
|
5740
5731
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteModule, imports: [CommonModule,
|
|
5741
5732
|
ReactiveFormsModule,
|
|
5742
5733
|
InfiniteScrollModule,
|
|
5743
5734
|
FlexLayoutModule,
|
|
5744
5735
|
ActionPopupModule,
|
|
5745
5736
|
MaterialModule,
|
|
5746
|
-
ReadMoreModule
|
|
5737
|
+
ReadMoreModule,
|
|
5738
|
+
MatProgressBarModule] });
|
|
5747
5739
|
}
|
|
5748
5740
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NoteModule, decorators: [{
|
|
5749
5741
|
type: NgModule,
|
|
@@ -5760,7 +5752,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5760
5752
|
FlexLayoutModule,
|
|
5761
5753
|
ActionPopupModule,
|
|
5762
5754
|
MaterialModule,
|
|
5763
|
-
ReadMoreModule
|
|
5755
|
+
ReadMoreModule,
|
|
5756
|
+
MatProgressBarModule
|
|
5764
5757
|
],
|
|
5765
5758
|
exports: [
|
|
5766
5759
|
NoteListComponent
|