chrv-components 1.2.28 → 1.3.1

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 (59) hide show
  1. package/chrv-components-1.3.1.tgz +0 -0
  2. package/{esm2020 → esm2022}/chrv-components.mjs +4 -4
  3. package/esm2022/lib/chr-breadcrumb/chr-breadcrumb.component.mjs +22 -0
  4. package/esm2022/lib/chr-button/chr-button.component.mjs +55 -0
  5. package/esm2022/lib/chr-checkbox/chr-checkbox.component.mjs +37 -0
  6. package/esm2022/lib/chr-delete-modal/chr-delete-modal.component.mjs +30 -0
  7. package/esm2022/lib/chr-form/chr-form.component.mjs +143 -0
  8. package/esm2022/lib/chr-form/chr-validators/decimal-validator.mjs +59 -0
  9. package/esm2022/lib/chr-form/chr-validators/max-date-validator.mjs +55 -0
  10. package/esm2022/lib/chr-form/chr-validators/type-validator.mjs +53 -0
  11. package/esm2022/lib/chr-paginator/chr-paginator.component.mjs +80 -0
  12. package/esm2022/lib/chr-search-select/chr-search-select.component.mjs +145 -0
  13. package/esm2022/lib/chr-searchbar/chr-searchbar.component.mjs +29 -0
  14. package/esm2022/lib/chr-separator/chr-separator.component.mjs +11 -0
  15. package/esm2022/lib/chr-table/chr-table.component.mjs +93 -0
  16. package/esm2022/lib/chr-table-header-cell/chr-table-header-cell.component.mjs +51 -0
  17. package/{esm2020 → esm2022}/lib/services/dialog.service.mjs +29 -29
  18. package/{esm2020 → esm2022}/public-api.mjs +21 -21
  19. package/fesm2022/chrv-components.mjs +842 -0
  20. package/fesm2022/chrv-components.mjs.map +1 -0
  21. package/index.d.ts +5 -5
  22. package/lib/chr-breadcrumb/chr-breadcrumb.component.d.ts +15 -15
  23. package/lib/chr-button/chr-button.component.d.ts +19 -19
  24. package/lib/chr-checkbox/chr-checkbox.component.d.ts +13 -13
  25. package/lib/chr-delete-modal/chr-delete-modal.component.d.ts +11 -11
  26. package/lib/chr-form/chr-form.component.d.ts +57 -57
  27. package/lib/chr-form/chr-validators/decimal-validator.d.ts +10 -10
  28. package/lib/chr-form/chr-validators/max-date-validator.d.ts +10 -10
  29. package/lib/chr-form/chr-validators/type-validator.d.ts +10 -10
  30. package/lib/chr-paginator/chr-paginator.component.d.ts +27 -27
  31. package/lib/chr-search-select/chr-search-select.component.d.ts +44 -44
  32. package/lib/chr-searchbar/chr-searchbar.component.d.ts +14 -14
  33. package/lib/chr-separator/chr-separator.component.d.ts +5 -5
  34. package/lib/chr-table/chr-table.component.d.ts +58 -58
  35. package/lib/chr-table-header-cell/chr-table-header-cell.component.d.ts +17 -17
  36. package/lib/services/dialog.service.d.ts +10 -10
  37. package/package.json +11 -16
  38. package/public-api.d.ts +17 -17
  39. package/chrv-components-1.2.28.tgz +0 -0
  40. package/esm2020/lib/chr-breadcrumb/chr-breadcrumb.component.mjs +0 -22
  41. package/esm2020/lib/chr-button/chr-button.component.mjs +0 -51
  42. package/esm2020/lib/chr-checkbox/chr-checkbox.component.mjs +0 -37
  43. package/esm2020/lib/chr-components.module.mjs +0 -126
  44. package/esm2020/lib/chr-delete-modal/chr-delete-modal.component.mjs +0 -22
  45. package/esm2020/lib/chr-form/chr-form.component.mjs +0 -132
  46. package/esm2020/lib/chr-form/chr-validators/decimal-validator.mjs +0 -58
  47. package/esm2020/lib/chr-form/chr-validators/max-date-validator.mjs +0 -54
  48. package/esm2020/lib/chr-form/chr-validators/type-validator.mjs +0 -52
  49. package/esm2020/lib/chr-paginator/chr-paginator.component.mjs +0 -79
  50. package/esm2020/lib/chr-search-select/chr-search-select.component.mjs +0 -136
  51. package/esm2020/lib/chr-searchbar/chr-searchbar.component.mjs +0 -29
  52. package/esm2020/lib/chr-separator/chr-separator.component.mjs +0 -11
  53. package/esm2020/lib/chr-table/chr-table.component.mjs +0 -80
  54. package/esm2020/lib/chr-table-header-cell/chr-table-header-cell.component.mjs +0 -51
  55. package/fesm2015/chrv-components.mjs +0 -911
  56. package/fesm2015/chrv-components.mjs.map +0 -1
  57. package/fesm2020/chrv-components.mjs +0 -903
  58. package/fesm2020/chrv-components.mjs.map +0 -1
  59. package/lib/chr-components.module.d.ts +0 -30
