ngx-techlify-core 14.7.0 → 14.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/esm2020/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +127 -0
  2. package/esm2020/lib/access-control-config/access-control-config-routing.module.mjs +31 -0
  3. package/esm2020/lib/access-control-config/access-control-config.component.mjs +131 -0
  4. package/esm2020/lib/access-control-config/access-control-config.model.mjs +21 -0
  5. package/esm2020/lib/access-control-config/access-control-config.module.mjs +60 -0
  6. package/esm2020/lib/access-control-config/access-control-config.service.mjs +31 -0
  7. package/esm2020/lib/change-password/change-password-routing.module.mjs +24 -0
  8. package/esm2020/lib/change-password/change-password.component.mjs +87 -0
  9. package/esm2020/lib/change-password/change-password.module.mjs +48 -0
  10. package/esm2020/lib/entity-files/entity-files-view-all.component.mjs +7 -8
  11. package/esm2020/lib/forgot-password/forgot-password-routing.module.mjs +22 -0
  12. package/esm2020/lib/forgot-password/forgot-password.component.mjs +67 -0
  13. package/esm2020/lib/forgot-password/forgot-password.module.mjs +34 -0
  14. package/esm2020/lib/forgot-password/index.mjs +3 -0
  15. package/esm2020/lib/ip-address-selector/ip-address-selector.module.mjs +48 -0
  16. package/esm2020/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +109 -0
  17. package/esm2020/lib/login/index.mjs +3 -0
  18. package/esm2020/lib/login/login-routing.module.mjs +23 -0
  19. package/esm2020/lib/login/login.component.mjs +153 -0
  20. package/esm2020/lib/login/login.module.mjs +50 -0
  21. package/esm2020/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +43 -0
  22. package/esm2020/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +22 -0
  23. package/esm2020/lib/password-requirement-check/password-check-result.mjs +2 -0
  24. package/esm2020/lib/password-requirement-check/password-check.service.mjs +43 -0
  25. package/esm2020/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +47 -0
  26. package/esm2020/lib/password-requirement-check/password-requirement-check.module.mjs +24 -0
  27. package/esm2020/lib/profile/index.mjs +3 -0
  28. package/esm2020/lib/profile/profile-edit.component.mjs +75 -0
  29. package/esm2020/lib/profile/profile-routing.module.mjs +23 -0
  30. package/esm2020/lib/profile/profile.module.mjs +36 -0
  31. package/esm2020/lib/restrictors/index.mjs +4 -0
  32. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +91 -0
  33. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +36 -0
  34. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +19 -0
  35. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +91 -0
  36. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +32 -0
  37. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +19 -0
  38. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +92 -0
  39. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +36 -0
  40. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +19 -0
  41. package/esm2020/lib/restrictors/restrictor.service.mjs +19 -0
  42. package/esm2020/lib/restrictors/restrictors-form/restrictors-form.component.mjs +102 -0
  43. package/esm2020/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +44 -0
  44. package/esm2020/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +145 -0
  45. package/esm2020/lib/restrictors/restrictors-routing.module.mjs +42 -0
  46. package/esm2020/lib/restrictors/restrictors.module.mjs +99 -0
  47. package/esm2020/lib/role/index.mjs +9 -0
  48. package/esm2020/lib/role/permission/permission.model.mjs +9 -0
  49. package/esm2020/lib/role/permission/permission.module.mjs +45 -0
  50. package/esm2020/lib/role/permission/permission.routes.mjs +26 -0
  51. package/esm2020/lib/role/permission/permissions-management.component.mjs +105 -0
  52. package/esm2020/lib/role/role-form.component.mjs +99 -0
  53. package/esm2020/lib/role/role-view/role-view.component.mjs +39 -0
  54. package/esm2020/lib/role/role.model.mjs +56 -0
  55. package/esm2020/lib/role/role.module.mjs +59 -0
  56. package/esm2020/lib/role/role.routes.mjs +28 -0
  57. package/esm2020/lib/role/role.service.mjs +26 -0
  58. package/esm2020/lib/role/roles-view-all.component.mjs +131 -0
  59. package/esm2020/lib/signup/index.mjs +3 -0
  60. package/esm2020/lib/signup/signup-routing.module.mjs +22 -0
  61. package/esm2020/lib/signup/signup.component.mjs +78 -0
  62. package/esm2020/lib/signup/signup.module.mjs +34 -0
  63. package/esm2020/lib/user/current-user.service.mjs +135 -0
  64. package/esm2020/lib/user/index.mjs +8 -0
  65. package/esm2020/lib/user/user-explore.component.mjs +50 -0
  66. package/esm2020/lib/user/user-form.component.mjs +219 -0
  67. package/esm2020/lib/user/user-view.component.mjs +68 -0
  68. package/esm2020/lib/user/user.model.mjs +30 -0
  69. package/esm2020/lib/user/user.module.mjs +99 -0
  70. package/esm2020/lib/user/user.routes.mjs +29 -0
  71. package/esm2020/lib/user/user.service.mjs +31 -0
  72. package/esm2020/lib/user/users-view-all.component.mjs +208 -0
  73. package/esm2020/lib/user-config/index.mjs +3 -0
  74. package/esm2020/lib/user-config/user-config.model.mjs +50 -0
  75. package/esm2020/lib/user-config/user-config.service.mjs +65 -0
  76. package/esm2020/lib/user-selector/index.mjs +3 -0
  77. package/esm2020/lib/user-selector/user-data.service.mjs +35 -0
  78. package/esm2020/lib/user-selector/user-selector.component.mjs +91 -0
  79. package/esm2020/lib/user-selector/user-selector.module.mjs +38 -0
  80. package/esm2020/public-api.mjs +24 -1
  81. package/fesm2015/ngx-techlify-core.mjs +3791 -170
  82. package/fesm2015/ngx-techlify-core.mjs.map +1 -1
  83. package/fesm2020/ngx-techlify-core.mjs +3759 -170
  84. package/fesm2020/ngx-techlify-core.mjs.map +1 -1
  85. package/lib/access-control-config/access-control-config-form/access-control-config-form.component.d.ts +44 -0
  86. package/lib/access-control-config/access-control-config-routing.module.d.ts +7 -0
  87. package/lib/access-control-config/access-control-config.component.d.ts +31 -0
  88. package/lib/access-control-config/access-control-config.model.d.ts +17 -0
  89. package/lib/access-control-config/access-control-config.module.d.ts +18 -0
  90. package/lib/access-control-config/access-control-config.service.d.ts +13 -0
  91. package/lib/change-password/change-password-routing.module.d.ts +7 -0
  92. package/lib/change-password/change-password.component.d.ts +27 -0
  93. package/lib/change-password/change-password.module.d.ts +14 -0
  94. package/lib/forgot-password/forgot-password-routing.module.d.ts +7 -0
  95. package/lib/forgot-password/forgot-password.component.d.ts +34 -0
  96. package/lib/forgot-password/forgot-password.module.d.ts +11 -0
  97. package/lib/forgot-password/index.d.ts +2 -0
  98. package/lib/ip-address-selector/ip-address-selector.module.d.ts +14 -0
  99. package/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.d.ts +28 -0
  100. package/lib/login/index.d.ts +2 -0
  101. package/lib/login/login-routing.module.d.ts +7 -0
  102. package/lib/login/login.component.d.ts +53 -0
  103. package/lib/login/login.module.d.ts +15 -0
  104. package/lib/ngx-techlify-users/ngx-techlify-users-routing.module.d.ts +7 -0
  105. package/lib/ngx-techlify-users/ngx-techlify-users.module.d.ts +8 -0
  106. package/lib/password-requirement-check/password-check-result.d.ts +7 -0
  107. package/lib/password-requirement-check/password-check.service.d.ts +15 -0
  108. package/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.d.ts +22 -0
  109. package/lib/password-requirement-check/password-requirement-check.module.d.ts +8 -0
  110. package/lib/profile/index.d.ts +2 -0
  111. package/lib/profile/profile-edit.component.d.ts +33 -0
  112. package/lib/profile/profile-routing.module.d.ts +7 -0
  113. package/lib/profile/profile.module.d.ts +11 -0
  114. package/lib/restrictors/index.d.ts +3 -0
  115. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.d.ts +34 -0
  116. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.d.ts +11 -0
  117. package/lib/restrictors/restrictor-level-selector/restrictor-level.service.d.ts +9 -0
  118. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.d.ts +34 -0
  119. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.d.ts +10 -0
  120. package/lib/restrictors/restrictor-status-selector/restrictor-status.service.d.ts +9 -0
  121. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.d.ts +34 -0
  122. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.d.ts +11 -0
  123. package/lib/restrictors/restrictor-type-selector/restrictor-type.service.d.ts +9 -0
  124. package/lib/restrictors/restrictor.service.d.ts +9 -0
  125. package/lib/restrictors/restrictors-form/restrictors-form.component.d.ts +30 -0
  126. package/lib/restrictors/restrictors-form-page/restrictors-form-page.component.d.ts +21 -0
  127. package/lib/restrictors/restrictors-list-page/restrictors-list-page.component.d.ts +51 -0
  128. package/lib/restrictors/restrictors-routing.module.d.ts +7 -0
  129. package/lib/restrictors/restrictors.module.d.ts +28 -0
  130. package/lib/role/index.d.ts +8 -0
  131. package/lib/role/permission/permission.model.d.ts +11 -0
  132. package/lib/role/permission/permission.module.d.ts +12 -0
  133. package/lib/role/permission/permission.routes.d.ts +7 -0
  134. package/lib/role/permission/permissions-management.component.d.ts +38 -0
  135. package/lib/role/role-form.component.d.ts +34 -0
  136. package/lib/role/role-view/role-view.component.d.ts +16 -0
  137. package/lib/role/role.model.d.ts +31 -0
  138. package/lib/role/role.module.d.ts +16 -0
  139. package/lib/role/role.routes.d.ts +7 -0
  140. package/lib/role/role.service.d.ts +11 -0
  141. package/lib/role/roles-view-all.component.d.ts +40 -0
  142. package/lib/signup/index.d.ts +2 -0
  143. package/lib/signup/signup-routing.module.d.ts +7 -0
  144. package/lib/signup/signup.component.d.ts +29 -0
  145. package/lib/signup/signup.module.d.ts +11 -0
  146. package/lib/user/current-user.service.d.ts +63 -0
  147. package/lib/user/index.d.ts +7 -0
  148. package/lib/user/user-explore.component.d.ts +26 -0
  149. package/lib/user/user-form.component.d.ts +52 -0
  150. package/lib/user/user-view.component.d.ts +31 -0
  151. package/lib/user/user.model.d.ts +29 -0
  152. package/lib/user/user.module.d.ts +26 -0
  153. package/lib/user/user.routes.d.ts +7 -0
  154. package/lib/user/user.service.d.ts +13 -0
  155. package/lib/user/users-view-all.component.d.ts +56 -0
  156. package/lib/user-config/index.d.ts +2 -0
  157. package/lib/user-config/user-config.model.d.ts +50 -0
  158. package/lib/user-config/user-config.service.d.ts +14 -0
  159. package/lib/user-selector/index.d.ts +2 -0
  160. package/lib/user-selector/user-data.service.d.ts +16 -0
  161. package/lib/user-selector/user-selector.component.d.ts +29 -0
  162. package/lib/user-selector/user-selector.module.d.ts +10 -0
  163. package/package.json +1 -1
  164. package/public-api.d.ts +23 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtY2hlY2stcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay9wYXNzd29yZC1jaGVjay1yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGludGVyZmFjZSBQYXNzd29yZENoZWNrUmVzdWx0IHtcbiAgbWluTGVuZ3RoPzogYm9vbGVhbjtcbiAgaGFzTnVtYmVyPzogYm9vbGVhbjtcbiAgaGFzU3ltYm9sPzogYm9vbGVhbjtcbiAgaGFzQ2FwaXRhbExldHRlcj86IGJvb2xlYW47XG4gIGlzVmFsaWQ/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PasswordCheckService {
4
+ constructor() { }
5
+ /**
6
+ * Check if the password matches the access control config requirement or not.
7
+ *
8
+ * @param password Password
9
+ * @param config Access control configuration
10
+ */
11
+ static checkPasswordRequirements(password, config) {
12
+ const { minPasswordLength, isPasswordRequireNumber, isPasswordRequireSymbol, isPasswordRequireCapitalLetter } = config;
13
+ const result = {};
14
+ // Check the minimum password length
15
+ if (minPasswordLength) {
16
+ result.minLength = password.length >= minPasswordLength;
17
+ }
18
+ // Check for at least one number
19
+ if (isPasswordRequireNumber) {
20
+ result.hasNumber = /\d/.test(password);
21
+ }
22
+ // Check for at least one symbol
23
+ if (isPasswordRequireSymbol) {
24
+ result.hasSymbol = /[^\w\s]/.test(password);
25
+ }
26
+ // Check for at least one capital letter
27
+ if (isPasswordRequireCapitalLetter) {
28
+ result.hasCapitalLetter = /[A-Z]/.test(password);
29
+ }
30
+ // Check if all requirements are fulfilled
31
+ result.isValid = Object.values(result).every(value => value === true);
32
+ return result;
33
+ }
34
+ }
35
+ PasswordCheckService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PasswordCheckService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
36
+ PasswordCheckService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PasswordCheckService, providedIn: 'root' });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PasswordCheckService, decorators: [{
38
+ type: Injectable,
39
+ args: [{
40
+ providedIn: 'root'
41
+ }]
42
+ }], ctorParameters: function () { return []; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtY2hlY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2svcGFzc3dvcmQtY2hlY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLGdCQUFnQixDQUFDO0lBRWpCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLHlCQUF5QixDQUFDLFFBQWdCLEVBQUUsTUFBa0M7UUFDMUYsTUFBTSxFQUNKLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLDhCQUE4QixFQUMvQixHQUFHLE1BQU0sQ0FBQztRQUVYLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7UUFFdkMsb0NBQW9DO1FBQ3BDLElBQUksaUJBQWlCLEVBQUU7WUFDckIsTUFBTSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLGlCQUFpQixDQUFDO1NBQ3pEO1FBRUQsZ0NBQWdDO1FBQ2hDLElBQUksdUJBQXVCLEVBQUU7WUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsZ0NBQWdDO1FBQ2hDLElBQUksdUJBQXVCLEVBQUU7WUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsd0NBQXdDO1FBQ3hDLElBQUksOEJBQThCLEVBQUU7WUFDbEMsTUFBTSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbEQ7UUFFRCwwQ0FBMEM7UUFDMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztRQUV0RSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztpSEE1Q1Usb0JBQW9CO3FIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vYWNjZXNzLWNvbnRyb2wtY29uZmlnL2FjY2Vzcy1jb250cm9sLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgUGFzc3dvcmRDaGVja1Jlc3VsdCBmcm9tICcuL3Bhc3N3b3JkLWNoZWNrLXJlc3VsdCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkQ2hlY2tTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgcGFzc3dvcmQgbWF0Y2hlcyB0aGUgYWNjZXNzIGNvbnRyb2wgY29uZmlnIHJlcXVpcmVtZW50IG9yIG5vdC5cbiAgICpcbiAgICogQHBhcmFtIHBhc3N3b3JkIFBhc3N3b3JkXG4gICAqIEBwYXJhbSBjb25maWcgQWNjZXNzIGNvbnRyb2wgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaGVja1Bhc3N3b3JkUmVxdWlyZW1lbnRzKHBhc3N3b3JkOiBzdHJpbmcsIGNvbmZpZzogQWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb24pOiBQYXNzd29yZENoZWNrUmVzdWx0IHtcbiAgICBjb25zdCB7XG4gICAgICBtaW5QYXNzd29yZExlbmd0aCxcbiAgICAgIGlzUGFzc3dvcmRSZXF1aXJlTnVtYmVyLFxuICAgICAgaXNQYXNzd29yZFJlcXVpcmVTeW1ib2wsXG4gICAgICBpc1Bhc3N3b3JkUmVxdWlyZUNhcGl0YWxMZXR0ZXJcbiAgICB9ID0gY29uZmlnO1xuXG4gICAgY29uc3QgcmVzdWx0OiBQYXNzd29yZENoZWNrUmVzdWx0ID0ge307XG5cbiAgICAvLyBDaGVjayB0aGUgbWluaW11bSBwYXNzd29yZCBsZW5ndGhcbiAgICBpZiAobWluUGFzc3dvcmRMZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5taW5MZW5ndGggPSBwYXNzd29yZC5sZW5ndGggPj0gbWluUGFzc3dvcmRMZW5ndGg7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGF0IGxlYXN0IG9uZSBudW1iZXJcbiAgICBpZiAoaXNQYXNzd29yZFJlcXVpcmVOdW1iZXIpIHtcbiAgICAgIHJlc3VsdC5oYXNOdW1iZXIgPSAvXFxkLy50ZXN0KHBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgYXQgbGVhc3Qgb25lIHN5bWJvbFxuICAgIGlmIChpc1Bhc3N3b3JkUmVxdWlyZVN5bWJvbCkge1xuICAgICAgcmVzdWx0Lmhhc1N5bWJvbCA9IC9bXlxcd1xcc10vLnRlc3QocGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBhdCBsZWFzdCBvbmUgY2FwaXRhbCBsZXR0ZXJcbiAgICBpZiAoaXNQYXNzd29yZFJlcXVpcmVDYXBpdGFsTGV0dGVyKSB7XG4gICAgICByZXN1bHQuaGFzQ2FwaXRhbExldHRlciA9IC9bQS1aXS8udGVzdChwYXNzd29yZCk7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgYWxsIHJlcXVpcmVtZW50cyBhcmUgZnVsZmlsbGVkXG4gICAgcmVzdWx0LmlzVmFsaWQgPSBPYmplY3QudmFsdWVzKHJlc3VsdCkuZXZlcnkodmFsdWUgPT4gdmFsdWUgPT09IHRydWUpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,47 @@
1
+ /* tslint:disable */
2
+ import { Component, Input } from '@angular/core';
3
+ import { AccessControlConfiguration } from '../../access-control-config/access-control-config.model';
4
+ import { PasswordCheckService } from '../password-check.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../access-control-config/access-control-config.service";
7
+ import * as i2 from "@angular/common";
8
+ export class PasswordRequirementCheckComponent {
9
+ constructor(accessControlConfigService) {
10
+ this.accessControlConfigService = accessControlConfigService;
11
+ this.showResult = false;
12
+ this.result = {};
13
+ }
14
+ ngOnChanges(changes) {
15
+ if (changes.password) {
16
+ this.checkPasswordRequirements();
17
+ }
18
+ }
19
+ checkPasswordRequirements() {
20
+ if (!this.accessControlConfiguration)
21
+ return;
22
+ this.result = PasswordCheckService.checkPasswordRequirements(this.password, this.accessControlConfiguration);
23
+ this.showResult = true;
24
+ }
25
+ /**
26
+ * Load the access control config for the current client.
27
+ */
28
+ getClientConfig() {
29
+ this.accessControlConfigService.index().subscribe({
30
+ next: (response) => {
31
+ this.accessControlConfiguration = AccessControlConfiguration.fromObject(response?.data);
32
+ }
33
+ });
34
+ }
35
+ ngOnInit() {
36
+ this.getClientConfig();
37
+ }
38
+ }
39
+ PasswordRequirementCheckComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PasswordRequirementCheckComponent, deps: [{ token: i1.AccessControlConfigService }], target: i0.ɵɵFactoryTarget.Component });
40
+ PasswordRequirementCheckComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: PasswordRequirementCheckComponent, selector: "techlify-password-requirement-check", inputs: { password: "password" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"alert\"\n style=\"font-size: 12px; padding: 5px;\"\n [ngClass]=\"{ 'alert-success' : result.isValid, 'alert-danger': !result.isValid }\"\n *ngIf=\"showResult\">\n <ul style=\"margin-bottom: 2px; padding-inline-start: 20px;\">\n <li *ngIf=\"accessControlConfiguration?.minPasswordLength > 0\">\n <span [ngClass]=\"{ 'text-success': result.minLength, 'text-danger': !result.minLength }\">\n Minimum Length Requirement: {{ accessControlConfiguration?.minPasswordLength }} Characters\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireNumber\">\n <span [ngClass]=\"{ 'text-success': result.hasNumber, 'text-danger': !result.hasNumber }\">\n Your password is required to add at least 1 number\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireSymbol\">\n <span [ngClass]=\"{ 'text-success': result.hasSymbol, 'text-danger': !result.hasSymbol }\">\n Your password is required to add at least 1 symbol.\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireCapitalLetter\">\n <span [ngClass]=\"{ 'text-success': result.hasCapitalLetter, 'text-danger': !result.hasCapitalLetter }\">\n Your password is required to add at least 1 capital letter\n </span>\n </li>\n </ul>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PasswordRequirementCheckComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ selector: 'techlify-password-requirement-check', template: "<div class=\"alert\"\n style=\"font-size: 12px; padding: 5px;\"\n [ngClass]=\"{ 'alert-success' : result.isValid, 'alert-danger': !result.isValid }\"\n *ngIf=\"showResult\">\n <ul style=\"margin-bottom: 2px; padding-inline-start: 20px;\">\n <li *ngIf=\"accessControlConfiguration?.minPasswordLength > 0\">\n <span [ngClass]=\"{ 'text-success': result.minLength, 'text-danger': !result.minLength }\">\n Minimum Length Requirement: {{ accessControlConfiguration?.minPasswordLength }} Characters\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireNumber\">\n <span [ngClass]=\"{ 'text-success': result.hasNumber, 'text-danger': !result.hasNumber }\">\n Your password is required to add at least 1 number\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireSymbol\">\n <span [ngClass]=\"{ 'text-success': result.hasSymbol, 'text-danger': !result.hasSymbol }\">\n Your password is required to add at least 1 symbol.\n </span>\n </li>\n <li *ngIf=\"accessControlConfiguration?.isPasswordRequireCapitalLetter\">\n <span [ngClass]=\"{ 'text-success': result.hasCapitalLetter, 'text-danger': !result.hasCapitalLetter }\">\n Your password is required to add at least 1 capital letter\n </span>\n </li>\n </ul>\n</div>\n" }]
44
+ }], ctorParameters: function () { return [{ type: i1.AccessControlConfigService }]; }, propDecorators: { password: [{
45
+ type: Input
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFFbkcsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFRL0QsTUFBTSxPQUFPLGlDQUFpQztJQVE1QyxZQUNVLDBCQUFzRDtRQUF0RCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBSmhFLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsV0FBTSxHQUF3QixFQUFFLENBQUM7SUFJOUIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDcEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCO1lBQUUsT0FBTztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDaEQsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFRLEVBQUU7Z0JBQzVCLElBQUksQ0FBQywwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFGLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs4SEFyQ1UsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsa0lDWjlDLHcxQ0EyQkE7MkZEZmEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLHFDQUFxQztpSEFNdEMsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uL2FjY2Vzcy1jb250cm9sLWNvbmZpZy9hY2Nlc3MtY29udHJvbC1jb25maWcubW9kZWwnO1xuaW1wb3J0IFBhc3N3b3JkQ2hlY2tSZXN1bHQgZnJvbSAnLi4vcGFzc3dvcmQtY2hlY2stcmVzdWx0JztcbmltcG9ydCB7UGFzc3dvcmRDaGVja1NlcnZpY2V9IGZyb20gJy4uL3Bhc3N3b3JkLWNoZWNrLnNlcnZpY2UnO1xuaW1wb3J0IHtBY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZX0gZnJvbSBcIi4uLy4uL2FjY2Vzcy1jb250cm9sLWNvbmZpZy9hY2Nlc3MtY29udHJvbC1jb25maWcuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZWNobGlmeS1wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bhc3N3b3JkLXJlcXVpcmVtZW50LWNoZWNrLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFJlcXVpcmVtZW50Q2hlY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcGFzc3dvcmQ6IHN0cmluZztcblxuICBhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbjogQWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb247XG4gIHNob3dSZXN1bHQgPSBmYWxzZTtcbiAgcmVzdWx0OiBQYXNzd29yZENoZWNrUmVzdWx0ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZTogQWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5wYXNzd29yZCkge1xuICAgICAgdGhpcy5jaGVja1Bhc3N3b3JkUmVxdWlyZW1lbnRzKCk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tQYXNzd29yZFJlcXVpcmVtZW50cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb24pIHJldHVybjtcbiAgICB0aGlzLnJlc3VsdCA9IFBhc3N3b3JkQ2hlY2tTZXJ2aWNlLmNoZWNrUGFzc3dvcmRSZXF1aXJlbWVudHModGhpcy5wYXNzd29yZCwgdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbik7XG4gICAgdGhpcy5zaG93UmVzdWx0ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBhY2Nlc3MgY29udHJvbCBjb25maWcgZm9yIHRoZSBjdXJyZW50IGNsaWVudC5cbiAgICovXG4gIGdldENsaWVudENvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlLmluZGV4KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb24gPSBBY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbi5mcm9tT2JqZWN0KHJlc3BvbnNlPy5kYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0Q2xpZW50Q29uZmlnKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImFsZXJ0XCJcbiAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHg7IHBhZGRpbmc6IDVweDtcIlxuICAgICBbbmdDbGFzc109XCJ7ICdhbGVydC1zdWNjZXNzJyA6IHJlc3VsdC5pc1ZhbGlkLCAnYWxlcnQtZGFuZ2VyJzogIXJlc3VsdC5pc1ZhbGlkIH1cIlxuICAgICAqbmdJZj1cInNob3dSZXN1bHRcIj5cbiAgPHVsIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMnB4OyBwYWRkaW5nLWlubGluZS1zdGFydDogMjBweDtcIj5cbiAgICA8bGkgKm5nSWY9XCJhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbj8ubWluUGFzc3dvcmRMZW5ndGggPiAwXCI+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICd0ZXh0LXN1Y2Nlc3MnOiByZXN1bHQubWluTGVuZ3RoLCAndGV4dC1kYW5nZXInOiAhcmVzdWx0Lm1pbkxlbmd0aCB9XCI+XG4gICAgICAgIE1pbmltdW0gTGVuZ3RoIFJlcXVpcmVtZW50OiB7eyBhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbj8ubWluUGFzc3dvcmRMZW5ndGggfX0gQ2hhcmFjdGVyc1xuICAgICAgPC9zcGFuPlxuICAgIDwvbGk+XG4gICAgPGxpICpuZ0lmPVwiYWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb24/LmlzUGFzc3dvcmRSZXF1aXJlTnVtYmVyXCI+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICd0ZXh0LXN1Y2Nlc3MnOiByZXN1bHQuaGFzTnVtYmVyLCAndGV4dC1kYW5nZXInOiAhcmVzdWx0Lmhhc051bWJlciB9XCI+XG4gICAgICAgIFlvdXIgcGFzc3dvcmQgaXMgcmVxdWlyZWQgdG8gYWRkIGF0IGxlYXN0IDEgbnVtYmVyXG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nSWY9XCJhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbj8uaXNQYXNzd29yZFJlcXVpcmVTeW1ib2xcIj5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsgJ3RleHQtc3VjY2Vzcyc6IHJlc3VsdC5oYXNTeW1ib2wsICd0ZXh0LWRhbmdlcic6ICFyZXN1bHQuaGFzU3ltYm9sIH1cIj5cbiAgICAgICAgWW91ciBwYXNzd29yZCBpcyByZXF1aXJlZCB0byBhZGQgYXQgbGVhc3QgMSBzeW1ib2wuXG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nSWY9XCJhY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbj8uaXNQYXNzd29yZFJlcXVpcmVDYXBpdGFsTGV0dGVyXCI+XG4gICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICd0ZXh0LXN1Y2Nlc3MnOiByZXN1bHQuaGFzQ2FwaXRhbExldHRlciwgJ3RleHQtZGFuZ2VyJzogIXJlc3VsdC5oYXNDYXBpdGFsTGV0dGVyIH1cIj5cbiAgICAgICAgWW91ciBwYXNzd29yZCBpcyByZXF1aXJlZCB0byBhZGQgYXQgbGVhc3QgMSBjYXBpdGFsIGxldHRlclxuICAgICAgPC9zcGFuPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PasswordRequirementCheckComponent } from './password-requirement-check/password-requirement-check.component';
4
+ import * as i0 from "@angular/core";
5
+ export class PasswordRequirementCheckModule {
6
+ }
7
+ PasswordRequirementCheckModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PasswordRequirementCheckModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ PasswordRequirementCheckModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: PasswordRequirementCheckModule, declarations: [PasswordRequirementCheckComponent], imports: [CommonModule], exports: [PasswordRequirementCheckComponent] });
9
+ PasswordRequirementCheckModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PasswordRequirementCheckModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: PasswordRequirementCheckModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [
14
+ PasswordRequirementCheckComponent
15
+ ],
16
+ imports: [
17
+ CommonModule
18
+ ],
19
+ exports: [
20
+ PasswordRequirementCheckComponent
21
+ ]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVxdWlyZW1lbnQtY2hlY2subW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sbUVBQW1FLENBQUM7O0FBZXRILE1BQU0sT0FBTyw4QkFBOEI7OzJIQUE5Qiw4QkFBOEI7NEhBQTlCLDhCQUE4QixpQkFUdkMsaUNBQWlDLGFBR2pDLFlBQVksYUFHWixpQ0FBaUM7NEhBR3hCLDhCQUE4QixZQU52QyxZQUFZOzJGQU1ILDhCQUE4QjtrQkFYMUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUNBQWlDO3FCQUNsQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUNBQWlDO3FCQUNsQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGFzc3dvcmRSZXF1aXJlbWVudENoZWNrQ29tcG9uZW50IH0gZnJvbSAnLi9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay9wYXNzd29yZC1yZXF1aXJlbWVudC1jaGVjay5jb21wb25lbnQnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUGFzc3dvcmRSZXF1aXJlbWVudENoZWNrQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFBhc3N3b3JkUmVxdWlyZW1lbnRDaGVja0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkUmVxdWlyZW1lbnRDaGVja01vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './profile-edit.component';
2
+ export * from './profile-routing.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Byb2ZpbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9maWxlLWVkaXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZS1yb3V0aW5nLm1vZHVsZSc7XG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { Component, Output, EventEmitter } from '@angular/core';
2
+ import { Validators, UntypedFormControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../core";
5
+ import * as i2 from "../user";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "@angular/material/button";
9
+ import * as i6 from "@angular/material/form-field";
10
+ import * as i7 from "@angular/material/input";
11
+ import * as i8 from "@angular/material/divider";
12
+ const errorMessages = {
13
+ name: {
14
+ required: 'Name is required'
15
+ },
16
+ email: {
17
+ required: 'Email is required',
18
+ email: 'Invalid email'
19
+ },
20
+ };
21
+ /**
22
+ * Component to edit a user
23
+ *
24
+ * @author Saravana Kumar
25
+ * @since 20190719
26
+ */
27
+ export class ProfileEditComponent {
28
+ constructor(http, alertService, errorHandler, currentUserService, fb, formValidatorService) {
29
+ this.http = http;
30
+ this.alertService = alertService;
31
+ this.errorHandler = errorHandler;
32
+ this.currentUserService = currentUserService;
33
+ this.fb = fb;
34
+ this.formValidatorService = formValidatorService;
35
+ this.isWorking = false;
36
+ this.onSave = new EventEmitter();
37
+ this.profileForm = fb.group({
38
+ name: new UntypedFormControl('', Validators.required),
39
+ email: new UntypedFormControl('', [Validators.required, Validators.email]),
40
+ });
41
+ }
42
+ ngOnInit() {
43
+ this.user = this.currentUserService.getUser();
44
+ this.profileForm.patchValue(this.user);
45
+ }
46
+ save() {
47
+ if (!this.profileForm.valid) {
48
+ return;
49
+ }
50
+ this.isWorking = true;
51
+ this.http.put('api/users/profile/update', this.profileForm.value).toPromise().then((res) => {
52
+ this.onSave.emit(res.item);
53
+ this.currentUserService.updateCurrentUser(res.item);
54
+ this.alertService.addAlert('Successfully updated the user. ', 'success');
55
+ this.isWorking = false;
56
+ });
57
+ }
58
+ /** Method to evaluate form fields*/
59
+ isFieldValid(field) {
60
+ return this.formValidatorService.isFieldValid(field, this.profileForm);
61
+ }
62
+ /** Method to find error in form fields*/
63
+ getErrorMessage(field) {
64
+ return this.formValidatorService.getErrorMessage(field, this.profileForm, errorMessages);
65
+ }
66
+ }
67
+ ProfileEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileEditComponent, deps: [{ token: i1.HttpService }, { token: i1.AlertService }, { token: i1.ErrorHandlerService }, { token: i2.CurrentUserService }, { token: i3.UntypedFormBuilder }, { token: i1.FormValidatorService }], target: i0.ɵɵFactoryTarget.Component });
68
+ ProfileEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: ProfileEditComponent, selector: "profile-edit", outputs: { onSave: "onSave" }, ngImport: i0, template: "<form class=\"form-horizontal form-bordered form-medium mx-auto mt-4\" [formGroup]=\"profileForm\" (ngSubmit)=\"save()\">\n <h3 class=\"section title text-center\">\n Edit Profile\n </h3>\n <div class=\"form-group\" *ngIf=\"user.temporarily_invited\">\n <small class=\"form-text text-muted\">\n Please fill your name and you\u2019re currently using a temporary password, please change it to proceed\n </small>\n </div>\n <mat-divider></mat-divider>\n\n <div class=\"form-group row mt-3\">\n <mat-form-field class=\"offset-2 col-8\">\n <input matInput formControlName=\"name\" placeholder=\"Full Name\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('name')\">{{getErrorMessage('name')}}</mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"form-group row\">\n <mat-form-field class=\"offset-2 col-8\">\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('email')\">{{getErrorMessage('email')}}</mat-error>\n </mat-form-field>\n </div>\n\n <mat-divider></mat-divider>\n\n <div class=\"form-group mt-3\">\n <div class=\"col-sm-12 text-center\">\n <button mat-button class=\"btn btn-md btn-primary\" type=\"submit\" [disabled]=\"isWorking\">Save</button>\n </div>\n </div>\n\n</form>", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileEditComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'profile-edit', template: "<form class=\"form-horizontal form-bordered form-medium mx-auto mt-4\" [formGroup]=\"profileForm\" (ngSubmit)=\"save()\">\n <h3 class=\"section title text-center\">\n Edit Profile\n </h3>\n <div class=\"form-group\" *ngIf=\"user.temporarily_invited\">\n <small class=\"form-text text-muted\">\n Please fill your name and you\u2019re currently using a temporary password, please change it to proceed\n </small>\n </div>\n <mat-divider></mat-divider>\n\n <div class=\"form-group row mt-3\">\n <mat-form-field class=\"offset-2 col-8\">\n <input matInput formControlName=\"name\" placeholder=\"Full Name\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('name')\">{{getErrorMessage('name')}}</mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"form-group row\">\n <mat-form-field class=\"offset-2 col-8\">\n <input matInput formControlName=\"email\" placeholder=\"Email\" type=\"email\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('email')\">{{getErrorMessage('email')}}</mat-error>\n </mat-form-field>\n </div>\n\n <mat-divider></mat-divider>\n\n <div class=\"form-group mt-3\">\n <div class=\"col-sm-12 text-center\">\n <button mat-button class=\"btn btn-md btn-primary\" type=\"submit\" [disabled]=\"isWorking\">Save</button>\n </div>\n </div>\n\n</form>" }]
72
+ }], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i1.AlertService }, { type: i1.ErrorHandlerService }, { type: i2.CurrentUserService }, { type: i3.UntypedFormBuilder }, { type: i1.FormValidatorService }]; }, propDecorators: { onSave: [{
73
+ type: Output
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcHJvZmlsZS9wcm9maWxlLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9wcm9maWxlL3Byb2ZpbGUtZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl4RSxPQUFPLEVBQXdDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBSXRHLE1BQU0sYUFBYSxHQUFRO0lBQ3ZCLElBQUksRUFBRTtRQUNGLFFBQVEsRUFBRSxrQkFBa0I7S0FDL0I7SUFDRCxLQUFLLEVBQUU7UUFDSCxRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLEtBQUssRUFBRSxlQUFlO0tBQ3pCO0NBQ0osQ0FBQztBQUNGOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLG9CQUFvQjtJQU83QixZQUFvQixJQUFpQixFQUNqQixZQUEwQixFQUMxQixZQUFpQyxFQUNsQyxrQkFBc0MsRUFDckMsRUFBc0IsRUFDdEIsb0JBQTBDO1FBTDFDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2xDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDckMsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQVQ5RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBV2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNyRCxLQUFLLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3RSxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRTtZQUN6QixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDOUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELG9DQUFvQztJQUNwQyxZQUFZLENBQUMsS0FBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLGVBQWUsQ0FBQyxLQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM3RixDQUFDOztpSEFsRFEsb0JBQW9CO3FHQUFwQixvQkFBb0IsbUZDM0JqQywwOENBaUNPOzJGRE5NLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDSSxjQUFjO29RQUlkLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIEVycm9ySGFuZGxlclNlcnZpY2UsIEZvcm1WYWxpZGF0b3JTZXJ2aWNlLCBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi91c2VyJztcbmltcG9ydCB7IEN1cnJlbnRVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXInO1xuXG5jb25zdCBlcnJvck1lc3NhZ2VzOiBhbnkgPSB7XG4gICAgbmFtZToge1xuICAgICAgICByZXF1aXJlZDogJ05hbWUgaXMgcmVxdWlyZWQnXG4gICAgfSxcbiAgICBlbWFpbDoge1xuICAgICAgICByZXF1aXJlZDogJ0VtYWlsIGlzIHJlcXVpcmVkJyxcbiAgICAgICAgZW1haWw6ICdJbnZhbGlkIGVtYWlsJ1xuICAgIH0sXG59O1xuLyoqXG4gKiBDb21wb25lbnQgdG8gZWRpdCBhIHVzZXJcbiAqXG4gKiBAYXV0aG9yIFNhcmF2YW5hIEt1bWFyXG4gKiBAc2luY2UgMjAxOTA3MTlcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwcm9maWxlLWVkaXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlLWZvcm0uaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBvblNhdmU6IEV2ZW50RW1pdHRlcjxVc2VyPjtcblxuICAgIGlzV29ya2luZyA9IGZhbHNlO1xuICAgIHByb2ZpbGVGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIHVzZXI6IFVzZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHVibGljIGN1cnJlbnRVc2VyU2VydmljZTogQ3VycmVudFVzZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIGZvcm1WYWxpZGF0b3JTZXJ2aWNlOiBGb3JtVmFsaWRhdG9yU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5vblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXI+KCk7XG4gICAgICAgIHRoaXMucHJvZmlsZUZvcm0gPSBmYi5ncm91cCh7XG4gICAgICAgICAgICBuYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIGVtYWlsOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0pLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51c2VyID0gdGhpcy5jdXJyZW50VXNlclNlcnZpY2UuZ2V0VXNlcigpO1xuICAgICAgICB0aGlzLnByb2ZpbGVGb3JtLnBhdGNoVmFsdWUodGhpcy51c2VyKTtcbiAgICB9XG5cbiAgICBzYXZlKCkge1xuICAgICAgICBpZiAoIXRoaXMucHJvZmlsZUZvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5odHRwLnB1dCgnYXBpL3VzZXJzL3Byb2ZpbGUvdXBkYXRlJywgdGhpcy5wcm9maWxlRm9ybS52YWx1ZSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQocmVzLml0ZW0pO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFVzZXJTZXJ2aWNlLnVwZGF0ZUN1cnJlbnRVc2VyKHJlcy5pdGVtKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnU3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgdGhlIHVzZXIuICcsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRvIGV2YWx1YXRlIGZvcm0gZmllbGRzKi9cbiAgICBpc0ZpZWxkVmFsaWQoZmllbGQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5pc0ZpZWxkVmFsaWQoZmllbGQsIHRoaXMucHJvZmlsZUZvcm0pO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdG8gZmluZCBlcnJvciBpbiBmb3JtIGZpZWxkcyovXG4gICAgZ2V0RXJyb3JNZXNzYWdlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKGZpZWxkLCB0aGlzLnByb2ZpbGVGb3JtLCBlcnJvck1lc3NhZ2VzKTtcbiAgICB9XG5cbn1cbiIsIjxmb3JtIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsIGZvcm0tYm9yZGVyZWQgZm9ybS1tZWRpdW0gbXgtYXV0byBtdC00XCIgW2Zvcm1Hcm91cF09XCJwcm9maWxlRm9ybVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cbiAgICA8aDMgY2xhc3M9XCJzZWN0aW9uIHRpdGxlIHRleHQtY2VudGVyXCI+XG4gICAgICAgIEVkaXQgUHJvZmlsZVxuICAgIDwvaDM+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiAqbmdJZj1cInVzZXIudGVtcG9yYXJpbHlfaW52aXRlZFwiPlxuICAgICAgICA8c21hbGwgY2xhc3M9XCJmb3JtLXRleHQgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgUGxlYXNlIGZpbGwgeW91ciBuYW1lIGFuZCB5b3XigJlyZSBjdXJyZW50bHkgdXNpbmcgYSB0ZW1wb3JhcnkgcGFzc3dvcmQsIHBsZWFzZSBjaGFuZ2UgaXQgdG8gcHJvY2VlZFxuICAgICAgICA8L3NtYWxsPlxuICAgIDwvZGl2PlxuICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93IG10LTNcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwib2Zmc2V0LTIgY29sLThcIj5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJGdWxsIE5hbWVcIiB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCduYW1lJylcIj57e2dldEVycm9yTWVzc2FnZSgnbmFtZScpfX08L21hdC1lcnJvcj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJvZmZzZXQtMiBjb2wtOFwiPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJFbWFpbFwiIHR5cGU9XCJlbWFpbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdlbWFpbCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoJ2VtYWlsJyl9fTwvbWF0LWVycm9yPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtdC0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbWQgYnRuLXByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImlzV29ya2luZ1wiPlNhdmU8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbjwvZm9ybT4iXX0=
@@ -0,0 +1,23 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { ProfileEditComponent } from './profile-edit.component';
4
+ import { AuthenticationGuard } from '../core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ const routes = [
8
+ { path: '', component: ProfileEditComponent, canActivate: [AuthenticationGuard] }
9
+ ];
10
+ export class ProfileRoutingModule {
11
+ }
12
+ ProfileRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ ProfileRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: ProfileRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
14
+ ProfileRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileRoutingModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ imports: [RouterModule.forChild(routes)],
19
+ exports: [RouterModule],
20
+ providers: []
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcHJvZmlsZS9wcm9maWxlLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7O0FBRTlDLE1BQU0sTUFBTSxHQUFXO0lBQ3JCLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRTtDQUNsRixDQUFDO0FBT0YsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLHdDQUhyQixZQUFZO2tIQUdYLG9CQUFvQixZQUpyQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzJGQUdYLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlcywgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFByb2ZpbGVFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9maWxlLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uR3VhcmQgfSBmcm9tICcuLi9jb3JlJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHsgcGF0aDogJycsIGNvbXBvbmVudDogUHJvZmlsZUVkaXRDb21wb25lbnQsIGNhbkFjdGl2YXRlOiBbQXV0aGVudGljYXRpb25HdWFyZF0gfVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVJvdXRpbmdNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { ProfileEditComponent } from './profile-edit.component';
5
+ import { ProfileRoutingModule } from './profile-routing.module';
6
+ import { MaterialModule } from '../material.module';
7
+ import * as i0 from "@angular/core";
8
+ export class ProfileModule {
9
+ }
10
+ ProfileModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ ProfileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: ProfileModule, declarations: [ProfileEditComponent], imports: [CommonModule,
12
+ ReactiveFormsModule,
13
+ MaterialModule,
14
+ ProfileRoutingModule], exports: [ProfileEditComponent] });
15
+ ProfileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileModule, imports: [CommonModule,
16
+ ReactiveFormsModule,
17
+ MaterialModule,
18
+ ProfileRoutingModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: ProfileModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [
23
+ CommonModule,
24
+ ReactiveFormsModule,
25
+ MaterialModule,
26
+ ProfileRoutingModule,
27
+ ],
28
+ declarations: [
29
+ ProfileEditComponent
30
+ ],
31
+ exports: [
32
+ ProfileEditComponent
33
+ ]
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Byb2ZpbGUvcHJvZmlsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQWdCcEQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFOdEIsb0JBQW9CLGFBTnBCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsY0FBYztRQUNkLG9CQUFvQixhQU1wQixvQkFBb0I7MkdBR1gsYUFBYSxZQVp0QixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCxvQkFBb0I7MkZBU1gsYUFBYTtrQkFkekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2Qsb0JBQW9CO3FCQUNyQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFByb2ZpbGVFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9maWxlLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2ZpbGVSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9wcm9maWxlLXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIFByb2ZpbGVSb3V0aW5nTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBQcm9maWxlRWRpdENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUHJvZmlsZUVkaXRDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './restrictors.module';
2
+ export * from './restrictor-type-selector/restrictor-type-selector.module';
3
+ export * from './restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc3RyaWN0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHdGQUF3RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXN0cmljdG9ycy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXN0cmljdG9yLXR5cGUtc2VsZWN0b3IvcmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc3RyaWN0b3ItdHlwZS1zZWxlY3Rvci9yZXN0cmljdG9yLXR5cGUtc2VsZWN0b3IvcmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,91 @@
1
+ /* tslint:disable:component-selector variable-name */
2
+ import { Component, Input } from '@angular/core';
3
+ import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../restrictor-level.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/material/button-toggle";
8
+ import * as i4 from "@angular/forms";
9
+ export class RestrictorLevelSelectorComponent {
10
+ constructor(restrictorLevelService) {
11
+ this.restrictorLevelService = restrictorLevelService;
12
+ this.label = 'Level';
13
+ this.multiple = false;
14
+ this.showLabel = true;
15
+ this.valueChanged = false;
16
+ this.disabled = false;
17
+ this.selectedOption = new FormControl();
18
+ this.options = [];
19
+ this.onChange = (value) => { };
20
+ this.onTouched = () => { };
21
+ }
22
+ ngOnInit() {
23
+ // fetch the data
24
+ this.fetchData();
25
+ // listen for input changes
26
+ this.selectedOption.valueChanges.subscribe((value) => {
27
+ if (this._value || this._value === '') {
28
+ this.valueChanged = true;
29
+ this.onChange(value);
30
+ this.onTouched();
31
+ }
32
+ this._value = value;
33
+ });
34
+ }
35
+ writeValue(value) {
36
+ this.selectedOption.setValue(value);
37
+ }
38
+ registerOnChange(fn) {
39
+ this.onChange = (value) => {
40
+ this.valueChanged = true;
41
+ this._value = value;
42
+ fn(value);
43
+ };
44
+ }
45
+ registerOnTouched(fn) {
46
+ this.onTouched = fn;
47
+ }
48
+ setDisabledState(isDisabled) {
49
+ this.disabled = isDisabled;
50
+ }
51
+ /**
52
+ * Reset the form control value
53
+ */
54
+ resetField() {
55
+ this.selectedOption.setValue('');
56
+ }
57
+ /**
58
+ * Get task types.
59
+ * @private
60
+ */
61
+ fetchData() {
62
+ this.restrictorLevelService.index().subscribe((response) => {
63
+ this.options = response?.data;
64
+ });
65
+ }
66
+ }
67
+ RestrictorLevelSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelSelectorComponent, deps: [{ token: i1.RestrictorLevelService }], target: i0.ɵɵFactoryTarget.Component });
68
+ RestrictorLevelSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: { label: "label", multiple: "multiple", showLabel: "showLabel" }, providers: [
69
+ {
70
+ provide: NG_VALUE_ACCESSOR,
71
+ multi: true,
72
+ useExisting: RestrictorLevelSelectorComponent
73
+ }
74
+ ], ngImport: i0, template: "<div *ngIf=\"options?.length > 0\">\n <span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n <mat-button-toggle-group [formControl]=\"selectedOption\" [multiple]=\"multiple\">\n <mat-button-toggle *ngFor=\"let option of options\"\n [value]=\"option?.id\">\n {{ option?.title }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelSelectorComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'techlify-restrictor-level-selector', providers: [
78
+ {
79
+ provide: NG_VALUE_ACCESSOR,
80
+ multi: true,
81
+ useExisting: RestrictorLevelSelectorComponent
82
+ }
83
+ ], template: "<div *ngIf=\"options?.length > 0\">\n <span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n <mat-button-toggle-group [formControl]=\"selectedOption\" [multiple]=\"multiple\">\n <mat-button-toggle *ngFor=\"let option of options\"\n [value]=\"option?.id\">\n {{ option?.title }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n" }]
84
+ }], ctorParameters: function () { return [{ type: i1.RestrictorLevelService }]; }, propDecorators: { label: [{
85
+ type: Input
86
+ }], multiple: [{
87
+ type: Input
88
+ }], showLabel: [{
89
+ type: Input
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci1sZXZlbC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc3RyaWN0b3JzL3Jlc3RyaWN0b3ItbGV2ZWwtc2VsZWN0b3IvcmVzdHJpY3Rvci1sZXZlbC1zZWxlY3Rvci9yZXN0cmljdG9yLWxldmVsLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVzdHJpY3RvcnMvcmVzdHJpY3Rvci1sZXZlbC1zZWxlY3Rvci9yZXN0cmljdG9yLWxldmVsLXNlbGVjdG9yL3Jlc3RyaWN0b3ItbGV2ZWwtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscURBQXFEO0FBQ3JELE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBdUIsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWVwRixNQUFNLE9BQU8sZ0NBQWdDO0lBRTNDLFlBQ1Usc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFHL0MsVUFBSyxHQUFHLE9BQU8sQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHMUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUVwQixhQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUU5QixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBZmpCLENBQUM7SUFpQkwsUUFBUTtRQUNOLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3hELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNsQjtZQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSyxTQUFTO1FBQ2YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzlELElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUFFLElBQUksQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzZIQXRFVSxnQ0FBZ0M7aUhBQWhDLGdDQUFnQyx1SUFSaEM7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsZ0NBQWdDO1NBQzlDO0tBQ0YsMEJDZkgseVpBU0E7MkZEUWEsZ0NBQWdDO2tCQVo1QyxTQUFTOytCQUNFLG9DQUFvQyxhQUduQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLGtDQUFrQzt5QkFDOUM7cUJBQ0Y7NkdBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOmNvbXBvbmVudC1zZWxlY3RvciB2YXJpYWJsZS1uYW1lICovXG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7UmVzdHJpY3RvckxldmVsU2VydmljZX0gZnJvbSAnLi4vcmVzdHJpY3Rvci1sZXZlbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGVjaGxpZnktcmVzdHJpY3Rvci1sZXZlbC1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0cmljdG9yLWxldmVsLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdHJpY3Rvci1sZXZlbC1zZWxlY3Rvci5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogUmVzdHJpY3RvckxldmVsU2VsZWN0b3JDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVzdHJpY3RvckxldmVsU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlc3RyaWN0b3JMZXZlbFNlcnZpY2U6IFJlc3RyaWN0b3JMZXZlbFNlcnZpY2VcbiAgKSB7IH1cblxuICBASW5wdXQoKSBsYWJlbCA9ICdMZXZlbCc7XG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dMYWJlbCA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IGFueTtcbiAgdmFsdWVDaGFuZ2VkID0gZmFsc2U7XG5cbiAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgb3B0aW9uczogYW55W10gPSBbXTtcblxuICBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBmZXRjaCB0aGUgZGF0YVxuICAgIHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgLy8gbGlzdGVuIGZvciBpbnB1dCBjaGFuZ2VzXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbi52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAodGhpcy5fdmFsdWUgfHwgdGhpcy5fdmFsdWUgPT09ICcnKSB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbi5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICBmbih2YWx1ZSk7XG4gICAgfTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBmb3JtIGNvbnRyb2wgdmFsdWVcbiAgICovXG4gIHJlc2V0RmllbGQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbi5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRhc2sgdHlwZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGZldGNoRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3RyaWN0b3JMZXZlbFNlcnZpY2UuaW5kZXgoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlPy5kYXRhO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwib3B0aW9ucz8ubGVuZ3RoID4gMFwiPlxuICA8c3BhbiAqbmdJZj1cInNob3dMYWJlbFwiIGNsYXNzPVwibXItMVwiPnt7IGxhYmVsIH19PC9zcGFuPiA8YnIgKm5nSWY9XCJzaG93TGFiZWxcIj5cbiAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFtmb3JtQ29udHJvbF09XCJzZWxlY3RlZE9wdGlvblwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uPy5pZFwiPlxuICAgICAge3sgb3B0aW9uPy50aXRsZSB9fVxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,36 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RestrictorLevelSelectorComponent } from './restrictor-level-selector/restrictor-level-selector.component';
4
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import { MatTooltipModule } from '@angular/material/tooltip';
7
+ import * as i0 from "@angular/core";
8
+ export class RestrictorLevelSelectorModule {
9
+ }
10
+ RestrictorLevelSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ RestrictorLevelSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelSelectorModule, declarations: [RestrictorLevelSelectorComponent], imports: [CommonModule,
12
+ MatButtonToggleModule,
13
+ ReactiveFormsModule,
14
+ MatTooltipModule], exports: [RestrictorLevelSelectorComponent] });
15
+ RestrictorLevelSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelSelectorModule, imports: [CommonModule,
16
+ MatButtonToggleModule,
17
+ ReactiveFormsModule,
18
+ MatTooltipModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelSelectorModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ declarations: [
23
+ RestrictorLevelSelectorComponent
24
+ ],
25
+ imports: [
26
+ CommonModule,
27
+ MatButtonToggleModule,
28
+ ReactiveFormsModule,
29
+ MatTooltipModule
30
+ ],
31
+ exports: [
32
+ RestrictorLevelSelectorComponent
33
+ ]
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci1sZXZlbC1zZWxlY3Rvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc3RyaWN0b3JzL3Jlc3RyaWN0b3ItbGV2ZWwtc2VsZWN0b3IvcmVzdHJpY3Rvci1sZXZlbC1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDbkgsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7O0FBa0IzRCxNQUFNLE9BQU8sNkJBQTZCOzswSEFBN0IsNkJBQTZCOzJIQUE3Qiw2QkFBNkIsaUJBWnRDLGdDQUFnQyxhQUdoQyxZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQixnQkFBZ0IsYUFHaEIsZ0NBQWdDOzJIQUd2Qiw2QkFBNkIsWUFUdEMsWUFBWTtRQUNaLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsZ0JBQWdCOzJGQU1QLDZCQUE2QjtrQkFkekMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0NBQWdDO3FCQUNqQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVzdHJpY3RvckxldmVsU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL3Jlc3RyaWN0b3ItbGV2ZWwtc2VsZWN0b3IvcmVzdHJpY3Rvci1sZXZlbC1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRCdXR0b25Ub2dnbGVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmVzdHJpY3RvckxldmVsU2VsZWN0b3JDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSZXN0cmljdG9yTGV2ZWxTZWxlY3RvckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJlc3RyaWN0b3JMZXZlbFNlbGVjdG9yTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,19 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TechlifyServiceBaseClass } from '../../base-model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../core";
5
+ export class RestrictorLevelService extends TechlifyServiceBaseClass {
6
+ constructor(httpService) {
7
+ super(httpService, 'restrictor-levels');
8
+ this.httpService = httpService;
9
+ }
10
+ }
11
+ RestrictorLevelService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
12
+ RestrictorLevelService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelService, providedIn: 'root' });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorLevelService, decorators: [{
14
+ type: Injectable,
15
+ args: [{
16
+ providedIn: 'root'
17
+ }]
18
+ }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci1sZXZlbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yZXN0cmljdG9ycy9yZXN0cmljdG9yLWxldmVsLXNlbGVjdG9yL3Jlc3RyaWN0b3ItbGV2ZWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7QUFLMUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQUVsRSxZQUNVLFdBQXdCO1FBRWhDLEtBQUssQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUZoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUdsQyxDQUFDOzttSEFOVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQge1RlY2hsaWZ5U2VydmljZUJhc2VDbGFzc30gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlc3RyaWN0b3JMZXZlbFNlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHBTZXJ2aWNlLCAncmVzdHJpY3Rvci1sZXZlbHMnKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,91 @@
1
+ /* tslint:disable:component-selector variable-name */
2
+ import { Component, Input } from '@angular/core';
3
+ import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../restrictor-status.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/material/button-toggle";
8
+ import * as i4 from "@angular/forms";
9
+ export class RestrictorStatusSelectorComponent {
10
+ constructor(restrictorStatusService) {
11
+ this.restrictorStatusService = restrictorStatusService;
12
+ this.label = 'Status';
13
+ this.multiple = false;
14
+ this.showLabel = true;
15
+ this.valueChanged = false;
16
+ this.disabled = false;
17
+ this.selectedOption = new FormControl();
18
+ this.options = [];
19
+ this.onChange = (value) => { };
20
+ this.onTouched = () => { };
21
+ }
22
+ ngOnInit() {
23
+ // fetch the data
24
+ this.fetchData();
25
+ // listen for input changes
26
+ this.selectedOption.valueChanges.subscribe((value) => {
27
+ if (this._value || this._value === '') {
28
+ this.valueChanged = true;
29
+ this.onChange(value);
30
+ this.onTouched();
31
+ }
32
+ this._value = value;
33
+ });
34
+ }
35
+ writeValue(value) {
36
+ this.selectedOption.setValue(value);
37
+ }
38
+ registerOnChange(fn) {
39
+ this.onChange = (value) => {
40
+ this.valueChanged = true;
41
+ this._value = value;
42
+ fn(value);
43
+ };
44
+ }
45
+ registerOnTouched(fn) {
46
+ this.onTouched = fn;
47
+ }
48
+ setDisabledState(isDisabled) {
49
+ this.disabled = isDisabled;
50
+ }
51
+ /**
52
+ * Reset the form control value
53
+ */
54
+ resetField() {
55
+ this.selectedOption.setValue('');
56
+ }
57
+ /**
58
+ * Get task types.
59
+ * @private
60
+ */
61
+ fetchData() {
62
+ this.restrictorStatusService.index().subscribe((response) => {
63
+ this.options = response?.data;
64
+ });
65
+ }
66
+ }
67
+ RestrictorStatusSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusSelectorComponent, deps: [{ token: i1.RestrictorStatusService }], target: i0.ɵɵFactoryTarget.Component });
68
+ RestrictorStatusSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: RestrictorStatusSelectorComponent, selector: "techlify-restrictor-status-selector", inputs: { label: "label", multiple: "multiple", showLabel: "showLabel" }, providers: [
69
+ {
70
+ provide: NG_VALUE_ACCESSOR,
71
+ multi: true,
72
+ useExisting: RestrictorStatusSelectorComponent
73
+ }
74
+ ], ngImport: i0, template: "<div *ngIf=\"options?.length > 0\">\n <span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n <mat-button-toggle-group [formControl]=\"selectedOption\" [multiple]=\"multiple\">\n <mat-button-toggle *ngFor=\"let option of options\"\n [value]=\"option?.id\">\n {{ option?.title }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusSelectorComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'techlify-restrictor-status-selector', providers: [
78
+ {
79
+ provide: NG_VALUE_ACCESSOR,
80
+ multi: true,
81
+ useExisting: RestrictorStatusSelectorComponent
82
+ }
83
+ ], template: "<div *ngIf=\"options?.length > 0\">\n <span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n <mat-button-toggle-group [formControl]=\"selectedOption\" [multiple]=\"multiple\">\n <mat-button-toggle *ngFor=\"let option of options\"\n [value]=\"option?.id\">\n {{ option?.title }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n" }]
84
+ }], ctorParameters: function () { return [{ type: i1.RestrictorStatusService }]; }, propDecorators: { label: [{
85
+ type: Input
86
+ }], multiple: [{
87
+ type: Input
88
+ }], showLabel: [{
89
+ type: Input
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci1zdGF0dXMtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yZXN0cmljdG9ycy9yZXN0cmljdG9yLXN0YXR1cy1zZWxlY3Rvci9yZXN0cmljdG9yLXN0YXR1cy1zZWxlY3Rvci9yZXN0cmljdG9yLXN0YXR1cy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc3RyaWN0b3JzL3Jlc3RyaWN0b3Itc3RhdHVzLXNlbGVjdG9yL3Jlc3RyaWN0b3Itc3RhdHVzLXNlbGVjdG9yL3Jlc3RyaWN0b3Itc3RhdHVzLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFEQUFxRDtBQUNyRCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQWU5RCxNQUFNLE9BQU8saUNBQWlDO0lBRTVDLFlBQ1UsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFHakQsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHMUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbkMsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUVwQixhQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUU5QixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBZmpCLENBQUM7SUFpQkwsUUFBUTtRQUNOLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3hELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNsQjtZQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDWixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSyxTQUFTO1FBQ2YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUFFLElBQUksQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhIQXRFVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyx3SUFSakM7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsaUNBQWlDO1NBQy9DO0tBQ0YsMEJDZkgseVpBU0E7MkZEUWEsaUNBQWlDO2tCQVo3QyxTQUFTOytCQUNFLHFDQUFxQyxhQUdwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLG1DQUFtQzt5QkFDL0M7cUJBQ0Y7OEdBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOmNvbXBvbmVudC1zZWxlY3RvciB2YXJpYWJsZS1uYW1lICovXG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtSZXN0cmljdG9yU3RhdHVzU2VydmljZX0gZnJvbSAnLi4vcmVzdHJpY3Rvci1zdGF0dXMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RlY2hsaWZ5LXJlc3RyaWN0b3Itc3RhdHVzLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3RyaWN0b3Itc3RhdHVzLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdHJpY3Rvci1zdGF0dXMtc2VsZWN0b3IuY29tcG9uZW50LmNzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IFJlc3RyaWN0b3JTdGF0dXNTZWxlY3RvckNvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZXN0cmljdG9yU3RhdHVzU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzdHJpY3RvclN0YXR1c1NlcnZpY2U6IFJlc3RyaWN0b3JTdGF0dXNTZXJ2aWNlXG4gICkgeyB9XG5cbiAgQElucHV0KCkgbGFiZWwgPSAnU3RhdHVzJztcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0xhYmVsID0gdHJ1ZTtcblxuICBwcml2YXRlIF92YWx1ZTogYW55O1xuICB2YWx1ZUNoYW5nZWQgPSBmYWxzZTtcblxuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBzZWxlY3RlZE9wdGlvbiA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBvcHRpb25zOiBhbnlbXSA9IFtdO1xuXG4gIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGZldGNoIHRoZSBkYXRhXG4gICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgICAvLyBsaXN0ZW4gZm9yIGlucHV0IGNoYW5nZXNcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLl92YWx1ZSB8fCB0aGlzLl92YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIGZuKHZhbHVlKTtcbiAgICB9O1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIGZvcm0gY29udHJvbCB2YWx1ZVxuICAgKi9cbiAgcmVzZXRGaWVsZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLnNldFZhbHVlKCcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGFzayB0eXBlcy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZmV0Y2hEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMucmVzdHJpY3RvclN0YXR1c1NlcnZpY2UuaW5kZXgoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlPy5kYXRhO1xuICAgIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJvcHRpb25zPy5sZW5ndGggPiAwXCI+XG4gIDxzcGFuICpuZ0lmPVwic2hvd0xhYmVsXCIgY2xhc3M9XCJtci0xXCI+e3sgbGFiZWwgfX08L3NwYW4+IDxiciAqbmdJZj1cInNob3dMYWJlbFwiPlxuICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW2Zvcm1Db250cm9sXT1cInNlbGVjdGVkT3B0aW9uXCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgPG1hdC1idXR0b24tdG9nZ2xlICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24/LmlkXCI+XG4gICAgICB7eyBvcHRpb24/LnRpdGxlIH19XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbjwvZGl2PlxuIl19