ngx-techlify-core 18.63.0 → 18.65.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/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +1 -5
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +4 -9
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +1 -5
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +5 -5
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +1 -5
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +4 -5
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +1 -5
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +1 -5
- package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +9 -10
- package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +18 -20
- package/esm2022/lib/entity-files/entity-files-view-all.module.mjs +4 -9
- package/esm2022/lib/import-csv/data-import/data-import.component.mjs +4 -5
- package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +6 -7
- package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +10 -11
- package/esm2022/lib/import-csv/import-csv.component.mjs +15 -15
- package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +6 -7
- package/esm2022/lib/import-csv/import-success/import-success.component.mjs +7 -8
- package/esm2022/lib/locked-date/index.mjs +2 -2
- package/esm2022/lib/locked-date/locked-date.module.mjs +6 -6
- package/esm2022/lib/locked-date/locked-dates-list/locked-date-list.component.mjs +68 -0
- package/esm2022/lib/role/index.mjs +2 -2
- package/esm2022/lib/role/role-form.component.mjs +4 -4
- package/esm2022/lib/role/role-list/role-list.component.mjs +120 -0
- package/esm2022/lib/role/role-view/role-view.component.mjs +3 -4
- package/esm2022/lib/role/role.module.mjs +9 -16
- package/esm2022/lib/role/role.routes.mjs +3 -3
- package/esm2022/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.mjs +197 -0
- package/esm2022/public-api.mjs +3 -2
- package/fesm2022/ngx-techlify-core.mjs +412 -275
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +3 -4
- package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +7 -8
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +5 -6
- package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +2 -3
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +2 -3
- package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +2 -3
- package/lib/entity-files/entity-files-view-all.module.d.ts +11 -12
- package/lib/locked-date/index.d.ts +1 -1
- package/lib/locked-date/locked-date.module.d.ts +2 -2
- package/lib/locked-date/locked-dates-list/{locked-dates-list.component.d.ts → locked-date-list.component.d.ts} +3 -3
- package/lib/role/index.d.ts +1 -1
- package/lib/role/{roles-view-all.component.d.ts → role-list/role-list.component.d.ts} +8 -14
- package/lib/role/role.module.d.ts +6 -7
- package/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.d.ts +50 -0
- package/package.json +4 -4
- package/public-api.d.ts +1 -1
- package/esm2022/lib/date-validator.mjs +0 -10
- package/esm2022/lib/locked-date/locked-dates-list/locked-dates-list.component.mjs +0 -68
- package/esm2022/lib/role/roles-view-all.component.mjs +0 -128
- package/lib/date-validator.d.ts +0 -1
|
@@ -4,11 +4,10 @@ import * as i2 from "../audit-log-view-model/audit-log-view-model.module";
|
|
|
4
4
|
import * as i3 from "../audit-logs-view-model/audit-logs-view-model.module";
|
|
5
5
|
import * as i4 from "@angular/common";
|
|
6
6
|
import * as i5 from "./audit-log-for-model-routing.module";
|
|
7
|
-
import * as i6 from "
|
|
8
|
-
import * as i7 from "../../
|
|
9
|
-
import * as i8 from "../../techlify-icon/techlify-icon.module";
|
|
7
|
+
import * as i6 from "../../material.module";
|
|
8
|
+
import * as i7 from "../../techlify-icon/techlify-icon.module";
|
|
10
9
|
export declare class AuditLogForModelModule {
|
|
11
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuditLogForModelModule, never>;
|
|
12
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogForModelModule, [typeof i1.AuditLogForModelComponent], [typeof i2.AuditLogViewModelModule, typeof i3.AuditLogsViewModelModule, typeof i4.CommonModule, typeof i5.AuditLogForModelRoutingModule, typeof i6.
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogForModelModule, [typeof i1.AuditLogForModelComponent], [typeof i2.AuditLogViewModelModule, typeof i3.AuditLogsViewModelModule, typeof i4.CommonModule, typeof i5.AuditLogForModelRoutingModule, typeof i6.MaterialModule, typeof i7.TechlifyIconModule], [typeof i1.AuditLogForModelComponent]>;
|
|
13
12
|
static ɵinj: i0.ɵɵInjectorDeclaration<AuditLogForModelModule>;
|
|
14
13
|
}
|
|
@@ -3,15 +3,14 @@ import * as i1 from "./audit-log-list.component";
|
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
4
|
import * as i3 from "./audit-log-list-routing.module";
|
|
5
5
|
import * as i4 from "../../export-excel/export-excel.module";
|
|
6
|
-
import * as i5 from "@angular/
|
|
7
|
-
import * as i6 from "
|
|
8
|
-
import * as i7 from "
|
|
9
|
-
import * as i8 from "
|
|
10
|
-
import * as i9 from "
|
|
11
|
-
import * as i10 from "
|
|
12
|
-
import * as i11 from "../../techlify-icon/techlify-icon.module";
|
|
6
|
+
import * as i5 from "@angular/forms";
|
|
7
|
+
import * as i6 from "../../material.module";
|
|
8
|
+
import * as i7 from "ngx-infinite-scroll";
|
|
9
|
+
import * as i8 from "../audit-log-list-filter/audit-log-list-filter.module";
|
|
10
|
+
import * as i9 from "@angular/material/progress-bar";
|
|
11
|
+
import * as i10 from "../../techlify-icon/techlify-icon.module";
|
|
13
12
|
export declare class AuditLogListModule {
|
|
14
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuditLogListModule, never>;
|
|
15
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogListModule, [typeof i1.AuditLogListComponent], [typeof i2.CommonModule, typeof i3.AuditLogListRoutingModule, typeof i4.ExportExcelModule, typeof i5.
|
|
14
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogListModule, [typeof i1.AuditLogListComponent], [typeof i2.CommonModule, typeof i3.AuditLogListRoutingModule, typeof i4.ExportExcelModule, typeof i5.ReactiveFormsModule, typeof i6.MaterialModule, typeof i7.InfiniteScrollDirective, typeof i8.AuditLogListFilterModule, typeof i9.MatProgressBarModule, typeof i10.TechlifyIconModule], [typeof i1.AuditLogListComponent]>;
|
|
16
15
|
static ɵinj: i0.ɵɵInjectorDeclaration<AuditLogListModule>;
|
|
17
16
|
}
|
|
@@ -2,13 +2,12 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./audit-log-list-filter.component";
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
4
|
import * as i3 from "./audit-log-list-filter-routing.module";
|
|
5
|
-
import * as i4 from "@angular/
|
|
6
|
-
import * as i5 from "
|
|
7
|
-
import * as i6 from "../../
|
|
8
|
-
import * as i7 from "../../
|
|
9
|
-
import * as i8 from "../../timeline-filter/timeline-filter.module";
|
|
5
|
+
import * as i4 from "@angular/forms";
|
|
6
|
+
import * as i5 from "../../material.module";
|
|
7
|
+
import * as i6 from "../../searchable-selector/searchable-selector.module";
|
|
8
|
+
import * as i7 from "../../timeline-filter/timeline-filter.module";
|
|
10
9
|
export declare class AuditLogListFilterModule {
|
|
11
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuditLogListFilterModule, never>;
|
|
12
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogListFilterModule, [typeof i1.AuditLogListFilterComponent], [typeof i2.CommonModule, typeof i3.AuditLogListFilterRoutingModule, typeof i4.
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogListFilterModule, [typeof i1.AuditLogListFilterComponent], [typeof i2.CommonModule, typeof i3.AuditLogListFilterRoutingModule, typeof i4.ReactiveFormsModule, typeof i5.MaterialModule, typeof i6.SearchableSelectorModule, typeof i7.TimelineFilterModule], [typeof i1.AuditLogListFilterComponent]>;
|
|
13
12
|
static ɵinj: i0.ɵɵInjectorDeclaration<AuditLogListFilterModule>;
|
|
14
13
|
}
|
|
@@ -2,10 +2,9 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./audit-log-view.component";
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
4
|
import * as i3 from "./audit-log-view-routing.module";
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "../../material.module";
|
|
5
|
+
import * as i4 from "../../material.module";
|
|
7
6
|
export declare class AuditLogViewModule {
|
|
8
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuditLogViewModule, never>;
|
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogViewModule, [typeof i1.AuditLogViewComponent], [typeof i2.CommonModule, typeof i3.AuditLogViewRoutingModule, typeof i4.
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogViewModule, [typeof i1.AuditLogViewComponent], [typeof i2.CommonModule, typeof i3.AuditLogViewRoutingModule, typeof i4.MaterialModule], [typeof i1.AuditLogViewComponent]>;
|
|
10
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<AuditLogViewModule>;
|
|
11
10
|
}
|
|
@@ -2,10 +2,9 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./audit-log-view-model.component";
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
4
|
import * as i3 from "./audit-log-view-model-routing.module";
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "../../material.module";
|
|
5
|
+
import * as i4 from "../../material.module";
|
|
7
6
|
export declare class AuditLogViewModelModule {
|
|
8
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuditLogViewModelModule, never>;
|
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogViewModelModule, [typeof i1.AuditLogViewModelComponent], [typeof i2.CommonModule, typeof i3.AuditLogViewModelRoutingModule, typeof i4.
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogViewModelModule, [typeof i1.AuditLogViewModelComponent], [typeof i2.CommonModule, typeof i3.AuditLogViewModelRoutingModule, typeof i4.MaterialModule], [typeof i1.AuditLogViewModelComponent]>;
|
|
10
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<AuditLogViewModelModule>;
|
|
11
10
|
}
|
|
@@ -2,10 +2,9 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./audit-logs-view-model.component";
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
4
|
import * as i3 from "./audit-logs-view-model-routing.module";
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "../audit-log-list/audit-log-list.module";
|
|
5
|
+
import * as i4 from "../audit-log-list/audit-log-list.module";
|
|
7
6
|
export declare class AuditLogsViewModelModule {
|
|
8
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuditLogsViewModelModule, never>;
|
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogsViewModelModule, [typeof i1.AuditLogsViewModelComponent], [typeof i2.CommonModule, typeof i3.AuditLogsViewModelRoutingModule, typeof i4.
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AuditLogsViewModelModule, [typeof i1.AuditLogsViewModelComponent], [typeof i2.CommonModule, typeof i3.AuditLogsViewModelRoutingModule, typeof i4.AuditLogListModule], [typeof i1.AuditLogsViewModelComponent]>;
|
|
10
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<AuditLogsViewModelModule>;
|
|
11
10
|
}
|
|
@@ -3,19 +3,18 @@ import * as i1 from "./entity-file-form/entity-file-form.component";
|
|
|
3
3
|
import * as i2 from "./entity-files-view-all.component";
|
|
4
4
|
import * as i3 from "@angular/common";
|
|
5
5
|
import * as i4 from "@angular/forms";
|
|
6
|
-
import * as i5 from "
|
|
7
|
-
import * as i6 from "../
|
|
8
|
-
import * as i7 from "
|
|
9
|
-
import * as i8 from "
|
|
10
|
-
import * as i9 from "../
|
|
11
|
-
import * as i10 from "../
|
|
12
|
-
import * as i11 from "../
|
|
13
|
-
import * as i12 from "../
|
|
14
|
-
import * as i13 from "
|
|
15
|
-
import * as i14 from "
|
|
16
|
-
import * as i15 from "../pipes/wrap.pipe";
|
|
6
|
+
import * as i5 from "../file-dropper/file-dropper.module";
|
|
7
|
+
import * as i6 from "../document-viewer/document-viewer.module";
|
|
8
|
+
import * as i7 from "ngx-infinite-scroll";
|
|
9
|
+
import * as i8 from "../action-popup/action-popup.module";
|
|
10
|
+
import * as i9 from "../material.module";
|
|
11
|
+
import * as i10 from "../tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module";
|
|
12
|
+
import * as i11 from "../searchable-selector/searchable-selector.module";
|
|
13
|
+
import * as i12 from "../read-more/read-more.module";
|
|
14
|
+
import * as i13 from "@angular/material/progress-bar";
|
|
15
|
+
import * as i14 from "../pipes/wrap.pipe";
|
|
17
16
|
export declare class EntityFilesViewAllModule {
|
|
18
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<EntityFilesViewAllModule, never>;
|
|
19
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EntityFilesViewAllModule, [typeof i1.EntityFileFormComponent, typeof i2.EntityFilesViewAllComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.
|
|
18
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EntityFilesViewAllModule, [typeof i1.EntityFileFormComponent, typeof i2.EntityFilesViewAllComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i4.ReactiveFormsModule, typeof i5.FileDropperModule, typeof i6.DocumentViewerModule, typeof i7.InfiniteScrollDirective, typeof i8.ActionPopupModule, typeof i9.MaterialModule, typeof i10.TechlifyTaggerTagFormFieldModule, typeof i11.SearchableSelectorModule, typeof i12.ReadMoreModule, typeof i13.MatProgressBarModule, typeof i14.WrapPipe], [typeof i2.EntityFilesViewAllComponent]>;
|
|
20
19
|
static ɵinj: i0.ɵɵInjectorDeclaration<EntityFilesViewAllModule>;
|
|
21
20
|
}
|
|
@@ -2,4 +2,4 @@ export * from './locked-date.model';
|
|
|
2
2
|
export * from './locked-date.service';
|
|
3
3
|
export * from './locked-date-form/locked-date-form.component';
|
|
4
4
|
export * from './locked-date-lock-unlock-button/locked-date-lock-unlock-button.component';
|
|
5
|
-
export * from './locked-dates-list/locked-
|
|
5
|
+
export * from './locked-dates-list/locked-date-list.component';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./locked-dates-list/locked-
|
|
2
|
+
import * as i1 from "./locked-dates-list/locked-date-list.component";
|
|
3
3
|
import * as i2 from "./locked-date-form/locked-date-form.component";
|
|
4
4
|
import * as i3 from "./locked-date-lock-unlock-button/locked-date-lock-unlock-button.component";
|
|
5
5
|
import * as i4 from "@angular/common";
|
|
@@ -12,6 +12,6 @@ import * as i10 from "../delete-button/techlify-delete-button.component";
|
|
|
12
12
|
import * as i11 from "../form-button/techlify-form-button.component";
|
|
13
13
|
export declare class LockedDateModule {
|
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<LockedDateModule, never>;
|
|
15
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<LockedDateModule, [typeof i1.
|
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<LockedDateModule, [typeof i1.LockedDateListComponent, typeof i2.LockedDateFormComponent, typeof i3.LockedDateLockUnlockButtonComponent], [typeof i4.CommonModule, typeof i5.ReactiveFormsModule, typeof i6.InfiniteScrollDirective, typeof i7.MaterialModule, typeof i8.ActionPopupModule, typeof i9.TimelineFilterModule, typeof i10.TechlifyDeleteButtonComponent, typeof i11.TechlifyFormButtonComponent], [typeof i1.LockedDateListComponent, typeof i2.LockedDateFormComponent, typeof i3.LockedDateLockUnlockButtonComponent]>;
|
|
16
16
|
static ɵinj: i0.ɵɵInjectorDeclaration<LockedDateModule>;
|
|
17
17
|
}
|
|
@@ -5,7 +5,7 @@ import { FormBuilder } from '@angular/forms';
|
|
|
5
5
|
import { DatePipe } from '@angular/common';
|
|
6
6
|
import { LockedDateFormComponent } from '../locked-date-form/locked-date-form.component';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class LockedDateListComponent extends TechlifyListComponent implements OnInit {
|
|
9
9
|
protected service: LockedDateService;
|
|
10
10
|
private fb;
|
|
11
11
|
private datePipe;
|
|
@@ -14,6 +14,6 @@ export declare class LockedDatesListComponent extends TechlifyListComponent impl
|
|
|
14
14
|
constructor(service: LockedDateService, fb: FormBuilder, datePipe: DatePipe);
|
|
15
15
|
ngOnInit(): void;
|
|
16
16
|
loadData(): void;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
18
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LockedDateListComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LockedDateListComponent, "app-locked-date-list", never, {}, {}, never, never, false, never>;
|
|
19
19
|
}
|
package/lib/role/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './role-form.component';
|
|
2
2
|
export * from './role.model';
|
|
3
3
|
export * from './role.service';
|
|
4
|
-
export * from './
|
|
4
|
+
export * from './role-list/role-list.component';
|
|
5
5
|
export * from './permission/permissions-management.component';
|
|
6
6
|
export * from './permission/permission.model';
|
|
7
7
|
export * from './role.routes';
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute } from '@angular/router';
|
|
3
|
-
import { Role } from '
|
|
4
|
-
import { MultiUserConfig } from '
|
|
5
|
-
import { UserConfigService } from '
|
|
3
|
+
import { Role } from '../role.model';
|
|
4
|
+
import { MultiUserConfig } from '../../user-config';
|
|
5
|
+
import { UserConfigService } from '../../user-config';
|
|
6
6
|
import { MatDialog } from '@angular/material/dialog';
|
|
7
|
-
import { CredentialsService, HttpService } from '
|
|
8
|
-
import { CurrentUserService } from '
|
|
7
|
+
import { CredentialsService, HttpService } from '../../core';
|
|
8
|
+
import { CurrentUserService } from '../../user';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
|
-
|
|
11
|
-
* Component used to view a set of roles
|
|
12
|
-
*
|
|
13
|
-
* @author Joshua Kissoon
|
|
14
|
-
* @since 20160818
|
|
15
|
-
*/
|
|
16
|
-
export declare class RolesViewAllComponent implements OnInit {
|
|
10
|
+
export declare class RoleListComponent implements OnInit {
|
|
17
11
|
private http;
|
|
18
12
|
private route;
|
|
19
13
|
private credentialsService;
|
|
@@ -34,6 +28,6 @@ export declare class RolesViewAllComponent implements OnInit {
|
|
|
34
28
|
reload(): void;
|
|
35
29
|
onScroll(): void;
|
|
36
30
|
createOrModifyRole(role?: any): void;
|
|
37
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RoleListComponent, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RoleListComponent, "role-list", never, { "clientId": { "alias": "clientId"; "required": false; }; }, {}, never, never, false, never>;
|
|
39
33
|
}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./role-form.component";
|
|
3
|
-
import * as i2 from "./
|
|
3
|
+
import * as i2 from "./role-list/role-list.component";
|
|
4
4
|
import * as i3 from "./role-form-button.component";
|
|
5
5
|
import * as i4 from "@angular/common";
|
|
6
6
|
import * as i5 from "./role.routes";
|
|
7
7
|
import * as i6 from "../material.module";
|
|
8
|
-
import * as i7 from "@angular/
|
|
9
|
-
import * as i8 from "
|
|
10
|
-
import * as i9 from "
|
|
11
|
-
import * as i10 from "
|
|
12
|
-
import * as i11 from "../techlify-icon/techlify-icon.module";
|
|
8
|
+
import * as i7 from "@angular/forms";
|
|
9
|
+
import * as i8 from "ngx-infinite-scroll";
|
|
10
|
+
import * as i9 from "@angular/material/progress-bar";
|
|
11
|
+
import * as i10 from "../techlify-icon/techlify-icon.module";
|
|
13
12
|
export declare class RoleModule {
|
|
14
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<RoleModule, never>;
|
|
15
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<RoleModule, [typeof i1.RoleFormComponent, typeof i2.
|
|
14
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<RoleModule, [typeof i1.RoleFormComponent, typeof i2.RoleListComponent, typeof i3.RoleFormButtonComponent], [typeof i4.CommonModule, typeof i5.RoleRoutingProvider, typeof i6.MaterialModule, typeof i7.FormsModule, typeof i7.ReactiveFormsModule, typeof i8.InfiniteScrollDirective, typeof i9.MatProgressBarModule, typeof i10.TechlifyIconModule], [typeof i2.RoleListComponent, typeof i3.RoleFormButtonComponent, typeof i1.RoleFormComponent]>;
|
|
16
15
|
static ɵinj: i0.ɵɵInjectorDeclaration<RoleModule>;
|
|
17
16
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { EventEmitter, TemplateRef, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
3
|
+
import { TechlifyService } from '../base-model/techlify-service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
type SelectItem = {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
__isCustom?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare class TechlifyAutoCompleteSelectComponent implements OnInit, OnDestroy {
|
|
10
|
+
private fb;
|
|
11
|
+
service: TechlifyService;
|
|
12
|
+
titleField: string;
|
|
13
|
+
valueField: string;
|
|
14
|
+
placeholder: string;
|
|
15
|
+
perPage: number;
|
|
16
|
+
sortBy: string;
|
|
17
|
+
displaySelectedDir: 'column' | 'row';
|
|
18
|
+
options: any[];
|
|
19
|
+
selectedItems: SelectItem[];
|
|
20
|
+
/**
|
|
21
|
+
* Boolean to denote whether dynamic typed options are considered
|
|
22
|
+
* By default false
|
|
23
|
+
*/
|
|
24
|
+
isAllowDynamicOptionsAdd: boolean;
|
|
25
|
+
selectedItemsChange: EventEmitter<SelectItem[]>;
|
|
26
|
+
itemTemplate: TemplateRef<any>;
|
|
27
|
+
selectedTemplate: TemplateRef<any>;
|
|
28
|
+
form: FormGroup;
|
|
29
|
+
filteredOptions: any[];
|
|
30
|
+
private sub;
|
|
31
|
+
private onChange;
|
|
32
|
+
private onTouched;
|
|
33
|
+
constructor(fb: FormBuilder);
|
|
34
|
+
get searchControl(): import("@angular/forms").AbstractControl<any, any>;
|
|
35
|
+
ngOnInit(): void;
|
|
36
|
+
ngOnDestroy(): void;
|
|
37
|
+
updateFilteredOptions(): void;
|
|
38
|
+
selectItem(item: any): void;
|
|
39
|
+
removeItem(item: any): void;
|
|
40
|
+
handleEnter(event: any): void;
|
|
41
|
+
propagate(): void;
|
|
42
|
+
getValue(item: any): any;
|
|
43
|
+
getTitle(item: any): string;
|
|
44
|
+
writeValue(value: SelectItem[]): void;
|
|
45
|
+
registerOnChange(fn: any): void;
|
|
46
|
+
registerOnTouched(fn: any): void;
|
|
47
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TechlifyAutoCompleteSelectComponent, never>;
|
|
48
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TechlifyAutoCompleteSelectComponent, "app-techlify-auto-complete-select", never, { "service": { "alias": "service"; "required": false; }; "titleField": { "alias": "titleField"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "perPage": { "alias": "perPage"; "required": false; }; "sortBy": { "alias": "sortBy"; "required": false; }; "displaySelectedDir": { "alias": "displaySelectedDir"; "required": false; }; "options": { "alias": "options"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "isAllowDynamicOptionsAdd": { "alias": "isAllowDynamicOptionsAdd"; "required": false; }; }, { "selectedItemsChange": "selectedItemsChange"; }, ["itemTemplate", "selectedTemplate"], never, true, never>;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-techlify-core",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.65.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=18",
|
|
6
6
|
"@angular/core": ">=18",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"@angular/material": ">=18",
|
|
14
14
|
"@angular/cdk": ">=18",
|
|
15
15
|
"rxjs": ">=7.8.1",
|
|
16
|
-
"zone.js": ">=0.14.10"
|
|
16
|
+
"zone.js": ">=0.14.10",
|
|
17
|
+
"ngx-permissions": "^19.0.0"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
19
20
|
"tslib": "^2.0.0",
|
|
@@ -25,8 +26,7 @@
|
|
|
25
26
|
"xlsx": "^0.18.5",
|
|
26
27
|
"ngx-editor": "^18.0.0",
|
|
27
28
|
"moment": "^2.29.4",
|
|
28
|
-
"ngx-toastr": "^18.0.0"
|
|
29
|
-
"ngx-permissions": "^19.0.0"
|
|
29
|
+
"ngx-toastr": "^18.0.0"
|
|
30
30
|
},
|
|
31
31
|
"module": "fesm2022/ngx-techlify-core.mjs",
|
|
32
32
|
"typings": "index.d.ts",
|
package/public-api.d.ts
CHANGED
|
@@ -76,7 +76,6 @@ export * from './lib/audit-log/audit-logs-view-model/audit-logs-view-model.modul
|
|
|
76
76
|
export * from './lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module';
|
|
77
77
|
export * from './lib/audit-log/audit-log.module';
|
|
78
78
|
export * from './lib/audit-log/audit-log-routing.module';
|
|
79
|
-
export * from './lib/date-validator';
|
|
80
79
|
export * from './lib/import-csv/import-csv.module';
|
|
81
80
|
export * from './lib/import-csv/import-csv.component';
|
|
82
81
|
export * from './lib/import-csv/import-csv-config';
|
|
@@ -201,3 +200,4 @@ export * from './lib/validators/date.validator';
|
|
|
201
200
|
export * from './lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component';
|
|
202
201
|
export * from './lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component';
|
|
203
202
|
export * from './lib/tag/tag.service';
|
|
203
|
+
export * from './lib/techlify-auto-complete-select/techlify-auto-complete-select.component';
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function DateValidator() {
|
|
2
|
-
return (control) => {
|
|
3
|
-
const val = new Date(control.value);
|
|
4
|
-
if (!!control.value && val == 'Invalid Date') {
|
|
5
|
-
return { invalidDate: true };
|
|
6
|
-
}
|
|
7
|
-
return null;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RhdGUtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxhQUFhO0lBQ3pCLE9BQU8sQ0FBQyxPQUEyQixFQUEwQixFQUFFO1FBRTNELE1BQU0sR0FBRyxHQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBEYXRlVmFsaWRhdG9yKCk6IGFueSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcblxuICAgICAgICBjb25zdCB2YWw6IGFueSA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICBpZiAoISFjb250cm9sLnZhbHVlICYmIHZhbCA9PSAnSW52YWxpZCBEYXRlJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZERhdGU6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xufSJdfQ==
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Component, signal } from '@angular/core';
|
|
2
|
-
import { TechlifyListComponent } from '../../base-model';
|
|
3
|
-
import { DatePipe } from '@angular/common';
|
|
4
|
-
import { LockedDateFormComponent } from '../locked-date-form/locked-date-form.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../locked-date.service";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
import * as i4 from "ngx-infinite-scroll";
|
|
10
|
-
import * as i5 from "@angular/material/sort";
|
|
11
|
-
import * as i6 from "@angular/material/table";
|
|
12
|
-
import * as i7 from "@angular/material/card";
|
|
13
|
-
import * as i8 from "../../timeline-filter/timeline-filter.component";
|
|
14
|
-
import * as i9 from "../../delete-button/techlify-delete-button.component";
|
|
15
|
-
import * as i10 from "../../form-button/techlify-form-button.component";
|
|
16
|
-
import * as i11 from "../locked-date-lock-unlock-button/locked-date-lock-unlock-button.component";
|
|
17
|
-
export class LockedDatesListComponent extends TechlifyListComponent {
|
|
18
|
-
constructor(service, fb, datePipe) {
|
|
19
|
-
super();
|
|
20
|
-
this.service = service;
|
|
21
|
-
this.fb = fb;
|
|
22
|
-
this.datePipe = datePipe;
|
|
23
|
-
this.formComponent = signal(LockedDateFormComponent);
|
|
24
|
-
this.displayedColumns = [
|
|
25
|
-
'index',
|
|
26
|
-
'date',
|
|
27
|
-
'details',
|
|
28
|
-
'locked_on',
|
|
29
|
-
'locked_by',
|
|
30
|
-
'actions'
|
|
31
|
-
];
|
|
32
|
-
this.filterForm = this.fb.group({
|
|
33
|
-
date_from: [''],
|
|
34
|
-
date_to: [''],
|
|
35
|
-
sort_by: ['date|DESC'],
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
this.listenFilterChanges();
|
|
40
|
-
this.loadData();
|
|
41
|
-
}
|
|
42
|
-
loadData() {
|
|
43
|
-
this.isWorking = true;
|
|
44
|
-
let filters = this.filterForm.value;
|
|
45
|
-
filters.page = this.page;
|
|
46
|
-
filters.per_page = this.perPage;
|
|
47
|
-
filters.date_from = filters.date_from
|
|
48
|
-
? this.datePipe.transform(filters.date_from, 'yyyy-MM-dd')
|
|
49
|
-
: '';
|
|
50
|
-
filters.date_to = filters.date_to
|
|
51
|
-
? this.datePipe.transform(filters.date_to, 'yyyy-MM-dd')
|
|
52
|
-
: '';
|
|
53
|
-
this.service.index(filters).subscribe({
|
|
54
|
-
next: (response) => {
|
|
55
|
-
this.models = this.models.concat(response.data);
|
|
56
|
-
this.lastPage = response.last_page;
|
|
57
|
-
this.isWorking = false;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDatesListComponent, deps: [{ token: i1.LockedDateService }, { token: i2.FormBuilder }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LockedDatesListComponent, selector: "app-locked-dates-list", providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card appearance=\"outlined\" class=\"d-print-none\">\n <mat-card-content class=\"d-flex flex-row align-items-center justify-content-between\">\n <div class=\"d-flex flex-row gap-2 align-items-center justify-content-between\">\n <h5 class=\"mb-0\">Locked Dates</h5>\n <app-techlify-form-button [component]=\"formComponent()\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n\n <form [formGroup]=\"filterForm\" class='d-flex flex-row gap-2'>\n <app-timeline-filter labelText=\"Period\" [form]='filterForm'></app-timeline-filter>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table class='w-100' mat-table [dataSource]=\"models\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\"\n [infiniteScrollContainer]=\"'.mat-sidenav-content'\" [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Date </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.date | date: 'longDate'}}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_on\">\n <th mat-header-cell *matHeaderCellDef> Locked On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_by\">\n <th mat-header-cell *matHeaderCellDef> Locked By </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-2 text-secondary\">\n <app-locked-date-lock-unlock-button [lockedDate]='element'\n (onSave)='reload()'></app-locked-date-lock-unlock-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{type: 'Locked Date', title: element?.date | date:'longDate'}\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i6.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "component", type: i9.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: i10.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i11.LockedDateLockUnlockButtonComponent, selector: "app-locked-date-lock-unlock-button", inputs: ["lockedDate"], outputs: ["onSave"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDatesListComponent, decorators: [{
|
|
65
|
-
type: Component,
|
|
66
|
-
args: [{ selector: 'app-locked-dates-list', providers: [DatePipe], template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card appearance=\"outlined\" class=\"d-print-none\">\n <mat-card-content class=\"d-flex flex-row align-items-center justify-content-between\">\n <div class=\"d-flex flex-row gap-2 align-items-center justify-content-between\">\n <h5 class=\"mb-0\">Locked Dates</h5>\n <app-techlify-form-button [component]=\"formComponent()\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n\n <form [formGroup]=\"filterForm\" class='d-flex flex-row gap-2'>\n <app-timeline-filter labelText=\"Period\" [form]='filterForm'></app-timeline-filter>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table class='w-100' mat-table [dataSource]=\"models\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\"\n [infiniteScrollContainer]=\"'.mat-sidenav-content'\" [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Date </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.date | date: 'longDate'}}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_on\">\n <th mat-header-cell *matHeaderCellDef> Locked On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_by\">\n <th mat-header-cell *matHeaderCellDef> Locked By </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-2 text-secondary\">\n <app-locked-date-lock-unlock-button [lockedDate]='element'\n (onSave)='reload()'></app-locked-date-lock-unlock-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{type: 'Locked Date', title: element?.date | date:'longDate'}\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n</div>" }]
|
|
67
|
-
}], ctorParameters: () => [{ type: i1.LockedDateService }, { type: i2.FormBuilder }, { type: i3.DatePipe }] });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2VkLWRhdGVzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9sb2NrZWQtZGF0ZS9sb2NrZWQtZGF0ZXMtbGlzdC9sb2NrZWQtZGF0ZXMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2xvY2tlZC1kYXRlL2xvY2tlZC1kYXRlcy1saXN0L2xvY2tlZC1kYXRlcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU96RixNQUFNLE9BQU8sd0JBQXlCLFNBQVEscUJBQXFCO0lBYWpFLFlBQStCLE9BQTBCLEVBQy9DLEVBQWUsRUFDZixRQUFrQjtRQUUxQixLQUFLLEVBQUUsQ0FBQztRQUpxQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMvQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWI1QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRWhELHFCQUFnQixHQUFhO1lBQzNCLE9BQU87WUFDUCxNQUFNO1lBQ04sU0FBUztZQUNULFdBQVc7WUFDWCxXQUFXO1lBQ1gsU0FBUztTQUNWLENBQUM7UUFRQSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNmLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNiLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRVEsUUFBUTtRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN6QixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUztZQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7WUFDMUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO1lBQ3hELENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQW5EVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixnREFGeEIsQ0FBQyxRQUFRLENBQUMsaURDVnZCLHlpSEE4RU07OzRGRGxFTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCLGFBRXRCLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBMb2NrZWREYXRlU2VydmljZSB9IGZyb20gJy4uL2xvY2tlZC1kYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2NrZWREYXRlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2xvY2tlZC1kYXRlLWZvcm0vbG9ja2VkLWRhdGUtZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9ja2VkLWRhdGVzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9ja2VkLWRhdGVzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtEYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgTG9ja2VkRGF0ZXNMaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBmb3JtQ29tcG9uZW50ID0gc2lnbmFsKExvY2tlZERhdGVGb3JtQ29tcG9uZW50KTtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnaW5kZXgnLFxuICAgICdkYXRlJyxcbiAgICAnZGV0YWlscycsXG4gICAgJ2xvY2tlZF9vbicsXG4gICAgJ2xvY2tlZF9ieScsXG4gICAgJ2FjdGlvbnMnXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG92ZXJyaWRlIHNlcnZpY2U6IExvY2tlZERhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRhdGVfZnJvbTogWycnXSxcbiAgICAgIGRhdGVfdG86IFsnJ10sXG4gICAgICBzb3J0X2J5OiBbJ2RhdGV8REVTQyddLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0ZW5GaWx0ZXJDaGFuZ2VzKCk7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbG9hZERhdGEoKSB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuXG4gICAgbGV0IGZpbHRlcnMgPSB0aGlzLmZpbHRlckZvcm0udmFsdWU7XG4gICAgZmlsdGVycy5wYWdlID0gdGhpcy5wYWdlO1xuICAgIGZpbHRlcnMucGVyX3BhZ2UgPSB0aGlzLnBlclBhZ2U7XG4gICAgZmlsdGVycy5kYXRlX2Zyb20gPSBmaWx0ZXJzLmRhdGVfZnJvbVxuICAgICAgPyB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShmaWx0ZXJzLmRhdGVfZnJvbSwgJ3l5eXktTU0tZGQnKVxuICAgICAgOiAnJztcbiAgICBmaWx0ZXJzLmRhdGVfdG8gPSBmaWx0ZXJzLmRhdGVfdG9cbiAgICAgID8gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZmlsdGVycy5kYXRlX3RvLCAneXl5eS1NTS1kZCcpXG4gICAgICA6ICcnO1xuXG4gICAgdGhpcy5zZXJ2aWNlLmluZGV4KGZpbHRlcnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmNvbmNhdChyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3BvbnNlLmxhc3RfcGFnZTtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxuICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgY2xhc3M9XCJkLXByaW50LW5vbmVcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm1iLTBcIj5Mb2NrZWQgRGF0ZXM8L2g1PlxuICAgICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIFtjb21wb25lbnRdPVwiZm9ybUNvbXBvbmVudCgpXCJcbiAgICAgICAgICAoc2F2ZWQpPVwibW9kZWxDcmVhdGVkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIiBjbGFzcz0nZC1mbGV4IGZsZXgtcm93IGdhcC0yJz5cbiAgICAgICAgPGFwcC10aW1lbGluZS1maWx0ZXIgbGFiZWxUZXh0PVwiUGVyaW9kXCIgW2Zvcm1dPSdmaWx0ZXJGb3JtJz48L2FwcC10aW1lbGluZS1maWx0ZXI+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuXG4gIDxtYXQtY2FyZD5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDx0YWJsZSBjbGFzcz0ndy0xMDAnIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJtb2RlbHNcIiBtYXRTb3J0IG11bHRpVGVtcGxhdGVEYXRhUm93cyBpbmZpbml0ZVNjcm9sbFxuICAgICAgICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxXCIgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIlxuICAgICAgICBbaW5maW5pdGVTY3JvbGxDb250YWluZXJdPVwiJy5tYXQtc2lkZW5hdi1jb250ZW50J1wiIFtmcm9tUm9vdF09XCJ0cnVlXCIgKG1hdFNvcnRDaGFuZ2UpPVwic29ydENvbHVtbigkZXZlbnQpXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSsxIH19IDwvdGQ+XG4gICAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRhdGVcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4gRGF0ZSA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICB7e2VsZW1lbnQ/LmRhdGUgfCBkYXRlOiAnbG9uZ0RhdGUnfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsb2NrZWRfb25cIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBMb2NrZWQgT24gPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAge3sgZWxlbWVudD8uY3JlYXRlZF9hdCB8IGRhdGU6J21lZGl1bScgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsb2NrZWRfYnlcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBMb2NrZWQgQnkgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAge3sgZWxlbWVudD8uY3JlYXRvcj8ubmFtZSB9fVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRldGFpbHNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBEZXRhaWxzIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIHt7IGVsZW1lbnQ/LmRldGFpbHMgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9ucyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGdhcC0yIHRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIDxhcHAtbG9ja2VkLWRhdGUtbG9jay11bmxvY2stYnV0dG9uIFtsb2NrZWREYXRlXT0nZWxlbWVudCdcbiAgICAgICAgICAgICAgICAob25TYXZlKT0ncmVsb2FkKCknPjwvYXBwLWxvY2tlZC1kYXRlLWxvY2stdW5sb2NrLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uIFtzZXJ2aWNlXT1cInNlcnZpY2VcIiBbbW9kZWxdPVwiZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwie3R5cGU6ICdMb2NrZWQgRGF0ZScsIHRpdGxlOiBlbGVtZW50Py5kYXRlIHwgZGF0ZTonbG9uZ0RhdGUnfVwiXG4gICAgICAgICAgICAgICAgKGRlbGV0ZWQpPVwibW9kZWxzRGVsZXRlZEJ5SWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgPC90YWJsZT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG48L2Rpdj4iXX0=
|