@koobiq/components 18.33.0 → 18.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/actions-panel/actions-panel-config.d.ts +4 -3
  2. package/actions-panel/actions-panel-container.scss +0 -6
  3. package/actions-panel/actions-panel-ref.d.ts +13 -0
  4. package/actions-panel/actions-panel.d.ts +1 -7
  5. package/button/_button-theme.scss +1 -0
  6. package/clamped-text/clamped-text.d.ts +61 -0
  7. package/clamped-text/clamped-text.scss +17 -0
  8. package/clamped-text/constants.d.ts +14 -0
  9. package/clamped-text/index.d.ts +3 -0
  10. package/clamped-text/module.d.ts +7 -0
  11. package/content-panel/content-panel-aside.scss +9 -0
  12. package/content-panel/content-panel-body.scss +9 -0
  13. package/content-panel/content-panel-container.scss +32 -0
  14. package/content-panel/content-panel-footer.scss +5 -0
  15. package/content-panel/content-panel-header.scss +30 -0
  16. package/content-panel/content-panel-tokens.scss +9 -0
  17. package/content-panel/content-panel.d.ts +149 -0
  18. package/content-panel/content-panel.scss +25 -0
  19. package/content-panel/index.d.ts +3 -0
  20. package/content-panel/module.d.ts +7 -0
  21. package/content-panel/resizable.d.ts +70 -0
  22. package/core/form-field/field-sizing-content.d.ts +21 -0
  23. package/core/form-field/index.d.ts +1 -0
  24. package/core/locales/en-US.d.ts +10 -0
  25. package/core/locales/es-LA.d.ts +10 -0
  26. package/core/locales/fa-IR.d.ts +10 -0
  27. package/core/locales/locale-service.d.ts +70 -0
  28. package/core/locales/pt-BR.d.ts +10 -0
  29. package/core/locales/ru-RU.d.ts +10 -0
  30. package/core/locales/tk-TM.d.ts +10 -0
  31. package/core/locales/types.d.ts +5 -0
  32. package/core/locales/zh-CN.d.ts +10 -0
  33. package/core/navbar/index.d.ts +1 -0
  34. package/core/navbar/rectangle-item.d.ts +14 -0
  35. package/core/option/option.d.ts +3 -1
  36. package/core/pop-up/pop-up-trigger.d.ts +2 -0
  37. package/core/public-api.d.ts +1 -0
  38. package/core/styles/common/_select.scss +6 -3
  39. package/core/utils/dom.d.ts +9 -0
  40. package/core/utils/index.d.ts +1 -0
  41. package/core/utils/utils.d.ts +4 -0
  42. package/datepicker/calendar.component.d.ts +1 -1
  43. package/datepicker/datepicker-input.directive.d.ts +19 -8
  44. package/datepicker/datepicker-toggle.component.d.ts +1 -1
  45. package/datepicker/datepicker.component.d.ts +2 -2
  46. package/dropdown/dropdown-item.scss +1 -0
  47. package/dropdown/dropdown-trigger.directive.d.ts +7 -1
  48. package/dynamic-translation/dynamic-translation.d.ts +72 -0
  49. package/dynamic-translation/index.d.ts +2 -0
  50. package/dynamic-translation/module.d.ts +7 -0
  51. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  52. package/esm2022/actions-panel/actions-panel-container.mjs +7 -7
  53. package/esm2022/actions-panel/actions-panel-ref.mjs +17 -1
  54. package/esm2022/actions-panel/actions-panel.mjs +34 -24
  55. package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
  56. package/esm2022/button/button.component.mjs +2 -2
  57. package/esm2022/button-toggle/button-toggle.component.mjs +9 -9
  58. package/esm2022/clamped-text/clamped-text.mjs +202 -0
  59. package/esm2022/clamped-text/constants.mjs +20 -0
  60. package/esm2022/clamped-text/index.mjs +4 -0
  61. package/esm2022/clamped-text/koobiq-components-clamped-text.mjs +5 -0
  62. package/esm2022/clamped-text/module.mjs +19 -0
  63. package/esm2022/content-panel/content-panel.mjs +432 -0
  64. package/esm2022/content-panel/index.mjs +4 -0
  65. package/esm2022/content-panel/koobiq-components-content-panel.mjs +5 -0
  66. package/esm2022/content-panel/module.mjs +42 -0
  67. package/esm2022/content-panel/resizable.mjs +138 -0
  68. package/esm2022/core/form-field/field-sizing-content.mjs +114 -0
  69. package/esm2022/core/form-field/index.mjs +2 -1
  70. package/esm2022/core/locales/en-US.mjs +11 -1
  71. package/esm2022/core/locales/es-LA.mjs +11 -1
  72. package/esm2022/core/locales/fa-IR.mjs +11 -1
  73. package/esm2022/core/locales/pt-BR.mjs +11 -1
  74. package/esm2022/core/locales/ru-RU.mjs +11 -1
  75. package/esm2022/core/locales/tk-TM.mjs +11 -1
  76. package/esm2022/core/locales/types.mjs +1 -1
  77. package/esm2022/core/locales/zh-CN.mjs +11 -1
  78. package/esm2022/core/navbar/index.mjs +2 -0
  79. package/esm2022/core/navbar/rectangle-item.mjs +39 -0
  80. package/esm2022/core/option/option.mjs +8 -4
  81. package/esm2022/core/pop-up/pop-up-trigger.mjs +5 -1
  82. package/esm2022/core/public-api.mjs +2 -1
  83. package/esm2022/core/utils/dom.mjs +14 -0
  84. package/esm2022/core/utils/index.mjs +2 -1
  85. package/esm2022/core/utils/utils.mjs +9 -1
  86. package/esm2022/core/version.mjs +2 -2
  87. package/esm2022/datepicker/calendar-header.component.mjs +6 -3
  88. package/esm2022/datepicker/calendar.component.mjs +9 -9
  89. package/esm2022/datepicker/datepicker-input.directive.mjs +24 -21
  90. package/esm2022/datepicker/datepicker-toggle.component.mjs +8 -8
  91. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  92. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  93. package/esm2022/dropdown/dropdown-trigger.directive.mjs +30 -10
  94. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  95. package/esm2022/dynamic-translation/dynamic-translation.mjs +175 -0
  96. package/esm2022/dynamic-translation/index.mjs +3 -0
  97. package/esm2022/dynamic-translation/koobiq-components-dynamic-translation.mjs +5 -0
  98. package/esm2022/dynamic-translation/module.mjs +25 -0
  99. package/esm2022/file-upload/file-drop.mjs +1 -1
  100. package/esm2022/file-upload/file-upload.mjs +6 -1
  101. package/esm2022/file-upload/multiple-file-upload.component.mjs +21 -16
  102. package/esm2022/file-upload/single-file-upload.component.mjs +23 -16
  103. package/esm2022/filter-bar/filter-bar.mjs +3 -3
  104. package/esm2022/filter-bar/filter-refresher.mjs +5 -5
  105. package/esm2022/filter-bar/filter-reset.mjs +3 -3
  106. package/esm2022/filter-bar/filter-search.mjs +11 -11
  107. package/esm2022/filter-bar/filters.mjs +16 -4
  108. package/esm2022/filter-bar/pipe-add.mjs +6 -6
  109. package/esm2022/filter-bar/pipes/base-pipe.mjs +2 -2
  110. package/esm2022/filter-bar/pipes/pipe-button.mjs +7 -7
  111. package/esm2022/filter-bar/pipes/pipe-date.mjs +10 -2
  112. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +10 -2
  113. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +11 -17
  114. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +10 -9
  115. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +7 -7
  116. package/esm2022/filter-bar/pipes/pipe-select.mjs +3 -4
  117. package/esm2022/filter-bar/pipes/pipe-text.mjs +9 -3
  118. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +9 -3
  119. package/esm2022/form-field/cleaner.mjs +16 -11
  120. package/esm2022/form-field/fieldset.mjs +2 -2
  121. package/esm2022/form-field/form-field.mjs +5 -5
  122. package/esm2022/form-field/password-hint.mjs +14 -3
  123. package/esm2022/form-field/password-toggle.mjs +45 -10
  124. package/esm2022/form-field/reactive-password-hint.mjs +18 -17
  125. package/esm2022/form-field/stepper.mjs +9 -9
  126. package/esm2022/icon/icon-button.component.mjs +2 -2
  127. package/esm2022/input/input-number.mjs +15 -10
  128. package/esm2022/markdown/markdown.component.mjs +3 -3
  129. package/esm2022/modal/modal.component.mjs +14 -14
  130. package/esm2022/modal/modal.directive.mjs +7 -5
  131. package/esm2022/navbar/navbar-item.component.mjs +3 -3
  132. package/esm2022/navbar-ic/index.mjs +2 -0
  133. package/esm2022/navbar-ic/koobiq-components-navbar-ic.mjs +5 -0
  134. package/esm2022/navbar-ic/navbar-ic-header.mjs +58 -0
  135. package/esm2022/navbar-ic/navbar-ic-item.mjs +399 -0
  136. package/esm2022/navbar-ic/navbar-ic.animation.mjs +9 -0
  137. package/esm2022/navbar-ic/navbar-ic.mjs +281 -0
  138. package/esm2022/navbar-ic/navbar-ic.module.mjs +74 -0
  139. package/esm2022/navbar-ic/public-api.mjs +5 -0
  140. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  141. package/esm2022/popover/popover.component.mjs +10 -5
  142. package/esm2022/scrollbar/scrollbar.component.mjs +5 -5
  143. package/esm2022/select/select.component.mjs +24 -11
  144. package/esm2022/sidebar/sidebar.component.mjs +46 -27
  145. package/esm2022/sidepanel/sidepanel-container.component.mjs +15 -4
  146. package/esm2022/sidepanel/sidepanel-directives.mjs +5 -5
  147. package/esm2022/sidepanel/sidepanel-ref.mjs +8 -6
  148. package/esm2022/splitter/splitter.component.mjs +1 -1
  149. package/esm2022/tabs/tab-body.component.mjs +3 -3
  150. package/esm2022/tabs/tab-group.component.mjs +27 -27
  151. package/esm2022/tabs/tab.component.mjs +4 -4
  152. package/esm2022/tags/tag-input.mjs +2 -2
  153. package/esm2022/tags/tag-list.component.mjs +36 -17
  154. package/esm2022/tags/tag.component.mjs +231 -22
  155. package/esm2022/tags/tag.module.mjs +16 -6
  156. package/esm2022/textarea/textarea.component.mjs +6 -4
  157. package/esm2022/timepicker/timepicker.directive.mjs +1 -1
  158. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  159. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  160. package/esm2022/tree/tree-selection.component.mjs +4 -4
  161. package/esm2022/tree-select/tree-select.component.mjs +11 -9
  162. package/esm2022/username/constants.mjs +25 -0
  163. package/esm2022/username/index.mjs +6 -0
  164. package/esm2022/username/koobiq-components-username.mjs +5 -0
  165. package/esm2022/username/module.mjs +35 -0
  166. package/esm2022/username/types.mjs +32 -0
  167. package/esm2022/username/username.mjs +129 -0
  168. package/esm2022/username/username.pipe.mjs +92 -0
  169. package/fesm2022/koobiq-components-actions-panel.mjs +56 -31
  170. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  172. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-button-toggle.mjs +8 -8
  174. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-button.mjs +2 -2
  176. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-clamped-text.mjs +242 -0
  178. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -0
  179. package/fesm2022/koobiq-components-content-panel.mjs +612 -0
  180. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -0
  181. package/fesm2022/koobiq-components-core.mjs +271 -31
  182. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-datepicker.mjs +45 -40
  184. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-dropdown.mjs +33 -13
  186. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-dynamic-translation.mjs +204 -0
  188. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -0
  189. package/fesm2022/koobiq-components-file-upload.mjs +44 -27
  190. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-filter-bar.mjs +100 -71
  192. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-form-field.mjs +100 -49
  194. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-icon.mjs +2 -2
  196. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-input.mjs +14 -9
  198. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  200. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-modal.mjs +19 -17
  202. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-navbar-ic.mjs +800 -0
  204. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -0
  205. package/fesm2022/koobiq-components-navbar.mjs +2 -2
  206. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-popover.mjs +11 -6
  208. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-scrollbar.mjs +4 -4
  210. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-select.mjs +23 -10
  212. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-sidebar.mjs +45 -26
  214. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-sidepanel.mjs +24 -12
  216. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-tabs.mjs +31 -31
  219. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  220. package/fesm2022/koobiq-components-tags.mjs +284 -47
  221. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  222. package/fesm2022/koobiq-components-textarea.mjs +5 -3
  223. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  224. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-timezone.mjs +2 -2
  226. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  228. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-tree-select.mjs +10 -8
  230. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-tree.mjs +3 -3
  232. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-username.mjs +308 -0
  234. package/fesm2022/koobiq-components-username.mjs.map +1 -0
  235. package/file-upload/_file-upload-theme.scss +1 -1
  236. package/file-upload/file-drop.d.ts +1 -1
  237. package/file-upload/file-upload.d.ts +5 -2
  238. package/file-upload/multiple-file-upload.component.d.ts +4 -2
  239. package/file-upload/single-file-upload.component.d.ts +5 -3
  240. package/filter-bar/_filter-bar-theme.scss +2 -2
  241. package/filter-bar/filters.d.ts +1 -0
  242. package/filter-bar/pipes/pipe-date.d.ts +3 -1
  243. package/filter-bar/pipes/pipe-datetime.d.ts +3 -1
  244. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -1
  245. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +3 -2
  246. package/filter-bar/pipes/pipe-select.d.ts +0 -1
  247. package/filter-bar/pipes/pipe-tree-select.d.ts +3 -2
  248. package/form-field/_form-field-theme.scss +27 -18
  249. package/form-field/cleaner.d.ts +4 -2
  250. package/form-field/cleaner.scss +6 -2
  251. package/form-field/form-field.scss +12 -2
  252. package/form-field/password-hint.d.ts +7 -0
  253. package/form-field/password-toggle.d.ts +23 -3
  254. package/form-field/password-toggle.scss +4 -8
  255. package/form-field/reactive-password-hint.d.ts +1 -0
  256. package/icon/_icon-button-theme.scss +8 -2
  257. package/modal/modal.component.d.ts +6 -6
  258. package/navbar-ic/_navbar-ic-theme.scss +81 -0
  259. package/navbar-ic/index.d.ts +1 -0
  260. package/navbar-ic/navbar-ic-divider.scss +7 -0
  261. package/navbar-ic/navbar-ic-header.d.ts +18 -0
  262. package/navbar-ic/navbar-ic-header.scss +53 -0
  263. package/navbar-ic/navbar-ic-item.d.ts +125 -0
  264. package/navbar-ic/navbar-ic-item.scss +96 -0
  265. package/navbar-ic/navbar-ic-tokens.scss +22 -0
  266. package/navbar-ic/navbar-ic.animation.d.ts +2 -0
  267. package/navbar-ic/navbar-ic.d.ts +103 -0
  268. package/navbar-ic/navbar-ic.module.d.ts +14 -0
  269. package/navbar-ic/navbar-ic.scss +32 -0
  270. package/navbar-ic/public-api.d.ts +4 -0
  271. package/package.json +34 -4
  272. package/popover/_popover-theme.scss +6 -2
  273. package/popover/popover-confirm.component.d.ts +1 -1
  274. package/popover/popover-tokens.scss +2 -0
  275. package/popover/popover.component.d.ts +6 -3
  276. package/prebuilt-themes/dark-theme.css +1 -1
  277. package/prebuilt-themes/light-theme.css +1 -1
  278. package/prebuilt-themes/theme.css +1 -1
  279. package/schematics/ng-add/index.js +4 -4
  280. package/scrollbar/scrollbar.component.d.ts +4 -4
  281. package/select/select.component.d.ts +14 -2
  282. package/sidebar/sidebar.component.d.ts +31 -5
  283. package/sidepanel/sidepanel-container.component.d.ts +9 -0
  284. package/sidepanel/sidepanel-ref.d.ts +3 -3
  285. package/splitter/splitter.component.d.ts +2 -2
  286. package/tabs/tab-group.component.d.ts +1 -1
  287. package/tabs/tab.component.d.ts +1 -1
  288. package/tags/_tag-theme.scss +10 -1
  289. package/tags/tag-input.d.ts +1 -1
  290. package/tags/tag-list.component.d.ts +11 -3
  291. package/tags/tag-list.scss +5 -0
  292. package/tags/tag.component.d.ts +78 -8
  293. package/tags/tag.module.d.ts +1 -1
  294. package/tags/tag.scss +18 -0
  295. package/textarea/textarea-tokens.scss +1 -1
  296. package/timepicker/timepicker.directive.d.ts +1 -1
  297. package/tooltip/_tooltip-theme.scss +9 -2
  298. package/tooltip/tooltip-tokens.scss +2 -0
  299. package/tooltip/tooltip.component.d.ts +2 -2
  300. package/tree/tree-selection.component.d.ts +1 -1
  301. package/tree-select/tree-select.component.d.ts +1 -1
  302. package/username/constants.d.ts +15 -0
  303. package/username/index.d.ts +5 -0
  304. package/username/module.d.ts +8 -0
  305. package/username/types.d.ts +62 -0
  306. package/username/username-tokens.scss +6 -0
  307. package/username/username.d.ts +68 -0
  308. package/username/username.pipe.d.ts +23 -0
  309. package/username/username.scss +107 -0
