aril 1.1.97 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/boot/base/index.d.ts +1 -0
  2. package/boot/base/src/create-base-app-config.d.ts +12 -0
  3. package/boot/config/api/index.d.ts +1 -0
  4. package/boot/config/api/src/api.service.d.ts +2 -2
  5. package/boot/config/api/src/interfaces.d.ts +1 -19
  6. package/boot/config/plugins/src/interfaces.d.ts +0 -37
  7. package/esm2022/boot/base/aril-boot-base.mjs +5 -0
  8. package/esm2022/boot/base/index.mjs +2 -0
  9. package/esm2022/boot/base/src/create-base-app-config.mjs +30 -0
  10. package/esm2022/boot/config/api/index.mjs +1 -1
  11. package/esm2022/boot/config/api/src/api.service.mjs +5 -4
  12. package/esm2022/boot/config/api/src/interfaces.mjs +2 -21
  13. package/esm2022/boot/config/apps/src/apps.service.mjs +2 -2
  14. package/esm2022/boot/config/plugins/src/interfaces.mjs +1 -60
  15. package/esm2022/boot/config/plugins/src/plugins.service.mjs +8 -22
  16. package/esm2022/boot/host/src/bootstrap.mjs +8 -23
  17. package/esm2022/boot/mfe/src/app.component.mjs +6 -6
  18. package/esm2022/boot/mfe/src/bootstrap.mjs +13 -33
  19. package/esm2022/boot/pages/aril-boot-pages.mjs +5 -0
  20. package/esm2022/boot/pages/index.mjs +3 -0
  21. package/esm2022/{util/custom_pages → boot/pages}/src/forbidden.component.mjs +1 -1
  22. package/esm2022/{util/custom_pages → boot/pages}/src/notFound.component.mjs +1 -1
  23. package/esm2022/keycloak/src/auth.interceptor.mjs +14 -78
  24. package/esm2022/provider/src/prodiveHost.mjs +4 -8
  25. package/esm2022/provider/src/provideHostKeycloak.mjs +10 -2
  26. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +1 -1
  27. package/esm2022/ui/chip/src/chip.component.mjs +11 -6
  28. package/esm2022/ui/form/src/form.component.mjs +22 -4
  29. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +14 -2
  30. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +3 -4
  31. package/fesm2022/{aril-app.component-FxPod9bE.mjs → aril-app.component-wxP3y8dg.mjs} +8 -11
  32. package/fesm2022/aril-app.component-wxP3y8dg.mjs.map +1 -0
  33. package/fesm2022/aril-boot-base.mjs +37 -0
  34. package/fesm2022/aril-boot-base.mjs.map +1 -0
  35. package/fesm2022/aril-boot-config-api.mjs +3 -22
  36. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  37. package/fesm2022/aril-boot-config-apps.mjs +1 -1
  38. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  39. package/fesm2022/aril-boot-config-plugins.mjs +7 -80
  40. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  41. package/fesm2022/aril-boot-host.mjs +7 -22
  42. package/fesm2022/aril-boot-host.mjs.map +1 -1
  43. package/fesm2022/{aril-boot-mfe-app.component-dZp2aSTk.mjs → aril-boot-mfe-app.component-7IjAmjz0.mjs} +8 -11
  44. package/fesm2022/aril-boot-mfe-app.component-7IjAmjz0.mjs.map +1 -0
  45. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-mm6nhyRL.mjs → aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs} +15 -71
  46. package/fesm2022/aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs.map +1 -0
  47. package/fesm2022/aril-boot-mfe.mjs +2 -6
  48. package/fesm2022/aril-boot-mfe.mjs.map +1 -1
  49. package/fesm2022/{aril-util-custom_pages.mjs → aril-boot-pages.mjs} +1 -1
  50. package/fesm2022/aril-boot-pages.mjs.map +1 -0
  51. package/fesm2022/aril-keycloak.mjs +13 -77
  52. package/fesm2022/aril-keycloak.mjs.map +1 -1
  53. package/fesm2022/aril-provider.mjs +12 -8
  54. package/fesm2022/aril-provider.mjs.map +1 -1
  55. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  56. package/fesm2022/aril-ui-business-assetPicker.mjs +13 -1
  57. package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
  58. package/fesm2022/aril-ui-chip.mjs +10 -5
  59. package/fesm2022/aril-ui-chip.mjs.map +1 -1
  60. package/fesm2022/aril-ui-form.mjs +20 -3
  61. package/fesm2022/aril-ui-form.mjs.map +1 -1
  62. package/fesm2022/aril-util-pipes.mjs +2 -3
  63. package/fesm2022/aril-util-pipes.mjs.map +1 -1
  64. package/fesm2022/aril.mjs +14 -81
  65. package/fesm2022/aril.mjs.map +1 -1
  66. package/package.json +113 -113
  67. package/provider/src/prodiveHost.d.ts +2 -2
  68. package/theme/layout/app/site-map/site-map-sidebar.component.ts +1 -1
  69. package/theme/styles/layout/_fonts.scss +1 -13
  70. package/ui/form/src/form.component.d.ts +4 -1
  71. package/boot/mfe/src/loadStyles.d.ts +0 -3
  72. package/esm2022/boot/mfe/src/loadStyles.mjs +0 -38
  73. package/esm2022/util/custom_pages/aril-util-custom_pages.mjs +0 -5
  74. package/esm2022/util/custom_pages/index.mjs +0 -3
  75. package/esm2022/util/loaders/aril-util-loaders.mjs +0 -5
  76. package/esm2022/util/loaders/index.mjs +0 -2
  77. package/esm2022/util/loaders/style/style.loader.service.mjs +0 -61
  78. package/fesm2022/aril-app.component-FxPod9bE.mjs.map +0 -1
  79. package/fesm2022/aril-boot-mfe-app.component-dZp2aSTk.mjs.map +0 -1
  80. package/fesm2022/aril-boot-mfe-aril-boot-mfe-mm6nhyRL.mjs.map +0 -1
  81. package/fesm2022/aril-util-custom_pages.mjs.map +0 -1
  82. package/fesm2022/aril-util-loaders.mjs +0 -68
  83. package/fesm2022/aril-util-loaders.mjs.map +0 -1
  84. package/theme/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  85. package/theme/fonts/Inter/Inter_18pt-BlackItalic.ttf +0 -0
  86. package/theme/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  87. package/theme/fonts/Inter/Inter_18pt-BoldItalic.ttf +0 -0
  88. package/theme/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  89. package/theme/fonts/Inter/Inter_18pt-ExtraBoldItalic.ttf +0 -0
  90. package/theme/fonts/Inter/Inter_18pt-ExtraLight.ttf +0 -0
  91. package/theme/fonts/Inter/Inter_18pt-ExtraLightItalic.ttf +0 -0
  92. package/theme/fonts/Inter/Inter_18pt-Italic.ttf +0 -0
  93. package/theme/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  94. package/theme/fonts/Inter/Inter_18pt-LightItalic.ttf +0 -0
  95. package/theme/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  96. package/theme/fonts/Inter/Inter_18pt-MediumItalic.ttf +0 -0
  97. package/theme/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  98. package/theme/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  99. package/theme/fonts/Inter/Inter_18pt-SemiBoldItalic.ttf +0 -0
  100. package/theme/fonts/Inter/Inter_18pt-Thin.ttf +0 -0
  101. package/theme/fonts/Inter/Inter_18pt-ThinItalic.ttf +0 -0
  102. package/theme/fonts/Inter/Inter_24pt-Black.ttf +0 -0
  103. package/theme/fonts/Inter/Inter_24pt-BlackItalic.ttf +0 -0
  104. package/theme/fonts/Inter/Inter_24pt-Bold.ttf +0 -0
  105. package/theme/fonts/Inter/Inter_24pt-BoldItalic.ttf +0 -0
  106. package/theme/fonts/Inter/Inter_24pt-ExtraBold.ttf +0 -0
  107. package/theme/fonts/Inter/Inter_24pt-ExtraBoldItalic.ttf +0 -0
  108. package/theme/fonts/Inter/Inter_24pt-ExtraLight.ttf +0 -0
  109. package/theme/fonts/Inter/Inter_24pt-ExtraLightItalic.ttf +0 -0
  110. package/theme/fonts/Inter/Inter_24pt-Italic.ttf +0 -0
  111. package/theme/fonts/Inter/Inter_24pt-Light.ttf +0 -0
  112. package/theme/fonts/Inter/Inter_24pt-LightItalic.ttf +0 -0
  113. package/theme/fonts/Inter/Inter_24pt-Medium.ttf +0 -0
  114. package/theme/fonts/Inter/Inter_24pt-MediumItalic.ttf +0 -0
  115. package/theme/fonts/Inter/Inter_24pt-Regular.ttf +0 -0
  116. package/theme/fonts/Inter/Inter_24pt-SemiBold.ttf +0 -0
  117. package/theme/fonts/Inter/Inter_24pt-SemiBoldItalic.ttf +0 -0
  118. package/theme/fonts/Inter/Inter_24pt-Thin.ttf +0 -0
  119. package/theme/fonts/Inter/Inter_24pt-ThinItalic.ttf +0 -0
  120. package/theme/fonts/Inter/Inter_28pt-Black.ttf +0 -0
  121. package/theme/fonts/Inter/Inter_28pt-BlackItalic.ttf +0 -0
  122. package/theme/fonts/Inter/Inter_28pt-Bold.ttf +0 -0
  123. package/theme/fonts/Inter/Inter_28pt-BoldItalic.ttf +0 -0
  124. package/theme/fonts/Inter/Inter_28pt-ExtraBold.ttf +0 -0
  125. package/theme/fonts/Inter/Inter_28pt-ExtraBoldItalic.ttf +0 -0
  126. package/theme/fonts/Inter/Inter_28pt-ExtraLight.ttf +0 -0
  127. package/theme/fonts/Inter/Inter_28pt-ExtraLightItalic.ttf +0 -0
  128. package/theme/fonts/Inter/Inter_28pt-Italic.ttf +0 -0
  129. package/theme/fonts/Inter/Inter_28pt-Light.ttf +0 -0
  130. package/theme/fonts/Inter/Inter_28pt-LightItalic.ttf +0 -0
  131. package/theme/fonts/Inter/Inter_28pt-Medium.ttf +0 -0
  132. package/theme/fonts/Inter/Inter_28pt-MediumItalic.ttf +0 -0
  133. package/theme/fonts/Inter/Inter_28pt-Regular.ttf +0 -0
  134. package/theme/fonts/Inter/Inter_28pt-SemiBold.ttf +0 -0
  135. package/theme/fonts/Inter/Inter_28pt-SemiBoldItalic.ttf +0 -0
  136. package/theme/fonts/Inter/Inter_28pt-Thin.ttf +0 -0
  137. package/theme/fonts/Inter/Inter_28pt-ThinItalic.ttf +0 -0
  138. package/theme/fonts/Inter/woff/Inter18pt-Black.woff +0 -0
  139. package/theme/fonts/Inter/woff/Inter18pt-Black.woff2 +0 -0
  140. package/theme/fonts/Inter/woff/Inter18pt-BlackItalic.woff +0 -0
  141. package/theme/fonts/Inter/woff/Inter18pt-BlackItalic.woff2 +0 -0
  142. package/theme/fonts/Inter/woff/Inter18pt-BoldItalic.woff +0 -0
  143. package/theme/fonts/Inter/woff/Inter18pt-BoldItalic.woff2 +0 -0
  144. package/theme/fonts/Inter/woff/Inter18pt-ExtraBold.woff +0 -0
  145. package/theme/fonts/Inter/woff/Inter18pt-ExtraBold.woff2 +0 -0
  146. package/theme/fonts/Inter/woff/Inter18pt-ExtraBoldItalic.woff +0 -0
  147. package/theme/fonts/Inter/woff/Inter18pt-ExtraBoldItalic.woff2 +0 -0
  148. package/theme/fonts/Inter/woff/Inter18pt-ExtraLight.woff +0 -0
  149. package/theme/fonts/Inter/woff/Inter18pt-ExtraLight.woff2 +0 -0
  150. package/theme/fonts/Inter/woff/Inter18pt-ExtraLightItalic.woff +0 -0
  151. package/theme/fonts/Inter/woff/Inter18pt-ExtraLightItalic.woff2 +0 -0
  152. package/theme/fonts/Inter/woff/Inter18pt-Italic.woff +0 -0
  153. package/theme/fonts/Inter/woff/Inter18pt-Italic.woff2 +0 -0
  154. package/theme/fonts/Inter/woff/Inter18pt-Light.woff +0 -0
  155. package/theme/fonts/Inter/woff/Inter18pt-Light.woff2 +0 -0
  156. package/theme/fonts/Inter/woff/Inter18pt-LightItalic.woff +0 -0
  157. package/theme/fonts/Inter/woff/Inter18pt-LightItalic.woff2 +0 -0
  158. package/theme/fonts/Inter/woff/Inter18pt-MediumItalic.woff +0 -0
  159. package/theme/fonts/Inter/woff/Inter18pt-MediumItalic.woff2 +0 -0
  160. package/theme/fonts/Inter/woff/Inter18pt-SemiBoldItalic.woff +0 -0
  161. package/theme/fonts/Inter/woff/Inter18pt-SemiBoldItalic.woff2 +0 -0
  162. package/theme/fonts/Inter/woff/Inter18pt-Thin.woff +0 -0
  163. package/theme/fonts/Inter/woff/Inter18pt-Thin.woff2 +0 -0
  164. package/theme/fonts/Inter/woff/Inter18pt-ThinItalic.woff +0 -0
  165. package/theme/fonts/Inter/woff/Inter18pt-ThinItalic.woff2 +0 -0
  166. package/theme/fonts/Inter/woff/Inter24pt-Black.woff +0 -0
  167. package/theme/fonts/Inter/woff/Inter24pt-Black.woff2 +0 -0
  168. package/theme/fonts/Inter/woff/Inter24pt-BlackItalic.woff +0 -0
  169. package/theme/fonts/Inter/woff/Inter24pt-BlackItalic.woff2 +0 -0
  170. package/theme/fonts/Inter/woff/Inter24pt-Bold.woff +0 -0
  171. package/theme/fonts/Inter/woff/Inter24pt-Bold.woff2 +0 -0
  172. package/theme/fonts/Inter/woff/Inter24pt-BoldItalic.woff +0 -0
  173. package/theme/fonts/Inter/woff/Inter24pt-BoldItalic.woff2 +0 -0
  174. package/theme/fonts/Inter/woff/Inter24pt-ExtraBold.woff +0 -0
  175. package/theme/fonts/Inter/woff/Inter24pt-ExtraBold.woff2 +0 -0
  176. package/theme/fonts/Inter/woff/Inter24pt-ExtraBoldItalic.woff +0 -0
  177. package/theme/fonts/Inter/woff/Inter24pt-ExtraBoldItalic.woff2 +0 -0
  178. package/theme/fonts/Inter/woff/Inter24pt-ExtraLight.woff +0 -0
  179. package/theme/fonts/Inter/woff/Inter24pt-ExtraLight.woff2 +0 -0
  180. package/theme/fonts/Inter/woff/Inter24pt-ExtraLightItalic.woff +0 -0
  181. package/theme/fonts/Inter/woff/Inter24pt-ExtraLightItalic.woff2 +0 -0
  182. package/theme/fonts/Inter/woff/Inter24pt-Italic.woff +0 -0
  183. package/theme/fonts/Inter/woff/Inter24pt-Italic.woff2 +0 -0
  184. package/theme/fonts/Inter/woff/Inter24pt-LightItalic.woff +0 -0
  185. package/theme/fonts/Inter/woff/Inter24pt-LightItalic.woff2 +0 -0
  186. package/theme/fonts/Inter/woff/Inter24pt-Medium.woff +0 -0
  187. package/theme/fonts/Inter/woff/Inter24pt-Medium.woff2 +0 -0
  188. package/theme/fonts/Inter/woff/Inter24pt-MediumItalic.woff +0 -0
  189. package/theme/fonts/Inter/woff/Inter24pt-MediumItalic.woff2 +0 -0
  190. package/theme/fonts/Inter/woff/Inter24pt-Regular.woff +0 -0
  191. package/theme/fonts/Inter/woff/Inter24pt-Regular.woff2 +0 -0
  192. package/theme/fonts/Inter/woff/Inter24pt-SemiBold.woff +0 -0
  193. package/theme/fonts/Inter/woff/Inter24pt-SemiBold.woff2 +0 -0
  194. package/theme/fonts/Inter/woff/Inter24pt-SemiBoldItalic.woff +0 -0
  195. package/theme/fonts/Inter/woff/Inter24pt-SemiBoldItalic.woff2 +0 -0
  196. package/theme/fonts/Inter/woff/Inter24pt-Thin.woff +0 -0
  197. package/theme/fonts/Inter/woff/Inter24pt-Thin.woff2 +0 -0
  198. package/theme/fonts/Inter/woff/Inter24pt-ThinItalic.woff +0 -0
  199. package/theme/fonts/Inter/woff/Inter24pt-ThinItalic.woff2 +0 -0
  200. package/theme/fonts/Inter/woff/Inter28pt-Black.woff +0 -0
  201. package/theme/fonts/Inter/woff/Inter28pt-Black.woff2 +0 -0
  202. package/theme/fonts/Inter/woff/Inter28pt-BlackItalic.woff +0 -0
  203. package/theme/fonts/Inter/woff/Inter28pt-BlackItalic.woff2 +0 -0
  204. package/theme/fonts/Inter/woff/Inter28pt-Bold.woff +0 -0
  205. package/theme/fonts/Inter/woff/Inter28pt-Bold.woff2 +0 -0
  206. package/theme/fonts/Inter/woff/Inter28pt-BoldItalic.woff +0 -0
  207. package/theme/fonts/Inter/woff/Inter28pt-BoldItalic.woff2 +0 -0
  208. package/theme/fonts/Inter/woff/Inter28pt-ExtraBoldItalic.woff +0 -0
  209. package/theme/fonts/Inter/woff/Inter28pt-ExtraBoldItalic.woff2 +0 -0
  210. package/theme/fonts/Inter/woff/Inter28pt-ExtraLightItalic.woff +0 -0
  211. package/theme/fonts/Inter/woff/Inter28pt-ExtraLightItalic.woff2 +0 -0
  212. package/theme/fonts/Inter/woff/Inter28pt-Italic.woff +0 -0
  213. package/theme/fonts/Inter/woff/Inter28pt-Italic.woff2 +0 -0
  214. package/theme/fonts/Inter/woff/Inter28pt-Light.woff +0 -0
  215. package/theme/fonts/Inter/woff/Inter28pt-Light.woff2 +0 -0
  216. package/theme/fonts/Inter/woff/Inter28pt-LightItalic.woff +0 -0
  217. package/theme/fonts/Inter/woff/Inter28pt-LightItalic.woff2 +0 -0
  218. package/theme/fonts/Inter/woff/Inter28pt-Medium.woff +0 -0
  219. package/theme/fonts/Inter/woff/Inter28pt-Medium.woff2 +0 -0
  220. package/theme/fonts/Inter/woff/Inter28pt-MediumItalic.woff +0 -0
  221. package/theme/fonts/Inter/woff/Inter28pt-MediumItalic.woff2 +0 -0
  222. package/theme/fonts/Inter/woff/Inter28pt-Regular.woff +0 -0
  223. package/theme/fonts/Inter/woff/Inter28pt-Regular.woff2 +0 -0
  224. package/theme/fonts/Inter/woff/Inter28pt-SemiBold.woff +0 -0
  225. package/theme/fonts/Inter/woff/Inter28pt-SemiBold.woff2 +0 -0
  226. package/theme/fonts/Inter/woff/Inter28pt-Thin.woff +0 -0
  227. package/theme/fonts/Inter/woff/Inter28pt-Thin.woff2 +0 -0
  228. package/theme/fonts/Inter/woff/Inter28pt-ThinItalic.woff +0 -0
  229. package/theme/fonts/Inter/woff/Inter28pt-ThinItalic.woff2 +0 -0
  230. package/util/loaders/index.d.ts +0 -1
  231. package/util/loaders/style/style.loader.service.d.ts +0 -13
  232. /package/{util/custom_pages → boot/pages}/index.d.ts +0 -0
  233. /package/{util/custom_pages → boot/pages}/src/forbidden.component.d.ts +0 -0
  234. /package/{util/custom_pages → boot/pages}/src/notFound.component.d.ts +0 -0
