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,32 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RestrictorStatusSelectorComponent } from './restrictor-status-selector/restrictor-status-selector.component';
4
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import * as i0 from "@angular/core";
7
+ export class RestrictorStatusSelectorModule {
8
+ }
9
+ RestrictorStatusSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ RestrictorStatusSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusSelectorModule, declarations: [RestrictorStatusSelectorComponent], imports: [CommonModule,
11
+ MatButtonToggleModule,
12
+ ReactiveFormsModule], exports: [RestrictorStatusSelectorComponent] });
13
+ RestrictorStatusSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusSelectorModule, imports: [CommonModule,
14
+ MatButtonToggleModule,
15
+ ReactiveFormsModule] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusSelectorModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [
20
+ RestrictorStatusSelectorComponent
21
+ ],
22
+ imports: [
23
+ CommonModule,
24
+ MatButtonToggleModule,
25
+ ReactiveFormsModule
26
+ ],
27
+ exports: [
28
+ RestrictorStatusSelectorComponent
29
+ ]
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci1zdGF0dXMtc2VsZWN0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yZXN0cmljdG9ycy9yZXN0cmljdG9yLXN0YXR1cy1zZWxlY3Rvci9yZXN0cmljdG9yLXN0YXR1cy1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDdEgsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBaUJuRCxNQUFNLE9BQU8sOEJBQThCOzsySEFBOUIsOEJBQThCOzRIQUE5Qiw4QkFBOEIsaUJBWHZDLGlDQUFpQyxhQUdqQyxZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLG1CQUFtQixhQUduQixpQ0FBaUM7NEhBR3hCLDhCQUE4QixZQVJ2QyxZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLG1CQUFtQjsyRkFNViw4QkFBOEI7a0JBYjFDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlDQUFpQztxQkFDbEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQ0FBaUM7cUJBQ2xDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZXN0cmljdG9yU3RhdHVzU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL3Jlc3RyaWN0b3Itc3RhdHVzLXNlbGVjdG9yL3Jlc3RyaWN0b3Itc3RhdHVzLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge01hdEJ1dHRvblRvZ2dsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJlc3RyaWN0b3JTdGF0dXNTZWxlY3RvckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSZXN0cmljdG9yU3RhdHVzU2VsZWN0b3JDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZXN0cmljdG9yU3RhdHVzU2VsZWN0b3JNb2R1bGUgeyB9XG4iXX0=
@@ -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 RestrictorStatusService extends TechlifyServiceBaseClass {
6
+ constructor(httpService) {
7
+ super(httpService, 'restrictor-statuses');
8
+ this.httpService = httpService;
9
+ }
10
+ }
11
+ RestrictorStatusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
12
+ RestrictorStatusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusService, providedIn: 'root' });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorStatusService, decorators: [{
14
+ type: Injectable,
15
+ args: [{
16
+ providedIn: 'root'
17
+ }]
18
+ }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVzdHJpY3RvcnMvcmVzdHJpY3Rvci1zdGF0dXMtc2VsZWN0b3IvcmVzdHJpY3Rvci1zdGF0dXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7QUFLMUQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHdCQUF3QjtJQUVuRSxZQUNVLFdBQXdCO1FBRWhDLEtBQUssQ0FBQyxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUZsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUdsQyxDQUFDOztvSEFOVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7VGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzfSBmcm9tICcuLi8uLi9iYXNlLW1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVzdHJpY3RvclN0YXR1c1NlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHBTZXJ2aWNlLCAncmVzdHJpY3Rvci1zdGF0dXNlcycpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,92 @@
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-type.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
+ import * as i5 from "@angular/material/tooltip";
10
+ export class RestrictorTypeSelectorComponent {
11
+ constructor(restrictorTypeService) {
12
+ this.restrictorTypeService = restrictorTypeService;
13
+ this.label = 'Type';
14
+ this.multiple = false;
15
+ this.showLabel = true;
16
+ this.valueChanged = false;
17
+ this.disabled = false;
18
+ this.selectedOption = new FormControl();
19
+ this.options = [];
20
+ this.onChange = (value) => { };
21
+ this.onTouched = () => { };
22
+ }
23
+ ngOnInit() {
24
+ // fetch the data
25
+ this.fetchData();
26
+ // listen for input changes
27
+ this.selectedOption.valueChanges.subscribe((value) => {
28
+ if (this._value || this._value === '') {
29
+ this.valueChanged = true;
30
+ this.onChange(value);
31
+ this.onTouched();
32
+ }
33
+ this._value = value;
34
+ });
35
+ }
36
+ writeValue(value) {
37
+ this.selectedOption.setValue(value);
38
+ }
39
+ registerOnChange(fn) {
40
+ this.onChange = (value) => {
41
+ this.valueChanged = true;
42
+ this._value = value;
43
+ fn(value);
44
+ };
45
+ }
46
+ registerOnTouched(fn) {
47
+ this.onTouched = fn;
48
+ }
49
+ setDisabledState(isDisabled) {
50
+ this.disabled = isDisabled;
51
+ }
52
+ /**
53
+ * Reset the form control value
54
+ */
55
+ resetField() {
56
+ this.selectedOption.setValue('');
57
+ }
58
+ /**
59
+ * Get task types.
60
+ * @private
61
+ */
62
+ fetchData() {
63
+ this.restrictorTypeService.index().subscribe((response) => {
64
+ this.options = response?.data;
65
+ });
66
+ }
67
+ }
68
+ RestrictorTypeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeSelectorComponent, deps: [{ token: i1.RestrictorTypeService }], target: i0.ɵɵFactoryTarget.Component });
69
+ RestrictorTypeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: { label: "label", multiple: "multiple", showLabel: "showLabel" }, providers: [
70
+ {
71
+ provide: NG_VALUE_ACCESSOR,
72
+ multi: true,
73
+ useExisting: RestrictorTypeSelectorComponent
74
+ }
75
+ ], 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 [matTooltip]=\"option?.description\">\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"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeSelectorComponent, decorators: [{
77
+ type: Component,
78
+ args: [{ selector: 'techlify-restrictor-type-selector', providers: [
79
+ {
80
+ provide: NG_VALUE_ACCESSOR,
81
+ multi: true,
82
+ useExisting: RestrictorTypeSelectorComponent
83
+ }
84
+ ], 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 [matTooltip]=\"option?.description\">\n {{ option?.title }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n" }]
85
+ }], ctorParameters: function () { return [{ type: i1.RestrictorTypeService }]; }, propDecorators: { label: [{
86
+ type: Input
87
+ }], multiple: [{
88
+ type: Input
89
+ }], showLabel: [{
90
+ type: Input
91
+ }] } });
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVzdHJpY3RvcnMvcmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yL3Jlc3RyaWN0b3ItdHlwZS1zZWxlY3Rvci9yZXN0cmljdG9yLXR5cGUtc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yZXN0cmljdG9ycy9yZXN0cmljdG9yLXR5cGUtc2VsZWN0b3IvcmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yL3Jlc3RyaWN0b3ItdHlwZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFDckQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWNwRixNQUFNLE9BQU8sK0JBQStCO0lBRTFDLFlBQ1UscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFHN0MsVUFBSyxHQUFHLE1BQU0sQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUcxQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuQyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBRXBCLGFBQVEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRTlCLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFmakIsQ0FBQztJQWlCTCxRQUFRO1FBQ04saUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDeEQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2xCO1lBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNaLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFNBQVM7UUFDZixJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLEVBQUUsSUFBSSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NEhBdEVVLCtCQUErQjtnSEFBL0IsK0JBQStCLHNJQVIvQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSwrQkFBK0I7U0FDN0M7S0FDRiwwQkNmSCxzZEFVQTsyRkRPYSwrQkFBK0I7a0JBWjNDLFNBQVM7K0JBQ0UsbUNBQW1DLGFBR2xDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsaUNBQWlDO3lCQUM3QztxQkFDRjs0R0FRUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6Y29tcG9uZW50LXNlbGVjdG9yIHZhcmlhYmxlLW5hbWUgKi9cbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVzdHJpY3RvclR5cGVTZXJ2aWNlfSBmcm9tICcuLi9yZXN0cmljdG9yLXR5cGUuc2VydmljZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGVjaGxpZnktcmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3RyaWN0b3ItdHlwZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3RyaWN0b3ItdHlwZS1zZWxlY3Rvci5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogUmVzdHJpY3RvclR5cGVTZWxlY3RvckNvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZXN0cmljdG9yVHlwZVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZXN0cmljdG9yVHlwZVNlcnZpY2U6IFJlc3RyaWN0b3JUeXBlU2VydmljZVxuICApIHsgfVxuXG4gIEBJbnB1dCgpIGxhYmVsID0gJ1R5cGUnO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93TGFiZWwgPSB0cnVlO1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG4gIHZhbHVlQ2hhbmdlZCA9IGZhbHNlO1xuXG4gIGRpc2FibGVkID0gZmFsc2U7XG4gIHNlbGVjdGVkT3B0aW9uID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIG9wdGlvbnM6IGFueVtdID0gW107XG5cbiAgb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gZmV0Y2ggdGhlIGRhdGFcbiAgICB0aGlzLmZldGNoRGF0YSgpO1xuICAgIC8vIGxpc3RlbiBmb3IgaW5wdXQgY2hhbmdlc1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgaWYgKHRoaXMuX3ZhbHVlIHx8IHRoaXMuX3ZhbHVlID09PSAnJykge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlZCA9IHRydWU7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgZm4odmFsdWUpO1xuICAgIH07XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgZm9ybSBjb250cm9sIHZhbHVlXG4gICAqL1xuICByZXNldEZpZWxkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24uc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0YXNrIHR5cGVzLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBmZXRjaERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5yZXN0cmljdG9yVHlwZVNlcnZpY2UuaW5kZXgoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHJlc3BvbnNlPy5kYXRhO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwib3B0aW9ucz8ubGVuZ3RoID4gMFwiPlxuICA8c3BhbiAqbmdJZj1cInNob3dMYWJlbFwiIGNsYXNzPVwibXItMVwiPnt7IGxhYmVsIH19PC9zcGFuPiA8YnIgKm5nSWY9XCJzaG93TGFiZWxcIj5cbiAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFtmb3JtQ29udHJvbF09XCJzZWxlY3RlZE9wdGlvblwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uPy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIm9wdGlvbj8uZGVzY3JpcHRpb25cIj5cbiAgICAgIHt7IG9wdGlvbj8udGl0bGUgfX1cbiAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RestrictorTypeSelectorComponent } from './restrictor-type-selector/restrictor-type-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 RestrictorTypeSelectorModule {
9
+ }
10
+ RestrictorTypeSelectorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ RestrictorTypeSelectorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeSelectorModule, declarations: [RestrictorTypeSelectorComponent], imports: [CommonModule,
12
+ MatButtonToggleModule,
13
+ ReactiveFormsModule,
14
+ MatTooltipModule], exports: [RestrictorTypeSelectorComponent] });
15
+ RestrictorTypeSelectorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeSelectorModule, imports: [CommonModule,
16
+ MatButtonToggleModule,
17
+ ReactiveFormsModule,
18
+ MatTooltipModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeSelectorModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ declarations: [
23
+ RestrictorTypeSelectorComponent
24
+ ],
25
+ imports: [
26
+ CommonModule,
27
+ MatButtonToggleModule,
28
+ ReactiveFormsModule,
29
+ MatTooltipModule
30
+ ],
31
+ exports: [
32
+ RestrictorTypeSelectorComponent
33
+ ]
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVzdHJpY3RvcnMvcmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yL3Jlc3RyaWN0b3ItdHlwZS1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDaEgsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7O0FBa0IzRCxNQUFNLE9BQU8sNEJBQTRCOzt5SEFBNUIsNEJBQTRCOzBIQUE1Qiw0QkFBNEIsaUJBWnJDLCtCQUErQixhQUcvQixZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQixnQkFBZ0IsYUFHaEIsK0JBQStCOzBIQUd0Qiw0QkFBNEIsWUFUckMsWUFBWTtRQUNaLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsZ0JBQWdCOzJGQU1QLDRCQUE0QjtrQkFkeEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osK0JBQStCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsK0JBQStCO3FCQUNoQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVzdHJpY3RvclR5cGVTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vcmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yL3Jlc3RyaWN0b3ItdHlwZS1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRCdXR0b25Ub2dnbGVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmVzdHJpY3RvclR5cGVTZWxlY3RvckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJlc3RyaWN0b3JUeXBlU2VsZWN0b3JDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZXN0cmljdG9yVHlwZVNlbGVjdG9yTW9kdWxlIHsgfVxuIl19
@@ -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 RestrictorTypeService extends TechlifyServiceBaseClass {
6
+ constructor(httpService) {
7
+ super(httpService, 'restrictor-types');
8
+ this.httpService = httpService;
9
+ }
10
+ }
11
+ RestrictorTypeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
12
+ RestrictorTypeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeService, providedIn: 'root' });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorTypeService, decorators: [{
14
+ type: Injectable,
15
+ args: [{
16
+ providedIn: 'root'
17
+ }]
18
+ }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci10eXBlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc3RyaWN0b3JzL3Jlc3RyaWN0b3ItdHlwZS1zZWxlY3Rvci9yZXN0cmljdG9yLXR5cGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7QUFLMUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHdCQUF3QjtJQUVqRSxZQUNVLFdBQXdCO1FBRWhDLEtBQUssQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUYvQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUdsQyxDQUFDOztrSEFOVSxxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3N9IGZyb20gJy4uLy4uL2Jhc2UtbW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZXN0cmljdG9yVHlwZVNlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cFNlcnZpY2U6IEh0dHBTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHBTZXJ2aWNlLCAncmVzdHJpY3Rvci10eXBlcycpO1xuICB9XG59XG4iXX0=
@@ -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 RestrictorService extends TechlifyServiceBaseClass {
6
+ constructor(httpService) {
7
+ super(httpService, 'restrictors');
8
+ this.httpService = httpService;
9
+ }
10
+ }
11
+ RestrictorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
12
+ RestrictorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorService, providedIn: 'root' });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorService, decorators: [{
14
+ type: Injectable,
15
+ args: [{
16
+ providedIn: 'root'
17
+ }]
18
+ }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yZXN0cmljdG9ycy9yZXN0cmljdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUt2RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsd0JBQXdCO0lBRTdELFlBQ1UsV0FBd0I7UUFFaEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUYxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUdsQyxDQUFDOzs4R0FOVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQge1RlY2hsaWZ5U2VydmljZUJhc2VDbGFzc30gZnJvbSAnLi4vYmFzZS1tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlc3RyaWN0b3JTZXJ2aWNlIGV4dGVuZHMgVGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwU2VydmljZSwgJ3Jlc3RyaWN0b3JzJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,102 @@
1
+ /* tslint:disable:no-bitwise component-selector */
2
+ import { Component, Input } from '@angular/core';
3
+ import { Validators } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../../request-helper/request-helper.service";
8
+ import * as i4 from "../../core";
9
+ import * as i5 from "../restrictor.service";
10
+ import * as i6 from "@angular/material/button";
11
+ import * as i7 from "@angular/flex-layout/flex";
12
+ import * as i8 from "../restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component";
13
+ import * as i9 from "@angular/material/form-field";
14
+ import * as i10 from "@angular/material/input";
15
+ import * as i11 from "@angular/material/datepicker";
16
+ import * as i12 from "@angular/material/select";
17
+ import * as i13 from "@angular/material/core";
18
+ import * as i14 from "../../ip-address-selector/ip-range-selector/ip-range-selector.component";
19
+ import * as i15 from "../restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component";
20
+ import * as i16 from "../../searchable-selector/searchable-selector.component";
21
+ export class RestrictorsFormComponent {
22
+ constructor(fb, location, requestHelperService, alertService, restrictorService, datePipe) {
23
+ this.fb = fb;
24
+ this.location = location;
25
+ this.requestHelperService = requestHelperService;
26
+ this.alertService = alertService;
27
+ this.restrictorService = restrictorService;
28
+ this.datePipe = datePipe;
29
+ this.form = this.fb.group({
30
+ id: [''],
31
+ type_id: ['', Validators.required],
32
+ start_date: [''],
33
+ start_time: [''],
34
+ end_date: [''],
35
+ end_time: [''],
36
+ ip_range: [''],
37
+ level_id: ['', Validators.required],
38
+ restricted_object_id: ['', Validators.required],
39
+ notes: ['']
40
+ });
41
+ }
42
+ ngOnInit() {
43
+ if (this.restrictor) {
44
+ const startDate = this.datePipe.transform(this.restrictor?.data?.start_time, 'yyyy-MM-dd');
45
+ const endDate = this.datePipe.transform(this.restrictor?.data?.end_time, 'yyyy-MM-dd');
46
+ const startTime = this.datePipe.transform(this.restrictor?.data?.start_time, 'HH:mm');
47
+ const endTime = this.datePipe.transform(this.restrictor?.data?.end_time, 'HH:mm');
48
+ // set form values
49
+ this.form.patchValue({
50
+ id: this.restrictor?.id,
51
+ type_id: this.restrictor?.type_id,
52
+ start_date: startDate,
53
+ end_date: endDate,
54
+ start_time: startTime,
55
+ end_time: endTime,
56
+ ip_range: this.restrictor?.data?.ip_range,
57
+ level_id: this.restrictor?.level_id,
58
+ restricted_object_id: this.restrictor?.restrictable_id,
59
+ notes: this.restrictor?.notes
60
+ });
61
+ }
62
+ }
63
+ /**
64
+ * Send the request to save the restrictor record.
65
+ */
66
+ save() {
67
+ const data = this.requestHelperService.convertToFormData(this.form.value);
68
+ if (data?.type_id === 1) {
69
+ data.start_time = data.start_date + ' ' + data.start_time + ':00';
70
+ data.end_time = data.end_date + ' ' + data.end_time + ':00';
71
+ }
72
+ this.isSaving = true;
73
+ // prepare create or update request.
74
+ let request = this.restrictorService.store(data);
75
+ if (this.restrictor?.id) {
76
+ request = this.restrictorService.update(data);
77
+ }
78
+ request.subscribe({
79
+ next: () => {
80
+ this.isSaving = false;
81
+ this.alertService.addAlert('The restrictor record saved successfully!', 'success');
82
+ this.redirectBack();
83
+ },
84
+ error: () => this.isSaving = false
85
+ });
86
+ }
87
+ /**
88
+ * Redirect back to last location.
89
+ */
90
+ redirectBack() {
91
+ this.location.back();
92
+ }
93
+ }
94
+ RestrictorsFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorsFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.Location }, { token: i3.RequestHelperService }, { token: i4.AlertService }, { token: i5.RestrictorService }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
95
+ RestrictorsFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: RestrictorsFormComponent, selector: "techlify-restrictors-form", inputs: { restrictor: "restrictor" }, ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" class=\"mb-0\">\n <h3>Restrictor Form</h3>\n</div>\n\n<form [formGroup]=\"form\"\n fxLayout=\"row wrap\" fxLayoutAlign=\"start\" fxLayoutGap=\"10px\"\n (submit)=\"save()\">\n\n <techlify-restrictor-type-selector formControlName=\"type_id\"\n fxFlex=\"calc(100% - 10px)\"></techlify-restrictor-type-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Date</mat-label>\n <input formControlName=\"start_date\" matInput [matDatepicker]=\"startDatePicker\" (focus)=\"startDatePicker.open()\">\n <mat-datepicker #startDatePicker></mat-datepicker>\n <mat-hint>From what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Time</mat-label>\n <input formControlName=\"start_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Date</mat-label>\n <input formControlName=\"end_date\" matInput [matDatepicker]=\"endDatePicker\" (focus)=\"endDatePicker.open()\">\n <mat-datepicker #endDatePicker></mat-datepicker>\n <mat-hint>Up to what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Time</mat-label>\n <input formControlName=\"end_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <techlify-ip-range-selector fxFlex=\"calc(100% - 10px)\"\n label=\"IP Address Range (IP & Subnet Field)\"\n formControlName=\"ip_range\"\n *ngIf=\"form.value?.type_id === 2\"\n class=\"mt-2 mb-3\"></techlify-ip-range-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\">\n <techlify-restrictor-level-selector fxFlex=\"calc(50% - 10px)\"\n formControlName=\"level_id\"></techlify-restrictor-level-selector>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\" *ngIf=\"form.value?.level_id\">\n <mat-label>Object</mat-label>\n <mat-select *ngIf=\"form.value?.level_id === 1\" formControlName=\"restricted_object_id\">\n <mat-option [value]=\"2\">Client Admin</mat-option>\n <mat-option [value]=\"3\">Client User</mat-option>\n </mat-select>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 2\"\n apiUrl=\"api/roles\"\n titleField=\"label\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 3\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n </mat-form-field>\n </div>\n\n <mat-form-field fxFlex=\"calc(100% - 10px)\" class=\"mt-2\">\n <mat-label>Notes</mat-label>\n <textarea matInput formControlName=\"notes\"></textarea>\n </mat-form-field>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\">\n <button [disabled]=\"isSaving\" type=\"submit\" mat-raised-button color=\"primary\">Save</button>\n <button [disabled]=\"isSaving\" (click)=\"redirectBack()\" type=\"button\" mat-flat-button>Cancel</button>\n </div>\n\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.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: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i8.RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.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: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.IpRangeSelectorComponent, selector: "techlify-ip-range-selector", inputs: ["label"] }, { kind: "component", type: i15.RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i16.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorsFormComponent, decorators: [{
97
+ type: Component,
98
+ args: [{ selector: 'techlify-restrictors-form', template: "<div fxLayout fxLayoutAlign=\"center\" class=\"mb-0\">\n <h3>Restrictor Form</h3>\n</div>\n\n<form [formGroup]=\"form\"\n fxLayout=\"row wrap\" fxLayoutAlign=\"start\" fxLayoutGap=\"10px\"\n (submit)=\"save()\">\n\n <techlify-restrictor-type-selector formControlName=\"type_id\"\n fxFlex=\"calc(100% - 10px)\"></techlify-restrictor-type-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Date</mat-label>\n <input formControlName=\"start_date\" matInput [matDatepicker]=\"startDatePicker\" (focus)=\"startDatePicker.open()\">\n <mat-datepicker #startDatePicker></mat-datepicker>\n <mat-hint>From what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Time</mat-label>\n <input formControlName=\"start_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Date</mat-label>\n <input formControlName=\"end_date\" matInput [matDatepicker]=\"endDatePicker\" (focus)=\"endDatePicker.open()\">\n <mat-datepicker #endDatePicker></mat-datepicker>\n <mat-hint>Up to what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Time</mat-label>\n <input formControlName=\"end_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <techlify-ip-range-selector fxFlex=\"calc(100% - 10px)\"\n label=\"IP Address Range (IP & Subnet Field)\"\n formControlName=\"ip_range\"\n *ngIf=\"form.value?.type_id === 2\"\n class=\"mt-2 mb-3\"></techlify-ip-range-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\">\n <techlify-restrictor-level-selector fxFlex=\"calc(50% - 10px)\"\n formControlName=\"level_id\"></techlify-restrictor-level-selector>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\" *ngIf=\"form.value?.level_id\">\n <mat-label>Object</mat-label>\n <mat-select *ngIf=\"form.value?.level_id === 1\" formControlName=\"restricted_object_id\">\n <mat-option [value]=\"2\">Client Admin</mat-option>\n <mat-option [value]=\"3\">Client User</mat-option>\n </mat-select>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 2\"\n apiUrl=\"api/roles\"\n titleField=\"label\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 3\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n </mat-form-field>\n </div>\n\n <mat-form-field fxFlex=\"calc(100% - 10px)\" class=\"mt-2\">\n <mat-label>Notes</mat-label>\n <textarea matInput formControlName=\"notes\"></textarea>\n </mat-form-field>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\">\n <button [disabled]=\"isSaving\" type=\"submit\" mat-raised-button color=\"primary\">Save</button>\n <button [disabled]=\"isSaving\" (click)=\"redirectBack()\" type=\"button\" mat-flat-button>Cancel</button>\n </div>\n\n</form>\n" }]
99
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.Location }, { type: i3.RequestHelperService }, { type: i4.AlertService }, { type: i5.RestrictorService }, { type: i2.DatePipe }]; }, propDecorators: { restrictor: [{
100
+ type: Input
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3RvcnMtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc3RyaWN0b3JzL3Jlc3RyaWN0b3JzLWZvcm0vcmVzdHJpY3RvcnMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc3RyaWN0b3JzL3Jlc3RyaWN0b3JzLWZvcm0vcmVzdHJpY3RvcnMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrREFBa0Q7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUF5QixVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWWxFLE1BQU0sT0FBTyx3QkFBd0I7SUFPbkMsWUFDVSxFQUFlLEVBQ2YsUUFBa0IsRUFDbEIsb0JBQTBDLEVBQzFDLFlBQTBCLEVBQzFCLGlCQUFvQyxFQUNwQyxRQUFrQjtRQUxsQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3hCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2QsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2QsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2QsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixNQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDbkcsTUFBTSxPQUFPLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQy9GLE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5RixNQUFNLE9BQU8sR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFMUYsa0JBQWtCO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNuQixFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPO2dCQUNqQyxVQUFVLEVBQUUsU0FBUztnQkFDckIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVE7Z0JBQ3pDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVE7Z0JBQ25DLG9CQUFvQixFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZTtnQkFDdEQsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSzthQUM5QixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDRixNQUFNLElBQUksR0FBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxJQUFJLElBQUksRUFBRSxPQUFPLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDbEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUM3RDtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLG9DQUFvQztRQUNwQyxJQUFJLE9BQU8sR0FBb0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNoQixJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQywyQ0FBMkMsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O3FIQWxGVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qix1R0NkckMsZ3ZIQWtGQTsyRkRwRWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLDJCQUEyQjs4T0FNNUIsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOm5vLWJpdHdpc2UgY29tcG9uZW50LXNlbGVjdG9yICovXG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RGF0ZVBpcGUsIExvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtBbGVydFNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtSZXN0cmljdG9yU2VydmljZX0gZnJvbSAnLi4vcmVzdHJpY3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1JlcXVlc3RIZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXF1ZXN0LWhlbHBlci9yZXF1ZXN0LWhlbHBlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGVjaGxpZnktcmVzdHJpY3RvcnMtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0cmljdG9ycy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdHJpY3RvcnMtZm9ybS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVzdHJpY3RvcnNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSByZXN0cmljdG9yOiBhbnk7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuICBpc1NhdmluZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHJlcXVlc3RIZWxwZXJTZXJ2aWNlOiBSZXF1ZXN0SGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVzdHJpY3RvclNlcnZpY2U6IFJlc3RyaWN0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaWQ6IFsnJ10sXG4gICAgICB0eXBlX2lkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgc3RhcnRfZGF0ZTogWycnXSxcbiAgICAgIHN0YXJ0X3RpbWU6IFsnJ10sXG4gICAgICBlbmRfZGF0ZTogWycnXSxcbiAgICAgIGVuZF90aW1lOiBbJyddLFxuICAgICAgaXBfcmFuZ2U6IFsnJ10sXG4gICAgICBsZXZlbF9pZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHJlc3RyaWN0ZWRfb2JqZWN0X2lkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgbm90ZXM6IFsnJ11cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlc3RyaWN0b3IpIHtcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogc3RyaW5nID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5yZXN0cmljdG9yPy5kYXRhPy5zdGFydF90aW1lLCAneXl5eS1NTS1kZCcpO1xuICAgICAgY29uc3QgZW5kRGF0ZTogc3RyaW5nID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5yZXN0cmljdG9yPy5kYXRhPy5lbmRfdGltZSwgJ3l5eXktTU0tZGQnKTtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZTogc3RyaW5nID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5yZXN0cmljdG9yPy5kYXRhPy5zdGFydF90aW1lLCAnSEg6bW0nKTtcbiAgICAgIGNvbnN0IGVuZFRpbWU6IHN0cmluZyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMucmVzdHJpY3Rvcj8uZGF0YT8uZW5kX3RpbWUsICdISDptbScpO1xuXG4gICAgICAvLyBzZXQgZm9ybSB2YWx1ZXNcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgaWQ6IHRoaXMucmVzdHJpY3Rvcj8uaWQsXG4gICAgICAgIHR5cGVfaWQ6IHRoaXMucmVzdHJpY3Rvcj8udHlwZV9pZCxcbiAgICAgICAgc3RhcnRfZGF0ZTogc3RhcnREYXRlLFxuICAgICAgICBlbmRfZGF0ZTogZW5kRGF0ZSxcbiAgICAgICAgc3RhcnRfdGltZTogc3RhcnRUaW1lLFxuICAgICAgICBlbmRfdGltZTogZW5kVGltZSxcbiAgICAgICAgaXBfcmFuZ2U6IHRoaXMucmVzdHJpY3Rvcj8uZGF0YT8uaXBfcmFuZ2UsXG4gICAgICAgIGxldmVsX2lkOiB0aGlzLnJlc3RyaWN0b3I/LmxldmVsX2lkLFxuICAgICAgICByZXN0cmljdGVkX29iamVjdF9pZDogdGhpcy5yZXN0cmljdG9yPy5yZXN0cmljdGFibGVfaWQsXG4gICAgICAgIG5vdGVzOiB0aGlzLnJlc3RyaWN0b3I/Lm5vdGVzXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCB0aGUgcmVxdWVzdCB0byBzYXZlIHRoZSByZXN0cmljdG9yIHJlY29yZC5cbiAgICovXG4gIHNhdmUoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YTogYW55ID0gdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS5jb252ZXJ0VG9Gb3JtRGF0YSh0aGlzLmZvcm0udmFsdWUpO1xuICAgIGlmIChkYXRhPy50eXBlX2lkID09PSAxKSB7XG4gICAgICBkYXRhLnN0YXJ0X3RpbWUgPSBkYXRhLnN0YXJ0X2RhdGUgKyAnICcgKyBkYXRhLnN0YXJ0X3RpbWUgKyAnOjAwJztcbiAgICAgIGRhdGEuZW5kX3RpbWUgPSBkYXRhLmVuZF9kYXRlICsgJyAnICsgZGF0YS5lbmRfdGltZSArICc6MDAnO1xuICAgIH1cbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcbiAgICAvLyBwcmVwYXJlIGNyZWF0ZSBvciB1cGRhdGUgcmVxdWVzdC5cbiAgICBsZXQgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5yZXN0cmljdG9yU2VydmljZS5zdG9yZShkYXRhKTtcbiAgICBpZiAodGhpcy5yZXN0cmljdG9yPy5pZCkge1xuICAgICAgcmVxdWVzdCA9IHRoaXMucmVzdHJpY3RvclNlcnZpY2UudXBkYXRlKGRhdGEpO1xuICAgIH1cbiAgICByZXF1ZXN0LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1RoZSByZXN0cmljdG9yIHJlY29yZCBzYXZlZCBzdWNjZXNzZnVsbHkhJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgdGhpcy5yZWRpcmVjdEJhY2soKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gdGhpcy5pc1NhdmluZyA9IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVkaXJlY3QgYmFjayB0byBsYXN0IGxvY2F0aW9uLlxuICAgKi9cbiAgcmVkaXJlY3RCYWNrKCk6IHZvaWQge1xuICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICB9XG59XG4iLCI8ZGl2IGZ4TGF5b3V0IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cIm1iLTBcIj5cbiAgPGgzPlJlc3RyaWN0b3IgRm9ybTwvaDM+XG48L2Rpdj5cblxuPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgIGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEFsaWduPVwic3RhcnRcIiBmeExheW91dEdhcD1cIjEwcHhcIlxuICAgICAgKHN1Ym1pdCk9XCJzYXZlKClcIj5cblxuICA8dGVjaGxpZnktcmVzdHJpY3Rvci10eXBlLXNlbGVjdG9yIGZvcm1Db250cm9sTmFtZT1cInR5cGVfaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ4RmxleD1cImNhbGMoMTAwJSAtIDEwcHgpXCI+PC90ZWNobGlmeS1yZXN0cmljdG9yLXR5cGUtc2VsZWN0b3I+XG5cbiAgPGRpdiBmeExheW91dCBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZsZXg9XCJjYWxjKDEwMCUgLSAxMHB4KVwiXG4gICAgICAgY2xhc3M9XCJtdC0yXCJcbiAgICAgICAqbmdJZj1cImZvcm0udmFsdWU/LnR5cGVfaWQgPT09IDFcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiY2FsYyg1MCUgLSAxMHB4KVwiPlxuICAgICAgPG1hdC1sYWJlbD5TdGFydCBEYXRlPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRfZGF0ZVwiIG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cInN0YXJ0RGF0ZVBpY2tlclwiIChmb2N1cyk9XCJzdGFydERhdGVQaWNrZXIub3BlbigpXCI+XG4gICAgICA8bWF0LWRhdGVwaWNrZXIgI3N0YXJ0RGF0ZVBpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgPG1hdC1oaW50PkZyb20gd2hhdCB0aW1lIHNob3VsZCB3ZSBhbGxvdyB1c2VyIGFjY2Vzcy48L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiY2FsYyg1MCUgLSAxMHB4KVwiPlxuICAgICAgPG1hdC1sYWJlbD5TdGFydCBUaW1lPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRfdGltZVwiIG1hdElucHV0IHR5cGU9XCJ0aW1lXCI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBmeExheW91dCBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZsZXg9XCJjYWxjKDEwMCUgLSAxMHB4KVwiXG4gICAgICAgY2xhc3M9XCJtdC0yXCJcbiAgICAgICAqbmdJZj1cImZvcm0udmFsdWU/LnR5cGVfaWQgPT09IDFcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiY2FsYyg1MCUgLSAxMHB4KVwiPlxuICAgICAgPG1hdC1sYWJlbD5FbmQgRGF0ZTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImVuZF9kYXRlXCIgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiZW5kRGF0ZVBpY2tlclwiIChmb2N1cyk9XCJlbmREYXRlUGlja2VyLm9wZW4oKVwiPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNlbmREYXRlUGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICA8bWF0LWhpbnQ+VXAgdG8gd2hhdCB0aW1lIHNob3VsZCB3ZSBhbGxvdyB1c2VyIGFjY2Vzcy48L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiY2FsYyg1MCUgLSAxMHB4KVwiPlxuICAgICAgPG1hdC1sYWJlbD5FbmQgVGltZTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImVuZF90aW1lXCIgbWF0SW5wdXQgdHlwZT1cInRpbWVcIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8dGVjaGxpZnktaXAtcmFuZ2Utc2VsZWN0b3IgZnhGbGV4PVwiY2FsYygxMDAlIC0gMTBweClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJJUCBBZGRyZXNzIFJhbmdlIChJUCAmIFN1Ym5ldCBGaWVsZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXBfcmFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtLnZhbHVlPy50eXBlX2lkID09PSAyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMiBtYi0zXCI+PC90ZWNobGlmeS1pcC1yYW5nZS1zZWxlY3Rvcj5cblxuICA8ZGl2IGZ4TGF5b3V0IGZ4TGF5b3V0R2FwPVwiMTBweFwiIGZ4RmxleD1cImNhbGMoMTAwJSAtIDEwcHgpXCJcbiAgICAgICBjbGFzcz1cIm10LTJcIj5cbiAgICA8dGVjaGxpZnktcmVzdHJpY3Rvci1sZXZlbC1zZWxlY3RvciBmeEZsZXg9XCJjYWxjKDUwJSAtIDEwcHgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGV2ZWxfaWRcIj48L3RlY2hsaWZ5LXJlc3RyaWN0b3ItbGV2ZWwtc2VsZWN0b3I+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiY2FsYyg1MCUgLSAxMHB4KVwiICpuZ0lmPVwiZm9ybS52YWx1ZT8ubGV2ZWxfaWRcIj5cbiAgICAgIDxtYXQtbGFiZWw+T2JqZWN0PC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCAqbmdJZj1cImZvcm0udmFsdWU/LmxldmVsX2lkID09PSAxXCIgZm9ybUNvbnRyb2xOYW1lPVwicmVzdHJpY3RlZF9vYmplY3RfaWRcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjJcIj5DbGllbnQgQWRtaW48L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIzXCI+Q2xpZW50IFVzZXI8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgKm5nSWY9XCJmb3JtLnZhbHVlPy5sZXZlbF9pZCA9PT0gMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpVXJsPVwiYXBpL3JvbGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZUZpZWxkPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc3RyaWN0ZWRfb2JqZWN0X2lkXCI+PC9hcHAtc2VhcmNoYWJsZS1zZWxlY3Rvcj5cbiAgICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvciAqbmdJZj1cImZvcm0udmFsdWU/LmxldmVsX2lkID09PSAzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlVcmw9XCJhcGkvdXNlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlRmllbGQ9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXN0cmljdGVkX29iamVjdF9pZFwiPjwvYXBwLXNlYXJjaGFibGUtc2VsZWN0b3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cImNhbGMoMTAwJSAtIDEwcHgpXCIgY2xhc3M9XCJtdC0yXCI+XG4gICAgPG1hdC1sYWJlbD5Ob3RlczwvbWF0LWxhYmVsPlxuICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJub3Rlc1wiPjwvdGV4dGFyZWE+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPGRpdiBmeEZsZXg9XCIxMDAlXCIgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzU2F2aW5nXCIgdHlwZT1cInN1Ym1pdFwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiPlNhdmU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiIChjbGljayk9XCJyZWRpcmVjdEJhY2soKVwiIHR5cGU9XCJidXR0b25cIiBtYXQtZmxhdC1idXR0b24+Q2FuY2VsPC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2Zvcm0+XG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "../restrictor.service";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@angular/flex-layout/flex";
7
+ import * as i5 from "@angular/material/card";
8
+ import * as i6 from "@angular/material/progress-bar";
9
+ import * as i7 from "../restrictors-form/restrictors-form.component";
10
+ export class RestrictorsFormPageComponent {
11
+ constructor(activatedRoute, restrictorService) {
12
+ this.activatedRoute = activatedRoute;
13
+ this.restrictorService = restrictorService;
14
+ this.id = this.activatedRoute.snapshot.params?.id;
15
+ if (this.id) {
16
+ // fetch restrictor data
17
+ this.fetchData();
18
+ }
19
+ }
20
+ ngOnInit() {
21
+ }
22
+ /**
23
+ * Fetch restrictor data.
24
+ *
25
+ * @private
26
+ */
27
+ fetchData() {
28
+ this.isWorking = true;
29
+ this.restrictorService.show(this.id).subscribe({
30
+ next: (response) => {
31
+ this.restrictor = response;
32
+ this.isWorking = false;
33
+ },
34
+ error: () => this.isWorking = false
35
+ });
36
+ }
37
+ }
38
+ RestrictorsFormPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorsFormPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.RestrictorService }], target: i0.ɵɵFactoryTarget.Component });
39
+ RestrictorsFormPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: RestrictorsFormPageComponent, selector: "lib-restrictors-form-page", ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"start center\">\n <mat-card fxFlex=\"50%\" fxFlexOffset=\"25%\">\n <mat-card-content>\n <techlify-restrictors-form *ngIf=\"!isWorking else progressBarTemplate\"\n [restrictor]=\"restrictor\"></techlify-restrictors-form>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #progressBarTemplate>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i7.RestrictorsFormComponent, selector: "techlify-restrictors-form", inputs: ["restrictor"] }] });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: RestrictorsFormPageComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'lib-restrictors-form-page', template: "<div fxLayout fxLayoutAlign=\"start center\">\n <mat-card fxFlex=\"50%\" fxFlexOffset=\"25%\">\n <mat-card-content>\n <techlify-restrictors-form *ngIf=\"!isWorking else progressBarTemplate\"\n [restrictor]=\"restrictor\"></techlify-restrictors-form>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #progressBarTemplate>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n" }]
43
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.RestrictorService }]; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3RvcnMtZm9ybS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVzdHJpY3RvcnMvcmVzdHJpY3RvcnMtZm9ybS1wYWdlL3Jlc3RyaWN0b3JzLWZvcm0tcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3Jlc3RyaWN0b3JzL3Jlc3RyaWN0b3JzLWZvcm0tcGFnZS9yZXN0cmljdG9ycy1mb3JtLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBU2xELE1BQU0sT0FBTyw0QkFBNEI7SUFNdkMsWUFDVSxjQUE4QixFQUM5QixpQkFBb0M7UUFEcEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFFNUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNYLHdCQUF3QjtZQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssU0FBUztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM3QyxJQUFJLEVBQUUsQ0FBQyxRQUFhLEVBQVEsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O3lIQWxDVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixpRUNUekMsNGNBWUE7MkZESGEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtSZXN0cmljdG9yU2VydmljZX0gZnJvbSAnLi4vcmVzdHJpY3Rvci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXJlc3RyaWN0b3JzLWZvcm0tcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN0cmljdG9ycy1mb3JtLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN0cmljdG9ycy1mb3JtLXBhZ2UuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlc3RyaWN0b3JzRm9ybVBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGlkOiBudW1iZXI7XG4gIHJlc3RyaWN0b3I6IGFueTtcbiAgaXNXb3JraW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVzdHJpY3RvclNlcnZpY2U6IFJlc3RyaWN0b3JTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtcz8uaWQ7XG4gICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgIC8vIGZldGNoIHJlc3RyaWN0b3IgZGF0YVxuICAgICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCByZXN0cmljdG9yIGRhdGEuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGZldGNoRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgdGhpcy5yZXN0cmljdG9yU2VydmljZS5zaG93KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnJlc3RyaWN0b3IgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGZ4TGF5b3V0IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgPG1hdC1jYXJkIGZ4RmxleD1cIjUwJVwiIGZ4RmxleE9mZnNldD1cIjI1JVwiPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgPHRlY2hsaWZ5LXJlc3RyaWN0b3JzLWZvcm0gKm5nSWY9XCIhaXNXb3JraW5nIGVsc2UgcHJvZ3Jlc3NCYXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzdHJpY3Rvcl09XCJyZXN0cmljdG9yXCI+PC90ZWNobGlmeS1yZXN0cmljdG9ycy1mb3JtPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3Byb2dyZXNzQmFyVGVtcGxhdGU+XG4gIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==