vc-error-handlers 0.1.98 → 0.1.99

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 (87) hide show
  1. package/environments/environment.d.ts +39 -39
  2. package/{esm2020 → esm2022}/environments/environment.mjs +74 -74
  3. package/{esm2020 → esm2022}/lib/configuration.mjs +5 -5
  4. package/{esm2020 → esm2022}/lib/featureFlag/feature-flag.directive.mjs +27 -27
  5. package/esm2022/lib/featureFlag/feature-flag.module.mjs +20 -0
  6. package/{esm2020 → esm2022}/lib/featureFlag/feature-flag.service.mjs +95 -95
  7. package/{esm2020 → esm2022}/lib/shared/components/chunk-unavailable/chunk-unavailable.component.mjs +35 -35
  8. package/esm2022/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +65 -0
  9. package/{esm2020 → esm2022}/lib/shared/components/error-modal/error-modal.component.mjs +45 -45
  10. package/esm2022/lib/shared/components/page-not-found/page-not-found.component.mjs +92 -0
  11. package/esm2022/lib/shared/components/server-error/server-error.component.mjs +83 -0
  12. package/{esm2020 → esm2022}/lib/shared/components/session-expired/session-expired.component.mjs +35 -35
  13. package/esm2022/lib/shared/components/unauthorized/unauthorized.component.mjs +103 -0
  14. package/{esm2020 → esm2022}/lib/shared/constants/api-config.constants.mjs +239 -239
  15. package/{esm2020 → esm2022}/lib/shared/constants/error-handling.constants.mjs +62 -62
  16. package/{esm2020 → esm2022}/lib/shared/errorhandler/chunk-error.handler.mjs +18 -18
  17. package/{esm2020 → esm2022}/lib/shared/errorhandler/sentry-error.handler.mjs +47 -47
  18. package/{esm2020 → esm2022}/lib/shared/interceptors/http.interceptor.mjs +35 -35
  19. package/{esm2020 → esm2022}/lib/shared/services/global-error.service.mjs +115 -115
  20. package/{esm2020 → esm2022}/lib/shared/services/router.service.mjs +19 -19
  21. package/{esm2020 → esm2022}/lib/shared/services/util.service.mjs +48 -48
  22. package/{esm2020 → esm2022}/lib/shared/types/global-error.types.mjs +15 -15
  23. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-config.mjs +2 -2
  24. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +15 -0
  25. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-ref.mjs +12 -12
  26. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.component.mjs +85 -85
  27. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +21 -0
  28. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.service.mjs +52 -52
  29. package/{esm2020 → esm2022}/lib/ui-kit/dialog/insertion.directive.mjs +16 -16
  30. package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +50 -50
  31. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
  32. package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -32
  33. package/{esm2020 → esm2022}/lib/vc-error-handlers.component.mjs +85 -85
  34. package/esm2022/lib/vc-error-handlers.module.mjs +84 -0
  35. package/{esm2020 → esm2022}/lib/vc-error-handlers.service.mjs +14 -14
  36. package/{esm2020 → esm2022}/public-api.mjs +16 -16
  37. package/{esm2020 → esm2022}/vc-error-handlers.mjs +4 -4
  38. package/{fesm2020 → fesm2022}/vc-error-handlers.mjs +1355 -1357
  39. package/fesm2022/vc-error-handlers.mjs.map +1 -0
  40. package/{vc-error-handlers.d.ts → index.d.ts} +5 -5
  41. package/lib/configuration.d.ts +4 -4
  42. package/lib/featureFlag/feature-flag.directive.d.ts +13 -13
  43. package/lib/featureFlag/feature-flag.module.d.ts +8 -8
  44. package/lib/featureFlag/feature-flag.service.d.ts +19 -19
  45. package/lib/shared/components/chunk-unavailable/chunk-unavailable.component.d.ts +20 -20
  46. package/lib/shared/components/component-level-server-error/component-level-server-error.component.d.ts +19 -19
  47. package/lib/shared/components/error-modal/error-modal.component.d.ts +21 -21
  48. package/lib/shared/components/page-not-found/page-not-found.component.d.ts +23 -23
  49. package/lib/shared/components/server-error/server-error.component.d.ts +19 -19
  50. package/lib/shared/components/session-expired/session-expired.component.d.ts +20 -20
  51. package/lib/shared/components/unauthorized/unauthorized.component.d.ts +23 -23
  52. package/lib/shared/constants/api-config.constants.d.ts +20 -20
  53. package/lib/shared/constants/error-handling.constants.d.ts +62 -62
  54. package/lib/shared/errorhandler/chunk-error.handler.d.ts +7 -7
  55. package/lib/shared/errorhandler/sentry-error.handler.d.ts +14 -14
  56. package/lib/shared/interceptors/http.interceptor.d.ts +13 -13
  57. package/lib/shared/services/global-error.service.d.ts +31 -31
  58. package/lib/shared/services/router.service.d.ts +6 -6
  59. package/lib/shared/services/util.service.d.ts +15 -15
  60. package/lib/shared/types/global-error.types.d.ts +27 -27
  61. package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
  62. package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
  63. package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
  64. package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
  65. package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
  66. package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
  67. package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
  68. package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +20 -20
  69. package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
  70. package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +11 -11
  71. package/lib/vc-error-handlers.component.d.ts +26 -26
  72. package/lib/vc-error-handlers.module.d.ts +26 -26
  73. package/lib/vc-error-handlers.service.d.ts +6 -6
  74. package/package.json +7 -13
  75. package/public-api.d.ts +13 -13
  76. package/esm2020/lib/featureFlag/feature-flag.module.mjs +0 -22
  77. package/esm2020/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +0 -64
  78. package/esm2020/lib/shared/components/page-not-found/page-not-found.component.mjs +0 -91
  79. package/esm2020/lib/shared/components/server-error/server-error.component.mjs +0 -82
  80. package/esm2020/lib/shared/components/unauthorized/unauthorized.component.mjs +0 -102
  81. package/esm2020/lib/ui-kit/dialog/dialog-injector.mjs +0 -15
  82. package/esm2020/lib/ui-kit/dialog/dialog.module.mjs +0 -21
  83. package/esm2020/lib/ui-kit/snack-bar/snack-bar.module.mjs +0 -18
  84. package/esm2020/lib/vc-error-handlers.module.mjs +0 -84
  85. package/fesm2015/vc-error-handlers.mjs +0 -1679
  86. package/fesm2015/vc-error-handlers.mjs.map +0 -1
  87. package/fesm2020/vc-error-handlers.mjs.map +0 -1