@@ -65,7 +65,7 @@ export class ChipComponent extends BaseInputComponent {
65
65
  if (this.editingIndex() === -1)
66
66
  return;
67
67
  const currentValues = [...(this.ngControl.control.value || [])];
68
- let newValue = this.editValue();
68
+ let newValue = this.editValue().trim();
69
69
  if (this.dataType() === 'number') {
70
70
  const numValue = Number(newValue);
71
71
  if (isNaN(numValue)) {
@@ -94,19 +94,24 @@ export class ChipComponent extends BaseInputComponent {
94
94
  this.focusSet = false;
95
95
  }
96
96
  onAdd(event) {
97
+ const currentValues = [...(this.ngControl.value || [])];
98
+ const newValue = event.value;
97
99
  if (this.dataType() === 'number') {
98
- const currentValues = [...(this.ngControl.value || [])];
99
- const newValue = event.value;
100
- const numValue = Number(newValue);
100
+ const trimmed = typeof newValue === 'string' ? newValue.trim() : newValue;
101
+ const numValue = Number(trimmed);
101
102
  if (isNaN(numValue)) {
102
103
  const filteredValues = currentValues.filter((v) => v !== newValue);
103
104
  this.ngControl.control.setValue(filteredValues);
104
105
  }
105
106
  else {
106
- const numericValues = currentValues.map((v) => (typeof v === 'string' ? Number(v) : v));
107
+ const numericValues = currentValues.map((v) => (typeof v === 'string' ? Number(v.trim()) : v));
107
108
  this.ngControl.control.setValue(numericValues);
108
109
  }
109
110
  }
111
+ else {
112
+ const trimmedValues = currentValues.map((v) => (typeof v === 'string' ? v.trim() : v));
113
+ this.ngControl.control.setValue(trimmedValues);
114
+ }
110
115
  }
111
116
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChipComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
112
117
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: ChipComponent, isStandalone: true, selector: "aril-chip[ngModel], aril-chip[formControl], aril-chip[formControlName]", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, addOnBlur: { classPropertyName: "addOnBlur", publicName: "addOnBlur", isSignal: true, isRequired: false, transformFunction: null }, addOnTab: { classPropertyName: "addOnTab", publicName: "addOnTab", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null } }, providers: [InputErrorMessagePipe], viewQueries: [{ propertyName: "editInput", first: true, predicate: ["editInput"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ValueAccessorDirective }], ngImport: i0, template: "<p-chips\r\n\t[class]=\"_sizeClass()\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[tabindex]=\"tabindex()\"\r\n\t[addOnBlur]=\"addOnBlur()\"\r\n\t[addOnTab]=\"addOnTab()\"\r\n\t[separator]=\"separator\"\r\n\t[allowDuplicate]=\"false\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[pTooltip]=\"ngControl.invalid ? (ngControl.control.value | inputErrorMessage: ngControl) : ''\"\r\n\ttooltipPosition=\"top\"\r\n\ttooltipStyleClass=\"tooltipErrorMessage\"\r\n\t(onAdd)=\"onAdd($event)\">\r\n\t<ng-template let-item pTemplate=\"item\">\r\n\t\t<ng-container *ngIf=\"editable() && editingIndex() === ngControl.control.value.indexOf(item); else displayChip\">\r\n\t\t\t<input\r\n\t\t\t\tpInputText\r\n\t\t\t\t[ngClass]=\"_sizeClass()\"\r\n\t\t\t\t[ngModel]=\"editValue()\"\r\n\t\t\t\t(ngModelChange)=\"editValue.set($event)\"\r\n\t\t\t\t(keydown)=\"onEditKeydown($event)\"\r\n\t\t\t\t(click)=\"$event.stopPropagation()\"\r\n\t\t\t\t(blur)=\"resetEditing()\"\r\n\t\t\t\t#editInput\r\n\t\t\t\tclass=\"m-0 p-1\" />\r\n\t\t</ng-container>\r\n\t\t<ng-template #displayChip>\r\n\t\t\t<div (dblclick)=\"startEditing(ngControl.control.value.indexOf(item), item)\">\r\n\t\t\t\t{{ item }}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</ng-template>\r\n</p-chips>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ChipsModule }, { kind: "component", type: i3.Chips, selector: "p-chips", inputs: ["style", "styleClass", "disabled", "field", "placeholder", "max", "maxLength", "ariaLabel", "ariaLabelledBy", "tabindex", "inputId", "allowDuplicate", "caseSensitiveDuplication", "inputStyle", "inputStyleClass", "addOnTab", "addOnBlur", "separator", "showClear", "autofocus", "variant"], outputs: ["onAdd", "onRemove", "onFocus", "onBlur", "onChipClick", "onClear"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i6.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: InputErrorMessagePipe, name: "inputErrorMessage" }] }); }
@@ -126,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
126
131
  type: ViewChild,
127
132
  args: ['editInput']
128
133
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2NoaXAvc3JjL2NoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9jaGlwL3NyYy9jaGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRU4sU0FBUyxFQUNULFVBQVUsRUFHVixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBcUJoRyxNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtJQWlCcEQsWUFBb0IsTUFBYztRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURXLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoQmxDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixTQUFJLEdBQUcsS0FBSyxDQUFPLElBQUksQ0FBQyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFL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LENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDRixDQUFDO0lBQ0YsQ0FBQzs4R0F0R1csYUFBYTtrR0FBYixhQUFhLHdnQ0FGZCxDQUFDLHFCQUFxQixDQUFDLHFOQ3RDbkMsNnRDQWdDVSwyQ0RIUixtQkFBbUIseWtCQUNuQixXQUFXLG1wQkFDWCxhQUFhLHFYQUNiLGVBQWUsOEJBQ2YsWUFBWSxnT0FDWixXQUFXLGtQQUNYLHFCQUFxQjs7MkZBS1YsYUFBYTtrQkFoQnpCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLHdFQUF3RSxXQUV6RTt3QkFDUixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxxQkFBcUI7cUJBQ3JCLGtCQUNlLENBQUMsc0JBQXNCLENBQUMsYUFDN0IsQ0FBQyxxQkFBcUIsQ0FBQzsyRUFXVixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG5cdEFmdGVyVmlld0NoZWNrZWQsXHJcblx0Q29tcG9uZW50LFxyXG5cdERlc3Ryb3lSZWYsXHJcblx0RWxlbWVudFJlZixcclxuXHROZ1pvbmUsXHJcblx0Vmlld0NoaWxkLFxyXG5cdGNvbXB1dGVkLFxyXG5cdGluamVjdCxcclxuXHRpbnB1dCxcclxuXHRzaWduYWxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBDaGlwc0FkZEV2ZW50LCBDaGlwc01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hpcHMnO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50LCBJbnB1dEVycm9yTWVzc2FnZVBpcGUsIFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICdhcmlsL3VpL2xpYic7XHJcblxyXG50eXBlIFNpemUgPSAnc20nIHwgJ21kJyB8ICdsZyc7XHJcbnR5cGUgRGF0YVR5cGUgPSAnc3RyaW5nJyB8ICdudW1iZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtY2hpcFtuZ01vZGVsXSwgYXJpbC1jaGlwW2Zvcm1Db250cm9sXSwgYXJpbC1jaGlwW2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jaGlwLmNvbXBvbmVudC5odG1sJyxcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG5cdFx0Q2hpcHNNb2R1bGUsXHJcblx0XHRUb29sdGlwTW9kdWxlLFxyXG5cdFx0SW5wdXRUZXh0TW9kdWxlLFxyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XHRJbnB1dEVycm9yTWVzc2FnZVBpcGVcclxuXHRdLFxyXG5cdGhvc3REaXJlY3RpdmVzOiBbVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZV0sXHJcblx0cHJvdmlkZXJzOiBbSW5wdXRFcnJvck1lc3NhZ2VQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hpcENvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xyXG5cdHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0dGFiaW5kZXggPSBpbnB1dDxudW1iZXI+KCk7XHJcblx0c2l6ZSA9IGlucHV0PFNpemU+KCdtZCcpO1xyXG5cdGVkaXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGFkZE9uQmx1ciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRhZGRPblRhYiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRkYXRhVHlwZSA9IGlucHV0PERhdGFUeXBlPignc3RyaW5nJyk7XHJcblxyXG5cdEBWaWV3Q2hpbGQoJ2VkaXRJbnB1dCcpIGVkaXRJbnB1dDogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xyXG5cdGVkaXRpbmdJbmRleCA9IHNpZ25hbDxudW1iZXI+KC0xKTtcclxuXHRlZGl0VmFsdWUgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblxyXG5cdHNlcGFyYXRvciA9IC9bLFxcblxccl0vO1xyXG5cdHByaXZhdGUgZm9jdXNTZXQgPSBmYWxzZTtcclxuXHRkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG5cdFx0Ly8gRm9jdXMgdGhlIGlucHV0IGVsZW1lbnQgYWZ0ZXIgdmlldyBpcyBjaGVja2VkIGFuZCBlbGVtZW50IGlzIGF2YWlsYWJsZVxyXG5cdFx0aWYgKHRoaXMuZWRpdGluZ0luZGV4KCkgIT09IC0xICYmIHRoaXMuZWRpdElucHV0ICYmICF0aGlzLmZvY3VzU2V0KSB7XHJcblx0XHRcdHRoaXMuZm9jdXNTZXQgPSB0cnVlO1xyXG5cdFx0XHQvLyBVc2UgTmdab25lLnJ1bk91dHNpZGVBbmd1bGFyIHRvIGF2b2lkIHRyaWdnZXJpbmcgY2hhbmdlIGRldGVjdGlvblxyXG5cdFx0XHR0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCBpbnB1dEVsID0gdGhpcy5lZGl0SW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHRcdFx0XHRpbnB1dEVsLmZvY3VzKCk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0X3NpemVDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdHN3aXRjaCAodGhpcy5zaXplKCkpIHtcclxuXHRcdFx0Y2FzZSAnc20nOlxyXG5cdFx0XHRcdHJldHVybiAncC1pbnB1dHRleHQtc20nO1xyXG5cdFx0XHRjYXNlICdtZCc6XHJcblx0XHRcdFx0cmV0dXJuICcnO1xyXG5cdFx0XHRjYXNlICdsZyc6XHJcblx0XHRcdFx0cmV0dXJuICdwLWlucHV0dGV4dC1sZyc7XHJcblx0XHR9XHJcblx0fSk7XHJcblxyXG5cdHN0YXJ0RWRpdGluZyhpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuZWRpdGFibGUoKSkgcmV0dXJuO1xyXG5cdFx0dGhpcy5lZGl0aW5nSW5kZXguc2V0KGluZGV4KTtcclxuXHRcdHRoaXMuZWRpdFZhbHVlLnNldCh2YWx1ZSk7XHJcblx0XHR0aGlzLmZvY3VzU2V0ID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRzYXZlQ2hhbmdlcygpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmVkaXRpbmdJbmRleCgpID09PSAtMSkgcmV0dXJuO1xyXG5cdFx0Y29uc3QgY3VycmVudFZhbHVlcyA9IFsuLi4odGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWx1ZSB8fCBbXSldO1xyXG5cdFx0bGV0IG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgPSB0aGlzLmVkaXRWYWx1ZSgpO1xyXG5cclxuXHRcdGlmICh0aGlzLmRhdGFUeXBlKCkgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdGNvbnN0IG51bVZhbHVlID0gTnVtYmVyKG5ld1ZhbHVlKTtcclxuXHRcdFx0aWYgKGlzTmFOKG51bVZhbHVlKSkge1xyXG5cdFx0XHRcdHRoaXMucmVzZXRFZGl0aW5nKCk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdG5ld1ZhbHVlID0gbnVtVmFsdWU7XHJcblx0XHR9XHJcblxyXG5cdFx0Y3VycmVudFZhbHVlc1t0aGlzLmVkaXRpbmdJbmRleCgpXSA9IG5ld1ZhbHVlO1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wuY29udHJvbC5zZXRWYWx1ZShjdXJyZW50VmFsdWVzKTtcclxuXHRcdHRoaXMucmVzZXRFZGl0aW5nKCk7XHJcblx0fVxyXG5cclxuXHRvbkVkaXRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcblx0XHRpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcblx0XHRcdHRoaXMuc2F2ZUNoYW5nZXMoKTtcclxuXHRcdH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG5cdFx0XHR0aGlzLnJlc2V0RWRpdGluZygpO1xyXG5cdFx0fVxyXG5cdFx0Ly8gUHJldmVudCBldmVudCBwcm9wYWdhdGlvbiBmb3IgYWxsIGtleWRvd24gZXZlbnRzIHRvIGF2b2lkIGludGVyZmVyZW5jZVxyXG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0fVxyXG5cclxuXHRyZXNldEVkaXRpbmcoKTogdm9pZCB7XHJcblx0XHR0aGlzLmVkaXRpbmdJbmRleC5zZXQoLTEpO1xyXG5cdFx0dGhpcy5lZGl0VmFsdWUuc2V0KCcnKTtcclxuXHRcdHRoaXMuZm9jdXNTZXQgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdG9uQWRkKGV2ZW50OiBDaGlwc0FkZEV2ZW50KSB7XHJcblx0XHRpZiAodGhpcy5kYXRhVHlwZSgpID09PSAnbnVtYmVyJykge1xyXG5cdFx0XHRjb25zdCBjdXJyZW50VmFsdWVzID0gWy4uLih0aGlzLm5nQ29udHJvbC52YWx1ZSB8fCBbXSldO1xyXG5cdFx0XHRjb25zdCBuZXdWYWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG5cdFx0XHRjb25zdCBudW1WYWx1ZSA9IE51bWJlcihuZXdWYWx1ZSk7XHJcblxyXG5cdFx0XHRpZiAoaXNOYU4obnVtVmFsdWUpKSB7XHJcblx0XHRcdFx0Y29uc3QgZmlsdGVyZWRWYWx1ZXMgPSBjdXJyZW50VmFsdWVzLmZpbHRlcigodikgPT4gdiAhPT0gbmV3VmFsdWUpO1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsdWUoZmlsdGVyZWRWYWx1ZXMpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbnN0IG51bWVyaWNWYWx1ZXMgPSBjdXJyZW50VmFsdWVzLm1hcCgodikgPT4gKHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IE51bWJlcih2KSA6IHYpKTtcclxuXHRcdFx0XHR0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKG51bWVyaWNWYWx1ZXMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIjxwLWNoaXBzXHJcblx0W2NsYXNzXT1cIl9zaXplQ2xhc3MoKVwiXHJcblx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG5cdFt0YWJpbmRleF09XCJ0YWJpbmRleCgpXCJcclxuXHRbYWRkT25CbHVyXT1cImFkZE9uQmx1cigpXCJcclxuXHRbYWRkT25UYWJdPVwiYWRkT25UYWIoKVwiXHJcblx0W3NlcGFyYXRvcl09XCJzZXBhcmF0b3JcIlxyXG5cdFthbGxvd0R1cGxpY2F0ZV09XCJmYWxzZVwiXHJcblx0W2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcclxuXHRbcFRvb2x0aXBdPVwibmdDb250cm9sLmludmFsaWQgPyAobmdDb250cm9sLmNvbnRyb2wudmFsdWUgfCBpbnB1dEVycm9yTWVzc2FnZTogbmdDb250cm9sKSA6ICcnXCJcclxuXHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdHRvb2x0aXBTdHlsZUNsYXNzPVwidG9vbHRpcEVycm9yTWVzc2FnZVwiXHJcblx0KG9uQWRkKT1cIm9uQWRkKCRldmVudClcIj5cclxuXHQ8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRhYmxlKCkgJiYgZWRpdGluZ0luZGV4KCkgPT09IG5nQ29udHJvbC5jb250cm9sLnZhbHVlLmluZGV4T2YoaXRlbSk7IGVsc2UgZGlzcGxheUNoaXBcIj5cclxuXHRcdFx0PGlucHV0XHJcblx0XHRcdFx0cElucHV0VGV4dFxyXG5cdFx0XHRcdFtuZ0NsYXNzXT1cIl9zaXplQ2xhc3MoKVwiXHJcblx0XHRcdFx0W25nTW9kZWxdPVwiZWRpdFZhbHVlKClcIlxyXG5cdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cImVkaXRWYWx1ZS5zZXQoJGV2ZW50KVwiXHJcblx0XHRcdFx0KGtleWRvd24pPVwib25FZGl0S2V5ZG93bigkZXZlbnQpXCJcclxuXHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuXHRcdFx0XHQoYmx1cik9XCJyZXNldEVkaXRpbmcoKVwiXHJcblx0XHRcdFx0I2VkaXRJbnB1dFxyXG5cdFx0XHRcdGNsYXNzPVwibS0wIHAtMVwiIC8+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDxuZy10ZW1wbGF0ZSAjZGlzcGxheUNoaXA+XHJcblx0XHRcdDxkaXYgKGRibGNsaWNrKT1cInN0YXJ0RWRpdGluZyhuZ0NvbnRyb2wuY29udHJvbC52YWx1ZS5pbmRleE9mKGl0ZW0pLCBpdGVtKVwiPlxyXG5cdFx0XHRcdHt7IGl0ZW0gfX1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC1jaGlwcz4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2NoaXAvc3JjL2NoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9jaGlwL3NyYy9jaGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRU4sU0FBUyxFQUNULFVBQVUsRUFHVixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBcUJoRyxNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtJQWlCcEQsWUFBb0IsTUFBYztRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURXLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoQmxDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixTQUFJLEdBQUcsS0FBSyxDQUFPLElBQUksQ0FBQyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFL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QkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuXHRBZnRlclZpZXdDaGVja2VkLFxyXG5cdENvbXBvbmVudCxcclxuXHREZXN0cm95UmVmLFxyXG5cdEVsZW1lbnRSZWYsXHJcblx0Tmdab25lLFxyXG5cdFZpZXdDaGlsZCxcclxuXHRjb21wdXRlZCxcclxuXHRpbmplY3QsXHJcblx0aW5wdXQsXHJcblx0c2lnbmFsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQ2hpcHNBZGRFdmVudCwgQ2hpcHNNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NoaXBzJztcclxuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgSW5wdXRFcnJvck1lc3NhZ2VQaXBlLCBWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC91aS9saWInO1xyXG5cclxudHlwZSBTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnO1xyXG50eXBlIERhdGFUeXBlID0gJ3N0cmluZycgfCAnbnVtYmVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLWNoaXBbbmdNb2RlbF0sIGFyaWwtY2hpcFtmb3JtQ29udHJvbF0sIGFyaWwtY2hpcFtmb3JtQ29udHJvbE5hbWVdJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY2hpcC5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuXHRcdENoaXBzTW9kdWxlLFxyXG5cdFx0VG9vbHRpcE1vZHVsZSxcclxuXHRcdElucHV0VGV4dE1vZHVsZSxcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0SW5wdXRFcnJvck1lc3NhZ2VQaXBlXHJcblx0XSxcclxuXHRob3N0RGlyZWN0aXZlczogW1ZhbHVlQWNjZXNzb3JEaXJlY3RpdmVdLFxyXG5cdHByb3ZpZGVyczogW0lucHV0RXJyb3JNZXNzYWdlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENoaXBDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuXHRwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHRhYmluZGV4ID0gaW5wdXQ8bnVtYmVyPigpO1xyXG5cdHNpemUgPSBpbnB1dDxTaXplPignbWQnKTtcclxuXHRlZGl0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRhZGRPbkJsdXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0YWRkT25UYWIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0ZGF0YVR5cGUgPSBpbnB1dDxEYXRhVHlwZT4oJ3N0cmluZycpO1xyXG5cclxuXHRAVmlld0NoaWxkKCdlZGl0SW5wdXQnKSBlZGl0SW5wdXQ6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuXHRlZGl0aW5nSW5kZXggPSBzaWduYWw8bnVtYmVyPigtMSk7XHJcblx0ZWRpdFZhbHVlID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cclxuXHRzZXBhcmF0b3IgPSAvWyxcXG5cXHJdLztcclxuXHRwcml2YXRlIGZvY3VzU2V0ID0gZmFsc2U7XHJcblx0ZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuXHRcdC8vIEZvY3VzIHRoZSBpbnB1dCBlbGVtZW50IGFmdGVyIHZpZXcgaXMgY2hlY2tlZCBhbmQgZWxlbWVudCBpcyBhdmFpbGFibGVcclxuXHRcdGlmICh0aGlzLmVkaXRpbmdJbmRleCgpICE9PSAtMSAmJiB0aGlzLmVkaXRJbnB1dCAmJiAhdGhpcy5mb2N1c1NldCkge1xyXG5cdFx0XHR0aGlzLmZvY3VzU2V0ID0gdHJ1ZTtcclxuXHRcdFx0Ly8gVXNlIE5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhciB0byBhdm9pZCB0cmlnZ2VyaW5nIGNoYW5nZSBkZXRlY3Rpb25cclxuXHRcdFx0dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG5cdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgaW5wdXRFbCA9IHRoaXMuZWRpdElucHV0Py5uYXRpdmVFbGVtZW50O1xyXG5cdFx0XHRcdFx0aW5wdXRFbC5mb2N1cygpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdF9zaXplQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRzd2l0Y2ggKHRoaXMuc2l6ZSgpKSB7XHJcblx0XHRcdGNhc2UgJ3NtJzpcclxuXHRcdFx0XHRyZXR1cm4gJ3AtaW5wdXR0ZXh0LXNtJztcclxuXHRcdFx0Y2FzZSAnbWQnOlxyXG5cdFx0XHRcdHJldHVybiAnJztcclxuXHRcdFx0Y2FzZSAnbGcnOlxyXG5cdFx0XHRcdHJldHVybiAncC1pbnB1dHRleHQtbGcnO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cclxuXHRzdGFydEVkaXRpbmcoaW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmVkaXRhYmxlKCkpIHJldHVybjtcclxuXHRcdHRoaXMuZWRpdGluZ0luZGV4LnNldChpbmRleCk7XHJcblx0XHR0aGlzLmVkaXRWYWx1ZS5zZXQodmFsdWUpO1xyXG5cdFx0dGhpcy5mb2N1c1NldCA9IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0c2F2ZUNoYW5nZXMoKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5lZGl0aW5nSW5kZXgoKSA9PT0gLTEpIHJldHVybjtcclxuXHRcdGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBbLi4uKHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsdWUgfHwgW10pXTtcclxuXHRcdGxldCBuZXdWYWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gdGhpcy5lZGl0VmFsdWUoKS50cmltKCk7XHJcblxyXG5cdFx0aWYgKHRoaXMuZGF0YVR5cGUoKSA9PT0gJ251bWJlcicpIHtcclxuXHRcdFx0Y29uc3QgbnVtVmFsdWUgPSBOdW1iZXIobmV3VmFsdWUpO1xyXG5cdFx0XHRpZiAoaXNOYU4obnVtVmFsdWUpKSB7XHJcblx0XHRcdFx0dGhpcy5yZXNldEVkaXRpbmcoKTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0bmV3VmFsdWUgPSBudW1WYWx1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRjdXJyZW50VmFsdWVzW3RoaXMuZWRpdGluZ0luZGV4KCldID0gbmV3VmFsdWU7XHJcblx0XHR0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKGN1cnJlbnRWYWx1ZXMpO1xyXG5cdFx0dGhpcy5yZXNldEVkaXRpbmcoKTtcclxuXHR9XHJcblxyXG5cdG9uRWRpdEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuXHRcdGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuXHRcdFx0dGhpcy5zYXZlQ2hhbmdlcygpO1xyXG5cdFx0fSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XHJcblx0XHRcdHRoaXMucmVzZXRFZGl0aW5nKCk7XHJcblx0XHR9XHJcblx0XHQvLyBQcmV2ZW50IGV2ZW50IHByb3BhZ2F0aW9uIGZvciBhbGwga2V5ZG93biBldmVudHMgdG8gYXZvaWQgaW50ZXJmZXJlbmNlXHJcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHR9XHJcblxyXG5cdHJlc2V0RWRpdGluZygpOiB2b2lkIHtcclxuXHRcdHRoaXMuZWRpdGluZ0luZGV4LnNldCgtMSk7XHJcblx0XHR0aGlzLmVkaXRWYWx1ZS5zZXQoJycpO1xyXG5cdFx0dGhpcy5mb2N1c1NldCA9IGZhbHNlO1xyXG5cdH1cclxuXHJcblx0b25BZGQoZXZlbnQ6IENoaXBzQWRkRXZlbnQpIHtcclxuXHRcdGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBbLi4uKHRoaXMubmdDb250cm9sLnZhbHVlIHx8IFtdKV07XHJcblx0XHRjb25zdCBuZXdWYWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG5cclxuXHRcdGlmICh0aGlzLmRhdGFUeXBlKCkgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdGNvbnN0IHRyaW1tZWQgPSB0eXBlb2YgbmV3VmFsdWUgPT09ICdzdHJpbmcnID8gbmV3VmFsdWUudHJpbSgpIDogbmV3VmFsdWU7XHJcblx0XHRcdGNvbnN0IG51bVZhbHVlID0gTnVtYmVyKHRyaW1tZWQpO1xyXG5cclxuXHRcdFx0aWYgKGlzTmFOKG51bVZhbHVlKSkge1xyXG5cdFx0XHRcdGNvbnN0IGZpbHRlcmVkVmFsdWVzID0gY3VycmVudFZhbHVlcy5maWx0ZXIoKHYpID0+IHYgIT09IG5ld1ZhbHVlKTtcclxuXHRcdFx0XHR0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKGZpbHRlcmVkVmFsdWVzKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRjb25zdCBudW1lcmljVmFsdWVzID0gY3VycmVudFZhbHVlcy5tYXAoKHYpID0+ICh0eXBlb2YgdiA9PT0gJ3N0cmluZycgPyBOdW1iZXIodi50cmltKCkpIDogdikpO1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsdWUobnVtZXJpY1ZhbHVlcyk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbnN0IHRyaW1tZWRWYWx1ZXMgPSBjdXJyZW50VmFsdWVzLm1hcCgodikgPT4gKHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IHYudHJpbSgpIDogdikpO1xyXG5cdFx0XHR0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbHVlKHRyaW1tZWRWYWx1ZXMpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8cC1jaGlwc1xyXG5cdFtjbGFzc109XCJfc2l6ZUNsYXNzKClcIlxyXG5cdFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuXHRbdGFiaW5kZXhdPVwidGFiaW5kZXgoKVwiXHJcblx0W2FkZE9uQmx1cl09XCJhZGRPbkJsdXIoKVwiXHJcblx0W2FkZE9uVGFiXT1cImFkZE9uVGFiKClcIlxyXG5cdFtzZXBhcmF0b3JdPVwic2VwYXJhdG9yXCJcclxuXHRbYWxsb3dEdXBsaWNhdGVdPVwiZmFsc2VcIlxyXG5cdFtmb3JtQ29udHJvbF09XCJuZ0NvbnRyb2wuY29udHJvbFwiXHJcblx0W3BUb29sdGlwXT1cIm5nQ29udHJvbC5pbnZhbGlkID8gKG5nQ29udHJvbC5jb250cm9sLnZhbHVlIHwgaW5wdXRFcnJvck1lc3NhZ2U6IG5nQ29udHJvbCkgOiAnJ1wiXHJcblx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuXHR0b29sdGlwU3R5bGVDbGFzcz1cInRvb2x0aXBFcnJvck1lc3NhZ2VcIlxyXG5cdChvbkFkZCk9XCJvbkFkZCgkZXZlbnQpXCI+XHJcblx0PG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0YWJsZSgpICYmIGVkaXRpbmdJbmRleCgpID09PSBuZ0NvbnRyb2wuY29udHJvbC52YWx1ZS5pbmRleE9mKGl0ZW0pOyBlbHNlIGRpc3BsYXlDaGlwXCI+XHJcblx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdHBJbnB1dFRleHRcclxuXHRcdFx0XHRbbmdDbGFzc109XCJfc2l6ZUNsYXNzKClcIlxyXG5cdFx0XHRcdFtuZ01vZGVsXT1cImVkaXRWYWx1ZSgpXCJcclxuXHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJlZGl0VmFsdWUuc2V0KCRldmVudClcIlxyXG5cdFx0XHRcdChrZXlkb3duKT1cIm9uRWRpdEtleWRvd24oJGV2ZW50KVwiXHJcblx0XHRcdFx0KGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcblx0XHRcdFx0KGJsdXIpPVwicmVzZXRFZGl0aW5nKClcIlxyXG5cdFx0XHRcdCNlZGl0SW5wdXRcclxuXHRcdFx0XHRjbGFzcz1cIm0tMCBwLTFcIiAvPlxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8bmctdGVtcGxhdGUgI2Rpc3BsYXlDaGlwPlxyXG5cdFx0XHQ8ZGl2IChkYmxjbGljayk9XCJzdGFydEVkaXRpbmcobmdDb250cm9sLmNvbnRyb2wudmFsdWUuaW5kZXhPZihpdGVtKSwgaXRlbSlcIj5cclxuXHRcdFx0XHR7eyBpdGVtIH19XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L3AtY2hpcHM+Il19
@@ -1,13 +1,25 @@
1
- import { ChangeDetectionStrategy, Component, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChild, HostListener, input } from '@angular/core';
2
2
  import { FlexGridDirective, FormErrorMessageDirective } from 'aril/ui/lib';
3
+ import { FormSubmitButtonComponent } from './form-submit-button.component';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "aril/ui/lib";
5
6
  export class FormComponent {
6
7
  constructor() {
7
8
  this.formGroup = input.required();
8
9
  }
10
+ onEnterKey(event) {
11
+ if (!this.submitButton)
12
+ return;
13
+ const target = event.target;
14
+ if (target.tagName === 'TEXTAREA')
15
+ return;
16
+ if (target.closest('p-chips'))
17
+ return;
18
+ event.preventDefault();
19
+ this.submitButton.submit();
20
+ }
9
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: FormComponent, selector: "aril-form", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null } }, hostDirectives: [{ directive: i1.FlexGridDirective }, { directive: i1.FormErrorMessageDirective, inputs: ["formErrorMessage", "formGroup"] }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: FormComponent, selector: "aril-form", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "keydown.enter": "onEnterKey($event)" } }, queries: [{ propertyName: "submitButton", first: true, predicate: FormSubmitButtonComponent, descendants: true }], hostDirectives: [{ directive: i1.FlexGridDirective }, { directive: i1.FormErrorMessageDirective, inputs: ["formErrorMessage", "formGroup"] }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
23
  }
12
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FormComponent, decorators: [{
13
25
  type: Component,
@@ -23,5 +35,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
23
35
  ],
24
36
  changeDetection: ChangeDetectionStrategy.OnPush
25
37
  }]
26
- }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2Zvcm0vc3JjL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBYzNFLE1BQU0sT0FBTyxhQUFhO0lBWjFCO1FBYUMsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztLQUN4Qzs4R0FGWSxhQUFhO2tHQUFiLGFBQWEsK1VBVmYsNkJBQTZCOzsyRkFVM0IsYUFBYTtrQkFaekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsY0FBYyxFQUFFO3dCQUNmLGlCQUFpQjt3QkFDakI7NEJBQ0MsU0FBUyxFQUFFLHlCQUF5Qjs0QkFDcEMsTUFBTSxFQUFFLENBQUMsNkJBQTZCLENBQUM7eUJBQ3ZDO3FCQUNEO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEZsZXhHcmlkRGlyZWN0aXZlLCBGb3JtRXJyb3JNZXNzYWdlRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC91aS9saWInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcmlsLWZvcm0nLFxyXG5cdHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gYCxcclxuXHRob3N0RGlyZWN0aXZlczogW1xyXG5cdFx0RmxleEdyaWREaXJlY3RpdmUsXHJcblx0XHR7XHJcblx0XHRcdGRpcmVjdGl2ZTogRm9ybUVycm9yTWVzc2FnZURpcmVjdGl2ZSxcclxuXHRcdFx0aW5wdXRzOiBbJ2Zvcm1FcnJvck1lc3NhZ2U6IGZvcm1Hcm91cCddXHJcblx0XHR9XHJcblx0XSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCB7XHJcblx0Zm9ybUdyb3VwID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUdyb3VwPigpO1xyXG59XHJcbiJdfQ==
38
+ }], propDecorators: { submitButton: [{
39
+ type: ContentChild,
40
+ args: [FormSubmitButtonComponent]
41
+ }], onEnterKey: [{
42
+ type: HostListener,
43
+ args: ['keydown.enter', ['$event']]
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL2Zvcm0vc3JjL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFjM0UsTUFBTSxPQUFPLGFBQWE7SUFaMUI7UUFhQyxjQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO0tBaUJ4QztJQVpBLFVBQVUsQ0FBQyxLQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFL0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFFM0MsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLFVBQVU7WUFBRSxPQUFPO1FBRTFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFBRSxPQUFPO1FBRXRDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBakJXLGFBQWE7a0dBQWIsYUFBYSwwU0FHWCx5QkFBeUIsK0xBYjdCLDZCQUE2Qjs7MkZBVTNCLGFBQWE7a0JBWnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLGNBQWMsRUFBRTt3QkFDZixpQkFBaUI7d0JBQ2pCOzRCQUNDLFNBQVMsRUFBRSx5QkFBeUI7NEJBQ3BDLE1BQU0sRUFBRSxDQUFDLDZCQUE2QixDQUFDO3lCQUN2QztxQkFDRDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7OEJBSXlDLFlBQVk7c0JBQXBELFlBQVk7dUJBQUMseUJBQXlCO2dCQUd2QyxVQUFVO3NCQURULFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBIb3N0TGlzdGVuZXIsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEZsZXhHcmlkRGlyZWN0aXZlLCBGb3JtRXJyb3JNZXNzYWdlRGlyZWN0aXZlIH0gZnJvbSAnYXJpbC91aS9saWInO1xyXG5pbXBvcnQgeyBGb3JtU3VibWl0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC1mb3JtJyxcclxuXHR0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+IGAsXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtcclxuXHRcdEZsZXhHcmlkRGlyZWN0aXZlLFxyXG5cdFx0e1xyXG5cdFx0XHRkaXJlY3RpdmU6IEZvcm1FcnJvck1lc3NhZ2VEaXJlY3RpdmUsXHJcblx0XHRcdGlucHV0czogWydmb3JtRXJyb3JNZXNzYWdlOiBmb3JtR3JvdXAnXVxyXG5cdFx0fVxyXG5cdF0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQge1xyXG5cdGZvcm1Hcm91cCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Hcm91cD4oKTtcclxuXHJcblx0QENvbnRlbnRDaGlsZChGb3JtU3VibWl0QnV0dG9uQ29tcG9uZW50KSBzdWJtaXRCdXR0b24/OiBGb3JtU3VibWl0QnV0dG9uQ29tcG9uZW50O1xyXG5cclxuXHRASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcclxuXHRvbkVudGVyS2V5KGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLnN1Ym1pdEJ1dHRvbikgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuXHJcblx0XHRpZiAodGFyZ2V0LnRhZ05hbWUgPT09ICdURVhUQVJFQScpIHJldHVybjtcclxuXHJcblx0XHRpZiAodGFyZ2V0LmNsb3Nlc3QoJ3AtY2hpcHMnKSkgcmV0dXJuO1xyXG5cclxuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHR0aGlzLnN1Ym1pdEJ1dHRvbi5zdWJtaXQoKTtcclxuXHR9XHJcbn1cclxuIl19
@@ -3,7 +3,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { ReactiveFormsModule } from '@angular/forms';
4
4
  import { AutoComplete, AutoCompleteModule } from 'primeng/autocomplete';
5
5
  import { ObjectUtils } from 'primeng/utils';
6
- import { Subject, switchMap } from 'rxjs';
6
+ import { Subject, filter, switchMap } from 'rxjs';
7
7
  import { API_CONFIGS } from 'aril/boot/config/api';
8
8
  import { Apps } from 'aril/boot/config/apps';
9
9
  import { BaseInputComponent, ValueAccessorDirective } from 'aril/ui/lib';
@@ -59,6 +59,18 @@ export class AssetPickerComponent extends BaseInputComponent {
59
59
  this.search({ query: searchQuery });
60
60
  }
61
61
  }
62
+ // React to programmatic patches (createFormDataObject / patchAssetResponseToForm)
63
+ this.ngControl?.control?.valueChanges
64
+ .pipe(filter(value => value &&
65
+ typeof value === 'object' &&
66
+ 'text' in value &&
67
+ !('attributes' in value)), takeUntilDestroyed(this.destroyRef))
68
+ .subscribe(value => {
69
+ if (!this.isUpdateMode()) {
70
+ this.isUpdateMode.set(true);
71
+ this.search({ query: value.text });
72
+ }
73
+ });
62
74
  }
63
75
  refreshFilteredSelectionItems() {
64
76
  if (!this.selectionDefinitions)
@@ -187,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
187
199
  }], selectedDefinitionEvent: [{
188
200
  type: Output
189
201
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWktYnVzaW5lc3MvYXNzZXRQaWNrZXIvc3JjL2Fzc2V0LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL2Fzc2V0UGlja2VyL3NyYy9hc3NldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUVaLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUF1Q3pFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFzQjNELFlBQ2tCLElBQWdCLEVBQzFCLGdCQUFrQyxFQUN4QixxQkFBNEM7UUFFN0QsS0FBSyxFQUFFLENBQUM7UUFKUyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDeEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQXZCOUQsY0FBUyxHQUFHLEtBQUssQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFDbEQsU0FBSSxHQUFHLEtBQUssQ0FBb0IsSUFBSSxDQUFDLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxLQUFLLENBQVMsVUFBVSxDQUFDLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUE4QixJQUFJLENBQUMsQ0FBQztRQUN2RCxhQUFRLEdBQUcsS0FBSyxDQUE4QixNQUFNLENBQUMsQ0FBQztRQUN0RCxRQUFHLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDdEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzVDLDJCQUFzQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvQyxpQkFBWSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUl0Qyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUMzRCxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RCLDRCQUF1QixHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQVNwRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzdDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ3RDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUVKLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQjthQUN0QixJQUFJLENBQ0osU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sV0FBVyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRywyQkFBMkIsRUFBRSxPQUFPLENBQUMsQ0FDeEcsRUFDRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ25DO2FBQ0EsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGNBQWMsQ0FBQztZQUMzQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVKLHNGQUFzRjtRQUN0RixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3hGLE1BQU0sV0FBVyxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDO1lBQ3pGLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7SUFFRixDQUFDO0lBRU8sNkJBQTZCO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CO1lBQUUsT0FBTztRQUV2QyxNQUFNLDJCQUEyQixHQUEwQixFQUFFLENBQUM7UUFFOUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUM5RCxNQUFNLFNBQVMsR0FBd0I7Z0JBQ3RDLElBQUksRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUI7Z0JBQy9FLEdBQUcsRUFBRSxHQUFHO2dCQUNSLEtBQUssRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDL0MsQ0FBQyxJQUFvQixFQUFFLEVBQUUsQ0FDeEIsQ0FBQztvQkFDQSxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUU7b0JBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUNwRCxXQUFXLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7b0JBQ3RELFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtvQkFDM0IsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtpQkFDN0MsQ0FBbUIsQ0FDckI7YUFDRCxDQUFDO1lBQ0YsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTVDLCtGQUErRjtZQUMvRixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHNCQUFzQixHQUFHLDJCQUEyQixDQUFDO0lBQzNELENBQUM7SUFFRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFXO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN6QixPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDNUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUMxQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTztRQUU3RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRTtZQUFFLE9BQU87UUFFM0IsTUFBTSxPQUFPLEdBQTBCO1lBQ3RDLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3pCLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQVM7WUFDdEcsS0FBSyxFQUFFO2dCQUNOLFFBQVEsRUFBRSxDQUFDO2dCQUNYLFVBQVUsRUFBRSxDQUFDO2FBQ2I7U0FDRCxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFekMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsd0JBQXdCLENBQUMsVUFBOEI7UUFDdEQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlELE9BQU8sVUFBVTtZQUNoQixFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUMvRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2QsNERBQTREO1lBQzVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUM7Z0JBQ2hGLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFlLENBQUMsQ0FBQztZQUNwRixDQUFDO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUMzRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7SUFDTyxtQkFBbUIsQ0FBQyxVQUE4QjtRQUN6RCxNQUFNLGVBQWUsR0FBRyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsS0FBSyxhQUFhLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsZUFBZTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLElBQUksZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ08sbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxLQUFhO1FBQzNELE1BQU0sR0FBRyxHQUFHLEdBQUcsU0FBUyxNQUFNLENBQUM7UUFDL0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RCxPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUd4RixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUVqQyxPQUFPLGFBQWEsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUM7SUFDL0csQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQVU7UUFDL0IsTUFBTSxhQUFhLEdBQXFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDbEcsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1RyxDQUFDLENBQXFCLENBQUM7UUFFdkIsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sYUFBYSxHQUFHO1lBQ3JCLEdBQUcsWUFBWTtZQUNmLEdBQUcsRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUNyQixJQUFJLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjtZQUN2QyxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVU7WUFDcEMsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjtTQUN0RCxDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRCxDQUFDOzhHQXhNVyxvQkFBb0I7a0dBQXBCLG9CQUFvQiw2dkRBQ3JCLFlBQVksbUlDbEV4QiwwL0JBNEJBLDhSRGtDVyxtQkFBbUIseVRBQUUsa0JBQWtCOzsyRkFHckMsb0JBQW9CO2tCQTNCaEMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sZ0dBQWdHLFdBc0JqRyxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLGtCQUNsQyxDQUFDLHNCQUFzQixDQUFDO2tKQUdmLGVBQWU7c0JBQXZDLFNBQVM7dUJBQUMsWUFBWTtnQkFtQmIsdUJBQXVCO3NCQUFoQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuXHRBZnRlclZpZXdJbml0LFxyXG5cdENvbXBvbmVudCxcclxuXHREZXN0cm95UmVmLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRPbkluaXQsXHJcblx0T3V0cHV0LFxyXG5cdFZpZXdDaGlsZCxcclxuXHRlZmZlY3QsXHJcblx0aW5qZWN0LFxyXG5cdGlucHV0LFxyXG5cdHNpZ25hbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBdXRvQ29tcGxldGUsIEF1dG9Db21wbGV0ZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEFwcHMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3RoZW1lL2xheW91dCc7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7XHJcblx0QXNzZXRBZ2dyZWdhdGUsXHJcblx0QXR0cmlidXRlRWxlbWVudCxcclxuXHRDYWNoZVNlYXJjaFJlcXVlc3REVE8sXHJcblx0RGVmYXVsdFNlYXJjaEFnZ3JlZ2F0ZUFzc2V0QWdncmVnYXRlLFxyXG5cdFN1Z2dlc3Rpb25zRFRPLFxyXG5cdFN1Z2dlc3Rpb25zR3JvdXBEVE9cclxufSBmcm9tICcuL2ludGVyZmFjZSc7XHJcblxyXG50eXBlIFZhbHVlVHlwZXMgPSAndGV4dCcgfCAnbnVtYmVyJztcclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtYXNzZXQtcGlja2VyW25nTW9kZWxdLCBhcmlsLWFzc2V0LXBpY2tlcltmb3JtQ29udHJvbF0sIGFyaWwtYXNzZXQtcGlja2VyW2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hc3NldC1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlczogW1xyXG5cdFx0YFxyXG5cdFx0XHQ6Om5nLWRlZXAgLnAtYXV0b2NvbXBsZXRlLW11bHRpcGxlLWNvbnRhaW5lciB7XHJcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdFx0XHRcdG1heC1oZWlnaHQ6IDUwcHg7XHJcblx0XHRcdFx0b3ZlcmZsb3cteTogYXV0bztcclxuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ6Om5nLWRlZXAgLnAtYXV0b2NvbXBsZXRlLXRva2VuIHtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0ZmxleC1zaHJpbms6IDA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdDo6bmctZGVlcCAucC1hdXRvY29tcGxldGUtaW5wdXQtdG9rZW4ge1xyXG5cdFx0XHRcdGZsZXg6IDE7XHJcblx0XHRcdFx0bWluLXdpZHRoOiAxNTBweDtcclxuXHRcdFx0fVxyXG5cdFx0YFxyXG5cdF0sXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIEF1dG9Db21wbGV0ZU1vZHVsZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xyXG5cdEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlKSBhdXRvQ29tcGxldGVSZWYhOiBBdXRvQ29tcGxldGU7XHJcblx0YXNzZXRDb2RlID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10gfCBudWxsPihudWxsKTtcclxuXHR0eXBlID0gaW5wdXQ8VmFsdWVUeXBlcyB8IG51bGw+KG51bGwpO1xyXG5cclxuXHRwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJ0FyYW1hLi4uJyk7XHJcblx0Zm9yY2VTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0bXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0c2hvd0NsZWFyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdG9wdGlvblZhbHVlID0gaW5wdXQ8a2V5b2YgU3VnZ2VzdGlvbnNEVE8gfCBudWxsPihudWxsKTtcclxuXHRhcHBlbmRUbyA9IGlucHV0PHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbD4oJ2JvZHknKTtcclxuXHRtcWwgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0c2hvd09ubHlBc3NldE51bWJlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRlbmFibGVBdXRvU2VhcmNoT25Jbml0ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzVXBkYXRlTW9kZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdGZpbHRlcmVkU2VsZWN0aW9uSXRlbXMhOiBTdWdnZXN0aW9uc0dyb3VwRFRPW107XHJcblx0c2VsZWN0aW9uRGVmaW5pdGlvbnMhOiBEZWZhdWx0U2VhcmNoQWdncmVnYXRlQXNzZXRBZ2dyZWdhdGU7XHJcblx0Y2FjaGVTZWFyY2hSZXF1ZXN0JCA9IG5ldyBTdWJqZWN0PENhY2hlU2VhcmNoUmVxdWVzdERUTz4oKTtcclxuXHRkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cdEBPdXRwdXQoKSBzZWxlY3RlZERlZmluaXRpb25FdmVudDogRXZlbnRFbWl0dGVyPEFzc2V0QWdncmVnYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8QXNzZXRBZ2dyZWdhdGU+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxyXG5cdFx0cHVibGljIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpO1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3Rpb25EZWZpbml0aW9ucykge1xyXG5cdFx0XHRcdHRoaXMucmVmcmVzaEZpbHRlcmVkU2VsZWN0aW9uSXRlbXMoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5jYWNoZVNlYXJjaFJlcXVlc3QkXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgocGF5bG9hZCkgPT5cclxuXHRcdFx0XHRcdHRoaXMuaHR0cC5wb3N0PGFueT4oQVBJX0NPTkZJR1MuZ2V0RXh0ZXJuYWxBcHBFbmRwb2ludChBcHBzLk1ORykgKyAnL21hc3Rlci1kYXRhL2NhY2hlLXNlYXJjaCcsIHBheWxvYWQpXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHNlbGVjdGlvbkdyb3VwKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25EZWZpbml0aW9ucyA9IHNlbGVjdGlvbkdyb3VwO1xyXG5cdFx0XHRcdHRoaXMucmVmcmVzaEZpbHRlcmVkU2VsZWN0aW9uSXRlbXMoKTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0Ly8gSWYgdGhlIGZvcm0gY29udHJvbCdzIHZhbHVlIGlzIGEgc3RyaW5nLCBwZXJmb3JtIGEgY2FjaGUgc2VhcmNoIHRvIHJldHJpZXZlIHRoZSBJRC5cclxuXHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWx1ZTtcclxuXHRcdGlmICh0aGlzLmVuYWJsZUF1dG9TZWFyY2hPbkluaXQoKSB8fCAoY3VycmVudFZhbHVlICYmIHR5cGVvZiBjdXJyZW50VmFsdWUgPT09ICdzdHJpbmcnKSkge1xyXG5cdFx0XHRcdGNvbnN0IHNlYXJjaFF1ZXJ5ID0gdHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ3N0cmluZycgPyBjdXJyZW50VmFsdWUgOiBjdXJyZW50VmFsdWU/LnRleHQ7XHJcblx0XHRcdFx0aWYgKHNlYXJjaFF1ZXJ5KSB7XHJcblx0XHRcdFx0XHR0aGlzLmlzVXBkYXRlTW9kZS5zZXQodHJ1ZSk7XHJcblx0XHRcdFx0XHR0aGlzLnNlYXJjaCh7IHF1ZXJ5OiBzZWFyY2hRdWVyeSB9KTtcclxuXHRcdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWZyZXNoRmlsdGVyZWRTZWxlY3Rpb25JdGVtcygpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5zZWxlY3Rpb25EZWZpbml0aW9ucykgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IG5ld0ZpbHRlcmVkR3JvdXBTdWdnZXN0aW9uczogU3VnZ2VzdGlvbnNHcm91cERUT1tdID0gW107XHJcblxyXG5cdFx0T2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25EZWZpbml0aW9ucykuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcclxuXHRcdFx0Y29uc3QgZ3JvdXBEYXRhOiBTdWdnZXN0aW9uc0dyb3VwRFRPID0ge1xyXG5cdFx0XHRcdHRleHQ6IHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnNba2V5XT8ucmVzdWx0WzBdPy5hc3NldHNbMF0/LmFzc2V0RGVmaW5pdGlvbk5hbWUsXHJcblx0XHRcdFx0a2V5OiBrZXksXHJcblx0XHRcdFx0aXRlbXM6IHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnNba2V5XS5yZXN1bHQubWFwKFxyXG5cdFx0XHRcdFx0KGl0ZW06IEFzc2V0QWdncmVnYXRlKSA9PlxyXG5cdFx0XHRcdFx0XHQoe1xyXG5cdFx0XHRcdFx0XHRcdGtleTogaXRlbS5pZCxcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiB0aGlzLmdldEF0dGlyaWJ1dGVzVmFsdWVEZXNjcihpdGVtLmF0dHJpYnV0ZXMpLFxyXG5cdFx0XHRcdFx0XHRcdGFzc2V0TnVtYmVyOiB0aGlzLmdldEFzc2V0TnVtYmVyVmFsdWUoaXRlbS5hdHRyaWJ1dGVzKSxcclxuXHRcdFx0XHRcdFx0XHRhdHRyaWJ1dGVzOiBpdGVtLmF0dHJpYnV0ZXMsXHJcblx0XHRcdFx0XHRcdFx0YXNzZXREZWZpbml0aW9uQ29kZTogaXRlbS5hc3NldERlZmluaXRpb25Db2RlXHJcblx0XHRcdFx0XHRcdH0pIGFzIFN1Z2dlc3Rpb25zRFRPXHJcblx0XHRcdFx0KVxyXG5cdFx0XHR9O1xyXG5cdFx0XHRuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnMucHVzaChncm91cERhdGEpO1xyXG5cclxuXHRcdFx0Ly8gSWYgdGhlIHN0cmluZyB2YWx1ZSBpcyBwYXRjaGVkIGluIHVwZGF0ZSBtb2RlIGFuZCB0aGVyZSBpcyBncm91cCBkYXRhLCBzZWxlY3QgdGhlIGZpcnN0IGl0ZW1cclxuXHRcdFx0aWYgKHRoaXMuaXNVcGRhdGVNb2RlKCkgJiYgZ3JvdXBEYXRhLml0ZW1zLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5tdWx0aXBsZSgpKSB7XHJcblx0XHRcdFx0dGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKGdyb3VwRGF0YS5pdGVtc1swXSk7XHJcblx0XHRcdFx0dGhpcy5pc1VwZGF0ZU1vZGUuc2V0KGZhbHNlKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5maWx0ZXJlZFNlbGVjdGlvbkl0ZW1zID0gbmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5hdXRvQ29tcGxldGVSZWYuZ2V0T3B0aW9uVmFsdWUgPSB0aGlzLmdldE9wdGlvblZhbHVlLmJpbmQodGhpcyk7XHJcblx0fVxyXG5cclxuXHRnZXRPcHRpb25WYWx1ZShvcHRpb246IGFueSkge1xyXG5cdFx0aWYgKCF0aGlzLm9wdGlvblZhbHVlKCkpIHtcclxuXHRcdFx0cmV0dXJuIG9wdGlvbjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHtcclxuXHRcdFx0cmV0dXJuIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEob3B0aW9uLCB0aGlzLm9wdGlvblZhbHVlKCkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBvcHRpb247XHJcblx0fVxyXG5cclxuXHRvbk5nTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xyXG5cdFx0Y29uc3QgdmFsaWRhdGVkVmFsdWUgPSB0aGlzLnZhbGlkYXRlSW5wdXQodmFsdWUpO1xyXG5cdFx0dGhpcy5uZ0NvbnRyb2wudmlld1RvTW9kZWxVcGRhdGUodmFsaWRhdGVkVmFsdWUpO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodGhpcy50eXBlKCkgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3RleHQnKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXmEtekEtWsSfw7zFn8Sxw7bDp8Sew5zFnsSww5bDh1xcc10vZywgJycpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHZhbHVlO1xyXG5cdH1cclxuXHJcblx0c2VhcmNoKGV2ZW50OiBhbnkpIHtcclxuXHRcdGlmICghZXZlbnQ/LnF1ZXJ5IHx8IHR5cGVvZiBldmVudC5xdWVyeSAhPT0gJ3N0cmluZycpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBxdWVyeSA9IHRoaXMudmFsaWRhdGVJbnB1dChldmVudC5xdWVyeSk7XHJcblx0XHRpZiAoIXF1ZXJ5Py50cmltKCkpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBwYXlsb2FkOiBDYWNoZVNlYXJjaFJlcXVlc3REVE8gPSB7XHJcblx0XHRcdHNlYXJjaFRleHQ6IHF1ZXJ5Py50cmltKCksXHJcblx0XHRcdGFzc2V0RGVmaW5pdGlvbkNvZGVzOiBBcnJheS5pc0FycmF5KHRoaXMuYXNzZXRDb2RlKCkpID8gdGhpcy5hc3NldENvZGUoKSA6IChbdGhpcy5hc3NldENvZGUoKV0gYXMgYW55KSxcclxuXHRcdFx0cGFnZXI6IHtcclxuXHRcdFx0XHRwYWdlU2l6ZTogNSxcclxuXHRcdFx0XHRwYWdlTnVtYmVyOiAxXHJcblx0XHRcdH1cclxuXHRcdH07XHJcblxyXG5cdFx0aWYgKHRoaXMubXFsKCkpIHBheWxvYWQubXFsID0gdGhpcy5tcWwoKTtcclxuXHJcblx0XHR0aGlzLmNhY2hlU2VhcmNoUmVxdWVzdCQubmV4dChwYXlsb2FkKTtcclxuXHR9XHJcblxyXG5cdGdldEF0dGlyaWJ1dGVzVmFsdWVEZXNjcihhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVFbGVtZW50W10pOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgZXhjbHVkZWRBdHRyaWJ1dGVzID0gWydBc3NldElkJywgJ0Fzc2V0RGVmaW5pdGlvbk5hbWUnXTtcclxuXHRcdHJldHVybiBhdHRyaWJ1dGVzXHJcblx0XHRcdD8uZmlsdGVyKChhdHRyKSA9PiAhZXhjbHVkZWRBdHRyaWJ1dGVzLmluY2x1ZGVzKGF0dHIuYXR0cmlidXRlPy5hdHRyaWJ1dGVDb2RlKSlcclxuXHRcdFx0Py5tYXAoKGF0dHIpID0+IHtcclxuXHRcdFx0XHQvLyBIYW5kbGUgU0VMRUNUIHR5cGUgYXR0cmlidXRlcyB1c2luZyBTZWxlY3Rpb25Hcm91cFNlcnZpY2VcclxuXHRcdFx0XHRpZiAoYXR0ci5hdHRyaWJ1dGU/LmF0dHJpYnV0ZVR5cGUgPT09ICdTRUxFQ1QnICYmIGF0dHIuYXR0cmlidXRlPy5zZWxlY3RPcHRpb24pIHtcclxuXHRcdFx0XHRcdHJldHVybiB0aGlzLmdldFNlbGVjdGlvbkRpc3BsYXkoYXR0ci5hdHRyaWJ1dGUuc2VsZWN0T3B0aW9uLCBhdHRyLnZhbHVlIGFzIHN0cmluZyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gYXR0ci52YWx1ZURlc2MgPyBhdHRyLnZhbHVlRGVzYyA6IGF0dHIudmFsdWU7XHJcblx0XHRcdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiBTdHJpbmcodmFsdWUpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuam9pbignIC0gJyk7XHJcblx0fVxyXG5cdHByaXZhdGUgZ2V0QXNzZXROdW1iZXJWYWx1ZShhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVFbGVtZW50W10pOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgYXNzZXROdW1iZXJBdHRyID0gYXR0cmlidXRlcz8uZmluZCgoYXR0cikgPT4gYXR0ci5hdHRyaWJ1dGU/LmF0dHJpYnV0ZUNvZGUgPT09ICdBc3NldE51bWJlcicpO1xyXG5cdFx0aWYgKCFhc3NldE51bWJlckF0dHIpIHJldHVybiAnJztcclxuXHRcdHJldHVybiBTdHJpbmcoYXNzZXROdW1iZXJBdHRyLnZhbHVlRGVzYyB8fCBhc3NldE51bWJlckF0dHIudmFsdWUgfHwgJycpO1xyXG5cdH1cclxuXHRwcml2YXRlIGdldFNlbGVjdGlvbkRpc3BsYXkoZ3JvdXBOYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3Qga2V5ID0gYCR7Z3JvdXBOYW1lfX5BTExgO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPSB0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtrZXldO1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uR3JvdXApIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuZmV0Y2hFbnVtKGdyb3VwTmFtZSwgJ0FMTCcpO1xyXG5cdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cdFx0Y29uc3Qgc2VsZWN0aW9uSXRlbSA9IHNlbGVjdGlvbkdyb3VwLnNlbGVjdGlvbkl0ZW1zPy5maW5kKCh0KSA9PiB0LnNlbGVjdGlvbktleSA9PT0gdmFsdWUpIGFzIHtcclxuXHRcdFx0c2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzPzogeyBbbGFuZzogc3RyaW5nXTogc3RyaW5nIH07XHJcblx0XHRcdHNlbGVjdGlvbkRpc3BsYXk/OiBzdHJpbmc7XHJcblx0XHR9O1xyXG5cclxuXHRcdGlmICghc2VsZWN0aW9uSXRlbSkgcmV0dXJuIHZhbHVlO1xyXG5cclxuXHRcdHJldHVybiBzZWxlY3Rpb25JdGVtLnNlbGVjdGlvbk11bHRpTGFuZ3VhZ2VEaXNwbGF5cz8uW2N1cnJlbnRMYW5nXSA/PyBzZWxlY3Rpb25JdGVtLnNlbGVjdGlvbkRpc3BsYXkgPz8gdmFsdWU7XHJcblx0fVxyXG5cclxuXHR0cmlnZ2VyU2VsZWN0ZWRFdmVudHMoZXZlbnQ6IGFueSkge1xyXG5cdFx0Y29uc3Qgc2VsZWN0ZWRJdGVtczogQXNzZXRBZ2dyZWdhdGVbXSA9IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMpLm1hcCgoa2V5OiBzdHJpbmcpID0+IHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnNba2V5XS5yZXN1bHQuZmluZCgoaXRlbTogQXNzZXRBZ2dyZWdhdGUpID0+IGl0ZW0uaWQgPT09IGV2ZW50Py52YWx1ZT8ua2V5KTtcclxuXHRcdH0pIGFzIEFzc2V0QWdncmVnYXRlW107XHJcblxyXG5cdFx0Y29uc3Qgc2VsZWN0ZWRJdGVtID0gc2VsZWN0ZWRJdGVtc1swXTtcclxuXHJcblx0XHRjb25zdCBzZWxlY3RlZEV2ZW50ID0ge1xyXG5cdFx0XHQuLi5zZWxlY3RlZEl0ZW0sXHJcblx0XHRcdGtleTogc2VsZWN0ZWRJdGVtPy5pZCxcclxuXHRcdFx0dGV4dDogc2VsZWN0ZWRJdGVtPy5hc3NldERlZmluaXRpb25OYW1lLFxyXG5cdFx0XHRhdHRyaWJ1dGVzOiBzZWxlY3RlZEl0ZW0/LmF0dHJpYnV0ZXMsXHJcblx0XHRcdGFzc2V0RGVmaW5pdGlvbkNvZGU6IHNlbGVjdGVkSXRlbT8uYXNzZXREZWZpbml0aW9uQ29kZVxyXG5cdFx0fTtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkRGVmaW5pdGlvbkV2ZW50LmVtaXQoc2VsZWN0ZWRFdmVudCk7XHJcblx0fVxyXG59XHJcbiIsIjxwLWF1dG9Db21wbGV0ZVxyXG5cdG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcblx0W29wdGlvblZhbHVlXT1cIm9wdGlvblZhbHVlKCkhXCJcclxuXHRbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcblx0W211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxyXG5cdFtncm91cF09XCJ0cnVlXCJcclxuXHRbZm9yY2VTZWxlY3Rpb25dPVwiZm9yY2VTZWxlY3Rpb24oKVwiXHJcblx0W2RlbGF5XT1cIjcwMFwiXHJcblx0W21pbkxlbmd0aF09XCIzXCJcclxuXHRbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRTZWxlY3Rpb25JdGVtc1wiXHJcblx0KGNvbXBsZXRlTWV0aG9kKT1cInNlYXJjaCgkZXZlbnQpXCJcclxuXHRbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxyXG5cdFthdXRvSGlnaGxpZ2h0XT1cInRydWVcIlxyXG5cdFt0eXBlXT1cInR5cGUoKSFcIlxyXG5cdChuZ01vZGVsQ2hhbmdlKT1cIm9uTmdNb2RlbENoYW5nZSgkZXZlbnQpXCJcclxuXHRbc2hvd0NsZWFyXT1cInNob3dDbGVhcigpXCJcclxuXHRbZW1wdHlNZXNzYWdlXT1cInRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdtZXNzYWdlcy5ub0RhdGFUb0Rpc3BsYXknKVwiXHJcblx0KG9uU2VsZWN0KT1cInRyaWdnZXJTZWxlY3RlZEV2ZW50cygkZXZlbnQpXCJcclxuXHRbYXBwZW5kVG9dPVwiYXBwZW5kVG8oKVwiPlxyXG5cdDxuZy10ZW1wbGF0ZSBsZXQtZ3JvdXAgcFRlbXBsYXRlPVwiZ3JvdXBcIj5cclxuXHRcdDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgZ3JvdXAudGV4dCB9fTwvc3Bhbj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cdEBpZiAoc2hvd09ubHlBc3NldE51bWJlcigpKSB7XHJcblx0XHQ8bmctdGVtcGxhdGUgbGV0LXZhbHVlIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiPlxyXG5cdFx0XHQ8c3Bhbj57eyB2YWx1ZT8uYXNzZXROdW1iZXIgfHwgdmFsdWU/LnRleHQgfX08L3NwYW4+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdH1cclxuPC9wLWF1dG9Db21wbGV0ZT5cclxuIl19
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWktYnVzaW5lc3MvYXNzZXRQaWNrZXIvc3JjL2Fzc2V0LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL2Fzc2V0UGlja2VyL3NyYy9hc3NldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUVOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUVaLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7O0FBdUN6RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBc0IzRCxZQUNrQixJQUFnQixFQUMxQixnQkFBa0MsRUFDeEIscUJBQTRDO1FBRTdELEtBQUssRUFBRSxDQUFDO1FBSlMsU0FBSSxH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LEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFvQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFxQixDQUFDO1FBRXZCLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QyxNQUFNLGFBQWEsR0FBRztZQUNyQixHQUFHLFlBQVk7WUFDZixHQUFHLEVBQUUsWUFBWSxFQUFFLEVBQUU7WUFDckIsSUFBSSxFQUFFLFlBQVksRUFBRSxtQkFBbUI7WUFDdkMsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVO1lBQ3BDLG1CQUFtQixFQUFFLFlBQVksRUFBRSxtQkFBbUI7U0FDdEQsQ0FBQztRQUVGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0ExTlcsb0JBQW9CO2tHQUFwQixvQkFBb0IsNnZEQUNyQixZQUFZLG1JQ2xFeEIsMC9CQTRCQSw4UkRrQ1csbUJBQW1CLHlUQUFFLGtCQUFrQjs7MkZBR3JDLG9CQUFvQjtrQkEzQmhDLFNBQVM7aUNBQ0csSUFBSSxZQUNOLGdHQUFnRyxXQXNCakcsQ0FBQyxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQyxrQkFDbEMsQ0FBQyxzQkFBc0IsQ0FBQztrSkFHZixlQUFlO3NCQUF2QyxTQUFTO3VCQUFDLFlBQVk7Z0JBbUJiLHVCQUF1QjtzQkFBaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcblx0QWZ0ZXJWaWV3SW5pdCxcclxuXHRDb21wb25lbnQsXHJcblx0RGVzdHJveVJlZixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxuXHRWaWV3Q2hpbGQsXHJcblx0ZWZmZWN0LFxyXG5cdGluamVjdCxcclxuXHRpbnB1dCxcclxuXHRzaWduYWxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlLCBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBmaWx0ZXIsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEFwcHMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3RoZW1lL2xheW91dCc7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7XHJcblx0QXNzZXRBZ2dyZWdhdGUsXHJcblx0QXR0cmlidXRlRWxlbWVudCxcclxuXHRDYWNoZVNlYXJjaFJlcXVlc3REVE8sXHJcblx0RGVmYXVsdFNlYXJjaEFnZ3JlZ2F0ZUFzc2V0QWdncmVnYXRlLFxyXG5cdFN1Z2dlc3Rpb25zRFRPLFxyXG5cdFN1Z2dlc3Rpb25zR3JvdXBEVE9cclxufSBmcm9tICcuL2ludGVyZmFjZSc7XHJcblxyXG50eXBlIFZhbHVlVHlwZXMgPSAndGV4dCcgfCAnbnVtYmVyJztcclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtYXNzZXQtcGlja2VyW25nTW9kZWxdLCBhcmlsLWFzc2V0LXBpY2tlcltmb3JtQ29udHJvbF0sIGFyaWwtYXNzZXQtcGlja2VyW2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hc3NldC1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlczogW1xyXG5cdFx0YFxyXG5cdFx0XHQ6Om5nLWRlZXAgLnAtYXV0b2NvbXBsZXRlLW11bHRpcGxlLWNvbnRhaW5lciB7XHJcblx0XHRcdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdFx0XHRcdG1heC1oZWlnaHQ6IDUwcHg7XHJcblx0XHRcdFx0b3ZlcmZsb3cteTogYXV0bztcclxuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ6Om5nLWRlZXAgLnAtYXV0b2NvbXBsZXRlLXRva2VuIHtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0ZmxleC1zaHJpbms6IDA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdDo6bmctZGVlcCAucC1hdXRvY29tcGxldGUtaW5wdXQtdG9rZW4ge1xyXG5cdFx0XHRcdGZsZXg6IDE7XHJcblx0XHRcdFx0bWluLXdpZHRoOiAxNTBweDtcclxuXHRcdFx0fVxyXG5cdFx0YFxyXG5cdF0sXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIEF1dG9Db21wbGV0ZU1vZHVsZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xyXG5cdEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlKSBhdXRvQ29tcGxldGVSZWYhOiBBdXRvQ29tcGxldGU7XHJcblx0YXNzZXRDb2RlID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10gfCBudWxsPihudWxsKTtcclxuXHR0eXBlID0gaW5wdXQ8VmFsdWVUeXBlcyB8IG51bGw+KG51bGwpO1xyXG5cclxuXHRwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJ0FyYW1hLi4uJyk7XHJcblx0Zm9yY2VTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0bXVsdGlwbGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0c2hvd0NsZWFyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdG9wdGlvblZhbHVlID0gaW5wdXQ8a2V5b2YgU3VnZ2VzdGlvbnNEVE8gfCBudWxsPihudWxsKTtcclxuXHRhcHBlbmRUbyA9IGlucHV0PHN0cmluZyB8IEhUTUxFbGVtZW50IHwgbnVsbD4oJ2JvZHknKTtcclxuXHRtcWwgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0c2hvd09ubHlBc3NldE51bWJlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRlbmFibGVBdXRvU2VhcmNoT25Jbml0ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzVXBkYXRlTW9kZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdGZpbHRlcmVkU2VsZWN0aW9uSXRlbXMhOiBTdWdnZXN0aW9uc0dyb3VwRFRPW107XHJcblx0c2VsZWN0aW9uRGVmaW5pdGlvbnMhOiBEZWZhdWx0U2VhcmNoQWdncmVnYXRlQXNzZXRBZ2dyZWdhdGU7XHJcblx0Y2FjaGVTZWFyY2hSZXF1ZXN0JCA9IG5ldyBTdWJqZWN0PENhY2hlU2VhcmNoUmVxdWVzdERUTz4oKTtcclxuXHRkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cdEBPdXRwdXQoKSBzZWxlY3RlZERlZmluaXRpb25FdmVudDogRXZlbnRFbWl0dGVyPEFzc2V0QWdncmVnYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8QXNzZXRBZ2dyZWdhdGU+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxyXG5cdFx0cHVibGljIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpO1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3Rpb25EZWZpbml0aW9ucykge1xyXG5cdFx0XHRcdHRoaXMucmVmcmVzaEZpbHRlcmVkU2VsZWN0aW9uSXRlbXMoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmNhY2hlU2VhcmNoUmVxdWVzdCRcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0c3dpdGNoTWFwKChwYXlsb2FkKSA9PlxyXG5cdFx0XHRcdFx0dGhpcy5odHRwLnBvc3Q8YW55PihBUElfQ09ORklHUy5nZXRFeHRlcm5hbEFwcEVuZHBvaW50KEFwcHMuTU5HKSArICcvbWFzdGVyLWRhdGEvY2FjaGUtc2VhcmNoJywgcGF5bG9hZClcclxuXHRcdFx0XHQpLFxyXG5cdFx0XHRcdHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXHJcblx0XHRcdClcclxuXHRcdFx0LnN1YnNjcmliZSgoc2VsZWN0aW9uR3JvdXApID0+IHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zID0gc2VsZWN0aW9uR3JvdXA7XHJcblx0XHRcdFx0dGhpcy5yZWZyZXNoRmlsdGVyZWRTZWxlY3Rpb25JdGVtcygpO1xyXG5cdFx0XHR9KTtcclxuXHJcblx0XHQvLyBJZiB0aGUgZm9ybSBjb250cm9sJ3MgdmFsdWUgaXMgYSBzdHJpbmcsIHBlcmZvcm0gYSBjYWNoZSBzZWFyY2ggdG8gcmV0cmlldmUgdGhlIElELlxyXG5cdFx0Y29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbHVlO1xyXG5cdFx0aWYgKHRoaXMuZW5hYmxlQXV0b1NlYXJjaE9uSW5pdCgpIHx8IChjdXJyZW50VmFsdWUgJiYgdHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ3N0cmluZycpKSB7XHJcblx0XHRcdFx0Y29uc3Qgc2VhcmNoUXVlcnkgPSB0eXBlb2YgY3VycmVudFZhbHVlID09PSAnc3RyaW5nJyA/IGN1cnJlbnRWYWx1ZSA6IGN1cnJlbnRWYWx1ZT8udGV4dDtcclxuXHRcdFx0XHRpZiAoc2VhcmNoUXVlcnkpIHtcclxuXHRcdFx0XHRcdHRoaXMuaXNVcGRhdGVNb2RlLnNldCh0cnVlKTtcclxuXHRcdFx0XHRcdHRoaXMuc2VhcmNoKHsgcXVlcnk6IHNlYXJjaFF1ZXJ5IH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBSZWFjdCB0byBwcm9ncmFtbWF0aWMgcGF0Y2hlcyAoY3JlYXRlRm9ybURhdGFPYmplY3QgLyBwYXRjaEFzc2V0UmVzcG9uc2VUb0Zvcm0pXHJcblx0XHR0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsdWVDaGFuZ2VzXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdGZpbHRlcih2YWx1ZSA9PlxyXG5cdFx0XHRcdFx0dmFsdWUgJiZcclxuXHRcdFx0XHRcdHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcclxuXHRcdFx0XHRcdCd0ZXh0JyBpbiB2YWx1ZSAmJlxyXG5cdFx0XHRcdFx0ISgnYXR0cmlidXRlcycgaW4gdmFsdWUpXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0XHR0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG5cdFx0XHRcdGlmICghdGhpcy5pc1VwZGF0ZU1vZGUoKSkge1xyXG5cdFx0XHRcdFx0dGhpcy5pc1VwZGF0ZU1vZGUuc2V0KHRydWUpO1xyXG5cdFx0XHRcdFx0dGhpcy5zZWFyY2goeyBxdWVyeTogdmFsdWUudGV4dCB9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVmcmVzaEZpbHRlcmVkU2VsZWN0aW9uSXRlbXMoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25zR3JvdXBEVE9bXSA9IFtdO1xyXG5cclxuXHRcdE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0aW9uRGVmaW5pdGlvbnMpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHRcdGNvbnN0IGdyb3VwRGF0YTogU3VnZ2VzdGlvbnNHcm91cERUTyA9IHtcclxuXHRcdFx0XHR0ZXh0OiB0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zW2tleV0/LnJlc3VsdFswXT8uYXNzZXRzWzBdPy5hc3NldERlZmluaXRpb25OYW1lLFxyXG5cdFx0XHRcdGtleToga2V5LFxyXG5cdFx0XHRcdGl0ZW1zOiB0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zW2tleV0ucmVzdWx0Lm1hcChcclxuXHRcdFx0XHRcdChpdGVtOiBBc3NldEFnZ3JlZ2F0ZSkgPT5cclxuXHRcdFx0XHRcdFx0KHtcclxuXHRcdFx0XHRcdFx0XHRrZXk6IGl0ZW0uaWQsXHJcblx0XHRcdFx0XHRcdFx0dGV4dDogdGhpcy5nZXRBdHRpcmlidXRlc1ZhbHVlRGVzY3IoaXRlbS5hdHRyaWJ1dGVzKSxcclxuXHRcdFx0XHRcdFx0XHRhc3NldE51bWJlcjogdGhpcy5nZXRBc3NldE51bWJlclZhbHVlKGl0ZW0uYXR0cmlidXRlcyksXHJcblx0XHRcdFx0XHRcdFx0YXR0cmlidXRlczogaXRlbS5hdHRyaWJ1dGVzLFxyXG5cdFx0XHRcdFx0XHRcdGFzc2V0RGVmaW5pdGlvbkNvZGU6IGl0ZW0uYXNzZXREZWZpbml0aW9uQ29kZVxyXG5cdFx0XHRcdFx0XHR9KSBhcyBTdWdnZXN0aW9uc0RUT1xyXG5cdFx0XHRcdClcclxuXHRcdFx0fTtcclxuXHRcdFx0bmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zLnB1c2goZ3JvdXBEYXRhKTtcclxuXHJcblx0XHRcdC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgaXMgcGF0Y2hlZCBpbiB1cGRhdGUgbW9kZSBhbmQgdGhlcmUgaXMgZ3JvdXAgZGF0YSwgc2VsZWN0IHRoZSBmaXJzdCBpdGVtXHJcblx0XHRcdGlmICh0aGlzLmlzVXBkYXRlTW9kZSgpICYmIGdyb3VwRGF0YS5pdGVtcy5sZW5ndGggPT09IDEgJiYgIXRoaXMubXVsdGlwbGUoKSkge1xyXG5cdFx0XHRcdHRoaXMubmdDb250cm9sPy5jb250cm9sPy5zZXRWYWx1ZShncm91cERhdGEuaXRlbXNbMF0pO1xyXG5cdFx0XHRcdHRoaXMuaXNVcGRhdGVNb2RlLnNldChmYWxzZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZmlsdGVyZWRTZWxlY3Rpb25JdGVtcyA9IG5ld0ZpbHRlcmVkR3JvdXBTdWdnZXN0aW9ucztcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuYXV0b0NvbXBsZXRlUmVmLmdldE9wdGlvblZhbHVlID0gdGhpcy5nZXRPcHRpb25WYWx1ZS5iaW5kKHRoaXMpO1xyXG5cdH1cclxuXHJcblx0Z2V0T3B0aW9uVmFsdWUob3B0aW9uOiBhbnkpIHtcclxuXHRcdGlmICghdGhpcy5vcHRpb25WYWx1ZSgpKSB7XHJcblx0XHRcdHJldHVybiBvcHRpb247XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdHJldHVybiBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKG9wdGlvbiwgdGhpcy5vcHRpb25WYWx1ZSgpKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gb3B0aW9uO1xyXG5cdH1cclxuXHJcblx0b25OZ01vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcclxuXHRcdGNvbnN0IHZhbGlkYXRlZFZhbHVlID0gdGhpcy52YWxpZGF0ZUlucHV0KHZhbHVlKTtcclxuXHRcdHRoaXMubmdDb250cm9sLnZpZXdUb01vZGVsVXBkYXRlKHZhbGlkYXRlZFZhbHVlKTtcclxuXHR9XHJcblxyXG5cdHZhbGlkYXRlSW5wdXQodmFsdWU6IHN0cmluZykge1xyXG5cdFx0aWYgKHRoaXMudHlwZSgpID09PSAnbnVtYmVyJykge1xyXG5cdFx0XHRyZXR1cm4gdmFsdWUucmVwbGFjZSgvXFxEL2csICcnKTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICd0ZXh0Jykge1xyXG5cdFx0XHRyZXR1cm4gdmFsdWUucmVwbGFjZSgvW15hLXpBLVrEn8O8xZ/EscO2w6fEnsOcxZ7EsMOWw4dcXHNdL2csICcnKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB2YWx1ZTtcclxuXHR9XHJcblxyXG5cdHNlYXJjaChldmVudDogYW55KSB7XHJcblx0XHRpZiAoIWV2ZW50Py5xdWVyeSB8fCB0eXBlb2YgZXZlbnQucXVlcnkgIT09ICdzdHJpbmcnKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgcXVlcnkgPSB0aGlzLnZhbGlkYXRlSW5wdXQoZXZlbnQucXVlcnkpO1xyXG5cdFx0aWYgKCFxdWVyeT8udHJpbSgpKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgcGF5bG9hZDogQ2FjaGVTZWFyY2hSZXF1ZXN0RFRPID0ge1xyXG5cdFx0XHRzZWFyY2hUZXh0OiBxdWVyeT8udHJpbSgpLFxyXG5cdFx0XHRhc3NldERlZmluaXRpb25Db2RlczogQXJyYXkuaXNBcnJheSh0aGlzLmFzc2V0Q29kZSgpKSA/IHRoaXMuYXNzZXRDb2RlKCkgOiAoW3RoaXMuYXNzZXRDb2RlKCldIGFzIGFueSksXHJcblx0XHRcdHBhZ2VyOiB7XHJcblx0XHRcdFx0cGFnZVNpemU6IDUsXHJcblx0XHRcdFx0cGFnZU51bWJlcjogMVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdGlmICh0aGlzLm1xbCgpKSBwYXlsb2FkLm1xbCA9IHRoaXMubXFsKCk7XHJcblxyXG5cdFx0dGhpcy5jYWNoZVNlYXJjaFJlcXVlc3QkLm5leHQocGF5bG9hZCk7XHJcblx0fVxyXG5cclxuXHRnZXRBdHRpcmlidXRlc1ZhbHVlRGVzY3IoYXR0cmlidXRlczogQXR0cmlidXRlRWxlbWVudFtdKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IGV4Y2x1ZGVkQXR0cmlidXRlcyA9IFsnQXNzZXRJZCcsICdBc3NldERlZmluaXRpb25OYW1lJ107XHJcblx0XHRyZXR1cm4gYXR0cmlidXRlc1xyXG5cdFx0XHQ/LmZpbHRlcigoYXR0cikgPT4gIWV4Y2x1ZGVkQXR0cmlidXRlcy5pbmNsdWRlcyhhdHRyLmF0dHJpYnV0ZT8uYXR0cmlidXRlQ29kZSkpXHJcblx0XHRcdD8ubWFwKChhdHRyKSA9PiB7XHJcblx0XHRcdFx0Ly8gSGFuZGxlIFNFTEVDVCB0eXBlIGF0dHJpYnV0ZXMgdXNpbmcgU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0XHRcdFx0aWYgKGF0dHIuYXR0cmlidXRlPy5hdHRyaWJ1dGVUeXBlID09PSAnU0VMRUNUJyAmJiBhdHRyLmF0dHJpYnV0ZT8uc2VsZWN0T3B0aW9uKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRTZWxlY3Rpb25EaXNwbGF5KGF0dHIuYXR0cmlidXRlLnNlbGVjdE9wdGlvbiwgYXR0ci52YWx1ZSBhcyBzdHJpbmcpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IGF0dHIudmFsdWVEZXNjID8gYXR0ci52YWx1ZURlc2MgOiBhdHRyLnZhbHVlO1xyXG5cdFx0XHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogU3RyaW5nKHZhbHVlKTtcclxuXHRcdFx0fSlcclxuXHRcdFx0LmpvaW4oJyAtICcpO1xyXG5cdH1cclxuXHRwcml2YXRlIGdldEFzc2V0TnVtYmVyVmFsdWUoYXR0cmlidXRlczogQXR0cmlidXRlRWxlbWVudFtdKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IGFzc2V0TnVtYmVyQXR0ciA9IGF0dHJpYnV0ZXM/LmZpbmQoKGF0dHIpID0+IGF0dHIuYXR0cmlidXRlPy5hdHRyaWJ1dGVDb2RlID09PSAnQXNzZXROdW1iZXInKTtcclxuXHRcdGlmICghYXNzZXROdW1iZXJBdHRyKSByZXR1cm4gJyc7XHJcblx0XHRyZXR1cm4gU3RyaW5nKGFzc2V0TnVtYmVyQXR0ci52YWx1ZURlc2MgfHwgYXNzZXROdW1iZXJBdHRyLnZhbHVlIHx8ICcnKTtcclxuXHR9XHJcblx0cHJpdmF0ZSBnZXRTZWxlY3Rpb25EaXNwbGF5KGdyb3VwTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IGtleSA9IGAke2dyb3VwTmFtZX1+QUxMYDtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID0gdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClba2V5XTtcclxuXHJcblx0XHRpZiAoIXNlbGVjdGlvbkdyb3VwKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bShncm91cE5hbWUsICdBTEwnKTtcclxuXHRcdFx0cmV0dXJuIHZhbHVlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkl0ZW0gPSBzZWxlY3Rpb25Hcm91cC5zZWxlY3Rpb25JdGVtcz8uZmluZCgodCkgPT4gdC5zZWxlY3Rpb25LZXkgPT09IHZhbHVlKSBhcyB7XHJcblx0XHRcdHNlbGVjdGlvbk11bHRpTGFuZ3VhZ2VEaXNwbGF5cz86IHsgW2xhbmc6IHN0cmluZ106IHN0cmluZyB9O1xyXG5cdFx0XHRzZWxlY3Rpb25EaXNwbGF5Pzogc3RyaW5nO1xyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoIXNlbGVjdGlvbkl0ZW0pIHJldHVybiB2YWx1ZTtcclxuXHJcblx0XHRyZXR1cm4gc2VsZWN0aW9uSXRlbS5zZWxlY3Rpb25NdWx0aUxhbmd1YWdlRGlzcGxheXM/LltjdXJyZW50TGFuZ10gPz8gc2VsZWN0aW9uSXRlbS5zZWxlY3Rpb25EaXNwbGF5ID8/IHZhbHVlO1xyXG5cdH1cclxuXHJcblx0dHJpZ2dlclNlbGVjdGVkRXZlbnRzKGV2ZW50OiBhbnkpIHtcclxuXHRcdGNvbnN0IHNlbGVjdGVkSXRlbXM6IEFzc2V0QWdncmVnYXRlW10gPSBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zKS5tYXAoKGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHRcdHJldHVybiB0aGlzLnNlbGVjdGlvbkRlZmluaXRpb25zW2tleV0ucmVzdWx0LmZpbmQoKGl0ZW06IEFzc2V0QWdncmVnYXRlKSA9PiBpdGVtLmlkID09PSBldmVudD8udmFsdWU/LmtleSk7XHJcblx0XHR9KSBhcyBBc3NldEFnZ3JlZ2F0ZVtdO1xyXG5cclxuXHRcdGNvbnN0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGVkSXRlbXNbMF07XHJcblxyXG5cdFx0Y29uc3Qgc2VsZWN0ZWRFdmVudCA9IHtcclxuXHRcdFx0Li4uc2VsZWN0ZWRJdGVtLFxyXG5cdFx0XHRrZXk6IHNlbGVjdGVkSXRlbT8uaWQsXHJcblx0XHRcdHRleHQ6IHNlbGVjdGVkSXRlbT8uYXNzZXREZWZpbml0aW9uTmFtZSxcclxuXHRcdFx0YXR0cmlidXRlczogc2VsZWN0ZWRJdGVtPy5hdHRyaWJ1dGVzLFxyXG5cdFx0XHRhc3NldERlZmluaXRpb25Db2RlOiBzZWxlY3RlZEl0ZW0/LmFzc2V0RGVmaW5pdGlvbkNvZGVcclxuXHRcdH07XHJcblxyXG5cdFx0dGhpcy5zZWxlY3RlZERlZmluaXRpb25FdmVudC5lbWl0KHNlbGVjdGVkRXZlbnQpO1xyXG5cdH1cclxufVxyXG4iLCI8cC1hdXRvQ29tcGxldGVcclxuXHRvcHRpb25MYWJlbD1cInRleHRcIlxyXG5cdFtvcHRpb25WYWx1ZV09XCJvcHRpb25WYWx1ZSgpIVwiXHJcblx0W3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG5cdFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcclxuXHRbZ3JvdXBdPVwidHJ1ZVwiXHJcblx0W2ZvcmNlU2VsZWN0aW9uXT1cImZvcmNlU2VsZWN0aW9uKClcIlxyXG5cdFtkZWxheV09XCI3MDBcIlxyXG5cdFttaW5MZW5ndGhdPVwiM1wiXHJcblx0W3N1Z2dlc3Rpb25zXT1cImZpbHRlcmVkU2VsZWN0aW9uSXRlbXNcIlxyXG5cdChjb21wbGV0ZU1ldGhvZCk9XCJzZWFyY2goJGV2ZW50KVwiXHJcblx0W2Zvcm1Db250cm9sXT1cIm5nQ29udHJvbC5jb250cm9sXCJcclxuXHRbYXV0b0hpZ2hsaWdodF09XCJ0cnVlXCJcclxuXHRbdHlwZV09XCJ0eXBlKCkhXCJcclxuXHQobmdNb2RlbENoYW5nZSk9XCJvbk5nTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcblx0W3Nob3dDbGVhcl09XCJzaG93Q2xlYXIoKVwiXHJcblx0W2VtcHR5TWVzc2FnZV09XCJ0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMubm9EYXRhVG9EaXNwbGF5JylcIlxyXG5cdChvblNlbGVjdCk9XCJ0cmlnZ2VyU2VsZWN0ZWRFdmVudHMoJGV2ZW50KVwiXHJcblx0W2FwcGVuZFRvXT1cImFwcGVuZFRvKClcIj5cclxuXHQ8bmctdGVtcGxhdGUgbGV0LWdyb3VwIHBUZW1wbGF0ZT1cImdyb3VwXCI+XHJcblx0XHQ8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IGdyb3VwLnRleHQgfX08L3NwYW4+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHRAaWYgKHNob3dPbmx5QXNzZXROdW1iZXIoKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIGxldC12YWx1ZSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIj5cclxuXHRcdFx0PHNwYW4+e3sgdmFsdWU/LmFzc2V0TnVtYmVyIHx8IHZhbHVlPy50ZXh0IH19PC9zcGFuPlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9XHJcbjwvcC1hdXRvQ29tcGxldGU+XHJcbiJdfQ==
@@ -28,14 +28,13 @@ export class TranslateJsonPipe {
28
28
  return languageObj[currentLang] || '';
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TranslateJsonPipe, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Pipe }); }
31
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TranslateJsonPipe, isStandalone: true, name: "translateJson", pure: false }); }
31
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: TranslateJsonPipe, isStandalone: true, name: "translateJson" }); }
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TranslateJsonPipe, decorators: [{
34
34
  type: Pipe,
35
35
  args: [{
36
36
  name: 'translateJson',
37
- standalone: true,
38
- pure: false
37
+ standalone: true
39
38
  }]
40
39
  }], ctorParameters: () => [{ type: i1.TranslocoService }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWpzb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdXRpbC9waXBlcy9zcmMvdHJhbnNsYXRlLWpzb24vdHJhbnNsYXRlLWpzb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBUXBELE1BQU0sT0FBTyxpQkFBaUI7SUFDN0IsWUFBcUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTNELFNBQVMsQ0FBQyxLQUFnQztRQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLFdBQWdCLENBQUM7UUFFckIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQztnQkFDSCxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUQsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDLENBQUM7OEdBeEJXLGlCQUFpQjs0R0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUw3QixJQUFJO21CQUFDO29CQUNMLElBQUksRUFBRSxlQUFlO29CQUNyQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLEtBQUs7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ3RyYW5zbGF0ZUpzb24nLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0cHVyZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZUpzb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblx0Y29uc3RydWN0b3IocmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSkge31cclxuXHJcblx0dHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuXHRcdGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBsYW5ndWFnZU9iajogYW55O1xyXG4gICAgXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICBsYW5ndWFnZU9iaiA9IHZhbHVlO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgbGFuZ3VhZ2VPYmogPSBKU09OLnBhcnNlKHZhbHVlKTtcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuICAgIHJldHVybiBsYW5ndWFnZU9ialtjdXJyZW50TGFuZ10gfHwgJyc7XHJcblx0fVxyXG59Il19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWpzb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdXRpbC9waXBlcy9zcmMvdHJhbnNsYXRlLWpzb24vdHJhbnNsYXRlLWpzb24ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBT3BELE1BQU0sT0FBTyxpQkFBaUI7SUFDN0IsWUFBcUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTNELFNBQVMsQ0FBQyxLQUFnQztRQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWixPQUFPLEVBQUUsQ0FBQztRQUNYLENBQUM7UUFFRCxJQUFJLFdBQWdCLENBQUM7UUFFckIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQztnQkFDSixXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxLQUFLLENBQUM7WUFDZCxDQUFDO1FBQ0YsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFELE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzhHQXhCVyxpQkFBaUI7NEdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDTCxJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5cclxuQFBpcGUoe1xyXG5cdG5hbWU6ICd0cmFuc2xhdGVKc29uJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVKc29uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cdGNvbnN0cnVjdG9yKHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UpIHt9XHJcblxyXG5cdHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcblx0XHRpZiAoIXZhbHVlKSB7XHJcblx0XHRcdHJldHVybiAnJztcclxuXHRcdH1cclxuXHJcblx0XHRsZXQgbGFuZ3VhZ2VPYmo6IGFueTtcclxuXHJcblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRsYW5ndWFnZU9iaiA9IHZhbHVlO1xyXG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHRyeSB7XHJcblx0XHRcdFx0bGFuZ3VhZ2VPYmogPSBKU09OLnBhcnNlKHZhbHVlKTtcclxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBTdHJpbmcodmFsdWUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHRcdHJldHVybiBsYW5ndWFnZU9ialtjdXJyZW50TGFuZ10gfHwgJyc7XHJcblx0fVxyXG59Il19
@@ -3,7 +3,7 @@ import { inject, NgZone, Component } from '@angular/core';
3
3
  import { connectRouter, ModuleFederationToolsModule } from '@angular-architects/module-federation-tools';
4
4
  import { LanguageCode, TR_TRANSLATIONS } from 'aril/boot/config/translate';
5
5
  import * as i1$1 from 'aril/theme/layout';
6
- import { AppLayoutComponent, MFELayoutComponent } from 'aril/theme/layout';
6
+ import { MFELayoutComponent } from 'aril/theme/layout';
7
7
  import { a as appName, m as menuItems } from './aril.mjs';
8
8
  import * as i1 from '@angular/router';
9
9
  import * as i2 from '@ngneat/transloco';
@@ -11,19 +11,16 @@ import * as i4 from 'primeng/api';
11
11
  import * as i3 from 'aril/boot/bridge';
12
12
  import '@angular/common/http';
13
13
  import '@angular/platform-browser';
14
- import '@angular/platform-browser/animations';
15
14
  import 'keycloak-angular';
15
+ import 'aril/boot/base';
16
16
  import 'aril/boot/config/api';
17
17
  import 'aril/boot/config/apps';
18
18
  import 'aril/boot/config/plugins';
19
- import 'aril/http';
20
19
  import 'aril/i18n';
21
- import 'aril/keycloak';
22
- import 'aril/provider';
23
20
  import 'aril/util/pub-sub';
24
21
  import '@angular/elements';
25
22
  import 'ngx-monaco-editor-v2';
26
- import 'aril/util/loaders';
23
+ import 'aril/provider';
27
24
 
28
25
  class AppComponent {
29
26
  constructor(router, translocoService, appMenuService, primeNgConfig, bridgeSvc) {
@@ -61,9 +58,9 @@ class AppComponent {
61
58
  @if (isHostMode()) {
62
59
  <mfe-layout></mfe-layout>
63
60
  } @else {
64
- <app-layout></app-layout>
61
+ Bu uygulama yalnızca host app içinden açılabilir
65
62
  }
66
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: ModuleFederationToolsModule }, { kind: "component", type: AppLayoutComponent, selector: "app-layout" }, { kind: "component", type: MFELayoutComponent, selector: "mfe-layout" }] }); }
63
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ModuleFederationToolsModule }, { kind: "component", type: MFELayoutComponent, selector: "mfe-layout" }] }); }
67
64
  }
68
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppComponent, decorators: [{
69
66
  type: Component,
@@ -73,12 +70,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
73
70
  @if (isHostMode()) {
74
71
  <mfe-layout></mfe-layout>
75
72
  } @else {
76
- <app-layout></app-layout>
73
+ Bu uygulama yalnızca host app içinden açılabilir
77
74
  }
78
75
  `,
79
- imports: [ModuleFederationToolsModule, AppLayoutComponent, MFELayoutComponent]
76
+ imports: [ModuleFederationToolsModule, MFELayoutComponent]
80
77
  }]
81
78
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.TranslocoService }, { type: i1$1.AppMenuService }, { type: i4.PrimeNGConfig }, { type: i3.MfeBridge }] });
82
79
 
83
80
  export { AppComponent };
84
- //# sourceMappingURL=aril-app.component-FxPod9bE.mjs.map
81
+ //# sourceMappingURL=aril-app.component-wxP3y8dg.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aril-app.component-wxP3y8dg.mjs","sources":["../../projects/aril/boot/mfe/src/app.component.ts"],"sourcesContent":["import { Component, NgZone, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { PrimeNGConfig } from 'primeng/api';\r\n\r\nimport { ModuleFederationToolsModule, connectRouter } from '@angular-architects/module-federation-tools';\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { MfeBridge } from 'aril/boot/bridge';\r\nimport { LanguageCode, TR_TRANSLATIONS } from 'aril/boot/config/translate';\r\nimport { AppMenuService, MFELayoutComponent } from 'aril/theme/layout';\r\n\r\nimport { appName, menuItems } from './bootstrap';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\ttemplate: `\r\n\t\t@if (isHostMode()) {\r\n\t\t\t<mfe-layout></mfe-layout>\r\n\t\t} @else {\r\n\t\t\tBu uygulama yalnızca host app içinden açılabilir\r\n\t\t}\r\n\t`,\r\n\timports: [ModuleFederationToolsModule, MFELayoutComponent]\r\n})\r\nexport class AppComponent {\r\n\tconstructor(\r\n\t\tprivate readonly router: Router,\r\n\t\tprivate readonly translocoService: TranslocoService,\r\n\t\tprivate readonly appMenuService: AppMenuService,\r\n\t\tprivate readonly primeNgConfig: PrimeNGConfig,\r\n\t\tprivate readonly bridgeSvc: MfeBridge\r\n\t) {\r\n\t\tif (!this.bridgeSvc.isHostMode() && !this.bridgeSvc.hostNgZone) {\r\n\t\t\tthis.bridgeSvc.hostNgZone = inject(NgZone);\r\n\t\t}\r\n\r\n\t\tconnectRouter(this.router, true);\r\n\r\n\t\tthis.bridgeSvc.activeMF.set(appName);\r\n\t\tconst lang: LanguageCode = (localStorage.getItem('lang') as LanguageCode) ?? LanguageCode.TR;\r\n\r\n\t\tthis.translocoService.setActiveLang(lang);\r\n\r\n\t\tthis.setLocale(lang);\r\n\r\n\t\tif (!this.bridgeSvc.isHostMode()) {\r\n\t\t\tthis.appMenuService.menuConfig.set({ items: structuredClone(menuItems), prefix: appName });\r\n\t\t}\r\n\t}\r\n\r\n\tget isHostMode() {\r\n\t\treturn this.bridgeSvc.isHostMode;\r\n\t}\r\n\r\n\tsetLocale(lang: LanguageCode) {\r\n\t\tif (!lang?.length) {\r\n\t\t\tconsole.warn('No language selected');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (lang === LanguageCode.TR) {\r\n\t\t\tthis.primeNgConfig.setTranslation(TR_TRANSLATIONS);\r\n\t\t}\r\n\t}\r\n}\r\n"],"names":["i3","i5"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { provideHttpClient, withInterceptors } from '@angular/common/http';
2
+ import { makeEnvironmentProviders, importProvidersFrom } from '@angular/core';
3
+ import { provideAnimations } from '@angular/platform-browser/animations';
4
+ import { MessageService, ConfirmationService } from 'primeng/api';
5
+ import { KeycloakBearerInterceptor, KeycloakAngularModule } from 'keycloak-angular';
6
+ import { provideMfeBridge } from 'aril/boot/bridge';
7
+ import { acceptLanguageInterceptor } from 'aril/http';
8
+ import { i18nModule, i18nFolderName } from 'aril/i18n';
9
+ import { authInterceptor, keycloakAuthInterceptor } from 'aril/keycloak';
10
+ import { provideLocaleId } from 'aril/provider';
11
+
12
+ /** Host ve plugin bootstrap akışlarında i18n asset path alt klasörü. */
13
+ const HOST_I18N_FOLDER = 'host';
14
+ /**
15
+ * Host, MFE ve plugin bootstrap akışlarında ortak olan provider'ları döndürür.
16
+ * Çağıranlar dönüş değerini `providers` dizisinde diğer özel provider'larının yanına ekler.
17
+ */
18
+ function createBaseAppConfig(options) {
19
+ return makeEnvironmentProviders([
20
+ provideAnimations(),
21
+ provideMfeBridge(),
22
+ provideLocaleId(),
23
+ KeycloakBearerInterceptor,
24
+ provideHttpClient(withInterceptors([acceptLanguageInterceptor, authInterceptor, keycloakAuthInterceptor])),
25
+ importProvidersFrom(i18nModule, KeycloakAngularModule),
26
+ MessageService,
27
+ ConfirmationService,
28
+ { provide: i18nFolderName, useValue: options.i18nFolder }
29
+ ]);
30
+ }
31
+
32
+ /**
33
+ * Generated bundle index. Do not edit.
34
+ */
35
+
36
+ export { HOST_I18N_FOLDER, createBaseAppConfig };
37
+ //# sourceMappingURL=aril-boot-base.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aril-boot-base.mjs","sources":["../../projects/aril/boot/base/src/create-base-app-config.ts","../../projects/aril/boot/base/aril-boot-base.ts"],"sourcesContent":["import { provideHttpClient, withInterceptors } from '@angular/common/http';\r\nimport { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\r\nimport { provideAnimations } from '@angular/platform-browser/animations';\r\n\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\n\r\nimport { KeycloakAngularModule, KeycloakBearerInterceptor } from 'keycloak-angular';\r\n\r\nimport { provideMfeBridge } from 'aril/boot/bridge';\r\nimport { acceptLanguageInterceptor } from 'aril/http';\r\nimport { i18nFolderName, i18nModule } from 'aril/i18n';\r\nimport { authInterceptor, keycloakAuthInterceptor } from 'aril/keycloak';\r\nimport { provideLocaleId } from 'aril/provider';\r\n\r\n/** Host ve plugin bootstrap akışlarında i18n asset path alt klasörü. */\r\nexport const HOST_I18N_FOLDER = 'host';\r\n\r\nexport interface BaseAppConfigOptions {\r\n\t/** i18nFolderName token'ına set edilecek değer (host: HOST_I18N_FOLDER, mfe: appName). */\r\n\ti18nFolder: string;\r\n}\r\n\r\n/**\r\n * Host, MFE ve plugin bootstrap akışlarında ortak olan provider'ları döndürür.\r\n * Çağıranlar dönüş değerini `providers` dizisinde diğer özel provider'larının yanına ekler.\r\n */\r\nexport function createBaseAppConfig(options: BaseAppConfigOptions): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([\r\n\t\tprovideAnimations(),\r\n\t\tprovideMfeBridge(),\r\n\t\tprovideLocaleId(),\r\n\t\tKeycloakBearerInterceptor,\r\n\t\tprovideHttpClient(withInterceptors([acceptLanguageInterceptor, authInterceptor, keycloakAuthInterceptor])),\r\n\t\timportProvidersFrom(i18nModule, KeycloakAngularModule),\r\n\t\tMessageService,\r\n\t\tConfirmationService,\r\n\t\t{ provide: i18nFolderName, useValue: options.i18nFolder }\r\n\t]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAcA;AACO,MAAM,gBAAgB,GAAG,OAAO;AAOvC;;;AAGG;AACG,SAAU,mBAAmB,CAAC,OAA6B,EAAA;AAChE,IAAA,OAAO,wBAAwB,CAAC;AAC/B,QAAA,iBAAiB,EAAE;AACnB,QAAA,gBAAgB,EAAE;AAClB,QAAA,eAAe,EAAE;QACjB,yBAAyB;QACzB,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,yBAAyB,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAC1G,QAAA,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,CAAC;QACtD,cAAc;QACd,mBAAmB;QACnB,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE;AACzD,KAAA,CAAC,CAAC;AACJ;;ACtCA;;AAEG;;;;"}
@@ -1,28 +1,9 @@
1
1
  import { isDevMode } from '@angular/core';
2
2
  import { KeycloakEventType } from 'keycloak-angular';
3
- import { switchMap, from, finalize, tap, EMPTY, firstValueFrom } from 'rxjs';
3
+ import { switchMap, from, finalize, takeUntil, fromEvent, tap, EMPTY, firstValueFrom } from 'rxjs';
4
4
  import { bridge } from 'aril/boot/bridge';
5
+ import { Apps } from 'aril/boot/config/apps';
5
6
 
6
- var Apps;
7
- (function (Apps) {
8
- Apps["THOR"] = "thor";
9
- Apps["CRM"] = "crm";
10
- Apps["WDM"] = "wdm";
11
- Apps["BILLING"] = "billing";
12
- Apps["PAYMENT"] = "payment";
13
- Apps["YEAP"] = "yeap";
14
- Apps["MW"] = "mw";
15
- Apps["LENA"] = "lena";
16
- Apps["HES"] = "hes";
17
- Apps["CTS"] = "cts";
18
- Apps["SIS"] = "sis";
19
- Apps["MNG"] = "mng";
20
- Apps["MDM"] = "mdm";
21
- Apps["STATE_MACHINE"] = "state-machine";
22
- Apps["REPORT"] = "report";
23
- Apps["LGC"] = "lgc";
24
- Apps["DMS"] = "dms";
25
- })(Apps || (Apps = {}));
26
7
  var AppsRoutes;
27
8
  (function (AppsRoutes) {
28
9
  AppsRoutes["MNG_BASE_URL"] = "mngBaseUrl";
@@ -79,7 +60,7 @@ const loadApiConfigs = (httpClient, keycloak, appName, microAppService) => () =>
79
60
  })).pipe(finalize(() => addEventListener('module-ready', (event) => {
80
61
  const app = event.detail;
81
62
  dispatchEvent(new CustomEvent(`${app}:init-keycloak`, { detail: keycloak }));
82
- keycloak.keycloakEvents$.subscribe((e) => {
63
+ keycloak.keycloakEvents$.pipe(takeUntil(fromEvent(window, 'beforeunload'))).subscribe((e) => {
83
64
  if (e.type === KeycloakEventType.OnAuthRefreshSuccess) {
84
65
  dispatchEvent(new CustomEvent(`${app}:update-keycloak`, { detail: keycloak }));
85
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aril-boot-config-api.mjs","sources":["../../projects/aril/boot/config/api/src/interfaces.ts","../../projects/aril/boot/config/api/src/api.service.ts","../../projects/aril/boot/config/api/aril-boot-config-api.ts"],"sourcesContent":["export enum Apps {\r\n\tTHOR = 'thor',\r\n\tCRM = 'crm',\r\n\tWDM = 'wdm',\r\n\tBILLING = 'billing',\r\n\tPAYMENT = 'payment',\r\n\tYEAP = 'yeap',\r\n\tMW = 'mw',\r\n\tLENA = 'lena',\r\n\tHES = 'hes',\r\n\tCTS = 'cts',\r\n\tSIS = 'sis',\r\n\tMNG = 'mng',\r\n\tMDM = 'mdm',\r\n\tSTATE_MACHINE = 'state-machine',\r\n\tREPORT = 'report',\r\n\tLGC = 'lgc',\r\n\tDMS = 'dms'\r\n}\r\n\r\nexport enum AppsRoutes {\r\n\tMNG_BASE_URL = 'mngBaseUrl',\r\n}\r\n\r\nexport interface KeycloakConfig {\r\n\turl: string;\r\n\trealm: string;\r\n\tclientId: string;\r\n}\r\n\r\nexport class ApiConfigsFactory {\r\n\tapi: string = '';\r\n\tfromMail: string = '';\r\n\tmwApi: string = '';\r\n\taiApi: string = '';\r\n\tstatusApi: string = '';\r\n\tenvironment: string = '';\r\n\tkeycloak!: Keycloak.KeycloakConfig;\r\n\troutes: Record<AppsRoutes, string> = {\r\n\t\tmngBaseUrl: '',\r\n\t};\r\n\tprefixMap: Record<Apps, string> = {\r\n\t\t[Apps.THOR]: '',\r\n\t\t[Apps.CRM]: '',\r\n\t\t[Apps.WDM]: '',\r\n\t\t[Apps.BILLING]: '',\r\n\t\t[Apps.PAYMENT]: '',\r\n\t\t[Apps.YEAP]: '',\r\n\t\t[Apps.MW]: '',\r\n\t\t[Apps.LENA]: '',\r\n\t\t[Apps.HES]: '',\r\n\t\t[Apps.CTS]: '',\r\n\t\t[Apps.SIS]: '',\r\n\t\t[Apps.MNG]: '',\r\n\t\t[Apps.STATE_MACHINE]: '',\r\n\t\t[Apps.MDM]:'',\r\n\t\t[Apps.REPORT]: '',\r\n\t\t[Apps.LGC]: '',\r\n\t\t[Apps.DMS]: ''\r\n\t};\r\n\tgetExternalAppEndpoint(appName: Apps): string {\r\n\t\tconst prefix = this.prefixMap[appName] || this.prefixMap[Apps.MNG];\r\n\t\treturn `${new URL(this.api).origin}/${prefix}`;\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { isDevMode } from '@angular/core';\r\n\r\nimport { KeycloakEventType, KeycloakService } from 'keycloak-angular';\r\nimport { EMPTY, finalize, firstValueFrom, from, switchMap, tap } from 'rxjs';\r\n\r\nimport { RouteConfig, bridge } from 'aril/boot/bridge';\r\nimport { MicroAppService } from 'aril/boot/config/apps';\r\n\r\nimport { ApiConfigsFactory, Apps } from './interfaces';\r\n\r\nexport const API_CONFIGS = new ApiConfigsFactory();\r\n\r\nexport const loadApiConfigs =\r\n\t(httpClient: HttpClient, keycloak: KeycloakService, appName: string, microAppService?: MicroAppService) => () =>\r\n\t\tnew Promise<void>((resolve) =>\r\n\t\t\thttpClient\r\n\t\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tswitchMap((configs) => {\r\n\t\t\t\t\t\tbridge.hostMenuItems.set([]);\r\n\t\t\t\t\t\tbridge.pluginJson.set({});\r\n\r\n\t\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\r\n\t\t\t\t\t\treturn from(\r\n\t\t\t\t\t\t\tkeycloak.init({\r\n\t\t\t\t\t\t\t\tconfig: API_CONFIGS.keycloak,\r\n\t\t\t\t\t\t\t\tloadUserProfileAtStartUp: true,\r\n\t\t\t\t\t\t\t\tinitOptions: { onLoad: 'login-required', checkLoginIframe: false },\r\n\t\t\t\t\t\t\t\tbearerExcludedUrls: ['/assets']\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t).pipe(\r\n\t\t\t\t\t\t\tfinalize(() =>\r\n\t\t\t\t\t\t\t\taddEventListener('module-ready', (event) => {\r\n\t\t\t\t\t\t\t\t\tconst app = (event as CustomEvent).detail;\r\n\t\t\t\t\t\t\t\t\tdispatchEvent(new CustomEvent(`${app}:init-keycloak`, { detail: keycloak }));\r\n\r\n\t\t\t\t\t\t\t\t\tkeycloak.keycloakEvents$.subscribe((e) => {\r\n\t\t\t\t\t\t\t\t\t\tif (e.type === KeycloakEventType.OnAuthRefreshSuccess) {\r\n\t\t\t\t\t\t\t\t\t\t\tdispatchEvent(new CustomEvent(`${app}:update-keycloak`, { detail: keycloak }));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tswitchMap(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t\tmicroAppService?.init(httpClient, API_CONFIGS.api).pipe(\r\n\t\t\t\t\t\t\t\ttap((result) => {\r\n\t\t\t\t\t\t\t\t\tbridge.hostMenuItems.set(result.menuItems);\r\n\t\t\t\t\t\t\t\t\tbridge.pluginJson.set(result.plugins);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t) ?? EMPTY\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe()\r\n\t\t\t\t.add(resolve)\r\n\t\t);\r\n\r\n/**\r\n * only works when isHostMode is true\r\n * micro-app access its own api.json file when opened in host\r\n */\r\nexport function setApiConfigOnMFEMode(\r\n\thttpClient: HttpClient,\r\n\tkeycloak: KeycloakService,\r\n\tappName: Apps\r\n): () => Promise<any> {\r\n\treturn () => {\r\n\t\tconst observable$ = httpClient\r\n\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((configs) => {\r\n\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\t\t\t\t\tif (appName !== Apps.THOR && appName !== Apps.YEAP) {\r\n\t\t\t\t\t\tAPI_CONFIGS.api = API_CONFIGS.getExternalAppEndpoint(appName);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\treturn firstValueFrom(observable$);\r\n\t};\r\n}\r\n\r\nexport const loadInitData = (httpClient: HttpClient) => () =>\r\n\tnew Promise<void>((resolve, _reject) => {\r\n\t\tconst endpoint = API_CONFIGS.api + '/ui-route-content-configs/all';\r\n\t\thttpClient.get<RouteConfig[]>(endpoint).subscribe({\r\n\t\t\tnext: (data) => {\r\n\t\t\t\tbridge.routeConfigs.set(data);\r\n\t\t\t\tresolve();\r\n\t\t\t},\r\n\t\t\terror: (err) => {\r\n\t\t\t\tconsole.error(`Failed to load init data from ${endpoint}:`, err);\r\n\t\t\t\tresolve();\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAAA,IAAY,IAkBX,CAAA;AAlBD,CAAA,UAAY,IAAI,EAAA;AACf,IAAA,IAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,IAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,IAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,IAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,IAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,IAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,IAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,IAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,IAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACZ,CAAC,EAlBW,IAAI,KAAJ,IAAI,GAkBf,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,UAEX,CAAA;AAFD,CAAA,UAAY,UAAU,EAAA;AACrB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,YAA2B,CAAA;AAC5B,CAAC,EAFW,UAAU,KAAV,UAAU,GAErB,EAAA,CAAA,CAAA,CAAA;MAQY,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;QACC,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAEzB,QAAA,IAAA,CAAA,MAAM,GAA+B;AACpC,YAAA,UAAU,EAAE,EAAE;SACd,CAAC;AACF,QAAA,IAAA,CAAA,SAAS,GAAyB;AACjC,YAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE;AACf,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AACd,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AACd,YAAA,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE;AAClB,YAAA,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE;AAClB,YAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE;AACf,YAAA,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE;AACb,YAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE;AACf,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AACd,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AACd,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AACd,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AACd,YAAA,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE;AACxB,YAAA,CAAC,IAAI,CAAC,GAAG,GAAE,EAAE;AACb,YAAA,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE;AACjB,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;AACd,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;SACd,CAAC;KAKF;AAJA,IAAA,sBAAsB,CAAC,OAAa,EAAA;AACnC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnE,QAAA,OAAO,CAAG,EAAA,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAI,CAAA,EAAA,MAAM,EAAE,CAAC;KAC/C;AACD;;ACrDY,MAAA,WAAW,GAAG,IAAI,iBAAiB,GAAG;AAEtC,MAAA,cAAc,GAC1B,CAAC,UAAsB,EAAE,QAAyB,EAAE,OAAe,EAAE,eAAiC,KAAK,MAC1G,IAAI,OAAO,CAAO,CAAC,OAAO,KACzB,UAAU;KACR,GAAG,CAAoB,SAAS,EAAE,GAAG,uCAAuC,GAAG,YAAY,CAAC;AAC5F,KAAA,IAAI,CACJ,SAAS,CAAC,CAAC,OAAO,KAAI;AACrB,IAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAA,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE1B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAE3C,IAAA,OAAO,IAAI,CACV,QAAQ,CAAC,IAAI,CAAC;QACb,MAAM,EAAE,WAAW,CAAC,QAAQ;AAC5B,QAAA,wBAAwB,EAAE,IAAI;QAC9B,WAAW,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,EAAE;QAClE,kBAAkB,EAAE,CAAC,SAAS,CAAC;AAC/B,KAAA,CAAC,CACF,CAAC,IAAI,CACL,QAAQ,CAAC,MACR,gBAAgB,CAAC,cAAc,EAAE,CAAC,KAAK,KAAI;AAC1C,QAAA,MAAM,GAAG,GAAI,KAAqB,CAAC,MAAM,CAAC;AAC1C,QAAA,aAAa,CAAC,IAAI,WAAW,CAAC,GAAG,GAAG,CAAA,cAAA,CAAgB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE7E,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,oBAAoB,EAAE;AACtD,gBAAA,aAAa,CAAC,IAAI,WAAW,CAAC,GAAG,GAAG,CAAA,gBAAA,CAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;aAC/E;AACF,SAAC,CAAC,CAAC;KACH,CAAC,CACF,CACD,CAAC;AACH,CAAC,CAAC,EACF,SAAS,CACR,MACC,eAAe,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CACtD,GAAG,CAAC,CAAC,MAAM,KAAI;IACd,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC,CAAC,CACF,IAAI,KAAK,CACX,CACD;AACA,KAAA,SAAS,EAAE;AACX,KAAA,GAAG,CAAC,OAAO,CAAC,EACb;AAEJ;;;AAGG;SACa,qBAAqB,CACpC,UAAsB,EACtB,QAAyB,EACzB,OAAa,EAAA;AAEb,IAAA,OAAO,MAAK;QACX,MAAM,WAAW,GAAG,UAAU;aAC5B,GAAG,CAAoB,SAAS,EAAE,GAAG,uCAAuC,GAAG,YAAY,CAAC;AAC5F,aAAA,IAAI,CACJ,GAAG,CAAC,CAAC,OAAO,KAAI;YACf,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAC3C,YAAA,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE;gBACnD,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;aAC9D;SACD,CAAC,CACF,CAAC;AAEH,QAAA,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;AACpC,KAAC,CAAC;AACH,CAAC;MAEY,YAAY,GAAG,CAAC,UAAsB,KAAK,MACvD,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,OAAO,KAAI;AACtC,IAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,GAAG,+BAA+B,CAAC;AACnE,IAAA,UAAU,CAAC,GAAG,CAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC;AACjD,QAAA,IAAI,EAAE,CAAC,IAAI,KAAI;AACd,YAAA,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,OAAO,EAAE,CAAC;SACV;AACD,QAAA,KAAK,EAAE,CAAC,GAAG,KAAI;YACd,OAAO,CAAC,KAAK,CAAC,CAAA,8BAAA,EAAiC,QAAQ,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,CAAC;AACjE,YAAA,OAAO,EAAE,CAAC;SACV;AACD,KAAA,CAAC,CAAC;AACJ,CAAC;;ACnGF;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-boot-config-api.mjs","sources":["../../projects/aril/boot/config/api/src/interfaces.ts","../../projects/aril/boot/config/api/src/api.service.ts","../../projects/aril/boot/config/api/aril-boot-config-api.ts"],"sourcesContent":["import { Apps } from 'aril/boot/config/apps';\r\n\r\nexport enum AppsRoutes {\r\n\tMNG_BASE_URL = 'mngBaseUrl',\r\n}\r\n\r\nexport interface KeycloakConfig {\r\n\turl: string;\r\n\trealm: string;\r\n\tclientId: string;\r\n}\r\n\r\nexport class ApiConfigsFactory {\r\n\tapi: string = '';\r\n\tfromMail: string = '';\r\n\tmwApi: string = '';\r\n\taiApi: string = '';\r\n\tstatusApi: string = '';\r\n\tenvironment: string = '';\r\n\tkeycloak!: Keycloak.KeycloakConfig;\r\n\troutes: Record<AppsRoutes, string> = {\r\n\t\tmngBaseUrl: '',\r\n\t};\r\n\tprefixMap: Record<Apps, string> = {\r\n\t\t[Apps.THOR]: '',\r\n\t\t[Apps.CRM]: '',\r\n\t\t[Apps.WDM]: '',\r\n\t\t[Apps.BILLING]: '',\r\n\t\t[Apps.PAYMENT]: '',\r\n\t\t[Apps.YEAP]: '',\r\n\t\t[Apps.MW]: '',\r\n\t\t[Apps.LENA]: '',\r\n\t\t[Apps.HES]: '',\r\n\t\t[Apps.CTS]: '',\r\n\t\t[Apps.SIS]: '',\r\n\t\t[Apps.MNG]: '',\r\n\t\t[Apps.STATE_MACHINE]: '',\r\n\t\t[Apps.MDM]:'',\r\n\t\t[Apps.REPORT]: '',\r\n\t\t[Apps.LGC]: '',\r\n\t\t[Apps.DMS]: ''\r\n\t};\r\n\tgetExternalAppEndpoint(appName: Apps): string {\r\n\t\tconst prefix = this.prefixMap[appName] || this.prefixMap[Apps.MNG];\r\n\t\treturn `${new URL(this.api).origin}/${prefix}`;\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { isDevMode } from '@angular/core';\r\n\r\nimport { KeycloakEventType, KeycloakService } from 'keycloak-angular';\r\nimport { EMPTY, finalize, firstValueFrom, from, fromEvent, switchMap, takeUntil, tap } from 'rxjs';\r\n\r\nimport { RouteConfig, bridge } from 'aril/boot/bridge';\r\nimport { Apps, MicroAppService } from 'aril/boot/config/apps';\r\n\r\nimport { ApiConfigsFactory } from './interfaces';\r\n\r\nexport const API_CONFIGS = new ApiConfigsFactory();\r\n\r\nexport const loadApiConfigs =\r\n\t(httpClient: HttpClient, keycloak: KeycloakService, appName: string, microAppService?: MicroAppService) => () =>\r\n\t\tnew Promise<void>((resolve) =>\r\n\t\t\thttpClient\r\n\t\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tswitchMap((configs) => {\r\n\t\t\t\t\t\tbridge.hostMenuItems.set([]);\r\n\t\t\t\t\t\tbridge.pluginJson.set({});\r\n\r\n\t\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\r\n\t\t\t\t\t\treturn from(\r\n\t\t\t\t\t\t\tkeycloak.init({\r\n\t\t\t\t\t\t\t\tconfig: API_CONFIGS.keycloak,\r\n\t\t\t\t\t\t\t\tloadUserProfileAtStartUp: true,\r\n\t\t\t\t\t\t\t\tinitOptions: { onLoad: 'login-required', checkLoginIframe: false },\r\n\t\t\t\t\t\t\t\tbearerExcludedUrls: ['/assets']\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t).pipe(\r\n\t\t\t\t\t\t\tfinalize(() =>\r\n\t\t\t\t\t\t\t\taddEventListener('module-ready', (event) => {\r\n\t\t\t\t\t\t\t\t\tconst app = (event as CustomEvent).detail;\r\n\t\t\t\t\t\t\t\t\tdispatchEvent(new CustomEvent(`${app}:init-keycloak`, { detail: keycloak }));\r\n\r\n\t\t\t\t\t\t\t\t\tkeycloak.keycloakEvents$.pipe(takeUntil(fromEvent(window, 'beforeunload'))).subscribe((e) => {\r\n\t\t\t\t\t\t\t\t\t\tif (e.type === KeycloakEventType.OnAuthRefreshSuccess) {\r\n\t\t\t\t\t\t\t\t\t\t\tdispatchEvent(new CustomEvent(`${app}:update-keycloak`, { detail: keycloak }));\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tswitchMap(\r\n\t\t\t\t\t\t() =>\r\n\t\t\t\t\t\t\tmicroAppService?.init(httpClient, API_CONFIGS.api).pipe(\r\n\t\t\t\t\t\t\t\ttap((result) => {\r\n\t\t\t\t\t\t\t\t\tbridge.hostMenuItems.set(result.menuItems);\r\n\t\t\t\t\t\t\t\t\tbridge.pluginJson.set(result.plugins);\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t) ?? EMPTY\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe()\r\n\t\t\t\t.add(resolve)\r\n\t\t);\r\n\r\n/**\r\n * only works when isHostMode is true\r\n * micro-app access its own api.json file when opened in host\r\n */\r\nexport function setApiConfigOnMFEMode(\r\n\thttpClient: HttpClient,\r\n\tkeycloak: KeycloakService,\r\n\tappName: Apps\r\n): () => Promise<any> {\r\n\treturn () => {\r\n\t\tconst observable$ = httpClient\r\n\t\t\t.get<ApiConfigsFactory>(isDevMode() ? './assets/local-configs/api.local.json' : './api.json')\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((configs) => {\r\n\t\t\t\t\tObject.assign(API_CONFIGS, { ...configs });\r\n\t\t\t\t\tif (appName !== Apps.THOR && appName !== Apps.YEAP) {\r\n\t\t\t\t\t\tAPI_CONFIGS.api = API_CONFIGS.getExternalAppEndpoint(appName);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t);\r\n\r\n\t\treturn firstValueFrom(observable$);\r\n\t};\r\n}\r\n\r\nexport const loadInitData = (httpClient: HttpClient) => () =>\r\n\tnew Promise<void>((resolve, _reject) => {\r\n\t\tconst endpoint = API_CONFIGS.api + '/ui-route-content-configs/all';\r\n\t\thttpClient.get<RouteConfig[]>(endpoint).subscribe({\r\n\t\t\tnext: (data) => {\r\n\t\t\t\tbridge.routeConfigs.set(data);\r\n\t\t\t\tresolve();\r\n\t\t\t},\r\n\t\t\terror: (err) => {\r\n\t\t\t\tconsole.error(`Failed to load init data from ${endpoint}:`, err);\r\n\t\t\t\tresolve();\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Router, BaseRouteReuseStrategy } from '@angular/router';
4
4
  import { WebComponentWrapper, startsWith } from '@angular-architects/module-federation-tools';
5
5
  import { KeycloakAuthGuard, KeycloakService } from 'keycloak-angular';
6
6
  import { map, catchError, of } from 'rxjs';
7
- import { ForbiddenComponent, NotFoundComponent } from 'aril/util/custom_pages';
7
+ import { ForbiddenComponent, NotFoundComponent } from 'aril/boot/pages';
8
8
 
9
9
  const routePermissions = new Map();
10
10
  function setRoutePermissions(menuItems) {