@@ -0,0 +1,175 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChildren, Directive, effect, inject, input, Renderer2, TemplateRef, viewChildren } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Directive for defining a dynamic translation slot.
6
+ */
7
+ export class KbqDynamicTranslationSlot {
8
+ constructor() {
9
+ /**
10
+ * The name of the dynamic translation slot.
11
+ */
12
+ this.name = input.required({ alias: 'kbqDynamicTranslationSlot' });
13
+ /**
14
+ * @docs-private
15
+ */
16
+ this.templateRef = inject(TemplateRef);
17
+ }
18
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslationSlot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: KbqDynamicTranslationSlot, isStandalone: true, selector: "[kbqDynamicTranslationSlot]", inputs: { name: { classPropertyName: "name", publicName: "kbqDynamicTranslationSlot", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslationSlot, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ standalone: true,
25
+ selector: '[kbqDynamicTranslationSlot]'
26
+ }]
27
+ }] });
28
+ /**
29
+ * Component for dynamic translation.
30
+ */
31
+ export class KbqDynamicTranslation {
32
+ constructor() {
33
+ this.slots = contentChildren(KbqDynamicTranslationSlot);
34
+ /**
35
+ * The text which will be translated.
36
+ */
37
+ this.text = input.required();
38
+ /**
39
+ * @docs-private
40
+ */
41
+ this.parsedSlots = computed(() => this.parseSlots(this.text(), this.slots()));
42
+ }
43
+ parseSlots(text, slots) {
44
+ const slotTemplatesByName = slots.reduce((map, { name, templateRef }) => {
45
+ const slotName = name();
46
+ if (slotName)
47
+ map[slotName] = templateRef;
48
+ return map;
49
+ }, {});
50
+ const parsedSlots = [];
51
+ const slotSelector = new RegExp(`\\[\\[(${Object.keys(slotTemplatesByName).join('|')})(?::(.+?))?\\]\\]`, 'g');
52
+ let match;
53
+ let lastIndex = 0;
54
+ while ((match = slotSelector.exec(text)) !== null) {
55
+ const [slotMatch, slotName, slotText] = match;
56
+ const [listMatch, listString] = new RegExp('^\\((.*?)\\)$', 'g').exec(slotText) ?? [];
57
+ const textBeforeSlot = text.substring(lastIndex, +match.index);
58
+ if (textBeforeSlot) {
59
+ parsedSlots.push({ type: 'text', text: textBeforeSlot, template: null });
60
+ }
61
+ parsedSlots.push({
62
+ type: 'slot',
63
+ template: slotTemplatesByName[slotName] || null,
64
+ context: { $implicit: listMatch && listString ? listString.split(',') : slotText }
65
+ });
66
+ lastIndex = match.index + slotMatch.length;
67
+ }
68
+ const textAfterLastSlot = text.substring(lastIndex);
69
+ if (textAfterLastSlot) {
70
+ parsedSlots.push({ type: 'text', text: textAfterLastSlot, template: null });
71
+ }
72
+ return parsedSlots;
73
+ }
74
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KbqDynamicTranslation, isStandalone: true, selector: "kbq-dynamic-translation", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "slots", predicate: KbqDynamicTranslationSlot, isSignal: true }], ngImport: i0, template: `
76
+ @for (slot of parsedSlots(); track $index) {
77
+ @switch (slot.type) {
78
+ @case ('slot') {
79
+ <ng-container *ngTemplateOutlet="slot.template; context: slot.context" />
80
+ }
81
+ @default {
82
+ <ng-container>{{ slot.text }}</ng-container>
83
+ }
84
+ }
85
+ }
86
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslation, decorators: [{
89
+ type: Component,
90
+ args: [{
91
+ standalone: true,
92
+ imports: [NgTemplateOutlet],
93
+ selector: 'kbq-dynamic-translation',
94
+ template: `
95
+ @for (slot of parsedSlots(); track $index) {
96
+ @switch (slot.type) {
97
+ @case ('slot') {
98
+ <ng-container *ngTemplateOutlet="slot.template; context: slot.context" />
99
+ }
100
+ @default {
101
+ <ng-container>{{ slot.text }}</ng-container>
102
+ }
103
+ }
104
+ }
105
+ `,
106
+ changeDetection: ChangeDetectionStrategy.OnPush
107
+ }]
108
+ }] });
109
+ /**
110
+ * @docs-private
111
+ */
112
+ export class KbqDynamicTranslationHelper {
113
+ constructor() {
114
+ this.renderer = inject(Renderer2);
115
+ this.replaceableSlotContainers = viewChildren('replaceableSlotContainer');
116
+ this.slotsByName = new Map();
117
+ this.text = input.required();
118
+ this.slots = input.required();
119
+ effect(() => {
120
+ this.slotsByName.clear();
121
+ this.slots().forEach((slot) => this.slotsByName.set(slot.name, slot));
122
+ });
123
+ afterNextRender(() => {
124
+ this.replaceSlots();
125
+ });
126
+ }
127
+ replaceSlots() {
128
+ this.replaceableSlotContainers().forEach(({ nativeElement }) => {
129
+ const slotName = nativeElement.getAttribute('data-slot-name');
130
+ const slotContent = nativeElement.getAttribute('data-slot-content');
131
+ const { tag, attributes } = this.slotsByName.get(slotName);
132
+ const elementToRender = this.renderer.createElement(tag);
133
+ this.renderer.appendChild(elementToRender, this.renderer.createText(slotContent));
134
+ attributes?.forEach(({ key, value }) => this.renderer.setAttribute(elementToRender, key, value));
135
+ nativeElement.replaceWith(elementToRender);
136
+ });
137
+ }
138
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslationHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KbqDynamicTranslationHelper, isStandalone: true, selector: "kbq-dynamic-translation-with-dynamic-component-creation", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, slots: { classPropertyName: "slots", publicName: "slots", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "replaceableSlotContainers", predicate: ["replaceableSlotContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `
140
+ <kbq-dynamic-translation [text]="text()">
141
+ @for (slot of slots(); track $index) {
142
+ <ng-container *kbqDynamicTranslationSlot="slot.name; let content">
143
+ <span
144
+ #replaceableSlotContainer
145
+ [attr.data-slot-name]="slot.name"
146
+ [attr.data-slot-content]="slot.content || content"
147
+ ></span>
148
+ </ng-container>
149
+ }
150
+ </kbq-dynamic-translation>
151
+ `, isInline: true, dependencies: [{ kind: "component", type: KbqDynamicTranslation, selector: "kbq-dynamic-translation", inputs: ["text"] }, { kind: "directive", type: KbqDynamicTranslationSlot, selector: "[kbqDynamicTranslationSlot]", inputs: ["kbqDynamicTranslationSlot"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
152
+ }
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslationHelper, decorators: [{
154
+ type: Component,
155
+ args: [{
156
+ standalone: true,
157
+ imports: [KbqDynamicTranslation, KbqDynamicTranslationSlot],
158
+ selector: 'kbq-dynamic-translation-with-dynamic-component-creation',
159
+ template: `
160
+ <kbq-dynamic-translation [text]="text()">
161
+ @for (slot of slots(); track $index) {
162
+ <ng-container *kbqDynamicTranslationSlot="slot.name; let content">
163
+ <span
164
+ #replaceableSlotContainer
165
+ [attr.data-slot-name]="slot.name"
166
+ [attr.data-slot-content]="slot.content || content"
167
+ ></span>
168
+ </ng-container>
169
+ }
170
+ </kbq-dynamic-translation>
171
+ `,
172
+ changeDetection: ChangeDetectionStrategy.OnPush
173
+ }]
174
+ }], ctorParameters: () => [] });
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10cmFuc2xhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZHluYW1pYy10cmFuc2xhdGlvbi9keW5hbWljLXRyYW5zbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDSCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFNBQVMsRUFDVCxNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQzs7QUFzQnZCOztHQUVHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUtJOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQVMsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDO1FBRS9FOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDOUM7a0lBVlkseUJBQXlCO3NIQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw2QkFBNkI7aUJBQzFDOztBQWFEOztHQUVHO0FBbUJILE1BQU0sT0FBTyxxQkFBcUI7SUFsQmxDO1FBbUJxQixVQUFLLEdBQUcsZUFBZSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFcEU7O1dBRUc7UUFDTSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBRXpDOztXQUVHO1FBQ2dCLGdCQUFXLEdBQThDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFF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QztZQUV6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUVsRixVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUVqRyxhQUFhLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztrSUFqQ1EsMkJBQTJCO3NIQUEzQiwyQkFBMkIsb2ZBZjFCOzs7Ozs7Ozs7Ozs7S0FZVCw0REE5RVEscUJBQXFCLHNGQWpDckIseUJBQXlCOzs0RkFrSHpCLDJCQUEyQjtrQkFuQnZDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLHlCQUF5QixDQUFDO29CQUMzRCxRQUFRLEVBQUUseURBQXlEO29CQUNuRSxRQUFRLEVBQUU7Ozs7Ozs7Ozs7OztLQVlUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBhZnRlck5leHRSZW5kZXIsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgZWZmZWN0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgdmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xudHlwZSBLYnFEeW5hbWljVHJhbnNsYXRpb25QYXJzZWRTbG90ID0ge1xuICAgIHR5cGU6ICd0ZXh0JyB8ICdzbG90JztcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsO1xuICAgIGNvbnRleHQ/OiB7ICRpbXBsaWNpdDogdW5rbm93biB9O1xuICAgIHRleHQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYnFEeW5hbWljVHJhbnNsYXRpb25IZWxwZXJTbG90IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdGFnOiBzdHJpbmc7XG4gICAgYXR0cmlidXRlcz86IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdO1xuICAgIGNvbnRlbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciBkZWZpbmluZyBhIGR5bmFtaWMgdHJhbnNsYXRpb24gc2xvdC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFEeW5hbWljVHJhbnNsYXRpb25TbG90XSdcbn0pXG5leHBvcnQgY2xhc3MgS2JxRHluYW1pY1RyYW5zbGF0aW9uU2xvdCB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGR5bmFtaWMgdHJhbnNsYXRpb24gc2xvdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBuYW1lID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPih7IGFsaWFzOiAna2JxRHluYW1pY1RyYW5zbGF0aW9uU2xvdCcgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xufVxuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgZHluYW1pYyB0cmFuc2xhdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgc2VsZWN0b3I6ICdrYnEtZHluYW1pYy10cmFuc2xhdGlvbicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGZvciAoc2xvdCBvZiBwYXJzZWRTbG90cygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBzd2l0Y2ggKHNsb3QudHlwZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlICgnc2xvdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNsb3QudGVtcGxhdGU7IGNvbnRleHQ6IHNsb3QuY29udGV4dFwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj57eyBzbG90LnRleHQgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEticUR5bmFtaWNUcmFuc2xhdGlvbiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzbG90cyA9IGNvbnRlbnRDaGlsZHJlbihLYnFEeW5hbWljVHJhbnNsYXRpb25TbG90KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0IHdoaWNoIHdpbGwgYmUgdHJhbnNsYXRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB0ZXh0ID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwYXJzZWRTbG90czogU2lnbmFsPEticUR5bmFtaWNUcmFuc2xhdGlvblBhcnNlZFNsb3RbXT4gPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLnBhcnNlU2xvdHModGhpcy50ZXh0KCksIHRoaXMuc2xvdHMoKSlcbiAgICApO1xuXG4gICAgcHJpdmF0ZSBwYXJzZVNsb3RzKFxuICAgICAgICB0ZXh0OiBzdHJpbmcsXG4gICAgICAgIHNsb3RzOiBSZWFkb25seUFycmF5PEticUR5bmFtaWNUcmFuc2xhdGlvblNsb3Q+XG4gICAgKTogS2JxRHluYW1pY1RyYW5zbGF0aW9uUGFyc2VkU2xvdFtdIHtcbiAgICAgICAgY29uc3Qgc2xvdFRlbXBsYXRlc0J5TmFtZSA9IHNsb3RzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjx1bmtub3duPj4+KChtYXAsIHsgbmFtZSwgdGVtcGxhdGVSZWYgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2xvdE5hbWUgPSBuYW1lKCk7XG5cbiAgICAgICAgICAgIGlmIChzbG90TmFtZSkgbWFwW3Nsb3ROYW1lXSA9IHRlbXBsYXRlUmVmO1xuXG4gICAgICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgICB9LCB7fSk7XG4gICAgICAgIGNvbnN0IHBhcnNlZFNsb3RzOiBLYnFEeW5hbWljVHJhbnNsYXRpb25QYXJzZWRTbG90W10gPSBbXTtcbiAgICAgICAgY29uc3Qgc2xvdFNlbGVjdG9yID0gbmV3IFJlZ0V4cChgXFxcXFtcXFxcWygke09iamVjdC5rZXlzKHNsb3RUZW1wbGF0ZXNCeU5hbWUpLmpvaW4oJ3wnKX0pKD86OiguKz8pKT9cXFxcXVxcXFxdYCwgJ2cnKTtcbiAgICAgICAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICAgICAgICBsZXQgbGFzdEluZGV4ID0gMDtcblxuICAgICAgICB3aGlsZSAoKG1hdGNoID0gc2xvdFNlbGVjdG9yLmV4ZWModGV4dCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBbc2xvdE1hdGNoLCBzbG90TmFtZSwgc2xvdFRleHRdID0gbWF0Y2g7XG4gICAgICAgICAgICBjb25zdCBbbGlzdE1hdGNoLCBsaXN0U3RyaW5nXSA9IG5ldyBSZWdFeHAoJ15cXFxcKCguKj8pXFxcXCkkJywgJ2cnKS5leGVjKHNsb3RUZXh0KSA/PyBbXTtcbiAgICAgICAgICAgIGNvbnN0IHRleHRCZWZvcmVTbG90ID0gdGV4dC5zdWJzdHJpbmcobGFzdEluZGV4LCArbWF0Y2guaW5kZXgpO1xuXG4gICAgICAgICAgICBpZiAodGV4dEJlZm9yZVNsb3QpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRTbG90cy5wdXNoKHsgdHlwZTogJ3RleHQnLCB0ZXh0OiB0ZXh0QmVmb3JlU2xvdCwgdGVtcGxhdGU6IG51bGwgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcnNlZFNsb3RzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzbG90JyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogc2xvdFRlbXBsYXRlc0J5TmFtZVtzbG90TmFtZV0gfHwgbnVsbCxcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogbGlzdE1hdGNoICYmIGxpc3RTdHJpbmcgPyBsaXN0U3RyaW5nLnNwbGl0KCcsJykgOiBzbG90VGV4dCB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbGFzdEluZGV4ID0gbWF0Y2guaW5kZXggKyBzbG90TWF0Y2gubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dEFmdGVyTGFzdFNsb3QgPSB0ZXh0LnN1YnN0cmluZyhsYXN0SW5kZXgpO1xuXG4gICAgICAgIGlmICh0ZXh0QWZ0ZXJMYXN0U2xvdCkge1xuICAgICAgICAgICAgcGFyc2VkU2xvdHMucHVzaCh7IHR5cGU6ICd0ZXh0JywgdGV4dDogdGV4dEFmdGVyTGFzdFNsb3QsIHRlbXBsYXRlOiBudWxsIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlZFNsb3RzO1xuICAgIH1cbn1cblxuLyoqXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0ticUR5bmFtaWNUcmFuc2xhdGlvbiwgS2JxRHluYW1pY1RyYW5zbGF0aW9uU2xvdF0sXG4gICAgc2VsZWN0b3I6ICdrYnEtZHluYW1pYy10cmFuc2xhdGlvbi13aXRoLWR5bmFtaWMtY29tcG9uZW50LWNyZWF0aW9uJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8a2JxLWR5bmFtaWMtdHJhbnNsYXRpb24gW3RleHRdPVwidGV4dCgpXCI+XG4gICAgICAgICAgICBAZm9yIChzbG90IG9mIHNsb3RzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmticUR5bmFtaWNUcmFuc2xhdGlvblNsb3Q9XCJzbG90Lm5hbWU7IGxldCBjb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAjcmVwbGFjZWFibGVTbG90Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXNsb3QtbmFtZV09XCJzbG90Lm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1zbG90LWNvbnRlbnRdPVwic2xvdC5jb250ZW50IHx8IGNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2ticS1keW5hbWljLXRyYW5zbGF0aW9uPlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgS2JxRHluYW1pY1RyYW5zbGF0aW9uSGVscGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZXBsYWNlYWJsZVNsb3RDb250YWluZXJzID0gdmlld0NoaWxkcmVuPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigncmVwbGFjZWFibGVTbG90Q29udGFpbmVyJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzbG90c0J5TmFtZSA9IG5ldyBNYXA8c3RyaW5nLCBLYnFEeW5hbWljVHJhbnNsYXRpb25IZWxwZXJTbG90PigpO1xuXG4gICAgcmVhZG9ubHkgdGV4dCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAgIHJlYWRvbmx5IHNsb3RzID0gaW5wdXQucmVxdWlyZWQ8S2JxRHluYW1pY1RyYW5zbGF0aW9uSGVscGVyU2xvdFtdPigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNsb3RzQnlOYW1lLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLnNsb3RzKCkuZm9yRWFjaCgoc2xvdCkgPT4gdGhpcy5zbG90c0J5TmFtZS5zZXQoc2xvdC5uYW1lLCBzbG90KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlcGxhY2VTbG90cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlcGxhY2VTbG90cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXBsYWNlYWJsZVNsb3RDb250YWluZXJzKCkuZm9yRWFjaCgoeyBuYXRpdmVFbGVtZW50IH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzbG90TmFtZSA9IG5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXNsb3QtbmFtZScpITtcbiAgICAgICAgICAgIGNvbnN0IHNsb3RDb250ZW50ID0gbmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdC1jb250ZW50JykhO1xuICAgICAgICAgICAgY29uc3QgeyB0YWcsIGF0dHJpYnV0ZXMgfSA9IHRoaXMuc2xvdHNCeU5hbWUuZ2V0KHNsb3ROYW1lKSE7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9SZW5kZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQodGFnKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChlbGVtZW50VG9SZW5kZXIsIHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChzbG90Q29udGVudCkpO1xuXG4gICAgICAgICAgICBhdHRyaWJ1dGVzPy5mb3JFYWNoKCh7IGtleSwgdmFsdWUgfSkgPT4gdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudFRvUmVuZGVyLCBrZXksIHZhbHVlKSk7XG5cbiAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQucmVwbGFjZVdpdGgoZWxlbWVudFRvUmVuZGVyKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './dynamic-translation';
2
+ export * from './module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2R5bmFtaWMtdHJhbnNsYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy10cmFuc2xhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29vYmlxLWNvbXBvbmVudHMtZHluYW1pYy10cmFuc2xhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZHluYW1pYy10cmFuc2xhdGlvbi9rb29iaXEtY29tcG9uZW50cy1keW5hbWljLXRyYW5zbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,25 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { KbqDynamicTranslation, KbqDynamicTranslationHelper, KbqDynamicTranslationSlot } from './dynamic-translation';
3
+ import * as i0 from "@angular/core";
4
+ const COMPONENTS = [
5
+ KbqDynamicTranslationSlot,
6
+ KbqDynamicTranslationHelper,
7
+ KbqDynamicTranslation
8
+ ];
9
+ export class KbqDynamicTranslationModule {
10
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslationModule, imports: [KbqDynamicTranslationSlot,
12
+ KbqDynamicTranslationHelper,
13
+ KbqDynamicTranslation], exports: [KbqDynamicTranslationSlot,
14
+ KbqDynamicTranslationHelper,
15
+ KbqDynamicTranslation] }); }
16
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslationModule }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqDynamicTranslationModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ imports: COMPONENTS,
22
+ exports: COMPONENTS
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9keW5hbWljLXRyYW5zbGF0aW9uL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUV0SCxNQUFNLFVBQVUsR0FBRztJQUNmLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0IscUJBQXFCO0NBQ3hCLENBQUM7QUFNRixNQUFNLE9BQU8sMkJBQTJCO2tJQUEzQiwyQkFBMkI7bUlBQTNCLDJCQUEyQixZQVRwQyx5QkFBeUI7WUFDekIsMkJBQTJCO1lBQzNCLHFCQUFxQixhQUZyQix5QkFBeUI7WUFDekIsMkJBQTJCO1lBQzNCLHFCQUFxQjttSUFPWiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBSnZDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLFVBQVU7b0JBQ25CLE9BQU8sRUFBRSxVQUFVO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLYnFEeW5hbWljVHJhbnNsYXRpb24sIEticUR5bmFtaWNUcmFuc2xhdGlvbkhlbHBlciwgS2JxRHluYW1pY1RyYW5zbGF0aW9uU2xvdCB9IGZyb20gJy4vZHluYW1pYy10cmFuc2xhdGlvbic7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gICAgS2JxRHluYW1pY1RyYW5zbGF0aW9uU2xvdCxcbiAgICBLYnFEeW5hbWljVHJhbnNsYXRpb25IZWxwZXIsXG4gICAgS2JxRHluYW1pY1RyYW5zbGF0aW9uXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IENPTVBPTkVOVFMsXG4gICAgZXhwb3J0czogQ09NUE9ORU5UU1xufSlcbmV4cG9ydCBjbGFzcyBLYnFEeW5hbWljVHJhbnNsYXRpb25Nb2R1bGUge31cbiJdfQ==
@@ -82,4 +82,4 @@ const unwrapDirectory = async (item) => {
82
82
  }
83
83
  return Promise.all(result);
84
84
  };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLWRyb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdoRSxNQUFNLG9CQUFvQixHQUFHLEdBQVksRUFBRSxDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztBQUM3RixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBdUIsRUFBcUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQztBQUN0SCxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQXVCLEVBQWdDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFZdkcsTUFBTSxPQUFPLG9CQUFvQjtJQVZqQztRQWNJLG1EQUFtRDtRQUN6QyxpQkFBWSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztLQXVDekc7SUFyQ0csb0JBQW9CO0lBQ3BCLFVBQVUsQ0FBQyxLQUFnQjtRQUN2QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsV0FBVyxDQUFDLEtBQWdCO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixNQUFNLENBQUMsS0FBZ0I7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FB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RTtvQkFDbkIsSUFBZ0IsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztvQkFDaEQsT0FBTyxDQUFDLElBQWUsQ0FBQyxDQUFDO2dCQUM3QixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDZixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2JxRmlsZSB9IGZyb20gJy4vZmlsZS11cGxvYWQnO1xuXG5jb25zdCBpc0ZvbGRlckNhbkJlRHJhZ2dlZCA9ICgpOiBib29sZWFuID0+ICd3ZWJraXRHZXRBc0VudHJ5JyBpbiBEYXRhVHJhbnNmZXJJdGVtLnByb3RvdHlwZTtcbmNvbnN0IGVudHJ5SXNEaXJlY3RvcnkgPSAoZW50cnk/OiBGaWxlU3lzdGVtRW50cnkpOiBlbnRyeSBpcyBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkgPT4gISFlbnRyeSAmJiBlbnRyeS5pc0RpcmVjdG9yeTtcbmNvbnN0IGVudHJ5SXNGaWxlID0gKGVudHJ5PzogRmlsZVN5c3RlbUVudHJ5KTogZW50cnkgaXMgRmlsZVN5c3RlbUZpbGVFbnRyeSA9PiAhIWVudHJ5ICYmIGVudHJ5LmlzRmlsZTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdba2JxRmlsZURyb3BdJyxcbiAgICBleHBvcnRBczogJ2ticUZpbGVEcm9wJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuZHJhZ292ZXJdJzogJ2RyYWdvdmVyJyxcbiAgICAgICAgJyhkcmFnb3ZlciknOiAnb25EcmFnT3ZlcigkZXZlbnQpJyxcbiAgICAgICAgJyhkcmFnbGVhdmUpJzogJ29uRHJhZ0xlYXZlKCRldmVudCknLFxuICAgICAgICAnKGRyb3ApJzogJ29uRHJvcCgkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxRmlsZURyb3BEaXJlY3RpdmUge1xuICAgIC8qKiBGbGFnIHRoYXQgY29udHJvbHMgY3NzLWNsYXNzIG1vZGlmaWNhdGlvbnMgb24gZHJhZyBldmVudHMuICovXG4gICAgZHJhZ292ZXI6IGJvb2xlYW47XG5cbiAgICAvKiogRW1pdHMgYW4gZXZlbnQgd2hlbiBmaWxlIGl0ZW1zIHdlcmUgZHJvcHBlZC4gKi9cbiAgICBAT3V0cHV0KCkgZmlsZXNEcm9wcGVkOiBFdmVudEVtaXR0ZXI8RmlsZUxpc3QgfCBLYnFGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTGlzdCB8IEticUZpbGVbXT4oKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmRyYWdvdmVyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZHJhZ292ZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICAgIGlmICghaXNGb2xkZXJDYW5CZURyYWdnZWQoKSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdEcmFnLWFuZC1kcm9wIGZ1bmN0aW9uYWxpdHkgZm9yIGZvbGRlcnMgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5kcmFnb3ZlciA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcyByZXF1aXJlcyBkb20uaXRlcmFibGUgbGliXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICBjb25zdCBmaWxlRW50cmllczogRmlsZVN5c3RlbUVudHJ5W10gPSBbLi4uZXZlbnQuZGF0YVRyYW5zZmVyLml0ZW1zXVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IERhdGFUcmFuc2Zlckl0ZW0pID0+IGl0ZW0ua2luZCA9PT0gJ2ZpbGUnKVxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW06IERhdGFUcmFuc2Zlckl0ZW0pID0+IGl0ZW0ud2Via2l0R2V0QXNFbnRyeSgpISk7XG5cbiAgICAgICAgICAgIFByb21pc2UuYWxsKGZpbGVFbnRyaWVzLm1hcCh1bndyYXBEaXJlY3RvcnkpKVxuICAgICAgICAgICAgICAgIC50aGVuKChmaWxlTGlzdCkgPT4gZmlsZUxpc3QucmVkdWNlKChyZXMsIG5leHQpID0+IHJlcy5jb25jYXQobmV4dCksIFtdKSlcbiAgICAgICAgICAgICAgICAudGhlbigoZW50cmllczogS2JxRmlsZVtdKSA9PiB0aGlzLmZpbGVzRHJvcHBlZC5lbWl0KGVudHJpZXMpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuY29uc3QgdW53cmFwRGlyZWN0b3J5ID0gYXN5bmMgKGl0ZW06IEZpbGVTeXN0ZW1FbnRyeSk6IFByb21pc2U8S2JxRmlsZVtdPiA9PiB7XG4gICAgY29uc3QgcXVldWU6IChGaWxlU3lzdGVtRW50cnkgfCBQcm9taXNlPEZpbGVTeXN0ZW1FbnRyeVtdPilbXSA9IFtpdGVtXTtcbiAgICBjb25zdCByZXN1bHQ6IFByb21pc2U8S2JxRmlsZT5bXSA9IFtdO1xuXG4gICAgd2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IHF1ZXVlLnBvcCgpO1xuXG4gICAgICAgIGlmIChuZXh0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgcXVldWUucHVzaCguLi4oYXdhaXQgbmV4dCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGVudHJ5SXNEaXJlY3RvcnkobmV4dCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdG9yeVJlYWRlciA9IG5leHQuY3JlYXRlUmVhZGVyKCk7XG5cbiAgICAgICAgICAgIHF1ZXVlLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IFByb21pc2U8RmlsZVN5c3RlbUVudHJ5W10+KChyZXNvbHZlLCByZWplY3QpID0+IGRpcmVjdG9yeVJlYWRlci5yZWFkRW50cmllcyhyZXNvbHZlLCByZWplY3QpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChlbnRyeUlzRmlsZShuZXh0KSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZUVudHJ5ID0gbmV4dDtcblxuICAgICAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmaWxlRW50cnkuZmlsZSgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUgYXMgS2JxRmlsZSkuZnVsbFBhdGggPSBmaWxlRW50cnkuZnVsbFBhdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZpbGUgYXMgS2JxRmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIH0sIHJlamVjdCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVzdWx0KTtcbn07XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLWRyb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdoRSxNQUFNLG9CQUFvQixHQUFHLEdBQVksRUFBRSxDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztBQUM3RixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBdUIsRUFBcUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQztBQUN0SCxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQXVCLEVBQWdDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFZdkcsTUFBTSxPQUFPLG9CQUFvQjtJQVZqQztRQWNJLG1EQUFtRDtRQUNoQyxpQkFBWSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztLQXVDbEg7SUFyQ0csb0JBQW9CO0lBQ3BCLFVBQVUsQ0FBQyxLQUFnQjtRQUN2QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsV0FBVyxDQUFDLEtBQWdCO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixNQUFNLENBQUMsS0FBZ0I7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FB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QUU7b0JBQ25CLElBQWdCLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7b0JBQ2hELE9BQU8sQ0FBQyxJQUFlLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEticUZpbGUgfSBmcm9tICcuL2ZpbGUtdXBsb2FkJztcblxuY29uc3QgaXNGb2xkZXJDYW5CZURyYWdnZWQgPSAoKTogYm9vbGVhbiA9PiAnd2Via2l0R2V0QXNFbnRyeScgaW4gRGF0YVRyYW5zZmVySXRlbS5wcm90b3R5cGU7XG5jb25zdCBlbnRyeUlzRGlyZWN0b3J5ID0gKGVudHJ5PzogRmlsZVN5c3RlbUVudHJ5KTogZW50cnkgaXMgRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5ID0+ICEhZW50cnkgJiYgZW50cnkuaXNEaXJlY3Rvcnk7XG5jb25zdCBlbnRyeUlzRmlsZSA9IChlbnRyeT86IEZpbGVTeXN0ZW1FbnRyeSk6IGVudHJ5IGlzIEZpbGVTeXN0ZW1GaWxlRW50cnkgPT4gISFlbnRyeSAmJiBlbnRyeS5pc0ZpbGU7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticUZpbGVEcm9wXScsXG4gICAgZXhwb3J0QXM6ICdrYnFGaWxlRHJvcCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmRyYWdvdmVyXSc6ICdkcmFnb3ZlcicsXG4gICAgICAgICcoZHJhZ292ZXIpJzogJ29uRHJhZ092ZXIoJGV2ZW50KScsXG4gICAgICAgICcoZHJhZ2xlYXZlKSc6ICdvbkRyYWdMZWF2ZSgkZXZlbnQpJyxcbiAgICAgICAgJyhkcm9wKSc6ICdvbkRyb3AoJGV2ZW50KSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUZpbGVEcm9wRGlyZWN0aXZlIHtcbiAgICAvKiogRmxhZyB0aGF0IGNvbnRyb2xzIGNzcy1jbGFzcyBtb2RpZmljYXRpb25zIG9uIGRyYWcgZXZlbnRzLiAqL1xuICAgIGRyYWdvdmVyOiBib29sZWFuO1xuXG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gZmlsZSBpdGVtcyB3ZXJlIGRyb3BwZWQuICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGZpbGVzRHJvcHBlZDogRXZlbnRFbWl0dGVyPEZpbGVMaXN0IHwgS2JxRmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUxpc3QgfCBLYnFGaWxlW10+KCk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5kcmFnb3ZlciA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmRyYWdvdmVyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBpZiAoIWlzRm9sZGVyQ2FuQmVEcmFnZ2VkKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRHJhZy1hbmQtZHJvcCBmdW5jdGlvbmFsaXR5IGZvciBmb2xkZXJzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuZHJhZ292ZXIgPSBmYWxzZTtcblxuICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyBldmVudC5kYXRhVHJhbnNmZXIuaXRlbXMgcmVxdWlyZXMgZG9tLml0ZXJhYmxlIGxpYlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgY29uc3QgZmlsZUVudHJpZXM6IEZpbGVTeXN0ZW1FbnRyeVtdID0gWy4uLmV2ZW50LmRhdGFUcmFuc2Zlci5pdGVtc11cbiAgICAgICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBEYXRhVHJhbnNmZXJJdGVtKSA9PiBpdGVtLmtpbmQgPT09ICdmaWxlJylcbiAgICAgICAgICAgICAgICAubWFwKChpdGVtOiBEYXRhVHJhbnNmZXJJdGVtKSA9PiBpdGVtLndlYmtpdEdldEFzRW50cnkoKSEpO1xuXG4gICAgICAgICAgICBQcm9taXNlLmFsbChmaWxlRW50cmllcy5tYXAodW53cmFwRGlyZWN0b3J5KSlcbiAgICAgICAgICAgICAgICAudGhlbigoZmlsZUxpc3QpID0+IGZpbGVMaXN0LnJlZHVjZSgocmVzLCBuZXh0KSA9PiByZXMuY29uY2F0KG5leHQpLCBbXSkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGVudHJpZXM6IEticUZpbGVbXSkgPT4gdGhpcy5maWxlc0Ryb3BwZWQuZW1pdChlbnRyaWVzKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IHVud3JhcERpcmVjdG9yeSA9IGFzeW5jIChpdGVtOiBGaWxlU3lzdGVtRW50cnkpOiBQcm9taXNlPEticUZpbGVbXT4gPT4ge1xuICAgIGNvbnN0IHF1ZXVlOiAoRmlsZVN5c3RlbUVudHJ5IHwgUHJvbWlzZTxGaWxlU3lzdGVtRW50cnlbXT4pW10gPSBbaXRlbV07XG4gICAgY29uc3QgcmVzdWx0OiBQcm9taXNlPEticUZpbGU+W10gPSBbXTtcblxuICAgIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG5leHQgPSBxdWV1ZS5wb3AoKTtcblxuICAgICAgICBpZiAobmV4dCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgIHF1ZXVlLnB1c2goLi4uKGF3YWl0IG5leHQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChlbnRyeUlzRGlyZWN0b3J5KG5leHQpKSB7XG4gICAgICAgICAgICBjb25zdCBkaXJlY3RvcnlSZWFkZXIgPSBuZXh0LmNyZWF0ZVJlYWRlcigpO1xuXG4gICAgICAgICAgICBxdWV1ZS5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBQcm9taXNlPEZpbGVTeXN0ZW1FbnRyeVtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiBkaXJlY3RvcnlSZWFkZXIucmVhZEVudHJpZXMocmVzb2x2ZSwgcmVqZWN0KSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoZW50cnlJc0ZpbGUobmV4dCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVFbnRyeSA9IG5leHQ7XG5cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZUVudHJ5LmZpbGUoKGZpbGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlIGFzIEticUZpbGUpLmZ1bGxQYXRoID0gZmlsZUVudHJ5LmZ1bGxQYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmaWxlIGFzIEticUZpbGUpO1xuICAgICAgICAgICAgICAgICAgICB9LCByZWplY3QpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHJlc3VsdCk7XG59O1xuIl19
@@ -62,5 +62,10 @@ export class KbqFileUploadBase {
62
62
  this.stateChanges.next();
63
63
  }
64
64
  }
65
+ /** Merges base configuration with locale-specific overrides. */
66
+ buildConfig(config) {
67
+ const localeConfig = this.localeConfig();
68
+ return { ...config, ...localeConfig };
69
+ }
65
70
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFzQixNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRyxPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQW1DaEQsa0VBQWtFO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUFvQiw0QkFBNEIsQ0FBQyxDQUFDO0FBRWpILDBHQUEwRztBQUMxRyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLElBQVUsRUFBRSxNQUFpQixFQUFXLEVBQUU7SUFDekUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFakMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDNUIsTUFBTSxPQUFPLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFFcEQsS0FBSyxNQUFNLDJCQUEyQixJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFN0QsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGLG9CQUFvQjtBQUNwQixNQUFNLE9BQWdCLGlCQUFpQjtJQUF2QztRQUNJOzZGQUNxRjtRQUNyRixlQUFVLEdBQVksS0FBSyxDQUFDO1FBSzVCOzs7O1dBSUc7UUFDTSxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFNUMsb0JBQW9CO1FBQ0QsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25ELG9CQUFvQjtRQUNELGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsb0JBQW9CO1FBQ0QsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxvQkFBb0I7UUFDRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLG9CQUFvQjtRQUNELGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRixvQkFBb0I7UUFDRCxlQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLG9CQUFvQjtRQUNELG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEYsb0JBQW9CO1FBQ0QsNkJBQXdCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEUsb0JBQW9CO1FBQ0QsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQWdCdkQsQ0FBQztJQWRHO3VCQUNtQjtJQUNuQixnQkFBZ0I7UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3hFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBOEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXZELElBQUksUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdDb250cm9sLCBOZ0Zvcm0sIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhblVwZGF0ZUVycm9yU3RhdGUsIEVycm9yU3RhdGVNYXRjaGVyLCBLQlFfTE9DQUxFX1NFUlZJQ0UgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBLYnFGaWxlIGV4dGVuZHMgRmlsZSB7XG4gICAgLyogdXNlZCB3aGVuIGRpcmVjdG9yeSBkcm9wcGVkICovXG4gICAgZnVsbFBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYnFGaWxlSXRlbSB7XG4gICAgZmlsZTogRmlsZTtcbiAgICBoYXNFcnJvcj86IGJvb2xlYW47XG4gICAgbG9hZGluZz86IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgICBwcm9ncmVzcz86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEticUlucHV0RmlsZSB7XG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgYWNjZXB0Pzogc3RyaW5nW107XG4gICAgb25GaWxlU2VsZWN0ZWRWaWFDbGljayhldmVudDogRXZlbnQpOiB2b2lkO1xuICAgIG9uRmlsZURyb3BwZWQoZmlsZXM6IEZpbGVMaXN0IHwgS2JxRmlsZVtdKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYnFJbnB1dEZpbGVMYWJlbCB7XG4gICAgLyogVGV4dCBmb3IgZGVzY3JpcHRpb24sIHVzZWQgd2l0aCBgYnJvd3NlTGlua2AgKi9cbiAgICBjYXB0aW9uVGV4dDogc3RyaW5nO1xuICAgIC8qIFRleHQgZm9yIGxpbmsgd2l0aCB3aGljaCB0aGUgZmlsZShzKSBjYW4gYmUgc2VsZWN0ZWQgdG8gZG93bmxvYWQgKi9cbiAgICBicm93c2VMaW5rOiBzdHJpbmc7XG4gICAgLyogSGVhZGVyIGZvciBtdWx0aXBsZSBmaWxlLXVwbG9hZCBpbiBkZWZhdWx0IHNpemUgKi9cbiAgICB0aXRsZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRm9ybUNvbnRyb2wgZm9yIHZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgS2JxRmlsZVZhbGlkYXRvckZuID0gKGZpbGU6IEZpbGUpID0+IHN0cmluZyB8IG51bGw7XG5cbi8qIE9iamVjdCBmb3IgbGFiZWxzIGN1c3RvbWl6YXRpb24gaW5zaWRlIGZpbGUgdXBsb2FkIGNvbXBvbmVudCAqL1xuZXhwb3J0IGNvbnN0IEtCUV9GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuPEticUlucHV0RmlsZUxhYmVsPignS2JxRmlsZVVwbG9hZENvbmZpZ3VyYXRpb24nKTtcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBgRmlsZVZhbGlkYXRvcnMuaXNDb3JyZWN0RXh0ZW5zaW9uYCBpbnN0ZWFkLiBXaWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlLiAqL1xuZXhwb3J0IGNvbnN0IGlzQ29ycmVjdEV4dGVuc2lvbiA9IChmaWxlOiBGaWxlLCBhY2NlcHQ/OiBzdHJpbmdbXSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghYWNjZXB0Py5sZW5ndGgpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgeyBuYW1lLCB0eXBlIH0gPSBmaWxlO1xuICAgIGNvbnN0IGZpbGVFeHQ6IHN0cmluZyA9IG5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcblxuICAgIGZvciAoY29uc3QgYWNjZXB0ZWRFeHRlbnNpb25Pck1pbWVUeXBlIG9mIGFjY2VwdCkge1xuICAgICAgICBjb25zdCB0eXBlQXNSZWdFeHAgPSBuZXcgUmVnRXhwKGFjY2VwdGVkRXh0ZW5zaW9uT3JNaW1lVHlwZSk7XG5cbiAgICAgICAgaWYgKHR5cGVBc1JlZ0V4cC50ZXN0KGZpbGVFeHQpIHx8IHR5cGVBc1JlZ0V4cC50ZXN0KHR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgS2JxRmlsZVVwbG9hZEJhc2UgaW1wbGVtZW50cyBDYW5VcGRhdGVFcnJvclN0YXRlIHtcbiAgICAvKiogVHJhY2tzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBpbiBhbiBlcnJvciBzdGF0ZSBiYXNlZCBvbiB0aGUgY29udHJvbCwgcGFyZW50IGZvcm0sXG4gICAgICogYW5kIGBlcnJvclN0YXRlTWF0Y2hlcmAsIHRyaWdnZXJpbmcgdmlzdWFsIHVwZGF0ZXMgYW5kIHN0YXRlIGNoYW5nZXMgaWYgbmVlZGVkLiAqL1xuICAgIGVycm9yU3RhdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBBbiBvYmplY3QgdXNlZCB0byBjb250cm9sIHRoZSBlcnJvciBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICAgIGFic3RyYWN0IGVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcjtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhdGUgY2hhbmdlcyBhbmQgc2hvdWxkIGNhdXNlIHRoZSBwYXJlbnRcbiAgICAgKiBmb3JtLWZpZWxkIHRvIHVwZGF0ZS4gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBgS2JxRm9ybUZpZWxkQ29udHJvbGAuXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsb2NhbGVTZXJ2aWNlID0gaW5qZWN0KEtCUV9MT0NBTEVfU0VSVklDRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7IG9wdGlvbmFsOiB0cnVlLCBzZWxmOiB0cnVlIH0pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmVudEZvcm0gPSBpbmplY3QoTmdGb3JtLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcmVudEZvcm1Hcm91cCA9IGluamVjdChGb3JtR3JvdXBEaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyID0gaW5qZWN0KEVycm9yU3RhdGVNYXRjaGVyKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIGltcGxlbWVudGVkIGFzIHBhcnQgb2YgYmFzZSBjbGFzcy4gRGVjaWRlZCBub3QgdXNlIG1peGluRXJyb3JTdGF0ZSwgbm90IHRvIG92ZXJjb21wbGljYXRlXG4gICAgICogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHVwZGF0ZUVycm9yU3RhdGUoKSB7XG4gICAgICAgIGNvbnN0IG9sZFN0YXRlID0gdGhpcy5lcnJvclN0YXRlO1xuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudEZvcm1Hcm91cCB8fCB0aGlzLnBhcmVudEZvcm07XG4gICAgICAgIGNvbnN0IG1hdGNoZXIgPSB0aGlzLmVycm9yU3RhdGVNYXRjaGVyIHx8IHRoaXMuZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyO1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uZ0NvbnRyb2wgPyAodGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2wpIDogbnVsbDtcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSBtYXRjaGVyLmlzRXJyb3JTdGF0ZShjb250cm9sLCBwYXJlbnQpO1xuXG4gICAgICAgIGlmIChuZXdTdGF0ZSAhPT0gb2xkU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUVkLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQXVCLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckcsT0FBTyxFQUFtQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFtQ2hELGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FBb0IsNEJBQTRCLENBQUMsQ0FBQztBQUVqSCwwR0FBMEc7QUFDMUcsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFVLEVBQUUsTUFBaUIsRUFBVyxFQUFFO0lBQ3pFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRWpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQzVCLE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBRXBELEtBQUssTUFBTSwyQkFBMkIsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRTdELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixvQkFBb0I7QUFDcEIsTUFBTSxPQUFnQixpQkFBaUI7SUFBdkM7UUFFSTs2RkFDcUY7UUFDckYsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUs1Qjs7OztXQUlHO1FBQ00saUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTVDLG9CQUFvQjtRQUNELFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuRCxvQkFBb0I7UUFDRCxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELG9CQUFvQjtRQUNELGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsb0JBQW9CO1FBQ0Qsa0JBQWEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRixvQkFBb0I7UUFDRCxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakYsb0JBQW9CO1FBQ0QsZUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxvQkFBb0I7UUFDRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLG9CQUFvQjtRQUNELDZCQUF3QixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hFLG9CQUFvQjtRQUNELGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUF1QnZELENBQUM7SUFyQkc7dUJBQ21CO0lBQ25CLGdCQUFnQjtRQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDeEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUE4QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkYsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdkQsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVELGdFQUFnRTtJQUN0RCxXQUFXLENBQUksTUFBUztRQUM5QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFekMsT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0U2lnbmFsLFxuICAgIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdDb250cm9sLCBOZ0Zvcm0sIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhblVwZGF0ZUVycm9yU3RhdGUsIEVycm9yU3RhdGVNYXRjaGVyLCBLQlFfTE9DQUxFX1NFUlZJQ0UgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBLYnFGaWxlIGV4dGVuZHMgRmlsZSB7XG4gICAgLyogdXNlZCB3aGVuIGRpcmVjdG9yeSBkcm9wcGVkICovXG4gICAgZnVsbFBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYnFGaWxlSXRlbSB7XG4gICAgZmlsZTogRmlsZTtcbiAgICBoYXNFcnJvcj86IGJvb2xlYW47XG4gICAgbG9hZGluZz86IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgICBwcm9ncmVzcz86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEticUlucHV0RmlsZSB7XG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgYWNjZXB0Pzogc3RyaW5nW107XG4gICAgb25GaWxlU2VsZWN0ZWRWaWFDbGljayhldmVudDogRXZlbnQpOiB2b2lkO1xuICAgIG9uRmlsZURyb3BwZWQoZmlsZXM6IEZpbGVMaXN0IHwgS2JxRmlsZVtdKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLYnFJbnB1dEZpbGVMYWJlbCB7XG4gICAgLyogVGV4dCBmb3IgZGVzY3JpcHRpb24sIHVzZWQgd2l0aCBgYnJvd3NlTGlua2AgKi9cbiAgICBjYXB0aW9uVGV4dDogc3RyaW5nO1xuICAgIC8qIFRleHQgZm9yIGxpbmsgd2l0aCB3aGljaCB0aGUgZmlsZShzKSBjYW4gYmUgc2VsZWN0ZWQgdG8gZG93bmxvYWQgKi9cbiAgICBicm93c2VMaW5rOiBzdHJpbmc7XG4gICAgLyogSGVhZGVyIGZvciBtdWx0aXBsZSBmaWxlLXVwbG9hZCBpbiBkZWZhdWx0IHNpemUgKi9cbiAgICB0aXRsZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRm9ybUNvbnRyb2wgZm9yIHZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgS2JxRmlsZVZhbGlkYXRvckZuID0gKGZpbGU6IEZpbGUpID0+IHN0cmluZyB8IG51bGw7XG5cbi8qIE9iamVjdCBmb3IgbGFiZWxzIGN1c3RvbWl6YXRpb24gaW5zaWRlIGZpbGUgdXBsb2FkIGNvbXBvbmVudCAqL1xuZXhwb3J0IGNvbnN0IEtCUV9GSUxFX1VQTE9BRF9DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuPEticUlucHV0RmlsZUxhYmVsPignS2JxRmlsZVVwbG9hZENvbmZpZ3VyYXRpb24nKTtcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBgRmlsZVZhbGlkYXRvcnMuaXNDb3JyZWN0RXh0ZW5zaW9uYCBpbnN0ZWFkLiBXaWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlLiAqL1xuZXhwb3J0IGNvbnN0IGlzQ29ycmVjdEV4dGVuc2lvbiA9IChmaWxlOiBGaWxlLCBhY2NlcHQ/OiBzdHJpbmdbXSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICghYWNjZXB0Py5sZW5ndGgpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgeyBuYW1lLCB0eXBlIH0gPSBmaWxlO1xuICAgIGNvbnN0IGZpbGVFeHQ6IHN0cmluZyA9IG5hbWUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJztcblxuICAgIGZvciAoY29uc3QgYWNjZXB0ZWRFeHRlbnNpb25Pck1pbWVUeXBlIG9mIGFjY2VwdCkge1xuICAgICAgICBjb25zdCB0eXBlQXNSZWdFeHAgPSBuZXcgUmVnRXhwKGFjY2VwdGVkRXh0ZW5zaW9uT3JNaW1lVHlwZSk7XG5cbiAgICAgICAgaWYgKHR5cGVBc1JlZ0V4cC50ZXN0KGZpbGVFeHQpIHx8IHR5cGVBc1JlZ0V4cC50ZXN0KHR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgS2JxRmlsZVVwbG9hZEJhc2U8VCA9IEticUlucHV0RmlsZUxhYmVsPiBpbXBsZW1lbnRzIENhblVwZGF0ZUVycm9yU3RhdGUge1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBsb2NhbGVDb25maWc6IElucHV0U2lnbmFsPFBhcnRpYWw8VD4gfCB1bmRlZmluZWQ+O1xuICAgIC8qKiBUcmFja3Mgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGluIGFuIGVycm9yIHN0YXRlIGJhc2VkIG9uIHRoZSBjb250cm9sLCBwYXJlbnQgZm9ybSxcbiAgICAgKiBhbmQgYGVycm9yU3RhdGVNYXRjaGVyYCwgdHJpZ2dlcmluZyB2aXN1YWwgdXBkYXRlcyBhbmQgc3RhdGUgY2hhbmdlcyBpZiBuZWVkZWQuICovXG4gICAgZXJyb3JTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEFuIG9iamVjdCB1c2VkIHRvIGNvbnRyb2wgdGhlIGVycm9yIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gICAgYWJzdHJhY3QgZXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VzIGFuZCBzaG91bGQgY2F1c2UgdGhlIHBhcmVudFxuICAgICAqIGZvcm0tZmllbGQgdG8gdXBkYXRlLiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIGBLYnFGb3JtRmllbGRDb250cm9sYC5cbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoS0JRX0xPQ0FMRV9TRVJWSUNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wsIHsgb3B0aW9uYWw6IHRydWUsIHNlbGY6IHRydWUgfSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyZW50Rm9ybSA9IGluamVjdChOZ0Zvcm0sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyZW50Rm9ybUdyb3VwID0gaW5qZWN0KEZvcm1Hcm91cERpcmVjdGl2ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIgPSBpbmplY3QoRXJyb3JTdGF0ZU1hdGNoZXIpO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogaW1wbGVtZW50ZWQgYXMgcGFydCBvZiBiYXNlIGNsYXNzLiBEZWNpZGVkIG5vdCB1c2UgbWl4aW5FcnJvclN0YXRlLCBub3QgdG8gb3ZlcmNvbXBsaWNhdGVcbiAgICAgKiBAZG9jcy1wcml2YXRlICovXG4gICAgdXBkYXRlRXJyb3JTdGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLmVycm9yU3RhdGU7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50Rm9ybUdyb3VwIHx8IHRoaXMucGFyZW50Rm9ybTtcbiAgICAgICAgY29uc3QgbWF0Y2hlciA9IHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXIgfHwgdGhpcy5kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbCA/ICh0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbCkgOiBudWxsO1xuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IG1hdGNoZXIuaXNFcnJvclN0YXRlKGNvbnRyb2wsIHBhcmVudCk7XG5cbiAgICAgICAgaWYgKG5ld1N0YXRlICE9PSBvbGRTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5lcnJvclN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWVyZ2VzIGJhc2UgY29uZmlndXJhdGlvbiB3aXRoIGxvY2FsZS1zcGVjaWZpYyBvdmVycmlkZXMuICovXG4gICAgcHJvdGVjdGVkIGJ1aWxkQ29uZmlnPFQ+KGNvbmZpZzogVCk6IFQge1xuICAgICAgICBjb25zdCBsb2NhbGVDb25maWcgPSB0aGlzLmxvY2FsZUNvbmZpZygpO1xuXG4gICAgICAgIHJldHVybiB7IC4uLmNvbmZpZywgLi4ubG9jYWxlQ29uZmlnIH07XG4gICAgfVxufVxuIl19