@@ -1,39 +1,39 @@
1
- export declare const environment: {
2
- production: boolean;
3
- appUrl: string;
4
- apiBaseUrl: string;
5
- authEndpoint: string;
6
- orgEndpoint_TL: string;
7
- s3Url: string;
8
- s3BucketUrl: string;
9
- s3Bucket: string;
10
- profile: string;
11
- assessmentEnpoint: string;
12
- organizationPost: string;
13
- organizationGet: string;
14
- complianceGet: string;
15
- compliancePost: string;
16
- fileUploadEndPoint: string;
17
- assuranceGet: string;
18
- policyGet: string;
19
- saveDoc: string;
20
- docxUpload: string;
21
- fileUpload: string;
22
- policyPost: string;
23
- policyPut: string;
24
- responsibilityPost: string;
25
- linkDoc: string;
26
- linkPdf: string;
27
- assuranceApi: string;
28
- assurance: string;
29
- programEndpoint: string;
30
- risk: string;
31
- risk_put: string;
32
- riskPdfPost: string;
33
- riskPost: string;
34
- riskGet: string;
35
- baseUrl: string;
36
- grc_get: string;
37
- leftMenuLogo: string;
38
- vLoader: string;
39
- };
1
+ export declare const environment: {
2
+ production: boolean;
3
+ appUrl: string;
4
+ apiBaseUrl: string;
5
+ authEndpoint: string;
6
+ orgEndpoint_TL: string;
7
+ s3Url: string;
8
+ s3BucketUrl: string;
9
+ s3Bucket: string;
10
+ profile: string;
11
+ assessmentEnpoint: string;
12
+ organizationPost: string;
13
+ organizationGet: string;
14
+ complianceGet: string;
15
+ compliancePost: string;
16
+ fileUploadEndPoint: string;
17
+ assuranceGet: string;
18
+ policyGet: string;
19
+ saveDoc: string;
20
+ docxUpload: string;
21
+ fileUpload: string;
22
+ policyPost: string;
23
+ policyPut: string;
24
+ responsibilityPost: string;
25
+ linkDoc: string;
26
+ linkPdf: string;
27
+ assuranceApi: string;
28
+ assurance: string;
29
+ programEndpoint: string;
30
+ risk: string;
31
+ risk_put: string;
32
+ riskPdfPost: string;
33
+ riskPost: string;
34
+ riskGet: string;
35
+ baseUrl: string;
36
+ grc_get: string;
37
+ leftMenuLogo: string;
38
+ vLoader: string;
39
+ };
@@ -1,75 +1,75 @@
1
- // This file can be replaced during build by using the `fileReplacements` array.
2
- // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
3
- // The list of file replacements can be found in `angular.json`.
4
- let domainName = 'devapi.v-comply.com';
5
- let apiBaseUrl = 'https://api-uat1.v-comply.com';
6
- switch (window.location.host) {
7
- case 'dev.v-comply.com':
8
- domainName = 'devapi.v-comply.com';
9
- apiBaseUrl = 'https://api-uat1.v-comply.com';
10
- break;
11
- case 'beta.v-comply.com':
12
- domainName = 'betaapi.v-comply.com';
13
- apiBaseUrl = 'https://api-staging.v-comply.com';
14
- break;
15
- case 'test.v-comply.com':
16
- domainName = 'devapi.v-comply.com';
17
- break;
18
- case 'eu.v-comply.com':
19
- domainName = 'euapi.v-comply.com';
20
- break;
21
- default:
22
- domainName = 'api.v-comply.com';
23
- break;
24
- }
25
- const PORT_EDITOR = 8081;
26
- const PORT_CONTENT_SAVE = 8834;
27
- let endPoint = 'https://devapi.v-comply.com/';
28
- export const environment = {
29
- production: false,
30
- appUrl: 'http://localhost:4200/',
31
- apiBaseUrl: 'https://api-uat1.v-comply.com',
32
- authEndpoint: `${endPoint}VcomplyAuth/`,
33
- orgEndpoint_TL: `${endPoint}organization_pwt/?mode=`,
34
- s3Url: '',
35
- s3BucketUrl: `${endPoint}globals?mode=bucket`,
36
- s3Bucket: '',
37
- profile: '/profile_pic/thumb/',
38
- assessmentEnpoint: `${endPoint}Assessment/?mode=`,
39
- organizationPost: `${endPoint}organization_post/?mode=`,
40
- organizationGet: `${endPoint}organization/?mode=`,
41
- complianceGet: `${endPoint}compliance/?mode=`,
42
- compliancePost: `${endPoint}compliance_post/?mode=`,
43
- fileUploadEndPoint: 'https://upload-uat1.v-comply.com/fileupload/?destination=',
44
- assuranceGet: `${endPoint}assurance/?mode=`,
45
- policyGet: `${endPoint}policy/?mode=`,
46
- saveDoc: 'https://dev-node.v-comply.com/saveContent?bypass-token=true&id=',
47
- docxUpload: 'https://dev-node.v-comply.com/ImportDocument',
48
- fileUpload: 'https://dev-node.v-comply.com/importFiles',
49
- policyPost: `${endPoint}policy_post/?mode=`,
50
- policyPut: `${endPoint}policy_put/?mode=`,
51
- responsibilityPost: `${endPoint}responsibilities_post/?mode=`,
52
- linkDoc: 'https://dev-node.v-comply.com' + '/ImportDocument',
53
- linkPdf: 'https://dev-node.v-comply.com' + '/extractDocs',
54
- assuranceApi: 'https://devapi.v-comply.com/Assurance/',
55
- assurance: 'https://devapi.v-comply.com/Assurance/',
56
- programEndpoint: 'https://devapi.v-comply.com/program',
57
- risk: 'https://devapi.v-comply.com/risk/?mode=',
58
- risk_put: 'https://devapi.v-comply.com/risk_put/?mode=',
59
- riskPdfPost: 'https://devapi.v-comply.com/risk_pdf_post?mode=',
60
- riskPost: 'https://devapi.v-comply.com/risk_post/?mode=',
61
- riskGet: 'https://devapi.v-comply.com/risk/?mode=',
62
- baseUrl: 'https://devapi.v-comply.com/',
63
- grc_get: 'https://devapi.v-comply.com/grc_object/?mode=',
64
- leftMenuLogo: 'https://cdn.v-comply.com/logo/prod/v-logo.svg?v=1.0',
65
- vLoader: 'https://cdn.v-comply.com/logo/prod/v-icon-loader.svg?v=1.0',
66
- };
67
- /*
68
- * For easier debugging in development mode, you can import the following file
69
- * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
70
- *
71
- * This import should be commented out in production mode because it will have a negative impact
72
- * on performance if an error is thrown.
73
- */
74
- // import 'zone.js/plugins/zone-error'; // Included with Angular CLI.
1
+ // This file can be replaced during build by using the `fileReplacements` array.
2
+ // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
3
+ // The list of file replacements can be found in `angular.json`.
4
+ let domainName = 'devapi.v-comply.com';
5
+ let apiBaseUrl = 'https://api-uat1.v-comply.com';
6
+ switch (window.location.host) {
7
+ case 'dev.v-comply.com':
8
+ domainName = 'devapi.v-comply.com';
9
+ apiBaseUrl = 'https://api-uat1.v-comply.com';
10
+ break;
11
+ case 'beta.v-comply.com':
12
+ domainName = 'betaapi.v-comply.com';
13
+ apiBaseUrl = 'https://api-staging.v-comply.com';
14
+ break;
15
+ case 'test.v-comply.com':
16
+ domainName = 'devapi.v-comply.com';
17
+ break;
18
+ case 'eu.v-comply.com':
19
+ domainName = 'euapi.v-comply.com';
20
+ break;
21
+ default:
22
+ domainName = 'api.v-comply.com';
23
+ break;
24
+ }
25
+ const PORT_EDITOR = 8081;
26
+ const PORT_CONTENT_SAVE = 8834;
27
+ let endPoint = 'https://devapi.v-comply.com/';
28
+ export const environment = {
29
+ production: false,
30
+ appUrl: 'http://localhost:4200/',
31
+ apiBaseUrl: 'https://api-uat1.v-comply.com',
32
+ authEndpoint: `${endPoint}VcomplyAuth/`,
33
+ orgEndpoint_TL: `${endPoint}organization_pwt/?mode=`,
34
+ s3Url: '',
35
+ s3BucketUrl: `${endPoint}globals?mode=bucket`,
36
+ s3Bucket: '',
37
+ profile: '/profile_pic/thumb/',
38
+ assessmentEnpoint: `${endPoint}Assessment/?mode=`,
39
+ organizationPost: `${endPoint}organization_post/?mode=`,
40
+ organizationGet: `${endPoint}organization/?mode=`,
41
+ complianceGet: `${endPoint}compliance/?mode=`,
42
+ compliancePost: `${endPoint}compliance_post/?mode=`,
43
+ fileUploadEndPoint: 'https://upload-uat1.v-comply.com/fileupload/?destination=',
44
+ assuranceGet: `${endPoint}assurance/?mode=`,
45
+ policyGet: `${endPoint}policy/?mode=`,
46
+ saveDoc: 'https://dev-node.v-comply.com/saveContent?bypass-token=true&id=',
47
+ docxUpload: 'https://dev-node.v-comply.com/ImportDocument',
48
+ fileUpload: 'https://dev-node.v-comply.com/importFiles',
49
+ policyPost: `${endPoint}policy_post/?mode=`,
50
+ policyPut: `${endPoint}policy_put/?mode=`,
51
+ responsibilityPost: `${endPoint}responsibilities_post/?mode=`,
52
+ linkDoc: 'https://dev-node.v-comply.com' + '/ImportDocument',
53
+ linkPdf: 'https://dev-node.v-comply.com' + '/extractDocs',
54
+ assuranceApi: 'https://devapi.v-comply.com/Assurance/',
55
+ assurance: 'https://devapi.v-comply.com/Assurance/',
56
+ programEndpoint: 'https://devapi.v-comply.com/program',
57
+ risk: 'https://devapi.v-comply.com/risk/?mode=',
58
+ risk_put: 'https://devapi.v-comply.com/risk_put/?mode=',
59
+ riskPdfPost: 'https://devapi.v-comply.com/risk_pdf_post?mode=',
60
+ riskPost: 'https://devapi.v-comply.com/risk_post/?mode=',
61
+ riskGet: 'https://devapi.v-comply.com/risk/?mode=',
62
+ baseUrl: 'https://devapi.v-comply.com/',
63
+ grc_get: 'https://devapi.v-comply.com/grc_object/?mode=',
64
+ leftMenuLogo: 'https://cdn.v-comply.com/logo/prod/v-logo.svg?v=1.0',
65
+ vLoader: 'https://cdn.v-comply.com/logo/prod/v-icon-loader.svg?v=1.0',
66
+ };
67
+ /*
68
+ * For easier debugging in development mode, you can import the following file
69
+ * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
70
+ *
71
+ * This import should be commented out in production mode because it will have a negative impact
72
+ * on performance if an error is thrown.
73
+ */
74
+ // import 'zone.js/plugins/zone-error'; // Included with Angular CLI.
75
75
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBRWhFLElBQUksVUFBVSxHQUFHLHFCQUFxQixDQUFDO0FBQ3ZDLElBQUksVUFBVSxHQUFHLCtCQUErQixDQUFDO0FBQ2pELFFBQVEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7SUFDNUIsS0FBSyxrQkFBa0I7UUFDckIsVUFBVSxHQUFHLHFCQUFxQixDQUFDO1FBQ25DLFVBQVUsR0FBRywrQkFBK0IsQ0FBQztRQUM3QyxNQUFNO0lBQ1IsS0FBSyxtQkFBbUI7UUFDdEIsVUFBVSxHQUFHLHNCQUFzQixDQUFDO1FBQ3BDLFVBQVUsR0FBRyxrQ0FBa0MsQ0FBQztRQUNoRCxNQUFNO0lBQ1IsS0FBSyxtQkFBbUI7UUFDdEIsVUFBVSxHQUFHLHFCQUFxQixDQUFDO1FBQ25DLE1BQU07SUFDUixLQUFLLGlCQUFpQjtRQUNwQixVQUFVLEdBQUcsb0JBQW9CLENBQUM7UUFDbEMsTUFBTTtJQUNSO1FBQ0UsVUFBVSxHQUFHLGtCQUFrQixDQUFDO1FBQ2hDLE1BQU07Q0FDVDtBQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUN6QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUMvQixJQUFJLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQztBQUM5QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsVUFBVSxFQUFFLEtBQUs7SUFDakIsTUFBTSxFQUFFLHdCQUF3QjtJQUNoQyxVQUFVLEVBQUUsK0JBQStCO0lBQzNDLFlBQVksRUFBRSxHQUFHLFFBQVEsY0FBYztJQUN2QyxjQUFjLEVBQUUsR0FBRyxRQUFRLHlCQUF5QjtJQUNwRCxLQUFLLEVBQUUsRUFBRTtJQUNULFdBQVcsRUFBRSxHQUFHLFFBQVEscUJBQXFCO0lBQzdDLFFBQVEsRUFBRSxFQUFFO0lBQ1osT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixpQkFBaUIsRUFBRSxHQUFHLFFBQVEsbUJBQW1CO0lBQ2pELGdCQUFnQixFQUFFLEdBQUcsUUFBUSwwQkFBMEI7SUFDdkQsZUFBZSxFQUFFLEdBQUcsUUFBUSxxQkFBcUI7SUFDakQsYUFBYSxFQUFFLEdBQUcsUUFBUSxtQkFBbUI7SUFDN0MsY0FBYyxFQUFFLEdBQUcsUUFBUSx3QkFBd0I7SUFDbkQsa0JBQWtCLEVBQ2hCLDJEQUEyRDtJQUM3RCxZQUFZLEVBQUUsR0FBRyxRQUFRLGtCQUFrQjtJQUMzQyxTQUFTLEVBQUUsR0FBRyxRQUFRLGVBQWU7SUFDckMsT0FBTyxFQUFFLGlFQUFpRTtJQUMxRSxVQUFVLEVBQUUsOENBQThDO0lBQzFELFVBQVUsRUFBRSwyQ0FBMkM7SUFDdkQsVUFBVSxFQUFFLEdBQUcsUUFBUSxvQkFBb0I7SUFDM0MsU0FBUyxFQUFFLEdBQUcsUUFBUSxtQkFBbUI7SUFDekMsa0JBQWtCLEVBQUUsR0FBRyxRQUFRLDhCQUE4QjtJQUM3RCxPQUFPLEVBQUUsK0JBQStCLEdBQUcsaUJBQWlCO0lBQzVELE9BQU8sRUFBRSwrQkFBK0IsR0FBRyxjQUFjO0lBQ3pELFlBQVksRUFBRSx3Q0FBd0M7SUFDdEQsU0FBUyxFQUFFLHdDQUF3QztJQUNuRCxlQUFlLEVBQUUscUNBQXFDO0lBQ3RELElBQUksRUFBRSx5Q0FBeUM7SUFDL0MsUUFBUSxFQUFFLDZDQUE2QztJQUN2RCxXQUFXLEVBQUUsaURBQWlEO0lBQzlELFFBQVEsRUFBRSw4Q0FBOEM7SUFDeEQsT0FBTyxFQUFFLHlDQUF5QztJQUNsRCxPQUFPLEVBQUUsOEJBQThCO0lBQ3ZDLE9BQU8sRUFBRSwrQ0FBK0M7SUFDeEQsWUFBWSxFQUFFLHFEQUFxRDtJQUNuRSxPQUFPLEVBQUUsNERBQTREO0NBQ3RFLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxzRUFBc0UiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcGxhY2VkIGR1cmluZyBidWlsZCBieSB1c2luZyB0aGUgYGZpbGVSZXBsYWNlbWVudHNgIGFycmF5LlxyXG4vLyBgbmcgYnVpbGQgLS1wcm9kYCByZXBsYWNlcyBgZW52aXJvbm1lbnQudHNgIHdpdGggYGVudmlyb25tZW50LnByb2QudHNgLlxyXG4vLyBUaGUgbGlzdCBvZiBmaWxlIHJlcGxhY2VtZW50cyBjYW4gYmUgZm91bmQgaW4gYGFuZ3VsYXIuanNvbmAuXHJcblxyXG5sZXQgZG9tYWluTmFtZSA9ICdkZXZhcGkudi1jb21wbHkuY29tJztcclxubGV0IGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGktdWF0MS52LWNvbXBseS5jb20nO1xyXG5zd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5ob3N0KSB7XHJcbiAgY2FzZSAnZGV2LnYtY29tcGx5LmNvbSc6XHJcbiAgICBkb21haW5OYW1lID0gJ2RldmFwaS52LWNvbXBseS5jb20nO1xyXG4gICAgYXBpQmFzZVVybCA9ICdodHRwczovL2FwaS11YXQxLnYtY29tcGx5LmNvbSc7XHJcbiAgICBicmVhaztcclxuICBjYXNlICdiZXRhLnYtY29tcGx5LmNvbSc6XHJcbiAgICBkb21haW5OYW1lID0gJ2JldGFhcGkudi1jb21wbHkuY29tJztcclxuICAgIGFwaUJhc2VVcmwgPSAnaHR0cHM6Ly9hcGktc3RhZ2luZy52LWNvbXBseS5jb20nO1xyXG4gICAgYnJlYWs7XHJcbiAgY2FzZSAndGVzdC52LWNvbXBseS5jb20nOlxyXG4gICAgZG9tYWluTmFtZSA9ICdkZXZhcGkudi1jb21wbHkuY29tJztcclxuICAgIGJyZWFrO1xyXG4gIGNhc2UgJ2V1LnYtY29tcGx5LmNvbSc6XHJcbiAgICBkb21haW5OYW1lID0gJ2V1YXBpLnYtY29tcGx5LmNvbSc7XHJcbiAgICBicmVhaztcclxuICBkZWZhdWx0OlxyXG4gICAgZG9tYWluTmFtZSA9ICdhcGkudi1jb21wbHkuY29tJztcclxuICAgIGJyZWFrO1xyXG59XHJcbmNvbnN0IFBPUlRfRURJVE9SID0gODA4MTtcclxuY29uc3QgUE9SVF9DT05URU5UX1NBVkUgPSA4ODM0O1xyXG5sZXQgZW5kUG9pbnQgPSAnaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tLyc7XHJcbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudCA9IHtcclxuICBwcm9kdWN0aW9uOiBmYWxzZSxcclxuICBhcHBVcmw6ICdodHRwOi8vbG9jYWxob3N0OjQyMDAvJyxcclxuICBhcGlCYXNlVXJsOiAnaHR0cHM6Ly9hcGktdWF0MS52LWNvbXBseS5jb20nLFxyXG4gIGF1dGhFbmRwb2ludDogYCR7ZW5kUG9pbnR9VmNvbXBseUF1dGgvYCxcclxuICBvcmdFbmRwb2ludF9UTDogYCR7ZW5kUG9pbnR9b3JnYW5pemF0aW9uX3B3dC8/bW9kZT1gLFxyXG4gIHMzVXJsOiAnJyxcclxuICBzM0J1Y2tldFVybDogYCR7ZW5kUG9pbnR9Z2xvYmFscz9tb2RlPWJ1Y2tldGAsXHJcbiAgczNCdWNrZXQ6ICcnLFxyXG4gIHByb2ZpbGU6ICcvcHJvZmlsZV9waWMvdGh1bWIvJyxcclxuICBhc3Nlc3NtZW50RW5wb2ludDogYCR7ZW5kUG9pbnR9QXNzZXNzbWVudC8/bW9kZT1gLFxyXG4gIG9yZ2FuaXphdGlvblBvc3Q6IGAke2VuZFBvaW50fW9yZ2FuaXphdGlvbl9wb3N0Lz9tb2RlPWAsXHJcbiAgb3JnYW5pemF0aW9uR2V0OiBgJHtlbmRQb2ludH1vcmdhbml6YXRpb24vP21vZGU9YCxcclxuICBjb21wbGlhbmNlR2V0OiBgJHtlbmRQb2ludH1jb21wbGlhbmNlLz9tb2RlPWAsXHJcbiAgY29tcGxpYW5jZVBvc3Q6IGAke2VuZFBvaW50fWNvbXBsaWFuY2VfcG9zdC8/bW9kZT1gLFxyXG4gIGZpbGVVcGxvYWRFbmRQb2ludDpcclxuICAgICdodHRwczovL3VwbG9hZC11YXQxLnYtY29tcGx5LmNvbS9maWxldXBsb2FkLz9kZXN0aW5hdGlvbj0nLFxyXG4gIGFzc3VyYW5jZUdldDogYCR7ZW5kUG9pbnR9YXNzdXJhbmNlLz9tb2RlPWAsXHJcbiAgcG9saWN5R2V0OiBgJHtlbmRQb2ludH1wb2xpY3kvP21vZGU9YCxcclxuICBzYXZlRG9jOiAnaHR0cHM6Ly9kZXYtbm9kZS52LWNvbXBseS5jb20vc2F2ZUNvbnRlbnQ/YnlwYXNzLXRva2VuPXRydWUmaWQ9JyxcclxuICBkb2N4VXBsb2FkOiAnaHR0cHM6Ly9kZXYtbm9kZS52LWNvbXBseS5jb20vSW1wb3J0RG9jdW1lbnQnLFxyXG4gIGZpbGVVcGxvYWQ6ICdodHRwczovL2Rldi1ub2RlLnYtY29tcGx5LmNvbS9pbXBvcnRGaWxlcycsXHJcbiAgcG9saWN5UG9zdDogYCR7ZW5kUG9pbnR9cG9saWN5X3Bvc3QvP21vZGU9YCxcclxuICBwb2xpY3lQdXQ6IGAke2VuZFBvaW50fXBvbGljeV9wdXQvP21vZGU9YCxcclxuICByZXNwb25zaWJpbGl0eVBvc3Q6IGAke2VuZFBvaW50fXJlc3BvbnNpYmlsaXRpZXNfcG9zdC8/bW9kZT1gLFxyXG4gIGxpbmtEb2M6ICdodHRwczovL2Rldi1ub2RlLnYtY29tcGx5LmNvbScgKyAnL0ltcG9ydERvY3VtZW50JyxcclxuICBsaW5rUGRmOiAnaHR0cHM6Ly9kZXYtbm9kZS52LWNvbXBseS5jb20nICsgJy9leHRyYWN0RG9jcycsXHJcbiAgYXNzdXJhbmNlQXBpOiAnaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL0Fzc3VyYW5jZS8nLFxyXG4gIGFzc3VyYW5jZTogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9Bc3N1cmFuY2UvJyxcclxuICBwcm9ncmFtRW5kcG9pbnQ6ICdodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcHJvZ3JhbScsXHJcbiAgcmlzazogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrLz9tb2RlPScsXHJcbiAgcmlza19wdXQ6ICdodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlza19wdXQvP21vZGU9JyxcclxuICByaXNrUGRmUG9zdDogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrX3BkZl9wb3N0P21vZGU9JyxcclxuICByaXNrUG9zdDogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrX3Bvc3QvP21vZGU9JyxcclxuICByaXNrR2V0OiAnaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3Jpc2svP21vZGU9JyxcclxuICBiYXNlVXJsOiAnaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tLycsXHJcbiAgZ3JjX2dldDogJ2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9ncmNfb2JqZWN0Lz9tb2RlPScsXHJcbiAgbGVmdE1lbnVMb2dvOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xvZ28vcHJvZC92LWxvZ28uc3ZnP3Y9MS4wJyxcclxuICB2TG9hZGVyOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xvZ28vcHJvZC92LWljb24tbG9hZGVyLnN2Zz92PTEuMCcsXHJcbn07XHJcblxyXG4vKlxyXG4gKiBGb3IgZWFzaWVyIGRlYnVnZ2luZyBpbiBkZXZlbG9wbWVudCBtb2RlLCB5b3UgY2FuIGltcG9ydCB0aGUgZm9sbG93aW5nIGZpbGVcclxuICogdG8gaWdub3JlIHpvbmUgcmVsYXRlZCBlcnJvciBzdGFjayBmcmFtZXMgc3VjaCBhcyBgem9uZS5ydW5gLCBgem9uZURlbGVnYXRlLmludm9rZVRhc2tgLlxyXG4gKlxyXG4gKiBUaGlzIGltcG9ydCBzaG91bGQgYmUgY29tbWVudGVkIG91dCBpbiBwcm9kdWN0aW9uIG1vZGUgYmVjYXVzZSBpdCB3aWxsIGhhdmUgYSBuZWdhdGl2ZSBpbXBhY3RcclxuICogb24gcGVyZm9ybWFuY2UgaWYgYW4gZXJyb3IgaXMgdGhyb3duLlxyXG4gKi9cclxuLy8gaW1wb3J0ICd6b25lLmpzL3BsdWdpbnMvem9uZS1lcnJvcic7ICAvLyBJbmNsdWRlZCB3aXRoIEFuZ3VsYXIgQ0xJLlxyXG4iXX0=
@@ -1,6 +1,6 @@
1
- export class Configurations {
2
- constructor() {
3
- this.sentryConfig = {};
4
- }
5
- }
1
+ export class Configurations {
2
+ constructor() {
3
+ this.sentryConfig = {};
4
+ }
5
+ }
6
6
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sY0FBYztJQUd6QjtRQUNFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9ucyB7XHJcbiAgcHVibGljIHNlbnRyeUNvbmZpZzogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuc2VudHJ5Q29uZmlnID0ge307XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,27 +1,27 @@
1
- import { Directive, Input } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./feature-flag.service";
4
- export class FeatureFlagDirective {
5
- constructor(tpl, vcr, featureFlagService) {
6
- this.tpl = tpl;
7
- this.vcr = vcr;
8
- this.featureFlagService = featureFlagService;
9
- }
10
- ngOnInit() {
11
- const isEnabled = this.featureFlagService.isFeatureEnabled(this.featureFlag);
12
- if (isEnabled) {
13
- this.vcr.createEmbeddedView(this.tpl);
14
- }
15
- }
16
- }
17
- FeatureFlagDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.FeatureFlagService }], target: i0.ɵɵFactoryTarget.Directive });
18
- FeatureFlagDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.1", type: FeatureFlagDirective, selector: "[featureFlag]", inputs: { featureFlag: "featureFlag" }, ngImport: i0 });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagDirective, decorators: [{
20
- type: Directive,
21
- args: [{
22
- selector: "[featureFlag]"
23
- }]
24
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.FeatureFlagService }]; }, propDecorators: { featureFlag: [{
25
- type: Input
26
- }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvZmVhdHVyZUZsYWcvZmVhdHVyZS1mbGFnLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZCLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDVSxHQUFxQixFQUNyQixHQUFxQixFQUNyQixrQkFBc0M7UUFGdEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUM3QyxDQUFDO0lBRUosUUFBUTtRQUNOLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0UsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7O2lIQWJVLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2tLQUVVLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZlYXR1cmVGbGFnU2VydmljZSB9IGZyb20gXCIuL2ZlYXR1cmUtZmxhZy5zZXJ2aWNlXCI7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiW2ZlYXR1cmVGbGFnXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZmVhdHVyZUZsYWchOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRwbDogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBpc0VuYWJsZWQgPSB0aGlzLmZlYXR1cmVGbGFnU2VydmljZS5pc0ZlYXR1cmVFbmFibGVkKHRoaXMuZmVhdHVyZUZsYWcpO1xyXG4gICAgaWYgKGlzRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50cGwpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
1
+ import { Directive, Input } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./feature-flag.service";
4
+ export class FeatureFlagDirective {
5
+ constructor(tpl, vcr, featureFlagService) {
6
+ this.tpl = tpl;
7
+ this.vcr = vcr;
8
+ this.featureFlagService = featureFlagService;
9
+ }
10
+ ngOnInit() {
11
+ const isEnabled = this.featureFlagService.isFeatureEnabled(this.featureFlag);
12
+ if (isEnabled) {
13
+ this.vcr.createEmbeddedView(this.tpl);
14
+ }
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.FeatureFlagService }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FeatureFlagDirective, selector: "[featureFlag]", inputs: { featureFlag: "featureFlag" }, ngImport: i0 }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{
22
+ selector: "[featureFlag]"
23
+ }]
24
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.FeatureFlagService }]; }, propDecorators: { featureFlag: [{
25
+ type: Input
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvZmVhdHVyZUZsYWcvZmVhdHVyZS1mbGFnLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFJTixNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZCLE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDVSxHQUFxQixFQUNyQixHQUFxQixFQUNyQixrQkFBc0M7UUFGdEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUM3QyxDQUFDO0lBRUosUUFBUTtRQUNOLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0UsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7K0dBYlUsb0JBQW9CO21HQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2tLQUVVLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZlYXR1cmVGbGFnU2VydmljZSB9IGZyb20gXCIuL2ZlYXR1cmUtZmxhZy5zZXJ2aWNlXCI7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiW2ZlYXR1cmVGbGFnXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZmVhdHVyZUZsYWchOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRwbDogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBpc0VuYWJsZWQgPSB0aGlzLmZlYXR1cmVGbGFnU2VydmljZS5pc0ZlYXR1cmVFbmFibGVkKHRoaXMuZmVhdHVyZUZsYWcpO1xyXG4gICAgaWYgKGlzRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50cGwpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FeatureFlagDirective } from './feature-flag.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class FeatureFlagModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagModule, declarations: [FeatureFlagDirective], imports: [CommonModule], exports: [FeatureFlagDirective] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagModule, imports: [CommonModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [FeatureFlagDirective],
14
+ imports: [
15
+ CommonModule
16
+ ],
17
+ exports: [FeatureFlagDirective]
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvZmVhdHVyZUZsYWcvZmVhdHVyZS1mbGFnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFTaEUsTUFBTSxPQUFPLGlCQUFpQjsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsaUJBTmIsb0JBQW9CLGFBRWpDLFlBQVksYUFFTCxvQkFBb0I7Z0hBRWxCLGlCQUFpQixZQUoxQixZQUFZOzs0RkFJSCxpQkFBaUI7a0JBUDdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBQyxDQUFDLG9CQUFvQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZlYXR1cmVGbGFnRGlyZWN0aXZlIH0gZnJvbSAnLi9mZWF0dXJlLWZsYWcuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRmVhdHVyZUZsYWdEaXJlY3RpdmVdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czpbRmVhdHVyZUZsYWdEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ01vZHVsZSB7IH1cclxuIl19
@@ -1,95 +1,95 @@
1
- import { Injectable } from '@angular/core';
2
- import { retry } from 'rxjs/operators';
3
- import { environment } from '../../environments/environment';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- import * as i2 from "@vcomply/authorizer";
7
- export class FeatureFlagService {
8
- constructor(http, authorizer) {
9
- this.http = http;
10
- this.authorizer = authorizer;
11
- this.flagFetchError = false;
12
- this.featuresMap = {};
13
- this.AWSFlags = {};
14
- }
15
- fetchFlags() {
16
- return this.http.get(environment.baseUrl + 'features').pipe(retry(2));
17
- }
18
- loadConfig() {
19
- if (this.flagSubscription) {
20
- this.flagSubscription.unsubscribe();
21
- }
22
- return new Promise((resolve, reject) => {
23
- this.flagSubscription = this.fetchFlags().subscribe({
24
- next: (res) => {
25
- try {
26
- resolve(true);
27
- this.flagFetchError = false;
28
- this.AWSFlags = res;
29
- this.buildFeatureFlags(this.authorizer.getOrganizationId());
30
- }
31
- catch (error) {
32
- reject(error);
33
- }
34
- },
35
- error: (err) => {
36
- reject(true);
37
- this.flagFetchError = true;
38
- console.log('An error occurred while fetching feature flags', err);
39
- },
40
- });
41
- });
42
- }
43
- buildFeatureFlags(orgId) {
44
- orgId = orgId?.toString();
45
- const enabledFeatures = {};
46
- Object.keys(this.AWSFlags).forEach((flag) => {
47
- const flagObj = this.AWSFlags[flag];
48
- enabledFeatures[flag] = false;
49
- if (flagObj) {
50
- if (flagObj?.enabled && !flagObj.hasOwnProperty('enabledOrgIds')) {
51
- enabledFeatures[flag] = true;
52
- }
53
- else if (flagObj?.enabled &&
54
- flagObj.hasOwnProperty('enabledOrgIds') &&
55
- flagObj?.enabledOrgIds?.length > 0) {
56
- if (flagObj?.enabledOrgIds?.includes(orgId)) {
57
- enabledFeatures[flag] = true;
58
- }
59
- else {
60
- enabledFeatures[flag] = false;
61
- }
62
- }
63
- else {
64
- if (flagObj?.enabled) {
65
- enabledFeatures[flag] = true;
66
- }
67
- else {
68
- enabledFeatures[flag] = false;
69
- }
70
- }
71
- }
72
- else {
73
- enabledFeatures[flag] = true;
74
- }
75
- });
76
- this.featuresMap = enabledFeatures;
77
- }
78
- isFeatureEnabled(featureFlag) {
79
- if (this.featuresMap.hasOwnProperty(featureFlag)) {
80
- return this.featuresMap[featureFlag];
81
- }
82
- else {
83
- return true;
84
- }
85
- }
86
- }
87
- FeatureFlagService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagService, deps: [{ token: i1.HttpClient }, { token: i2.AuthorizerService }], target: i0.ɵɵFactoryTarget.Injectable });
88
- FeatureFlagService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagService, providedIn: 'root' });
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: FeatureFlagService, decorators: [{
90
- type: Injectable,
91
- args: [{
92
- providedIn: 'root',
93
- }]
94
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthorizerService }]; } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL2ZlYXR1cmVGbGFnL2ZlYXR1cmUtZmxhZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUk3RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsSUFBZ0IsRUFDaEIsVUFBNkI7UUFEN0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUd2QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixhQUFRLEdBQVEsRUFBRSxDQUFDO0lBSmhCLENBQUM7SUFPSixVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQztRQUNELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ2xELElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUNqQixJQUFJO3dCQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztxQkFDN0Q7b0JBQUMsT0FBTyxLQUFLLEVBQUU7d0JBQ2QsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNmO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztvQkFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDckUsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsS0FBSyxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUMxQixNQUFNLGVBQWUsR0FBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQ2hFLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQzlCO3FCQUFNLElBQ0wsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO29CQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQ2xDO29CQUNBLElBQUksT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzNDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7cUJBQzlCO3lCQUFNO3dCQUNMLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7cUJBQy9CO2lCQUNGO3FCQUFNO29CQUNMLElBQUksT0FBTyxFQUFFLE9BQU8sRUFBRTt3QkFDcEIsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztxQkFDOUI7eUJBQU07d0JBQ0wsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztxQkFDL0I7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBbUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzsrR0EvRVUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXV0aG9yaXplclNlcnZpY2UgfSBmcm9tICdAdmNvbXBseS9hdXRob3JpemVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVGbGFnU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhvcml6ZXI6IEF1dGhvcml6ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBmbGFnRmV0Y2hFcnJvciA9IGZhbHNlO1xyXG4gIGZlYXR1cmVzTWFwOiBhbnkgPSB7fTtcclxuICBBV1NGbGFnczogYW55ID0ge307XHJcbiAgZmxhZ1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZmV0Y2hGbGFncygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGVudmlyb25tZW50LmJhc2VVcmwgKyAnZmVhdHVyZXMnKS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGxvYWRDb25maWcoKSB7XHJcbiAgICBpZiAodGhpcy5mbGFnU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuZmxhZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5mbGFnU3Vic2NyaXB0aW9uID0gdGhpcy5mZXRjaEZsYWdzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmxhZ0ZldGNoRXJyb3IgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5BV1NGbGFncyA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5idWlsZEZlYXR1cmVGbGFncyh0aGlzLmF1dGhvcml6ZXIuZ2V0T3JnYW5pemF0aW9uSWQoKSk7XHJcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5mbGFnRmV0Y2hFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgZmVhdHVyZSBmbGFncycsIGVycik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGJ1aWxkRmVhdHVyZUZsYWdzKG9yZ0lkOiBhbnkpIHtcclxuICAgIG9yZ0lkID0gb3JnSWQ/LnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBlbmFibGVkRmVhdHVyZXM6IGFueSA9IHt9O1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5BV1NGbGFncykuZm9yRWFjaCgoZmxhZzogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZsYWdPYmogPSB0aGlzLkFXU0ZsYWdzW2ZsYWddO1xyXG4gICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSBmYWxzZTtcclxuICAgICAgaWYgKGZsYWdPYmopIHtcclxuICAgICAgICBpZiAoZmxhZ09iaj8uZW5hYmxlZCAmJiAhZmxhZ09iai5oYXNPd25Qcm9wZXJ0eSgnZW5hYmxlZE9yZ0lkcycpKSB7XHJcbiAgICAgICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmbGFnT2JqPy5lbmFibGVkICYmXHJcbiAgICAgICAgICBmbGFnT2JqLmhhc093blByb3BlcnR5KCdlbmFibGVkT3JnSWRzJykgJiZcclxuICAgICAgICAgIGZsYWdPYmo/LmVuYWJsZWRPcmdJZHM/Lmxlbmd0aCA+IDBcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChmbGFnT2JqPy5lbmFibGVkT3JnSWRzPy5pbmNsdWRlcyhvcmdJZCkpIHtcclxuICAgICAgICAgICAgZW5hYmxlZEZlYXR1cmVzW2ZsYWddID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVuYWJsZWRGZWF0dXJlc1tmbGFnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoZmxhZ09iaj8uZW5hYmxlZCkge1xyXG4gICAgICAgICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW5hYmxlZEZlYXR1cmVzW2ZsYWddID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVuYWJsZWRGZWF0dXJlc1tmbGFnXSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZWF0dXJlc01hcCA9IGVuYWJsZWRGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIGlzRmVhdHVyZUVuYWJsZWQoZmVhdHVyZUZsYWc6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZXNNYXAuaGFzT3duUHJvcGVydHkoZmVhdHVyZUZsYWcpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZlYXR1cmVzTWFwW2ZlYXR1cmVGbGFnXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { retry } from 'rxjs/operators';
3
+ import { environment } from '../../environments/environment';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "@vcomply/authorizer";
7
+ export class FeatureFlagService {
8
+ constructor(http, authorizer) {
9
+ this.http = http;
10
+ this.authorizer = authorizer;
11
+ this.flagFetchError = false;
12
+ this.featuresMap = {};
13
+ this.AWSFlags = {};
14
+ }
15
+ fetchFlags() {
16
+ return this.http.get(environment.baseUrl + 'features').pipe(retry(2));
17
+ }
18
+ loadConfig() {
19
+ if (this.flagSubscription) {
20
+ this.flagSubscription.unsubscribe();
21
+ }
22
+ return new Promise((resolve, reject) => {
23
+ this.flagSubscription = this.fetchFlags().subscribe({
24
+ next: (res) => {
25
+ try {
26
+ resolve(true);
27
+ this.flagFetchError = false;
28
+ this.AWSFlags = res;
29
+ this.buildFeatureFlags(this.authorizer.getOrganizationId());
30
+ }
31
+ catch (error) {
32
+ reject(error);
33
+ }
34
+ },
35
+ error: (err) => {
36
+ reject(true);
37
+ this.flagFetchError = true;
38
+ console.log('An error occurred while fetching feature flags', err);
39
+ },
40
+ });
41
+ });
42
+ }
43
+ buildFeatureFlags(orgId) {
44
+ orgId = orgId?.toString();
45
+ const enabledFeatures = {};
46
+ Object.keys(this.AWSFlags).forEach((flag) => {
47
+ const flagObj = this.AWSFlags[flag];
48
+ enabledFeatures[flag] = false;
49
+ if (flagObj) {
50
+ if (flagObj?.enabled && !flagObj.hasOwnProperty('enabledOrgIds')) {
51
+ enabledFeatures[flag] = true;
52
+ }
53
+ else if (flagObj?.enabled &&
54
+ flagObj.hasOwnProperty('enabledOrgIds') &&
55
+ flagObj?.enabledOrgIds?.length > 0) {
56
+ if (flagObj?.enabledOrgIds?.includes(orgId)) {
57
+ enabledFeatures[flag] = true;
58
+ }
59
+ else {
60
+ enabledFeatures[flag] = false;
61
+ }
62
+ }
63
+ else {
64
+ if (flagObj?.enabled) {
65
+ enabledFeatures[flag] = true;
66
+ }
67
+ else {
68
+ enabledFeatures[flag] = false;
69
+ }
70
+ }
71
+ }
72
+ else {
73
+ enabledFeatures[flag] = true;
74
+ }
75
+ });
76
+ this.featuresMap = enabledFeatures;
77
+ }
78
+ isFeatureEnabled(featureFlag) {
79
+ if (this.featuresMap.hasOwnProperty(featureFlag)) {
80
+ return this.featuresMap[featureFlag];
81
+ }
82
+ else {
83
+ return true;
84
+ }
85
+ }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagService, deps: [{ token: i1.HttpClient }, { token: i2.AuthorizerService }], target: i0.ɵɵFactoryTarget.Injectable }); }
87
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagService, providedIn: 'root' }); }
88
+ }
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureFlagService, decorators: [{
90
+ type: Injectable,
91
+ args: [{
92
+ providedIn: 'root',
93
+ }]
94
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthorizerService }]; } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL2ZlYXR1cmVGbGFnL2ZlYXR1cmUtZmxhZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQUk3RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsSUFBZ0IsRUFDaEIsVUFBNkI7UUFEN0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUd2QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixhQUFRLEdBQVEsRUFBRSxDQUFDO0lBSmhCLENBQUM7SUFPSixVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQztRQUNELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ2xELElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO29CQUNqQixJQUFJO3dCQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztxQkFDN0Q7b0JBQUMsT0FBTyxLQUFLLEVBQUU7d0JBQ2QsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNmO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDYixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztvQkFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDckUsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsS0FBSyxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUMxQixNQUFNLGVBQWUsR0FBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7WUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksT0FBTyxFQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUU7b0JBQ2hFLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQzlCO3FCQUFNLElBQ0wsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO29CQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQ2xDO29CQUNBLElBQUksT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzNDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7cUJBQzlCO3lCQUFNO3dCQUNMLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7cUJBQy9CO2lCQUNGO3FCQUFNO29CQUNMLElBQUksT0FBTyxFQUFFLE9BQU8sRUFBRTt3QkFDcEIsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztxQkFDOUI7eUJBQU07d0JBQ0wsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztxQkFDL0I7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBbUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOytHQS9FVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXV0aG9yaXplclNlcnZpY2UgfSBmcm9tICdAdmNvbXBseS9hdXRob3JpemVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVGbGFnU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhvcml6ZXI6IEF1dGhvcml6ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBmbGFnRmV0Y2hFcnJvciA9IGZhbHNlO1xyXG4gIGZlYXR1cmVzTWFwOiBhbnkgPSB7fTtcclxuICBBV1NGbGFnczogYW55ID0ge307XHJcbiAgZmxhZ1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZmV0Y2hGbGFncygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGVudmlyb25tZW50LmJhc2VVcmwgKyAnZmVhdHVyZXMnKS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGxvYWRDb25maWcoKSB7XHJcbiAgICBpZiAodGhpcy5mbGFnU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuZmxhZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5mbGFnU3Vic2NyaXB0aW9uID0gdGhpcy5mZXRjaEZsYWdzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmxhZ0ZldGNoRXJyb3IgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5BV1NGbGFncyA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5idWlsZEZlYXR1cmVGbGFncyh0aGlzLmF1dGhvcml6ZXIuZ2V0T3JnYW5pemF0aW9uSWQoKSk7XHJcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5mbGFnRmV0Y2hFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgZmVhdHVyZSBmbGFncycsIGVycik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGJ1aWxkRmVhdHVyZUZsYWdzKG9yZ0lkOiBhbnkpIHtcclxuICAgIG9yZ0lkID0gb3JnSWQ/LnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBlbmFibGVkRmVhdHVyZXM6IGFueSA9IHt9O1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5BV1NGbGFncykuZm9yRWFjaCgoZmxhZzogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZsYWdPYmogPSB0aGlzLkFXU0ZsYWdzW2ZsYWddO1xyXG4gICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSBmYWxzZTtcclxuICAgICAgaWYgKGZsYWdPYmopIHtcclxuICAgICAgICBpZiAoZmxhZ09iaj8uZW5hYmxlZCAmJiAhZmxhZ09iai5oYXNPd25Qcm9wZXJ0eSgnZW5hYmxlZE9yZ0lkcycpKSB7XHJcbiAgICAgICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmbGFnT2JqPy5lbmFibGVkICYmXHJcbiAgICAgICAgICBmbGFnT2JqLmhhc093blByb3BlcnR5KCdlbmFibGVkT3JnSWRzJykgJiZcclxuICAgICAgICAgIGZsYWdPYmo/LmVuYWJsZWRPcmdJZHM/Lmxlbmd0aCA+IDBcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChmbGFnT2JqPy5lbmFibGVkT3JnSWRzPy5pbmNsdWRlcyhvcmdJZCkpIHtcclxuICAgICAgICAgICAgZW5hYmxlZEZlYXR1cmVzW2ZsYWddID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVuYWJsZWRGZWF0dXJlc1tmbGFnXSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoZmxhZ09iaj8uZW5hYmxlZCkge1xyXG4gICAgICAgICAgICBlbmFibGVkRmVhdHVyZXNbZmxhZ10gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZW5hYmxlZEZlYXR1cmVzW2ZsYWddID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVuYWJsZWRGZWF0dXJlc1tmbGFnXSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZWF0dXJlc01hcCA9IGVuYWJsZWRGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIGlzRmVhdHVyZUVuYWJsZWQoZmVhdHVyZUZsYWc6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZXNNYXAuaGFzT3duUHJvcGVydHkoZmVhdHVyZUZsYWcpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZlYXR1cmVzTWFwW2ZlYXR1cmVGbGFnXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=