@@ -1,27 +1,27 @@
1
- import { AfterContentChecked, EventEmitter, OnInit } from '@angular/core';
2
- import { PaginationInstance, PaginationService } from 'ngx-pagination';
3
- import * as i0 from "@angular/core";
4
- export declare class ChrPaginatorComponent implements OnInit, AfterContentChecked {
5
- service: PaginationService;
6
- currentPage: number;
7
- page: number;
8
- pageChange: EventEmitter<number>;
9
- pageSize: number;
10
- pageSizeChange: EventEmitter<number>;
11
- instance: PaginationInstance;
12
- constructor(service: PaginationService);
13
- ngAfterContentChecked(): void;
14
- ngOnInit(): void;
15
- previous: () => void;
16
- next: () => void;
17
- setPage: (page: number) => void;
18
- setPageEventHandler: (event: any) => void;
19
- isFirstPage: () => boolean;
20
- setPageSize: (pageSize: number) => void;
21
- setPageSizeEventHandler: (event: any) => void;
22
- isLastPage: () => boolean;
23
- lastPage: () => number;
24
- private emit;
25
- static ɵfac: i0.ɵɵFactoryDeclaration<ChrPaginatorComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<ChrPaginatorComponent, "app-chr-paginator", never, { "page": "page"; "pageSize": "pageSize"; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, never, never, false, never>;
27
- }
1
+ import { AfterContentChecked, EventEmitter, OnInit } from '@angular/core';
2
+ import { PaginationInstance, PaginationService } from 'ngx-pagination';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ChrPaginatorComponent implements OnInit, AfterContentChecked {
5
+ service: PaginationService;
6
+ currentPage: number;
7
+ page: number;
8
+ pageChange: EventEmitter<number>;
9
+ pageSize: number;
10
+ pageSizeChange: EventEmitter<number>;
11
+ instance?: PaginationInstance;
12
+ constructor(service: PaginationService);
13
+ ngAfterContentChecked(): void;
14
+ ngOnInit(): void;
15
+ previous: () => void;
16
+ next: () => void;
17
+ setPage: (page: number) => void;
18
+ setPageEventHandler: (event: any) => void;
19
+ isFirstPage: () => boolean;
20
+ setPageSize: (pageSize: number) => void;
21
+ setPageSizeEventHandler: (event: any) => void;
22
+ isLastPage: () => boolean;
23
+ lastPage: () => number;
24
+ private emit;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChrPaginatorComponent, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChrPaginatorComponent, "app-chr-paginator", never, { "page": { "alias": "page"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, never>;
27
+ }
@@ -1,44 +1,44 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { ControlValueAccessor, FormControl } from '@angular/forms';
3
- import { Observable } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export interface IInputSearchFilter {
6
- display: string;
7
- callback?: Function;
8
- tooltip?: string;
9
- }
10
- export declare class ChrSearchSelectComponent implements ControlValueAccessor {
11
- predicate: boolean;
12
- searchSelect: FormControl;
13
- filteredModelOptions: Observable<any>;
14
- onTouched: any;
15
- placeholder: string;
16
- data: any[] | null;
17
- display: Function;
18
- disabled: boolean;
19
- model: any | null;
20
- modelChange: EventEmitter<any>;
21
- keyup: EventEmitter<KeyboardEvent>;
22
- filters?: IInputSearchFilter[];
23
- filterIndex: number;
24
- ngOnInit(): void;
25
- getModelDisplay(model: any): any;
26
- emit(event: any): void;
27
- writeValue(obj: any): void;
28
- registerOnChange(fn: any): void;
29
- checkNull(value: any | null): void;
30
- setNull(): void;
31
- registerOnTouched(fn: any): void;
32
- registerFilters: () => void;
33
- registerAutoComplete: () => void;
34
- setDisabledState?(isDisabled: boolean): void;
35
- increment: () => void;
36
- getValue: () => any;
37
- void: () => void;
38
- private _filterModel;
39
- private _doFilterModelInt;
40
- private _doFilterModelString;
41
- private _filterValues;
42
- static ɵfac: i0.ɵɵFactoryDeclaration<ChrSearchSelectComponent, never>;
43
- static ɵcmp: i0.ɵɵComponentDeclaration<ChrSearchSelectComponent, "app-chr-search-select", never, { "placeholder": "placeholder"; "data": "data"; "display": "display"; "disabled": "disabled"; "model": "model"; "filters": "filters"; }, { "modelChange": "modelChange"; "keyup": "keyup"; }, never, never, false, never>;
44
- }
1
+ import { EventEmitter } from '@angular/core';
2
+ import { ControlValueAccessor, FormControl } from '@angular/forms';
3
+ import { Observable } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export interface IInputSearchFilter {
6
+ display: string;
7
+ callback?: Function;
8
+ tooltip?: string;
9
+ }
10
+ export declare class ChrSearchSelectComponent implements ControlValueAccessor {
11
+ predicate: boolean;
12
+ searchSelect: FormControl;
13
+ filteredModelOptions?: Observable<any>;
14
+ onTouched: any;
15
+ placeholder?: string;
16
+ data: any[] | null;
17
+ display?: Function;
18
+ disabled: boolean;
19
+ model: any | null;
20
+ modelChange: EventEmitter<any>;
21
+ keyup: EventEmitter<KeyboardEvent>;
22
+ filters?: IInputSearchFilter[];
23
+ filterIndex: number;
24
+ ngOnInit(): void;
25
+ getModelDisplay(model: any): any;
26
+ emit(event: any): void;
27
+ writeValue(obj: any): void;
28
+ registerOnChange(fn: any): void;
29
+ checkNull(value: any | null): void;
30
+ setNull(): void;
31
+ registerOnTouched(fn: any): void;
32
+ registerFilters: () => void;
33
+ registerAutoComplete: () => void;
34
+ setDisabledState?(isDisabled: boolean): void;
35
+ increment: () => void;
36
+ getValue: () => any;
37
+ void: () => void;
38
+ private _filterModel;
39
+ private _doFilterModelInt;
40
+ private _doFilterModelString;
41
+ private _filterValues;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChrSearchSelectComponent, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChrSearchSelectComponent, "app-chr-search-select", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "data": { "alias": "data"; "required": false; }; "display": { "alias": "display"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "model": { "alias": "model"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, { "modelChange": "modelChange"; "keyup": "keyup"; }, never, never, true, never>;
44
+ }
@@ -1,14 +1,14 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export declare class ChrSearchbarComponent {
5
- model: string | null;
6
- modelChange: EventEmitter<string>;
7
- placeholder: string | null;
8
- label: string | null;
9
- searchBy: FormControl<string | null>;
10
- constructor();
11
- emit(event: any): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<ChrSearchbarComponent, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<ChrSearchbarComponent, "app-chr-searchbar", never, { "model": "model"; "placeholder": "placeholder"; "label": "label"; }, { "modelChange": "modelChange"; }, never, never, false, never>;
14
- }
1
+ import { EventEmitter } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ChrSearchbarComponent {
5
+ model?: string | null;
6
+ modelChange: EventEmitter<string>;
7
+ placeholder?: string | null;
8
+ label?: string | null;
9
+ searchBy: FormControl<string | null>;
10
+ constructor();
11
+ emit(event: any): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChrSearchbarComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChrSearchbarComponent, "app-chr-searchbar", never, { "model": { "alias": "model"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "label": { "alias": "label"; "required": false; }; }, { "modelChange": "modelChange"; }, never, never, true, never>;
14
+ }
@@ -1,5 +1,5 @@
1
- import * as i0 from "@angular/core";
2
- export declare class ChrSeparatorComponent {
3
- static ɵfac: i0.ɵɵFactoryDeclaration<ChrSeparatorComponent, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<ChrSeparatorComponent, "app-chr-separator", never, {}, {}, never, never, false, never>;
5
- }
1
+ import * as i0 from "@angular/core";
2
+ export declare class ChrSeparatorComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChrSeparatorComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChrSeparatorComponent, "app-chr-separator", never, {}, {}, never, never, true, never>;
5
+ }
@@ -1,58 +1,58 @@
1
- import { DatePipe } from '@angular/common';
2
- import { AfterViewInit, EventEmitter } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export interface IColumn {
5
- display: string;
6
- alignment?: 'left' | 'center' | 'right';
7
- chipsTarget?: string[];
8
- chipsDisplay?: string[];
9
- chipsCallback?: Function;
10
- properties?: string[];
11
- callback?: Function;
12
- date?: string;
13
- isLink?: boolean;
14
- linkStaticUrl?: string;
15
- }
16
- export interface IComputedRow {
17
- columns: IComputedColumn[];
18
- }
19
- export interface IComputedColumn {
20
- label?: string;
21
- value?: any;
22
- callback?: Function;
23
- alignment?: 'left' | 'center' | 'right';
24
- after?: string;
25
- }
26
- export interface IAction {
27
- display: string;
28
- callback: Function;
29
- disabled?: boolean;
30
- disabledCallback?: Function;
31
- color: 'accent' | 'primary' | 'warn';
32
- }
33
- export declare class ChrTableComponent implements AfterViewInit {
34
- private _date;
35
- computedRows?: IComputedRow[];
36
- columns: IColumn[];
37
- data: any[] | null;
38
- actions: IAction[];
39
- isAsc: boolean;
40
- isAscChange: EventEmitter<boolean>;
41
- sortBy: string;
42
- sortByChange: EventEmitter<string>;
43
- pageSize: number;
44
- pageSizeChange: EventEmitter<number>;
45
- currentPage: number;
46
- currentPageChange: EventEmitter<number>;
47
- constructor(_date: DatePipe);
48
- ngAfterViewInit(): void;
49
- emitIsAsc(isAsc: any): void;
50
- emitSortBy(sortBy: any): void;
51
- emitPageSize(pageSize: any): void;
52
- emitCurrentPage(currentPage: any): void;
53
- getProperty: (entry: any, properties?: any[]) => any;
54
- getIsAsc: () => boolean;
55
- getSortBy: () => string;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<ChrTableComponent, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<ChrTableComponent, "app-chr-table, [app-chr-table]", never, { "computedRows": "computedRows"; "columns": "columns"; "data": "data"; "actions": "actions"; "isAsc": "isAsc"; "sortBy": "sortBy"; "pageSize": "pageSize"; "currentPage": "currentPage"; }, { "isAscChange": "isAscChange"; "sortByChange": "sortByChange"; "pageSizeChange": "pageSizeChange"; "currentPageChange": "currentPageChange"; }, never, ["*"], false, never>;
58
- }
1
+ import { DatePipe } from '@angular/common';
2
+ import { AfterViewInit, EventEmitter } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export interface IColumn {
5
+ display: string;
6
+ alignment?: 'left' | 'center' | 'right';
7
+ chipsTarget?: string[];
8
+ chipsDisplay?: string[];
9
+ chipsCallback?: Function;
10
+ properties?: string[];
11
+ callback?: Function;
12
+ date?: string;
13
+ isLink?: boolean;
14
+ linkStaticUrl?: string;
15
+ }
16
+ export interface IComputedRow {
17
+ columns: IComputedColumn[];
18
+ }
19
+ export interface IComputedColumn {
20
+ label?: string;
21
+ value?: any;
22
+ callback?: Function;
23
+ alignment?: 'left' | 'center' | 'right';
24
+ after?: string;
25
+ }
26
+ export interface IAction {
27
+ display: string;
28
+ callback: Function;
29
+ disabled?: boolean;
30
+ disabledCallback?: Function;
31
+ color: 'accent' | 'primary' | 'warn';
32
+ }
33
+ export declare class ChrTableComponent implements AfterViewInit {
34
+ private _date;
35
+ computedRows?: IComputedRow[];
36
+ columns?: IColumn[];
37
+ data: any[] | null;
38
+ actions?: IAction[];
39
+ isAsc: boolean;
40
+ isAscChange: EventEmitter<boolean>;
41
+ sortBy?: string;
42
+ sortByChange: EventEmitter<string>;
43
+ pageSize: number;
44
+ pageSizeChange: EventEmitter<number>;
45
+ currentPage: number;
46
+ currentPageChange: EventEmitter<number>;
47
+ constructor(_date: DatePipe);
48
+ ngAfterViewInit(): void;
49
+ emitIsAsc(isAsc: any): void;
50
+ emitSortBy(sortBy: any): void;
51
+ emitPageSize(pageSize: any): void;
52
+ emitCurrentPage(currentPage: any): void;
53
+ getProperty: (entry: any, properties?: any[]) => any;
54
+ getIsAsc: () => boolean;
55
+ getSortBy: () => string | undefined;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChrTableComponent, never>;
57
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChrTableComponent, "app-chr-table, [app-chr-table]", never, { "computedRows": { "alias": "computedRows"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "isAsc": { "alias": "isAsc"; "required": false; }; "sortBy": { "alias": "sortBy"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "currentPage": { "alias": "currentPage"; "required": false; }; }, { "isAscChange": "isAscChange"; "sortByChange": "sortByChange"; "pageSizeChange": "pageSizeChange"; "currentPageChange": "currentPageChange"; }, never, ["*"], true, never>;
58
+ }
@@ -1,17 +1,17 @@
1
- import { EventEmitter } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * This should only be used as a directive
5
- */
6
- export declare class ChrTableHeaderCellComponent {
7
- display: string;
8
- column: string;
9
- alignment: string;
10
- isAsc: boolean;
11
- isAscChange: EventEmitter<boolean>;
12
- sortBy: string;
13
- sortByChange: EventEmitter<string>;
14
- orderBy: (column: string) => void;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<ChrTableHeaderCellComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<ChrTableHeaderCellComponent, "app-chr-table-header-cell, [app-chr-table-header-cell]", never, { "display": "display"; "column": "column"; "alignment": "alignment"; "isAsc": "isAsc"; "sortBy": "sortBy"; }, { "isAscChange": "isAscChange"; "sortByChange": "sortByChange"; }, never, ["*"], false, never>;
17
- }
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * This should only be used as a directive
5
+ */
6
+ export declare class ChrTableHeaderCellComponent {
7
+ display?: string;
8
+ column?: string;
9
+ alignment?: string;
10
+ isAsc: boolean;
11
+ isAscChange: EventEmitter<boolean>;
12
+ sortBy?: string;
13
+ sortByChange: EventEmitter<string>;
14
+ orderBy: (column?: string) => void;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChrTableHeaderCellComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChrTableHeaderCellComponent, "app-chr-table-header-cell, [app-chr-table-header-cell]", never, { "display": { "alias": "display"; "required": false; }; "column": { "alias": "column"; "required": false; }; "alignment": { "alias": "alignment"; "required": false; }; "isAsc": { "alias": "isAsc"; "required": false; }; "sortBy": { "alias": "sortBy"; "required": false; }; }, { "isAscChange": "isAscChange"; "sortByChange": "sortByChange"; }, never, ["*"], true, never>;
17
+ }
@@ -1,10 +1,10 @@
1
- import { MatDialog } from '@angular/material/dialog';
2
- import * as i0 from "@angular/core";
3
- export declare class DialogService {
4
- private dialog;
5
- constructor(dialog: MatDialog);
6
- openDelete: (callback?: Function, callbackElement?: any) => void;
7
- open: (component: any, options?: any | undefined) => import("@angular/material/dialog").MatDialogRef<unknown, any>;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
10
- }
1
+ import { MatDialog } from '@angular/material/dialog';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DialogService {
4
+ private dialog;
5
+ constructor(dialog: MatDialog);
6
+ openDelete: (callback?: Function, callbackElement?: any) => void;
7
+ open: (component: any, options?: any | undefined) => import("@angular/material/dialog").MatDialogRef<unknown, any>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
10
+ }
package/package.json CHANGED
@@ -1,23 +1,20 @@
1
1
  {
2
2
  "name": "chrv-components",
3
- "version": "1.2.28",
3
+ "version": "1.3.1",
4
4
  "peerDependencies": {
5
- "@angular/common": "^15.1.0",
6
- "@angular/core": "^15.1.0",
7
- "@angular/forms": "^15.1.0",
8
- "@angular/material": "^15.1.3",
5
+ "@angular/common": "^17.3.0",
6
+ "@angular/core": "^17.3.0",
7
+ "@angular/forms": "^17.3.0",
8
+ "@angular/material": "^17.3.0",
9
9
  "tailwindcss": "^3.2.4",
10
- "ngx-pagination": "^6.0.3"
10
+ "ngx-pagination": "^6.0.3",
11
+ "chrv-pipes": ">=1.1.1"
11
12
  },
12
13
  "dependencies": {
13
14
  "tslib": "^2.3.0"
14
15
  },
15
16
  "sideEffects": false,
16
- "module": "fesm2015/chrv-components.mjs",
17
- "es2020": "fesm2020/chrv-components.mjs",
18
- "esm2020": "esm2020/chrv-components.mjs",
19
- "fesm2020": "fesm2020/chrv-components.mjs",
20
- "fesm2015": "fesm2015/chrv-components.mjs",
17
+ "module": "fesm2022/chrv-components.mjs",
21
18
  "typings": "index.d.ts",
22
19
  "exports": {
23
20
  "./package.json": {
@@ -25,11 +22,9 @@
25
22
  },
26
23
  ".": {
27
24
  "types": "./index.d.ts",
28
- "esm2020": "./esm2020/chrv-components.mjs",
29
- "es2020": "./fesm2020/chrv-components.mjs",
30
- "es2015": "./fesm2015/chrv-components.mjs",
31
- "node": "./fesm2015/chrv-components.mjs",
32
- "default": "./fesm2020/chrv-components.mjs"
25
+ "esm2022": "./esm2022/chrv-components.mjs",
26
+ "esm": "./esm2022/chrv-components.mjs",
27
+ "default": "./fesm2022/chrv-components.mjs"
33
28
  }
34
29
  }
35
30
  }
package/public-api.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- export * from './lib/chr-components.module';
2
- export * from './lib/chr-breadcrumb/chr-breadcrumb.component';
3
- export * from './lib/chr-button/chr-button.component';
4
- export * from './lib/chr-delete-modal/chr-delete-modal.component';
5
- export * from './lib/chr-form/chr-form.component';
6
- export * from './lib/chr-search-select/chr-search-select.component';
7
- export * from './lib/chr-searchbar/chr-searchbar.component';
8
- export * from './lib/chr-paginator/chr-paginator.component';
9
- export * from './lib/chr-table/chr-table.component';
10
- export * from './lib/chr-table-header-cell/chr-table-header-cell.component';
11
- export * from './lib/chr-checkbox/chr-checkbox.component';
12
- export * from './lib/chr-separator/chr-separator.component';
13
- export * from './lib/chr-form/chr-validators/decimal-validator';
14
- export * from './lib/chr-form/chr-validators/max-date-validator';
15
- export * from './lib/chr-form/chr-validators/type-validator';
16
- export * from './lib/services/dialog.service';
17
- export { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
1
+ export * from './lib/chr-breadcrumb/chr-breadcrumb.component';
2
+ export * from './lib/chr-button/chr-button.component';
3
+ export * from './lib/chr-delete-modal/chr-delete-modal.component';
4
+ export * from './lib/chr-form/chr-form.component';
5
+ export * from './lib/chr-search-select/chr-search-select.component';
6
+ export * from './lib/chr-searchbar/chr-searchbar.component';
7
+ export * from './lib/chr-paginator/chr-paginator.component';
8
+ export * from './lib/chr-table/chr-table.component';
9
+ export * from './lib/chr-table-header-cell/chr-table-header-cell.component';
10
+ export * from './lib/chr-checkbox/chr-checkbox.component';
11
+ export * from './lib/chr-separator/chr-separator.component';
12
+ export * from './lib/chr-form/chr-validators/decimal-validator';
13
+ export * from './lib/chr-form/chr-validators/max-date-validator';
14
+ export * from './lib/chr-form/chr-validators/type-validator';
15
+ export * from './lib/services/dialog.service';
16
+ export * from 'chrv-pipes';
17
+ export { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
Binary file
@@ -1,22 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/router";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@angular/material/button";
6
- export class BreadcrumbComponent {
7
- constructor(router) {
8
- this.router = router;
9
- this.navigateTo = (uri, data) => {
10
- this.router.navigate([uri], { state: data });
11
- };
12
- }
13
- }
14
- BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
15
- BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BreadcrumbComponent, selector: "app-chr-breadcrumb", inputs: { crumbs: "crumbs" }, ngImport: i0, template: "<div class=\"w-full flex flex-row flex-wrap dark:!text-gray-400\">\n <div *ngFor=\"let crumb of crumbs\" class=\"w-fit min-w-fit\">\n <button class=\"dark:!text-gray-400\" [disabled]=\"!crumb.link && !crumb.callback\" mat-button\n (click)=\"crumb.callback?.() || crumb.link && navigateTo(crumb.link)\">\n {{ crumb.display }}\n </button>\n {{ (crumb.link || crumb.callback) && \">\" }}\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbComponent, decorators: [{
17
- type: Component,
18
- args: [{ selector: 'app-chr-breadcrumb', template: "<div class=\"w-full flex flex-row flex-wrap dark:!text-gray-400\">\n <div *ngFor=\"let crumb of crumbs\" class=\"w-fit min-w-fit\">\n <button class=\"dark:!text-gray-400\" [disabled]=\"!crumb.link && !crumb.callback\" mat-button\n (click)=\"crumb.callback?.() || crumb.link && navigateTo(crumb.link)\">\n {{ crumb.display }}\n </button>\n {{ (crumb.link || crumb.callback) && \">\" }}\n </div>\n</div>" }]
19
- }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { crumbs: [{
20
- type: Input
21
- }] } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hydi1jb21wb25lbnRzL3NyYy9saWIvY2hyLWJyZWFkY3J1bWIvY2hyLWJyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hydi1jb21wb25lbnRzL3NyYy9saWIvY2hyLWJyZWFkY3J1bWIvY2hyLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBY2pELE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsWUFBbUIsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFakMsZUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLElBQVUsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUM7SUFKa0MsQ0FBQzs7aUhBSDFCLG1CQUFtQjtxR0FBbkIsbUJBQW1CLHdGQ2RoQyx3YUFRTTs0RkRNTyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usb0JBQW9COzZGQUtyQixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJyZWFkY3J1bWIge1xuICBkaXNwbGF5OiBzdHJpbmc7XG4gIGxpbms/OiBzdHJpbmc7XG4gIGNhbGxiYWNrPzogRnVuY3Rpb247XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jaHItYnJlYWRjcnVtYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaHItYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Noci1icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQge1xuICBASW5wdXQoKSBjcnVtYnM6IEJyZWFkY3J1bWJbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgbmF2aWdhdGVUbyA9ICh1cmk6IHN0cmluZywgZGF0YT86IGFueSkgPT4ge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmldLCB7IHN0YXRlOiBkYXRhIH0pO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBkYXJrOiF0ZXh0LWdyYXktNDAwXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGNydW1iIG9mIGNydW1ic1wiIGNsYXNzPVwidy1maXQgbWluLXctZml0XCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImRhcms6IXRleHQtZ3JheS00MDBcIiBbZGlzYWJsZWRdPVwiIWNydW1iLmxpbmsgJiYgIWNydW1iLmNhbGxiYWNrXCIgbWF0LWJ1dHRvblxuICAgICAgKGNsaWNrKT1cImNydW1iLmNhbGxiYWNrPy4oKSB8fCBjcnVtYi5saW5rICYmIG5hdmlnYXRlVG8oY3J1bWIubGluaylcIj5cbiAgICAgIHt7IGNydW1iLmRpc3BsYXkgfX1cbiAgICA8L2J1dHRvbj5cbiAgICB7eyAoY3J1bWIubGluayB8fCBjcnVtYi5jYWxsYmFjaykgJiYgXCI+XCIgfX1cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -1,51 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/icon";
5
- import * as i3 from "@angular/material/button";
6
- import * as i4 from "@angular/material/tooltip";
7
- export class ChrButtonComponent {
8
- constructor() {
9
- this.display = '';
10
- this.icon = '';
11
- this.color = 'none';
12
- this.predicate = true;
13
- this.type = 'none';
14
- this.disabled = false;
15
- this.setDisabled = (is) => {
16
- this.disabled = is;
17
- };
18
- this.doClick = () => {
19
- this.click?.();
20
- };
21
- }
22
- }
23
- ChrButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChrButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
- ChrButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ChrButtonComponent, selector: "app-chr-button", inputs: { display: "display", icon: "icon", click: "click", color: "color", predicate: "predicate", type: "type", href: "href", target: "target", disabled: "disabled", tooltip: "tooltip", tooltipPosition: "tooltipPosition" }, ngImport: i0, template: "<div [ngClass]=\"type == 'full'\n ? 'grid grid-cols-1 flex-1 self-end content-end items-center justify-center !w-full'\n : ' '\" [ngClass]=\"type == 'table' ? 'h-14 grid grid-cols-1' : ''\"\n [ngClass]=\"type == 'fixed' ? 'h-14 grid grid-cols-1 !w-36' : ''\"\n [ngClass]=\"type == 'responsive' ? 'h-14 grid grid-cols-1 w-full sm:!w-36': ''\">\n <a mat-button mat-flat-button *ngIf=\"predicate\" [disabled]=\"disabled\" class=\"w-full\" color=\"{{ color }}\"\n (click)=\"click?.()\" [attr.href]=\"href && href\" [attr.target]=\"target && target\" [matTooltip]=\"tooltip||''\"\n [matTooltipPosition]=\"tooltipPosition||'above'\">\n {{ display }}\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n </a>\n</div>\n<!--\n IF\n Click\n color\n type: table : full \n icon\n-->", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ChrButtonComponent, decorators: [{
26
- type: Component,
27
- args: [{ selector: 'app-chr-button', template: "<div [ngClass]=\"type == 'full'\n ? 'grid grid-cols-1 flex-1 self-end content-end items-center justify-center !w-full'\n : ' '\" [ngClass]=\"type == 'table' ? 'h-14 grid grid-cols-1' : ''\"\n [ngClass]=\"type == 'fixed' ? 'h-14 grid grid-cols-1 !w-36' : ''\"\n [ngClass]=\"type == 'responsive' ? 'h-14 grid grid-cols-1 w-full sm:!w-36': ''\">\n <a mat-button mat-flat-button *ngIf=\"predicate\" [disabled]=\"disabled\" class=\"w-full\" color=\"{{ color }}\"\n (click)=\"click?.()\" [attr.href]=\"href && href\" [attr.target]=\"target && target\" [matTooltip]=\"tooltip||''\"\n [matTooltipPosition]=\"tooltipPosition||'above'\">\n {{ display }}\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n </a>\n</div>\n<!--\n IF\n Click\n color\n type: table : full \n icon\n-->" }]
28
- }], ctorParameters: function () { return []; }, propDecorators: { display: [{
29
- type: Input
30
- }], icon: [{
31
- type: Input
32
- }], click: [{
33
- type: Input
34
- }], color: [{
35
- type: Input
36
- }], predicate: [{
37
- type: Input
38
- }], type: [{
39
- type: Input
40
- }], href: [{
41
- type: Input
42
- }], target: [{
43
- type: Input
44
- }], disabled: [{
45
- type: Input
46
- }], tooltip: [{
47
- type: Input
48
- }], tooltipPosition: [{
49
- type: Input
50
- }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaHJ2LWNvbXBvbmVudHMvc3JjL2xpYi9jaHItYnV0dG9uL2Noci1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hydi1jb21wb25lbnRzL3NyYy9saWIvY2hyLWJ1dHRvbi9jaHItYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPakQsTUFBTSxPQUFPLGtCQUFrQjtJQW1CN0I7UUFsQlMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLFVBQUssR0FBMkMsTUFBTSxDQUFDO1FBQ3ZELGNBQVMsR0FBYSxJQUFJLENBQUM7UUFDM0IsU0FBSSxHQUF1RCxNQUFNLENBQUM7UUFHbEUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQVluQyxnQkFBVyxHQUFHLENBQUMsRUFBVyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBRUYsWUFBTyxHQUFHLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQztJQVJhLENBQUM7O2dIQW5CTCxrQkFBa0I7b0dBQWxCLGtCQUFrQix3UkNQL0IsZ3pCQWtCRzs0RkRYVSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCOzBFQUtqQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY2hyLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaHItYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hyLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDaHJCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBkaXNwbGF5OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNsaWNrPzogRnVuY3Rpb247XG4gIEBJbnB1dCgpIGNvbG9yOiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJyB8ICdub25lJyA9ICdub25lJztcbiAgQElucHV0KCkgcHJlZGljYXRlPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHR5cGU6ICdyZXNwb25zaXZlJyB8ICd0YWJsZScgfCAnZnVsbCcgfCAnZml4ZWQnIHwgJ25vbmUnID0gJ25vbmUnO1xuICBASW5wdXQoKSBocmVmPzogc3RyaW5nO1xuICBASW5wdXQoKSB0YXJnZXQ6ICdfYmxhbmsnIHwgJ19wYXJlbnQnIHwgJ19zZWxmJyB8ICdfdG9wJztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdG9vbHRpcD86IHN0cmluZztcbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uPzpcbiAgICB8ICdhYm92ZSdcbiAgICB8ICdiZWxvdydcbiAgICB8ICdsZWZ0J1xuICAgIHwgJ3JpZ2h0J1xuICAgIHwgJ2JlZm9yZSdcbiAgICB8ICdhZnRlcic7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHNldERpc2FibGVkID0gKGlzOiBib29sZWFuKSA9PiB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzO1xuICB9O1xuXG4gIGRvQ2xpY2sgPSAoKSA9PiB7XG4gICAgdGhpcy5jbGljaz8uKCk7XG4gIH07XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInR5cGUgPT0gJ2Z1bGwnXG4gICAgICAgID8gJ2dyaWQgZ3JpZC1jb2xzLTEgZmxleC0xIHNlbGYtZW5kIGNvbnRlbnQtZW5kIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAhdy1mdWxsJ1xuICAgICAgICA6ICcgJ1wiIFtuZ0NsYXNzXT1cInR5cGUgPT0gJ3RhYmxlJyA/ICdoLTE0IGdyaWQgZ3JpZC1jb2xzLTEnIDogJydcIlxuICBbbmdDbGFzc109XCJ0eXBlID09ICdmaXhlZCcgPyAnaC0xNCBncmlkIGdyaWQtY29scy0xICF3LTM2JyA6ICcnXCJcbiAgW25nQ2xhc3NdPVwidHlwZSA9PSAncmVzcG9uc2l2ZScgPyAnaC0xNCBncmlkIGdyaWQtY29scy0xIHctZnVsbCBzbTohdy0zNic6ICcnXCI+XG4gIDxhIG1hdC1idXR0b24gbWF0LWZsYXQtYnV0dG9uICpuZ0lmPVwicHJlZGljYXRlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgY2xhc3M9XCJ3LWZ1bGxcIiBjb2xvcj1cInt7IGNvbG9yIH19XCJcbiAgICAoY2xpY2spPVwiY2xpY2s/LigpXCIgW2F0dHIuaHJlZl09XCJocmVmICYmIGhyZWZcIiBbYXR0ci50YXJnZXRdPVwidGFyZ2V0ICYmIHRhcmdldFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXB8fCcnXCJcbiAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvbnx8J2Fib3ZlJ1wiPlxuICAgIHt7IGRpc3BsYXkgfX1cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCI+e3sgaWNvbiB9fTwvbWF0LWljb24+XG4gIDwvYT5cbjwvZGl2PlxuPCEtLVxuICAgIElGXG4gICAgQ2xpY2tcbiAgICBjb2xvclxuICAgIHR5cGU6IHRhYmxlIDogZnVsbCAgXG4gICAgaWNvblxuLS0+Il19