keevo-components 1.8.48 → 1.8.50

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 (202) hide show
  1. package/README.md +24 -24
  2. package/esm2022/keevo-components.mjs +4 -4
  3. package/esm2022/lib/api/base-components/base-component-button.mjs +36 -36
  4. package/esm2022/lib/api/base-components/base-component-chart.mjs +92 -92
  5. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +298 -298
  6. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +78 -78
  7. package/esm2022/lib/api/base-components/base-component-crud.mjs +65 -65
  8. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +31 -31
  9. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +169 -169
  10. package/esm2022/lib/api/base-components/base-component-input.mjs +94 -94
  11. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +130 -130
  12. package/esm2022/lib/api/base-components/base-component.mjs +51 -51
  13. package/esm2022/lib/api/components/chart/chart.config.mjs +2 -2
  14. package/esm2022/lib/api/components/chart/chart.model.mjs +2 -2
  15. package/esm2022/lib/api/components/chart/orchart.config.mjs +2 -2
  16. package/esm2022/lib/api/components/chart/orchart.item.mjs +2 -2
  17. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +2 -2
  18. package/esm2022/lib/api/components/table/action-item.mjs +2 -2
  19. package/esm2022/lib/api/components/table/kv-menuitem.mjs +3 -3
  20. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +2 -2
  21. package/esm2022/lib/api/components/table/table.config.column.mjs +2 -2
  22. package/esm2022/lib/api/components/table/table.config.mjs +2 -2
  23. package/esm2022/lib/api/components/table/table.paginate.mjs +9 -9
  24. package/esm2022/lib/api/components/table/tabledit.config.mjs +2 -2
  25. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +2 -2
  26. package/esm2022/lib/api/directives/template/template.directive.mjs +24 -24
  27. package/esm2022/lib/api/helpers/component-providers.mjs +16 -16
  28. package/esm2022/lib/api/helpers/keevo-validators.mjs +72 -72
  29. package/esm2022/lib/api/helpers/translate-primeng.mjs +23 -23
  30. package/esm2022/lib/api/modules/primeng.module.mjs +255 -255
  31. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +25 -25
  32. package/esm2022/lib/api/pipes/mask.pipe.mjs +29 -29
  33. package/esm2022/lib/api/pipes/pipes.module.mjs +34 -34
  34. package/esm2022/lib/api/pipes/telefone.pipe.mjs +45 -45
  35. package/esm2022/lib/api/services/base.api.service.mjs +74 -74
  36. package/esm2022/lib/api/services/breadcrumbs.service.mjs +57 -57
  37. package/esm2022/lib/api/services/component.service.mjs +27 -27
  38. package/esm2022/lib/api/services/form.service.mjs +85 -85
  39. package/esm2022/lib/api/services/imagens.service.mjs +28 -28
  40. package/esm2022/lib/api/services/notification.service.mjs +67 -67
  41. package/esm2022/lib/api/services/object.service.mjs +39 -39
  42. package/esm2022/lib/components/keevo-components.module.mjs +137 -137
  43. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +78 -78
  44. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +32 -32
  45. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +31 -31
  46. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +31 -31
  47. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +17 -17
  48. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +17 -17
  49. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +39 -39
  50. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +92 -92
  51. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +28 -28
  52. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +145 -145
  53. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +32 -32
  54. package/esm2022/lib/components/kv-error/kv-error.component.mjs +26 -26
  55. package/esm2022/lib/components/kv-error/kv-error.module.mjs +35 -35
  56. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +26 -26
  57. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +37 -37
  58. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +88 -88
  59. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +89 -89
  60. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +29 -29
  61. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +59 -59
  62. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +33 -33
  63. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +25 -25
  64. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +42 -42
  65. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +43 -43
  66. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +24 -24
  67. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +108 -108
  68. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +44 -44
  69. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +53 -53
  70. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +34 -34
  71. package/esm2022/lib/components/kv-label/kv-label.component.mjs +15 -15
  72. package/esm2022/lib/components/kv-label/kv-label.module.mjs +24 -24
  73. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +17 -17
  74. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +28 -28
  75. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +29 -29
  76. package/esm2022/lib/components/kv-login/kv-login.component.mjs +52 -52
  77. package/esm2022/lib/components/kv-login/kv-login.module.mjs +47 -47
  78. package/esm2022/lib/components/kv-menu/kv-menu.component.mjs +197 -190
  79. package/esm2022/lib/components/kv-menu/kv-menu.module.mjs +47 -47
  80. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +69 -69
  81. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +31 -31
  82. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +100 -100
  83. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +24 -24
  84. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +147 -147
  85. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +38 -38
  86. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +48 -48
  87. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +32 -32
  88. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +58 -58
  89. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +28 -28
  90. package/esm2022/lib/components/kv-table/kv-table.component.mjs +553 -553
  91. package/esm2022/lib/components/kv-table/kv-table.module.mjs +36 -36
  92. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +564 -564
  93. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +34 -34
  94. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +220 -220
  95. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +28 -28
  96. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +30 -30
  97. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +28 -28
  98. package/esm2022/lib/components/kv-workspace/kv-workspace.component.mjs +178 -178
  99. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +51 -51
  100. package/esm2022/public-api.mjs +166 -166
  101. package/fesm2022/keevo-components.mjs +5410 -5403
  102. package/fesm2022/keevo-components.mjs.map +1 -1
  103. package/index.d.ts +5 -5
  104. package/lib/api/base-components/base-component-button.d.ts +14 -14
  105. package/lib/api/base-components/base-component-chart.d.ts +40 -40
  106. package/lib/api/base-components/base-component-crud-form.d.ts +145 -145
  107. package/lib/api/base-components/base-component-crud-list.d.ts +63 -63
  108. package/lib/api/base-components/base-component-crud.d.ts +36 -36
  109. package/lib/api/base-components/base-component-dropdown-external.d.ts +15 -15
  110. package/lib/api/base-components/base-component-dropdown.d.ts +44 -44
  111. package/lib/api/base-components/base-component-input.d.ts +31 -31
  112. package/lib/api/base-components/base-component-multi-select.d.ts +35 -35
  113. package/lib/api/base-components/base-component.d.ts +22 -22
  114. package/lib/api/components/chart/chart.config.d.ts +11 -11
  115. package/lib/api/components/chart/chart.model.d.ts +9 -9
  116. package/lib/api/components/chart/orchart.config.d.ts +35 -35
  117. package/lib/api/components/chart/orchart.item.d.ts +26 -26
  118. package/lib/api/components/dropdown/filtro.combo.d.ts +4 -4
  119. package/lib/api/components/table/action-item.d.ts +11 -11
  120. package/lib/api/components/table/kv-menuitem.d.ts +10 -10
  121. package/lib/api/components/table/table-dropdown-control.d.ts +6 -6
  122. package/lib/api/components/table/table.config.column.d.ts +25 -25
  123. package/lib/api/components/table/table.config.d.ts +19 -19
  124. package/lib/api/components/table/table.paginate.d.ts +6 -6
  125. package/lib/api/components/table/tabledit.config.d.ts +8 -8
  126. package/lib/api/components/table/tableedit.config.column.d.ts +10 -10
  127. package/lib/api/directives/template/template.directive.d.ts +11 -11
  128. package/lib/api/helpers/component-providers.d.ts +2 -2
  129. package/lib/api/helpers/keevo-validators.d.ts +11 -11
  130. package/lib/api/helpers/translate-primeng.d.ts +4 -4
  131. package/lib/api/modules/primeng.module.d.ts +62 -62
  132. package/lib/api/pipes/cpfcnpj.pipe.d.ts +7 -7
  133. package/lib/api/pipes/mask.pipe.d.ts +7 -7
  134. package/lib/api/pipes/pipes.module.d.ts +10 -10
  135. package/lib/api/pipes/telefone.pipe.d.ts +7 -7
  136. package/lib/api/services/base.api.service.d.ts +25 -25
  137. package/lib/api/services/breadcrumbs.service.d.ts +15 -15
  138. package/lib/api/services/component.service.d.ts +11 -11
  139. package/lib/api/services/form.service.d.ts +28 -28
  140. package/lib/api/services/imagens.service.d.ts +10 -10
  141. package/lib/api/services/notification.service.d.ts +25 -25
  142. package/lib/api/services/object.service.d.ts +9 -9
  143. package/lib/components/keevo-components.module.d.ts +24 -24
  144. package/lib/components/kv-avatar/kv-avatar.component.d.ts +22 -22
  145. package/lib/components/kv-avatar/kv-avatar.module.d.ts +10 -10
  146. package/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.d.ts +13 -13
  147. package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +13 -13
  148. package/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.d.ts +7 -7
  149. package/lib/components/kv-buttons/kv-button-success/kv-button-success.component.d.ts +7 -7
  150. package/lib/components/kv-buttons/kv-button.module.d.ts +11 -11
  151. package/lib/components/kv-carousel/kv-carousel.component.d.ts +16 -16
  152. package/lib/components/kv-carousel/kv-carousel.module.d.ts +9 -9
  153. package/lib/components/kv-chart/kv-chart.component.d.ts +56 -56
  154. package/lib/components/kv-chart/kv-chart.module.d.ts +10 -10
  155. package/lib/components/kv-error/kv-error.component.d.ts +12 -12
  156. package/lib/components/kv-error/kv-error.module.d.ts +10 -10
  157. package/lib/components/kv-inputs/kv-check/kv-check.component.d.ts +11 -11
  158. package/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.d.ts +14 -14
  159. package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +36 -36
  160. package/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.d.ts +27 -27
  161. package/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.d.ts +12 -12
  162. package/lib/components/kv-inputs/kv-input-number/kv-input-number.component.d.ts +19 -19
  163. package/lib/components/kv-inputs/kv-input-password/kv-input-password.component.d.ts +13 -13
  164. package/lib/components/kv-inputs/kv-input-text/kv-input-text.component.d.ts +10 -10
  165. package/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.d.ts +16 -16
  166. package/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.d.ts +16 -16
  167. package/lib/components/kv-inputs/kv-input-time/kv-input-time.component.d.ts +10 -10
  168. package/lib/components/kv-inputs/kv-inputs.module.d.ts +25 -25
  169. package/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.d.ts +15 -15
  170. package/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.d.ts +18 -18
  171. package/lib/components/kv-inputs/kv-switch/kv-switch.component.d.ts +14 -14
  172. package/lib/components/kv-label/kv-label.component.d.ts +7 -7
  173. package/lib/components/kv-label/kv-label.module.d.ts +8 -8
  174. package/lib/components/kv-loader/kv-loader.component.d.ts +8 -8
  175. package/lib/components/kv-loader/kv-loader.module.d.ts +9 -9
  176. package/lib/components/kv-loader/kv-loader.service.d.ts +10 -10
  177. package/lib/components/kv-login/kv-login.component.d.ts +30 -30
  178. package/lib/components/kv-login/kv-login.module.d.ts +13 -13
  179. package/lib/components/kv-menu/kv-menu.component.d.ts +59 -58
  180. package/lib/components/kv-menu/kv-menu.module.d.ts +13 -13
  181. package/lib/components/kv-modal/kv-modal.component.d.ts +20 -20
  182. package/lib/components/kv-modal/kv-modal.module.d.ts +10 -10
  183. package/lib/components/kv-orgchart/kv-orgchart.component.d.ts +27 -27
  184. package/lib/components/kv-orgchart/kv-orgchart.module.d.ts +9 -9
  185. package/lib/components/kv-page-form/kv-page-form.component.d.ts +70 -70
  186. package/lib/components/kv-page-form/kv-page-form.module.d.ts +11 -11
  187. package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +20 -20
  188. package/lib/components/kv-pick-list/kv-pick-list.module.d.ts +10 -10
  189. package/lib/components/kv-progress-bar/kv-progress-bar.component.d.ts +67 -67
  190. package/lib/components/kv-progress-bar/kv-progress-bar.module.d.ts +9 -9
  191. package/lib/components/kv-table/kv-table.component.d.ts +112 -112
  192. package/lib/components/kv-table/kv-table.module.d.ts +11 -11
  193. package/lib/components/kv-table-edit/kv-table-edit.component.d.ts +115 -115
  194. package/lib/components/kv-table-edit/kv-table-edit.module.d.ts +12 -12
  195. package/lib/components/kv-tree-table/kv-tree-table.component.d.ts +43 -43
  196. package/lib/components/kv-tree-table/kv-tree-table.module.d.ts +9 -9
  197. package/lib/components/kv-tree-view/kv-tree-view.component.d.ts +14 -14
  198. package/lib/components/kv-tree-view/kv-tree-view.module.d.ts +9 -9
  199. package/lib/components/kv-workspace/kv-workspace.component.d.ts +46 -46
  200. package/lib/components/kv-workspace/kv-workspace.module.d.ts +14 -14
  201. package/package.json +1 -1
  202. package/public-api.d.ts +162 -162
