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.
Files changed (50) hide show
  1. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +1 -5
  2. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +4 -9
  3. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +1 -5
  4. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +5 -5
  5. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +1 -5
  6. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +4 -5
  7. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +1 -5
  8. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +1 -5
  9. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +9 -10
  10. package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +18 -20
  11. package/esm2022/lib/entity-files/entity-files-view-all.module.mjs +4 -9
  12. package/esm2022/lib/import-csv/data-import/data-import.component.mjs +4 -5
  13. package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +6 -7
  14. package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +10 -11
  15. package/esm2022/lib/import-csv/import-csv.component.mjs +15 -15
  16. package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +6 -7
  17. package/esm2022/lib/import-csv/import-success/import-success.component.mjs +7 -8
  18. package/esm2022/lib/locked-date/index.mjs +2 -2
  19. package/esm2022/lib/locked-date/locked-date.module.mjs +6 -6
  20. package/esm2022/lib/locked-date/locked-dates-list/locked-date-list.component.mjs +68 -0
  21. package/esm2022/lib/role/index.mjs +2 -2
  22. package/esm2022/lib/role/role-form.component.mjs +4 -4
  23. package/esm2022/lib/role/role-list/role-list.component.mjs +120 -0
  24. package/esm2022/lib/role/role-view/role-view.component.mjs +3 -4
  25. package/esm2022/lib/role/role.module.mjs +9 -16
  26. package/esm2022/lib/role/role.routes.mjs +3 -3
  27. package/esm2022/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.mjs +197 -0
  28. package/esm2022/public-api.mjs +3 -2
  29. package/fesm2022/ngx-techlify-core.mjs +412 -275
  30. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  31. package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +3 -4
  32. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +7 -8
  33. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +5 -6
  34. package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +2 -3
  35. package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +2 -3
  36. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +2 -3
  37. package/lib/entity-files/entity-files-view-all.module.d.ts +11 -12
  38. package/lib/locked-date/index.d.ts +1 -1
  39. package/lib/locked-date/locked-date.module.d.ts +2 -2
  40. package/lib/locked-date/locked-dates-list/{locked-dates-list.component.d.ts → locked-date-list.component.d.ts} +3 -3
  41. package/lib/role/index.d.ts +1 -1
  42. package/lib/role/{roles-view-all.component.d.ts → role-list/role-list.component.d.ts} +8 -14
  43. package/lib/role/role.module.d.ts +6 -7
  44. package/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.d.ts +50 -0
  45. package/package.json +4 -4
  46. package/public-api.d.ts +1 -1
  47. package/esm2022/lib/date-validator.mjs +0 -10
  48. package/esm2022/lib/locked-date/locked-dates-list/locked-dates-list.component.mjs +0 -68
  49. package/esm2022/lib/role/roles-view-all.component.mjs +0 -128
  50. 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 "@angular/flex-layout";
8
- import * as i7 from "../../material.module";
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.FlexLayoutModule, typeof i7.MaterialModule, typeof i8.TechlifyIconModule], [typeof i1.AuditLogForModelComponent]>;
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/flex-layout";
7
- import * as i6 from "@angular/forms";
8
- import * as i7 from "../../material.module";
9
- import * as i8 from "ngx-infinite-scroll";
10
- import * as i9 from "../audit-log-list-filter/audit-log-list-filter.module";
11
- import * as i10 from "@angular/material/progress-bar";
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.FlexLayoutModule, typeof i6.ReactiveFormsModule, typeof i7.MaterialModule, typeof i8.InfiniteScrollModule, typeof i9.AuditLogListFilterModule, typeof i10.MatProgressBarModule, typeof i11.TechlifyIconModule], [typeof i1.AuditLogListComponent]>;
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/flex-layout";
6
- import * as i5 from "@angular/forms";
7
- import * as i6 from "../../material.module";
8
- import * as i7 from "../../searchable-selector/searchable-selector.module";
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.FlexLayoutModule, typeof i5.ReactiveFormsModule, typeof i6.MaterialModule, typeof i7.SearchableSelectorModule, typeof i8.TimelineFilterModule], [typeof i1.AuditLogListFilterComponent]>;
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 "@angular/flex-layout";
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.FlexLayoutModule, typeof i5.MaterialModule], [typeof i1.AuditLogViewComponent]>;
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 "@angular/flex-layout";
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.FlexLayoutModule, typeof i5.MaterialModule], [typeof i1.AuditLogViewModelComponent]>;
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 "@angular/flex-layout";
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.FlexLayoutModule, typeof i5.AuditLogListModule], [typeof i1.AuditLogsViewModelComponent]>;
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 "@angular/flex-layout";
7
- import * as i6 from "../file-dropper/file-dropper.module";
8
- import * as i7 from "../document-viewer/document-viewer.module";
9
- import * as i8 from "ngx-infinite-scroll";
10
- import * as i9 from "../action-popup/action-popup.module";
11
- import * as i10 from "../material.module";
12
- import * as i11 from "../tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module";
13
- import * as i12 from "../searchable-selector/searchable-selector.module";
14
- import * as i13 from "../read-more/read-more.module";
15
- import * as i14 from "@angular/material/progress-bar";
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.FlexLayoutModule, typeof i6.FileDropperModule, typeof i7.DocumentViewerModule, typeof i8.InfiniteScrollModule, typeof i9.ActionPopupModule, typeof i10.MaterialModule, typeof i11.TechlifyTaggerTagFormFieldModule, typeof i12.SearchableSelectorModule, typeof i13.ReadMoreModule, typeof i14.MatProgressBarModule, typeof i15.WrapPipe], [typeof i2.EntityFilesViewAllComponent]>;
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-dates-list.component';
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-dates-list.component";
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.LockedDatesListComponent, 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.LockedDatesListComponent, typeof i2.LockedDateFormComponent, typeof i3.LockedDateLockUnlockButtonComponent]>;
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 LockedDatesListComponent extends TechlifyListComponent implements OnInit {
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<LockedDatesListComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<LockedDatesListComponent, "app-locked-dates-list", never, {}, {}, never, never, false, never>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<LockedDateListComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<LockedDateListComponent, "app-locked-date-list", never, {}, {}, never, never, false, never>;
19
19
  }
@@ -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 './roles-view-all.component';
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 './role.model';
4
- import { MultiUserConfig } from '../user-config';
5
- import { UserConfigService } from '../user-config';
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 '../core';
8
- import { CurrentUserService } from '../user';
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<RolesViewAllComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<RolesViewAllComponent, "roles-view-all", never, { "clientId": { "alias": "clientId"; "required": false; }; }, {}, never, never, false, never>;
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 "./roles-view-all.component";
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/flex-layout";
9
- import * as i8 from "@angular/forms";
10
- import * as i9 from "ngx-infinite-scroll";
11
- import * as i10 from "@angular/material/progress-bar";
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.RolesViewAllComponent, typeof i3.RoleFormButtonComponent], [typeof i4.CommonModule, typeof i5.RoleRoutingProvider, typeof i6.MaterialModule, typeof i7.FlexLayoutModule, typeof i8.FormsModule, typeof i8.ReactiveFormsModule, typeof i9.InfiniteScrollModule, typeof i10.MatProgressBarModule, typeof i11.TechlifyIconModule], [typeof i2.RolesViewAllComponent, typeof i3.RoleFormButtonComponent, typeof i1.RoleFormComponent]>;
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.63.0",
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=