vc-layout 0.0.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.
- package/README.md +24 -0
- package/esm2022/lib/components/global-alert/global-alert/global-alert.component.mjs +13 -0
- package/esm2022/lib/components/global-alert/global-alert.module.mjs +18 -0
- package/esm2022/lib/components/header/business-cycle/business-cycle.component.mjs +279 -0
- package/esm2022/lib/components/header/create-workflow/create-workflow.component.mjs +18 -0
- package/esm2022/lib/components/header/header-container/header-container.component.mjs +36 -0
- package/esm2022/lib/components/header/header.module.mjs +64 -0
- package/esm2022/lib/components/header/queue/queue.component.mjs +59 -0
- package/esm2022/lib/components/header/search/search.component.mjs +14 -0
- package/esm2022/lib/components/header/support/support.component.mjs +31 -0
- package/esm2022/lib/components/header/user-details/user-details.component.mjs +34 -0
- package/esm2022/lib/components/product-list/module-list/module-list.component.mjs +130 -0
- package/esm2022/lib/components/product-list/preference-list/preference-list.component.mjs +83 -0
- package/esm2022/lib/components/product-list/product-list-container/product-list-container.component.mjs +33 -0
- package/esm2022/lib/components/product-list/product-list.module.mjs +27 -0
- package/esm2022/lib/components/sub-menu/sub-menu-container/sub-menu-container.component.mjs +117 -0
- package/esm2022/lib/components/sub-menu/sub-menu.module.mjs +19 -0
- package/esm2022/lib/configurations.mjs +6 -0
- package/esm2022/lib/constants/api.constant.mjs +7 -0
- package/esm2022/lib/constants/app-url.constant.mjs +18 -0
- package/esm2022/lib/constants/assets.constants.mjs +32 -0
- package/esm2022/lib/constants/product-list.constant.mjs +92 -0
- package/esm2022/lib/shared/pipe/check-create-permission.pipe.mjs +17 -0
- package/esm2022/lib/shared/pipe/date-format.pipe.mjs +35 -0
- package/esm2022/lib/shared/pipe/get-file-url.pipe.mjs +22 -0
- package/esm2022/lib/shared/pipe/pipes.module.mjs +20 -0
- package/esm2022/lib/shared/services/api.service.mjs +96 -0
- package/esm2022/lib/shared/services/business-cycle.service.mjs +125 -0
- package/esm2022/lib/shared/services/layout.service.mjs +40 -0
- package/esm2022/lib/shared/services/product-list.service.mjs +82 -0
- package/esm2022/lib/shared/services/rbac.service.mjs +58 -0
- package/esm2022/lib/shared/ui-kit/avatar/avatar/avatar.component.mjs +43 -0
- package/esm2022/lib/shared/ui-kit/avatar/avatar.module.mjs +19 -0
- package/esm2022/lib/shared/ui-kit/formgroup/checkbox/checkbox.component.mjs +39 -0
- package/esm2022/lib/shared/ui-kit/formgroup/click-outside.directive.mjs +29 -0
- package/esm2022/lib/shared/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +28 -0
- package/esm2022/lib/shared/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +32 -0
- package/esm2022/lib/shared/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +30 -0
- package/esm2022/lib/shared/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
- package/esm2022/lib/shared/ui-kit/formgroup/cs-select/cs-select.component.mjs +102 -0
- package/esm2022/lib/shared/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +35 -0
- package/esm2022/lib/shared/ui-kit/formgroup/formgroup.module.mjs +65 -0
- package/esm2022/lib/shared/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -0
- package/esm2022/lib/shared/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -0
- package/esm2022/lib/shared/ui-kit/popover/popover-event.directive.mjs +28 -0
- package/esm2022/lib/shared/ui-kit/popover/popover-longpress.directive.mjs +48 -0
- package/esm2022/lib/shared/ui-kit/popover/popover.component.mjs +141 -0
- package/esm2022/lib/shared/ui-kit/popover/popover.directive.mjs +82 -0
- package/esm2022/lib/shared/ui-kit/popover/popover.module.mjs +23 -0
- package/esm2022/lib/shared/ui-kit/popover/popover.service.mjs +15 -0
- package/esm2022/lib/shared/ui-kit/tooltip/tooltip.directive.mjs +156 -0
- package/esm2022/lib/shared/ui-kit/tooltip/tooltip.module.mjs +18 -0
- package/esm2022/lib/vc-layout.component.mjs +19 -0
- package/esm2022/lib/vc-layout.module.mjs +24 -0
- package/esm2022/lib/vc-layout.service.mjs +14 -0
- package/esm2022/public-api.mjs +14 -0
- package/esm2022/vc-layout.mjs +5 -0
- package/fesm2022/vc-layout.mjs +2457 -0
- package/fesm2022/vc-layout.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/global-alert/global-alert/global-alert.component.d.ts +8 -0
- package/lib/components/global-alert/global-alert.module.d.ts +8 -0
- package/lib/components/header/business-cycle/business-cycle.component.d.ts +87 -0
- package/lib/components/header/create-workflow/create-workflow.component.d.ts +9 -0
- package/lib/components/header/header-container/header-container.component.d.ts +15 -0
- package/lib/components/header/header.module.d.ts +20 -0
- package/lib/components/header/queue/queue.component.d.ts +12 -0
- package/lib/components/header/search/search.component.d.ts +8 -0
- package/lib/components/header/support/support.component.d.ts +10 -0
- package/lib/components/header/user-details/user-details.component.d.ts +14 -0
- package/lib/components/product-list/module-list/module-list.component.d.ts +42 -0
- package/lib/components/product-list/preference-list/preference-list.component.d.ts +9 -0
- package/lib/components/product-list/product-list-container/product-list-container.component.d.ts +10 -0
- package/lib/components/product-list/product-list.module.d.ts +11 -0
- package/lib/components/sub-menu/sub-menu-container/sub-menu-container.component.d.ts +11 -0
- package/lib/components/sub-menu/sub-menu.module.d.ts +9 -0
- package/lib/configurations.d.ts +4 -0
- package/lib/constants/api.constant.d.ts +6 -0
- package/lib/constants/app-url.constant.d.ts +1 -0
- package/lib/constants/assets.constants.d.ts +30 -0
- package/lib/constants/product-list.constant.d.ts +1 -0
- package/lib/shared/pipe/check-create-permission.pipe.d.ts +7 -0
- package/lib/shared/pipe/date-format.pipe.d.ts +7 -0
- package/lib/shared/pipe/get-file-url.pipe.d.ts +10 -0
- package/lib/shared/pipe/pipes.module.d.ts +10 -0
- package/lib/shared/services/api.service.d.ts +37 -0
- package/lib/shared/services/business-cycle.service.d.ts +51 -0
- package/lib/shared/services/layout.service.d.ts +9 -0
- package/lib/shared/services/product-list.service.d.ts +31 -0
- package/lib/shared/services/rbac.service.d.ts +25 -0
- package/lib/shared/ui-kit/avatar/avatar/avatar.component.d.ts +12 -0
- package/lib/shared/ui-kit/avatar/avatar.module.d.ts +9 -0
- package/lib/shared/ui-kit/formgroup/checkbox/checkbox.component.d.ts +16 -0
- package/lib/shared/ui-kit/formgroup/click-outside.directive.d.ts +10 -0
- package/lib/shared/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -0
- package/lib/shared/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +13 -0
- package/lib/shared/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -0
- package/lib/shared/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -0
- package/lib/shared/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -0
- package/lib/shared/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -0
- package/lib/shared/ui-kit/formgroup/formgroup.module.d.ts +19 -0
- package/lib/shared/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -0
- package/lib/shared/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -0
- package/lib/shared/ui-kit/popover/popover-event.directive.d.ts +10 -0
- package/lib/shared/ui-kit/popover/popover-longpress.directive.d.ts +16 -0
- package/lib/shared/ui-kit/popover/popover.component.d.ts +28 -0
- package/lib/shared/ui-kit/popover/popover.directive.d.ts +17 -0
- package/lib/shared/ui-kit/popover/popover.module.d.ts +11 -0
- package/lib/shared/ui-kit/popover/popover.service.d.ts +12 -0
- package/lib/shared/ui-kit/tooltip/tooltip.directive.d.ts +27 -0
- package/lib/shared/ui-kit/tooltip/tooltip.module.d.ts +8 -0
- package/lib/vc-layout.component.d.ts +10 -0
- package/lib/vc-layout.module.d.ts +10 -0
- package/lib/vc-layout.service.d.ts +6 -0
- package/package.json +25 -0
- package/public-api.d.ts +10 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as dayjs from 'dayjs';
|
|
4
|
+
import * as customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@vcomply/authorizer";
|
|
7
|
+
dayjs.extend(customParseFormat);
|
|
8
|
+
export class BusinessCycleService {
|
|
9
|
+
constructor(authorizer) {
|
|
10
|
+
this.authorizer = authorizer;
|
|
11
|
+
this.businessCycleList$ = new BehaviorSubject({});
|
|
12
|
+
this.orgDetails$ = new BehaviorSubject({});
|
|
13
|
+
this.selectedBusinessCycle$ = new BehaviorSubject({});
|
|
14
|
+
this.changeBusinessCycle$ = new BehaviorSubject(false);
|
|
15
|
+
this.isBusinessCycleAvailable();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* #### Description
|
|
19
|
+
* it will check the business cycle stored in local is same business cycle as the user login
|
|
20
|
+
* Determines whether correct business cycle is
|
|
21
|
+
* @returns true if correct business cycle
|
|
22
|
+
*/
|
|
23
|
+
isCorrectBusinessCycle(cycle) {
|
|
24
|
+
const localStorageData = localStorage.getItem('businessCycle') ?? '';
|
|
25
|
+
if (!localStorageData) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (JSON.parse(localStorageData).userId === this.authorizer.getUserId()) {
|
|
29
|
+
for (let i = 0; i < cycle.length; i++) {
|
|
30
|
+
if (cycle[i].start_date ==
|
|
31
|
+
JSON.parse(localStorageData)?.selectedCycle?.start_date) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* #### Description
|
|
43
|
+
* set business cycle in local storage if local storage don't have business cycle.
|
|
44
|
+
* Sets business cycle
|
|
45
|
+
* @param businessCycleList list of all the cycle of the organization
|
|
46
|
+
*/
|
|
47
|
+
setBusinessCycle(businessCycleList) {
|
|
48
|
+
let cycle = {};
|
|
49
|
+
businessCycleList?.forEach((el) => {
|
|
50
|
+
if (el.selected) {
|
|
51
|
+
cycle = el;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
cycle['selected_cycle_arr'] = this.setSelectedCycleArray(cycle);
|
|
55
|
+
let businessCycleObject = {
|
|
56
|
+
userId: this.authorizer.getUserId(),
|
|
57
|
+
selectedCycle: {
|
|
58
|
+
start_date: cycle?.start_date,
|
|
59
|
+
end_date: cycle.end_date,
|
|
60
|
+
selected: true,
|
|
61
|
+
business_cycle: cycle?.business_cycle,
|
|
62
|
+
selected_cycle: cycle?.start_date + '-' + cycle?.end_date,
|
|
63
|
+
selected_cycle_arr: cycle?.selected_cycle_arr,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
localStorage.setItem('businessCycle', JSON.stringify(businessCycleObject));
|
|
67
|
+
this.isBusinessCycleAvailable();
|
|
68
|
+
}
|
|
69
|
+
setSelectedCycleArray(cycle) {
|
|
70
|
+
let cycleArray = cycle.start_date + '-' + cycle.end_date;
|
|
71
|
+
return [cycleArray];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* #### Description
|
|
75
|
+
* if business cycle is found in local the it will set in this selectedBusinessCycle$ variable.
|
|
76
|
+
* it is subject variable so we can use it in different component
|
|
77
|
+
*/
|
|
78
|
+
isBusinessCycleAvailable() {
|
|
79
|
+
const localStorageData = localStorage.getItem('businessCycle') ?? '';
|
|
80
|
+
const businessCycleYear = JSON.parse(localStorageData)?.selectedCycle;
|
|
81
|
+
if (businessCycleYear?.selected_cycle_arr?.length === 1) {
|
|
82
|
+
this.selectedBusinessCycle$.next(businessCycleYear);
|
|
83
|
+
}
|
|
84
|
+
else if (businessCycleYear &&
|
|
85
|
+
businessCycleYear?.selected_cycle_arr?.length > 1) {
|
|
86
|
+
businessCycleYear['business_cycle'] = [];
|
|
87
|
+
businessCycleYear?.selected_cycle_arr.forEach((date) => {
|
|
88
|
+
businessCycleYear['business_cycle'].push(this.convertNumericAlpha(date));
|
|
89
|
+
});
|
|
90
|
+
this.selectedBusinessCycle$.next(businessCycleYear);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* #### Description
|
|
95
|
+
*
|
|
96
|
+
* it will convert date from dd-mm-yyyy to dd mmm yyyy formate
|
|
97
|
+
* Converts date
|
|
98
|
+
* @param date
|
|
99
|
+
* @returns date in this formate DD MMM YYYY
|
|
100
|
+
*/
|
|
101
|
+
convertDate(date) {
|
|
102
|
+
return dayjs(date, 'DD-MM-YYYY').format('DD MMM YYYY');
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* #### Description
|
|
106
|
+
*
|
|
107
|
+
* Converts numeric alpha
|
|
108
|
+
* @param str = "01-05-2021-30-04-2022"
|
|
109
|
+
* @returns = "01 May 2021 - 30 Apr 2022"
|
|
110
|
+
*/
|
|
111
|
+
convertNumericAlpha(str) {
|
|
112
|
+
return (this.convertDate(str.substring(0, 10)) +
|
|
113
|
+
' - ' +
|
|
114
|
+
this.convertDate(str.substring(str.length - 10, str.lenth)));
|
|
115
|
+
}
|
|
116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BusinessCycleService, deps: [{ token: i1.AuthorizerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
117
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BusinessCycleService, providedIn: 'root' }); }
|
|
118
|
+
}
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BusinessCycleService, decorators: [{
|
|
120
|
+
type: Injectable,
|
|
121
|
+
args: [{
|
|
122
|
+
providedIn: 'root',
|
|
123
|
+
}]
|
|
124
|
+
}], ctorParameters: function () { return [{ type: i1.AuthorizerService }]; } });
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MtY3ljbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWxheW91dC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9idXNpbmVzcy1jeWNsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDOzs7QUFDcEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBS2hDLE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsWUFBb0IsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFMMUMsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUMzQywyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCx5QkFBb0IsR0FDekIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsc0JBQXNCLENBQUMsS0FBVTtRQUMvQixNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdkUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLElBQ0UsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVU7b0JBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUN2RDtvQkFDQSxPQUFPLElBQUksQ0FBQztpQkFDYjthQUNGO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLGlCQUFzQjtRQUNyQyxJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7UUFDcEIsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUU7WUFDckMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO2dCQUNmLEtBQUssR0FBRyxFQUFFLENBQUM7YUFDWjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLElBQUksbUJBQW1CLEdBQUc7WUFDeEIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFO1lBQ25DLGFBQWEsRUFBRTtnQkFDYixVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVU7Z0JBQzdCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsY0FBYyxFQUFFLEtBQUssRUFBRSxjQUFjO2dCQUNyQyxjQUFjLEVBQUUsS0FBSyxFQUFFLFVBQVUsR0FBRyxHQUFHLEdBQUcsS0FBSyxFQUFFLFFBQVE7Z0JBQ3pELGtCQUFrQixFQUFFLEtBQUssRUFBRSxrQkFBa0I7YUFDOUM7U0FDRixDQUFDO1FBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQVU7UUFDOUIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUN6RCxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx3QkFBd0I7UUFDdEIsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxhQUFhLENBQUM7UUFDdEUsSUFBSSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNyRDthQUFNLElBQ0wsaUJBQWlCO1lBQ2pCLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQ2pEO1lBQ0EsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekMsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzFELGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQy9CLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsV0FBVyxDQUFDLElBQVk7UUFDdEIsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsbUJBQW1CLENBQUMsR0FBUTtRQUMxQixPQUFPLENBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxLQUFLO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM1RCxDQUFDO0lBQ0osQ0FBQzsrR0F2SFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhvcml6ZXJTZXJ2aWNlIH0gZnJvbSAnQHZjb21wbHkvYXV0aG9yaXplcic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCAqIGFzIGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XHJcbmRheWpzLmV4dGVuZChjdXN0b21QYXJzZUZvcm1hdCk7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVzaW5lc3NDeWNsZVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBidXNpbmVzc0N5Y2xlTGlzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pO1xyXG4gIHB1YmxpYyBvcmdEZXRhaWxzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XHJcbiAgcHVibGljIHNlbGVjdGVkQnVzaW5lc3NDeWNsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pO1xyXG4gIHB1YmxpYyBjaGFuZ2VCdXNpbmVzc0N5Y2xlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID1cclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aG9yaXplcjogQXV0aG9yaXplclNlcnZpY2UpIHtcclxuICAgIHRoaXMuaXNCdXNpbmVzc0N5Y2xlQXZhaWxhYmxlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogaXQgd2lsbCBjaGVjayB0aGUgYnVzaW5lc3MgY3ljbGUgc3RvcmVkIGluIGxvY2FsIGlzIHNhbWUgYnVzaW5lc3MgY3ljbGUgYXMgdGhlIHVzZXIgbG9naW5cclxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgY29ycmVjdCBidXNpbmVzcyBjeWNsZSBpc1xyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgY29ycmVjdCBidXNpbmVzcyBjeWNsZVxyXG4gICAqL1xyXG4gIGlzQ29ycmVjdEJ1c2luZXNzQ3ljbGUoY3ljbGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgbG9jYWxTdG9yYWdlRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0N5Y2xlJykgPz8gJyc7XHJcbiAgICBpZiAoIWxvY2FsU3RvcmFnZURhdGEpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKEpTT04ucGFyc2UobG9jYWxTdG9yYWdlRGF0YSkudXNlcklkID09PSB0aGlzLmF1dGhvcml6ZXIuZ2V0VXNlcklkKCkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjeWNsZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGN5Y2xlW2ldLnN0YXJ0X2RhdGUgPT1cclxuICAgICAgICAgIEpTT04ucGFyc2UobG9jYWxTdG9yYWdlRGF0YSk/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGVcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogc2V0IGJ1c2luZXNzIGN5Y2xlIGluIGxvY2FsIHN0b3JhZ2UgaWYgbG9jYWwgc3RvcmFnZSBkb24ndCBoYXZlIGJ1c2luZXNzIGN5Y2xlLlxyXG4gICAqIFNldHMgYnVzaW5lc3MgY3ljbGVcclxuICAgKiBAcGFyYW0gYnVzaW5lc3NDeWNsZUxpc3QgIGxpc3Qgb2YgYWxsIHRoZSBjeWNsZSBvZiB0aGUgb3JnYW5pemF0aW9uXHJcbiAgICovXHJcbiAgc2V0QnVzaW5lc3NDeWNsZShidXNpbmVzc0N5Y2xlTGlzdDogYW55KSB7XHJcbiAgICBsZXQgY3ljbGU6IGFueSA9IHt9O1xyXG4gICAgYnVzaW5lc3NDeWNsZUxpc3Q/LmZvckVhY2goKGVsOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgY3ljbGUgPSBlbDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjeWNsZVsnc2VsZWN0ZWRfY3ljbGVfYXJyJ10gPSB0aGlzLnNldFNlbGVjdGVkQ3ljbGVBcnJheShjeWNsZSk7XHJcbiAgICBsZXQgYnVzaW5lc3NDeWNsZU9iamVjdCA9IHtcclxuICAgICAgdXNlcklkOiB0aGlzLmF1dGhvcml6ZXIuZ2V0VXNlcklkKCksXHJcbiAgICAgIHNlbGVjdGVkQ3ljbGU6IHtcclxuICAgICAgICBzdGFydF9kYXRlOiBjeWNsZT8uc3RhcnRfZGF0ZSxcclxuICAgICAgICBlbmRfZGF0ZTogY3ljbGUuZW5kX2RhdGUsXHJcbiAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXHJcbiAgICAgICAgYnVzaW5lc3NfY3ljbGU6IGN5Y2xlPy5idXNpbmVzc19jeWNsZSxcclxuICAgICAgICBzZWxlY3RlZF9jeWNsZTogY3ljbGU/LnN0YXJ0X2RhdGUgKyAnLScgKyBjeWNsZT8uZW5kX2RhdGUsXHJcbiAgICAgICAgc2VsZWN0ZWRfY3ljbGVfYXJyOiBjeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdidXNpbmVzc0N5Y2xlJywgSlNPTi5zdHJpbmdpZnkoYnVzaW5lc3NDeWNsZU9iamVjdCkpO1xyXG4gICAgdGhpcy5pc0J1c2luZXNzQ3ljbGVBdmFpbGFibGUoKTtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGVkQ3ljbGVBcnJheShjeWNsZTogYW55KSB7XHJcbiAgICBsZXQgY3ljbGVBcnJheSA9IGN5Y2xlLnN0YXJ0X2RhdGUgKyAnLScgKyBjeWNsZS5lbmRfZGF0ZTtcclxuICAgIHJldHVybiBbY3ljbGVBcnJheV07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogaWYgYnVzaW5lc3MgY3ljbGUgaXMgZm91bmQgaW4gbG9jYWwgdGhlIGl0IHdpbGwgc2V0IGluIHRoaXMgc2VsZWN0ZWRCdXNpbmVzc0N5Y2xlJCB2YXJpYWJsZS5cclxuICAgKiBpdCBpcyBzdWJqZWN0IHZhcmlhYmxlIHNvIHdlIGNhbiB1c2UgaXQgaW4gZGlmZmVyZW50IGNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGlzQnVzaW5lc3NDeWNsZUF2YWlsYWJsZSgpIHtcclxuICAgIGNvbnN0IGxvY2FsU3RvcmFnZURhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NDeWNsZScpID8/ICcnO1xyXG4gICAgY29uc3QgYnVzaW5lc3NDeWNsZVllYXIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZURhdGEpPy5zZWxlY3RlZEN5Y2xlO1xyXG4gICAgaWYgKGJ1c2luZXNzQ3ljbGVZZWFyPy5zZWxlY3RlZF9jeWNsZV9hcnI/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQnVzaW5lc3NDeWNsZSQubmV4dChidXNpbmVzc0N5Y2xlWWVhcik7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBidXNpbmVzc0N5Y2xlWWVhciAmJlxyXG4gICAgICBidXNpbmVzc0N5Y2xlWWVhcj8uc2VsZWN0ZWRfY3ljbGVfYXJyPy5sZW5ndGggPiAxXHJcbiAgICApIHtcclxuICAgICAgYnVzaW5lc3NDeWNsZVllYXJbJ2J1c2luZXNzX2N5Y2xlJ10gPSBbXTtcclxuICAgICAgYnVzaW5lc3NDeWNsZVllYXI/LnNlbGVjdGVkX2N5Y2xlX2Fyci5mb3JFYWNoKChkYXRlOiBhbnkpID0+IHtcclxuICAgICAgICBidXNpbmVzc0N5Y2xlWWVhclsnYnVzaW5lc3NfY3ljbGUnXS5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5jb252ZXJ0TnVtZXJpY0FscGhhKGRhdGUpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRCdXNpbmVzc0N5Y2xlJC5uZXh0KGJ1c2luZXNzQ3ljbGVZZWFyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIGl0IHdpbGwgY29udmVydCBkYXRlIGZyb20gZGQtbW0teXl5eSB0byBkZCBtbW0geXl5eSBmb3JtYXRlXHJcbiAgICogQ29udmVydHMgZGF0ZVxyXG4gICAqIEBwYXJhbSBkYXRlXHJcbiAgICogQHJldHVybnMgIGRhdGUgaW4gdGhpcyBmb3JtYXRlIEREIE1NTSBZWVlZXHJcbiAgICovXHJcbiAgY29udmVydERhdGUoZGF0ZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gZGF5anMoZGF0ZSwgJ0RELU1NLVlZWVknKS5mb3JtYXQoJ0REIE1NTSBZWVlZJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBDb252ZXJ0cyBudW1lcmljIGFscGhhXHJcbiAgICogQHBhcmFtIHN0ciA9IFwiMDEtMDUtMjAyMS0zMC0wNC0yMDIyXCJcclxuICAgKiBAcmV0dXJucyAgPSAgXCIwMSBNYXkgMjAyMSAtIDMwIEFwciAyMDIyXCJcclxuICAgKi9cclxuICBjb252ZXJ0TnVtZXJpY0FscGhhKHN0cjogYW55KSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmNvbnZlcnREYXRlKHN0ci5zdWJzdHJpbmcoMCwgMTApKSArXHJcbiAgICAgICcgLSAnICtcclxuICAgICAgdGhpcy5jb252ZXJ0RGF0ZShzdHIuc3Vic3RyaW5nKHN0ci5sZW5ndGggLSAxMCwgc3RyLmxlbnRoKSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class LayoutService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.baseUrl = '';
|
|
6
|
+
this.setBaseUrl();
|
|
7
|
+
}
|
|
8
|
+
setBaseUrl() {
|
|
9
|
+
this.baseUrl = window.location.origin;
|
|
10
|
+
}
|
|
11
|
+
ConvertUtcToLocalDateTime(timestamp, TimeZone) {
|
|
12
|
+
if (typeof timestamp !== 'number' || timestamp <= 0) {
|
|
13
|
+
return 0;
|
|
14
|
+
}
|
|
15
|
+
if (!TimeZone) {
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
const date = new Date(timestamp * 1000);
|
|
19
|
+
const options = {
|
|
20
|
+
timeZone: TimeZone,
|
|
21
|
+
weekday: 'long',
|
|
22
|
+
year: 'numeric',
|
|
23
|
+
month: 'short',
|
|
24
|
+
day: '2-digit',
|
|
25
|
+
hour: 'numeric',
|
|
26
|
+
minute: 'numeric',
|
|
27
|
+
};
|
|
28
|
+
const formattedDate = new Intl.DateTimeFormat('en', options).format(date);
|
|
29
|
+
return formattedDate;
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutService, providedIn: 'root' }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutService, decorators: [{
|
|
35
|
+
type: Injectable,
|
|
36
|
+
args: [{
|
|
37
|
+
providedIn: 'root',
|
|
38
|
+
}]
|
|
39
|
+
}], ctorParameters: function () { return []; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1sYXlvdXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvbGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUFFeEI7UUFETyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ08sVUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxTQUFpQixFQUFFLFFBQWdCO1FBQ2xFLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7WUFDbkQsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sT0FBTyxHQUErQjtZQUMxQyxRQUFRLEVBQUUsUUFBUTtZQUNsQixPQUFPLEVBQUUsTUFBTTtZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLE9BQU87WUFDZCxHQUFHLEVBQUUsU0FBUztZQUNkLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLFNBQVM7U0FDbEIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7K0dBL0JVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIExheW91dFNlcnZpY2Uge1xyXG4gIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcgPSAnJztcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuc2V0QmFzZVVybCgpO1xyXG4gIH1cclxuICBwcml2YXRlIHNldEJhc2VVcmwoKSB7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENvbnZlcnRVdGNUb0xvY2FsRGF0ZVRpbWUodGltZXN0YW1wOiBudW1iZXIsIFRpbWVab25lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0eXBlb2YgdGltZXN0YW1wICE9PSAnbnVtYmVyJyB8fCB0aW1lc3RhbXAgPD0gMCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVRpbWVab25lKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lc3RhbXAgKiAxMDAwKTtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xyXG4gICAgICB0aW1lWm9uZTogVGltZVpvbmUsXHJcbiAgICAgIHdlZWtkYXk6ICdsb25nJyxcclxuICAgICAgeWVhcjogJ251bWVyaWMnLFxyXG4gICAgICBtb250aDogJ3Nob3J0JyxcclxuICAgICAgZGF5OiAnMi1kaWdpdCcsXHJcbiAgICAgIGhvdXI6ICdudW1lcmljJyxcclxuICAgICAgbWludXRlOiAnbnVtZXJpYycsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4nLCBvcHRpb25zKS5mb3JtYXQoZGF0ZSk7XHJcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { IN_APP_URL } from '../../constants/app-url.constant';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./rbac.service";
|
|
5
|
+
export class ProductListService {
|
|
6
|
+
constructor(rbacService) {
|
|
7
|
+
this.rbacService = rbacService;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Filters the subscribed products based on the subscription flags.
|
|
11
|
+
*
|
|
12
|
+
* @param productList - The list of products.
|
|
13
|
+
* @param subscriptionList - The subscription flags.
|
|
14
|
+
* @returns The filtered list of subscribed products.
|
|
15
|
+
*/
|
|
16
|
+
subscribedProduct(productList, subscriptionList) {
|
|
17
|
+
const flags = {
|
|
18
|
+
RISK: subscriptionList.risk_flag,
|
|
19
|
+
ASSURANCE: subscriptionList.assurance_flag,
|
|
20
|
+
ISSUE: subscriptionList.issue_flag,
|
|
21
|
+
AUDIT: subscriptionList.audit_flag,
|
|
22
|
+
POLICY: subscriptionList.policy_flag,
|
|
23
|
+
ASSESSMENT: subscriptionList.assessment_flag,
|
|
24
|
+
};
|
|
25
|
+
const code = Object.keys(flags).filter((key) => flags[key] === 0);
|
|
26
|
+
return productList.filter((product) => !code.includes(product.code));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Sets the product click callback based on the product details and feature flag.
|
|
30
|
+
*
|
|
31
|
+
* @param productDetails - The details of the product.
|
|
32
|
+
* @param featureFlag - The feature flag.
|
|
33
|
+
* @returns The URL for the product click callback.
|
|
34
|
+
*/
|
|
35
|
+
setProductClickCallback(productDetails, featureFlag) {
|
|
36
|
+
let url = '';
|
|
37
|
+
switch (productDetails.code) {
|
|
38
|
+
case 'COMPLIANCE_OPS':
|
|
39
|
+
return this.setComplianceURL(featureFlag);
|
|
40
|
+
case 'ORGANIZATION':
|
|
41
|
+
case 'DASHBOARD':
|
|
42
|
+
case 'ASSESSMENTS':
|
|
43
|
+
case 'RISK_OPS':
|
|
44
|
+
case 'ASSURANCE':
|
|
45
|
+
case 'AUDIT_OPS':
|
|
46
|
+
case 'ISSUE_OPS':
|
|
47
|
+
case 'POLICY_OPS':
|
|
48
|
+
return IN_APP_URL[productDetails.code];
|
|
49
|
+
default:
|
|
50
|
+
return 'javascript:void(0);';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Sets the compliance URL based on the feature flag and RBAC permissions.
|
|
55
|
+
*
|
|
56
|
+
* @param featureFlag - The feature flag.
|
|
57
|
+
* @returns The URL for the compliance page.
|
|
58
|
+
*/
|
|
59
|
+
setComplianceURL(featureFlag) {
|
|
60
|
+
const permissions = this.rbacService.getRBACPermissions('compliance');
|
|
61
|
+
const isManageResDefault = featureFlag?.isFeatureEnabled('ff_compliance_redirection');
|
|
62
|
+
if (isManageResDefault) {
|
|
63
|
+
return permissions.includes('CRMR')
|
|
64
|
+
? IN_APP_URL.MANAGE_RESPONSIBILITY
|
|
65
|
+
: IN_APP_URL.MY_RESPONSIBILITY;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return permissions.includes('CPMP')
|
|
69
|
+
? IN_APP_URL.PROGRAM
|
|
70
|
+
: IN_APP_URL.MY_RESPONSIBILITY;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProductListService, deps: [{ token: i1.RbacService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
74
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProductListService, providedIn: 'root' }); }
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProductListService, decorators: [{
|
|
77
|
+
type: Injectable,
|
|
78
|
+
args: [{
|
|
79
|
+
providedIn: 'root',
|
|
80
|
+
}]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i1.RbacService }]; } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1sYXlvdXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvcHJvZHVjdC1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQU05RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUVoRDs7Ozs7O09BTUc7SUFDSSxpQkFBaUIsQ0FBQyxXQUFpQixFQUFFLGdCQUFzQjtRQUNoRSxNQUFNLEtBQUssR0FBMkI7WUFDcEMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDaEMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLGNBQWM7WUFDMUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFVBQVU7WUFDbEMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFVBQVU7WUFDbEMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFdBQVc7WUFDcEMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7U0FDN0MsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFbEUsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHVCQUF1QixDQUFDLGNBQW1CLEVBQUUsV0FBZ0I7UUFDbEUsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsUUFBUSxjQUFjLENBQUMsSUFBSSxFQUFFO1lBQzNCLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM1QyxLQUFLLGNBQWMsQ0FBQztZQUNwQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pDO2dCQUNFLE9BQU8scUJBQXFCLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxnQkFBZ0IsQ0FBQyxXQUFnQjtRQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxFQUFFLGdCQUFnQixDQUN0RCwyQkFBMkIsQ0FDNUIsQ0FBQztRQUVGLElBQUksa0JBQWtCLEVBQUU7WUFDdEIsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDakMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUI7Z0JBQ2xDLENBQUMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7U0FDbEM7YUFBTTtZQUNMLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTztnQkFDcEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztTQUNsQztJQUNILENBQUM7K0dBdkVVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElOX0FQUF9VUkwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXBwLXVybC5jb25zdGFudCc7XHJcbmltcG9ydCB7IFJiYWNTZXJ2aWNlIH0gZnJvbSAnLi9yYmFjLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RMaXN0U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByYmFjU2VydmljZTogUmJhY1NlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlcnMgdGhlIHN1YnNjcmliZWQgcHJvZHVjdHMgYmFzZWQgb24gdGhlIHN1YnNjcmlwdGlvbiBmbGFncy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwcm9kdWN0TGlzdCAtIFRoZSBsaXN0IG9mIHByb2R1Y3RzLlxyXG4gICAqIEBwYXJhbSBzdWJzY3JpcHRpb25MaXN0IC0gVGhlIHN1YnNjcmlwdGlvbiBmbGFncy5cclxuICAgKiBAcmV0dXJucyBUaGUgZmlsdGVyZWQgbGlzdCBvZiBzdWJzY3JpYmVkIHByb2R1Y3RzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdWJzY3JpYmVkUHJvZHVjdChwcm9kdWN0TGlzdD86IGFueSwgc3Vic2NyaXB0aW9uTGlzdD86IGFueSkge1xyXG4gICAgY29uc3QgZmxhZ3M6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XHJcbiAgICAgIFJJU0s6IHN1YnNjcmlwdGlvbkxpc3Qucmlza19mbGFnLFxyXG4gICAgICBBU1NVUkFOQ0U6IHN1YnNjcmlwdGlvbkxpc3QuYXNzdXJhbmNlX2ZsYWcsXHJcbiAgICAgIElTU1VFOiBzdWJzY3JpcHRpb25MaXN0Lmlzc3VlX2ZsYWcsXHJcbiAgICAgIEFVRElUOiBzdWJzY3JpcHRpb25MaXN0LmF1ZGl0X2ZsYWcsXHJcbiAgICAgIFBPTElDWTogc3Vic2NyaXB0aW9uTGlzdC5wb2xpY3lfZmxhZyxcclxuICAgICAgQVNTRVNTTUVOVDogc3Vic2NyaXB0aW9uTGlzdC5hc3Nlc3NtZW50X2ZsYWcsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgY29kZSA9IE9iamVjdC5rZXlzKGZsYWdzKS5maWx0ZXIoKGtleSkgPT4gZmxhZ3Nba2V5XSA9PT0gMCk7XHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RMaXN0LmZpbHRlcigocHJvZHVjdDogYW55KSA9PiAhY29kZS5pbmNsdWRlcyhwcm9kdWN0LmNvZGUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHByb2R1Y3QgY2xpY2sgY2FsbGJhY2sgYmFzZWQgb24gdGhlIHByb2R1Y3QgZGV0YWlscyBhbmQgZmVhdHVyZSBmbGFnLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHByb2R1Y3REZXRhaWxzIC0gVGhlIGRldGFpbHMgb2YgdGhlIHByb2R1Y3QuXHJcbiAgICogQHBhcmFtIGZlYXR1cmVGbGFnIC0gVGhlIGZlYXR1cmUgZmxhZy5cclxuICAgKiBAcmV0dXJucyBUaGUgVVJMIGZvciB0aGUgcHJvZHVjdCBjbGljayBjYWxsYmFjay5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0UHJvZHVjdENsaWNrQ2FsbGJhY2socHJvZHVjdERldGFpbHM6IGFueSwgZmVhdHVyZUZsYWc6IGFueSkge1xyXG4gICAgbGV0IHVybCA9ICcnO1xyXG4gICAgc3dpdGNoIChwcm9kdWN0RGV0YWlscy5jb2RlKSB7XHJcbiAgICAgIGNhc2UgJ0NPTVBMSUFOQ0VfT1BTJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRDb21wbGlhbmNlVVJMKGZlYXR1cmVGbGFnKTtcclxuICAgICAgY2FzZSAnT1JHQU5JWkFUSU9OJzpcclxuICAgICAgY2FzZSAnREFTSEJPQVJEJzpcclxuICAgICAgY2FzZSAnQVNTRVNTTUVOVFMnOlxyXG4gICAgICBjYXNlICdSSVNLX09QUyc6XHJcbiAgICAgIGNhc2UgJ0FTU1VSQU5DRSc6XHJcbiAgICAgIGNhc2UgJ0FVRElUX09QUyc6XHJcbiAgICAgIGNhc2UgJ0lTU1VFX09QUyc6XHJcbiAgICAgIGNhc2UgJ1BPTElDWV9PUFMnOlxyXG4gICAgICAgIHJldHVybiBJTl9BUFBfVVJMW3Byb2R1Y3REZXRhaWxzLmNvZGVdO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnamF2YXNjcmlwdDp2b2lkKDApOyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBjb21wbGlhbmNlIFVSTCBiYXNlZCBvbiB0aGUgZmVhdHVyZSBmbGFnIGFuZCBSQkFDIHBlcm1pc3Npb25zLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZlYXR1cmVGbGFnIC0gVGhlIGZlYXR1cmUgZmxhZy5cclxuICAgKiBAcmV0dXJucyBUaGUgVVJMIGZvciB0aGUgY29tcGxpYW5jZSBwYWdlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0Q29tcGxpYW5jZVVSTChmZWF0dXJlRmxhZzogYW55KSB7XHJcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IHRoaXMucmJhY1NlcnZpY2UuZ2V0UkJBQ1Blcm1pc3Npb25zKCdjb21wbGlhbmNlJyk7XHJcbiAgICBjb25zdCBpc01hbmFnZVJlc0RlZmF1bHQgPSBmZWF0dXJlRmxhZz8uaXNGZWF0dXJlRW5hYmxlZChcclxuICAgICAgJ2ZmX2NvbXBsaWFuY2VfcmVkaXJlY3Rpb24nXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpc01hbmFnZVJlc0RlZmF1bHQpIHtcclxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zLmluY2x1ZGVzKCdDUk1SJylcclxuICAgICAgICA/IElOX0FQUF9VUkwuTUFOQUdFX1JFU1BPTlNJQklMSVRZXHJcbiAgICAgICAgOiBJTl9BUFBfVVJMLk1ZX1JFU1BPTlNJQklMSVRZO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zLmluY2x1ZGVzKCdDUE1QJylcclxuICAgICAgICA/IElOX0FQUF9VUkwuUFJPR1JBTVxyXG4gICAgICAgIDogSU5fQVBQX1VSTC5NWV9SRVNQT05TSUJJTElUWTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./api.service";
|
|
4
|
+
export class RbacService {
|
|
5
|
+
constructor(apiService) {
|
|
6
|
+
this.apiService = apiService;
|
|
7
|
+
this.permissions = {};
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Retrieves the RBAC (Role-Based Access Control) permissions for a given module.
|
|
11
|
+
*
|
|
12
|
+
* @param MODULE - The module for which to retrieve the permissions. Must be one of the following values:
|
|
13
|
+
* - 'assessment'
|
|
14
|
+
* - 'audit'
|
|
15
|
+
* - 'issue'
|
|
16
|
+
* - 'policy'
|
|
17
|
+
* - 'risk'
|
|
18
|
+
* - 'assurance'
|
|
19
|
+
* - 'compliance'
|
|
20
|
+
* - 'organization'
|
|
21
|
+
*
|
|
22
|
+
* @returns An array of strings representing the permissions for the specified module.
|
|
23
|
+
*/
|
|
24
|
+
getRBACPermissions(MODULE) {
|
|
25
|
+
const data = this.apiService.loggedUserDetail$.value?.roleActions ?? [];
|
|
26
|
+
console.log(data);
|
|
27
|
+
if (this.permissions[MODULE]) {
|
|
28
|
+
return this.permissions[MODULE];
|
|
29
|
+
}
|
|
30
|
+
const modulePermissions = data.find((item) => item.moduleName === MODULE);
|
|
31
|
+
const PERMISSION_ARRAY = [];
|
|
32
|
+
// checked if module is active
|
|
33
|
+
if (modulePermissions?.isActive) {
|
|
34
|
+
// find all active submodules
|
|
35
|
+
modulePermissions.subModule
|
|
36
|
+
?.filter((subModule) => subModule.isActive)
|
|
37
|
+
.forEach((subModule) => {
|
|
38
|
+
// find all active permissions
|
|
39
|
+
subModule.permissions
|
|
40
|
+
?.filter((permission) => permission.enable)
|
|
41
|
+
.forEach((permission) => {
|
|
42
|
+
PERMISSION_ARRAY.push(permission.code);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
this.permissions[MODULE] = PERMISSION_ARRAY;
|
|
47
|
+
return PERMISSION_ARRAY;
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RbacService, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
50
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RbacService, providedIn: 'root' }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RbacService, decorators: [{
|
|
53
|
+
type: Injectable,
|
|
54
|
+
args: [{
|
|
55
|
+
providedIn: 'root',
|
|
56
|
+
}]
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i1.ApiService }]; } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmJhYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL3JiYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUQxQyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQUN1QixDQUFDO0lBRTlDOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksa0JBQWtCLENBQ3ZCLE1BUWtCO1FBRWxCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDeEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUNqQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQzFDLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUV0Qyw4QkFBOEI7UUFDOUIsSUFBSSxpQkFBaUIsRUFBRSxRQUFRLEVBQUU7WUFDL0IsNkJBQTZCO1lBQzdCLGlCQUFpQixDQUFDLFNBQVM7Z0JBQ3pCLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO2lCQUMvQyxPQUFPLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtnQkFDMUIsOEJBQThCO2dCQUM5QixTQUFTLENBQUMsV0FBVztvQkFDbkIsRUFBRSxNQUFNLENBQUMsQ0FBQyxVQUFlLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7cUJBQy9DLE9BQU8sQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO29CQUMzQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QyxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1FBQzVDLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzsrR0ExRFUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSYmFjU2VydmljZSB7XHJcbiAgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBSQkFDIChSb2xlLUJhc2VkIEFjY2VzcyBDb250cm9sKSBwZXJtaXNzaW9ucyBmb3IgYSBnaXZlbiBtb2R1bGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gTU9EVUxFIC0gVGhlIG1vZHVsZSBmb3Igd2hpY2ggdG8gcmV0cmlldmUgdGhlIHBlcm1pc3Npb25zLiBNdXN0IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczpcclxuICAgKiAgIC0gJ2Fzc2Vzc21lbnQnXHJcbiAgICogICAtICdhdWRpdCdcclxuICAgKiAgIC0gJ2lzc3VlJ1xyXG4gICAqICAgLSAncG9saWN5J1xyXG4gICAqICAgLSAncmlzaydcclxuICAgKiAgIC0gJ2Fzc3VyYW5jZSdcclxuICAgKiAgIC0gJ2NvbXBsaWFuY2UnXHJcbiAgICogICAtICdvcmdhbml6YXRpb24nXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgcGVybWlzc2lvbnMgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRSQkFDUGVybWlzc2lvbnMoXHJcbiAgICBNT0RVTEU6XHJcbiAgICAgIHwgJ2Fzc2Vzc21lbnQnXHJcbiAgICAgIHwgJ2F1ZGl0J1xyXG4gICAgICB8ICdpc3N1ZSdcclxuICAgICAgfCAncG9saWN5J1xyXG4gICAgICB8ICdyaXNrJ1xyXG4gICAgICB8ICdhc3N1cmFuY2UnXHJcbiAgICAgIHwgJ2NvbXBsaWFuY2UnXHJcbiAgICAgIHwgJ29yZ2FuaXphdGlvbidcclxuICApIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmFwaVNlcnZpY2UubG9nZ2VkVXNlckRldGFpbCQudmFsdWU/LnJvbGVBY3Rpb25zID8/IFtdO1xyXG4gICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICBpZiAodGhpcy5wZXJtaXNzaW9uc1tNT0RVTEVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25zW01PRFVMRV07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbW9kdWxlUGVybWlzc2lvbnMgPSBkYXRhLmZpbmQoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0ubW9kdWxlTmFtZSA9PT0gTU9EVUxFXHJcbiAgICApO1xyXG4gICAgY29uc3QgUEVSTUlTU0lPTl9BUlJBWTogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvLyBjaGVja2VkIGlmIG1vZHVsZSBpcyBhY3RpdmVcclxuICAgIGlmIChtb2R1bGVQZXJtaXNzaW9ucz8uaXNBY3RpdmUpIHtcclxuICAgICAgLy8gZmluZCBhbGwgYWN0aXZlIHN1Ym1vZHVsZXNcclxuICAgICAgbW9kdWxlUGVybWlzc2lvbnMuc3ViTW9kdWxlXHJcbiAgICAgICAgPy5maWx0ZXIoKHN1Yk1vZHVsZTogYW55KSA9PiBzdWJNb2R1bGUuaXNBY3RpdmUpXHJcbiAgICAgICAgLmZvckVhY2goKHN1Yk1vZHVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyBmaW5kIGFsbCBhY3RpdmUgcGVybWlzc2lvbnNcclxuICAgICAgICAgIHN1Yk1vZHVsZS5wZXJtaXNzaW9uc1xyXG4gICAgICAgICAgICA/LmZpbHRlcigocGVybWlzc2lvbjogYW55KSA9PiBwZXJtaXNzaW9uLmVuYWJsZSlcclxuICAgICAgICAgICAgLmZvckVhY2goKHBlcm1pc3Npb246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIFBFUk1JU1NJT05fQVJSQVkucHVzaChwZXJtaXNzaW9uLmNvZGUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBlcm1pc3Npb25zW01PRFVMRV0gPSBQRVJNSVNTSU9OX0FSUkFZO1xyXG4gICAgcmV0dXJuIFBFUk1JU1NJT05fQVJSQVk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@vcomply/authorizer";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "../../../pipe/get-file-url.pipe";
|
|
6
|
+
export class AvatarComponent {
|
|
7
|
+
constructor(authService) {
|
|
8
|
+
this.authService = authService;
|
|
9
|
+
this.baseUrl = '';
|
|
10
|
+
this.shortName = '';
|
|
11
|
+
this.type = 'md';
|
|
12
|
+
this.shortName = this.authService.getUser()?.short_name ?? '';
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.AuthorizerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AvatarComponent, selector: "vc-avatar", inputs: { userInfo: "userInfo", type: "type" }, ngImport: i0, template: `
|
|
16
|
+
<div class="vx-avatar " [ngClass]="type">
|
|
17
|
+
<span *ngIf="!userInfo?.profile_pic" class="blue">{{ shortName }}</span>
|
|
18
|
+
<img
|
|
19
|
+
*ngIf="userInfo?.profile_pic"
|
|
20
|
+
[src]="userInfo?.profile_pic | getFileUrl"
|
|
21
|
+
alt=""
|
|
22
|
+
/>
|
|
23
|
+
</div>
|
|
24
|
+
`, isInline: true, styles: ["@import\"https://cdn.v-comply.com/design-system/css/avatars/avatars.css\";\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.GetFileUrlPipe, name: "getFileUrl" }] }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'vc-avatar', template: `
|
|
29
|
+
<div class="vx-avatar " [ngClass]="type">
|
|
30
|
+
<span *ngIf="!userInfo?.profile_pic" class="blue">{{ shortName }}</span>
|
|
31
|
+
<img
|
|
32
|
+
*ngIf="userInfo?.profile_pic"
|
|
33
|
+
[src]="userInfo?.profile_pic | getFileUrl"
|
|
34
|
+
alt=""
|
|
35
|
+
/>
|
|
36
|
+
</div>
|
|
37
|
+
`, styles: ["@import\"https://cdn.v-comply.com/design-system/css/avatars/avatars.css\";\n"] }]
|
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.AuthorizerService }]; }, propDecorators: { userInfo: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], type: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWxheW91dC9zcmMvbGliL3NoYXJlZC91aS1raXQvYXZhdGFyL2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWlCakQsTUFBTSxPQUFPLGVBQWU7SUFPMUIsWUFBb0IsV0FBOEI7UUFBOUIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBTjNDLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUdkLFNBQUksR0FBZ0MsSUFBSSxDQUFDO1FBR3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO0lBQ2hFLENBQUM7K0dBVFUsZUFBZTttR0FBZixlQUFlLGlHQVpoQjs7Ozs7Ozs7O0dBU1Q7OzRGQUdVLGVBQWU7a0JBZDNCLFNBQVM7K0JBQ0UsV0FBVyxZQUNYOzs7Ozs7Ozs7R0FTVDt3R0FPZSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhvcml6ZXJTZXJ2aWNlIH0gZnJvbSAnQHZjb21wbHkvYXV0aG9yaXplcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ZjLWF2YXRhcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ2eC1hdmF0YXIgXCIgW25nQ2xhc3NdPVwidHlwZVwiPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiF1c2VySW5mbz8ucHJvZmlsZV9waWNcIiBjbGFzcz1cImJsdWVcIj57eyBzaG9ydE5hbWUgfX08L3NwYW4+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICAqbmdJZj1cInVzZXJJbmZvPy5wcm9maWxlX3BpY1wiXHJcbiAgICAgICAgW3NyY109XCJ1c2VySW5mbz8ucHJvZmlsZV9waWMgfCBnZXRGaWxlVXJsXCJcclxuICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi9hdmF0YXIuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCB7XHJcbiAgcHVibGljIGJhc2VVcmw6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBzaG9ydE5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdXNlckluZm86IGFueTtcclxuICBASW5wdXQoKSBwdWJsaWMgdHlwZTogJ21kJyB8ICdzbScgfCAneHMnIHwgJ3gtbGcnID0gJ21kJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aG9yaXplclNlcnZpY2UpIHtcclxuICAgIHRoaXMuc2hvcnROYW1lID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyKCk/LnNob3J0X25hbWUgPz8gJyc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { AvatarComponent } from './avatar/avatar.component';
|
|
4
|
+
import { PipesModule } from '../../pipe/pipes.module';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class AvatarModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AvatarModule, declarations: [AvatarComponent], imports: [CommonModule, PipesModule], exports: [AvatarComponent] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarModule, imports: [CommonModule, PipesModule] }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [AvatarComponent],
|
|
15
|
+
imports: [CommonModule, PipesModule],
|
|
16
|
+
exports: [AvatarComponent],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWxheW91dC9zcmMvbGliL3NoYXJlZC91aS1raXQvYXZhdGFyL2F2YXRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFPdEQsTUFBTSxPQUFPLFlBQVk7K0dBQVosWUFBWTtnSEFBWixZQUFZLGlCQUpSLGVBQWUsYUFDcEIsWUFBWSxFQUFFLFdBQVcsYUFDekIsZUFBZTtnSEFFZCxZQUFZLFlBSGIsWUFBWSxFQUFFLFdBQVc7OzRGQUd4QixZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDL0IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL3BpcGUvcGlwZXMubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbQXZhdGFyQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQaXBlc01vZHVsZV0sXHJcbiAgZXhwb3J0czogW0F2YXRhckNvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdmF0YXJNb2R1bGUge31cclxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component, forwardRef } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
const CHECKBOX_VALUE_ACCESSOR = {
|
|
6
|
+
provide: NG_VALUE_ACCESSOR,
|
|
7
|
+
useExisting: forwardRef(() => CheckboxComponent),
|
|
8
|
+
multi: true,
|
|
9
|
+
};
|
|
10
|
+
export class CheckboxComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.onChanged = (value) => { };
|
|
13
|
+
this.onTouched = () => { };
|
|
14
|
+
}
|
|
15
|
+
writeValue(value) {
|
|
16
|
+
this.checked = value ?? false;
|
|
17
|
+
}
|
|
18
|
+
registerOnChange(fn) {
|
|
19
|
+
this.onChanged = fn;
|
|
20
|
+
}
|
|
21
|
+
registerOnTouched(fn) {
|
|
22
|
+
this.onTouched = fn;
|
|
23
|
+
}
|
|
24
|
+
setDisabledState(isDisabled) {
|
|
25
|
+
this.disabled = isDisabled;
|
|
26
|
+
}
|
|
27
|
+
valueChanged() {
|
|
28
|
+
this.checked = !this.checked;
|
|
29
|
+
this.onChanged(this.checked);
|
|
30
|
+
this.onTouched();
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckboxComponent, selector: "vui-checkbox", inputs: { disabled: "disabled", checked: "checked", indeterminateEnabled: "indeterminateEnabled" }, providers: [CHECKBOX_VALUE_ACCESSOR], ngImport: i0, template: "<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\r\n <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"valueChanged()\"/>\r\n <span class=\"checkbox\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <!-- svg for checkmark -->\r\n <ng-container *ngIf=\"!indeterminateEnabled\">\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"indeterminateEnabled\">\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path fill=\"none\" d=\"M37.9,27H14v-2h23.9V27z\"/>\r\n </svg>\r\n </ng-container>\r\n \r\n <span class=\"value\"><ng-content></ng-content></span>\r\n </label>\r\n ", styles: ["label.checkbox-item{display:inline-flex;align-items:center;cursor:pointer;margin:0;width:100%;position:relative;padding:0 0 0 16px}label.checkbox-item span{display:inline-flex;align-items:center;justify-content:center}label.checkbox-item span.checkbox{height:16px;width:16px;border-radius:2px;border:1px solid #dbdbdb;position:absolute;top:0;left:0;padding:2px;margin-top:0}label.checkbox-item span.value{color:#4e4e4e;font-size:14px;line-height:16px;font-weight:400;margin-left:10px;max-width:calc(100% - 26px);-webkit-user-select:none;user-select:none}label.checkbox-item span.value:empty{display:none}label.checkbox-item svg{display:none;margin-top:0}label.checkbox-item input[type=checkbox]{display:none}label.checkbox-item input[type=checkbox]:checked~svg{display:block}label.checkbox-item input[type=checkbox]:checked+.checkbox{display:none}label.checkbox-item input[type=checkbox]:disabled~*{opacity:.7;pointer-events:none}.disabled{opacity:.4!important;pointer-events:none}.checkmark{width:16px;height:16px;border-radius:2px;position:absolute;top:0;left:0;stroke-width:4;stroke:#fff;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.checkmark__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.checkmark__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}@keyframes stroke{to{stroke-dashoffset:0}}@keyframes scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px #34aa44}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'vui-checkbox', providers: [CHECKBOX_VALUE_ACCESSOR], inputs: ['disabled', 'checked', 'indeterminateEnabled'], template: "<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\r\n <input type=\"checkbox\" [checked]=\"checked\" [disabled]=\"disabled\" (change)=\"valueChanged()\"/>\r\n <span class=\"checkbox\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <!-- svg for checkmark -->\r\n <ng-container *ngIf=\"!indeterminateEnabled\">\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"indeterminateEnabled\">\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path fill=\"none\" d=\"M37.9,27H14v-2h23.9V27z\"/>\r\n </svg>\r\n </ng-container>\r\n \r\n <span class=\"value\"><ng-content></ng-content></span>\r\n </label>\r\n ", styles: ["label.checkbox-item{display:inline-flex;align-items:center;cursor:pointer;margin:0;width:100%;position:relative;padding:0 0 0 16px}label.checkbox-item span{display:inline-flex;align-items:center;justify-content:center}label.checkbox-item span.checkbox{height:16px;width:16px;border-radius:2px;border:1px solid #dbdbdb;position:absolute;top:0;left:0;padding:2px;margin-top:0}label.checkbox-item span.value{color:#4e4e4e;font-size:14px;line-height:16px;font-weight:400;margin-left:10px;max-width:calc(100% - 26px);-webkit-user-select:none;user-select:none}label.checkbox-item span.value:empty{display:none}label.checkbox-item svg{display:none;margin-top:0}label.checkbox-item input[type=checkbox]{display:none}label.checkbox-item input[type=checkbox]:checked~svg{display:block}label.checkbox-item input[type=checkbox]:checked+.checkbox{display:none}label.checkbox-item input[type=checkbox]:disabled~*{opacity:.7;pointer-events:none}.disabled{opacity:.4!important;pointer-events:none}.checkmark{width:16px;height:16px;border-radius:2px;position:absolute;top:0;left:0;stroke-width:4;stroke:#fff;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.checkmark__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.checkmark__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}@keyframes stroke{to{stroke-dashoffset:0}}@keyframes scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px #34aa44}}\n"] }]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvc2hhcmVkL3VpLWtpdC9mb3JtZ3JvdXAvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvc2hhcmVkL3VpLWtpdC9mb3JtZ3JvdXAvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFekUsTUFBTSx1QkFBdUIsR0FBYTtJQUN4QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBVUYsTUFBTSxPQUFPLGlCQUFpQjtJQVI5QjtRQVlFLGNBQVMsR0FBRyxDQUFDLEtBQVMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7S0FvQnRCO0lBbEJDLFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQTtJQUMvQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUNELFlBQVk7UUFFVixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzsrR0F4QlUsaUJBQWlCO21HQUFqQixpQkFBaUIsMklBSmpCLENBQUMsdUJBQXVCLENBQUMsMEJDZnRDLDZtQ0FzQkU7OzRGREhXLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxjQUFjLGFBR2IsQ0FBQyx1QkFBdUIsQ0FBQyxVQUM3QixDQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuY29uc3QgQ0hFQ0tCT1hfVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94Q29tcG9uZW50KSxcclxuICBtdWx0aTogdHJ1ZSxcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndnVpLWNoZWNrYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ0hFQ0tCT1hfVkFMVUVfQUNDRVNTT1JdLFxyXG4gIGlucHV0czpbJ2Rpc2FibGVkJywnY2hlY2tlZCcsJ2luZGV0ZXJtaW5hdGVFbmFibGVkJ10sXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvcntcclxuICBkaXNhYmxlZCAhOmJvb2xlYW4gfCBhbnk7XHJcbiAgY2hlY2tlZCAhOmJvb2xlYW4gfCBhbnk7XHJcbiAgaW5kZXRlcm1pbmF0ZUVuYWJsZWQgITpib29sZWFuIHwgYW55O1xyXG4gIG9uQ2hhbmdlZCA9ICh2YWx1ZTphbnkpID0+IHt9O1xyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrZWQgPSB2YWx1ZSA/PyBmYWxzZVxyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VkID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG4gIHZhbHVlQ2hhbmdlZCgpe1xyXG4gXHJcbiAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xyXG4gICAgdGhpcy5vbkNoYW5nZWQodGhpcy5jaGVja2VkKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxsYWJlbCBjbGFzcz1cImNoZWNrYm94LWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJjaGVja2VkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQoKVwiLz5cclxuICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tib3hcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpbm5lclwiPjwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICAgIDwhLS0gc3ZnIGZvciBjaGVja21hcmsgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWluZGV0ZXJtaW5hdGVFbmFibGVkXCI+XHJcbiAgICAgICAgPHN2ZyAgY2xhc3M9XCJjaGVja21hcmtcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2ttYXJrX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja21hcmtfX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICBcclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmRldGVybWluYXRlRW5hYmxlZFwiPlxyXG4gICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja21hcmtcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2ttYXJrX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZmlsbD1cIm5vbmVcIiBkPVwiTTM3LjksMjdIMTR2LTJoMjMuOVYyN3pcIi8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gXHJcbiAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG4gICJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ClickOutsideDirective {
|
|
4
|
+
constructor(elementRef) {
|
|
5
|
+
this.elementRef = elementRef;
|
|
6
|
+
this.clickOutside = new EventEmitter();
|
|
7
|
+
}
|
|
8
|
+
onMouseEnter(targetElement) {
|
|
9
|
+
const clickedInside = this.elementRef.nativeElement.contains(targetElement);
|
|
10
|
+
if (!clickedInside) {
|
|
11
|
+
this.clickOutside.emit(null);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
15
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onMouseEnter($event.target)" } }, ngImport: i0 }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClickOutsideDirective, decorators: [{
|
|
18
|
+
type: Directive,
|
|
19
|
+
args: [{
|
|
20
|
+
selector: '[clickOutside]',
|
|
21
|
+
}]
|
|
22
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { clickOutside: [{
|
|
23
|
+
type: Output,
|
|
24
|
+
args: ['clickOutside']
|
|
25
|
+
}], onMouseEnter: [{
|
|
26
|
+
type: HostListener,
|
|
27
|
+
args: ['document:click', ['$event.target']]
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1sYXlvdXQvc3JjL2xpYi9zaGFyZWQvdWkta2l0L2Zvcm1ncm91cC9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUsxRixNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDbEIsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQURoQyxDQUFDO0lBR0ssWUFBWSxDQUFDLGFBQWtCO1FBQ2hGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzsrR0FUVSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjtpR0FHeUIsWUFBWTtzQkFBbkMsTUFBTTt1QkFBQyxjQUFjO2dCQUU2QixZQUFZO3NCQUE5RCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjbGlja091dHNpZGVdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxyXG4gIEBPdXRwdXQoJ2NsaWNrT3V0c2lkZScpIGNsaWNrT3V0c2lkZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pIG9uTW91c2VFbnRlcih0YXJnZXRFbGVtZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xyXG4gICAgICB0aGlzLmNsaWNrT3V0c2lkZS5lbWl0KG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/forms";
|
|
4
|
+
export class CsCheckboxComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.disabled = false;
|
|
7
|
+
this.ngValueChange = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() { }
|
|
10
|
+
valueChanged() {
|
|
11
|
+
this.ngValueChange.emit(this.ngValue);
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CsCheckboxComponent, selector: "app-cs-checkbox", inputs: { disabled: "disabled", ngValue: "ngValue", value: "value" }, outputs: { ngValueChange: "ngValueChange" }, ngImport: i0, template: "<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\r\n <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\r\n <span class=\"checkbox\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n <span class=\"value\"><ng-content></ng-content></span>\r\n</label>\r\n", styles: ["label.checkbox-item{display:inline-flex;align-items:center;cursor:pointer;margin:0;padding:0;max-width:100%}label.checkbox-item span{display:inline-flex;align-items:center;justify-content:center}label.checkbox-item span.checkbox{height:16px;width:16px;border-radius:2px;border:1px solid #dbdbdb;position:relative;padding:2px;margin-top:0}label.checkbox-item span.value{color:#4e4e4e;font-size:14px;line-height:16px;font-weight:400;margin-left:10px;max-width:calc(100% - 26px)}label.checkbox-item span.value:empty{display:none}label.checkbox-item svg{display:none;margin-top:0}label.checkbox-item input[type=checkbox]{display:none}label.checkbox-item input[type=checkbox]:checked~svg{display:block}label.checkbox-item input[type=checkbox]:checked+.checkbox{display:none}label.checkbox-item input[type=checkbox]:disabled~*{opacity:.7}.disabled{opacity:.4!important}.checkmark{width:16px;height:16px;border-radius:2px;stroke-width:4;stroke:#fff;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.checkmark__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.checkmark__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}@keyframes stroke{to{stroke-dashoffset:0}}@keyframes scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px #34aa44}}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsCheckboxComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'app-cs-checkbox', template: "<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\r\n <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\r\n <span class=\"checkbox\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkmark__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n <span class=\"value\"><ng-content></ng-content></span>\r\n</label>\r\n", styles: ["label.checkbox-item{display:inline-flex;align-items:center;cursor:pointer;margin:0;padding:0;max-width:100%}label.checkbox-item span{display:inline-flex;align-items:center;justify-content:center}label.checkbox-item span.checkbox{height:16px;width:16px;border-radius:2px;border:1px solid #dbdbdb;position:relative;padding:2px;margin-top:0}label.checkbox-item span.value{color:#4e4e4e;font-size:14px;line-height:16px;font-weight:400;margin-left:10px;max-width:calc(100% - 26px)}label.checkbox-item span.value:empty{display:none}label.checkbox-item svg{display:none;margin-top:0}label.checkbox-item input[type=checkbox]{display:none}label.checkbox-item input[type=checkbox]:checked~svg{display:block}label.checkbox-item input[type=checkbox]:checked+.checkbox{display:none}label.checkbox-item input[type=checkbox]:disabled~*{opacity:.7}.disabled{opacity:.4!important}.checkmark{width:16px;height:16px;border-radius:2px;stroke-width:4;stroke:#fff;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.checkmark__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.checkmark__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}@keyframes stroke{to{stroke-dashoffset:0}}@keyframes scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px #34aa44}}\n"] }]
|
|
19
|
+
}], ctorParameters: function () { return []; }, propDecorators: { disabled: [{
|
|
20
|
+
type: Input
|
|
21
|
+
}], ngValue: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], value: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], ngValueChange: [{
|
|
26
|
+
type: Output
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3MtY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvc2hhcmVkL3VpLWtpdC9mb3JtZ3JvdXAvY3MtY2hlY2tib3gvY3MtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvc2hhcmVkL3VpLWtpdC9mb3JtZ3JvdXAvY3MtY2hlY2tib3gvY3MtY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8xRixNQUFNLE9BQU8sbUJBQW1CO0lBSzlCO1FBSlMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdoQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQztJQUNuQixZQUFZO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBVlUsbUJBQW1CO21HQUFuQixtQkFBbUIsMEtDUGhDLDRuQkFXQTs7NEZESmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjswRUFLbEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNzLWNoZWNrYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3MtY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NzLWNoZWNrYm94LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDc0NoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG5nVmFsdWUhOiBhbnk7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICBAT3V0cHV0KCkgbmdWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG4gIHZhbHVlQ2hhbmdlZCgpIHtcclxuICAgIHRoaXMubmdWYWx1ZUNoYW5nZS5lbWl0KHRoaXMubmdWYWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxsYWJlbCBjbGFzcz1cImNoZWNrYm94LWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW25hbWVdPVwidmFsdWVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbKG5nTW9kZWwpXT1cIm5nVmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQoKVwiIC8+XHJcbiAgPHNwYW4gY2xhc3M9XCJjaGVja2JveFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpbm5lclwiPjwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbiAgPHN2ZyBjbGFzcz1cImNoZWNrbWFya1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2ttYXJrX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgIDxwYXRoIGNsYXNzPVwiY2hlY2ttYXJrX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gIDwvc3ZnPlxyXG4gIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxyXG48L2xhYmVsPlxyXG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/forms";
|
|
4
|
+
export class CsCheckboxIndeterminateComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.ngValueChange = new EventEmitter();
|
|
7
|
+
}
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
}
|
|
10
|
+
valueChanged() {
|
|
11
|
+
const emitValue = {
|
|
12
|
+
value: this.value,
|
|
13
|
+
checked: this.ngValue
|
|
14
|
+
};
|
|
15
|
+
this.ngValueChange.emit(emitValue);
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsCheckboxIndeterminateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CsCheckboxIndeterminateComponent, selector: "app-cs-checkbox-indeterminate", inputs: { disabled: "disabled", ngValue: "ngValue", value: "value" }, outputs: { ngValueChange: "ngValueChange" }, ngImport: i0, template: "<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\r\n <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\r\n <span class=\"checkbox\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path fill=\"none\" d=\"M37.9,27H14v-2h23.9V27z\"/>\r\n </svg>\r\n <span class=\"value\"><ng-content></ng-content></span>\r\n </label>\r\n ", styles: ["label.checkbox-item{display:inline-flex;align-items:center;cursor:pointer;margin:0;max-width:100%;position:relative;padding:0 0 0 28px}label.checkbox-item span{display:inline-flex;align-items:center;justify-content:center}label.checkbox-item span.checkbox{height:16px;width:16px;border-radius:2px;border:1px solid #dbdbdb;position:absolute;left:0;top:0;padding:2px;margin-top:0}label.checkbox-item span.value{display:block;color:#747576;font-size:14px;line-height:16px;font-weight:400;max-width:calc(100% - 26px)}label.checkbox-item span.value:empty{display:none}label.checkbox-item svg{display:none;margin-top:0}label.checkbox-item input[type=checkbox]{display:none}label.checkbox-item input[type=checkbox]:checked~svg{display:block}label.checkbox-item input[type=checkbox]:checked+.checkbox{display:none}label.checkbox-item input[type=checkbox]:disabled~*{opacity:.7}.disabled{opacity:.4!important}.checkmark{position:absolute;left:0;top:0;width:16px;height:16px;border-radius:2px;stroke-width:4;stroke:#fff;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.checkmark__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.checkmark__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}@keyframes stroke{to{stroke-dashoffset:0}}@keyframes scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px #34aa44}}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsCheckboxIndeterminateComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'app-cs-checkbox-indeterminate', template: "<label class=\"checkbox-item\" [class.disabled]=\"disabled\">\r\n <input type=\"checkbox\" [name]=\"value\" [disabled]=\"disabled\" [(ngModel)]=\"ngValue\" (ngModelChange)=\"valueChanged()\" />\r\n <span class=\"checkbox\">\r\n <span class=\"inner\"></span>\r\n </span>\r\n <svg class=\"checkmark\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkmark__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path fill=\"none\" d=\"M37.9,27H14v-2h23.9V27z\"/>\r\n </svg>\r\n <span class=\"value\"><ng-content></ng-content></span>\r\n </label>\r\n ", styles: ["label.checkbox-item{display:inline-flex;align-items:center;cursor:pointer;margin:0;max-width:100%;position:relative;padding:0 0 0 28px}label.checkbox-item span{display:inline-flex;align-items:center;justify-content:center}label.checkbox-item span.checkbox{height:16px;width:16px;border-radius:2px;border:1px solid #dbdbdb;position:absolute;left:0;top:0;padding:2px;margin-top:0}label.checkbox-item span.value{display:block;color:#747576;font-size:14px;line-height:16px;font-weight:400;max-width:calc(100% - 26px)}label.checkbox-item span.value:empty{display:none}label.checkbox-item svg{display:none;margin-top:0}label.checkbox-item input[type=checkbox]{display:none}label.checkbox-item input[type=checkbox]:checked~svg{display:block}label.checkbox-item input[type=checkbox]:checked+.checkbox{display:none}label.checkbox-item input[type=checkbox]:disabled~*{opacity:.7}.disabled{opacity:.4!important}.checkmark{position:absolute;left:0;top:0;width:16px;height:16px;border-radius:2px;stroke-width:4;stroke:#fff;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fill .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both}.checkmark__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:stroke .6s cubic-bezier(.65,0,.45,1) forwards}.checkmark__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:stroke .3s cubic-bezier(.65,0,.45,1) .8s forwards}@keyframes stroke{to{stroke-dashoffset:0}}@keyframes scale{0%,to{transform:none}50%{transform:scale3d(1.1,1.1,1)}}@keyframes fill{to{box-shadow:inset 0 0 0 30px #34aa44}}\n"] }]
|
|
23
|
+
}], ctorParameters: function () { return []; }, propDecorators: { disabled: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], ngValue: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], value: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], ngValueChange: [{
|
|
30
|
+
type: Output
|
|
31
|
+
}] } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3MtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1sYXlvdXQvc3JjL2xpYi9zaGFyZWQvdWkta2l0L2Zvcm1ncm91cC9jcy1jaGVja2JveC1pbmRldGVybWluYXRlL2NzLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtbGF5b3V0L3NyYy9saWIvc2hhcmVkL3VpLWtpdC9mb3JtZ3JvdXAvY3MtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS9jcy1jaGVja2JveC1pbmRldGVybWluYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8vRSxNQUFNLE9BQU8sZ0NBQWdDO0lBTTNDO1FBRlUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRWxDLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFDRCxZQUFZO1FBQ1YsTUFBTSxTQUFTLEdBQUc7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFBO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0FoQlUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0Msd0xDUDdDLGluQkFXRTs7NEZESlcsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLCtCQUErQjswRUFLaEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jcy1jaGVja2JveC1pbmRldGVybWluYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3MtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3MtY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDc0NoZWNrYm94SW5kZXRlcm1pbmF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG5nVmFsdWU6IGFueTtcclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIEBPdXRwdXQoKSBuZ1ZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuICB2YWx1ZUNoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBlbWl0VmFsdWUgPSB7XHJcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxyXG4gICAgICBjaGVja2VkOiB0aGlzLm5nVmFsdWVcclxuICAgIH1cclxuICAgIHRoaXMubmdWYWx1ZUNoYW5nZS5lbWl0KGVtaXRWYWx1ZSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bGFiZWwgY2xhc3M9XCJjaGVja2JveC1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW25hbWVdPVwidmFsdWVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbKG5nTW9kZWwpXT1cIm5nVmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZWQoKVwiIC8+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNoZWNrYm94XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaW5uZXJcIj48L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8c3ZnIGNsYXNzPVwiY2hlY2ttYXJrXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrbWFya19fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgIDxwYXRoIGZpbGw9XCJub25lXCIgZD1cIk0zNy45LDI3SDE0di0yaDIzLjlWMjd6XCIvPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG4gICJdfQ==
|