@@ -1,85 +1,85 @@
1
- import { Injectable } from '@angular/core';
2
- import { ObjectService } from './object.service';
3
- import * as i0 from "@angular/core";
4
- export class FormService {
5
- static disableControl(formGroup, controName) {
6
- formGroup?.controls[controName]?.disable();
7
- }
8
- static disableAndClearControl(formGroup, controName, value) {
9
- this.disableControl(formGroup, controName);
10
- this.setControlValue(formGroup, controName, null || value);
11
- }
12
- static enableControl(formGroup, controName) {
13
- formGroup?.controls[controName]?.enable();
14
- }
15
- static getFormValue(formGroup, controName) {
16
- return formGroup?.controls[controName]?.value;
17
- }
18
- static hasControlError(formGroup, control, errorCode) {
19
- const formControl = formGroup.get(control);
20
- let hasError = false;
21
- if (!formControl)
22
- return false;
23
- if (errorCode)
24
- hasError = formControl.hasError(errorCode);
25
- else
26
- hasError = formControl.errors ? true : false;
27
- return hasError && formControl.touched;
28
- }
29
- static invalidForm(formGroup, notification) {
30
- const keys = Object.keys(formGroup.getRawValue());
31
- keys.forEach(k => {
32
- const control = formGroup.controls[k];
33
- if (notification) {
34
- if (notification?.item2) {
35
- const item = ObjectService.findObject(notification.item2, 'property', k);
36
- if (item)
37
- control.setErrors({ backendError: true, erroMessage: item.message });
38
- }
39
- else {
40
- const item = ObjectService.findObject(notification, 'key', k);
41
- if (item)
42
- control.setErrors({ backendError: true, erroMessage: item.message });
43
- }
44
- }
45
- if (!control.valid) {
46
- control.markAsTouched();
47
- }
48
- });
49
- }
50
- static openDialog(dialogService, componentType, callBackFunction, paramsDialog) {
51
- const ref = dialogService.open(componentType, {
52
- closable: paramsDialog?.closable || false,
53
- maximizable: paramsDialog?.maximizable || false,
54
- height: paramsDialog?.height || 'auto',
55
- width: paramsDialog?.width,
56
- styleClass: paramsDialog?.styleClass,
57
- showHeader: true,
58
- header: paramsDialog?.header,
59
- data: { id: paramsDialog?.id, popup: paramsDialog?.popup && true }
60
- });
61
- ref.onClose.subscribe((data) => {
62
- if (data)
63
- callBackFunction(data);
64
- });
65
- }
66
- static setControlValue(formGroup, controName, value) {
67
- formGroup?.controls[controName]?.setValue(value);
68
- }
69
- static setValidators(formGroup, controName, validators) {
70
- formGroup?.controls[controName]?.setValidators(validators);
71
- formGroup?.controls[controName]?.updateValueAndValidity();
72
- }
73
- static clearValidators(formGroup, controName) {
74
- formGroup?.controls[controName]?.updateValueAndValidity();
75
- }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
77
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, providedIn: 'root' }); }
78
- }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, decorators: [{
80
- type: Injectable,
81
- args: [{
82
- providedIn: 'root'
83
- }]
84
- }] });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFFWCxNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBaUJqRCxNQUFNLE9BQU8sV0FBVztJQUV0QixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQW9CLEVBQUUsVUFBa0I7UUFDNUQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFNBQW9CLEVBQUUsVUFBa0IsRUFBRSxLQUFXO1FBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBb0IsRUFBRSxVQUFrQjtRQUMzRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFJLFNBQW9CLEVBQUUsVUFBa0I7UUFDN0QsT0FBVSxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFvQixFQUFFLE9BQWUsRUFBRSxTQUFrQjtRQUM5RSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFD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VUFBa0IsRUFBRSxVQUE4QztRQUMzRyxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBb0IsRUFBRSxVQUFrQjtRQUM3RCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQzsrR0F0RlUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEluamVjdGFibGUsXHJcbiAgVHlwZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9yRm5cclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBPYmplY3RTZXJ2aWNlIH0gZnJvbSAnLi9vYmplY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBwYXJhbXNEaWFsb2cge1xyXG4gIGlkPzogYW55O1xyXG4gIGNsb3NhYmxlPzogYm9vbGVhbjtcclxuICBtYXhpbWl6YWJsZT86IGJvb2xlYW47XHJcbiAgcG9wdXA/OiBib29sZWFuO1xyXG4gIGhlaWdodD86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBzdHlsZUNsYXNzPzogc3RyaW5nO1xyXG4gIGhlYWRlcj86IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVNlcnZpY2Uge1xyXG5cclxuICBzdGF0aWMgZGlzYWJsZUNvbnRyb2woZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZykge1xyXG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8uZGlzYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRpc2FibGVBbmRDbGVhckNvbnRyb2woZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcclxuICAgIHRoaXMuZGlzYWJsZUNvbnRyb2woZm9ybUdyb3VwLCBjb250cm9OYW1lKTtcclxuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGZvcm1Hcm91cCwgY29udHJvTmFtZSwgbnVsbCB8fCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZW5hYmxlQ29udHJvbChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29udHJvTmFtZTogc3RyaW5nKSB7XHJcbiAgICBmb3JtR3JvdXA/LmNvbnRyb2xzW2NvbnRyb05hbWVdPy5lbmFibGUoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRGb3JtVmFsdWU8VD4oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZyk6IFQge1xyXG4gICAgcmV0dXJuIDxUPmZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGhhc0NvbnRyb2xFcnJvcihmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29udHJvbDogc3RyaW5nLCBlcnJvckNvZGU/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gZm9ybUdyb3VwLmdldChjb250cm9sKTtcclxuICAgIGxldCBoYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGlmICghZm9ybUNvbnRyb2wpIHJldHVybiBmYWxzZTtcclxuICAgIGlmIChlcnJvckNvZGUpIGhhc0Vycm9yID0gZm9ybUNvbnRyb2wuaGFzRXJyb3IoZXJyb3JDb2RlKTtcclxuICAgIGVsc2UgaGFzRXJyb3IgPSBmb3JtQ29udHJvbC5lcnJvcnMgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgcmV0dXJuIGhhc0Vycm9yICYmIGZvcm1Db250cm9sLnRvdWNoZWQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaW52YWxpZEZvcm0oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIG5vdGlmaWNhdGlvbj86IGFueSkge1xyXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKTtcclxuXHJcbiAgICBrZXlzLmZvckVhY2goayA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNba107XHJcblxyXG4gICAgICBpZiAobm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbj8uaXRlbTIpIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBPYmplY3RTZXJ2aWNlLmZpbmRPYmplY3Qobm90aWZpY2F0aW9uLml0ZW0yLCAncHJvcGVydHknLCBrKTtcclxuICAgICAgICAgIGlmIChpdGVtKSBjb250cm9sLnNldEVycm9ycyh7IGJhY2tlbmRFcnJvcjogdHJ1ZSwgZXJyb01lc3NhZ2U6IGl0ZW0ubWVzc2FnZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtID0gT2JqZWN0U2VydmljZS5maW5kT2JqZWN0KG5vdGlmaWNhdGlvbiwgJ2tleScsIGspO1xyXG4gICAgICAgICAgaWYgKGl0ZW0pIGNvbnRyb2wuc2V0RXJyb3JzKHsgYmFja2VuZEVycm9yOiB0cnVlLCBlcnJvTWVzc2FnZTogaXRlbS5tZXNzYWdlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFjb250cm9sLnZhbGlkKSB7XHJcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG9wZW5EaWFsb2coXHJcbiAgICBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgY29tcG9uZW50VHlwZTogVHlwZTxhbnk+LFxyXG4gICAgY2FsbEJhY2tGdW5jdGlvbjogRnVuY3Rpb24sXHJcbiAgICBwYXJhbXNEaWFsb2c/OiBwYXJhbXNEaWFsb2dcclxuICApIHtcclxuICAgIGNvbnN0IHJlZiA9IGRpYWxvZ1NlcnZpY2Uub3Blbihjb21wb25lbnRUeXBlLCB7XHJcbiAgICAgIGNsb3NhYmxlOiBwYXJhbXNEaWFsb2c/LmNsb3NhYmxlIHx8IGZhbHNlLFxyXG4gICAgICBtYXhpbWl6YWJsZTogcGFyYW1zRGlhbG9nPy5tYXhpbWl6YWJsZSB8fCBmYWxzZSxcclxuICAgICAgaGVpZ2h0OiBwYXJhbXNEaWFsb2c/LmhlaWdodCB8fCAnYXV0bycsXHJcbiAgICAgIHdpZHRoOiBwYXJhbXNEaWFsb2c/LndpZHRoLFxyXG4gICAgICBzdHlsZUNsYXNzOiBwYXJhbXNEaWFsb2c/LnN0eWxlQ2xhc3MsXHJcbiAgICAgIHNob3dIZWFkZXI6IHRydWUsXHJcbiAgICAgIGhlYWRlcjogcGFyYW1zRGlhbG9nPy5oZWFkZXIsXHJcbiAgICAgIGRhdGE6IHsgaWQ6IHBhcmFtc0RpYWxvZz8uaWQsIHBvcHVwOiBwYXJhbXNEaWFsb2c/LnBvcHVwICYmIHRydWUgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGRhdGEpIGNhbGxCYWNrRnVuY3Rpb24oZGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzZXRDb250cm9sVmFsdWUoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8uc2V0VmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNldFZhbGlkYXRvcnMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZywgdmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgbnVsbCkge1xyXG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjbGVhclZhbGlkYXRvcnMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZykge1xyXG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { ObjectService } from './object.service';
3
+ import * as i0 from "@angular/core";
4
+ export class FormService {
5
+ static disableControl(formGroup, controName) {
6
+ formGroup?.controls[controName]?.disable();
7
+ }
8
+ static disableAndClearControl(formGroup, controName, value) {
9
+ this.disableControl(formGroup, controName);
10
+ this.setControlValue(formGroup, controName, null || value);
11
+ }
12
+ static enableControl(formGroup, controName) {
13
+ formGroup?.controls[controName]?.enable();
14
+ }
15
+ static getFormValue(formGroup, controName) {
16
+ return formGroup?.controls[controName]?.value;
17
+ }
18
+ static hasControlError(formGroup, control, errorCode) {
19
+ const formControl = formGroup.get(control);
20
+ let hasError = false;
21
+ if (!formControl)
22
+ return false;
23
+ if (errorCode)
24
+ hasError = formControl.hasError(errorCode);
25
+ else
26
+ hasError = formControl.errors ? true : false;
27
+ return hasError && formControl.touched;
28
+ }
29
+ static invalidForm(formGroup, notification) {
30
+ const keys = Object.keys(formGroup.getRawValue());
31
+ keys.forEach(k => {
32
+ const control = formGroup.controls[k];
33
+ if (notification) {
34
+ if (notification?.item2) {
35
+ const item = ObjectService.findObject(notification.item2, 'property', k);
36
+ if (item)
37
+ control.setErrors({ backendError: true, erroMessage: item.message });
38
+ }
39
+ else {
40
+ const item = ObjectService.findObject(notification, 'key', k);
41
+ if (item)
42
+ control.setErrors({ backendError: true, erroMessage: item.message });
43
+ }
44
+ }
45
+ if (!control.valid) {
46
+ control.markAsTouched();
47
+ }
48
+ });
49
+ }
50
+ static openDialog(dialogService, componentType, callBackFunction, paramsDialog) {
51
+ const ref = dialogService.open(componentType, {
52
+ closable: paramsDialog?.closable || false,
53
+ maximizable: paramsDialog?.maximizable || false,
54
+ height: paramsDialog?.height || 'auto',
55
+ width: paramsDialog?.width,
56
+ styleClass: paramsDialog?.styleClass,
57
+ showHeader: true,
58
+ header: paramsDialog?.header,
59
+ data: { id: paramsDialog?.id, popup: paramsDialog?.popup && true }
60
+ });
61
+ ref.onClose.subscribe((data) => {
62
+ if (data)
63
+ callBackFunction(data);
64
+ });
65
+ }
66
+ static setControlValue(formGroup, controName, value) {
67
+ formGroup?.controls[controName]?.setValue(value);
68
+ }
69
+ static setValidators(formGroup, controName, validators) {
70
+ formGroup?.controls[controName]?.setValidators(validators);
71
+ formGroup?.controls[controName]?.updateValueAndValidity();
72
+ }
73
+ static clearValidators(formGroup, controName) {
74
+ formGroup?.controls[controName]?.updateValueAndValidity();
75
+ }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
77
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, providedIn: 'root' }); }
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormService, decorators: [{
80
+ type: Injectable,
81
+ args: [{
82
+ providedIn: 'root'
83
+ }]
84
+ }] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFFWCxNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBaUJqRCxNQUFNLE9BQU8sV0FBVztJQUV0QixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQW9CLEVBQUUsVUFBa0I7UUFDNUQsU0FBUyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFNBQW9CLEVBQUUsVUFBa0IsRUFBRSxLQUFXO1FBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBb0IsRUFBRSxVQUFrQjtRQUMzRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFJLFNBQW9CLEVBQUUsVUFBa0I7UUFDN0QsT0FBVSxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFvQixFQUFFLE9BQWUsRUFBRSxTQUFrQjtRQUM5RSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksUUFBUSxHQUFZLEtBQUssQ0FBQztRQUU5QixJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9CLElBQUksU0FBUztZQUFFLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztZQUNyRCxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFbEQsT0FBTyxRQUFRLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUN6QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFvQixFQUFFLFlBQWtCO1FBQ3pELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNmLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdEMsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLElBQUksWUFBWSxFQUFFLEtBQUssRUFBRTtvQkFDdkIsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDekUsSUFBSSxJQUFJO3dCQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztpQkFDaEY7cUJBQ0k7b0JBQ0gsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM5RCxJQUFJLElBQUk7d0JBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2lCQUNoRjthQUNGO1lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQ2YsYUFBNEIsRUFDNUIsYUFBd0IsRUFDeEIsZ0JBQTBCLEVBQzFCLFlBQTJCO1FBRTNCLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzVDLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxJQUFJLEtBQUs7WUFDekMsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLElBQUksS0FBSztZQUMvQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sSUFBSSxNQUFNO1lBQ3RDLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSztZQUMxQixVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVU7WUFDcEMsVUFBVSxFQUFFLElBQUk7WUFDaEIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNO1lBQzVCLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRTtTQUNuRSxDQUFDLENBQUM7UUFFSCxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2xDLElBQUksSUFBSTtnQkFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFNBQW9CLEVBQUUsVUFBa0IsRUFBRSxLQUFVO1FBQ3pFLFNBQVMsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQW9CLEVBQUUsVUFBa0IsRUFBRSxVQUE4QztRQUMzRyxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBb0IsRUFBRSxVQUFrQjtRQUM3RCxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDNUQsQ0FBQzsrR0F0RlUsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBUeXBlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRvckZuXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgT2JqZWN0U2VydmljZSB9IGZyb20gJy4vb2JqZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgcGFyYW1zRGlhbG9nIHtcbiAgaWQ/OiBhbnk7XG4gIGNsb3NhYmxlPzogYm9vbGVhbjtcbiAgbWF4aW1pemFibGU/OiBib29sZWFuO1xuICBwb3B1cD86IGJvb2xlYW47XG4gIGhlaWdodD86IHN0cmluZztcbiAgd2lkdGg/OiBzdHJpbmc7XG4gIHN0eWxlQ2xhc3M/OiBzdHJpbmc7XG4gIGhlYWRlcj86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVNlcnZpY2Uge1xuXG4gIHN0YXRpYyBkaXNhYmxlQ29udHJvbChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29udHJvTmFtZTogc3RyaW5nKSB7XG4gICAgZm9ybUdyb3VwPy5jb250cm9sc1tjb250cm9OYW1lXT8uZGlzYWJsZSgpO1xuICB9XG5cbiAgc3RhdGljIGRpc2FibGVBbmRDbGVhckNvbnRyb2woZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICB0aGlzLmRpc2FibGVDb250cm9sKGZvcm1Hcm91cCwgY29udHJvTmFtZSk7XG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZm9ybUdyb3VwLCBjb250cm9OYW1lLCBudWxsIHx8IHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBlbmFibGVDb250cm9sKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9OYW1lOiBzdHJpbmcpIHtcbiAgICBmb3JtR3JvdXA/LmNvbnRyb2xzW2NvbnRyb05hbWVdPy5lbmFibGUoKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRGb3JtVmFsdWU8VD4oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZyk6IFQge1xuICAgIHJldHVybiA8VD5mb3JtR3JvdXA/LmNvbnRyb2xzW2NvbnRyb05hbWVdPy52YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNDb250cm9sRXJyb3IoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb2w6IHN0cmluZywgZXJyb3JDb2RlPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2wpO1xuICAgIGxldCBoYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgaWYgKCFmb3JtQ29udHJvbCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChlcnJvckNvZGUpIGhhc0Vycm9yID0gZm9ybUNvbnRyb2wuaGFzRXJyb3IoZXJyb3JDb2RlKTtcbiAgICBlbHNlIGhhc0Vycm9yID0gZm9ybUNvbnRyb2wuZXJyb3JzID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgcmV0dXJuIGhhc0Vycm9yICYmIGZvcm1Db250cm9sLnRvdWNoZWQ7XG4gIH1cblxuICBzdGF0aWMgaW52YWxpZEZvcm0oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIG5vdGlmaWNhdGlvbj86IGFueSkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKSk7XG5cbiAgICBrZXlzLmZvckVhY2goayA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmNvbnRyb2xzW2tdO1xuXG4gICAgICBpZiAobm90aWZpY2F0aW9uKSB7XG4gICAgICAgIGlmIChub3RpZmljYXRpb24/Lml0ZW0yKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IE9iamVjdFNlcnZpY2UuZmluZE9iamVjdChub3RpZmljYXRpb24uaXRlbTIsICdwcm9wZXJ0eScsIGspO1xuICAgICAgICAgIGlmIChpdGVtKSBjb250cm9sLnNldEVycm9ycyh7IGJhY2tlbmRFcnJvcjogdHJ1ZSwgZXJyb01lc3NhZ2U6IGl0ZW0ubWVzc2FnZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gT2JqZWN0U2VydmljZS5maW5kT2JqZWN0KG5vdGlmaWNhdGlvbiwgJ2tleScsIGspO1xuICAgICAgICAgIGlmIChpdGVtKSBjb250cm9sLnNldEVycm9ycyh7IGJhY2tlbmRFcnJvcjogdHJ1ZSwgZXJyb01lc3NhZ2U6IGl0ZW0ubWVzc2FnZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgb3BlbkRpYWxvZyhcbiAgICBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIGNvbXBvbmVudFR5cGU6IFR5cGU8YW55PixcbiAgICBjYWxsQmFja0Z1bmN0aW9uOiBGdW5jdGlvbixcbiAgICBwYXJhbXNEaWFsb2c/OiBwYXJhbXNEaWFsb2dcbiAgKSB7XG4gICAgY29uc3QgcmVmID0gZGlhbG9nU2VydmljZS5vcGVuKGNvbXBvbmVudFR5cGUsIHtcbiAgICAgIGNsb3NhYmxlOiBwYXJhbXNEaWFsb2c/LmNsb3NhYmxlIHx8IGZhbHNlLFxuICAgICAgbWF4aW1pemFibGU6IHBhcmFtc0RpYWxvZz8ubWF4aW1pemFibGUgfHwgZmFsc2UsXG4gICAgICBoZWlnaHQ6IHBhcmFtc0RpYWxvZz8uaGVpZ2h0IHx8ICdhdXRvJyxcbiAgICAgIHdpZHRoOiBwYXJhbXNEaWFsb2c/LndpZHRoLFxuICAgICAgc3R5bGVDbGFzczogcGFyYW1zRGlhbG9nPy5zdHlsZUNsYXNzLFxuICAgICAgc2hvd0hlYWRlcjogdHJ1ZSxcbiAgICAgIGhlYWRlcjogcGFyYW1zRGlhbG9nPy5oZWFkZXIsXG4gICAgICBkYXRhOiB7IGlkOiBwYXJhbXNEaWFsb2c/LmlkLCBwb3B1cDogcGFyYW1zRGlhbG9nPy5wb3B1cCAmJiB0cnVlIH1cbiAgICB9KTtcblxuICAgIHJlZi5vbkNsb3NlLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICBpZiAoZGF0YSkgY2FsbEJhY2tGdW5jdGlvbihkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBzZXRDb250cm9sVmFsdWUoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBzZXRWYWxpZGF0b3JzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9OYW1lOiBzdHJpbmcsIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IG51bGwpIHtcbiAgICBmb3JtR3JvdXA/LmNvbnRyb2xzW2NvbnRyb05hbWVdPy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHN0YXRpYyBjbGVhclZhbGlkYXRvcnMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbnRyb05hbWU6IHN0cmluZykge1xuICAgIGZvcm1Hcm91cD8uY29udHJvbHNbY29udHJvTmFtZV0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxufVxuIl19